"use strict";
(self["webpackChunkelementorFrontend"]=self["webpackChunkelementorFrontend"]||[]).push([["frontend"],{
"../assets/dev/js/frontend/documents-manager.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__( "../assets/dev/js/frontend/document.js"));
class _default extends elementorModules.ViewModule {
constructor(...args){
super(...args);
this.documents={};
this.initDocumentClasses();
this.attachDocumentsClasses();
}
getDefaultSettings(){
return {
selectors: {
document: '.elementor'
}};}
getDefaultElements(){
const selectors=this.getSettings('selectors');
return {
$documents: jQuery(selectors.document)
};}
initDocumentClasses(){
this.documentClasses={
base: _document.default
};
elementorFrontend.hooks.doAction('elementor/frontend/documents-manager/init-classes', this);
}
addDocumentClass(documentType, documentClass){
this.documentClasses[documentType]=documentClass;
}
attachDocumentsClasses(){
this.elements.$documents.each((index, document)=> this.attachDocumentClass(jQuery(document)));
}
attachDocumentClass($document){
const documentData=$document.data(),
documentID=documentData.elementorId,
documentType=documentData.elementorType,
DocumentClass=this.documentClasses[documentType]||this.documentClasses.base;
this.documents[documentID]=new DocumentClass({
$element: $document,
id: documentID
});
}}
exports["default"]=_default;
}),
"../assets/dev/js/frontend/elements-handlers-manager.js":
((module, __unused_webpack_exports, __webpack_require__)=> {
var _interopRequireDefault=__webpack_require__( "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
__webpack_require__( "../node_modules/core-js/modules/esnext.iterator.constructor.js");
__webpack_require__( "../node_modules/core-js/modules/esnext.iterator.for-each.js");
var _global=_interopRequireDefault(__webpack_require__( "../assets/dev/js/frontend/handlers/global.js"));
var _container=_interopRequireDefault(__webpack_require__( "../assets/dev/js/frontend/handlers/container/container.js"));
var _section=_interopRequireDefault(__webpack_require__( "../assets/dev/js/frontend/handlers/section/section.js"));
var _column=_interopRequireDefault(__webpack_require__( "../assets/dev/js/frontend/handlers/column.js"));
module.exports=function ($){
const handlersInstances={};
this.elementsHandlers={
'accordion.default': ()=> __webpack_require__.e( "accordion").then(__webpack_require__.bind(__webpack_require__,  "../assets/dev/js/frontend/handlers/accordion.js")),
'alert.default': ()=> __webpack_require__.e( "alert").then(__webpack_require__.bind(__webpack_require__,  "../assets/dev/js/frontend/handlers/alert.js")),
'counter.default': ()=> __webpack_require__.e( "counter").then(__webpack_require__.bind(__webpack_require__,  "../assets/dev/js/frontend/handlers/counter.js")),
'progress.default': ()=> __webpack_require__.e( "progress").then(__webpack_require__.bind(__webpack_require__,  "../assets/dev/js/frontend/handlers/progress.js")),
'tabs.default': ()=> __webpack_require__.e( "tabs").then(__webpack_require__.bind(__webpack_require__,  "../assets/dev/js/frontend/handlers/tabs.js")),
'toggle.default': ()=> __webpack_require__.e( "toggle").then(__webpack_require__.bind(__webpack_require__,  "../assets/dev/js/frontend/handlers/toggle.js")),
'video.default': ()=> __webpack_require__.e( "video").then(__webpack_require__.bind(__webpack_require__,  "../assets/dev/js/frontend/handlers/video.js")),
'image-carousel.default': ()=> __webpack_require__.e( "image-carousel").then(__webpack_require__.bind(__webpack_require__,  "../assets/dev/js/frontend/handlers/image-carousel.js")),
'text-editor.default': ()=> __webpack_require__.e( "text-editor").then(__webpack_require__.bind(__webpack_require__,  "../assets/dev/js/frontend/handlers/text-editor.js")),
'wp-widget-media_audio.default': ()=> __webpack_require__.e( "wp-audio").then(__webpack_require__.bind(__webpack_require__,  "../assets/dev/js/frontend/handlers/wp-audio.js")),
container: _container.default,
section: _section.default,
column: _column.default
};
if(elementorFrontendConfig.experimentalFeatures['nested-elements']){
this.elementsHandlers['nested-tabs.default']=()=> __webpack_require__.e( "nested-tabs").then(__webpack_require__.bind(__webpack_require__,  "../modules/nested-tabs/assets/js/frontend/handlers/nested-tabs.js"));
}
if(elementorFrontendConfig.experimentalFeatures['nested-elements']){
this.elementsHandlers['nested-accordion.default']=()=> __webpack_require__.e( "nested-accordion").then(__webpack_require__.bind(__webpack_require__,  "../modules/nested-accordion/assets/js/frontend/handlers/nested-accordion.js"));
}
if(elementorFrontendConfig.experimentalFeatures.container){
this.elementsHandlers['contact-buttons.default']=()=> __webpack_require__.e( "contact-buttons").then(__webpack_require__.bind(__webpack_require__,  "../modules/floating-buttons/assets/js/floating-buttons/frontend/handlers/contact-buttons.js"));
this.elementsHandlers['floating-bars-var-1.default']=()=> __webpack_require__.e( "floating-bars").then(__webpack_require__.bind(__webpack_require__,  "../modules/floating-buttons/assets/js/floating-bars/frontend/handlers/floating-bars.js"));
}
const addGlobalHandlers=()=> elementorFrontend.hooks.addAction('frontend/element_ready/global', _global.default);
const addElementsHandlers=()=> {
$.each(this.elementsHandlers, (elementName, Handlers)=> {
const elementData=elementName.split('.');
elementName=elementData[0];
const skin=elementData[1]||null;
this.attachHandler(elementName, Handlers, skin);
});
};
const isClassHandler=Handler=> Handler.prototype?.getUniqueHandlerID;
const addHandlerWithHook=(elementBaseName, Handler, skin='default')=> {
skin=skin ? '.' + skin:'';
const elementName=elementBaseName + skin;
elementorFrontend.hooks.addAction(`frontend/element_ready/${elementName}`, $element=> {
if(isClassHandler(Handler)){
this.addHandler(Handler, {
$element,
elementName
}, true);
}else{
const handlerValue=Handler();
if(!handlerValue){
return;
}
if(handlerValue instanceof Promise){
handlerValue.then(({
default: dynamicHandler
})=> {
this.addHandler(dynamicHandler, {
$element,
elementName
}, true);
});
}else{
this.addHandler(handlerValue, {
$element,
elementName
}, true);
}}
});
};
this.addHandler=function (HandlerClass, options){
const elementID=options.$element.data('model-cid');
let handlerID;
if(elementID){
handlerID=HandlerClass.prototype.getConstructorID();
if(!handlersInstances[elementID]){
handlersInstances[elementID]={};}
const oldHandler=handlersInstances[elementID][handlerID];
if(oldHandler){
oldHandler.onDestroy();
}}
const newHandler=new HandlerClass(options);
elementorFrontend.hooks.doAction(`frontend/element_handler_ready/${options.elementName}`, options.$element, $);
if(elementID){
handlersInstances[elementID][handlerID]=newHandler;
}};
this.attachHandler=(elementName, Handlers, skin)=> {
if(!Array.isArray(Handlers)){
Handlers=[Handlers];
}
Handlers.forEach(Handler=> addHandlerWithHook(elementName, Handler, skin));
};
this.getHandler=function (handlerName){
const elementHandler=this.elementsHandlers[handlerName];
if(isClassHandler(elementHandler)){
return elementHandler;
}
return new Promise(res=> {
elementHandler().then(({
default: dynamicHandler
})=> {
res(dynamicHandler);
});
});
};
this.getHandlers=function (handlerName){
elementorDevTools.deprecation.deprecated('getHandlers', '3.1.0', 'elementorFrontend.elementsHandler.getHandler');
if(handlerName){
return this.getHandler(handlerName);
}
return this.elementsHandlers;
};
this.runReadyTrigger=function (scope){
const isDelayChildHandlers = !!scope.closest('[data-delay-child-handlers="true"]')&&0!==scope.closest('[data-delay-child-handlers="true"]').length;
if(elementorFrontend.config.is_static||isDelayChildHandlers){
return;
}
const $scope=jQuery(scope),
elementType=$scope.attr('data-element_type');
if(!elementType){
return;
}
elementorFrontend.hooks.doAction('frontend/element_ready/global', $scope, $);
elementorFrontend.hooks.doAction(`frontend/element_ready/${elementType}`, $scope, $);
if('widget'===elementType){
const widgetType=$scope.attr('data-widget_type');
elementorFrontend.hooks.doAction(`frontend/element_ready/${widgetType}`, $scope, $);
}};
this.init=()=> {
addGlobalHandlers();
addElementsHandlers();
};};
}),
"../assets/dev/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;
__webpack_require__( "../node_modules/core-js/modules/esnext.iterator.constructor.js");
__webpack_require__( "../node_modules/core-js/modules/esnext.iterator.find.js");
__webpack_require__( "../node_modules/core-js/modules/esnext.iterator.for-each.js");
__webpack_require__( "../assets/dev/js/public-path.js");
var _documentsManager=_interopRequireDefault(__webpack_require__( "../assets/dev/js/frontend/documents-manager.js"));
var _storage=_interopRequireDefault(__webpack_require__( "../core/common/assets/js/utils/storage.js"));
var _environment=_interopRequireDefault(__webpack_require__( "../core/common/assets/js/utils/environment.js"));
var _youtubeLoader=_interopRequireDefault(__webpack_require__( "../assets/dev/js/frontend/utils/video-api/youtube-loader.js"));
var _vimeoLoader=_interopRequireDefault(__webpack_require__( "../assets/dev/js/frontend/utils/video-api/vimeo-loader.js"));
var _baseLoader=_interopRequireDefault(__webpack_require__( "../assets/dev/js/frontend/utils/video-api/base-loader.js"));
var _urlActions=_interopRequireDefault(__webpack_require__( "../assets/dev/js/frontend/utils/url-actions.js"));
var _swiper=_interopRequireDefault(__webpack_require__( "../assets/dev/js/frontend/utils/swiper.js"));
var _lightboxManager=_interopRequireDefault(__webpack_require__( "../assets/dev/js/frontend/utils/lightbox/lightbox-manager.js"));
var _assetsLoader=_interopRequireDefault(__webpack_require__( "../assets/dev/js/frontend/utils/assets-loader.js"));
var _breakpoints=_interopRequireDefault(__webpack_require__( "../assets/dev/js/utils/breakpoints.js"));
var _events=_interopRequireDefault(__webpack_require__( "../assets/dev/js/utils/events.js"));
var _frontend=_interopRequireDefault(__webpack_require__( "../modules/shapes/assets/js/frontend/frontend.js"));
var _controls=_interopRequireDefault(__webpack_require__( "../assets/dev/js/frontend/utils/controls.js"));
var _anchorScrollMargin=_interopRequireDefault(__webpack_require__( "../assets/dev/js/frontend/utils/anchor-scroll-margin.js"));
var _utils=__webpack_require__( "../assets/dev/js/frontend/utils/utils.js");
const EventManager=__webpack_require__( "../assets/dev/js/utils/hooks.js"),
ElementsHandler=__webpack_require__( "../assets/dev/js/frontend/elements-handlers-manager.js");
class Frontend extends elementorModules.ViewModule {
constructor(...args){
super(...args);
this.config=elementorFrontendConfig;
this.config.legacyMode={
get elementWrappers(){
if(elementorFrontend.isEditMode()){
window.top.elementorDevTools.deprecation.deprecated('elementorFrontend.config.legacyMode.elementWrappers', '3.1.0');
}
return false;
}};
this.populateActiveBreakpointsConfig();
}
get Module(){
if(this.isEditMode()){
parent.elementorDevTools.deprecation.deprecated('elementorFrontend.Module', '2.5.0', 'elementorModules.frontend.handlers.Base');
}
return elementorModules.frontend.handlers.Base;
}
getDefaultSettings(){
return {
selectors: {
elementor: '.elementor',
adminBar: '#wpadminbar'
}};}
getDefaultElements(){
const defaultElements={
window,
$window: jQuery(window),
$document: jQuery(document),
$head: jQuery(document.head),
$body: jQuery(document.body),
$deviceMode: jQuery('<span>', {
id: 'elementor-device-mode',
class: 'elementor-screen-only'
})
};
defaultElements.$body.append(defaultElements.$deviceMode);
return defaultElements;
}
bindEvents(){
this.elements.$window.on('resize', ()=> this.setDeviceModeData());
}
getElements(elementName){
return this.getItems(this.elements, elementName);
}
getPageSettings(settingName){
const settingsObject=this.isEditMode() ? elementor.settings.page.model.attributes:this.config.settings.page;
return this.getItems(settingsObject, settingName);
}
getGeneralSettings(settingName){
if(this.isEditMode()){
parent.elementorDevTools.deprecation.deprecated('getGeneralSettings()', '3.0.0', 'getKitSettings() and remove the `elementor_` prefix');
}
return this.getKitSettings(`elementor_${settingName}`);
}
getKitSettings(settingName){
return this.getItems(this.config.kit, settingName);
}
getCurrentDeviceMode(){
return getComputedStyle(this.elements.$deviceMode[0], ':after').content.replace(/"/g, '');
}
getDeviceSetting(deviceMode, settings, settingKey){
if('widescreen'===deviceMode){
return this.getWidescreenSetting(settings, settingKey);
}
const devices=elementorFrontend.breakpoints.getActiveBreakpointsList({
largeToSmall: true,
withDesktop: true
});
let deviceIndex=devices.indexOf(deviceMode);
while (deviceIndex > 0){
const currentDevice=devices[deviceIndex],
fullSettingKey=settingKey + '_' + currentDevice,
deviceValue=settings[fullSettingKey];
if(deviceValue||0===deviceValue){
return deviceValue;
}
deviceIndex--;
}
return settings[settingKey];
}
getWidescreenSetting(settings, settingKey){
const deviceMode='widescreen',
widescreenSettingKey=settingKey + '_' + deviceMode;
let settingToReturn;
if(settings[widescreenSettingKey]){
settingToReturn=settings[widescreenSettingKey];
}else{
settingToReturn=settings[settingKey];
}
return settingToReturn;
}
getCurrentDeviceSetting(settings, settingKey){
return this.getDeviceSetting(elementorFrontend.getCurrentDeviceMode(), settings, settingKey);
}
isEditMode(){
return this.config.environmentMode.edit;
}
isWPPreviewMode(){
return this.config.environmentMode.wpPreview;
}
initDialogsManager(){
let dialogsManager;
this.getDialogsManager=()=> {
if(!dialogsManager){
dialogsManager=new DialogsManager.Instance();
}
return dialogsManager;
};}
initOnReadyComponents(){
this.utils={
youtube: new _youtubeLoader.default(),
vimeo: new _vimeoLoader.default(),
baseVideoLoader: new _baseLoader.default(),
get lightbox(){
return _lightboxManager.default.getLightbox();
},
urlActions: new _urlActions.default(),
swiper: _swiper.default,
environment: _environment.default,
assetsLoader: new _assetsLoader.default(),
escapeHTML: _utils.escapeHTML,
events: _events.default,
controls: new _controls.default(),
anchor_scroll_margin: new _anchorScrollMargin.default()
};
this.modules={
StretchElement: elementorModules.frontend.tools.StretchElement,
Masonry: elementorModules.utils.Masonry
};
this.elementsHandler.init();
if(this.isEditMode()){
elementor.once('document:loaded', ()=> this.onDocumentLoaded());
}else{
this.onDocumentLoaded();
}}
initOnReadyElements(){
this.elements.$wpAdminBar=this.elements.$document.find(this.getSettings('selectors.adminBar'));
}
addUserAgentClasses(){
for (const [key, value] of Object.entries(_environment.default)){
if(value){
this.elements.$body.addClass('e--ua-' + key);
}}
}
setDeviceModeData(){
this.elements.$body.attr('data-elementor-device-mode', this.getCurrentDeviceMode());
}
addListenerOnce(listenerID, event, callback, to){
if(!to){
to=this.elements.$window;
}
if(!this.isEditMode()){
to.on(event, callback);
return;
}
this.removeListeners(listenerID, event, to);
if(to instanceof jQuery){
const eventNS=event + '.' + listenerID;
to.on(eventNS, callback);
}else{
to.on(event, callback, listenerID);
}}
removeListeners(listenerID, event, callback, from){
if(!from){
from=this.elements.$window;
}
if(from instanceof jQuery){
const eventNS=event + '.' + listenerID;
from.off(eventNS, callback);
}else{
from.off(event, callback, listenerID);
}}
debounce(func, wait){
let timeout;
return function (){
const context=this,
args=arguments;
const later=()=> {
timeout=null;
func.apply(context, args);
};
const callNow = !timeout;
clearTimeout(timeout);
timeout=setTimeout(later, wait);
if(callNow){
func.apply(context, args);
}};}
muteMigrationTraces(){
jQuery.migrateMute=true;
jQuery.migrateTrace=false;
}
initModules(){
const handlers={
shapes: _frontend.default
};
elementorFrontend.trigger('elementor/modules/init:before');
elementorFrontend.trigger('elementor/modules/init/before');
Object.entries(handlers).forEach(([moduleName, ModuleClass])=> {
this.modulesHandlers[moduleName]=new ModuleClass();
});
}
populateActiveBreakpointsConfig(){
this.config.responsive.activeBreakpoints={};
Object.entries(this.config.responsive.breakpoints).forEach(([breakpointKey, breakpointData])=> {
if(breakpointData.is_enabled){
this.config.responsive.activeBreakpoints[breakpointKey]=breakpointData;
}});
}
init(){
this.hooks=new EventManager();
this.breakpoints=new _breakpoints.default(this.config.responsive);
this.storage=new _storage.default();
this.elementsHandler=new ElementsHandler(jQuery);
this.modulesHandlers={};
this.addUserAgentClasses();
this.setDeviceModeData();
this.initDialogsManager();
if(this.isEditMode()){
this.muteMigrationTraces();
}
_events.default.dispatch(this.elements.$window, 'elementor/frontend/init');
this.initModules();
this.initOnReadyElements();
this.initOnReadyComponents();
}
onDocumentLoaded(){
this.documentsManager=new _documentsManager.default();
this.trigger('components:init');
new _lightboxManager.default();
}}
exports["default"]=Frontend;
window.elementorFrontend=new Frontend();
if(!elementorFrontend.isEditMode()){
jQuery(()=> elementorFrontend.init());
}
}),
"../assets/dev/js/frontend/handlers/column.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
var _default=exports["default"]=[()=> __webpack_require__.e( "shared-frontend-handlers").then(__webpack_require__.bind(__webpack_require__,  "../assets/dev/js/frontend/handlers/background-slideshow.js"))];
}),
"../assets/dev/js/frontend/handlers/container/container.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
var _createEditorHandler=__webpack_require__( "../assets/dev/js/frontend/handlers/create-editor-handler.js");
var _default=exports["default"]=[()=> __webpack_require__.e( "shared-frontend-handlers").then(__webpack_require__.bind(__webpack_require__,  "../assets/dev/js/frontend/handlers/background-slideshow.js")), ()=> __webpack_require__.e( "shared-frontend-handlers").then(__webpack_require__.bind(__webpack_require__,  "../assets/dev/js/frontend/handlers/background-video.js")), (0, _createEditorHandler.createEditorHandler)(()=> __webpack_require__.e( "shared-editor-handlers").then(__webpack_require__.bind(__webpack_require__,  "../assets/dev/js/frontend/handlers/handles-position.js"))), (0, _createEditorHandler.createEditorHandler)(()=> __webpack_require__.e( "container-editor-handlers").then(__webpack_require__.bind(__webpack_require__,  "../assets/dev/js/frontend/handlers/container/shapes.js"))), (0, _createEditorHandler.createEditorHandler)(()=> __webpack_require__.e( "container-editor-handlers").then(__webpack_require__.bind(__webpack_require__,  "../assets/dev/js/frontend/handlers/container/grid-container.js")))];
}),
"../assets/dev/js/frontend/handlers/create-editor-handler.js":
((__unused_webpack_module, exports)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports.createEditorHandler=createEditorHandler;
function createEditorHandler(importer){
return ()=> {
return new Promise(resolve=> {
if(elementorFrontend.isEditMode()){
importer().then(resolve);
}});
};}
}),
"../assets/dev/js/frontend/handlers/global.js":
((__unused_webpack_module, exports)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class GlobalHandler extends elementorModules.frontend.handlers.Base {
getWidgetType(){
return 'global';
}
animate(){
const $element=this.$element,
animation=this.getAnimation();
if('none'===animation){
$element.removeClass('elementor-invisible');
return;
}
const elementSettings=this.getElementSettings(),
animationDelay=elementSettings._animation_delay||elementSettings.animation_delay||0;
$element.removeClass(animation);
if(this.currentAnimation){
$element.removeClass(this.currentAnimation);
}
this.currentAnimation=animation;
setTimeout(()=> {
$element.removeClass('elementor-invisible').addClass('animated ' + animation);
}, animationDelay);
}
getAnimation(){
return this.getCurrentDeviceSetting('animation')||this.getCurrentDeviceSetting('_animation');
}
onInit(...args){
super.onInit(...args);
if(this.getAnimation()){
const observer=elementorModules.utils.Scroll.scrollObserver({
callback: event=> {
if(event.isInViewport){
this.animate();
observer.unobserve(this.$element[0]);
}}
});
observer.observe(this.$element[0]);
}}
onElementChange(propertyName){
if(/^_?animation/.test(propertyName)){
this.animate();
}}
}
var _default=$scope=> {
elementorFrontend.elementsHandler.addHandler(GlobalHandler, {
$element: $scope
});
};
exports["default"]=_default;
}),
"../assets/dev/js/frontend/handlers/section/section.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
var _createEditorHandler=__webpack_require__( "../assets/dev/js/frontend/handlers/create-editor-handler.js");
var _default=exports["default"]=[()=> __webpack_require__.e( "section-frontend-handlers").then(__webpack_require__.bind(__webpack_require__,  "../assets/dev/js/frontend/handlers/section/stretched-section.js")),
()=> __webpack_require__.e( "shared-frontend-handlers").then(__webpack_require__.bind(__webpack_require__,  "../assets/dev/js/frontend/handlers/background-slideshow.js")), ()=> __webpack_require__.e( "shared-frontend-handlers").then(__webpack_require__.bind(__webpack_require__,  "../assets/dev/js/frontend/handlers/background-video.js")), (0, _createEditorHandler.createEditorHandler)(()=> __webpack_require__.e( "shared-editor-handlers").then(__webpack_require__.bind(__webpack_require__,  "../assets/dev/js/frontend/handlers/handles-position.js"))), (0, _createEditorHandler.createEditorHandler)(()=> __webpack_require__.e( "section-editor-handlers").then(__webpack_require__.bind(__webpack_require__,  "../assets/dev/js/frontend/handlers/section/shapes.js")))];
}),
"../assets/dev/js/frontend/utils/anchor-scroll-margin.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
__webpack_require__( "../node_modules/core-js/modules/es.array.push.js");
__webpack_require__( "../node_modules/core-js/modules/esnext.iterator.constructor.js");
__webpack_require__( "../node_modules/core-js/modules/esnext.iterator.filter.js");
__webpack_require__( "../node_modules/core-js/modules/esnext.iterator.for-each.js");
class _default extends elementorModules.ViewModule {
getDefaultSettings(){
return {
selectors: {
links: '.elementor-element a[href*="#"]',
stickyElements: '.elementor-element.elementor-sticky'
}};}
onInit(){
this.observeStickyElements(()=> {
this.initializeStickyAndAnchorTracking();
});
}
observeStickyElements(callback){
const observer=new MutationObserver(mutationsList=> {
for (const mutation of mutationsList){
if('childList'===mutation.type||'attributes'===mutation.type&&mutation.target.classList.contains('elementor-sticky')){
callback();
}}
});
observer.observe(document.body, {
childList: true,
subtree: true,
attributes: true,
attributeFilter: ['class', 'style']
});
}
initializeStickyAndAnchorTracking(){
const anchorLinks=this.getAllAnchorLinks();
const stickyElements=this.getAllStickyElements();
const trackedElements=[];
if(!stickyElements.length > 0&&!anchorLinks.length > 0){
return;
}
this.trackStickyElements(stickyElements, trackedElements);
this.trackAnchorLinks(anchorLinks, trackedElements);
this.organizeStickyAndAnchors(trackedElements);
}
trackAnchorLinks(anchorLinks, trackedElements){
anchorLinks.forEach(element=> {
const target=this.getAnchorTarget(element);
const scrollPosition=this.getScrollPosition(target);
trackedElements.push({
element: target,
type: 'anchor',
scrollPosition
});
});
}
trackStickyElements(stickyElements, trackedElements){
stickyElements.forEach(element=> {
const settings=this.getElementSettings(element);
if(!settings||!settings.sticky_anchor_link_offset){
return;
}
const {
sticky_anchor_link_offset: scrollMarginTop
}=settings;
if(0===scrollMarginTop){
return;
}
const scrollPosition=this.getScrollPosition(element);
trackedElements.push({
scrollMarginTop,
type: 'sticky',
scrollPosition
});
});
}
organizeStickyAndAnchors(elements){
const stickyList=this.filterAndSortElementsByType(elements, 'sticky');
const anchorList=this.filterAndSortElementsByType(elements, 'anchor');
stickyList.forEach((sticky, index)=> {
this.defineCurrentStickyRange(sticky, index, stickyList, anchorList);
});
}
defineCurrentStickyRange(sticky, index, stickyList, anchorList){
const nextStickyScrollPosition=index + 1 < stickyList.length ? stickyList[index + 1].scrollPosition:Infinity;
sticky.anchor=anchorList.filter(anchor=> {
const withinRange=anchor.scrollPosition > sticky.scrollPosition&&anchor.scrollPosition < nextStickyScrollPosition;
if(withinRange){
anchor.element.style.scrollMarginTop=`${sticky.scrollMarginTop}px`;
}
return withinRange;
});
}
getScrollPosition(element){
let offsetTop=0;
while (element){
offsetTop +=element.offsetTop;
element=element.offsetParent;
}
return offsetTop;
}
getAllStickyElements(){
const allStickyElements=document.querySelectorAll(this.getSettings('selectors.stickyElements'));
return Array.from(allStickyElements).filter((anchor, index, self)=> index===self.findIndex(t=> t.getAttribute('data-id')===anchor.getAttribute('data-id')));
}
getAllAnchorLinks(){
const allAnchors=document.querySelectorAll(this.getSettings('selectors.links'));
return Array.from(allAnchors).filter((anchor, index, self)=> index===self.findIndex(t=> t.getAttribute('href')===anchor.getAttribute('href')));
}
filterAndSortElementsByType(elements, type){
return elements.filter(item=> type===item.type).sort((a, b)=> a.scrollPosition - b.scrollPosition);
}
isValidSelector(hash){
const validSelectorPattern=/^#[A-Za-z_][\w-]*$/;
return validSelectorPattern.test(hash);
}
getAnchorTarget(element){
const hash=element?.hash;
if(!this.isValidSelector(hash)){
return null;
}
return document.querySelector(hash);
}
getElementSettings(element){
return JSON.parse(element.getAttribute('data-settings'));
}}
exports["default"]=_default;
}),
"../assets/dev/js/frontend/utils/assets-loader.js":
((__unused_webpack_module, exports)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class AssetsLoader {
getScriptElement(src){
const scriptElement=document.createElement('script');
scriptElement.src=src;
return scriptElement;
}
getStyleElement(src){
const styleElement=document.createElement('link');
styleElement.rel='stylesheet';
styleElement.href=src;
return styleElement;
}
load(type, key){
const assetData=AssetsLoader.assets[type][key];
if(!assetData.loader){
assetData.loader=this.isAssetLoaded(assetData, type) ? Promise.resolve(true):this.loadAsset(assetData, type);
}
return assetData.loader;
}
isAssetLoaded(assetData, assetType){
const filePath='script'===assetType ? `script[src="${assetData.src}"]`:`link[href="${assetData.src}"]`;
return !!document.querySelectorAll(filePath)?.length;
}
loadAsset(assetData, assetType){
return new Promise(resolve=> {
const element='style'===assetType ? this.getStyleElement(assetData.src):this.getScriptElement(assetData.src);
element.onload=()=> resolve(true);
this.appendAsset(assetData, element);
});
}
appendAsset(assetData, element){
const beforeElement=document.querySelector(assetData.before);
if(!!beforeElement){
beforeElement.insertAdjacentElement('beforebegin', element);
return;
}
const parent='head'===assetData.parent ? assetData.parent:'body';
document[parent].appendChild(element);
}}
exports["default"]=AssetsLoader;
const assetsUrl=elementorFrontendConfig.urls.assets;
const fileSuffix=elementorFrontendConfig.environmentMode.isScriptDebug ? '':'.min';
const pluginVersion=elementorFrontendConfig.version;
AssetsLoader.assets={
script: {
dialog: {
src: `${assetsUrl}lib/dialog/dialog${fileSuffix}.js?ver=4.9.3`
},
'share-link': {
src: `${assetsUrl}lib/share-link/share-link${fileSuffix}.js?ver=${pluginVersion}`
},
swiper: {
src: `${assetsUrl}lib/swiper/v8/swiper${fileSuffix}.js?ver=8.4.5`
}},
style: {
swiper: {
src: `${assetsUrl}lib/swiper/v8/css/swiper${fileSuffix}.css?ver=8.4.5`,
parent: 'head'
},
'e-lightbox': {
src: elementorFrontendConfig?.responsive?.hasCustomBreakpoints ? `${elementorFrontendConfig.urls.uploadUrl}/elementor/css/custom-lightbox.min.css?ver=${pluginVersion}`:`${assetsUrl}css/conditionals/lightbox${fileSuffix}.css?ver=${pluginVersion}`
},
dialog: {
src: `${assetsUrl}css/conditionals/dialog${fileSuffix}.css?ver=${pluginVersion}`,
parent: 'head',
before: '#elementor-frontend-css'
}}
};
}),
"../assets/dev/js/frontend/utils/controls.js":
((__unused_webpack_module, exports)=> {
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='', device=null){
const currentDeviceMode=device||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/lightbox/lightbox-manager.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
__webpack_require__( "../node_modules/core-js/modules/esnext.iterator.constructor.js");
__webpack_require__( "../node_modules/core-js/modules/esnext.iterator.find.js");
class LightboxManager extends elementorModules.ViewModule {
static getLightbox(){
const lightboxPromise=new Promise(resolveLightbox=> {
Promise.all([__webpack_require__.e("vendors-node_modules_dompurify_dist_purify_cjs_js"), __webpack_require__.e("lightbox")]).then(__webpack_require__.t.bind(__webpack_require__,  "../assets/dev/js/frontend/utils/lightbox/lightbox.js", 23)).then(({
default: LightboxModule
})=> resolveLightbox(new LightboxModule()));
}),
dialogScriptPromise=elementorFrontend.utils.assetsLoader.load('script', 'dialog'),
dialogStylePromise=elementorFrontend.utils.assetsLoader.load('style', 'dialog'),
shareLinkPromise=elementorFrontend.utils.assetsLoader.load('script', 'share-link'),
swiperStylePromise=elementorFrontend.utils.assetsLoader.load('style', 'swiper'),
lightboxStylePromise=elementorFrontend.utils.assetsLoader.load('style', 'e-lightbox');
return Promise.all([lightboxPromise, dialogScriptPromise, dialogStylePromise, shareLinkPromise, swiperStylePromise, lightboxStylePromise]).then(()=> lightboxPromise);
}
getDefaultSettings(){
return {
selectors: {
links: 'a, [data-elementor-lightbox]',
slideshow: '[data-elementor-lightbox-slideshow]'
}};}
getDefaultElements(){
return {
$links: jQuery(this.getSettings('selectors.links')),
$slideshow: jQuery(this.getSettings('selectors.slideshow'))
};}
isLightboxLink(element){
if('a'===element.tagName.toLowerCase()&&(element.hasAttribute('download')||!/^[^?]+\.(png|jpe?g|gif|svg|webp|avif)(\?.*)?$/i.test(element.href))&&!element.dataset.elementorLightboxVideo){
return false;
}
const generalOpenInLightbox=elementorFrontend.getKitSettings('global_image_lightbox'),
currentLinkOpenInLightbox=element.dataset.elementorOpenLightbox;
return 'yes'===currentLinkOpenInLightbox||generalOpenInLightbox&&'no'!==currentLinkOpenInLightbox;
}
isLightboxSlideshow(){
return 0!==this.elements.$slideshow.length;
}
async onLinkClick(event){
const element=event.currentTarget,
$target=jQuery(event.target),
editMode=elementorFrontend.isEditMode(),
isColorPickingMode=editMode&&elementor.$previewContents.find('body').hasClass('elementor-editor__ui-state__color-picker'),
isClickInsideElementor = !!$target.closest('.elementor-edit-area').length;
if(!this.isLightboxLink(element)){
if(editMode&&isClickInsideElementor){
event.preventDefault();
}
return;
}
event.preventDefault();
if(editMode&&!elementor.getPreferences('lightbox_in_editor')){
return;
}
if(isColorPickingMode){
return;
}
const lightbox=await LightboxManager.getLightbox();
lightbox.createLightbox(element);
}
bindEvents(){
elementorFrontend.elements.$document.on('click', this.getSettings('selectors.links'), event=> this.onLinkClick(event));
}
onInit(...args){
super.onInit(...args);
if(elementorFrontend.isEditMode()){
return;
}
this.maybeActivateLightboxOnLink();
}
maybeActivateLightboxOnLink(){
this.elements.$links.each((index, element)=> {
if(this.isLightboxLink(element)){
LightboxManager.getLightbox();
return false;
}});
}}
exports["default"]=LightboxManager;
}),
"../assets/dev/js/frontend/utils/swiper.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
__webpack_require__( "../node_modules/core-js/modules/esnext.iterator.constructor.js");
__webpack_require__( "../node_modules/core-js/modules/esnext.iterator.for-each.js");
class SwiperHandler {
constructor(container, config){
this.config=config;
if(this.config.breakpoints){
this.config=this.adjustConfig(config);
}
if(container instanceof jQuery){
container=container[0];
}
container.closest('.elementor-widget-wrap')?.classList.add('e-swiper-container');
container.closest('.elementor-widget')?.classList.add('e-widget-swiper');
return new Promise(resolve=> {
if('undefined'===typeof Swiper){
elementorFrontend.utils.assetsLoader.load('script', 'swiper').then(()=> resolve(this.createSwiperInstance(container, this.config)));
return;
}
if('function'===typeof Swiper&&'undefined'===typeof window.Swiper){
window.Swiper=Swiper;
}
resolve(this.createSwiperInstance(container, this.config));
});
}
createSwiperInstance(container, config){
const SwiperSource=window.Swiper;
SwiperSource.prototype.adjustConfig=this.adjustConfig;
return new SwiperSource(container, config);
}
adjustConfig(config){
if(!config.handleElementorBreakpoints){
return config;
}
const elementorBreakpoints=elementorFrontend.config.responsive.activeBreakpoints,
elementorBreakpointValues=elementorFrontend.breakpoints.getBreakpointValues();
Object.keys(config.breakpoints).forEach(configBPKey=> {
const configBPKeyInt=parseInt(configBPKey);
let breakpointToUpdate;
if(configBPKeyInt===elementorBreakpoints.mobile.value||configBPKeyInt + 1===elementorBreakpoints.mobile.value){
breakpointToUpdate=0;
}else if(elementorBreakpoints.widescreen&&(configBPKeyInt===elementorBreakpoints.widescreen.value||configBPKeyInt + 1===elementorBreakpoints.widescreen.value)){
breakpointToUpdate=configBPKeyInt;
}else{
const currentBPIndexInElementorBPs=elementorBreakpointValues.findIndex(elementorBP=> {
return configBPKeyInt===elementorBP||configBPKeyInt + 1===elementorBP;
});
breakpointToUpdate=elementorBreakpointValues[currentBPIndexInElementorBPs - 1];
}
config.breakpoints[breakpointToUpdate]=config.breakpoints[configBPKey];
config.breakpoints[configBPKey]={
slidesPerView: config.slidesPerView,
slidesPerGroup: config.slidesPerGroup ? config.slidesPerGroup:1
};});
return config;
}}
exports["default"]=SwiperHandler;
}),
"../assets/dev/js/frontend/utils/url-actions.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
__webpack_require__( "../node_modules/core-js/modules/web.dom-exception.stack.js");
class _default extends elementorModules.ViewModule {
getDefaultSettings(){
return {
selectors: {
links: 'a[href^="%23elementor-action"], a[href^="#elementor-action"]'
}};}
bindEvents(){
elementorFrontend.elements.$document.on('click', this.getSettings('selectors.links'), this.runLinkAction.bind(this));
}
initActions(){
this.actions={
lightbox: async settings=> {
const lightbox=await elementorFrontend.utils.lightbox;
if(settings.slideshow){
lightbox.openSlideshow(settings.slideshow, settings.url);
}else{
if(settings.id){
settings.type='image';
}
lightbox.showModal(settings);
}}
};}
addAction(name, callback){
this.actions[name]=callback;
}
runAction(url, ...restArgs){
url=decodeURI(url);
url=decodeURIComponent(url);
const actionMatch=url.match(/action=(.+?)&/);
if(!actionMatch){
return;
}
const action=this.actions[actionMatch[1]];
if(!action){
return;
}
let settings={};
const settingsMatch=url.match(/settings=(.+)/);
if(settingsMatch){
settings=JSON.parse(atob(settingsMatch[1]));
}
settings.previousEvent=event;
action(settings, ...restArgs);
}
runLinkAction(event){
event.preventDefault();
this.runAction(jQuery(event.currentTarget).attr('href'), event);
}
runHashAction(){
if(!location.hash){
return;
}
const elementWithHash=document.querySelector(`[data-e-action-hash="${location.hash}"], a[href*="${location.hash}"]`);
if(elementWithHash){
this.runAction(elementWithHash.getAttribute('data-e-action-hash'));
}}
createActionHash(action, settings){
return encodeURIComponent(`#elementor-action:action=${action}&settings=${btoa(JSON.stringify(settings))}`);
}
onInit(){
super.onInit();
this.initActions();
elementorFrontend.on('components:init', this.runHashAction.bind(this));
}}
exports["default"]=_default;
}),
"../assets/dev/js/frontend/utils/utils.js":
((__unused_webpack_module, exports)=> {
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;
}),
"../assets/dev/js/frontend/utils/video-api/base-loader.js":
((__unused_webpack_module, exports)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
class BaseLoader extends elementorModules.ViewModule {
getDefaultSettings(){
return {
isInserted: false,
selectors: {
firstScript: 'script:first'
}};}
getDefaultElements(){
return {
$firstScript: jQuery(this.getSettings('selectors.firstScript'))
};}
insertAPI(){
this.elements.$firstScript.before(jQuery('<script>', {
src: this.getApiURL()
}));
this.setSettings('isInserted', true);
}
getVideoIDFromURL(url){
const videoIDParts=url.match(this.getURLRegex());
return videoIDParts&&videoIDParts[1];
}
onApiReady(callback){
if(!this.getSettings('isInserted')){
this.insertAPI();
}
if(this.isApiLoaded()){
callback(this.getApiObject());
}else{
setTimeout(()=> {
this.onApiReady(callback);
}, 350);
}}
getAutoplayURL(videoURL){
return videoURL.replace('&autoplay=0', '') + '&autoplay=1';
}}
exports["default"]=BaseLoader;
}),
"../assets/dev/js/frontend/utils/video-api/vimeo-loader.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 _baseLoader=_interopRequireDefault(__webpack_require__( "../assets/dev/js/frontend/utils/video-api/base-loader.js"));
class VimeoLoader extends _baseLoader.default {
getApiURL(){
return 'https://player.vimeo.com/api/player.js';
}
getURLRegex(){
return /^(?:https?:\/\/)?(?:www|player\.)?(?:vimeo\.com\/)?(?:video\/|external\/)?(\d+)([^.?&#"'>]?)/;
}
isApiLoaded(){
return window.Vimeo;
}
getApiObject(){
return Vimeo;
}
getAutoplayURL(videoURL){
const timeMatch=videoURL.match(/#t=[^&]*/);
return videoURL.replace(timeMatch[0], '') + timeMatch;
}}
exports["default"]=VimeoLoader;
}),
"../assets/dev/js/frontend/utils/video-api/youtube-loader.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 _baseLoader=_interopRequireDefault(__webpack_require__( "../assets/dev/js/frontend/utils/video-api/base-loader.js"));
class YoutubeLoader extends _baseLoader.default {
getApiURL(){
return 'https://www.youtube.com/iframe_api';
}
getURLRegex(){
return /^(?:https?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com\/(?:(?:watch)?\?(?:.*&)?vi?=|(?:embed|v|vi|user|shorts)\/))([^?&"'>]+)/;
}
isApiLoaded(){
return window.YT&&YT.loaded;
}
getApiObject(){
return YT;
}}
exports["default"]=YoutubeLoader;
}),
"../assets/dev/js/public-path.js":
((__unused_webpack_module, __unused_webpack_exports, __webpack_require__)=> {
__webpack_require__.p=elementorFrontendConfig.urls.assets + 'js/';
}),
"../assets/dev/js/utils/breakpoints.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
__webpack_require__( "../node_modules/core-js/modules/es.array.push.js");
__webpack_require__( "../node_modules/core-js/modules/esnext.iterator.constructor.js");
__webpack_require__( "../node_modules/core-js/modules/esnext.iterator.for-each.js");
__webpack_require__( "../node_modules/core-js/modules/esnext.iterator.map.js");
class Breakpoints extends elementorModules.Module {
constructor(responsiveConfig){
super();
this.responsiveConfig=responsiveConfig;
}
getActiveBreakpointsList(args={}){
const defaultArgs={
largeToSmall: false,
withDesktop: false
};
args={
...defaultArgs,
...args
};
const breakpointKeys=Object.keys(this.responsiveConfig.activeBreakpoints);
if(args.withDesktop){
const widescreenIndex=breakpointKeys.indexOf('widescreen'),
indexToInsertDesktopDevice=-1===widescreenIndex ? breakpointKeys.length:breakpointKeys.length - 1;
breakpointKeys.splice(indexToInsertDesktopDevice, 0, 'desktop');
}
if(args.largeToSmall){
breakpointKeys.reverse();
}
return breakpointKeys;
}
getBreakpointValues(){
const {
activeBreakpoints
}=this.responsiveConfig,
breakpointValues=[];
Object.values(activeBreakpoints).forEach(breakpointConfig=> {
breakpointValues.push(breakpointConfig.value);
});
return breakpointValues;
}
getDesktopPreviousDeviceKey(){
let desktopPreviousDevice='';
const {
activeBreakpoints
}=this.responsiveConfig,
breakpointKeys=Object.keys(activeBreakpoints),
numOfDevices=breakpointKeys.length;
if('min'===activeBreakpoints[breakpointKeys[numOfDevices - 1]].direction){
desktopPreviousDevice=breakpointKeys[numOfDevices - 2];
}else{
desktopPreviousDevice=breakpointKeys[numOfDevices - 1];
}
return desktopPreviousDevice;
}
getDesktopMinPoint(){
const {
activeBreakpoints
}=this.responsiveConfig,
desktopPreviousDevice=this.getDesktopPreviousDeviceKey();
return activeBreakpoints[desktopPreviousDevice].value + 1;
}
getDeviceMinBreakpoint(device){
if('desktop'===device){
return this.getDesktopMinPoint();
}
const {
activeBreakpoints
}=this.responsiveConfig,
breakpointNames=Object.keys(activeBreakpoints);
let minBreakpoint;
if(breakpointNames[0]===device){
minBreakpoint=320;
}else if('widescreen'===device){
if(activeBreakpoints[device]){
minBreakpoint=activeBreakpoints[device].value;
}else{
minBreakpoint=this.responsiveConfig.breakpoints.widescreen;
}}else{
const deviceNameIndex=breakpointNames.indexOf(device),
previousIndex=deviceNameIndex - 1;
minBreakpoint=activeBreakpoints[breakpointNames[previousIndex]].value + 1;
}
return minBreakpoint;
}
getActiveMatchRegex(){
return new RegExp(this.getActiveBreakpointsList().map(device=> '_' + device).join('|') + '$');
}}
exports["default"]=Breakpoints;
}),
"../assets/dev/js/utils/events.js":
((__unused_webpack_module, exports)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=exports.Events=void 0;
class Events {
static dispatch(context, event, data=null, bcEvent=null){
context=context instanceof jQuery ? context[0]:context;
if(bcEvent){
context.dispatchEvent(new CustomEvent(bcEvent, {
detail: data
}));
}
context.dispatchEvent(new CustomEvent(event, {
detail: data
}));
}}
exports.Events=Events;
var _default=exports["default"]=Events;
}),
"../assets/dev/js/utils/hooks.js":
((module, __unused_webpack_exports, __webpack_require__)=> {
__webpack_require__( "../node_modules/core-js/modules/es.array.push.js");
var EventManager=function (){
var slice=Array.prototype.slice,
MethodsAvailable;
var STORAGE={
actions: {},
filters: {}};
function _removeHook(type, hook, callback, context){
var handlers, handler, i;
if(!STORAGE[type][hook]){
return;
}
if(!callback){
STORAGE[type][hook]=[];
}else{
handlers=STORAGE[type][hook];
if(!context){
for (i=handlers.length; i--;){
if(handlers[i].callback===callback){
handlers.splice(i, 1);
}}
}else{
for (i=handlers.length; i--;){
handler=handlers[i];
if(handler.callback===callback&&handler.context===context){
handlers.splice(i, 1);
}}
}}
}
function _hookInsertSort(hooks){
var tmpHook, j, prevHook;
for (var i=1, len=hooks.length; i < len; i++){
tmpHook=hooks[i];
j=i;
while ((prevHook=hooks[j - 1])&&prevHook.priority > tmpHook.priority){
hooks[j]=hooks[j - 1];
--j;
}
hooks[j]=tmpHook;
}
return hooks;
}
function _addHook(type, hook, callback, priority, context){
var hookObject={
callback,
priority,
context
};
var hooks=STORAGE[type][hook];
if(hooks){
var hasSameCallback=false;
jQuery.each(hooks, function (){
if(this.callback===callback){
hasSameCallback=true;
return false;
}});
if(hasSameCallback){
return;
}
hooks.push(hookObject);
hooks=_hookInsertSort(hooks);
}else{
hooks=[hookObject];
}
STORAGE[type][hook]=hooks;
}
function _runHook(type, hook, args){
var handlers=STORAGE[type][hook],
i,
len;
if(!handlers){
return 'filters'===type ? args[0]:false;
}
len=handlers.length;
if('filters'===type){
for (i=0; i < len; i++){
args[0]=handlers[i].callback.apply(handlers[i].context, args);
}}else{
for (i=0; i < len; i++){
handlers[i].callback.apply(handlers[i].context, args);
}}
return 'filters'===type ? args[0]:true;
}
function addAction(action, callback, priority, context){
if('string'===typeof action&&'function'===typeof callback){
priority=parseInt(priority||10, 10);
_addHook('actions', action, callback, priority, context);
}
return MethodsAvailable;
}
function doAction(
){
var args=slice.call(arguments);
var action=args.shift();
if('string'===typeof action){
_runHook('actions', action, args);
}
return MethodsAvailable;
}
function removeAction(action, callback){
if('string'===typeof action){
_removeHook('actions', action, callback);
}
return MethodsAvailable;
}
function addFilter(filter, callback, priority, context){
if('string'===typeof filter&&'function'===typeof callback){
priority=parseInt(priority||10, 10);
_addHook('filters', filter, callback, priority, context);
}
return MethodsAvailable;
}
function applyFilters(
){
var args=slice.call(arguments);
var filter=args.shift();
if('string'===typeof filter){
return _runHook('filters', filter, args);
}
return MethodsAvailable;
}
function removeFilter(filter, callback){
if('string'===typeof filter){
_removeHook('filters', filter, callback);
}
return MethodsAvailable;
}
MethodsAvailable={
removeFilter,
applyFilters,
addFilter,
removeAction,
doAction,
addAction
};
return MethodsAvailable;
};
module.exports=EventManager;
}),
"../core/common/assets/js/utils/environment.js":
((__unused_webpack_module, exports)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
const matchUserAgent=UserAgentStr=> {
return userAgent.indexOf(UserAgentStr) >=0;
},
userAgent=navigator.userAgent,
isOpera = !!window.opr&&!!opr.addons||!!window.opera||matchUserAgent(' OPR/'),
isFirefox=matchUserAgent('Firefox'),
isSafari=/^((?!chrome|android).)*safari/i.test(userAgent)||/constructor/i.test(window.HTMLElement)||(p=> {
return '[object SafariRemoteNotification]'===p.toString();
})(!window.safari||typeof safari!=='undefined'&&safari.pushNotification),
isIE=/Trident|MSIE/.test(userAgent)&&( false||!!document.documentMode),
isEdge = !isIE&&!!window.StyleMedia||matchUserAgent('Edg'),
isChrome = !!window.chrome&&matchUserAgent('Chrome')&&!(isEdge||isOpera),
isBlink=matchUserAgent('Chrome')&&!!window.CSS,
isAppleWebkit=matchUserAgent('AppleWebKit')&&!isBlink,
isTouchDevice='ontouchstart' in window||navigator.maxTouchPoints > 0||navigator.msMaxTouchPoints > 0,
environment={
isTouchDevice,
appleWebkit: isAppleWebkit,
blink: isBlink,
chrome: isChrome,
edge: isEdge,
firefox: isFirefox,
ie: isIE,
mac: matchUserAgent('Macintosh'),
opera: isOpera,
safari: isSafari,
webkit: matchUserAgent('AppleWebKit')
};
var _default=exports["default"]=environment;
}),
"../core/common/assets/js/utils/storage.js":
((__unused_webpack_module, exports, __webpack_require__)=> {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"]=void 0;
__webpack_require__( "../node_modules/core-js/modules/esnext.iterator.constructor.js");
__webpack_require__( "../node_modules/core-js/modules/esnext.iterator.for-each.js");
class _default extends elementorModules.Module {
get(key, options){
options=options||{};
let storage;
try {
storage=options.session ? sessionStorage:localStorage;
} catch (e){
return key ? undefined:{};}
let elementorStorage=storage.getItem('elementor');
if(elementorStorage){
elementorStorage=JSON.parse(elementorStorage);
}else{
elementorStorage={};}
if(!elementorStorage.__expiration){
elementorStorage.__expiration={};}
const expiration=elementorStorage.__expiration;
let expirationToCheck=[];
if(key){
if(expiration[key]){
expirationToCheck=[key];
}}else{
expirationToCheck=Object.keys(expiration);
}
let entryExpired=false;
expirationToCheck.forEach(expirationKey=> {
if(new Date(expiration[expirationKey]) < new Date()){
delete elementorStorage[expirationKey];
delete expiration[expirationKey];
entryExpired=true;
}});
if(entryExpired){
this.save(elementorStorage, options.session);
}
if(key){
return elementorStorage[key];
}
return elementorStorage;
}
set(key, value, options){
options=options||{};
const elementorStorage=this.get(null, options);
elementorStorage[key]=value;
if(options.lifetimeInSeconds){
const date=new Date();
date.setTime(date.getTime() + options.lifetimeInSeconds * 1000);
elementorStorage.__expiration[key]=date.getTime();
}
this.save(elementorStorage, options.session);
}
save(object, session){
let storage;
try {
storage=session ? sessionStorage:localStorage;
} catch (e){
return;
}
storage.setItem('elementor', JSON.stringify(object));
}}
exports["default"]=_default;
}),
"../modules/shapes/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('text-path', ()=> Promise.all([__webpack_require__.e("vendors-node_modules_dompurify_dist_purify_cjs_js"), __webpack_require__.e("text-path")]).then(__webpack_require__.bind(__webpack_require__,  "../modules/shapes/assets/js/frontend/handlers/text-path.js")));
}}
exports["default"]=_default;
}),
"../node_modules/core-js/internals/a-possible-prototype.js":
((module, __unused_webpack_exports, __webpack_require__)=> {
var isPossiblePrototype=__webpack_require__( "../node_modules/core-js/internals/is-possible-prototype.js");
var $String=String;
var $TypeError=TypeError;
module.exports=function (argument){
if(isPossiblePrototype(argument)) return argument;
throw new $TypeError("Can't set " + $String(argument) + ' as a prototype');
};
}),
"../node_modules/core-js/internals/dom-exception-constants.js":
((module)=> {
module.exports={
IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 },
DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 },
HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 },
WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 },
InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 },
NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 },
NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 },
NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 },
NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 },
InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 },
InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 },
SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 },
InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 },
NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 },
InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 },
ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 },
TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 },
SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 },
NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 },
AbortError: { s: 'ABORT_ERR', c: 20, m: 1 },
URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 },
QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 },
TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 },
InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 },
DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 }};
}),
"../node_modules/core-js/internals/error-stack-clear.js":
((module, __unused_webpack_exports, __webpack_require__)=> {
var uncurryThis=__webpack_require__( "../node_modules/core-js/internals/function-uncurry-this.js");
var $Error=Error;
var replace=uncurryThis(''.replace);
var TEST=(function (arg){ return String(new $Error(arg).stack); })('zxcasd');
var V8_OR_CHAKRA_STACK_ENTRY=/\n\s*at [^:]*:[^\n]*/;
var IS_V8_OR_CHAKRA_STACK=V8_OR_CHAKRA_STACK_ENTRY.test(TEST);
module.exports=function (stack, dropEntries){
if(IS_V8_OR_CHAKRA_STACK&&typeof stack=='string'&&!$Error.prepareStackTrace){
while (dropEntries--) stack=replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');
} return stack;
};
}),
"../node_modules/core-js/internals/function-uncurry-this-accessor.js":
((module, __unused_webpack_exports, __webpack_require__)=> {
var uncurryThis=__webpack_require__( "../node_modules/core-js/internals/function-uncurry-this.js");
var aCallable=__webpack_require__( "../node_modules/core-js/internals/a-callable.js");
module.exports=function (object, key, method){
try {
return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));
} catch (error){  }};
}),
"../node_modules/core-js/internals/inherit-if-required.js":
((module, __unused_webpack_exports, __webpack_require__)=> {
var isCallable=__webpack_require__( "../node_modules/core-js/internals/is-callable.js");
var isObject=__webpack_require__( "../node_modules/core-js/internals/is-object.js");
var setPrototypeOf=__webpack_require__( "../node_modules/core-js/internals/object-set-prototype-of.js");
module.exports=function ($this, dummy, Wrapper){
var NewTarget, NewTargetPrototype;
if(setPrototypeOf &&
isCallable(NewTarget=dummy.constructor) &&
NewTarget!==Wrapper &&
isObject(NewTargetPrototype=NewTarget.prototype) &&
NewTargetPrototype!==Wrapper.prototype
) setPrototypeOf($this, NewTargetPrototype);
return $this;
};
}),
"../node_modules/core-js/internals/is-possible-prototype.js":
((module, __unused_webpack_exports, __webpack_require__)=> {
var isObject=__webpack_require__( "../node_modules/core-js/internals/is-object.js");
module.exports=function (argument){
return isObject(argument)||argument===null;
};
}),
"../node_modules/core-js/internals/normalize-string-argument.js":
((module, __unused_webpack_exports, __webpack_require__)=> {
var toString=__webpack_require__( "../node_modules/core-js/internals/to-string.js");
module.exports=function (argument, $default){
return argument===undefined ? arguments.length < 2 ? '':$default:toString(argument);
};
}),
"../node_modules/core-js/internals/object-set-prototype-of.js":
((module, __unused_webpack_exports, __webpack_require__)=> {
var uncurryThisAccessor=__webpack_require__( "../node_modules/core-js/internals/function-uncurry-this-accessor.js");
var isObject=__webpack_require__( "../node_modules/core-js/internals/is-object.js");
var requireObjectCoercible=__webpack_require__( "../node_modules/core-js/internals/require-object-coercible.js");
var aPossiblePrototype=__webpack_require__( "../node_modules/core-js/internals/a-possible-prototype.js");
module.exports=Object.setPrototypeOf||('__proto__' in {} ? function (){
var CORRECT_SETTER=false;
var test={};
var setter;
try {
setter=uncurryThisAccessor(Object.prototype, '__proto__', 'set');
setter(test, []);
CORRECT_SETTER=test instanceof Array;
} catch (error){  }
return function setPrototypeOf(O, proto){
requireObjectCoercible(O);
aPossiblePrototype(proto);
if(!isObject(O)) return O;
if(CORRECT_SETTER) setter(O, proto);
else O.__proto__=proto;
return O;
};}():undefined);
}),
"../node_modules/core-js/internals/to-string.js":
((module, __unused_webpack_exports, __webpack_require__)=> {
var classof=__webpack_require__( "../node_modules/core-js/internals/classof.js");
var $String=String;
module.exports=function (argument){
if(classof(argument)==='Symbol') throw new TypeError('Cannot convert a Symbol value to a string');
return $String(argument);
};
}),
"../node_modules/core-js/modules/web.dom-exception.stack.js":
((__unused_webpack_module, __unused_webpack_exports, __webpack_require__)=> {
var $=__webpack_require__( "../node_modules/core-js/internals/export.js");
var globalThis=__webpack_require__( "../node_modules/core-js/internals/global-this.js");
var getBuiltIn=__webpack_require__( "../node_modules/core-js/internals/get-built-in.js");
var createPropertyDescriptor=__webpack_require__( "../node_modules/core-js/internals/create-property-descriptor.js");
var defineProperty=(__webpack_require__( "../node_modules/core-js/internals/object-define-property.js").f);
var hasOwn=__webpack_require__( "../node_modules/core-js/internals/has-own-property.js");
var anInstance=__webpack_require__( "../node_modules/core-js/internals/an-instance.js");
var inheritIfRequired=__webpack_require__( "../node_modules/core-js/internals/inherit-if-required.js");
var normalizeStringArgument=__webpack_require__( "../node_modules/core-js/internals/normalize-string-argument.js");
var DOMExceptionConstants=__webpack_require__( "../node_modules/core-js/internals/dom-exception-constants.js");
var clearErrorStack=__webpack_require__( "../node_modules/core-js/internals/error-stack-clear.js");
var DESCRIPTORS=__webpack_require__( "../node_modules/core-js/internals/descriptors.js");
var IS_PURE=__webpack_require__( "../node_modules/core-js/internals/is-pure.js");
var DOM_EXCEPTION='DOMException';
var Error=getBuiltIn('Error');
var NativeDOMException=getBuiltIn(DOM_EXCEPTION);
var $DOMException=function DOMException(){
anInstance(this, DOMExceptionPrototype);
var argumentsLength=arguments.length;
var message=normalizeStringArgument(argumentsLength < 1 ? undefined:arguments[0]);
var name=normalizeStringArgument(argumentsLength < 2 ? undefined:arguments[1], 'Error');
var that=new NativeDOMException(message, name);
var error=new Error(message);
error.name=DOM_EXCEPTION;
defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));
inheritIfRequired(that, this, $DOMException);
return that;
};
var DOMExceptionPrototype=$DOMException.prototype=NativeDOMException.prototype;
var ERROR_HAS_STACK='stack' in new Error(DOM_EXCEPTION);
var DOM_EXCEPTION_HAS_STACK='stack' in new NativeDOMException(1, 2);
var descriptor=NativeDOMException&&DESCRIPTORS&&Object.getOwnPropertyDescriptor(globalThis, DOM_EXCEPTION);
var BUGGY_DESCRIPTOR = !!descriptor&&!(descriptor.writable&&descriptor.configurable);
var FORCED_CONSTRUCTOR=ERROR_HAS_STACK&&!BUGGY_DESCRIPTOR&&!DOM_EXCEPTION_HAS_STACK;
$({ global: true, constructor: true, forced: IS_PURE||FORCED_CONSTRUCTOR }, {
DOMException: FORCED_CONSTRUCTOR ? $DOMException:NativeDOMException
});
var PolyfilledDOMException=getBuiltIn(DOM_EXCEPTION);
var PolyfilledDOMExceptionPrototype=PolyfilledDOMException.prototype;
if(PolyfilledDOMExceptionPrototype.constructor!==PolyfilledDOMException){
if(!IS_PURE){
defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException));
}
for (var key in DOMExceptionConstants) if(hasOwn(DOMExceptionConstants, key)){
var constant=DOMExceptionConstants[key];
var constantName=constant.s;
if(!hasOwn(PolyfilledDOMException, constantName)){
defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c));
}}
}
})
},
__webpack_require__=> {
var __webpack_exec__=(moduleId)=> (__webpack_require__(__webpack_require__.s=moduleId))
__webpack_require__.O(0, ["frontend-modules"], ()=> (__webpack_exec__("../assets/dev/js/frontend/frontend.js")));
var __webpack_exports__=__webpack_require__.O();
}
]);