1/** 2 * @file 3 * Global utilities. 4 * 5 */ 6(function($, Drupal) { 7 8 'use strict'; 9 10 Drupal.behaviors.cee_2k21 = { 11 attach: function(context, settings) { 12 } 13 }; 14 15 Drupal.behaviors.cee_toast = { 16 attach: function() { 17 $('.toast:not(.show)').toast('show'); 18 } 19 }; 20 21 // We Mega Menu - Mobile Caret 22 Drupal.behaviors.mobileMenu = { 23 attach: function(context, settings) { 24 if($(window).width() <= 991) { 25 var targetWrapper = $('.block-we-megamenu-blockmain').find('nav.navbar-we-mega-menu'); 26 if(!targetWrapper.hasClass('mobile_menu_processed')) { 27 var menu = $(targetWrapper).find('ul.we-mega-menu-ul').first(); 28 var item = menu.find('> li[data-submenu=1]'); 29 var item_active = menu.find('> li[data-submenu=1].active'); 30 item_active.addClass('open'); 31 item_active.find('> ul').css('display', 'block'); 32 33 item.each(function() { 34 var link = $(this).find('a:first'); 35 if(link.length > 0) { 36 $('<span class="caret"></span>').insertAfter(link); 37 } 38 }); 39 40 targetWrapper.find('span.caret').on('click', function() { 41 var li = $(this).closest('li'); 42 var sub_menu_inner = li.find('> .we-mega-menu-submenu'); 43 $(item).not(li).removeClass('open'); 44 targetWrapper.find('span.caret').not($(this)).removeClass('opened'); 45 46 if($(this).hasClass('opened')) { 47 sub_menu_inner.slideUp(); 48 $(this).removeClass('opened'); 49 li.removeClass('open'); 50 } 51 else { 52 sub_menu_inner.slideDown(); 53 $(this).addClass('opened'); 54 li.addClass('open'); 55 } 56 return false; 57 }); 58 59 targetWrapper.addClass('mobile_menu_processed') 60 } 61 } 62 } 63 }; 64 65 // Header Sticky 66 Drupal.behaviors.FixedRegionHeader = { 67 attach: function(context, settings) { 68 if ($('#page-wrapper').length) { 69 var pageHeaderHeight = $('.header').height(); 70 var headerPlaceholder = $('.header-placeholder'); 71 $('.header-placeholder').css('height', pageHeaderHeight + 'px'); 72 73 var stickyNavHeader = function() { 74 var scrollTop = $(window).scrollTop(); 75 76 if (scrollTop > pageHeaderHeight) { 77 headerPlaceholder.css('display', 'block'); 78 $('.header').addClass('sticky-header'); 79 $('.header').addClass('slide-down'); 80 } else { 81 headerPlaceholder.css('display', 'none'); 82 $('.header').removeClass('sticky-header'); 83 $('.header').removeClass('slide-down'); 84 } 85 86 if(!$("#block-cee-search").hasClass('search-processed')) { 87 $('nav.main li.menu-item-search').addClass('site-search'); 88 $("#block-cee-search").append('<div class="search-close">×</div>'); 89 $("#block-cee-search").addClass('search-processed'); 90 } 91 92 if(!$('.site-search').hasClass('search-dropdown-processed')) { 93 $(".site-search").click(function(e){ 94 e.preventDefault(); 95 $("#block-cee-search").toggleClass('open'); 96 $("#block-cee-search").find('input[name="keys"]').focus(); 97 }); 98 99 $(".search-close").click(function(e){ 100 e.preventDefault(); 101 $("#block-cee-search").toggleClass('open'); 102 }); 103 104 $('.site-search').addClass('search-dropdown-processed'); 105 } 106 }; 107 108 stickyNavHeader(); 109 $(window).scroll(function() { 110 stickyNavHeader(); 111 }); 112 } 113 } 114 }; 115 116 Drupal.behaviors.addHashLink = { 117 attach: function(context, settings) { 118 var link_container = $('.view-id-tep_lab_bench.view-display-id-block_1'); 119 120 if(link_container.length > 0 && !link_container.hasClass('hash-link-processed')) { 121 if(window.location.hash) { 122 var anchor_link = window.location.hash.substring(1); 123 124 if($('.' + anchor_link).length > 0) { 125 $('html, body').animate({ 126 scrollTop: $('.' + anchor_link).offset().top - 90 127 }, 2000); 128 } 129 } 130 link_container.find('div[name="field_subject_target_id"] ul li a').each(function() { 131 var lnk = $(this).attr('href'); 132 $(this).attr('href', lnk + '#cee-view--tep-lab-bench'); 133 }); 134
135 link_container.addClass('hash-link-processed'); 136 } 137 } 138 }; 139 140 Drupal.behaviors.addDropdown = { 141 attach: function(context, settings) { 142 var link_container = $('.view-id-tep_lab_bench.view-display-id-block_1'); 143 144 if(link_container.length > 0 && !link_container.hasClass('dropdown-processed')) { 145 var menu_container = link_container.find('ul:first'); 146 var menu_items = menu_container.find('li'); 147 148 if(menu_items.length > 5) { 149 var more_menu = menu_container.find('li:eq(5)'); 150 if(more_menu.length > 0) { 151 var dropdown_menu = '<span class="dropdown"><a href="#" class="dropdown-toggle btn btn-default" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">More <span class="caret"></span></a><ul class="dropdown-menu submenu">'; 152 153 for (var i = 5; i < menu_items.length; i++) { 154 dropdown_menu += menu_container.find('li:eq('+ i +')').html(); 155 } 156 157 dropdown_menu += '</ul></span>'; 158 more_menu.html(dropdown_menu); 159 } 160 } 161 162 link_container.addClass('dropdown-processed'); 163 } 164 } 165 } 166 167})(jQuery, Drupal);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.