Update Composer, update everything

This commit is contained in:
Oliver Davies 2018-11-23 12:29:20 +00:00
parent ea3e94409f
commit dda5c284b6
19527 changed files with 1135420 additions and 351004 deletions

View file

@ -1,12 +1,16 @@
/**
* @file
* Javascript behaviors for details element.
* JavaScript behaviors for details element.
*/
(function ($, Drupal) {
'use strict';
Drupal.webform = Drupal.webform || {};
Drupal.webform.detailsToggle = Drupal.webform.detailsToggle || {};
Drupal.webform.detailsToggle.options = Drupal.webform.detailsToggle.options || {};
/**
* Attach handler to toggle details open/close state.
*
@ -16,15 +20,27 @@
attach: function (context) {
$('.js-webform-details-toggle', context).once('webform-details-toggle').each(function () {
var $form = $(this);
var $details = $form.find('details');
var $tabs = $form.find('.webform-tabs');
// Get only the main details elements and ignore all nested details.
var selector = ($tabs.length) ? '.webform-tab' : '.js-webform-details-toggle';
var $details = $form.find('details').filter(function () {
// @todo Figure out how to optimize the below code.
var $parents = $(this).parentsUntil(selector);
return ($parents.find('details').length === 0);
});
// Toggle is only useful when there are two or more details elements.
if ($details.length < 2) {
return;
}
// Add toggle state link to first details element.
$details.first().before($('<button type="button" class="link webform-details-toggle-state"></button>')
var options = $.extend({
button: '<button type="button" class="webform-details-toggle-state"></button>'
}, Drupal.webform.detailsToggle.options);
// Create toggle buttons.
var $toggle = $(options.button)
.attr('title', Drupal.t('Toggle details widget state.'))
.on('click', function (e) {
var open;
@ -40,7 +56,7 @@
// Set the saved states for all the details elements.
// @see webform.element.details.save.js
if (Drupal.webformDetailsSaveGetName) {
if (!Drupal.webformDetailsSaveGetName) {
$form.find('details').each(function () {
var name = Drupal.webformDetailsSaveGetName($(this));
if (name) {
@ -50,8 +66,16 @@
}
})
.wrap('<div class="webform-details-toggle-state-wrapper"></div>')
.parent()
);
.parent();
if ($tabs.length) {
// Add toggle state before the tabs.
$tabs.find('.item-list:first-child').before($toggle);
}
else {
// Add toggle state link to first details element.
$details.eq(0).before($toggle);
}
setDetailsToggleLabel($form);
});
@ -61,25 +85,30 @@
/**
* Determine if a webform's details are all opened.
*
* @param $form
* @param {jQuery} $form
* A webform.
*
* @returns {boolean}
* @return {boolean}
* TRUE if a webform's details are all opened.
*/
function isFormDetailsOpen($form) {
return ($form.find('details[open]').length == $form.find('details').length)
return ($form.find('details[open]').length === $form.find('details').length);
}
/**
* Set a webform's details toggle state widget label.
*
* @param $form
* @param {jQuery} $form
* A webform.
*/
function setDetailsToggleLabel($form) {
var label = (isFormDetailsOpen($form)) ? Drupal.t('Collapse all') : Drupal.t('Expand all');
var isOpen = isFormDetailsOpen($form);
var label = (isOpen) ? Drupal.t('Collapse all') : Drupal.t('Expand all');
$form.find('.webform-details-toggle-state').html(label);
var text = (isOpen) ? Drupal.t('All details have been expanded.') : Drupal.t('All details have been collapsed.');
Drupal.announce(text);
}
})(jQuery, Drupal);