File: /home/s/l/y/slyfwmm/pianob/wp-content/themes/zk-monaco/assets/2.0/js/vc/vc_grid.min.js
/**
* ZK Choles
* This theme just added rtl support for VC Grid
* added settings option to data-vc-grid-settings
* js_composer/include/templates/shortcodes/vc_basic_grid.php
* added: $this->grid_settings['rtl'] = is_rtl();
* making change in js
* .vcOwlCarousel({
rtl: this.settings.rtl,
*/
var vcGridStyleAll;
! function($) {
vcGridStyleAll = function(grid) {
this.grid = grid, this.settings = grid.settings, this.filterValue = null, this.$el = !1, this.$content = !1, this.isLoading = !1, this.$loader = $('<div class="vc_grid-loading"></div>'), this.init()
}, vcGridStyleAll.prototype.init = function() {
_.bindAll(this, "addItems", "showItems")
}, vcGridStyleAll.prototype.render = function() {
this.$el = this.grid.$el, this.$content = this.$el, this.setIsLoading(), this.grid.ajax({}, this.addItems)
}, vcGridStyleAll.prototype.setIsLoading = function() {
this.$content.append(this.$loader), this.isLoading = !0
}, vcGridStyleAll.prototype.unsetIsLoading = function() {
this.isLoading = !1, this.$loader && this.$loader.remove()
}, vcGridStyleAll.prototype.filter = function(filter) {
if (filter = _.isUndefined(filter) || "*" === filter ? "" : filter, this.filterValue == filter) return !1;
var animation = this.$content.closest(".vc_grid-container").data("initial-loading-animation");
vcGridSettings.addItemsAnimation = animation, this.$content.find(".vc_visible-item").removeClass("vc_visible-item " + vcGridSettings.addItemsAnimation + " animated"), this.filterValue = filter, _.defer(this.showItems)
}, vcGridStyleAll.prototype.showItems = function(delay,callback) {
var $this = this, $els = this.$content.find(".vc_grid-item" + this.filterValue);
this.setIsLoading();
var animation = this.$content.closest(".vc_grid-container").data("initial-loading-animation");
if(Number.isInteger(delay))
{
setTimeout(function () {
vcGridSettings.addItemsAnimation = animation,
$els.addClass("vc_visible-item " + ("none" !== vcGridSettings.addItemsAnimation ? vcGridSettings.addItemsAnimation + " animated" : "")),
$this.unsetIsLoading(), $(window).trigger("grid:items:added", $this.$el)
if(typeof callback == 'function')
callback();
},delay);
}
else {
vcGridSettings.addItemsAnimation = animation, $els.addClass("vc_visible-item " + ("none" !== vcGridSettings.addItemsAnimation ? vcGridSettings.addItemsAnimation + " animated" : "")), this.unsetIsLoading(), $(window).trigger("grid:items:added", this.$el)
}
}, vcGridStyleAll.prototype.addItems = function(html) {
var els = $(html);
this.$el.append(els), this.unsetIsLoading(), this.$content = els.find('[data-vc-grid-content="true"]'), this.grid.initFilter(), this.filter(), window.vc_prettyPhoto()
}
}(window.jQuery);
var vcGridStyleLoadMore = null;
! function($) {
vcGridStyleLoadMore = function(grid) {
this.grid = grid, this.settings = grid.settings, this.$loadMoreBtn = !1, this.$el = !1, this.filterValue = null, this.$content = !1, this.isLoading = !1, this.$loader = $('<div class="vc_grid-loading"></div>'), this.init()
}, vcGridStyleLoadMore.prototype.setIsLoading = function() {
this.$loadMoreBtn && this.$loadMoreBtn.hide(), this.isLoading = !0
}, vcGridStyleLoadMore.prototype.unsetIsLoading = function() {
this.isLoading = !1, this.setLoadMoreBtn()
}, vcGridStyleLoadMore.prototype.init = function() {
_.bindAll(this, "addItems")
}, vcGridStyleLoadMore.prototype.render = function() {
this.$el = this.grid.$el, this.$content = this.$el, this.setIsLoading(), this.$content.append(this.$loader), this.grid.ajax({}, this.addItems)
}, vcGridStyleLoadMore.prototype.showItems = function(delay,callback) {
var $this=this, $els = this.$content.find(".vc_grid_filter-item:not(.vc_visible-item):lt(" + this.settings.items_per_page + ")");
this.setIsLoading();
var animation = this.$content.closest(".vc_grid-container").data("initial-loading-animation");
if(Number.isInteger(delay))
{
setTimeout(function () {
vcGridSettings.addItemsAnimation = animation,
vcGridSettings.addItemsAnimation = animation,
$els.addClass("vc_visible-item " + vcGridSettings.addItemsAnimation + " animated"),
$this.unsetIsLoading(), $(window).trigger("grid:items:added", $this.$el)
if(typeof callback == 'function')
callback();
},delay);
}
else {
vcGridSettings.addItemsAnimation = animation, $els.addClass("vc_visible-item " + vcGridSettings.addItemsAnimation + " animated"), this.unsetIsLoading(), $(window).trigger("grid:items:added", this.$el)
}
}, vcGridStyleLoadMore.prototype.filter = function(filter) {
if (filter = _.isUndefined(filter) || "*" === filter ? "" : filter, this.filterValue == filter) return !1;
this.$content.closest(".vc_grid-container").data("initial-loading-animation");
this.$content.find(".vc_visible-item, .vc_grid_filter-item").removeClass("vc_visible-item vc_grid_filter-item "), this.filterValue = filter, this.$content.find(".vc_grid-item" + this.filterValue).addClass("vc_grid_filter-item"), this.showItems()
}, vcGridStyleLoadMore.prototype.addItems = function(html) {
var els = $(html);
this.$el.append(els), this.unsetIsLoading(), this.$content = els.find('[data-vc-grid-content="true"]'), this.$loadMoreBtn = els.find('[data-vc-grid-load-more-btn="true"] .vc_btn3'), this.$loadMoreBtn.length || (this.$loadMoreBtn = els.find('[data-vc-grid-load-more-btn="true"] .vc_btn'));
var self = this;
this.$loadMoreBtn.click(function(e) {
e.preventDefault(), self.showItems()
}), this.$loadMoreBtn.hide(), this.grid.initFilter(), this.filter(), this.$loader.remove(), window.vc_prettyPhoto()
}, vcGridStyleLoadMore.prototype.setLoadMoreBtn = function() {
$('.vc_grid_filter-item:not(".vc_visible-item")', this.$content).length && $(".vc_grid_filter-item", this.$content).length ? this.$loadMoreBtn && this.$loadMoreBtn.show() : this.$loadMoreBtn && this.$loadMoreBtn.hide()
}
}(window.jQuery);
var vcGridStyleLazy = null;
! function($) {
$.waypoints("extendFn", "vc_grid-infinite", function(options) {
var opts, el = this;
return opts = $.extend({}, $.fn.waypoint.defaults, {
container: "auto",
items: ".infinite-item",
offset: "bottom-in-view",
handle: {
load: function(opts) {}
}
}, options), "auto" === opts.container ? el : $(opts.container, el), opts.handler = function(direction) {
var $this;
"down" !== direction && "right" !== direction || ($this = $(this), $this.waypoint("destroy"), opts.handle.load.call(this, opts))
}, this.waypoint(opts)
}), vcGridStyleLazy = function(grid) {
this.grid = grid, this.settings = grid.settings, this.$el = !1, this.filterValue = null, this.$content = !1, this.isLoading = !1, this.$loader = $('<div class="vc_grid-loading"></div>'), this.init()
}, vcGridStyleLazy.prototype.setIsLoading = function() {
this.$content.append(this.$loader), this.isLoading = !0
}, vcGridStyleLazy.prototype.unsetIsLoading = function() {
this.isLoading = !1, this.$loader && this.$loader.remove()
}, vcGridStyleLazy.prototype.init = function() {
_.bindAll(this, "addItems", "showItems")
}, vcGridStyleLazy.prototype.render = function() {
this.$el = this.grid.$el, this.$content = this.$el, this.setIsLoading(), this.grid.ajax({}, this.addItems)
}, vcGridStyleLazy.prototype.showItems = function(delay,callback) {
var _this=this,$els = this.$content.find(".vc_grid_filter-item:not(.vc_visible-item):lt(" + this.settings.items_per_page + ")");
this.setIsLoading();
var animation = this.$content.closest(".vc_grid-container").data("initial-loading-animation");
if(Number.isInteger(delay))
{
setTimeout(function () {
vcGridSettings.addItemsAnimation = animation,
$els.addClass("vc_visible-item " + vcGridSettings.addItemsAnimation + " animated"),
_this.unsetIsLoading(),
$(window).trigger("grid:items:added", this.$el);
if(typeof callback == 'function')
callback();
},delay);
}
else
{
vcGridSettings.addItemsAnimation = animation,
$els.addClass("vc_visible-item " + vcGridSettings.addItemsAnimation + " animated"),
this.unsetIsLoading(),
$(window).trigger("grid:items:added", this.$el);
}
}, vcGridStyleLazy.prototype.filter = function(filter) {
if (filter = _.isUndefined(filter) || "*" === filter ? "" : filter, this.filterValue == filter) return !1;
var animation = this.$content.closest(".vc_grid-container").data("initial-loading-animation");
vcGridSettings.addItemsAnimation = animation, this.$content.find(".vc_visible-item, .vc_grid_filter-item").removeClass("vc_visible-item vc_grid_filter-item " + ("none" !== vcGridSettings.addItemsAnimation ? vcGridSettings.addItemsAnimation + " animated" : "")), this.filterValue = filter, this.$content.find(".vc_grid-item" + this.filterValue).addClass("vc_grid_filter-item"), _.defer(this.showItems), this.initScroll()
}, vcGridStyleLazy.prototype.addItems = function(html) {
var els = $(html);
this.$el.append(els), this.unsetIsLoading(), this.$content = els.find('[data-vc-grid-content="true"]'), this.grid.initFilter(), this.filter(), window.vc_prettyPhoto()
}, vcGridStyleLazy.prototype.initScroll = function() {
var self = this;
var loading_delay;
if(self.$el.length > 0)
{
var att_class = self.$el.attr('class'),class_prefix = 'zk-loading-delay-';
att_class.split(' ').forEach(function (item,index) {
if(item.indexOf(class_prefix) == 0)
{
loading_delay = parseInt(item.substring(class_prefix.length));
return false;
}
});
}
if(!Number.isInteger( loading_delay ) || loading_delay < 0)
loading_delay = 3000;
this.$content.unbind("waypoint").waypoint("vc_grid-infinite", {
container: "auto",
items: ".vc_grid-item",
handle: {
load: function(opts) {
self.showItems(loading_delay,function () {
self.checkNext(opts);
jQuery(document).trigger('scroll')
});
}
}
})
}, vcGridStyleLazy.prototype.checkNext = function(opts) {
if (this.$content.find('.vc_grid_filter-item:not(".vc_visible-item")').length) {
var fn, self = this;
fn = function() {
return self.$content.waypoint(opts)
}, _.defer(fn)
}
}
}(window.jQuery);
var vcGridStylePagination = null;
! function($) {
vcGridStylePagination = function(grid) {
this.grid = grid, this.settings = grid.settings, this.$el = !1, this.$content = !1, this.filterValue = null, this.isLoading = !1, this.htmlCache = !1, this.$loader = $('<div class="vc_grid-loading"></div>'), this.$firstSlideItems, this.init()
}, vcGridStylePagination.prototype.init = function() {
_.bindAll(this, "addItems", "initCarousel")
}, vcGridStylePagination.prototype.setIsLoading = function() {
this.$loader.show(), this.isLoading = !0
}, vcGridStylePagination.prototype.unsetIsLoading = function() {
this.isLoading = !1, this.$loader.hide()
}, vcGridStylePagination.prototype.render = function() {
this.$el = this.grid.$el, this.$content = this.$el, this.$content.append(this.$loader), this.setIsLoading(), this.grid.ajax({}, this.addItems)
}, vcGridStylePagination.prototype.filter = function(filter) {
if (filter = _.isUndefined(filter) || "*" === filter ? "" : filter, this.filterValue == filter) return !1;
var $html;
this.$content.data("owl.vccarousel") && (this.$content.off("initialized.owl.vccarousel"), this.$content.off("changed.owl.vccarousel"), this.$content.data("vcPagination") && this.$content.data("vcPagination").twbsPagination("destroy"), this.$content.data("owl.vccarousel").destroy()), this.$content.empty(), $html = $(".vc_grid-item", this.htmlCache), "" !== filter && ($html = $html.filter(filter)), this.filterValue = filter, this.buildSlides($html.addClass("vc_visible-item"))
}, vcGridStylePagination.prototype.buildSlides = function($html) {
var i, j, tempArray, chunk = parseInt(this.settings.items_per_page);
for (i = 0, j = $html.length; i < j; i += chunk) tempArray = $html.slice(i, i + chunk), $('<div class="vc_pageable-slide-wrapper">').append($(tempArray)).appendTo(this.$content);
this.$content.find(".vc_pageable-slide-wrapper:first").imagesLoaded(this.initCarousel)
}, vcGridStylePagination.prototype.addItems = function(html) {
this.$el.append(html), !1 === this.htmlCache && (this.htmlCache = html), this.unsetIsLoading(), this.$content = this.$el.find('[data-vc-pageable-content="true"]'), this.$content.addClass("owl-carousel vc_grid-owl-theme"), this.grid.initFilter(), this.filter(), window.vc_prettyPhoto()
}, vcGridStylePagination.prototype.initCarousel = function() {
if ($.fn.vcOwlCarousel) {
var $vcCarousel, that = this;
$vcCarousel = this.$content.data("owl.vccarousel"), $vcCarousel && $vcCarousel.destroy(), this.$content.on("initialized.owl.vccarousel", function(event) {
var $carousel = event.relatedTarget,
items = $carousel.items(),
animation = that.$content.closest(".vc_grid-container").data("initial-loading-animation");
if (items.forEach(function(i) {
jQuery(i).find(".vc_grid-item").addClass(animation + " animated");
}), that.settings.paging_design.indexOf("pagination") > -1) {
var itemsCount = $carousel.items().length,
$pagination = $("<div></div>").addClass("vc_grid-pagination").appendTo(that.$el);
$pagination.twbsPagination({
totalPages: itemsCount,
visiblePages: that.settings.visible_pages,
onPageClick: function(event, page) {
$carousel.to(page - 1)
},
paginationClass: "vc_grid-pagination-list vc_grid-" + that.settings.paging_design + " vc_grid-pagination-color-" + that.settings.paging_color,
nextClass: "vc_grid-next",
first: 20 < itemsCount && " ",
last: 20 < itemsCount && " ",
prev: 5 < itemsCount && " ",
next: 5 < itemsCount && " ",
prevClass: "vc_grid-prev",
lastClass: "vc_grid-last",
loop: that.settings.loop,
firstClass: "vc_grid-first",
pageClass: "vc_grid-page",
activeClass: "vc_grid-active",
disabledClass: "vc_grid-disabled"
}), $(this).data("vcPagination", $pagination), that.$content.on("changed.owl.vccarousel", function(event) {
var $pagination = $(this).data("vcPagination"),
$pag_object = $pagination.data("twbsPagination");
$pag_object.render($pag_object.getPages(1 + event.page.index)), $pag_object.setupEvents()
}), window.vc_prettyPhoto()
}
}).vcOwlCarousel({
rtl: this.settings.rtl,
autoplayHoverPause: true,
items: 1,
loop: this.settings.loop,
margin: 10,
nav: !0,
navText: ["", ""],
navContainerClass: "vc_grid-owl-nav vc_grid-owl-nav-color-" + this.settings.arrows_color,
dotClass: "vc_grid-owl-dot",
dotsClass: "vc_grid-owl-dots vc_grid-" + this.settings.paging_design + " vc_grid-owl-dots-color-" + this.settings.paging_color,
navClass: ["vc_grid-owl-prev " + this.settings.arrows_design + " vc_grid-nav-prev-" + this.settings.arrows_position, "vc_grid-owl-next " + this.settings.arrows_design.replace("_left", "_right") + " vc_grid-nav-next-" + this.settings.arrows_position],
animateIn: "none" !== this.settings.animation_in && this.settings.animation_in,
animateOut: "none" !== this.settings.animation_out && this.settings.animation_out,
autoHeight: !0,
autoplay: !0 === this.settings.auto_play,
autoplayTimeout: this.settings.speed,
callbacks: !0,
onTranslated: function() {
setTimeout(function() {
$(window).trigger("grid:items:added", that.$el)
}, 750)
},
onRefreshed: function() {
setTimeout(function() {
$(window).trigger("grid:items:added", that.$el)
}, 750)
}
})
}
}
}(window.jQuery);
var vcGridStyleAllMasonry;
! function($) {
vcGridStyleAllMasonry = function(grid) {
this.grid = grid, this.settings = grid.settings, this.filterValue = null, this.$el = !1, this.$content = !1, this.isLoading = !1, this.filtered = !1, this.$loader = $('<div class="vc_grid-loading"></div>'), this.masonryEnabled = !1, _.bindAll(this, "setMasonry"), this.init()
}, vcGridStyleAllMasonry.prototype = _.extend({}, vcGridStyleAll.prototype, {
showItems: function(delay,callback) {
var $els = this.$content.find(".vc_grid-item" + this.filterValue),
self = this,is_over_delay = false,is_image_loaded = false;
this.setIsLoading(), $els.imagesLoaded(function() {
if(!is_over_delay && Number.isInteger(delay))
{
is_image_loaded = true;
return;
}
$els.addClass("vc_visible-item"), self.setItems($els), self.filtered && (self.filtered = !1, self.setMasonry()), self.unsetIsLoading(), window.vc_prettyPhoto(), $(window).trigger("grid:items:added", self.$el);
if(typeof callback == 'function')
callback();
});
if(Number.isInteger(delay))
{
setTimeout(function () {
if(!is_image_loaded)
{
is_over_delay = true;
return;
}
vcGridSettings.addItemsAnimation = animation,
$els.addClass("vc_visible-item"),
self.setItems($els),
self.filtered && (self.filtered = !1, self.setMasonry()), self.unsetIsLoading(),
window.vc_prettyPhoto(), $(window).trigger("grid:items:added", self.$el);
if(typeof callback == 'function')
callback();
},delay);
}
},
filter: function(filter) {
if (filter = _.isUndefined(filter) || "*" === filter ? "" : filter, this.filterValue == filter) return !1;
this.filterValue = filter, this.$content.data("masonry") && this.$content.masonry("destroy"), this.masonryEnabled = !1, this.$content.find(".vc_visible-item").removeClass("vc_visible-item"), this.$content.find(".vc_grid-item" + this.filterValue), this.filtered = !0, $(window).resize(this.setMasonry), this.setMasonry(), this.showItems()
},
setIsLoading: function() {
this.$el.append(this.$loader), this.isLoading = !0
},
unsetIsLoading: function() {
this.isLoading = !1, this.$loader && this.$loader.remove()
},
setItems: function(els) {
this.masonryEnabled ? this.$content.masonry("appended", els) : this.setMasonry()
},
setMasonry: function() {
var animation, settings;
window.innerWidth < vcGridSettings.mobileWindowWidth ? (this.$content.data("masonry") && this.$content.masonry("destroy"), this.masonryEnabled = !1) : this.masonryEnabled ? (this.$content.masonry("reloadItems"), this.$content.masonry("layout")) : (animation = this.$content.closest(".vc_grid-container").data("initial-loading-animation"), settings = {
itemSelector: ".vc_visible-item",
isResizeBound: !1
}, "none" == animation ? (settings.hiddenStyle = {
visibility: "hidden"
}, settings.visibleStyle = {
visibility: "visible"
}) : "fadeIn" == animation ? (settings.hiddenStyle = {
opacity: 0
}, settings.visibleStyle = {
opacity: 1
}) : (settings.hiddenStyle = {
opacity: 0,
transform: "scale(0.001)"
}, settings.visibleStyle = {
opacity: 1,
transform: "scale(1)"
}),
settings.columnWidth = 10,
settings.percentPosition = true,
this.$content.masonry(settings), this.masonryEnabled = !0)
}
})
}(window.jQuery);
var vcGridStyleLazyMasonry;
! function($) {
vcGridStyleLazyMasonry = function(grid) {
this.grid = grid, this.settings = grid.settings, this.$el = !1, this.filterValue = null, this.filtered = !1, this.$content = !1, this.isLoading = !1, this.$loader = $('<div class="vc_grid-loading"></div>'), this.masonryEnabled = !1, _.bindAll(this, "setMasonry"), this.init()
}, vcGridStyleLazyMasonry.prototype = _.extend({}, vcGridStyleLazy.prototype, {
showItems: function(delay,callback) {
if (!0 === this.isLoading)
{
if(typeof callback == 'function')
callback();
return !1;
}
this.setIsLoading();
var $els = this.$content.find(".vc_grid_filter-item:not(.vc_visible-item):lt(" + this.settings.items_per_page + ")"),
self = this,
self = this,is_over_delay = false,is_image_loaded = false;
$els.imagesLoaded(function() {
if(!is_over_delay && Number.isInteger(delay) )
{
is_image_loaded = true;
return;
}
$els.addClass("vc_visible-item"), self.setItems($els), self.filtered && (self.filtered = !1, self.setMasonry(), self.initScroll(), window.vc_prettyPhoto()), self.unsetIsLoading(), $(window).trigger("grid:items:added", self.$el);
if(typeof callback == 'function')
callback();
});
if(Number.isInteger(delay))
{
setTimeout(function () {
if(!is_image_loaded)
{
is_over_delay = true;
return;
}
$els.addClass("vc_visible-item"),
self.setItems($els),
self.filtered && (self.filtered = !1, self.setMasonry(), self.initScroll(), window.vc_prettyPhoto()),
self.unsetIsLoading(), $(window).trigger("grid:items:added", self.$el);
if(typeof callback == 'function')
callback();
},delay);
}
},
setIsLoading: function() {
this.$el.append(this.$loader), this.isLoading = !0
},
filter: function(filter) {
if (filter = _.isUndefined(filter) || "*" === filter ? "" : filter, this.filterValue == filter) return !1;
this.$content.data("masonry") && this.$content.masonry("destroy"), this.masonryEnabled = !1, this.$content.find(".vc_visible-item, .vc_grid_filter-item").removeClass("vc_visible-item vc_grid_filter-item"), this.filterValue = filter, this.$content.find(".vc_grid-item" + this.filterValue).addClass("vc_grid_filter-item"), this.filtered = !0, $(window).resize(this.setMasonry), this.setMasonry(), _.defer(this.showItems)
},
setItems: function(els) {
this.masonryEnabled ? this.$content.masonry("appended", els) : this.setMasonry()
},
setMasonry: function() {
var animation, settings;
window.innerWidth < vcGridSettings.mobileWindowWidth ? (this.$content.data("masonry") && this.$content.masonry("destroy"), this.masonryEnabled = !1) : this.masonryEnabled ? (this.$content.masonry("reloadItems"), this.$content.masonry("layout")) : (animation = this.$content.closest(".vc_grid-container").data("initial-loading-animation"), settings = {
itemSelector: ".vc_visible-item",
isResizeBound: !1
}, "none" == animation ? (settings.hiddenStyle = {
visibility: "hidden"
}, settings.visibleStyle = {
visibility: "visible"
}) : "fadeIn" == animation ? (settings.hiddenStyle = {
opacity: 0
}, settings.visibleStyle = {
opacity: 1
}) : (settings.hiddenStyle = {
opacity: 0,
transform: "scale(0.001)"
}, settings.visibleStyle = {
opacity: 1,
transform: "scale(1)"
}),
settings.columnWidth = 10,
settings.percentPosition = true,
this.$content.masonry(settings), this.masonryEnabled = !0)
}
})
}(window.jQuery);
var vcGridStyleLoadMoreMasonry;
! function($) {
vcGridStyleLoadMoreMasonry = function(grid) {
this.grid = grid, this.settings = grid.settings, this.$loadMoreBtn = !1, this.$el = !1, this.filterValue = null, this.$content = !1, this.isLoading = !1, this.filtered = !1, this.$loader = $('<div class="vc_grid-loading"></div>'), this.masonryEnabled = !1, _.bindAll(this, "setMasonry"), this.init()
}, vcGridStyleLoadMoreMasonry.prototype = _.extend({}, vcGridStyleLoadMore.prototype, {
showItems: function(delay,callback) {
if (!0 === this.isLoading)
{
if(typeof callback == 'function')
callback();
return !1;
}
this.setIsLoading();
var $els = this.$content.find(".vc_grid_filter-item:not(.vc_visible-item):lt(" + this.settings.items_per_page + ")"),
self = this,
self = this,is_over_delay = false,is_image_loaded = false;
$els.imagesLoaded(function() {
if(!is_over_delay && Number.isInteger(delay) )
{
is_image_loaded = true;
return;
}
$els.addClass("vc_visible-item"), self.setItems($els), self.filtered && (self.filtered = !1, self.setMasonry(), window.vc_prettyPhoto()), self.unsetIsLoading(), $(window).trigger("grid:items:added", self.$el)
if(typeof callback == 'function')
callback();
});
if(Number.isInteger(delay))
{
setTimeout(function () {
if(!is_image_loaded)
{
is_over_delay = true;
return;
}
$els.addClass("vc_visible-item"),
self.setItems($els),
self.filtered && (self.filtered = !1, self.setMasonry(), window.vc_prettyPhoto()),
self.unsetIsLoading(), $(window).trigger("grid:items:added", self.$el);
if(typeof callback == 'function')
callback();
},delay);
}
},
filter: function(filter) {
if (filter = _.isUndefined(filter) || "*" === filter ? "" : filter, this.filterValue == filter) return !1;
this.$content.data("masonry") && this.$content.masonry("destroy"), this.masonryEnabled = !1, this.$content.find(".vc_visible-item, .vc_grid_filter-item").removeClass("vc_visible-item vc_grid_filter-item"), this.filterValue = filter, this.$content.find(".vc_grid-item" + this.filterValue).addClass("vc_grid_filter-item"), this.filtered = !0, $(window).resize(this.setMasonry), this.setMasonry(), this.showItems()
},
setIsLoading: function() {
this.$el.append(this.$loader), this.$loadMoreBtn && this.$loadMoreBtn.hide(), this.isLoading = !0
},
unsetIsLoading: function() {
this.isLoading = !1, this.$loader && this.$loader.remove(), this.setLoadMoreBtn()
},
setItems: function(els) {
this.masonryEnabled ? this.$content.masonry("appended", els) : this.setMasonry()
},
setMasonry: function() {
var animation, settings;
window.innerWidth < vcGridSettings.mobileWindowWidth ? (this.$content.data("masonry") && this.$content.masonry("destroy"), this.masonryEnabled = !1) : this.masonryEnabled ? (this.$content.masonry("reloadItems"), this.$content.masonry("layout")) : (animation = this.$content.closest(".vc_grid-container").data("initial-loading-animation"), settings = {
itemSelector: ".vc_visible-item",
isResizeBound: !1
}, "none" == animation ? (settings.hiddenStyle = {
visibility: "hidden"
}, settings.visibleStyle = {
visibility: "visible"
}) : "fadeIn" == animation ? (settings.hiddenStyle = {
opacity: 0
}, settings.visibleStyle = {
opacity: 1
}) : (settings.hiddenStyle = {
opacity: 0,
transform: "scale(0.001)"
}, settings.visibleStyle = {
opacity: 1,
transform: "scale(1)"
}),
settings.columnWidth = 10,
settings.percentPosition = true,
this.$content.masonry(settings), this.masonryEnabled = !0)
}
})
}(window.jQuery);
var VcGrid, vcGridSettings = {
addItemsAnimation: "zoomIn",
mobileWindowWidth: 768,
itemAnimationSpeed: 1e3,
itemAnimationDelay: [],
clearAnimationDelays: function() {
_.each(this.itemAnimationDelay, function(id) {
window.clearTimeout(id)
}), this.itemAnimationDelay = []
}
};
! function($) {
"use strict";
function Plugin(option) {
return this.each(function() {
var $this = $(this),
data = $this.data("vcGrid");
data || $this.data("vcGrid", data = new VcGrid(this)), "string" == typeof option && data[option]()
})
}
VcGrid = function(el) {
this.$el = $(el), this.settings = {}, this.$filter = !1, this.gridBuilder = !1, this.init()
}, VcGrid.prototype.init = function() {
_.bindAll(this, "filterItems", "filterItemsDropdown"), this.setSettings(), this.initStyle(), this.initHover(), this.initZoneLink()
}, VcGrid.prototype.setSettings = function() {
this.settings = $.extend({
visible_pages: 5
}, this.$el.data("vcGridSettings") || {})
}, VcGrid.prototype.initStyle = function() {
var styleObject = !!this.settings.style && $.camelCase("vc-grid-style-" + this.settings.style);
styleObject && !_.isUndefined(window[styleObject]) && window[styleObject].prototype.render && (this.gridBuilder = new window[styleObject](this), this.gridBuilder.render())
}, VcGrid.prototype.initFilter = function() {
this.$filter = this.$el.find("[data-vc-grid-filter]"), this.$filterDropdown = this.$el.find("[data-vc-grid-filter-select]"), this.$filter.length && this.$filter.find(".vc_grid-filter-item").unbind("click").click(this.filterItems), this.$filterDropdown.length && this.$filterDropdown.unbind("change").change(this.filterItemsDropdown)
}, VcGrid.prototype.initHover = function() {
this.$el.on("mouseover", ".vc_grid-item-mini", function() {
$(this).addClass("vc_is-hover")
}).on("mouseleave", ".vc_grid-item-mini", function() {
$(this).removeClass("vc_is-hover")
})
}, VcGrid.prototype.initZoneLink = function() {
window.vc_iframe ? (this.$el.on("click.zonePostLink", "[data-vc-link]", function() {
var href = ($(this), $(this).data("vcLink"));
window.open(href)
}), this.$el.on("click", ".vc_gitem-link", function(e) {
var $this = $(this);
e.preventDefault(), !$this.hasClass("vc-gitem-link-ajax") && window.open($this.attr("href"))
})) : (this.$el.on("click.zonePostLink", "[data-vc-link]", function() {
var $this = $(this),
href = $(this).data("vcLink");
"_blank" === $this.data("vcTarget") ? window.open(href) : window.location.href = href
}), this.$el.on("click", ".vc_gitem-link", function(e) {
var $this = $(this);
if (e.preventDefault(), $this.hasClass("vc-gitem-link-ajax")) {
var httpRequest = new XMLHttpRequest;
$this.addClass("vc-spinner"), httpRequest.open("GET", $this.attr("href"), !0), httpRequest.send();
var removeSpinner = function() {
$this.removeClass("vc-spinner vc-spinner-complete vc-spinner-failed")
},
timeout = 0;
httpRequest.onreadystatechange = function() {
httpRequest.readyState === XMLHttpRequest.DONE && (200 === httpRequest.status ? ($this.addClass("vc-spinner-complete"), timeout && (window.clearTimeout(timeout), timeout = 0), timeout = window.setTimeout(removeSpinner, 500)) : ($this.addClass("vc-spinner-failed"), timeout && (window.clearTimeout(timeout), timeout = 0), timeout = window.setTimeout(removeSpinner, 500)))
}
} else "_blank" === $this.attr("_target") ? window.open($this.attr("href")) : window.location.href = $this.attr("href")
}))
}, VcGrid.prototype.initHover_old = function() {
this.$el.on("mouseover", ".vc_grid-item", function() {
var $this = $(this);
$this.hasClass("vc_is-hover") || (vcGridSettings.clearAnimationDelays(), $this.addClass("vc_is-hover vc_is-animated"), $this.find(".vc_grid-item-row-animate").each(function() {
var $animate = $(this),
animationIn = $animate.data("animationIn"),
animationOut = $animate.data("animationOut");
$animate.removeClass(animationOut).addClass(animationIn), vcGridSettings.itemAnimationDelay.push(_.delay(function() {
$animate.removeClass(animationIn), $this.removeClass("vc_is-animated")
}, vcGridSettings.itemAnimationSpeed))
}))
}).on("mouseleave", ".vc_grid-item", function() {
var $this = $(this);
vcGridSettings.clearAnimationDelays(), $this.addClass("vc_is-animated").removeClass("vc_is-hover"), $this.find(".vc_grid-item-row-animate").each(function() {
var $animate = $this.find(".vc_grid-item-row-animate"),
animationOut = $animate.data("animationOut"),
animationIn = $animate.data("animationIn");
$animate.addClass(animationOut), vcGridSettings.itemAnimationDelay.push(_.delay(function() {
$animate.removeClass(animationOut + " " + animationIn), $this.removeClass("vc_is-animated")
}, vcGridSettings.itemAnimationSpeed - 1))
})
})
}, VcGrid.prototype.filterItems = function(e) {
var $control = (this.style && $.camelCase("filter-" + this.style), $(e.currentTarget).find("[data-vc-grid-filter-value]")),
filter = $control.data("vcGridFilterValue");
if (e && e.preventDefault(), $control.hasClass("vc_active")) return !1;
this.$filter.find(".vc_active").removeClass("vc_active"), this.$filterDropdown.find(".vc_active").removeClass("vc_active"), this.$filterDropdown.find('[value="' + filter + '"]').addClass("vc_active").attr("selected", "selected"), $control.parent().addClass("vc_active"), this.gridBuilder.filter(filter)
}, VcGrid.prototype.filterItemsDropdown = function(e) {
var $control = this.$filterDropdown.find(":selected"),
filter = $control.val();
if ($control.hasClass("vc_active")) return !1;
this.$filterDropdown.find(".vc_active").removeClass("vc_active"), this.$filter.find(".vc_active").removeClass("vc_active"), this.$filter.find('[data-vc-grid-filter-value="' + filter + '"]').parent().addClass("vc_active"), $control.addClass("vc_active"), this.gridBuilder.filter(filter)
}, VcGrid.prototype.ajax = function(data, callback) {
var requestData;
_.isUndefined(data) && (data = {}), requestData = _.extend({
action: "vc_get_vc_grid_data",
vc_action: "vc_get_vc_grid_data",
tag: this.settings.tag,
data: this.settings,
vc_post_id: this.$el.data("vcPostId"),
_vcnonce: this.$el.data("vcPublicNonce")
}, data), $.ajax({
type: "POST",
dataType: "html",
url: this.$el.data("vcRequest"),
data: requestData
}).done(callback)
}, $.fn.vcGrid = Plugin, $.fn.vcGrid.Constructor = VcGrid, $(document).ready(function() {
$("[data-vc-grid-settings]").vcGrid()
})
}(window.jQuery);