diff --git a/docs/content/patterns-definition.rst b/docs/content/patterns-definition.rst index f3916c42b2fce5fae19b25896de36dca2e9208b4..64b692ee5454e91c993060f2a64d47bf3f97270f 100644 --- a/docs/content/patterns-definition.rst +++ b/docs/content/patterns-definition.rst @@ -43,6 +43,8 @@ and list them using the following format: - pattern_library_two: js: js/library_two.js: {} + dependencies: + - core/jquery Let's break this down: diff --git a/modules/ui_patterns_test/ui_patterns_test_theme/templates/patterns/media/media.ui_patterns.yml b/modules/ui_patterns_test/ui_patterns_test_theme/templates/patterns/media/media.ui_patterns.yml index 95014db56edf1953e0c77393cb93f544a49f7101..00af1a5bcd88fa779f49046699021bc8314db955 100644 --- a/modules/ui_patterns_test/ui_patterns_test_theme/templates/patterns/media/media.ui_patterns.yml +++ b/modules/ui_patterns_test/ui_patterns_test_theme/templates/patterns/media/media.ui_patterns.yml @@ -36,3 +36,5 @@ media: js: js/media1.js: {} js/media2.js: {} + dependencies: + - core/drupal.tabledrag diff --git a/src/Plugin/PatternBase.php b/src/Plugin/PatternBase.php index 1dc9ba0886cfedbaa69c7dc387a751a8437652c0..c0ad451309c6234ad7b2b57351c388ca1fa16ef5 100644 --- a/src/Plugin/PatternBase.php +++ b/src/Plugin/PatternBase.php @@ -96,14 +96,14 @@ abstract class PatternBase extends PluginBase implements PatternInterface, Conta /** * Process libraries. * - * @param array $libraries - * Libraries array. + * @param array|string $libraries + * List of dependencies or "dependencies:" root property. * @param string $base_path * Pattern base path. * @param string $parent * Item parent set in previous recursive iteration, if any. */ - protected function processLibraries(array &$libraries, $base_path, $parent = '') { + protected function processLibraries(&$libraries, $base_path, $parent = '') { $parents = ['js', 'base', 'layout', 'component', 'state', 'theme']; $_libraries = $libraries; foreach ($_libraries as $name => $values) { @@ -113,7 +113,7 @@ abstract class PatternBase extends PluginBase implements PatternInterface, Conta $libraries[$base_path . DIRECTORY_SEPARATOR . $name] = $values; unset($libraries[$name]); } - elseif (!$is_asset) { + elseif (!$is_asset && ($parent != 'dependencies')) { $this->processLibraries($libraries[$name], $base_path, $name); } } diff --git a/tests/features/overview.feature b/tests/features/overview.feature index ca592b085235f118405530a27a428091fac58373..2c67b13782c7523dc05cfe2365e7b20014e4e0a1 100644 --- a/tests/features/overview.feature +++ b/tests/features/overview.feature @@ -69,6 +69,7 @@ Feature: Overview And the response should contain "/ui_patterns_test_theme/templates/patterns/media/css/media2.css" And the response should contain "/ui_patterns_test_theme/templates/patterns/media/js/media1.js" And the response should contain "/ui_patterns_test_theme/templates/patterns/media/js/media2.js" + And the response should contain "/misc/tabledrag.js" Scenario: Patterns overview page will show validation errors after clearing the cache. Given I am logged in as a user with the "access patterns page" permission