Completed
Branch Gutenberg/master (eed722)
by
unknown
78:41 queued 66:19
created
core/domain/DomainInterface.php 1 patch
Indentation   +44 added lines, -44 removed lines patch added patch discarded remove patch
@@ -16,67 +16,67 @@
 block discarded – undo
16 16
 interface DomainInterface extends InterminableInterface
17 17
 {
18 18
 
19
-    /**
20
-     * @return string
21
-     * @throws DomainException
22
-     */
23
-    public function pluginFile();
19
+	/**
20
+	 * @return string
21
+	 * @throws DomainException
22
+	 */
23
+	public function pluginFile();
24 24
 
25 25
 
26
-    /**
27
-     * @return string
28
-     * @throws DomainException
29
-     */
30
-    public function pluginBasename();
26
+	/**
27
+	 * @return string
28
+	 * @throws DomainException
29
+	 */
30
+	public function pluginBasename();
31 31
 
32 32
 
33
-    /**
34
-     * @return string
35
-     */
36
-    public function pluginPath();
33
+	/**
34
+	 * @return string
35
+	 */
36
+	public function pluginPath();
37 37
 
38 38
 
39
-    /**
40
-     * @return string
41
-     * @throws DomainException
42
-     */
43
-    public function pluginUrl();
39
+	/**
40
+	 * @return string
41
+	 * @throws DomainException
42
+	 */
43
+	public function pluginUrl();
44 44
 
45 45
 
46
-    /**
47
-     * @return string
48
-     * @throws DomainException
49
-     */
50
-    public function version();
46
+	/**
47
+	 * @return string
48
+	 * @throws DomainException
49
+	 */
50
+	public function version();
51 51
 
52 52
 
53
-    /**
54
-     * @return string
55
-     */
56
-    public function sourceAssetsPath();
53
+	/**
54
+	 * @return string
55
+	 */
56
+	public function sourceAssetsPath();
57 57
 
58 58
 
59
-    /**
60
-     * @return string
61
-     */
62
-    public function sourceAssetsUrl();
59
+	/**
60
+	 * @return string
61
+	 */
62
+	public function sourceAssetsUrl();
63 63
 
64 64
 
65
-    /**
66
-     * @return string
67
-     */
68
-    public function distributionAssetsPath();
65
+	/**
66
+	 * @return string
67
+	 */
68
+	public function distributionAssetsPath();
69 69
 
70 70
 
71
-    /**
72
-     * @return string
73
-     */
74
-    public function distributionAssetsUrl();
71
+	/**
72
+	 * @return string
73
+	 */
74
+	public function distributionAssetsUrl();
75 75
 
76 76
 
77
-    /**
78
-     * @return string
79
-     */
80
-    public function assetNamespace();
77
+	/**
78
+	 * @return string
79
+	 */
80
+	public function assetNamespace();
81 81
 
82 82
 }
Please login to merge, or discard this patch.
core/services/collections/InvalidCollectionIdentifierException.php 1 patch
Indentation   +21 added lines, -21 removed lines patch added patch discarded remove patch
@@ -16,26 +16,26 @@
 block discarded – undo
16 16
 class InvalidCollectionIdentifierException extends OutOfBoundsException
17 17
 {
18 18
 
19
-    /**
20
-     * InvalidCollectionIdentifierException constructor.
21
-     *
22
-     * @param                $identifier
23
-     * @param string         $message
24
-     * @param int            $code
25
-     * @param Exception|null $previous
26
-     */
27
-    public function __construct($identifier, $message = '', $code = 0, Exception $previous = null)
28
-    {
29
-        if (empty($message)) {
30
-            $message = sprintf(
31
-                __(
32
-                    'The supplied identifier "%1$s" does not exist within this collection. 
19
+	/**
20
+	 * InvalidCollectionIdentifierException constructor.
21
+	 *
22
+	 * @param                $identifier
23
+	 * @param string         $message
24
+	 * @param int            $code
25
+	 * @param Exception|null $previous
26
+	 */
27
+	public function __construct($identifier, $message = '', $code = 0, Exception $previous = null)
28
+	{
29
+		if (empty($message)) {
30
+			$message = sprintf(
31
+				__(
32
+					'The supplied identifier "%1$s" does not exist within this collection. 
33 33
                     You may need to delay adding this asset until the required dependency has been added.',
34
-                    'event_espresso'
35
-                ),
36
-                $identifier
37
-            );
38
-        }
39
-        parent::__construct($message, $code, $previous);
40
-    }
34
+					'event_espresso'
35
+				),
36
+				$identifier
37
+			);
38
+		}
39
+		parent::__construct($message, $code, $previous);
40
+	}
41 41
 }
Please login to merge, or discard this patch.
core/services/collections/DuplicateCollectionIdentifierException.php 1 patch
Indentation   +21 added lines, -21 removed lines patch added patch discarded remove patch
@@ -16,25 +16,25 @@
 block discarded – undo
16 16
 class DuplicateCollectionIdentifierException extends OutOfRangeException
17 17
 {
18 18
 
19
-    /**
20
-     * DuplicateCollectionIdentifierException constructor.
21
-     *
22
-     * @param                $identifier
23
-     * @param string         $message
24
-     * @param int            $code
25
-     * @param Exception|null $previous
26
-     */
27
-    public function __construct($identifier, $message = '', $code = 0, Exception $previous = null)
28
-    {
29
-        if (empty($message)) {
30
-            $message = sprintf(
31
-                __(
32
-                    'The supplied identifier "%1$s" already exists within this collection.',
33
-                    'event_espresso'
34
-                ),
35
-                $identifier
36
-            );
37
-        }
38
-        parent::__construct($message, $code, $previous);
39
-    }
19
+	/**
20
+	 * DuplicateCollectionIdentifierException constructor.
21
+	 *
22
+	 * @param                $identifier
23
+	 * @param string         $message
24
+	 * @param int            $code
25
+	 * @param Exception|null $previous
26
+	 */
27
+	public function __construct($identifier, $message = '', $code = 0, Exception $previous = null)
28
+	{
29
+		if (empty($message)) {
30
+			$message = sprintf(
31
+				__(
32
+					'The supplied identifier "%1$s" already exists within this collection.',
33
+					'event_espresso'
34
+				),
35
+				$identifier
36
+			);
37
+		}
38
+		parent::__construct($message, $code, $previous);
39
+	}
40 40
 }
Please login to merge, or discard this patch.
core/services/assets/AssetCollection.php 2 patches
Indentation   +72 added lines, -72 removed lines patch added patch discarded remove patch
@@ -21,86 +21,86 @@
 block discarded – undo
21 21
 {
22 22
 
23 23
 
24
-    /**
25
-     * AssetCollection constructor
26
-     *
27
-     * @throws InvalidInterfaceException
28
-     */
29
-    public function __construct()
30
-    {
31
-        parent::__construct('EventEspresso\core\domain\values\assets\Asset');
32
-    }
24
+	/**
25
+	 * AssetCollection constructor
26
+	 *
27
+	 * @throws InvalidInterfaceException
28
+	 */
29
+	public function __construct()
30
+	{
31
+		parent::__construct('EventEspresso\core\domain\values\assets\Asset');
32
+	}
33 33
 
34 34
 
35
-    /**
36
-     * @return StylesheetAsset[]
37
-     * @since $VID:$
38
-     */
39
-    public function getStylesheetAssets()
40
-    {
41
-        return $this->getAssetsOfType(Asset::TYPE_CSS);
42
-    }
35
+	/**
36
+	 * @return StylesheetAsset[]
37
+	 * @since $VID:$
38
+	 */
39
+	public function getStylesheetAssets()
40
+	{
41
+		return $this->getAssetsOfType(Asset::TYPE_CSS);
42
+	}
43 43
 
44 44
 
45
-    /**
46
-     * @return JavascriptAsset[]
47
-     * @since $VID:$
48
-     */
49
-    public function getJavascriptAssets()
50
-    {
51
-        return $this->getAssetsOfType(Asset::TYPE_JS);
52
-    }
45
+	/**
46
+	 * @return JavascriptAsset[]
47
+	 * @since $VID:$
48
+	 */
49
+	public function getJavascriptAssets()
50
+	{
51
+		return $this->getAssetsOfType(Asset::TYPE_JS);
52
+	}
53 53
 
54 54
 
55
-    /**
56
-     * @return ManifestFile[]
57
-     * @since $VID:$
58
-     */
59
-    public function getManifestFiles()
60
-    {
61
-        return $this->getAssetsOfType(Asset::TYPE_MANIFEST);
62
-    }
55
+	/**
56
+	 * @return ManifestFile[]
57
+	 * @since $VID:$
58
+	 */
59
+	public function getManifestFiles()
60
+	{
61
+		return $this->getAssetsOfType(Asset::TYPE_MANIFEST);
62
+	}
63 63
 
64 64
 
65
-    /**
66
-     * @param $type
67
-     * @return array
68
-     * @since $VID:$
69
-     */
70
-    protected function getAssetsOfType($type)
71
-    {
72
-        $files = array();
73
-        $this->rewind();
74
-        while ($this->valid()) {
75
-            /** @var \EventEspresso\core\domain\values\assets\Asset $asset */
76
-            $asset = $this->current();
77
-            if ($asset->type() === $type) {
78
-                $files[ $asset->handle() ] = $asset;
79
-            }
80
-            $this->next();
81
-        }
82
-        $this->rewind();
83
-        return $files;
84
-    }
65
+	/**
66
+	 * @param $type
67
+	 * @return array
68
+	 * @since $VID:$
69
+	 */
70
+	protected function getAssetsOfType($type)
71
+	{
72
+		$files = array();
73
+		$this->rewind();
74
+		while ($this->valid()) {
75
+			/** @var \EventEspresso\core\domain\values\assets\Asset $asset */
76
+			$asset = $this->current();
77
+			if ($asset->type() === $type) {
78
+				$files[ $asset->handle() ] = $asset;
79
+			}
80
+			$this->next();
81
+		}
82
+		$this->rewind();
83
+		return $files;
84
+	}
85 85
 
86 86
 
87
-    /**
88
-     * @return JavascriptAsset[]
89
-     * @since $VID:$
90
-     */
91
-    public function getJavascriptAssetsWithData()
92
-    {
93
-        $files = array();
94
-        $this->rewind();
95
-        while ($this->valid()) {
96
-            /** @var \EventEspresso\core\domain\values\assets\JavascriptAsset $asset */
97
-            $asset = $this->current();
98
-            if ($asset->type() === Asset::TYPE_JS && $asset->hasLocalizedData()) {
99
-                $files[ $asset->handle() ] = $asset;
100
-            }
101
-            $this->next();
102
-        }
103
-        $this->rewind();
104
-        return $files;
105
-    }
87
+	/**
88
+	 * @return JavascriptAsset[]
89
+	 * @since $VID:$
90
+	 */
91
+	public function getJavascriptAssetsWithData()
92
+	{
93
+		$files = array();
94
+		$this->rewind();
95
+		while ($this->valid()) {
96
+			/** @var \EventEspresso\core\domain\values\assets\JavascriptAsset $asset */
97
+			$asset = $this->current();
98
+			if ($asset->type() === Asset::TYPE_JS && $asset->hasLocalizedData()) {
99
+				$files[ $asset->handle() ] = $asset;
100
+			}
101
+			$this->next();
102
+		}
103
+		$this->rewind();
104
+		return $files;
105
+	}
106 106
 }
Please login to merge, or discard this patch.
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -75,7 +75,7 @@  discard block
 block discarded – undo
75 75
             /** @var \EventEspresso\core\domain\values\assets\Asset $asset */
76 76
             $asset = $this->current();
77 77
             if ($asset->type() === $type) {
78
-                $files[ $asset->handle() ] = $asset;
78
+                $files[$asset->handle()] = $asset;
79 79
             }
80 80
             $this->next();
81 81
         }
@@ -96,7 +96,7 @@  discard block
 block discarded – undo
96 96
             /** @var \EventEspresso\core\domain\values\assets\JavascriptAsset $asset */
97 97
             $asset = $this->current();
98 98
             if ($asset->type() === Asset::TYPE_JS && $asset->hasLocalizedData()) {
99
-                $files[ $asset->handle() ] = $asset;
99
+                $files[$asset->handle()] = $asset;
100 100
             }
101 101
             $this->next();
102 102
         }
Please login to merge, or discard this patch.
core/services/assets/Registry.php 2 patches
Spacing   +30 added lines, -30 removed lines patch added patch discarded remove patch
@@ -145,7 +145,7 @@  discard block
 block discarded – undo
145 145
         $this->removeAlreadyRegisteredDataForScriptHandles();
146 146
         wp_add_inline_script(
147 147
             'eejs-core',
148
-            'var eejsdata=' . wp_json_encode(array('data' => $this->jsdata)),
148
+            'var eejsdata='.wp_json_encode(array('data' => $this->jsdata)),
149 149
             'before'
150 150
         );
151 151
         $scripts = $this->assets->getJavascriptAssetsWithData();
@@ -174,7 +174,7 @@  discard block
 block discarded – undo
174 174
     public function addData($key, $value)
175 175
     {
176 176
         if ($this->verifyDataNotExisting($key)) {
177
-            $this->jsdata[ $key ] = $value;
177
+            $this->jsdata[$key] = $value;
178 178
         }
179 179
     }
