1( function( $ ) { 2 "use strict"; 3 4 /** 5 * Global Vars 6 */ 7 var windowWidth = window.innerWidth, 8 windowHeight = window.innerHeight, 9 adminBarHeight = $( '#wpadminbar' ).innerHeight(), 10 headerHeight = $( '.site-header' ).innerHeight(), 11 navBarHeight = $( '.navbar-primary' ).innerHeight(); 12 13 if ( $( 'body' ).hasClass( 'admin-bar' ) ) { 14 if ( window.innerWidth > 782 ) { 15 adminBarHeight = 32; 16 } else { 17 adminBarHeight = 46; 18 } 19 } 20 21 $( document ).ready( function() { 22 headerHeight = $( '.site-header' ).innerHeight(); 23 navBarHeight = $( '.navbar-primary' ).innerHeight(); 24 } ); 25 26 $( window ).resize( function() { 27 windowWidth = window.innerWidth; 28 windowHeight = window.innerHeight; 29 adminBarHeight = $( '#wpadminbar' ).innerHeight(); 30 headerHeight = $( '.site-header' ).innerHeight(); 31 navBarHeight = $( '.navbar-primary' ).innerHeight(); 32 } ); 33 34 var isIE = /MSIE|Trident/i.test( navigator.userAgent ); 35 36 var isRetina = false; 37 38 if ( window.matchMedia ) { 39 var mq = window.matchMedia( "only screen and (min--moz-device-pixel-ratio: 1.3), only screen and (-o-min-device-pixel-ratio: 2.6/2), only screen and (-webkit-min-device-pixel-ratio: 1.3), only screen and (min-device-pixel-ratio: 1.3), only screen and (min-resolution: 1.3dppx)" ); 40 if ( mq && mq.matches || ( window.devicePixelRatio > 1 ) ) { 41 isRetina = true; 42 } 43 } 44 45 var rtl = false; 46 47 if ( $( 'body' ).hasClass( 'rtl' ) ) { 48 rtl = true; 49 } 50 51 // Create csco object. 52 var csco = { 53 addAction: function( x, y, z ) { 54 return; 55 } 56 }; 57 58 if ( 'undefined' !== typeof wp && 'undefined' !== typeof wp.hooks ) { 59 csco.addAction = wp.hooks.addAction; 60 } 61 62 /** 63 * Cookies 64 */ 65 function csGetCookie( name ) { 66 let matches = document.cookie.match( new RegExp( 67 "(?:^|; )" + name.replace( /([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1' ) + "=([^;]*)" 68 ) ); 69 return matches ? decodeURIComponent( matches[ 1 ] ) : undefined; 70 } 71 72 function csSetCookie( name, value, props = {} ) { 73 74 props = { 75 path: '/' 76 }; 77 78 if ( props.expires instanceof Date ) { 79 props.expires = props.expires.toUTCString(); 80 } 81 82 let updatedCookie = encodeURIComponent( name ) + "=" + encodeURIComponent( value ); 83 84 for ( let optionKey in props ) { 85 updatedCookie += "; " + optionKey; 86 let optionValue = props[ optionKey ]; 87 if ( optionValue !== true ) { 88 updatedCookie += "=" + optionValue; 89 } 90 } 91 92 document.cookie = updatedCookie; 93 } 94 95 /** 96 * Google AdSense 97 */ 98 99 try { 100 $( '.adsbygoogle' ).each( function() { 101 ( adsbygoogle = window.adsbygoogle || [] ).push( {} ); 102 } ); 103 } catch ( ex ) {} 104 /** 105 * Carousel 106 */ 107 108 function initCarouselLoop() { 109 var CarouselLoop = $( '.cs-block-carousel .slider-loop' ); 110 111 CarouselLoop.each( function() { 112 113 var container = this; 114 var owl = $( '.owl-carousel', this ); 115 116 $( owl ).imagesLoaded( function() { 117 118 owl.owlCarousel( { 119 dragEndSpeed: 250, 120 smartSpeed: 250, 121 autoHeight: true, 122 dots: true, 123 dotsContainer: $( '> .owl-dots', container ), 124 rtl: rtl, 125 responsive: { 126 0: { 127 items: 1, 128 margin: 0, 129 }, 130 760: { 131 items: 2, 132 margin: 40, 133 }, 134 1020: { 135 items: 3, 136 margin: 30, 137 }, 138 1120: { 139 items: 3, 140 margin: 40, 141 }, 142 1240: { 143 items: $( container ).data( 'columns' ), 144 margin: 30, 145 }, 146 1640: { 147 items: $( container ).data( 'columns' ), 148 margin: 40, 149 }, 150 }, 151 } ); 152 153 } ); 154 155 } ); 156 } 157 158 $( document ).ready( function() { 159 initCarouselLoop(); 160 $( document.body ).on( 'post-load', function() { 161 initCarouselLoop(); 162 } ); 163 164 csco.addAction( 'canvas.components.serverSideRender.onChange', 'posts-init-carousel', function( props ) { 165 if ( 'canvas/posts' === props.block ) { 166 initCarouselLoop(); 167 } 168 } ); 169 } ); 170 /* 171 * ---------------------------------------------------------------------------- 172 * Block Sliders 173 */ 174 175 var cscoBlockSliders = {}; 176 177 ( function() { 178 var $this; 179 180 cscoBlockSliders = { 181 182 windowWidth: 0, 183 184 /* 185 * Initialize 186 */ 187 init: function( e ) { 188 $this = cscoBlockSliders; 189 190 // Init events. 191 $this.events( e ); 192 }, 193 194 /* 195 * Events 196 */ 197 events: function( e ) { 198 // DOM Load 199 window.addEventListener( 'load', function( e ) { 200 $this.initSliderCenter(); 201 $this.initSliderBoxed(); 202 $this.initSliderWide(); 203 $this.initSliderMultiple(); 204 $this.initSliderLarge(); 205 } ); 206 207 // Triggers. 208 window.addEventListener( 'post-load', function( e ) { 209 $this.initSliderCenter(); 210 $this.initSliderBoxed(); 211 $this.initSliderWide(); 212 $this.initSliderMultiple(); 213 $this.initSliderLarge(); 214 } ); 215 216 // Gutenberg. 217 csco.addAction( 'canvas.components.serverSideRender.onChange', 'init-slider', function( props ) { 218 if ( 'canvas/posts' === props.block ) { 219 $this.initSliderCenter(); 220 $this.initSliderBoxed(); 221 $this.initSliderWide(); 222 $this.initSliderMultiple(); 223 $this.initSliderLarge(); 224 } 225 } ); 226 227 // Resize 228 window.addEventListener( 'resize', function( event ) { 229 if ( $( window ).width() === $this.windowWidth ) { 230 return; 231 } 232 233 $this.windowWidth = $( window ).width(); 234 235 $this.sliderLargeResized( event ); 236 } ); 237 }, 238 239 /* 240 * Initialized Hook 241 */ 242 onInitialized: function( event ) { 243 244 if ( $( 'body' ).hasClass( 'parallax-enabled' ) ) { 245 246 var $container = $( event.target ); 247 248 $( $container ).closest( '.cs-block-slider-featured' ).find( 'article' ).each( function() { 249 var $article = $( this ); 250 251 // Slide media. 252 $article.find( '.slide-parallax:not(.slide-video) .overlay-media' ).each( function() { 253 254 $( this ).jarallax( { 255 speed: 0.8, 256 elementInViewport: $container, 257 noIos: false, 258 } ); 259
260 $( this ).attr( 'data-parallax', 'image' ); 261 262 } ); 263 264 // Slide Video. 265 $article.find( '.slide-video' ).each( function() { 266 267 var videoSrc = $( this ).data( 'video' ), 268 videoStartTime = $( this ).data( 'start' ), 269 videoEndTime = $( this ).data( 'end' ), 270 speed = 0.8; 271 272 if ( !$( this ).hasClass( 'slide-parallax' ) ) { 273 speed = 1; 274 } 275 276 $( '.overlay-media', this ).jarallax( { 277 speed: speed, 278 videoSrc: videoSrc, 279 videoStartTime: videoStartTime, 280 videoEndTime: videoEndTime, 281 elementInViewport: $container, 282 videoPlayOnlyVisible: true, 283 noIos: false, 284 } ); 285 286 $( '.overlay-media', this ).attr( 'data-parallax', 'video' ); 287 } ); 288 } ); 289 } 290 291 // Recalc. 292 $( window ).trigger( 'slider-refresh' ); 293 }, 294 295 /* 296 * Resize Hook 297 */ 298 onResized: function( event ) { 299 300 if ( $( 'body' ).hasClass( 'parallax-enabled' ) ) { 301 // Reinit Parallax. 302 $( event.target ).find( '.slide-parallax .overlay-media' ).each( function() { 303 304 if ( $( this ).attr( 'data-parallax' ) ) { 305 $( this ).jarallax( 'clipContainer' ).jarallax( 'coverImage' ).jarallax( 'onScroll' ); 306 } 307 } ); 308 } 309 }, 310 311 /* 312 * Slider Center 313 */ 314 initSliderCenter: function() { 315 var sliderCenter = $( '.cs-block-slider-center' ); 316 317 sliderCenter.imagesLoaded( function( instance ) { 318 319 $( instance.elements ).each( function() { 320 321 function setArrowWidth( event ) { 322 var carousel = $( event.target ); 323 $( '.owl-arrows > button', carousel.parent() ).css( 'width', ( carousel.innerWidth() - $( '.owl-item.center', carousel ).innerWidth() - carousel.parent().data( 'padding' ) * 2 ) / 2 + 'px' ); 324 } 325 326 function sliderCenterInitialized( event ) { 327 setArrowWidth( event ); 328 329 $this.onInitialized( event ); 330 } 331 332 function sliderCenterResized( event ) { 333 setArrowWidth( event ); 334 335 $this.onResized( event ); 336 } 337 338 var container = $( this ); 339 340 var owl = $( '.owl-carousel', container ); 341 342 owl.owlCarousel( { 343 autoplayHoverPause: true, 344 dragEndSpeed: 500, 345 smartSpeed: 500, 346 dotsContainer: $( '.owl-dots', container ), 347 navContainer: $( '.owl-arrows', container ), 348 navText: [ '', '' ], 349 autoHeight: true, 350 rtl: rtl, 351 responsive: { 352 0: { 353 items: 1, 354 loop: false, 355 margin: 0, 356 dots: true, 357 nav: false, 358 }, 359 1020: { 360 autoplay: $( this ).data( 'autoplay' ), 361 autoplayTimeout: $( this ).data( 'timeout' ), 362 loop: false, 363 margin: 0, 364 items: 1, 365 dots: true, 366 nav: false, 367 }, 368 1240: { 369 autoplay: $( this ).data( 'autoplay' ), 370 autoplayTimeout: $( this ).data( 'timeout' ), 371 margin: $( this ).data( 'padding' ), 372 center: true, 373 items: 3, 374 loop: true, 375 autoWidth: true, 376 dots: false, 377 nav: true, 378 } 379 }, 380 onInitialized: sliderCenterInitialized, 381 onResized: sliderCenterResized, 382 onRefresh: sliderCenterResized, 383 onChanged: sliderCenterResized, 384 } ); 385 } ); 386 } ); 387 }, 388 389 /* 390 * Slider Boxed 391 */ 392 initSliderBoxed: function() { 393 var sliderBoxed = $( '.cs-block-slider-boxed' ); 394 395 sliderBoxed.imagesLoaded( function( instance ) { 396 397 $( instance.elements ).each( function() { 398 399 var container = this; 400 401 var owl = $( '.owl-carousel', this ); 402 403 owl.owlCarousel( { 404 autoplayHoverPause: true, 405 dragEndSpeed: 500, 406 smartSpeed: 500, 407 items: 1, 408 margin: 0, 409 autoHeight: true, 410 navText: [ 411 '<div class="button button-primary button-effect"><span><i class="cs-icon cs-icon-chevron-up"></i></span><span>' + translation.previous + '</span></div>', 412 '<div class="button button-primary button-effect"><span><i class="cs-icon cs-icon-chevron-up"></i></span><span>' + translation.next + '</span></div>' 413 ], 414 dots: true, 415 dotsContainer: $( '.owl-dots', container ), 416 navContainer: $( '.owl-arrows', container ), 417 rtl: rtl, 418 responsive: { 419 0: { 420 nav: false, 421 }, 422 1020: { 423 autoplay: $( this ).data( 'autoplay' ), 424 autoplayTimeout: $( this ).data( 'timeout' ), 425 nav: true, 426 loop: true 427 } 428 }, 429 onInitialized: $this.onInitialized, 430 onResized: $this.onResized, 431 onRefresh: $this.onResized, 432 onChanged: $this.onResized, 433 } ); 434 435 } ); 436 } ); 437 }, 438 439 /* 440 * Slider Wide 441 */ 442 initSliderWide: function() { 443 var sliderWide = $( '.cs-block-slider-wide' ); 444 445 sliderWide.imagesLoaded( function( instance ) { 446 447 $( instance.elements ).each( function() { 448 449 var container = this; 450 var owl = $( '.owl-carousel', this ); 451 452 owl.owlCarousel( { 453 autoplayHoverPause: true, 454 dragEndSpeed: 500, 455 smartSpeed: 500, 456 items: 1, 457 margin: 0, 458 autoHeight: true, 459 navText: [ 460 '<div class="button button-primary button-effect"><span><i class="cs-icon cs-icon-chevron-up"></i></span><span>' + translation.previous + '</span></div>', 461 '<div class="button button-primary button-effect"><span><i class="cs-icon cs-icon-chevron-up"></i></span><span>' + translation.next + '</span></div>' 462 ], 463 dots: true, 464 dotsContainer: $( '.owl-dots', container ), 465 navContainer: $( '.owl-arrows', container ), 466 rtl: rtl, 467 responsive: { 468 0: { 469 nav: false, 470 }, 471 1020: { 472 autoplay: $( this ).data( 'autoplay' ), 473 autoplayTimeout: $( this ).data( 'timeout' ), 474 nav: true, 475 loop: true 476 } 477 }, 478 onInitialized: $this.onInitialized, 479 onResized: $this.onResized, 480 onRefresh: $this.onResized, 481 onChanged: $this.onResized, 482 } ); 483 484 } ); 485 } ); 486 }, 487 488 /* 489 * Slider Multiple 490 */ 491 initSliderMultiple: function() { 492 var sliderMultiple = $( '.cs-block-slider-multiple' ); 493 494 sliderMultiple.imagesLoaded( function( instance ) { 495 496 $( instance.elements ).each( function() { 497 498 var container = this; 499 500 var owl = $( '.owl-carousel', this ); 501 502 owl.owlCarousel( { 503 autoplayHoverPause: true, 504 dragEndSpeed: 500, 505 smartSpeed: 500, 506 navContainer: $( '.owl-arrows', container ), 507 navText: [ '', '' ], 508 dots: true, 509 dotsContainer: $( '.owl-dots', container ), 510 autoHeight: true, 511 rtl: rtl, 512 responsive: { 513 0: { 514 nav: false, 515 loop: false, 516 margin: 0, 517 stagePadding: 0, 518 items: 1, 519 }, 520 1020: { 521 autoplay: $( this ).data( 'autoplay' ), 522 autoplayTimeout: $( this ).data( 'timeout' ), 523 }, 524 1120: { 525 autoplay: $( this ).data( 'autoplay' ), 526 autoplayTimeout: $( this ).data( 'timeout' ), 527 margin: $( this ).data( 'padding' ), 528 items: $( this ).data( 'slides-visible' ), 529 nav: true, 530 loop: true, 531 stagePadding: 90, 532 } 533 }, 534 onInitialized: $this.onInitialized, 535 onResized: $this.onResized, 536 onRefresh: $this.onResized, 537 onChanged: $this.onResized, 538 } ); 539 540 } ); 541 } ); 542 }, 543 544 /* 545 * Slider Large 546 */ 547 initSliderLarge: function() { 548 var sliderLarge = $( '.cs-block-slider-large' ); 549 550 sliderLarge.imagesLoaded( function( instance ) { 551 552 $( instance.elements ).each( function() { 553 554 var container = this, 555 owl = $( '.owl-carousel', this ), 556 autoHeight = false;
557 558 if ( $( document.body ).hasClass( 'style-type-classic' ) ) { 559 autoHeight = true; 560 } 561 562 owl.owlCarousel( { 563 autoplayHoverPause: true, 564 dragEndSpeed: 500, 565 smartSpeed: 500, 566 autoHeight: autoHeight, 567 items: 1, 568 margin: 0, 569 navText: [ 570 '<div class="button button-primary button-effect"><span><i class="cs-icon cs-icon-chevron-up"></i></span><span>' + translation.previous + '</span></div>', 571 '<div class="button button-primary button-effect"><span><i class="cs-icon cs-icon-chevron-up"></i></span><span>' + translation.next + '</span></div>' 572 ], 573 dots: true, 574 dotsContainer: $( '.owl-dots', container ), 575 navContainer: $( '.owl-arrows', container ), 576 rtl: rtl, 577 responsive: { 578 0: { 579 nav: false, 580 }, 581 1020: { 582 autoplay: $( this ).data( 'autoplay' ), 583 autoplayTimeout: $( this ).data( 'timeout' ), 584 nav: true, 585 loop: true, 586 } 587 }, 588 onInitialized: $this.sliderLargeInitialized, 589 onTranslated: $this.sliderLargePosition, 590 onResized: $this.sliderLargeResized, 591 onRefresh: $this.sliderLargeResized, 592 onChanged: $this.sliderLargeResized, 593 } ); 594 } ); 595 } ); 596 }, 597 598 /* 599 * Slider Large Change Position 600 */ 601 sliderLargePosition: function() { 602 603 var siteContentTop = 0; 604 605 // Redefine variables. 606 var sectionLarge = $( '.has-slider-large .cnvs-block-section-layout-align-full:first-child' ); 607 var sliderLarge = $( sectionLarge ).find( '.cnvs-block-posts-layout-slider-large:first-child .cs-block-slider-large' ); 608 var sliderLargeOuter = $( '.overlay-outer', sliderLarge ); 609 610 if ( $( '.site-content' ).length > 0 ) { 611 siteContentTop = $( '.site-content' ).css( 'margin-top' ).replace( 'px', '' ); 612 } 613 614 // Define heights. 615 var owlSlide = $( '.post-outer', sliderLarge ),
616 contentHeight = $( '.overlay-inner', owlSlide ).innerHeight(), 617 offsetHeight = ( parseInt( adminBarHeight ) || 0 ) + ( parseInt( siteContentTop ) || 0 ) + ( parseInt( headerHeight ) || 0 ), 618 availableHeight = windowHeight - offsetHeight, 619 viewPortHeight = '100vh'; 620 621 // Offset page header. 622 sliderLarge.css( 'margin-top', -offsetHeight + 'px' ); 623 sliderLargeOuter.css( 'padding-top', offsetHeight + 'px' ); 624 625 // Set the slider height. 626 if ( availableHeight >= contentHeight ) { 627 sliderLargeOuter.css( 'height', viewPortHeight ); 628 } else { 629 sliderLargeOuter.css( 'height', contentHeight + offsetHeight + 'px' ); 630 } 631 632 // Return if overlay variant is set to bottom. 633 if ( $( document.body ).hasClass( 'style-align-left' ) ) { 634 return; 635 } 636 637 // Add extra padding, if possible. 638 if ( availableHeight - offsetHeight >= contentHeight ) { 639 sliderLargeOuter.css( 'padding-bottom', offsetHeight + 'px' ); 640 } else { 641 sliderLargeOuter.css( 'padding-bottom', 0 ); 642 } 643 }, 644 645 /* 646 * Slider Large Initialized 647 */ 648 sliderLargeInitialized: function( event ) { 649 $this.sliderLargePosition(); 650 651 $this.onInitialized( event ); 652 }, 653 654 /* 655 * Slider Large Resized 656 */ 657 sliderLargeResized: function( event ) { 658 $this.sliderLargePosition(); 659 660 $this.onResized( event ); 661 } 662 }; 663 664 } )(); 665 666 // Initialize. 667 cscoBlockSliders.init(); 668 669 ( function() { 670 var ticking = false; 671 672 var update = function() { 673 674 // Sidebar. 675 // -----------------------------------. 676 $( '.content-area .site-main' ).each( function() { 677 678 var content = $( this ).find( '.entry-content' ); 679 var sidebar = $( this ).find( '.post-sidebar .pk-share-buttons-wrap' ); 680 681 // Vars offset. 682 var offsetTop = 20; 683 var offsetBottom = -20; 684 685 // Search elements. 686 var elements = []; 687 688 elements.push( '> .alignfull' ); 689 elements.push( '> .alignwide' ); 690 691 var layouts = $( content ).find( elements.join( ',' ) ); 692 693 if ( 0 === sidebar.length ) { 694 return; 695 } 696 if ( 0 === layouts.length ) { 697 return; 698 } 699 700 var disabled = false; 701 702 // Get sidebar values. 703 var sidebarTop = $( sidebar ).offset().top; 704 var sidebarHeight = $( sidebar ).outerHeight( true ); 705 706 for ( let i = 0; i < $( layouts ).length; ++i ) { 707 if ( 'none' === $( layouts[ i ] ).css( 'transform' ) ) { 708 continue; 709 } 710 711 // Get layout values. 712 let layoutTop = $( layouts[ i ] ).offset().top; 713 let layoutHeight = $( layouts[ i ] ).outerHeight( true ); 714 715 // Calc points. 716 let pointTop = layoutTop - offsetTop; 717 let pointBottom = layoutTop + layoutHeight + offsetBottom; 718 719 // Detect sidebar location. 720 if ( sidebarTop + sidebarHeight >= pointTop && sidebarTop <= pointBottom ) { 721 disabled = true; 722 } 723 } 724 725 726 if ( disabled ) { 727 $( sidebar ).css( 'opacity', '0' ); 728 } else { 729 $( sidebar ).css( 'opacity', '1' ); 730 } 731 } ); 732 733 // Pagination. 734 // -----------------------------------. 735 $( '.content-area .site-main' ).each( function() { 736 737 var content = $( this ).find( '.entry-content' ); 738 var pagination = $( this ).find( '.posts-pagination article:first-child' ); 739 740 // Vars offset. 741 var offsetTop = -20; 742 var offsetBottom = -140; 743 744 // Search elements. 745 var elements = []; 746 747 elements.push( '> .alignfull' ); 748 749 var layouts = $( content ).find( elements.join( ',' ) ); 750 751 if ( 0 === pagination.length ) { 752 return; 753 } 754 if ( 0 === layouts.length ) { 755 return; 756 } 757 758 var disabled = false; 759 760 // Get pagination values. 761 var paginationTop = $( pagination ).find( '> a' ).offset().top; 762 var paginationHeight = $( pagination ).find( '> a' ).outerWidth( true ); 763 764 for ( let i = 0; i < $( layouts ).length; ++i ) { 765 if ( 'none' === $( layouts[ i ] ).css( 'transform' ) ) { 766 continue; 767 } 768 769 // Get layout values. 770 let layoutTop = $( layouts[ i ] ).offset().top; 771 let layoutHeight = $( layouts[ i ] ).outerHeight( true ); 772 773 // Calc points. 774 let pointTop = layoutTop - offsetTop; 775 let pointBottom = layoutTop + layoutHeight + offsetBottom; 776 777 // Detect pagination location. 778 if ( paginationTop + paginationHeight >= pointTop && paginationTop <= pointBottom ) { 779 disabled = true; 780 } 781 } 782 783 if ( disabled ) { 784 $( pagination ).parent().css( 'opacity', '0' ); 785 $( pagination ).parent().css( 'visibility', 'hidden' ); 786 } else { 787 $( pagination ).parent().css( 'opacity', '1' ); 788 $( pagination ).parent().css( 'visibility', 'visible' ); 789 } 790 } ); 791 792 // Ticking. 793 ticking = false;
794 }; 795 796 var requestTick = function() { 797 if ( !ticking ) { 798 window.requestAnimationFrame( update ); 799 ticking = true; 800 } 801 }; 802 803 var onProcess = function() { 804 requestTick(); 805 }; 806 807 $( window ).on( 'scroll', onProcess ); 808 $( window ).on( 'resize', onProcess ); 809 $( window ).on( 'image-load', onProcess ); 810 $( window ).on( 'post-load', onProcess ); 811 $( window ).on( 'slider-refresh', onProcess ); 812 813 } )(); 814 815 // Init slider for powerkit featured posts. 816 817 function initFeaturedSlider() { 818 // Widget Post Featured 819 $( '.pk-widget-posts-template-slider, .cnvs-block-posts-sidebar-slider .cnvs-block-posts-sidebar-inner' ).each( function() { 820 if ( $( this ).hasClass( 'init-slider' ) ) { 821 return; 822 } 823 824 $( this ).addClass( 'init-slider' ); 825 826 // Wrap inner of slider-container. 827 $( this ).wrapInner( '<div class="slider-container slider-flip"></div>' ); 828 829 // Add owl-carousel class. 830 $( this ).find( '.slider-flip > ul' ).addClass( 'owl-carousel' ); 831 832 // Add owl dots. 833 $( this ).find( '.slider-flip' ).append( '<div class="owl-dots"></div>' ); 834 } ); 835 } 836 837 $( document ).ready( function() { 838 initFeaturedSlider(); 839 initSliderFlip(); 840 841 $( document.body ).on( 'post-load', function() { 842 initFeaturedSlider(); 843 initSliderFlip(); 844 } ); 845 846 csco.addAction( 'canvas.components.serverSideRender.onChange', 'initFeaturedSlider', function( props ) { 847 initFeaturedSlider(); 848 initSliderFlip(); 849 } ); 850 851 } ); 852 853 /** 854 * AJAX Load More. 855 * 856 * Contains functions for AJAX Load More. 857 */ 858 859 $( function() { 860 861 if ( 'undefined' === typeof window.load_more_query ) { 862 window.load_more_query = []; 863 } 864 865 /** 866 * Get next posts 867 */ 868 function csco_ajax_get_posts( object ) { 869 var container = $( object ).closest( '.post-archive' ); 870 871 var settings = $( object ).data( 'settings' ); 872 var page = $( object ).data( 'page' ); 873 874 $( object ).data( 'loading', true ); 875 876 // Set button text to Load More. 877 $( object ).text( settings.translation.loading ); 878 879 var data = { 880 action: 'csco_ajax_load_more', 881 page: page, 882 posts_per_page: settings.posts_per_page, 883 query_data: settings.query_data, 884 attributes: settings.attributes, 885 options: settings.options, 886 _ajax_nonce: settings.nonce, 887 }; 888 889 // Request Url. 890 var csco_pagination_url; 891 892 if ( 'ajax_restapi' === settings.type ) { 893 csco_pagination_url = settings.rest_url; 894 } else { 895 csco_pagination_url = settings.url; 896 } 897 898 // Send Request. 899 $.post( csco_pagination_url, data, function( res ) { 900 if ( res.success ) { 901 902 // Get the posts. 903 var data = $( res.data.content ); 904 905 // Check if there're any posts. 906 if ( data.length ) { 907 908 data.imagesLoaded( function() { 909 910 // Append new posts to list, standard and grid archives. 911 $( container ).find( '.archive-main.archive-list, .archive-main.archive-standard, .archive-main.archive-grid' ).append( data ); 912 913 // Append new posts to masonry layout. 914 $( container ).find( '.archive-main.archive-masonry' ).colcade( 'append', data ); 915 916 // WP Post Load trigger. 917 $( document.body ).trigger( 'post-load' ); 918 919 // Reinit Facebook widgets. 920 if ( $( '#fb-root' ).length && 'object' === typeof FB ) { 921 FB.XFBML.parse(); 922 } 923 924 // Set button text to Load More. 925 $( object ).text( settings.translation.load_more ); 926 927 // Increment a page. 928 page = page + 1; 929 930 $( object ).data( 'page', page ); 931 932 // Set the loading state. 933 $( object ).data( 'loading', false ); 934 } ); 935 936 } 937 938 // Remove Button on Posts End. 939 if ( res.data.posts_end || !data.length ) { 940 941 // Remove Load More button. 942 $( object ).remove(); 943 } 944 945 } else { 946 // console.log(res); 947 } 948 } ).fail( function( xhr, textStatus, e ) { 949 // console.log(xhr.responseText); 950 } ); 951 } 952 953 /** 954 * Initialization Load More 955 */ 956 function csco_load_more_init( infinite ) { 957 $( '.post-archive' ).each( function() { 958 959 if ( $( this ).data( 'init' ) ) { 960 return; 961 } 962 963 var csco_ajax_settings; 964 965 if ( typeof csco_ajax_pagination !== 'undefined' ) { 966 csco_ajax_settings = csco_ajax_pagination; 967 } 968 969 var archive_data = $( this ).data( 'archive-data' ); 970 971 if ( archive_data ) { 972 csco_ajax_settings = JSON.parse( window.atob( archive_data ) ); 973 } 974 975 if ( csco_ajax_settings ) { 976 977 if ( !infinite && csco_ajax_settings.infinite_load ) { 978 return; 979 } 980 981 // Add load more button. 982 $( this ).find( '.archive-pagination' ).append( '<span class="load-more button btn-lg button-primary">' + csco_ajax_settings.translation.load_more + '</span>' ); 983 984 // Set load more settings. 985 $( this ).find( '.load-more' ).data( 'settings', csco_ajax_settings ); 986 $( this ).find( '.load-more' ).data( 'page', 2 ); 987 $( this ).find( '.load-more' ).data( 'loading', false ); 988 $( this ).find( '.load-more' ).data( 'scrollHandling', { 989 allow: $.parseJSON( csco_ajax_settings.infinite_load ), 990 delay: 400 991 } ); 992 } 993 994 $( this ).data( 'init', true ); 995 } ); 996 } 997 998 csco_load_more_init( true ); 999 1000 csco.addAction( 'canvas.components.serverSideRender.onChange', 'posts-init-loadmore', function( props ) { 1001 if ( 'canvas/posts' === props.block ) { 1002 csco_load_more_init( false ); 1003 } 1004 } ); 1005 1006 // On Scroll Event. 1007 $( window ).scroll( function() { 1008 1009 $( '.post-archive .load-more' ).each( function() { 1010 1011 var loading = $( this ).data( 'loading' ); 1012 var scrollHandling = $( this ).data( 'scrollHandling' ); 1013 1014 if ( $( this ).length && !loading && scrollHandling.allow ) { 1015 scrollHandling.allow = false;
1016 1017 $( this ).data( 'scrollHandling', scrollHandling ); 1018 1019 var object = this; 1020 1021 setTimeout( function() { 1022 var scrollHandling = $( object ).data( 'scrollHandling' ); 1023 1024 scrollHandling.allow = true; 1025 1026 $( object ).data( 'scrollHandling', scrollHandling ); 1027 }, scrollHandling.delay ); 1028 1029 var offset = $( this ).offset().top - $( window ).scrollTop(); 1030 if ( 4000 > offset ) { 1031 csco_ajax_get_posts( this ); 1032 } 1033 } 1034 } ); 1035 } ); 1036 1037 // On Click Event. 1038 $( 'body' ).on( 'click', '.load-more', function() { 1039 var loading = $( this ).data( 'loading' ); 1040 1041 if ( !loading ) { 1042 csco_ajax_get_posts( this ); 1043 } 1044 } ); 1045 } ); 1046 1047 /** 1048 * AJAX Auto Load Next Post. 1049 * 1050 * Contains functions for AJAX Auto Load Next Post. 1051 */ 1052 1053 ( function() { 1054 /** 1055 * Check if Load Nextpost is defined by the wp_localize_script 1056 */ 1057 if ( typeof csco_ajax_nextpost !== 'undefined' ) { 1058 1059 var objNextparent = $( '.site-inner > .site-content' ), 1060 objNextsect = '.cs-nextpost-section', 1061 objNextpost = null, 1062 currentNTitle = document.title, 1063 currentNLink = window.location.href, 1064 loadingNextpost = false, 1065 scrollNextpost = { 1066 allow: true, 1067 reallow: function() { 1068 scrollNextpost.allow = true; 1069 }, 1070 delay: 400 //(milliseconds) adjust to the highest acceptable value 1071 }; 1072 1073 // Init. 1074 if ( csco_ajax_nextpost.next_post ) { 1075 $( objNextparent ).after( '<div class="cs-nextpost-inner"></div>' ); 1076 1077 objNextpost = $( '.cs-nextpost-inner' ); 1078 } 1079 } 1080 1081 /** 1082 * Get next post 1083 */ 1084 function csco_ajax_get_nextpost() { 1085 loadingNextpost = true; 1086 1087 // Set class loading. 1088 var data = { 1089 action: 'csco_ajax_load_nextpost', 1090 not_in: csco_ajax_nextpost.not_in, 1091 current_user: csco_ajax_nextpost.current_user, 1092 nonce: csco_ajax_nextpost.nonce, 1093 next_post: csco_ajax_nextpost.next_post, 1094 }; 1095 1096 // Request Url. 1097 var csco_ajax_nextpost_url; 1098 if ( 'ajax_restapi' === csco_ajax_nextpost.type ) { 1099 csco_ajax_nextpost_url = csco_ajax_nextpost.rest_url; 1100 } else { 1101 csco_ajax_nextpost_url = csco_ajax_nextpost.url; 1102 } 1103 1104 // Send Request. 1105 $.post( csco_ajax_nextpost_url, data, function( res ) { 1106 1107 csco_ajax_nextpost.next_post = false; 1108 1109 if ( res.success ) { 1110 1111 // Get the posts. 1112 var data = $( res.data.content ); 1113 1114 // Check if there're any posts. 1115 if ( data.length ) { 1116 // Set the loading state. 1117 loadingNextpost = false; 1118 1119 // Set not_in. 1120 csco_ajax_nextpost.not_in = res.data.not_in; 1121 1122 // Set next data. 1123 csco_ajax_nextpost.next_post = res.data.next_post; 1124 1125 // Remove loader. 1126 $( objNextpost ).siblings( '.cs-nextpost-loading' ).remove(); 1127 1128 // Append new post. 1129 $( objNextpost ).append( data ); 1130 1131 // Reinit facebook. 1132 if ( $( '#fb-root' ).length && 'object' === typeof FB ) { 1133 FB.XFBML.parse(); 1134 } 1135 1136 $( document.body ).trigger( 'post-load' ); 1137 } 1138 } else { 1139 // console.log(res); 1140 } 1141 } ).fail( function( xhr, textStatus, e ) { 1142 // console.log(xhr.responseText); 1143 } ); 1144 } 1145 1146 /** 1147 * Check if Load Nextpost is defined by the wp_localize_script 1148 */ 1149 if ( typeof csco_ajax_nextpost !== 'undefined' ) { 1150 1151 // On Scroll Event. 1152 $( window ).scroll( function() { 1153 var scrollTop = $( window ).scrollTop(); 1154 1155 // Init nextpost. 1156 if ( csco_ajax_nextpost.next_post ) { 1157 1158 if ( objNextpost.length && !loadingNextpost && scrollNextpost.allow ) { 1159 scrollNextpost.allow = false; 1160 setTimeout( scrollNextpost.reallow, scrollNextpost.delay ); 1161 // Calc current offset. 1162 let offset = objNextpost.offset().top + objNextpost.innerHeight() - scrollTop; 1163 // Load nextpost. 1164 if ( 4000 > offset ) { 1165 $( objNextpost ).after( '<div class="cs-nextpost-loading"></div>' ); 1166 1167 csco_ajax_get_nextpost(); 1168 } 1169 } 1170 } 1171 1172 // Reset browser data link. 1173 let objFirst = $( objNextsect ).first(); 1174 1175 if ( objFirst.length ) { 1176 let firstTop = $( objFirst ).offset().top; 1177 // If there has been a change. 1178 if ( scrollTop < firstTop && window.location.href !== currentNLink ) { 1179 document.title = currentNTitle; 1180 window.history.pushState( null, currentNTitle, currentNLink ); 1181 } 1182 } 1183 1184 // Set browser data link. 1185 $( objNextsect ).each( function( index, elem ) { 1186 1187 let elemTop = $( elem ).offset().top; 1188 let elemHeight = $( elem ).innerHeight(); 1189 1190 if ( scrollTop > elemTop && scrollTop < elemTop + elemHeight ) { 1191 // If there has been a change. 1192 if ( window.location.href !== $( elem ).data( 'url' ) ) { 1193 // New title. 1194 document.title = $( elem ).data( 'title' ); 1195 // New link. 1196 window.history.pushState( null, $( elem ).data( 'title' ), $( elem ).data( 'url' ) ); 1197 // Google Analytics. 1198 if ( typeof gtag === 'function' && typeof window.gaData === 'object' ) { 1199 1200 var trackingId = Object.keys( window.gaData )[ 0 ]; 1201 if ( trackingId ) { 1202 gtag( 'config', trackingId, { 1203 'page_title': $( elem ).data( 'title' ), 1204 'page_location': $( elem ).data( 'url' ) 1205 } ); 1206 1207 gtag( 'event', 'page_view', { 'send_to': trackingId } ); 1208 } 1209 } 1210 } 1211 } 1212 } ); 1213 } ); 1214 } 1215 1216 } )(); 1217 1218 /** 1219 * Masonry Archive 1220 */ 1221 1222 function initMasonry() { 1223 1224 var masonryArchive = $( '.archive-masonry' ), 1225 masonryArchiveOptions = { 1226 columns: '.archive-col', 1227 items: '.post-masonry, .post-featured, .widget' 1228 }; 1229 1230 $( masonryArchive ).imagesLoaded( function() { 1231 $( masonryArchive ).colcade( masonryArchiveOptions ); 1232 } ); 1233 1234 /**
1235 * Masonry Sidebar 1236 */ 1237 1238 var masonrySidebar = $( '.sidebar-area' ), 1239 masonrySidebarOptions = { 1240 columns: '.sidebar', 1241 items: ' .widget' 1242 }; 1243 1244 $( masonrySidebar ).imagesLoaded( function() { 1245 $( masonrySidebar ).colcade( masonrySidebarOptions ); 1246 } ); 1247 1248 } 1249 1250 $( document ).ready( function() { 1251 initMasonry(); 1252 1253 csco.addAction( 'canvas.components.serverSideRender.onChange', 'posts-init-masonry', function( props ) { 1254 if ( 'canvas/posts' === props.block ) { 1255 initMasonry(); 1256 } 1257 } ); 1258 } ); 1259 1260 /* 1261 * Load Mega Menu Posts 1262 */ 1263 function cscoLoadMenuPosts( menuItem ) { 1264 var dataTerm = menuItem.children( 'a' ).data( 'term' ), 1265 dataPosts = menuItem.children( 'a' ).data( 'posts' ), 1266 dataNumberposts = menuItem.children( 'a' ).data( 'numberposts' ), 1267 menuContainer, 1268 postsContainer; 1269 1270 // Containers. 1271 if ( menuItem.hasClass( 'csco-mega-menu-term' ) ) { 1272 menuContainer = menuItem; 1273 postsContainer = menuContainer.find( '.cs-mm-posts' ); 1274 } 1275 1276 if ( menuItem.hasClass( 'csco-mega-menu-posts' ) ) { 1277 menuContainer = menuItem; 1278 postsContainer = menuContainer.find( '.cs-mm-posts' ); 1279 } 1280 1281 if ( menuItem.hasClass( 'csco-mega-menu-child-term' ) ) { 1282 menuContainer = menuItem.closest( '.sub-menu' ); 1283 postsContainer = menuContainer.find( '.cs-mm-posts[data-term="' + dataTerm + '"]' ); 1284 } 1285 1286 // Check Menu Container. 1287 if ( !menuContainer || typeof menuContainer === 'undefined' ) { 1288 return false; 1289 } 1290 1291 // Check Container. 1292 if ( !postsContainer || typeof postsContainer === 'undefined' ) { 1293 return false; 1294 } 1295 1296 // Set Active. 1297 menuContainer.find( '.menu-item, .cs-mm-posts' ).removeClass( 'active-item' ); 1298 1299 menuItem.addClass( 'active-item' ); 1300 1301 if ( postsContainer ) { 1302 postsContainer.addClass( 'active-item' ); 1303 } 1304 1305 // Check Loading. 1306 if ( menuItem.hasClass( 'cs-mm-loading' ) || menuItem.hasClass( 'loaded' ) ) { 1307 return false; 1308 } 1309 1310 // Create Data. 1311 var data = { 1312 'term': dataTerm, 1313 'posts': dataPosts, 1314 'per_page': dataNumberposts 1315 }; 1316 1317 // Get Results. 1318 $.ajax( { 1319 url: csco_mega_menu.rest_url, 1320 type: 'GET', 1321 data: data, 1322 global: false, 1323 async: true, 1324 beforeSend: function() { 1325 menuItem.addClass( 'cs-mm-loading' ); 1326 postsContainer.addClass( 'cs-mm-loading' ); 1327 }, 1328 success: function( res ) { 1329 if ( res.status && 'success' === res.status ) { 1330 1331 // Set the loaded state. 1332 menuItem.addClass( 'loaded' ); 1333 postsContainer.addClass( 'loaded' ); 1334 1335 // Check if there're any posts. 1336 if ( res.content && res.content.length ) { 1337 1338 $( res.content ).imagesLoaded( function() { 1339 1340 // Append Data. 1341 postsContainer.html( res.content ); 1342 } ); 1343 } 1344 } 1345 }, 1346 complete: function() { 1347 // Set the loading state. 1348 menuItem.removeClass( 'cs-mm-loading' ); 1349 postsContainer.removeClass( 'cs-mm-loading' ); 1350 } 1351 } ); 1352 } 1353 1354 /* 1355 * Get First Tab 1356 */ 1357 function cscoGetFirstTab( container ) { 1358 1359 var firstTab = false; 1360 1361 container.find( '.csco-mega-menu-child' ).each( function( index, el ) { 1362 if ( $( el ).hasClass( 'csco-mega-menu-child' ) ) { 1363 firstTab = $( el ); 1364 return false; 1365 } 1366 } ); 1367 1368 return firstTab; 1369 } 1370 1371 /* 1372 * Menu on document ready 1373 */ 1374 $( document ).ready( function() { 1375 1376 /* 1377 * Get Menu Posts on Hover 1378 */ 1379 $( '.navbar-nav .menu-item.csco-mega-menu-posts' ).on( 'mouseenter', function() { 1380 cscoLoadMenuPosts( $( this ) ); 1381 } ); 1382 $( '.navbar-nav .menu-item.csco-mega-menu-term' ).on( 'mouseenter', function() { 1383 cscoLoadMenuPosts( $( this ) ); 1384 } ); 1385 $( '.navbar-nav .menu-item.csco-mega-menu-child' ).on( 'mouseenter', function() { 1386 cscoLoadMenuPosts( $( this ) ); 1387 } ); 1388 1389 /* 1390 * Load First Tab on Mega Menu Hover 1391 */ 1392 $( '.navbar-nav .menu-item.csco-mega-menu-terms' ).on( 'mouseenter', function() { 1393 var tab = cscoGetFirstTab( $( this ) ); 1394 1395 if ( tab ) { 1396 cscoLoadMenuPosts( tab ); 1397 } 1398 } ); 1399 } ); 1400 1401 /* 1402 * Load First Tab on Navbar Ready. 1403 */ 1404 $( document, '.navbar-nav' ).ready( function() { 1405 var tab = false; 1406 1407 // Autoload First Tab. 1408 $( '.navbar-nav .menu-item.csco-mega-menu-terms' ).each( function( index, el ) { 1409 tab = cscoGetFirstTab( $( this ) ); 1410 1411 if ( tab ) { 1412 cscoLoadMenuPosts( tab ); 1413 } 1414 } ); 1415 1416 // Autoload Posts. 1417 $( '.navbar-nav .menu-item.csco-mega-menu-posts' ).each( function( index, el ) { 1418 cscoLoadMenuPosts( $( this ) ); 1419 } ); 1420 1421 // Autoload Term. 1422 $( '.navbar-nav .menu-item.csco-mega-menu-term' ).each( function( index, el ) { 1423 cscoLoadMenuPosts( $( this ) ); 1424 } ); 1425 } ); 1426 1427 /** 1428 * Responsive Navigation Menu 1429 */ 1430 1431 $.fn.responsiveNav = function() { 1432 this.removeClass( 'menu-item-expanded' ); 1433 if ( this.prev().hasClass( 'submenu-visible' ) ) {
1434 this.prev().removeClass( 'submenu-visible' ).slideUp( 350 ); 1435 this.parent().removeClass( 'menu-item-expanded' ); 1436 } else { 1437 this.parent().parent().find( '.menu-item .sub-menu' ).removeClass( 'submenu-visible' ).slideUp( 350 ); 1438 this.parent().parent().find( '.menu-item-expanded' ).removeClass( 'menu-item-expanded' ); 1439 this.prev().toggleClass( 'submenu-visible' ).hide().slideToggle( 350 ); 1440 this.parent().toggleClass( 'menu-item-expanded' ); 1441 } 1442 }; 1443 1444 function initNavMenu() { 1445 $( '.widget_nav_menu .menu-item-has-children' ).each( function( e ) { 1446 1447 if ( $( this ).data( 'init' ) ) { 1448 return; 1449 } 1450 1451 $( this ).data( 'init', true ); 1452 1453 // Add a caret. 1454 $( this ).append( '<span></span>' ); 1455 1456 // Fire responsiveNav() when clicking a caret. 1457 $( '> span', this ).on( 'click', function( e ) { 1458 e.preventDefault(); 1459 $( this ).responsiveNav(); 1460 } ); 1461 1462 // Fire responsiveNav() when clicking a parent item with # href attribute. 1463 if ( '#' === $( '> a', this ).attr( 'href' ) ) { 1464 $( '> a', this ).on( 'click', function( e ) { 1465 e.preventDefault(); 1466 $( this ).next().next().responsiveNav(); 1467 } ); 1468 } 1469 1470 } ); 1471 } 1472 1473 // Make widget nav responsive. 1474 $( document ).ready( function() { 1475 initNavMenu(); 1476 1477 $( 'body' ).on( 'post-load', function() { 1478 initNavMenu(); 1479 } ); 1480 1481 csco.addAction( 'canvas.components.serverSideRender.onChange', 'initNavMenu', function( props ) { 1482 initNavMenu(); 1483 } ); 1484 } ); 1485 1486 /* 1487 * ---------------------------------------------------------------------------- 1488 * Navigation 1489 */ 1490 1491 var cscoNavigation = {}; 1492 1493 ( function() { 1494 var $this; 1495 1496 cscoNavigation = { 1497 sScrollAllow: false, 1498 sInFirst: true, 1499 sInterval: 0, 1500 sPrevious: 0, 1501 sDirection: 0, 1502 1503 loadStickyOffset: 0, 1504 loadAdminBar: false, 1505 1506 Sticky: $( 'body' ).hasClass( 'navbar-sticky-enabled' ), 1507 StickyUp: $( 'body' ).hasClass( 'navbar-smart-enabled' ), 1508 StickyNav: $( '.site-header .navbar-primary' ), 1509 StickyHeader: $( '.site-header' ), 1510 StickyOffsetType: 'auto', 1511 StickyOffset: 0, 1512 StickyOffsetFull: 0, 1513 1514 /* 1515 * Initialize 1516 */ 1517 init: function( e ) { 1518 $this = cscoNavigation; 1519 1520 // Init events. 1521 $this.events( e ); 1522 }, 1523 1524 /* 1525 * Events 1526 */ 1527 events: function( e ) { 1528 // DOM Load 1529 window.addEventListener( 'load', function( e ) { 1530 $this.stickyInit( e ); 1531 $this.smartLevels( e ); 1532 $this.adaptTablet( e ); 1533 } ); 1534 // Resize 1535 window.addEventListener( 'resize', function( e ) { 1536 $this.stickyInit( e ); 1537 $this.smartLevels( e ); 1538 $this.adaptTablet( e ); 1539 } ); 1540 // Scroll 1541 window.addEventListener( 'scroll', function( e ) { 1542 window.requestAnimationFrame( $this.stickyScroll ); 1543 } ); 1544 }, 1545 1546 /* 1547 * Init nav bar sticky 1548 */ 1549 stickyInit: function( e ) { 1550 1551 if ( !$this.Sticky ) { 1552 return; 1553 } 1554 1555 $this.sScrollAllow = false; 1556 1557 // Calc sticky offset. 1558 if ( $this.StickyOffsetType !== 'size' ) { 1559 1560 var calcbar = 0; 1561 var wpadminbar = 0; 1562 1563 if ( $( '#wpadminbar' ).length > 0 ) { 1564 calcbar = $( '#wpadminbar' ).outerHeight(); 1565 1566 wpadminbar = calcbar; 1567 1568 if ( 'resize' !== e.type ) { 1569 $this.loadAdminBar = wpadminbar; 1570 } 1571 1572 if ( 'absolute' === $( '#wpadminbar' ).css( 'position' ) ) { 1573 wpadminbar = 0; 1574 1575 if ( 'resize' !== e.type ) { 1576 $this.loadAdminBar = 0; 1577 } 1578 } 1579 } 1580 1581 // Calc outside header. 1582 $this.StickyOffsetFull = $this.StickyHeader.outerHeight(); 1583 1584 // Calc on load offset top. 1585 var elOffset = $this.StickyNav.not( '.sticky-nav' ).offset(); 1586 1587 if ( elOffset && !$this.StickyNav.hasClass( '.sticky-nav' ) ) { 1588 1589 $this.StickyOffset = elOffset.top; 1590 1591 $this.loadStickyOffset = elOffset.top; 1592 } else { 1593 $this.StickyOffset = $this.loadStickyOffset; 1594 } 1595 1596 // Consider the size of the wpadminbar. 1597 if ( 32 === $this.loadAdminBar ) { 1598 if ( 46 === calcbar ) { 1599 $this.StickyOffset = $this.StickyOffset - wpadminbar + 14; 1600 } else { 1601 $this.StickyOffset = $this.StickyOffset - wpadminbar; 1602 } 1603 } else if ( 46 === $this.loadAdminBar || 0 === $this.loadAdminBar ) { 1604 1605 if ( 32 === calcbar ) { 1606 $this.StickyOffset = $this.StickyOffset - wpadminbar - 14; 1607 } else { 1608 $this.StickyOffset = $this.StickyOffset - wpadminbar; 1609 } 1610 } 1611 } 1612 1613 // Nav Height. 1614 var navHeight = $this.StickyNav.outerHeight(); 1615 1616 // Set the min-height default of the header. 1617 $this.StickyHeader.data( 'min-height', $this.StickyOffsetFull - navHeight ); 1618 1619 // Document ready. 1620 if ( 'resize' !== e.type ) { 1621 1622 // Add nav dummy. 1623 $this.StickyNav.after( '<div class="navbar-dummy"></div>' );
1624 $this.StickyHeader.find( '.navbar-dummy' ).height( navHeight ); 1625 1626 // Set type slide. 1627 if ( $this.StickyUp ) { 1628 $this.StickyHeader.addClass( 'sticky-type-slide' ); 1629 } 1630 } 1631 1632 // Allow. 1633 $this.sScrollAllow = true; 1634 }, 1635 1636 /* 1637 * Make nav bar sticky 1638 */ 1639 stickyScroll: function( e ) { 1640 if ( !$this.sScrollAllow ) { 1641 return; 1642 } 1643 1644 var scrollCurrent = $( window ).scrollTop(); 1645 1646 if ( $this.StickyUp ) { 1647 1648 if ( scrollCurrent > $this.StickyOffsetFull ) { 1649 $this.StickyNav.addClass( 'sticky-nav' ); 1650 } 1651 1652 if ( scrollCurrent <= $this.StickyOffset ) { 1653 $this.StickyNav.removeClass( 'sticky-nav' ); 1654 } 1655 1656 // Set scroll temporary vars. 1657 if ( scrollCurrent > $this.sPrevious ) { 1658 $this.sInterval = 0; 1659 $this.sDirection = 'down'; 1660 1661 $this.StickyNav.addClass( 'sticky-down' ).removeClass( 'sticky-up' ); 1662 } else { 1663 $this.sInterval += $this.sPrevious - scrollCurrent; 1664 $this.sDirection = 'up'; 1665 1666 $this.StickyNav.addClass( 'sticky-up' ).removeClass( 'sticky-down' ); 1667 } 1668 1669 // Сonditions. 1670 if ( $this.sInterval > 150 && 'up' === $this.sDirection ) { 1671 $this.StickyNav.addClass( 'sticky-nav-slide-visible' ); 1672 1673 $( document ).trigger( 'sticky-nav-visible' ); 1674 } else { 1675 $this.StickyNav.removeClass( 'sticky-nav-slide-visible' ); 1676 1677 $( document ).trigger( 'sticky-nav-hide' ); 1678 } 1679 1680 if ( scrollCurrent > $this.StickyOffsetFull + 150 ) { 1681 $this.StickyNav.addClass( 'sticky-nav-slide' ); 1682 } else { 1683 $this.StickyNav.removeClass( 'sticky-nav-slide' ); 1684 } 1685 1686 // Show onload document. 1687 if ( $this.sInFirst && scrollCurrent > $this.StickyOffsetFull + 150 ) { 1688 $this.StickyNav.addClass( ' sticky-nav-slide-visible sticky-up' ); 1689 $this.StickyNav.addClass( 'sticky-nav-slide' ); 1690 1691 $( document ).trigger( 'sticky-nav-visible' ); 1692 1693 $this.sDirection = 'up'; 1694 $this.sInterval = 151; 1695 $this.sInFirst = false; 1696 } 1697 } else { 1698 // Сonditions. 1699 if ( scrollCurrent > $this.StickyOffset ) { 1700 $this.StickyNav.addClass( 'sticky-nav' ); 1701 1702 $( document ).trigger( 'sticky-nav-visible' ); 1703 } else { 1704 $this.StickyNav.removeClass( 'sticky-nav' ); 1705 $( document ).trigger( 'sticky-nav-hide' ); 1706 } 1707 } 1708 1709 $this.sPrevious = scrollCurrent; 1710 }, 1711 1712 /* 1713 * Smart multi-Level menu 1714 */ 1715 smartLevels: function( e ) { 1716 1717 var windowWidth = $( window ).width(); 1718 1719 // Reset Calc. 1720 $( '.navbar-nav li' ).removeClass( 'cs-mm-level' ); 1721 $( '.navbar-nav li' ).removeClass( 'cs-mm-position-left cs-mm-position-right' ); 1722 $( '.navbar-nav li .sub-menu' ).removeClass( 'cs-mm-position-init' ); 1723 1724 // Set Settings. 1725 $( '.navbar-nav > li.menu-item' ).not( '.cs-mega-menu' ).each( function( index, parent ) { 1726 var position = 'cs-mm-position-right'; 1727 var objPrevWidth = 0; 1728 1729 $( parent ).find( '.sub-menu' ).each( function( index, el ) { 1730 1731 // Reset child levels. 1732 $( el ).parent().next( 'li' ).addClass( 'cs-mm-level' ); 1733 1734 if ( $( el ).parent().hasClass( 'cs-mm-level' ) ) { 1735 1736 $( el ).parent().removeClass( 'cs-mm-level' ); 1737 1738 position = 'cs-mm-position-right'; 1739 objPrevWidth = 0; 1740 } 1741 1742 // Find out position items. 1743 var offset = $( el ).offset(); 1744 var objOffset = offset.left; 1745 1746 if ( 'cs-mm-position-right' === position && $( el ).outerWidth() + objOffset > windowWidth ) { 1747 position = 'cs-mm-position-left'; 1748 } 1749 1750 if ( 'cs-mm-position-left' === position && objOffset - ( $( el ).outerWidth() + objPrevWidth ) < 0 ) { 1751 position = 'cs-mm-position-right'; 1752 } 1753 1754 objPrevWidth = $( el ).outerWidth(); 1755 1756 $( el ).addClass( 'cs-mm-position-init' ).parent().addClass( position ); 1757 } ); 1758 1759 } ); 1760 }, 1761 1762 /* 1763 * Adapting nav bar for tablet 1764 */ 1765 adaptTablet: function( e ) { 1766 // Click outside. 1767 $( document ).on( 'touchstart', function( e ) { 1768 1769 if ( !$( e.target ).closest( '.navbar-nav' ).length ) { 1770 $( '.navbar-nav .menu-item-has-children' ).removeClass( 'submenu-visible' ); 1771 } else { 1772 $( e.target ).parents( '.menu-item' ).siblings().find( '.menu-item' ).removeClass( 'submenu-visible' ); 1773 $( e.target ).parents( '.menu-item' ).siblings().closest( '.menu-item' ).removeClass( 'submenu-visible' ); 1774 } 1775 } ); 1776 1777 $( '.navbar-nav .menu-item-has-children' ).each( function( e ) { 1778 1779 // Reset class. 1780 $( this ).removeClass( 'submenu-visible' ); 1781 1782 // Remove expanded. 1783 $( this ).find( '> a > .expanded' ).remove(); 1784 1785 // Add a caret. 1786 if ( 'ontouchstart' in document.documentElement ) { 1787 $( this ).find( '> a' ).append( '<span class="expanded"></span>' ); 1788 } 1789 1790 // Check touch device. 1791 $( this ).addClass( 'ontouchstart' in document.documentElement ? 'touch-device' : '' ); 1792 1793 $( '> a .expanded', this ).on( 'touchstart', function( e ) { 1794 e.preventDefault(); 1795 1796 $( this ).closest( '.menu-item-has-children' ).toggleClass( 'submenu-visible' ); 1797 } ); 1798 1799 1800 if ( '#' === $( '> a', this ).attr( 'href' ) ) { 1801 $( '> a', this ).on( 'touchstart', function( e ) { 1802 e.preventDefault(); 1803 1804 if ( !$( e.target ).hasClass( 'expanded' ) ) { 1805 $( this ).closest( '.menu-item-has-children' ).toggleClass( 'submenu-visible' ); 1806 } 1807 } ); 1808 } 1809 } ); 1810 } 1811 }; 1812 1813 } )(); 1814 1815 // Initialize. 1816 cscoNavigation.init(); 1817 1818 /** 1819 * Offcanvas Navigation 1820 */ 1821 1822 $( '.offcanvas-toggle, .site-overlay' ).on( 'click', function( e ) { 1823 e.preventDefault(); 1824 $( 'body' ).toggleClass( 'offcanvas-active' ); 1825 1826 // recalc sticky sidebar by simulating window resize 1827 // with a delay equal to the animation speed 1828 setTimeout( function() { $( window ).trigger( 'resize' ); }, 401 ); 1829 } ); 1830 1831 /** 1832 * Large Page Header 1833 */ 1834 1835 var pageHeader = $( '.page-header-large' ), 1836 pageHeaderOuter = $( '.overlay-outer', pageHeader ); 1837 1838 // Function for calculating Page Header height. 1839 1840 function setPageHeaderHeight() { 1841 1842 // Redefine variables. 1843 pageHeader = $( '.page-header-large' ); 1844 pageHeaderOuter = $( '.overlay-outer', pageHeader ); 1845 1846 // Define heights. 1847 var contentHeight = $( '.overlay-inner', pageHeader ).innerHeight(), 1848 offsetHeight = adminBarHeight + headerHeight, 1849 availableHeight = windowHeight - offsetHeight, 1850 viewPortHeight = '100vh'; 1851 1852 // Offset page header. 1853 pageHeader.css( 'margin-top', '-' + offsetHeight + 'px' ); 1854 pageHeaderOuter.css( 'padding-top', offsetHeight + 'px' ); 1855 1856 // Set the page header height. 1857 if ( availableHeight >= contentHeight ) { 1858 pageHeaderOuter.css( 'height', viewPortHeight ); 1859 } else { 1860 pageHeaderOuter.css( 'height', contentHeight + offsetHeight + 'px' ); 1861 } 1862 1863 // Return if overlay position is set to bottom. 1864 if ( $( 'body' ).hasClass( 'style-align-left' ) ) { 1865 return; 1866 } 1867 1868 // Add extra padding, if possible. 1869 if ( availableHeight - offsetHeight >= contentHeight ) { 1870 pageHeaderOuter.css( 'padding-bottom', offsetHeight + 'px' ); 1871 } else { 1872 pageHeaderOuter.css( 'padding-bottom', 0 ); 1873 } 1874 } 1875 1876 // Set initial height. 1877 1878 $( document ).ready( function() { 1879 setPageHeaderHeight(); 1880 } ); 1881 1882 // Recalculate height on resize. 1883 1884 $( window ).resize( function() { 1885 setPageHeaderHeight(); 1886 } ); 1887 1888 /** 1889 * Parallax 1890 */ 1891 1892 function initParallax() { 1893 1894 $( '.parallax-enabled .parallax:not(.parallax-video)' ).each( function() { 1895 1896 $( this ).jarallax( { 1897 speed: 0.8, 1898 } ); 1899 1900 } ); 1901 1902 var parallaxVideo = $( '.parallax-video' ), 1903 speed = 0.8; 1904 1905 if ( !$( 'body' ).hasClass( 'parallax-enabled' ) ) { 1906 speed = 1; 1907 } 1908 1909 $( parallaxVideo ).each( function() { 1910 1911 if ( !$( this ).hasClass( 'parallax' ) ) { 1912 speed = 1; 1913 } 1914 1915 $( this ).jarallax( { 1916 speed: speed,
1917 videoSrc: $( this ).attr( 'data-video' ), 1918 videoStartTime: $( this ).data( 'start' ), 1919 videoEndTime: $( this ).data( 'end' ), 1920 videoPlayOnlyVisible: true, 1921 } ); 1922 1923 } ); 1924 1925 } 1926 1927 $( document ).ready( function() { 1928 initParallax(); 1929 1930 $( 'body' ).on( 'post-load', function() { 1931 initParallax(); 1932 } ); 1933 1934 csco.addAction( 'canvas.components.serverSideRender.onChange', 'initParallax', function( props ) { 1935 initParallax(); 1936 } ); 1937 } ); 1938 1939 /** 1940 * Object Fit Images 1941 */ 1942 1943 jQuery( document ).ready( function( $ ) { 1944 objectFitImages(); 1945 } ); 1946 1947 ( function() { 1948 var viewport = $( window ).height(); 1949 var lastScrollY = 0; 1950 var ticking = false; 1951 var offset = 200; 1952 1953 var update = function() { 1954 var article = $( '.single-post .site-main > article' ); 1955 1956 if ( 1 === article.length ) { 1957 let articleHeight = $( article ).innerHeight(); 1958 1959 // Pagination points. 1960 let topPoint = $( article ).offset().top; 1961 let bottomPoint = topPoint + articleHeight + offset; 1962 1963 if ( lastScrollY > topPoint && lastScrollY + viewport < bottomPoint ) { 1964 $( '.post-pagination' ).addClass( 'pagination-visible' ); 1965 } else { 1966 $( '.post-pagination' ).removeClass( 'pagination-visible' ); 1967 } 1968 } 1969 1970 ticking = false; 1971 }; 1972 1973 var requestTick = function() { 1974 if ( !ticking ) { 1975 window.requestAnimationFrame( update ); 1976 ticking = true; 1977 } 1978 }; 1979 1980 var onProcess = function() { 1981 lastScrollY = window.scrollY; 1982 1983 requestTick(); 1984 }; 1985 1986 $( window ).on( 'scroll', onProcess ); 1987 $( window ).on( 'resize', onProcess ); 1988 $( window ).on( 'slider-refresh', onProcess ); 1989 1990 } )(); 1991 1992 /** 1993 * Responsive Embeds 1994 */ 1995 1996 ( function() { 1997 /** 1998 * Add max-width & max-height to <iframe> elements, depending on their width & height props. 1999 */ 2000 function initResponsiveEmbeds() { 2001 var proportion, parentWidth; 2002 2003 // Loop iframe elements. 2004 $( '.entry-content' ).find( 'figure iframe, p iframe' ).each( function( index, iframe ) { 2005 // Don't handle if the parent automatically resizes itself. 2006 if ( $( iframe ).closest( 'div' ).is( '[data-video], [data-video-start], [data-video-end]' ) ) { 2007 return; 2008 } 2009 // Only continue if the iframe has a width & height defined. 2010 if ( iframe.width && iframe.height ) { 2011 // Calculate the proportion/ratio based on the width & height. 2012 proportion = parseFloat( iframe.width ) / parseFloat( iframe.height ); 2013 // Get the parent element's width. 2014 parentWidth = parseFloat( window.getComputedStyle( iframe.parentElement, null ).width.replace( 'px', '' ) ); 2015 // Set the max-width & height. 2016 iframe.style.maxWidth = '100%'; 2017 iframe.style.maxHeight = Math.round( parentWidth / proportion ).toString() + 'px'; 2018 } 2019 } ); 2020 } 2021 2022 // Document ready. 2023 $( document ).ready( function() { 2024 initResponsiveEmbeds(); 2025 } ); 2026 2027 // Document resize. 2028 $( window ).on( 'resize', function() { 2029 initResponsiveEmbeds(); 2030 } ); 2031 2032 // Post load. 2033 $( 'body' ).on( 'post-load', function() { 2034 initResponsiveEmbeds(); 2035 } ); 2036 2037 // Run on initial load. 2038 initResponsiveEmbeds(); 2039 } )(); 2040 2041 /** ---------------------------------------------------------------------------- 2042 * Color Scheme Toogle */ 2043 2044 var cscoDarkMode = {}; 2045 2046 ( function() { 2047 var $this; 2048 2049 cscoDarkMode = { 2050 2051 /** Initialize */ 2052 init: function( e ) { 2053 $this = cscoDarkMode; 2054 2055 if ( 'undefined' === typeof csSchemeLocalize ) { 2056 return; 2057 } 2058 2059 // Init events. 2060 $this.events( e ); 2061 }, 2062 2063 /** Events */ 2064 events: function( e ) { 2065 if ( $( 'body' ).hasClass( 'wp-admin' ) ) { 2066 return; 2067 } 2068 2069 // DOM Load 2070 window.addEventListener( 'load', function( e ) { 2071 $this.initMode( e ); 2072 } ); 2073 2074 window.matchMedia( '(prefers-color-scheme: dark)' ).addListener( ( e ) => { 2075 $this.initMode( e ); 2076 } ); 2077 2078 // Switch 2079 $( document ).on( 'click', '.cs-site-scheme-toggle', function( e ) { 2080 $this.changeMode( e ); 2081 } ); 2082 }, 2083 2084 /** Init Mode */ 2085 initMode: function( e ) { 2086 2087 // Get system scheme. 2088 var systemSchema = 'default'; 2089 2090 if ( window.matchMedia && window.matchMedia( '(prefers-color-scheme: dark)' ).matches ) { 2091 systemSchema = 'dark'; 2092 } 2093 2094 csSetCookie( '_color_system_schema', systemSchema, { expires: 2592000 } ); 2095 2096 // Set site scheme. 2097 var siteScheme = 'default'; 2098 2099 switch ( csSchemeLocalize.siteSchemeMode ) { 2100 case 'dark': 2101 siteScheme = 'dark'; 2102 break; 2103 case 'light': 2104 siteScheme = 'default'; 2105 break; 2106 case 'system': 2107 siteScheme = systemSchema; 2108 break; 2109 } 2110 2111 if ( csSchemeLocalize.siteSchemeToogle ) { 2112 if ( 'default' === csGetCookie( '_color_schema' ) ) { 2113 siteScheme = 'default'; 2114 } 2115 if ( 'dark' === csGetCookie( '_color_schema' ) ) { 2116 siteScheme = 'dark'; 2117 } 2118 } 2119 2120 // Change site scheme 2121 if ( siteScheme !== $( 'html' ).attr( 'data-scheme' ) ) { 2122 $this.changeScheme( siteScheme, false ); 2123 } 2124 }, 2125 2126 /** Change Mode */ 2127 changeMode: function( e ) { 2128 if ( 'dark' === $( 'html' ).attr( 'data-scheme' ) ) { 2129 $this.changeScheme( 'default', true ); 2130 } else { 2131 $this.changeScheme( 'dark', true ); 2132 } 2133 }, 2134 2135 /** Change Scheme */ 2136 changeScheme: function( scheme, cookie ) { 2137 $( 'html' ).addClass( 'cs-scheme-toggled' ); 2138 2139 $( 'html' ).attr( 'data-scheme', scheme ); 2140 2141 if ( 'dark' === scheme ) { 2142 document.getElementById( 'csco-customizer-output-dark-styles' ).removeAttribute( 'media' ); 2143 document.getElementById( 'csco-customizer-output-default-styles' ).setAttribute( 'media', "max-width: 1px" ); 2144 } else { 2145 document.getElementById( 'csco-customizer-output-default-styles' ).removeAttribute( 'media' ); 2146 document.getElementById( 'csco-customizer-output-dark-styles' ).setAttribute( 'media', "max-width: 1px" ); 2147 } 2148 2149 if ( cookie ) { 2150 csSetCookie( '_color_schema', scheme, { expires: 2592000 } ); 2151 csSetCookie( '_color_system_schema', null, { expires: 2592000 } ); 2152 } 2153 2154 setTimeout( () => { 2155 $( 'html' ).removeClass( 'cs-scheme-toggled' ); 2156 }, 100 ); 2157 } 2158 }; 2159 2160 } )(); 2161 2162 // Initialize. 2163 cscoDarkMode.init(); 2164 2165 /** 2166 * Fullscreen Search 2167 */ 2168 2169 $( 'a[href="#search"]' ).on( 'click', function( event ) { 2170 event.preventDefault(); 2171 $( '#search' ).addClass( 'open' ); 2172 $( '#search input[type="search"]' ).focus(); 2173 $( 'body' ).addClass( 'search-open' ); 2174 } ); 2175 2176 $( '#search, #search button.close' ).on( 'click keyup', function( event ) { 2177 if ( event.target === this || event.target.className === 'close' || event.keyCode === 27 ) { 2178 event.preventDefault(); 2179 $( this ).removeClass( 'open' ); 2180 $( 'body' ).removeClass( 'search-open' ); 2181 } 2182 } ); 2183 2184 /** 2185 * Sliders 2186 */ 2187 2188 // Simple 2189 2190 function initSliderSimple() { 2191 2192 var sliderSimple = $( '.gallery-type-slider' ); 2193 2194 function onTranslated( event ) { 2195 setTimeout( function() { 2196 $( window ).trigger( 'slider-refresh' ); 2197 }, 1000 ); 2198 } 2199 2200 function onInitialized( event ) { 2201 $( window ).trigger( 'slider-refresh' ); 2202 } 2203 2204 sliderSimple.each( function() { 2205 2206 $( this ).wrapInner( '<div class="owl-carousel"></div>' ); 2207 2208 $( this ).append( '<div class="owl-arrows"></div>' ); 2209 $( this ).append( '<div class="owl-dots"></div>' ); 2210 2211 var container = this, 2212 owl = $( this ).find( '.owl-carousel' ); 2213 2214 if ( $( owl ).hasClass( 'owl-loaded' ) ) { 2215 return; 2216 } 2217 2218 $( owl ).imagesLoaded( function() { 2219 2220 owl.owlCarousel( { 2221 dragEndSpeed: 250, 2222 smartSpeed: 250, 2223 autoHeight: true, 2224 items: 1, 2225 margin: 0, 2226 navText: [ 2227 '<div class="button button-primary button-effect"><span><i class="cs-icon cs-icon-chevron-up"></i></span><span>' + translation.previous + '</span></div>', 2228 '<div class="button button-primary button-effect"><span><i class="cs-icon cs-icon-chevron-up"></i></span><span>' + translation.next + '</span></div>' 2229 ], 2230 navContainer: $( '.owl-arrows', container ), 2231 dots: true, 2232 dotsContainer: $( '.owl-dots', container ), 2233 rtl: rtl, 2234 responsive: { 2235 0: { 2236 nav: false, 2237 }, 2238 1020: { 2239 nav: true, 2240 } 2241 }, 2242 onInitialized: onInitialized, 2243 onTranslated: onTranslated, 2244 } ); 2245 2246 } ); 2247 2248 } ); 2249 } 2250 2251 $( document ).ready( function() { 2252 initSliderSimple(); 2253 $( document.body ).on( 'post-load', function() { 2254 initSliderSimple(); 2255 } ); 2256 2257 csco.addAction( 'canvas.components.serverSideRender.onChange', 'posts-init-slider', function( props ) { 2258 if ( 'canvas/posts' === props.block ) { 2259 initSliderSimple(); 2260 } 2261 } ); 2262 } ); 2263 2264 // Flip 2265 2266 function initSliderFlip() { 2267 2268 var sliderFlip = $( '.slider-flip' ); 2269 2270 function sliderFlipInitialized() { 2271 $( window ).trigger( 'slider-refresh' ); 2272 } 2273 2274 sliderFlip.each( function() { 2275 2276 var container = this, 2277 owl = $( '.owl-carousel', this ), 2278 effectOut = 'flipOut', 2279 effectIn = 'flipIn'; 2280 2281 if ( isIE ) { 2282 effectOut = 'fadeOut'; 2283 effectIn = 'fadeIn'; 2284 } 2285 2286 $( owl ).imagesLoaded( function() { 2287 2288 owl.owlCarousel( { 2289 dragEndSpeed: 250, 2290 smartSpeed: 250, 2291 autoHeight: true, 2292 animateOut: effectOut, 2293 animateIn: effectIn, 2294 items: 1, 2295 margin: 0, 2296 dots: true, 2297 dotsContainer: $( '> .owl-dots', container ), 2298 rtl: rtl, 2299 onInitialized: sliderFlipInitialized, 2300 } ); 2301 2302 } ); 2303 2304 } ); 2305 2306 } 2307 2308 $( document ).ready( function() { 2309 initSliderFlip(); 2310 2311 $( document.body ).on( 'post-load', function() { 2312 initSliderFlip(); 2313 } ); 2314 2315 csco.addAction( 'canvas.components.serverSideRender.onChange', 'initNavMenu', function( props ) { 2316 initSliderFlip(); 2317 } ); 2318 } ); 2319 2320 /** 2321 * Sticky Post Sidebar 2322 */ 2323 2324 var stickyPostElements = $( '.sticky-sidebar-enabled .post-sidebar .pk-s
2324hare-buttons-wrap' ); 2325 2326 $( document ).ready( function() { 2327 2328 $( document ).on( 'sticky-nav-visible', function() { 2329 var navBarHeight = $( '.navbar-primary' ).innerHeight(); 2330 2331 $( stickyPostElements ).css( 'top', 60 + navBarHeight + 'px' ); 2332 } ); 2333 2334 $( document ).on( 'sticky-nav-hide', function() { 2335 $( stickyPostElements ).css( 'top', 60 + 'px' ); 2336 } ); 2337 2338 } ); 2339 2340 /** 2341 * Sticky Sidebar 2342 */ 2343 2344 var stickyElements = []; 2345 2346 stickyElements.push( '.sticky-sidebar-enabled.stick-to-top .sidebar-1' ); 2347 stickyElements.push( '.sticky-sidebar-enabled.stick-last .sidebar .widget:last-child' ); 2348 stickyElements.push( '.cnvs-block-section-sidebar-sticky-top .cnvs-block-section-sidebar-inner' ); 2349 stickyElements.push( '.cnvs-block-section-sidebar-sticky-top-last-block .cnvs-block-section-sidebar-inner > *:last-child' ); 2350 2351 $( document ).ready( function() { 2352 2353 // Sticky sidebar for mozilla. 2354 if ( navigator.userAgent.toLowerCase().indexOf( 'firefox' ) > -1 ) { 2355 stickyElements.push( '.sticky-sidebar-enabled.stick-to-bottom .sidebar-1' ); 2356 } 2357 2358 // Join elements. 2359 stickyElements = stickyElements.join( ',' ); 2360 2361 // Sticky nav visible. 2362 $( document ).on( 'sticky-nav-visible', function() { 2363 var navBarHeight = $( '.navbar-primary' ).innerHeight(); 2364 2365 $( stickyElements ).css( 'top', 32 + navBarHeight + 'px' ); 2366 } ); 2367 2368 // Sticky nav hide. 2369 $( document ).on( 'sticky-nav-hide', function() { 2370 $( stickyElements ).css( 'top', 32 + 'px' ); 2371 } ); 2372 2373 } ); 2374 2375 // Init slider for powerkit twitter. 2376 2377 function initTwitterSlider() { 2378 $( '.pk-twitter-slider, .cnvs-block-twitter-layout-slider' ).each( function() { 2379 if ( $( this ).hasClass( 'init-slider' ) ) { 2380 return; 2381 } 2382 2383 $( this ).addClass( 'init-slider' ); 2384 2385 // Wrap tweet of owl-slide. 2386 $( this ).find( '.pk-twitter-tweet' ).wrap( '<div class="owl-slide"></div>' ); 2387 2388 // Wrap tweets of owl-carousel. 2389 $( this ).find( '.pk-tweets' ).wrapInner( '<div class="owl-carousel"></div>' ); 2390 2391 // Add owl dots. 2392 $( this ).find( '.pk-tweets' ).append( '<div class="owl-dots"></div>' ); 2393 2394 // Wrap tweets of slider-container. 2395 $( this ).find( '.pk-tweets' ).wrapInner( '<div class="slider-container slider-flip"></div>' ); 2396 } ); 2397 } 2398 2399 $( document ).ready( function() { 2400 initTwitterSlider(); 2401 initSliderFlip(); 2402 2403 $( document.body ).on( 'post-load', function() { 2404 initTwitterSlider(); 2405 initSliderFlip(); 2406 } ); 2407 2408 csco.addAction( 'canvas.components.serverSideRender.onChange', 'initTwitterSlider', function( props ) { 2409 initTwitterSlider(); 2410 initSliderFlip(); 2411 } ); 2412 } ); 2413 2414 $( document ).ready( function() { 2415 $( document.body ).on( 'editor-render', function() { 2416 $( '.owl-carousel' ).trigger( 'refresh.owl.carousel' ); 2417 } ); 2418 } ); 2419 2420 /** 2421 * Product Thumbnail Slider 2422 */ 2423 2424 var owlProductGallery = $( '.product-gallery-wrapper' ); 2425 2426 owlProductGallery.each( function() { 2427 2428 var container = this; 2429 var owl = $( '.owl-carousel', this ); 2430 2431 $( owl ).imagesLoaded( function() { 2432 2433 owl.owlCarousel( { 2434 dragEndSpeed: 250, 2435 smartSpeed: 250, 2436 autoHeight: true, 2437 dots: true, 2438 dotsContainer: $( '> .owl-dots', container ), 2439 rtl: rtl, 2440 responsive: { 2441 0: { 2442 items: 1, 2443 margin: 0, 2444 }, 2445 760: { 2446 items: 2, 2447 margin: 15, 2448 }, 2449 1020: { 2450 items: 3, 2451 margin: 15, 2452 }, 2453 1240: { 2454 items: 4, 2455 margin: 15, 2456 } 2457 }, 2458 } ); 2459 2460 } ); 2461 2462 } ); 2463 2464} )( 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.