.redux-container-ace_editor { .ace-wrapper { position: static; } .ace_editor { height: 200px; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; } .ace_gutter { z-index: 1 !important; } } (function ( $ ) { 'use strict'; window.InlineShortcodeView_vc_tta_tabs = window.InlineShortcodeView_vc_tta_accordion.extend( { render: function () { window.InlineShortcodeView_vc_tta_tabs.__super__.render.call( this ); _.bindAll( this, 'buildSortableNavigation', 'updateSortingNavigation' ); this.createTabs(); _.defer( this.buildSortableNavigation ); return this; }, createTabs: function () { var models = _.sortBy( vc.shortcodes.where( { parent_id: this.model.get( 'id' ) } ), function ( model ) { return model.get( 'order' ); } ); _.each( models, function ( model ) { this.sectionUpdated( model, true ); }, this ); }, defaultSectionTitle: window.i18nLocale.tab, addIcon: function ( model, html ) { var icon, icon_class, icon_html; if ( 'true' === model.getParam( 'add_icon' ) ) { icon = model.getParam( 'i_icon_' + model.getParam( 'i_type' ) ); if ( !_.isUndefined( icon ) ) { icon_class = 'vc_tta-icon' + ' ' + icon; icon_html = ''; } if ( 'right' === model.getParam( 'i_position' ) ) { html += icon_html; } else { html = icon_html + html; } } return html; }, /** * * @param {Backbone.Model}model */ sectionUpdated: function ( model, justAppend ) { // update build tabs, remove/add check orders and title/target var $tabEl, $navigation, sectionId, html, title, models, index, tabAdded; tabAdded = false; sectionId = model.get( 'id' ); $navigation = this.$el.find( '.vc_tta-tabs-container .vc_tta-tabs-list' ); $tabEl = $navigation.find( '[data-vc-target="[data-model-id=' + sectionId + ']"]' ); title = model.getParam( 'title' ); if ( $tabEl.length ) { html = '' + title + ''; html = this.addIcon( model, html ); $tabEl.html( html ); } else { var $element; html = '' + title + ''; html = this.addIcon( model, html ); $element = $( '
  • ' + html + '
  • ' ); if ( true !== justAppend ) { models = _.pluck( _.sortBy( vc.shortcodes.where( { parent_id: this.model.get( 'id' ) } ), function ( childModel ) { return childModel.get( 'order' ); } ), 'id' ); index = models.indexOf( model.get( 'id' ) ) - 1; if ( index > - 1 && $navigation.find( '[data-vc-tab]:eq(' + index + ')' ).length ) { $element.insertAfter( $navigation.find( '[data-vc-tab]:eq(' + index + ')' ) ); tabAdded = true; } } if ( !tabAdded ) { $element.appendTo( $navigation ); } if ( model.get( 'isActiveSection' ) ) { $element.addClass( this.activeClass ); } } this.buildPagination(); }, getNextTab: function ( $viewTab ) { var lastIndex, viewTabIndex, $nextTab, $navigationSections; $navigationSections = this.$el.find( '.vc_tta-tabs-container .vc_tta-tabs-list' ).children(); lastIndex = $navigationSections.length - 1; // -1 because length starts from 1 viewTabIndex = $viewTab.index(); if ( viewTabIndex !== lastIndex ) { $nextTab = $navigationSections.eq( viewTabIndex + 1 ); } else { // If we are the last tab in in navigation lets make active previous $nextTab = $navigationSections.eq( viewTabIndex - 1 ); } return $nextTab; }, removeSection: function ( modelId ) { var $viewTab, $nextTab, tabIsActive; $viewTab = this.$el.find( '.vc_tta-tabs-container .vc_tta-tabs-list [data-vc-target="[data-model-id=' + modelId + ']"]' ).parent(); tabIsActive = $viewTab.hasClass( this.activeClass ); // Make next tab active if needed if ( tabIsActive ) { $nextTab = this.getNextTab( $viewTab ); vc.frame_window.jQuery( $nextTab ).find( '[data-vc-target]' ).trigger( 'click' ); } // Remove tab from navigation $viewTab.remove(); this.buildPagination(); }, buildSortableNavigation: function () { if ( !vc_user_access().shortcodeEdit( this.model.get( 'shortcode' ) ) ) { return; } // this should be called when new tab added/removed/changed. this.$el.find( '.vc_tta-tabs-container .vc_tta-tabs-list' ).sortable( { items: '.vc_tta-tab', forcePlaceholderSize: true, placeholder: 'vc_tta-tab vc_placeholder-tta-tab', helper: this.renderSortingHelper, start: function ( event, ui ) { ui.placeholder.width( ui.item.width() ); }, over: function ( event, ui ) { ui.placeholder.css( { maxWidth: ui.placeholder.parent().width() } ); ui.placeholder.removeClass( 'vc_hidden-placeholder' ); }, update: this.updateSortingNavigation } ); }, updateSorting: function ( event, ui ) { window.InlineShortcodeView_vc_tta_tabs.__super__.updateSorting.call( this, event, ui ); this.updateTabsPositions( this.getPanelsList() ); }, updateSortingNavigation: function () { var $tabs, self; self = this; $tabs = this.$el.find( '.vc_tta-tabs-list' ); // we are sorting a tabs navigation $tabs.find( '> .vc_tta-tab' ).each( function () { var shortcode, modelId, $li; $li = $( this ).removeAttr( 'style' ); // TODO: Attensiton maybe e need to create method with filter modelId = $li.data( 'vcTargetModelId' ); shortcode = vc.shortcodes.get( modelId ); shortcode.save( { 'order': self.getIndex( $li ) }, { silent: true } ); // now we need to sort panels } ); this.updatePanelsPositions( $tabs ); }, updateTabsPositions: function ( $panels ) { var $tabs, $elements, tabSortableData; $tabs = this.$el.find( '.vc_tta-tabs-list' ); if ( $tabs.length ) { $elements = []; tabSortableData = $panels.sortable( 'toArray', { attribute: 'data-model-id' } ); _.each( tabSortableData, function ( value ) { $elements.push( $tabs.find( '[data-vc-target-model-id="' + value + '"]' ) ); }, this ); $tabs.prepend( $elements ); } this.buildPagination(); }, updatePanelsPositions: function ( $tabs ) { var $elements, tabSortableData, $panels; $panels = this.getPanelsList(); $elements = []; tabSortableData = $tabs.sortable( 'toArray', { attribute: 'data-vc-target-model-id' } ); _.each( tabSortableData, function ( value ) { $elements.push( $panels.find( '[data-model-id="' + value + '"]' ) ); }, this ); $panels.prepend( $elements ); this.buildPagination(); }, renderSortingHelper: function ( event, currentItem ) { var helper, currentItemWidth, currentItemHeight; helper = currentItem; currentItemWidth = currentItem.width() + 1; currentItemHeight = currentItem.height(); helper.width( currentItemWidth ); helper.height( currentItemHeight ); return helper; }, buildPagination: function () { var params; this.removePagination(); // If tap-pos top append: params = this.model.get( 'params' ); if ( !_.isUndefined( params.pagination_style ) && params.pagination_style.length ) { if ( 'top' === params.tab_position ) { this.$el.find( '.vc_tta-panels-container' ).append( this.getPaginationList() ); } else { this.getPaginationList().insertBefore( this.$el.find( '.vc_tta-container .vc_tta-panels' ) ); } } } } ); })( window.jQuery ); /* global redux, wp, redux_custom_fonts_l10, ajaxurl */ (function ( $ ) { 'use strict'; let l10n; let reduxObject; let ajaxDone = false; redux.field_objects = redux.field_objects || {}; redux.field_objects.custom_fonts = redux.field_objects.custom_fonts || {}; redux.field_objects.custom_fonts.init = function ( selector ) { // If no selector is passed, grab one from the HTML. if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-custom_font:visible' ); } // Enum instances of our object. $( selector ).each( function () { const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Init module level code. redux.field_objects.custom_fonts.modInit( el ); } ); }; redux.field_objects.custom_fonts.modInit = function ( el ) { const optName = $( '.redux-ajax-security' ).data( 'opt-name' ); l10n = redux_custom_fonts_l10; if ( undefined === optName ) { reduxObject = redux; } else { reduxObject = redux.optName; } el.find( '.checkbox' ).on( 'click', function () { let val = 0; let checkName; let checkVal; let opVal; checkName = $( this ).attr( 'id' ); if ( 'custom-font-convert' === checkName ) { if ( $( this ).is( ':checked' ) ) { checkVal = ''; opVal = 1; el.find( '.conversion-types' ).removeClass( 'is-disabled' ); } else { checkVal = 'disabled'; opVal = 0.7; el.find( '.conversion-types' ).addClass( 'is-disabled' ); } el.find( '#custom-font-eot,#custom-font-svg,#custom-font-ttf,#custom-font-woff,#custom-font-woff2' ).prop( 'disabled', checkVal ); el.find( '.conversion-types' ).css( 'opacity', opVal ); } if ( $( this ).is( ':checked' ) ) { val = $( this ).parent().find( '.checkbox-check' ).attr( 'data-val' ); } $( this ).parent().find( '.checkbox-check' ).val( val ); redux_change( $( this ) ); } ); // Remove the image button. el.find( '.remove-font' ).off( 'click' ).on( 'click', function () { redux.field_objects.custom_fonts.remove_font( el, $( this ).parents( 'fieldset.redux-field:first' ) ); } ); // Upload media button. el.find( '.media_add_font' ).off().on( 'click', function ( event ) { redux.field_objects.custom_fonts.add_font( el, event, $( this ).parents( 'fieldset.redux-field:first' ) ); } ); el.find( '.fontDelete' ).on( 'click', function ( e ) { let data; const parent = $( this ).parents( 'td:first' ); e.preventDefault(); parent.find( '.spinner' ).show(); data = $( this ).data(); data.action = 'redux_custom_fonts'; data.nonce = $( this ).parents( '.redux-container-custom_font:first' ).find( '.media_add_font' ).attr( 'data-nonce' ); $.post( ajaxurl, data, function ( response ) { let rowCount; response = JSON.parse( response ); if ( response.type && 'success' === response.type ) { rowCount = parent.parents( 'table:first' ).find( 'tr' ).length; if ( 1 === rowCount ) { parent.parents( 'table:first' ).fadeOut().remove(); } else { parent.parents( 'tr:first' ).fadeOut().remove(); } } else { alert( l10n.delete_error + ' ' + response.msg ); parent.find( '.spinner' ).hide(); } } ); return false; } ); }; redux.field_objects.custom_fonts.startTimer = function ( el, status ) { let cur_data; $.ajax( { url: ajaxurl, type: 'POST', data: { action: 'redux_custom_font_timer' }, beforeSend: function () { }, success: function ( data ) { let msg; if ( false === ajaxDone ) { setTimeout( redux.field_objects.custom_fonts.startTimer( el, status ), 500 ); msg = reduxObject.args.please_wait + ': ' + status + '

    ' + data; } else { msg = l10n.complete; data = 'finished'; } if ( '' !== data ) { if ( cur_data !== data ) { $( '.blockUI.blockMsg h2' ).html( msg ); cur_data = data; } } } } ); }; redux.field_objects.custom_fonts.add_font = function ( el, event, selector ) { let frame; event.preventDefault(); // If the media frame already exists, reopen it. if ( frame ) { frame.open(); return; } // Create the media frame. frame = wp.media( { multiple: false, library: { type: ['application', 'font'] // Only allow zip files. }, // Set the title of the modal. title: 'Redux Custom Fonts: ' + l10n.media_title, // Customize the submit button. button: { // Set the text of the button. text: l10n.media_button // Tell the button not to close the modal, since we're // going to refresh the page when the image is selected. } } ); // When an image is selected, run a callback. frame.on( 'select', function () { let nonce; let data; let status; let conversion; // Grab the selected attachment. const attachment = frame.state().get( 'selection' ).first(); const error = selector.find( '.font-error' ); error.slideUp(); error.find( 'span' ).text( '' ); frame.close(); if ( 'application' !== attachment.attributes.type && 'font' !== attachment.attributes.type ) { return; } nonce = $( selector ).find( '.media_add_font' ).attr( 'data-nonce' ); conversion = $( '#custom-font-convert' ).is( ':checked' ); data = { action: 'redux_custom_fonts', nonce: nonce, attachment_id: attachment.id, title: attachment.attributes.title, mime: attachment.attributes.mime, filename: attachment.attributes.filename, conversion: Boolean( conversion ) }; if ( 'application/zip ' === data.mime ) { status = l10n.unzip; } else { status = l10n.convert; } redux.field_objects.custom_fonts.startTimer( el, status ); $.blockUI( { message: '

    ' + reduxObject.args.please_wait + ': ' + status + '

    ' } ); $.post( ajaxurl, data, function ( response ) { console.log( 'Redux Custom Fonts API Response (For support purposes)' ); console.log( response ); response = JSON.parse( response ); if ( 'success' === response.type ) { if ( '' !== response.msg ) { $.unblockUI(); error.find( 'span' ).html( response.msg + ' ' + l10n.partial ); error.slideDown(); ajaxDone = true; return; } window.onbeforeunload = ''; location.reload(); } else if ( 'error' === response.type ) { $.unblockUI(); error.find( 'span' ).html( response.msg ); error.slideDown(); } else { $.unblockUI(); error.find( 'span' ).text( l10n.unknown ); error.slideDown(); } ajaxDone = true; } ); } ); // Finally, open the modal. frame.open(); }; redux.field_objects.custom_fonts.remove_font = function ( el, selector ) { el = null; // This shouldn't have been run... if ( ! selector.find( '.remove-image' ).addClass( 'hide' ) ) { return null; } }; redux.field_objects.custom_fonts.sleep = function ( milliseconds ) { const start = new Date().getTime(); let i; for ( i = 0; i < 1e7; i += 1 ) { if ( ( new Date().getTime() - start ) > milliseconds ) { break; } } }; })( jQuery ); /*! elementor-pro - v3.28.0 - 16-04-2025 */ "use strict";(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[1],{197:(t,e,n)=>{var s=n(6784);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var i=s(n(8562)),o=s(n(8243));class ContactButtonsHandler extends i.default{clicks=[];getDefaultSettings(){return{selectors:{main:".e-contact-buttons",content:".e-contact-buttons__content",contentWrapper:".e-contact-buttons__content-wrapper",chatButton:".e-contact-buttons__chat-button",closeButton:".e-contact-buttons__close-button",messageBubbleTime:".e-contact-buttons__message-bubble-time"},constants:{entranceAnimation:"style_chat_box_entrance_animation",exitAnimation:"style_chat_box_exit_animation",chatButtonAnimation:"style_chat_button_animation",animated:"animated",animatedWrapper:"animated-wrapper",visible:"visible",reverse:"reverse",hidden:"hidden",hasAnimations:"has-animations",hasEntranceAnimation:"has-entrance-animation",none:"none"}}}getDefaultElements(){const t=this.getSettings("selectors");return{main:this.$element[0].querySelector(t.main),content:this.$element[0].querySelector(t.content),contentWrapper:this.$element[0].querySelector(t.contentWrapper),chatButton:this.$element[0].querySelector(t.chatButton),closeButton:this.$element[0].querySelector(t.closeButton),messageBubbleTime:this.$element[0].querySelector(t.messageBubbleTime)}}getResponsiveSetting(t){const e=elementorFrontend.getCurrentDeviceMode();return elementorFrontend.utils.controls.getResponsiveControlValue(this.getElementSettings(),t,"",e)}bindEvents(){this.elements.closeButton&&this.elements.closeButton.addEventListener("click",this.closeChatBox.bind(this)),this.elements.chatButton&&(this.elements.chatButton.addEventListener("click",this.onChatButtonClick.bind(this)),this.elements.chatButton.addEventListener("animationend",this.removeChatButtonAnimationClasses.bind(this))),this.elements.content&&this.elements.content.addEventListener("animationend",this.removeAnimationClasses.bind(this)),this.elements.contentWrapper&&window.addEventListener("keyup",this.onDocumentKeyup.bind(this))}contentWrapperIsHidden(t){if(!this.elements.contentWrapper)return!1;const{hidden:e}=this.getSettings("constants");return!0===t?(this.elements.contentWrapper.classList.add(e),void this.elements.contentWrapper.setAttribute("aria-hidden","true")):!1===t?(this.elements.contentWrapper.classList.remove(e),void this.elements.contentWrapper.setAttribute("aria-hidden","false")):this.elements.contentWrapper.classList.contains(e)}onDocumentKeyup(t){27===t.keyCode&&this.elements.main&&!this.contentWrapperIsHidden()&&this.elements.main.contains(document.activeElement)&&this.closeChatBox()}onChatButtonTrackClick(t){const e=t.target||t.srcElement,n=this.getSettings("selectors"),s=[n.contactButtonsVar4,n.contactButtonsVar6,n.contactButtonCore];for(const t of s)(e.matches(t)||e.closest(t))&&this.getDocumentIdAndTrack(e,n);(e.matches(n.contactButtonsVar5)||e.closest(n.contactButtonsVar5))&&e.closest(".e-contact-buttons-var-5")&&this.getDocumentIdAndTrack(e,n)}getDocumentIdAndTrack(t,e){let n=t.closest(e.main).dataset.documentId;n||(n=t.closest(e.elementorWrapper).dataset.elementorId),this.trackClick(n)}trackClick(t){t&&(this.clicks.push(t),this.clicks.length>=10&&this.sendClicks())}sendClicks(){const t=new FormData;t.append("action","elementor_send_clicks"),t.append("_nonce",elementorFrontendConfig?.nonces?.floatingButtonsClickTracking),this.clicks.forEach((e=>t.append("clicks[]",e))),fetch(elementorFrontendConfig?.urls?.ajaxurl,{method:"POST",body:t}).then((()=>{this.clicks=[]}))}removeAnimationClasses(){if(!this.elements.content)return;const{reverse:t,entranceAnimation:e,exitAnimation:n,animated:s,visible:i}=this.getSettings("constants"),o=this.elements.content.classList.contains(t),a=this.getResponsiveSetting(e),c=this.getResponsiveSetting(n);o?(this.elements.content.classList.remove(s),this.elements.content.classList.remove(t),c&&this.elements.content.classList.remove(c),this.elements.content.classList.remove(i)):(this.elements.content.classList.remove(s),a&&this.elements.content.classList.remove(a),this.elements.content.classList.add(i))}chatBoxEntranceAnimation(){const{entranceAnimation:t,animated:e,animatedWrapper:n,none:s}=this.getSettings("constants"),i=this.getResponsiveSetting(t);i&&s!==i&&(this.elements.content&&(this.elements.content.classList.add(e),this.elements.content.classList.add(i)),this.elements.contentWrapper&&this.elements.contentWrapper.classList.remove(n))}chatBoxExitAnimation(){const{reverse:t,exitAnimation:e,animated:n,animatedWrapper:s,none:i}=this.getSettings("constants"),o=this.getResponsiveSetting(e);o&&i!==o&&(this.elements.content&&(this.elements.content.classList.add(n),this.elements.content.classList.add(t),this.elements.content.classList.add(o)),this.elements.contentWrapper&&this.elements.contentWrapper.classList.add(s))}openChatBox(){const{hasAnimations:t,visible:e}=this.getSettings("constants");this.elements.main&&this.elements.main.classList.contains(t)?this.chatBoxEntranceAnimation():this.elements.content&&this.elements.content.classList.add(e),this.elements.contentWrapper&&(this.contentWrapperIsHidden(!1),elementorFrontend.isEditMode()||(this.elements.contentWrapper.setAttribute("tabindex","0"),this.elements.contentWrapper.focus({focusVisible:!0}))),this.elements.chatButton&&this.elements.chatButton.setAttribute("aria-expanded","true"),this.elements.closeButton&&this.elements.closeButton.setAttribute("aria-expanded","true")}closeChatBox(){const{hasAnimations:t,visible:e}=this.getSettings("constants");this.elements.main&&this.elements.main.classList.contains(t)?this.chatBoxExitAnimation():this.elements.content&&this.elements.content.classList.remove(e),this.elements.contentWrapper&&this.contentWrapperIsHidden(!0),this.elements.chatButton&&(this.elements.chatButton.setAttribute("aria-expanded","false"),this.elements.chatButton.focus({focusVisible:!0})),this.elements.closeButton&&this.elements.closeButton.setAttribute("aria-expanded","false")}onChatButtonClick(){this.elements.contentWrapper&&this.contentWrapperIsHidden()?this.openChatBox():this.closeChatBox()}initMessageBubbleTime(){if(!this.elements.messageBubbleTime)return;const t="12h"===this.elements.messageBubbleTime.dataset.timeFormat,e=new Intl.DateTimeFormat("default",{hour12:t,hour:"numeric",minute:"numeric"}).format(new Date);this.elements.messageBubbleTime.innerHTML=e}removeChatButtonAnimationClasses(){if(!this.elements.chatButton)return;const{chatButtonAnimation:t,visible:e}=this.getSettings("constants");this.elements.chatButton.classList.remove(t),this.elements.chatButton.classList.add(e)}initChatButtonEntranceAnimation(){const{none:t,chatButtonAnimation:e}=this.getSettings("constants"),n=this.getResponsiveSetting(e);n&&t!==n&&this.elements.chatButton.classList.add(n)}initDefaultState(){if(this.elements.contentWrapper){const t=this.contentWrapperIsHidden();this.elements.chatButton&&this.elements.chatButton.setAttribute("aria-expanded",!t),this.elements.closeButton&&this.elements.closeButton.setAttribute("aria-expanded",!t)}elementorFrontend.isEditMode()&&"floating-buttons"===elementor?.config?.document?.type&&this.openChatBox()}setupInnerContainer(){this.elements.main.closest(".e-con-inner").classList.add("e-con-inner--floating-buttons")}onInit(){const{hasEntranceAnimation:t}=this.getSettings("constants");super.onInit(...arguments),this.clickTrackingHandler=new o.default({$element:this.$element}),this.elements.messageBubbleTime&&this.initMessageBubbleTime(),this.initDefaultState(),this.elements.chatButton&&this.elements.chatButton.classList.contains(t)&&this.initChatButtonEntranceAnimation(),this.setupInnerContainer()}}e.default=ContactButtonsHandler},8243:(t,e,n)=>{var s=n(6784);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var i=s(n(8562));class ClickTrackingHandler extends i.default{clicks=[];getDefaultSettings(){return{selectors:{contentWrapper:".e-contact-buttons__content-wrapper",contentWrapperFloatingBars:".e-floating-bars",floatingBarCouponButton:".e-floating-bars__coupon-button",floatingBarsHeadline:".e-floating-bars__headline",contactButtonsVar4:".e-contact-buttons__contact-icon-link",contactButtonsVar5:".e-contact-buttons__chat-button",contactButtonsVar6:".e-contact-buttons-var-6",contactButtonsVar8:".e-contact-buttons-var-8",elementorWrapper:'[data-elementor-type="floating-buttons"]',contactButtonCore:".e-contact-buttons__send-button"}}}getDefaultElements(){const t=this.getSettings("selectors");return{contentWrapper:this.$element[0].querySelector(t.contentWrapper),contentWrapperFloatingBars:this.$element[0].querySelector(t.contentWrapperFloatingBars),contactButtonsVar5:this.$element[0].querySelector(t.contactButtonsVar5),contactButtonsVar6:this.$element[0].querySelector(t.contactButtonsVar6)}}bindEvents(){this.elements.contentWrapper&&this.elements.contentWrapper.addEventListener("click",this.onChatButtonTrackClick.bind(this)),this.elements.contactButtonsVar5&&this.elements.contactButtonsVar5.addEventListener("click",this.onChatButtonTrackClick.bind(this)),this.elements.contactButtonsVar6&&this.elements.contactButtonsVar6.addEventListener("click",this.onChatButtonTrackClick.bind(this)),this.elements.contentWrapperFloatingBars&&this.elements.contentWrapperFloatingBars.addEventListener("click",this.onChatButtonTrackClick.bind(this)),window.addEventListener("beforeunload",(()=>{this.clicks.length>0&&this.sendClicks()}))}onChatButtonTrackClick(t){const e=t.target||t.srcElement,n=this.getSettings("selectors"),s=[n.contactButtonsVar4,n.contactButtonsVar6,n.floatingBarCouponButton,n.floatingBarsHeadline,n.contactButtonCore];for(const t of s)(e.matches(t)||e.closest(t))&&this.getDocumentIdAndTrack(e,n);(e.matches(n.contactButtonsVar5)||e.closest(n.contactButtonsVar5))&&e.closest(".e-contact-buttons-var-5")&&this.getDocumentIdAndTrack(e,n)}getDocumentIdAndTrack(t,e){const n=t.closest(e.elementorWrapper).dataset.elementorId;this.trackClick(n)}trackClick(t){t&&(this.clicks.push(t),this.clicks.length>=10&&this.sendClicks())}sendClicks(){const t=new FormData;t.append("action","elementor_send_clicks"),t.append("_nonce",elementorFrontendConfig?.nonces?.floatingButtonsClickTracking),this.clicks.forEach((e=>t.append("clicks[]",e))),fetch(elementorFrontendConfig?.urls?.ajaxurl,{method:"POST",body:t}).then((()=>{this.clicks=[]}))}}e.default=ClickTrackingHandler},8562:t=>{t.exports=elementorModules.ViewModule.extend({$element:null,editorListeners:null,onElementChange:null,onEditSettingsChange:null,onPageSettingsChange:null,isEdit:null,__construct(t){this.isActive(t)&&(this.$element=t.$element,this.isEdit=this.$element.hasClass("elementor-element-edit-mode"),this.isEdit&&this.addEditorListeners())},isActive:()=>!0,isElementInTheCurrentDocument(){return!!elementorFrontend.isEditMode()&&elementor.documents.currentDocument.id.toString()===this.$element[0].closest(".elementor").dataset.elementorId},findElement(t){var e=this.$element;return e.find(t).filter((function(){return jQuery(this).parent().closest(".elementor-element").is(e)}))},getUniqueHandlerID(t,e){return t||(t=this.getModelCID()),e||(e=this.$element),t+e.attr("data-element_type")+this.getConstructorID()},initEditorListeners(){var t=this;if(t.editorListeners=[{event:"element:destroy",to:elementor.channels.data,callback(e){e.cid===t.getModelCID()&&t.onDestroy()}}],t.onElementChange){const e=t.getWidgetType()||t.getElementType();let n="change";"global"!==e&&(n+=":"+e),t.editorListeners.push({event:n,to:elementor.channels.editor,callback(e,n){t.getUniqueHandlerID(n.model.cid,n.$el)===t.getUniqueHandlerID()&&t.onElementChange(e.model.get("name"),e,n)}})}t.onEditSettingsChange&&t.editorListeners.push({event:"change:editSettings",to:elementor.channels.editor,callback(e,n){if(n.model.cid!==t.getModelCID())return;const s=Object.keys(e.changed)[0];t.onEditSettingsChange(s,e.changed[s])}}),["page"].forEach((function(e){var n="on"+e[0].toUpperCase()+e.slice(1)+"SettingsChange";t[n]&&t.editorListeners.push({event:"change",to:elementor.settings[e].model,callback(e){t[n](e.changed)}})}))},getEditorListeners(){return this.editorListeners||this.initEditorListeners(),this.editorListeners},addEditorListeners(){var t=this.getUniqueHandlerID();this.getEditorListeners().forEach((function(e){elementorFrontend.addListenerOnce(t,e.event,e.callback,e.to)}))},removeEditorListeners(){var t=this.getUniqueHandlerID();this.getEditorListeners().forEach((function(e){elementorFrontend.removeListeners(t,e.event,null,e.to)}))},getElementType(){return this.$element.data("element_type")},getWidgetType(){const t=this.$element.data("widget_type");if(t)return t.split(".")[0]},getID(){return this.$element.data("id")},getModelCID(){return this.$element.data("model-cid")},getElementSettings(t){let e={};const n=this.getModelCID();if(this.isEdit&&n){const t=elementorFrontend.config.elements.data[n],s=t.attributes;let i=s.widgetType||s.elType;s.isInner&&(i="inner-"+i);let o=elementorFrontend.config.elements.keys[i];o||(o=elementorFrontend.config.elements.keys[i]=[],jQuery.each(t.controls,((t,e)=>{(e.frontend_available||e.editor_available)&&o.push(t)}))),jQuery.each(t.getActiveControls(),(function(t){if(-1!==o.indexOf(t)){let n=s[t];n.toJSON&&(n=n.toJSON()),e[t]=n}}))}else e=this.$element.data("settings")||{};return this.getItems(e,t)},getEditSettings(t){var e={};return this.isEdit&&(e=elementorFrontend.config.elements.editSettings[this.getModelCID()].attributes),this.getItems(e,t)},getCurrentDeviceSetting(t){return elementorFrontend.getCurrentDeviceSetting(this.getElementSettings(),t)},onInit(){this.isActive(this.getSettings())&&elementorModules.ViewModule.prototype.onInit.apply(this,arguments)},onDestroy(){this.isEdit&&this.removeEditorListeners(),this.unbindEvents&&this.unbindEvents()}})}}]); Spells The Magic - Powerful Magic Spells To Manifest Your Desires

    Using Music and Sound in Spellcasting: From Drums to Singing Bowls

    Music and Sound in Spellcasting: Throughout history, music and sound have played a pivotal role in spiritual and mystical practices, including spellcasting. The use of sound in these rituals is…

    Healing Magic: Spells for Trauma and Emotional Recovery

    Healing magic, an ancient practice rooted in various cultural and historical contexts, has long been revered as a potent tool for personal transformation and recovery. This mystical art encompasses a…

    Magical Journaling: Documenting Your Spellcasting Journey

    Magical journaling is a practice deeply interwoven with the art of spellcasting, serving as both a personal record and a reflective tool. This ancient tradition holds significant importance, as it…

    Preparing for Spellcasting: Grounding, Centering, and Cleansing Techniques

    Spellcasting, an intricate practice rooted in various magical traditions, requires more than just knowledge of spells and rituals. Effective spellcasting hinges on meticulous preparation, making it essential for practitioners to…

    The Influence of Mythology and Folklore on Modern Spellcasting

    Mythology and folklore are fundamental components of human culture, serving as a repository of stories, beliefs, and rituals that have been passed down through generations. These ancient narratives are not…

    Group Spellcasting: The Dynamics and Power of Coven Work

    Group spellcasting, often conducted within the framework of a coven, is an ancient practice that has been known to amplify the power and effectiveness of magical workings. A coven, traditionally…

    Sigils and Symbols: Creating and Using Magical Glyphs in Spells

    Sigils and symbols have long been integral components in the practice of various magical traditions. These visual representations serve as potent tools for focusing and directing magical intent, enabling practitioners…

    Magical Familiars: The Role of Animals in Spellwork

    Magical familiars have long been a cornerstone of various traditions in spellwork and witchcraft. These mystical companions, often depicted as animals, are believed to be more than mere pets; they…

    Astrology and Magic: Integrating Horoscopes and Spellcasting

    Astrology and magic have captivated human imagination for centuries, providing a lens through which individuals can understand the world and their place within it. These practices, though distinct, share a…

    The Intersection of Magic and Mental Health: Spells for Anxiety, Depression, and More

    The intersection of magic and mental health is a fascinating and evolving field, where ancient traditions meet modern psychological practices. Historically, magic has been employed in various cultures as a…

    Spellcasting for Environmental Activism: Eco-Magic to Protect the Planet

    Eco-magic represents a fascinating intersection between environmental activism and spiritual practices, offering a unique approach to addressing ecological challenges. Rooted in ancient traditions, eco-magic involves using rituals, spells, and other…

    Reversing and Undoing Spells: When and How to Take Back Magic

    Reversing and undoing spells is an integral aspect of magical practice that requires careful consideration and understanding. The concept of spell reversal involves the deliberate act of nullifying or counteracting…