first commit

This commit is contained in:
2018-04-23 21:08:22 +02:00
commit c68c1dd9b0
12994 changed files with 1500824 additions and 0 deletions
+33
View File
@@ -0,0 +1,33 @@
(function () {
'use strict';
function findActiveStep(steps) {
for (var i = 0; i < steps.length; i++) {
if (steps[i].className === 'is-active') {
return i + 1;
}
}
// The final "Finished" step is never "active".
if (steps[steps.length - 1].className === 'done') {
return steps.length;
}
return 0;
}
function installStepsSetup() {
var steps = document.querySelectorAll('.task-list li');
if (steps.length) {
var header = document.querySelector('header[role="banner"]');
var stepIndicator = document.createElement('div');
stepIndicator.className = 'step-indicator';
stepIndicator.innerHTML = findActiveStep(steps) + '/' + steps.length;
header.appendChild(stepIndicator);
}
}
if (document.addEventListener) {
document.addEventListener('DOMContentLoaded', installStepsSetup);
}
})();
+55
View File
@@ -0,0 +1,55 @@
/**
* @file
* Responsive navigation tabs.
*
* This also supports collapsible navigable is the 'is-collapsible' class is
* added to the main element, and a target element is included.
*/
(function ($, Drupal) {
'use strict';
function init(i, tab) {
var $tab = $(tab);
var $target = $tab.find('[data-drupal-nav-tabs-target]');
var isCollapsible = $tab.hasClass('is-collapsible');
function openMenu(e) {
$target.toggleClass('is-open');
}
function handleResize(e) {
$tab.addClass('is-horizontal');
var $tabs = $tab.find('.tabs');
var isHorizontal = $tabs.outerHeight() <= $tabs.find('.tabs__tab').outerHeight();
$tab.toggleClass('is-horizontal', isHorizontal);
if (isCollapsible) {
$tab.toggleClass('is-collapse-enabled', !isHorizontal);
}
if (isHorizontal) {
$target.removeClass('is-open');
}
}
$tab.addClass('position-container is-horizontal-enabled');
$tab.on('click.tabs', '[data-drupal-nav-tabs-trigger]', openMenu);
$(window).on('resize.tabs', Drupal.debounce(handleResize, 150)).trigger('resize.tabs');
}
/**
* Initialise the tabs JS.
*/
Drupal.behaviors.navTabs = {
attach: function (context, settings) {
var $tabs = $(context).find('[data-drupal-nav-tabs]');
if ($tabs.length) {
var notSmartPhone = window.matchMedia('(min-width: 300px)');
if (notSmartPhone.matches) {
$tabs.once('nav-tabs').each(init);
}
}
}
};
})(jQuery, Drupal);
@@ -0,0 +1,57 @@
/**
* @file
* Provides responsive behaviors to HTML details elements.
*/
(function ($, Drupal) {
'use strict';
/**
* Initializes the responsive behaviors for details elements.
*
* @type {Drupal~behavior}
*
* @prop {Drupal~behaviorAttach} attach
* Attaches the responsive behavior to status report specific details elements.
*/
Drupal.behaviors.responsiveDetails = {
attach: function (context) {
var $details = $(context).find('details').once('responsive-details');
if (!$details.length) {
return;
}
function detailsToggle(matches) {
if (matches) {
$details.attr('open', true);
$summaries.attr('aria-expanded', true);
$summaries.on('click.details-open', false);
}
else {
// If user explicitly opened one, leave it alone.
var $notPressed = $details
.find('> summary[aria-pressed!=true]')
.attr('aria-expanded', false);
$notPressed
.parent('details')
.attr('open', false);
// After resize, allow user to close previously opened details.
$summaries.off('.details-open');
}
}
function handleDetailsMQ(event) {
detailsToggle(event.matches);
}
var $summaries = $details.find('> summary');
var mql = window.matchMedia('(min-width:48em)');
mql.addListener(handleDetailsMQ);
detailsToggle(mql.matches);
}
};
})(jQuery, Drupal);