1 2(function ($) { 3 "use strict"; 4 5 /** 6 * Search 7 */ 8 $('.pfy-search-btn').on("click", function (){ 9 $('.benqu_header_search').addClass('active'); 10 }); 11 $('.close-btn').on("click", function (){ 12 $('.benqu_header_search').removeClass('active'); 13 }); 14 15 /** 16 *Sticky Sidebar 17 */ 18 if (typeof $.fn.theiaStickySidebar !== "undefined") { 19 $(".benqu-sticky-wrap .benqu-sticky-item").theiaStickySidebar({ 20 additionalMarginTop: 130, 21 }); 22 } 23 24 // mobile menu start 25 $('#pfy-mobile-menu').metisMenu(); 26 27 $('#pfy-mobile-menu .dropdown > a').on('click', function (e) { 28 e.preventDefault(); 29 }); 30 31 $(".hamburger_menu > a").on("click", function (e) { 32 e.preventDefault(); 33 $(".slide-bar").toggleClass("show"); 34 $("body").addClass("on-side"); 35 $('.body-overlay').addClass('active'); 36 $(this).addClass('active'); 37 }); 38 39 $(".close-mobile-menu > a").on("click", function (e) { 40 e.preventDefault(); 41 $(".slide-bar").removeClass("show"); 42 $("body").removeClass("on-side"); 43 $('.body-overlay').removeClass('active'); 44 $('.hamburger_menu > a').removeClass('active'); 45 }); 46 47 $('.body-overlay').on('click', function () { 48 $(this).removeClass('active'); 49 $(".slide-bar").removeClass("show"); 50 $("body").removeClass("on-side"); 51 $('.hamburger-menu > a').removeClass('active'); 52 }); 53 54 /*** 55 *Dark Switch 56 */ 57 window.onload = function () { 58 // Dark 59 const toggleSwitch = document.querySelector( 60 '.benqu-switch-box__input' 61 ); 62 const currentTheme = localStorage.getItem("theme"); 63 if (currentTheme) { 64 document.documentElement.setAttribute("data-theme", currentTheme); 65 if (currentTheme === "dark") { 66 toggleSwitch.checked = true; 67 } 68 } 69 function switchTheme(e) { 70 if (e.target.checked) { 71 document.documentElement.setAttribute("data-theme", "dark"); 72 localStorage.setItem("theme", "dark"); 73 } else { 74 document.documentElement.setAttribute("data-theme", "light"); 75 localStorage.setItem("theme", "light"); 76 } 77 } 78 if (toggleSwitch) { 79 toggleSwitch.addEventListener("change", switchTheme, false); 80 } 81 }; 82 83 // sticky start 84 var wind = $(window); 85 var sticky = $('#stickyHeader'); 86 wind.on('scroll', function () { 87 var scroll = wind.scrollTop(); 88 if (scroll < 300) { 89 sticky.removeClass('stickyHeader'); 90 } else { 91 sticky.addClass('stickyHeader'); 92 } 93 }); 94 // sticky end 95 /** 96 * Post Widget Slider 97 */ 98 $('.widget-post-slider-wrap').owlCarousel({ 99 items:1, 100 loop:true, 101 dots:true, 102 autoplay:true, 103 nav:false, 104 animateOut: 'fadeOut', 105 smartSpeed:1500, 106 }); 107 108 /** 109 * Post Slider 110 */ 111 function pfyPostSliderActive( $scope, $ ){ 112 var $_this = $scope.find('.pfy-post-slider-wrap'); 113 114 var $currentID = '#'+$_this.attr('id'), 115 $navs = $_this.data('navs'), 116 $dots = $_this.data('dots'), 117 $autoplay = $_this.data('autoplay'); 118 var pfy_post_slider = $( $currentID ); 119 pfy_post_slider.owlCarousel({ 120 items:1, 121 loop:true, 122 nav:$navs, 123 dots:$dots, 124 autoplay:$autoplay, 125 autoplayTimeout:5000, 126 smartSpeed:1000, 127 animateOut: 'fadeOut', 128 navText:["<i class='fal fa-angle-left'></i>", "<i class='fal fa-angle-right'></i>"], 129 }) 130 }; 131 132 $('.pfy-post-thumb-gall').owlCarousel({ 133 items:1, 134 lazyLoad:true, 135 loop:true, 136 autoplayTimeout:5000, 137 smartSpeed:1000, 138 nav:true, 139 dots:false, 140 animateOut: 'fadeOut', 141 navText:["<i class='fas fa-caret-left'></i>", "<i class='fas fa-caret-right'></i>"], 142 }); 143 $('.breaking-headline-active').owlCarousel({ 144 items:1, 145 lazyLoad:true, 146 loop:true, 147 smartSpeed:1500, 148 nav:false, 149 autoplay:true, 150 dots:false 151 }); 152 153 /** 154 * Post Grid Slider 155 */ 156 function pfyPostGridSliderActive( $scope, $ ){ 157 var $_this = $scope.find('.pfy-post-grid-carousel'); 158 var $currentID = '#'+$_this.attr('id'), 159 $navs = $_this.data('navs'), 160 $dots = $_this.data('dots'), 161 $autoplay = $_this.data('autoplay'); 162 var pfy_post_car = $( $currentID ); 163 pfy_post_car.owlCarousel({ 164 loop:true, 165 nav:$navs, 166 dots:$dots, 167 autoplay:$autoplay, 168 autoplayTimeout:4000, 169 smartSpeed:1000, 170 responsive:{ 171 0:{ 172 items:1, 173 }, 174 600:{ 175 items:2, 176 }, 177 1000:{ 178 items:3, 179 }, 180 1500:{ 181 items:4 182 }, 183 1600:{ 184 items:5 185 } 186 } 187 }) 188 }; 189 /** 190 * Post Grid Slider Two 191 */ 192 function bnqPostGridSliderActive( $scope, $ ){ 193 var $_this = $scope.find('.bnq-post-grid-carousel'); 194 var $currentID = '#'+$_this.attr('id'), 195 $navs = $_this.data('navs'), 196 $dots = $_this.data('dots'), 197 $autoplay = $_this.data('autoplay'); 198 var pfy_post_car = $( $currentID ); 199 pfy_post_car.owlCarousel({ 200 loop:true, 201 nav:$navs, 202 dots:$dots, 203 autoplay:$autoplay, 204 autoplayTimeout:4000, 205 smartSpeed:1000, 206 responsive:{ 207 0:{ 208 items:1, 209 }, 210 600:{ 211 items:2, 212 }, 213 1000:{ 214 items:3, 215 }, 216 1500:{ 217 items:4 218 }, 219 1600:{ 220 items:5 221 } 222 } 223 }) 224 }; 225 226 227 function pfyPostTabActive( $scope, $ ){ 228 const $tabsToDropdown = $(".tabs-to-dropdown"); 229 function generateDropdownMarkup(container) { 230 const $navWrapper = container.find(".nav-wrapper"); 231 const $navPills = container.find(".nav-pills"); 232 const firstTextLink = $navPills.find("li:first-child a").text(); 233 const $items = $navPills.find("li"); 234 const markup = ` 235 <div class="dropdown"> 236 <button class="btn dropdown-toggle" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false"> 237 ${firstTextLink} 238 </button> 239 <ul class="dropdown-menu" aria-labelledby="dropdownMenuButton1"> 240 ${generateDropdownLinksMarkup($items)} 241 </ul> 242 </div> 243 `; 244 $navWrapper.prepend(markup); 245 } 246 247 function generateDropdownLinksMarkup(items) { 248 let markup = ""; 249 items.each(function () { 250 const textLink = $(this).find("a").text(); 251 markup += `<a class="dropdown-item" href="#">${textLink}</a>`; 252 }); 253 254 return markup; 255 } 256 257 function showDropdownHandler(e) { 258 // works also 259 //const $this = $(this); 260 const $this = $(e.target); 261 const $dropdownToggle = $this.find(".dropdown-toggle"); 262 const dropdownToggleText = $dropdownToggle.text().trim(); 263 const $dropdownMenuLinks = $this.find(".dropdown-menu a"); 264 const dNoneClass = "d-none"; 265 $dropdownMenuLinks.each(function () { 266 const $this = $(this); 267 if ($this.text() == dropdownToggleText) { 268 $this.addClass(dNoneClass); 269 } else { 270 $this.removeClass(dNoneClass); 271 } 272 }); 273 } 274 275 function clickHandler(e) { 276 e.preventDefault(); 277 const $this = $(this); 278 const index = $this.index(); 279 const text = $this.text(); 280 $this.closest(".dropdown").find(".dropdown-toggle").text(`${text}`); 281 $this 282 .closest($tabsToDropdown) 283 .find(`.nav-pills li:eq(${index}) a`) 284 .tab("show"); 285 } 286 287 function shownTabsHandler(e) { 288 // works also 289 //const $this = $(this); 290 const $this = $(e.target); 291 const index = $this.parent().index(); 292 const $parent = $this.closest($tabsToDropdown); 293 const $targetDropdownLink = $parent.find(".dropdown-menu a").eq(index); 294 const targetDropdownLinkText = $targetDropdownLink.text(); 295 $parent.find(".dropdown-toggle").text(targetDropdownLinkText); 296 } 297 298 $tabsToDropdown.each(function () { 299 const $this = $(this); 300 const $pills = $this.find('a[data-toggle="pill"]'); 301 302 generateDropdownMarkup($this); 303 304 const $dropdown = $this.find(".dropdown"); 305 const $dropdownLinks = $this.find(".dropdown-menu a"); 306 307 $dropdown.on("show.bs.dropdown", showDropdownHandler); 308 $dropdownLinks.on("click", clickHandler); 309 $pills.on("shown.bs.tab", shownTabsHandler); 310 }); 311 312 } 313 314 $('.pfy-video-popup').magnificPopup({ 315 type: 'iframe', 316 mainClass: 'mfp-fade',
317 fixedContentPos: false 318 }); 319 320 /** 321 * Ajax Post Load More Button 322 * @param {*} $scope 323 * @param {*} $ 324 */ 325 326 function pfyAjaxLoadmoreMasonryMasonry( $scope, $ ){ 327 var containerBricks = $('.masonry'); 328 329 containerBricks.imagesLoaded(function () { 330 containerBricks.masonry({ 331 itemSelector: '.masonry__brick', 332 percentPosition: true, 333 resize: true 334 }); 335 }); 336 337 338 // layout Masonry after each image loads 339 containerBricks.imagesLoaded().progress( function() { 340 containerBricks.masonry('layout'); 341 }); 342 } 343 344 if($('.wow').length){ 345 var wow = new WOW( 346 { 347 boxClass: 'wow', 348 animateClass: 'animated', 349 offset: 0, 350 mobile: true, 351 live: true 352 } 353 ); 354 wow.init(); 355 } 356 357 /** 358 * Post List Carousel 359 * @param {*} $scope 360 * @param {*} $ 361 */ 362 function pfyPostListActive($scope, $) { 363 $('.post-list-carousel').slick({ 364 rows: 4, 365 dots: false, 366 speed: 1500, 367 arrows: true, 368 infinite: true, 369 slidesToShow: 1, 370 slidesToScroll: 1, 371 autoplay:true, 372 nextArrow: '<button type="button" class="slick-next"><i class="far fa-angle-right"></i></button>', 373 prevArrow: '<button type="button" class="slick-prev"><i class="far fa-angle-left"></i></button>', 374 responsive: [ 375 { 376 breakpoint: 1024, 377 settings: { 378 slidesToShow: 1, 379 slidesToScroll: 1, 380 infinite: true, 381 } 382 }, 383 { 384 breakpoint: 800, 385 settings: { 386 slidesToShow: 1, 387 slidesToScroll: 1 388 } 389 }, 390 { 391 breakpoint: 799, 392 settings: { 393 slidesToShow: 1, 394 slidesToScroll: 1 395 } 396 }, 397 { 398 breakpoint: 600, 399 settings: { 400 slidesToShow: 1, 401 slidesToScroll: 1 402 } 403 }, 404 { 405 breakpoint: 599, 406 settings: { 407 slidesToShow: 1, 408 slidesToScroll: 1 409 } 410 }, 411 { 412 breakpoint: 500, 413 settings: { 414 slidesToShow: 1, 415 slidesToScroll: 1 416 } 417 } 418 ] 419 }); 420 } 421 422 423 424 function cookiesClose() { 425 var cookieBox = $(".bnq__cookie_area") 426 var acceptBtn = $(".bnq__cookie_area .bnq__cookie_btn"); 427 428 var localValue = localStorage.getItem("button"); 429 430 if(localValue === "true") { 431 cookieBox.css({ 432 "display": "none" 433 }); 434 } 435 436 acceptBtn.on("click", function(e) { 437 cookieBox.addClass("bnq__remmove_cookies_area"); 438 localStorage.button = true; 439 return false; 440 }) 441 } 442 443 /*========================================================================== 444 WHEN DOCUMENT LOADING 445 ==========================================================================*/ 446 $(window).on('load', function() { 447 if($(".bnq__cookie_area").length) { 448 cookiesClose(); 449 } 450 }); 451 /** 452 * newsletter popup 453 */ 454 function newsletterPopup() { 455 var newsletter = $(".bnqu__popup_wrap"); 456 var newsletterClose = $(".newsletter-close-btn"); 457 458 var test = localStorage.input === 'true'? true: false; 459 $(".show-message").prop('checked', test || false); 460 461 var localValue = localStorage.getItem("input"); 462 463 //console.log(localValue); 464 465 if(localValue === "true") { 466 newsletter.css({ 467 "display": "none" 468 }); 469 } 470 471 newsletter.addClass("active-newsletter-popup"); 472 473 newsletterClose.on("click", function(e) { 474 newsletter.removeClass("active-newsletter-popup"); 475 return false; 476 }) 477 478 $(".show-message").on('change', function() { 479 localStorage.input = $(this).is(':checked'); 480 }); 481 } 482 if($(".bnqu__popup_wrap").length) { 483 484 setTimeout(function() { 485 newsletterPopup(); 486 },"4000"); 487 } 488 489 /* Masonry 490 * ---------------------------------------------------- */ 491 492 /** 493 Reading Progrees 494 */ 495 496 function readingProgressBar(){ 497 if($('#pfy_reading_progress').length){ 498 let processScroll = () => { 499 let docElem = document.documentElement, 500 docBody = document.body, 501 scrollTop = docElem['scrollTop'] || docBody['scrollTop'], 502 scrollBottom = (docElem['scrollHeight'] || docBody['scrollHeight']) - window.innerHeight, 503 scrollPercent = scrollTop / scrollBottom * 100 + '%'; 504 505 // console.log(scrollTop + ' / ' + scrollBottom + ' / ' + scrollPercent); 506 507 document.getElementById("pfy_reading_progress").style.setProperty("--scrollAmount", scrollPercent); 508 } 509 510 document.addEventListener('scroll', processScroll); 511 } 512 } 513 readingProgressBar(); 514 515 $(window).on("load", function () { 516 $(".benqu_preloader").fadeOut(800); 517 });
518 519 $(window).on('scroll', function() { 520 var scrolled = $(window).scrollTop(); 521 if (scrolled > 300) $('.back-top-btn').addClass('active'); 522 if (scrolled < 300) $('.back-top-btn').removeClass('active'); 523 }); 524 $('.back-top-btn').on('click', function() { 525 $('html, body').animate( 526 { 527 scrollTop: '0' 528 }, 529 1200 530 ); 531 }); 532 533 function benquLoadMore($scope, $) { 534 var $container = $scope.find('.benqu-post-grid-loadmore'); 535 if ($container.length > 0) { 536 $container.on('click',function(event){ 537 event.preventDefault(); 538 539 var $that = $(this); 540 var ajaxjsondata = $that.data('json_grid_meta'); 541 var benqu_json_data = Object (ajaxjsondata); 542 543 var contentwrap = $scope.find('.grid-loadmore-content'), // item contentwrap 544 postperpage = parseInt(benqu_json_data.posts_per_page), // post per page number 545 showallposts = parseInt(benqu_json_data.total_post); // total posts count 546 547 var items = contentwrap.find('.pfy-grid-item'), 548 totalpostnumber = parseInt(items.length), 549 paged = parseInt( totalpostnumber / postperpage ) + 1; // paged number 550 551 $.ajax({
552 url: benqu_ajax.ajax_url, 553 type: 'POST', 554 data: { 555 action: 'benqu_post_ajax_loading', 556 ajax_json_data: ajaxjsondata, 557 paged:paged 558 }, 559 beforeSend: function(){ 560 561 $('<i class="fa fa-spinner fa-spin" style="margin-left:10px"></i>').appendTo( "#benqu-post-grid-loadmore" ).fadeIn(100); 562 }, 563 complete:function(){ 564 $scope.find('.benqu-post-grid-loadmore .fa-spinner ').remove(); 565 } 566 }) 567 568 .done(function(data) { 569 570 var $pstitems = $(data); 571 $scope.find('.grid-loadmore-content').append( $pstitems ); 572 var newLenght = contentwrap.find('.pfy-grid-item').length; 573 574 if(showallposts <= newLenght){ 575 $scope.find('.benqu-post-grid-loadmore').fadeOut(300,function(){ 576 $scope.find('.benqu-post-grid-loadmore').remove(); 577 }); 578 } 579 580 }) 581 582 .fail(function() { 583 $scope.find('.benqu-post-grid-loadmore').remove(); 584 }); 585 586 }); 587 } 588 589 590 } 591 592 593 if ($(".ajax-scroll-post").length > 0) { 594 var onScrollPagi = true; 595 var current_post = 1; 596 $(window).scroll(function () { 597 598 if (!onScrollPagi) return; 599 600 var bottomOffset = 1900; // the distance (in px) from the page bottom when you want to load more posts 601 602 if (current_post >= benqu_ajax.post_scroll_limit) { 603 onScrollPagi = false; 604 return; 605 } 606 607 if ($(document).scrollTop() > ($(document).height() - bottomOffset) && onScrollPagi == true) { 608 let cat_ids = $('input#benqu-cat-ids').val(); 609 $.ajax({
610 url: benqu_ajax.ajax_url, 611 data: { 612 action: 'benqu_single_scroll_post', 613 current_post: current_post, 614 cat_ids 615 }, 616 type: 'POST', 617 dataType: 'json', 618 beforeSend: function () { 619 onScrollPagi = false; 620 }, 621 success: function (resp) { 622 if (resp.success) { 623 $('.ajax-scroll-post').append(resp.data); 624 current_post++; 625 onScrollPagi = true; 626 } 627 } 628 }); 629 } 630 }); 631 } 632 633 634 635 636 $(window).on('elementor/frontend/init', function () { 637 elementorFrontend.hooks.addAction('frontend/element_ready/benqu-post-slider.default', pfyPostSliderActive); 638 elementorFrontend.hooks.addAction('frontend/element_ready/benqu-post-grid-carousel.default', pfyPostGridSliderActive); 639 elementorFrontend.hooks.addAction('frontend/element_ready/benqu-post-tabs.default', pfyPostTabActive); 640 elementorFrontend.hooks.addAction('frontend/element_ready/benqu-post-tabs-v2.default', pfyPostTabActive); 641 elementorFrontend.hooks.addAction('frontend/element_ready/benqu-post-masonry.default', pfyAjaxLoadmoreMasonryMasonry); 642 elementorFrontend.hooks.addAction('frontend/element_ready/benqu-post-list-caro.default', pfyPostListActive); 643 elementorFrontend.hooks.addAction('frontend/element_ready/benqu-post-grid-carousel-v2.default', bnqPostGridSliderActive); 644 elementorFrontend.hooks.addAction('frontend/element_ready/benqu-post-ajax-loadmore-grid.default', benquLoadMore); 645 }); 646})(jQuery);
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.