claro-8.x-1.x-dev/js/nav-tabs.js
js/nav-tabs.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | /** * DO NOT EDIT THIS FILE. * See the following change record for more information, * @preserve **/ ( function ($, Drupal) { function init(i, tab) { var $tab = $(tab); var $target = $tab.find( '[data-drupal-nav-tabs-target]' ); var $active = $target.find( '.js-active-tab' ); var openMenu = function openMenu() { $target.toggleClass( 'is-open' ); }; var toggleOrder = function toggleOrder(reset) { var current = $active.index(); var original = $active.data( 'original-order' ); if (original === 0 || reset === (current === original)) { return ; } var siblings = { first: '[data-original-order="0"]' , previous: '[data-original-order="' + (original - 1) + '"]' }; var $first = $target.find(siblings.first); var $previous = $target.find(siblings.previous); if (reset && current !== original) { $active.insertAfter($previous); } else if (!reset && current === original) { $active.insertBefore($first); } }; var toggleCollapsed = function toggleCollapsed() { if (window.matchMedia( '(min-width: 48em)' ).matches) { if ($tab.hasClass( 'is-horizontal' ) && !$tab.attr( 'data-width' )) { var width = 0; $target.find( '.js-tabs-link' ).each( function (index, value) { width += $(value).outerWidth(); }); $tab.attr( 'data-width' , width); } var isHorizontal = $tab.attr( 'data-width' ) <= $tab.outerWidth(); $tab.toggleClass( 'is-horizontal' , isHorizontal); toggleOrder(isHorizontal); } else { toggleOrder( false ); } }; $tab.addClass( 'position-container is-horizontal-enabled' ); $target.find( '.js-tab' ).each( function (index, element) { var $item = $(element); $item.attr( 'data-original-order' , $item.index()); }); $tab.on( 'click.tabs' , '[data-drupal-nav-tabs-trigger]' , openMenu); $(window).on( 'resize.tabs' , Drupal.debounce(toggleCollapsed, 150)).trigger( 'resize.tabs' ); } Drupal.behaviors.navTabs = { attach: function attach(context) { $(context).find( '[data-drupal-nav-tabs].is-collapsible' ).once( 'nav-tabs' ).each( function (i, value) { $(value).each(init); }); } }; })(jQuery, Drupal); |