Commit 2e503e13 authored by Sergey Shadrin's avatar Sergey Shadrin

[#124455] Updated bootstrap theme

parent 74e6f9a1
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
"drupal/admin_toolbar": "^3.3", "drupal/admin_toolbar": "^3.3",
"drupal/bartik": "^1.0", "drupal/bartik": "^1.0",
"drupal/blazy": "^2.14", "drupal/blazy": "^2.14",
"drupal/bootstrap": "^3.28", "drupal/bootstrap": "^3.30",
"drupal/ckeditor_font": "^1.4", "drupal/ckeditor_font": "^1.4",
"drupal/classy": "^1.0", "drupal/classy": "^1.0",
"drupal/color": "^1.0", "drupal/color": "^1.0",
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "13fee55859c8f93ced23cd80514a2a43", "content-hash": "cc5c8ab515762c32966ece0775ff5f33",
"packages": [ "packages": [
{ {
"name": "asm89/stack-cors", "name": "asm89/stack-cors",
...@@ -1653,17 +1653,17 @@ ...@@ -1653,17 +1653,17 @@
}, },
{ {
"name": "drupal/bootstrap", "name": "drupal/bootstrap",
"version": "3.28.0", "version": "3.30.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://git.drupalcode.org/project/bootstrap.git", "url": "https://git.drupalcode.org/project/bootstrap.git",
"reference": "8.x-3.28" "reference": "8.x-3.30"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://ftp.drupal.org/files/projects/bootstrap-8.x-3.28.zip", "url": "https://ftp.drupal.org/files/projects/bootstrap-8.x-3.30.zip",
"reference": "8.x-3.28", "reference": "8.x-3.30",
"shasum": "a38475b0a6896da85185d98af6de33dd456f33c2" "shasum": "37a44a677163d2e82f1a8b55bd5feddb88918ad2"
}, },
"require": { "require": {
"drupal/core": "^9.5 || ^10", "drupal/core": "^9.5 || ^10",
...@@ -1672,14 +1672,19 @@ ...@@ -1672,14 +1672,19 @@
"type": "drupal-theme", "type": "drupal-theme",
"extra": { "extra": {
"drupal": { "drupal": {
"version": "8.x-3.28", "version": "8.x-3.30",
"datestamp": "1680536061", "datestamp": "1707842525",
"security-coverage": { "security-coverage": {
"status": "covered", "status": "covered",
"message": "Covered by Drupal's security advisory policy" "message": "Covered by Drupal's security advisory policy"
} }
} }
}, },
"autoload": {
"psr-4": {
"Drupal\\bootstrap\\": "src"
}
},
"notification-url": "https://packages.drupal.org/8/downloads", "notification-url": "https://packages.drupal.org/8/downloads",
"license": [ "license": [
"GPL-2.0-or-later" "GPL-2.0-or-later"
...@@ -9866,6 +9871,7 @@ ...@@ -9866,6 +9871,7 @@
"minimum-stability": "dev", "minimum-stability": "dev",
"stability-flags": { "stability-flags": {
"drupal/config_split": 5, "drupal/config_split": 5,
"drupal/entity_embed": 20,
"drupal/linkit": 5, "drupal/linkit": 5,
"drupal/media_entity_browser": 15, "drupal/media_entity_browser": 15,
"drupal/rabbit_hole": 10, "drupal/rabbit_hole": 10,
...@@ -9877,5 +9883,5 @@ ...@@ -9877,5 +9883,5 @@
"prefer-lowest": false, "prefer-lowest": false,
"platform": [], "platform": [],
"platform-dev": [], "platform-dev": [],
"plugin-api-version": "2.3.0" "plugin-api-version": "2.6.0"
} }
...@@ -78,7 +78,7 @@ libraries-override: ...@@ -78,7 +78,7 @@ libraries-override:
theme: theme:
css/node.preview.css: false css/node.preview.css: false
# Information added by Drupal.org packaging script on 2023-04-03 # Information added by Drupal.org packaging script on 2024-02-13
version: '8.x-3.28' version: '8.x-3.30'
project: 'bootstrap' project: 'bootstrap'
datestamp: 1680536064 datestamp: 1707842528
...@@ -35,5 +35,10 @@ ...@@ -35,5 +35,10 @@
"require": { "require": {
"drupal/core": "^9.5 || ^10", "drupal/core": "^9.5 || ^10",
"php": ">=8.1.0" "php": ">=8.1.0"
},
"autoload": {
"psr-4": {
"Drupal\\bootstrap\\": "src"
}
} }
} }
...@@ -100,7 +100,7 @@ ...@@ -100,7 +100,7 @@
} }
// If element is an input DOM element type (not :input), append after. // If element is an input DOM element type (not :input), append after.
if ($element.is('input')) { if ($element.is('input') || $element.is('select')) {
$element.after(this.progress.element); $element.after(this.progress.element);
} }
// Otherwise append the throbber inside the element. // Otherwise append the throbber inside the element.
...@@ -120,15 +120,6 @@ ...@@ -120,15 +120,6 @@
Drupal.Ajax.prototype.success = function (response, status) { Drupal.Ajax.prototype.success = function (response, status) {
if (this.progress.element) { if (this.progress.element) {
// Stop a glyphicon throbber.
if (this.progress.glyphicon) {
this.glyphiconStop(this.progress.element);
}
// Remove the progress element.
else {
this.progress.element.remove();
}
// Remove any message set. // Remove any message set.
this.progress.element.parent().find('.message').remove(); this.progress.element.parent().find('.message').remove();
} }
......
...@@ -185,8 +185,6 @@ ...@@ -185,8 +185,6 @@
'data-toggle': 'tooltip' 'data-toggle': 'tooltip'
})); }));
self.$toggleWeightButton = $('[data-drupal-selector="tabledrag-toggle-weight"]');
self.$toggleWeightButton self.$toggleWeightButton
.on('click', $.proxy(function (e) { .on('click', $.proxy(function (e) {
e.preventDefault(); e.preventDefault();
......
...@@ -39,6 +39,14 @@ ...@@ -39,6 +39,14 @@
var $modal = $(e.target); var $modal = $(e.target);
var modal = $modal.data('bs.modal'); var modal = $modal.data('bs.modal');
// Check if there are any CKEditor 5 instances
var $ckeditor = $modal.find('[data-ckeditor5-id]');
if ($ckeditor.length) {
// Move the overlay wrapper inside the modal so it can be interacted with
$('.ck-body-wrapper').appendTo($modal);
}
// Focus the first input element found. // Focus the first input element found.
if (modal && modal.options.focusInput) { if (modal && modal.options.focusInput) {
var $focusable = Bootstrap.modalFindFocusableElement(modal); var $focusable = Bootstrap.modalFindFocusableElement(modal);
......
...@@ -59,6 +59,9 @@ class LibraryInfo extends PluginBase implements AlterInterface { ...@@ -59,6 +59,9 @@ class LibraryInfo extends PluginBase implements AlterInterface {
// Remove core's dialog.jquery-ui.js. // Remove core's dialog.jquery-ui.js.
unset($libraries['drupal.dialog']['js']['misc/dialog/dialog.jquery-ui.js']); unset($libraries['drupal.dialog']['js']['misc/dialog/dialog.jquery-ui.js']);
// Remove CKEditor dialog fix as it assumes jquery ui dialogs are used
unset($libraries['drupal.dialog']['js']['modules/ckeditor5/js/ckeditor5.dialog.fix.js']);
// Add the Modal jQuery UI Bridge. // Add the Modal jQuery UI Bridge.
$libraries['drupal.dialog']['dependencies'][] = 'bootstrap/dialog'; $libraries['drupal.dialog']['dependencies'][] = 'bootstrap/dialog';
$libraries['drupal.dialog']['dependencies'][] = 'bootstrap/modal.jquery.ui.bridge'; $libraries['drupal.dialog']['dependencies'][] = 'bootstrap/modal.jquery.ui.bridge';
......
...@@ -28,9 +28,13 @@ class FieldMultipleValueForm extends PreprocessBase implements PreprocessInterfa ...@@ -28,9 +28,13 @@ class FieldMultipleValueForm extends PreprocessBase implements PreprocessInterfa
foreach ($variables['table']['#header'] as &$header_row) { foreach ($variables['table']['#header'] as &$header_row) {
if (is_array($header_row) && isset($header_row['data'])) { if (is_array($header_row) && isset($header_row['data'])) {
$header_row['data'] = is_array($header_row['data']) ? ($prefixes + $header_row['data']) : ($prefixes + ['#markup' => $header_row['data']]); $header_row['data'] = is_array($header_row['data']) ? ($prefixes + $header_row['data']) : ($prefixes + ['#markup' => $header_row['data']]);
} else { }
elseif (is_string($header_row)) {
$header_row = ['data' => $prefixes + ['#markup' => $header_row]]; $header_row = ['data' => $prefixes + ['#markup' => $header_row]];
} }
else {
$header_row = ['data' => $prefixes];
}
} }
} }
} }
......
...@@ -18,6 +18,11 @@ class Input extends PreprocessBase implements PreprocessInterface { ...@@ -18,6 +18,11 @@ class Input extends PreprocessBase implements PreprocessInterface {
* {@inheritdoc} * {@inheritdoc}
*/ */
public function preprocessElement(Element $element, Variables $variables) { public function preprocessElement(Element $element, Variables $variables) {
// Remove name attribute if empty, for W3C compliance.
// @see template_preprocess_input().
if (isset($element['#attributes']['name']) && empty((string) $element['#attributes']['name'])) {
unset($element['#attributes']['name']);
}
// Autocomplete. // Autocomplete.
if ($route = $element->getProperty('autocomplete_route_name')) { if ($route = $element->getProperty('autocomplete_route_name')) {
$variables['autocomplete'] = TRUE; $variables['autocomplete'] = TRUE;
......
...@@ -33,7 +33,7 @@ class Menu extends PreprocessBase implements PreprocessInterface { ...@@ -33,7 +33,7 @@ class Menu extends PreprocessBase implements PreprocessInterface {
foreach ($items as &$item) { foreach ($items as &$item) {
$wrapperAttributes = new Attributes(); $wrapperAttributes = new Attributes();
$linkAttributes = new Attributes(); $linkAttributes = new Attributes();
if ($item['attributes'] instanceof Attribute || $item['attributes'] instanceof Attributes) { if (isset($item['attributes']) && ($item['attributes'] instanceof Attribute || $item['attributes'] instanceof Attributes)) {
$wrapperAttributes->setAttributes($item['attributes']->getIterator()->getArrayCopy()); $wrapperAttributes->setAttributes($item['attributes']->getIterator()->getArrayCopy());
} }
if ($item['url'] instanceof Url) { if ($item['url'] instanceof Url) {
......
...@@ -68,11 +68,16 @@ class DrupalBootstrapStyles extends JsDelivr { ...@@ -68,11 +68,16 @@ class DrupalBootstrapStyles extends JsDelivr {
} }
$files = array_filter(isset($data['files']) ? $data['files'] : [], function ($file) use ($library, $version) { $files = array_filter(isset($data['files']) ? $data['files'] : [], function ($file) use ($library, $version) {
if (strpos($file['name'], '/dist/' . $version . '/' . Bootstrap::PROJECT_BRANCH . '/') !== 0) { if (isset($file['name'])) {
if (str_contains($file['name'], '/dist/' . $version . '/' . Bootstrap::PROJECT_BRANCH . '/')) {
return FALSE;
}
$theme = !!preg_match("`drupal-bootstrap-([\w]+)(\.min)?\.css$`", $file['name']);
return ($library === 'bootstrap' && !$theme) || ($library === 'bootswatch' && $theme);
}
else {
return FALSE; return FALSE;
} }
$theme = !!preg_match("`drupal-bootstrap-([\w]+)(\.min)?\.css$`", $file['name']);
return ($library === 'bootstrap' && !$theme) || ($library === 'bootswatch' && $theme);
}); });
foreach ($files as $file) { foreach ($files as $file) {
......
...@@ -649,8 +649,7 @@ class ProviderBase extends PluginBase implements ProviderInterface { ...@@ -649,8 +649,7 @@ class ProviderBase extends PluginBase implements ProviderInterface {
$fileSystem->prepareDirectory($provider_path, $options); $fileSystem->prepareDirectory($provider_path, $options);
} }
else { else {
// @noRector \Drupal::service('file_system')->prepareDirectory($provider_path, $options);
file_prepare_directory($provider_path, $options);
} }
// Use manually imported API data, if it exists. // Use manually imported API data, if it exists.
......
...@@ -61,6 +61,7 @@ return array( ...@@ -61,6 +61,7 @@ return array(
'Egulias\\EmailValidator\\' => array($vendorDir . '/egulias/email-validator/src'), 'Egulias\\EmailValidator\\' => array($vendorDir . '/egulias/email-validator/src'),
'EasyRdf\\' => array($vendorDir . '/easyrdf/easyrdf/lib'), 'EasyRdf\\' => array($vendorDir . '/easyrdf/easyrdf/lib'),
'Drush\\' => array($vendorDir . '/drush/drush/src'), 'Drush\\' => array($vendorDir . '/drush/drush/src'),
'Drupal\\bootstrap\\' => array($baseDir . '/docroot/themes/contrib/bootstrap/src'),
'Drupal\\Core\\' => array($baseDir . '/docroot/core/lib/Drupal/Core'), 'Drupal\\Core\\' => array($baseDir . '/docroot/core/lib/Drupal/Core'),
'Drupal\\Composer\\Plugin\\Scaffold\\' => array($vendorDir . '/drupal/core-composer-scaffold'), 'Drupal\\Composer\\Plugin\\Scaffold\\' => array($vendorDir . '/drupal/core-composer-scaffold'),
'Drupal\\Composer\\Plugin\\ProjectMessage\\' => array($vendorDir . '/drupal/core-project-message'), 'Drupal\\Composer\\Plugin\\ProjectMessage\\' => array($vendorDir . '/drupal/core-project-message'),
......
...@@ -114,6 +114,7 @@ class ComposerStaticInitf0f582019f07c0277b8f10a3454e8339 ...@@ -114,6 +114,7 @@ class ComposerStaticInitf0f582019f07c0277b8f10a3454e8339
'D' => 'D' =>
array ( array (
'Drush\\' => 6, 'Drush\\' => 6,
'Drupal\\bootstrap\\' => 17,
'Drupal\\Core\\' => 12, 'Drupal\\Core\\' => 12,
'Drupal\\Composer\\Plugin\\Scaffold\\' => 32, 'Drupal\\Composer\\Plugin\\Scaffold\\' => 32,
'Drupal\\Composer\\Plugin\\ProjectMessage\\' => 38, 'Drupal\\Composer\\Plugin\\ProjectMessage\\' => 38,
...@@ -365,6 +366,10 @@ class ComposerStaticInitf0f582019f07c0277b8f10a3454e8339 ...@@ -365,6 +366,10 @@ class ComposerStaticInitf0f582019f07c0277b8f10a3454e8339
array ( array (
0 => __DIR__ . '/..' . '/drush/drush/src', 0 => __DIR__ . '/..' . '/drush/drush/src',
), ),
'Drupal\\bootstrap\\' =>
array (
0 => __DIR__ . '/../..' . '/docroot/themes/contrib/bootstrap/src',
),
'Drupal\\Core\\' => 'Drupal\\Core\\' =>
array ( array (
0 => __DIR__ . '/../..' . '/docroot/core/lib/Drupal/Core', 0 => __DIR__ . '/../..' . '/docroot/core/lib/Drupal/Core',
......
...@@ -1719,18 +1719,18 @@ ...@@ -1719,18 +1719,18 @@
}, },
{ {
"name": "drupal/bootstrap", "name": "drupal/bootstrap",
"version": "3.28.0", "version": "3.30.0",
"version_normalized": "3.28.0.0", "version_normalized": "3.30.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://git.drupalcode.org/project/bootstrap.git", "url": "https://git.drupalcode.org/project/bootstrap.git",
"reference": "8.x-3.28" "reference": "8.x-3.30"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://ftp.drupal.org/files/projects/bootstrap-8.x-3.28.zip", "url": "https://ftp.drupal.org/files/projects/bootstrap-8.x-3.30.zip",
"reference": "8.x-3.28", "reference": "8.x-3.30",
"shasum": "a38475b0a6896da85185d98af6de33dd456f33c2" "shasum": "37a44a677163d2e82f1a8b55bd5feddb88918ad2"
}, },
"require": { "require": {
"drupal/core": "^9.5 || ^10", "drupal/core": "^9.5 || ^10",
...@@ -1739,8 +1739,8 @@ ...@@ -1739,8 +1739,8 @@
"type": "drupal-theme", "type": "drupal-theme",
"extra": { "extra": {
"drupal": { "drupal": {
"version": "8.x-3.28", "version": "8.x-3.30",
"datestamp": "1680536061", "datestamp": "1707842525",
"security-coverage": { "security-coverage": {
"status": "covered", "status": "covered",
"message": "Covered by Drupal's security advisory policy" "message": "Covered by Drupal's security advisory policy"
...@@ -1748,6 +1748,11 @@ ...@@ -1748,6 +1748,11 @@
} }
}, },
"installation-source": "dist", "installation-source": "dist",
"autoload": {
"psr-4": {
"Drupal\\bootstrap\\": "src"
}
},
"notification-url": "https://packages.drupal.org/8/downloads", "notification-url": "https://packages.drupal.org/8/downloads",
"license": [ "license": [
"GPL-2.0-or-later" "GPL-2.0-or-later"
......
<?php return array( <?php return array(
'root' => array( 'root' => array(
'name' => 'drupal/recommended-project', 'name' => 'drupal/recommended-project',
'pretty_version' => '10.x-dev', 'pretty_version' => '1.0.0+no-version-set',
'version' => '10.9999999.9999999.9999999-dev', 'version' => '1.0.0.0',
'reference' => 'bd5952199a304fcc01d72ee13c36db7995088eb9', 'reference' => null,
'type' => 'project', 'type' => 'project',
'install_path' => __DIR__ . '/../../', 'install_path' => __DIR__ . '/../../',
'aliases' => array(), 'aliases' => array(),
...@@ -227,9 +227,9 @@ ...@@ -227,9 +227,9 @@
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'drupal/bootstrap' => array( 'drupal/bootstrap' => array(
'pretty_version' => '3.28.0', 'pretty_version' => '3.30.0',
'version' => '3.28.0.0', 'version' => '3.30.0.0',
'reference' => '8.x-3.28', 'reference' => '8.x-3.30',
'type' => 'drupal-theme', 'type' => 'drupal-theme',
'install_path' => __DIR__ . '/../../docroot/themes/contrib/bootstrap', 'install_path' => __DIR__ . '/../../docroot/themes/contrib/bootstrap',
'aliases' => array(), 'aliases' => array(),
...@@ -769,9 +769,9 @@ ...@@ -769,9 +769,9 @@
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'drupal/recommended-project' => array( 'drupal/recommended-project' => array(
'pretty_version' => '10.x-dev', 'pretty_version' => '1.0.0+no-version-set',
'version' => '10.9999999.9999999.9999999-dev', 'version' => '1.0.0.0',
'reference' => 'bd5952199a304fcc01d72ee13c36db7995088eb9', 'reference' => null,
'type' => 'project', 'type' => 'project',
'install_path' => __DIR__ . '/../../', 'install_path' => __DIR__ . '/../../',
'aliases' => array(), 'aliases' => array(),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment