/*! elementor-pro - v3.12.3 - 23-04-2023 */ (self["webpackChunkelementor_pro"]=self["webpackChunkelementor_pro"]||[]).push([["frontend"],{"../assets/dev/js/frontend/frontend.js": /*!*********************************************!*\ !*** ../assets/dev/js/frontend/frontend.js ***! \*********************************************/ ((__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{"use strict";var _interopRequireDefault=__webpack_require__( /*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");__webpack_require__( /*! ../public-path */ "../assets/dev/js/public-path.js");var _frontend=_interopRequireDefault(__webpack_require__( /*! ../../../../modules/motion-fx/assets/js/frontend/frontend */ "../modules/motion-fx/assets/js/frontend/frontend.js"));var _frontend2=_interopRequireDefault(__webpack_require__( /*! ../../../../modules/sticky/assets/js/frontend/frontend */ "../modules/sticky/assets/js/frontend/frontend.js"));var _frontend3=_interopRequireDefault(__webpack_require__( /*! ../../../../modules/code-highlight/assets/js/frontend/frontend */ "../modules/code-highlight/assets/js/frontend/frontend.js"));var _frontend4=_interopRequireDefault(__webpack_require__( /*! ../../../../modules/video-playlist/assets/js/frontend/frontend */ "../modules/video-playlist/assets/js/frontend/frontend.js"));var _frontend5=_interopRequireDefault(__webpack_require__( /*! ../../../../modules/payments/assets/js/frontend/frontend */ "../modules/payments/assets/js/frontend/frontend.js"));var _frontend6=_interopRequireDefault(__webpack_require__( /*! ../../../../modules/progress-tracker/assets/js/frontend/frontend */ "../modules/progress-tracker/assets/js/frontend/frontend.js"));var _controls=_interopRequireDefault(__webpack_require__( /*! ./utils/controls */ "../assets/dev/js/frontend/utils/controls.js"));var _dropdownMenuHeightController=_interopRequireDefault(__webpack_require__( /*! ./utils/dropdown-menu-height-controller */ "../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');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:function(){elementorFrontend.utils.urlActions.addAction(...arguments);}};} onElementorFrontendInit(){this.initModules();} initOnReadyComponents(){this.utils={controls:new _controls.default(),DropdownMenuHeightController:_dropdownMenuHeightController.default};}} window.elementorProFrontend=new ElementorProFrontend();}),"../assets/dev/js/frontend/utils/controls.js": /*!***************************************************!*\ !*** ../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){let controlSubKey=arguments.length>2&&arguments[2]!==undefined?arguments[2]:'';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": /*!**************************************************************************!*\ !*** ../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(){const menuToggleHeight=this.widgetConfig.elements.$dropdownMenuContainer.offset().top-jQuery(window).scrollTop();return elementorFrontend.elements.$window.height()-menuToggleHeight;} 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.widgetConfig.elements.$menuToggle.hasClass(this.widgetConfig.classes.menuToggleActiveClass)?this.getMenuHeight():0;return this.setMenuHeight(menuHeight);}} exports["default"]=DropdownMenuHeightController;}),"../assets/dev/js/public-path.js": /*!***************************************!*\ !*** ../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": /*!****************************************************************!*\ !*** ../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( /*! import() | code-highlight */ "code-highlight").then(__webpack_require__.bind(__webpack_require__, /*! ./handler */ "../modules/code-highlight/assets/js/frontend/handler.js")));}} exports["default"]=_default;}),"../modules/motion-fx/assets/js/frontend/frontend.js": /*!***********************************************************!*\ !*** ../modules/motion-fx/assets/js/frontend/frontend.js ***! \***********************************************************/ ((__unused_webpack_module,exports,__webpack_require__)=>{"use strict";var _interopRequireDefault=__webpack_require__( /*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(exports,"__esModule",({value:true}));exports["default"]=void 0;var _handler=_interopRequireDefault(__webpack_require__( /*! ./handler */ "../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": /*!**********************************************************!*\ !*** ../modules/motion-fx/assets/js/frontend/handler.js ***! \**********************************************************/ ((__unused_webpack_module,exports,__webpack_require__)=>{"use strict";var _interopRequireDefault=__webpack_require__( /*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(exports,"__esModule",({value:true}));exports["default"]=void 0;var _motionFx=_interopRequireDefault(__webpack_require__( /*! ./motion-fx/motion-fx */ "../modules/motion-fx/assets/js/frontend/motion-fx/motion-fx.js"));class _default extends elementorModules.frontend.handlers.Base{__construct(){super.__construct(...arguments);this.toggle=elementorFrontend.debounce(this.toggle,200);} getDefaultSettings(){return{selectors:{container:'.elementor-widget-container'}};} getDefaultElements(){const selectors=this.getSettings('selectors');return{$container:this.$element.find(selectors.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;const elementType=this.getElementType();if('element'===type&&!['section','container'].includes(elementType)){$dimensionsElement=$element;let childElementSelector;if('column'===elementType){childElementSelector=elementorFrontend.config.legacyMode.elementWrappers?'.elementor-column-wrap':'.elementor-widget-wrap';}else{childElementSelector='.elementor-widget-container';} $element=$element.find('> '+childElementSelector);} 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();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": /*!********************************************************************!*\ !*** ../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{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){if(actionData.affectedRange){if(actionData.affectedRange.start>passedPercents){passedPercents=actionData.affectedRange.start;} if(actionData.affectedRange.end3?_len-3:0),_key=3;_key<_len;_key++){args[_key-3]=arguments[_key];} 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": /*!******************************************************************************!*\ !*** ../modules/motion-fx/assets/js/frontend/motion-fx/interactions/base.js ***! \******************************************************************************/ ((__unused_webpack_module,exports,__webpack_require__)=>{"use strict";var _interopRequireDefault=__webpack_require__( /*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(exports,"__esModule",({value:true}));exports["default"]=void 0;var _defineProperty2=_interopRequireDefault(__webpack_require__( /*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));class _default extends elementorModules.ViewModule{constructor(){super(...arguments);(0,_defineProperty2.default)(this,"onInsideViewport",()=>{this.run();this.animationFrameRequest=requestAnimationFrame(this.onInsideViewport);});} __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);} runCallback(){const callback=this.getSettings('callback');callback(...arguments);} 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": /*!************************************************************************************!*\ !*** ../modules/motion-fx/assets/js/frontend/motion-fx/interactions/mouse-move.js ***! \************************************************************************************/ ((__unused_webpack_module,exports,__webpack_require__)=>{"use strict";var _interopRequireDefault=__webpack_require__( /*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(exports,"__esModule",({value:true}));exports["default"]=void 0;var _base=_interopRequireDefault(__webpack_require__( /*! ./base */ "../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": /*!********************************************************************************!*\ !*** ../modules/motion-fx/assets/js/frontend/motion-fx/interactions/scroll.js ***! \********************************************************************************/ ((__unused_webpack_module,exports,__webpack_require__)=>{"use strict";var _interopRequireDefault=__webpack_require__( /*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(exports,"__esModule",({value:true}));exports["default"]=void 0;var _base=_interopRequireDefault(__webpack_require__( /*! ./base */ "../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": /*!**********************************************************************!*\ !*** ../modules/motion-fx/assets/js/frontend/motion-fx/motion-fx.js ***! \**********************************************************************/ ((__unused_webpack_module,exports,__webpack_require__)=>{"use strict";var _interopRequireDefault=__webpack_require__( /*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(exports,"__esModule",({value:true}));exports["default"]=void 0;var _scroll=_interopRequireDefault(__webpack_require__( /*! ./interactions/scroll */ "../modules/motion-fx/assets/js/frontend/motion-fx/interactions/scroll.js"));var _mouseMove=_interopRequireDefault(__webpack_require__( /*! ./interactions/mouse-move */ "../modules/motion-fx/assets/js/frontend/motion-fx/interactions/mouse-move.js"));var _actions=_interopRequireDefault(__webpack_require__( /*! ./actions */ "../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('
',{class:settings.classes.container});this.elements.$motionFXLayer=jQuery('
',{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(){var _this=this;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:function(){for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];} 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": /*!**********************************************************!*\ !*** ../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( /*! import() | paypal-button */ "paypal-button").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/paypal-button */ "../modules/payments/assets/js/frontend/handlers/paypal-button.js")));elementorFrontend.elementsHandler.attachHandler('stripe-button',()=>__webpack_require__.e( /*! import() | stripe-button */ "stripe-button").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/stripe-button */ "../modules/payments/assets/js/frontend/handlers/stripe-button.js")));}} exports["default"]=_default;}),"../modules/progress-tracker/assets/js/frontend/frontend.js": /*!******************************************************************!*\ !*** ../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( /*! import() | progress-tracker */ "progress-tracker").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/progress-tracker */ "../modules/progress-tracker/assets/js/frontend/handlers/progress-tracker.js")));}} exports["default"]=_default;}),"../modules/sticky/assets/js/frontend/frontend.js": /*!********************************************************!*\ !*** ../modules/sticky/assets/js/frontend/frontend.js ***! \********************************************************/ ((__unused_webpack_module,exports,__webpack_require__)=>{"use strict";var _interopRequireDefault=__webpack_require__( /*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(exports,"__esModule",({value:true}));exports["default"]=void 0;var _sticky=_interopRequireDefault(__webpack_require__( /*! ./handlers/sticky */ "../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": /*!***************************************************************!*\ !*** ../modules/sticky/assets/js/frontend/handlers/sticky.js ***! \***************************************************************/ ((__unused_webpack_module,exports)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports["default"]=void 0;var _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,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-container, .e-container__inner, .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-container','e-container__inner','e-con','e-con-inner'];return containerClasses.some(containerClass=>{return element?.classList.contains(containerClass);});}});exports["default"]=_default;}),"../modules/video-playlist/assets/js/frontend/frontend.js": /*!****************************************************************!*\ !*** ../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( /*! import() | video-playlist */ "video-playlist").then(__webpack_require__.bind(__webpack_require__, /*! ./handler */ "../modules/video-playlist/assets/js/frontend/handler.js")).then(_ref=>{let{default:dynamicHandler}=_ref;elementorFrontend.elementsHandler.addHandler(dynamicHandler,{$element,toggleSelf:false});});});}} exports["default"]=_default;}),"../node_modules/@babel/runtime/helpers/defineProperty.js": /*!****************************************************************!*\ !*** ../node_modules/@babel/runtime/helpers/defineProperty.js ***! \****************************************************************/ ((module,__unused_webpack_exports,__webpack_require__)=>{var toPropertyKey=__webpack_require__( /*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");function _defineProperty(obj,key,value){key=toPropertyKey(key);if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;} return obj;} module.exports=_defineProperty,module.exports.__esModule=true,module.exports["default"]=module.exports;}),"../node_modules/@babel/runtime/helpers/interopRequireDefault.js": /*!***********************************************************************!*\ !*** ../node_modules/@babel/runtime/helpers/interopRequireDefault.js ***! \***********************************************************************/ ((module)=>{function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj};} module.exports=_interopRequireDefault,module.exports.__esModule=true,module.exports["default"]=module.exports;}),"../node_modules/@babel/runtime/helpers/toPrimitive.js": /*!*************************************************************!*\ !*** ../node_modules/@babel/runtime/helpers/toPrimitive.js ***! \*************************************************************/ ((module,__unused_webpack_exports,__webpack_require__)=>{var _typeof=(__webpack_require__( /*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);function _toPrimitive(input,hint){if(_typeof(input)!=="object"||input===null)return input;var prim=input[Symbol.toPrimitive];if(prim!==undefined){var res=prim.call(input,hint||"default");if(_typeof(res)!=="object")return res;throw new TypeError("@@toPrimitive must return a primitive value.");} return(hint==="string"?String:Number)(input);} module.exports=_toPrimitive,module.exports.__esModule=true,module.exports["default"]=module.exports;}),"../node_modules/@babel/runtime/helpers/toPropertyKey.js": /*!***************************************************************!*\ !*** ../node_modules/@babel/runtime/helpers/toPropertyKey.js ***! \***************************************************************/ ((module,__unused_webpack_exports,__webpack_require__)=>{var _typeof=(__webpack_require__( /*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);var toPrimitive=__webpack_require__( /*! ./toPrimitive.js */ "../node_modules/@babel/runtime/helpers/toPrimitive.js");function _toPropertyKey(arg){var key=toPrimitive(arg,"string");return _typeof(key)==="symbol"?key:String(key);} module.exports=_toPropertyKey,module.exports.__esModule=true,module.exports["default"]=module.exports;}),"../node_modules/@babel/runtime/helpers/typeof.js": /*!********************************************************!*\ !*** ../node_modules/@babel/runtime/helpers/typeof.js ***! \********************************************************/ ((module)=>{function _typeof(obj){"@babel/helpers - typeof";return(module.exports=_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj;}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;},module.exports.__esModule=true,module.exports["default"]=module.exports),_typeof(obj);} module.exports=_typeof,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"));}]);