PageSourceSearch

https://www.sb-tec.com/wp-content/themes/busia/assets/js/busia-vertical-menu.js?ver=1791442442

js sb-tec.com collected 2026-10-08 06:55:21 UTC 8,866 bytes, 278 lines download raw bytes

1(function ($, window, document, undefined) {
2 "use strict";
3 // Only apply if rt-tree list exists
4 if ($('ul.rt-tree').length) {
5  // Settings
6  var collapsed = true;
7  var close_same_level = true;
8  var duration = 400;
9  var listAnim = true;
10  var easing = 'easeInOutQuad';
11  // Set initial styles 
12  $('.rt-tree ul').css({
13   'overflow': 'hidden',
14   'height': (collapsed) ? 0 : 'auto',
15   'display': (collapsed) ? 'none' : 'block'
16  });
17  // Get node elements, and add classes for styling
18  var node = $('.rt-tree li:has(ul)');
19  node.each(function (index, val) {
20   $(this).children(':first-child').css('cursor', 'pointer')
21   $(this).addClass('rt-tree-node rt-tree-' + ((collapsed) ? 'closed' : 'open'));
22   $(this).children('ul').addClass('rt-tree-level-' + ($(this).parentsUntil($('ul.rt-tree'), 'ul').length + 1));
23  });
24  // Set rt-tree-active class on list items for last opened element
25  $('.rt-tree li > *:first-child').on('click.rt-tree-active', function (e) {
26   if ($(this).parent().hasClass('rt-tree-closed')) {
27    $('.rt-tree-active').not($(this).parent()).removeClass('rt-tree-active');
28    $(this).parent().addClass('rt-tree-active');
29   } else if ($(this).parent().hasClass('rt-tree-open')) {
30    $(this).parent().removeClass('rt-tree-active');
31   } else {
32    $('.rt-tree-active').not($(this).parent()).removeClass('rt-tree-active');
33    $(this).parent().toggleClass('rt-tree-active');
34   }
35  });
36  node.children(':first-child').on('click.rt-tree', function (e) {
37   // element vars
38   var el = $(this).parent().children('ul').first();
39   var isOpen = $(this).parent().hasClass('rt-tree-open');
40   // close other elements on same level if opening 
41   if ((close_same_level || $('.csl').hasClass('active')) && !isOpen) {
42    var close_items = $(this).closest('ul').children('.rt-tree-open').not($(this).parent()).children('ul');
43    // Velocity.js
44    if ($.Velocity) {
45     close_items.velocity({
46      height: 0
47     }, {
48      duration: duration,
49      easing: easing,
50      display: 'none',
51      delay: 100,
52      complete: function () {
53       setNodeClass($(this).parent(), true)
54      }
55     });
56     // jQuery fallback
57    } else {
58     close_items.delay(100).slideToggle(duration, function () {
59      setNodeClass($(this).parent(), true);
60     });
61    }
62   }
63   // force auto height of element so actual height can be extracted
64   el.css({
65    'height': 'auto'
66   });
67   // listAnim: animate child elements when opening
68   if (!isOpen && $.Velocity && listAnim) el.find(' > li, li.rt-tree-open > ul > li').css({
69    'opacity': 0
70   }).velocity('stop').velocity('list');
71   // Velocity.js animate element
72   if ($.Velocity) {
73    el.velocity('stop').velocity({
74     //translateZ: 0, // optional hardware-acceleration is automatic on mobile
75     height: isOpen ? [0, el.outerHeight()] : [el.outerHeight(), 0]
76    }, {
77     queue: false,
78     duration: duration,
79     easing: easing,
80     display: isOpen ? 'none' : 'block',
81     begin: setNodeClass($(this).parent(), isOpen),
82     complete: function () {
83      if (!isOpen) $(this).css('height', 'auto');
84     }
85    });
86    // jQuery fallback animate element
87   } else {
88    setNodeClass($(this).parent(), isOpen);
89    el.slideToggle(duration);
90   }
91   // We can't have nodes as links unfortunately
92   e.preventDefault();
93  });
94  // Function for updating node class
95  function setNodeClass(el, isOpen) {
96   if (isOpen) {
97    el.removeClass('rt-tree-open').addClass('rt-tree-closed');
98   } else {
99    el.removeClass('rt-tree-closed').addClass('rt-tree-open');
100   }
101  }
102  // List animation sequence
103  if ($.Velocity && listAnim) {
104   $.Velocity.Redirects.list = function (element, options, index, size) {
105    $.Velocity.animate(element, {
106     opacity: [1, 0],
107     translateY: [0, -(index + 12)]
108    }, {
109     delay: index * (duration / size / 1.2),
110     duration: duration,
111     easing: easing
112    });
113   };
114  }
115  if ($('.rt-tree').css('opacity') == 0) {
116   if ($.Velocity) {
117    $('.rt-tree').css('opacity', 1).children().css('opacity', 0).velocity('list');
118   } else {
119    $('.rt-tree').show(200);
120   }
121  }
122  $('body').addClass('menu-loaded');
123 }
124}(jQuery, this, this.document));
125jQuery(document).ready(function ($) {
126 "use strict";
127 function MobileMenuReverse() {
128  $('.rt-tree .display-menu-item-image').stop(true, true).velocity('reverse');
129  $('ul.rt-tree > li').stop(true, true).velocity('reverse');
130 }
131 if ($('#rt-main-toggle-menu').length) {
132  $('#rt-main-toggle-menu').on('click', function () {
133   if ($('body').hasClass('menu-is-onscreen')) {
134    if (!$('body').hasClass('menu-is-closing')) {
135     MobileMenuAction('close');
136    }
137   } else {
138    if (!$('body').hasClass('menu-is-opening')) {
139     MobileMenuAction('open');
140    }
141   }
142  });
143  $(".responsive-menu-overlay").on('click', function () {
144   MobileMenuAction('close');
145   MobileMenuReverse();
146  });
147 }
148 function MobileMenuAction(action) {
149  if (action == "resized") {
150   $('#rt-main-toggle-menu').removeClass('rt-main-toggle-menu-open');
151   $('body').removeClass('rt-dashboard-push-left');
152   $('.rt-mobile-menu').removeClass('menu-push-onscreen');
153   $('body').removeClass('menu-is-onscreen');
154   MobileMenuReverse();
155  } else {
156   $('#rt-main-toggle-menu').toggleClass('rt-main-toggle-menu-open');
157   $('body').toggleClass('rt-dashboard-push-left');
158  }
159  if (action == 'close') {
160   $('body').addClass('menu-is-closing');
161   $('.rt-dashboard-columns').stop(true, true).velocity('transition.slide
161UpOut', {
162    stagger: 120,
163    duration: 800,
164    complete: function () {
165     $('.rt-mobile-menu').toggleClass('menu-push-onscreen');
166     $('body').toggleClass('menu-is-onscreen');
167     MobileMenuReverse();
168     $('body').removeClass('menu-is-closing');
169    }
170   });
171  }
172  if (action == 'open') {
173   $('body').addClass('menu-is-opening');
174   $('.rt-mobile-menu').stop(true, true).velocity('fadeIn', {
175    complete: function () {
176     $('.rt-mobile-menu').toggleClass('menu-push-onscreen');
177     $('body').toggleClass('menu-is-onscreen');
178     $('.rt-dashboard-columns').stop(true, true).velocity('transition.slideUpIn', {
179      stagger: 120,
180      duration: 800,
181      complete: function () {
182       $('.rt-dashboard-columns').find('.lazyload-after').addClass('lazyload');
183      }
184     });
185     animateDisplayMenuItems();
186     $('body').removeClass('menu-is-opening');
187    }
188   });
189  }
190 }
191 function animateDisplayMenuItems() {
192  $.Velocity.RegisterEffect('menuParentItems', {
193   calls: [
194			  [{
195     opacity: [1, 0],
196     bottom: [0, -5]
197    }]
198			]
199  });
200  $('.rt-mobile-menu ul.rt-tree > li').css({
201   'opacity': 0,
202   'bottom': -5
203  }).stop(true, true).velocity('menuParentItems', {
204   stagger: 100,
205   complete: function () {
206    $(this).addClass('menu-item-is-visible');
207   }
208  });
209 }
210 function SidebarMenuAction(action) {
211  $('#sidebarinfo-toggle-menu').toggleClass('sidebar-toggle-menu-open');
212  $('body').toggleClass('rt-dashboard-push-left');
213  if (action == 'close') {
214   $('.rt-dashboard-columns').velocity('transition.slideUpOut', {
215    stagger: 120,
216    display: "flex",
217    duration: 800
218   });
219   $('.sidebarinfo-menu').velocity('fadeOut', {
220    duration: 800,
221    complete: function () {
222     $('.sidebarinfo-menu').toggleClass('sidebar-push-onscreen');
223     $('body').toggleClass('sidebar-is-onscreen');
224    }
225   });
226  }
227  if (action == 'open') {
228   $('.sidebarinfo-menu').toggleClass('sidebar-push-onscreen');
229   $('body').toggleClass('sidebar-is-onscreen');
230   $('.rt-dashboard-columns').find('.lazyload-after').addClass('lazyload');
231   $('.sidebarinfo-menu').velocity('fadeIn', {
232    complete: function () {
233     $('.rt-dashboard-columns').velocity('transition.fadeIn', {
234      stagger: 120,
235      display: "flex",
236      duration: 800,
237      complete: function () {}
238     });
239    }
240   });
241  }
242 }
243 if ($('#sidebarinfo-toggle-menu').length) {
244  $('#sidebarinfo-toggle-menu').on('click', function () {
245   if ($('body').hasClass('sidebar-is-onscreen')) {
246    SidebarMenuAction('close');
247   } else {
248    SidebarMenuAction('open');
249   }
250  });
251  $('.sidebar-menu-overlay').on('click', function () {
252   SidebarMenuAction('close');
253  });
254 }
255 if ($.fn.hoverIntent) {
256  $('.outer-wrap').hoverIntent({
257   over: mainMenuOn,
258   out: mainMenuOff
259  });
260 } else {
261  $('.outer-wrap').mouseenter(function () {
262    mainMenuOn();
263   })
264   .mouseleave(function () {
265    mainMenuOff();
266   });
267 }
268 var hoverOutMenu;
269 function mainMenuOn() {
270  clearTimeout(hoverOutMenu);
271  $('body').addClass('main-menu-on');
272 }
273 function mainMenuOff() {
274  hoverOutMenu = setTimeout(function () {
275   $('body').removeClass('main-menu-on');
276  }, 600);
277 }
278});

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.