(()=> {
"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: {}
};
__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 + ".7121ad6fca6bf899bbb5.bundle.js";
if(chunkId==="video-playlist") return "" + chunkId + ".7140c18aeaebfda82118.bundle.js";
if(chunkId==="paypal-button") return "" + chunkId + ".55ffb013a3fe565f55a5.bundle.js";
if(chunkId==="vendors-node_modules_dompurify_dist_purify_cjs_js") return "8b11be0d97d58e135d30.bundle.js";
if(chunkId==="stripe-button") return "" + chunkId + ".cb4b1cf19f1c46430f76.bundle.js";
if(chunkId==="progress-tracker") return "" + chunkId + ".fd1d31a26340ed74e10a.bundle.js";
if(chunkId==="animated-headline") return "" + chunkId + ".32baaa2ad2ea939224d5.bundle.js";
if(chunkId==="media-carousel") return "" + chunkId + ".8f7b71d582be9d9410fe.bundle.js";
if(chunkId==="carousel") return "" + chunkId + ".298f1fc9c115422aad0e.bundle.js";
if(chunkId==="countdown") return "" + chunkId + ".6e87ca40d36793d92aea.bundle.js";
if(chunkId==="hotspot") return "" + chunkId + ".5e711b7707a884acf3f1.bundle.js";
if(chunkId==="form") return "form.151b991a4cbdda620c22.bundle.js";
if(chunkId==="gallery") return "" + chunkId + ".ac8ddd9e62465c5cdb2d.bundle.js";
if(chunkId==="lottie") return "" + chunkId + ".824e2adeeca89f4297c7.bundle.js";
if(chunkId==="nav-menu") return "" + chunkId + ".fd37f05286fae9cd6d0c.bundle.js";
if(chunkId==="popup") return "" + chunkId + ".996738ad83c089bcc0b9.bundle.js";
if(chunkId==="load-more") return "" + chunkId + ".f5ecc1c66872d0bd2d17.bundle.js";
if(chunkId==="posts") return "" + chunkId + ".e99f84b83c36d4568ffe.bundle.js";
if(chunkId==="portfolio") return "" + chunkId + ".5727b56368be256d0893.bundle.js";
if(chunkId==="share-buttons") return "" + chunkId + ".fda49c1691f4a352c7ef.bundle.js";
if(chunkId==="slides") return "" + chunkId + ".bcd16bbde90338846bd7.bundle.js";
if(chunkId==="social") return "" + chunkId + ".83aec5578e50a413de57.bundle.js";
if(chunkId==="table-of-contents") return "" + chunkId + ".6ac58abccb098fb35213.bundle.js";
if(chunkId==="archive-posts") return "" + chunkId + ".6e398ddd4a81a78bcea3.bundle.js";
if(chunkId==="search-form") return "" + chunkId + ".8941aba5c12cdb05fb7c.bundle.js";
if(chunkId==="woocommerce-menu-cart") return "" + chunkId + ".a0d098b5b49cb56bf258.bundle.js";
if(chunkId==="woocommerce-purchase-summary") return "" + chunkId + ".2ebf26dca7d446fdd128.bundle.js";
if(chunkId==="woocommerce-checkout-page") return "" + chunkId + ".48b0561b8ee895da5af5.bundle.js";
if(chunkId==="woocommerce-cart") return "" + chunkId + ".3e38c78b18f28be95e9d.bundle.js";
if(chunkId==="woocommerce-my-account") return "" + chunkId + ".7c01b4a03ae07847db06.bundle.js";
if(chunkId==="woocommerce-notices") return "" + chunkId + ".c1b466cde2ea03db7d6e.bundle.js";
if(chunkId==="product-add-to-cart") return "" + chunkId + ".0c33bb82cd57e51665f9.bundle.js";
if(chunkId==="loop") return "loop.43307e757bd5a39f14cd.bundle.js";
if(chunkId==="loop-carousel") return "" + chunkId + ".122d0b9321a9edad91b0.bundle.js";
if(chunkId==="ajax-pagination") return "" + chunkId + ".2390838f542f1a8d5ed4.bundle.js";
if(chunkId==="mega-menu") return "" + chunkId + ".595ee0dffef2bd038c6b.bundle.js";
if(chunkId==="mega-menu-stretch-content") return "" + chunkId + ".0d76e4a3b7bf65ff6f9b.bundle.js";
if(chunkId==="menu-title-keyboard-handler") return "" + chunkId + ".efa6d39b4096f1de6f4d.bundle.js";
if(chunkId==="nested-carousel") return "" + chunkId + ".ce414a51f188ccf670ee.bundle.js";
if(chunkId==="taxonomy-filter") return "" + chunkId + ".f3f2746a00fed7447ff5.bundle.js";
if(chunkId==="off-canvas") return "" + chunkId + ".ff4d0ebaaec46fc178b2.bundle.js";
if(chunkId==="contact-buttons") return "" + chunkId + ".23b3f042ed41cf9221f4.bundle.js";
if(chunkId==="contact-buttons-var-10") return "" + chunkId + ".44dafff87cd10dfffc68.bundle.js";
if(chunkId==="modules_floating-buttons_assets_js_frontend_classes_floatin-bar-dom_js-modules_floating-butto-2c1e90") return "e8eba20060a4b0fa29dc.bundle.js";
if(chunkId==="floating-bars-var-2") return "" + chunkId + ".fa9c6b6e6aaeb43504f2.bundle.js";
if(chunkId==="floating-bars-var-3") return "" + chunkId + ".ce31fbd73759a9439cbf.bundle.js";
if(chunkId==="search") return "" + chunkId + ".1a4ea982239b5f5db501.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';
script.timeout=120;
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(/#.*$/, "").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));
})();
})()
;
(self["webpackChunkelementor_pro"]=self["webpackChunkelementor_pro"]||[]).push([["frontend"],{
"../assets/dev/js/frontend/frontend.js":
((__unused_webpack_module, __unused_webpack_exports, __webpack_require__)=> {
"use strict";
var _interopRequireDefault=__webpack_require__( "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
__webpack_require__( "../assets/dev/js/public-path.js");
var _frontend=_interopRequireDefault(__webpack_require__( "../modules/motion-fx/assets/js/frontend/frontend.js"));
var _frontend2=_interopRequireDefault(__webpack_require__( "../modules/sticky/assets/js/frontend/frontend.js"));
var _frontend3=_interopRequireDefault(__webpack_require__( "../modules/code-highlight/assets/js/frontend/frontend.js"));
var _frontend4=_interopRequireDefault(__webpack_require__( "../modules/video-playlist/assets/js/frontend/frontend.js"));
var _frontend5=_interopRequireDefault(__webpack_require__( "../modules/payments/assets/js/frontend/frontend.js"));
var _frontend6=_interopRequireDefault(__webpack_require__( "../modules/progress-tracker/assets/js/frontend/frontend.js"));
var _controls=_interopRequireDefault(__webpack_require__( "../assets/dev/js/frontend/utils/controls.js"));
var _dropdownMenuHeightController=_interopRequireDefault(__webpack_require__( "../assets/dev/js/frontend/utils/dropdown-menu-height-controller.js"));
class ElementorProFrontend extends elementorModules.ViewModule {
onInit(){
super.onInit();
this.config=ElementorProFrontendConfig;
this.modules={};
this.initOnReadyComponents();
}
bindEvents(){
jQuery(window).on('elementor/frontend/init', this.onElementorFrontendInit.bind(this));
}
initModules(){
let handlers={
motionFX: _frontend.default,
sticky: _frontend2.default,
codeHighlight: _frontend3.default,
videoPlaylist: _frontend4.default,
payments: _frontend5.default,
progressTracker: _frontend6.default
};
elementorProFrontend.trigger('elementor-pro/modules/init/before');
handlers=elementorFrontend.hooks.applyFilters('elementor-pro/frontend/handlers', handlers);
jQuery.each(handlers, (moduleName, ModuleClass)=> {
this.modules[moduleName]=new ModuleClass();
});
this.modules.linkActions={
addAction: (...args)=> {
elementorFrontend.utils.urlActions.addAction(...args);
}};}
onElementorFrontendInit(){
this.initModules();
}
initOnReadyComponents(){
this.utils={
controls: new _controls.default(),
DropdownMenuHeightController: _dropdownMenuHeightController.default
};}}
window.elementorProFrontend=new ElementorProFrontend();
}),
"../assets/dev/js/frontend/utils/controls.js":
((__unused_webpack_module, exports)=> {
"use strict";
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class Controls {
getControlValue(controlSettings, controlKey, controlSubKey){
let value;
if('object'===typeof controlSettings[controlKey]&&controlSubKey){
value=controlSettings[controlKey][controlSubKey];
}else{
value=controlSettings[controlKey];
}
return value;
}
getResponsiveControlValue(controlSettings, controlKey, controlSubKey=''){
const currentDeviceMode=elementorFrontend.getCurrentDeviceMode(),
controlValueDesktop=this.getControlValue(controlSettings, controlKey, controlSubKey);
if('widescreen'===currentDeviceMode){
const controlValueWidescreen=this.getControlValue(controlSettings, `${controlKey}_widescreen`, controlSubKey);
return !!controlValueWidescreen||0===controlValueWidescreen ? controlValueWidescreen:controlValueDesktop;
}
const activeBreakpoints=elementorFrontend.breakpoints.getActiveBreakpointsList({
withDesktop: true
});
let parentDeviceMode=currentDeviceMode,
deviceIndex=activeBreakpoints.indexOf(currentDeviceMode),
controlValue='';
while (deviceIndex <=activeBreakpoints.length){
if('desktop'===parentDeviceMode){
controlValue=controlValueDesktop;
break;
}
const responsiveControlKey=`${controlKey}_${parentDeviceMode}`,
responsiveControlValue=this.getControlValue(controlSettings, responsiveControlKey, controlSubKey);
if(!!responsiveControlValue||0===responsiveControlValue){
controlValue=responsiveControlValue;
break;
}
deviceIndex++;
parentDeviceMode=activeBreakpoints[deviceIndex];
}
return controlValue;
}}
exports["default"]=Controls;
}),
"../assets/dev/js/frontend/utils/dropdown-menu-height-controller.js":
((__unused_webpack_module, exports)=> {
"use strict";
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class DropdownMenuHeightController {
constructor(widgetConfig){
this.widgetConfig=widgetConfig;
}
calculateStickyMenuNavHeight(){
this.widgetConfig.elements.$dropdownMenuContainer.css(this.widgetConfig.settings.menuHeightCssVarName, '');
const menuToggleHeight=this.widgetConfig.elements.$dropdownMenuContainer.offset().top - jQuery(window).scrollTop();
return elementorFrontend.elements.$window.height() - menuToggleHeight;
}
calculateMenuTabContentHeight($tab){
return elementorFrontend.elements.$window.height() - $tab[0].getBoundingClientRect().top;
}
isElementSticky(){
return this.widgetConfig.elements.$element.hasClass('elementor-sticky')||this.widgetConfig.elements.$element.parents('.elementor-sticky').length;
}
getMenuHeight(){
return this.isElementSticky() ? this.calculateStickyMenuNavHeight() + 'px':this.widgetConfig.settings.dropdownMenuContainerMaxHeight;
}
setMenuHeight(menuHeight){
this.widgetConfig.elements.$dropdownMenuContainer.css(this.widgetConfig.settings.menuHeightCssVarName, menuHeight);
}
reassignMobileMenuHeight(){
const menuHeight=this.isToggleActive() ? this.getMenuHeight():0;
return this.setMenuHeight(menuHeight);
}
reassignMenuHeight($activeTabContent){
if(!this.isElementSticky()||0===$activeTabContent.length){
return;
}
const offsetBottom=elementorFrontend.elements.$window.height() - $activeTabContent[0].getBoundingClientRect().top,
isContentHeightBiggerThanWindow=$activeTabContent.height() > offsetBottom;
if(!isContentHeightBiggerThanWindow){
return;
}
$activeTabContent.css('height', this.calculateMenuTabContentHeight($activeTabContent) + 'px');
$activeTabContent.css('overflow-y', 'scroll');
}
resetMenuHeight($activeTabContent){
if(!this.isElementSticky()){
return;
}
$activeTabContent.css('height', 'initial');
$activeTabContent.css('overflow-y', 'visible');
}
isToggleActive(){
const $menuToggle=this.widgetConfig.elements.$menuToggle;
if(!!this.widgetConfig.attributes?.menuToggleState){
return 'true'===$menuToggle.attr(this.widgetConfig.attributes.menuToggleState);
}
return $menuToggle.hasClass(this.widgetConfig.classes.menuToggleActiveClass);
}}
exports["default"]=DropdownMenuHeightController;
}),
"../assets/dev/js/public-path.js":
((__unused_webpack_module, __unused_webpack_exports, __webpack_require__)=> {
"use strict";
__webpack_require__.p=ElementorProFrontendConfig.urls.assets + 'js/';
}),
"../modules/code-highlight/assets/js/frontend/frontend.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
"use strict";
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class _default extends elementorModules.Module {
constructor(){
super();
elementorFrontend.elementsHandler.attachHandler('code-highlight', ()=> __webpack_require__.e( "code-highlight").then(__webpack_require__.bind(__webpack_require__,  "../modules/code-highlight/assets/js/frontend/handler.js")));
}}
exports["default"]=_default;
}),
"../modules/motion-fx/assets/js/frontend/frontend.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
"use strict";
var _interopRequireDefault=__webpack_require__( "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
var _handler=_interopRequireDefault(__webpack_require__( "../modules/motion-fx/assets/js/frontend/handler.js"));
class _default extends elementorModules.Module {
constructor(){
super();
elementorFrontend.elementsHandler.attachHandler('global', _handler.default, null);
}}
exports["default"]=_default;
}),
"../modules/motion-fx/assets/js/frontend/handler.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
"use strict";
var _interopRequireDefault=__webpack_require__( "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
var _motionFx=_interopRequireDefault(__webpack_require__( "../modules/motion-fx/assets/js/frontend/motion-fx/motion-fx.js"));
class _default extends elementorModules.frontend.handlers.Base {
__construct(...args){
super.__construct(...args);
this.toggle=elementorFrontend.debounce(this.toggle, 200);
}
getDefaultSettings(){
return {
selectors: {
container: '.elementor-widget-container'
}};}
getDefaultElements(){
const selectors=this.getSettings('selectors');
let container=this.$element.find(selectors.container);
if(0===container.length){
container=this.$element;
}
return {
$container: container
};}
bindEvents(){
elementorFrontend.elements.$window.on('resize', this.toggle);
}
unbindEvents(){
elementorFrontend.elements.$window.off('resize', this.toggle);
}
addCSSTransformEvents(){
const motionFxScrolling=this.getElementSettings('motion_fx_motion_fx_scrolling');
if(motionFxScrolling&&!this.isTransitionEventAdded){
this.isTransitionEventAdded=true;
this.elements.$container.on('mouseenter', ()=> {
this.elements.$container.css('--e-transform-transition-duration', '');
});
}}
initEffects(){
this.effects={
translateY: {
interaction: 'scroll',
actions: ['translateY']
},
translateX: {
interaction: 'scroll',
actions: ['translateX']
},
rotateZ: {
interaction: 'scroll',
actions: ['rotateZ']
},
scale: {
interaction: 'scroll',
actions: ['scale']
},
opacity: {
interaction: 'scroll',
actions: ['opacity']
},
blur: {
interaction: 'scroll',
actions: ['blur']
},
mouseTrack: {
interaction: 'mouseMove',
actions: ['translateXY']
},
tilt: {
interaction: 'mouseMove',
actions: ['tilt']
}};}
prepareOptions(name){
const elementSettings=this.getElementSettings(),
type='motion_fx'===name ? 'element':'background',
interactions={};
jQuery.each(elementSettings, (key, value)=> {
const keyRegex=new RegExp('^' + name + '_(.+?)_effect'),
keyMatches=key.match(keyRegex);
if(!keyMatches||!value){
return;
}
const options={},
effectName=keyMatches[1];
jQuery.each(elementSettings, (subKey, subValue)=> {
const subKeyRegex=new RegExp(name + '_' + effectName + '_(.+)'),
subKeyMatches=subKey.match(subKeyRegex);
if(!subKeyMatches){
return;
}
const subFieldName=subKeyMatches[1];
if('effect'===subFieldName){
return;
}
if('object'===typeof subValue){
subValue=Object.keys(subValue.sizes).length ? subValue.sizes:subValue.size;
}
options[subKeyMatches[1]]=subValue;
});
const effect=this.effects[effectName],
interactionName=effect.interaction;
if(!interactions[interactionName]){
interactions[interactionName]={};}
effect.actions.forEach(action=> interactions[interactionName][action]=options);
});
let $element=this.$element,
$dimensionsElement,
$childElement;
const elementType=this.getElementType();
if('element'===type&&!['section', 'container'].includes(elementType)){
$dimensionsElement=$element;
let childElementSelector;
if('column'===elementType){
childElementSelector='.elementor-widget-wrap';
}else{
childElementSelector='.elementor-widget-container';
}
$childElement=$element.find('> ' + childElementSelector);
$element=0===$childElement.length ? this.$element:$childElement;
}
const options={
type,
interactions,
elementSettings,
$element,
$dimensionsElement,
refreshDimensions: this.isEdit,
range: elementSettings[name + '_range'],
classes: {
element: 'elementor-motion-effects-element',
parent: 'elementor-motion-effects-parent',
backgroundType: 'elementor-motion-effects-element-type-background',
container: 'elementor-motion-effects-container',
layer: 'elementor-motion-effects-layer',
perspective: 'elementor-motion-effects-perspective'
}};
if(!options.range&&'fixed'===this.getCurrentDeviceSetting('_position')){
options.range='page';
}
if('fixed'===this.getCurrentDeviceSetting('_position')){
options.isFixedPosition=true;
}
if('background'===type&&'column'===this.getElementType()){
options.addBackgroundLayerTo=' > .elementor-element-populated';
}
return options;
}
activate(name){
const options=this.prepareOptions(name);
if(jQuery.isEmptyObject(options.interactions)){
return;
}
this[name]=new _motionFx.default(options);
}
deactivate(name){
if(this[name]){
this[name].destroy();
delete this[name];
}}
toggle(){
const currentDeviceMode=elementorFrontend.getCurrentDeviceMode(),
elementSettings=this.getElementSettings();
['motion_fx', 'background_motion_fx'].forEach(name=> {
const devices=elementSettings[name + '_devices'],
isCurrentModeActive = !devices||-1!==devices.indexOf(currentDeviceMode);
if(isCurrentModeActive&&(elementSettings[name + '_motion_fx_scrolling']||elementSettings[name + '_motion_fx_mouse'])){
if(this[name]){
this.refreshInstance(name);
}else{
this.activate(name);
}}else{
this.deactivate(name);
}});
}
refreshInstance(instanceName){
const instance=this[instanceName];
if(!instance){
return;
}
const preparedOptions=this.prepareOptions(instanceName);
instance.setSettings(preparedOptions);
instance.refresh();
}
onInit(){
super.onInit();
const prefersReducedMotion=window.matchMedia('(prefers-reduced-motion: reduce)');
if(prefersReducedMotion&&prefersReducedMotion.matches){
return;
}
this.initEffects();
this.addCSSTransformEvents();
this.toggle();
}
onElementChange(propertyName){
if(/motion_fx_((scrolling)|(mouse)|(devices))$/.test(propertyName)){
if('motion_fx_motion_fx_scrolling'===propertyName){
this.addCSSTransformEvents();
}
this.toggle();
return;
}
const propertyMatches=propertyName.match('.*?(motion_fx|_transform)');
if(propertyMatches){
const instanceName=propertyMatches[0].match('(_transform)') ? 'motion_fx':propertyMatches[0];
this.refreshInstance(instanceName);
if(!this[instanceName]){
this.activate(instanceName);
}}
if(/^_position/.test(propertyName)){
['motion_fx', 'background_motion_fx'].forEach(instanceName=> {
this.refreshInstance(instanceName);
});
}}
onDestroy(){
super.onDestroy();
['motion_fx', 'background_motion_fx'].forEach(name=> {
this.deactivate(name);
});
}}
exports["default"]=_default;
}),
"../modules/motion-fx/assets/js/frontend/motion-fx/actions.js":
((__unused_webpack_module, exports)=> {
"use strict";
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class _default extends elementorModules.Module {
getMovePointFromPassedPercents(movableRange, passedPercents){
const movePoint=passedPercents / movableRange * 100;
return +movePoint.toFixed(2);
}
getEffectValueFromMovePoint(range, movePoint){
return range * movePoint / 100;
}
getStep(passedPercents, options){
if('element'===this.getSettings('type')){
return this.getElementStep(passedPercents, options);
}
return this.getBackgroundStep(passedPercents, options);
}
getElementStep(passedPercents, options){
return -(passedPercents - 50) * options.speed;
}
getBackgroundStep(passedPercents, options){
const movableRange=this.getSettings('dimensions.movable' + options.axis.toUpperCase());
return -this.getEffectValueFromMovePoint(movableRange, passedPercents);
}
getDirectionMovePoint(passedPercents, direction, range){
let movePoint;
if(passedPercents < range.start){
if('out-in'===direction){
movePoint=0;
}else if('in-out'===direction){
movePoint=100;
}else{
movePoint=this.getMovePointFromPassedPercents(range.start, passedPercents);
if('in-out-in'===direction){
movePoint=100 - movePoint;
}}
}else if(passedPercents < range.end){
if('in-out-in'===direction){
movePoint=0;
}else if('out-in-out'===direction){
movePoint=100;
}else{
movePoint=this.getMovePointFromPassedPercents(range.end - range.start, passedPercents - range.start);
if('in-out'===direction){
movePoint=100 - movePoint;
}}
}else if('in-out'===direction){
movePoint=0;
}else if('out-in'===direction){
movePoint=100;
}else{
movePoint=this.getMovePointFromPassedPercents(100 - range.end, 100 - passedPercents);
if('in-out-in'===direction){
movePoint=100 - movePoint;
}}
return movePoint;
}
translateX(actionData, passedPercents){
actionData.axis='x';
actionData.unit='px';
this.transform('translateX', passedPercents, actionData);
}
translateY(actionData, passedPercents){
actionData.axis='y';
actionData.unit='px';
this.transform('translateY', passedPercents, actionData);
}
translateXY(actionData, passedPercentsX, passedPercentsY){
this.translateX(actionData, passedPercentsX);
this.translateY(actionData, passedPercentsY);
}
tilt(actionData, passedPercentsX, passedPercentsY){
const options={
speed: actionData.speed / 10,
direction: actionData.direction
};
this.rotateX(options, passedPercentsY);
this.rotateY(options, 100 - passedPercentsX);
}
rotateX(actionData, passedPercents){
actionData.axis='x';
actionData.unit='deg';
this.transform('rotateX', passedPercents, actionData);
}
rotateY(actionData, passedPercents){
actionData.axis='y';
actionData.unit='deg';
this.transform('rotateY', passedPercents, actionData);
}
rotateZ(actionData, passedPercents){
actionData.unit='deg';
this.transform('rotateZ', passedPercents, actionData);
}
scale(actionData, passedPercents){
const movePoint=this.getDirectionMovePoint(passedPercents, actionData.direction, actionData.range);
this.updateRulePart('transform', 'scale', 1 + actionData.speed * movePoint / 1000);
}
transform(action, passedPercents, actionData){
if(actionData.direction){
passedPercents=100 - passedPercents;
}
this.updateRulePart('transform', action, this.getStep(passedPercents, actionData) + actionData.unit);
}
setCSSTransformVariables(elementSettings){
this.CSSTransformVariables=[];
jQuery.each(elementSettings, (settingKey, settingValue)=> {
const transformKeyMatches=settingKey.match(/_transform_(.+?)_effect/m);
if(transformKeyMatches&&settingValue){
if('perspective'===transformKeyMatches[1]){
this.CSSTransformVariables.unshift(transformKeyMatches[1]);
return;
}
if(this.CSSTransformVariables.includes(transformKeyMatches[1])){
return;
}
this.CSSTransformVariables.push(transformKeyMatches[1]);
}});
}
opacity(actionData, passedPercents){
const movePoint=this.getDirectionMovePoint(passedPercents, actionData.direction, actionData.range),
level=actionData.level / 10,
opacity=1 - level + this.getEffectValueFromMovePoint(level, movePoint);
this.$element.css({
opacity,
'will-change': 'opacity'
});
}
blur(actionData, passedPercents){
const movePoint=this.getDirectionMovePoint(passedPercents, actionData.direction, actionData.range),
blur=actionData.level - this.getEffectValueFromMovePoint(actionData.level, movePoint);
this.updateRulePart('filter', 'blur', blur + 'px');
}
updateRulePart(ruleName, key, value){
if(!this.rulesVariables[ruleName]){
this.rulesVariables[ruleName]={};}
if(!this.rulesVariables[ruleName][key]){
this.rulesVariables[ruleName][key]=true;
this.updateRule(ruleName);
}
const cssVarKey=`--${key}`;
this.$element[0].style.setProperty(cssVarKey, value);
}
updateRule(ruleName){
let value='';
value +=this.concatTransformCSSProperties(ruleName);
value +=this.concatTransformMotionEffectCSSProperties(ruleName);
this.$element.css(ruleName, value);
}
concatTransformCSSProperties(ruleName){
let value='';
if('transform'===ruleName){
jQuery.each(this.CSSTransformVariables, (index, variableKey)=> {
const variableName=variableKey;
if(variableKey.startsWith('flip')){
variableKey=variableKey.replace('flip', 'scale');
}
const defaultUnit=variableKey.startsWith('rotate')||variableKey.startsWith('skew') ? 'deg':'px',
defaultValue=variableKey.startsWith('scale') ? 1:0 + defaultUnit;
value +=`${variableKey}(var(--e-transform-${variableName}, ${defaultValue}))`;
});
}
return value;
}
concatTransformMotionEffectCSSProperties(ruleName){
let value='';
jQuery.each(this.rulesVariables[ruleName], variableKey=> {
value +=`${variableKey}(var(--${variableKey}))`;
});
return value;
}
runAction(actionName, actionData, passedPercents, ...args){
if(actionData.affectedRange){
if(actionData.affectedRange.start > passedPercents){
passedPercents=actionData.affectedRange.start;
}
if(actionData.affectedRange.end < passedPercents){
passedPercents=actionData.affectedRange.end;
}}
this[actionName](actionData, passedPercents, ...args);
}
refresh(){
this.rulesVariables={};
this.CSSTransformVariables=[];
this.$element.css({
transform: '',
filter: '',
opacity: '',
'will-change': ''
});
}
onInit(){
this.$element=this.getSettings('$targetElement');
this.refresh();
}}
exports["default"]=_default;
}),
"../modules/motion-fx/assets/js/frontend/motion-fx/interactions/base.js":
((__unused_webpack_module, exports)=> {
"use strict";
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class _default extends elementorModules.ViewModule {
__construct(options){
this.motionFX=options.motionFX;
if(!this.intersectionObservers){
this.setElementInViewportObserver();
}}
setElementInViewportObserver(){
this.intersectionObserver=elementorModules.utils.Scroll.scrollObserver({
callback: event=> {
if(event.isInViewport){
this.onInsideViewport();
}else{
this.removeAnimationFrameRequest();
}}
});
const observedElement='page'===this.motionFX.getSettings('range') ? elementorFrontend.elements.$body[0]:this.motionFX.elements.$parent[0];
this.intersectionObserver.observe(observedElement);
}
onInsideViewport=()=> {
this.run();
this.animationFrameRequest=requestAnimationFrame(this.onInsideViewport);
};
runCallback(...args){
const callback=this.getSettings('callback');
callback(...args);
}
removeIntersectionObserver(){
if(this.intersectionObserver){
this.intersectionObserver.unobserve(this.motionFX.elements.$parent[0]);
}}
removeAnimationFrameRequest(){
if(this.animationFrameRequest){
cancelAnimationFrame(this.animationFrameRequest);
}}
destroy(){
this.removeAnimationFrameRequest();
this.removeIntersectionObserver();
}
onInit(){
super.onInit();
}}
exports["default"]=_default;
}),
"../modules/motion-fx/assets/js/frontend/motion-fx/interactions/mouse-move.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
"use strict";
var _interopRequireDefault=__webpack_require__( "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
var _base=_interopRequireDefault(__webpack_require__( "../modules/motion-fx/assets/js/frontend/motion-fx/interactions/base.js"));
class MouseMoveInteraction extends _base.default {
bindEvents(){
if(!MouseMoveInteraction.mouseTracked){
elementorFrontend.elements.$window.on('mousemove', MouseMoveInteraction.updateMousePosition);
MouseMoveInteraction.mouseTracked=true;
}}
run(){
const mousePosition=MouseMoveInteraction.mousePosition,
oldMousePosition=this.oldMousePosition;
if(oldMousePosition.x===mousePosition.x&&oldMousePosition.y===mousePosition.y){
return;
}
this.oldMousePosition={
x: mousePosition.x,
y: mousePosition.y
};
const passedPercentsX=100 / innerWidth * mousePosition.x,
passedPercentsY=100 / innerHeight * mousePosition.y;
this.runCallback(passedPercentsX, passedPercentsY);
}
onInit(){
this.oldMousePosition={};
super.onInit();
}}
exports["default"]=MouseMoveInteraction;
MouseMoveInteraction.mousePosition={};
MouseMoveInteraction.updateMousePosition=event=> {
MouseMoveInteraction.mousePosition={
x: event.clientX,
y: event.clientY
};};
}),
"../modules/motion-fx/assets/js/frontend/motion-fx/interactions/scroll.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
"use strict";
var _interopRequireDefault=__webpack_require__( "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
var _base=_interopRequireDefault(__webpack_require__( "../modules/motion-fx/assets/js/frontend/motion-fx/interactions/base.js"));
class _default extends _base.default {
run(){
if(pageYOffset===this.windowScrollTop){
return false;
}
this.onScrollMovement();
this.windowScrollTop=pageYOffset;
}
onScrollMovement(){
this.updateMotionFxDimensions();
this.updateAnimation();
this.resetTransitionVariable();
}
resetTransitionVariable(){
this.motionFX.$element.css('--e-transform-transition-duration', '100ms');
}
updateMotionFxDimensions(){
const motionFXSettings=this.motionFX.getSettings();
if(motionFXSettings.refreshDimensions){
this.motionFX.defineDimensions();
}}
updateAnimation(){
let passedRangePercents;
if('page'===this.motionFX.getSettings('range')){
passedRangePercents=elementorModules.utils.Scroll.getPageScrollPercentage();
}else if(this.motionFX.getSettings('isFixedPosition')){
passedRangePercents=elementorModules.utils.Scroll.getPageScrollPercentage({}, window.innerHeight);
}else{
passedRangePercents=elementorModules.utils.Scroll.getElementViewportPercentage(this.motionFX.elements.$parent);
}
this.runCallback(passedRangePercents);
}}
exports["default"]=_default;
}),
"../modules/motion-fx/assets/js/frontend/motion-fx/motion-fx.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
"use strict";
var _interopRequireDefault=__webpack_require__( "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
var _scroll=_interopRequireDefault(__webpack_require__( "../modules/motion-fx/assets/js/frontend/motion-fx/interactions/scroll.js"));
var _mouseMove=_interopRequireDefault(__webpack_require__( "../modules/motion-fx/assets/js/frontend/motion-fx/interactions/mouse-move.js"));
var _actions=_interopRequireDefault(__webpack_require__( "../modules/motion-fx/assets/js/frontend/motion-fx/actions.js"));
class _default extends elementorModules.ViewModule {
getDefaultSettings(){
return {
type: 'element',
$element: null,
$dimensionsElement: null,
addBackgroundLayerTo: null,
interactions: {},
refreshDimensions: false,
range: 'viewport',
classes: {
element: 'motion-fx-element',
parent: 'motion-fx-parent',
backgroundType: 'motion-fx-element-type-background',
container: 'motion-fx-container',
layer: 'motion-fx-layer',
perspective: 'motion-fx-perspective'
}};}
bindEvents(){
this.defineDimensions=this.defineDimensions.bind(this);
elementorFrontend.elements.$window.on('resize elementor-pro/motion-fx/recalc', this.defineDimensions);
}
unbindEvents(){
elementorFrontend.elements.$window.off('resize elementor-pro/motion-fx/recalc', this.defineDimensions);
}
addBackgroundLayer(){
const settings=this.getSettings();
this.elements.$motionFXContainer=jQuery('<div>', {
class: settings.classes.container
});
this.elements.$motionFXLayer=jQuery('<div>', {
class: settings.classes.layer
});
this.updateBackgroundLayerSize();
this.elements.$motionFXContainer.prepend(this.elements.$motionFXLayer);
const $addBackgroundLayerTo=settings.addBackgroundLayerTo ? this.$element.find(settings.addBackgroundLayerTo):this.$element;
$addBackgroundLayerTo.prepend(this.elements.$motionFXContainer);
}
removeBackgroundLayer(){
this.elements.$motionFXContainer.remove();
}
updateBackgroundLayerSize(){
const settings=this.getSettings(),
speed={
x: 0,
y: 0
},
mouseInteraction=settings.interactions.mouseMove,
scrollInteraction=settings.interactions.scroll;
if(mouseInteraction&&mouseInteraction.translateXY){
speed.x=mouseInteraction.translateXY.speed * 10;
speed.y=mouseInteraction.translateXY.speed * 10;
}
if(scrollInteraction){
if(scrollInteraction.translateX){
speed.x=scrollInteraction.translateX.speed * 10;
}
if(scrollInteraction.translateY){
speed.y=scrollInteraction.translateY.speed * 10;
}}
this.elements.$motionFXLayer.css({
width: 100 + speed.x + '%',
height: 100 + speed.y + '%'
});
}
defineDimensions(){
const $dimensionsElement=this.getSettings('$dimensionsElement')||this.$element,
elementOffset=$dimensionsElement.offset();
const dimensions={
elementHeight: $dimensionsElement.outerHeight(),
elementWidth: $dimensionsElement.outerWidth(),
elementTop: elementOffset.top,
elementLeft: elementOffset.left
};
dimensions.elementRange=dimensions.elementHeight + innerHeight;
this.setSettings('dimensions', dimensions);
if('background'===this.getSettings('type')){
this.defineBackgroundLayerDimensions();
}}
defineBackgroundLayerDimensions(){
const dimensions=this.getSettings('dimensions');
dimensions.layerHeight=this.elements.$motionFXLayer.height();
dimensions.layerWidth=this.elements.$motionFXLayer.width();
dimensions.movableX=dimensions.layerWidth - dimensions.elementWidth;
dimensions.movableY=dimensions.layerHeight - dimensions.elementHeight;
this.setSettings('dimensions', dimensions);
}
initInteractionsTypes(){
this.interactionsTypes={
scroll: _scroll.default,
mouseMove: _mouseMove.default
};}
prepareSpecialActions(){
const settings=this.getSettings(),
hasTiltEffect = !!(settings.interactions.mouseMove&&settings.interactions.mouseMove.tilt);
this.elements.$parent.toggleClass(settings.classes.perspective, hasTiltEffect);
}
cleanSpecialActions(){
const settings=this.getSettings();
this.elements.$parent.removeClass(settings.classes.perspective);
}
runInteractions(){
const settings=this.getSettings();
this.actions.setCSSTransformVariables(settings.elementSettings);
this.prepareSpecialActions();
jQuery.each(settings.interactions, (interactionName, actions)=> {
this.interactions[interactionName]=new this.interactionsTypes[interactionName]({
motionFX: this,
callback: (...args)=> {
jQuery.each(actions, (actionName, actionData)=> this.actions.runAction(actionName, actionData, ...args));
}});
this.interactions[interactionName].run();
});
}
destroyInteractions(){
this.cleanSpecialActions();
jQuery.each(this.interactions, (interactionName, interaction)=> interaction.destroy());
this.interactions={};}
refresh(){
this.actions.setSettings(this.getSettings());
if('background'===this.getSettings('type')){
this.updateBackgroundLayerSize();
this.defineBackgroundLayerDimensions();
}
this.actions.refresh();
this.destroyInteractions();
this.runInteractions();
}
destroy(){
this.destroyInteractions();
this.actions.refresh();
const settings=this.getSettings();
this.$element.removeClass(settings.classes.element);
this.elements.$parent.removeClass(settings.classes.parent);
if('background'===settings.type){
this.$element.removeClass(settings.classes.backgroundType);
this.removeBackgroundLayer();
}}
onInit(){
super.onInit();
const settings=this.getSettings();
this.$element=settings.$element;
this.elements.$parent=this.$element.parent();
this.$element.addClass(settings.classes.element);
this.elements.$parent=this.$element.parent();
this.elements.$parent.addClass(settings.classes.parent);
if('background'===settings.type){
this.$element.addClass(settings.classes.backgroundType);
this.addBackgroundLayer();
}
this.defineDimensions();
settings.$targetElement='element'===settings.type ? this.$element:this.elements.$motionFXLayer;
this.interactions={};
this.actions=new _actions.default(settings);
this.initInteractionsTypes();
this.runInteractions();
}}
exports["default"]=_default;
}),
"../modules/payments/assets/js/frontend/frontend.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
"use strict";
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class _default extends elementorModules.Module {
constructor(){
super();
elementorFrontend.elementsHandler.attachHandler('paypal-button', ()=> __webpack_require__.e( "paypal-button").then(__webpack_require__.bind(__webpack_require__,  "../modules/payments/assets/js/frontend/handlers/paypal-button.js")));
elementorFrontend.elementsHandler.attachHandler('stripe-button', ()=> Promise.all([__webpack_require__.e("vendors-node_modules_dompurify_dist_purify_cjs_js"), __webpack_require__.e("stripe-button")]).then(__webpack_require__.bind(__webpack_require__,  "../modules/payments/assets/js/frontend/handlers/stripe-button.js")));
}}
exports["default"]=_default;
}),
"../modules/progress-tracker/assets/js/frontend/frontend.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
"use strict";
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class _default extends elementorModules.Module {
constructor(){
super();
elementorFrontend.elementsHandler.attachHandler('progress-tracker', ()=> __webpack_require__.e( "progress-tracker").then(__webpack_require__.bind(__webpack_require__,  "../modules/progress-tracker/assets/js/frontend/handlers/progress-tracker.js")));
}}
exports["default"]=_default;
}),
"../modules/sticky/assets/js/frontend/frontend.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
"use strict";
var _interopRequireDefault=__webpack_require__( "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
var _sticky=_interopRequireDefault(__webpack_require__( "../modules/sticky/assets/js/frontend/handlers/sticky.js"));
class _default extends elementorModules.Module {
constructor(){
super();
elementorFrontend.elementsHandler.attachHandler('section', _sticky.default, null);
elementorFrontend.elementsHandler.attachHandler('container', _sticky.default, null);
elementorFrontend.elementsHandler.attachHandler('widget', _sticky.default, null);
}}
exports["default"]=_default;
}),
"../modules/sticky/assets/js/frontend/handlers/sticky.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
"use strict";
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
var _utils=__webpack_require__( "../../elementor/assets/dev/js/frontend/utils/utils.js");
var _default=exports["default"]=elementorModules.frontend.handlers.Base.extend({
currentConfig: {},
debouncedReactivate: null,
bindEvents(){
elementorFrontend.addListenerOnce(this.getUniqueHandlerID() + 'sticky', 'resize', this.reactivateOnResize);
},
unbindEvents(){
elementorFrontend.removeListeners(this.getUniqueHandlerID() + 'sticky', 'resize', this.reactivateOnResize);
},
isStickyInstanceActive(){
return undefined!==this.$element.data('sticky');
},
getResponsiveSetting(setting){
const elementSettings=this.getElementSettings();
return elementorFrontend.getCurrentDeviceSetting(elementSettings, setting);
},
getResponsiveSettingList(setting){
const breakpoints=Object.keys(elementorFrontend.config.responsive.activeBreakpoints);
return ['', ...breakpoints].map(suffix=> {
return suffix ? `${setting}_${suffix}`:setting;
});
},
getConfig(){
const elementSettings=this.getElementSettings(),
stickyOptions={
to: elementSettings.sticky,
offset: this.getResponsiveSetting('sticky_offset'),
effectsOffset: this.getResponsiveSetting('sticky_effects_offset'),
classes: {
sticky: 'elementor-sticky',
stickyActive: 'elementor-sticky--active elementor-section--handles-inside',
stickyEffects: 'elementor-sticky--effects',
spacer: 'elementor-sticky__spacer'
},
isRTL: elementorFrontend.config.is_rtl,
isScrollSnapActive: (0, _utils.isScrollSnapActive)(),
handleScrollbarWidth: elementorFrontend.isEditMode()
},
$wpAdminBar=elementorFrontend.elements.$wpAdminBar,
isParentContainer=this.isContainerElement(this.$element[0])&&!this.isContainerElement(this.$element[0].parentElement);
if($wpAdminBar.length&&'top'===elementSettings.sticky&&'fixed'===$wpAdminBar.css('position')){
stickyOptions.offset +=$wpAdminBar.height();
}
if(elementSettings.sticky_parent&&!isParentContainer){
stickyOptions.parent='.e-con, .e-con-inner, .elementor-widget-wrap';
}
return stickyOptions;
},
activate(){
this.currentConfig=this.getConfig();
this.$element.sticky(this.currentConfig);
},
deactivate(){
if(!this.isStickyInstanceActive()){
return;
}
this.$element.sticky('destroy');
},
run(refresh){
if(!this.getElementSettings('sticky')){
this.deactivate();
return;
}
var currentDeviceMode=elementorFrontend.getCurrentDeviceMode(),
activeDevices=this.getElementSettings('sticky_on');
if(-1!==activeDevices.indexOf(currentDeviceMode)){
if(true===refresh){
this.reactivate();
}else if(!this.isStickyInstanceActive()){
this.activate();
}}else{
this.deactivate();
}},
reactivateOnResize(){
clearTimeout(this.debouncedReactivate);
this.debouncedReactivate=setTimeout(()=> {
const config=this.getConfig(),
isDifferentConfig=JSON.stringify(config)!==JSON.stringify(this.currentConfig);
if(isDifferentConfig){
this.run(true);
}}, 300);
},
reactivate(){
this.deactivate();
this.activate();
},
onElementChange(settingKey){
if(-1!==['sticky', 'sticky_on'].indexOf(settingKey)){
this.run(true);
}
const settings=[...this.getResponsiveSettingList('sticky_offset'), ...this.getResponsiveSettingList('sticky_effects_offset'), 'sticky_parent'];
if(-1!==settings.indexOf(settingKey)){
this.reactivate();
}},
onDeviceModeChange(){
setTimeout(()=> this.run(true));
},
onInit(){
elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
if(elementorFrontend.isEditMode()){
elementor.listenTo(elementor.channels.deviceMode, 'change', ()=> this.onDeviceModeChange());
}
this.run();
},
onDestroy(){
elementorModules.frontend.handlers.Base.prototype.onDestroy.apply(this, arguments);
this.deactivate();
},
isContainerElement(element){
const containerClasses=['e-con', 'e-con-inner'];
return containerClasses.some(containerClass=> {
return element?.classList.contains(containerClass);
});
}});
}),
"../modules/video-playlist/assets/js/frontend/frontend.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
"use strict";
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class _default extends elementorModules.Module {
constructor(){
super();
elementorFrontend.hooks.addAction('frontend/element_ready/video-playlist.default', $element=> {
__webpack_require__.e( "video-playlist").then(__webpack_require__.bind(__webpack_require__,  "../modules/video-playlist/assets/js/frontend/handler.js")).then(({
default: dynamicHandler
})=> {
elementorFrontend.elementsHandler.addHandler(dynamicHandler, {
$element,
toggleSelf: false
});
});
});
}}
exports["default"]=_default;
}),
"../../elementor/assets/dev/js/frontend/utils/utils.js":
((__unused_webpack_module, exports)=> {
"use strict";
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports.isScrollSnapActive=exports.escapeHTML=void 0;
const escapeHTML=str=> {
const specialChars={
'&': '&amp;',
'<': '&lt;',
'>': '&gt;',
"'": '&#39;',
'"': '&quot;'
};
return str.replace(/[&<>'"]/g, tag=> specialChars[tag]||tag);
};
exports.escapeHTML=escapeHTML;
const isScrollSnapActive=()=> {
const scrollSnapStatus=elementorFrontend.isEditMode() ? elementor.settings.page.model.attributes?.scroll_snap:elementorFrontend.config.settings.page?.scroll_snap;
return 'yes'===scrollSnapStatus ? true:false;
};
exports.isScrollSnapActive=isScrollSnapActive;
}),
"../node_modules/@babel/runtime/helpers/interopRequireDefault.js":
((module)=> {
function _interopRequireDefault(e){
return e&&e.__esModule ? e:{
"default": e
};}
module.exports=_interopRequireDefault, module.exports.__esModule=true, module.exports["default"]=module.exports;
})
},
__webpack_require__=> {
var __webpack_exec__=(moduleId)=> (__webpack_require__(__webpack_require__.s=moduleId))
var __webpack_exports__=(__webpack_exec__("../assets/dev/js/frontend/frontend.js"));
}
]);
"use strict";
(self["webpackChunkelementor_pro"]=self["webpackChunkelementor_pro"]||[]).push([["elements-handlers"],{
"../assets/dev/js/frontend/elements-handlers.js":
((__unused_webpack_module, __unused_webpack_exports, __webpack_require__)=> {
var _interopRequireDefault=__webpack_require__( "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _frontend=_interopRequireDefault(__webpack_require__( "../modules/animated-headline/assets/js/frontend/frontend.js"));
var _frontend2=_interopRequireDefault(__webpack_require__( "../modules/carousel/assets/js/frontend/frontend.js"));
var _frontend3=_interopRequireDefault(__webpack_require__( "../modules/countdown/assets/js/frontend/frontend.js"));
var _frontend4=_interopRequireDefault(__webpack_require__( "../modules/dynamic-tags/assets/js/frontend/frontend.js"));
var _frontend5=_interopRequireDefault(__webpack_require__( "../modules/hotspot/assets/js/frontend/frontend.js"));
var _frontend6=_interopRequireDefault(__webpack_require__( "../modules/forms/assets/js/frontend/frontend.js"));
var _frontend7=_interopRequireDefault(__webpack_require__( "../modules/gallery/assets/js/frontend/frontend.js"));
var _frontend8=_interopRequireDefault(__webpack_require__( "../modules/lottie/assets/js/frontend/frontend.js"));
var _frontend9=_interopRequireDefault(__webpack_require__( "../modules/nav-menu/assets/js/frontend/frontend.js"));
var _frontend10=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/frontend.js"));
var _frontend11=_interopRequireDefault(__webpack_require__( "../modules/posts/assets/js/frontend/frontend.js"));
var _frontend12=_interopRequireDefault(__webpack_require__( "../modules/share-buttons/assets/js/frontend/frontend.js"));
var _frontend13=_interopRequireDefault(__webpack_require__( "../modules/slides/assets/js/frontend/frontend.js"));
var _frontend14=_interopRequireDefault(__webpack_require__( "../modules/social/assets/js/frontend/frontend.js"));
var _frontend15=_interopRequireDefault(__webpack_require__( "../modules/table-of-contents/assets/js/frontend/frontend.js"));
var _frontend16=_interopRequireDefault(__webpack_require__( "../modules/theme-builder/assets/js/frontend/frontend.js"));
var _frontend17=_interopRequireDefault(__webpack_require__( "../modules/theme-elements/assets/js/frontend/frontend.js"));
var _frontend18=_interopRequireDefault(__webpack_require__( "../modules/woocommerce/assets/js/frontend/frontend.js"));
var _frontend19=_interopRequireDefault(__webpack_require__( "../modules/loop-builder/assets/js/frontend/frontend.js"));
var _frontend20=_interopRequireDefault(__webpack_require__( "../modules/mega-menu/assets/js/frontend/frontend.js"));
var _frontend21=_interopRequireDefault(__webpack_require__( "../modules/nested-carousel/assets/js/frontend/frontend.js"));
var _frontend22=_interopRequireDefault(__webpack_require__( "../modules/loop-filter/assets/js/frontend/frontend.js"));
var _frontend23=_interopRequireDefault(__webpack_require__( "../modules/off-canvas/assets/js/frontend/frontend.js"));
var _frontend24=_interopRequireDefault(__webpack_require__( "../modules/floating-buttons/assets/js/frontend/frontend.js"));
var _frontend25=_interopRequireDefault(__webpack_require__( "../modules/search/assets/js/frontend/frontend.js"));
const extendDefaultHandlers=defaultHandlers=> {
const handlers={
animatedText: _frontend.default,
carousel: _frontend2.default,
countdown: _frontend3.default,
dynamicTags: _frontend4.default,
hotspot: _frontend5.default,
form: _frontend6.default,
gallery: _frontend7.default,
lottie: _frontend8.default,
nav_menu: _frontend9.default,
popup: _frontend10.default,
posts: _frontend11.default,
share_buttons: _frontend12.default,
slides: _frontend13.default,
social: _frontend14.default,
themeBuilder: _frontend16.default,
themeElements: _frontend17.default,
woocommerce: _frontend18.default,
tableOfContents: _frontend15.default,
loopBuilder: _frontend19.default,
megaMenu: _frontend20.default,
nestedCarousel: _frontend21.default,
taxonomyFilter: _frontend22.default,
offCanvas: _frontend23.default,
contactButtons: _frontend24.default,
search: _frontend25.default
};
return {
...defaultHandlers,
...handlers
};};
elementorProFrontend.on('elementor-pro/modules/init/before', ()=> {
elementorFrontend.hooks.addFilter('elementor-pro/frontend/handlers', extendDefaultHandlers);
});
}),
"../assets/dev/js/frontend/utils/ajax-helper.js":
((__unused_webpack_module, exports)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class AjaxHelper {
addLoadingAnimationOverlay(elementId){
const widget=document.querySelector(`.elementor-element-${elementId}`);
if(!widget){
return;
}
widget.classList.add('e-loading-overlay');
}
removeLoadingAnimationOverlay(elementId){
const widget=document.querySelector(`.elementor-element-${elementId}`);
if(!widget){
return;
}
widget.classList.remove('e-loading-overlay');
}}
exports["default"]=AjaxHelper;
}),
"../assets/dev/js/frontend/utils/focusable-element-selectors.js":
((__unused_webpack_module, exports)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports.focusableElementSelectors=focusableElementSelectors;
function focusableElementSelectors(){
return 'audio, button, canvas, details, iframe, input, select, summary, textarea, video, [accesskey], a[href], area[href], [tabindex]';
}
}),
"../assets/dev/js/frontend/utils/icons/e-icons.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
var _interopRequireDefault=__webpack_require__( "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports.close=void 0;
var _manager=_interopRequireDefault(__webpack_require__( "../assets/dev/js/frontend/utils/icons/manager.js"));
const iconsManager=new _manager.default('eicon');
const close=exports.close={
get element(){
const svgData={
path: 'M742 167L500 408 258 167C246 154 233 150 217 150 196 150 179 158 167 167 154 179 150 196 150 212 150 229 154 242 171 254L408 500 167 742C138 771 138 800 167 829 196 858 225 858 254 829L496 587 738 829C750 842 767 846 783 846 800 846 817 842 829 829 842 817 846 804 846 783 846 767 842 750 829 737L588 500 833 258C863 229 863 200 833 171 804 137 775 137 742 167Z',
width: 1000,
height: 1000
};
return iconsManager.createSvgElement('close', svgData);
}};
}),
"../assets/dev/js/frontend/utils/icons/manager.js":
((__unused_webpack_module, exports)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class IconsManager {
static symbolsContainer;
static iconsUsageList=[];
constructor(elementsPrefix){
this.prefix=`${elementsPrefix}-`;
if(!IconsManager.symbolsContainer){
const symbolsContainerId='e-font-icon-svg-symbols';
IconsManager.symbolsContainer=document.getElementById(symbolsContainerId);
if(!IconsManager.symbolsContainer){
IconsManager.symbolsContainer=document.createElementNS('http://www.w3.org/2000/svg', 'svg');
IconsManager.symbolsContainer.setAttributeNS(null, 'style', 'display: none;');
IconsManager.symbolsContainer.setAttributeNS(null, 'class', symbolsContainerId);
document.body.appendChild(IconsManager.symbolsContainer);
}}
}
createSvgElement(name, {
path,
width,
height
}){
const elementName=this.prefix + name,
elementSelector='#' + this.prefix + name;
if(!IconsManager.iconsUsageList.includes(elementName)){
if(!IconsManager.symbolsContainer.querySelector(elementSelector)){
const symbol=document.createElementNS('http://www.w3.org/2000/svg', 'symbol');
symbol.id=elementName;
symbol.innerHTML='<path d="' + path + '"></path>';
symbol.setAttributeNS(null, 'viewBox', '0 0 ' + width + ' ' + height);
IconsManager.symbolsContainer.appendChild(symbol);
}
IconsManager.iconsUsageList.push(elementName);
}
const svg=document.createElementNS('http://www.w3.org/2000/svg', 'svg');
svg.innerHTML='<use xlink:href="' + elementSelector + '" />';
svg.setAttributeNS(null, 'class', 'e-font-icon-svg e-' + elementName);
return svg;
}}
exports["default"]=IconsManager;
}),
"../assets/dev/js/frontend/utils/modal-keyboard-handler.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
var _focusableElementSelectors=__webpack_require__( "../assets/dev/js/frontend/utils/focusable-element-selectors.js");
class ModalKeyboardHandler {
lastFocusableElement=null;
firstFocusableElement=null;
modalTriggerElement=null;
constructor(elementConfig){
this.config=elementConfig;
this.changeFocusAfterAnimation=false;
}
onOpenModal(){
this.initializeElements();
this.setTriggerElement();
this.changeFocusAfterAnimation='popup'===this.config.modalType&&!!this.config.hasEntranceAnimation;
if(!this.changeFocusAfterAnimation){
this.changeFocus();
}
this.bindEvents();
}
onCloseModal(){
elementorFrontend.elements.$window.off('keydown', this.onKeyDownPressed.bind(this));
if(this.modalTriggerElement){
this.setFocusToElement(this.modalTriggerElement);
}}
bindEvents(){
elementorFrontend.elements.$window.on('keydown', this.onKeyDownPressed.bind(this));
if(this.changeFocusAfterAnimation){
this.config.$modalElements.on('animationend animationcancel', this.changeFocus.bind(this));
}
if('popup'===this.config.modalType){
this.onPopupCloseEvent();
}}
onPopupCloseEvent(){
elementorFrontend.elements.$window.on('elementor/popup/hide', this.onCloseModal.bind(this));
}
getFocusableElements(){
const selectorFocusedElements='popup'===this.config.modalType ? ':focusable':(0, _focusableElementSelectors.focusableElementSelectors)();
return this.config.$modalElements.find(selectorFocusedElements);
}
initializeElements(){
const $focusableElements=this.getFocusableElements();
if(!$focusableElements.length){
return;
}
this.lastFocusableElement=$focusableElements[$focusableElements.length - 1];
this.firstFocusableElement=$focusableElements[0];
}
setTriggerElement(){
const activeElement=elementorFrontend.elements.window.document.activeElement;
if(!!activeElement){
this.modalTriggerElement=elementorFrontend.elements.window.document.activeElement;
}else{
this.modalTriggerElement=null;
}}
changeFocus(){
if(!!this.firstFocusableElement){
this.setFocusToElement(this.firstFocusableElement);
}else{
this.config.$elementWrapper.attr('tabindex', '0');
this.setFocusToElement(this.config.$elementWrapper[0]);
}}
onKeyDownPressed(keyDownEvent){
const TAB_KEY=9;
const isShiftPressed=keyDownEvent.shiftKey;
const isTabPressed='Tab'===keyDownEvent.key||TAB_KEY===keyDownEvent.keyCode;
const isContentWrapperFocused='0'===this.config.$elementWrapper.attr('tabindex');
if(isTabPressed&&isContentWrapperFocused){
keyDownEvent.preventDefault();
}else if(isTabPressed){
this.onTabKeyPressed(isTabPressed, isShiftPressed, keyDownEvent);
}}
onTabKeyPressed(isTabPressed, isShiftPressed, keyDownEvent){
if(elementorFrontend.isEditMode()){
this.initializeElements();
}
const activeElement=elementorFrontend.elements.window.document.activeElement;
if(isShiftPressed){
const isFocusOnFirstElement=activeElement===this.firstFocusableElement;
if(isFocusOnFirstElement){
this.setFocusToElement(this.lastFocusableElement);
keyDownEvent.preventDefault();
}}else{
const isFocusOnLastElement=activeElement===this.lastFocusableElement;
if(isFocusOnLastElement){
this.setFocusToElement(this.firstFocusableElement);
keyDownEvent.preventDefault();
}}
}
setFocusToElement(element){
const focusDelayToEnsureThatAllAnimationsHaveFinished='popup'===this.config.modalType ? 250:100;
setTimeout(()=> {
element?.focus();
}, focusDelayToEnsureThatAllAnimationsHaveFinished);
}}
exports["default"]=ModalKeyboardHandler;
}),
"../assets/dev/js/frontend/utils/run-element-handlers.js":
((__unused_webpack_module, exports)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=runElementHandlers;
function runElementHandlers(elements){
[...elements].flatMap(el=> [...el.querySelectorAll('.elementor-element')]).forEach(el=> elementorFrontend.elementsHandler.runReadyTrigger(el));
}
}),
"../modules/animated-headline/assets/js/frontend/frontend.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class _default extends elementorModules.Module {
constructor(){
super();
elementorFrontend.elementsHandler.attachHandler('animated-headline', ()=> __webpack_require__.e( "animated-headline").then(__webpack_require__.bind(__webpack_require__,  "../modules/animated-headline/assets/js/frontend/handlers/animated-headlines.js")));
}}
exports["default"]=_default;
}),
"../modules/carousel/assets/js/frontend/frontend.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class _default extends elementorModules.Module {
constructor(){
super();
elementorFrontend.elementsHandler.attachHandler('media-carousel', ()=> __webpack_require__.e( "media-carousel").then(__webpack_require__.bind(__webpack_require__,  "../modules/carousel/assets/js/frontend/handlers/media-carousel.js")));
elementorFrontend.elementsHandler.attachHandler('testimonial-carousel', ()=> __webpack_require__.e( "carousel").then(__webpack_require__.bind(__webpack_require__,  "../modules/carousel/assets/js/frontend/handlers/testimonial-carousel.js")));
elementorFrontend.elementsHandler.attachHandler('reviews', ()=> __webpack_require__.e( "carousel").then(__webpack_require__.bind(__webpack_require__,  "../modules/carousel/assets/js/frontend/handlers/testimonial-carousel.js")));
}}
exports["default"]=_default;
}),
"../modules/countdown/assets/js/frontend/frontend.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class _default extends elementorModules.Module {
constructor(){
super();
elementorFrontend.elementsHandler.attachHandler('countdown', ()=> __webpack_require__.e( "countdown").then(__webpack_require__.bind(__webpack_require__,  "../modules/countdown/assets/js/frontend/handlers/countdown.js")));
}}
exports["default"]=_default;
}),
"../modules/dynamic-tags/assets/js/frontend/frontend.js":
((__unused_webpack_module, exports)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class _default extends elementorModules.Module {
constructor(){
super();
elementorFrontend.on('components:init', ()=> this.onFrontendComponentsInit());
}
onFrontendComponentsInit(){
elementorFrontend.utils.urlActions.addAction('reload-page', ()=> document.location.reload());
}}
exports["default"]=_default;
}),
"../modules/floating-buttons/assets/js/frontend/frontend.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class _default extends elementorModules.Module {
constructor(){
super();
if(elementorFrontend.config.experimentalFeatures.container){
['contact-buttons-var-1', 'contact-buttons-var-3', 'contact-buttons-var-4', 'contact-buttons-var-5', 'contact-buttons-var-6', 'contact-buttons-var-7', 'contact-buttons-var-8', 'contact-buttons-var-9'].forEach(handler=> {
elementorFrontend.elementsHandler.attachHandler(handler, ()=> __webpack_require__.e( "contact-buttons").then(__webpack_require__.bind(__webpack_require__,  "../modules/floating-buttons/assets/js/frontend/handlers/contact-buttons.js")));
});
elementorFrontend.elementsHandler.attachHandler('contact-buttons-var-10', ()=> __webpack_require__.e( "contact-buttons-var-10").then(__webpack_require__.bind(__webpack_require__,  "../modules/floating-buttons/assets/js/frontend/handlers/contact-buttons-v10.js")));
elementorFrontend.elementsHandler.attachHandler('floating-bars-var-2', ()=> Promise.all([__webpack_require__.e("modules_floating-buttons_assets_js_frontend_classes_floatin-bar-dom_js-modules_floating-butto-2c1e90"), __webpack_require__.e("floating-bars-var-2")]).then(__webpack_require__.bind(__webpack_require__,  "../modules/floating-buttons/assets/js/frontend/handlers/floating-bars-v2.js")));
elementorFrontend.elementsHandler.attachHandler('floating-bars-var-3', ()=> Promise.all([__webpack_require__.e("modules_floating-buttons_assets_js_frontend_classes_floatin-bar-dom_js-modules_floating-butto-2c1e90"), __webpack_require__.e("floating-bars-var-3")]).then(__webpack_require__.bind(__webpack_require__,  "../modules/floating-buttons/assets/js/frontend/handlers/floating-bars-v3.js")));
}}
}
exports["default"]=_default;
}),
"../modules/forms/assets/js/frontend/frontend.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class _default extends elementorModules.Module {
constructor(){
super();
elementorFrontend.elementsHandler.attachHandler('form', [()=> __webpack_require__.e( "form").then(__webpack_require__.bind(__webpack_require__,  "../modules/forms/assets/js/frontend/handlers/form-steps.js")), ()=> __webpack_require__.e( "form").then(__webpack_require__.bind(__webpack_require__,  "../modules/forms/assets/js/frontend/handlers/form-sender.js")), ()=> __webpack_require__.e( "form").then(__webpack_require__.bind(__webpack_require__,  "../modules/forms/assets/js/frontend/handlers/form-redirect.js")), ()=> __webpack_require__.e( "form").then(__webpack_require__.bind(__webpack_require__,  "../modules/forms/assets/js/frontend/handlers/fields/date.js")), ()=> __webpack_require__.e( "form").then(__webpack_require__.bind(__webpack_require__,  "../modules/forms/assets/js/frontend/handlers/recaptcha.js")), ()=> __webpack_require__.e( "form").then(__webpack_require__.bind(__webpack_require__,  "../modules/forms/assets/js/frontend/handlers/fields/time.js"))]);
elementorFrontend.elementsHandler.attachHandler('subscribe', [()=> __webpack_require__.e( "form").then(__webpack_require__.bind(__webpack_require__,  "../modules/forms/assets/js/frontend/handlers/form-steps.js")), ()=> __webpack_require__.e( "form").then(__webpack_require__.bind(__webpack_require__,  "../modules/forms/assets/js/frontend/handlers/form-sender.js")), ()=> __webpack_require__.e( "form").then(__webpack_require__.bind(__webpack_require__,  "../modules/forms/assets/js/frontend/handlers/form-redirect.js"))]);
}}
exports["default"]=_default;
}),
"../modules/gallery/assets/js/frontend/frontend.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class _default extends elementorModules.Module {
constructor(){
super();
elementorFrontend.elementsHandler.attachHandler('gallery', ()=> __webpack_require__.e( "gallery").then(__webpack_require__.bind(__webpack_require__,  "../modules/gallery/assets/js/frontend/handler.js")));
}}
exports["default"]=_default;
}),
"../modules/hotspot/assets/js/frontend/frontend.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class _default extends elementorModules.Module {
constructor(){
super();
elementorFrontend.elementsHandler.attachHandler('hotspot', ()=> __webpack_require__.e( "hotspot").then(__webpack_require__.bind(__webpack_require__,  "../modules/hotspot/assets/js/frontend/handlers/hotspot.js")));
}}
exports["default"]=_default;
}),
"../modules/loop-builder/assets/js/frontend/frontend.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class _default extends elementorModules.Module {
constructor(){
super();
['post', 'product', 'post_taxonomy', 'product_taxonomy'].forEach(skinName=> {
elementorFrontend.elementsHandler.attachHandler('loop-grid', ()=> __webpack_require__.e( "load-more").then(__webpack_require__.bind(__webpack_require__,  "../modules/loop-builder/assets/js/frontend/handlers/load-more.js")), skinName);
elementorFrontend.elementsHandler.attachHandler('loop-grid', ()=> __webpack_require__.e( "loop").then(__webpack_require__.bind(__webpack_require__,  "../modules/loop-builder/assets/js/frontend/handlers/loop.js")), skinName);
elementorFrontend.elementsHandler.attachHandler('loop-carousel', ()=> __webpack_require__.e( "loop").then(__webpack_require__.bind(__webpack_require__,  "../modules/loop-builder/assets/js/frontend/handlers/loop.js")), skinName);
elementorFrontend.elementsHandler.attachHandler('loop-carousel', ()=> __webpack_require__.e( "loop-carousel").then(__webpack_require__.bind(__webpack_require__,  "../modules/loop-builder/assets/js/frontend/handlers/loop-carousel.js")), skinName);
elementorFrontend.elementsHandler.attachHandler('loop-grid', ()=> __webpack_require__.e( "ajax-pagination").then(__webpack_require__.bind(__webpack_require__,  "../modules/loop-builder/assets/js/frontend/handlers/ajax-pagination.js")), skinName);
});
}}
exports["default"]=_default;
}),
"../modules/loop-filter/assets/js/frontend/frontend-module-base.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
var _interopRequireDefault=__webpack_require__( "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
var _runElementHandlers=_interopRequireDefault(__webpack_require__( "../assets/dev/js/frontend/utils/run-element-handlers.js"));
var _ajaxHelper=_interopRequireDefault(__webpack_require__( "../assets/dev/js/frontend/utils/ajax-helper.js"));
var _loopWidgetsStore=_interopRequireDefault(__webpack_require__( "../modules/loop-filter/assets/js/frontend/loop-widgets-store.js"));
var _queryConstants=__webpack_require__( "../modules/loop-filter/assets/js/query-constants.js");
class BaseFilterFrontendModule extends elementorModules.Module {
constructor(){
super();
this.loopWidgetsStore=new _loopWidgetsStore.default();
}
removeFilterFromLoopWidget(widgetId, filterId, filterTerm='', defaultFilter=''){
if(!this.loopWidgetsStore.getWidget(widgetId)){
this.loopWidgetsStore.addWidget(widgetId);
this.refreshLoopWidget(widgetId, filterId);
return;
}
if(filterTerm===defaultFilter){
this.loopWidgetsStore.unsetFilter(widgetId, filterId);
}
if(filterTerm!==defaultFilter){
const filters=this.loopWidgetsStore.getFilterTerms(widgetId, filterId),
newTerms=filters.filter(function (e){
return e!==filterTerm;
});
this.loopWidgetsStore.setFilterTerms(widgetId, filterId, newTerms);
}
this.refreshLoopWidget(widgetId, filterId);
}
setFilterDataForLoopWidget(widgetId, filterId, filter, refresh=true, multipleFiltersLogicalJoin='DISABLED'){
this.loopWidgetsStore.maybeInitializeWidget(widgetId);
this.loopWidgetsStore.maybeInitializeFilter(widgetId, filterId);
const logicalJoin=this.validateMultipleFilterOperator(multipleFiltersLogicalJoin);
if('DISABLED'!==logicalJoin){
const existingTerms=this.loopWidgetsStore.getFilterTerms(widgetId, filterId) ?? [],
newTerms=filter.filterData.terms;
filter.filterData.terms=[...new Set([...existingTerms, ...newTerms])];
filter.filterData.logicalJoin=logicalJoin;
}
this.loopWidgetsStore.setFilter(widgetId, filterId, filter);
if(refresh){
this.refreshLoopWidget(widgetId, filterId);
return;
}
this.loopWidgetsStore.consolidateFilters(widgetId);
}
validateMultipleFilterOperator(operator){
if(!operator||!['AND', 'OR'].includes(operator)){
return 'DISABLED';
}
return operator;
}
getQueryStringInObjectForm(){
const queryString={};
for (const widgetId in this.loopWidgetsStore.get()){
const loopWidget=this.loopWidgetsStore.getWidget(widgetId);
for (const filterType in loopWidget.consolidatedFilters){
const filterData=loopWidget.consolidatedFilters[filterType];
for (const filterName in filterData){
const separator=_queryConstants.queryConstants[filterData[filterName].logicalJoin ?? 'AND'].separator.decoded;
queryString[`e-filter-${widgetId}-${filterName}`]=Object.values(filterData[filterName].terms).join(separator);
}}
}
return queryString;
}
updateURLQueryString(widgetId, filterId){
const currentUrl=new URL(window.location.href),
existingQueryString=currentUrl.searchParams,
queryStringObject=this.getQueryStringInObjectForm(),
updatedParams=new URLSearchParams();
existingQueryString.forEach((value, key)=> {
if(!key.startsWith('e-filter')){
updatedParams.append(key, value);
}
if(key.startsWith('e-page-' + widgetId)){
updatedParams.delete(key);
}});
for (const key in queryStringObject){
updatedParams.set(key, queryStringObject[key]);
}
let queryString=updatedParams.toString();
queryString=queryString.replace(new RegExp(`${_queryConstants.queryConstants.AND.separator.encoded}`, 'g'), _queryConstants.queryConstants.AND.separator.decoded);
queryString=queryString.replace(new RegExp(`${_queryConstants.queryConstants.OR.separator.encoded}`, 'g'), _queryConstants.queryConstants.OR.separator.decoded);
const helpers=this.getFilterHelperAttributes(filterId);
if(helpers.pageNum > 1){
queryString=queryString ? this.formatQueryString(helpers.baseUrl, queryString):helpers.baseUrl;
}else{
queryString=queryString ? `?${queryString}`:location.pathname;
}
history.pushState(null, null, queryString);
}
formatQueryString(baseURL, queryString){
const baseURLParams=baseURL.includes('?') ? new URLSearchParams(baseURL.split('?')[1]):new URLSearchParams(),
inputParams=new URLSearchParams(queryString);
for (const param of baseURLParams.keys()){
if(inputParams.has(param)){
inputParams.delete(param);
}}
const excludedVariables=['page', 'paged'];
for (const excludedVar of excludedVariables){
baseURLParams.delete(excludedVar);
inputParams.delete(excludedVar);
}
const mergedParams=new URLSearchParams(baseURLParams.toString());
for (const [param, value] of inputParams.entries()){
mergedParams.append(param, value);
}
const baseURLString=baseURL.split('?')[0],
mergedParamsString=mergedParams.toString() ? `?${mergedParams.toString()}`:'';
return baseURLString + mergedParamsString;
}
getFilterHelperAttributes(filterId){
const filterWidget=document.querySelector('[data-id="' + filterId + '"]');
if(!filterWidget){
return {
baseUrl: location.href,
pageNum: 1
};}
const filterBar=filterWidget.querySelector('.e-filter');
return filterBar.dataset;
}
prepareLoopUpdateRequestData(widgetId, filterId){
const widgetFilters=this.loopWidgetsStore.getConsolidatedFilters(widgetId),
helpers=this.getFilterHelperAttributes(filterId);
const data={
post_id: this.getClosestDataElementorId(document.querySelector(`.elementor-element-${widgetId}`))||elementorFrontend.config.post.id,
widget_filters: widgetFilters,
widget_id: widgetId,
pagination_base_url: helpers.baseUrl
};
if(elementorFrontend.isEditMode()){
const widgetContainer=window.top.$e.components.get('document').utils.findContainerById(widgetId);
data.widget_model=widgetContainer.model.toJSON({
remove: ['default', 'editSettings', 'defaultEditSettings']
});
data.is_edit_mode=true;
}
return data;
}
getClosestDataElementorId(element){
const closestParent=element?.closest('[data-elementor-id]');
return closestParent ? closestParent.getAttribute('data-elementor-id'):null;
}
getFetchArgumentsForLoopUpdate(widgetId, filterId){
const data=this.prepareLoopUpdateRequestData(widgetId, filterId);
const args={
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
};
if(elementorFrontend.isEditMode()&&!!elementorPro.config.loopFilter?.nonce){
args.headers['X-WP-Nonce']=elementorPro.config.loopFilter?.nonce;
}
return args;
}
fetchUpdatedLoopWidgetMarkup(widgetId, filterId){
return fetch(`${elementorProFrontend.config.urls.rest}elementor-pro/v1/refresh-loop`, this.getFetchArgumentsForLoopUpdate(widgetId, filterId));
}
createElementFromHTMLString(widgetContainerHTMLString){
const div=document.createElement('div');
if(!widgetContainerHTMLString){
div.classList.add('elementor-widget-container');
return div;
}
div.innerHTML=widgetContainerHTMLString.trim();
return div.firstElementChild;
}
refreshLoopWidget(widgetId, filterId){
this.loopWidgetsStore.consolidateFilters(widgetId);
this.updateURLQueryString(widgetId, filterId);
const widget=document.querySelector(`.elementor-element-${widgetId}`);
if(!widget){
return;
}
if(!this.ajaxHelper){
this.ajaxHelper=new _ajaxHelper.default();
}
this.ajaxHelper.addLoadingAnimationOverlay(widgetId);
const fetchUpdatedLoopWidgetMarkup=this.fetchUpdatedLoopWidgetMarkup(widgetId, filterId).then(response=> {
if(!(response instanceof Response)||!response?.ok||400 <=response?.status){
return {};}
return response.json();
}).catch(()=> {
return {};}).then(response=> {
if(!response?.data&&''!==response?.data){
return;
}
const existingWidgetContainer=widget.querySelector('.elementor-widget-container'),
newWidgetContainer=this.createElementFromHTMLString(response.data);
widget.replaceChild(newWidgetContainer, existingWidgetContainer);
this.handleElementHandlers(widget);
if(ElementorProFrontendConfig.settings.lazy_load_background_images){
document.dispatchEvent(new Event('elementor/lazyload/observe'));
}
elementorFrontend.elementsHandler.runReadyTrigger(document.querySelector(`.elementor-element-${widgetId}`));
widget.classList.remove('e-loading');
}).finally(()=> {
this.ajaxHelper.removeLoadingAnimationOverlay(widgetId);
});
return fetchUpdatedLoopWidgetMarkup;
}
handleElementHandlers(newWidgetMarkup){
const loopItems=newWidgetMarkup.querySelectorAll('.e-loop-item');
(0, _runElementHandlers.default)(loopItems);
}}
exports["default"]=BaseFilterFrontendModule;
}),
"../modules/loop-filter/assets/js/frontend/frontend.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
var _interopRequireDefault=__webpack_require__( "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
var _frontendModuleBase=_interopRequireDefault(__webpack_require__( "../modules/loop-filter/assets/js/frontend/frontend-module-base.js"));
class LoopFilter extends _frontendModuleBase.default {
constructor(){
super();
elementorFrontend.elementsHandler.attachHandler('taxonomy-filter', ()=> __webpack_require__.e( "taxonomy-filter").then(__webpack_require__.bind(__webpack_require__,  "../modules/loop-filter/assets/js/frontend/handlers/taxonomy-filter.js")));
}}
exports["default"]=LoopFilter;
}),
"../modules/loop-filter/assets/js/frontend/loop-widgets-store.js":
((__unused_webpack_module, exports)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class LoopWidgetsStore {
constructor(){
this.widgets={};}
get(){
return this.widgets;
}
getWidget(widgetId){
return this.widgets[widgetId];
}
setWidget(widgetId, widget){
this.widgets[widgetId]=widget;
}
unsetWidget(widgetId){
delete this.widgets[widgetId];
}
getFilters(widgetId){
return this.getWidget(widgetId).filters;
}
getFilter(widgetId, filterId){
return this.getWidget(widgetId).filters[filterId];
}
setFilter(widgetId, filterId, filterData){
this.getWidget(widgetId).filters[filterId]=filterData;
}
unsetFilter(widgetId, filterId){
delete this.getWidget(widgetId).filters[filterId];
}
getFilterTerms(widgetId, filterId){
return this.getFilter(widgetId, filterId).filterData.terms ?? [];
}
setFilterTerms(widgetId, filterId, termData){
this.getFilter(widgetId, filterId).filterData.terms=termData;
}
getConsolidatedFilters(widgetId){
return this.getWidget(widgetId).consolidatedFilters;
}
setConsolidatedFilters(widgetId, consolidatedFilters){
this.getWidget(widgetId).consolidatedFilters=consolidatedFilters;
}
addWidget(widgetId){
const newWidget={
filters: {},
consolidatedFilters: {}};
this.setWidget(widgetId, newWidget);
}
maybeInitializeWidget(widgetId){
if(!!this.getWidget(widgetId)){
return;
}
this.addWidget(widgetId);
}
maybeInitializeFilter(widgetId, filterId){
if(!!this.getFilter(widgetId, filterId)){
return;
}
const newFilter={
filterData: {
terms: []
}};
this.setFilter(widgetId, filterId, newFilter);
}
consolidateFilters(widgetId){
const loopWidgetFilters=this.getFilters(widgetId),
consolidatedFilters={};
for (const filterId in loopWidgetFilters){
const filter=loopWidgetFilters[filterId],
filterType=filter.filterType,
filterData=filter.filterData;
if(0===filterData.terms.length){
continue;
}
if(!consolidatedFilters[filterType]){
consolidatedFilters[filterType]={};}
if(!consolidatedFilters[filterType][filterData.selectedTaxonomy]){
consolidatedFilters[filterType][filterData.selectedTaxonomy]=[];
}
if(filterData.terms&&(!consolidatedFilters[filterType][filterData.selectedTaxonomy].terms||!consolidatedFilters[filterType][filterData.selectedTaxonomy].terms.includes(filterData.terms))){
consolidatedFilters[filterType][filterData.selectedTaxonomy]={
terms: filterData.terms===typeof 'string' ? [filterData.terms]:filterData.terms
};}
if(filterData.logicalJoin&&!consolidatedFilters[filterType][filterData.selectedTaxonomy].logicalJoin){
consolidatedFilters[filterType][filterData.selectedTaxonomy]={
...(consolidatedFilters[filterType][filterData.selectedTaxonomy]||{}),
logicalJoin: filterData.logicalJoin ?? 'AND'
};}}
this.setConsolidatedFilters(widgetId, consolidatedFilters);
}}
exports["default"]=LoopWidgetsStore;
}),
"../modules/loop-filter/assets/js/query-constants.js":
((module)=> {
const queryConstants={
AND: {
separator: {
decoded: '+',
fromBrowser: ' ',
encoded: '%2B'
},
operator: 'AND'
},
OR: {
separator: {
decoded: '~',
fromBrowser: '~',
encoded: '%7C'
},
operator: 'IN'
},
NOT: {
separator: {
decoded: '!',
fromBrowser: '!',
encoded: '%21'
},
operator: 'NOT IN'
},
DISABLED: {
separator: {
decoded: '',
fromBrowser: '',
encoded: ''
},
operator: 'AND'
}};
module.exports={
queryConstants
};
}),
"../modules/lottie/assets/js/frontend/frontend.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class _default extends elementorModules.Module {
constructor(){
super();
elementorFrontend.elementsHandler.attachHandler('lottie', ()=> __webpack_require__.e( "lottie").then(__webpack_require__.bind(__webpack_require__,  "../modules/lottie/assets/js/frontend/handler.js")));
}}
exports["default"]=_default;
}),
"../modules/mega-menu/assets/js/frontend/frontend.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class _default extends elementorModules.Module {
constructor(){
super();
elementorFrontend.elementsHandler.attachHandler('mega-menu', [()=> __webpack_require__.e( "mega-menu").then(__webpack_require__.bind(__webpack_require__,  "../modules/mega-menu/assets/js/frontend/handlers/mega-menu.js")), ()=> __webpack_require__.e( "mega-menu-stretch-content").then(__webpack_require__.bind(__webpack_require__,  "../modules/mega-menu/assets/js/frontend/handlers/stretch-menu-item-content.js")), ()=> __webpack_require__.e( "menu-title-keyboard-handler").then(__webpack_require__.bind(__webpack_require__,  "../modules/mega-menu/assets/js/frontend/handlers/menu-title-keyboard-handler.js"))]);
}}
exports["default"]=_default;
}),
"../modules/nav-menu/assets/js/frontend/frontend.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class _default extends elementorModules.Module {
constructor(){
super();
if(jQuery.fn.smartmenus){
jQuery.SmartMenus.prototype.isCSSOn=function (){
return true;
};
if(elementorFrontend.config.is_rtl){
jQuery.fn.smartmenus.defaults.rightToLeftSubMenus=true;
}}
elementorFrontend.elementsHandler.attachHandler('nav-menu', ()=> __webpack_require__.e( "nav-menu").then(__webpack_require__.bind(__webpack_require__,  "../modules/nav-menu/assets/js/frontend/handlers/nav-menu.js")));
}}
exports["default"]=_default;
}),
"../modules/nested-carousel/assets/js/frontend/frontend.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class _default extends elementorModules.Module {
constructor(){
super();
elementorFrontend.elementsHandler.attachHandler('nested-carousel', ()=> __webpack_require__.e( "nested-carousel").then(__webpack_require__.bind(__webpack_require__,  "../modules/nested-carousel/assets/js/frontend/handlers/nested-carousel.js")));
}}
exports["default"]=_default;
}),
"../modules/off-canvas/assets/js/frontend/frontend.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class _default extends elementorModules.Module {
constructor(){
super();
elementorFrontend.elementsHandler.attachHandler('off-canvas', ()=> __webpack_require__.e( "off-canvas").then(__webpack_require__.bind(__webpack_require__,  "../modules/off-canvas/assets/js/frontend/handlers/off-canvas.js")));
elementorFrontend.on('components:init', ()=> this.onFrontendComponentsInit());
}
onFrontendComponentsInit(){
this.addUrlActions();
}
addUrlActions(){
elementorFrontend.utils.urlActions.addAction('off_canvas:open', settings=> {
this.toggleOffCanvasDisplay(settings);
});
elementorFrontend.utils.urlActions.addAction('off_canvas:close', settings=> {
this.toggleOffCanvasDisplay(settings);
});
elementorFrontend.utils.urlActions.addAction('off_canvas:toggle', settings=> {
this.toggleOffCanvasDisplay(settings);
});
}
toggleOffCanvasDisplay(settings){
window.dispatchEvent(new CustomEvent('elementor-pro/off-canvas/toggle-display-mode', {
detail: settings
}));
}}
exports["default"]=_default;
}),
"../modules/popup/assets/js/frontend/document.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
var _interopRequireDefault=__webpack_require__( "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
var _triggers=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/triggers.js"));
var _timing=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/timing.js"));
var _eIcons=__webpack_require__( "../assets/dev/js/frontend/utils/icons/e-icons.js");
var _modalKeyboardHandler=_interopRequireDefault(__webpack_require__( "../assets/dev/js/frontend/utils/modal-keyboard-handler.js"));
class _default extends elementorModules.frontend.Document {
keyboardHandler=null;
bindEvents(){
const openSelector=this.getDocumentSettings('open_selector');
if(openSelector){
elementorFrontend.elements.$body.on('click', openSelector, this.showModal.bind(this));
}}
startTiming(){
const timing=new _timing.default(this.getDocumentSettings('timing'), this);
if(timing.check()){
this.initTriggers();
}}
initTriggers(){
this.triggers=new _triggers.default(this.getDocumentSettings('triggers'), this);
}
showModal(avoidMultiple){
const settings=this.getDocumentSettings();
if(!this.isEdit){
if(!elementorFrontend.isWPPreviewMode()){
if(this.getStorage('disable')){
return;
}
if(avoidMultiple&&elementorProFrontend.modules.popup.popupPopped&&settings.avoid_multiple_popups){
return;
}}
this.$element=jQuery(this.elementHTML);
this.elements.$elements=this.$element.find(this.getSettings('selectors.elements'));
}
const modal=this.getModal(),
$closeButton=modal.getElements('closeButton');
modal.setMessage(this.$element).show();
if(!this.isEdit){
if(settings.close_button_delay){
$closeButton.hide();
clearTimeout(this.closeButtonTimeout);
this.closeButtonTimeout=setTimeout(()=> $closeButton.show(), settings.close_button_delay * 1000);
}
super.runElementsHandlers();
}
this.setEntranceAnimation();
if(!settings.timing||!settings.timing.times_count){
this.countTimes();
}
elementorProFrontend.modules.popup.popupPopped=true;
if(!this.isEdit&&settings.a11y_navigation){
this.handleKeyboardA11y();
}}
setEntranceAnimation(){
const $widgetContent=this.getModal().getElements('widgetContent'),
settings=this.getDocumentSettings(),
newAnimation=elementorFrontend.getCurrentDeviceSetting(settings, 'entrance_animation');
if(this.currentAnimation){
$widgetContent.removeClass(this.currentAnimation);
}
this.currentAnimation=newAnimation;
if(!newAnimation){
return;
}
const animationDuration=settings.entrance_animation_duration.size;
$widgetContent.addClass(newAnimation);
setTimeout(()=> $widgetContent.removeClass(newAnimation), animationDuration * 1000);
}
handleKeyboardA11y(){
if(!this.keyboardHandler){
this.keyboardHandler=new _modalKeyboardHandler.default(this.getKeyboardHandlingConfig());
}
this.keyboardHandler.onOpenModal();
}
setExitAnimation(){
const modal=this.getModal(),
settings=this.getDocumentSettings(),
$widgetContent=modal.getElements('widgetContent'),
newAnimation=elementorFrontend.getCurrentDeviceSetting(settings, 'exit_animation'),
animationDuration=newAnimation ? settings.entrance_animation_duration.size:0;
setTimeout(()=> {
if(newAnimation){
$widgetContent.removeClass(newAnimation + ' reverse');
}
if(!this.isEdit){
this.$element.remove();
modal.getElements('widget').hide();
}}, animationDuration * 1000);
if(newAnimation){
$widgetContent.addClass(newAnimation + ' reverse');
}}
initModal(){
let modal;
this.getModal=()=> {
if(!modal){
const settings=this.getDocumentSettings(),
id=this.getSettings('id'),
triggerPopupEvent=eventType=> {
const event='elementor/popup/' + eventType;
elementorFrontend.elements.$document.trigger(event, [id, this]);
window.dispatchEvent(new CustomEvent(event, {
detail: {
id,
instance: this
}}));
};
let classes='elementor-popup-modal';
if(settings.classes){
classes +=' ' + settings.classes;
}
const modalProperties={
id: 'elementor-popup-modal-' + id,
className: classes,
closeButton: true,
preventScroll: settings.prevent_scroll,
onShow: ()=> triggerPopupEvent('show'),
onHide: ()=> triggerPopupEvent('hide'),
effects: {
hide: ()=> {
if(settings.timing&&settings.timing.times_count){
this.countTimes();
}
this.setExitAnimation();
},
show: 'show'
},
hide: {
auto: !!settings.close_automatically,
autoDelay: settings.close_automatically * 1000,
onBackgroundClick: !settings.prevent_close_on_background_click,
onOutsideClick: !settings.prevent_close_on_background_click,
onEscKeyPress: !settings.prevent_close_on_esc_key,
ignore: '.flatpickr-calendar'
},
position: {
enable: false
}};
if(elementorFrontend.config.experimentalFeatures.e_font_icon_svg){
modalProperties.closeButtonOptions={
iconElement: _eIcons.close.element
};}
modalProperties.closeButtonClass='eicon-close';
modal=elementorFrontend.getDialogsManager().createWidget('lightbox', modalProperties);
modal.getElements('widgetContent').addClass('animated');
const $closeButton=modal.getElements('closeButton');
if(this.isEdit){
$closeButton.off('click');
modal.hide=()=> {};}
this.setCloseButtonPosition();
}
return modal;
};}
setCloseButtonPosition(){
const modal=this.getModal(),
closeButtonPosition=this.getDocumentSettings('close_button_position'),
$closeButton=modal.getElements('closeButton');
$closeButton.prependTo(modal.getElements('outside'===closeButtonPosition ? 'widget':'widgetContent'));
}
disable(){
this.setStorage('disable', true);
}
setStorage(key, value, options){
elementorFrontend.storage.set(`popup_${this.getSettings('id')}_${key}`, value, options);
}
getStorage(key, options){
return elementorFrontend.storage.get(`popup_${this.getSettings('id')}_${key}`, options);
}
countTimes(){
const displayTimes=this.getStorage('times')||0;
this.setStorage('times', displayTimes + 1);
}
runElementsHandlers(){}
async onInit(){
super.onInit();
if(!window.DialogsManager){
await elementorFrontend.utils.assetsLoader.load('script', 'dialog');
}
this.initModal();
if(this.isEdit){
this.showModal();
return;
}
this.$element.show().remove();
this.elementHTML=this.$element[0].outerHTML;
if(elementorFrontend.isEditMode()){
return;
}
if(elementorFrontend.isWPPreviewMode()&&elementorFrontend.config.post.id===this.getSettings('id')){
this.showModal();
return;
}
this.startTiming();
}
onSettingsChange(model){
const changedKey=Object.keys(model.changed)[0];
if(-1!==changedKey.indexOf('entrance_animation')){
this.setEntranceAnimation();
}
if('exit_animation'===changedKey){
this.setExitAnimation();
}
if('close_button_position'===changedKey){
this.setCloseButtonPosition();
}}
getEntranceAnimationDuration(){
const settings=this.getDocumentSettings();
const entranceAnimation=settings?.entrance_animation;
if(!entranceAnimation||''===entranceAnimation||'none'===entranceAnimation){
return 0;
}
const entranceAnimationDuration=settings?.entrance_animation_duration?.size;
return !!entranceAnimationDuration ? Number(entranceAnimationDuration):0;
}
getKeyboardHandlingConfig(){
return {
$modalElements: this.getModal().getElements('widgetContent'),
$elementWrapper: this.$element,
hasEntranceAnimation: 0!==this.getEntranceAnimationDuration(),
modalType: 'popup',
modalId: this.$element.data('elementor-id')
};}}
exports["default"]=_default;
}),
"../modules/popup/assets/js/frontend/frontend.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
var _interopRequireDefault=__webpack_require__( "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
var _document=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/document.js"));
class _default extends elementorModules.Module {
constructor(){
super();
elementorFrontend.hooks.addAction('elementor/frontend/documents-manager/init-classes', this.addDocumentClass);
elementorFrontend.elementsHandler.attachHandler('form', ()=> __webpack_require__.e( "popup").then(__webpack_require__.bind(__webpack_require__,  "../modules/popup/assets/js/frontend/handlers/forms-action.js")));
elementorFrontend.on('components:init', ()=> this.onFrontendComponentsInit());
if(this.shouldSetViewsAndSessions()){
this.setViewsAndSessions();
}}
shouldSetViewsAndSessions(){
return !elementorFrontend.isEditMode()&&!elementorFrontend.isWPPreviewMode()&&ElementorProFrontendConfig.popup.hasPopUps;
}
addDocumentClass(documentsManager){
documentsManager.addDocumentClass('popup', _document.default);
}
setViewsAndSessions(){
const pageViews=elementorFrontend.storage.get('pageViews')||0;
elementorFrontend.storage.set('pageViews', pageViews + 1);
const activeSession=elementorFrontend.storage.get('activeSession', {
session: true
});
if(!activeSession){
elementorFrontend.storage.set('activeSession', true, {
session: true
});
const sessions=elementorFrontend.storage.get('sessions')||0;
elementorFrontend.storage.set('sessions', sessions + 1);
}}
showPopup(settings, event){
const popup=elementorFrontend.documentsManager.documents[settings.id];
if(!popup){
return;
}
const modal=popup.getModal();
if(settings.toggle&&modal.isVisible()){
modal.hide();
}else{
popup.showModal(null, event);
}}
closePopup(settings, event){
const popupID=jQuery(event.target).parents('[data-elementor-type="popup"]').data('elementorId');
if(!popupID){
return;
}
const document=elementorFrontend.documentsManager.documents[popupID];
document.getModal().hide();
if(settings.do_not_show_again){
document.disable();
}}
onFrontendComponentsInit(){
elementorFrontend.utils.urlActions.addAction('popup:open', (settings, event)=> this.showPopup(settings, event));
elementorFrontend.utils.urlActions.addAction('popup:close', (settings, event)=> this.closePopup(settings, event));
}}
exports["default"]=_default;
}),
"../modules/popup/assets/js/frontend/timing.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
var _interopRequireDefault=__webpack_require__( "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
var _pageViews=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/timing/page-views.js"));
var _sessions=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/timing/sessions.js"));
var _url=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/timing/url.js"));
var _sources=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/timing/sources.js"));
var _loggedIn=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/timing/logged-in.js"));
var _devices=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/timing/devices.js"));
var _times=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/timing/times.js"));
var _browsers=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/timing/browsers.js"));
var _schedule=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/timing/schedule.js"));
class _default extends elementorModules.Module {
constructor(settings, document){
super(settings);
this.document=document;
this.timingClasses={
page_views: _pageViews.default,
sessions: _sessions.default,
url: _url.default,
sources: _sources.default,
logged_in: _loggedIn.default,
devices: _devices.default,
times: _times.default,
browsers: _browsers.default,
schedule: _schedule.default
};}
check(){
const settings=this.getSettings();
let checkPassed=true;
jQuery.each(this.timingClasses, (key, TimingClass)=> {
if(!settings[key]){
return;
}
const timing=new TimingClass(settings, this.document);
if(!timing.check()){
checkPassed=false;
}});
return checkPassed;
}}
exports["default"]=_default;
}),
"../modules/popup/assets/js/frontend/timing/base.js":
((__unused_webpack_module, exports)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class _default extends elementorModules.Module {
constructor(settings, document){
super(settings);
this.document=document;
}
getTimingSetting(settingKey){
return this.getSettings(this.getName() + '_' + settingKey);
}}
exports["default"]=_default;
}),
"../modules/popup/assets/js/frontend/timing/browsers.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
var _interopRequireDefault=__webpack_require__( "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
var _base=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/timing/base.js"));
class _default extends _base.default {
getName(){
return 'browsers';
}
check(){
if('all'===this.getTimingSetting('browsers')){
return true;
}
const targetedBrowsers=this.getTimingSetting('browsers_options'),
browserDetectionFlags=elementorFrontend.utils.environment;
return targetedBrowsers.some(browserName=> browserDetectionFlags[browserName]);
}}
exports["default"]=_default;
}),
"../modules/popup/assets/js/frontend/timing/devices.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
var _interopRequireDefault=__webpack_require__( "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
var _base=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/timing/base.js"));
class _default extends _base.default {
getName(){
return 'devices';
}
check(){
return -1!==this.getTimingSetting('devices').indexOf(elementorFrontend.getCurrentDeviceMode());
}}
exports["default"]=_default;
}),
"../modules/popup/assets/js/frontend/timing/logged-in.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
var _interopRequireDefault=__webpack_require__( "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
var _base=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/timing/base.js"));
class _default extends _base.default {
getName(){
return 'logged_in';
}
check(){
const userConfig=elementorFrontend.config.user;
if(!userConfig){
return true;
}
if('all'===this.getTimingSetting('users')){
return false;
}
const userRolesInHideList=this.getTimingSetting('roles').filter(role=> -1!==userConfig.roles.indexOf(role));
return !userRolesInHideList.length;
}}
exports["default"]=_default;
}),
"../modules/popup/assets/js/frontend/timing/page-views.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
var _interopRequireDefault=__webpack_require__( "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
var _base=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/timing/base.js"));
class _default extends _base.default {
getName(){
return 'page_views';
}
check(){
const pageViews=elementorFrontend.storage.get('pageViews'),
name=this.getName();
let initialPageViews=this.document.getStorage(name + '_initialPageViews');
if(!initialPageViews){
this.document.setStorage(name + '_initialPageViews', pageViews);
initialPageViews=pageViews;
}
return pageViews - initialPageViews >=this.getTimingSetting('views');
}}
exports["default"]=_default;
}),
"../modules/popup/assets/js/frontend/timing/schedule-utils.js":
((__unused_webpack_module, exports)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class ScheduleUtils {
constructor(args){
this.settings=args.settings;
}
getCurrentDateTime(){
let now=new Date();
if('site'===this.settings.timezone&&this.settings.serverDatetime){
now=new Date(this.settings.serverDatetime);
}
return now;
}
shouldDisplay=()=> {
if(!this.settings.startDate&&!this.settings.endDate){
return true;
}
const now=this.getCurrentDateTime();
if((!this.settings.startDate||now >=this.settings.startDate)&&(!this.settings.endDate||now <=this.settings.endDate)){
return true;
}
return false;
};}
exports["default"]=ScheduleUtils;
}),
"../modules/popup/assets/js/frontend/timing/schedule.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
var _interopRequireDefault=__webpack_require__( "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
var _base=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/timing/base.js"));
var _scheduleUtils=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/timing/schedule-utils.js"));
class _default extends _base.default {
constructor(...args){
super(...args);
const {
schedule_timezone: timezone,
schedule_start_date: startDate,
schedule_end_date: endDate,
schedule_server_datetime: serverDatetime
}=this.getSettings();
this.settings={
timezone,
startDate: startDate ? new Date(startDate):false,
endDate: endDate ? new Date(endDate):false,
serverDatetime: serverDatetime ? new Date(serverDatetime):false
};
this.scheduleUtils=new _scheduleUtils.default({
settings: this.settings
});
}
getName(){
return 'schedule';
}
check(){
return this.scheduleUtils.shouldDisplay();
}}
exports["default"]=_default;
}),
"../modules/popup/assets/js/frontend/timing/sessions.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
var _interopRequireDefault=__webpack_require__( "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
var _base=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/timing/base.js"));
class _default extends _base.default {
getName(){
return 'sessions';
}
check(){
const sessions=elementorFrontend.storage.get('sessions'),
name=this.getName();
let initialSessions=this.document.getStorage(name + '_initialSessions');
if(!initialSessions){
this.document.setStorage(name + '_initialSessions', sessions);
initialSessions=sessions;
}
return sessions - initialSessions >=this.getTimingSetting('sessions');
}}
exports["default"]=_default;
}),
"../modules/popup/assets/js/frontend/timing/sources.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
var _interopRequireDefault=__webpack_require__( "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
var _base=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/timing/base.js"));
class _default extends _base.default {
getName(){
return 'sources';
}
check(){
const sources=this.getTimingSetting('sources');
if(3===sources.length){
return true;
}
const referrer=document.referrer.replace(/https?:\/\/(?:www\.)?/, ''),
isInternal=0===referrer.indexOf(location.host.replace('www.', ''));
if(isInternal){
return -1!==sources.indexOf('internal');
}
if(-1!==sources.indexOf('external')){
return true;
}
if(-1!==sources.indexOf('search')){
return /^(google|yahoo|bing|yandex|baidu)\./.test(referrer);
}
return false;
}}
exports["default"]=_default;
}),
"../modules/popup/assets/js/frontend/timing/times-utils.js":
((__unused_webpack_module, exports)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class TimesUtils {
constructor(args){
this.uniqueId=args.uniqueId;
this.settings=args.settings;
this.storage=args.storage;
}
getTimeFramesInSecounds(timeFrame){
const timeFrames={
day: 86400,
week: 604800,
month: 2628288 
};
return timeFrames[timeFrame];
}
setExpiration(name, value, timeFrame){
const data=this.storage.get(name);
if(!data){
const options={
lifetimeInSeconds: this.getTimeFramesInSecounds(timeFrame)
};
this.storage.set(name, value, options);
return;
}
this.storage.set(name, value);
}
getImpressionsCount(){
const impressionCount=this.storage.get(this.uniqueId) ?? 0;
return parseInt(impressionCount);
}
incrementImpressionsCount(){
if(!this.settings.period){
this.storage.set('times', (this.storage.get('times') ?? 0) + 1);
}else if('session'!==this.settings.period){
const impressionCount=this.getImpressionsCount();
this.setExpiration(this.uniqueId, impressionCount + 1, this.settings.period);
}else{
sessionStorage.setItem(this.uniqueId, parseInt(sessionStorage.getItem(this.uniqueId) ?? 0) + 1);
}}
shouldCountOnOpen(){
if(this.settings.countOnOpen){
this.incrementImpressionsCount();
}}
shouldDisplayPerTimeFrame(){
const impressionCount=this.getImpressionsCount();
if(impressionCount < this.settings.showsLimit){
this.shouldCountOnOpen();
return true;
}
return false;
}
shouldDisplayPerSession(){
const impressionCount=sessionStorage.getItem(this.uniqueId) ?? 0;
if(parseInt(impressionCount) < this.settings.showsLimit){
this.shouldCountOnOpen();
return true;
}
return false;
}
shouldDisplayBackwordCompatible(impressionCount=0, showsLimit){
const shouldDisplay=parseInt(impressionCount) < parseInt(showsLimit);
this.shouldCountOnOpen();
return shouldDisplay;
}}
exports["default"]=TimesUtils;
}),
"../modules/popup/assets/js/frontend/timing/times.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
var _interopRequireDefault=__webpack_require__( "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
var _base=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/timing/base.js"));
var _timesUtils=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/timing/times-utils.js"));
class _default extends _base.default {
constructor(...args){
super(...args);
this.uniqueId=`popup-${this.document.getSettings('id')}-impressions-count`;
const {
times_count: countOnOpen,
times_period: period,
times_times: showsLimit
}=this.getSettings();
this.settings={
countOnOpen,
period,
showsLimit: parseInt(showsLimit)
};
if(''===this.settings.period){
this.settings.period=false;
}
if(['', 'close'].includes(this.settings.countOnOpen)){
this.settings.countOnOpen=false;
this.onPopupHide();
}else{
this.settings.countOnOpen=true;
}
this.utils=new _timesUtils.default({
uniqueId: this.uniqueId,
settings: this.settings,
storage: elementorFrontend.storage
});
}
getName(){
return 'times';
}
check(){
if(!this.settings.period){
const impressionCount=this.document.getStorage('times')||0;
const showsLimit=this.getTimingSetting('times');
return this.utils.shouldDisplayBackwordCompatible(impressionCount, showsLimit);
}
if('session'!==this.settings.period){
if(!this.utils.shouldDisplayPerTimeFrame()){
return false;
}}else if(!this.utils.shouldDisplayPerSession()){
return false;
}
return true;
}
onPopupHide(){
window.addEventListener('elementor/popup/hide', ()=> {
this.utils.incrementImpressionsCount();
});
}}
exports["default"]=_default;
}),
"../modules/popup/assets/js/frontend/timing/url.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
var _interopRequireDefault=__webpack_require__( "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
var _base=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/timing/base.js"));
class _default extends _base.default {
getName(){
return 'url';
}
check(){
const url=this.getTimingSetting('url'),
action=this.getTimingSetting('action'),
referrer=document.referrer;
if('regex'!==action){
return 'hide'===action ^ -1!==referrer.indexOf(url);
}
let regexp;
try {
regexp=new RegExp(url);
} catch (e){
return false;
}
return regexp.test(referrer);
}}
exports["default"]=_default;
}),
"../modules/popup/assets/js/frontend/triggers.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
var _interopRequireDefault=__webpack_require__( "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
var _pageLoad=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/triggers/page-load.js"));
var _scrolling=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/triggers/scrolling.js"));
var _scrollingTo=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/triggers/scrolling-to.js"));
var _click=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/triggers/click.js"));
var _inactivity=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/triggers/inactivity.js"));
var _exitIntent=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/triggers/exit-intent.js"));
var _adblockDetection=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/triggers/adblock-detection.js"));
class _default extends elementorModules.Module {
constructor(settings, document){
super(settings);
this.document=document;
this.triggers=[];
this.triggerClasses={
page_load: _pageLoad.default,
scrolling: _scrolling.default,
scrolling_to: _scrollingTo.default,
click: _click.default,
inactivity: _inactivity.default,
exit_intent: _exitIntent.default,
adblock_detection: _adblockDetection.default
};
this.runTriggers();
}
runTriggers(){
const settings=this.getSettings();
jQuery.each(this.triggerClasses, (key, TriggerClass)=> {
if(!settings[key]){
return;
}
const trigger=new TriggerClass(settings, ()=> this.onTriggerFired());
trigger.run();
this.triggers.push(trigger);
});
}
destroyTriggers(){
this.triggers.forEach(trigger=> trigger.destroy());
this.triggers=[];
}
onTriggerFired(){
this.document.showModal(true);
this.destroyTriggers();
}}
exports["default"]=_default;
}),
"../modules/popup/assets/js/frontend/triggers/adblock-detection.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
var _interopRequireDefault=__webpack_require__( "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
var _base=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/triggers/base.js"));
class _default extends _base.default {
getName(){
return 'adblock_detection';
}
generateRandomString(){
const chars='abcdefghijklmnopqrstuvwxyz0123456789';
let result='';
for (let i=0; i < 6; i++){
const randomIndex=Math.floor(Math.random() * chars.length);
result +=chars[randomIndex];
}
return result;
}
hasAdblock(){
const elementId=`elementor-adblock-detection-${this.generateRandomString()}`;
this.createEmptyAdBlockElement(elementId);
const tempAdBlockEle=document.querySelector(`#${elementId}`);
if(!tempAdBlockEle){
return true;
}
const hasAdBlock='none'===window.getComputedStyle(tempAdBlockEle)?.display;
this.removeEmptyAdBlockElement(tempAdBlockEle);
return hasAdBlock;
}
createEmptyAdBlockElement(elementId){
const tempAdDiv=document.createElement('div');
tempAdDiv.id=elementId;
tempAdDiv.className='ad-box';
tempAdDiv.style.position='fixed';
tempAdDiv.style.top='0';
tempAdDiv.style.left='0';
tempAdDiv.setAttribute('aria-hidden', 'true');
tempAdDiv.innerHTML='&nbsp;';
document.body.appendChild(tempAdDiv);
}
removeEmptyAdBlockElement(tempAdBlockEle){
tempAdBlockEle.remove();
}
run(){
this.timeout=setTimeout(()=> {
const hasAdBlock=this.hasAdblock();
if(hasAdBlock){
this.callback();
}}, this.getTriggerSetting('delay') * 1000);
}
destroy(){
clearTimeout(this.timeout);
}}
exports["default"]=_default;
}),
"../modules/popup/assets/js/frontend/triggers/base.js":
((__unused_webpack_module, exports)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class _default extends elementorModules.Module {
constructor(settings, callback){
super(settings);
this.callback=callback;
}
getTriggerSetting(settingKey){
return this.getSettings(this.getName() + '_' + settingKey);
}}
exports["default"]=_default;
}),
"../modules/popup/assets/js/frontend/triggers/click.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
var _interopRequireDefault=__webpack_require__( "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
var _base=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/triggers/base.js"));
class _default extends _base.default {
constructor(...args){
super(...args);
this.checkClick=this.checkClick.bind(this);
this.clicksCount=0;
}
getName(){
return 'click';
}
checkClick(){
this.clicksCount++;
if(this.clicksCount===this.getTriggerSetting('times')){
this.callback();
}}
run(){
elementorFrontend.elements.$body.on('click', this.checkClick);
}
destroy(){
elementorFrontend.elements.$body.off('click', this.checkClick);
}}
exports["default"]=_default;
}),
"../modules/popup/assets/js/frontend/triggers/exit-intent.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
var _interopRequireDefault=__webpack_require__( "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
var _base=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/triggers/base.js"));
class _default extends _base.default {
constructor(...args){
super(...args);
this.detectExitIntent=this.detectExitIntent.bind(this);
}
getName(){
return 'exit_intent';
}
detectExitIntent(event){
if(event.clientY <=0){
this.callback();
}}
run(){
elementorFrontend.elements.$window.on('mouseleave', this.detectExitIntent);
}
destroy(){
elementorFrontend.elements.$window.off('mouseleave', this.detectExitIntent);
}}
exports["default"]=_default;
}),
"../modules/popup/assets/js/frontend/triggers/inactivity.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
var _interopRequireDefault=__webpack_require__( "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
var _base=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/triggers/base.js"));
class _default extends _base.default {
constructor(...args){
super(...args);
this.restartTimer=this.restartTimer.bind(this);
}
getName(){
return 'inactivity';
}
run(){
this.startTimer();
elementorFrontend.elements.$document.on('keypress mousemove', this.restartTimer);
}
startTimer(){
this.timeOut=setTimeout(this.callback, this.getTriggerSetting('time') * 1000);
}
clearTimer(){
clearTimeout(this.timeOut);
}
restartTimer(){
this.clearTimer();
this.startTimer();
}
destroy(){
this.clearTimer();
elementorFrontend.elements.$document.off('keypress mousemove', this.restartTimer);
}}
exports["default"]=_default;
}),
"../modules/popup/assets/js/frontend/triggers/page-load.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
var _interopRequireDefault=__webpack_require__( "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
var _base=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/triggers/base.js"));
class _default extends _base.default {
getName(){
return 'page_load';
}
run(){
this.timeout=setTimeout(this.callback, this.getTriggerSetting('delay') * 1000);
}
destroy(){
clearTimeout(this.timeout);
}}
exports["default"]=_default;
}),
"../modules/popup/assets/js/frontend/triggers/scrolling-to.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
var _interopRequireDefault=__webpack_require__( "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
var _base=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/triggers/base.js"));
class _default extends _base.default {
getName(){
return 'scrolling_to';
}
run(){
let $targetElement;
try {
$targetElement=jQuery(this.getTriggerSetting('selector'));
} catch (e){
return;
}
if($targetElement.length){
this.setUpIntersectionObserver();
this.observer.observe($targetElement[0]);
}}
setUpIntersectionObserver(){
this.observer=new IntersectionObserver(entries=> {
entries.forEach(entry=> {
if(entry.isIntersecting){
this.callback();
}});
});
}
destroy(){
if(this.observer){
this.observer.disconnect();
}}
}
exports["default"]=_default;
}),
"../modules/popup/assets/js/frontend/triggers/scrolling.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
var _interopRequireDefault=__webpack_require__( "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
var _base=_interopRequireDefault(__webpack_require__( "../modules/popup/assets/js/frontend/triggers/base.js"));
class _default extends _base.default {
constructor(...args){
super(...args);
this.checkScroll=this.checkScroll.bind(this);
this.lastScrollOffset=0;
}
getName(){
return 'scrolling';
}
checkScroll(){
const scrollDirection=scrollY > this.lastScrollOffset ? 'down':'up',
requestedDirection=this.getTriggerSetting('direction');
this.lastScrollOffset=scrollY;
if(scrollDirection!==requestedDirection){
return;
}
if('up'===scrollDirection){
this.callback();
return;
}
const fullScroll=elementorFrontend.elements.$document.height() - innerHeight,
scrollPercent=scrollY / fullScroll * 100;
if(scrollPercent >=this.getTriggerSetting('offset')){
this.callback();
}}
run(){
elementorFrontend.elements.$window.on('scroll', this.checkScroll);
}
destroy(){
elementorFrontend.elements.$window.off('scroll', this.checkScroll);
}}
exports["default"]=_default;
}),
"../modules/posts/assets/js/frontend/frontend.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class _default extends elementorModules.Module {
constructor(){
super();
['classic', 'full_content', 'cards'].forEach(skinName=> {
elementorFrontend.elementsHandler.attachHandler('posts', ()=> __webpack_require__.e( "load-more").then(__webpack_require__.bind(__webpack_require__,  "../modules/posts/assets/js/frontend/handlers/load-more.js")), skinName);
});
elementorFrontend.elementsHandler.attachHandler('posts', ()=> __webpack_require__.e( "posts").then(__webpack_require__.bind(__webpack_require__,  "../modules/posts/assets/js/frontend/handlers/posts.js")), 'classic');
elementorFrontend.elementsHandler.attachHandler('posts', ()=> __webpack_require__.e( "posts").then(__webpack_require__.bind(__webpack_require__,  "../modules/posts/assets/js/frontend/handlers/posts.js")), 'full_content');
elementorFrontend.elementsHandler.attachHandler('posts', ()=> __webpack_require__.e( "posts").then(__webpack_require__.bind(__webpack_require__,  "../modules/posts/assets/js/frontend/handlers/cards.js")), 'cards');
elementorFrontend.elementsHandler.attachHandler('portfolio', ()=> __webpack_require__.e( "portfolio").then(__webpack_require__.bind(__webpack_require__,  "../modules/posts/assets/js/frontend/handlers/portfolio.js")));
}}
exports["default"]=_default;
}),
"../modules/search/assets/js/frontend/frontend.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class _default extends elementorModules.Module {
constructor(){
super();
elementorFrontend.elementsHandler.attachHandler('search', [()=> __webpack_require__.e( "search").then(__webpack_require__.bind(__webpack_require__,  "../modules/search/assets/js/frontend/handlers/search.js")), ()=> __webpack_require__.e( "search").then(__webpack_require__.bind(__webpack_require__,  "../modules/search/assets/js/frontend/handlers/search-keyboard-handler.js"))]);
}}
exports["default"]=_default;
}),
"../modules/share-buttons/assets/js/frontend/frontend.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class _default extends elementorModules.Module {
constructor(){
super();
elementorFrontend.elementsHandler.attachHandler('share-buttons', ()=> __webpack_require__.e( "share-buttons").then(__webpack_require__.bind(__webpack_require__,  "../modules/share-buttons/assets/js/frontend/handlers/share-buttons.js")));
}}
exports["default"]=_default;
}),
"../modules/slides/assets/js/frontend/frontend.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class _default extends elementorModules.Module {
constructor(){
super();
elementorFrontend.elementsHandler.attachHandler('slides', ()=> __webpack_require__.e( "slides").then(__webpack_require__.bind(__webpack_require__,  "../modules/slides/assets/js/frontend/handlers/slides.js")));
}}
exports["default"]=_default;
}),
"../modules/social/assets/js/frontend/frontend.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class _default extends elementorModules.Module {
constructor(){
super();
elementorFrontend.elementsHandler.attachHandler('facebook-button', ()=> __webpack_require__.e( "social").then(__webpack_require__.bind(__webpack_require__,  "../modules/social/assets/js/frontend/handlers/facebook.js")));
elementorFrontend.elementsHandler.attachHandler('facebook-comments', ()=> __webpack_require__.e( "social").then(__webpack_require__.bind(__webpack_require__,  "../modules/social/assets/js/frontend/handlers/facebook.js")));
elementorFrontend.elementsHandler.attachHandler('facebook-embed', ()=> __webpack_require__.e( "social").then(__webpack_require__.bind(__webpack_require__,  "../modules/social/assets/js/frontend/handlers/facebook.js")));
elementorFrontend.elementsHandler.attachHandler('facebook-page', ()=> __webpack_require__.e( "social").then(__webpack_require__.bind(__webpack_require__,  "../modules/social/assets/js/frontend/handlers/facebook.js")));
}}
exports["default"]=_default;
}),
"../modules/table-of-contents/assets/js/frontend/frontend.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class _default extends elementorModules.Module {
constructor(){
super();
elementorFrontend.elementsHandler.attachHandler('table-of-contents', ()=> Promise.all([__webpack_require__.e("vendors-node_modules_dompurify_dist_purify_cjs_js"), __webpack_require__.e("table-of-contents")]).then(__webpack_require__.bind(__webpack_require__,  "../modules/table-of-contents/assets/js/frontend/handlers/table-of-contents.js")));
}}
exports["default"]=_default;
}),
"../modules/theme-builder/assets/js/frontend/frontend.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class _default extends elementorModules.Module {
constructor(){
super();
['archive_classic', 'archive_full_content', 'archive_cards'].forEach(skinName=> {
elementorFrontend.elementsHandler.attachHandler('archive-posts', ()=> __webpack_require__.e( "archive-posts").then(__webpack_require__.bind(__webpack_require__,  "../modules/theme-builder/assets/js/frontend/handlers/archive-posts-load-more.js")), skinName);
});
elementorFrontend.elementsHandler.attachHandler('archive-posts', ()=> __webpack_require__.e( "archive-posts").then(__webpack_require__.bind(__webpack_require__,  "../modules/theme-builder/assets/js/frontend/handlers/archive-posts-skin-classic.js")), 'archive_classic');
elementorFrontend.elementsHandler.attachHandler('archive-posts', ()=> __webpack_require__.e( "archive-posts").then(__webpack_require__.bind(__webpack_require__,  "../modules/theme-builder/assets/js/frontend/handlers/archive-posts-skin-classic.js")), 'archive_full_content');
elementorFrontend.elementsHandler.attachHandler('archive-posts', ()=> __webpack_require__.e( "archive-posts").then(__webpack_require__.bind(__webpack_require__,  "../modules/theme-builder/assets/js/frontend/handlers/archive-posts-skin-cards.js")), 'archive_cards');
jQuery(function (){
var match=location.search.match(/theme_template_id=(\d*)/),
$element=match ? jQuery('.elementor-' + match[1]):[];
if($element.length){
jQuery('html, body').animate({
scrollTop: $element.offset().top - window.innerHeight / 2
});
}});
}}
exports["default"]=_default;
}),
"../modules/theme-elements/assets/js/frontend/frontend.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class _default extends elementorModules.Module {
constructor(){
super();
elementorFrontend.elementsHandler.attachHandler('search-form', ()=> __webpack_require__.e( "search-form").then(__webpack_require__.bind(__webpack_require__,  "../modules/theme-elements/assets/js/frontend/handlers/search-form.js")));
}}
exports["default"]=_default;
}),
"../modules/woocommerce/assets/js/frontend/frontend.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class _default extends elementorModules.Module {
constructor(){
super();
elementorFrontend.elementsHandler.attachHandler('woocommerce-menu-cart', ()=> __webpack_require__.e( "woocommerce-menu-cart").then(__webpack_require__.bind(__webpack_require__,  "../modules/woocommerce/assets/js/frontend/handlers/menu-cart.js")));
elementorFrontend.elementsHandler.attachHandler('woocommerce-purchase-summary', ()=> __webpack_require__.e( "woocommerce-purchase-summary").then(__webpack_require__.bind(__webpack_require__,  "../modules/woocommerce/assets/js/frontend/handlers/purchase-summary.js")));
elementorFrontend.elementsHandler.attachHandler('woocommerce-checkout-page', ()=> __webpack_require__.e( "woocommerce-checkout-page").then(__webpack_require__.bind(__webpack_require__,  "../modules/woocommerce/assets/js/frontend/handlers/checkout-page.js")));
elementorFrontend.elementsHandler.attachHandler('woocommerce-cart', ()=> __webpack_require__.e( "woocommerce-cart").then(__webpack_require__.bind(__webpack_require__,  "../modules/woocommerce/assets/js/frontend/handlers/cart.js")));
elementorFrontend.elementsHandler.attachHandler('woocommerce-my-account', ()=> __webpack_require__.e( "woocommerce-my-account").then(__webpack_require__.bind(__webpack_require__,  "../modules/woocommerce/assets/js/frontend/handlers/my-account.js")));
elementorFrontend.elementsHandler.attachHandler('woocommerce-notices', ()=> __webpack_require__.e( "woocommerce-notices").then(__webpack_require__.bind(__webpack_require__,  "../modules/woocommerce/assets/js/frontend/handlers/notices.js")));
elementorFrontend.elementsHandler.attachHandler('woocommerce-product-add-to-cart', ()=> __webpack_require__.e( "product-add-to-cart").then(__webpack_require__.bind(__webpack_require__,  "../modules/woocommerce/assets/js/frontend/handlers/product-add-to-cart.js")));
if(elementorFrontend.isEditMode()){
elementorFrontend.on('components:init', ()=> {
if(!elementorFrontend.elements.$body.find('.elementor-widget-woocommerce-cart').length){
elementorFrontend.elements.$body.append('<div class="woocommerce-cart-form">');
}});
}}
}
exports["default"]=_default;
}),
"@wordpress/i18n":
((module)=> {
module.exports=wp.i18n;
})
},
__webpack_require__=> {
var __webpack_exec__=(moduleId)=> (__webpack_require__(__webpack_require__.s=moduleId))
__webpack_require__.O(0, ["frontend"], ()=> (__webpack_exec__("../assets/dev/js/frontend/elements-handlers.js")));
var __webpack_exports__=__webpack_require__.O();
}
]);