Mercurial > hg > isophonics-drupal-site
diff core/themes/seven/js/nav-tabs.js @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/themes/seven/js/nav-tabs.js Wed Nov 29 16:09:58 2017 +0000 @@ -0,0 +1,48 @@ +/** +* DO NOT EDIT THIS FILE. +* See the following change record for more information, +* https://www.drupal.org/node/2815083 +* @preserve +**/ + +(function ($, Drupal) { + 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'); + } + + Drupal.behaviors.navTabs = { + attach: function attach(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); \ No newline at end of file