Mercurial > hg > isophonics-drupal-site
view core/themes/seven/js/responsive-details.es6.js @ 13:5fb285c0d0e3
Update Drupal core to 8.4.7 via Composer. Security update; I *think* we've
been lucky to get away with this so far, as we don't support self-registration
which seems to be used by the so-called "drupalgeddon 2" attack that 8.4.5
was vulnerable to.
author | Chris Cannam |
---|---|
date | Mon, 23 Apr 2018 09:33:26 +0100 |
parents | 4c8ae668cc8c |
children | 1fec387a4317 |
line wrap: on
line source
/** * @file * Provides responsive behaviors to HTML details elements. */ (function ($, Drupal) { /** * 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(context) { const $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. const $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'); const mql = window.matchMedia('(min-width:48em)'); mql.addListener(handleDetailsMQ); detailsToggle(mql.matches); }, }; }(jQuery, Drupal));