diff --git a/core/core.libraries.yml b/core/core.libraries.yml index a20a11e42517b883d378cb90a150dbf11e5f09d6..8132758e89153dfb4685356248402a2ef9225e75 100644 --- a/core/core.libraries.yml +++ b/core/core.libraries.yml @@ -88,12 +88,44 @@ drupal.autocomplete: version: VERSION js: misc/autocomplete.js: { weight: -1 } + # The remaining JavaScript assets previously came from core/jquery.ui, a + # deprecated library. + # All weights are based on on the requirements defined within each file. + # @todo replace with solution in https://drupal.org/node/3076171 + assets/vendor/jquery.ui/ui/widgets/autocomplete-min.js: { weight: -11.7, minified: true } + assets/vendor/jquery.ui/ui/labels-min.js: { weight: -11.7, minified: true } + assets/vendor/jquery.ui/ui/widgets/menu-min.js: { weight: -11.7, minified: true } + assets/vendor/jquery.ui/ui/tabbable-min.js: { weight: -11.7, minified: true } + assets/vendor/jquery.ui/ui/data-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/disable-selection-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/escape-selector-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/focusable-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/form-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/ie-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/jquery-1-7-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/keycode-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/plugin-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/position-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/safe-active-element-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/safe-blur-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/scroll-parent-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/unique-id-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/widget-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/version-min.js: { weight: -11.9, minified: true } + # All CSS assets previously came from core/jquery.ui, a deprecated library. + # @todo replace with solution found in https://drupal.org/node/3076171 + css: + component: + assets/vendor/jquery.ui/themes/base/autocomplete.css: { weight: -11.7 } + assets/vendor/jquery.ui/themes/base/menu.css: { weight: -11.7 } + assets/vendor/jquery.ui/themes/base/core.css: { weight: -11.8 } + theme: + assets/vendor/jquery.ui/themes/base/theme.css: { weight: -11.8 } dependencies: - core/jquery - core/drupal - core/drupalSettings - core/drupal.ajax - - core/jquery.ui.autocomplete drupal.array.find: version: VERSION @@ -155,13 +187,54 @@ drupal.dialog: misc/dialog/dialog.js: {} misc/dialog/dialog.position.js: {} misc/dialog/dialog.jquery-ui.js: {} + # The remaining JavaScript assets previously came from core/jquery.ui, a + # deprecated library. + # All weights are based on on the requirements defined within each file. + # @todo replace with solution in https://drupal.org/node/2158943 + assets/vendor/jquery.ui/ui/widgets/dialog-min.js: { weight: -11.4, minified: true } + assets/vendor/jquery.ui/ui/widgets/button-min.js: { weight: -11.5, minified: true } + assets/vendor/jquery.ui/ui/widgets/checkboxradio-min.js: { weight: -11.6, minified: true } + assets/vendor/jquery.ui/ui/widgets/draggable-min.js: { weight: -11.6, minified: true } + assets/vendor/jquery.ui/ui/widgets/resizable-min.js: { weight: -11.6, minified: true } + assets/vendor/jquery.ui/ui/widgets/controlgroup-min.js: { weight: -11.7, minified: true } + assets/vendor/jquery.ui/ui/form-reset-mixin-min.js: { weight: -11.7, minified: true } + assets/vendor/jquery.ui/ui/labels-min.js: { weight: -11.7, minified: true } + assets/vendor/jquery.ui/ui/widgets/mouse-min.js: { weight: -11.7, minified: true } + assets/vendor/jquery.ui/ui/tabbable-min.js: { weight: -11.7, minified: true } + assets/vendor/jquery.ui/ui/data-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/disable-selection-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/form-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/jquery-1-7-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/scroll-parent-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/unique-id-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/escape-selector-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/focusable-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/ie-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/keycode-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/plugin-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/position-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/safe-active-element-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/safe-blur-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/widget-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/version-min.js: { weight: -11.9, minified: true } + # All CSS assets previously came from core/jquery.ui, a deprecated library. + # @todo replace with solution found in https://drupal.org/node/2158943 + css: + component: + assets/vendor/jquery.ui/themes/base/dialog.css: { weight: -11.4 } + assets/vendor/jquery.ui/themes/base/button.css: { weight: -11.5 } + assets/vendor/jquery.ui/themes/base/checkboxradio.css: { weight: -11.6 } + assets/vendor/jquery.ui/themes/base/resizable.css: { weight: -11.6 } + assets/vendor/jquery.ui/themes/base/controlgroup.css: { weight: -11.7 } + assets/vendor/jquery.ui/themes/base/core.css: { weight: -11.8 } + theme: + assets/vendor/jquery.ui/themes/base/theme.css: { weight: -11.8 } dependencies: - core/jquery - core/drupal - core/drupalSettings - core/drupal.debounce - core/drupal.displace - - core/jquery.ui.dialog drupal.dialog.ajax: version: VERSION @@ -265,10 +338,36 @@ drupal.tabbingmanager: version: VERSION js: misc/tabbingmanager.js: {} + # The remaining JavaScript assets previously came from core/jquery.ui, a + # deprecated library. These assets are used to provide the :tabbable pseudo + # selector to core's JavaScript. It should be possible to remove them once + # :tabbable is provided via a non-jQuery UI based library. + # All weights are based on on the requirements defined within each file. + # @todo replace with solution found in https://drupal.org/node/3113649 + assets/vendor/jquery.ui/ui/labels-min.js: { weight: -11.7, minified: true } + assets/vendor/jquery.ui/ui/tabbable-min.js: { weight: -11.7, minified: true } + assets/vendor/jquery.ui/ui/disable-selection-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/form-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/escape-selector-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/focusable-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/ie-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/jquery-1-7-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/keycode-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/plugin-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/safe-active-element-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/safe-blur-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/scroll-parent-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/unique-id-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/version-min.js: { weight: -11.9, minified: true } + # All CSS assets previously came from core/jquery.ui, a deprecated library. + # @todo replace with solution found in https://drupal.org/node/3113649 + css: + component: + assets/vendor/jquery.ui/themes/base/core.css: { weight: -11.8 } + theme: + assets/vendor/jquery.ui/themes/base/theme.css: { weight: -11.8 } dependencies: - core/jquery - # Supplies the ':tabbable' pseudo selector. - - core/jquery.ui - core/drupal drupal.tabledrag: @@ -428,82 +527,105 @@ jquery.ui: url: https://raw.githubusercontent.com/jquery/jquery-ui/1.12.1/LICENSE.txt gpl-compatible: true js: - assets/vendor/jquery.ui/ui/data-min.js: { weight: -11, minified: true } - assets/vendor/jquery.ui/ui/disable-selection-min.js: { weight: -11, minified: true } - assets/vendor/jquery.ui/ui/form-min.js: { weight: -11, minified: true } - assets/vendor/jquery.ui/ui/labels-min.js: { weight: -11, minified: true } - assets/vendor/jquery.ui/ui/jquery-1-7-min.js: { weight: -11, minified: true } - assets/vendor/jquery.ui/ui/scroll-parent-min.js: { weight: -11, minified: true } - assets/vendor/jquery.ui/ui/tabbable-min.js: { weight: -11, minified: true } - assets/vendor/jquery.ui/ui/unique-id-min.js: { weight: -11, minified: true } - assets/vendor/jquery.ui/ui/version-min.js: { weight: -11, minified: true } - assets/vendor/jquery.ui/ui/escape-selector-min.js: { weight: -11, minified: true } - assets/vendor/jquery.ui/ui/focusable-min.js: { weight: -11, minified: true } - assets/vendor/jquery.ui/ui/ie-min.js: { weight: -11, minified: true } - assets/vendor/jquery.ui/ui/keycode-min.js: { weight: -11, minified: true } - assets/vendor/jquery.ui/ui/plugin-min.js: { weight: -11, minified: true } - assets/vendor/jquery.ui/ui/safe-active-element-min.js: { weight: -11, minified: true } - assets/vendor/jquery.ui/ui/safe-blur-min.js: { weight: -11, minified: true } + assets/vendor/jquery.ui/ui/labels-min.js: { weight: -11.7, minified: true } + assets/vendor/jquery.ui/ui/tabbable-min.js: { weight: -11.7, minified: true } + assets/vendor/jquery.ui/ui/data-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/disable-selection-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/escape-selector-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/focusable-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/form-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/ie-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/jquery-1-7-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/keycode-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/plugin-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/safe-active-element-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/safe-blur-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/scroll-parent-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/unique-id-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/version-min.js: { weight: -11.9, minified: true } css: component: - assets/vendor/jquery.ui/themes/base/core.css: {} + assets/vendor/jquery.ui/themes/base/core.css: { weight: -11.8 } theme: - assets/vendor/jquery.ui/themes/base/theme.css: {} + assets/vendor/jquery.ui/themes/base/theme.css: { weight: -11.8 } dependencies: - core/jquery + deprecated: &jquery_ui_unused_deprecated The "%library_id%" asset library is deprecated in drupal:9.2.0 and is removed from drupal:10.0.0. See https://www.drupal.org/node/3067969 jquery.ui.autocomplete: version: *jquery_ui_version license: *jquery_ui_license js: - assets/vendor/jquery.ui/ui/widgets/autocomplete-min.js: { minified: true } + assets/vendor/jquery.ui/ui/widgets/autocomplete-min.js: { weight: -11.7, minified: true } css: component: - assets/vendor/jquery.ui/themes/base/autocomplete.css: {} + assets/vendor/jquery.ui/themes/base/autocomplete.css: { weight: -11.7 } dependencies: - core/jquery.ui - core/jquery.ui.widget - core/jquery.ui.position - core/jquery.ui.menu + deprecated: *jquery_ui_unused_deprecated jquery.ui.button: version: *jquery_ui_version license: *jquery_ui_license js: - assets/vendor/jquery.ui/ui/widgets/checkboxradio-min.js: { minified: true } - assets/vendor/jquery.ui/ui/widgets/controlgroup-min.js: { minified: true } - assets/vendor/jquery.ui/ui/widgets/button-min.js: { minified: true } + assets/vendor/jquery.ui/ui/widgets/button-min.js: { weight: -11.5, minified: true } + assets/vendor/jquery.ui/ui/widgets/checkboxradio-min.js: { weight: -11.6, minified: true } + assets/vendor/jquery.ui/ui/widgets/controlgroup-min.js: { weight: -11.7, minified: true } css: component: - assets/vendor/jquery.ui/themes/base/checkboxradio.css: {} - assets/vendor/jquery.ui/themes/base/controlgroup.css: {} - assets/vendor/jquery.ui/themes/base/button.css: {} + assets/vendor/jquery.ui/themes/base/button.css: { weight: -11.5 } + assets/vendor/jquery.ui/themes/base/checkboxradio.css: { weight: -11.6 } + assets/vendor/jquery.ui/themes/base/controlgroup.css: { weight: -11.7 } dependencies: - core/jquery.ui - core/jquery.ui.widget + deprecated: *jquery_ui_unused_deprecated jquery.ui.dialog: version: *jquery_ui_version license: *jquery_ui_license js: - assets/vendor/jquery.ui/ui/form-reset-mixin-min.js: { minified: true } - assets/vendor/jquery.ui/ui/widgets/checkboxradio-min.js: { minified: true } - assets/vendor/jquery.ui/ui/widgets/controlgroup-min.js: { minified: true } - assets/vendor/jquery.ui/ui/widgets/button-min.js: { minified: true } - assets/vendor/jquery.ui/ui/widgets/dialog-min.js: { minified: true } + # All weights are based on on the requirements defined within each file. + assets/vendor/jquery.ui/ui/widgets/dialog-min.js: { weight: -11.4, minified: true } + assets/vendor/jquery.ui/ui/widgets/button-min.js: { weight: -11.5, minified: true } + assets/vendor/jquery.ui/ui/widgets/checkboxradio-min.js: { weight: -11.6, minified: true } + assets/vendor/jquery.ui/ui/widgets/draggable-min.js: { weight: -11.6, minified: true } + assets/vendor/jquery.ui/ui/widgets/resizable-min.js: { weight: -11.6, minified: true } + assets/vendor/jquery.ui/ui/widgets/controlgroup-min.js: { weight: -11.7, minified: true } + assets/vendor/jquery.ui/ui/form-reset-mixin-min.js: { weight: -11.7, minified: true } + assets/vendor/jquery.ui/ui/labels-min.js: { weight: -11.7, minified: true } + assets/vendor/jquery.ui/ui/widgets/mouse-min.js: { weight: -11.7, minified: true } + assets/vendor/jquery.ui/ui/tabbable-min.js: { weight: -11.7, minified: true } + assets/vendor/jquery.ui/ui/data-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/disable-selection-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/escape-selector-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/focusable-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/form-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/ie-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/jquery-1-7-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/keycode-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/plugin-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/position-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/safe-active-element-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/safe-blur-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/scroll-parent-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/unique-id-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/widget-min.js: { weight: -11.8, minified: true } + assets/vendor/jquery.ui/ui/version-min.js: { weight: -11.9, minified: true } css: component: - assets/vendor/jquery.ui/themes/base/checkboxradio.css: {} - assets/vendor/jquery.ui/themes/base/controlgroup.css: {} - assets/vendor/jquery.ui/themes/base/button.css: {} - assets/vendor/jquery.ui/themes/base/dialog.css: {} - dependencies: - - core/jquery.ui - - core/jquery.ui.widget - - core/jquery.ui.draggable - - core/jquery.ui.mouse - - core/jquery.ui.position - - core/jquery.ui.resizable + assets/vendor/jquery.ui/themes/base/dialog.css: { weight: -11.4 } + assets/vendor/jquery.ui/themes/base/button.css: { weight: -11.5 } + assets/vendor/jquery.ui/themes/base/checkboxradio.css: { weight: -11.6 } + assets/vendor/jquery.ui/themes/base/resizable.css: { weight: -11.6 } + assets/vendor/jquery.ui/themes/base/controlgroup.css: { weight: -11.7 } + assets/vendor/jquery.ui/themes/base/core.css: { weight: -11.8 } + theme: + assets/vendor/jquery.ui/themes/base/theme.css: { weight: -11.8 } + deprecated: *jquery_ui_unused_deprecated jquery.ui.draggable: version: *jquery_ui_version @@ -514,57 +636,63 @@ jquery.ui.draggable: - core/jquery.ui - core/jquery.ui.mouse - core/jquery.ui.widget + deprecated: *jquery_ui_unused_deprecated jquery.ui.menu: version: *jquery_ui_version license: *jquery_ui_license js: - assets/vendor/jquery.ui/ui/widgets/menu-min.js: { minified: true } + assets/vendor/jquery.ui/ui/widgets/menu-min.js: { weight: -11.7, minified: true } css: component: - assets/vendor/jquery.ui/themes/base/menu.css: {} + assets/vendor/jquery.ui/themes/base/menu.css: { weight: -11.7 } dependencies: - core/jquery.ui - core/jquery.ui.position - core/jquery.ui.widget + deprecated: *jquery_ui_unused_deprecated jquery.ui.mouse: version: *jquery_ui_version license: *jquery_ui_license js: - assets/vendor/jquery.ui/ui/ie-min.js: { minified: true } - assets/vendor/jquery.ui/ui/widgets/mouse-min.js: { minified: true } + assets/vendor/jquery.ui/ui/widgets/mouse-min.js: { weight: -11.7, minified: true } + assets/vendor/jquery.ui/ui/ie-min.js: { weight: -11.8, minified: true } dependencies: - core/jquery.ui.widget + deprecated: *jquery_ui_unused_deprecated jquery.ui.position: version: *jquery_ui_version license: *jquery_ui_license js: - assets/vendor/jquery.ui/ui/position-min.js: { minified: true } + assets/vendor/jquery.ui/ui/position-min.js: { weight: -11.8, minified: true } dependencies: - core/jquery.ui + deprecated: *jquery_ui_unused_deprecated jquery.ui.resizable: version: *jquery_ui_version license: *jquery_ui_license js: - assets/vendor/jquery.ui/ui/widgets/resizable-min.js: { minified: true } + assets/vendor/jquery.ui/ui/widgets/resizable-min.js: { weight: -11.6, minified: true } css: component: - assets/vendor/jquery.ui/themes/base/resizable.css: {} + assets/vendor/jquery.ui/themes/base/resizable.css: { weight: -11.6 } dependencies: - core/jquery.ui - core/jquery.ui.widget - core/jquery.ui.mouse + deprecated: *jquery_ui_unused_deprecated jquery.ui.widget: version: *jquery_ui_version license: *jquery_ui_license js: - assets/vendor/jquery.ui/ui/widget-min.js: { weight: -10, minified: true } + assets/vendor/jquery.ui/ui/widget-min.js: { weight: -11.8, minified: true } dependencies: - core/jquery.ui + deprecated: *jquery_ui_unused_deprecated modernizr: # Block the page from being loaded until Modernizr is initialized. diff --git a/core/modules/system/tests/modules/jqueryui_library_assets_test/jqueryui_library_assets_test.info.yml b/core/modules/system/tests/modules/jqueryui_library_assets_test/jqueryui_library_assets_test.info.yml new file mode 100644 index 0000000000000000000000000000000000000000..68a1d2aa49afcdde3360e3e69068bb4a72895eb0 --- /dev/null +++ b/core/modules/system/tests/modules/jqueryui_library_assets_test/jqueryui_library_assets_test.info.yml @@ -0,0 +1,5 @@ +name: 'jQuery UI library assets test' +type: module +description: 'Tests jQuery UI library asset loading' +package: Testing +version: VERSION diff --git a/core/modules/system/tests/modules/jqueryui_library_assets_test/jqueryui_library_assets_test.routing.yml b/core/modules/system/tests/modules/jqueryui_library_assets_test/jqueryui_library_assets_test.routing.yml new file mode 100644 index 0000000000000000000000000000000000000000..cb2ad14524bef04322cf87b63fda7b431c00ab39 --- /dev/null +++ b/core/modules/system/tests/modules/jqueryui_library_assets_test/jqueryui_library_assets_test.routing.yml @@ -0,0 +1,7 @@ +jqueryui_library_asset_test_page: + path: '/jqueryui_library_assets_test/{library}' + defaults: + _controller: '\Drupal\jqueryui_library_assets_test\Controller\JqueryUiTestAssetsController::build' + _title: 'Test jQuery UI asset loading order' + requirements: + _access: 'TRUE' diff --git a/core/modules/system/tests/modules/jqueryui_library_assets_test/src/Controller/JqueryUiTestAssetsController.php b/core/modules/system/tests/modules/jqueryui_library_assets_test/src/Controller/JqueryUiTestAssetsController.php new file mode 100644 index 0000000000000000000000000000000000000000..2db6550c68d91be5ba0ec137bf3e4de4d143d8c4 --- /dev/null +++ b/core/modules/system/tests/modules/jqueryui_library_assets_test/src/Controller/JqueryUiTestAssetsController.php @@ -0,0 +1,42 @@ +<?php + +namespace Drupal\jqueryui_library_assets_test\Controller; + +use Drupal\Core\Controller\ControllerBase; + +/** + * Controller for testing jQuery UI asset loading order. + */ +class JqueryUiTestAssetsController extends ControllerBase { + + /** + * Provides a page that loads a library. + * + * @param string $library + * A pipe delimited list of library names. + * + * @return array + * The render array. + */ + public function build($library) { + // If there are pipes in $library, they are separating multiple library + // names. + if (strpos($library, '|') !== FALSE) { + $library = explode('|', $library); + $library = array_map(function ($item) { + return "core/$item"; + }, $library); + } + else { + $library = "core/$library"; + } + + return [ + '#markup' => 'I am a page for testing jQuery UI asset loading order.', + '#attached' => [ + 'library' => $library, + ], + ]; + } + +} diff --git a/core/modules/system/tests/themes/test_theme/test_theme.info.yml b/core/modules/system/tests/themes/test_theme/test_theme.info.yml index 5a785fa4cdcd63416a7d6af3b4df5299485fed30..d91109656ada3db8ce815212b9d18e27bd438d05 100644 --- a/core/modules/system/tests/themes/test_theme/test_theme.info.yml +++ b/core/modules/system/tests/themes/test_theme/test_theme.info.yml @@ -53,10 +53,9 @@ libraries-override: component: /core/themes/stable/css/core/vertical-tabs.css: public://my_css/vertical-tabs.css # Use a protocol-relative URI. - core/jquery.ui: - css: - component: - assets/vendor/jquery.ui/themes/base/core.css: //my-server/my_theme/css/jquery_ui.css + core/drupal.displace: + js: + misc/displace.js: //my-server/my_theme/js/overridden.js # Use an absolute URI. core/jquery.farbtastic: css: diff --git a/core/tests/Drupal/FunctionalTests/Libraries/JqueryUiLibraryAssetsTest.php b/core/tests/Drupal/FunctionalTests/Libraries/JqueryUiLibraryAssetsTest.php new file mode 100644 index 0000000000000000000000000000000000000000..d517791c8b2ef91891d43333bc801766ccdc3c76 --- /dev/null +++ b/core/tests/Drupal/FunctionalTests/Libraries/JqueryUiLibraryAssetsTest.php @@ -0,0 +1,843 @@ +<?php + +namespace Drupal\FunctionalTests\Libraries; + +use Drupal\Tests\BrowserTestBase; + +/** + * Tests the loading of jQuery UI CSS and JS assets. + * + * @group libraries + * @group legacy + */ +class JqueryUiLibraryAssetsTest extends BrowserTestBase { + + /** + * {@inheritdoc} + */ + protected $defaultTheme = 'stark'; + + /** + * {@inheritdoc} + */ + protected static $modules = ['jqueryui_library_assets_test']; + + /** + * The library discovery service. + * + * @var \Drupal\Core\Asset\LibraryDiscoveryInterface + */ + protected $libraryDiscovery; + + /** + * jQuery UI CSS and JS assets keyed by their weight. + * + * For example, the value of $weightGroupedAssets[-11] would be an array + * of every jQuery UI CSS and JS file asset configured with a weight of -11. + * + * @var array + */ + protected $weightGroupedAssets = []; + + /** + * The core libraries that load assets from jQuery UI. + * + * @var array + */ + protected $coreLibrariesWithJqueryUiAssets = []; + + /** + * {@inheritdoc} + */ + protected function setUp(): void { + parent::setUp(); + $this->libraryDiscovery = $this->container->get('library.discovery'); + $core_libraries = $this->libraryDiscovery->getLibrariesByExtension('core'); + + // All the core libraries that use jQuery UI assets. + $libraries_to_check = [ + 'drupal.autocomplete', + 'drupal.dialog', + 'drupal.tabbingmanager', + 'jquery.ui', + 'jquery.ui.autocomplete', + 'jquery.ui.button', + 'jquery.ui.dialog', + 'jquery.ui.menu', + 'jquery.ui.mouse', + 'jquery.ui.position', + 'jquery.ui.resizable', + 'jquery.ui.widget', + ]; + + $this->coreLibrariesWithJqueryUiAssets = array_filter($core_libraries, function ($key) use ($libraries_to_check) { + return in_array($key, $libraries_to_check); + }, ARRAY_FILTER_USE_KEY); + + // Loop through the core libraries with jQuery assets to build an array that + // groups assets by their weight value. + foreach ($this->coreLibrariesWithJqueryUiAssets as $library) { + foreach (['js', 'css'] as $type) { + foreach ($library[$type] as $asset) { + $file = $asset['data']; + if (strpos($file, 'jquery.ui') === FALSE) { + continue; + } + $weight = $asset['weight']; + $this->weightGroupedAssets["$weight"][] = $file; + } + } + } + $this->weightGroupedAssets = array_map(function ($item) { + return array_unique($item); + }, $this->weightGroupedAssets); + ksort($this->weightGroupedAssets); + } + + /** + * Confirm assets are weighted so they load in the correct order. + * + * The configured loading order is compared against the necessary loading + * order. The necessary loading order was determined by the requirements + * specified in each jQuery UI JavaScript file. + */ + public function testProperlySetWeights() { + $assets = []; + + // Confirm that no asset is assigned multiple weights. + foreach ($this->weightGroupedAssets as $asset_array) { + foreach ($asset_array as $asset) { + $this->assertNotContains($asset, $assets); + $assets[] = $asset; + } + } + + // The loading order that assets groups must be in, based on the + // dependencies specified in every jQuery UI JavaScript file. + $necessary_loading_order = [ + ['core/assets/vendor/jquery.ui/ui/version-min.js'], + [ + 'core/assets/vendor/jquery.ui/ui/data-min.js', + 'core/assets/vendor/jquery.ui/ui/disable-selection-min.js', + 'core/assets/vendor/jquery.ui/ui/escape-selector-min.js', + 'core/assets/vendor/jquery.ui/ui/focusable-min.js', + 'core/assets/vendor/jquery.ui/ui/form-min.js', + 'core/assets/vendor/jquery.ui/ui/ie-min.js', + 'core/assets/vendor/jquery.ui/ui/jquery-1-7-min.js', + 'core/assets/vendor/jquery.ui/ui/keycode-min.js', + 'core/assets/vendor/jquery.ui/ui/plugin-min.js', + 'core/assets/vendor/jquery.ui/ui/position-min.js', + 'core/assets/vendor/jquery.ui/ui/safe-active-element-min.js', + 'core/assets/vendor/jquery.ui/ui/safe-blur-min.js', + 'core/assets/vendor/jquery.ui/ui/scroll-parent-min.js', + 'core/assets/vendor/jquery.ui/ui/unique-id-min.js', + 'core/assets/vendor/jquery.ui/ui/widget-min.js', + 'core/assets/vendor/jquery.ui/themes/base/core.css', + ], + [ + 'core/assets/vendor/jquery.ui/ui/widgets/autocomplete-min.js', + 'core/assets/vendor/jquery.ui/ui/labels-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/menu-min.js', + 'core/assets/vendor/jquery.ui/ui/tabbable-min.js', + 'core/assets/vendor/jquery.ui/themes/base/autocomplete.css', + 'core/assets/vendor/jquery.ui/themes/base/menu.css', + 'core/assets/vendor/jquery.ui/ui/widgets/controlgroup-min.js', + 'core/assets/vendor/jquery.ui/ui/form-reset-mixin-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/mouse-min.js', + 'core/assets/vendor/jquery.ui/themes/base/controlgroup.css', + ], + [ + 'core/assets/vendor/jquery.ui/ui/widgets/checkboxradio-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/draggable-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/resizable-min.js', + 'core/assets/vendor/jquery.ui/themes/base/checkboxradio.css', + 'core/assets/vendor/jquery.ui/themes/base/resizable.css', + ], + [ + 'core/assets/vendor/jquery.ui/ui/widgets/button-min.js', + 'core/assets/vendor/jquery.ui/themes/base/button.css', + ], + [ + 'core/assets/vendor/jquery.ui/ui/widgets/dialog-min.js', + 'core/assets/vendor/jquery.ui/themes/base/dialog.css', + ], + ['core/assets/vendor/jquery.ui/themes/base/theme.css'], + ]; + + $configured_weights = array_keys($this->weightGroupedAssets); + + // Loop through the necessary loading order and compare to the configured + // loading order. + foreach ($necessary_loading_order as $stage => $assets) { + $assets_loaded_in_stage = $this->weightGroupedAssets[$configured_weights[$stage]]; + foreach ($assets as $asset) { + $this->assertContains($asset, $assets_loaded_in_stage); + } + } + } + + /** + * Confirm that uses of a jQuery UI asset are configured with the same weight. + */ + public function testSameAssetSameWeight() { + $asset_weights = []; + $libraries_to_check = $this->coreLibrariesWithJqueryUiAssets; + + foreach ($libraries_to_check as $library) { + foreach (['js', 'css'] as $type) { + foreach ($library[$type] as $asset) { + $file = $asset['data']; + + if (strpos($file, 'jquery.ui') !== FALSE) { + // If this is the first time a given file is checked, add the weight + // value to an array. + if (!isset($asset_weights[$file])) { + $asset_weights[$file] = $asset['weight']; + } + else { + // Confirm the weight of the file being loaded matches the weight + // of when it was loaded by a library that was checked earlier. + $this->assertEquals($asset_weights[$file], $asset['weight']); + } + } + } + } + } + } + + /** + * Removes base_url() and query args from file paths. + * + * @param string $path + * The path being trimmed. + * + * @return string + * The trimmed path. + */ + protected function trimFilePath($path) { + $base_path_position = strpos($path, base_path()); + if ($base_path_position !== FALSE) { + $path = substr_replace($path, '', $base_path_position, strlen(base_path())); + } + $query_pos = strpos($path, '?'); + return $query_pos !== FALSE ? substr($path, 0, $query_pos) : $path; + } + + /** + * Confirms that jQuery UI assets load on the page in the configured order. + * + * @dataProvider providerTestAssetLoading + */ + public function testLibraryAssetLoadingOrder($library) { + $this->drupalGet("jqueryui_library_assets_test/$library"); + $this->assertSession()->statusCodeEquals(200); + + // A pipe character in $libraries is delimiting multiple library names. + $libraries = strpos($library, '|') !== FALSE ? explode('|', $library) : [$library]; + $files_to_check = []; + + // Populate an array with the filenames of every jQuery UI asset in the + // libraries being tested. This will be used to confirm the configured + // assets actually load on the test page. + foreach ($libraries as $library_name) { + foreach (['css', 'js'] as $type) { + $assets = $this->coreLibrariesWithJqueryUiAssets[$library_name][$type]; + foreach ($assets as $asset) { + if (strpos($asset['data'], 'jquery.ui') !== FALSE) { + $files_to_check[$asset['data']] = TRUE; + } + } + } + } + $this->assertNotEmpty($files_to_check); + + // Find all jQuery UI CSS files loaded to the page, and compare their + // loading order to the weights configured in core.libraries.yml. + $css = $this->getSession()->getPage()->findAll('css', 'link[href*="jquery.ui"]'); + $css_weight = -100; + foreach ($css as $item) { + $file = $this->trimFilePath($item->getAttribute('href')); + $found = FALSE; + foreach ($this->weightGroupedAssets as $key => $array) { + if (in_array($file, $array)) { + $found = TRUE; + $this->assertGreaterThanOrEqual($css_weight, $key, "The file $file not loading in the expected order based on its weight value."); + $css_weight = $key; + unset($files_to_check[$file]); + } + } + $this->assertTrue($found, "A jQuery UI file: $file was loaded by the page, but is not taken into account by the test."); + } + $this->assertGreaterThan(-100, $css_weight); + + $js_weight = -100; + $js = $this->getSession()->getPage()->findAll('css', 'script[src*="jquery.ui"]'); + foreach ($js as $item) { + $file = $this->trimFilePath($item->getAttribute('src')); + $found = FALSE; + foreach ($this->weightGroupedAssets as $key => $array) { + if (in_array($file, $array)) { + $found = TRUE; + $this->assertGreaterThanOrEqual($js_weight, $key, "The file $file not loading in the expected order based on its weight value."); + $js_weight = $key; + unset($files_to_check[$file]); + } + } + $this->assertTrue($found, "A jQuery UI file: $file was loaded by the page, but is not taken into account by the test."); + } + $this->assertGreaterThan(-100, $js_weight); + $this->assertEmpty($files_to_check); + } + + /** + * Confirms jQuery UI assets load as expected. + * + * Compares the jQuery assets that currently load against a list of the assets + * that loaded prior to the the deprecation of all remaining core jQuery UI + * libraries. + * + * While this is similar to testLibraryAssetLoadingOrder(), it is a separate + * test so it can be run in a test-only context, thus confirming that asset + * loading is truly unchanged before and after the deprecations. + * + * @param string $library + * A pipe delimited list of libraries to check. + * @param string[] $expected_css + * The jQuery UI CSS files expected to load. + * @param string[] $expected_js + * The jQuery UI JavaScript files expected to load. + * + * @dataProvider providerTestAssetLoading + */ + public function testAssetLoadingUnchanged($library, array $expected_css, array $expected_js) { + $this->drupalGet("jqueryui_library_assets_test/$library"); + $this->assertSession()->statusCodeEquals(200); + + // Find all jQuery UI CSS files loaded to the page. + $css = $this->getSession()->getPage()->findAll('css', 'link[href*="jquery.ui"]'); + $css_loaded_by_page = []; + foreach ($css as $item) { + $file = $this->trimFilePath($item->getAttribute('href')); + $css_loaded_by_page[] = $file; + } + + $this->assertEmpty(array_diff($css_loaded_by_page, $expected_css)); + + // Find all jQuery UI JavaScript files loaded to the page. + $js = $this->getSession()->getPage()->findAll('css', 'script[src*="jquery.ui"]'); + $js_loaded_by_page = []; + foreach ($js as $item) { + $file = $this->trimFilePath($item->getAttribute('src')); + $js_loaded_by_page[] = $file; + } + + // assertEmpty() is used instead of assertSame() because we can only test + // for the presence of assets, not their loading order. The test is designed + // to pass before and after the jQuery UI asset changes in + // http://drupal.org/node/3113400, which, by necessity, results in loading + // order changes. + $this->assertEmpty(array_diff($js_loaded_by_page, $expected_js)); + } + + /** + * Data provider for confirming jQuery UI assets load as expected. + * + * Provides arrays that list how jQuery UI CSS and JavaScript dependencies + * loaded prior to the change from dependencies to direct asset loading. + * + * @return array + * An array of test cases, where each test case is an array with the + * following values: + * - A pipe delimited string of the library/libraries to test. + * - An array of the jQuery UI CSS files that loaded for a given library + * prior to the change from jQuery UI library dependencies to direct file + * inclusion. + * - An array of the jQuery UI JavaScript files that loaded for a given + * library prior to the change from jQuery UI library dependencies to + * direct file inclusion. + */ + public function providerTestAssetLoading() { + return [ + 'drupal.autocomplete' => [ + 'library' => 'drupal.autocomplete', + 'expected_css' => [ + 'core/assets/vendor/jquery.ui/themes/base/core.css', + 'core/assets/vendor/jquery.ui/themes/base/menu.css', + 'core/assets/vendor/jquery.ui/themes/base/autocomplete.css', + 'core/assets/vendor/jquery.ui/themes/base/theme.css', + ], + 'expected_js' => [ + 'core/assets/vendor/jquery.ui/ui/data-min.js', + 'core/assets/vendor/jquery.ui/ui/disable-selection-min.js', + 'core/assets/vendor/jquery.ui/ui/form-min.js', + 'core/assets/vendor/jquery.ui/ui/labels-min.js', + 'core/assets/vendor/jquery.ui/ui/jquery-1-7-min.js', + 'core/assets/vendor/jquery.ui/ui/scroll-parent-min.js', + 'core/assets/vendor/jquery.ui/ui/tabbable-min.js', + 'core/assets/vendor/jquery.ui/ui/unique-id-min.js', + 'core/assets/vendor/jquery.ui/ui/version-min.js', + 'core/assets/vendor/jquery.ui/ui/escape-selector-min.js', + 'core/assets/vendor/jquery.ui/ui/focusable-min.js', + 'core/assets/vendor/jquery.ui/ui/ie-min.js', + 'core/assets/vendor/jquery.ui/ui/keycode-min.js', + 'core/assets/vendor/jquery.ui/ui/plugin-min.js', + 'core/assets/vendor/jquery.ui/ui/safe-active-element-min.js', + 'core/assets/vendor/jquery.ui/ui/safe-blur-min.js', + 'core/assets/vendor/jquery.ui/ui/widget-min.js', + 'core/assets/vendor/jquery.ui/ui/position-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/menu-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/autocomplete-min.js', + ], + ], + 'drupal.dialog' => [ + 'library' => 'drupal.dialog', + 'expected_css' => [ + 'core/assets/vendor/jquery.ui/themes/base/core.css', + 'core/assets/vendor/jquery.ui/themes/base/resizable.css', + 'core/assets/vendor/jquery.ui/themes/base/checkboxradio.css', + 'core/assets/vendor/jquery.ui/themes/base/controlgroup.css', + 'core/assets/vendor/jquery.ui/themes/base/button.css', + 'core/assets/vendor/jquery.ui/themes/base/dialog.css', + 'core/assets/vendor/jquery.ui/themes/base/theme.css', + ], + 'expected_js' => [ + 'core/assets/vendor/jquery.ui/ui/data-min.js', + 'core/assets/vendor/jquery.ui/ui/disable-selection-min.js', + 'core/assets/vendor/jquery.ui/ui/form-min.js', + 'core/assets/vendor/jquery.ui/ui/labels-min.js', + 'core/assets/vendor/jquery.ui/ui/jquery-1-7-min.js', + 'core/assets/vendor/jquery.ui/ui/scroll-parent-min.js', + 'core/assets/vendor/jquery.ui/ui/tabbable-min.js', + 'core/assets/vendor/jquery.ui/ui/unique-id-min.js', + 'core/assets/vendor/jquery.ui/ui/version-min.js', + 'core/assets/vendor/jquery.ui/ui/escape-selector-min.js', + 'core/assets/vendor/jquery.ui/ui/focusable-min.js', + 'core/assets/vendor/jquery.ui/ui/keycode-min.js', + 'core/assets/vendor/jquery.ui/ui/plugin-min.js', + 'core/assets/vendor/jquery.ui/ui/safe-active-element-min.js', + 'core/assets/vendor/jquery.ui/ui/safe-blur-min.js', + 'core/assets/vendor/jquery.ui/ui/widget-min.js', + 'core/assets/vendor/jquery.ui/ui/ie-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/mouse-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/draggable-min.js', + 'core/assets/vendor/jquery.ui/ui/position-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/resizable-min.js', + 'core/assets/vendor/jquery.ui/ui/form-reset-mixin-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/checkboxradio-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/controlgroup-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/button-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/dialog-min.js', + ], + ], + 'drupal.tabbingmanager' => [ + 'library' => 'drupal.tabbingmanager', + 'expected_css' => [ + 'core/assets/vendor/jquery.ui/themes/base/core.css', + 'core/assets/vendor/jquery.ui/themes/base/theme.css', + ], + 'expected_js' => [ + 'core/assets/vendor/jquery.ui/ui/data-min.js', + 'core/assets/vendor/jquery.ui/ui/disable-selection-min.js', + 'core/assets/vendor/jquery.ui/ui/form-min.js', + 'core/assets/vendor/jquery.ui/ui/labels-min.js', + 'core/assets/vendor/jquery.ui/ui/jquery-1-7-min.js', + 'core/assets/vendor/jquery.ui/ui/scroll-parent-min.js', + 'core/assets/vendor/jquery.ui/ui/tabbable-min.js', + 'core/assets/vendor/jquery.ui/ui/unique-id-min.js', + 'core/assets/vendor/jquery.ui/ui/version-min.js', + 'core/assets/vendor/jquery.ui/ui/escape-selector-min.js', + 'core/assets/vendor/jquery.ui/ui/focusable-min.js', + 'core/assets/vendor/jquery.ui/ui/ie-min.js', + 'core/assets/vendor/jquery.ui/ui/keycode-min.js', + 'core/assets/vendor/jquery.ui/ui/plugin-min.js', + 'core/assets/vendor/jquery.ui/ui/safe-active-element-min.js', + 'core/assets/vendor/jquery.ui/ui/safe-blur-min.js', + ], + ], + 'jquery.ui' => [ + 'library' => 'jquery.ui', + 'expected_css' => [ + 'core/assets/vendor/jquery.ui/themes/base/core.css', + 'core/assets/vendor/jquery.ui/themes/base/theme.css', + ], + 'expected_js' => [ + 'core/assets/vendor/jquery.ui/ui/data-min.js', + 'core/assets/vendor/jquery.ui/ui/disable-selection-min.js', + 'core/assets/vendor/jquery.ui/ui/form-min.js', + 'core/assets/vendor/jquery.ui/ui/labels-min.js', + 'core/assets/vendor/jquery.ui/ui/jquery-1-7-min.js', + 'core/assets/vendor/jquery.ui/ui/scroll-parent-min.js', + 'core/assets/vendor/jquery.ui/ui/tabbable-min.js', + 'core/assets/vendor/jquery.ui/ui/unique-id-min.js', + 'core/assets/vendor/jquery.ui/ui/version-min.js', + 'core/assets/vendor/jquery.ui/ui/escape-selector-min.js', + 'core/assets/vendor/jquery.ui/ui/focusable-min.js', + 'core/assets/vendor/jquery.ui/ui/ie-min.js', + 'core/assets/vendor/jquery.ui/ui/keycode-min.js', + 'core/assets/vendor/jquery.ui/ui/plugin-min.js', + 'core/assets/vendor/jquery.ui/ui/safe-active-element-min.js', + 'core/assets/vendor/jquery.ui/ui/safe-blur-min.js', + ], + ], + 'jquery.ui.autocomplete' => [ + 'library' => 'jquery.ui.autocomplete', + 'expected_css' => [ + 'core/assets/vendor/jquery.ui/themes/base/core.css', + 'core/assets/vendor/jquery.ui/themes/base/menu.css', + 'core/assets/vendor/jquery.ui/themes/base/autocomplete.css', + 'core/assets/vendor/jquery.ui/themes/base/theme.css', + ], + 'expected_js' => [ + 'core/assets/vendor/jquery.ui/ui/data-min.js', + 'core/assets/vendor/jquery.ui/ui/disable-selection-min.js', + 'core/assets/vendor/jquery.ui/ui/form-min.js', + 'core/assets/vendor/jquery.ui/ui/labels-min.js', + 'core/assets/vendor/jquery.ui/ui/jquery-1-7-min.js', + 'core/assets/vendor/jquery.ui/ui/scroll-parent-min.js', + 'core/assets/vendor/jquery.ui/ui/tabbable-min.js', + 'core/assets/vendor/jquery.ui/ui/unique-id-min.js', + 'core/assets/vendor/jquery.ui/ui/version-min.js', + 'core/assets/vendor/jquery.ui/ui/escape-selector-min.js', + 'core/assets/vendor/jquery.ui/ui/focusable-min.js', + 'core/assets/vendor/jquery.ui/ui/ie-min.js', + 'core/assets/vendor/jquery.ui/ui/keycode-min.js', + 'core/assets/vendor/jquery.ui/ui/plugin-min.js', + 'core/assets/vendor/jquery.ui/ui/safe-active-element-min.js', + 'core/assets/vendor/jquery.ui/ui/safe-blur-min.js', + 'core/assets/vendor/jquery.ui/ui/widget-min.js', + 'core/assets/vendor/jquery.ui/ui/position-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/menu-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/autocomplete-min.js', + ], + ], + 'jquery.ui.button' => [ + 'library' => 'jquery.ui.button', + 'expected_css' => [ + 'core/assets/vendor/jquery.ui/themes/base/core.css', + 'core/assets/vendor/jquery.ui/themes/base/checkboxradio.css', + 'core/assets/vendor/jquery.ui/themes/base/controlgroup.css', + 'core/assets/vendor/jquery.ui/themes/base/button.css', + 'core/assets/vendor/jquery.ui/themes/base/theme.css', + ], + 'expected_js' => [ + 'core/assets/vendor/jquery.ui/ui/data-min.js', + 'core/assets/vendor/jquery.ui/ui/disable-selection-min.js', + 'core/assets/vendor/jquery.ui/ui/form-min.js', + 'core/assets/vendor/jquery.ui/ui/labels-min.js', + 'core/assets/vendor/jquery.ui/ui/jquery-1-7-min.js', + 'core/assets/vendor/jquery.ui/ui/scroll-parent-min.js', + 'core/assets/vendor/jquery.ui/ui/tabbable-min.js', + 'core/assets/vendor/jquery.ui/ui/unique-id-min.js', + 'core/assets/vendor/jquery.ui/ui/version-min.js', + 'core/assets/vendor/jquery.ui/ui/escape-selector-min.js', + 'core/assets/vendor/jquery.ui/ui/focusable-min.js', + 'core/assets/vendor/jquery.ui/ui/ie-min.js', + 'core/assets/vendor/jquery.ui/ui/keycode-min.js', + 'core/assets/vendor/jquery.ui/ui/plugin-min.js', + 'core/assets/vendor/jquery.ui/ui/safe-active-element-min.js', + 'core/assets/vendor/jquery.ui/ui/safe-blur-min.js', + 'core/assets/vendor/jquery.ui/ui/widget-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/checkboxradio-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/controlgroup-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/button-min.js', + ], + ], + 'jquery.ui.dialog' => [ + 'library' => 'jquery.ui.dialog', + 'expected_css' => [ + 'core/assets/vendor/jquery.ui/themes/base/core.css', + 'core/assets/vendor/jquery.ui/themes/base/resizable.css', + 'core/assets/vendor/jquery.ui/themes/base/checkboxradio.css', + 'core/assets/vendor/jquery.ui/themes/base/controlgroup.css', + 'core/assets/vendor/jquery.ui/themes/base/button.css', + 'core/assets/vendor/jquery.ui/themes/base/dialog.css', + 'core/assets/vendor/jquery.ui/themes/base/theme.css', + ], + 'expected_js' => [ + 'core/assets/vendor/jquery.ui/ui/data-min.js', + 'core/assets/vendor/jquery.ui/ui/disable-selection-min.js', + 'core/assets/vendor/jquery.ui/ui/form-min.js', + 'core/assets/vendor/jquery.ui/ui/labels-min.js', + 'core/assets/vendor/jquery.ui/ui/jquery-1-7-min.js', + 'core/assets/vendor/jquery.ui/ui/scroll-parent-min.js', + 'core/assets/vendor/jquery.ui/ui/tabbable-min.js', + 'core/assets/vendor/jquery.ui/ui/unique-id-min.js', + 'core/assets/vendor/jquery.ui/ui/version-min.js', + 'core/assets/vendor/jquery.ui/ui/escape-selector-min.js', + 'core/assets/vendor/jquery.ui/ui/focusable-min.js', + 'core/assets/vendor/jquery.ui/ui/keycode-min.js', + 'core/assets/vendor/jquery.ui/ui/plugin-min.js', + 'core/assets/vendor/jquery.ui/ui/safe-active-element-min.js', + 'core/assets/vendor/jquery.ui/ui/safe-blur-min.js', + 'core/assets/vendor/jquery.ui/ui/widget-min.js', + 'core/assets/vendor/jquery.ui/ui/ie-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/mouse-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/draggable-min.js', + 'core/assets/vendor/jquery.ui/ui/position-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/resizable-min.js', + 'core/assets/vendor/jquery.ui/ui/form-reset-mixin-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/checkboxradio-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/controlgroup-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/button-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/dialog-min.js', + ], + ], + 'jquery.ui.menu' => [ + 'library' => 'jquery.ui.menu', + 'expected_css' => [ + 'core/assets/vendor/jquery.ui/themes/base/core.css', + 'core/assets/vendor/jquery.ui/themes/base/menu.css', + 'core/assets/vendor/jquery.ui/themes/base/theme.css', + ], + 'expected_js' => [ + 'core/assets/vendor/jquery.ui/ui/data-min.js', + 'core/assets/vendor/jquery.ui/ui/disable-selection-min.js', + 'core/assets/vendor/jquery.ui/ui/form-min.js', + 'core/assets/vendor/jquery.ui/ui/labels-min.js', + 'core/assets/vendor/jquery.ui/ui/jquery-1-7-min.js', + 'core/assets/vendor/jquery.ui/ui/scroll-parent-min.js', + 'core/assets/vendor/jquery.ui/ui/tabbable-min.js', + 'core/assets/vendor/jquery.ui/ui/unique-id-min.js', + 'core/assets/vendor/jquery.ui/ui/version-min.js', + 'core/assets/vendor/jquery.ui/ui/escape-selector-min.js', + 'core/assets/vendor/jquery.ui/ui/focusable-min.js', + 'core/assets/vendor/jquery.ui/ui/ie-min.js', + 'core/assets/vendor/jquery.ui/ui/keycode-min.js', + 'core/assets/vendor/jquery.ui/ui/plugin-min.js', + 'core/assets/vendor/jquery.ui/ui/safe-active-element-min.js', + 'core/assets/vendor/jquery.ui/ui/safe-blur-min.js', + 'core/assets/vendor/jquery.ui/ui/widget-min.js', + 'core/assets/vendor/jquery.ui/ui/position-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/menu-min.js', + ], + ], + 'jquery.ui.mouse' => [ + 'library' => 'jquery.ui.mouse', + 'expected_css' => [ + 'core/assets/vendor/jquery.ui/themes/base/core.css', + 'core/assets/vendor/jquery.ui/themes/base/theme.css', + ], + 'expected_js' => [ + 'core/assets/vendor/jquery.ui/ui/data-min.js', + 'core/assets/vendor/jquery.ui/ui/disable-selection-min.js', + 'core/assets/vendor/jquery.ui/ui/form-min.js', + 'core/assets/vendor/jquery.ui/ui/labels-min.js', + 'core/assets/vendor/jquery.ui/ui/jquery-1-7-min.js', + 'core/assets/vendor/jquery.ui/ui/scroll-parent-min.js', + 'core/assets/vendor/jquery.ui/ui/tabbable-min.js', + 'core/assets/vendor/jquery.ui/ui/unique-id-min.js', + 'core/assets/vendor/jquery.ui/ui/version-min.js', + 'core/assets/vendor/jquery.ui/ui/escape-selector-min.js', + 'core/assets/vendor/jquery.ui/ui/focusable-min.js', + 'core/assets/vendor/jquery.ui/ui/keycode-min.js', + 'core/assets/vendor/jquery.ui/ui/plugin-min.js', + 'core/assets/vendor/jquery.ui/ui/safe-active-element-min.js', + 'core/assets/vendor/jquery.ui/ui/safe-blur-min.js', + 'core/assets/vendor/jquery.ui/ui/widget-min.js', + 'core/assets/vendor/jquery.ui/ui/ie-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/mouse-min.js', + ], + ], + 'jquery.ui.position' => [ + 'library' => 'jquery.ui.position', + 'expected_css' => [ + 'core/assets/vendor/jquery.ui/themes/base/core.css', + 'core/assets/vendor/jquery.ui/themes/base/theme.css', + ], + 'expected_js' => [ + 'core/assets/vendor/jquery.ui/ui/data-min.js', + 'core/assets/vendor/jquery.ui/ui/disable-selection-min.js', + 'core/assets/vendor/jquery.ui/ui/form-min.js', + 'core/assets/vendor/jquery.ui/ui/labels-min.js', + 'core/assets/vendor/jquery.ui/ui/jquery-1-7-min.js', + 'core/assets/vendor/jquery.ui/ui/scroll-parent-min.js', + 'core/assets/vendor/jquery.ui/ui/tabbable-min.js', + 'core/assets/vendor/jquery.ui/ui/unique-id-min.js', + 'core/assets/vendor/jquery.ui/ui/version-min.js', + 'core/assets/vendor/jquery.ui/ui/escape-selector-min.js', + 'core/assets/vendor/jquery.ui/ui/focusable-min.js', + 'core/assets/vendor/jquery.ui/ui/ie-min.js', + 'core/assets/vendor/jquery.ui/ui/keycode-min.js', + 'core/assets/vendor/jquery.ui/ui/plugin-min.js', + 'core/assets/vendor/jquery.ui/ui/safe-active-element-min.js', + 'core/assets/vendor/jquery.ui/ui/safe-blur-min.js', + 'core/assets/vendor/jquery.ui/ui/position-min.js', + ], + ], + 'jquery.ui.resizable' => [ + 'library' => 'jquery.ui.resizable', + 'expected_css' => [ + 'core/assets/vendor/jquery.ui/themes/base/core.css', + 'core/assets/vendor/jquery.ui/themes/base/resizable.css', + 'core/assets/vendor/jquery.ui/themes/base/theme.css', + ], + 'expected_js' => [ + 'core/assets/vendor/jquery.ui/ui/data-min.js', + 'core/assets/vendor/jquery.ui/ui/disable-selection-min.js', + 'core/assets/vendor/jquery.ui/ui/form-min.js', + 'core/assets/vendor/jquery.ui/ui/labels-min.js', + 'core/assets/vendor/jquery.ui/ui/jquery-1-7-min.js', + 'core/assets/vendor/jquery.ui/ui/scroll-parent-min.js', + 'core/assets/vendor/jquery.ui/ui/tabbable-min.js', + 'core/assets/vendor/jquery.ui/ui/unique-id-min.js', + 'core/assets/vendor/jquery.ui/ui/version-min.js', + 'core/assets/vendor/jquery.ui/ui/escape-selector-min.js', + 'core/assets/vendor/jquery.ui/ui/focusable-min.js', + 'core/assets/vendor/jquery.ui/ui/keycode-min.js', + 'core/assets/vendor/jquery.ui/ui/plugin-min.js', + 'core/assets/vendor/jquery.ui/ui/safe-active-element-min.js', + 'core/assets/vendor/jquery.ui/ui/safe-blur-min.js', + 'core/assets/vendor/jquery.ui/ui/widget-min.js', + 'core/assets/vendor/jquery.ui/ui/ie-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/mouse-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/resizable-min.js', + ], + ], + 'jquery.ui.widget' => [ + 'library' => 'jquery.ui.widget', + 'expected_css' => [ + 'core/assets/vendor/jquery.ui/themes/base/core.css', + 'core/assets/vendor/jquery.ui/themes/base/theme.css', + ], + 'expected_js' => [ + 'core/assets/vendor/jquery.ui/ui/data-min.js', + 'core/assets/vendor/jquery.ui/ui/disable-selection-min.js', + 'core/assets/vendor/jquery.ui/ui/form-min.js', + 'core/assets/vendor/jquery.ui/ui/labels-min.js', + 'core/assets/vendor/jquery.ui/ui/jquery-1-7-min.js', + 'core/assets/vendor/jquery.ui/ui/scroll-parent-min.js', + 'core/assets/vendor/jquery.ui/ui/tabbable-min.js', + 'core/assets/vendor/jquery.ui/ui/unique-id-min.js', + 'core/assets/vendor/jquery.ui/ui/version-min.js', + 'core/assets/vendor/jquery.ui/ui/escape-selector-min.js', + 'core/assets/vendor/jquery.ui/ui/focusable-min.js', + 'core/assets/vendor/jquery.ui/ui/ie-min.js', + 'core/assets/vendor/jquery.ui/ui/keycode-min.js', + 'core/assets/vendor/jquery.ui/ui/plugin-min.js', + 'core/assets/vendor/jquery.ui/ui/safe-active-element-min.js', + 'core/assets/vendor/jquery.ui/ui/safe-blur-min.js', + 'core/assets/vendor/jquery.ui/ui/widget-min.js', + ], + ], + // A few instances of multiple libraries being checked simultaneously are + // here to ensure that multiple libraries requesting the same asset does + // not impact the expected loading order. + 'drupal.tabbingmanager|jquery.ui|jquery.ui.widget' => [ + 'library' => 'drupal.tabbingmanager|jquery.ui|jquery.ui.widget', + 'expected_css' => [ + 'core/assets/vendor/jquery.ui/themes/base/core.css', + 'core/assets/vendor/jquery.ui/themes/base/theme.css', + ], + 'expected_js' => [ + 'core/assets/vendor/jquery.ui/ui/data-min.js', + 'core/assets/vendor/jquery.ui/ui/disable-selection-min.js', + 'core/assets/vendor/jquery.ui/ui/form-min.js', + 'core/assets/vendor/jquery.ui/ui/labels-min.js', + 'core/assets/vendor/jquery.ui/ui/jquery-1-7-min.js', + 'core/assets/vendor/jquery.ui/ui/scroll-parent-min.js', + 'core/assets/vendor/jquery.ui/ui/tabbable-min.js', + 'core/assets/vendor/jquery.ui/ui/unique-id-min.js', + 'core/assets/vendor/jquery.ui/ui/version-min.js', + 'core/assets/vendor/jquery.ui/ui/escape-selector-min.js', + 'core/assets/vendor/jquery.ui/ui/focusable-min.js', + 'core/assets/vendor/jquery.ui/ui/ie-min.js', + 'core/assets/vendor/jquery.ui/ui/keycode-min.js', + 'core/assets/vendor/jquery.ui/ui/plugin-min.js', + 'core/assets/vendor/jquery.ui/ui/safe-active-element-min.js', + 'core/assets/vendor/jquery.ui/ui/safe-blur-min.js', + 'core/assets/vendor/jquery.ui/ui/widget-min.js', + ], + ], + 'drupal.autocomplete|jquery.ui|jquery.ui.autocomplete|drupal.dialog' => [ + 'library' => 'drupal.autocomplete|jquery.ui|jquery.ui.autocomplete|drupal.dialog', + 'expected_css' => [ + 'core/assets/vendor/jquery.ui/themes/base/core.css', + 'core/assets/vendor/jquery.ui/themes/base/menu.css', + 'core/assets/vendor/jquery.ui/themes/base/autocomplete.css', + 'core/assets/vendor/jquery.ui/themes/base/resizable.css', + 'core/assets/vendor/jquery.ui/themes/base/checkboxradio.css', + 'core/assets/vendor/jquery.ui/themes/base/controlgroup.css', + 'core/assets/vendor/jquery.ui/themes/base/button.css', + 'core/assets/vendor/jquery.ui/themes/base/dialog.css', + 'core/assets/vendor/jquery.ui/themes/base/theme.css', + ], + 'expected_js' => [ + 'core/assets/vendor/jquery.ui/ui/data-min.js', + 'core/assets/vendor/jquery.ui/ui/disable-selection-min.js', + 'core/assets/vendor/jquery.ui/ui/form-min.js', + 'core/assets/vendor/jquery.ui/ui/labels-min.js', + 'core/assets/vendor/jquery.ui/ui/jquery-1-7-min.js', + 'core/assets/vendor/jquery.ui/ui/scroll-parent-min.js', + 'core/assets/vendor/jquery.ui/ui/tabbable-min.js', + 'core/assets/vendor/jquery.ui/ui/unique-id-min.js', + 'core/assets/vendor/jquery.ui/ui/version-min.js', + 'core/assets/vendor/jquery.ui/ui/escape-selector-min.js', + 'core/assets/vendor/jquery.ui/ui/focusable-min.js', + 'core/assets/vendor/jquery.ui/ui/keycode-min.js', + 'core/assets/vendor/jquery.ui/ui/plugin-min.js', + 'core/assets/vendor/jquery.ui/ui/safe-active-element-min.js', + 'core/assets/vendor/jquery.ui/ui/safe-blur-min.js', + 'core/assets/vendor/jquery.ui/ui/widget-min.js', + 'core/assets/vendor/jquery.ui/ui/position-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/menu-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/autocomplete-min.js', + 'core/assets/vendor/jquery.ui/ui/ie-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/mouse-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/draggable-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/resizable-min.js', + 'core/assets/vendor/jquery.ui/ui/form-reset-mixin-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/checkboxradio-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/controlgroup-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/button-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/dialog-min.js', + ], + ], + 'jquery.ui.widget|jquery.ui.resizable|jquery.ui.position|jquery.ui.mouse|jquery.ui.menu|jquery.ui.dialog|jquery.ui.button|jquery.ui.autocomplete|jquery.ui|drupal.tabbingmanager|drupal.dialog|drupal.autocomplete' => [ + 'library' => 'jquery.ui.widget|jquery.ui.resizable|jquery.ui.position|jquery.ui.mouse|jquery.ui.menu|jquery.ui.dialog|jquery.ui.button|jquery.ui.autocomplete|jquery.ui|drupal.tabbingmanager|drupal.dialog|drupal.autocomplete', + 'expected_css' => [ + 'core/assets/vendor/jquery.ui/themes/base/core.css', + 'core/assets/vendor/jquery.ui/themes/base/resizable.css', + 'core/assets/vendor/jquery.ui/themes/base/menu.css', + 'core/assets/vendor/jquery.ui/themes/base/dialog.css', + 'core/assets/vendor/jquery.ui/themes/base/checkboxradio.css', + 'core/assets/vendor/jquery.ui/themes/base/controlgroup.css', + 'core/assets/vendor/jquery.ui/themes/base/button.css', + 'core/assets/vendor/jquery.ui/themes/base/autocomplete.css', + 'core/assets/vendor/jquery.ui/themes/base/theme.css', + ], + 'expected_js' => [ + 'core/assets/vendor/jquery.ui/ui/data-min.js', + 'core/assets/vendor/jquery.ui/ui/disable-selection-min.js', + 'core/assets/vendor/jquery.ui/ui/form-min.js', + 'core/assets/vendor/jquery.ui/ui/labels-min.js', + 'core/assets/vendor/jquery.ui/ui/jquery-1-7-min.js', + 'core/assets/vendor/jquery.ui/ui/scroll-parent-min.js', + 'core/assets/vendor/jquery.ui/ui/tabbable-min.js', + 'core/assets/vendor/jquery.ui/ui/unique-id-min.js', + 'core/assets/vendor/jquery.ui/ui/version-min.js', + 'core/assets/vendor/jquery.ui/ui/escape-selector-min.js', + 'core/assets/vendor/jquery.ui/ui/focusable-min.js', + 'core/assets/vendor/jquery.ui/ui/keycode-min.js', + 'core/assets/vendor/jquery.ui/ui/plugin-min.js', + 'core/assets/vendor/jquery.ui/ui/safe-active-element-min.js', + 'core/assets/vendor/jquery.ui/ui/safe-blur-min.js', + 'core/assets/vendor/jquery.ui/ui/widget-min.js', + 'core/assets/vendor/jquery.ui/ui/ie-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/mouse-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/resizable-min.js', + 'core/assets/vendor/jquery.ui/ui/position-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/menu-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/draggable-min.js', + 'core/assets/vendor/jquery.ui/ui/form-reset-mixin-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/dialog-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/autocomplete-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/button-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/controlgroup-min.js', + 'core/assets/vendor/jquery.ui/ui/widgets/checkboxradio-min.js', + ], + ], + ]; + + } + +} diff --git a/core/tests/Drupal/KernelTests/Core/Asset/DeprecatedJqueryUiAssetsTest.php b/core/tests/Drupal/KernelTests/Core/Asset/DeprecatedJqueryUiAssetsTest.php new file mode 100644 index 0000000000000000000000000000000000000000..ea5fe3d00764b121e8d37bb0267f167c2f2b3160 --- /dev/null +++ b/core/tests/Drupal/KernelTests/Core/Asset/DeprecatedJqueryUiAssetsTest.php @@ -0,0 +1,55 @@ +<?php + +namespace Drupal\KernelTests\Core\Asset; + +use Drupal\KernelTests\KernelTestBase; + +/** + * Checks the deprecation status and contents of jQuery UI libraries. + * + * @group Asset + */ +class DeprecatedJqueryUiAssetsTest extends KernelTestBase { + + /** + * The library discovery service. + * + * @var \Drupal\Core\Asset\LibraryDiscoveryInterface + */ + protected $libraryDiscovery; + + /** + * {@inheritdoc} + */ + protected function setUp(): void { + parent::setUp(); + + $this->libraryDiscovery = $this->container->get('library.discovery'); + } + + /** + * Confirm deprecation status and contents of jQuery UI libraries. + * + * @group legacy + */ + public function testDeprecatedJqueryUi() { + $deprecated_jquery_ui_libraries = [ + 'jquery.ui' => '1396fab9268ee2cce47df6ac3e4781c8', + 'jquery.ui.autocomplete' => '153f2836f8f2da39767208b6e09cb5b4', + 'jquery.ui.button' => 'ad23e5de0fa1de1f511d10ba2e10d2dd', + 'jquery.ui.dialog' => 'dc72e5bd38a3d2697bcf3e7964852e4b', + 'jquery.ui.draggable' => 'af0f2bdc8aa4ade1e3de8042f31a9312', + 'jquery.ui.menu' => '7d0c4d57f43d2f881d2cd5e5b79effbb', + 'jquery.ui.mouse' => '626bb203807fa2cdc62510412685df4a', + 'jquery.ui.position' => '6d1759c7d3eb94accbed78416487469b', + 'jquery.ui.resizable' => 'a2448fa87071a17a9756f39c9becb70d', + 'jquery.ui.widget' => 'eacd675de09572383b58e52309ba2245', + ]; + foreach ($deprecated_jquery_ui_libraries as $library => $expected_hashed_library_definition) { + $this->expectDeprecation("The \"core/$library\" asset library is deprecated in drupal:9.2.0 and is removed from drupal:10.0.0. See https://www.drupal.org/node/3067969"); + $library_definition = $this->libraryDiscovery->getLibraryByName('core', $library); + $this->assertEquals($expected_hashed_library_definition, md5(serialize($library_definition))); + } + } + +} diff --git a/core/tests/Drupal/KernelTests/Core/Asset/LibraryDiscoveryIntegrationTest.php b/core/tests/Drupal/KernelTests/Core/Asset/LibraryDiscoveryIntegrationTest.php index b6d867c10876f0545d5538e07b438aadadd23ee7..f247feb449bc360e970d24739e5e79f282e97243 100644 --- a/core/tests/Drupal/KernelTests/Core/Asset/LibraryDiscoveryIntegrationTest.php +++ b/core/tests/Drupal/KernelTests/Core/Asset/LibraryDiscoveryIntegrationTest.php @@ -147,7 +147,7 @@ public function testLibrariesOverrideOtherAssetLibraryNames() { $this->assertAssetInLibrary('public://my_css/vertical-tabs.css', 'core', 'drupal.vertical-tabs', 'css'); // Assert a protocol-relative URI. - $this->assertAssetInLibrary('//my-server/my_theme/css/jquery_ui.css', 'core', 'jquery.ui', 'css'); + $this->assertAssetInLibrary('//my-server/my_theme/js/overridden.js', 'core', 'drupal.displace', 'js'); // Assert an absolute URI. $this->assertAssetInLibrary('http://example.com/my_theme/css/farbtastic.css', 'core', 'jquery.farbtastic', 'css'); diff --git a/core/themes/claro/claro.info.yml b/core/themes/claro/claro.info.yml index 635cabfdd89ef83ad2b000606730a4b2f7f2ac20..5490c17b07c1227cc3ca06a068da5a683e715f06 100644 --- a/core/themes/claro/claro.info.yml +++ b/core/themes/claro/claro.info.yml @@ -59,15 +59,22 @@ libraries-override: js: misc/vertical-tabs.js: js/vertical-tabs.js - core/jquery.ui: + core/drupal.autocomplete: + css: + theme: + assets/vendor/jquery.ui/themes/base/theme.css: false + + core/drupal.tabbingmanager: css: theme: assets/vendor/jquery.ui/themes/base/theme.css: false - core/jquery.ui.dialog: + core/drupal.dialog: css: component: assets/vendor/jquery.ui/themes/base/dialog.css: false + theme: + assets/vendor/jquery.ui/themes/base/theme.css: false user/drupal.user: css: @@ -118,6 +125,7 @@ libraries-extend: - claro/details-focus core/drupal.dialog: - claro/claro.drupal.dialog + - claro/claro.jquery.ui core/drupal.dropbutton: - claro/dropbutton core/drupal.checkbox: @@ -126,10 +134,10 @@ libraries-extend: - claro/messages core/drupal.progress: - claro/progress + core/drupal.tabbingmanager: + - claro/claro.jquery.ui core/drupal.vertical-tabs: - claro/vertical-tabs - core/jquery.ui: - - claro/claro.jquery.ui file/drupal.file: - claro/file filter/drupal.filter.admin: @@ -140,6 +148,7 @@ libraries-extend: - claro/system.admin core/drupal.autocomplete: - claro/autocomplete + - claro/claro.jquery.ui tour/tour-styling: - claro/tour-styling shortcut/drupal.shortcut: diff --git a/core/themes/seven/seven.info.yml b/core/themes/seven/seven.info.yml index 44f08011a4be46ef064273b8473e96170c375a48..f02a6f0a86211504acbadc9dda340e532a9d2491 100644 --- a/core/themes/seven/seven.info.yml +++ b/core/themes/seven/seven.info.yml @@ -34,28 +34,37 @@ libraries-override: css: component: misc/vertical-tabs.css: false - core/jquery.ui: + core/drupal.autocomplete: css: theme: assets/vendor/jquery.ui/themes/base/theme.css: false - core/jquery.ui.dialog: + core/drupal.tabbingmanager: + css: + theme: + assets/vendor/jquery.ui/themes/base/theme.css: false + core/drupal.dialog: css: component: assets/vendor/jquery.ui/themes/base/dialog.css: false + theme: + assets/vendor/jquery.ui/themes/base/theme.css: false libraries-extend: core/ckeditor: - seven/ckeditor-dialog + core/drupal.autocomplete: + - seven/seven.jquery.ui core/drupal.dialog: - seven/seven.drupal.dialog + - seven/seven.jquery.ui core/drupal.dropbutton: - seven/classy.dropbutton core/drupal.progress: - seven/classy.progress + core/drupal.tabbingmanager: + - seven/seven.jquery.ui core/drupal.vertical-tabs: - seven/vertical-tabs - core/jquery.ui: - - seven/seven.jquery.ui file/drupal.file: - seven/classy.file filter/drupal.filter.admin: