( function( $ ) {//TODO: manage comments "use strict"; var panelMutationObserver = new MutationObserver(function(mutations) { // Prevent Bubble up on Section Click $('.elementor-control-type-section').on( 'click', function( event ) { var current = $(this), attrClass = current.attr( 'class' ), firstIndex = attrClass.indexOf( 'elementor-control-section_' ), lastIndex = attrClass.indexOf( 'elementor-control-type-section' ) - 1, sectionClass = attrClass.substring( firstIndex, lastIndex ); setTimeout( function() { if ( $('.'+ sectionClass).length > 0 ) { $( '#elementor-panel-content-wrapper' ).scrollTop( $('.'+ sectionClass).offset().top - 100 ); } }, 10 ); }); // Elementor Search Input if ( $('#elementor-panel-elements-search-input').length ) { var searchTimeout = null; var popupURL = registered_modules.adminURL + 'admin.php?page=wpr-popups'; $('#elementor-panel-elements-search-input').on( 'keyup', function(e) { if ( e.which === 13 ) { return false; } if (searchTimeout != null) { clearTimeout(searchTimeout); } searchTimeout = setTimeout(function() { searchTimeout = null; var searchVal = $('#elementor-panel-elements-search-input').val(); let keywords = ["appointment", "book"]; // Keywords to look for // Check if any keyword matches the input let keywordFound = keywords.some(function(keyword) { return keyword.includes(searchVal) || searchVal.includes(keyword); }); // If a keyword is found and the div doesn't already exist if ((keywordFound && searchVal !== '') && $('.wpr-elementor-search-notice').length < 1 ) { // Append the new div let infoBox = `
Looking for Booking Solution? Check out the Video Tutorial.
`; $('#elementor-panel-elements-wrapper').prepend(infoBox); } if ( searchVal.includes('par') && $('.wpr-elementor-search-notice').length < 1 ) { $('#elementor-panel-elements-wrapper').prepend('\
\ Parallax Background is only available for the Container (Section) elements. Edit any container (section) > "Styles" tab > "Parallax - Royal Addons".\
\ '); } if ( searchVal.includes('stic') && $('.wpr-elementor-search-notice').length < 1 ) { $('#elementor-panel-elements-wrapper').prepend('\
\ Sticky Section is only available for the Container (Section) elements. Edit any container (section) > "Advanced" tab > "Sticky Section - Royal Addons".\
\ '); } if ( searchVal.includes('cart') && $('.wpr-elementor-search-notice').length < 1 && !registered_modules.isWooCommerceActive ) { $('#elementor-panel-elements-wrapper').prepend('\
\ Please Install/Activate WooCommerce in order to use REA WOO Widgets.\
\ '); } if ( searchVal.includes('pop') && $('.wpr-elementor-search-notice').length < 1 ) { $('#elementor-panel-elements-wrapper').prepend('\
\ In Order to Create Popups go to Dashboard > Royal Addons > Popup Builder\ or Watch Video Tutorial
\ '); } elementorCommon.ajax.addRequest( 'wpr_elementor_search_data', { data: { search_query: searchVal, }, success: function() { // console.log(searchVal); } }); }, 1000); }); } // Promote Premium Widgets // if ( $('#elementor-panel-category-wpr-widgets').length ) { $('.elementor-element--promotion').on('click', function() { var dialogButton = $('.dialog-button'); if ( $(this).find('.wpr-icon').length ) { dialogButton.hide(); $('.wpr-see-it-in-action').remove(); $('.wpr-see-it-in-action-upgrade').remove(); $('.wpr-upgrade-dynamic-content').remove(); var url = '', upgradeURL = '', upgradeText = 'Ugrade to Pro', dialogueMessage = 'Advanced Filters lets you filter by Colors, Brands, Ratings, Price Range, or any Custom Meta Field. It also supports Custom Post Types (CPT), and you can create dynamic dependent dropdowns for a faster, more intuitive browsing experience.', title = $(this).find('.title').text(); if ( title === 'My Account') { url += 'https://demosites.royal-elementor-addons.com/fashion-v1/my-account-fashion-v1/?ref=rea-plugin-panel-pro-widgets-myacc-seeitinaction'; upgradeURL = 'https://royal-elementor-addons.com/?ref=rea-plugin-panel-pro-widgets-myacc-upgrade-pro#purchasepro'; } else if ( title === 'Woo Category Grid') { url += 'https://demosites.royal-elementor-addons.com/fashion-v1/?ref=rea-plugin-panel-pro-widgets-catgrid-seeitinaction#catgridprev'; upgradeURL = 'https://royal-elementor-addons.com/?ref=rea-plugin-panel-pro-widgets-catgrid-upgrade-pro#purchasepro'; } else if ( title === 'Product Filters') { url += 'https://demosites.royal-elementor-addons.com/fashion-v1/shop-fashion-v1/?ref=rea-plugin-panel-pro-widgets-prodfilters-seeitinaction'; upgradeURL = 'https://royal-elementor-addons.com/?ref=rea-plugin-panel-pro-widgets-prodfilters-upgrade-pro#purchasepro'; } else if ( title === 'Product Breadcrumbs') { url += 'https://demosites.royal-elementor-addons.com/fashion-v1/product/mans-bluish-hoodie/?ref=rea-plugin-panel-pro-widgets-breadcru-seeitinaction'; upgradeURL = 'https://royal-elementor-addons.com/?ref=rea-plugin-panel-pro-widgets-breadcru-upgrade-pro#purchasepro'; } else if ( title === 'Wishlist Button') { url += 'https://demosites.royal-elementor-addons.com/fashion-v2/shop-fashion-v2/?ref=rea-plugin-panel-pro-widgets-wishbutt-seeitinaction'; upgradeURL = 'https://royal-elementor-addons.com/?ref=rea-plugin-panel-pro-widgets-wishbutt-upgrade-expert#purchasepro'; upgradeText = 'Ugrade to Expert'; } else if ( title === 'Mini Wishlist') { url += 'https://demosites.royal-elementor-addons.com/fashion-v2/shop-fashion-v2/?ref=rea-plugin-panel-pro-widgets-miniwish-seeitinaction'; upgradeURL = 'https://royal-elementor-addons.com/?ref=rea-plugin-panel-pro-widgets-miniwish-upgrade-expert#purchasepro'; upgradeText = 'Ugrade to Expert'; } else if ( title === 'Wishlist Table') { url += 'https://demosites.royal-elementor-addons.com/fashion-v2/shop-fashion-v2/?ref=rea-plugin-panel-pro-widgets-wishtable-seeitinaction'; upgradeURL = 'https://royal-elementor-addons.com/?ref=rea-plugin-panel-pro-widgets-wishtable-upgrade-expert#purchasepro'; upgradeText = 'Ugrade to Expert'; } else if ( title === 'Compare Button') { url += 'https://demosites.royal-elementor-addons.com/fashion-v2/shop-fashion-v2/?ref=rea-plugin-panel-pro-widgets-compbutt-seeitinaction'; upgradeURL = 'https://royal-elementor-addons.com/?ref=rea-plugin-panel-pro-widgets-compbutt-upgrade-expert#purchasepro'; upgradeText = 'Ugrade to Expert'; } else if ( title === 'Mini Compare') { url += 'https://demosites.royal-elementor-addons.com/fashion-v2/shop-fashion-v2/?ref=rea-plugin-panel-pro-widgets-minicomp-seeitinaction'; upgradeURL = 'https://royal-elementor-addons.com/?ref=rea-plugin-panel-pro-widgets-minicomp-upgrade-expert#purchasepro'; upgradeText = 'Ugrade to Expert'; } else if ( title === 'Compare Table') { url += 'https://demosites.royal-elementor-addons.com/fashion-v2/shop-fashion-v2/?ref=rea-plugin-panel-pro-widgets-comptable-seeitinaction'; upgradeURL = 'https://royal-elementor-addons.com/?ref=rea-plugin-panel-pro-widgets-comptable-upgrade-expert#purchasepro'; upgradeText = 'Ugrade to Expert'; } else if ( title == 'Post Breadcrumbs') { url += 'https://demosites.royal-elementor-addons.com/construction-v3/2023/04/01/experience-quality-craftsmanship-with-our-construction-team/?ref=rea-plugin-panel-pro-widgets-postbreadcru-seeitinaction'; upgradeURL = 'https://royal-elementor-addons.com/?ref=rea-plugin-panel-pro-widgets-postbreadcru-upgrade-expert#purchasepro'; upgradeText = 'Ugrade to Expert'; } else if ( title == 'Category Grid' ) { url += 'https://demosites.royal-elementor-addons.com/fashion-v1/?ref=rea-plugin-panel-pro-widgets-catgrid-seeitinaction#catgridprev'; upgradeURL = 'https://royal-elementor-addons.com/?ref=rea-plugin-panel-pro-widgets-catgrid-upgrade-expert#purchasepro'; upgradeText = 'Upgrade to Expert'; } else if ( title == 'Custom Field' ) { url += 'https://youtu.be/kE1zmi3fxh8?t=765'; upgradeURL = 'https://royal-elementor-addons.com/?ref=rea-plugin-panel-pro-widgets-customfield-upgrade-expert#purchasepro'; upgradeText = 'Upgrade to Expert'; } else if ( title == 'Advanced Filters' ) { url += 'https://demosites.royal-elementor-addons.com/woo-advanced-filters-preview/preview-links/'; upgradeURL = 'https://royal-elementor-addons.com/?ref=rea-plugin-panel-pro-widgets-advancedfilters-upgrade-expert#purchasepro'; upgradeText = 'Upgrade to Expert'; } if ( !dialogButton.next('a').length ) { dialogButton.after('See it in action'); $('.wpr-see-it-in-action').after(''+ upgradeText +''); } else { $('.wpr-see-it-in-action').attr('href', url); } if ( title == 'Advanced Filters' ) { $('.dialog-message').html( dialogueMessage ); } $('.wpr-see-it-in-action').css({ 'display' : 'block', 'margin-bottom' : '12px' }); $('.wpr-see-it-in-action-upgrade').css({ 'display' : 'block' }); } else { dialogButton.show(); dialogButton.next('a').hide(); } }); // } // Promote Dynamic Tags $('.elementor-control-dynamic-switcher').on('click', function() { $('.wpr-see-it-in-action').remove(); $('.wpr-see-it-in-action-upgrade').remove(); $('.wpr-upgrade-dynamic-content').remove(); let defaultText = 'Create more personalized and dynamic sites by populating data from various sources with dozens of dynamic tags to choose from.'; let customText = '

Dynamic Content functionality is available for Royal Elementor Addons Expert plugin as well as for Elementor Pro plugin. With Royal Elementor Addons Expert Plan you can create Custom Post Types, Custom Taxonomies, add any type of Custom Fields and many other cool features to create Dynamic Websites.'; $('.dialog-buttons-widget .dialog-message').html(''); $('.dialog-buttons-widget .dialog-message').html(defaultText + customText); let dialogButton = $('.dialog-buttons-widget .dialog-button'), url = 'https://royal-elementor-addons.com/?ref=rea-plugin-panel-dynamic-content-banner-upgrade-expert#purchasepro'; dialogButton.text('Upgrade Elementor'); dialogButton.after('
OR
Upgrade Royal Elementor AddonsVideo Tutorial
'); dialogButton.next('a').css('display','block'); }); }); // Listen to Elementor Panel Changes panelMutationObserver.observe($('#elementor-panel')[0], { childList: true, subtree: true, }); // Make our custom css visible in the panel's front-end elementor.hooks.addFilter( 'editor/style/styleText', function( css, context ) { if ( ! context ) { return; } var model = context.model, customCSS = model.get('settings').get('wpr_custom_css'); var selector = '.elementor-element.elementor-element-' + model.get('id'); if ( 'document' === model.get('elType') ) { selector = elementor.config.document.settings.cssWrapperSelector; } if ( customCSS ) { css += customCSS.replace(/selector/g, selector); } return css; }); // Shortcode Widget: Select Template function selectShortcodeTemplate( model, e, select, textarea ) { var shortcode = model.attributes.settings.attributes.shortcode, shortcode = shortcode.replace ( /[^\d.]/g, '' ); if ( shortcode === select.val() ) { return; } // Update Settings model.attributes.settings.attributes.shortcode = '[wpr-template id="'+ select.val() +'"]'; // Update Textarea textarea.val('[wpr-template id="'+ select.val() +'"]'); // Refresh Preview model.renderRemoteServer(); } elementor.hooks.addAction( 'panel/open_editor/widget/wpr-form-builder', function( panel, model, view ) { var $parent = panel.$el.find('#elementor-panel'); var $element = panel.$el.find( '.elementor-repeater-fields' ); var stepObserver = new MutationObserver(function(mutations) { mutations.forEach((mutation) => { // console.log('steps mutation', mutation); if (mutation.type === 'childList') { mutation.addedNodes.forEach((node) => { if (node.nodeType === Node.ELEMENT_NODE) { // Find the child element with the specific class within the node const repeaterFields = node.querySelectorAll('.elementor-repeater-fields'); const childElement = node.querySelectorAll('.elementor-repeater-row-tools'); const childElement2 = node.querySelectorAll('.elementor-repeater-row-controls'); if ( childElement2 ) { let selectElement = []; if ( selectElement.length == 0 ) { childElement2.forEach(function(item) { selectElement.push(item.querySelector('select')); }); } // If the child element exists and the select value is 'step', add the certain class to it if (childElement && selectElement.length > 0) { childElement.forEach(function(item, i) { if ( selectElement[i] && selectElement[i].value == 'step' ) { item.classList.add('wpr-step-editor-bg'); } }); } // model.get('settings').attributes.form_fields.models.forEach(function(thisModel, i) { // if ( thisModel.attributes.field_type == 'step' ) { // $('.elementor-repeater-fields').eq(i).find('.elementor-repeater-row-tools').addClass('wpr-step-editor-bg'); // } // }); // if (selectElement) { // selectElement.forEach(function(item, i) { // item.addEventListener('change', () => { // if (childElement && selectElement) { // if (item.value === 'step') { // childElement[i].classList.add('wpr-step-editor-bg'); // } else { // childElement[i].classList.remove('wpr-step-editor-bg'); // } // } // }); // }); // } } } }); } }); }); stepObserver.observe($('#elementor-panel')[0], { childList: true, subtree: true, }); changeStepBackground(); elementor.channels.editor.on('section:activated', function (sectionName, editor) { // model.get('settings').attributes.form_fields.models.forEach(function(thisModel, i) { // if ( thisModel.attributes.field_type == 'step' ) { // $('.elementor-repeater-fields').eq(i).find('.elementor-repeater-row-tools').addClass('wpr-step-editor-bg'); // } // }); updateDynamicOptions(view); }); function changeStepBackground() { $element.each(function() { if ($(this).find('select').val() == 'step') { $(this).find('.elementor-repeater-row-tools').addClass('wpr-step-editor-bg'); } }); $('#elementor-panel').off('change', 'select').on('change', 'select', function() { if ( $(this).val() == 'step' ) { $(this).closest('.elementor-repeater-row-controls').prev('.elementor-repeater-row-tools').addClass('wpr-step-editor-bg'); } else if ($(this).closest('.elementor-repeater-row-controls').prev('.elementor-repeater-row-tools').hasClass('wpr-step-editor-bg')) { $(this).closest('.elementor-repeater-row-controls').prev('.elementor-repeater-row-tools').removeClass('wpr-step-editor-bg'); } }); } view.listenTo(view.model.get('settings').get('form_fields'), 'add change remove', function (e) { updateDynamicOptions(view); }); function updateDynamicOptions () { var formFieldsModel = view.model.get('settings').get('form_fields'); var emailField = view.model.get('settings').get('email_field'); var firstNameField = view.model.get('settings').get('first_name_field'); var lastNameField = view.model.get('settings').get('last_name_field'); var phoneField = view.model.get('settings').get('phone_field'); var birthdayField = view.model.get('settings').get('birthday_field'); var addressField = view.model.get('settings').get('address_field'); var countryField = view.model.get('settings').get('country_field'); var cityField = view.model.get('settings').get('city_field'); var stateField = view.model.get('settings').get('state_field'); var zipField = view.model.get('settings').get('zip_field'); var emailSelectControl = panel.$el.find('.elementor-control-email_field').find('select[data-setting="email_field"]'); var firstNameSelectControl = panel.$el.find('.elementor-control-first_name_field').find('select[data-setting="first_name_field"]'); var lastNameSelectControl = panel.$el.find('.elementor-control-last_name_field').find('select[data-setting="last_name_field"]'); var phoneSelectControl = panel.$el.find('.elementor-control-phone_field').find('select[data-setting="phone_field"]'); var birthdaySelectControl = panel.$el.find('.elementor-control-birthday_field').find('select[data-setting="birthday_field"]'); var addressSelectControl = panel.$el.find('.elementor-control-address_field').find('select[data-setting="address_field"]'); var countrySelectControl = panel.$el.find('.elementor-control-country_field').find('select[data-setting="country_field"]'); var citySelectControl = panel.$el.find('.elementor-control-city_field').find('select[data-setting="city_field"]'); var stateSelectControl = panel.$el.find('.elementor-control-state_field').find('select[data-setting="state_field"]'); var zipSelectControl = panel.$el.find('.elementor-control-zip_field').find('select[data-setting="zip_field"]'); var selectControls = [emailSelectControl, firstNameSelectControl, lastNameSelectControl, phoneSelectControl, birthdaySelectControl, addressSelectControl, countrySelectControl, citySelectControl, stateSelectControl, zipSelectControl]; var fieldValues = [emailField, firstNameField, lastNameField, phoneField, birthdayField, addressField, countryField, cityField, stateField, zipField]; var options = { 'none': 'None' }; var prevFieldId; formFieldsModel.each(function (field, index) { var fieldLabel = field.get('field_label'); var fieldId = field.get('field_id'); if ( prevFieldId == fieldId ) { $('#elementor-panel').find(':input[value='+ field.attributes._id +']').closest('.elementor-repeater-fields').find(':input[data-setting="field_id"]').val(field.attributes._id); $('#elementor-panel').find(':input[value='+ field.attributes._id +']').closest('.elementor-repeater-fields').find('.wpr-form-field-shortcode').val('id=["'+ field.attributes._id +'"]'); field.attributes.field_id = field.attributes._id; } prevFieldId = fieldId; if ( !fieldId ) { $('#elementor-panel').find(':input[value='+ field.attributes._id +']').closest('.elementor-repeater-fields').find(':input[data-setting="field_id"]').val(field.attributes._id); $('#elementor-panel').find(':input[value='+ field.attributes._id +']').closest('.elementor-repeater-fields').find('.wpr-form-field-shortcode').val('id=["'+ field.attributes._id +'"]'); field.attributes.field_id = field.attributes._id; } options[fieldId] = fieldLabel; }); view.model.setSetting('email_field', _.extend(emailField, { options })); view.model.setSetting('first_name_field', _.extend(firstNameField, { options })); view.model.setSetting('last_name_field', _.extend(lastNameField, { options })); view.model.setSetting('phone_field', _.extend(phoneField, { options })); view.model.setSetting('birthday_field', _.extend(birthdayField, { options })); view.model.setSetting('address_field', _.extend(addressField, { options })); view.model.setSetting('country_field', _.extend(countryField, { options })); view.model.setSetting('city_field', _.extend(cityField, { options })); view.model.setSetting('state_field', _.extend(stateField, { options })); view.model.setSetting('zip_field', _.extend(zipField, { options })); _.each(selectControls, function (control) { control.empty(); }); _.each(options, function (label, value) { _.each(selectControls, function (control, i) { const isSelected = fieldValues[i] === value ? ' selected' : ''; control.append(''); }); }); }; // Change the selector below to match the field_id field in your repeater const customIdFieldSelector = 'input[data-setting="field_id"]'; // Change the selector below to match the shortcode field in your repeater const shortcodeFieldSelector = '.wpr-form-field-shortcode'; // Listen for changes in the field_id field $('#elementor-panel').on('input', customIdFieldSelector, function() { // Get the new field_id value const newCustomId = $(this).val(); // Find the corresponding shortcode field in the same repeater item const $shortcodeField = $(this).closest('.elementor-repeater-fields').find(shortcodeFieldSelector); // Update the shortcode with the new field_id value let updatedShortcode; const currentShortcode = $shortcodeField.val(); const match = currentShortcode.match(/\[id="[^"]*"\]/); if (match) { updatedShortcode = currentShortcode.replace(match[0], `[id="${newCustomId}"]`); } else { updatedShortcode = `[id="${newCustomId}"]`; } // Set the updated shortcode in the shortcode field $shortcodeField.val(updatedShortcode); }); }); elementor.hooks.addAction( 'panel/open_editor/widget/shortcode', function( panel, model, view ) { var $select = panel.$el.find('.elementor-control-type-wpr-ajaxselect2'), $textarea = panel.$el.find('.elementor-control-type-textarea').find('textarea'); // Change $select.on( 'select2:select', function( e ) { selectShortcodeTemplate( model, e, $select, $textarea ); }); // Render panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-type-wpr-ajaxselect2', function(){ $(this).find( 'select' ).on( 'select2:select', function( e ) { selectShortcodeTemplate( model, e, $select, $textarea ); } ); }); } ); // WPR Grid Widget: Select Element (Filter Taxonomies) function filterGridTaxonomies( data, value ) { var options = []; for ( var key in data ) { if ( key !== value ) { for ( var i = 0; i < data[key].length; i++ ) { if ( !data[value].includes(data[key][i]) ) { options.push( '.elementor-control-element_select select option[value="'+ data[key][i] +'"]' ); } } } } // Reset $( 'head' ).find( '#element_select_filter_style' ).remove(); if ( 'related' === value || 'current' === value ) { return; } // Append Styles $( 'head' ).append(''); } // WPR Grid Widget: Post Meta Keys (Filter by Query) function filterGridMetaKeys( data, value ) { var options = []; for ( var key in data ) { if ( key !== value ) { for ( var i = 0; i < data[key].length; i++ ) { options.push( '.select2-results__options li[data-select2-id*="-'+ data[key][i] +'"]' ); } } } // Reset $( 'head' ).find( '#post_meta_keys_filter_style' ).remove(); // Append Styles $( 'head' ).append(''); } // WPR Grid Widget / List style: Element Location function disableListLocation( value ) { // Reset $( 'head' ).find( '#list_element_location_style' ).remove(); if ( 'list' !== value ) { return; } // Append Styles $( 'head' ).append(''); } // Grid elementor.hooks.addAction( 'panel/open_editor/widget/wpr-grid', function( panel, model, view ) { var $querySource = panel.$el.find('.elementor-control-query_source').find( 'select' ), taxonomies = JSON.parse( panel.$el.find('.elementor-control-element_select_filter').find('input').val() ), metaKeys = ''; $.ajax({ type: 'POST', url: ajaxurl, data: { action: 'wpr_get_custom_meta_keys', nonce: registered_modules.nonce }, success: function( response ) { if (response.success) { metaKeys = JSON.parse(response.data); // Open filterGridMetaKeys( metaKeys, $querySource.val() ); } }, error: function( error ) { console.log(error); } }); // Open filterGridTaxonomies( taxonomies, $querySource.val() ); // Change $querySource.on( 'change', function() { filterGridTaxonomies( taxonomies, $(this).val() ); filterGridMetaKeys( metaKeys, $(this).val() ); }); // Render Query Source panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-query_source', function(){ $(this).find( 'select' ).on( 'change', function() { filterGridTaxonomies( taxonomies, $(this).val() ); filterGridMetaKeys( metaKeys, $(this).val() ); } ); }); // GOGA - Render Layout Select (Remove If extra) panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-layout_select', function(){ disableListLocation( $(this).find( 'select' ).val() ); $(this).find( 'select' ).on( 'change', function() { disableListLocation( $(this).val() ); } ); }); // Render Grid Elements panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-grid_elements', function() { // Render Layout Select panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-layout_select', function(){ disableListLocation( $(this).find( 'select' ).val() ); $(this).find( 'select' ).on( 'change', function() { disableListLocation( $(this).val() ); } ); }); $(this).find( '.elementor-control-element_select select' ).on( 'change', function() { var wrapper = $(this).closest( '.elementor-repeater-row-controls' ); if ( 'lightbox' === $(this).val() ) { wrapper.find('.elementor-control-element_location').find( 'select' ).val( 'over' ).trigger( 'change' ); wrapper.find('.elementor-control-element_animation').find( 'select' ).val( 'fade-in' ).trigger( 'change' ); wrapper.find('.elementor-control-element_align_hr').find( 'input' ).eq(1).prop('checked',true).trigger( 'change' ); wrapper.find('.elementor-control-element_lightbox_overlay').find( 'input' ).prop('checked',true).trigger( 'change' ); wrapper.find('.elementor-control-element_extra_icon_pos').find( 'select' ).val( 'before' ).trigger( 'change' ); setTimeout(function() { wrapper.find('.elementor-control-element_extra_icon_pos').addClass( 'elementor-hidden-control' ); }, 100 ); } else { wrapper.find('.elementor-control-element_extra_text_pos').find( 'select' ).val( 'none' ).trigger( 'change' ); wrapper.find('.elementor-control-element_extra_icon_pos').find( 'select' ).val( 'none' ).trigger( 'change' ); wrapper.find('.elementor-control-element_extra_icon_pos').removeClass( 'elementor-hidden-control' ); } } ); }); } ); // Image Grid elementor.hooks.addAction( 'panel/open_editor/widget/wpr-media-grid', function( panel, model, view ) { // Render Grid Elements panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-grid_elements', function() { $(this).find( '.elementor-control-element_select select' ).on( 'change', function() { var wrapper = $(this).closest( '.elementor-repeater-row-controls' ); if ( 'lightbox' === $(this).val() ) { wrapper.find('.elementor-control-element_location').find( 'select' ).val( 'over' ).trigger( 'change' ); wrapper.find('.elementor-control-element_animation').find( 'select' ).val( 'fade-in' ).trigger( 'change' ); wrapper.find('.elementor-control-element_align_hr').find( 'input' ).eq(1).prop('checked',true).trigger( 'change' ); wrapper.find('.elementor-control-element_lightbox_overlay').find( 'input' ).prop('checked',true).trigger( 'change' ); wrapper.find('.elementor-control-element_extra_icon_pos').find( 'select' ).val( 'before' ).trigger( 'change' ); setTimeout(function() { wrapper.find('.elementor-control-element_extra_icon_pos').addClass( 'elementor-hidden-control' ); }, 100 ); } else { wrapper.find('.elementor-control-element_extra_text_pos').find( 'select' ).val( 'none' ).trigger( 'change' ); wrapper.find('.elementor-control-element_extra_icon_pos').find( 'select' ).val( 'none' ).trigger( 'change' ); wrapper.find('.elementor-control-element_extra_icon_pos').removeClass( 'elementor-hidden-control' ); } } ); }); } ); // Instagram Feed elementor.hooks.addAction( 'panel/open_editor/widget/wpr-instagram-feed', function( panel, model, view ) { // Render Layout Select panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-inst_layout_select', function(){ disableListLocation( $(this).find( 'select' ).val() ); $(this).find( 'select' ).on( 'change', function() { disableListLocation( $(this).val() ); } ); }); // Render Grid Elements panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-insta_feed_elements', function() { $(this).find( '.elementor-control-element_select select' ).on( 'change', function() { var wrapper = $(this).closest( '.elementor-repeater-row-controls' ); if ( 'lightbox' === $(this).val() ) { wrapper.find('.elementor-control-element_location').find( 'select' ).val( 'over' ).trigger( 'change' ); wrapper.find('.elementor-control-element_animation').find( 'select' ).val( 'fade-in' ).trigger( 'change' ); wrapper.find('.elementor-control-element_align_hr').find( 'input' ).eq(1).prop('checked',true).trigger( 'change' ); wrapper.find('.elementor-control-element_lightbox_overlay').find( 'input' ).prop('checked',true).trigger( 'change' ); wrapper.find('.elementor-control-element_extra_icon_pos').find( 'select' ).val( 'before' ).trigger( 'change' ); setTimeout(function() { wrapper.find('.elementor-control-element_extra_icon_pos').addClass( 'elementor-hidden-control' ); }, 100 ); } else { wrapper.find('.elementor-control-element_extra_text_pos').find( 'select' ).val( 'none' ).trigger( 'change' ); wrapper.find('.elementor-control-element_extra_icon_pos').find( 'select' ).val( 'none' ).trigger( 'change' ); wrapper.find('.elementor-control-element_extra_icon_pos').removeClass( 'elementor-hidden-control' ); } } ); }); } ); // Woo Grid elementor.hooks.addAction( 'panel/open_editor/widget/wpr-woo-grid', function( panel, model, view ) { // Render Grid Elements panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-grid_elements', function() { $(this).find( '.elementor-control-element_select select' ).on( 'change', function() { var wrapper = $(this).closest( '.elementor-repeater-row-controls' ); if ( 'lightbox' === $(this).val() ) { wrapper.find('.elementor-control-element_location').find( 'select' ).val( 'over' ).trigger( 'change' ); wrapper.find('.elementor-control-element_animation').find( 'select' ).val( 'fade-in' ).trigger( 'change' ); wrapper.find('.elementor-control-element_align_hr').find( 'input' ).eq(1).prop('checked',true).trigger( 'change' ); wrapper.find('.elementor-control-element_lightbox_overlay').find( 'input' ).prop('checked',true).trigger( 'change' ); wrapper.find('.elementor-control-element_extra_icon_pos').find( 'select' ).val( 'before' ).trigger( 'change' ); setTimeout(function() { wrapper.find('.elementor-control-element_extra_icon_pos').addClass( 'elementor-hidden-control' ); }, 100 ); } else { wrapper.find('.elementor-control-element_extra_text_pos').find( 'select' ).val( 'none' ).trigger( 'change' ); wrapper.find('.elementor-control-element_extra_icon_pos').find( 'select' ).val( 'none' ).trigger( 'change' ); wrapper.find('.elementor-control-element_extra_icon_pos').removeClass( 'elementor-hidden-control' ); } } ); }); } ); // Refresh Mega Menu elementor.hooks.addAction( 'panel/open_editor/widget/wpr-mega-menu', function( panel, model, view ) { model.renderRemoteServer(); }); // GOGA - Refresh Countdown check with duke // elementor.hooks.addAction( 'panel/open_editor/widget/wpr-countdown', function( panel, model, view ) { // panel.$el.find('#elementor-controls').on( 'change', '.elementor-control-countdown_type', function() { // elementor.reloadPreview(); // }); // panel.$el.find('#elementor-controls').on( 'change', '.elementor-control-due_date', function() { // elementor.reloadPreview(); // }); // panel.$el.find('#elementor-controls').on( 'change', '.elementor-control-evergreen_hours', function() { // elementor.reloadPreview(); // }); // panel.$el.find('#elementor-controls').on( 'change', '.elementor-control-evergreen_minutes', function() { // elementor.reloadPreview(); // }); // }); // Get Referrer Link var referrer = document.referrer; // Return to Plugin Page if ( '' !== referrer && referrer.indexOf( 'page=wpr-addons' ) > -1 ) { $(window).on( 'load', function() { $('#elementor-panel-header-menu-button').on( 'click', function() { setTimeout(function() { $('.elementor-panel-menu-item-exit-to-dashboard').on( 'click', function() { window.location.href = referrer; }); }, 300); }); }); } // Advanced Slider - TODO: Check if necessary or remove // elementor.hooks.addAction( 'panel/open_editor/widget/wpr-advanced-slider', function( panel, model, view ) { // var elControls = panel.$el, // $select = elControls.find('.elementor-control-slider_content_type').find('select'); // if ( 'custom' !== $select.val() ) { // elControls.find('.elementor-control-slider_items .elementor-repeater-row-controls .elementor-control').addClass('wpr-elementor-hidden-control'); // elControls.find('.elementor-control-slider_content_type').removeClass('wpr-elementor-hidden-control'); // elControls.find('.elementor-control-slider_select_template').removeClass('wpr-elementor-hidden-control'); // } else { // elControls.find('.elementor-control-slider_items .elementor-repeater-row-controls .elementor-control').removeClass('wpr-elementor-hidden-control'); // elControls.find('.elementor-control-slider_select_template').addClass('wpr-elementor-hidden-control'); // } // $select.on( 'change', function() { // if ( 'custom' !== $(this).val() ) { // elControls.find('.elementor-control-slider_items .elementor-repeater-row-controls .elementor-control').addClass('wpr-elementor-hidden-control'); // elControls.find('.elementor-control-slider_content_type').removeClass('wpr-elementor-hidden-control'); // elControls.find('.elementor-control-slider_select_template').removeClass('wpr-elementor-hidden-control'); // } else { // elControls.find('.elementor-control-slider_items .elementor-repeater-row-controls .elementor-control').removeClass('wpr-elementor-hidden-control'); // elControls.find('.elementor-control-slider_select_template').addClass('wpr-elementor-hidden-control'); // } // }); // } ); /*-------------------------------------------------------------- == Widget Preview and Library buttons --------------------------------------------------------------*/ for (const [key, value] of Object.entries(registered_modules)) { elementor.hooks.addAction( 'panel/open_editor/widget/wpr-'+ value[0], function( panel, model, view ) { openPedefinedStyles( panel.$el, view.$el, value[0], value[1], value[2] ); } ); } function openPedefinedStyles( panel, preview, widget, url, filter ) { panel.on( 'click', '.elementor-control-wpr_library_buttons .elementor-control-raw-html div a:first-child', function() { var theme = $(this).data('theme'); $(this).attr('href', url +'?ref=rea-plugin-panel-'+ widget +'-utmtr'+ theme.slice(0,3) +'nkbs'+ theme.slice(3,theme.length) +'-preview'+ filter); }); panel.on( 'click', '.elementor-control-wpr_library_buttons .elementor-control-raw-html div a:last-child', function() { preview.closest('body').find('#wpr-library-btn').attr('data-filter', widget); preview.closest('body').find('#wpr-library-btn').trigger('click'); }); } }( jQuery ) ); ( function( $ ) { 'use strict'; var WprMegaMenuEditor = { activeSection: false, currentElement: false, currentSection: false, prevSection: false, init: function() { elementor.channels.editor.on( 'section:activated', WprMegaMenuEditor.sectionActivated ); }, sectionActivated: function( sectionName, editor ) { let currentElement = WprMegaMenuEditor.currentElement = editor.getOption( 'editedElementView' ) || false; if ( ! currentElement ) { return; } if ( 'wpr-mega-menu' == currentElement.model.get( 'widgetType' ) ) { // if ( 'section_general' === sectionName ) {} // currentElement.model.renderRemoteServer(); } } }; $( window ).on( 'elementor:init', WprMegaMenuEditor.init ); window.WprMegaMenuEditor = WprMegaMenuEditor; }( jQuery ) );