(function($){
"use strict";
var JetEngineRegisteredStores=window.JetEngineRegisteredStores||{};
var JetEngineStores=window.JetEngineStores||{};
var JetEngine={
currentMonth: null,
currentRequest: {},
activeCalendarDay: null,
lazyLoading: false,
addedScripts: [],
addedStyles: [],
addedPostCSS: [],
assetsPromises: [],
initDone: false,
commonInit: function(){
JetEngine.commonEvents();
$(window).on('jet-popup/render-content/ajax/success', JetEngine.initStores);
window.JetPlugins.hooks.addFilter('jet-popup.show-popup.data',
'JetEngine.popupData',
(popupData, $popup, $triggeredBy)=> {
if(! $triggeredBy){
return popupData;
}
if($triggeredBy.data('popupIsJetEngine') ){
popupData=JetEngine.prepareJetPopup(popupData, { 'is-jet-engine': true }, $triggeredBy);
}
return popupData;
}
);
JetEngine.initStores();
JetEngine.customUrlActions.init();
},
commonEvents: function($scope){
$scope=$scope||$(document);
$scope
.on('jet-filter-content-rendered', JetEngine.calendarCache.clear)
.on('change.JetEngine', '.jet-calendar-caption__date-select', JetEngine.selectCalendarMonth)
.on('click.JetEngine', '.jet-calendar-nav__link', JetEngine.switchCalendarMonth)
.on('click.JetEngine', '.jet-calendar-week__day-mobile-overlay', JetEngine.showCalendarEvent)
.on('click.JetEngine', '.jet-listing-dynamic-link__link[data-delete-link="1"]', JetEngine.showConfirmDeleteDialog)
.on('jet-filter-content-rendered', JetEngine.maybeReinitSlider)
.on('click.JetEngine', '.jet-add-to-store', JetEngine.addToStore)
.on('click.JetEngine', '.jet-remove-from-store', JetEngine.removeFromStore)
.on('click.JetEngine', '.jet-engine-listing-overlay-wrap:not([data-url*="event=hover"])', JetEngine.handleListingItemClick)
.on('jet-filter-content-rendered', JetEngine.filtersCompatibility)
.on('click.JetEngine', '.jet-container[data-url]', JetEngine.handleContainerURL)
.on('change.JetEngine', '.jet-listing-dynamic-link .qty', JetEngine.handleProductQuantityChange);
},
handleProductQuantityChange: function(event){
event.preventDefault();
event.stopPropagation();
const $this=$(this);
$this.closest(".jet-listing-dynamic-link").find(".jet-woo-add-to-cart").data("quantity", $this.val()).attr("data-quantity", $this.val());
},
handleContainerURL: function(){
var $this=$(this),
url=$this.data('url'),
target=$this.data('target');
if(! target){
window.location=url;
}else{
window.open(url, '_blank').focus();
}},
filtersCompatibility: function(event, $provider, filtersInstance, providerType){
let providers={
'jet-engine': true,
'jet-engine-calendar': true,
'jet-data-table': true,
};
if(! providers[ providerType ]){
return;
}
if(window.JetPopupFrontend&&window.JetPopupFrontend.initAttachedPopups){
window.JetPopupFrontend.initAttachedPopups($provider);
}},
init: function(){
var widgets={
'jet-listing-dynamic-field.default':JetEngine.widgetDynamicField,
'jet-listing-grid.default': JetEngine.widgetListingGrid,
};
$.each(widgets, function(widget, callback){
window.elementorFrontend.hooks.addAction('frontend/element_ready/' + widget, callback);
});
window.elementorFrontend.elements.$window.on('elementor/nested-tabs/activate',
(event, content)=> {
const $content=$(content);
setTimeout(()=> {
JetEngine.maybeReinitSlider(event, $content);
JetEngine.widgetDynamicField($content);
});
}
);
window.elementorFrontend.hooks.addFilter('jet-popup/widget-extensions/popup-data',
JetEngine.prepareJetPopup
);
window.JetPlugins.hooks.addFilter('jet-popup.show-popup.data',
'JetEngine.popupData',
(popupData, $popup, $triggeredBy)=> {
if(! $triggeredBy){
return popupData;
}
if($triggeredBy.data('popupIsJetEngine') ){
popupData=JetEngine.prepareJetPopup(popupData, { 'is-jet-engine': true }, $triggeredBy);
}
return popupData;
}
);
JetEngine.updateAddedStyles();
},
initBricks: function($scope){
if(window.bricksIsFrontend){
return;
}
$scope=$scope||$('body');
JetEngine.initBlocks($scope);
},
initBlocks: function($scope){
$scope=$scope||$('body');
window.JetPlugins.init($scope, [
{
block: 'jet-engine/listing-grid',
callback: JetEngine.widgetListingGrid
},
{
block: 'jet-engine/dynamic-field',
callback: JetEngine.widgetDynamicField
}
]);
},
initFrontStores: function($scope){
$scope=$scope||$('body');
$('.jet-add-to-store.is-front-store', $scope).each(function(){
var $this=$(this),
args=$this.data('args'),
store=JetEngineStores[ args.store.type ],
count=0;
args=JetEngine.ensureJSON(args);
if(! store){
return;
}
if(store.inStore(args.store.slug, '' + args.post_id) ){
JetEngine.switchDataStoreStatus($this);
}});
$('.jet-remove-from-store.is-front-store', $scope).each(function(){
var $this=$(this),
args=$this.data('args'),
store=JetEngineStores[ args.store.type ],
count=0;
args=JetEngine.ensureJSON(args);
if(! store){
return;
}
if(! store.inStore(args.store.slug, '' + args.post_id) ){
$this.addClass('is-hidden');
}else{
$this.removeClass('is-hidden');
}});
},
initStores: function(){
JetEngine.initFrontStores();
$.each(JetEngineRegisteredStores, function(storeSlug, storeType){
var store=JetEngineStores[ storeType ],
storeData=null,
count=0;
if(! store){
return;
}
storeData=store.getStore(storeSlug);
if(storeData&&storeData.length){
count=storeData.length;
}
$('span.jet-engine-data-store-count[data-store="' + storeSlug + '"]').text(count);
});
JetEngine.loadFrontStoresItems();
},
loadFrontStoresItems: function($scope){
$scope=$scope||$('body');
$('.jet-listing-not-found.jet-listing-grid__items', $scope).each(function(){
var $this=$(this),
nav=$this.data('nav'),
isStore=$this.data('is-store-listing'),
query=nav.query||{};
nav=JetEngine.ensureJSON(nav);
if(query&&query.post__in&&query.post__in.length&&0 >=query.post__in.indexOf('is-front') ){
var storeType=query.post__in[1],
storeSlug=query.post__in[2],
store=JetEngineStores[ storeType ],
posts=[],
$container=$this.closest('.jet-listing-grid');
if(! store){
return;
}
if(! $container.length){
$container=$this.closest('.jet-listing-grid--blocks');
}
if(! $container.length){
$container=$this.closest('.brxe-jet-engine-listing-grid')
}
posts=store.getStore(storeSlug);
if(! posts.length){
return;
}
query.front_store__in=posts;
query.is_front_store=true;
JetEngine.ajaxGetListing({
handler: 'get_listing',
container: $container,
masonry: false,
slider: false,
append: false,
query: query,
widgetSettings: nav.widget_settings,
}, function(response){
JetEngine.widgetListingGrid($container);
});
}else if(isStore){
$(document).trigger('jet-listing-grid-init-store', $this);
}});
},
dataStores: {
queues: {},
getQueue: function(store){
if(!(this.queues?.[ store ] instanceof Promise) ){
this.queues[ store ]=Promise.resolve();
}
return this.queues[ store ];
},
addToQueue: function(store, callback){
this.queues[ store ]=this.getQueue(store).then(callback);
},
},
removeFromStore: function(event){
event.preventDefault();
event.stopPropagation();
var $this=$(this),
args=$this.data('args'),
isDataStoreBtn=$this.hasClass('jet-data-store-link');
args=JetEngine.ensureJSON(args);
if(args.store.is_front){
var store=JetEngineStores[ args.store.type ],
count=0;
if(! store){
return;
}
if(! store.inStore(args.store.slug, '' + args.post_id) ){
var storePosts=store.getStore(args.store.slug);
count=storePosts.length;
}else{
count=store.remove(args.store.slug, args.post_id);
}
$('.jet-add-to-store[data-store="' + args.store.slug + '"][data-post="' + args.post_id + '"]').each(function(){
JetEngine.switchDataStoreStatus($(this), true);
});
$('.jet-data-store-link.jet-remove-from-store[data-store="' + args.store.slug + '"][data-post="' + args.post_id + '"]').each(function(){
JetEngine.switchDataStoreStatus($(this), true);
});
$('span.jet-engine-data-store-count[data-store="' + args.store.slug + '"]').text(count);
if(args.remove_from_listing){
$this.closest('.jet-listing-dynamic-post-' + args.post_id).remove();
}
JetEngine.dataStoreSyncListings(args);
$(document).trigger('jet-engine-data-stores-on-remove', args);
return;
}
if($this.hasClass('jet-store-processing') ){
return;
}
$this.css('opacity', 0.3);
$this.addClass('jet-store-processing');
JetEngine.dataStores.addToQueue(args.store.slug, ()=> {
return $.ajax({
url: JetEngineSettings.ajaxurl,
type: 'POST',
dataType: 'json',
data: {
action: 'jet_engine_remove_from_store_' + args.store.slug,
store: args.store.slug,
post_id: args.post_id,
},
}).done(function(response){
$this.css('opacity', 1);
$this.removeClass('jet-store-processing');
if(response.success){
if(! isDataStoreBtn){
$this.addClass('is-hidden');
}
$('.jet-add-to-store[data-store="' + args.store.slug + '"][data-post="' + args.post_id + '"]').each(function(){
JetEngine.switchDataStoreStatus($(this), true);
});
$('.jet-data-store-link.jet-remove-from-store[data-store="' + args.store.slug + '"][data-post="' + args.post_id + '"]').each(function(){
JetEngine.switchDataStoreStatus($(this), true);
});
JetEngine.dataStoreSyncListings(args);
if(args.remove_from_listing){
$this.closest('.jet-listing-grid__item[data-post="' + args.post_id + '"]').remove();
}
if(response.data.fragments){
$.each(response.data.fragments, function(selector, value){
$(selector).html(value);
});
}
$(document).trigger('jet-engine-data-stores-on-remove', args);
}else{
alert(response.data.message);
}
return response;
}).done(function(response){
if(args.remove_from_listing){
$this.closest('.jet-listing-grid__item').remove();
}
if(response.success){
$('span.jet-engine-data-store-count[data-store="' + args.store.slug + '"]').text(response.data.count);
}}).fail(function(jqXHR, textStatus, errorThrown){
$this.css('opacity', 1);
$this.removeClass('jet-store-processing');
alert(errorThrown);
});
});
},
triggerPopup: function(popupID, isJetEngine, postID){
if(! popupID){
return;
}
var popupData={
popupId: 'jet-popup-' + popupID,
};
if(isJetEngine){
popupData.isJetEngine=true;
popupData.postId=postID;
}
$(window).trigger({
type: 'jet-popup-open-trigger',
popupData: popupData
});
},
dataStoreSyncListings: function(args){
if(! args.synch_id||typeof args.synch_id!=='string'){
return;
}
const ids=args.synch_id.split(/[\s,]+/).map(( id)=> id.replace(/\s/, '') ).filter(( id)=> !! id);
ids.forEach(function(id){
let $container=$('#' + id),
$elemContainer=$container.find('> .elementor-widget-container');
if(! $container.length){
return;
}
let $items=$container.find('.jet-listing-grid__items'),
posts=[],
nav=$items.data('nav')||{},
query=nav.query||{},
postID=window.elementorFrontendConfig?.post?.id||0;
nav=JetEngine.ensureJSON(nav);
if($container.hasClass('brxe-jet-engine-listing-grid') ){
postID=window.bricksData.postId;
}
if($container.hasClass('jet-listing-grid--blocks')){
postID=JetEngineSettings.post_id;
}
if(args?.store?.is_front&&Object.keys(query).length){
let store=JetEngineStores[ args.store.type ];
posts=store.getStore(args.store.slug);
if(! posts.length){
posts=[ 'is-front', args.store.type, args.store.slug ];
}
query.front_store__in=posts;
query.is_front_store=true;
}
let options={
handler: 'get_listing',
container: $elemContainer.length ? $elemContainer:$container,
masonry: false,
slider: false,
append: false,
query: query,
widgetSettings: nav.widget_settings,
postID: postID,
elementID: $container.data('id'),
};
JetEngine.ajaxGetListing(options, function(response){
JetEngine.widgetListingGrid($container);
});
});
},
addToStore: function(event){
event.preventDefault();
event.stopPropagation();
var $this=$(this),
args=$this.data('args');
args=JetEngine.ensureJSON(args);
if($this.hasClass('in-store') ){
if(args.popup){
JetEngine.triggerPopup(args.popup, args.isJetEngine, args.post_id);
}else if('_blank'===$this.attr('target') ){
window.open($this.attr('href') );
}else{
window.location=$this.attr('href');
}
return;
}
if(args.store.is_front){
var store=JetEngineStores[ args.store.type ],
count=0;
if(! store){
return;
}
if(store.inStore(args.store.slug, '' + args.post_id) ){
var storePosts=store.getStore(args.store.slug);
count=storePosts.length;
}else{
count=store.addToStore(args.store.slug, args.post_id, args.store.size);
if(false===count){
return;
}}
if(args.popup){
JetEngine.triggerPopup(args.popup, args.isJetEngine, args.post_id);
}
JetEngine.switchDataStoreStatus($this);
$('span.jet-engine-data-store-count[data-store="' + args.store.slug + '"]').text(count);
$('.jet-remove-from-store[data-store="' + args.store.slug + '"][data-post="' + args.post_id + '"]').removeClass('is-hidden');
JetEngine.dataStoreSyncListings(args);
$(document).trigger('jet-engine-data-stores-on-add', args);
return;
}
if($this.hasClass('jet-store-processing') ){
return;
}
$this.css('opacity', 0.3);
$this.addClass('jet-store-processing');
$(document).trigger('jet-engine-on-add-to-store', [ $this, args ]);
JetEngine.dataStores.addToQueue(args.store.slug, ()=> {
return $.ajax({
url: JetEngineSettings.ajaxurl,
type: 'POST',
dataType: 'json',
data: {
action: 'jet_engine_add_to_store_' + args.store.slug,
store: args.store.slug,
post_id: args.post_id,
},
}).done(function(response){
$this.css('opacity', 1);
$this.removeClass('jet-store-processing');
if(response.success){
JetEngine.switchDataStoreStatus($this);
$('.jet-remove-from-store[data-store="' + args.store.slug + '"][data-post="' + args.post_id + '"]').removeClass('is-hidden');
if(response.data.fragments){
$.each(response.data.fragments, function(selector, value){
$(selector).html(value);
});
}
JetEngine.dataStoreSyncListings(args);
if(args.popup){
JetEngine.triggerPopup(args.popup, args.isJetEngine, args.post_id);
}}else{
alert(response.data.message);
}
$(document).trigger('jet-engine-data-stores-on-add', args);
return response;
}).done(function(response){
if(response.success){
$('span.jet-engine-data-store-count[data-store="' + args.store.slug + '"]').text(response.data.count);
}}).fail(function(jqXHR, textStatus, errorThrown){
$this.css('opacity', 1);
$this.removeClass('jet-store-processing');
alert(errorThrown);
});
});
},
switchDataStoreStatus: function($item, toInitial){
var isDataStoreLink=$item.hasClass('jet-data-store-link'),
$label=$item.find('.jet-listing-dynamic-link__label, .jet-data-store-link__label'),
$icon=$item.find('.jet-listing-dynamic-link__icon, .jet-data-store-link__icon'),
args=$item.data('args'),
replaceLabel,
replaceURL,
replaceIcon;
args=JetEngine.ensureJSON(args);
toInitial=toInitial||false;
if(isDataStoreLink){
switch(args.action_after_added){
case 'remove_from_store':
if(toInitial){
$item.addClass('jet-add-to-store');
$item.removeClass('jet-remove-from-store');
$item.removeClass('in-store');
}else{
$item.addClass('jet-remove-from-store');
$item.removeClass('jet-add-to-store');
$item.addClass('in-store');
}
break;
case 'hide':
if(toInitial){
$item.removeClass('is-hidden');
}else{
$item.addClass('is-hidden');
}
return;
}}
if(toInitial){
replaceLabel=args.label;
replaceIcon=args.icon;
replaceURL='#';
}else{
replaceLabel=args.added_label;
replaceIcon=args.added_icon;
replaceURL=args.added_url;
}
if($label.length){
$label.replaceWith(replaceLabel);
}else{
$item.append(replaceLabel);
}
if($icon.length){
$icon.replaceWith(replaceIcon);
}else{
$item.prepend(replaceIcon);
}
if(isDataStoreLink&&'remove_from_store'===args.action_after_added){
return;
}
$item.attr('href', replaceURL);
if(toInitial){
$item.removeClass('in-store');
}else if(! $item.hasClass('in-store') ){
$item.addClass('in-store');
}},
showConfirmDeleteDialog: function(event){
event.preventDefault();
event.stopPropagation();
var $this=$(this);
if(window.confirm($this.data('delete-message') )){
window.location=$this.attr('href');
}},
handleListingItemClick: function(event){
var url=$(this).data('url'),
target=$(this).data('target')||false;
if(url){
event.preventDefault();
if(window.elementorFrontend&&window.elementorFrontend.isEditMode()){
return;
}
if(-1!==url.indexOf('#jet-engine-action') ){
JetEngine.customUrlActions.runAction(url);
}else{
if('_blank'===target){
window.open(url);
return;
}
window.location=url;
}}
},
customUrlActions: {
selectorOnClick: 'a[href^="#jet-engine-action"][href*="event=click"]',
selectorOnHover: 'a[href^="#jet-engine-action"][href*="event=hover"], [data-url^="#jet-engine-action"][data-url*="event=hover"]',
init: function(){
var timeout=null;
$(document).on('click.JetEngine', this.selectorOnClick, function(event){
event.preventDefault();
JetEngine.customUrlActions.actionHandler(event)
});
$(document).on('click.JetEngine', this.selectorOnHover, function(event){
if('A'===event.currentTarget.nodeName){
event.preventDefault();
}});
$(document).on({
'mouseenter.JetEngine': function(event){
if(timeout){
clearTimeout(timeout);
}
timeout=setTimeout(function(){
JetEngine.customUrlActions.actionHandler(event)
}, window.JetEngineSettings.hoverActionTimeout);
},
'mouseleave.JetEngine': function(){
if(timeout){
clearTimeout(timeout);
timeout=null;
}},
}, this.selectorOnHover);
},
actions: {},
addAction: function(name, callback){
this.actions[ name ]=callback;
},
actionHandler: function(event){
var url=$(event.currentTarget).attr('href')||$(event.currentTarget).attr('data-url');
this.runAction(url);
},
runAction: function(url){
var queryParts=url.split('&'),
settings={};
queryParts.forEach(function(item){
if(-1!==item.indexOf('=') ){
var pair=item.split('=');
settings[ pair[0] ]=decodeURIComponent(pair[1]);
}});
if(! settings.action){
return;
}
var actionCb=this.actions[ settings.action ];
if(! actionCb){
return;
}
actionCb(settings);
}},
prepareJetPopup: function(popupData, widgetData, $scope){
var postId=null;
if(widgetData['is-jet-engine']){
popupData['isJetEngine']=true;
var $gridItems=$scope.closest('.jet-listing-grid__items'),
$gridItem=$scope.closest('.jet-listing-grid__item'),
$calendarItem=$scope.closest('.jet-calendar-week__day-event'),
$itemObject=$scope.closest('[data-item-object]'),
filterProvider=false,
filterQueryId='default';
if($gridItems.length){
popupData['listingSource']=$gridItems.data('listing-source');
popupData['listingId']=$gridItems.data('listing-id');
popupData['queryId']=$gridItems.data('query-id');
}else{
var $queryItems=$scope.closest('[data-query-id]'),
$listingSource=$scope.closest('[data-listing-source]');
if($queryItems.length){
popupData['queryId']=$queryItems.data('query-id');
}
if($listingSource.length){
popupData['listingSource']=$listingSource.data('listing-source');
}}
if($itemObject?.length){
popupData['postId']=$itemObject.data('item-object');
filterProvider=$itemObject.data('render-type');
if(! filterProvider&&$itemObject.hasClass('jet-dynamic-table__row') ){
filterProvider='jet-data-table';
}}else if($gridItem.length){
popupData['postId']=$gridItem.data('post-id');
filterProvider='jet-engine';
}else if($calendarItem.length){
popupData['postId']=$calendarItem.data('post-id');
filterProvider='jet-engine-calendar';
}else if(window.elementorFrontendConfig&&window.elementorFrontendConfig.post){
popupData['postId']=window.elementorFrontendConfig.post.id;
}
if(window.JetEngineFormsEditor&&window.JetEngineFormsEditor.hasEditor){
popupData['hasEditor']=true;
}
if(window.JetSmartFilters){
switch(filterProvider){
case 'jet-engine':
var nav=$gridItems.data('nav');
if(nav.widget_settings?._element_id){
filterQueryId=nav.widget_settings._element_id;
}
break;
case 'jet-engine-calendar':
var settings=$calendarItem.closest('.jet-listing-calendar').data('settings');
if(settings._element_id){
filterQueryId=settings._element_id;
}
break;
case 'jet-data-table':
const table=$scope.closest('.jet-dynamic-table');
const queryId=table[0].dataset.queryId;
const customIds=JetEngineSettings.query_builder.custom_ids;
if(customIds.length!==0&&customIds?.[ queryId ]){
filterQueryId=customIds[ queryId ];
}
break;
}
filterProvider=window.JetPlugins.hooks.applyFilters('jet-engine.prepareJetPopupData.filterProvider', filterProvider, $scope, widgetData);
filterQueryId=window.JetPlugins.hooks.applyFilters('jet-engine.prepareJetPopupData.filterQueryId', filterQueryId, $scope, widgetData);
if(popupData.queryId&&filterProvider
&& window.JetSmartFilters?.filterGroups?.[ filterProvider + '/' + filterQueryId ]?.currentQuery
){
popupData['filtered_query']=window.JetSmartFilters.filterGroups[ filterProvider + '/' + filterQueryId ].currentQuery;
}}
}
return popupData;
},
showCalendarEvent: function(event){
var $this=$(this),
$day=$this.closest('.jet-calendar-week__day'),
$week=$day.closest('.jet-calendar-week'),
$events=$day.find('.jet-calendar-week__day-content'),
activeClass='calendar-event-active';
if($day.hasClass(activeClass) ){
$day.removeClass(activeClass);
JetEngine.activeCalendarDay.remove();
JetEngine.activeCalendarDay=null;
return;
}
if(JetEngine.activeCalendarDay){
JetEngine.activeCalendarDay.remove();
$('.' + activeClass).removeClass(activeClass);
JetEngine.activeCalendarDay=null;
}
$day.addClass('calendar-event-active');
JetEngine.activeCalendarDay=$('<tr class="jet-calendar-week"><td colspan="7" class="jet-calendar-week__day jet-calendar-week__day-mobile"><div class="jet-calendar-week__day-mobile-event">' + $events.html() + '</div></td></tr>');
JetEngine.activeCalendarDay.find('.jet-popup-attach-event-inited').removeClass('jet-popup-attach-event-inited');
JetEngine.initElementsHandlers(JetEngine.activeCalendarDay);
JetEngine.activeCalendarDay.insertAfter($week);
},
widgetListingGrid: function($scope){
var widgetID=$scope.closest('.elementor-widget').data('id'),
$wrapper=$scope.find('.jet-listing-grid').first(),
hasLazyLoad=$wrapper.hasClass('jet-listing-grid--lazy-load'),
$listing=$scope.find('.jet-listing-grid__items').first(),
$slider=$listing.parent('.jet-listing-grid__slider'),
$masonry=$listing.hasClass('jet-listing-grid__masonry') ? $listing:false,
navSettings=$listing.data('nav'),
masonryGrid=false,
listingType='elementor';
if(! widgetID){
widgetID=$scope.data('element-id');
listingType=$scope.data('listing-type');
}
navSettings=JetEngine.ensureJSON(navSettings);
if(hasLazyLoad){
var lazyLoadOptions=$wrapper.data('lazy-load'),
$container=$scope.find('.elementor-widget-container'),
widgetSettings=false;
if(! $container.length){
$container=$scope;
}
if(window.elementorFrontend&&window.elementorFrontend.isEditMode()
&& $wrapper.closest('.elementor[data-elementor-type]').hasClass('elementor-edit-mode')
){
widgetSettings=JetEngine.getEditorElementSettings($scope.closest('.elementor-widget') );
widgetID=false;
}
if(! widgetSettings){
widgetSettings=$scope.data('widget-settings');
}
JetEngine.lazyLoadListing({
container:      $container,
elementID:      widgetID,
postID:         lazyLoadOptions.post_id,
queriedID:      lazyLoadOptions.queried_id||false,
offset:         lazyLoadOptions.offset||'0px',
query:          lazyLoadOptions.query||{},
listingType:    listingType,
widgetSettings: widgetSettings,
extraProps:     lazyLoadOptions.extra_props||false,
});
return;
}
if($slider.length){
JetEngine.initSlider($slider);
}
if($masonry&&$masonry.length){
JetEngine.initMasonry($masonry);
if($scope.hasClass('brxe-jet-engine-listing-grid') ){
$(window).on('load', function(){
JetEngine.runMasonry($masonry);
});
}}
if(navSettings&&navSettings.enabled){
JetEngine.loadMoreListing({
container: $listing,
settings: navSettings,
masonry: $masonry,
slider: $slider,
elementID: widgetID,
});
}
if(window.elementorFrontend&&window.elementorFrontend.isEditMode()
&& $wrapper.closest('.elementor-element-edit-mode').length
){
JetEngine.initElementsHandlers($wrapper);
}},
initMasonry: function($masonry, masonrySettings){
imagesLoaded($masonry, function(){
JetEngine.runMasonry($masonry, masonrySettings);
});
},
runMasonry: function($masonry, masonrySettings){
var defaultSettings={
itemSelector: '> .jet-listing-grid__item',
columnsKey:   'columns',
};
masonrySettings=masonrySettings||{};
masonrySettings=$.extend({}, defaultSettings, masonrySettings);
var $eWidget=$masonry.closest('.elementor-widget'),
$items=$(masonrySettings.itemSelector, $masonry),
options=$masonry.data('masonry-grid-options')||{};
options=JetEngine.ensureJSON(options);
$items.css({
marginTop: ''
});
const { gap }=options;
let margin=null;
if(gap){
margin={
x: +gap.horizontal,
y: +gap.vertical,
};}
var args={
container: $masonry[0],
margin: margin ? margin:0,
};
if($eWidget.length){
var settings=JetEngine.getElementorElementSettings($eWidget),
breakpoints={},
eBreakpoints=window.elementorFrontend.config.responsive.activeBreakpoints,
columnsKey=masonrySettings.columnsKey;
args.columns=settings[columnsKey + '_widescreen'] ? +settings[columnsKey + '_widescreen']:+settings[columnsKey];
Object.keys(eBreakpoints).reverse().forEach(function(breakpointName){
if(settings[columnsKey + '_' + breakpointName]){
if('widescreen'===breakpointName){
breakpoints[eBreakpoints[breakpointName].value - 1]=+settings[columnsKey];
}else{
breakpoints[eBreakpoints[breakpointName].value]=+settings[columnsKey + '_' + breakpointName];
}}
});
args.breakAt=breakpoints;
}else{
args.columns=options.columns.desktop;
args.breakAt={
1025: options.columns.tablet,
768:  options.columns.mobile,
};}
var masonryInstance=Macy(args);
masonryInstance.runOnImageLoad(function (){
masonryInstance.recalculate(true);
}, true);
$masonry.on('jet-engine/listing/recalculate-masonry-listing', function(){
masonryInstance.runOnImageLoad(function (){
masonryInstance.recalculate(true);
}, true);
});
$(document).on('jet-engine/listing/recalculate-masonry', function(){
masonryInstance.recalculate(true);
});
},
ajaxGetListing: function(options, doneCallback, failCallback){
var container=options.container||false,
handler=options.handler||false,
masonry=options.masonry||false,
slider=options.slider||false,
append=options.append||false,
query=options.query||{},
widgetSettings=options.widgetSettings||{},
postID=options.postID||false,
queriedID=options.queriedID||false,
elementID=options.elementID||false,
page=options.page||1,
preventCSS=options.preventCSS||false,
listingType=options.listingType||false,
extraProps=options.extraProps||false,
isEditMode=window.elementorFrontend&&window.elementorFrontend.isEditMode();
doneCallback=doneCallback||function(response){};
if(! container||! handler){
return;
}
if(! preventCSS){
container.css({
pointerEvents: 'none',
opacity: '0.5',
cursor: 'default',
});
}
var requestData={
action: 'jet_engine_ajax',
handler: handler,
query: query,
widget_settings: widgetSettings,
page_settings: {
post_id: postID,
queried_id: queriedID,
element_id: elementID,
page: page,
},
listing_type: listingType,
isEditMode: isEditMode,
addedPostCSS: JetEngine.addedPostCSS
};
if(extraProps){
Object.assign(requestData, extraProps);
}
$.ajax({
url: JetEngineSettings.ajaxlisting,
type: 'POST',
dataType: 'json',
data: requestData,
}).done(function(response){
if(!preventCSS){
container.css({
pointerEvents: '',
opacity: '',
cursor: '',
});
}
if(response.success){
JetEngine.enqueueAssetsFromResponse(response);
container.data('page', page);
var $html=$(response.data.html);
JetEngine.initFrontStores($html);
if(slider&&slider.length){
var $slider=slider.find('> .jet-listing-grid__items');
if(! $slider.hasClass('slick-initialized') ){
if(append){
container.append($html);
}else{
container.html($html);
}
var itemsCount=container.find('> .jet-listing-grid__item').length;
slider.addClass('jet-listing-grid__slider');
JetEngine.initSlider(slider, { itemsCount: itemsCount });
}else{
$html.each(function(index, el){
$slider.slick('slickAdd', el);
});
}}else{
if(append){
container.append($html);
}else{
container.html($html);
}
if(masonry&&masonry.length){
masonry.trigger('jet-engine/listing/recalculate-masonry-listing');
}}
JetEngine.reinitBricksScripts(elementID);
Promise.all(JetEngine.assetsPromises).then(function(){
JetEngine.initElementsHandlers($html);
JetEngine.assetsPromises=[];
});
if(response.data.fragments){
for(var selector in response.data.fragments){
var $selector=$(selector);
if($selector.length){
$selector.html(response.data.fragments[ selector ]);
}}
}}
$(document).trigger('jet-engine/listing/ajax-get-listing/done', [ $html, options ]);
}).done(doneCallback).fail(function(){
container.removeAttr('style');
if(failCallback){
failCallback.call();
}});
},
loadMoreListing: function(args){
var instance={
setup: function(){
this.container=args.container;
this.masonry=args.masonry;
this.slider=args.slider;
this.settings=args.settings;
this.elementID=args.elementID;
this.wrapper=this.container.closest('.jet-listing-grid');
this.type=this.settings.type||'click';
this.page=parseInt(this.container.data('page'), 10)||0;
this.pages=parseInt(this.container.data('pages'), 10)||0;
this.queriedID=this.container.data('queried-id')||false;
},
init: function(){
this.setup();
switch(this.type){
case 'click':
this.handleMore();
break;
case 'scroll':
if(( ! window.elementorFrontend||! window.elementorFrontend.isEditMode())&&! this.slider.length){
this.handleInfiniteScroll();
}
break;
}},
handleMore: function(){
if(! this.settings.more_el){
return;
}
var self=this,
$button=$(this.settings.more_el);
if(! $button.length){
return;
}
if(! this.pages||this.page===this.pages&&! window.elementor){
$button.css('display', 'none');
}else{
$button.removeAttr('style');
}
$(document)
.off('click', this.settings.more_el)
.on('click', this.settings.more_el, function(event){
event.preventDefault();
if(! self.pages||self.page >=self.pages){
$button.css('display', 'none');
return;
}
$button.css({
pointerEvents: 'none',
opacity: '0.5',
cursor: 'default',
});
self.ajaxGetItems(function(response){
$button.removeAttr('style');
if(response.success&&self.page===self.pages){
$button.css('display', 'none');
}}, function(){
$button.button.removeAttr('style');
}
);
});
},
handleInfiniteScroll: function(){
if(this.container.hasClass('jet-listing-not-found') ){
return;
}
if(! this.pages||this.page===this.pages){
return;
}
var self=this,
$trigger=this.wrapper.find('.jet-listing-grid__loader'),
offset='0%';
if(! $trigger.length){
$trigger=$('<div>', {
class: 'jet-listing-grid__loading-trigger'
});
this.wrapper.append($trigger);
}
if(this.settings.widget_settings&&this.settings.widget_settings.load_more_offset){
var offsetValue=this.settings.widget_settings.load_more_offset;
switch(typeof offsetValue){
case 'object':
var size=offsetValue.size ? offsetValue.size:'0',
unit=offsetValue.unit ? offsetValue.unit:'px';
offset=size + unit;
break;
case 'number':
case 'string':
offset=offsetValue + 'px';
break;
}}
var observer=new IntersectionObserver(
function(entries, observer){
if(entries[0].isIntersecting){
self.ajaxGetItems(function(){
if(self.page!==self.pages){
setTimeout(function(){
observer.observe(entries[0].target);
}, 250);
}});
observer.unobserve(entries[0].target);
}},
{
rootMargin: '0% 0% ' + offset + ' 0%',
}
);
observer.observe($trigger[0]);
},
ajaxGetItems: function(doneCallback, failCallback){
var self=this;
this.page++;
this.wrapper.addClass('jet-listing-grid-loading');
JetEngine.ajaxGetListing({
handler:        'listing_load_more',
container:      this.container,
masonry:        this.masonry,
slider:         this.slider,
append:         true,
query:          this.settings.query,
widgetSettings: this.settings.widget_settings,
page:           this.page,
elementID:      this.elementID,
queriedID:      this.queriedID,
preventCSS:     !! this.wrapper.find('.jet-listing-grid__loader').length,
}, function(response){
JetEngine.lazyLoading=false;
self.wrapper.removeClass('jet-listing-grid-loading');
if(doneCallback){
doneCallback(response);
}
$(document).trigger('jet-engine/listing-grid/after-load-more', [args, response]);
}, function(){
JetEngine.lazyLoading=false;
self.wrapper.removeClass('jet-listing-grid-loading');
if(failCallback){
failCallback();
}});
},
};
instance.init();
},
lazyLoadListing: function(args){
var $wrapper=args.container.find('.jet-listing-grid'),
observer=new IntersectionObserver(
function(entries, observer){
if(entries[0].isIntersecting){
JetEngine.lazyLoading=true;
if(! $wrapper.length){
$wrapper=args.container;
}
$wrapper.addClass('jet-listing-grid-loading');
JetEngine.ajaxGetListing({
handler: 'get_listing',
container: args.container,
masonry: false,
slider: false,
append: false,
elementID: args.elementID,
postID: args.postID,
queriedID: args.queriedID,
query: args.query,
widgetSettings: args.widgetSettings,
listingType: args.listingType,
preventCSS: true,
extraProps: args.extraProps,
}, function(response){
$wrapper.removeClass('jet-listing-grid-loading');
var $widget=args.container.closest('.elementor-widget');
if(! $widget.length){
$widget=args.container.closest('.jet-listing-grid--blocks');
}
if(! $widget.length){
$widget=args.container;
}
if($widget.length){
$widget.find('.jet-listing-grid').first().removeClass('jet-listing-grid--lazy-load');
}
JetEngine.widgetListingGrid($widget);
JetEngine.loadFrontStoresItems($widget);
JetEngine.lazyLoading=false;
let needReInitFilters=false;
let isFrontend=JetEngine.isFrontend();
if(isFrontend&&window.JetSmartFilterSettings){
if(response.data.filters_data){
$.each(response.data.filters_data, function(param, data){
if('extra_props'===param){
window.JetSmartFilterSettings[ param ]=$.extend({},
window.JetSmartFilterSettings[ param ],
data
);
}else{
if(window.JetSmartFilterSettings[ param ]['jet-engine']){
window.JetSmartFilterSettings[ param ]['jet-engine']=$.extend({},
window.JetSmartFilterSettings[ param ]['jet-engine'],
data
);
}else{
window.JetSmartFilterSettings[ param ]['jet-engine']=data;
}}
});
needReInitFilters=true;
}
if(response.data.indexer_data){
const {
provider=false,
query={}}=response.data.indexer_data;
window.JetSmartFilters.setIndexedData(provider, query);
}}
if(needReInitFilters&&window.JetSmartFilters){
window.JetSmartFilters.reinitFilters();
}
$(document).trigger('jet-engine/listing-grid/after-lazy-load', [ args, response ]);
}, function(){
JetEngine.lazyLoading=false;
if(! $wrapper.length){
$wrapper=args.container;
}
$wrapper.removeClass('jet-listing-grid-loading');
});
observer.unobserve(entries[0].target);
}},
{
rootMargin: '0% 0% ' + args.offset + ' 0%'
}
);
observer.observe(args.container[0]);
},
ensureJSON: function(maybeJSON){
if(! maybeJSON){
return maybeJSON;
}
if('string'===typeof maybeJSON){
console.log(maybeJSON);
}
return maybeJSON;
},
initSlider: function($slider, customOptions){
var $eWidget=$slider.closest('.elementor-widget'),
options=$slider.data('slider_options'),
windowWidth=$(window).width(),
tabletBP=1025,
mobileBP=768,
tabletSlides, mobileSlides, defaultOptions, slickOptions;
options=JetEngine.ensureJSON(options);
customOptions=customOptions||{};
options=$.extend({}, options, customOptions);
if($eWidget.length){
var settings=JetEngine.getElementorElementSettings($eWidget),
responsive=[],
deviceMode=elementorFrontend.getCurrentDeviceMode(),
eBreakpoints=window.elementorFrontend.config.responsive.activeBreakpoints;
options.slidesToShow=settings.columns_widescreen ? +settings.columns_widescreen:+settings.columns;
Object.keys(eBreakpoints).reverse().forEach(function(breakpointName){
if(settings['columns_' + breakpointName]){
if('widescreen'===breakpointName){
responsive.push({
breakpoint: eBreakpoints[breakpointName].value,
settings: {
slidesToShow: +settings['columns'],
}});
}else{
var breakpointSettings={
breakpoint: eBreakpoints[breakpointName].value + 1,
settings:   {
slidesToShow: +settings['columns_' + breakpointName],
}};
if(options.slidesToScroll > breakpointSettings.settings.slidesToShow){
breakpointSettings.settings.slidesToScroll=breakpointSettings.settings.slidesToShow;
}
responsive.push(breakpointSettings);
}}
});
options.responsive=responsive;
}else{
if(! options.slidesToShow){
options.slidesToShow={
desktop: 3,
tablet: 1,
mobile: 1,
}}
if(options.itemsCount <=options.slidesToShow.desktop&&windowWidth >=tabletBP){
$slider.removeClass('jet-listing-grid__slider');
return;
}else if(options.itemsCount <=options.slidesToShow.tablet&&tabletBP > windowWidth&&windowWidth >=mobileBP){
$slider.removeClass('jet-listing-grid__slider');
return;
}else if(options.itemsCount <=options.slidesToShow.mobile&&windowWidth < mobileBP){
$slider.removeClass('jet-listing-grid__slider');
return;
}
if(options.slidesToShow.tablet){
tabletSlides=options.slidesToShow.tablet;
}else{
tabletSlides=1===options.slidesToShow.desktop ? 1:2;
}
if(options.slidesToShow.mobile){
mobileSlides=options.slidesToShow.mobile;
}else{
mobileSlides=1;
}
options.slidesToShow=options.slidesToShow.desktop;
options.responsive=[
{
breakpoint: 1025,
settings: {
slidesToShow: tabletSlides,
slidesToScroll: options.slidesToScroll > tabletSlides ? tabletSlides:options.slidesToScroll
}},
{
breakpoint: 768,
settings: {
slidesToShow: mobileSlides,
slidesToScroll: 1
}}
];
}
defaultOptions={
customPaging: function(slider, i){
return $('<span />').text(i + 1).attr('role', 'tab');
},
slide: '.jet-listing-grid__item',
dotsClass: 'jet-slick-dots',
};
slickOptions=$.extend({}, defaultOptions, options);
var $sliderItems=$slider.find('> .jet-listing-grid__items');
if(slickOptions.infinite){
$sliderItems.on('init', function(){
var $items=$(this),
$clonedSlides=$('> .slick-list > .slick-track > .slick-cloned.jet-listing-grid__item', $items);
if(!$clonedSlides.length){
return;
}
JetEngine.initElementsHandlers($clonedSlides);
if($slider.find('.bricks-lazy-hidden').length){
bricksLazyLoad();
}});
}
if(slickOptions.rtl){
$sliderItems.on('init', function(){
var $items=$(this),
$lazyImages=$('img[loading=lazy]', $items),
lazyImageObserver=new IntersectionObserver(
function(entries, observer){
entries.forEach(function(entry){
if(entry.isIntersecting){
if(! entry.target.complete){
entry.target.removeAttribute('loading');
}
observer.unobserve(entry.target);
}});
}
);
$lazyImages.each(function(){
const $img=$(this);
lazyImageObserver.observe($img[0]);
});
});
}
if($sliderItems.hasClass('slick-initialized') ){
$sliderItems.slick('refresh', true);
return;
}
if(slickOptions.variableWidth){
slickOptions.slidesToShow=1;
slickOptions.slidesToScroll=1;
slickOptions.responsive=null;
}
$sliderItems.on('init.JetEngine',
()=> {
$sliderItems.find('.slick-active').each((i, el)=> {
JetEngine.rerunElementorAnimation($(el) );
}
);
}
);
$sliderItems.on('afterChange.JetEngine',
()=> {
$sliderItems.find('.slick-active').each((i, el)=> {
JetEngine.rerunElementorAnimation($(el) );
}
);
}
);
$sliderItems.slick(slickOptions);
$sliderItems.off('init.JetEngine');
},
maybeReinitSlider: function(event, $scope){
var $slider=$scope.find('.jet-listing-grid__slider');
if($slider.length){
$slider.each(function(){
JetEngine.initSlider($(this) );
});
}},
rerunElementorAnimation: function($scope, forceRerun=false){
let selector='.elementor-element[data-settings*="_animation"]';
if(! forceRerun){
selector +=':is(.elementor-invisible, :not(.jet-engine-animation-rerun))';
}
$scope.find(selector).each((i, el)=> {
const settings=JSON.parse(el.dataset.settings||'{}');
const $el=$(el);
if(settings._animation){
const classes=`animated ${settings._animation}`;
$el.removeClass(classes);
setTimeout(
()=> {
$el.removeClass('elementor-invisible').addClass(classes);
$el.addClass('jet-engine-animation-rerun');
},
settings._animation_delay
);
}}
);
},
widgetDynamicField: function($scope){
var $slider=$scope.find('.jet-engine-gallery-slider');
if($slider.length){
if($.isFunction($.fn.imagesLoaded) ){
$slider.imagesLoaded().always(function(instance){
var $eWidget=$slider.closest('.elementor-widget');
if($slider.hasClass('slick-initialized') ){
$slider.slick('refresh', true);
}else{
var atts=$slider.data('atts');
atts=JetEngine.ensureJSON(atts);
if($eWidget.length){
var settings=JetEngine.getElementorElementSettings($scope),
eBreakpoints=window.elementorFrontend.config.responsive.activeBreakpoints,
responsive=[];
if(settings.img_slider_cols||settings.img_slider_cols_widescreen){
atts.slidesToShow=settings.img_slider_cols_widescreen ? +settings.img_slider_cols_widescreen:+settings.img_slider_cols;
}
Object.keys(eBreakpoints).reverse().forEach(function(breakpointName){
if(settings['img_slider_cols_' + breakpointName]){
if('widescreen'===breakpointName){
responsive.push({
breakpoint: eBreakpoints[breakpointName].value,
settings:   {
slidesToShow: +settings['img_slider_cols'],
}});
}else{
var breakpointSettings={
breakpoint: eBreakpoints[breakpointName].value + 1,
settings:   {
slidesToShow: +settings['img_slider_cols_' + breakpointName],
}};
responsive.push(breakpointSettings);
}}
});
atts.responsive=responsive;
}
$slider.slick(atts);
}});
}}
$slider.on('init', function (event, slick){
const slider=event.target;
if(!slider.classList.contains('jet-engine-gallery-lightbox')||! window?.PhotoSwipeLightbox){
return;
}
let lightbox=new PhotoSwipeLightbox({
mainClass: 'brx',
gallery: slider,
children: 'a',
showHideAnimationType: 'none',
zoomAnimationDuration: false,
pswpModule: PhotoSwipe5,
});
lightbox.addFilter('numItems', numItems=> slick.slideCount);
lightbox.addFilter('clickedIndex', function (clickedIndex, e){
const slide=e.target.closest('.slick-slide');
if(!slide){
return clickedIndex;
}
if(clickedIndex >=slick.slideCount){
return clickedIndex % slick.slideCount;
}
return clickedIndex;
});
lightbox.addFilter('thumbEl', (thumbnail, itemData, index)=> {
return thumbnail;
});
lightbox.addFilter('thumbBounds', (thumbBounds, itemData, index)=> {
return thumbBounds;
});
lightbox.init();
});
var $masonry=$scope.find('.jet-engine-gallery-grid--masonry');
if($masonry.length){
JetEngine.initMasonry($masonry, {
columnsKey: 'img_columns',
itemSelector: '> .jet-engine-gallery-grid__item',
});
}},
calendarCache: {
entries: {},
iterate: function(iterator, callback){
if(typeof iterator?.forEach==='function'){
iterator.forEach(callback);
}else if(typeof iterator?.next==='function'){
let next;
while(next=iterator.next(), ! next.done){
callback.call(this, next.value);
}}
},
get: function(cacheId, month){
return JetEngine.calendarCache.entries[ cacheId ]?.get(month)||false;
},
set: function(cacheId, month, content, settings={}, timestamp=false){
if(! JetEngine.calendarCache.entries[ cacheId ]){
JetEngine.calendarCache.entries[ cacheId ]=new Map();
}
if(! JetEngine.calendarCache.entries[ cacheId ].has(month)
&& JetEngine.calendarCache.entries[ cacheId ].size >(settings['max_cache'] ?? 12) - 1
){
let deletedKey;
const mapKeys=JetEngine.calendarCache.entries[ cacheId ].keys();
if(settings['__switch_direction'] < 0){
let maxDate=false;
JetEngine.calendarCache.iterate(mapKeys,
function(key){
const parsedDate=Date.parse(key);
if(! maxDate||parsedDate > maxDate){
maxDate=parsedDate;
deletedKey=key;
}}
);
}else{
let minDate=false;
JetEngine.calendarCache.iterate(mapKeys,
function(key){
const parsedDate=Date.parse(key);
if(! minDate||parsedDate < minDate){
minDate=parsedDate;
deletedKey=key;
}}
);
}
JetEngine.calendarCache.entries[ cacheId ].delete(deletedKey);
}
if(! timestamp){
timestamp=Date.now();
}
JetEngine.calendarCache.entries[ cacheId ].set(month, [ content, timestamp ]);
},
update: function(cacheId, month, content, settings={}){
let cached=JetEngine.calendarCache.get(cacheId, month);
JetEngine.calendarCache.set(cacheId, month, content, settings, cached[1] ?? false);
},
deleteExpiredEntries: function(cacheId, cacheTimeout){
for(const cacheId in JetEngine.calendarCache.entries){
if(! document.querySelector(`.jet-calendar[data-cache-id="${cacheId}"]`) ){
delete JetEngine.calendarCache.entries[ cacheId ];
}}
if(! JetEngine.calendarCache.entries[ cacheId ]){
return;
}
JetEngine.calendarCache.iterate(JetEngine.calendarCache.entries[ cacheId ].keys(),
function(month){
if(JetEngine.calendarCache.isExpired(cacheId, month, cacheTimeout) ){
JetEngine.calendarCache.entries[ cacheId ].delete(month);
}}
);
},
isExpired: function(cacheId, month, cacheTimeout){
if(cacheTimeout < 0){
return false;
}
const cached=JetEngine.calendarCache.get(cacheId, month);
if(! cached||! Array.isArray(cached) ){
return true;
}
return ! cached[1]||cached[1] < Date.now() - cacheTimeout;
},
clear: function(e, $calendar){
const cacheId=$calendar.data('cache-id')||false;
if(! cacheId){
return;
}
JetEngine.calendarCache.entries[ cacheId ]=new Map();
},
modifyJetSmartFiltersSetiings: function($widget, widgetType, monthData){
if(! window.JetSmartFilterSettings||! window.JetSmartFilterSettings.settings){
return;
}
if(! window.JetSmartFilterSettings.settings['jet-engine-calendar']){
return;
}
monthData=monthData.split(' ');
const month=monthData[0],
year=monthData[1];
let widgetId;
switch(widgetType){
case 'block':
widgetId=$widget.closest('.jet-listing-calendar-block')[0].id;
if(! widgetId){
widgetId='default';
}
if(window.JetSmartFilterSettings.settings['jet-engine-calendar'][ widgetId ]){
window.JetSmartFilterSettings.settings['jet-engine-calendar'][ widgetId ]['start_from_month']=month;
window.JetSmartFilterSettings.settings['jet-engine-calendar'][ widgetId ]['start_from_year']=year;
}
break;
case 'bricks':
widgetId=$widget.data('element-id');
if(! widgetId){
break;
}
for(const id in window.JetSmartFilterSettings.settings['jet-engine-calendar']){
if(window.JetSmartFilterSettings.settings['jet-engine-calendar'][ id ]?._id===widgetId){
window.JetSmartFilterSettings.settings['jet-engine-calendar'][ id ]['start_from_month']=month;
window.JetSmartFilterSettings.settings['jet-engine-calendar'][ id ]['start_from_year']=year;
break;
}}
break;
case 'elementor':
widgetId=$widget.closest('.elementor-widget-jet-listing-calendar')[0].id;
if(! widgetId){
widgetId='default';
}
if(window.JetSmartFilterSettings.settings['jet-engine-calendar']?.[ widgetId ]){
window.JetSmartFilterSettings.settings['jet-engine-calendar'][ widgetId ]['start_from_month']=month;
window.JetSmartFilterSettings.settings['jet-engine-calendar'][ widgetId ]['start_from_year']=year;
}
break;
}},
},
selectCalendarMonth: function($event){
let wrapper=this.closest('.jet-calendar-caption__dates');
if(! JetEngine.updateDateSelectLabels(wrapper) ){
return;
}
JetEngine.switchCalendarMonth.bind(wrapper)()
},
updateDateSelectLabels: function(wrapper){
let month=wrapper.querySelector('.jet-calendar-caption__date-select.select-month'),
year=wrapper.querySelector('.jet-calendar-caption__date-select.select-year');
if(! month||! year){
return false;
}
let monthLabel=wrapper.querySelector('.jet-calendar-caption__date-select-label.select-month'),
yearLabel=wrapper.querySelector('.jet-calendar-caption__date-select-label.select-year');
wrapper.setAttribute('data-month', month.value + ' ' + year.value);
const monthOption=month.querySelector(`option[value="${month.value}"]`),
yearOption=year.querySelector(`option[value="${year.value}"]`);
monthLabel.innerHTML=monthOption.innerHTML;
yearLabel.innerHTML=yearOption.innerHTML;
return true;
},
switchCalendarMonth: function($event){
var $this=$(this),
$calendar=$this.closest('.jet-calendar'),
$widget=$this.closest('.elementor-widget-jet-listing-calendar'),
widgetID=$widget.closest('.elementor-widget').data('id'),
settings=$calendar.data('settings'),
post=$calendar.data('post'),
month=$this.data('month');
settings=JetEngine.ensureJSON(settings);
if(this.classList.contains('nav-link-prev') ){
settings['__switch_direction']=-1;
}else if(this.classList.contains('nav-link-next') ){
settings['__switch_direction']=1;
}else{
settings['__switch_direction']=0;
}
let widgetType='elementor';
if(! $widget.length){
$widget=$calendar.closest('.jet-listing-calendar-block');
widgetType='block';
}
if(! $widget.length){
$widget=$calendar.closest('.brxe-jet-listing-calendar');
widgetID=$widget.data('element-id');
widgetType='bricks';
}
JetEngine.calendarCache.modifyJetSmartFiltersSetiings($widget, widgetType, month);
const cacheId=$calendar.data('cache-id')||false,
cacheTimeout=(settings['cache_timeout'] ?? 0) * 1000;
if(cacheId&&cacheTimeout){
JetEngine.calendarCache.deleteExpiredEntries(cacheId, cacheTimeout);
if(window.bricksIsFrontend){
$calendar.find('.accordion-item.listening, .brxe-accordion-nested > .listening')
.removeClass('listening brx-open');
}
JetEngine.calendarCache.update(cacheId, settings['prev_month'], $calendar.prop('outerHTML'), settings);
const cached=JetEngine.calendarCache.get(cacheId, month);
if(cached?.length&&cached[0]&&! JetEngine.calendarCache.isExpired(cacheId, month, cacheTimeout) ){
let replacement=$(cached[0]);
replacement.removeClass('jet-calendar-loading');
$calendar.replaceWith(replacement[0]);
JetEngine.initElementsHandlers($widget);
JetEngine.updateDateSelectLabels($widget[0]);
JetEngine.reinitBricksScripts(widgetID);
$(document).trigger('jet-engine-request-calendar-cached', [ $widget ]);
return;
}}
$calendar.addClass('jet-calendar-loading');
JetEngine.currentRequest={
jet_engine_action: 'jet_engine_calendar_get_month',
month: month,
settings: settings,
post: post,
};
$(document).trigger('jet-engine-request-calendar');
$.ajax({
url: JetEngineSettings.ajaxlisting,
type: 'POST',
dataType: 'json',
data: JetEngine.currentRequest,
}).done(function(response){
if(response.success){
$calendar.replaceWith(response.data.content);
if(cacheId&&cacheTimeout){
JetEngine.calendarCache.set(cacheId, month, response.data.content, settings);
}
JetEngine.initElementsHandlers($widget);
JetEngine.reinitBricksScripts(widgetID);
$(document).trigger('jet-engine-request-calendar-done', [ $widget ]);
}
$calendar.removeClass('jet-calendar-loading');
});
},
initElementsHandlers: function($selector){
window.JetPlugins.init($selector);
$selector.find('[data-element_type]').each(function(){
var $this=$(this),
elementType=$this.data('element_type');
if(!elementType){
return;
}
if(! window?.elementorFrontend?.hooks?.doAction){
return;
}
if('widget'===elementType){
elementType=$this.data('widget_type');
window.elementorFrontend.hooks.doAction('frontend/element_ready/widget', $this, $);
}
window.elementorFrontend.hooks.doAction('frontend/element_ready/global', $this, $);
window.elementorFrontend.hooks.doAction('frontend/element_ready/' + elementType, $this, $);
});
if(window.elementorFrontend){
const elementorLazyLoad=new Event("elementor/lazyload/observe");
document.dispatchEvent(elementorLazyLoad);
}
if(window.JetPopupFrontend&&window.JetPopupFrontend.initAttachedPopups){
$selector.find('.jet-popup-attach-event-inited').removeClass('jet-popup-attach-event-inited');
window.JetPopupFrontend.initAttachedPopups($selector);
}},
getElementorElementSettings: function($scope){
if(window.elementorFrontend&&window.elementorFrontend.isEditMode()&&$scope.hasClass('elementor-element-edit-mode') ){
return JetEngine.getEditorElementSettings($scope);
}
return $scope.data('settings')||{};},
getEditorElementSettings: function($scope){
var modelCID=$scope.data('model-cid'),
elementData;
if(! modelCID){
return {};}
if(! window.elementorFrontend.hasOwnProperty('config') ){
return {};}
if(! window.elementorFrontend.config.hasOwnProperty('elements') ){
return {};}
if(! window.elementorFrontend.config.elements.hasOwnProperty('data') ){
return {};}
elementData=window.elementorFrontend.config.elements.data[ modelCID ];
if(! elementData){
return {};}
return elementData.toJSON();
},
debounce: function(threshold, callback){
var timeout;
return function debounced($event){
function delayed(){
callback.call(this, $event);
timeout=null;
}
if(timeout){
clearTimeout(timeout);
}
timeout=setTimeout(delayed, threshold);
};},
updateAddedStyles: function(){
if(window.JetEngineSettings&&window.JetEngineSettings.addedPostCSS){
$.each(window.JetEngineSettings.addedPostCSS, function(ind, cssID){
JetEngine.addedStyles.push('elementor-post-' + cssID);
JetEngine.addedPostCSS.push(cssID);
});
}},
enqueueAssetsFromResponse: function(response){
if(response.data.scripts){
JetEngine.enqueueScripts(response.data.scripts);
}
if(response.data.styles){
JetEngine.enqueueStyles(response.data.styles);
}},
enqueueScripts: function(scripts){
$.each(scripts, function(handle, scriptHtml){
JetEngine.enqueueScript(handle, scriptHtml)
});
},
enqueueStyles: function(styles){
$.each(styles, function(handle, styleHtml){
JetEngine.enqueueStyle(handle, styleHtml)
});
},
enqueueScript: function(handle, scriptHtml){
if(-1!==JetEngine.addedScripts.indexOf(handle) ){
return;
}
if(! scriptHtml){
return;
}
var selector='script[id="' + handle + '-js"]';
if($(selector).length){
return;
}
var scriptsTags=scriptHtml.match(/<script[\s\S]*?<\/script>/gm);
if(scriptsTags.length){
for(var i=0; i < scriptsTags.length; i++){
JetEngine.assetsPromises.push(new Promise(function(resolve, reject){
var $tag=$(scriptsTags[i]);
if($tag[0].src){
var tag=document.createElement('script');
tag.type=$tag[0].type;
tag.src=$tag[0].src;
tag.id=$tag[0].id;
tag.async=false;
tag.onload=function(){
resolve();
};
document.body.append(tag);
}else{
$('body').append(scriptsTags[i]);
resolve();
}})
);
}}
JetEngine.addedScripts.push(handle);
},
enqueueStyle: function(handle, styleHtml){
if(-1!==handle.indexOf('google-fonts') ){
JetEngine.enqueueGoogleFonts(handle, styleHtml);
return;
}
if(-1!==JetEngine.addedStyles.indexOf(handle) ){
return;
}
var selector='link[id="' + handle + '-css"],style[id="' + handle + '"]';
if($(selector).length){
return;
}
$('head').append(styleHtml);
JetEngine.addedStyles.push(handle);
if(-1!==handle.indexOf('elementor-post') ){
var postID=handle.replace('elementor-post-', '');
JetEngine.addedPostCSS.push(postID);
}},
enqueueGoogleFonts: function(handle, styleHtml){
var selector='link[id="' + handle + '-css"]';
if($(selector).length){}
$('head').append(styleHtml);
},
isFrontend: function (){
if(typeof window.elementorFrontend!=='undefined'){
return !window.elementorFrontend.isEditMode();
}
if(typeof window.bricksIsFrontend!=='undefined'){
return window.bricksIsFrontend;
}
return true;
},
reinitBricksScripts: function (elementId){
if(!window.bricksIsFrontend){
return;
}
document.dispatchEvent(new CustomEvent("bricks/ajax/query_result/displayed", {
detail: {
queryId: elementId||null
}})
);
},
filters:(function(){
var callbacks={};
return {
addFilter: function(name, callback){
if(! callbacks.hasOwnProperty(name) ){
callbacks[name]=[];
}
callbacks[name].push(callback);
},
applyFilters: function(name, value, args){
if(! callbacks.hasOwnProperty(name) ){
return value;
}
if(args===undefined){
args=[];
}
var container=callbacks[ name ];
var cbLen=container.length;
for (var i=0; i < cbLen; i++){
if(typeof container[i]==='function'){
value=container[i](value, args);
}}
return value;
}};})()
};
$(window).on('elementor/frontend/init', JetEngine.init);
window.JetEngine=JetEngine;
document.addEventListener('jet-smart-filters/inited', function(){
window.JetSmartFilters.events.subscribe('ajaxFilters/updated', function(provider, queryId){
window.JetEngine.initFrontStores(window.JetSmartFilters?.filterGroups?.[ provider + '/' + queryId ]?.$provider);
});
});
JetEngine.commonInit();
window.addEventListener('DOMContentLoaded', function(){
setTimeout(()=> JetEngine.initBlocks());
JetEngine.initDone=true;
});
window.jetEngineBricks=function(){
JetEngine.initBricks();
}
$(window).trigger('jet-engine/frontend/loaded');
const initFilterConflictHandler=function(){
const conflictHandler=class FilterConflictHandler {
isResolving=false;
constructor(){
this.init();
}
init(e){
JetSmartFilters.events.subscribe('fiter/change',(filter)=> {
if(this.isResolving||filter?.filterConflictHandlerBlocked){
return;
}
this.isResolving=true;
if(! [ 'map-sync', 'user-geolocation', 'location-distance' ].includes(filter?.name) ){
return;
}
let conflictingTypes=[];
switch(filter.name){
case 'map-sync':
conflictingTypes=[ 'user-geolocation', 'location-distance' ];
break;
case 'location-distance':
conflictingTypes=[ 'map-sync', 'user-geolocation' ];
break;
default:
conflictingTypes=[ 'map-sync' ];
}
this.resetConflictingFilters(filter, conflictingTypes);
});
}
resetConflictingFilters(filter, conflictingTypes){
for(const conflictingFilter of this.getFilters(filter, conflictingTypes) ){
conflictingFilter.reset();
conflictingFilter.dataValue=false;
conflictingFilter.wasChanged ? conflictingFilter.wasChanged():conflictingFilter.wasСhanged();
}
this.isResolving=false;
}
getFilters(filter, types){
if(! types.length){
return [];
}
let filters=[];
filter.filterGroup.filters.forEach((f)=> {
if(! types.includes(f.name) ){
return;
}
filters.push(f);
}
);
return filters;
}};
new conflictHandler();
}
document.addEventListener('jet-smart-filters/inited', initFilterConflictHandler);
}(jQuery) );
(function($){
"use strict";
$.fn.jetFormConditional=function(options){
var settings=$.extend({
hideJS: true
}, options);
var checkValue=function($listenTo, listenFor, operator){
var val='';
var checkResult=false;
var controlType='plain';
operator=operator||'equal';
if($listenTo.is('input[type=checkbox]') ){
controlType='checkbox';
}else if($listenTo.is('input[type=radio]') ){
controlType='radio';
}
if('checkbox'===controlType){
val=[];
}
if('plain'===controlType){
val=$listenTo.val();
}else{
$listenTo.each(function(){
var $control=$(this);
if($control.is(':checked') ){
if('checkbox'===controlType){
val.push($control.val());
}else{
val=$control.val();
}}
});
}
if('is-hidden'===val){
val='';
}
switch(operator){
case 'equal':
if(val&&val.constructor===Array){
checkResult=false;
}else{
checkResult=(val==listenFor);
}
break;
case 'greater':
if(val&&val.constructor===Array){
checkResult=false;
}else{
checkResult=(parseFloat(val) > parseFloat(listenFor) );
}
break;
case 'less':
if(val&&val.constructor===Array){
checkResult=false;
}else{
checkResult=(parseFloat(val) < parseFloat(listenFor) );
}
break;
case 'between':
if(val&&val.constructor===Array){
checkResult=false;
}else{
if(2 <=listenFor.length){
let from=parseFloat(listenFor[0]);
let to=parseFloat(listenFor[1]);
val=parseFloat(val);
checkResult=(from <=val&&val <=to);
}else{
checkResult=false;
}}
break;
case 'one_of':
if(val&&val.constructor===Array){
var intersect=listenFor.filter(function(n){
return val.indexOf(n)!==-1;
});
checkResult=0 < intersect.length;
}else if(! val){
checkResult=false;
}else{
if(listenFor.length){
checkResult=0 <=listenFor.indexOf(val);
}else{
checkResult=false;
}}
break;
case 'contain':
if(val&&val.constructor===Array){
var intersect=val.filter(function(n){
return n.indexOf(listenFor)!==-1;
});
checkResult=0 < intersect.length;
}else if(! val){
checkResult=false;
}else{
checkResult=0 <=val.indexOf(listenFor);
}
break;
}
return checkResult;
};
var checkVisibilityCond=function(listenTo, listenFor, $section, operator, type){
var checked=$section.data('checked');
var $listenTo=$(listenTo);
var checkResult=checkValue($listenTo, listenFor, operator);
type=type||'show';
if(! checked){
checked={};}
if('show'===type){
checked[ listenTo ]=checkResult;
}else{
checked[ listenTo ] = ! checkResult;
}
$section.data('checked', checked);
};
var checkSetValueCond=function(listenTo, listenFor, $section, operator, value, type){
var currentVal=$section.data('result_' + type);
var $listenTo=$(listenTo);
var checkResult=checkValue($listenTo, listenFor, operator);
if(checkResult){
currentVal=value;
}
$section.data('result_' + type, currentVal);
};
var setValue=function($section){
var setVal=false;
var setCalcVal=false;
var $field;
var triggered=false;
if($section.data('result_set_value') ){
setVal=$section.data('result_set_value');
}
if($section.data('result_set_calculated_value') ){
setCalcVal=$section.data('result_set_calculated_value');
}
if(! setVal&&! setCalcVal){
return;
}
$field=$section.find('.jet-form__field');
if(! $field.length){
return;
}
if($field.is('select') ){
$field.find(':selected').removeAttr('selected');
if(setVal){
$field.find('option[value="' + setVal + '"]').attr('selected', 'selected').trigger('change.JetEngine');
triggered=true;
}
if(setCalcVal){
$field.find('option[data-calculate="' + setCalcVal + '"]').attr('selected', 'selected');
if(! triggered){
$field.trigger('change.JetEngine');
triggered=true;
}}
}else if($field.is(':not(input[type=checkbox], input[type=radio])') ){
if(setVal){
$field.val(setVal).trigger('change.JetEngine');
triggered=true;
}
if(setCalcVal){
$field.data('calculate', setCalcVal);
if(! triggered){
$field.trigger('change.JetEngine');
triggered=true;
}}
}else{
$field.each(function(){
var $this=$(this);
if($this.is(':checked') ){
$this.removeAttr('checked');
}
if(setVal&&setVal==$this.val()){
$this.attr('checked', 'checked').trigger('change.JetEngine');
triggered=true;
}
if(setCalcVal&&setCalcVal==$this.data('calculate') ){
$this.attr('checked', 'checked');
if(! triggered){
$this.trigger('change.JetEngine');
triggered=true;
}}
});
}};
var setVisibility=function($section){
var checked=$section.data('checked');
var $row=$section.closest('.jet-form-row');
var res=true;
if(! checked){
return;
}
for(var check in checked){
if(! checked[ check ]){
res=false;
}}
if(res){
$section.show();
$row.show();
$section.find('*[data-initial-type]').each(function(){
var $this=$(this);
$this.attr('type', $this.data('initial-type') );
});
$section.find('select option[data-is-hidden="1"]').remove();
$section.find('.jet-form__fields-group input[data-is-hidden="1"]').remove();
$section.find('.jet-form__field[data-value]').each(function(){
var $this=$(this);
$this.val($this.attr('data-value') );
$this.removeAttr('data-value');
});
$section.find('*[data-required="1"]')
.removeAttr('data-required')
.attr('required', true);
}else{
$section.hide();
$section.find('*[type="date"],*[type="time"],*[type="email"],*[type="url"],*[type="number"]').each(function(){
var $this=$(this),
type=$this.attr('type');
$this.attr('data-initial-type', type);
$this.attr('type', 'text');
});
var $select=$section.find('select');
var val='is-hidden';
if($select.length){
var defaultVal=$select.data('default-val');
if(defaultVal||0===defaultVal){
val=defaultVal;
}
$select.append('<option value="' + val + '" data-is-hidden="1"></option>');
}
var $checkradio=$section.find('.jet-form__field.checkradio-field');
if($checkradio.length){
var $group=$checkradio.closest('.jet-form__fields-group');
if(! $group.find('input[data-is-hidden="1"]').length){
$group.append('<input type="hidden" name="' + $checkradio.attr('name').replace('[]', '') + '" value="' + val + '" data-is-hidden="1">');
}}
$section.find('.jet-form__field:not(.checkradio-field):not(.file-field)').each(function(){
var $this=$(this);
if(val===$this.val()){
return;
}
$this.attr('data-value', $this.val());
$this.val(val);
});
$section.find('*[required="required"]')
.removeAttr('required')
.attr('data-required', 1);
var $hiddenItems=$row.find('>*').filter(function(){
return $(this).css('display')==='none';
});
if($row.find('>*').length===$hiddenItems.length){
$row.hide();
}}
};
return this.each(function(){
var $section=$(this);
var conditions=$section.data('conditional');
if(! conditions||! conditions.length){
return;
}
for(var i=0; i < conditions.length; i++){
let condition=conditions[ i ];
if(! condition.field){
continue;
}
let listenTo=".jet-form__field[name=" + condition.field + "], .jet-form__field [name=" + condition.field + "], .jet-form__field[name=" + condition.field + "\\[\\]]";
let listenFor=condition.value;
let operator=condition.operator;
let type=condition.type;
let valueToSet=condition.set_value;
$(document).on('change.JetEngine', listenTo, function(){
if('show'===type||'hide'===type){
checkVisibilityCond(listenTo, listenFor, $section, operator, type);
}else{
checkSetValueCond(listenTo, listenFor, $section, operator, valueToSet, type);
}
setValue($section);
setVisibility($section);
});
if(settings.hideJS&&('show'===type||'hide'===type) ){
$section.hide();
}
if('show'===type||'hide'===type){
checkVisibilityCond(listenTo, listenFor, $section, operator, type);
}else{
checkSetValueCond(listenTo, listenFor, $section, operator, valueToSet, type);
}}
setValue($section);
setVisibility($section);
});
};
var JetEngineForms={
calcFields: {},
repeaterCalcFields: {},
childrenCalcFields: {},
pages: {},
init: function(){
var widgets={
'jet-engine-booking-form.default': JetEngineForms.widgetBookingForm,
};
$.each(widgets, function(widget, callback){
window.elementorFrontend.hooks.addAction('frontend/element_ready/' + widget, callback);
});
},
commonInit: function(){
var self=JetEngineForms;
$(document)
.on('click.JetEngine', '.jet-form__submit.submit-type-ajax', self.ajaxSubmitForm)
.on('submit.JetEngine', 'form.jet-form.submit-type-reload', self.reloadSubmitForm)
.on('click.JetEngine', '.jet-form__next-page', self.nextFormPage)
.on('click.JetEngine', '.jet-form__prev-page', self.prevFormPage)
.on('focus.JetEngine', '.jet-form__field', self.clearFieldErrors)
.on('click.JetEngine', '.jet-form__field-template', self.simLabelClick)
.on('change.JetEngine', '.jet-form__field', self.recalcFields)
.on('jet-engine/form/repeater-changed', '.jet-form-repeater', self.recalcFields)
.on('change.JetEngine', '.jet-form__field.checkboxes-group-required', self.requiredCheckboxGroup)
.on('change.JetEngine', '.checkradio-field', self.changeActiveTemplateClass)
.on('input.JetEngine/range', '.jet-form__field.range-field', self.updateRangeField)
.on('click.JetEngine', '.jet-form-repeater__new', self.newRepeaterItem)
.on('click.JetEngine', '.jet-form-repeater__remove', self.removeRepeaterItem)
.on('input.JetEngine', '.jet-form__field.text-field, .jet-form__field.textarea-field', self.inputTextFields)
.on('jet-engine/form/page/field-changed', self.maybeSwitchPage);
},
initBlocks: function($scope){
$scope=$scope||$('body');
window.JetPlugins.init($scope, [
{
block: 'jet-engine/booking-form',
callback: JetEngineForms.widgetBookingForm
}
]);
},
removeRepeaterItem: function(){
var $this=$(this),
$repeater=$this.closest('.jet-form-repeater'),
$repeaterItem=$this.closest('.jet-form-repeater__row'),
$editor=$repeaterItem.find('.wp-editor-area');
$this.trigger('jet-engine/form/on-remove-repeater-item');
if($editor.length&&window.wp&&window.wp.editor){
$editor.each(function(){
window.wp.editor.remove($(this).attr('id') );
});
}
$repeaterItem.remove();
$repeater.trigger('jet-engine/form/repeater-changed');
},
newRepeaterItem: function(){
var $this=$(this),
$repeater=$this.closest('.jet-form-repeater'),
$initial=$repeater.find('.jet-form-repeater__initial'),
$items=$repeater.find('.jet-form-repeater__items'),
$newVal=$initial.html(),
index=0;
if($items.find('.jet-form-repeater__row').length){
$items.find('.jet-form-repeater__row').each(function(){
var $this=$(this),
currentIndex=parseInt($this.data('index'), 10);
if(currentIndex > index){
index=currentIndex;
}});
index++;
}
$newVal=$newVal.replace(/__i__/g, index);
$newVal=$($newVal);
$newVal.data('index', index);
$newVal.attr('data-index', index);
JetEngineForms.initRangeFields($newVal);
$items.append($newVal);
var $editor=$newVal.find('.wp-editor-area');
if($editor.length&&window.wp&&window.wp.editor){
$editor.each(function(){
JetEngineForms.wysiwygInitWithTriggers(this);
});
}
if($.fn.inputmask){
$newVal.find('.jet-form__masked-field').inputmask();
}
JetEngineForms.initConditions($newVal);
$repeater.trigger('jet-engine/form/repeater-changed');
$this.trigger('jet-engine/form/repeater-add-new', [ index ]);
JetEngineForms.calculateRowValue($newVal);
},
updateRepeaterItems: function($repeater, $field){
var val=JetEngineForms.getFieldValue($field);
if(! val){
return;
}
for(var i=0; i < val; i++){
var $item=$repeater.find('.jet-form-repeater__row[data-index="' + i + '"]');
if(! $item.length){
JetEngineForms.newRepeaterItem.call($repeater);
}}
var $rows=$repeater.find('.jet-form-repeater__row');
if($rows.length){
$rows.each(function(){
var $row=$(this),
index=parseInt($row.data('index'), 10);
index++;
if(index > val){
$row.remove();
$repeater.trigger('jet-engine/form/repeater-changed');
}});
}
$repeater.trigger('change');
},
calculateRowValue: function($row){
var val=JetEngineForms.calculateValue($row);
$row.data('value', val);
JetEngineForms.calculateFieldsInRow($row);
},
calculateFieldsInRow: function($row){
$row.find('.jet-form__calculated-field--child').each(function(){
var $childCalculatedField=$(this),
val=JetEngineForms.calculateValue($childCalculatedField)
if(! val){
val=0;
}
$childCalculatedField.find('.jet-form__calculated-field-val').text(val.toFixed($childCalculatedField.data('precision') ));
$childCalculatedField.find('.jet-form__calculated-field-input').val(val.toFixed($childCalculatedField.data('precision') )).trigger('change.JetEngine');
});
},
initRepeaterListener: function($scope){
var $repeater=$scope.find('.jet-form-repeater');
if(! $repeater.length){
return;
}
$repeater.each(function(){
var $this=$(this),
settings=$this.data('settings');
if('dynamically'===settings.manageItems&&settings.itemsField){
var $itemsField=$scope.find('[data-field-name="' + settings.itemsField + '"]');
JetEngineForms.updateRepeaterItems($this, $itemsField);
$itemsField.on('change', function(){
JetEngineForms.updateRepeaterItems($this, $itemsField);
});
}
if('custom'===settings.calcType){
var calculated=null;
JetEngineForms.repeaterCalcFields[ $this.data('field-name') ]={
'el': $this,
'listenTo': $this.data('listen_fields'),
};
calculated=JetEngineForms.calculateValue($this);
$this.data('value', calculated.toFixed(0) );
}
var $initial=$this.find('.jet-form-repeater__initial');
$initial=$($initial.html());
var $calcFields=$initial.find('.jet-form__calculated-field--child');
if($calcFields.length){
$calcFields.each(function(){
var $childField=$(this);
JetEngineForms.childrenCalcFields[ $childField.data('name') ]={
'el': $childField,
'parentEl': $this,
'listenTo': $childField.data('listen_to'),
};
$this.find('.jet-form-repeater__row').each(function(){
JetEngineForms.calculateRowValue($(this), $childField.data('precision') );
});
});
}});
},
simLabelClick: function(event){
$(this).next('.jet-form__field-label').trigger('click');
},
maybeSwitchPage: function(event, $field, $page, disabled){
var $item=$field[ 0 ],
isSwitch=$field.data('switch'),
value=null,
$toPage=null;
if(! isSwitch){
return;
}
if(disabled){
return;
}
value=$item.value;
if(! value){
return;
}
$toPage=$page.next();
if(! $page||! $page.length){
return;
}
if(! $toPage||! $toPage.length){
return;
}
JetEngineForms.switchFormPage($page, $toPage);
},
changeActiveTemplateClass: function(event){
var $this=$(this),
$template=$this.closest('.jet-form__field-wrap').find('.jet-form__field-template');
if(! $template.length){
return;
}
if('radio'===$this[ 0 ].type){
$template
.closest('.jet-form__fields-group')
.find('.jet-form__field-template--checked')
.removeClass('jet-form__field-template--checked');
}
$template.toggleClass('jet-form__field-template--checked', $this[ 0 ].checked);
},
initConditions: function($scope){
$scope.find('.jet-form-col').jetFormConditional();
},
widgetBookingForm: function($scope){
var $calcFields=$scope.find('.jet-form__calculated-field');
var $editor=$scope.find('.jet-form__field .wp-editor-area');
if($editor.length&&window.wp&&window.wp.editor){
$editor.each(function(){
JetEngineForms.wysiwygInitWithTriggers(this, true);
});
}
JetEngineForms.initRequiredCheckboxGroup($scope);
$(document).trigger('jet-engine/booking-form/init', [ $scope ]);
JetEngineForms.initFormPager($scope);
JetEngineForms.initRangeFields($scope);
JetEngineForms.initRepeaterListener($scope);
JetEngineForms.initConditions($scope);
if($.fn.inputmask){
$scope.find('.jet-form__masked-field').inputmask();
}
if(! $calcFields.length){
return;
}
$calcFields.each(function(){
var $this=$(this),
calculated=null;
JetEngineForms.calcFields[ $this.data('name') ]={
'el': $this,
'listenTo': $this.data('listen_to'),
};
calculated=JetEngineForms.calculateValue($this);
$this.find('.jet-form__calculated-field-val').text(calculated.toFixed($this.data('precision') ));
$this.find('.jet-form__calculated-field-input').val(calculated.toFixed($this.data('precision') )).trigger('change.JetEngine');
});
},
initFormPager: function($scope){
var $pages=$scope.find('.jet-form-page'),
$form=$scope.find('.jet-form');
if(! $pages.length){
return;
}
$pages.each(function(){
var $page=$(this);
if(! $page.hasClass('.jet-form-page--hidden') ){
JetEngineForms.initSingleFormPage($page, $form, false);
}});
},
initSingleFormPage: function($page, $form, $changedField){
var $button=$page.find('.jet-form__next-page'),
$msg=$page.find('.jet-form__next-page-msg'),
requiredFields=$page[ 0 ].querySelectorAll('.jet-form__field[required]'),
pageNum=parseInt($page.data('page'), 10),
disabled=false,
radioFields={};
$changedField=$changedField||false;
if(requiredFields.length){
for(var i=0; i < requiredFields.length; i++){
var $field=$(requiredFields[ i ]);
var val=null;
var isRadio=false;
if('INPUT'===$field[ 0 ].nodeName){
if($field.length > 1){
for(var j=0; j < $field.length; j++){
if($field[ j ].checked){
val=$field[ j ].value;
}}
}else if('radio'===$field[ 0 ].type){
isRadio=true;
if($field[ 0 ].checked){
radioFields[ $field[ 0 ].name ]=$field[ 0 ].value;
}}else{
val=$field.val();
}}
if('TEXTAREA'===$field[ 0 ].nodeName){
val=$field.val();
}
if('SELECT'===$field[ 0 ].nodeName){
val=$field.find('option:selected').val();
}
if(! val){
disabled=true;
}
if(isRadio&&radioFields[ $field[ 0 ].name ]){
disabled=false;
}}
}
if(disabled){
if($msg.length){
$msg.addClass('jet-form__next-page-msg--visible');
}
$button.attr('disabled', true);
}else{
if($msg.length){
$msg.removeClass('jet-form__next-page-msg--visible');
}
$button.attr('disabled', false);
}
if(! JetEngineForms.pages[ pageNum ]){
JetEngineForms.pages[ pageNum ]={
page: $page,
disabled: disabled,
};}else{
JetEngineForms.pages[ pageNum ].disabled=disabled;
}
if($changedField){
$(document).trigger('jet-engine/form/page/field-changed', [ $changedField, $page, disabled ]);
}
if($page.hasClass('jet-form-page--initialized') ){
return;
}
$page.on('change.JetEngine', '.jet-form__field', function(){
JetEngineForms.initSingleFormPage($page, $form, $(this) );
});
$page.addClass('jet-form-page--initialized');
},
nextFormPage: function(){
var $button=$(this),
$fromPage=$button.closest('.jet-form-page'),
$pageFields=$fromPage.find('.jet-form__field').filter(':input'),
$toPage=$fromPage.next();
if(! JetEngineForms.isFieldsValid($pageFields) ){
return;
}
JetEngineForms.switchFormPage($fromPage, $toPage);
},
prevFormPage: function(){
var $button=$(this),
$fromPage=$button.closest('.jet-form-page'),
$toPage=$fromPage.prev();
JetEngineForms.switchFormPage($fromPage, $toPage);
},
isFieldsValid: function($fields){
var isValid=true;
$fields.each(function(ind, field){
if(! field.checkValidity()){
field.reportValidity();
isValid=false;
return false;
}});
return isValid;
},
switchFormPage: function($fromPage, $toPage){
var $form=$fromPage.closest('.jet-form');
$fromPage.addClass('jet-form-page--hidden');
$toPage.removeClass('jet-form-page--hidden');
JetEngineForms.initSingleFormPage($toPage, $form, false);
$(document).trigger('jet-engine/form/switch-page', [ $fromPage, $toPage ])
$('.jet-form-messages-wrap[data-form-id="' + $form.data('form-id') + '"]').html('');
},
getFieldValue: function($field){
var val=0;
if($field.length){
if('INPUT'===$field[ 0 ].nodeName){
if($field.length > 1){
for(var i=0; i < $field.length; i++){
if($field[ i ].checked){
var itemVal=0;
if(undefined!==$field[ i ].dataset.calculate){
itemVal=$field[ i ].dataset.calculate;
}else{
itemVal=$field[ i ].value;
}
if('checkbox'===$field[ i ].type){
val +=parseInt(itemVal, 10);
}else{
val=itemVal;
}}
}}else{
if('checkbox'===$field[ 0 ].type){
if($field[ 0 ].checked){
if(undefined!==$field[ 0 ].dataset.calculate){
val=$field[ 0 ].dataset.calculate;
}else{
val=$field[ 0 ].value;
}}
}else{
val=$field.val();
}}
}
if('SELECT'===$field[ 0 ].nodeName){
var selectedOption=$field.find('option:selected'),
calcValue=selectedOption.data('calculate');
if(undefined!==calcValue){
val=calcValue;
}else{
val=$field.find('option:selected').val();
}}
if('DIV'===$field[ 0 ].nodeName){
if($field.hasClass('jet-form-repeater') ){
var repeaterSettings=$field.data('settings');
if(repeaterSettings&&'custom'===repeaterSettings.calcType){
$field.find('.jet-form-repeater__row').each(function(){
var $row=$(this),
rowVal=JetEngineForms.calculateValue($row);
$row.data('value', rowVal);
val +=rowVal;
});
}else{
val=$field.find('.jet-form-repeater__row').length;
}}
}}
if(! val){
val='0';
}
val=JetEngine.filters.applyFilters('forms/calculated-field-value', val, $field);
return val;
},
calculateValue: function($scope){
var formula=String($scope.data('formula') ),
listenTo=$('[name^="' + $scope.data('listen_to') + '"]', $scope.closest('form') ),
regexp=/%([a-zA-Z0-9-_]+)%/g,
func=null;
if(! formula){
return null;
}
formula=JetEngine.filters.applyFilters('forms/calculated-formula-before-value', formula, $scope);
formula=formula.replace(regexp, function(match1, match2){
var object=null;
if($scope.data('repeater') ){
object=$scope;
}else if($scope.hasClass('jet-form__calculated-field--child') ){
object=$scope.closest('.jet-form-repeater__row').find('[data-field-name="' + match2 + '"]');
}else if($scope.data('repeater-row') ){
object=$scope.find('[data-field-name="' + match2 + '"]');
}else{
object=$scope.closest('form').find('[name="' + match2 + '"], [name="' + match2 + '[]"]');
}
return JetEngineForms.getFieldValue(object);
});
formula=JetEngine.filters.applyFilters('forms/calculated-formula-after-value', formula, $scope);
func=new Function('return ' + formula);
return func();
},
recalcFields: function(event){
var $this=$(this),
fieldName=$this.attr('name'),
fieldPrecision=2,
calculated=null,
done=false;
if($this.data('field-name') ){
fieldName=$this.data('field-name');
}
if(! fieldName){
return;
}
$.each(JetEngineForms.calcFields, function(calcFieldName, field){
fieldName=fieldName.replace('[]', '');
if(0 <=$.inArray(fieldName, field.listenTo) ){
calculated=JetEngineForms.calculateValue(field.el);
fieldPrecision=field.el.data('precision');
field.el.find('.jet-form__calculated-field-val').text(calculated.toFixed(fieldPrecision) );
field.el.find('.jet-form__calculated-field-input').val(calculated.toFixed(fieldPrecision) ).trigger('change.JetEngine');
}});
if('jet-engine/form/repeater-changed'!==event.type){
$.each(JetEngineForms.repeaterCalcFields, function(calcFieldName, field){
fieldName=fieldName.replace('[]', '');
if(0 <=$.inArray(fieldName, field.listenTo) ){
field.el.trigger('jet-engine/form/repeater-changed');
}});
}
$.each(JetEngineForms.childrenCalcFields, function(calcFieldName, field){
fieldName=fieldName.replace('[]', '');
if(0 <=$.inArray(fieldName, field.listenTo) ){
var $row=$this.closest('.jet-form-repeater__row');
JetEngineForms.calculateFieldsInRow($row);
}});
},
initRequiredCheckboxGroup: function($scope){
var $group=$scope.find('.jet-form__fields-group');
$group.each(function(){
var $this=$(this),
$checkboxes=$('.checkboxes-group-required', $this);
if($checkboxes.length){
var isChecked=$checkboxes.is(':checked');
$checkboxes.attr('required', ! isChecked);
}});
},
requiredCheckboxGroup: function(event){
var $this=$(event.target),
$group=$this.closest('.jet-form__fields-group'),
$checkboxes=$('.checkboxes-field', $group);
if($checkboxes.length < 2){
return;
}
var isChecked=$checkboxes.is(':checked');
$checkboxes.attr('required', ! isChecked);
},
initRangeFields: function($scope){
var $rangeFields=$scope.find('.jet-form__field.range-field');
if(! $rangeFields.length){
return;
}
$rangeFields.each(function(){
JetEngineForms.updateRangeField({ target: $(this), firstInit: true });
});
},
updateRangeField: function(event){
var $target=$(event.target),
$wrap=$target.closest('.jet-form__field-wrap'),
$number=$wrap.find('.jet-form__field-value-number'),
max=$target.attr('max')||100,
val=$target.val(),
isElemEditMode=window.elementorFrontend ? window.elementorFrontend.isEditMode():false;
if(event.firstInit&&! isElemEditMode){
$number.text(max).css('min-width', $number.width());
}
$number.text(val);
},
inputTextFields: function(){
$(this).trigger('change.JetEngine');
},
reloadSubmitForm: function(event){
var $maskedFields=$(event.target).find('.jet-form__masked-field');
if($maskedFields.length){
$maskedFields.each(function(){
var $maskedField=$(this);
if(!$maskedField.val()&&$maskedField.inputmask){
$maskedField.inputmask('remove');
}});
}
$(this).find('.jet-form__submit').attr('disabled', true);
},
ajaxSubmitForm: function(){
var $this=$(this),
$form=$this.closest('.jet-form'),
formID=$form.data('form-id'),
data={
action: 'jet_engine_form_booking_submit',
};
if('undefined'!==typeof $form[ 0 ].checkValidity&&'undefined'!==typeof $form[ 0 ].reportValidity&&! $form[ 0 ].checkValidity()){
$form[ 0 ].reportValidity();
return;
}
if(window.tinyMCE){
window.tinyMCE.triggerSave();
}
data.values=$form.serializeArray();
data._jet_engine_booking_form_id=formID;
$form.addClass('is-loading');
$this.attr('disabled', true);
$('.jet-form-messages-wrap[data-form-id="' + formID + '"]').html('');
$form.find('.jet-form__field-error').remove();
$.ajax({
url: JetEngineSettings.ajaxurl,
type: 'POST',
dataType: 'json',
data: data,
}).done(function(response){
$form.removeClass('is-loading');
$this.attr('disabled', false);
switch(response.status){
case 'validation_failed':
$.each(response.fields, function(index, fieldName){
var $field=$form.find('.jet-form__field[name="' + fieldName + '"]:last');
if($field.hasClass('checkradio-field') ){
$field.closest('.jet-form__field-wrap').after(response.field_message);
}else{
$field.after(response.field_message);
}});
break;
case 'success':
$(document).trigger('jet-engine/form/ajax/on-success', [ response, $form, data ]);
break;
}
if(response.redirect){
window.location=response.redirect;
}else if(response.reload){
window.location.reload();
}
$('.jet-form-messages-wrap[data-form-id="' + formID + '"]').html(response.message);
});
},
clearFieldErrors: function(){
var $this=$(this),
formID=$this.closest('.jet-form').data('form-id');
$this.closest('.jet-form-col').find('.jet-form__field-error').remove();
$('.jet-form-messages-wrap[data-form-id="' + formID + '"]').html('');
},
addTriggersWysiwyg: function(field, editorId){
const callable=function(e){
this.save();
field.trigger('change.JetEngine', [ this ]);
};
setTimeout(function(){
const editor=tinymce.get(editorId);
if(! editor){
return;
}
editor
.on('input', callable)
.on('change', callable);
});
},
wysiwygInit: function(closure, replace=false){
const self=$(closure),
editorID=self.attr('id'),
field=self.closest('.jet-form__field');
if(replace&&window.tinymce&&window.tinymce.get(editorID) ){
window.tinymce.get(editorID).remove();
}
window.wp.editor.initialize(editorID,
field.data('editor'),
);
return { editorID, field: self };},
wysiwygInitWithTriggers: function(closure, replace=false){
const { editorID, field }=JetEngineForms.wysiwygInit(closure, replace);
JetEngineForms.addTriggersWysiwyg(field, editorID);
},
};
$(window).on('elementor/frontend/init', JetEngineForms.init);
window.addEventListener('DOMContentLoaded', function(){
JetEngineForms.initBlocks();
});
window.JetEngineForms=JetEngineForms;
JetEngineForms.commonInit();
}(jQuery) );
function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ownKeys(t,e){var n,a=Object.keys(t);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(t),e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),a.push.apply(a,n)),a}function _objectSpread(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?ownKeys(Object(n),!0).forEach(function(e){_defineProperty(t,e,n[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):ownKeys(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}function _defineProperty(e,t,n){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _toPropertyKey(e){e=_toPrimitive(e,"string");return"symbol"==_typeof(e)?e:e+""}function _toPrimitive(e,t){if("object"!=_typeof(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0===n)return("string"===t?String:Number)(e);n=n.call(e,t||"default");if("object"!=_typeof(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}function haObserveTarget(e,n){new IntersectionObserver(function(e,t){e.forEach(function(e){e.isIntersecting&&n(e)})},2<arguments.length&&void 0!==arguments[2]?arguments[2]:{}).observe(e)}(h=>{var c=h(window);function u(a,i,o){var r;return function(){var e=this,t=arguments,n=o&&!r;clearTimeout(r),r=setTimeout(function(){r=null,o||a.apply(e,t)},i),n&&a.apply(e,t)}}function g(e,t){var e=e.find(".hajs-filter"),n=e.data("default-filter");e.length&&(e.on("click.onFilterNav","button",function(e){e.stopPropagation();e=h(this);e.addClass("ha-filter__item--active").siblings().removeClass("ha-filter__item--active"),t(e.data("filter"))}),e.find('[data-filter="'+n+'"]').click())}function p(e){var t,n,a;e.$element.on("click",e.selector,function(e){e.preventDefault()}),h.fn.magnificPopup&&(e.isEnabled?(t=h(window).width(),n=elementorFrontendConfig.breakpoints.md,a=elementorFrontendConfig.breakpoints.lg,e.$element.find(e.selector).magnificPopup({key:e.key,type:"image",image:{titleSrc:function(e){return e.el.attr("title")?e.el.attr("title"):e.el.find("img").attr("alt")}},gallery:{enabled:!0,preload:[1,2]},zoom:{enabled:!0,duration:300,easing:"ease-in-out",opener:function(e){return e.is("img")?e:e.find("img")}},disableOn:function(){return!(e.disableOnMobile&&t<n||e.disableOnTablet&&n<=t&&t<a)}})):h.magnificPopup.close())}function f(e){var t=e.find(".hajs-image-comparison"),n=t.getHappySettings();n[{on_hover:"move_slider_on_hover",on_swipe:"move_with_handle_only",on_click:"click_to_move"}[n.move_handle||"on_swipe"]]=!0,delete n.move_handle,t.imagesLoaded().done(function(){t.twentytwenty(n);var e=setTimeout(function(){c.trigger("resize.twentytwenty"),clearTimeout(e)},400)})}h.fn.getHappySettings=function(){return this.data("happy-settings")},c.on("elementor/frontend/init",function(){function e(e){e.hasClass("elementor-element-edit-mode")&&e.addClass("ha-has-bg-overlay")}var t=elementorModules.frontend.handlers.Base,n=t.extend({bindEvents:function(){this.removeArrows(),this.run()},removeArrows:function(){var e=this;this.elements.$container.on("init",function(){e.elements.$container.siblings().hide()})},getDefaultSettings:function(){return{autoplay:!0,arrows:!1,checkVisible:!1,container:".hajs-slick",dots:!1,infinite:!0,rows:0,slidesToShow:1,prevArrow:h("<div />").append(this.findElement(".slick-prev").clone().show()).html(),nextArrow:h("<div />").append(this.findElement(".slick-next").clone().show()).html()}},getDefaultElements:function(){return{$container:this.findElement(this.getSettings("container"))}},onElementChange:u(function(){this.elements.$container.slick("unslick"),this.run()},200),getSlickSettings:function(){var e=1==h('html[dir="rtl"]').length||h("body").hasClass("rtl");"yes"==this.getElementSettings("vertical")&&(e=!1);var t={fade:this.$element.hasClass("ha-slider")?"fade"===this.getElementSettings("slides_transition"):"fade"===this.getElementSettings("slides_transition")&&1===parseInt(this.getElementSettings("slides_to_show")),infinite:!!this.getElementSettings("loop"),autoplay:!!this.getElementSettings("autoplay"),autoplaySpeed:this.getElementSettings("autoplay_speed"),speed:this.getElementSettings("animation_speed"),centerMode:!!this.getElementSettings("center"),vertical:!!this.getElementSettings("vertical"),rtl:e};switch(this.getElementSettings("navigation")){case"arrow":t.arrows=!0;break;case"dots":t.dots=!0;break;case"both":t.arrows=!0,t.dots=!0}e=!!this.getElementSettings("slides_to_scroll");return t.slidesToShow=parseInt(this.getElementSettings("slides_to_show"))||1,t.slidesToScroll=e&&parseInt(this.getElementSettings("slides_to_show"))||1,t.responsive=[{breakpoint:elementorFrontend.config.breakpoints.lg,settings:{slidesToShow:parseInt(this.getElementSettings("slides_to_show_tablet"))||t.slidesToShow,slidesToScroll:e?parseInt(this.getElementSettings("slides_to_show_tablet"))||t.slidesToShow:1}},{breakpoint:elementorFrontend.config.breakpoints.md,settings:{slidesToShow:parseInt(this.getElementSettings("slides_to_show_mobile"))||parseInt(this.getElementSettings("slides_to_show_tablet"))||t.slidesToShow,slidesToScroll:e?parseInt(this.getElementSettings("slides_to_show_mobile"))||parseInt(this.getElementSettings("slides_to_show_tablet"))||t.slidesToShow:1}}],h.extend({},this.getSettings(),t)},run:function(){this.elements.$container.slick(this.getSlickSettings())}}),a=t.extend({onInit:function(){t.prototype.onInit.apply(this,arguments),this.run(),this.runFilter(),c.on("resize",u(this.run.bind(this),100))},getLayoutMode:function(){var e=this.getElementSettings("layout");return"even"===e?"masonry":e},getDefaultSettings:function(){return{itemSelector:".ha-image-grid__item",percentPosition:!0,layoutMode:this.getLayoutMode()}},getDefaultElements:function(){return{$container:this.findElement(".hajs-isotope")}},getLightBoxSettings:function(){return{key:"imagegrid",$element:this.$element,selector:".ha-js-lightbox",isEnabled:!!this.getElementSettings("enable_popup"),disableOnTablet:!!this.getElementSettings("disable_lightbox_on_tablet"),disableOnMobile:!!this.getElementSettings("disable_lightbox_on_mobile")}},runFilter:function(){var t=this,n=this.getLightBoxSettings();g(this.$element,function(e){t.elements.$container.isotope({filter:e}),"*"!==e&&(n.selector=e),p(n)})},onElementChange:function(e){-1!==["layout","image_height","columns","image_margin","enable_popup"].indexOf(e)&&this.run()},run:function(){var e=this;e.elements.$container.isotope(e.getDefaultSettings()).imagesLoaded().progress(function(){e.elements.$container.isotope("layout")}),p(e.getLightBoxSettings())}}),i=t.extend({onInit:function(){t.prototype.onInit.apply(this,arguments),this.run(),this.runFilter(),c.on("resize",u(this.run.bind(this),100))},getDefaultSettings:function(){var e={rowHeight:+this.getElementSettings("row_height.size")||150,lastRow:this.getElementSettings("last_row"),margins:+this.getElementSettings("margins.size"),captions:!!this.getElementSettings("show_caption")},t={};return"yes"==this.getElementSettings("max_row_height")&&(t={maxRowHeight:+this.getElementSettings("row_height.size")||150}),h.extend(e,t)},getDefaultElements:function(){return{$container:this.findElement(".hajs-justified-grid")}},getLightBoxSettings:function(){return{key:"justifiedgallery",$element:this.$element,selector:".ha-js-lightbox",isEnabled:!!this.getElementSettings("enable_popup"),disableOnTablet:!!this.getElementSettings("disable_lightbox_on_tablet"),disableOnMobile:!!this.getElementSettings("disable_lightbox_on_mobile")}},runFilter:function(){var t=this,n=this.getLightBoxSettings(),a={lastRow:this.getElementSettings("last_row")};g(t.$element,function(e){"*"!==e&&(a.lastRow="nojustify",n.selector=e),a.filter=e,t.elements.$container.justifiedGallery(a),p(n)})},onElementChange:function(e){-1!==["row_height","max_row_height","last_row","margins","show_caption","enable_popup"].indexOf(e)&&this.run()},run:function(){this.elements.$container.justifiedGallery(this.getDefaultSettings()),p(this.getLightBoxSettings())}}),o=t.extend({onInit:function(){t.prototype.onInit.apply(this,arguments),this.wrapper=this.$element.find(".ha-news-ticker-wrapper"),this.run()},onElementChange:function(e){"item_space"!==e&&"title_typography_font_size"!==e||this.run()},run:function(){var e,t,n,a,i,o,r,s;0!=this.wrapper.length&&(a=this.wrapper.innerHeight(),s=this.wrapper.innerWidth(),t=(e=this.wrapper.find(".ha-news-ticker-container")).find(".ha-news-ticker-item"),a="scroll"+(n=this.wrapper.data("scroll-direction"))+parseInt(a)+parseInt(s),i=this.wrapper.data("duration"),o="normal",r=10,s={transform:"translateX(0"+s+"px)"},"right"===n&&(o="reverse"),t.each(function(){r+=h(this).outerWidth(!0)}),e.css({width:r,display:"flex"}),h.keyframe.define([{name:a,"0%":s,"100%":{transform:"translateX(-101%)"}}]),e.playKeyframe({name:a,duration:i.toString()+"ms",timingFunction:"linear",delay:"0s",iterationCount:"infinite",direction:o,fillMode:"none",complete:function(){}}))}}),r=t.extend({onInit:function(){t.prototype.onInit.apply(this,arguments),this.wrapper=this.$element.find(".ha-post-tab"),this.run()},run:function(){var r=this.wrapper.find(".ha-post-tab-filter").find("li"),e=this.wrapper.data("event"),s=this.wrapper.data("query-args");r.on(e,u(function(e){e.preventDefault();var e=h(this),n=e.data("term"),t=e.closest(".ha-post-tab").find(".ha-post-tab-content"),a=t.find(".ha-post-tab-loading"),i=t.find(".ha-post-tab-item-wrapper"),o=!1;0===a.length&&(r.removeClass("active"),i.removeClass("active"),e.addClass("active"),i.each(function(){var e=h(this),t=e.data("term");n===t&&(e.addClass("active"),o=!0)}),!1===o)&&h.ajax({url:HappyLocalize.ajax_url,type:"POST",data:{action:"ha_post_tab_action",security:HappyLocalize.nonce,post_tab_query:s,term_id:n},beforeSend:function(){t.append('<span class="ha-post-tab-loading"><i class="eicon-spinner eicon-animation-spin"></i></span>')},success:function(e){t.find(".ha-post-tab-loading").remove(),t.append(e)},error:function(e){}})},200))}}),a=(elementorFrontend.hooks.addAction("frontend/element_ready/ha-slider.default",function(e){elementorFrontend.elementsHandler.addHandler(n,{$element:e})}),elementorFrontend.hooks.addAction("frontend/element_ready/ha-carousel.default",function(e){elementorFrontend.elementsHandler.addHandler(n,{$element:e})}),elementorFrontend.hooks.addAction("frontend/element_ready/ha-horizontal-timeline.default",function(e){elementorFrontend.elementsHandler.addHandler(n,{$element:e,autoplay:!1,container:".ha-horizontal-timeline-wrapper",navigation:"arrow",arrows:!0});e=e.find(".ha-horizontal-timeline-image");void 0!==e.data("mfp-src")&&e.magnificPopup({type:"image",gallery:{enabled:!0}})}),h("body").on("click.onWrapperLink","[data-ha-element-link]",function(){var e,t,n=h(this),a=n.data("ha-element-link"),n=n.data("id"),i=document.createElement("a");i.id="happy-addons-wrapper-link-"+n,i.href=a.url,i.target=a.is_external?"_blank":"_self",i.rel=a.nofollow?"nofollow noreferer":"",i.style.display="none",document.body.appendChild(i),(e=document.getElementById(i.id)).click(),t=setTimeout(function(){document.body.removeChild(e),clearTimeout(t)})}),h.each({"ha-image-compare.default":f,"ha-number.default":function(t){haObserveTarget(t[0],function(){var e=t.find(".ha-number-text");e.numerator(e.data("animation"))})},"ha-skills.default":function(e){haObserveTarget(e[0],function(){e.find(".ha-skill-level").each(function(){var e=h(this),t=e.find(".ha-skill-level-text"),n=e.data("level");e.animate({width:n+"%"},500),t.numerator({toValue:n+"%",duration:1300,onStep:function(){t.append("%")}})})})},"ha-fun-factor.default":function(t){haObserveTarget(t[0],function(){var e=t.find(".ha-fun-factor__content-number");e.numerator(e.data("animation"))})},"ha-bar-chart.default":function(a){haObserveTarget(a[0],function(){var e=a.find(".ha-bar-chart-container"),t=a.find("#ha-bar-chart"),n=e.data("settings");e.length&&new Chart(t,n)})},"ha-twitter-feed.default":function(i){var e=i.find(".ha-twitter-load-more"),o=i.find(".ha-tweet-items");e.on("click",function(e){e.preventDefault();var t=h(this),e=t.data("settings"),n=t.data("total"),a=i.find(".ha-tweet-item").length;h.ajax({url:HappyLocalize.ajax_url,type:"POST",data:{action:"ha_twitter_feed_action",security:HappyLocalize.nonce,query_settings:e,loaded_item:a},success:function(e){a<n?h(e).appendTo(o):(t.text("All Loaded").addClass("loaded"),setTimeout(function(){t.css({display:"none"})},800))},error:function(e){}})})},"ha-threesixty-rotation.default":function(a){var e,i=a.find(".ha-threesixty-rotation-inner"),t=i.data("selector"),n=i.data("autoplay"),o=a.find(".ha-threesixty-rotation-magnify"),r=a.find(".ha-threesixty-rotation-360img"),s=o.data("zoom"),l=a.find(".ha-threesixty-rotation-play"),d=circlr(t,{play:!0});"on"===n?((e=a.find(".ha-threesixty-rotation-autoplay")).on("click",function(e){e.preventDefault(),d.play(),r.remove()}),setTimeout(function(){e.trigger("click"),e.remove()},1e3)):l.on("click",function(e){e.preventDefault();e=h(this).find("i");e.hasClass("hm-play-button")?(e.removeClass("hm-play-button"),e.addClass("hm-stop"),d.play()):(e.removeClass("hm-stop"),e.addClass("hm-play-button"),d.stop()),r.remove()}),o.on("click",function(e){a.find("img").each(function(){-1!==h(this).attr("style").indexOf("block")&&(HappySimplaMagnify(h(this)[0],s),o.css("display","none"),r.remove())})}),h(document).on("click",function(e){var e=h(e.target),t=a.find(".ha-img-magnifier-glass"),n=o.find("i");t.length&&e[0]!==n[0]&&(t.remove(),o.removeAttr("style")),e[0]===i[0]&&r.remove()}),i.on("mouseup mousedown touchstart touchend",function(e){r.remove()})},"ha-data-table.default":function(e){var n=e.find(".ha-table__head-column-cell"),r=e.find(".ha-table__body-row");r.each(function(o,e){h(e).find(".ha-table__body-row-cell").each(function(e,t){var t=h(t),n=parseInt(t.attr("rowspan"),10);if(1<n)for(var a=o+1;a<o+n&&a<r.length;a++){var i=h(r).eq(a).children().eq(e);h('<td class="ha-table__body-row-cell test">nullval</td>').insertBefore(i)}})}),r.each(function(e,t){h(t).find(".ha-table__body-row-cell").each(function(e,t){t=h(t);-1===t.html().indexOf("nullval")?(e=n.eq(e).html(),t.prepend('<div class="ha-table__head-column-cell">'+e+"</div>")):t.remove()})})},section:e,column:e,"ha-event-calendar.default":function(b){var e=b.find(".ha-ec"),S=b.find(".ha-ec-popup-wrapper"),t=b.find(".ha-ec-popup-close"),n=e.data("initialview"),a=e.data("firstday"),i=e.data("locale"),x=e.data("show-popup"),k=e.data("allday-text"),C=e.data("time-format"),o=window["HaECjson"+b.data("id")];void 0!==o&&(new FullCalendar.Calendar(e[0],{stickyHeaderDates:!1,locale:i,headerToolbar:{left:"prev,next today",center:"title",right:"dayGridMonth,timeGridWeek,timeGridDay,listMonth"},initialView:n,firstDay:a,eventTimeFormat:{hour:"numeric",minute:"2-digit",meridiem:"short"},events:o,height:"auto",eventClick:function(e){if("yes"==x){var t=function(e){return new Date(e)},n=function(e){var t,n,a=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"g:i a";return t=(e=e).getHours(),n=e.getMinutes(),(e=new Date).setHours(t),e.setMinutes(n),t={},a.includes("H")?(t.hour="2-digit",t.hour12=!1):(t.hour="numeric",t.hour12=!0,(a.includes("a")||a.includes("A"))&&(t.hour="numeric")),t.minute="2-digit",n=new Intl.DateTimeFormat("en-US",t).format(e),n=a.includes("a")?n.toLowerCase():n},a=(e.jsEvent.preventDefault(),e.view.calendar.currentData.currentDate.toString(),e.event.allDay),i=e.event.title,o=e.event.startStr,r=e.event.endStr,s=e.event.extendedProps.guest,l=e.event.extendedProps.location,d=e.event.extendedProps.description,c=e.event.url,h=e.event.extendedProps.image,u=S.find(".ha-ec-event-title"),g=S.find(".ha-ec-event-time-wrap"),p=S.find(".ha-ec-event-guest-wrap"),f=S.find(".ha-ec-event-location-wrap"),m=S.find(".ha-ec-popup-desc"),y=S.find(".ha-ec-popup-readmore-link"),v=S.find(".ha-ec-popup-image");v.css("display","none"),u.css("display","none"),g.css("display","none"),p.css("display","none"),f.css("display","none"),m.css("display","none"),y.css("display","none"),S.addClass("ha-ec-popup-ready"),h&&(v.removeAttr("style"),v.find("img").attr("src",h),v.find("img").attr("alt",i)),i&&(u.removeAttr("style"),u.text(i)),s&&(p.removeAttr("style"),p.find("span.ha-ec-event-guest").text(s)),l&&(f.removeAttr("style"),f.find("span.ha-ec-event-location").text(l)),d&&(m.removeAttr("style"),m.html(d)),!0!==a?(g.removeAttr("style"),o=Date.parse(t(o)),r=Date.parse(t(r)),h=n(t(o),C),v="Invalid Data",o<r&&(v=n(t(r),C)),g.find("span.ha-ec-event-time").text(h+" - "+v)):(g.removeAttr("style"),g.find("span.ha-ec-event-time").text(k)),c&&(y.removeAttr("style"),y.attr("href",c),"on"===e.event.extendedProps.external&&y.attr("target","_blank"),"on"===e.event.extendedProps.nofollow)&&y.attr("rel","nofollow")}else{var _,w;if(e.event.url&&e.event.extendedProps.external)return e.jsEvent.preventDefault(),u=b.data("id"),(i=document.createElement("a")).id="happy-even-calender-link-"+u,i.href=e.event.url,i.target=e.event.extendedProps.external?"_blank":"_self",i.rel=e.event.extendedProps.nofollow?"nofollow noreferer":"",i.style.display="none",document.body.appendChild(i),(_=document.getElementById(i.id)).click(),w=setTimeout(function(){document.body.removeChild(_),clearTimeout(w)}),!1}},dateClick:function(e){itemDate=e.date.toUTCString()}}).render(),b.find(".ha-ec-popup-wrapper").on("click",function(e){e.stopPropagation(),e.target!==e.currentTarget&&e.target!=t[0]&&e.target!=t.find(".eicon-editor-close")[0]||S.addClass("ha-ec-popup-removing").removeClass("ha-ec-popup-ready")}))},"ha-mailchimp.default":function(e){var n=e.find(".ha-mailchimp-form"),a=e.find(".ha-mc-response-message"),i=n.data("success-message");n.on("submit",function(e){e.preventDefault();e={action:"ha_mailchimp_ajax",security:HappyLocalize.nonce,subscriber_info:n.serialize(),list_id:n.data("list-id"),post_id:n.parent().data("post-id"),widget_id:n.parent().data("widget-id")};h.ajax({type:"post",url:HappyLocalize.ajax_url,data:e,success:function(e){n.trigger("reset"),e.status?(a.removeClass("error"),a.addClass("success"),a.text(i)):(a.addClass("error"),a.removeClass("success"),a.text(e.msg));var t=setTimeout(function(){a.removeClass("error"),a.removeClass("success"),clearTimeout(t)},5e3)},error:function(e){}})})},"ha-image-accordion.default":function(e){var n;e.hasClass("ha-image-accordion-click")&&(n=e.find(".ha-ia-item")).each(function(e,t){h(this).on("click",function(e){h(this).hasClass("active")||(n.removeClass("active"),h(this).addClass("active"))})})},"ha-content-switcher.default":function(e){var n,a,t,i,o,r,s,l=e.find(".ha-content-switcher-wrapper");"button"==l.data("design-type")?(n=l.find(".ha-cs-button"),a=l.find(".ha-cs-content-section"),n.each(function(e,t){h(this).on("click",function(e){e.preventDefault(),h(this).hasClass("active")||(n.removeClass("active"),h(this).addClass("active"),a.removeClass("active"),e=h(this).data("content-id"),l.find("#"+e).addClass("active"))})})):(e=l.find(".ha-cs-switch.ha-input-label"),t=l.find("input.ha-cs-toggle-switch"),i=l.find(".ha-cs-switch.primary"),o=l.find(".ha-cs-switch.secondary"),r=l.find(".ha-cs-content-section.primary"),s=l.find(".ha-cs-content-section.secondary"),e.on("click",function(e){(t.is(":checked")?(i.removeClass("active"),r.removeClass("active"),o.addClass("active"),s):(o.removeClass("active"),s.removeClass("active"),i.addClass("active"),r)).addClass("active")}))},"ha-member.default":function(e){var t,n=e.find(".ha-btn"),a=e.find(".ha-member-lightbox");0<a.length&&(t=a.find(".ha-member-lightbox-close"),n.on("click",function(){a.addClass("ha-member-lightbox-show")}),a.on("click",function(e){!a.hasClass("ha-member-lightbox-show")||e.target!=a[0]&&e.target!=t[0]&&e.target!=t.find("i.eicon-editor-close")[0]||a.removeClass("ha-member-lightbox-show")}))},"ha-creative-button.default":function(e){var n=e.find(".ha-creative-btn-wrap"),t=n.data("magnetic"),a=n.find("a.ha-creative-btn"),t=("yes"==t&&(n.on("mousemove",function(e){var t=e.pageX-(n.offset().left+n.outerWidth()/2),e=e.pageY-(n.offset().top+n.outerHeight()/2);a.css("transform","translate("+.3*t+"px, "+.5*e+"px)")}),n.on("mouseout",function(e){a.css("transform","translate(0px, 0px)")})),e.find(".ha-eft--expandable")),i=t.find(".text");0<t.length&&0<i.length&&(i[0].addEventListener("transitionend",function(){i[0].style.width&&(i[0].style.width="auto")}),t[0].addEventListener("mouseenter",function(e){e.currentTarget.classList.add("hover"),i[0].style.width="auto";e=i[0].offsetWidth;i[0].style.width="0",window.getComputedStyle(i[0]).transform,i[0].style.width="".concat(e,"px")}),t[0].addEventListener("mouseleave",function(e){e.currentTarget.classList.remove("hover"),i[0].style.width="".concat(i[0].offsetWidth,"px"),window.getComputedStyle(i[0]).transform,i[0].style.width=""}))},"ha-pdf-view.default":function(e){var t=e.data("id"),e=e.find(".viewer-"+t).data("pdf-settings"),t={width:e.width,height:e.height,page:e.page_number};PDFObject.embed(e.pdf_url,"#"+e.unique_id,t)},"ha-comparison-table.default":function(e){var t=e.find(".ha-comparison-table-wrapper"),n=e.find(".ha-comparison-table__head"),a=n.data("sticky-header"),i=(e.height(),t.innerHeight()),o=t.offset().top;"yes"===a&&c.scroll(function(){var e=h(this).scrollTop();o<=e?n.addClass("table-sticky"):i<e&&n.removeClass("table-sticky")})}},function(e,t){elementorFrontend.hooks.addAction("frontend/element_ready/"+e,t)}),{"ha-image-grid.default":a,"ha-justified-gallery.default":i,"ha-news-ticker.default":o,"ha-post-tab.default":r}),s=(h.each(a,function(e,t){elementorFrontend.hooks.addAction("frontend/element_ready/"+e,function(e){elementorFrontend.elementsHandler.addHandler(t,{$element:e})})}),elementorFrontend.hooks.addAction("frontend/element_ready/ha-navigation-menu.default",function(e){var a=e.find(".ha-nav-menu");function t(){jQuery(window).width()<768?(a.removeClass("ha-navigation-menu-wrapper"),a.addClass("ha-navigation-burger-menu"),a.find(".ha-submenu-indicator-wrap").on("click",function(e){e.preventDefault();e=h(this).parent("li.menu-item-has-children");e&&e.children("ul.sub-menu").slideToggle()})):(a.addClass("ha-navigation-menu-wrapper"),a.removeClass("ha-navigation-burger-menu"),a.find("ul.menu").removeAttr("style"),a.find("ul.sub-menu").removeAttr("style"))}jQuery(window).width()<1025&&767<jQuery(window).width()&&a.find(".ha-submenu-indicator-wrap").on("click",function(e){e.preventDefault();e=h(this).parent("li.menu-item-has-children");e&&e.children("ul.sub-menu").slideToggle()}),a.find(".ha-menu-toggler").on("click",function(e){var t=h(this).data("humberger"),n=a.find("ul.menu");"open"==t?(h(".ha-menu-open-icon").addClass("hide-icon"),h(".ha-menu-close-icon").removeClass("hide-icon"),h(".ha-menu-close-icon").addClass("show-icon"),n.slideDown()):(h(".ha-menu-close-icon").addClass("hide-icon"),h(".ha-menu-open-icon").removeClass("hide-icon"),h(".ha-menu-open-icon").addClass("show-icon"),n.slideUp())}),t(),c.on("resize",u(t,100))}),elementorFrontend.hooks.addAction("frontend/element_ready/ha-age-gate.default",function(e,t){var n,a,i,o,r,s;elementorFrontend.isEditMode()?(localStorage.removeItem("ha-age-gate-expire-time"),e.find(".ha-age-gate-wrapper").length&&"no"==e.find(".ha-age-gate-wrapper").data("editor_mood")&&e.find(".ha-age-gate-wrapper").hide()):elementorFrontend.isEditMode()||(a=(n=e.find(".ha-age-gate-wrapper")).data("age_gate_cookies_time"),i=localStorage.getItem("ha-age-gate-expire-time"),n.closest("body").css("overflow","hidden"),o=new Date,(r=new Date).setDate(o.getDate()+a),t("body,html,document").scrollTop(e.offset().top),s=setTimeout(function(){t("body,html,document").scrollTop(t("body").offset().top),clearTimeout(s)},1e3),""!=i&&null!=i&&new Date(o)<=new Date(i)?(t(".ha-age-gate-wrapper").hide(),n.closest("body").css("overflow","")):(""!=i&&null!=i&&new Date(o)>new Date(i)&&localStorage.removeItem("ha-age-gate-expire-time"),t(".ha-age-gate-wrapper").show()),e.find(".ha-age-gate-wrapper.ha-age-gate-confirm-age").length&&t(".ha-age-gate-confirm-age-btn").on("click",function(){localStorage.setItem("ha-age-gate-expire-time",r),t(this).closest(".ha-age-gate-wrapper").hide(),t(this).closest("body").css("overflow","")}),e.find(".ha-age-gate-wrapper.ha-age-gate-confirm-dob").length&&t(".ha-age-gate-confirm-dob-btn").on("click",function(){var e=new Date(Date.parse(t(this).closest(".ha-age-gate-form-body").find(".ha-age-gate-date-input").val())).getFullYear();o.getFullYear()-e<t(this).closest(".ha-age-gate-wrapper").data("userbirth")?t(this).closest(".ha-age-gate-boxes").find(".ha-age-gate-warning-msg").show():(localStorage.setItem("ha-age-gate-expire-time",r),t(this).closest(".ha-age-gate-wrapper").hide(),t(this).closest("body").css("overflow",""))}),e.find(".ha-age-gate-wrapper.ha-age-gate-confirm-by-boolean").length&&(t(".ha-age-gate-wrapper .ha-age-gate-confirm-yes-btn").on("click",function(){localStorage.setItem("ha-age-gate-expire-time",r),t(this).closest(".ha-age-gate-wrapper").hide(),t(this).closest("body").css("overflow","")}),t(".ha-age-gate-wrapper .ha-age-gate-confirm-no-btn").on("click",function(){t(this).closest(".ha-age-gate-boxes").find(".ha-age-gate-warning-msg").show()})))}),t.extend({onInit:function(){t.prototype.onInit.apply(this,arguments),this.run()},onElementChange:u(function(e){-1!==["width","title_typography_typography","title_typography_font_size","title_typography_line_height","title_typography_font_weight","sub_title_typography_typography","sub_title_typography_font_size","sub_title_typography_line_height","sub_title_typography_font_weight"].indexOf(e)&&this.run()},300),run:function(){var a,e,t,n,i,o,r=this,s=JSON.parse(r.$element.find(".ha-lhi-image-area").attr("data-settings")),l=r.$element.find(".ha-lhi-image"),d=r.$element.find(".ha-lhi-title h2"),c=r.$element.find(".ha-lhi-title p"),h=r.$element.find("canvas"),u=s.hover_style,g=s.plugin_url+"liquid-hover-image/"+s.hover_effect;"custom"==s.hover_effect&&(g=s.custom_effect||""),h&&h.remove(),new hoverEffect({parent:l[0],intensity:s.intensity,image1:s.first_image,image2:s.second_image,displacementImage:g,imagesRatio:l.height()/l.width(),angle1:(s.angle-45)*(Math.PI/180)*-1,angle2:(s.angle-45)*(Math.PI/180)*-1,speedIn:s.speed,speedOut:s.speed});"style-1"==u&&(d.length||c.length)&&(a=s.style_1_direction,d.length&&(d[0].innerHTML=d[0].textContent.replace(/\S/g,"<span class='letter'>$&</span>")),c.length&&c.addClass("letter"),e=[0,0],t=[0,0],n=[0,0],i=[0,0],"left"==a?(e=[80,0],t=[0,-80]):"right"==a?(e=[0,80],t=[80,200]):"up"==a?(n=[80,0],i=[0,-80]):"down"==a&&(n=[-80,0],i=[0,80]),r.$element.hover(function(){anime.timeline({loop:!1}).add({targets:".elementor-element-"+r.getID()+" .ha-lhi-title .letter",translateX:e,translateY:n,translateZ:0,opacity:[0,1],easing:"easeOutExpo",duration:800,delay:function(e,t){return 40*t}})},function(){anime.timeline({loop:!1}).add({targets:".elementor-element-"+r.getID()+" .ha-lhi-title .letter",translateX:t,translateY:i,opacity:[1,0],duration:850,delay:function(e,t,n){return t=t,n=n,"right"==a?40*(n-t):40*t}})})),"style-2"==u&&(d.length||c.length)&&(d.length&&(o=d.find(".normal").outerHeight(),d.height(o)),c.length&&(o=c.find(".normal").outerHeight(),c.height(o)),r.$element.hover(function(){d.addClass("play"),c.addClass("play")},function(){d.removeClass("play"),c.removeClass("play")})),"style-5"==u&&(d.length||c.length)&&d.length&&(o=d.find(".normal").outerHeight(),d.attr("style","--ha-lhi-style-5-height:"+o+"px"))}})),l=(elementorFrontend.hooks.addAction("frontend/element_ready/ha-liquid-hover-image.default",function(e){elementorFrontend.elementsHandler.addHandler(s,{$element:e})}),t.extend({onInit:function(){t.prototype.onInit.apply(this,arguments),this.run()},onElementChange:u(function(e){-1!==["text_scroll_type"].indexOf(e)&&this.run()},300),getReadySettings:function(){var e={},t=this.getElementSettings("text_scroll_type");return t&&(e.scroll_type=t),h.extend({},this.getSettings(),e)},run:function(){var e=this.getReadySettings(),t=this.$element,n=t.find(".ha-split-lines")[0],a=[],i=e.scroll_type;"undefined"==typeof gsap||"undefined"==typeof ScrollTrigger||(gsap.registerPlugin(ScrollTrigger),n.length<=0)||("horizontal_line_mask"===i||"vertical_line_mask"===i?(h(n).each(function(e){var t=h(this);a[e]=new SplitType(t,{types:"lines, words"})}),h(n).find(".line").each(function(e){h(this).append("<div class='ha-line-mask'></div>")})):"horizontal_line_highlight"===i?h(n).each(function(e){var t=h(this);a[e]=new SplitType(t,{types:"words, chars"})}):new SplitType(n,{types:"lines, words"}),"horizontal_line_mask"===i||"vertical_line_mask"===i?t.find(".line").each(function(e,t){var n,a=h(t).find(".ha-line-mask");a.length<=0||(h(t).addClass("mask-active"),n="horizontal_line_mask"===i?{width:"0%"}:{height:"0%"},gsap.timeline({scrollTrigger:_objectSpread({trigger:t},{start:"horizontal_line_mask"===i?"bottom 50%":"bottom center",end:"bottom center",scrub:3})}).to(a,_objectSpread(_objectSpread({},n),{},{duration:1})))}):"horizontal_line_highlight"===i?(e=t.find(".word .char"),n=t.find(".ha-split-lines"),0<=e.length&&0<=n.length&&gsap.to(e,{scrollTrigger:{trigger:n,start:"top 40%",end:"bottom center",scrub:1},opacity:1,duration:2,stagger:1})):t.find(".line").each(function(){var e=this;gsap.to(this,{scrollTrigger:{trigger:this,start:"top 50%",end:"bottom 50%",onEnter:function(){h(e).addClass("highlight")},onLeaveBack:function(){h(e).removeClass("highlight")}}})}))}})),d=(elementorFrontend.hooks.addAction("frontend/element_ready/ha-text-scroll.default",function(e){elementorFrontend.elementsHandler.addHandler(l,{$element:e})}),t.extend({onInit:function(){t.prototype.onInit.apply(this,arguments),this.run()},bindEvents:function(){ScrollTrigger.config({limitCallbacks:!0,ignoreMobileResize:!0})},run:function(){gsap.registerPlugin(ScrollTrigger);var e,t,n,a,i,o,r,s,l,d,c=this.$element;c.find("title").remove(),c.hasClass("ha-svg-animated-yes")&&(e=c.data("id"),n=(t=this.getElementSettings()).scroll_action,o=null,a=parseFloat(t.repeat_delay)||.5,i=new TimelineMax({repeat:0,yoyo:!1,repeatDelay:.5}),"automatic"===n?(o="custom"!==t.animate_trigger?t.animate_trigger:t.animate_offset.size+"%",d=t.anim_rev?"pause play reverse":"none",i.repeat(t.loop?-1:0).yoyo(t.yoyo).repeatDelay(t.loop?a:0),ScrollTrigger.create({trigger:".elementor-element-"+e,toggleActions:"play "+d,start:"top "+o,animation:i})):(i.repeat("hover"===n&&t.loop?-1:0).yoyo("hover"===n&&t.yoyo).repeatDelay("hover"===n&&t.loop?a:0),"viewport"===n&&(o=t.animate_offset.size/100)),r=c.hasClass("ha-svg-animation-rev-yes")?"to":"from",d=c.find("path, circle, rect, square, ellipse, polyline, polygon, line"),s=0,l=("from"==r?t.animate_start_point:t.animate_end_point).size,d.each(function(e,t){t=h(t);t.attr("fill","transparent"),c.hasClass("ha-svg-sync-together-yes")&&(e=0),s=e,"from"==r?i.from(t,1,{PaSvgDrawer:(l||0)+"% 0"},e):i.to(t,1,{PaSvgDrawer:(l||0)+"% 0"},e)}),"yes"===t.svg_fill&&(0==s&&(s=1),i.to(d,1,{fill:t.svg_color,stroke:t.svg_stroke},s)),"viewport"===n?(d=new ScrollMagic.Controller,new ScrollMagic.Scene({triggerElement:".elementor-element-"+e,triggerHook:o,duration:t.draw_speed?1e3*t.draw_speed.size:"150%"}).setTween(i).addTo(d)):(t.frames&&(i.duration(t.frames),i.repeatDelay(a)),"hover"===n&&(i.pause(),c.find("svg").hover(function(){i.play()},function(){i.pause()}))))}}));elementorFrontend.hooks.addAction("frontend/element_ready/ha-svg-draw.default",function(e){elementorFrontend.elementsHandler.addHandler(d,{$element:e})})})})(jQuery);