PageSourceSearch

https://www.cee.org/themes/custom/cee_2k21/js/custom.js?v=10.6.17

js cee.org collected 2026-09-24 09:33:39 UTC 5,643 bytes, 167 lines download raw bytes

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">&times;</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.