jQuery(document).ready(function($) {
const { ajaxUrl, themeColor, _wpnonce: wpnonce, ticker, headerMarginBottom = 40, isRtl } = blogPostXObject,
globalPrevIcon = blogPostXObject.globalPrevIcon.value || 'fa-solid fa-chevron-left',
globalNextIcon = blogPostXObject.globalNextIcon.value || 'fa-solid fa-chevron-right',
isLoggedIn = $('body').hasClass('admin-bar'),
wpadminbar = $('body #wpadminbar').height()
/**
* Calculate header height and set margin top
*/
function calculateHeaderHeight() {
let header = $( 'body header#masthead' ),
element = $( 'body .row.blog-postx-single-header' ),
height = isLoggedIn ? header.outerHeight( true ) + wpadminbar : header.outerHeight( true ),
breadcrumbHeight = $( 'body .blog-postx-container.breadcrumb-wrapper' ).outerHeight( true )
if( breadcrumbHeight && $( '.single-post--layout-seven').length ) height += breadcrumbHeight
if( $( '.single-post--layout-three').length ) {
element = $( 'body .blog-postx-main-wrap' )
if( $(window).width() <= 940 ) {
height = headerMarginBottom.tablet.bottom
} else if( $(window).width() <= 610 ) {
height = headerMarginBottom.smartphone.bottom
} else {
height = headerMarginBottom.desktop.bottom
}
}
element.css({
'margin-top': `-${ height }px`
})
}
/**
* MARK: SINGLE LAYOUT SEVEN
*/
let singleLayoutSeven = $( 'body.single.single-post--layout-seven, body.single.single-post--layout-three' )
if( singleLayoutSeven.length ) {
$( window ).on( 'resize', function(){
calculateHeaderHeight()
})
calculateHeaderHeight()
}
$(window).on("resize", function() {
let selector = $('body')
if( $(window).width() <= 426 ) {
selector.removeClass( 'is-desktop is-tablet' ).addClass( 'is-smartphone' )
} else if( $(window).width() <= 769 ) {
selector.removeClass( 'is-desktop is-smartphone' ).addClass( 'is-tablet' )
} else {
selector.removeClass( 'is-smartphone is-tablet' ).addClass( 'is-desktop' )
}
})
// top date time
var timeElement = $( ".top-date-time .time" )
if( timeElement.length > 0 ) {
setInterval(function() {
timeElement.html(new Date().toLocaleTimeString())
},1000);
}
// handle preloader
function blogPostXPreloader( timeOut = 3000 ) {
setTimeout(function() {
$('body .blog_postx_loading_box').hide();
}, timeOut);
}
blogPostXPreloader()
$(window).on('unload', function(){
$.removeCookie('showPreloader', { path: '/' })
})
// breadcrumb separator
var breadcrumbSeparatorContainer = $('.blog-postx-breadcrumb-element')
if( breadcrumbSeparatorContainer.length > 0 ) {
var listElement = breadcrumbSeparatorContainer.find('li.trail-item')
var elementToAppend = ''
listElement.append(elementToAppend)
}
// header - normal search
var searchSectionContainer = $('.search-wrap')
if( searchSectionContainer.length > 0 ) {
searchSectionContainer.on( 'click', '.search-trigger', function(){
var _this = $(this)
_this.siblings().show()
_this.parent().addClass('toggled')
_this.siblings().find('.search-field').focus()
onElementOutsideClick( _this.parent(), function(){
_this.parent().removeClass( 'toggled' )
_this.siblings().find( '.search-form-close' ).click()
$( 'body' ).removeClass( 'search-active' )
})
if( ! _this.parent().hasClass( 'search-type--default' ) ) $( 'body' ).addClass( 'search-active' )
})
// close search popup
var closeButton = searchSectionContainer.find('.search-form-wrap')
if( closeButton.length > 0 ) {
closeButton.on('click', '.search-form-close', function(){
var _thisButton = $(this), parentElement = _thisButton.parents('.search-wrap')
parentElement.removeClass('toggled')
_thisButton.parents( '.search-form-wrap' ).hide()
$('body').removeClass( 'search-active' )
})
}
// on ESC button click
$(document).on('keydown', function( event ){
if( event.keyCode == 27 ) {
closeButton.hide()
closeButton.parent().removeClass('toggled')
}
})
}
// check for dark mode drafts
if( localStorage.getItem( "themeMode" ) != null ) {
if( localStorage.getItem("themeMode") == "dark" ) {
$('body').addClass( 'blog-postx-dark-mode' ).removeClass('blog-postx-light-mode')
} else {
$('body').addClass( 'blog-postx-light-mode' ).removeClass('blog-postx-dark-mode')
}
}
// header - theme mode
var themeModeContainer = $('.mode-toggle-wrap')
if( themeModeContainer.length > 0 ) {
themeModeContainer.on( 'click', '.mode-toggle', function(){
var _this = $(this), bodyElement = _this.parents('body')
if( bodyElement.hasClass('blog-postx-dark-mode') ) {
localStorage.setItem( 'themeMode', 'light' )
bodyElement.removeClass('blog-postx-dark-mode').addClass('blog-postx-light-mode')
} else {
localStorage.setItem( 'themeMode', 'dark' )
bodyElement.removeClass('blog-postx-light-mode').addClass('blog-postx-dark-mode')
}
})
}
// header - canvas menu
var canvasMenuContainer = $('.blog-postx-canvas-menu')
if( canvasMenuContainer.length > 0 ) {
canvasMenuContainer.on( 'click', '.canvas-menu-icon', function() {
var _this = $(this), bodyElement = _this.parents('body')
bodyElement.toggleClass('blog-postx-model-open');
onElementOutsideClick( _this.siblings(), function(){
bodyElement.removeClass( 'blog-postx-model-open' )
})
})
}
// on element outside click function
function onElementOutsideClick( currentElement, callback ) {
$(document).mouseup(function( e ) {
var container = $(currentElement);
if ( !container.is(e.target) && container.has(e.target).length === 0) callback();
})
}
// back to top script
if( $( "#blog-postx-scroll-to-top" ).length ) {
var scrollContainer = $( "#blog-postx-scroll-to-top" );
$(window).scroll(function() {
if ( $(this).scrollTop() > 500 ) {
scrollContainer.addClass('show');
} else {
scrollContainer.removeClass('show');
}
});
scrollContainer.on( 'click', '.scroll-to-top-wrapper, .icon-text', function(event) {
event.preventDefault();
// Animate the scrolling motion.
$("html, body").animate({scrollTop:0},"slow");
});
}
// main header sticky
if( blogPostXObject.headerSticky ) {
let sidebarSelector = $('aside#secondary.widget-area')
let allStickyRows = $('header#masthead .row-sticky')
let dynamicTopValue = 0
allStickyRows.each(function(){
let _this = $(this)
dynamicTopValue += _this.outerHeight()
})
if( isLoggedIn ) dynamicTopValue += wpadminbar
$(window).on('scroll', function(){
if( $('header#masthead').hasClass( 'fixed--on' ) && $('body').hasClass( 'blog-postx-stickey-sidebar--enabled' ) ) {
sidebarSelector.css({
'top': dynamicTopValue + 'px'
})
} else {
sidebarSelector.css({
'top': ( isLoggedIn ) ? `${ wpadminbar }px` : '0px'
})
}
var scroll = $(window).scrollTop()
var mainHeaderContainer = $('header.site-header')
if( scroll >= 200 ) {
mainHeaderContainer.addClass('header-sticky--enabled').removeClass('header-sticky--disabled')
} else {
mainHeaderContainer.addClass('header-sticky--disabled').removeClass('header-sticky--enabled')
}
})
}
// cursor animation
var cursorContainer = $('.blog-postx-cursor')
if( cursorContainer.length > 0 ) {
$(document).on( 'mousemove', function( event ){
cursorContainer[0].style.top = 'calc('+ event.pageY +'px - 15px)'
cursorContainer[0].style.left = 'calc('+ event.pageX +'px - 15px)'
})
var selector = 'a, button, input[type="submit"], #blog-postx-scroll-to-top .icon-text, #blog-postx-scroll-to-top .icon-holder, .video-playlist-wrap .playlist-items-wrap .video-item, .thumb-video-highlight-text .thumb-controller, .pagination.pagination-type--ajax-load-more, .blog-postx-widget-loader .load-more, .mode-toggle-wrap .mode-toggle, .blog-postx-canvas-menu .canvas-menu-icon, .blog-postx-table-of-content .toc-fixed-icon, .blog-postx-social-share.show-on-click'
$( selector ).on( 'mouseover', function(){
$( cursorContainer ).addClass( 'isActive' )
})
$( selector ).on( 'mouseout', function(){
$( cursorContainer ).removeClass( 'isActive' )
})
}
/**
* Initialize Slick js
*
* @since 1.0.0
*/
const blogPostxInitializeSlick = ( props, returnInstance = false ) => {
let { responsive = [], dots = false, arrows = true, fade = false, infinite = true, speed = 300, autoplay = false, autoplaySpeed = 3000, slidesToShow = 1, slidesToScroll = 1, prevIcon = globalPrevIcon, nextIcon = globalNextIcon, focusOnSelect = false, selector, ...remains } = props,
slickObject = {
dots,
arrows,
infinite,
speed,
autoplay,
autoplaySpeed,
slidesToShow,
slidesToScroll,
fade,
focusOnSelect,
rtl: isRtl === '1' ? true : false,
prevArrow: ``,
nextArrow: ``,
responsive: [
{
breakpoint: 1100,
settings: {
slidesToShow: 3,
},
},
{
breakpoint: 940,
settings: {
slidesToShow: 2,
},
},
{
breakpoint: 700,
settings: {
slidesToShow: 1,
},
}
],
...remains
}
if( ! responsive ) slickObject.responsive = []
let slickInstance = $( selector ).slick( slickObject )
if( returnInstance ) return slickInstance;
}
/**
* Main Banner JS
*
* @since 1.0.0
*/
var fullWidthBannerContainer = $('#blog-postx-main-banner-section')
if( fullWidthBannerContainer.length > 0 ) {
blogPostxInitializeSlick({
arrows: true,
fade: true,
infinite: true,
autoplay: false,
speed: 500,
responsive: false,
selector: fullWidthBannerContainer.find( '.main-banner-wrap' )
})
}
/**
* Carousel JS
*
* @since 1.0.0
*/
var carouselContainer = $('.blog-postx-carousel-section')
if( carouselContainer.length > 0 ) {
let carouselSlickObject = {
arrows: true,
infinite: true,
speed: 500,
slidesToScroll: 1,
slidesToShow: 3
}
carouselSlickObject.selector = carouselContainer.find( '.carousel-wrap' )
blogPostxInitializeSlick({
...carouselSlickObject,
gap: 24
})
}
/**
* Carousel Posts JS
*
* @since 1.0.0
*/
var cpWidgets = $( ".widget_blog_postx_carousel_widget" )
cpWidgets.each(function() {
var _this = $(this), parentWidgetContainerId = _this.parents( ".widget.widget_blog_postx_carousel_widget" ).attr( "id" ), parentWidgetContainer
if( typeof parentWidgetContainerId != 'undefined' ) {
parentWidgetContainer = $( "#" + parentWidgetContainerId )
var ppWidget = parentWidgetContainer.find( ".carousel-posts-wrap" );
} else {
var ppWidget = _this;
}
if( ppWidget.length > 0 ) {
blogPostxInitializeSlick({
autoplay: true,
arrows: true,
infinite: true,
vertical: false,
selector: _this.find( '.carousel-posts-wrap' ),
responsive: false,
fade: true
})
}
})
// handle the post gallery post format
var postGalleryElems = $("body #primary article.format-gallery .post-thumbnail-wrapper")
if( postGalleryElems.length > 0 ) {
postGalleryElems.each(function() {
let _this = $( this )
blogPostxInitializeSlick({ selector: _this.find( '.thumbnail-gallery-slider' ), responsive: false })
})
}
/**
* Responsive header builder toggle button
*
* @since 1.0.0
*/
var responsiveHeaderBuilderWrapper = $('.bb-bldr--responsive')
if( responsiveHeaderBuilderWrapper.length > 0 ) {
let toggleButton = responsiveHeaderBuilderWrapper.find( '.toggle-button-wrapper' )
toggleButton.on("click", function() {
let _this = $(this)
_this.parents( '.bb-bldr-row' ).siblings( '.bb-bldr-row.mobile-canvas' ).toggleClass( 'open' )
})
}
const progressBar = {
init: function() {
this.scrollEvent()
},
selectors: {
'scroll-to-top': {
'selector': '#blog-postx-scroll-to-top.display--fixed .scroll-to-top-wrapper',
'property': 'background',
'usesBackground': true
},
'single-progress': {
'selector': 'body.page .single-progress, body.single .single-progress, body.archive .single-progress, body.search .single-progress',
'property': 'width',
'usesBackground': false
}
},
totalScrollableArea: $('body')[0].clientHeight,
sizeOfScrollBar: window.innerHeight,
scrollEvent: function() {
let self = this
$(window).on("scroll", function(){
let scrollBarPosition = window.scrollY
if( scrollBarPosition < 1 ) { /* Hide when Top is reached */
$( self.selectors['single-progress'].selector ).hide()
} else {
$( self.selectors['single-progress'].selector ).show()
}
let width = self.getWidth( scrollBarPosition )
if( self.isBottom() ) width = 100 /* Run when bottom is reached */
let background = 'conic-gradient('+ themeColor +' '+ width +'%, transparent '+ width +'%)'
$( 'body.single .post-read-time-wrap' ).attr( 'style', 'background: ' + background )
Object.entries( self.selectors ).forEach(( current ) => {
const [ ID, selectorValues ] = current
const { selector, property, usesBackground } = selectorValues
if( usesBackground ) {
$( selector ).attr( 'style', property + ': ' + background )
} else {
$( selector ).css( property, width + '%' )
}
})
})
},
getWidth: function( scrollBarPosition ) {
let width = ( ( ( scrollBarPosition + this.sizeOfScrollBar ) / this.totalScrollableArea ) * 100 )
return Math.round( width );
},
isBottom: function() {
if ( $(window).scrollTop() + $(window).height() >= $(document).height()) return true
}
}
progressBar.init()
// header sticky
const { headerSticky } = blogPostXObject
if( headerSticky ) {
$( window ).on('scroll',function() {
var scroll = $( this ).scrollTop();
let selector = $('body header.site-header')
if( scroll > 50 ) {
selector.removeClass( 'fixed--off' ).addClass( 'fixed--on' )
} else {
$( selector ).addClass("header-sticky--disabled fixed--off").removeClass( 'fixed--on' );
}
});
}
/**
* Ticker News
*
* @since 1.0.0
*/
let tickerNewsContainer = $( '.blog-postx-ticker-news' )
if( tickerNewsContainer.length > 0 ) {
let { direction } = ticker
let marqueeInstance = tickerNewsContainer.find( ".ticker-item-wrap" ).marquee({
duration: 15000,
gap: 20,
delayBeforeStart: 0,
direction: ( direction ? 'right' : 'left' ),
duplicated: true,
startVisible: true,
pauseOnHover: true
});
tickerNewsContainer.on( "click", ".controller-icon", function() {
let _this = $( this ),
parent = _this.parent();
_this.find( 'i' ).removeClass().addClass( parent.hasClass( 'playing' ) ? 'fa-solid fa-pause' : 'fa-solid fa-play' )
parent.toggleClass( 'playing paused' )
marqueeInstance.marquee( "toggle" )
})
}
$( '.video-overlay' ).on( 'click', function(){
let _this = $( this ),
iframe = _this.siblings( 'iframe' ),
parent = _this.parents( '.blog-postx-article-inner' ),
src = iframe.attr( 'src' ),
newSrc = '';
_this.remove()
parent.toggleClass( 'playing' )
if( parent.hasClass( 'playing' ) ) {
newSrc = src + '&autoplay=1';
} else {
newSrc = src.replace(/[?&]autoplay=1/, '');
}
iframe.attr( 'src', newSrc )
})
/**
* Sticky Posts
*/
const StickyPosts = {
container: $( '.blog-postx-sticky-posts' ),
init: function() {
if( this.container.length ) {
this.click()
this.zIndex()
}
},
click: function(){
let self = this
this.container.on( 'click', '.indicator.active', function(){
let _this = $( this )
_this.removeClass( 'active' ).siblings().addClass( 'active' )
_this.parent().siblings( '.post.append' ).toggleClass( 'hide' )
if( ! _this.parents( '.post-list' ).hasClass( 'added' ) ) self.ajaxCall({
author: self.container.data( 'author' ),
date: self.container.data( 'date' )
})
})
},
/* Adding z-index */
zIndex: function(){
let initialZindex = this.container.find( '.post' ).length
this.container.find( '.post' ).each(function(){
let _this = $( this )
_this.css({
'z-index': initialZindex--
})
})
},
ajaxCall: function( params ){
let self = this
$.ajax({
method: 'POST',
url: ajaxUrl,
data: {
action: 'blog_postx_sticky_posts_ajax_call',
_wpnonce: wpnonce,
...params
},
beforeSend: function() {
self.container.find( '.post-list' ).addClass( 'retrieving-stories' )
},
success: function( result ) {
let { success, data } = result
if( success ) {
self.container.find( '.post:last' ).after( data )
self.container.find( '.post-list' ).addClass( 'added' )
self.zIndex()
}
},
complete: function() {
self.container.find( '.post-list' ).removeClass( 'retrieving-stories' )
}
})
}
}
StickyPosts.init()
/**
* Web Stories
*/
const WebStories = {
container: $( '.blog-postx-web-stories' ),
activeStoryId: null,
allStoryIds: [],
activeStoryCount: null,
storiesWrap: $( '.blog-postx-web-stories .stories-wrap' ),
innerStories: $( '.blog-postx-web-stories .inner-stories-wrap .inner-stories' ),
actionButtons: $( '.blog-postx-web-stories .action-buttons' ),
isPaused: false,
outsideClickEnabled: false,
init: function(){
if( this.container.length ) {
this.outsideClickEnabled = this.container.hasClass( 'outside-click--enabled' )
this.countClick();
this.storyClick();
this.close();
this.pause();
this.closePopupOnESCPress();
$( 'body' ).css({
'--expandWidth-timer': `${ 5000 / 1000 }s`
})
let self = this
this.container.find( '.story' ).each(function(){
let _this = $( this )
self.allStoryIds = [ ...self.allStoryIds, _this.data( 'id' ) ]
})
}
},
countClick: function(){
this.container.on( 'click', '.story .story-count', function( event ) {
event.stopPropagation()
})
},
storyClick: function() {
let self = this
this.container.on( 'click', '.story', function() {
let _this = $( this ),
storyId = _this.data( 'id' ),
count = _this.data( 'count' )
self.innerStories.parent().addClass( `cat-${ storyId }` )
$( 'body' ).addClass( 'web-stories--open' )
self.activeStoryId = storyId
self.activeStoryCount = count
if( ! self.container.hasClass( 'added' ) ) {
self.ajaxCall();
} else {
blogPostxInitializeSlick({
selector: self.storiesWrap,
arrows: true,
fade: true,
infinite: true,
appendArrows: self.container.find( '.story-arrows' ),
pauseOnFocus: false,
pauseOnHover: false
})
self.innerStories.parent().addClass( 'open' )
let storyWrap = self.innerStories.find( `.inner-story-wrap[data-id="${ self.activeStoryId }"]` )
self.initSecondarySlider( storyWrap );
self.addAmbient( storyWrap.find( '.story-cover img' ) )
self.actionButtons.appendTo( storyWrap.parent() )
self.container.find( '.story-arrows' ).appendTo( storyWrap.parent() )
self.container.addClass( 'added' )
}
self.afterChange();
if( _this.is( ':first-child' ) ) {
self.container.find( '.slider-arrow.prev' ).addClass( 'disabled' )
} else {
self.container.find( '.slider-arrow.prev' ).removeClass( 'disabled' )
}
if( _this.is( ':last-child' ) ) {
self.container.find( '.slider-arrow.next' ).addClass( 'disabled' )
} else {
self.container.find( '.slider-arrow.next' ).removeClass( 'disabled' )
}
});
},
afterChange: function(){
let self = this
self.storiesWrap.on( 'afterChange', function( a, slick, currentSlide ){
let slide = $( slick.$slides.get( currentSlide ) )
self.innerStories.find( `.inner-story-wrap[data-id="${ self.activeStoryId }"]` ).slick( 'unslick' )
self.activeStoryId = slide.data( 'id' )
let storyWrap = self.innerStories.find( `.inner-story-wrap[data-id="${ self.activeStoryId }"]` )
self.initSecondarySlider( storyWrap );
self.actionButtons.appendTo( storyWrap.parent() )
self.container.find( '.story-arrows' ).appendTo( storyWrap.parent() )
self.innerStories.parent().removeClass(( index, className ) => {
return ( className.match( /\bcat-\S+/g ) || [] ).join( ' ' )
}).addClass( `cat-${ self.activeStoryId }` )
if( currentSlide === 0 ) {
self.container.find( '.slider-arrow.prev' ).addClass( 'disabled' )
} else {
self.container.find( '.slider-arrow.prev' ).removeClass( 'disabled' )
}
if( currentSlide === ( slick.slideCount - 1 ) ) {
self.container.find( '.slider-arrow.next' ).addClass( 'disabled' )
} else {
self.container.find( '.slider-arrow.next' ).removeClass( 'disabled' )
}
self.afterLastSlide()
self.addAmbient( storyWrap.find( '.story-cover img' ) )
})
},
afterLastSlide: function(){
let self = this
self.innerStories.find( `.inner-story-wrap[data-id="${ self.activeStoryId }"]` ).on( 'afterChange', function( a, slick, currentSlide ){
let isLastSlide = ( currentSlide === ( slick.slideCount - slick.options.slidesToShow ) ),
slide = $( slick.$slides.get( currentSlide ) )
if( slide.hasClass( 'no-thumb' ) ) {
slide.parents( '.inner-story' ).addClass( 'no-thumb' )
} else {
slide.parents( '.inner-story' ).removeClass( 'no-thumb' )
}
self.addAmbient( slide.find( '.story-cover img' ) )
if( isLastSlide ) {
setTimeout(() => {
self.storiesWrap.slick( 'slickNext' )
}, 5000 - 600 );
}
})
},
ajaxCall: function(){
let self = this
$.ajax({
method: 'POST',
url: ajaxUrl,
data: {
action: 'blog_postx_stories_ajax_call',
_wpnonce: wpnonce,
storyIds: self.allStoryIds,
count: self.activeStoryCount
},
beforeSend: function() {
self.storiesWrap.addClass( 'retrieving-stories' )
},
success: function( result ) {
let { success, data } = result
if( success ) {
blogPostxInitializeSlick({
selector: self.storiesWrap,
arrows: true,
fade: true,
infinite: true,
appendArrows: self.container.find( '.story-arrows' ),
pauseOnFocus: false,
pauseOnHover: false
})
self.innerStories.append( data )
let storyWrap = self.innerStories.find( `.inner-story-wrap[data-id="${ self.activeStoryId }"]` ),
storyCover = storyWrap.find( '.story-cover img' )
self.addAmbient( storyCover[ 0 ] )
self.initSecondarySlider( storyWrap );
self.afterLastSlide();
self.actionButtons.appendTo( storyWrap.parent() )
self.container.find( '.story-arrows' ).appendTo( storyWrap.parent() )
self.container.addClass( 'added' )
self.innerStories.parent().addClass( 'open' )
}
},
complete: function() {
self.storiesWrap.removeClass( 'retrieving-stories' )
}
})
},
close: function(){
let self = this
self.container.find( '.action-btn.close' ).on( 'click', function(){
$( 'body' ).removeClass( 'web-stories--open' )
self.innerStories.parent().removeClass( 'open' )
self.storiesWrap.slick( 'unslick' )
self.innerStories.find( `.inner-story-wrap[data-id="${ self.activeStoryId }"]` ).slick( 'unslick' )
self.container.find( '.ambient-wrapper' ).css({
'background-image': ''
})
self.container.find( '.action-btn.pause' ).removeClass( 'paused' )
self.activeStoryId = null
self.allStoryIds = []
self.activeStoryCount = null
self.innerStories.parent().removeClass(function(index, className) {
return (className.match(/\bcat-[^\s]+/g) || []).join(' ');
});
self.storiesWrap.find( '.story' ).removeAttr( 'style' )
})
},
pause: function(){
let self = this
self.container.find( '.action-btn.pause' ).on( 'click', function(){
let _this = $( this )
_this.find( 'i' ).toggleClass( 'fa-pause fa-play' )
_this.toggleClass( 'paused' )
self.innerStories.find( `.inner-story-wrap[data-id="${ self.activeStoryId }"]` ).slick( _this.hasClass( 'paused' ) ? 'slickPause' : 'slickPlay' )
})
},
initSecondarySlider: function( selector ) {
$( selector ).slick({
autoplay: true,
arrows: true,
fade: true,
infinite: false,
autoplaySpeed: 5000,
speed: 300,
dots: true,
customPaging: function(slider, i) {
return ``;
},
pauseOnFocus: false,
pauseOnHover: false,
prevArrow: ``,
nextArrow: ``,
rtl: isRtl === '1' ? true : false,
})
},
/* Add ambient */
addAmbient: function( imageTag ) {
let storyImage = $( imageTag ).attr( 'src' );
this.container.find( '.ambient-wrapper' ).css({
'background-image': 'url('+ storyImage +')'
})
},
/* Close Popup on ESC Button Press */
closePopupOnESCPress: function(){
let self = this
$(document).on( 'keydown', function( event ) {
if( event.keyCode == 27 ) {
$( 'body' ).removeClass( 'web-stories--open' )
self.innerStories.parent().removeClass( 'open' )
self.storiesWrap.slick( 'unslick' )
self.innerStories.find( `.inner-story-wrap[data-id="${ self.activeStoryId }"]` ).slick( 'unslick' )
self.container.find( '.action-btn.pause' ).removeClass( 'paused' )
self.activeStoryId = null
self.allStoryIds = []
self.activeStoryCount = null
self.innerStories.parent().removeClass(function(index, className) {
return (className.match(/\bcat-[^\s]+/g) || []).join(' ');
});
self.storiesWrap.find( '.story' ).removeAttr( 'style' )
}
});
},
}
WebStories.init();
/**
* MARK: SEARCH QUERY
*/
const SearchQuery = {
container: $( 'body.search .filter-wrapper' ),
query: {
'post_type': [],
'post_status': 'publish',
's': '',
'author__in': [],
'paged': 1
},
clickedButton: 'filter',
hasQueryChanged: false,
init: function() {
if( this.container.length ) {
this.filterClick()
this.headClick()
this.checkboxChange()
this.loadMoreClick()
this.checkboxClear()
this.clearSearchQuery()
}
},
filterClick: function() {
let self = this
this.container.on( 'click', '.filter-button', function(){
if( ! self.hasQueryChanged ) return
let _this = $( this ),
searchField = _this.parent().siblings( '.page-header' ).find( '.blog_postx_search_page .search-form .search-field' ),
searchValue = searchField.val()
self.clickedButton = 'filter'
self.query.s = searchValue
self.query.paged = 1
self.ajaxCall()
if( self.hasQueryChanged ) {
self.hasQueryChanged = false
_this.addClass( 'disabled' )
}
})
},
ajaxCall: function() {
let self = this,
contentWrap = self.container.siblings( '.blog-postx-inner-content-wrap' ),
hasLoadedClass = contentWrap.hasClass( 'loaded' )
$.ajax({
method: 'POST',
url: ajaxUrl,
data: {
action: 'blog_postx_search_page_ajax_call',
_wpnonce: wpnonce,
query: self.query,
clickedButton: self.clickedButton
},
beforeSend: function() {
contentWrap.addClass( 'retrieving-posts' )
},
success: function( result ) {
let { success, data } = result
if( self.clickedButton === 'filter' ) contentWrap.empty()
if( ! success ) {
let { message } = data
self.container.siblings( '.pagination' ).find( '.ajax-load-more-wrap' ).hide()
self.container.siblings( '.pagination' ).append( message )
} else {
contentWrap.append( data )
self.container.siblings( '.pagination' ).find( '.ajax-load-more-wrap' ).show()
self.container.siblings( '.pagination' ).find( '.failure-message' ).remove()
}
},
complete: function() {
contentWrap.removeClass( 'retrieving-posts' )
if( ! hasLoadedClass ) contentWrap.addClass( 'loaded' )
}
})
},
headClick: function(){
let self = this
this.container.on( 'click', '.filter .head', function(){
let _this = $( this )
self.toggleClass( _this )
})
},
checkboxChange: function() {
let self = this
this.container.on( 'change', '.filter .body .item input[type="checkbox"]', function(){
let _this = $( this ),
value = _this.val(),
isChecked = _this.is( ':checked' ),
parent = _this.parents( '.filter' ),
isType = parent.hasClass( 'type' ),
isAuthor = parent.hasClass( 'authors' ),
param = ''
if( ! self.hasQueryChanged ) {
self.hasQueryChanged = true
parent.siblings( '.filter-button' ).removeClass( 'disabled' )
parent.siblings( '.clear-button' ).removeClass( 'disabled' )
}
if( isType ) {
param = 'post_type'
} else if( isAuthor ) {
param = 'author__in'
}
if( isChecked ) {
self.query[ param ] = [ ...self.query[ param ], value ]
} else {
self.query[ param ] = self.query[ param ].filter( item => item !== value );
}
})
},
toggleClass: function( _this ) {
let parent = _this.parents( '.filter' )
parent.toggleClass( 'active' )
parent.siblings( '.filter' ).removeClass( 'active' )
onElementOutsideClick( _this.parents( '.filter-wrapper' ), function(){
parent.removeClass( 'active' )
})
},
loadMoreClick: function() {
let self = this
this.container.siblings( '.pagination' ).on( 'click', '.ajax-load-more-wrap.blog-postx-button', function() {
let _this = $( this )
self.query.paged++
self.clickedButton = 'load-more'
self.ajaxCall()
})
},
checkboxClear: function() {
this.container.on( 'click', '.filter .clear', function() {
let _this = $( this )
_this.siblings().find( 'input[type="checkbox"]' ).prop( 'checked', false )
})
},
clearSearchQuery: function() {
this.container.on( 'click', '.clear-button', function() {
let _this = $( this )
if( _this.hasClass( 'disabled' ) ) return
_this.parent().siblings( '.page-header' ).find( '.blog_postx_search_page .search-form' ).submit()
})
}
}
SearchQuery.init()
})