diff -u b/core/modules/awesomplete_autocomplete/awesomplete_autocomplete.module b/core/modules/awesomplete_autocomplete/awesomplete_autocomplete.module --- b/core/modules/awesomplete_autocomplete/awesomplete_autocomplete.module +++ b/core/modules/awesomplete_autocomplete/awesomplete_autocomplete.module @@ -15,7 +15,7 @@ case 'help.page.awesomplete_autocomplete': $output = '
' . t('The Awesomplete Autocomplete module implements a replacement for jQuery UI Autocomplete. The asset library core/jquery.ui.autocomplete is deprecated in drupal:8.8.0 and is removed from drupal:9.0.0. Enabling this module overrides the current core asset library to evaluate Awesomplete and to assist with making any necessary style or API changes to themes or modules.') . '
' . t('For more information, see the issue to replace jQuery UI Autocomplete.', [':awesomplete_autocomplete' => 'https://www.drupal.org/project/drupal/issues/3076171']) . '
'; + $output .= '' . t('For more information, see the online documentation for the Awesomplete Autocomplete module..', [':awesomplete_autocomplete' => 'https://www.drupal.org/docs/8/core/modules/experimental-awesomplete-autocomplete']) . '
'; return $output; } } @@ -25,8 +25,6 @@ */ function awesomplete_autocomplete_library_info_alter(&$libraries, $extension) { if ($extension == 'core' && isset($libraries['drupal.autocomplete'])) { - // Module full path. - $path = drupal_get_path('module', 'awesomplete_autocomplete') . '/js'; // Remove core js. $libraries['drupal.autocomplete']['js'] = []; // Replace dependency. diff -u b/core/modules/awesomplete_autocomplete/css/awesomplete.base.css b/core/modules/awesomplete_autocomplete/css/awesomplete.base.css --- b/core/modules/awesomplete_autocomplete/css/awesomplete.base.css +++ b/core/modules/awesomplete_autocomplete/css/awesomplete.base.css @@ -1,33 +1,33 @@ .awesomplete [hidden] { - display: none; + display: none; } .awesomplete .visually-hidden { - position: absolute; - clip: rect(0, 0, 0, 0); + position: absolute; + clip: rect(0, 0, 0, 0); } .awesomplete { - display: inline-block; - position: relative; + display: inline-block; + position: relative; } .awesomplete > input { - display: block; + display: block; } .awesomplete > ul { - position: absolute; - left: 0; - z-index: 1; - min-width: 100%; - box-sizing: border-box; - list-style: none; - padding: 0; - margin: 0; - background: #fff; + position: absolute; + left: 0; + z-index: 1; + min-width: 100%; + box-sizing: border-box; + list-style: none; + padding: 0; + margin: 0; + background: #fff; } .awesomplete > ul:empty { - display: none; + display: none; } diff -u b/core/modules/awesomplete_autocomplete/js/autocomplete.es6.js b/core/modules/awesomplete_autocomplete/js/autocomplete.es6.js --- b/core/modules/awesomplete_autocomplete/js/autocomplete.es6.js +++ b/core/modules/awesomplete_autocomplete/js/autocomplete.es6.js @@ -60,10 +60,14 @@ /** * Return the id from a term value. * - * @param {string} term - * @returns {number} + * @param {object} term + * A suggestion based on user input. It is an object with label and value + * properties. + * @return {string} + * The term id. */ - const extractTermID = term => term.value.search(/\((\d+)\)$/); + const extractTermID = term => + term.value ? term.value.search(/\((\d+)\)$/) : ''; /** * Determines if a suggestion should be an available option. @@ -127,7 +131,12 @@ * @return {HTMLElement} * A list element containing a suggestion. */ - const displayItem = (suggestion, input) => Awesomplete.ITEM(suggestion, extractLastTerm(input), extractTermID(suggestion)); + const displayItem = (suggestion, input) => + Awesomplete.ITEM( + suggestion, + extractLastTerm(input), + extractTermID(suggestion), + ); /** * Replaces the value of an input field when a new value is chosen. diff -u b/core/modules/awesomplete_autocomplete/js/autocomplete.js b/core/modules/awesomplete_autocomplete/js/autocomplete.js --- b/core/modules/awesomplete_autocomplete/js/autocomplete.js +++ b/core/modules/awesomplete_autocomplete/js/autocomplete.js @@ -40,7 +40,7 @@ }; var extractTermID = function extractTermID(term) { - return term.value.search(/\((\d+)\)$/); + return term.value ? term.value.search(/\((\d+)\)$/) : ''; }; function filterResults(suggestion, input) { only in patch2: unchanged: --- a/core/tests/Drupal/Tests/Listeners/DeprecationListenerTrait.php +++ b/core/tests/Drupal/Tests/Listeners/DeprecationListenerTrait.php @@ -140,6 +140,7 @@ public static function getSkippedDeprecations() { // This deprecation comes from behat/mink-browserkit-driver when updating // symfony/browser-kit to 4.3+. 'The "Symfony\Component\BrowserKit\Response::getStatus()" method is deprecated since Symfony 4.3, use getStatusCode() instead.', + 'The "core/jquery.ui.autocomplete" asset library is deprecated in drupal:8.8.0 and is removed from drupal:9.0.0. See https://www.drupal.org/project/drupal/issues/3076171', ]; }