;(function (){
function createObserver (handler){
return new IntersectionObserver(function (entries){
for (var i=0; i < entries.length; i++){
handler(entries[i])
}}, {
rootMargin: '0px',
threshold: 0.1
})
}
Flatsome.behavior('lazy-load-images', {
attach: function (context){
var observer=createObserver(function (entry){
if(entry.intersectionRatio > 0){
observer.unobserve(entry.target)
var $el=jQuery(entry.target)
var src=$el.data('src')
var srcset=$el.data('srcset')
if($el.hasClass('lazy-load-active')) return
else $el.addClass('lazy-load-active')
if(src) $el.attr('src', src)
if(srcset) $el.attr('srcset', srcset)
$el.imagesLoaded(function (){
$el.removeClass('lazy-load')
if(typeof objectFitImages!=='undefined'){
objectFitImages($el)
}})
}})
jQuery('.lazy-load', context).each(function (i, el){
observer.observe(el)
})
}})
Flatsome.behavior('lazy-load-sliders', {
attach: function (context){
var observer=createObserver(function (entry){
if(entry.intersectionRatio > 0){
observer.unobserve(entry.target)
var $el=jQuery(entry.target)
if($el.hasClass('slider-lazy-load-active')) return
else $el.addClass('slider-lazy-load-active')
$el.imagesLoaded(function (){
if($el.hasClass('flickity-enabled')){
$el.flickity('resize')
}})
}})
jQuery('.slider', context).each(function (i, el){
observer.observe(el)
})
}})
Flatsome.behavior('lazy-load-packery', {
attach: function (context){
var observer=createObserver(function (entry){
if(entry.intersectionRatio > 0){
observer.unobserve(entry.target)
var $el=jQuery(entry.target)
$el.imagesLoaded(function (){
jQuery('.has-packery').packery('layout')
})
}})
jQuery('.has-packery .lazy-load', context).each(function (i, el){
observer.observe(el)
})
}})
})();