180 180
 
@@ -195,8 +195,8 @@  discard block
 block discarded – undo
195 195
      */
196 196
     public function pushData($key, $value)
197 197
     {
198
-        if (isset($this->jsdata[ $key ])
199
-            && ! is_array($this->jsdata[ $key ])
198
+        if (isset($this->jsdata[$key])
199
+            && ! is_array($this->jsdata[$key])
200 200
         ) {
201 201
             throw new InvalidArgumentException(
202 202
                 sprintf(
@@ -210,7 +210,7 @@  discard block
 block discarded – undo
210 210
                 )
211 211
             );
212 212
         }
213
-        $this->jsdata[ $key ][] = $value;
213
+        $this->jsdata[$key][] = $value;
214 214
     }
215 215
 
216 216
 
@@ -224,11 +224,11 @@  discard block
 block discarded – undo
224 224
      */
225 225
     public function addTemplate($template_reference, $template_content)
226 226
     {
227
-        if (! isset($this->jsdata['templates'])) {
227
+        if ( ! isset($this->jsdata['templates'])) {
228 228
             $this->jsdata['templates'] = array();
229 229
         }
230 230
         //no overrides allowed.
231
-        if (isset($this->jsdata['templates'][ $template_reference ])) {
231
+        if (isset($this->jsdata['templates'][$template_reference])) {
232 232
             throw new InvalidArgumentException(
233 233
                 sprintf(
234 234
                     __(
@@ -239,7 +239,7 @@  discard block
 block discarded – undo
239 239
                 )
240 240
             );
241 241
         }
242
-        $this->jsdata['templates'][ $template_reference ] = $template_content;
242
+        $this->jsdata['templates'][$template_reference] = $template_content;
243 243
     }
244 244
 
245 245
 
@@ -251,8 +251,8 @@  discard block
 block discarded – undo
251 251
      */
252 252
     public function getTemplate($template_reference)
253 253
     {
254
-        return isset($this->jsdata['templates'][ $template_reference ])
255
-            ? $this->jsdata['templates'][ $template_reference ]
254
+        return isset($this->jsdata['templates'][$template_reference])
255
+            ? $this->jsdata['templates'][$template_reference]
256 256
             : '';
257 257
     }
258 258
 
@@ -265,8 +265,8 @@  discard block
 block discarded – undo
265 265
      */
266 266
     public function getData($key)
267 267
     {
268
-        return isset($this->jsdata[ $key ])
269
-            ? $this->jsdata[ $key ]
268
+        return isset($this->jsdata[$key])
269
+            ? $this->jsdata[$key]
270 270
             : false;
271 271
     }
272 272
 
@@ -281,8 +281,8 @@  discard block
 block discarded – undo
281 281
      */
282 282
     protected function verifyDataNotExisting($key)
283 283
     {
284
-        if (isset($this->jsdata[ $key ])) {
285
-            if (is_array($this->jsdata[ $key ])) {
284
+        if (isset($this->jsdata[$key])) {
285
+            if (is_array($this->jsdata[$key])) {
286 286
                 throw new InvalidArgumentException(
287 287
                     sprintf(
288 288
                         __(
@@ -325,11 +325,11 @@  discard block
 block discarded – undo
325 325
     public function getAssetUrl($namespace, $chunk_name, $asset_type)
326 326
     {
327 327
         $url = isset(
328
-            $this->manifest_data[ $namespace ][ $chunk_name ][ $asset_type ],
329
-            $this->manifest_data[ $namespace ]['url_base']
328
+            $this->manifest_data[$namespace][$chunk_name][$asset_type],
329
+            $this->manifest_data[$namespace]['url_base']
330 330
         )
331
-            ? $this->manifest_data[ $namespace ]['url_base']
332
-              . $this->manifest_data[ $namespace ][ $chunk_name ][ $asset_type ]
331
+            ? $this->manifest_data[$namespace]['url_base']
332
+              . $this->manifest_data[$namespace][$chunk_name][$asset_type]
333 333
             : $chunk_name;
334 334
         return apply_filters(
335 335
             'FHEE__EventEspresso_core_services_assets_Registry__getAssetUrl',
@@ -379,7 +379,7 @@  discard block
 block discarded – undo
379 379
             $this->registerManifestFile(
380 380
                 $manifest_file->assetNamespace(),
381 381
                 $manifest_file->urlBase(),
382
-                $manifest_file->filepath() . Registry::FILE_NAME_BUILD_MANIFEST
382
+                $manifest_file->filepath().Registry::FILE_NAME_BUILD_MANIFEST
383 383
             );
384 384
         }
385 385
     }
@@ -397,7 +397,7 @@  discard block
 block discarded – undo
397 397
      */
398 398
     public function registerManifestFile($namespace, $url_base, $manifest_file)
399 399
     {
400
-        if (isset($this->manifest_data[ $namespace ])) {
400
+        if (isset($this->manifest_data[$namespace])) {
401 401
             throw new InvalidArgumentException(
402 402
                 sprintf(
403 403
                     esc_html__(
@@ -428,9 +428,9 @@  discard block
 block discarded – undo
428 428
             }
429 429
             return;
430 430
         }
431
-        $this->manifest_data[ $namespace ] = $this->decodeManifestFile($manifest_file);
432
-        if (! isset($this->manifest_data[ $namespace ]['url_base'])) {
433
-            $this->manifest_data[ $namespace ]['url_base'] = trailingslashit($url_base);
431
+        $this->manifest_data[$namespace] = $this->decodeManifestFile($manifest_file);
432
+        if ( ! isset($this->manifest_data[$namespace]['url_base'])) {
433
+            $this->manifest_data[$namespace]['url_base'] = trailingslashit($url_base);
434 434
         }
435 435
     }
436 436
 
@@ -445,7 +445,7 @@  discard block
 block discarded – undo
445 445
      */
446 446
     private function decodeManifestFile($manifest_file)
447 447
     {
448
-        if (! file_exists($manifest_file)) {
448
+        if ( ! file_exists($manifest_file)) {
449 449
             throw new InvalidFilePathException($manifest_file);
450 450
         }
451 451
         return json_decode(file_get_contents($manifest_file), true);
@@ -459,7 +459,7 @@  discard block
 block discarded – undo
459 459
      */
460 460
     private function addRegisteredScriptHandlesWithData($script_handle)
461 461
     {
462
-        $this->script_handles_with_data[ $script_handle ] = $script_handle;
462
+        $this->script_handles_with_data[$script_handle] = $script_handle;
463 463
     }
464 464
 
465 465
 
@@ -485,23 +485,23 @@  discard block
 block discarded – undo
485 485
      */
486 486
     private function removeAlreadyRegisteredDataForScriptHandle($script_handle)
487 487
     {
488
-        if (isset($this->script_handles_with_data[ $script_handle ])) {
488
+        if (isset($this->script_handles_with_data[$script_handle])) {
489 489
             global $wp_scripts;
490 490
             $unset_handle = false;
491 491
             if ($wp_scripts->get_data($script_handle, 'data')) {
492
-                unset($wp_scripts->registered[ $script_handle ]->extra['data']);
492
+                unset($wp_scripts->registered[$script_handle]->extra['data']);
493 493
                 $unset_handle = true;
494 494
             }
495 495
             //deal with inline_scripts
496 496
             if ($wp_scripts->get_data($script_handle, 'before')) {
497
-                unset($wp_scripts->registered[ $script_handle ]->extra['before']);
497
+                unset($wp_scripts->registered[$script_handle]->extra['before']);
498 498
                 $unset_handle = true;
499 499
             }
500 500
             if ($wp_scripts->get_data($script_handle, 'after')) {
501
-                unset($wp_scripts->registered[ $script_handle ]->extra['after']);
501
+                unset($wp_scripts->registered[$script_handle]->extra['after']);
502 502
             }
503 503
             if ($unset_handle) {
504
-                unset($this->script_handles_with_data[ $script_handle ]);
504
+                unset($this->script_handles_with_data[$script_handle]);
505 505
             }
506 506
         }
507 507
     }
Please login to merge, or discard this patch.
Indentation   +548 added lines, -548 removed lines patch added patch discarded remove patch
@@ -23,559 +23,559 @@
 block discarded – undo
23 23
 class Registry
24 24
 {
25 25
 
26
-    const FILE_NAME_BUILD_MANIFEST = 'build-manifest.json';
27
-
28
-    /**
29
-     * @var AssetCollection $assets
30
-     */
31
-    protected $assets;
32
-
33
-    /**
34
-     * @var I18nRegistry
35
-     */
36
-    private $i18n_registry;
37
-
38
-    /**
39
-     * This holds the jsdata data object that will be exposed on pages that enqueue the `eejs-core` script.
40
-     *
41
-     * @var array
42
-     */
43
-    protected $jsdata = array();
44
-
45
-    /**
46
-     * This keeps track of all scripts with registered data.  It is used to prevent duplicate data objects setup in the
47
-     * page source.
48
-     *
49
-     * @var array
50
-     */
51
-    private $script_handles_with_data = array();
52
-
53
-    /**
54
-     * Holds the manifest data obtained from registered manifest files.
55
-     * Manifests are maps of asset chunk name to actual built asset file names.
56
-     * Shape of this array is:
57
-     * array(
58
-     *  'some_namespace_slug' => array(
59
-     *      'some_chunk_name' => array(
60
-     *          'js' => 'filename.js'
61
-     *          'css' => 'filename.js'
62
-     *      ),
63
-     *      'url_base' => 'https://baseurl.com/to/assets
64
-     *  )
65
-     * )
66
-     *
67
-     * @var array
68
-     */
69
-    private $manifest_data = array();
70
-
71
-
72
-    /**
73
-     * Registry constructor.
74
-     * Hooking into WP actions for script registry.
75
-     *
76
-     * @param AssetCollection $assets
77
-     * @param I18nRegistry    $i18n_registry
78
-     */
79
-    public function __construct(AssetCollection $assets, I18nRegistry $i18n_registry)
80
-    {
81
-        $this->assets = $assets;
82
-        $this->i18n_registry = $i18n_registry;
83
-        add_action('wp_enqueue_scripts', array($this, 'registerManifestFiles'), 1);
84
-        add_action('admin_enqueue_scripts', array($this, 'registerManifestFiles'), 1);
85
-        add_action('wp_enqueue_scripts', array($this, 'registerScriptsAndStyles'), 3);
86
-        add_action('admin_enqueue_scripts', array($this, 'registerScriptsAndStyles'), 3);
87
-        add_action('wp_enqueue_scripts', array($this, 'enqueueData'), 4);
88
-        add_action('admin_enqueue_scripts', array($this, 'enqueueData'), 4);
89
-        add_action('wp_print_footer_scripts', array($this, 'enqueueData'), 1);
90
-        add_action('admin_print_footer_scripts', array($this, 'enqueueData'), 1);
91
-    }
92
-
93
-
94
-    /**
95
-     * For classes that have Registry as a dependency, this provides a handy way to register script handles for i18n
96
-     * translation handling.
97
-     *
98
-     * @return I18nRegistry
99
-     */
100
-    public function getI18nRegistry()
101
-    {
102
-        return $this->i18n_registry;
103
-    }
104
-
105
-
106
-    /**
107
-     * Callback for the wp_enqueue_scripts actions used to register assets.
108
-     *
109
-     * @since $VID:$
110
-     * @throws Exception
111
-     */
112
-    public function registerScriptsAndStyles()
113
-    {
114
-        try {
115
-            $this->registerScripts($this->assets->getJavascriptAssets());
116
-            $this->registerStyles($this->assets->getStylesheetAssets());
117
-        } catch (Exception $exception) {
118
-            new ExceptionStackTraceDisplay($exception);
119
-        }
120
-    }
121
-
122
-
123
-    /**
124
-     * Registers JS assets with WP core
125
-     *
126
-     * @since $VID:$
127
-     * @param JavascriptAsset[] $scripts
128
-     * @throws AssetRegistrationException
129
-     * @throws InvalidDataTypeException
130
-     */
131
-    public function registerScripts(array $scripts)
132
-    {
133
-        foreach ($scripts as $script) {
134
-            // skip to next script if this has already been done
135
-            if ($script->isRegistered()) {
136
-                continue;
137
-            }
138
-            do_action(
139
-                'AHEE__EventEspresso_core_services_assets_Registry__registerScripts__before_script',
140
-                $script
141
-            );
142
-            $registered = wp_register_script(
143
-                $script->handle(),
144
-                $script->source(),
145
-                $script->dependencies(),
146
-                $script->version(),
147
-                $script->loadInFooter()
148
-            );
149
-            if (defined('EE_DEBUG') && EE_DEBUG && ! $registered) {
150
-                throw new AssetRegistrationException($script->handle());
151
-            }
152
-            $script->setRegistered($registered);
153
-            if ($script->requiresTranslation()) {
154
-                $this->registerTranslation($script->handle());
155
-            }
156
-            do_action(
157
-                'AHEE__EventEspresso_core_services_assets_Registry__registerScripts__after_script',
158
-                $script
159
-            );
160
-        }
161
-    }
162
-
163
-
164
-    /**
165
-     * Registers CSS assets with WP core
166
-     *
167
-     * @since $VID:$
168
-     * @param StylesheetAsset[] $styles
169
-     * @throws InvalidDataTypeException
170
-     */
171
-    public function registerStyles(array $styles)
172
-    {
173
-        foreach ($styles as $style) {
174
-            // skip to next style if this has already been done
175
-            if ($style->isRegistered()) {
176
-                continue;
177
-            }
178
-            do_action(
179
-                'AHEE__EventEspresso_core_services_assets_Registry__registerStyles__before_style',
180
-                $style
181
-            );
182
-            wp_enqueue_style(
183
-                $style->handle(),
184
-                $style->source(),
185
-                $style->dependencies(),
186
-                $style->version(),
187
-                $style->media()
188
-            );
189
-            $style->setRegistered();
190
-            do_action(
191
-                'AHEE__EventEspresso_core_services_assets_Registry__registerStyles__after_style',
192
-                $style
193
-            );
194
-        }
195
-    }
196
-
197
-
198
-    /**
199
-     * Call back for the script print in frontend and backend.
200
-     * Used to call wp_localize_scripts so that data can be added throughout the runtime until this later hook point.
201
-     *
202
-     * @since 4.9.31.rc.015
203
-     */
204
-    public function enqueueData()
205
-    {
206
-        $this->removeAlreadyRegisteredDataForScriptHandles();
207
-        wp_add_inline_script(
208
-            'eejs-core',
209
-            'var eejsdata=' . wp_json_encode(array('data' => $this->jsdata)),
210
-            'before'
211
-        );
212
-        $scripts = $this->assets->getJavascriptAssetsWithData();
213
-        foreach ($scripts as $script) {
214
-            $this->addRegisteredScriptHandlesWithData($script->handle());
215
-            if ($script->hasLocalizationCallback()) {
216
-                $localize = $script->localizationCallback();
217
-                $localize();
218
-            }
219
-        }
220
-    }
221
-
222
-
223
-    /**
224
-     * Used to add data to eejs.data object.
225
-     * Note:  Overriding existing data is not allowed.
226
-     * Data will be accessible as a javascript object when you list `eejs-core` as a dependency for your javascript.
227
-     * If the data you add is something like this:
228
-     *  $this->addData( 'my_plugin_data', array( 'foo' => 'gar' ) );
229
-     * It will be exposed in the page source as:
230
-     *  eejs.data.my_plugin_data.foo == gar
231
-     *
232
-     * @param string       $key   Key used to access your data
233
-     * @param string|array $value Value to attach to key
234
-     * @throws InvalidArgumentException
235
-     */
236
-    public function addData($key, $value)
237
-    {
238
-        if ($this->verifyDataNotExisting($key)) {
239
-            $this->jsdata[ $key ] = $value;
240
-        }
241
-    }
242
-
243
-
244
-    /**
245
-     * Similar to addData except this allows for users to push values to an existing key where the values on key are
246
-     * elements in an array.
247
-     * When you use this method, the value you include will be appended to the end of an array on $key.
248
-     * So if the $key was 'test' and you added a value of 'my_data' then it would be represented in the javascript
249
-     * object like this, eejs.data.test = [ my_data,
250
-     * ]
251
-     * If there has already been a scalar value attached to the data object given key, then
252
-     * this will throw an exception.
253
-     *
254
-     * @param string       $key   Key to attach data to.
255
-     * @param string|array $value Value being registered.
256
-     * @throws InvalidArgumentException
257
-     */
258
-    public function pushData($key, $value)
259
-    {
260
-        if (isset($this->jsdata[ $key ])
261
-            && ! is_array($this->jsdata[ $key ])
262
-        ) {
263
-            throw new InvalidArgumentException(
264
-                sprintf(
265
-                    __(
266
-                        'The value for %1$s is already set and it is not an array. The %2$s method can only be used to
26
+	const FILE_NAME_BUILD_MANIFEST = 'build-manifest.json';
27
+
28
+	/**
29
+	 * @var AssetCollection $assets
30
+	 */
31
+	protected $assets;
32
+
33
+	/**
34
+	 * @var I18nRegistry
35
+	 */
36
+	private $i18n_registry;
37
+
38
+	/**
39
+	 * This holds the jsdata data object that will be exposed on pages that enqueue the `eejs-core` script.
40
+	 *
41
+	 * @var array
42
+	 */
43
+	protected $jsdata = array();
44
+
45
+	/**
46
+	 * This keeps track of all scripts with registered data.  It is used to prevent duplicate data objects setup in the
47
+	 * page source.
48
+	 *
49
+	 * @var array
50
+	 */
51
+	private $script_handles_with_data = array();
52
+
53
+	/**
54
+	 * Holds the manifest data obtained from registered manifest files.
55
+	 * Manifests are maps of asset chunk name to actual built asset file names.
56
+	 * Shape of this array is:
57
+	 * array(
58
+	 *  'some_namespace_slug' => array(
59
+	 *      'some_chunk_name' => array(
60
+	 *          'js' => 'filename.js'
61
+	 *          'css' => 'filename.js'
62
+	 *      ),
63
+	 *      'url_base' => 'https://baseurl.com/to/assets
64
+	 *  )
65
+	 * )
66
+	 *
67
+	 * @var array
68
+	 */
69
+	private $manifest_data = array();
70
+
71
+
72
+	/**
73
+	 * Registry constructor.
74
+	 * Hooking into WP actions for script registry.
75
+	 *
76
+	 * @param AssetCollection $assets
77
+	 * @param I18nRegistry    $i18n_registry
78
+	 */
79
+	public function __construct(AssetCollection $assets, I18nRegistry $i18n_registry)
80
+	{
81
+		$this->assets = $assets;
82
+		$this->i18n_registry = $i18n_registry;
83
+		add_action('wp_enqueue_scripts', array($this, 'registerManifestFiles'), 1);
84
+		add_action('admin_enqueue_scripts', array($this, 'registerManifestFiles'), 1);
85
+		add_action('wp_enqueue_scripts', array($this, 'registerScriptsAndStyles'), 3);
86
+		add_action('admin_enqueue_scripts', array($this, 'registerScriptsAndStyles'), 3);
87
+		add_action('wp_enqueue_scripts', array($this, 'enqueueData'), 4);
88
+		add_action('admin_enqueue_scripts', array($this, 'enqueueData'), 4);
89
+		add_action('wp_print_footer_scripts', array($this, 'enqueueData'), 1);
90
+		add_action('admin_print_footer_scripts', array($this, 'enqueueData'), 1);
91
+	}
92
+
93
+
94
+	/**
95
+	 * For classes that have Registry as a dependency, this provides a handy way to register script handles for i18n
96
+	 * translation handling.
97
+	 *
98
+	 * @return I18nRegistry
99
+	 */
100
+	public function getI18nRegistry()
101
+	{
102
+		return $this->i18n_registry;
103
+	}
104
+
105
+
106
+	/**
107
+	 * Callback for the wp_enqueue_scripts actions used to register assets.
108
+	 *
109
+	 * @since $VID:$
110
+	 * @throws Exception
111
+	 */
112
+	public function registerScriptsAndStyles()
113
+	{
114
+		try {
115
+			$this->registerScripts($this->assets->getJavascriptAssets());
116
+			$this->registerStyles($this->assets->getStylesheetAssets());
117
+		} catch (Exception $exception) {
118
+			new ExceptionStackTraceDisplay($exception);
119
+		}
120
+	}
121
+
122
+
123
+	/**
124
+	 * Registers JS assets with WP core
125
+	 *
126
+	 * @since $VID:$
127
+	 * @param JavascriptAsset[] $scripts
128
+	 * @throws AssetRegistrationException
129
+	 * @throws InvalidDataTypeException
130
+	 */
131
+	public function registerScripts(array $scripts)
132
+	{
133
+		foreach ($scripts as $script) {
134
+			// skip to next script if this has already been done
135
+			if ($script->isRegistered()) {
136
+				continue;
137
+			}
138
+			do_action(
139
+				'AHEE__EventEspresso_core_services_assets_Registry__registerScripts__before_script',
140
+				$script
141
+			);
142
+			$registered = wp_register_script(
143
+				$script->handle(),
144
+				$script->source(),
145
+				$script->dependencies(),
146
+				$script->version(),
147
+				$script->loadInFooter()
148
+			);
149
+			if (defined('EE_DEBUG') && EE_DEBUG && ! $registered) {
150
+				throw new AssetRegistrationException($script->handle());
151
+			}
152
+			$script->setRegistered($registered);
153
+			if ($script->requiresTranslation()) {
154
+				$this->registerTranslation($script->handle());
155
+			}
156
+			do_action(
157
+				'AHEE__EventEspresso_core_services_assets_Registry__registerScripts__after_script',
158
+				$script
159
+			);
160
+		}
161
+	}
162
+
163
+
164
+	/**
165
+	 * Registers CSS assets with WP core
166
+	 *
167
+	 * @since $VID:$
168
+	 * @param StylesheetAsset[] $styles
169
+	 * @throws InvalidDataTypeException
170
+	 */
171
+	public function registerStyles(array $styles)
172
+	{
173
+		foreach ($styles as $style) {
174
+			// skip to next style if this has already been done
175
+			if ($style->isRegistered()) {
176
+				continue;
177
+			}
178
+			do_action(
179
+				'AHEE__EventEspresso_core_services_assets_Registry__registerStyles__before_style',
180
+				$style
181
+			);
182
+			wp_enqueue_style(
183
+				$style->handle(),
184
+				$style->source(),
185
+				$style->dependencies(),
186
+				$style->version(),
187
+				$style->media()
188
+			);
189
+			$style->setRegistered();
190
+			do_action(
191
+				'AHEE__EventEspresso_core_services_assets_Registry__registerStyles__after_style',
192
+				$style
193
+			);
194
+		}
195
+	}
196
+
197
+
198
+	/**
199
+	 * Call back for the script print in frontend and backend.
200
+	 * Used to call wp_localize_scripts so that data can be added throughout the runtime until this later hook point.
201
+	 *
202
+	 * @since 4.9.31.rc.015
203
+	 */
204
+	public function enqueueData()
205
+	{
206
+		$this->removeAlreadyRegisteredDataForScriptHandles();
207
+		wp_add_inline_script(
208
+			'eejs-core',
209
+			'var eejsdata=' . wp_json_encode(array('data' => $this->jsdata)),
210
+			'before'
211
+		);
212
+		$scripts = $this->assets->getJavascriptAssetsWithData();
213
+		foreach ($scripts as $script) {
214
+			$this->addRegisteredScriptHandlesWithData($script->handle());
215
+			if ($script->hasLocalizationCallback()) {
216
+				$localize = $script->localizationCallback();
217
+				$localize();
218
+			}
219
+		}
220
+	}
221
+
222
+
223
+	/**
224
+	 * Used to add data to eejs.data object.
225
+	 * Note:  Overriding existing data is not allowed.
226
+	 * Data will be accessible as a javascript object when you list `eejs-core` as a dependency for your javascript.
227
+	 * If the data you add is something like this:
228
+	 *  $this->addData( 'my_plugin_data', array( 'foo' => 'gar' ) );
229
+	 * It will be exposed in the page source as:
230
+	 *  eejs.data.my_plugin_data.foo == gar
231
+	 *
232
+	 * @param string       $key   Key used to access your data
233
+	 * @param string|array $value Value to attach to key
234
+	 * @throws InvalidArgumentException
235
+	 */
236
+	public function addData($key, $value)
237
+	{
238
+		if ($this->verifyDataNotExisting($key)) {
239
+			$this->jsdata[ $key ] = $value;
240
+		}
241
+	}
242
+
243
+
244
+	/**
245
+	 * Similar to addData except this allows for users to push values to an existing key where the values on key are
246
+	 * elements in an array.
247
+	 * When you use this method, the value you include will be appended to the end of an array on $key.
248
+	 * So if the $key was 'test' and you added a value of 'my_data' then it would be represented in the javascript
249
+	 * object like this, eejs.data.test = [ my_data,
250
+	 * ]
251
+	 * If there has already been a scalar value attached to the data object given key, then
252
+	 * this will throw an exception.
253
+	 *
254
+	 * @param string       $key   Key to attach data to.
255
+	 * @param string|array $value Value being registered.
256
+	 * @throws InvalidArgumentException
257
+	 */
258
+	public function pushData($key, $value)
259
+	{
260
+		if (isset($this->jsdata[ $key ])
261
+			&& ! is_array($this->jsdata[ $key ])
262
+		) {
263
+			throw new InvalidArgumentException(
264
+				sprintf(
265
+					__(
266
+						'The value for %1$s is already set and it is not an array. The %2$s method can only be used to
267 267
                          push values to this data element when it is an array.',
268
-                        'event_espresso'
269
-                    ),
270
-                    $key,
271
-                    __METHOD__
272
-                )
273
-            );
274
-        }
275
-        $this->jsdata[ $key ][] = $value;
276
-    }
277
-
278
-
279
-    /**
280
-     * Used to set content used by javascript for a template.
281
-     * Note: Overrides of existing registered templates are not allowed.
282
-     *
283
-     * @param string $template_reference
284
-     * @param string $template_content
285
-     * @throws InvalidArgumentException
286
-     */
287
-    public function addTemplate($template_reference, $template_content)
288
-    {
289
-        if (! isset($this->jsdata['templates'])) {
290
-            $this->jsdata['templates'] = array();
291
-        }
292
-        //no overrides allowed.
293
-        if (isset($this->jsdata['templates'][ $template_reference ])) {
294
-            throw new InvalidArgumentException(
295
-                sprintf(
296
-                    __(
297
-                        'The %1$s key already exists for the templates array in the js data array.  No overrides are allowed.',
298
-                        'event_espresso'
299
-                    ),
300
-                    $template_reference
301
-                )
302
-            );
303
-        }
304
-        $this->jsdata['templates'][ $template_reference ] = $template_content;
305
-    }
306
-
307
-
308
-    /**
309
-     * Retrieve the template content already registered for the given reference.
310
-     *
311
-     * @param string $template_reference
312
-     * @return string
313
-     */
314
-    public function getTemplate($template_reference)
315
-    {
316
-        return isset($this->jsdata['templates'][ $template_reference ])
317
-            ? $this->jsdata['templates'][ $template_reference ]
318
-            : '';
319
-    }
320
-
321
-
322
-    /**
323
-     * Retrieve registered data.
324
-     *
325
-     * @param string $key Name of key to attach data to.
326
-     * @return mixed                If there is no for the given key, then false is returned.
327
-     */
328
-    public function getData($key)
329
-    {
330
-        return isset($this->jsdata[ $key ])
331
-            ? $this->jsdata[ $key ]
332
-            : false;
333
-    }
334
-
335
-
336
-    /**
337
-     * Verifies whether the given data exists already on the jsdata array.
338
-     * Overriding data is not allowed.
339
-     *
340
-     * @param string $key Index for data.
341
-     * @return bool        If valid then return true.
342
-     * @throws InvalidArgumentException if data already exists.
343
-     */
344
-    protected function verifyDataNotExisting($key)
345
-    {
346
-        if (isset($this->jsdata[ $key ])) {
347
-            if (is_array($this->jsdata[ $key ])) {
348
-                throw new InvalidArgumentException(
349
-                    sprintf(
350
-                        __(
351
-                            'The value for %1$s already exists in the Registry::eejs object.
268
+						'event_espresso'
269
+					),
270
+					$key,
271
+					__METHOD__
272
+				)
273
+			);
274
+		}
275
+		$this->jsdata[ $key ][] = $value;
276
+	}
277
+
278
+
279
+	/**
280
+	 * Used to set content used by javascript for a template.
281
+	 * Note: Overrides of existing registered templates are not allowed.
282
+	 *
283
+	 * @param string $template_reference
284
+	 * @param string $template_content
285
+	 * @throws InvalidArgumentException
286
+	 */
287
+	public function addTemplate($template_reference, $template_content)
288
+	{
289
+		if (! isset($this->jsdata['templates'])) {
290
+			$this->jsdata['templates'] = array();
291
+		}
292
+		//no overrides allowed.
293
+		if (isset($this->jsdata['templates'][ $template_reference ])) {
294
+			throw new InvalidArgumentException(
295
+				sprintf(
296
+					__(
297
+						'The %1$s key already exists for the templates array in the js data array.  No overrides are allowed.',
298
+						'event_espresso'
299
+					),
300
+					$template_reference
301
+				)
302
+			);
303
+		}
304
+		$this->jsdata['templates'][ $template_reference ] = $template_content;
305
+	}
306
+
307
+
308
+	/**
309
+	 * Retrieve the template content already registered for the given reference.
310
+	 *
311
+	 * @param string $template_reference
312
+	 * @return string
313
+	 */
314
+	public function getTemplate($template_reference)
315
+	{
316
+		return isset($this->jsdata['templates'][ $template_reference ])
317
+			? $this->jsdata['templates'][ $template_reference ]
318
+			: '';
319
+	}
320
+
321
+
322
+	/**
323
+	 * Retrieve registered data.
324
+	 *
325
+	 * @param string $key Name of key to attach data to.
326
+	 * @return mixed                If there is no for the given key, then false is returned.
327
+	 */
328
+	public function getData($key)
329
+	{
330
+		return isset($this->jsdata[ $key ])
331
+			? $this->jsdata[ $key ]
332
+			: false;
333
+	}
334
+
335
+
336
+	/**
337
+	 * Verifies whether the given data exists already on the jsdata array.
338
+	 * Overriding data is not allowed.
339
+	 *
340
+	 * @param string $key Index for data.
341
+	 * @return bool        If valid then return true.
342
+	 * @throws InvalidArgumentException if data already exists.
343
+	 */
344
+	protected function verifyDataNotExisting($key)
345
+	{
346
+		if (isset($this->jsdata[ $key ])) {
347
+			if (is_array($this->jsdata[ $key ])) {
348
+				throw new InvalidArgumentException(
349
+					sprintf(
350
+						__(
351
+							'The value for %1$s already exists in the Registry::eejs object.
352 352
                             Overrides are not allowed. Since the value of this data is an array, you may want to use the
353 353
                             %2$s method to push your value to the array.',
354
-                            'event_espresso'
355
-                        ),
356
-                        $key,
357
-                        'pushData()'
358
-                    )
359
-                );
360
-            }
361
-            throw new InvalidArgumentException(
362
-                sprintf(
363
-                    __(
364
-                        'The value for %1$s already exists in the Registry::eejs object. Overrides are not
354
+							'event_espresso'
355
+						),
356
+						$key,
357
+						'pushData()'
358
+					)
359
+				);
360
+			}
361
+			throw new InvalidArgumentException(
362
+				sprintf(
363
+					__(
364
+						'The value for %1$s already exists in the Registry::eejs object. Overrides are not
365 365
                         allowed.  Consider attaching your value to a different key',
366
-                        'event_espresso'
367
-                    ),
368
-                    $key
369
-                )
370
-            );
371
-        }
372
-        return true;
373
-    }
374
-
375
-
376
-    /**
377
-     * Get the actual asset path for asset manifests.
378
-     * If there is no asset path found for the given $chunk_name, then the $chunk_name is returned.
379
-     *
380
-     * @param string $namespace  The namespace associated with the manifest file hosting the map of chunk_name to actual
381
-     *                           asset file location.
382
-     * @param string $chunk_name
383
-     * @param string $asset_type
384
-     * @return string
385
-     * @since 4.9.59.p
386
-     */
387
-    public function getAssetUrl($namespace, $chunk_name, $asset_type)
388
-    {
389
-        $url = isset(
390
-            $this->manifest_data[ $namespace ][ $chunk_name ][ $asset_type ],
391
-            $this->manifest_data[ $namespace ]['url_base']
392
-        )
393
-            ? $this->manifest_data[ $namespace ]['url_base']
394
-              . $this->manifest_data[ $namespace ][ $chunk_name ][ $asset_type ]
395
-            : $chunk_name;
396
-        return apply_filters(
397
-            'FHEE__EventEspresso_core_services_assets_Registry__getAssetUrl',
398
-            $url,
399
-            $namespace,
400
-            $chunk_name,
401
-            $asset_type
402
-        );
403
-    }
404
-
405
-
406
-    /**
407
-     * Return the url to a js file for the given namespace and chunk name.
408
-     *
409
-     * @param string $namespace
410
-     * @param string $chunk_name
411
-     * @return string
412
-     */
413
-    public function getJsUrl($namespace, $chunk_name)
414
-    {
415
-        return $this->getAssetUrl($namespace, $chunk_name, Asset::TYPE_JS);
416
-    }
417
-
418
-
419
-    /**
420
-     * Return the url to a css file for the given namespace and chunk name.
421
-     *
422
-     * @param string $namespace
423
-     * @param string $chunk_name
424
-     * @return string
425
-     */
426
-    public function getCssUrl($namespace, $chunk_name)
427
-    {
428
-        return $this->getAssetUrl($namespace, $chunk_name, Asset::TYPE_CSS);
429
-    }
430
-
431
-
432
-    /**
433
-     * @since $VID:$
434
-     * @throws InvalidArgumentException
435
-     * @throws InvalidFilePathException
436
-     */
437
-    public function registerManifestFiles()
438
-    {
439
-        $manifest_files = $this->assets->getManifestFiles();
440
-        foreach ($manifest_files as $manifest_file) {
441
-            $this->registerManifestFile(
442
-                $manifest_file->assetNamespace(),
443
-                $manifest_file->urlBase(),
444
-                $manifest_file->filepath() . Registry::FILE_NAME_BUILD_MANIFEST
445
-            );
446
-        }
447
-    }
448
-
449
-
450
-    /**
451
-     * Used to register a js/css manifest file with the registered_manifest_files property.
452
-     *
453
-     * @param string $namespace     Provided to associate the manifest file with a specific namespace.
454
-     * @param string $url_base      The url base for the manifest file location.
455
-     * @param string $manifest_file The absolute path to the manifest file.
456
-     * @throws InvalidArgumentException
457
-     * @throws InvalidFilePathException
458
-     * @since 4.9.59.p
459
-     */
460
-    public function registerManifestFile($namespace, $url_base, $manifest_file)
461
-    {
462
-        if (isset($this->manifest_data[ $namespace ])) {
463
-            throw new InvalidArgumentException(
464
-                sprintf(
465
-                    esc_html__(
466
-                        'The namespace for this manifest file has already been registered, choose a namespace other than %s',
467
-                        'event_espresso'
468
-                    ),
469
-                    $namespace
470
-                )
471
-            );
472
-        }
473
-        if (filter_var($url_base, FILTER_VALIDATE_URL) === false) {
474
-            if (is_admin()) {
475
-                EE_Error::add_error(
476
-                    sprintf(
477
-                        esc_html__(
478
-                            'The url given for %1$s assets is invalid.  The url provided was: "%2$s". This usually happens when another plugin or theme on a site is using the "%3$s" filter or has an invalid url set for the "%4$s" constant',
479
-                            'event_espresso'
480
-                        ),
481
-                        'Event Espresso',
482
-                        $url_base,
483
-                        'plugins_url',
484
-                        'WP_PLUGIN_URL'
485
-                    ),
486
-                    __FILE__,
487
-                    __FUNCTION__,
488
-                    __LINE__
489
-                );
490
-            }
491
-            return;
492
-        }
493
-        $this->manifest_data[ $namespace ] = $this->decodeManifestFile($manifest_file);
494
-        if (! isset($this->manifest_data[ $namespace ]['url_base'])) {
495
-            $this->manifest_data[ $namespace ]['url_base'] = trailingslashit($url_base);
496
-        }
497
-    }
498
-
499
-
500
-    /**
501
-     * Decodes json from the provided manifest file.
502
-     *
503
-     * @since 4.9.59.p
504
-     * @param string $manifest_file Path to manifest file.
505
-     * @return array
506
-     * @throws InvalidFilePathException
507
-     */
508
-    private function decodeManifestFile($manifest_file)
509
-    {
510
-        if (! file_exists($manifest_file)) {
511
-            throw new InvalidFilePathException($manifest_file);
512
-        }
513
-        return json_decode(file_get_contents($manifest_file), true);
514
-    }
515
-
516
-
517
-    /**
518
-     * This is used to set registered script handles that have data.
519
-     *
520
-     * @param string $script_handle
521
-     */
522
-    private function addRegisteredScriptHandlesWithData($script_handle)
523
-    {
524
-        $this->script_handles_with_data[ $script_handle ] = $script_handle;
525
-    }
526
-
527
-
528
-    /**i
366
+						'event_espresso'
367
+					),
368
+					$key
369
+				)
370
+			);
371
+		}
372
+		return true;
373
+	}
374
+
375
+
376
+	/**
377
+	 * Get the actual asset path for asset manifests.
378
+	 * If there is no asset path found for the given $chunk_name, then the $chunk_name is returned.
379
+	 *
380
+	 * @param string $namespace  The namespace associated with the manifest file hosting the map of chunk_name to actual
381
+	 *                           asset file location.
382
+	 * @param string $chunk_name
383
+	 * @param string $asset_type
384
+	 * @return string
385
+	 * @since 4.9.59.p
386
+	 */
387
+	public function getAssetUrl($namespace, $chunk_name, $asset_type)
388
+	{
389
+		$url = isset(
390
+			$this->manifest_data[ $namespace ][ $chunk_name ][ $asset_type ],
391
+			$this->manifest_data[ $namespace ]['url_base']
392
+		)
393
+			? $this->manifest_data[ $namespace ]['url_base']
394
+			  . $this->manifest_data[ $namespace ][ $chunk_name ][ $asset_type ]
395
+			: $chunk_name;
396
+		return apply_filters(
397
+			'FHEE__EventEspresso_core_services_assets_Registry__getAssetUrl',
398
+			$url,
399
+			$namespace,
400
+			$chunk_name,
401
+			$asset_type
402
+		);
403
+	}
404
+
405
+
406
+	/**
407
+	 * Return the url to a js file for the given namespace and chunk name.
408
+	 *
409
+	 * @param string $namespace
410
+	 * @param string $chunk_name
411
+	 * @return string
412
+	 */
413
+	public function getJsUrl($namespace, $chunk_name)
414
+	{
415
+		return $this->getAssetUrl($namespace, $chunk_name, Asset::TYPE_JS);
416
+	}
417
+
418
+
419
+	/**
420
+	 * Return the url to a css file for the given namespace and chunk name.
421
+	 *
422
+	 * @param string $namespace
423
+	 * @param string $chunk_name
424
+	 * @return string
425
+	 */
426
+	public function getCssUrl($namespace, $chunk_name)
427
+	{
428
+		return $this->getAssetUrl($namespace, $chunk_name, Asset::TYPE_CSS);
429
+	}
430
+
431
+
432
+	/**
433
+	 * @since $VID:$
434
+	 * @throws InvalidArgumentException
435
+	 * @throws InvalidFilePathException
436
+	 */
437
+	public function registerManifestFiles()
438
+	{
439
+		$manifest_files = $this->assets->getManifestFiles();
440
+		foreach ($manifest_files as $manifest_file) {
441
+			$this->registerManifestFile(
442
+				$manifest_file->assetNamespace(),
443
+				$manifest_file->urlBase(),
444
+				$manifest_file->filepath() . Registry::FILE_NAME_BUILD_MANIFEST
445
+			);
446
+		}
447
+	}
448
+
449
+
450
+	/**
451
+	 * Used to register a js/css manifest file with the registered_manifest_files property.
452
+	 *
453
+	 * @param string $namespace     Provided to associate the manifest file with a specific namespace.
454
+	 * @param string $url_base      The url base for the manifest file location.
455
+	 * @param string $manifest_file The absolute path to the manifest file.
456
+	 * @throws InvalidArgumentException
457
+	 * @throws InvalidFilePathException
458
+	 * @since 4.9.59.p
459
+	 */
460
+	public function registerManifestFile($namespace, $url_base, $manifest_file)
461
+	{
462
+		if (isset($this->manifest_data[ $namespace ])) {
463
+			throw new InvalidArgumentException(
464
+				sprintf(
465
+					esc_html__(
466
+						'The namespace for this manifest file has already been registered, choose a namespace other than %s',
467
+						'event_espresso'
468
+					),
469
+					$namespace
470
+				)
471
+			);
472
+		}
473
+		if (filter_var($url_base, FILTER_VALIDATE_URL) === false) {
474
+			if (is_admin()) {
475
+				EE_Error::add_error(
476
+					sprintf(
477
+						esc_html__(
478
+							'The url given for %1$s assets is invalid.  The url provided was: "%2$s". This usually happens when another plugin or theme on a site is using the "%3$s" filter or has an invalid url set for the "%4$s" constant',
479
+							'event_espresso'
480
+						),
481
+						'Event Espresso',
482
+						$url_base,
483
+						'plugins_url',
484
+						'WP_PLUGIN_URL'
485
+					),
486
+					__FILE__,
487
+					__FUNCTION__,
488
+					__LINE__
489
+				);
490
+			}
491
+			return;
492
+		}
493
+		$this->manifest_data[ $namespace ] = $this->decodeManifestFile($manifest_file);
494
+		if (! isset($this->manifest_data[ $namespace ]['url_base'])) {
495
+			$this->manifest_data[ $namespace ]['url_base'] = trailingslashit($url_base);
496
+		}
497
+	}
498
+
499
+
500
+	/**
501
+	 * Decodes json from the provided manifest file.
502
+	 *
503
+	 * @since 4.9.59.p
504
+	 * @param string $manifest_file Path to manifest file.
505
+	 * @return array
506
+	 * @throws InvalidFilePathException
507
+	 */
508
+	private function decodeManifestFile($manifest_file)
509
+	{
510
+		if (! file_exists($manifest_file)) {
511
+			throw new InvalidFilePathException($manifest_file);
512
+		}
513
+		return json_decode(file_get_contents($manifest_file), true);
514
+	}
515
+
516
+
517
+	/**
518
+	 * This is used to set registered script handles that have data.
519
+	 *
520
+	 * @param string $script_handle
521
+	 */
522
+	private function addRegisteredScriptHandlesWithData($script_handle)
523
+	{
524
+		$this->script_handles_with_data[ $script_handle ] = $script_handle;
525
+	}
526
+
527
+
528
+	/**i
529 529
      * Checks WP_Scripts for all of each script handle registered internally as having data and unsets from the
530 530
      * Dependency stored in WP_Scripts if its set.
531 531
      */
532
-    private function removeAlreadyRegisteredDataForScriptHandles()
533
-    {
534
-        if (empty($this->script_handles_with_data)) {
535
-            return;
536
-        }
537
-        foreach ($this->script_handles_with_data as $script_handle) {
538
-            $this->removeAlreadyRegisteredDataForScriptHandle($script_handle);
539
-        }
540
-    }
541
-
542
-
543
-    /**
544
-     * Removes any data dependency registered in WP_Scripts if its set.
545
-     *
546
-     * @param string $script_handle
547
-     */
548
-    private function removeAlreadyRegisteredDataForScriptHandle($script_handle)
549
-    {
550
-        if (isset($this->script_handles_with_data[ $script_handle ])) {
551
-            global $wp_scripts;
552
-            $unset_handle = false;
553
-            if ($wp_scripts->get_data($script_handle, 'data')) {
554
-                unset($wp_scripts->registered[ $script_handle ]->extra['data']);
555
-                $unset_handle = true;
556
-            }
557
-            //deal with inline_scripts
558
-            if ($wp_scripts->get_data($script_handle, 'before')) {
559
-                unset($wp_scripts->registered[ $script_handle ]->extra['before']);
560
-                $unset_handle = true;
561
-            }
562
-            if ($wp_scripts->get_data($script_handle, 'after')) {
563
-                unset($wp_scripts->registered[ $script_handle ]->extra['after']);
564
-            }
565
-            if ($unset_handle) {
566
-                unset($this->script_handles_with_data[ $script_handle ]);
567
-            }
568
-        }
569
-    }
570
-
571
-
572
-    /**
573
-     * register translations for a registered script
574
-     *
575
-     * @param string $handle
576
-     */
577
-    public function registerTranslation($handle)
578
-    {
579
-        $this->i18n_registry->registerScriptI18n($handle);
580
-    }
532
+	private function removeAlreadyRegisteredDataForScriptHandles()
533
+	{
534
+		if (empty($this->script_handles_with_data)) {
535
+			return;
536
+		}
537
+		foreach ($this->script_handles_with_data as $script_handle) {
538
+			$this->removeAlreadyRegisteredDataForScriptHandle($script_handle);
539
+		}
540
+	}
541
+
542
+
543
+	/**
544
+	 * Removes any data dependency registered in WP_Scripts if its set.
545
+	 *
546
+	 * @param string $script_handle
547
+	 */
548
+	private function removeAlreadyRegisteredDataForScriptHandle($script_handle)
549
+	{
550
+		if (isset($this->script_handles_with_data[ $script_handle ])) {
551
+			global $wp_scripts;
552
+			$unset_handle = false;
553
+			if ($wp_scripts->get_data($script_handle, 'data')) {
554
+				unset($wp_scripts->registered[ $script_handle ]->extra['data']);
555
+				$unset_handle = true;
556
+			}
557
+			//deal with inline_scripts
558
+			if ($wp_scripts->get_data($script_handle, 'before')) {
559
+				unset($wp_scripts->registered[ $script_handle ]->extra['before']);
560
+				$unset_handle = true;
561
+			}
562
+			if ($wp_scripts->get_data($script_handle, 'after')) {
563
+				unset($wp_scripts->registered[ $script_handle ]->extra['after']);
564
+			}
565
+			if ($unset_handle) {
566
+				unset($this->script_handles_with_data[ $script_handle ]);
567
+			}
568
+		}
569
+	}
570
+
571
+
572
+	/**
573
+	 * register translations for a registered script
574
+	 *
575
+	 * @param string $handle
576
+	 */
577
+	public function registerTranslation($handle)
578
+	{
579
+		$this->i18n_registry->registerScriptI18n($handle);
580
+	}
581 581
 }
Please login to merge, or discard this patch.
core/exceptions/InvalidIdentifierException.php 1 patch
Indentation   +23 added lines, -23 removed lines patch added patch discarded remove patch
@@ -16,28 +16,28 @@
 block discarded – undo
16 16
 class InvalidIdentifierException extends InvalidArgumentException
17 17
 {
18 18
 
19
-    /**
20
-     * InvalidIdentifierException constructor.
21
-     *
22
-     * @param string     $actual   the identifier that was supplied
23
-     * @param string     $expected example of an acceptable identifier
24
-     * @param string     $message
25
-     * @param int        $code
26
-     * @param Exception $previous
27
-     */
28
-    public function __construct($actual, $expected, $message = '', $code = 0, Exception $previous = null)
29
-    {
30
-        if (empty($message)) {
31
-            $message = sprintf(
32
-                __(
33
-                    'The supplied identifier "%1$s" is invalid. A value like "%2$s" was expected.',
34
-                    'event_espresso'
35
-                ),
36
-                $actual,
37
-                $expected
38
-            );
39
-        }
40
-        parent::__construct($message, $code, $previous);
41
-    }
19
+	/**
20
+	 * InvalidIdentifierException constructor.
21
+	 *
22
+	 * @param string     $actual   the identifier that was supplied
23
+	 * @param string     $expected example of an acceptable identifier
24
+	 * @param string     $message
25
+	 * @param int        $code
26
+	 * @param Exception $previous
27
+	 */
28
+	public function __construct($actual, $expected, $message = '', $code = 0, Exception $previous = null)
29
+	{
30
+		if (empty($message)) {
31
+			$message = sprintf(
32
+				__(
33
+					'The supplied identifier "%1$s" is invalid. A value like "%2$s" was expected.',
34
+					'event_espresso'
35
+				),
36
+				$actual,
37
+				$expected
38
+			);
39
+		}
40
+		parent::__construct($message, $code, $previous);
41
+	}
42 42
 }
43 43
 // Location: core/exceptions/InvalidIdentifierException.php
Please login to merge, or discard this patch.
core/domain/services/assets/CoreAssetManager.php 2 patches
Spacing   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -175,7 +175,7 @@  discard block
 block discarded – undo
175 175
             //js.api
176 176
             $this->addJavascript(
177 177
                 CoreAssetManager::JS_HANDLE_EE_JS_API,
178
-                EE_LIBRARIES_URL . 'rest_api/assets/js/eejs-api.min.js',
178
+                EE_LIBRARIES_URL.'rest_api/assets/js/eejs-api.min.js',
179 179
                 array(
180 180
                     CoreAssetManager::JS_HANDLE_UNDERSCORE,
181 181
                     CoreAssetManager::JS_HANDLE_EE_JS_CORE
@@ -187,11 +187,11 @@  discard block
 block discarded – undo
187 187
 
188 188
         $this->addJavascript(
189 189
             CoreAssetManager::JS_HANDLE_EE_CORE,
190
-            EE_GLOBAL_ASSETS_URL . 'scripts/espresso_core.js',
190
+            EE_GLOBAL_ASSETS_URL.'scripts/espresso_core.js',
191 191
             array(CoreAssetManager::JS_HANDLE_JQUERY)
192 192
         )
193 193
         ->setLocalizationCallback(
194
-            function () {
194
+            function() {
195 195
                 wp_localize_script(
196 196
                     CoreAssetManager::JS_HANDLE_EE_CORE,
197 197
                     CoreAssetManager::JS_HANDLE_EE_I18N,
@@ -213,16 +213,16 @@  discard block
 block discarded – undo
213 213
         if ($this->template_config->enable_default_style && ! is_admin()) {
214 214
             $this->addStylesheet(
215 215
                 CoreAssetManager::CSS_HANDLE_EE_DEFAULT,
216
-                is_readable(EVENT_ESPRESSO_UPLOAD_DIR . 'css/style.css')
216
+                is_readable(EVENT_ESPRESSO_UPLOAD_DIR.'css/style.css')
217 217
                     ? EVENT_ESPRESSO_UPLOAD_DIR . 'css/espresso_default.css'
218
-                    : EE_GLOBAL_ASSETS_URL . 'css/espresso_default.css',
218
+                    : EE_GLOBAL_ASSETS_URL.'css/espresso_default.css',
219 219
                 array('dashicons')
220 220
             );
221 221
             //Load custom style sheet if available
222 222
             if ($this->template_config->custom_style_sheet !== null) {
223 223
                 $this->addStylesheet(
224 224
                     CoreAssetManager::CSS_HANDLE_EE_CUSTOM,
225
-                    EVENT_ESPRESSO_UPLOAD_URL . 'css/' . $this->template_config->custom_style_sheet,
225
+                    EVENT_ESPRESSO_UPLOAD_URL.'css/'.$this->template_config->custom_style_sheet,
226 226
                     array(CoreAssetManager::CSS_HANDLE_EE_DEFAULT)
227 227
                 );
228 228
             }
@@ -242,14 +242,14 @@  discard block
 block discarded – undo
242 242
     {
243 243
         $this->addJavascript(
244 244
             CoreAssetManager::JS_HANDLE_JQUERY_VALIDATE,
245
-            EE_GLOBAL_ASSETS_URL . 'scripts/jquery.validate.min.js',
245
+            EE_GLOBAL_ASSETS_URL.'scripts/jquery.validate.min.js',
246 246
             array(CoreAssetManager::JS_HANDLE_JQUERY)
247 247
         )
248 248
         ->setVersion('1.15.0');
249 249
 
250 250
         $this->addJavascript(
251 251
             CoreAssetManager::JS_HANDLE_JQUERY_VALIDATE_EXTRA,
252
-            EE_GLOBAL_ASSETS_URL . 'scripts/jquery.validate.additional-methods.min.js',
252
+            EE_GLOBAL_ASSETS_URL.'scripts/jquery.validate.additional-methods.min.js',
253 253
             array(CoreAssetManager::JS_HANDLE_JQUERY_VALIDATE)
254 254
         )
255 255
         ->setVersion('1.15.0');
@@ -270,7 +270,7 @@  discard block
 block discarded – undo
270 270
         // @link http://josscrowcroft.github.io/accounting.js/
271 271
         $this->addJavascript(
272 272
             CoreAssetManager::JS_HANDLE_ACCOUNTING_CORE,
273
-            EE_THIRD_PARTY_URL . 'accounting/accounting.js',
273
+            EE_THIRD_PARTY_URL.'accounting/accounting.js',
274 274
             array(CoreAssetManager::JS_HANDLE_UNDERSCORE)
275 275
         )
276 276
         ->setVersion('0.3.2');
@@ -278,11 +278,11 @@  discard block
 block discarded – undo
278 278
         $currency_config = $this->currency_config;
279 279
         $this->addJavascript(
280 280
             CoreAssetManager::JS_HANDLE_EE_ACCOUNTING,
281
-            EE_GLOBAL_ASSETS_URL . 'scripts/ee-accounting-config.js',
281
+            EE_GLOBAL_ASSETS_URL.'scripts/ee-accounting-config.js',
282 282
             array(CoreAssetManager::JS_HANDLE_ACCOUNTING_CORE)
283 283
         )
284 284
         ->setLocalizationCallback(
285
-            function () use ($currency_config) {
285
+            function() use ($currency_config) {
286 286
                  wp_localize_script(
287 287
                      CoreAssetManager::JS_HANDLE_EE_ACCOUNTING,
288 288
                      'EE_ACCOUNTING_CFG',
Please login to merge, or discard this patch.
Indentation   +332 added lines, -332 removed lines patch added patch discarded remove patch
@@ -28,336 +28,336 @@
 block discarded – undo
28 28
 class CoreAssetManager extends AssetManager
29 29
 {
30 30
 
31
-    // WordPress core / Third party JS asset handles
32
-    const JS_HANDLE_JQUERY                = 'jquery';
33
-
34
-    const JS_HANDLE_JQUERY_VALIDATE       = 'jquery-validate';
35
-
36
-    const JS_HANDLE_JQUERY_VALIDATE_EXTRA = 'jquery-validate-extra-methods';
37
-
38
-    const JS_HANDLE_UNDERSCORE            = 'underscore';
39
-
40
-    const JS_HANDLE_ACCOUNTING_CORE       = 'ee-accounting-core';
41
-
42
-    // EE JS assets handles
43
-    const JS_HANDLE_EE_MANIFEST        = 'ee-manifest';
44
-
45
-    const JS_HANDLE_EE_JS_CORE         = 'eejs-core';
46
-
47
-    const JS_HANDLE_EE_VENDOR_REACT    = 'ee-vendor-react';
48
-
49
-    const JS_HANDLE_EE_JS_API          = 'eejs-api';
50
-
51
-    const JS_HANDLE_EE_CORE            = 'espresso_core';
52
-
53
-    const JS_HANDLE_EE_I18N            = 'eei18n';
54
-
55
-    const JS_HANDLE_EE_ACCOUNTING      = 'ee-accounting';
56
-
57
-    const JS_HANDLE_EE_WP_PLUGINS_PAGE = 'ee-wp-plugins-page';
58
-
59
-    // EE CSS assets handles
60
-    const CSS_HANDLE_EE_DEFAULT = 'espresso_default';
61
-
62
-    const CSS_HANDLE_EE_CUSTOM  = 'espresso_custom_css';
63
-
64
-    /**
65
-     * @var EE_Currency_Config $currency_config
66
-     */
67
-    protected $currency_config;
68
-
69
-    /**
70
-     * @var EE_Template_Config $template_config
71
-     */
72
-    protected $template_config;
73
-
74
-
75
-    /**
76
-     * CoreAssetRegister constructor.
77
-     *
78
-     * @param AssetCollection    $assets
79
-     * @param EE_Currency_Config $currency_config
80
-     * @param EE_Template_Config $template_config
81
-     * @param DomainInterface    $domain
82
-     * @param Registry           $registry
83
-     */
84
-    public function __construct(
85
-        AssetCollection $assets,
86
-        EE_Currency_Config $currency_config,
87
-        EE_Template_Config $template_config,
88
-        DomainInterface $domain,
89
-        Registry $registry
90
-    ) {
91
-        $this->currency_config = $currency_config;
92
-        $this->template_config = $template_config;
93
-        parent::__construct($domain, $assets, $registry);
94
-    }
95
-
96
-
97
-    /**
98
-     * @since $VID:$
99
-     * @throws DuplicateCollectionIdentifierException
100
-     * @throws InvalidArgumentException
101
-     * @throws InvalidDataTypeException
102
-     * @throws InvalidEntityException
103
-     */
104
-    public function addAssets()
105
-    {
106
-        $this->addJavascriptFiles();
107
-        $this->addStylesheetFiles();
108
-    }
109
-
110
-
111
-    /**
112
-     * @since $VID:$
113
-     * @throws DuplicateCollectionIdentifierException
114
-     * @throws InvalidArgumentException
115
-     * @throws InvalidDataTypeException
116
-     * @throws InvalidEntityException
117
-     */
118
-    public function addJavascriptFiles()
119
-    {
120
-        $this->loadCoreJs();
121
-        $this->loadJqueryValidate();
122
-        $this->loadAccountingJs();
123
-        add_action(
124
-            'AHEE__EventEspresso_core_services_assets_Registry__registerScripts__before_script',
125
-            array($this, 'loadQtipJs')
126
-        );
127
-        $this->registerAdminAssets();
128
-    }
129
-
130
-
131
-    /**
132
-     * @since $VID:$
133
-     * @throws DuplicateCollectionIdentifierException
134
-     * @throws InvalidDataTypeException
135
-     * @throws InvalidEntityException
136
-     */
137
-    public function addStylesheetFiles()
138
-    {
139
-        $this->loadCoreCss();
140
-    }
141
-
142
-
143
-    /**
144
-     * core default javascript
145
-     *
146
-     * @since $VID:$
147
-     * @throws DuplicateCollectionIdentifierException
148
-     * @throws InvalidArgumentException
149
-     * @throws InvalidDataTypeException
150
-     * @throws InvalidEntityException
151
-     */
152
-    private function loadCoreJs()
153
-    {
154
-        $this->addJavascript(
155
-            CoreAssetManager::JS_HANDLE_EE_MANIFEST,
156
-            $this->registry->getJsUrl($this->domain->assetNamespace(), 'manifest')
157
-        );
158
-
159
-        $this->addJavascript(
160
-            CoreAssetManager::JS_HANDLE_EE_JS_CORE,
161
-            $this->registry->getJsUrl($this->domain->assetNamespace(), 'eejs'),
162
-            array(CoreAssetManager::JS_HANDLE_EE_MANIFEST)
163
-        )
164
-        ->setRequiresTranslation()
165
-        ->setHasLocalizedData();
166
-
167
-        $this->addJavascript(
168
-            CoreAssetManager::JS_HANDLE_EE_VENDOR_REACT,
169
-            $this->registry->getJsUrl($this->domain->assetNamespace(), 'reactVendor'),
170
-            array(CoreAssetManager::JS_HANDLE_EE_JS_CORE)
171
-        );
172
-
173
-        global $wp_version;
174
-        if (version_compare($wp_version, '4.4.0', '>')) {
175
-            //js.api
176
-            $this->addJavascript(
177
-                CoreAssetManager::JS_HANDLE_EE_JS_API,
178
-                EE_LIBRARIES_URL . 'rest_api/assets/js/eejs-api.min.js',
179
-                array(
180
-                    CoreAssetManager::JS_HANDLE_UNDERSCORE,
181
-                    CoreAssetManager::JS_HANDLE_EE_JS_CORE
182
-                )
183
-            );
184
-            $this->registry->addData('eejs_api_nonce', wp_create_nonce('wp_rest'));
185
-            $this->registry->addData(
186
-                'paths',
187
-                array(
188
-                    'rest_route' => rest_url('ee/v4.8.36/'),
189
-                    'collection_endpoints' => EED_Core_Rest_Api::getCollectionRoutesIndexedByModelName(),
190
-                )
191
-            );
192
-        }
193
-
194
-        $this->addJavascript(
195
-            CoreAssetManager::JS_HANDLE_EE_CORE,
196
-            EE_GLOBAL_ASSETS_URL . 'scripts/espresso_core.js',
197
-            array(CoreAssetManager::JS_HANDLE_JQUERY)
198
-        )
199
-        ->setLocalizationCallback(
200
-            function () {
201
-                wp_localize_script(
202
-                    CoreAssetManager::JS_HANDLE_EE_CORE,
203
-                    CoreAssetManager::JS_HANDLE_EE_I18N,
204
-                    EE_Registry::$i18n_js_strings
205
-                );
206
-            }
207
-        );
208
-    }
209
-
210
-
211
-    /**
212
-     * @since $VID:$
213
-     * @throws DuplicateCollectionIdentifierException
214
-     * @throws InvalidDataTypeException
215
-     * @throws InvalidEntityException
216
-     */
217
-    private function loadCoreCss()
218
-    {
219
-        if ($this->template_config->enable_default_style && ! is_admin()) {
220
-            $this->addStylesheet(
221
-                CoreAssetManager::CSS_HANDLE_EE_DEFAULT,
222
-                is_readable(EVENT_ESPRESSO_UPLOAD_DIR . 'css/style.css')
223
-                    ? EVENT_ESPRESSO_UPLOAD_DIR . 'css/espresso_default.css'
224
-                    : EE_GLOBAL_ASSETS_URL . 'css/espresso_default.css',
225
-                array('dashicons')
226
-            );
227
-            //Load custom style sheet if available
228
-            if ($this->template_config->custom_style_sheet !== null) {
229
-                $this->addStylesheet(
230
-                    CoreAssetManager::CSS_HANDLE_EE_CUSTOM,
231
-                    EVENT_ESPRESSO_UPLOAD_URL . 'css/' . $this->template_config->custom_style_sheet,
232
-                    array(CoreAssetManager::CSS_HANDLE_EE_DEFAULT)
233
-                );
234
-            }
235
-        }
236
-    }
237
-
238
-
239
-    /**
240
-     * jQuery Validate for form validation
241
-     *
242
-     * @since $VID:$
243
-     * @throws DuplicateCollectionIdentifierException
244
-     * @throws InvalidDataTypeException
245
-     * @throws InvalidEntityException
246
-     */
247
-    private function loadJqueryValidate()
248
-    {
249
-        $this->addJavascript(
250
-            CoreAssetManager::JS_HANDLE_JQUERY_VALIDATE,
251
-            EE_GLOBAL_ASSETS_URL . 'scripts/jquery.validate.min.js',
252
-            array(CoreAssetManager::JS_HANDLE_JQUERY)
253
-        )
254
-        ->setVersion('1.15.0');
255
-
256
-        $this->addJavascript(
257
-            CoreAssetManager::JS_HANDLE_JQUERY_VALIDATE_EXTRA,
258
-            EE_GLOBAL_ASSETS_URL . 'scripts/jquery.validate.additional-methods.min.js',
259
-            array(CoreAssetManager::JS_HANDLE_JQUERY_VALIDATE)
260
-        )
261
-        ->setVersion('1.15.0');
262
-    }
263
-
264
-
265
-    /**
266
-     * accounting.js for performing client-side calculations
267
-     *
268
-     * @since $VID:$
269
-     * @throws DuplicateCollectionIdentifierException
270
-     * @throws InvalidDataTypeException
271
-     * @throws InvalidEntityException
272
-     */
273
-    private function loadAccountingJs()
274
-    {
275
-        //accounting.js library
276
-        // @link http://josscrowcroft.github.io/accounting.js/
277
-        $this->addJavascript(
278
-            CoreAssetManager::JS_HANDLE_ACCOUNTING_CORE,
279
-            EE_THIRD_PARTY_URL . 'accounting/accounting.js',
280
-            array(CoreAssetManager::JS_HANDLE_UNDERSCORE)
281
-        )
282
-        ->setVersion('0.3.2');
283
-
284
-        $currency_config = $this->currency_config;
285
-        $this->addJavascript(
286
-            CoreAssetManager::JS_HANDLE_EE_ACCOUNTING,
287
-            EE_GLOBAL_ASSETS_URL . 'scripts/ee-accounting-config.js',
288
-            array(CoreAssetManager::JS_HANDLE_ACCOUNTING_CORE)
289
-        )
290
-        ->setLocalizationCallback(
291
-            function () use ($currency_config) {
292
-                 wp_localize_script(
293
-                     CoreAssetManager::JS_HANDLE_EE_ACCOUNTING,
294
-                     'EE_ACCOUNTING_CFG',
295
-                     array(
296
-                         'currency' => array(
297
-                             'symbol'    => $currency_config->sign,
298
-                             'format'    => array(
299
-                                 'pos'  => $currency_config->sign_b4 ? '%s%v' : '%v%s',
300
-                                 'neg'  => $currency_config->sign_b4 ? '- %s%v' : '- %v%s',
301
-                                 'zero' => $currency_config->sign_b4 ? '%s--' : '--%s',
302
-                             ),
303
-                             'decimal'   => $currency_config->dec_mrk,
304
-                             'thousand'  => $currency_config->thsnds,
305
-                             'precision' => $currency_config->dec_plc,
306
-                         ),
307
-                         'number'   => array(
308
-                             'precision' => $currency_config->dec_plc,
309
-                             'thousand'  => $currency_config->thsnds,
310
-                             'decimal'   => $currency_config->dec_mrk,
311
-                         ),
312
-                     )
313
-                 );
314
-            }
315
-        )
316
-        ->setVersion();
317
-    }
318
-
319
-
320
-    /**
321
-     * registers assets for cleaning your ears
322
-     *
323
-     * @param JavascriptAsset $script
324
-     */
325
-    public function loadQtipJs(JavascriptAsset $script)
326
-    {
327
-        // qtip is turned OFF by default, but prior to the wp_enqueue_scripts hook,
328
-        // can be turned back on again via: add_filter('FHEE_load_qtip', '__return_true' );
329
-        if (
330
-            $script->handle() === CoreAssetManager::JS_HANDLE_EE_WP_PLUGINS_PAGE
331
-            && apply_filters('FHEE_load_qtip', false)
332
-        ) {
333
-            EEH_Qtip_Loader::instance()->register_and_enqueue();
334
-        }
335
-    }
336
-
337
-
338
-    /**
339
-     * assets that are used in the WordPress admin
340
-     *
341
-     * @since $VID:$
342
-     * @throws DuplicateCollectionIdentifierException
343
-     * @throws InvalidDataTypeException
344
-     * @throws InvalidEntityException
345
-     */
346
-    private function registerAdminAssets()
347
-    {
348
-        $this->addJavascript(
349
-            CoreAssetManager::JS_HANDLE_EE_WP_PLUGINS_PAGE,
350
-            $this->registry->getJsUrl($this->domain->assetNamespace(), 'wp-plugins-page'),
351
-            array(
352
-                CoreAssetManager::JS_HANDLE_JQUERY,
353
-                CoreAssetManager::JS_HANDLE_EE_VENDOR_REACT,
354
-            )
355
-        )
356
-        ->setRequiresTranslation();
357
-
358
-        $this->addStylesheet(
359
-            CoreAssetManager::JS_HANDLE_EE_WP_PLUGINS_PAGE,
360
-            $this->registry->getCssUrl($this->domain->assetNamespace(), 'wp-plugins-page')
361
-        );
362
-    }
31
+	// WordPress core / Third party JS asset handles
32
+	const JS_HANDLE_JQUERY                = 'jquery';
33
+
34
+	const JS_HANDLE_JQUERY_VALIDATE       = 'jquery-validate';
35
+
36
+	const JS_HANDLE_JQUERY_VALIDATE_EXTRA = 'jquery-validate-extra-methods';
37
+
38
+	const JS_HANDLE_UNDERSCORE            = 'underscore';
39
+
40
+	const JS_HANDLE_ACCOUNTING_CORE       = 'ee-accounting-core';
41
+
42
+	// EE JS assets handles
43
+	const JS_HANDLE_EE_MANIFEST        = 'ee-manifest';
44
+
45
+	const JS_HANDLE_EE_JS_CORE         = 'eejs-core';
46
+
47
+	const JS_HANDLE_EE_VENDOR_REACT    = 'ee-vendor-react';
48
+
49
+	const JS_HANDLE_EE_JS_API          = 'eejs-api';
50
+
51
+	const JS_HANDLE_EE_CORE            = 'espresso_core';
52
+
53
+	const JS_HANDLE_EE_I18N            = 'eei18n';
54
+
55
+	const JS_HANDLE_EE_ACCOUNTING      = 'ee-accounting';
56
+
57
+	const JS_HANDLE_EE_WP_PLUGINS_PAGE = 'ee-wp-plugins-page';
58
+
59
+	// EE CSS assets handles
60
+	const CSS_HANDLE_EE_DEFAULT = 'espresso_default';
61
+
62
+	const CSS_HANDLE_EE_CUSTOM  = 'espresso_custom_css';
63
+
64
+	/**
65
+	 * @var EE_Currency_Config $currency_config
66
+	 */
67
+	protected $currency_config;
68
+
69
+	/**
70
+	 * @var EE_Template_Config $template_config
71
+	 */
72
+	protected $template_config;
73
+
74
+
75
+	/**
76
+	 * CoreAssetRegister constructor.
77
+	 *
78
+	 * @param AssetCollection    $assets
79
+	 * @param EE_Currency_Config $currency_config
80
+	 * @param EE_Template_Config $template_config
81
+	 * @param DomainInterface    $domain
82
+	 * @param Registry           $registry
83
+	 */
84
+	public function __construct(
85
+		AssetCollection $assets,
86
+		EE_Currency_Config $currency_config,
87
+		EE_Template_Config $template_config,
88
+		DomainInterface $domain,
89
+		Registry $registry
90
+	) {
91
+		$this->currency_config = $currency_config;
92
+		$this->template_config = $template_config;
93
+		parent::__construct($domain, $assets, $registry);
94
+	}
95
+
96
+
97
+	/**
98
+	 * @since $VID:$
99
+	 * @throws DuplicateCollectionIdentifierException
100
+	 * @throws InvalidArgumentException
101
+	 * @throws InvalidDataTypeException
102
+	 * @throws InvalidEntityException
103
+	 */
104
+	public function addAssets()
105
+	{
106
+		$this->addJavascriptFiles();
107
+		$this->addStylesheetFiles();
108
+	}
109
+
110
+
111
+	/**
112
+	 * @since $VID:$
113
+	 * @throws DuplicateCollectionIdentifierException
114
+	 * @throws InvalidArgumentException
115
+	 * @throws InvalidDataTypeException
116
+	 * @throws InvalidEntityException
117
+	 */
118
+	public function addJavascriptFiles()
119
+	{
120
+		$this->loadCoreJs();
121
+		$this->loadJqueryValidate();
122
+		$this->loadAccountingJs();
123
+		add_action(
124
+			'AHEE__EventEspresso_core_services_assets_Registry__registerScripts__before_script',
125
+			array($this, 'loadQtipJs')
126
+		);
127
+		$this->registerAdminAssets();
128
+	}
129
+
130
+
131
+	/**
132
+	 * @since $VID:$
133
+	 * @throws DuplicateCollectionIdentifierException
134
+	 * @throws InvalidDataTypeException
135
+	 * @throws InvalidEntityException
136
+	 */
137
+	public function addStylesheetFiles()
138
+	{
139
+		$this->loadCoreCss();
140
+	}
141
+
142
+
143
+	/**
144
+	 * core default javascript
145
+	 *
146
+	 * @since $VID:$
147
+	 * @throws DuplicateCollectionIdentifierException
148
+	 * @throws InvalidArgumentException
149
+	 * @throws InvalidDataTypeException
150
+	 * @throws InvalidEntityException
151
+	 */
152
+	private function loadCoreJs()
153
+	{
154
+		$this->addJavascript(
155
+			CoreAssetManager::JS_HANDLE_EE_MANIFEST,
156
+			$this->registry->getJsUrl($this->domain->assetNamespace(), 'manifest')
157
+		);
158
+
159
+		$this->addJavascript(
160
+			CoreAssetManager::JS_HANDLE_EE_JS_CORE,
161
+			$this->registry->getJsUrl($this->domain->assetNamespace(), 'eejs'),
162
+			array(CoreAssetManager::JS_HANDLE_EE_MANIFEST)
163
+		)
164
+		->setRequiresTranslation()
165
+		->setHasLocalizedData();
166
+
167
+		$this->addJavascript(
168
+			CoreAssetManager::JS_HANDLE_EE_VENDOR_REACT,
169
+			$this->registry->getJsUrl($this->domain->assetNamespace(), 'reactVendor'),
170
+			array(CoreAssetManager::JS_HANDLE_EE_JS_CORE)
171
+		);
172
+
173
+		global $wp_version;
174
+		if (version_compare($wp_version, '4.4.0', '>')) {
175
+			//js.api
176
+			$this->addJavascript(
177
+				CoreAssetManager::JS_HANDLE_EE_JS_API,
178
+				EE_LIBRARIES_URL . 'rest_api/assets/js/eejs-api.min.js',
179
+				array(
180
+					CoreAssetManager::JS_HANDLE_UNDERSCORE,
181
+					CoreAssetManager::JS_HANDLE_EE_JS_CORE
182
+				)
183
+			);
184
+			$this->registry->addData('eejs_api_nonce', wp_create_nonce('wp_rest'));
185
+			$this->registry->addData(
186
+				'paths',
187
+				array(
188
+					'rest_route' => rest_url('ee/v4.8.36/'),
189
+					'collection_endpoints' => EED_Core_Rest_Api::getCollectionRoutesIndexedByModelName(),
190
+				)
191
+			);
192
+		}
193
+
194
+		$this->addJavascript(
195
+			CoreAssetManager::JS_HANDLE_EE_CORE,
196
+			EE_GLOBAL_ASSETS_URL . 'scripts/espresso_core.js',
197
+			array(CoreAssetManager::JS_HANDLE_JQUERY)
198
+		)
199
+		->setLocalizationCallback(
200
+			function () {
201
+				wp_localize_script(
202
+					CoreAssetManager::JS_HANDLE_EE_CORE,
203
+					CoreAssetManager::JS_HANDLE_EE_I18N,
204
+					EE_Registry::$i18n_js_strings
205
+				);
206
+			}
207
+		);
208
+	}
209
+
210
+
211
+	/**
212
+	 * @since $VID:$
213
+	 * @throws DuplicateCollectionIdentifierException
214
+	 * @throws InvalidDataTypeException
215
+	 * @throws InvalidEntityException
216
+	 */
217
+	private function loadCoreCss()
218
+	{
219
+		if ($this->template_config->enable_default_style && ! is_admin()) {
220
+			$this->addStylesheet(
221
+				CoreAssetManager::CSS_HANDLE_EE_DEFAULT,
222
+				is_readable(EVENT_ESPRESSO_UPLOAD_DIR . 'css/style.css')
223
+					? EVENT_ESPRESSO_UPLOAD_DIR . 'css/espresso_default.css'
224
+					: EE_GLOBAL_ASSETS_URL . 'css/espresso_default.css',
225
+				array('dashicons')
226
+			);
227
+			//Load custom style sheet if available
228
+			if ($this->template_config->custom_style_sheet !== null) {
229
+				$this->addStylesheet(
230
+					CoreAssetManager::CSS_HANDLE_EE_CUSTOM,
231
+					EVENT_ESPRESSO_UPLOAD_URL . 'css/' . $this->template_config->custom_style_sheet,
232
+					array(CoreAssetManager::CSS_HANDLE_EE_DEFAULT)
233
+				);
234
+			}
235
+		}
236
+	}
237
+
238
+
239
+	/**
240
+	 * jQuery Validate for form validation
241
+	 *
242
+	 * @since $VID:$
243
+	 * @throws DuplicateCollectionIdentifierException
244
+	 * @throws InvalidDataTypeException
245
+	 * @throws InvalidEntityException
246
+	 */
247
+	private function loadJqueryValidate()
248
+	{
249
+		$this->addJavascript(
250
+			CoreAssetManager::JS_HANDLE_JQUERY_VALIDATE,
251
+			EE_GLOBAL_ASSETS_URL . 'scripts/jquery.validate.min.js',
252
+			array(CoreAssetManager::JS_HANDLE_JQUERY)
253
+		)
254
+		->setVersion('1.15.0');
255
+
256
+		$this->addJavascript(
257
+			CoreAssetManager::JS_HANDLE_JQUERY_VALIDATE_EXTRA,
258
+			EE_GLOBAL_ASSETS_URL . 'scripts/jquery.validate.additional-methods.min.js',
259
+			array(CoreAssetManager::JS_HANDLE_JQUERY_VALIDATE)
260
+		)
261
+		->setVersion('1.15.0');
262
+	}
263
+
264
+
265
+	/**
266
+	 * accounting.js for performing client-side calculations
267
+	 *
268
+	 * @since $VID:$
269
+	 * @throws DuplicateCollectionIdentifierException
270
+	 * @throws InvalidDataTypeException
271
+	 * @throws InvalidEntityException
272
+	 */
273
+	private function loadAccountingJs()
274
+	{
275
+		//accounting.js library
276
+		// @link http://josscrowcroft.github.io/accounting.js/
277
+		$this->addJavascript(
278
+			CoreAssetManager::JS_HANDLE_ACCOUNTING_CORE,
279
+			EE_THIRD_PARTY_URL . 'accounting/accounting.js',
280
+			array(CoreAssetManager::JS_HANDLE_UNDERSCORE)
281
+		)
282
+		->setVersion('0.3.2');
283
+
284
+		$currency_config = $this->currency_config;
285
+		$this->addJavascript(
286
+			CoreAssetManager::JS_HANDLE_EE_ACCOUNTING,
287
+			EE_GLOBAL_ASSETS_URL . 'scripts/ee-accounting-config.js',
288
+			array(CoreAssetManager::JS_HANDLE_ACCOUNTING_CORE)
289
+		)
290
+		->setLocalizationCallback(
291
+			function () use ($currency_config) {
292
+				 wp_localize_script(
293
+					 CoreAssetManager::JS_HANDLE_EE_ACCOUNTING,
294
+					 'EE_ACCOUNTING_CFG',
295
+					 array(
296
+						 'currency' => array(
297
+							 'symbol'    => $currency_config->sign,
298
+							 'format'    => array(
299
+								 'pos'  => $currency_config->sign_b4 ? '%s%v' : '%v%s',
300
+								 'neg'  => $currency_config->sign_b4 ? '- %s%v' : '- %v%s',
301
+								 'zero' => $currency_config->sign_b4 ? '%s--' : '--%s',
302
+							 ),
303
+							 'decimal'   => $currency_config->dec_mrk,
304
+							 'thousand'  => $currency_config->thsnds,
305
+							 'precision' => $currency_config->dec_plc,
306
+						 ),
307
+						 'number'   => array(
308
+							 'precision' => $currency_config->dec_plc,
309
+							 'thousand'  => $currency_config->thsnds,
310
+							 'decimal'   => $currency_config->dec_mrk,
311
+						 ),
312
+					 )
313
+				 );
314
+			}
315
+		)
316
+		->setVersion();
317
+	}
318
+
319
+
320
+	/**
321
+	 * registers assets for cleaning your ears
322
+	 *
323
+	 * @param JavascriptAsset $script
324
+	 */
325
+	public function loadQtipJs(JavascriptAsset $script)
326
+	{
327
+		// qtip is turned OFF by default, but prior to the wp_enqueue_scripts hook,
328
+		// can be turned back on again via: add_filter('FHEE_load_qtip', '__return_true' );
329
+		if (
330
+			$script->handle() === CoreAssetManager::JS_HANDLE_EE_WP_PLUGINS_PAGE
331
+			&& apply_filters('FHEE_load_qtip', false)
332
+		) {
333
+			EEH_Qtip_Loader::instance()->register_and_enqueue();
334
+		}
335
+	}
336
+
337
+
338
+	/**
339
+	 * assets that are used in the WordPress admin
340
+	 *
341
+	 * @since $VID:$
342
+	 * @throws DuplicateCollectionIdentifierException
343
+	 * @throws InvalidDataTypeException
344
+	 * @throws InvalidEntityException
345
+	 */
346
+	private function registerAdminAssets()
347
+	{
348
+		$this->addJavascript(
349
+			CoreAssetManager::JS_HANDLE_EE_WP_PLUGINS_PAGE,
350
+			$this->registry->getJsUrl($this->domain->assetNamespace(), 'wp-plugins-page'),
351
+			array(
352
+				CoreAssetManager::JS_HANDLE_JQUERY,
353
+				CoreAssetManager::JS_HANDLE_EE_VENDOR_REACT,
354
+			)
355
+		)
356
+		->setRequiresTranslation();
357
+
358
+		$this->addStylesheet(
359
+			CoreAssetManager::JS_HANDLE_EE_WP_PLUGINS_PAGE,
360
+			$this->registry->getCssUrl($this->domain->assetNamespace(), 'wp-plugins-page')
361
+		);
362
+	}
363 363
 }
Please login to merge, or discard this patch.
core/domain/values/assets/ManifestFile.php 1 patch
Indentation   +22 added lines, -22 removed lines patch added patch discarded remove patch
@@ -16,26 +16,26 @@
 block discarded – undo
16 16
 class ManifestFile extends Asset
17 17
 {
18 18
 
19
-    /**
20
-     * Asset constructor.
21
-     *
22
-     * @param DomainInterface $domain
23
-     * @throws InvalidDataTypeException
24
-     */
25
-    public function __construct(DomainInterface $domain)
26
-    {
27
-        parent::__construct(Asset::TYPE_MANIFEST, $domain->assetNamespace(), $domain);
28
-    }
29
-
30
-
31
-    public function urlBase()
32
-    {
33
-        return $this->domain->distributionAssetsUrl();
34
-    }
35
-
36
-
37
-    public function filepath()
38
-    {
39
-        return $this->domain->distributionAssetsPath();
40
-    }
19
+	/**
20
+	 * Asset constructor.
21
+	 *
22
+	 * @param DomainInterface $domain
23
+	 * @throws InvalidDataTypeException
24
+	 */
25
+	public function __construct(DomainInterface $domain)
26
+	{
27
+		parent::__construct(Asset::TYPE_MANIFEST, $domain->assetNamespace(), $domain);
28
+	}
29
+
30
+
31
+	public function urlBase()
32
+	{
33
+		return $this->domain->distributionAssetsUrl();
34
+	}
35
+
36
+
37
+	public function filepath()
38
+	{
39
+		return $this->domain->distributionAssetsPath();
40
+	}
41 41
 }
Please login to merge, or discard this patch.
core/domain/values/assets/Asset.php 2 patches
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -82,7 +82,7 @@  discard block
 block discarded – undo
82 82
      */
83 83
     private function setType($type)
84 84
     {
85
-        if (! in_array($type, $this->validAssetTypes(), true)) {
85
+        if ( ! in_array($type, $this->validAssetTypes(), true)) {
86 86
             throw new InvalidDataTypeException(
87 87
                 'Asset::$type',
88 88
                 $type,
@@ -99,7 +99,7 @@  discard block
 block discarded – undo
99 99
      */
100 100
     private function setHandle($handle)
101 101
     {
102
-        if (! is_string($handle)) {
102
+        if ( ! is_string($handle)) {
103 103
             throw new InvalidDataTypeException(
104 104
                 '$handle',
105 105
                 $handle,
Please login to merge, or discard this patch.
Indentation   +150 added lines, -150 removed lines patch added patch discarded remove patch
@@ -16,154 +16,154 @@
 block discarded – undo
16 16
 abstract class Asset
17 17
 {
18 18
 
19
-    /**
20
-     * indicates the file extension for a build distribution CSS file
21
-     */
22
-    const FILE_EXTENSION_DISTRIBUTION_CSS = '.dist.css';
23
-
24
-    /**
25
-     * indicates the file extension for a build distribution JS file
26
-     */
27
-    const FILE_EXTENSION_DISTRIBUTION_JS = '.dist.js';
28
-
29
-    /**
30
-     * indicates a Cascading Style Sheet asset
31
-     */
32
-    const TYPE_CSS = 'css';
33
-
34
-    /**
35
-     * indicates a Javascript asset
36
-     */
37
-    const TYPE_JS = 'js';
38
-
39
-    /**
40
-     * indicates a Javascript manifest file
41
-     */
42
-    const TYPE_MANIFEST = 'manifest';
43
-
44
-    /**
45
-     * @var DomainInterface $domain
46
-     */
47
-    protected $domain;
48
-
49
-    /**
50
-     * @var string $type
51
-     */
52
-    private $type;
53
-
54
-    /**
55
-     * @var string $handle
56
-     */
57
-    private $handle;
58
-
59
-    /**
60
-     * @var bool $registered
61
-     */
62
-    private $registered = false;
63
-
64
-
65
-    /**
66
-     * Asset constructor.
67
-     *
68
-     * @param                 $type
69
-     * @param string          $handle
70
-     * @param DomainInterface $domain
71
-     * @throws InvalidDataTypeException
72
-     */
73
-    public function __construct($type, $handle, DomainInterface $domain)
74
-    {
75
-        $this->domain = $domain;
76
-        $this->setType($type);
77
-        $this->setHandle($handle);
78
-    }
79
-
80
-
81
-    /**
82
-     * @return array
83
-     */
84
-    public function validAssetTypes()
85
-    {
86
-        return array(
87
-            Asset::TYPE_CSS,
88
-            Asset::TYPE_JS,
89
-            Asset::TYPE_MANIFEST,
90
-        );
91
-    }
92
-
93
-
94
-    /**
95
-     * @param string $type
96
-     * @throws InvalidDataTypeException
97
-     */
98
-    private function setType($type)
99
-    {
100
-        if (! in_array($type, $this->validAssetTypes(), true)) {
101
-            throw new InvalidDataTypeException(
102
-                'Asset::$type',
103
-                $type,
104
-                'one of the TYPE_* class constants on \EventEspresso\core\domain\values\Asset is required'
105
-            );
106
-        }
107
-        $this->type = $type;
108
-    }
109
-
110
-
111
-    /**
112
-     * @param string $handle
113
-     * @throws InvalidDataTypeException
114
-     */
115
-    private function setHandle($handle)
116
-    {
117
-        if (! is_string($handle)) {
118
-            throw new InvalidDataTypeException(
119
-                '$handle',
120
-                $handle,
121
-                'string'
122
-            );
123
-        }
124
-        $this->handle = $handle;
125
-    }
126
-
127
-
128
-    /**
129
-     * @return string
130
-     */
131
-    public function assetNamespace()
132
-    {
133
-        return $this->domain->assetNamespace();
134
-    }
135
-
136
-
137
-    /**
138
-     * @return string
139
-     */
140
-    public function type()
141
-    {
142
-        return $this->type;
143
-    }
144
-
145
-
146
-    /**
147
-     * @return string
148
-     */
149
-    public function handle()
150
-    {
151
-        return $this->handle;
152
-    }
153
-
154
-    /**
155
-     * @return bool
156
-     */
157
-    public function isRegistered()
158
-    {
159
-        return $this->registered;
160
-    }
161
-
162
-    /**
163
-     * @param bool $registered
164
-     */
165
-    public function setRegistered($registered = true)
166
-    {
167
-        $this->registered = filter_var($registered, FILTER_VALIDATE_BOOLEAN);
168
-    }
19
+	/**
20
+	 * indicates the file extension for a build distribution CSS file
21
+	 */
22
+	const FILE_EXTENSION_DISTRIBUTION_CSS = '.dist.css';
23
+
24
+	/**
25
+	 * indicates the file extension for a build distribution JS file
26
+	 */
27
+	const FILE_EXTENSION_DISTRIBUTION_JS = '.dist.js';
28
+
29
+	/**
30
+	 * indicates a Cascading Style Sheet asset
31
+	 */
32
+	const TYPE_CSS = 'css';
33
+
34
+	/**
35
+	 * indicates a Javascript asset
36
+	 */
37
+	const TYPE_JS = 'js';
38
+
39
+	/**
40
+	 * indicates a Javascript manifest file
41
+	 */
42
+	const TYPE_MANIFEST = 'manifest';
43
+
44
+	/**
45
+	 * @var DomainInterface $domain
46
+	 */
47
+	protected $domain;
48
+
49
+	/**
50
+	 * @var string $type
51
+	 */
52
+	private $type;
53
+
54
+	/**
55
+	 * @var string $handle
56
+	 */
57
+	private $handle;
58
+
59
+	/**
60
+	 * @var bool $registered
61
+	 */
62
+	private $registered = false;
63
+
64
+
65
+	/**
66
+	 * Asset constructor.
67
+	 *
68
+	 * @param                 $type
69
+	 * @param string          $handle
70
+	 * @param DomainInterface $domain
71
+	 * @throws InvalidDataTypeException
72
+	 */
73
+	public function __construct($type, $handle, DomainInterface $domain)
74
+	{
75
+		$this->domain = $domain;
76
+		$this->setType($type);
77
+		$this->setHandle($handle);
78
+	}
79
+
80
+
81
+	/**
82
+	 * @return array
83
+	 */
84
+	public function validAssetTypes()
85
+	{
86
+		return array(
87
+			Asset::TYPE_CSS,
88
+			Asset::TYPE_JS,
89
+			Asset::TYPE_MANIFEST,
90
+		);
91
+	}
92
+
93
+
94
+	/**
95
+	 * @param string $type
96
+	 * @throws InvalidDataTypeException
97
+	 */
98
+	private function setType($type)
99
+	{
100
+		if (! in_array($type, $this->validAssetTypes(), true)) {
101
+			throw new InvalidDataTypeException(
102
+				'Asset::$type',
103
+				$type,
104
+				'one of the TYPE_* class constants on \EventEspresso\core\domain\values\Asset is required'
105
+			);
106
+		}
107
+		$this->type = $type;
108
+	}
109
+
110
+
111
+	/**
112
+	 * @param string $handle
113
+	 * @throws InvalidDataTypeException
114
+	 */
115
+	private function setHandle($handle)
116
+	{
117
+		if (! is_string($handle)) {
118
+			throw new InvalidDataTypeException(
119
+				'$handle',
120
+				$handle,
121
+				'string'
122
+			);
123
+		}
124
+		$this->handle = $handle;
125
+	}
126
+
127
+
128
+	/**
129
+	 * @return string
130
+	 */
131
+	public function assetNamespace()
132
+	{
133
+		return $this->domain->assetNamespace();
134
+	}
135
+
136
+
137
+	/**
138
+	 * @return string
139
+	 */
140
+	public function type()
141
+	{
142
+		return $this->type;
143
+	}
144
+
145
+
146
+	/**
147
+	 * @return string
148
+	 */
149
+	public function handle()
150
+	{
151
+		return $this->handle;
152
+	}
153
+
154
+	/**
155
+	 * @return bool
156
+	 */
157
+	public function isRegistered()
158
+	{
159
+		return $this->registered;
160
+	}
161
+
162
+	/**
163
+	 * @param bool $registered
164
+	 */
165
+	public function setRegistered($registered = true)
166
+	{
167
+		$this->registered = filter_var($registered, FILTER_VALIDATE_BOOLEAN);
168
+	}
169 169
 }
Please login to merge, or discard this patch.