1/** 2 * @package Helix Ultimate Framework 3 * @author JoomShaper https://www.joomshaper.com 4 * @copyright Copyright (c) 2010 - 2018 JoomShaper 5 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or Later 6*/ 7 8//custom scrollbar js 9!function(t,e){"object"==typeof exports?module.exports=e(window,document):t.SimpleScrollbar=e(window,document)}(this,function(t,e){function s(t){Object.prototype.hasOwnProperty.call(t,"data-simple-scrollbar")||Object.defineProperty(t,"data-simple-scrollbar",{value:new o(t)})}function i(t,s){function i(t){var e=t.pageY-a;a=t.pageY,n(function(){s.el.scrollTop+=e/s.scrollRatio})}function r(){t.classList.remove("ss-grabbed"),e.body.classList.remove("ss-grabbed"),e.removeEventListener("mousemove",i),e.removeEventListener("mouseup",r)}var a;t.addEventListener("mousedown",function(s){return a=s.pageY,t.classList.add("ss-grabbed"),e.body.classList.add("ss-grabbed"),e.addEventListener("mousemove",i),e.addEventListener("mouseup",r),!1})}function r(t){for(this.target=t,this.direction=window.getComputedStyle(this.target).direction,this.bar='<div class="ss-scroll">',this.wrapper=e.createElement("div"),this.wrapper.setAttribute("class","ss-wrapper"),this.el=e.createElement("div"),this.el.setAttribute("class","ss-content"),"rtl"===this.direction&&this.el.classList.add("rtl"),this.wrapper.appendChild(this.el);this.target.firstChild;)this.el.appendChild(this.target.firstChild);this.target.appendChild(this.wrapper),this.target.insertAdjacentHTML("beforeend",this.bar),this.bar=this.target.lastChild,i(this.bar,this),this.moveBar(),this.el.addEventListener("scroll",this.moveBar.bind(this)),this.el.addEventListener("mouseenter",this.moveBar.bind(this)),this.target.classList.add("has-scrollbar");var s=window.getComputedStyle(t);"0px"===s.height&&"0px"!==s["max-height"]&&(t.style.height=s["max-height"])}function a(){for(var t=e.querySelectorAll("*[has-scrollbar]"),i=0;i<t.length;i++)s(t[i])}var n=t.requestAnimationFrame||t.setImmediate||function(t){return setTimeout(t,0)};r.prototype={moveBar:function(t){var e=this.el.scrollHeight,s=this.el.clientHeight,i=this;this.scrollRatio=s/e;var r="rtl"===i.direction,a=r?i.target.clientWidth-i.bar.clientWidth+18:-1*(i.target.clientWidth-i.bar.clientWidth);n(function(){i.scrollRatio>=1?i.bar.classList.add("ss-hidden"):(i.bar.classList.remove("ss-hidden"),i.bar.style.cssText="height:"+Math.max(100*i.scrollRatio,10)+"%; top:"+i.el.scrollTop/e*100+"%;right:"+a+"px;")})}},e.addEventListener("DOMContentLoaded",a),r.initEl=s,r.initAll=a;var o=r;return o}); 10 11jQuery(function ($) { 12 function socialStikcy (){ 13 var socialDiv = $(".article-ratings-social-share").offset()?.top -70; 14 var windowTop = $(window).scrollTop(); 15 if(windowTop> socialDiv){ 16 $(".article-ratings-social-share").css("position", "sticky"); 17 } 18 } 19 20 21 // Stikcy Header 22 if ($('body').hasClass('sticky-header')) { 23 var header = $('#sp-header'); 24 25 if($('#sp-header').length) { 26 var headerHeight = header.outerHeight(); 27 var stickyHeaderTop = header.offset().top; 28 header.before('<div class="nav-placeholder"></div>'); 29 var stickyHeader = function () { 30 var scrollTop = $(window).scrollTop(); 31 if (scrollTop > stickyHeaderTop) { 32 header.addClass('header-sticky'); 33 $('.nav-placeholder').height(headerHeight); 34 } else { 35 if (header.hasClass('header-sticky')) { 36 header.removeClass('header-sticky'); 37 $('.nav-placeholder').height('inherit'); 38 } 39 } 40 }; 41 stickyHeader(); 42 $(window).scroll(function () { 43 stickyHeader(); 44 if($(".com-content.view-article").length>0){ 45 socialStikcy(); 46 } 47 }); 48 } 49 50 if ($('body').hasClass('layout-boxed')) { 51 var windowWidth = header.parent().outerWidth(); 52 header.css({"max-width": windowWidth, "left": "auto"}); 53 } 54 } 55 56 // go to top 57 $(window).scroll(function () { 58 if ($(this).scrollTop() > 100) { 59 $('.sp-scroll-up').fadeIn(); 60 } else { 61 $('.sp-scroll-up').fadeOut(400); 62 } 63 }); 64 65 $('.sp-scroll-up').click(function () { 66 $("html, body").animate({ 67 scrollTop: 0 68 }, 600); 69 return false;
70 }); 71 72 // Preloader 73 $(window).on('load', function () { 74 $('.sp-preloader').fadeOut(500, function() { 75 $(this).remove(); 76 }); 77 }); 78 79 //mega menu 80 $('.sp-megamenu-wrapper').parent().parent().css('position', 'static').parent().css('position', 'relative'); 81 $('.sp-menu-full').each(function () { 82 $(this).parent().addClass('menu-justify'); 83 }); 84 85 // Offcanvs 86 $('#offcanvas-toggler').on('click', function (event) { 87 event.preventDefault(); 88 $('.offcanvas-init').addClass('offcanvas-active'); 89 }); 90 91 $('.close-offcanvas, .offcanvas-overlay').on('click', function (event) { 92 event.preventDefault(); 93 $('.offcanvas-init').removeClass('offcanvas-active'); 94 }); 95 96 $(document).on('click', '.offcanvas-inner .menu-toggler', function(event){ 97 event.preventDefault(); 98 $(this).closest('.menu-parent').toggleClass('menu-parent-open').find('>.menu-child').slideToggle(400); 99 }); 100 101 // Tooltip 102 var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"], .hasTooltip')); 103 var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) { 104 return new bootstrap.Tooltip(tooltipTriggerEl, { 105 html: true 106 }); 107 }); 108 109 // Popover 110 var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]')); 111 var popoverList = popoverTriggerList.map(function (popoverTriggerEl) { 112 return new bootstrap.Popover(popoverTriggerEl); 113 }); 114 115 // Article Ajax voting 116 $('.article-ratings .rating-star').on('click', function (event) { 117 event.preventDefault(); 118 var $parent = $(this).closest('.article-ratings'); 119 120 var request = { 121 'option': 'com_ajax', 122 'template': template, 123 'action': 'rating', 124 'rating': $(this).data('number'), 125 'article_id': $parent.data('id'), 126 'format': 'json' 127 }; 128 129 $.ajax({ 130 type: 'POST', 131 data: request, 132 beforeSend: function () { 133 $parent.find('.fa-spinner').show(); 134 }, 135 success: function (response) { 136 var data = $.parseJSON(response); 137 $parent.find('.ratings-count').text(data.message); 138 $parent.find('.fa-spinner').hide(); 139 140 if(data.status) 141 { 142 $parent.find('.rating-symbol').html(data.ratings) 143 } 144 145 setTimeout(function(){ 146 $parent.find('.ratings-count').text('(' + data.rating_count + ')') 147 }, 3000); 148 } 149 }); 150 }); 151 152 // Cookie consent 153 $('.sp-cookie-allow').on('click', function(event) { 154 event.preventDefault(); 155 156 var date = new Date(); 157 date.setTime(date.getTime() + (30 * 24 * 60 * 60 * 1000)); 158 var expires = "; expires=" + date.toGMTString(); 159 document.cookie = "spcookie_status=ok" + expires + "; path=/"; 160 161 $(this).closest('.sp-cookie-consent').fadeOut(); 162 }); 163 164 $(".btn-group label:not(.active)").click(function() 165 { 166 var label = $(this); 167 var input = $('#' + label.attr('for')); 168 169 if (!input.prop('checked')) { 170 label.closest('.btn-group').find("label").removeClass('active btn-success btn-danger btn-primary'); 171 if (input.val() === '') { 172 label.addClass('active btn-primary'); 173 } else if (input.val() == 0) { 174 label.addClass('active btn-danger'); 175 } else { 176 label.addClass('active btn-success'); 177 } 178 input.prop('checked', true); 179 input.trigger('change'); 180 } 181 var parent = $(this).parents('#attrib-helix_ultimate_blog_options'); 182 if( parent ){ 183 showCategoryItems( parent, input.val() ) 184 } 185 }); 186 $(".btn-group input[checked=checked]").each(function() 187 { 188 if ($(this).val() == '') { 189 $("label[for=" + $(this).attr('id') + "]").addClass('active btn btn-primary'); 190 } else if ($(this).val() == 0) { 191 $("label[for=" + $(this).attr('id') + "]").addClass('active btn btn-danger'); 192 } else { 193 $("label[for=" + $(this).attr('id') + "]").addClass('active btn btn-success'); 194 } 195 var parent = $(this).parents('#attrib-helix_ultimate_blog_options'); 196 if( parent ){ 197 parent.find('*[data-showon]').each( function() { 198 $(this).hide(); 199 }) 200 } 201 }); 202 203 function showCategoryItems(parent, value){ 204 var controlGroup = parent.find('*[data-showon]'); 205 controlGroup.each( function() { 206 var data = $(this).attr('data-showon') 207 data = typeof data !== 'undefined' ? JSON.parse( data ) : [] 208 if( data.length > 0 ){ 209 if(typeof data[0].values !== 'undefined' && data[0].values.includes( value )){ 210 $(this).slideDown(); 211 }else{ 212 $(this).hide(); 213 } 214 } 215 }) 216 } 217 218 $(window).on('scroll', function(){ 219 var scrollBar = $(".sp-reading-progress-bar"); 220 if( scrollBar.length > 0 ){ 221 var s = $(window).scrollTop(), 222 d = $(document).height(), 223 c = $(window).height(); 224 var scrollPercent = (s / (d - c)) * 100; 225 const postition = scrollBar.data('position') 226 if( postition === 'top' ){ 227 // var sticky = $('.header-sticky'); 228 // if( sticky.length > 0 ){ 229 // sticky.css({ top: scrollBar.height() }) 230 // }else{ 231 // sticky.css({ top: 0 }) 232 // } 233 } 234 scrollBar.css({width: `${scrollPercent}%` }) 235 } 236 237 }) 238
239 var $megaMenuDiv = $('<div class="menu-collapse-icon active"><span></span><span></span><span></span></div>'); 240 241 // Template Releated 242 if ($(".main-megamenu").length > 0) { 243 var $this = $(".main-megamenu"); 244 $this.find('ul.menu').wrapAll("<div class='sp-megamenu-main-wrap'></div>"); 245 $this.find(".sp-megamenu-main-wrap").prepend("<div class='menu-collapse-icon'><span></span><span></span><span></span></div>"); 246 $this.find("ul.menu").addClass("menu-area"); 247 $(".menu-collapse-icon").on('click', function () { 248 $(".menu-area").toggleClass("active").prepend($megaMenuDiv); 249 }); 250 251 $('.menu-collapse-icon').click(function () { 252 $(this).toggleClass('active'); 253 }); 254 } 255 //prepent icon click 256 $(document).on("click", '.menu-area .menu-collapse-icon',function(){ 257 $(".menu-area").removeClass("active"); 258 $(".sp-megamenu-main-wrap >.menu-collapse-icon").removeClass("active"); 259 }); 260 261 262 $('#login .close').on('click', function(){ 263 $('#login').css('display', 'none'); 264 $('body').removeClass('login-open'); 265 $('#login').removeClass('active'); 266 }) 267 $('.open-login').on('click', function(){ 268 $('#login').css('display', 'block'); 269 $('#login').addClass('active'); 270 $('body').addClass('login-open'); 271 }) 272 273 if ($(".nano").length > 0) { 274 $(".nano").each(function () { 275 $(this).nanoScroller(); 276 }) 277 } 278 279 if ($(".marquee").length > 0) { 280 jQuery(".marquee").marquee({ 281 duration: 20 * jQuery(".marquee").width(), 282 delayBeforeStart: 0, 283 gap: 0, 284 duplicated: true, 285 pauseOnHover: true 286 }); 287 } 288 289 //Search 290 var searchRow = $('.top-search-input-wrap').parent().closest('.row'); 291 $('.top-search-input-wrap').insertAfter(searchRow); 292 293 $(".search-icon").on('click', function () { 294 $(".top-search-input-wrap").slideDown(200); 295 $(this).hide(); 296 $('.close-icon').show(); 297 $(".top-search-input-wrap").addClass('active'); 298 }); 299 300 $(".close-icon").on('click', function () { 301 $(".top-search-input-wrap").slideUp(200); 302 $(this).hide(); 303 $('.search-icon').show(); 304 $(".top-search-input-wrap").removeClass('active'); 305 }); 306 307 // press esc to hide search 308 $(document).keyup(function (e) { 309 if (e.keyCode == 27) { // esc keycode 310 $(".top-search-input-wrap").fadeOut(200); 311 $(".close-icon").fadeOut(200); 312 $(".search-icon").delay(200).fadeIn(200); 313 $('body.off-canvas-menu-init').css({ 'overflow-y': 'initial' }); 314 } 315 }); 316 317 //Weather Toggle 318 var forecastCurrent = $('.sp-weather-current'); 319 //var forecastIcon = $('.show-forcasts'); 320 var forecastWrap = forecastCurrent.parent(); 321 322 forecastCurrent.on('click', function(){ 323 $(this).next().slideToggle(); 324 $(this).next().toggleClass('active'); 325 //forecastIcon.toggleClass('icon-caret-up icon-caret-down'); 326 }); 327 328 $(document).on('click', function(e) { 329 // If the target of the click isn't the weather list wrap 330 if(!forecastWrap.is(e.target) && forecastWrap.has(e.target).length === 0) { 331 332 if(forecastCurrent.next().hasClass('active')) { 333 // change icon 334 //forecastIcon.removeClass('icon-caret-down').addClass('icon-caret-up'); 335 // slide up/toggle forecast 336 forecastCurrent.next().slideToggle(); 337 forecastCurrent.next().toggleClass('active'); 338 } 339 340 } 341 }); 342 343 $('.sp-vertical-tabs').each(function(){ 344 var $tab = $(this), 345 $handlers = $tab.find('.sp-tab-btns').children(), 346 $tabs = $tab.find('.sp-tab-content').children(); 347 348 $handlers.each(function(index) { 349 $(this).on('mouseenter', function(event){ 350 event.preventDefault(); 351 $handlers.removeClass('active'); 352 $tabs.removeClass('active'); 353 $(this).addClass('active'); 354 $($tabs[index]).addClass('active'); 355 }); 356 }); 357 }); 358 359 document.querySelector('body').addEventListener('click', function(e) { 360 let targetDom = e.target.parentNode.parentNode; 361 if(targetDom.classList.contains('mod-languages')) { 362 if(targetDom.querySelector('.dropdown-toggle').classList.contains('show') || targetDom.querySelector('.lang-block').classList.contains('show')) { 363 targetDom.querySelector('.dropdown-toggle').classList.remove('show'); 364 targetDom.querySelector('.lang-block').classList.remove('show'); 365 } else { 366 targetDom.querySelector('.dropdown-toggle').classList.add('show'); 367 targetDom.querySelector('.lang-block').classList.add('show'); 368 } 369 } else { 370 targetDom.querySelector('.mod-languages .dropdown-toggle')?.classList.remove('show'); 371 targetDom.querySelector('.mod-languages .lang-block')?.classList.remove('show'); 372 } 373 }) 374}); 375
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.