(function($){
var Sticky=function(element, userSettings){
var $element,
isSticky=false,
isFollowingParent=false,
isReachedEffectsPoint=false,
elements={},
settings,
elementOffsetValue,
elementWidth;
var defaultSettings={
to: 'top',
offset: 0,
effectsOffset: 0,
parent: false,
classes: {
sticky: 'sticky',
stickyActive: 'sticky-active',
stickyEffects: 'sticky-effects',
spacer: 'sticky-spacer',
},
isRTL: false,
isScrollSnapActive: false,
handleScrollbarWidth: false,
};
var initElements=function(){
$element=$(element).addClass(settings.classes.sticky);
elements.$window=$(window);
elements.$body=$(document).find('body');
if(settings.parent){
elements.$parent=$element.parent();
if('parent'!==settings.parent){
elements.$parent=elements.$parent.closest(settings.parent);
}}
};
var initSettings=function(){
settings=jQuery.extend(true, defaultSettings, userSettings);
};
var bindEvents=function(){
elements.$window.on('resize', onWindowResize);
if(settings.isScrollSnapActive){
elements.$body.on('scroll', onWindowScroll);
}else{
elements.$window.on('scroll', onWindowScroll);
}};
var unbindEvents=function(){
elements.$window
.off('scroll', onWindowScroll)
.off('resize', onWindowResize);
elements.$body.off('scroll', onWindowScroll);
};
var init=function(){
initSettings();
initElements();
bindEvents();
checkPosition();
};
var backupCSS=function($elementBackupCSS, backupState, properties){
var css={},
elementStyle=$elementBackupCSS[ 0 ].style;
properties.forEach(function(property){
css[ property ]=undefined!==elementStyle[ property ] ? elementStyle[ property ]:'';
});
$elementBackupCSS.data('css-backup-' + backupState, css);
};
var getCSSBackup=function($elementCSSBackup, backupState){
return $elementCSSBackup.data('css-backup-' + backupState);
};
const updateElementSizesData=()=> {
elementWidth=getElementOuterSize($element, 'width');
elementOffsetValue=$element.offset().left;
if(settings.isRTL){
const documentWidth=settings.handleScrollbarWidth ? window.innerWidth:document.body.offsetWidth;
elementOffsetValue=Math.max(documentWidth - elementWidth - elementOffsetValue, 0);
}}
var addSpacer=function(){
elements.$spacer=$element.clone()
.addClass(settings.classes.spacer)
.css({
visibility: 'hidden',
transition: 'none',
animation: 'none',
});
$element.after(elements.$spacer);
};
var removeSpacer=function(){
elements.$spacer.remove();
};
var stickElement=function(){
backupCSS($element, 'unsticky', [ 'position', 'width', 'margin-top', 'margin-bottom', 'top', 'bottom', 'inset-inline-start' ]);
const css={
position: 'fixed',
width: elementWidth,
marginTop: 0,
marginBottom: 0,
};
css[ settings.to ]=settings.offset;
css[ 'top'===settings.to ? 'bottom':'top' ]='';
if(elementOffsetValue){
css[ 'inset-inline-start' ]=elementOffsetValue + 'px';
}
$element
.css(css)
.addClass(settings.classes.stickyActive);
};
var unstickElement=function(){
$element
.css(getCSSBackup($element, 'unsticky') )
.removeClass(settings.classes.stickyActive);
};
var followParent=function(){
backupCSS(elements.$parent, 'childNotFollowing', [ 'position' ]);
elements.$parent.css('position', 'relative');
backupCSS($element, 'notFollowing', [ 'position', 'inset-inline-start', 'top', 'bottom' ]);
const css={
position: 'absolute',
};
elementOffsetValue=elements.$spacer.position().left;
if(settings.isRTL){
const parentWidth=$element.parent().outerWidth(),
elementOffsetValueLeft=elements.$spacer.position().left;
elementWidth=elements.$spacer.outerWidth();
elementOffsetValue=Math.max(parentWidth - elementWidth - elementOffsetValueLeft, 0);
}
css[ 'inset-inline-start' ]=elementOffsetValue + 'px';
css[ settings.to ]='';
css[ 'top'===settings.to ? 'bottom':'top' ]=0;
$element.css(css);
isFollowingParent=true;
};
var unfollowParent=function(){
elements.$parent.css(getCSSBackup(elements.$parent, 'childNotFollowing') );
$element.css(getCSSBackup($element, 'notFollowing') );
isFollowingParent=false;
};
var getElementOuterSize=function($elementOuterSize, dimension, includeMargins){
var computedStyle=getComputedStyle($elementOuterSize[ 0 ]),
elementSize=parseFloat(computedStyle[ dimension ]),
sides='height'===dimension ? [ 'top', 'bottom' ]:[ 'left', 'right' ],
propertiesToAdd=[];
if('border-box'!==computedStyle.boxSizing){
propertiesToAdd.push('border', 'padding');
}
if(includeMargins){
propertiesToAdd.push('margin');
}
propertiesToAdd.forEach(function(property){
sides.forEach(function(side){
elementSize +=parseFloat(computedStyle[ property + '-' + side ]);
});
});
return elementSize;
};
var getElementViewportOffset=function($elementViewportOffset){
var windowScrollTop=elements.$window.scrollTop(),
elementHeight=getElementOuterSize($elementViewportOffset, 'height'),
viewportHeight=innerHeight,
elementOffsetFromTop=$elementViewportOffset.offset().top,
distanceFromTop=elementOffsetFromTop - windowScrollTop,
topFromBottom=distanceFromTop - viewportHeight;
return {
top: {
fromTop: distanceFromTop,
fromBottom: topFromBottom,
},
bottom: {
fromTop: distanceFromTop + elementHeight,
fromBottom: topFromBottom + elementHeight,
},
};};
var stick=function(){
updateElementSizesData();
addSpacer();
stickElement();
isSticky=true;
$element.trigger('sticky:stick');
};
var unstick=function(){
unstickElement();
removeSpacer();
isSticky=false;
$element.trigger('sticky:unstick');
};
var checkParent=function(){
var elementOffset=getElementViewportOffset($element),
isTop='top'===settings.to;
if(isFollowingParent){
var isNeedUnfollowing=isTop ? elementOffset.top.fromTop > settings.offset:elementOffset.bottom.fromBottom < -settings.offset;
if(isNeedUnfollowing){
unfollowParent();
}}else{
var parentOffset=getElementViewportOffset(elements.$parent),
parentStyle=getComputedStyle(elements.$parent[ 0 ]),
borderWidthToDecrease=parseFloat(parentStyle[ isTop ? 'borderBottomWidth':'borderTopWidth' ]),
parentViewportDistance=isTop ? parentOffset.bottom.fromTop - borderWidthToDecrease:parentOffset.top.fromBottom + borderWidthToDecrease,
isNeedFollowing=isTop ? parentViewportDistance <=elementOffset.bottom.fromTop:parentViewportDistance >=elementOffset.top.fromBottom;
if(isNeedFollowing){
followParent();
}}
};
var checkEffectsPoint=function(distanceFromTriggerPoint){
if(isReachedEffectsPoint&&-distanceFromTriggerPoint < settings.effectsOffset){
$element.removeClass(settings.classes.stickyEffects);
isReachedEffectsPoint=false;
}else if(! isReachedEffectsPoint&&-distanceFromTriggerPoint >=settings.effectsOffset){
$element.addClass(settings.classes.stickyEffects);
isReachedEffectsPoint=true;
}};
var checkPosition=function(){
var offset=settings.offset,
distanceFromTriggerPoint;
if(isSticky){
var spacerViewportOffset=getElementViewportOffset(elements.$spacer);
distanceFromTriggerPoint='top'===settings.to ? spacerViewportOffset.top.fromTop - offset:-spacerViewportOffset.bottom.fromBottom - offset;
if(settings.parent){
checkParent();
}
if(distanceFromTriggerPoint > 0){
unstick();
}}else{
var elementViewportOffset=getElementViewportOffset($element);
distanceFromTriggerPoint='top'===settings.to ? elementViewportOffset.top.fromTop - offset:-elementViewportOffset.bottom.fromBottom - offset;
if(distanceFromTriggerPoint <=0){
stick();
if(settings.parent){
checkParent();
}}
}
checkEffectsPoint(distanceFromTriggerPoint);
};
var onWindowScroll=function(){
checkPosition();
};
var onWindowResize=function(){
if(! isSticky){
return;
}
unstickElement();
removeSpacer();
updateElementSizesData();
addSpacer();
stickElement();
if(settings.parent){
isFollowingParent=false;
checkParent();
}};
this.destroy=function(){
if(isSticky){
unstick();
}
unbindEvents();
$element.removeClass(settings.classes.sticky);
};
init();
};
$.fn.sticky=function(settings){
var isCommand='string'===typeof settings;
this.each(function(){
var $this=$(this);
if(! isCommand){
$this.data('sticky', new Sticky(this, settings) );
return;
}
var instance=$this.data('sticky');
if(! instance){
throw Error('Trying to perform the `' + settings + '` method prior to initialization');
}
if(! instance[ settings ]){
throw ReferenceError('Method `' + settings + '` not found in sticky instance');
}
instance[ settings ].apply(instance, Array.prototype.slice.call(arguments, 1) );
if('destroy'===settings){
$this.removeData('sticky');
}});
return this;
};
window.Sticky=Sticky;
})(jQuery);
(()=> {
"use strict";
var __webpack_modules__=({});
var __webpack_module_cache__={};
function __webpack_require__(moduleId){
var cachedModule=__webpack_module_cache__[moduleId];
if(cachedModule!==undefined){
return cachedModule.exports;
}
var module=__webpack_module_cache__[moduleId]={
exports: {}
};
if(!(moduleId in __webpack_modules__)){
delete __webpack_module_cache__[moduleId];
var e=new Error("Cannot find module '" + moduleId + "'");
e.code='MODULE_NOT_FOUND';
throw e;
}
__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
return module.exports;
}
__webpack_require__.m=__webpack_modules__;
(()=> {
var deferred=[];
__webpack_require__.O=(result, chunkIds, fn, priority)=> {
if(chunkIds){
priority=priority||0;
for(var i=deferred.length; i > 0&&deferred[i - 1][2] > priority; i--) deferred[i]=deferred[i - 1];
deferred[i]=[chunkIds, fn, priority];
return;
}
var notFulfilled=Infinity;
for (var i=0; i < deferred.length; i++){
var [chunkIds, fn, priority]=deferred[i];
var fulfilled=true;
for (var j=0; j < chunkIds.length; j++){
if((priority & 1===0||notFulfilled >=priority)&&Object.keys(__webpack_require__.O).every((key)=> (__webpack_require__.O[key](chunkIds[j])))){
chunkIds.splice(j--, 1);
}else{
fulfilled=false;
if(priority < notFulfilled) notFulfilled=priority;
}
}
if(fulfilled){
deferred.splice(i--, 1)
var r=fn();
if(r!==undefined) result=r;
}
}
return result;
};
})();
(()=> {
__webpack_require__.f={};
__webpack_require__.e=(chunkId)=> {
return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key)=> {
__webpack_require__.f[key](chunkId, promises);
return promises;
}, []));
};
})();
(()=> {
__webpack_require__.u=(chunkId)=> {
if(chunkId==="code-highlight") return "" + chunkId + ".8d25b9cd7f813610b689.bundle.js";
if(chunkId==="video-playlist") return "" + chunkId + ".5053c13417e7c57d9e7f.bundle.js";
if(chunkId==="paypal-button") return "" + chunkId + ".d8e603d9905c2b3bde70.bundle.js";
if(chunkId==="vendors-node_modules_dompurify_dist_purify_cjs_js") return "e660877373089506a437.bundle.js";
if(chunkId==="stripe-button") return "" + chunkId + ".abf154ceb7693ec0bff5.bundle.js";
if(chunkId==="progress-tracker") return "" + chunkId + ".22412652feef2ac71ac5.bundle.js";
if(chunkId==="animated-headline") return "" + chunkId + ".590b4d6864a2232eac0b.bundle.js";
if(chunkId==="media-carousel") return "" + chunkId + ".60a3055c4fa0c3b31fc6.bundle.js";
if(chunkId==="carousel") return "" + chunkId + ".024c31ddab60df206a0b.bundle.js";
if(chunkId==="countdown") return "" + chunkId + ".3c58982e82605f419c3f.bundle.js";
if(chunkId==="hotspot") return "" + chunkId + ".94fe1b825b2f7c9bdb76.bundle.js";
if(chunkId==="form") return "form.6745bc3535708a0363a0.bundle.js";
if(chunkId==="gallery") return "" + chunkId + ".3952fd7b21d1ead60dcf.bundle.js";
if(chunkId==="lottie") return "" + chunkId + ".df44c4eaff5e54753f39.bundle.js";
if(chunkId==="nav-menu") return "" + chunkId + ".7b59880bfbd23b8fb91d.bundle.js";
if(chunkId==="popup") return "" + chunkId + ".bf01645ab8663696643a.bundle.js";
if(chunkId==="load-more") return "" + chunkId + ".1d302b2fb6cf345312a5.bundle.js";
if(chunkId==="posts") return "" + chunkId + ".55bb40a5248b351fb409.bundle.js";
if(chunkId==="portfolio") return "" + chunkId + ".e6a649d18eb7f3639324.bundle.js";
if(chunkId==="share-buttons") return "" + chunkId + ".37f30f4a219e6c0e93e9.bundle.js";
if(chunkId==="slides") return "" + chunkId + ".d3c0669e9bff9567d186.bundle.js";
if(chunkId==="social") return "" + chunkId + ".9d068d79ff14a59f5142.bundle.js";
if(chunkId==="table-of-contents") return "" + chunkId + ".b73ee35be9a4d0fa4fc2.bundle.js";
if(chunkId==="archive-posts") return "" + chunkId + ".6a4658421da9a5065572.bundle.js";
if(chunkId==="search-form") return "" + chunkId + ".71ab9fe5b72d445e5924.bundle.js";
if(chunkId==="woocommerce-menu-cart") return "" + chunkId + ".c08ada1e7125ce213ca5.bundle.js";
if(chunkId==="woocommerce-purchase-summary") return "" + chunkId + ".130d00959df94d14c914.bundle.js";
if(chunkId==="woocommerce-checkout-page") return "" + chunkId + ".7a6f7394366d968d2770.bundle.js";
if(chunkId==="woocommerce-cart") return "" + chunkId + ".5e3541a8442d571ed4e4.bundle.js";
if(chunkId==="woocommerce-my-account") return "" + chunkId + ".4d988600ae000b6ac48b.bundle.js";
if(chunkId==="woocommerce-notices") return "" + chunkId + ".8efe1d90a849f5584212.bundle.js";
if(chunkId==="product-add-to-cart") return "" + chunkId + ".b06dd68fce755ffc36e9.bundle.js";
if(chunkId==="loop") return "loop.d0c68e1dd1b77405f357.bundle.js";
if(chunkId==="loop-carousel") return "" + chunkId + ".b2a96a7ecd0c8e958eb7.bundle.js";
if(chunkId==="ajax-pagination") return "" + chunkId + ".0b38436b7e5be48d4545.bundle.js";
if(chunkId==="mega-menu") return "" + chunkId + ".fcd18b3fe5e387358760.bundle.js";
if(chunkId==="mega-menu-stretch-content") return "" + chunkId + ".52bdc31fbf4d95be25c8.bundle.js";
if(chunkId==="menu-title-keyboard-handler") return "" + chunkId + ".f5a43f63151ed49687fc.bundle.js";
if(chunkId==="nested-carousel") return "" + chunkId + ".dc5d8f837564cbc5b803.bundle.js";
if(chunkId==="taxonomy-filter") return "" + chunkId + ".3c1b5f243e7641c19dd4.bundle.js";
if(chunkId==="off-canvas") return "" + chunkId + ".131ce85cfbdc3b72eac1.bundle.js";
if(chunkId==="contact-buttons") return "" + chunkId + ".096d5501cf19d5f0c453.bundle.js";
if(chunkId==="contact-buttons-var-10") return "" + chunkId + ".05287599dd1d90c7d862.bundle.js";
if(chunkId==="modules_floating-buttons_assets_js_frontend_classes_floatin-bar-dom_js-modules_floating-butto-2c1e90") return "8db3c97b214b47f55e36.bundle.js";
if(chunkId==="floating-bars-var-2") return "" + chunkId + ".08648abb872971ae0c98.bundle.js";
if(chunkId==="floating-bars-var-3") return "" + chunkId + ".52285918448df18c5803.bundle.js";
if(chunkId==="search") return "" + chunkId + ".23190cfcf422699116da.bundle.js";
return undefined;
};
})();
(()=> {
__webpack_require__.g=(function(){
if(typeof globalThis==='object') return globalThis;
try {
return this||new Function('return this')();
} catch (e){
if(typeof window==='object') return window;
}
})();
})();
(()=> {
__webpack_require__.o=(obj, prop)=> (Object.prototype.hasOwnProperty.call(obj, prop))
})();
(()=> {
var inProgress={};
var dataWebpackPrefix="elementor-pro:";
__webpack_require__.l=(url, done, key, chunkId)=> {
if(inProgress[url]){ inProgress[url].push(done); return; }
var script, needAttach;
if(key!==undefined){
var scripts=document.getElementsByTagName("script");
for(var i=0; i < scripts.length; i++){
var s=scripts[i];
if(s.getAttribute("src")==url||s.getAttribute("data-webpack")==dataWebpackPrefix + key){ script=s; break; }
}
}
if(!script){
needAttach=true;
script=document.createElement('script');
script.charset='utf-8';
if(__webpack_require__.nc){
script.setAttribute("nonce", __webpack_require__.nc);
}
script.setAttribute("data-webpack", dataWebpackPrefix + key);
script.src=url;
}
inProgress[url]=[done];
var onScriptComplete=(prev, event)=> {
script.onerror=script.onload=null;
clearTimeout(timeout);
var doneFns=inProgress[url];
delete inProgress[url];
script.parentNode&&script.parentNode.removeChild(script);
doneFns&&doneFns.forEach((fn)=> (fn(event)));
if(prev) return prev(event);
}
var timeout=setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);
script.onerror=onScriptComplete.bind(null, script.onerror);
script.onload=onScriptComplete.bind(null, script.onload);
needAttach&&document.head.appendChild(script);
};
})();
(()=> {
var scriptUrl;
if(__webpack_require__.g.importScripts) scriptUrl=__webpack_require__.g.location + "";
var document=__webpack_require__.g.document;
if(!scriptUrl&&document){
if(document.currentScript&&document.currentScript.tagName.toUpperCase()==='SCRIPT')
scriptUrl=document.currentScript.src;
if(!scriptUrl){
var scripts=document.getElementsByTagName("script");
if(scripts.length){
var i=scripts.length - 1;
while (i > -1&&(!scriptUrl||!/^http(s?):/.test(scriptUrl))) scriptUrl=scripts[i--].src;
}
}
}
if(!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser");
scriptUrl=scriptUrl.replace(/^blob:/, "").replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/");
__webpack_require__.p=scriptUrl;
})();
(()=> {
var installedChunks={
"webpack-pro.runtime": 0
};
__webpack_require__.f.j=(chunkId, promises)=> {
var installedChunkData=__webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId]:undefined;
if(installedChunkData!==0){
if(installedChunkData){
promises.push(installedChunkData[2]);
}else{
if("webpack-pro.runtime"!=chunkId){
var promise=new Promise((resolve, reject)=> (installedChunkData=installedChunks[chunkId]=[resolve, reject]));
promises.push(installedChunkData[2]=promise);
var url=__webpack_require__.p + __webpack_require__.u(chunkId);
var error=new Error();
var loadingEnded=(event)=> {
if(__webpack_require__.o(installedChunks, chunkId)){
installedChunkData=installedChunks[chunkId];
if(installedChunkData!==0) installedChunks[chunkId]=undefined;
if(installedChunkData){
var errorType=event&&(event.type==='load' ? 'missing':event.type);
var realSrc=event&&event.target&&event.target.src;
error.message='Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')';
error.name='ChunkLoadError';
error.type=errorType;
error.request=realSrc;
installedChunkData[1](error);
}
}
};
__webpack_require__.l(url, loadingEnded, "chunk-" + chunkId, chunkId);
} else installedChunks[chunkId]=0;
}
}
};
__webpack_require__.O.j=(chunkId)=> (installedChunks[chunkId]===0);
var webpackJsonpCallback=(parentChunkLoadingFunction, data)=> {
var [chunkIds, moreModules, runtime]=data;
var moduleId, chunkId, i=0;
if(chunkIds.some((id)=> (installedChunks[id]!==0))){
for(moduleId in moreModules){
if(__webpack_require__.o(moreModules, moduleId)){
__webpack_require__.m[moduleId]=moreModules[moduleId];
}
}
if(runtime) var result=runtime(__webpack_require__);
}
if(parentChunkLoadingFunction) parentChunkLoadingFunction(data);
for(;i < chunkIds.length; i++){
chunkId=chunkIds[i];
if(__webpack_require__.o(installedChunks, chunkId)&&installedChunks[chunkId]){
installedChunks[chunkId][0]();
}
installedChunks[chunkId]=0;
}
return __webpack_require__.O(result);
}
var chunkLoadingGlobal=self["webpackChunkelementor_pro"]=self["webpackChunkelementor_pro"]||[];
chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));
chunkLoadingGlobal.push=webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));
})();
})()
;