From 5b84916bdbe2caeec7f6c4d09dcc7d7a6a7fdc3f Mon Sep 17 00:00:00 2001 From: Sherv Date: Wed, 25 Feb 2026 19:07:45 +0300 Subject: [PATCH 01/34] format: run lint:fix --- js/admin/applications.js | 10 +- js/admin/deactivation-feedback.js | 7 +- js/admin/dom.js | 44 +- js/admin/embed.js | 18 +- js/admin/legacy-views.js | 48 +- js/admin/settings.js | 2 +- js/admin/style.js | 30 +- js/formidable.js | 200 ++- js/formidable_admin_global.js | 67 +- .../floating-links/s11-floating-links.js | 2 +- js/plugin-search.js | 10 +- js/src/addons-page/elements/elements.js | 2 +- js/src/admin/addon-state.js | 4 +- js/src/admin/admin.js | 1562 +++++++++-------- js/src/admin/upgrade-popup.js | 12 +- js/src/common/components/icon.js | 2 +- js/src/common/components/radio.js | 2 +- js/src/components/class-overlay.js | 2 +- js/src/components/class-tabs-navigator.js | 2 +- js/src/core/utils/animation.js | 2 +- js/src/form/block.js | 2 +- js/src/form/calculator.js | 4 +- js/src/form/graph.js | 2 +- js/src/form/inspector.js | 2 +- js/src/form/modal.js | 4 +- js/src/form/views.js | 4 +- js/src/frm_testing_mode.js | 2 +- .../components/slider-component.js | 4 +- square/js/frontend.js | 8 +- square/js/settings.js | 2 +- stripe/js/connect_settings.js | 2 +- stripe/js/frmstrp.js | 78 +- stripe/js/frmtrans_admin.js | 8 +- .../e2e/Forms/formPageDataValidation.cy.js | 4 +- tests/cypress/e2e/Forms/formsSettings.cy.js | 4 +- tests/cypress/e2e/admin.cy.js | 4 +- tests/cypress/e2e/validate-css.cy.js | 6 +- 37 files changed, 1206 insertions(+), 962 deletions(-) diff --git a/js/admin/applications.js b/js/admin/applications.js index d9c4200cc1..4ab78ed066 100644 --- a/js/admin/applications.js +++ b/js/admin/applications.js @@ -109,7 +109,7 @@ div( { className: 'frm10 frm_clearfix', children: [ - img( { src: getUrlToApplicationsImages() + 'folder.svg' } ), + img( { src: `${ getUrlToApplicationsImages() }folder.svg` } ), tag( 'h3', __( 'Improve your workflow with applications', 'formidable' ) ), div( __( 'Applications help to organize your workspace by combining forms, Views, and pages into a full solution.', 'formidable' ) ), ] @@ -129,7 +129,7 @@ } function getUrlToApplicationsImages() { - return frmGlobal.url + '/images/applications/'; + return `${ frmGlobal.url }/images/applications/`; } function renderFormidableTemplates( contentWrapper, templates ) { @@ -327,7 +327,7 @@ } function getCardContent() { - const thumbnailFolderUrl = getUrlToApplicationsImages() + 'thumbnails/'; + const thumbnailFolderUrl = `${ getUrlToApplicationsImages() }thumbnails/`; const filenameToUse = data.hasLiteThumbnail ? data.key + ( data.isWebp ? '.webp' : '.png' ) : 'placeholder.svg'; return div( { className: 'frm-application-card-image-wrapper', @@ -368,7 +368,7 @@ const descriptor = '1' === countValue ? singularDescriptor : pluralDescriptor; counter.append( - span( countValue + ' ' + descriptor ) + span( `${ countValue } ${ descriptor }` ) ); } @@ -439,7 +439,7 @@ ); } - const placeholderImage = img( { src: getUrlToApplicationsImages() + 'placeholder.png' } ); + const placeholderImage = img( { src: `${ getUrlToApplicationsImages() }placeholder.png` } ); if ( placeholderImage.complete ) { setTimeout( maybeCenterViewApplicationModal, 0 ); } else { diff --git a/js/admin/deactivation-feedback.js b/js/admin/deactivation-feedback.js index 32235c2117..26e6740592 100644 --- a/js/admin/deactivation-feedback.js +++ b/js/admin/deactivation-feedback.js @@ -3,7 +3,8 @@ const selectors = 'tr[data-slug="formidable"] .deactivate a, tr[data-slug="formidable-pro"] .deactivate a, tr[data-slug="formidable-forms-pro"] .deactivate a'; - let deactivationModal, deactivationUrl; + let deactivationModal; + let deactivationUrl; const Modal = { init( id, width ) { @@ -79,11 +80,11 @@ ); } - deactivationUrl = event.target.href + '&frm_feedback_submitted=1'; + deactivationUrl = `${ event.target.href }&frm_feedback_submitted=1`; const pluginSlug = event.target.closest( 'tr' ).dataset.slug; - const url = 'https://feedback.strategy11.com/wp-json/frm/v2/forms/deactivation-feedback?plugin_slug=' + pluginSlug + '&site=' + window.location.host + '&return=html&exclude_script=jquery&exclude_style=formidable-css'; + const url = `https://feedback.strategy11.com/wp-json/frm/v2/forms/deactivation-feedback?plugin_slug=${ pluginSlug }&site=${ window.location.host }&return=html&exclude_script=jquery&exclude_style=formidable-css`; const response = fetch( url, { method: 'GET' diff --git a/js/admin/dom.js b/js/admin/dom.js index 72acb0837a..024e20f305 100644 --- a/js/admin/dom.js +++ b/js/admin/dom.js @@ -110,9 +110,9 @@ const ajax = { async doJsonFetch( action ) { - let targetUrl = ajaxurl + '?action=frm_' + action; + let targetUrl = `${ ajaxurl }?action=frm_${ action }`; if ( ! targetUrl.includes( 'nonce=' ) ) { - targetUrl += '&nonce=' + frmGlobal.nonce; + targetUrl += `&nonce=${ frmGlobal.nonce }`; } const response = await fetch( targetUrl ); const json = await response.json(); @@ -130,7 +130,7 @@ if ( signal ) { init.signal = signal; } - const response = await fetch( ajaxurl + '?action=frm_' + action, init ); + const response = await fetch( `${ ajaxurl }?action=frm_${ action }`, init ); const json = await response.json(); if ( ! json.success ) { return Promise.reject( json.data || 'JSON result is not successful' ); @@ -144,8 +144,8 @@ const $select = jQuery( this ); const id = $select.is( '[id]' ) ? $select.attr( 'id' ).replace( '[]', '' ) : false; - let labelledBy = id ? jQuery( '#for_' + id ) : false; - labelledBy = id && labelledBy.length ? 'aria-labelledby="' + labelledBy.attr( 'id' ) + '"' : ''; + let labelledBy = id ? jQuery( `#for_${ id }` ) : false; + labelledBy = id && labelledBy.length ? `aria-labelledby="${ labelledBy.attr( 'id' ) }"` : ''; // Set empty title attributes so that none of the dropdown options include title attributes. $select.find( 'option' ).attr( 'title', ' ' ); @@ -153,7 +153,7 @@ templates: { popupContainer: '', option: '', - button: '' + button: `` }, buttonContainer: '' ); + response.content = response.content.trim().replace( /(<\/div><\/div>)$/, ` ${ response.fallbackMsg }` ); } }; success = function( response ) { - let defaultResponse, formID, replaceContent, pageOrder, formReturned, contSubmit, delay, - $fieldCont, key, inCollapsedSection, frmTrigger; + let defaultResponse; + let formID; + let replaceContent; + let pageOrder; + let formReturned; + let contSubmit; + let delay; + let $fieldCont; + let key; + let inCollapsedSection; + let frmTrigger; defaultResponse = { content: '', @@ -935,7 +953,7 @@ function frmFrontFormJS() { addUrlParam( response ); if ( typeof frmThemeOverride_frmAfterSubmit === 'function' ) { // eslint-disable-line camelcase - const pageOrderInput = document.querySelector( 'input[name="frm_page_order_' + formID + '"]' ); + const pageOrderInput = document.querySelector( `input[name="frm_page_order_${ formID }"]` ); pageOrder = pageOrderInput ? pageOrderInput.value : ''; const tempDiv = document.createElement( 'div' ); tempDiv.innerHTML = response.content; @@ -959,7 +977,7 @@ function frmFrontFormJS() { $fieldCont = null; for ( key in response.errors ) { - const fieldContEl = object.querySelector( '#frm_field_' + key + '_container' ); + const fieldContEl = object.querySelector( `#frm_field_${ key }_container` ); $fieldCont = fieldContEl ? jQuery( fieldContEl ) : jQuery(); if ( $fieldCont.length ) { @@ -1035,7 +1053,9 @@ function frmFrontFormJS() { } function postToAjaxUrl( form, data, success, error ) { - let ajaxUrl, action, ajaxParams; + let ajaxUrl; + let action; + let ajaxParams; ajaxUrl = frm_js.ajax_url; action = form.getAttribute( 'action' ); @@ -1088,16 +1108,16 @@ function frmFrontFormJS() { } function removeAddedScripts( formContainer, formID ) { - const endReplace = document.querySelectorAll( '.frm_end_ajax_' + formID ); + const endReplace = document.querySelectorAll( `.frm_end_ajax_${ formID }` ); if ( endReplace.length ) { - formContainer.nextUntil( '.frm_end_ajax_' + formID ).remove(); + formContainer.nextUntil( `.frm_end_ajax_${ formID }` ).remove(); endReplace.forEach( el => el.remove() ); } } function maybeSlideOut( oldContent, newContent ) { - let c, - newClass = 'frm_slideout'; + let c; + let newClass = 'frm_slideout'; if ( newContent.includes( ' frm_slide' ) ) { c = oldContent.children(); if ( newContent.includes( ' frm_going_back' ) ) { @@ -1114,12 +1134,14 @@ function frmFrontFormJS() { let url; if ( history.pushState && response.page !== undefined ) { url = addQueryVar( 'frm_page', response.page ); - window.history.pushState( { html: response.html }, '', '?' + url ); + window.history.pushState( { html: response.html }, '', `?${ url }` ); } } function addQueryVar( key, value ) { - let kvp, i, x; + let kvp; + let i; + let x; key = encodeURI( key ); value = encodeURI( value ); @@ -1145,8 +1167,11 @@ function frmFrontFormJS() { } function addFieldError( $fieldCont, key, jsErrors ) { - let id, describedBy, roleString; + let id; + let describedBy; + let roleString; const container = $fieldCont instanceof jQuery ? $fieldCont.get( 0 ) : $fieldCont; + if ( ! container || container.offsetParent === null ) { return; } @@ -1165,7 +1190,7 @@ function frmFrontFormJS() { errorHtml = jsErrors[ key ]; } else { roleString = frm_js.include_alert_role ? 'role="alert"' : ''; - errorHtml = '
' + jsErrors[ key ] + '
'; + errorHtml = `
${ jsErrors[ key ] }
`; } container.insertAdjacentHTML( 'beforeend', errorHtml ); @@ -1173,11 +1198,11 @@ function frmFrontFormJS() { if ( ! describedBy ) { describedBy = id; } else if ( ! describedBy.includes( id ) && ! describedBy.includes( 'frm_error_field_' ) ) { - const errorFirst = input.dataset.errorFirst; + const { errorFirst } = input.dataset; if ( errorFirst === '0' ) { - describedBy = describedBy + ' ' + id; + describedBy = `${ describedBy } ${ id }`; } else { - describedBy = id + ' ' + describedBy; + describedBy = `${ id } ${ describedBy }`; } } input.setAttribute( 'aria-describedby', describedBy ); @@ -1208,9 +1233,9 @@ function frmFrontFormJS() { function getErrorElementId( key, input ) { if ( isNaN( key ) || ! input || ! input.id ) { // If key isn't a number, assume it's already in the right format. - return 'frm_error_field_' + key; + return `frm_error_field_${ key }`; } - return 'frm_error_' + input.id; + return `frm_error_${ input.id }`; } /** @@ -1408,7 +1433,9 @@ function frmFrontFormJS() { } function checkForErrorsAndMaybeSetFocus() { - let errors, element, timeoutCallback; + let errors; + let element; + let timeoutCallback; if ( ! frm_js.focus_first_error ) { return; @@ -1504,13 +1531,19 @@ function frmFrontFormJS() { } function initFloatingLabels() { - let checkFloatLabel, checkDropdownLabel, runOnLoad, selector, floatClass; + let checkFloatLabel; + let checkDropdownLabel; + let runOnLoad; + let selector; + let floatClass; selector = '.frm-show-form .frm_inside_container input, .frm-show-form .frm_inside_container select, .frm-show-form .frm_inside_container textarea'; floatClass = 'frm_label_float_top'; checkFloatLabel = function( input ) { - let container, shouldFloatTop, firstOpt; + let container; + let shouldFloatTop; + let firstOpt; container = input.closest( '.frm_inside_container' ); if ( ! container ) { @@ -1537,7 +1570,7 @@ function frmFrontFormJS() { }; checkDropdownLabel = function() { - document.querySelectorAll( '.frm-show-form .frm_inside_container:not(.' + floatClass + ') select' ).forEach( function( input ) { + document.querySelectorAll( `.frm-show-form .frm_inside_container:not(.${ floatClass }) select` ).forEach( function( input ) { const firstOpt = input.querySelector( 'option:first-child' ); if ( firstOpt.textContent ) { @@ -1607,8 +1640,8 @@ function frmFrontFormJS() { } function maybeClearCustomValidityMessage( event, field ) { - let key, - isInvalid = false; + let key; + let isInvalid = false; if ( ! shouldUpdateValidityMessage( field ) ) { return; @@ -1636,16 +1669,18 @@ function frmFrontFormJS() { return; } - messageEl = document.querySelector( '#frm_form_' + frmShowNewTabFallback.formId + '_container .frm_message' ); + messageEl = document.querySelector( `#frm_form_${ frmShowNewTabFallback.formId }_container .frm_message` ); if ( ! messageEl ) { return; } - messageEl.insertAdjacentHTML( 'beforeend', ' ' + frmShowNewTabFallback.message ); + messageEl.insertAdjacentHTML( 'beforeend', ` ${ frmShowNewTabFallback.message }` ); } function setCustomValidityMessage() { - let forms, length, index; + let forms; + let length; + let index; forms = document.getElementsByClassName( 'frm-show-form' ); length = forms.length; @@ -1654,7 +1689,7 @@ function frmFrontFormJS() { forms[ index ].addEventListener( 'invalid', function( event ) { - const target = event.target; + const { target } = event; if ( shouldUpdateValidityMessage( target ) ) { target.setCustomValidity( target.dataset.invmsg ); @@ -1698,7 +1733,7 @@ function frmFrontFormJS() { .map( b => b.toString( 16 ).padStart( 2, '0' ) ) .join( '' ); const timestamp = Date.now().toString( 16 ); - return uniqueKey + '-' + timestamp; + return `${ uniqueKey }-${ timestamp }`; } /** @@ -1823,7 +1858,7 @@ function frmFrontFormJS() { } const activeCaptcha = getSelectedCaptcha( captchaSelector ); - const captchaContainer = typeof turnstile !== 'undefined' && turnstile === activeCaptcha ? '#' + captcha.id : captcha.id; + const captchaContainer = typeof turnstile !== 'undefined' && turnstile === activeCaptcha ? `#${ captcha.id }` : captcha.id; const captchaID = activeCaptcha.render( captchaContainer, params ); captcha.setAttribute( 'data-rid', captchaID ); @@ -1838,7 +1873,7 @@ function frmFrontFormJS() { }, afterRecaptcha( _, formID ) { - const object = document.querySelector( '#frm_form_' + formID + '_container form' ); + const object = document.querySelector( `#frm_form_${ formID }_container form` ); frmFrontForm.submitFormNow( object ); }, @@ -1880,8 +1915,9 @@ function frmFrontFormJS() { }, submitFormNow( object ) { - let hasFileFields, antispamInput, - classList = object.className.trim().split( /\s+/gi ); + let hasFileFields; + let antispamInput; + const classList = object.className.trim().split( /\s+/gi ); if ( object.hasAttribute( 'data-token' ) && null === object.querySelector( '[name="antispam_token"]' ) ) { // include the antispam token on form submit. @@ -1943,7 +1979,8 @@ function frmFrontFormJS() { * @return {Array} List of errors. */ getAjaxFormErrors( object ) { - let customErrors, key; + let customErrors; + let key; const form = object instanceof jQuery ? object.get( 0 ) : object; jsErrors = validateForm( object ); @@ -1976,7 +2013,7 @@ function frmFrontFormJS() { removeAllErrors(); for ( key in jsErrors ) { - const fieldCont = form ? form.querySelector( '#frm_field_' + key + '_container' ) : null; + const fieldCont = form ? form.querySelector( `#frm_field_${ key }_container` ) : null; if ( fieldCont ) { addFieldError( fieldCont, key, jsErrors ); @@ -2001,16 +2038,21 @@ function frmFrontFormJS() { }, scrollMsg( id, object, animate ) { - let newPos, m, b, screenTop, screenBottom, - scrollObj = ''; + let newPos; + let m; + let b; + let screenTop; + let screenBottom; + let scrollObj = ''; + if ( object === undefined ) { - scrollObj = jQuery( document.getElementById( 'frm_form_' + id + '_container' ) ); + scrollObj = jQuery( document.getElementById( `frm_form_${ id }_container` ) ); if ( scrollObj.length < 1 ) { return; } } else if ( typeof id === 'string' ) { const formEl = object instanceof jQuery ? object.get( 0 ) : object; - const fieldEl = formEl ? formEl.querySelector( '#frm_field_' + id + '_container' ) : null; + const fieldEl = formEl ? formEl.querySelector( `#frm_field_${ id }_container` ) : null; scrollObj = fieldEl ? jQuery( fieldEl ) : jQuery(); } else { scrollObj = id; diff --git a/js/formidable_admin_global.js b/js/formidable_admin_global.js index ad64678abf..6cfd6c96ae 100644 --- a/js/formidable_admin_global.js +++ b/js/formidable_admin_global.js @@ -2,8 +2,11 @@ /* exported frm_install_now, frmSelectSubnav, frmCreatePostEntry */ jQuery( document ).ready( function() { - let deauthLink, submenuItem, li, - installLink = document.getElementById( 'frm_install_link' ); + let deauthLink; + let submenuItem; + let li; + const installLink = document.getElementById( 'frm_install_link' ); + if ( installLink !== null ) { jQuery( installLink ).on( 'click', frmInstallPro ); } @@ -28,7 +31,7 @@ jQuery( document ).ready( function() { function frm_install_now() { // eslint-disable-line camelcase const $msg = jQuery( document.getElementById( 'frm_install_message' ) ); - $msg.html( '
' + frmGlobal.updating_msg + '
' ); + $msg.html( `
${ frmGlobal.updating_msg }
` ); jQuery.ajax( { type: 'POST', url: ajaxurl, @@ -44,8 +47,8 @@ function frm_install_now() { // eslint-disable-line camelcase } function frmInstallPro( e ) { - let $msg, - plugin = this.getAttribute( 'data-prourl' ); + let $msg; + const plugin = this.getAttribute( 'data-prourl' ); if ( plugin === '' ) { return true; } @@ -53,7 +56,7 @@ function frmInstallPro( e ) { e.preventDefault(); $msg = jQuery( document.getElementById( 'frm_install_message' ) ); - $msg.html( '
' + frmGlobal.updating_msg + '
' ); + $msg.html( `
${ frmGlobal.updating_msg }
` ); $msg.fadeIn( 'slow' ); jQuery.ajax( { @@ -104,7 +107,7 @@ function frmSelectSubnav() { } function frmCreatePostEntry( id, postId ) { - jQuery( '#frm_create_entry p' ).replaceWith( '' + frmGlobal.loading + '' ); + jQuery( '#frm_create_entry p' ).replaceWith( `${ frmGlobal.loading }` ); jQuery.ajax( { type: 'POST', url: ajaxurl, @@ -126,24 +129,27 @@ function frmAdminPopupJS() { jQuery( '.frm_switch_sc' ).removeClass( 'active' ); jQuery( this ).addClass( 'active' ); toggleMenu(); - jQuery( '#frm_popup_content .media-frame-title h1' ).html( jQuery( this ).children( '.howto' ).text() + ' ' ); + jQuery( '#frm_popup_content .media-frame-title h1' ).html( `${ jQuery( this ).children( '.howto' ).text() } ` ); val = this.id.replace( 'sc-link-', '' ); populateOpts( val ); return false; } function populateOpts( val ) { - let $settings, $scOpts, $spinner, - sc = document.getElementById( 'frm_complete_shortcode' ); + let $settings; + let $scOpts; + let $spinner; + const sc = document.getElementById( 'frm_complete_shortcode' ); + if ( sc !== null ) { - sc.value = '[' + val + ']'; + sc.value = `[${ val }]`; } jQuery( '.frm_shortcode_option' ).hide(); - $settings = document.getElementById( 'sc-opts-' + val ); + $settings = document.getElementById( `sc-opts-${ val }` ); if ( $settings !== null ) { $settings.style.display = ''; - jQuery( document.getElementById( 'sc-' + val ) ).trigger( 'click' ); + jQuery( document.getElementById( `sc-${ val }` ) ).trigger( 'click' ); } else { $scOpts = jQuery( document.getElementById( 'frm_shortcode_options' ) ); $spinner = jQuery( '.media-frame-title .spinner' ); @@ -159,7 +165,7 @@ function frmAdminPopupJS() { success( html ) { $spinner.hide(); $scOpts.append( html ); - jQuery( document.getElementById( 'sc-' + val ) ).trigger( 'click' ); + jQuery( document.getElementById( `sc-${ val }` ) ).trigger( 'click' ); } } ); } @@ -167,18 +173,21 @@ function frmAdminPopupJS() { function addToShortcode() { const sc = jQuery( 'input[name=frmsc]:checked' ).val(); - const inputs = jQuery( document.getElementById( 'sc-opts-' + sc ) ).find( 'input, select' ); - let output = '[' + sc; + const inputs = jQuery( document.getElementById( `sc-opts-${ sc }` ) ).find( 'input, select' ); + let output = `[${ sc }`; + inputs.each( function() { - let attrName, attrVal, - $thisInput = jQuery( this ), - attrId = this.id; + let attrName; + let attrVal; + const $thisInput = jQuery( this ); + const attrId = this.id; + if ( attrId.indexOf( 'frmsc_' ) === 0 ) { - attrName = attrId.replace( 'frmsc_' + sc + '_', '' ); + attrName = attrId.replace( `frmsc_${ sc }_`, '' ); attrVal = $thisInput.val(); if ( ( $thisInput.attr( 'type' ) !== 'checkbox' || this.checked ) && ( ( $thisInput.attr( 'type' ) !== 'text' && ! $thisInput.is( 'select' ) ) || attrVal !== '' ) ) { - output += ' ' + attrName + '="' + attrVal + '"'; + output += ` ${ attrName }="${ attrVal }"`; } } } ); @@ -192,8 +201,8 @@ function frmAdminPopupJS() { } function getFieldSelection() { - let thisId, - formId = this.value; + let thisId; + const formId = this.value; if ( formId ) { thisId = this.id; jQuery.ajax( { @@ -207,8 +216,8 @@ function frmAdminPopupJS() { }, success( msg ) { const baseId = thisId.replace( '_form', '' ); - msg = msg.replace( 'name="field_options[form_select_0]"', 'id="frmsc_' + baseId + '_fields"' ); - jQuery( document.getElementById( baseId + '_fields_container' ) ).html( msg ); + msg = msg.replace( 'name="field_options[form_select_0]"', `id="frmsc_${ baseId }_fields"` ); + jQuery( document.getElementById( `${ baseId }_fields_container` ) ).html( msg ); } } ); } @@ -251,8 +260,8 @@ function frmWidgetsJS() { } function getFields() { - let widget, - displayId = this.value; + let widget; + const displayId = this.value; if ( displayId !== '' ) { widget = jQuery( this ).closest( '.widget-content' ); @@ -266,8 +275,8 @@ function frmWidgetsJS() { nonce: frmGlobal.nonce }, success( opts ) { - let titleField, - catField = widget.find( '.frm_list_items_cat_id' ); + let titleField; + const catField = widget.find( '.frm_list_items_cat_id' ); catField.find( 'option' ).remove().end(); catField.append( jQuery( '' ) ); jQuery.each( opts.catValues, function( key, value ) { diff --git a/js/packages/floating-links/s11-floating-links.js b/js/packages/floating-links/s11-floating-links.js index d5a0d5a4f1..cb08a29ebc 100644 --- a/js/packages/floating-links/s11-floating-links.js +++ b/js/packages/floating-links/s11-floating-links.js @@ -119,7 +119,7 @@ class S11FloatingLinks { slideIn.append( frmDom.span( { child: dismissIcon } ) ); slideIn.querySelector( 'a[href].frm-button-primary' )?.setAttribute( 'aria-description', - ( frmGlobal.inboxSlideIn.subject + ' ' + frmGlobal.inboxSlideIn.slidein ).replace( '&', '&' ) + ( `${ frmGlobal.inboxSlideIn.subject } ${ frmGlobal.inboxSlideIn.slidein }` ).replace( '&', '&' ) ); this.slideIn = slideIn; return slideIn; diff --git a/js/plugin-search.js b/js/plugin-search.js index fe5cc3378a..b91b22d3f9 100644 --- a/js/plugin-search.js +++ b/js/plugin-search.js @@ -27,11 +27,11 @@ function frmPS() { const hint = FormidablePSH.getCard(); if ( 'object' === typeof hint && null !== hint ) { hint.querySelector( '.plugin-card-bottom' ).outerHTML = - '
' + - '

' + - frmPlugSearch.legend + - '

' + - '
'; + `
` + + `

${ + frmPlugSearch.legend + }

` + + `
`; // Remove link and parent li from action links and move it to bottom row const dismissLink = document.querySelector( '.frm-plugin-search__dismiss' ); diff --git a/js/src/addons-page/elements/elements.js b/js/src/addons-page/elements/elements.js index d8a0377eb6..df905889da 100644 --- a/js/src/addons-page/elements/elements.js +++ b/js/src/addons-page/elements/elements.js @@ -18,7 +18,7 @@ if ( bodyContent ) { bodyContent .querySelectorAll( '.frm-card-item:not(.plugin-card-formidable-pro)' ) .forEach( addon => { - const categories = addon.dataset.categories; + const { categories } = addon.dataset; switch ( true ) { case categories.includes( PLANS.BUSINESS ): addon.setAttribute( diff --git a/js/src/admin/addon-state.js b/js/src/admin/addon-state.js index edf62bd180..633207aab3 100644 --- a/js/src/admin/addon-state.js +++ b/js/src/admin/addon-state.js @@ -120,7 +120,7 @@ export function afterAddonInstall( response, button, message, el, saveAndReload, messageElement.textContent = actionMap[ action ].message; } - const parentElement = el[ 0 ].parentElement; + const { parentElement } = el[ 0 ]; parentElement.classList.remove( 'frm-addon-not-installed', 'frm-addon-installed', 'frm-addon-active' ); parentElement.classList.add( actionMap[ action ].class ); @@ -154,7 +154,7 @@ export function addonError( response, el, button ) { .attr( 'rel', button.attr( 'rel' ) ) .on( 'click', installAddonWithCreds ); } else { - el.append( '

' + response.message + '

' ); + el.append( `

${ response.message }

` ); button.removeClass( 'frm_loading_button' ); jQuery( '.frm-addon-error' ).delay( 4000 ).fadeOut(); } diff --git a/js/src/admin/admin.js b/js/src/admin/admin.js index 2e5a2bade5..f46232f3f3 100644 --- a/js/src/admin/admin.js +++ b/js/src/admin/admin.js @@ -47,7 +47,7 @@ window.FrmFormsConnect = window.FrmFormsConnect || ( function( document, window, /*jshint validthis:true */ const button = this; const pluginSlug = this.getAttribute( 'data-plugin' ); - const input = document.getElementById( 'edd_' + pluginSlug + '_license_key' ); + const input = document.getElementById( `edd_${ pluginSlug }_license_key` ); const license = input.value; let wpmu = document.getElementById( 'proplug-wpmu' ); this.classList.add( 'frm_loading_button' ); @@ -90,7 +90,7 @@ window.FrmFormsConnect = window.FrmFormsConnect || ( function( document, window, el.setElements(); } - const messageBox = el.messageBox; + const { messageBox } = el; if ( messageBox === null ) { return; } @@ -111,7 +111,7 @@ window.FrmFormsConnect = window.FrmFormsConnect || ( function( document, window, // In case the message box was added after page load. el.setElements(); } - const messageBox = el.messageBox; + const { messageBox } = el; if ( msg.success === true ) { app.showAuthorized( true ); @@ -144,11 +144,11 @@ window.FrmFormsConnect = window.FrmFormsConnect || ( function( document, window, showAuthorized( show ) { const from = show ? 'unauthorized' : 'authorized'; const to = show ? 'authorized' : 'unauthorized'; - const container = document.querySelectorAll( '.frm_' + from + '_box' ); + const container = document.querySelectorAll( `.frm_${ from }_box` ); if ( container.length ) { // Replace all authorized boxes with unauthorized boxes. container.forEach( function( box ) { - box.className = box.className.replace( 'frm_' + from + '_box', 'frm_' + to + '_box' ); + box.className = box.className.replace( `frm_${ from }_box`, `frm_${ to }_box` ); } ); } }, @@ -194,10 +194,10 @@ window.FrmFormsConnect = window.FrmFormsConnect || ( function( document, window, if ( ! confirm( frmGlobal.deauthorize ) ) { return false; } - const pluginSlug = this.getAttribute( 'data-plugin' ), - input = document.getElementById( 'edd_' + pluginSlug + '_license_key' ), - license = input.value, - link = this; + const pluginSlug = this.getAttribute( 'data-plugin' ); + const input = document.getElementById( `edd_${ pluginSlug }_license_key` ); + const license = input.value; + const link = this; this.innerHTML = ''; @@ -246,18 +246,20 @@ window.frmAdminBuildJS = function() { drag: svg( { href: '#frm_drag_icon', classList: [ 'frm_drag_icon', 'frm-drag' ] } ) }; - let $newFields = jQuery( document.getElementById( 'frm-show-fields' ) ), - builderForm = document.getElementById( 'new_fields' ), - thisForm = document.getElementById( 'form_id' ), - copyHelper = false, - fieldsUpdated = 0, - thisFormId = 0, - autoId = 0, - optionMap = {}, - lastNewActionIdReturned = 0; + const $newFields = jQuery( document.getElementById( 'frm-show-fields' ) ); + const builderForm = document.getElementById( 'new_fields' ); + const thisForm = document.getElementById( 'form_id' ); + let copyHelper = false; + let fieldsUpdated = 0; + let thisFormId = 0; + let autoId = 0; + const optionMap = {}; + let lastNewActionIdReturned = 0; const { __, sprintf } = wp.i18n; - let debouncedSyncAfterDragAndDrop, postBodyContent, $postBodyContent; + let debouncedSyncAfterDragAndDrop; + let postBodyContent; + let $postBodyContent; const dragState = { dragging: false @@ -293,7 +295,7 @@ window.frmAdminBuildJS = function() { if ( $obj.classList ) { $obj.classList.add( className ); } else { - $obj.className += ' ' + className; + $obj.className += ` ${ className }`; } } @@ -305,8 +307,8 @@ window.frmAdminBuildJS = function() { } function confirmLinkClick( link ) { - const message = link.getAttribute( 'data-frmverify' ), - loadedFrom = link.getAttribute( 'data-loaded-from' ); + const message = link.getAttribute( 'data-frmverify' ); + const loadedFrom = link.getAttribute( 'data-loaded-from' ); if ( message === null || link.id === 'frm-confirmed-click' ) { return true; @@ -320,9 +322,13 @@ window.frmAdminBuildJS = function() { } function confirmModal( link ) { - let verify, $confirmMessage, i, dataAtts, btnClass, - $info = initModal( '#frm_confirm_modal', '400px' ), - continueButton = document.getElementById( 'frm-confirmed-click' ); + let verify; + let $confirmMessage; + let i; + let dataAtts; + let btnClass; + const $info = initModal( '#frm_confirm_modal', '400px' ); + const continueButton = document.getElementById( 'frm-confirmed-click' ); if ( $info === false ) { return false; @@ -350,12 +356,12 @@ window.frmAdminBuildJS = function() { if ( continueButton ) { for ( i in continueButton.dataset ) { - continueButton.removeAttribute( 'data-' + i ); + continueButton.removeAttribute( `data-${ i }` ); } for ( i in dataAtts ) { if ( i !== 'frmverify' ) { - continueButton.setAttribute( 'data-' + i, dataAtts[ i ] ); + continueButton.setAttribute( `data-${ i }`, dataAtts[ i ] ); } } } @@ -495,10 +501,10 @@ window.frmAdminBuildJS = function() { } function loadTooltips() { - let wrapClass = jQuery( '.wrap, .frm_wrap' ), - confirmModal = document.getElementById( 'frm_confirm_modal' ), - doAction = false, - confirmedBulkDelete = false; + const wrapClass = jQuery( '.wrap, .frm_wrap' ); + const confirmModal = document.getElementById( 'frm_confirm_modal' ); + let doAction = false; + let confirmedBulkDelete = false; jQuery( confirmModal ).on( 'click', '[data-deletefield]', deleteFieldConfirmed ); jQuery( confirmModal ).on( 'click', '[data-removeid]', removeThisTag ); @@ -517,10 +523,10 @@ window.frmAdminBuildJS = function() { } ); jQuery( document ).on( 'click', '#doaction, #doaction2', function( event ) { - const isTop = this.id === 'doaction', - suffix = isTop ? 'top' : 'bottom', - bulkActionSelector = document.getElementById( 'bulk-action-selector-' + suffix ), - confirmBulkDelete = document.getElementById( 'confirm-bulk-delete-' + suffix ); + const isTop = this.id === 'doaction'; + const suffix = isTop ? 'top' : 'bottom'; + const bulkActionSelector = document.getElementById( `bulk-action-selector-${ suffix }` ); + const confirmBulkDelete = document.getElementById( `confirm-bulk-delete-${ suffix }` ); if ( bulkActionSelector !== null && confirmBulkDelete !== null ) { doAction = this; @@ -559,7 +565,9 @@ window.frmAdminBuildJS = function() { function removeThisTag() { /*jshint validthis:true */ - let show, hide, removeMore; + let show; + let hide; + let removeMore; if ( parseInt( this.getAttribute( 'data-skip-frm-js' ) ) || confirmLinkClick( this ) === false ) { return; @@ -589,11 +597,11 @@ window.frmAdminBuildJS = function() { if ( jQuery( '#frm_postmeta_rows .frm_postmeta_row' ).length < 2 ) { show = '.frm_add_postmeta_row.button'; } - if ( jQuery( '.frm_toggle_cf_opts' ).length && jQuery( '#frm_postmeta_rows .frm_postmeta_row:not(#' + id + ')' ).last().length ) { + if ( jQuery( '.frm_toggle_cf_opts' ).length && jQuery( `#frm_postmeta_rows .frm_postmeta_row:not(#${ id })` ).last().length ) { if ( show !== '' ) { show += ','; } - show += '#' + jQuery( '#frm_postmeta_rows .frm_postmeta_row:not(#' + id + ')' ).last().attr( 'id' ) + ' .frm_toggle_cf_opts'; + show += `#${ jQuery( `#frm_postmeta_rows .frm_postmeta_row:not(#${ id })` ).last().attr( 'id' ) } .frm_toggle_cf_opts`; } } @@ -608,7 +616,7 @@ window.frmAdminBuildJS = function() { } if ( show !== '' ) { - jQuery( show + ' a,' + show ).removeClass( 'frm_hidden' ).fadeIn( 'slow' ); + jQuery( `${ show } a,${ show }` ).removeClass( 'frm_hidden' ).fadeIn( 'slow' ); } if ( this.closest( '.frm_form_action_settings' ) ) { @@ -657,10 +665,10 @@ window.frmAdminBuildJS = function() { popCalcFields( b, false ); const cont = jQuery( b ).closest( '.frm_form_action_settings' ); - const target = event.target; + const { target } = event; if ( cont.length && target !== undefined ) { - const className = target.parentElement.className; + const { className } = target.parentElement; if ( 'string' === typeof className ) { if ( className.includes( 'frm_email_icons' ) || className.includes( 'frm_toggle' ) ) { // clicking on delete icon shouldn't open it @@ -690,7 +698,7 @@ window.frmAdminBuildJS = function() { success( html ) { inside.html( html ); initiateMultiselect(); - showInputIcon( '#' + cont.attr( 'id' ) ); + showInputIcon( `#${ cont.attr( 'id' ) }` ); initAutocomplete( inside ); jQuery( b ).trigger( 'frm-action-loaded' ); @@ -784,9 +792,9 @@ window.frmAdminBuildJS = function() { } if ( jQuery( '.frm_form_settings' ).length ) { - jQuery( '.frm_form_settings' ).attr( 'action', '?page=formidable&frm_action=settings&id=' + jQuery( '.frm_form_settings input[name="id"]' ).val() + '&t=' + t.replace( '#', '' ) ); + jQuery( '.frm_form_settings' ).attr( 'action', `?page=formidable&frm_action=settings&id=${ jQuery( '.frm_form_settings input[name="id"]' ).val() }&t=${ t.replace( '#', '' ) }` ); } else { - jQuery( '.frm_settings_form' ).attr( 'action', '?page=formidable-settings&t=' + t.replace( '#', '' ) ); + jQuery( '.frm_settings_form' ).attr( 'action', `?page=formidable-settings&t=${ t.replace( '#', '' ) }` ); } } @@ -893,7 +901,7 @@ window.frmAdminBuildJS = function() { if ( draggable.hasAttribute( 'data-ftype' ) ) { const fieldType = draggable.getAttribute( 'data-ftype' ); - copyTarget = document.getElementById( 'frm-insert-fields' ).querySelector( '.frm_t' + fieldType ); + copyTarget = document.getElementById( 'frm-insert-fields' ).querySelector( `.frm_t${ fieldType }` ); if ( copyTarget ) { copyTarget = copyTarget.cloneNode( true ); copyTarget.classList.add( 'form-field' ); @@ -962,7 +970,7 @@ window.frmAdminBuildJS = function() { const frmSortableHelper = ui.helper.get( 0 ); if ( frmSortableHelper.classList.contains( 'form-field' ) || frmSortableHelper.classList.contains( 'frm_field_box' ) ) { // Sync the y position of the draggable so it still follows the cursor after scrolling up and down the field list. - frmSortableHelper.style.transform = 'translateY(' + getDragOffset( ui.helper ) + 'px)'; + frmSortableHelper.style.transform = `translateY(${ getDragOffset( ui.helper ) }px)`; } if ( 'frm-show-fields' === droppable.id || droppable.classList.contains( 'start_divider' ) ) { @@ -1166,14 +1174,17 @@ window.frmAdminBuildJS = function() { } top -= $list.offset().top; - placeholder.style.top = top + 'px'; + placeholder.style.top = `${ top }px`; } function determineIndexBasedOffOfMousePositionInList( $list, y ) { const $items = $list.children().not( '.edit_field_type_end_divider' ); - const length = $items.length; + const { length } = $items; - let index, item, itemTop, returnIndex; + let index; + let item; + let itemTop; + let returnIndex; if ( ! document.querySelector( '.frm-has-fields .frm_no_fields' ) ) { // Always return 0 when there are no fields. @@ -1221,7 +1232,7 @@ window.frmAdminBuildJS = function() { left -= $row.offset().left; - placeholder.style.left = left + 'px'; + placeholder.style.left = `${ left }px`; } function syncAfterDragAndDrop() { @@ -1318,9 +1329,12 @@ window.frmAdminBuildJS = function() { } function determineIndexBasedOffOfMousePositionInRow( $row, x ) { - let $inputs = getFieldsInRow( $row ), - length = $inputs.length, - index, input, inputLeft, returnIndex; + const $inputs = getFieldsInRow( $row ); + const { length } = $inputs; + let index; + let input; + let inputLeft; + let returnIndex; returnIndex = 0; for ( index = length - 1; index >= 0; --index ) { @@ -1339,7 +1353,10 @@ window.frmAdminBuildJS = function() { } function syncLayoutClasses( $item, type ) { - let $fields, size, layoutClasses, classToAddFunction; + let $fields; + let size; + let layoutClasses; + let classToAddFunction; if ( type === undefined ) { type = 'even'; @@ -1372,7 +1389,9 @@ window.frmAdminBuildJS = function() { } function updateFieldGroupControls( $row, count ) { - let rowOffset, shouldShowControls, controls; + let rowOffset; + let shouldShowControls; + let controls; rowOffset = $row.offset(); @@ -1402,7 +1421,8 @@ window.frmAdminBuildJS = function() { } function setFieldControlsHtml( controls ) { - let layoutOption, moveOption; + let layoutOption; + let moveOption; layoutOption = document.createElement( 'span' ); layoutOption.innerHTML = ''; @@ -1475,7 +1495,13 @@ window.frmAdminBuildJS = function() { function getSyncLayoutClass( layoutClasses, classToAdd ) { return function( itemIndex ) { - let currentClassToAdd, length, layoutClassIndex, currentClass, activeLayoutClass, fieldId, layoutClassesInput; + let currentClassToAdd; + let length; + let layoutClassIndex; + let currentClass; + let activeLayoutClass; + let fieldId; + let layoutClassesInput; currentClassToAdd = 'function' === typeof classToAdd ? classToAdd( itemIndex ) : classToAdd; length = layoutClasses.length; @@ -1497,8 +1523,8 @@ window.frmAdminBuildJS = function() { return; } - moveFieldSettings( document.getElementById( 'frm-single-settings-' + fieldId ) ); - layoutClassesInput = document.getElementById( 'frm_classes_' + fieldId ); + moveFieldSettings( document.getElementById( `frm-single-settings-${ fieldId }` ) ); + layoutClassesInput = document.getElementById( `frm_classes_${ fieldId }` ); if ( null === layoutClassesInput ) { // not every field type has a layout class input. @@ -1507,7 +1533,7 @@ window.frmAdminBuildJS = function() { if ( false === activeLayoutClass ) { if ( '' !== currentClassToAdd ) { - layoutClassesInput.value = layoutClassesInput.value.concat( ' ' + currentClassToAdd ); + layoutClassesInput.value = layoutClassesInput.value.concat( ` ${ currentClassToAdd }` ); } } else { this.classList.remove( activeLayoutClass ); @@ -1545,7 +1571,7 @@ window.frmAdminBuildJS = function() { }, stop( e, ui ) { copyHelper && copyHelper.remove(); - const fieldId = ui.item.attr( 'id' ).replace( 'frm_delete_field_', '' ).replace( '-' + ui.item.data( 'optkey' ) + '_container', '' ); + const fieldId = ui.item.attr( 'id' ).replace( 'frm_delete_field_', '' ).replace( `-${ ui.item.data( 'optkey' ) }_container`, '' ); resetDisplayedOpts( fieldId ); fieldUpdated(); } @@ -1571,7 +1597,7 @@ window.frmAdminBuildJS = function() { sDivide.children( '.edit_field_type_end_divider' ).appendTo( sDivide ); if ( section.attr( 'data-formid' ) !== undefined ) { const fieldId = section.attr( 'data-fid' ); - formId = jQuery( 'input[name="field_options[form_select_' + fieldId + ']"]' ).val(); + formId = jQuery( `input[name="field_options[form_select_${ fieldId }]"]` ).val(); } } @@ -1636,7 +1662,7 @@ window.frmAdminBuildJS = function() { // Update the in_section field value function updateInSectionValue( fieldId, sectionId ) { - document.getElementById( 'frm_in_section_' + fieldId ).value = sectionId; + document.getElementById( `frm_in_section_${ fieldId }` ).value = sectionId; } /** @@ -1694,7 +1720,7 @@ window.frmAdminBuildJS = function() { } const placeholder = document.getElementById( 'frm_drag_placeholder' ); - const loadingID = fieldType.replace( '|', '-' ) + '_' + getAutoId(); + const loadingID = `${ fieldType.replace( '|', '-' ) }_${ getAutoId() }`; const loading = tag( 'li', { @@ -1715,7 +1741,7 @@ window.frmAdminBuildJS = function() { let hasBreak = 0; if ( 'summary' === fieldType ) { // see if we need to insert a page break before this newly-added summary field. Check for at least 1 page break - hasBreak = jQuery( '.frmbutton_loadingnow#' + loadingID ).prevAll( 'li[data-type="break"]' ).length ? 1 : 0; + hasBreak = jQuery( `.frmbutton_loadingnow#${ loadingID }` ).prevAll( 'li[data-type="break"]' ).length ? 1 : 0; } jQuery.ajax( { @@ -1828,7 +1854,7 @@ window.frmAdminBuildJS = function() { function maybeShowInsertFieldError( errorThrown, jqXHR ) { if ( ! jqXHRAborted( jqXHR ) ) { - infoModal( errorThrown + '. Please try again.' ); + infoModal( `${ errorThrown }. Please try again.` ); } } @@ -2090,7 +2116,7 @@ window.frmAdminBuildJS = function() { } fieldId = $field.attr( 'data-fid' ); // Allow the maximum number if we're not changing field groups. - return 1 === jQuery( fieldsInRow ).filter( '[data-fid="' + fieldId + '"]' ).length; + return 1 === jQuery( fieldsInRow ).filter( `[data-fid="${ fieldId }"]` ).length; } function loadFields( fieldId ) { @@ -2134,7 +2160,8 @@ window.frmAdminBuildJS = function() { } function handleAjaxLoadFieldSuccess( html, $thisField, field ) { - let key, $nextSet; + let key; + let $nextSet; html = html.replace( /^\s+|\s+$/g, '' ); if ( html.indexOf( '{' ) !== 0 ) { @@ -2144,16 +2171,16 @@ window.frmAdminBuildJS = function() { html = JSON.parse( html ); for ( key in html ) { - jQuery( '#frm_field_id_' + key ).replaceWith( html[ key ] ); + jQuery( `#frm_field_id_${ key }` ).replaceWith( html[ key ] ); - const newReplacedField = document.getElementById( 'frm_field_id_' + key ); + const newReplacedField = document.getElementById( `frm_field_id_${ key }` ); if ( newReplacedField ) { newReplacedField.querySelectorAll( '[data-toggle]' ).forEach( toggle => toggle.setAttribute( 'data-bs-toggle', toggle.getAttribute( 'data-toggle' ) ) ); newReplacedField.querySelectorAll( '.frm-dropdown-menu' ).forEach( dropdownMenu => dropdownMenu.classList.add( 'dropdown-menu' ) ); } - setupSortable( '#frm_field_id_' + key + '.edit_field_type_divider ul.frm_sorting' ); - makeDraggable( document.getElementById( 'frm_field_id_' + key ) ); + setupSortable( `#frm_field_id_${ key }.edit_field_type_divider ul.frm_sorting` ); + makeDraggable( document.getElementById( `frm_field_id_${ key }` ) ); } $nextSet = $thisField.nextAll( '.frm_field_loading:not(.frm_load_now)' ); @@ -2324,8 +2351,8 @@ window.frmAdminBuildJS = function() { } function maybeHideQuantityProductFieldOption() { - let hide = true, - opts = document.querySelectorAll( '.frmjs_prod_field_opt_cont' ); + let hide = true; + const opts = document.querySelectorAll( '.frmjs_prod_field_opt_cont' ); if ( $newFields.find( 'li.edit_field_type_product' ).length > 1 ) { hide = false; @@ -2363,7 +2390,11 @@ window.frmAdminBuildJS = function() { } function duplicateField() { - let $field, fieldId, children, newRowId, fieldOrder; + let $field; + let fieldId; + let children; + let newRowId; + let fieldOrder; const maxFieldsInGroup = MAX_FIELD_GROUP_SIZE; $field = jQuery( this ).closest( 'li.form-field' ); @@ -2457,15 +2488,15 @@ window.frmAdminBuildJS = function() { return; } const fieldId = field.dataset.fid; - let fieldClasses = document.getElementById( 'frm_classes_' + fieldId )?.value; + let fieldClasses = document.getElementById( `frm_classes_${ fieldId }` )?.value; if ( ! fieldClasses ) { return; } fieldClasses = fieldClasses.replace( 'frm_first', '' ); if ( ! newField.className.includes( fieldClasses ) ) { - newField.className += ' ' + fieldClasses; + newField.className += ` ${ fieldClasses }`; - const classesInput = document.getElementById( 'frm_classes_' + newField.dataset.fid ); + const classesInput = document.getElementById( `frm_classes_${ newField.dataset.fid }` ); if ( classesInput ) { classesInput.value = fieldClasses; } @@ -2473,9 +2504,14 @@ window.frmAdminBuildJS = function() { } function maybeDuplicateUnsavedSettings( originalFieldId, newFieldHtml ) { - let originalSettings, newFieldId, copySettings, fieldOptionKeys, originalDefault, copyDefault; - - originalSettings = document.getElementById( 'frm-single-settings-' + originalFieldId ); + let originalSettings; + let newFieldId; + let copySettings; + let fieldOptionKeys; + let originalDefault; + let copyDefault; + + originalSettings = document.getElementById( `frm-single-settings-${ originalFieldId }` ); if ( null === originalSettings ) { return; } @@ -2485,7 +2521,7 @@ window.frmAdminBuildJS = function() { return; } - copySettings = document.getElementById( 'frm-single-settings-' + newFieldId ); + copySettings = document.getElementById( `frm-single-settings-${ newFieldId }` ); if ( null === copySettings ) { return; } @@ -2496,7 +2532,9 @@ window.frmAdminBuildJS = function() { originalSettings.querySelectorAll( 'input[name^="field_options["], textarea[name^="field_options["]' ).forEach( function( originalSetting ) { - let key, tagType, copySetting; + let key; + let tagType; + let copySetting; key = getKeyFromSettingInput( originalSetting ); @@ -2510,7 +2548,7 @@ window.frmAdminBuildJS = function() { } tagType = originalSetting.matches( 'input' ) ? 'input' : 'textarea'; - copySetting = copySettings.querySelector( tagType + '[name="field_options[' + key + '_' + newFieldId + ']"]' ); + copySetting = copySettings.querySelector( `${ tagType }[name="field_options[${ key }_${ newFieldId }]"]` ); if ( null === copySetting ) { return; } @@ -2528,9 +2566,9 @@ window.frmAdminBuildJS = function() { } ); - originalDefault = originalSettings.querySelector( 'input[name="default_value_' + originalFieldId + '"]' ); + originalDefault = originalSettings.querySelector( `input[name="default_value_${ originalFieldId }"]` ); if ( null !== originalDefault ) { - copyDefault = copySettings.querySelector( 'input[name="default_value_' + newFieldId + '"]' ); + copyDefault = copySettings.querySelector( `input[name="default_value_${ newFieldId }"]` ); if ( null !== copyDefault && originalDefault.value !== copyDefault.value ) { copyDefault.value = originalDefault.value; jQuery( copyDefault ).trigger( 'change' ); @@ -2539,10 +2577,13 @@ window.frmAdminBuildJS = function() { } function copyOption( originalSetting, copySettings, originalFieldId, newFieldId ) { - let remainingKeyDetails, copyKey, copySetting; - remainingKeyDetails = originalSetting.name.substr( 23 + ( '' + originalFieldId ).length ); - copyKey = 'field_options[options_' + newFieldId + ']' + remainingKeyDetails; - copySetting = copySettings.querySelector( 'input[name="' + copyKey + '"]' ); + let remainingKeyDetails; + let copyKey; + let copySetting; + + remainingKeyDetails = originalSetting.name.substr( 23 + ( `${ originalFieldId }` ).length ); + copyKey = `field_options[options_${ newFieldId }]${ remainingKeyDetails }`; + copySetting = copySettings.querySelector( `input[name="${ copyKey }"]` ); if ( null !== copySetting && copySetting.value !== originalSetting.value ) { copySetting.value = originalSetting.value; jQuery( copySetting ).trigger( 'change' ); @@ -2550,7 +2591,9 @@ window.frmAdminBuildJS = function() { } function getKeyFromSettingInput( input ) { - let nameWithoutPrefix, nameSplit; + let nameWithoutPrefix; + let nameSplit; + nameWithoutPrefix = input.name.substr( 14 ); nameSplit = nameWithoutPrefix.split( '_' ); nameSplit.pop(); @@ -2579,7 +2622,10 @@ window.frmAdminBuildJS = function() { } function checkForActiveHoverTarget( event ) { - let container, elementFromPoint, list, previousHoverTarget; + let container; + let elementFromPoint; + let list; + let previousHoverTarget; container = postBodyContent; if ( container.classList.contains( 'frm-dragging-field' ) ) { @@ -2608,7 +2654,8 @@ window.frmAdminBuildJS = function() { } function maybeRemoveGroupHoverTarget() { - let controls, previousHoverTarget; + let controls; + let previousHoverTarget; controls = document.getElementById( 'frm_field_group_controls' ); if ( null !== controls ) { @@ -2640,7 +2687,8 @@ window.frmAdminBuildJS = function() { // maybe offset the dropdown if it goes off the edge of the screen or container. setTimeout( function() { - let ul, $ul; + let ul; + let $ul; ul = document.querySelector( '.dropdown .frm-dropdown-menu.show' ); @@ -2655,7 +2703,7 @@ window.frmAdminBuildJS = function() { } $ul = jQuery( ul ); if ( $ul.offset().left > jQuery( window ).width() - $ul.outerWidth() ) { - ul.style.left = ( -$ul.outerWidth() ) + 'px'; + ul.style.left = `${ -$ul.outerWidth() }px`; } else if ( postBodyContent && $ul.offset().left < postBodyContent.getBoundingClientRect().left ) { ul.style.right = 'auto'; ul.style.left = '0'; @@ -2687,7 +2735,9 @@ window.frmAdminBuildJS = function() { } function fillFieldActionDropdown( ul, isFieldGroup ) { - let classSuffix, options; + let classSuffix; + let options; + classSuffix = isFieldGroup ? '_field_group' : '_field'; options = [ getDeleteActionOption( isFieldGroup ), getDuplicateActionOption( isFieldGroup ) ]; if ( ! isFieldGroup ) { @@ -2697,7 +2747,10 @@ window.frmAdminBuildJS = function() { } options.forEach( function( option ) { - let li, anchor, span; + let li; + let anchor; + let span; + li = document.createElement( 'div' ); li.classList.add( 'frm_more_options_li', 'dropdown-item' ); @@ -2708,7 +2761,7 @@ window.frmAdminBuildJS = function() { span = document.createElement( 'span' ); span.textContent = option.label; - anchor.innerHTML = ''; + anchor.innerHTML = ``; anchor.append( document.createTextNode( ' ' ) ); anchor.append( span ); @@ -2781,7 +2834,7 @@ window.frmAdminBuildJS = function() { const regex = /id="(\S+)"/; const match = regex.exec( msg ); const field = document.getElementById( match[ 1 ] ); - const section = '#' + match[ 1 ] + '.edit_field_type_divider ul.frm_sorting.start_divider'; + const section = `#${ match[ 1 ] }.edit_field_type_divider ul.frm_sorting.start_divider`; const $thisSection = jQuery( section ); const type = field.getAttribute( 'data-type' ); @@ -2828,13 +2881,13 @@ window.frmAdminBuildJS = function() { } if ( addFocus ) { - const bounding = field.getBoundingClientRect(), - container = document.getElementById( 'post-body-content' ), - inView = ( bounding.top >= 0 && + const bounding = field.getBoundingClientRect(); + const container = document.getElementById( 'post-body-content' ); + const inView = ( bounding.top >= 0 && bounding.left >= 0 && bounding.right <= ( window.innerWidth || document.documentElement.clientWidth ) && bounding.bottom <= ( window.innerHeight || document.documentElement.clientHeight ) - ); + ); if ( ! inView ) { container.scroll( { @@ -2887,7 +2940,7 @@ window.frmAdminBuildJS = function() { } Object.keys( fieldsOrder ).forEach( fieldId => { - const orderInput = document.querySelector( 'input[name="field_options[field_order_' + fieldId + ']"]' ); + const orderInput = document.querySelector( `input[name="field_options[field_order_${ fieldId }]"]` ); if ( orderInput ) { orderInput.value = fieldsOrder[ fieldId ]; } @@ -2925,7 +2978,7 @@ window.frmAdminBuildJS = function() { } else { const split = draftInput.value.split( ',' ); if ( ! split.includes( field.dataset.fid ) ) { - draftInput.value += ',' + field.dataset.fid; + draftInput.value += `,${ field.dataset.fid }`; } } } @@ -2950,7 +3003,7 @@ window.frmAdminBuildJS = function() { warningMessage += checkShortcodes( calculation, this ); if ( warningMessage !== '' ) { - infoModal( calculation + '\n\n' + warningMessage ); + infoModal( `${ calculation }\n\n${ warningMessage }` ); } } @@ -2961,18 +3014,19 @@ window.frmAdminBuildJS = function() { * @return {string} */ function checkMatchingParens( formula ) { - let stack = [], - formulaArray = formula.split( '' ), - length = formulaArray.length, - opening = [ '{', '[', '(' ], - closing = { - '}': '{', - ')': '(', - ']': '[' - }, - hasUnmatchedClosing = false, - msg = '', - i, top; + const stack = []; + const formulaArray = formula.split( '' ); + const { length } = formulaArray; + const opening = [ '{', '[', '(' ]; + const closing = { + '}': '{', + ')': '(', + ']': '[' + }; + let hasUnmatchedClosing = false; + let msg = ''; + let i; + let top; for ( i = 0; i < length; i++ ) { if ( opening.includes( formulaArray[ i ] ) ) { @@ -2988,7 +3042,7 @@ window.frmAdminBuildJS = function() { } if ( stack.length > 0 || hasUnmatchedClosing ) { - msg = frmAdminJs.unmatched_parens + '\n\n'; + msg = `${ frmAdminJs.unmatched_parens }\n\n`; return msg; } @@ -3027,7 +3081,7 @@ window.frmAdminBuildJS = function() { const nonNumericShortcodes = getNonNumericShortcodes(); if ( nonNumericShortcodes.test( calculation ) ) { - msg = frmAdminJs.text_shortcodes + '\n\n'; + msg = `${ frmAdminJs.text_shortcodes }\n\n`; } return msg; @@ -3058,11 +3112,11 @@ window.frmAdminBuildJS = function() { * @return {string} */ function checkNonFormShortcodes( formula ) { - let nonFormShortcodes = getNonFormShortcodes(), - msg = ''; + const nonFormShortcodes = getNonFormShortcodes(); + let msg = ''; if ( nonFormShortcodes.test( formula ) ) { - msg += frmAdminJs.view_shortcodes + '\n\n'; + msg += `${ frmAdminJs.view_shortcodes }\n\n`; } return msg; @@ -3117,13 +3171,17 @@ window.frmAdminBuildJS = function() { function getFieldOptionInputName( opt, fieldId ) { const at = opt.indexOf( ']' ); - return 'field_options' + opt.substring( 0, at ) + '_' + fieldId + opt.substring( at ); + return `field_options${ opt.substring( 0, at ) }_${ fieldId }${ opt.substring( at ) }`; } function popCalcFields( v, force ) { - let box, exclude, fields, i, list, - p = jQuery( v ).closest( '.frm-single-settings' ), - calc = p.find( '.frm-calc-field' ); + let box; + let exclude; + let fields; + let i; + let list; + const p = jQuery( v ).closest( '.frm-single-settings' ); + const calc = p.find( '.frm-calc-field' ); if ( ! force && ( ! calc.length || calc.val() === '' || calc.is( ':hidden' ) ) ) { return; @@ -3136,14 +3194,14 @@ window.frmAdminBuildJS = function() { if ( force ) { box = v; } else { - box = document.getElementById( 'frm-calc-box-' + fieldId ); + box = document.getElementById( `frm-calc-box-${ fieldId }` ); } exclude = getExcludeArray( box, isSummary ); const excludedOpts = extractExcludedOptions( exclude ); fields = getFieldList(); - list = document.getElementById( 'frm-calc-list-' + fieldId ); + list = document.getElementById( `frm-calc-list-${ fieldId }` ); list.innerHTML = ''; for ( i = 0; i < fields.length; i++ ) { @@ -3157,11 +3215,11 @@ window.frmAdminBuildJS = function() { a.setAttribute( 'data-code', fields[ i ].fieldId ); a.classList.add( 'frm_insert_code' ); a.append( span( fields[ i ].fieldName ) ); - a.append( span( { className: 'frm-text-sm frm-text-grey-500', text: '[' + fields[ i ].fieldId + ']' } ) ); + a.append( span( { className: 'frm-text-sm frm-text-grey-500', text: `[${ fields[ i ].fieldId }]` } ) ); const li = document.createElement( 'li' ); - li.classList.add( 'frm-field-list-' + fieldId ); - li.classList.add( 'frm-field-list-' + fields[ i ].fieldType ); + li.classList.add( `frm-field-list-${ fieldId }` ); + li.classList.add( `frm-field-list-${ fields[ i ].fieldType }` ); li.append( a ); list.append( li ); } @@ -3208,10 +3266,10 @@ window.frmAdminBuildJS = function() { } function getFieldList( fieldType ) { - let i, - fields = [], - allFields = document.querySelectorAll( 'li.frm_field_box' ), - checkType = fieldType !== undefined; + let i; + const fields = []; + const allFields = document.querySelectorAll( 'li.frm_field_box' ); + const checkType = fieldType !== undefined; for ( i = 0; i < allFields.length; i++ ) { // data-ftype is better (than data-type) cos of fields loaded by AJAX - which might not be ready yet @@ -3223,9 +3281,9 @@ window.frmAdminBuildJS = function() { if ( fieldId ) { fields.push( { fieldId, - fieldName: getPossibleValue( 'frm_name_' + fieldId ), - fieldType: getPossibleValue( 'field_options_type_' + fieldId ), - fieldKey: getPossibleValue( 'field_options_field_key_' + fieldId ) + fieldName: getPossibleValue( `frm_name_${ fieldId }` ), + fieldType: getPossibleValue( `field_options_type_${ fieldId }` ), + fieldKey: getPossibleValue( `field_options_field_key_${ fieldId }` ) } ); } } @@ -3234,15 +3292,17 @@ window.frmAdminBuildJS = function() { } function popProductFields( field ) { - let i, checked, id, - options = [], - current = getCurrentProductFields( field ), - fName = field.getAttribute( 'data-frmfname' ), - products = getFieldList( 'product' ), - quantities = getFieldList( 'quantity' ), - isSelect = field.tagName === 'SELECT', // for reverse compatibility. - // whether we have just 1 product and 1 quantity field & should therefore attach the latter to the former - auto = 1 === quantities.length && 1 === products.length; + let i; + let checked; + let id; + const options = []; + let current = getCurrentProductFields( field ); + const fName = field.getAttribute( 'data-frmfname' ); + const products = getFieldList( 'product' ); + const quantities = getFieldList( 'quantity' ); + const isSelect = field.tagName === 'SELECT'; // for reverse compatibility. + // whether we have just 1 product and 1 quantity field & should therefore attach the latter to the former + const auto = 1 === quantities.length && 1 === products.length; if ( isSelect ) { // This fallback can be removed after 4.05. @@ -3256,11 +3316,11 @@ window.frmAdminBuildJS = function() { if ( isSelect ) { // This fallback can be removed after 4.05. checked = checked ? ' selected' : ''; - options.push( '' ); + options.push( `` ); } else { checked = checked ? ' checked' : ''; options.push( '' ); } } @@ -3269,8 +3329,8 @@ window.frmAdminBuildJS = function() { } function getCurrentProductFields( prodFieldOpt ) { - const products = prodFieldOpt.querySelectorAll( '[type="checkbox"]:checked' ), - idsArray = []; + const products = prodFieldOpt.querySelectorAll( '[type="checkbox"]:checked' ); + const idsArray = []; for ( let i = 0; i < products.length; i++ ) { idsArray.push( products[ i ].value ); @@ -3287,8 +3347,8 @@ window.frmAdminBuildJS = function() { } function maybeSetProductField( field ) { - const fieldId = field.getAttribute( 'data-fid' ), - productFieldOpt = document.getElementById( 'field_options[product_field_' + fieldId + ']' ); + const fieldId = field.getAttribute( 'data-fid' ); + const productFieldOpt = document.getElementById( `field_options[product_field_${ fieldId }]` ); if ( null === productFieldOpt ) { return; @@ -3297,7 +3357,7 @@ window.frmAdminBuildJS = function() { popProductFields( productFieldOpt ); // in order to move its settings to that LHS panel where // the update form resides, else it'll lose this setting - moveFieldSettings( document.getElementById( 'frm-single-settings-' + fieldId ) ); + moveFieldSettings( document.getElementById( `frm-single-settings-${ fieldId }` ) ); } /** @@ -3314,10 +3374,10 @@ window.frmAdminBuildJS = function() { function liveChanges() { /*jshint validthis:true */ - let option, - newValue = this.value, - changes = document.getElementById( this.getAttribute( 'data-changeme' ) ), - att = this.getAttribute( 'data-changeatt' ); + let option; + const newValue = this.value; + const changes = document.getElementById( this.getAttribute( 'data-changeme' ) ); + const att = this.getAttribute( 'data-changeatt' ); if ( changes === null ) { return; @@ -3386,7 +3446,7 @@ window.frmAdminBuildJS = function() { } function getSliderDefaultValueInput( previewInputId ) { - return document.querySelector( 'input[data-changeme="' + previewInputId + '"][data-changeatt="value"]' ).value; + return document.querySelector( `input[data-changeme="${ previewInputId }"][data-changeatt="value"]` ).value; } function getSliderMidpoint( sliderInput ) { @@ -3401,9 +3461,10 @@ window.frmAdminBuildJS = function() { function toggleInvalidMsg() { /*jshint validthis:true */ - let typeDropdown, fieldType, - fieldId = this.getAttribute( 'data-fid' ), - value = ''; + let typeDropdown; + let fieldType; + const fieldId = this.getAttribute( 'data-fid' ); + let value = ''; [ 'field_options_max_', 'frm_format_' ].forEach( function( id ) { const input = document.getElementById( id + fieldId ); @@ -3414,25 +3475,25 @@ window.frmAdminBuildJS = function() { value += input.value; } ); - typeDropdown = document.getElementsByName( 'field_options[type_' + fieldId + ']' )[ 0 ]; + typeDropdown = document.getElementsByName( `field_options[type_${ fieldId }]` )[ 0 ]; fieldType = typeDropdown.options[ typeDropdown.selectedIndex ].value; if ( fieldType === 'text' ) { - toggleValidationBox( '' !== value, '.frm_invalid_msg' + fieldId ); + toggleValidationBox( '' !== value, `.frm_invalid_msg${ fieldId }` ); } } function markRequired() { /*jshint validthis:true */ - const thisid = this.id.replace( 'frm_', '' ), - fieldId = thisid.replace( 'req_field_', '' ), - checked = this.checked, - label = jQuery( '#field_label_' + fieldId + ' .frm_required' ); + const thisid = this.id.replace( 'frm_', '' ); + const fieldId = thisid.replace( 'req_field_', '' ); + const { checked } = this; + const label = jQuery( `#field_label_${ fieldId } .frm_required` ); - toggleValidationBox( checked, '.frm_required_details' + fieldId ); + toggleValidationBox( checked, `.frm_required_details${ fieldId }` ); if ( checked ) { - const $reqBox = jQuery( 'input[name="field_options[required_indicator_' + fieldId + ']"]' ); + const $reqBox = jQuery( `input[name="field_options[required_indicator_${ fieldId }]"]` ); if ( $reqBox.val() === '' ) { $reqBox.val( '*' ); } @@ -3449,7 +3510,7 @@ window.frmAdminBuildJS = function() { } else { // Fade out validation options const $validationBox = $msg.fadeOut( 'fast' ).closest( '.frm_validation_box' ); - const v = $validationBox.css( 'display', 'block' ).children( ':not(' + messageClass + '):visible' ).length; + const v = $validationBox.css( 'display', 'block' ).children( `:not(${ messageClass }):visible` ).length; $validationBox.css( 'display', '' ); if ( v === 0 ) { $msg.closest( '.frm_validation_msg' ).fadeOut( 'fast' ); @@ -3460,16 +3521,16 @@ window.frmAdminBuildJS = function() { function markUnique() { /*jshint validthis:true */ const fieldId = jQuery( this ).closest( '.frm-single-settings' ).data( 'fid' ); - const $thisField = jQuery( '.frm_unique_details' + fieldId ); + const $thisField = jQuery( `.frm_unique_details${ fieldId }` ); if ( this.checked ) { $thisField.fadeIn( 'fast' ).closest( '.frm_validation_msg' ).fadeIn( 'fast' ); - const $unqDetail = jQuery( '.frm_unique_details' + fieldId + ' input' ); + const $unqDetail = jQuery( `.frm_unique_details${ fieldId } input` ); if ( $unqDetail.val() === '' ) { $unqDetail.val( frmAdminJs.default_unique ); } } else { const $validationBox = $thisField.fadeOut( 'fast' ).closest( '.frm_validation_box' ); - const v = $validationBox.css( 'display', 'block' ).children( ':not(.frm_unique_details' + fieldId + '):visible' ).length; + const v = $validationBox.css( 'display', 'block' ).children( `:not(.frm_unique_details${ fieldId }):visible` ).length; $validationBox.css( 'display', '' ); if ( v === 0 ) { $thisField.closest( '.frm_validation_msg' ).fadeOut( 'fast' ); @@ -3482,13 +3543,13 @@ window.frmAdminBuildJS = function() { /*jshint validthis:true */ const fieldId = jQuery( this ).closest( '.frm-single-settings' ).data( 'fid' ); const val = jQuery( this ).val(); - const $thisField = jQuery( document.getElementById( 'frm_field_id_' + fieldId ) ); + const $thisField = jQuery( document.getElementById( `frm_field_id_${ fieldId }` ) ); - toggleValidationBox( val !== '', '.frm_conf_details' + fieldId ); + toggleValidationBox( val !== '', `.frm_conf_details${ fieldId }` ); if ( val !== '' ) { //Add default validation message if empty - const valMsg = jQuery( '.frm_validation_box .frm_conf_details' + fieldId + ' input' ); + const valMsg = jQuery( `.frm_validation_box .frm_conf_details${ fieldId } input` ); if ( valMsg.val() === '' ) { valMsg.val( frmAdminJs.default_conf ); } @@ -3501,9 +3562,9 @@ window.frmAdminBuildJS = function() { } else if ( val === 'below' ) { $thisField.removeClass( 'frm_conf_inline' ).addClass( 'frm_conf_below' ); } - jQuery( '.frm-conf-box-' + fieldId ).removeClass( 'frm_hidden' ); + jQuery( `.frm-conf-box-${ fieldId }` ).removeClass( 'frm_hidden' ); } else { - jQuery( '.frm-conf-box-' + fieldId ).addClass( 'frm_hidden' ); + jQuery( `.frm-conf-box-${ fieldId }` ).addClass( 'frm_hidden' ); setTimeout( function() { $thisField.removeClass( 'frm_conf_inline frm_conf_below' ); }, 200 ); @@ -3511,16 +3572,16 @@ window.frmAdminBuildJS = function() { } function setConfirmationFieldDescriptions( fieldId ) { - const fieldType = document.getElementsByName( 'field_options[type_' + fieldId + ']' )[ 0 ].value; + const fieldType = document.getElementsByName( `field_options[type_${ fieldId }]` )[ 0 ].value; - const fieldDescription = document.getElementById( 'field_description_' + fieldId ); - const hiddenDescName = 'field_options[description_' + fieldId + ']'; - const newValue = frmAdminJs[ 'enter_' + fieldType ]; + const fieldDescription = document.getElementById( `field_description_${ fieldId }` ); + const hiddenDescName = `field_options[description_${ fieldId }]`; + const newValue = frmAdminJs[ `enter_${ fieldType }` ]; maybeSetNewDescription( fieldDescription, hiddenDescName, newValue ); - const confFieldDescription = document.getElementById( 'conf_field_description_' + fieldId ); - const hiddenConfName = 'field_options[conf_desc_' + fieldId + ']'; - const newConfValue = frmAdminJs[ 'confirm_' + fieldType ]; + const confFieldDescription = document.getElementById( `conf_field_description_${ fieldId }` ); + const hiddenConfName = `field_options[conf_desc_${ fieldId }]`; + const newConfValue = frmAdminJs[ `confirm_${ fieldType }` ]; maybeSetNewDescription( confFieldDescription, hiddenConfName, newConfValue ); } @@ -3543,15 +3604,17 @@ window.frmAdminBuildJS = function() { jQuery( builderForm ).on( 'click', 'a.frm-bulk-edit-link', function( event ) { event.preventDefault(); - let i, key, label, - content = '', - optList, - opts, - fieldId = jQuery( this ).closest( '[data-fid]' ).data( 'fid' ), - separate = usingSeparateValues( fieldId ), - product = isProductField( fieldId ); - - optList = document.getElementById( 'frm_field_' + fieldId + '_opts' ); + let i; + let key; + let label; + let content = ''; + let optList; + let opts; + const fieldId = jQuery( this ).closest( '[data-fid]' ).data( 'fid' ); + const separate = usingSeparateValues( fieldId ); + const product = isProductField( fieldId ); + + optList = document.getElementById( `frm_field_${ fieldId }_opts` ); if ( ! optList ) { return; } @@ -3563,14 +3626,14 @@ window.frmAdminBuildJS = function() { for ( i = 0; i < opts.length; i++ ) { key = opts[ i ].getAttribute( 'data-optkey' ); if ( key !== '000' ) { - label = document.getElementsByName( 'field_options[options_' + fieldId + '][' + key + '][label]' )[ 0 ]; + label = document.getElementsByName( `field_options[options_${ fieldId }][${ key }][label]` )[ 0 ]; if ( label !== undefined ) { content += label.value; if ( separate ) { - content += '|' + document.getElementsByName( 'field_options[options_' + fieldId + '][' + key + '][value]' )[ 0 ].value; + content += `|${ document.getElementsByName( `field_options[options_${ fieldId }][${ key }][value]` )[ 0 ].value }`; } if ( product ) { - content += '|' + document.getElementsByName( 'field_options[options_' + fieldId + '][' + key + '][price]' )[ 0 ].value; + content += `|${ document.getElementsByName( `field_options[options_${ fieldId }][${ key }][price]` )[ 0 ].value }`; } content += '\r\n'; } @@ -3612,12 +3675,12 @@ window.frmAdminBuildJS = function() { //Add new option or "Other" option to radio/checkbox/dropdown function addFieldOption() { /*jshint validthis:true */ - let fieldId = jQuery( this ).closest( '.frm-single-settings' ).data( 'fid' ), - newOption = jQuery( '#frm_field_' + fieldId + '_opts .frm_option_template' ).prop( 'outerHTML' ), - optType = jQuery( this ).data( 'opttype' ), - optKey = 0, - oldKey = '000', - lastKey = getHighestOptKey( fieldId ); + const fieldId = jQuery( this ).closest( '.frm-single-settings' ).data( 'fid' ); + let newOption = jQuery( `#frm_field_${ fieldId }_opts .frm_option_template` ).prop( 'outerHTML' ); + const optType = jQuery( this ).data( 'opttype' ); + let optKey = 0; + const oldKey = '000'; + const lastKey = getHighestOptKey( fieldId ); if ( lastKey !== oldKey ) { optKey = lastKey + 1; @@ -3625,7 +3688,7 @@ window.frmAdminBuildJS = function() { //Update hidden field if ( optType === 'other' ) { - document.getElementById( 'other_input_' + fieldId ).value = 1; + document.getElementById( `other_input_${ fieldId }` ).value = 1; //Hide "Add Other" option now if this is radio field const ftype = jQuery( this ).data( 'ftype' ); @@ -3641,14 +3704,14 @@ window.frmAdminBuildJS = function() { nonce: frmGlobal.nonce }; jQuery.post( ajaxurl, data, function( msg ) { - jQuery( document.getElementById( 'frm_field_' + fieldId + '_opts' ) ).append( msg ); + jQuery( document.getElementById( `frm_field_${ fieldId }_opts` ) ).append( msg ); resetDisplayedOpts( fieldId ); } ); } else { - newOption = newOption.replace( new RegExp( 'optkey="' + oldKey + '"', 'g' ), 'optkey="' + optKey + '"' ); - newOption = newOption.replace( new RegExp( '-' + oldKey + '_', 'g' ), '-' + optKey + '_' ); - newOption = newOption.replace( new RegExp( '-' + oldKey + '"', 'g' ), '-' + optKey + '"' ); - newOption = newOption.replace( new RegExp( '\\[' + oldKey + '\\]', 'g' ), '[' + optKey + ']' ); + newOption = newOption.replace( new RegExp( `optkey="${ oldKey }"`, 'g' ), `optkey="${ optKey }"` ); + newOption = newOption.replace( new RegExp( `-${ oldKey }_`, 'g' ), `-${ optKey }_` ); + newOption = newOption.replace( new RegExp( `-${ oldKey }"`, 'g' ), `-${ optKey }"` ); + newOption = newOption.replace( new RegExp( `\\[${ oldKey }\\]`, 'g' ), `[${ optKey }]` ); newOption = newOption.replace( 'frm_hidden frm_option_template', '' ); newOption = { newOption }; addSaveAndDragIconsToOption( fieldId, newOption ); @@ -3680,15 +3743,14 @@ window.frmAdminBuildJS = function() { ? element.closest( '.frm-collapse-me' )?.querySelector( '.frm_sortable_field_opts' ) : element.closest( '.frm_sortable_field_opts' ); - parentEl?.querySelectorAll( '.frm_remove_tag.frm_disabled' )?. - forEach( button => button.classList.remove( 'frm_disabled' ) ); + parentEl?.querySelectorAll( '.frm_remove_tag.frm_disabled' ).forEach( button => button.classList.remove( 'frm_disabled' ) ); } function getHighestOptKey( fieldId ) { - let i = 0, - optKey = 0, - opts = jQuery( '#frm_field_' + fieldId + '_opts li' ), - lastKey = 0; + let i = 0; + let optKey = 0; + const opts = jQuery( `#frm_field_${ fieldId }_opts li` ); + let lastKey = 0; for ( i; i < opts.length; i++ ) { optKey = opts[ i ].getAttribute( 'data-optkey' ); @@ -3715,7 +3777,7 @@ window.frmAdminBuildJS = function() { } function toggleMultiSelect( fieldId, value ) { - const setting = jQuery( '.frm_multiple_cont_' + fieldId ); + const setting = jQuery( `.frm_multiple_cont_${ fieldId }` ); if ( value === 'select' ) { setting.fadeIn( 'fast' ); } else { @@ -3726,24 +3788,25 @@ window.frmAdminBuildJS = function() { function toggleSepValues() { /*jshint validthis:true */ const fieldId = jQuery( this ).closest( '.frm-single-settings' ).data( 'fid' ); - toggle( jQuery( '.field_' + fieldId + '_option_key' ) ); - jQuery( '.field_' + fieldId + '_option' ).toggleClass( 'frm_with_key' ); + toggle( jQuery( `.field_${ fieldId }_option_key` ) ); + jQuery( `.field_${ fieldId }_option` ).toggleClass( 'frm_with_key' ); } function toggleImageOptions() { /*jshint validthis:true */ - let hasImageOptions, imageSize, - $field = jQuery( this ).closest( '.frm-single-settings' ), - fieldId = $field.data( 'fid' ), - displayField = document.getElementById( 'frm_field_id_' + fieldId ); + let hasImageOptions; + let imageSize; + const $field = jQuery( this ).closest( '.frm-single-settings' ); + const fieldId = $field.data( 'fid' ); + const displayField = document.getElementById( `frm_field_id_${ fieldId }` ); refreshOptionDisplayNow( jQuery( this ) ); - toggle( jQuery( '.field_' + fieldId + '_image_id' ) ); - toggle( jQuery( '.frm_toggle_image_options_' + fieldId ) ); - toggle( jQuery( '.frm_image_size_' + fieldId ) ); - toggle( jQuery( '.frm_alignment_' + fieldId ) ); - toggle( jQuery( '.frm-add-other#frm_add_field_' + fieldId ) ); + toggle( jQuery( `.field_${ fieldId }_image_id` ) ); + toggle( jQuery( `.frm_toggle_image_options_${ fieldId }` ) ); + toggle( jQuery( `.frm_image_size_${ fieldId }` ) ); + toggle( jQuery( `.frm_alignment_${ fieldId }` ) ); + toggle( jQuery( `.frm-add-other#frm_add_field_${ fieldId }` ) ); hasImageOptions = imagesAsOptions( fieldId ); @@ -3752,7 +3815,7 @@ window.frmAdminBuildJS = function() { removeImageSizeClasses( displayField ); imageSize = getImageOptionSize( fieldId ); displayField.classList.add( 'frm_image_options' ); - displayField.classList.add( 'frm_image_size_' + imageSize ); + displayField.classList.add( `frm_image_size_${ imageSize }` ); $field.find( '.frm-bulk-edit-link' ).hide(); } else { displayField.classList.remove( 'frm_image_options' ); @@ -3775,27 +3838,27 @@ window.frmAdminBuildJS = function() { } function setAlignment( fieldId, alignment ) { - jQuery( '#field_options_align_' + fieldId ).val( alignment ).trigger( 'change' ); + jQuery( `#field_options_align_${ fieldId }` ).val( alignment ).trigger( 'change' ); } function setImageSize() { - const $field = jQuery( this ).closest( '.frm-single-settings' ), - fieldId = $field.data( 'fid' ), - displayField = document.getElementById( 'frm_field_id_' + fieldId ); + const $field = jQuery( this ).closest( '.frm-single-settings' ); + const fieldId = $field.data( 'fid' ); + const displayField = document.getElementById( `frm_field_id_${ fieldId }` ); refreshOptionDisplay(); if ( imagesAsOptions( fieldId ) ) { removeImageSizeClasses( displayField ); displayField.classList.add( 'frm_image_options' ); - displayField.classList.add( 'frm_image_size_' + getImageOptionSize( fieldId ) ); + displayField.classList.add( `frm_image_size_${ getImageOptionSize( fieldId ) }` ); } } function refreshOptionDisplayNow( object ) { - const $field = object.closest( '.frm-single-settings' ), - fieldID = $field.data( 'fid' ); - jQuery( '.field_' + fieldID + '_option' ).trigger( 'change' ); + const $field = object.closest( '.frm-single-settings' ); + const fieldID = $field.data( 'fid' ); + jQuery( `.field_${ fieldID }_option` ).trigger( 'change' ); } function refreshOptionDisplay() { @@ -3842,8 +3905,8 @@ window.frmAdminBuildJS = function() { } function removeImageFromOption( event ) { - const $this = jQuery( this ), - previewWrapper = $this.closest( '.frm_image_preview_wrapper' ); + const $this = jQuery( this ); + const previewWrapper = $this.closest( '.frm_image_preview_wrapper' ); event.preventDefault(); event.stopPropagation(); @@ -3884,12 +3947,12 @@ window.frmAdminBuildJS = function() { * @param {Event} event The event object associated with the click on the dismiss icon. */ function dismissWarningMessage( event ) { - const target = event.target; + const { target } = event; const warningEl = target.closest( '.frm_warning_style' ); jQuery( warningEl ).fadeOut( 400, () => warningEl.remove() ); - const action = target.dataset.action; + const { action } = target.dataset; const formData = new FormData(); doJsonPost( action, formData ); } @@ -3918,8 +3981,8 @@ window.frmAdminBuildJS = function() { } /*jshint validthis:true */ - let otherInput, - fieldId = this.getAttribute( 'data-fid' ); + let otherInput; + const fieldId = this.getAttribute( 'data-fid' ); jQuery( parentLi ).fadeOut( 'fast', function() { wp.hooks.doAction( 'frm_before_delete_field_option', this ); @@ -3927,11 +3990,11 @@ window.frmAdminBuildJS = function() { const hasOther = jQuery( parentUl ).find( '.frm_other_option' ); if ( hasOther.length < 1 ) { - otherInput = document.getElementById( 'other_input_' + fieldId ); + otherInput = document.getElementById( `other_input_${ fieldId }` ); if ( otherInput !== null ) { otherInput.value = 0; } - jQuery( '#other_button_' + fieldId ).fadeIn( 'fast' ); + jQuery( `#other_button_${ fieldId }` ).fadeIn( 'fast' ); } } ); fieldUpdated(); @@ -3942,7 +4005,10 @@ window.frmAdminBuildJS = function() { * deselect it. */ function maybeUncheckRadio() { - let $self, uncheck, unbind, up; + let $self; + let uncheck; + let unbind; + let up; /*jshint validthis:true */ $self = jQuery( this ); @@ -3982,11 +4048,11 @@ window.frmAdminBuildJS = function() { function clickDeleteField() { /*jshint validthis:true */ - let confirmMsg = frmAdminJs.conf_delete, - maybeDivider = this.parentNode.parentNode.parentNode.parentNode.parentNode, - li = maybeDivider.parentNode, - field = jQuery( this ).closest( 'li.form-field' ), - fieldId = field.data( 'fid' ); + let confirmMsg = frmAdminJs.conf_delete; + const maybeDivider = this.parentNode.parentNode.parentNode.parentNode.parentNode; + const li = maybeDivider.parentNode; + const field = jQuery( this ).closest( 'li.form-field' ); + const fieldId = field.data( 'fid' ); if ( field.data( 'ftype' ) === 'divider' ) { const fieldBoxes = document.querySelectorAll( '.frm-field-group-hover-target .start_divider .frm_field_box' ); @@ -4026,7 +4092,8 @@ window.frmAdminBuildJS = function() { } function clickDeleteFieldGroup() { - let hoverTarget, decoy; + let hoverTarget; + let decoy; hoverTarget = document.querySelector( '.frm-field-group-hover-target' ); if ( null === hoverTarget ) { @@ -4047,7 +4114,7 @@ window.frmAdminBuildJS = function() { return; } - const newRowId = 'frm_field_group_' + getAutoId(); + const newRowId = `frm_field_group_${ getAutoId() }`; const placeholderUlChild = document.createTextNode( '' ); wrapFieldLiInPlace( placeholderUlChild ); @@ -4087,7 +4154,7 @@ window.frmAdminBuildJS = function() { ); for ( let index = 0; index < expectedLength; ++index ) { - $newRowUl.append( $newRowUl.children( 'li.form-field[frm-field-order="' + index + '"]' ) ); + $newRowUl.append( $newRowUl.children( `li.form-field[frm-field-order="${ index }"]` ) ); } syncLayoutClasses( $duplicatedFields.first(), syncDetails ); @@ -4118,7 +4185,9 @@ window.frmAdminBuildJS = function() { } function clickFieldGroupLayout() { - let hoverTarget, sizeOfFieldGroup, popupWrapper; + let hoverTarget; + let sizeOfFieldGroup; + let popupWrapper; hoverTarget = document.querySelector( '.frm-field-group-hover-target' ); @@ -4162,7 +4231,10 @@ window.frmAdminBuildJS = function() { } function getFieldGroupPopup( sizeOfFieldGroup, childElement ) { - let popup, wrapper, rowLayoutOptions, ul; + let popup; + let wrapper; + let rowLayoutOptions; + let ul; popup = document.getElementById( 'frm_field_group_popup' ); if ( null === popup ) { @@ -4199,7 +4271,9 @@ window.frmAdminBuildJS = function() { } function maybeMarkRowLayoutAsActive( activeRow, options ) { - let length, index, currentRow; + let length; + let index; + let currentRow; length = options.children.length; for ( index = 0; index < length; ++index ) { @@ -4255,7 +4329,8 @@ window.frmAdminBuildJS = function() { } function getRowLayoutOptions( size ) { - let wrapper, padding; + let wrapper; + let padding; wrapper = getEmptyGridContainer(); @@ -4284,7 +4359,8 @@ window.frmAdminBuildJS = function() { } function getRowLayoutOption( size, type ) { - let option, useClass; + let option; + let useClass; option = div(); option.classList.add( 'frm-row-layout-option' ); @@ -4319,7 +4395,9 @@ window.frmAdminBuildJS = function() { } function getRowLayoutAsKey( row ) { - let $fields, sizes; + let $fields; + let sizes; + if ( row.classList.contains( 'frm-row-layout-option' ) ) { $fields = jQuery( row ).find( '.frm_grid_container' ).children(); } else { @@ -4335,7 +4413,9 @@ window.frmAdminBuildJS = function() { } function getRowForSizeAndType( size, type ) { - let row, index, block; + let row; + let index; + let block; row = getEmptyGridContainer(); for ( index = 0; index < size; ++index ) { @@ -4445,7 +4525,9 @@ window.frmAdminBuildJS = function() { } function handleFieldGroupLayoutOptionInsideMergeClick() { - let $ul, type; + let $ul; + let type; + $ul = mergeSelectedFieldGroups(); type = this.getAttribute( 'layout-type' ); syncLayoutClasses( getFieldsInRow( $ul ).first(), type ); @@ -4453,8 +4535,8 @@ window.frmAdminBuildJS = function() { } function mergeSelectedFieldGroups() { - const $selectedFieldGroups = jQuery( '.frm-selected-field-group' ), - $firstGroupUl = $selectedFieldGroups.first(); + const $selectedFieldGroups = jQuery( '.frm-selected-field-group' ); + const $firstGroupUl = $selectedFieldGroups.first(); $selectedFieldGroups.not( $firstGroupUl ).each( function() { getFieldsInRow( jQuery( this ) ).each( @@ -4484,7 +4566,20 @@ window.frmAdminBuildJS = function() { } function setupCustomLayoutOptions( $fields ) { - let size, popup, wrapper, layoutClass, inputRow, paddingElement, inputValueOverride, index, inputField, heading, label, buttonsWrapper, cancelButton, saveButton; + let size; + let popup; + let wrapper; + let layoutClass; + let inputRow; + let paddingElement; + let inputValueOverride; + let index; + let inputField; + let heading; + let label; + let buttonsWrapper; + let cancelButton; + let saveButton; size = $fields.length; @@ -4614,7 +4709,10 @@ window.frmAdminBuildJS = function() { } function getLayoutClassName( classList ) { - let classes, index, currentClass; + let classes; + let index; + let currentClass; + classes = getLayoutClasses(); for ( index = 0; index < classes.length; ++index ) { currentClass = classes[ index ]; @@ -4626,7 +4724,7 @@ window.frmAdminBuildJS = function() { } function getLayoutClassForSize( size ) { - return 'frm' + size; + return `frm${ size }`; } function breakFieldGroupClick() { @@ -4667,7 +4765,9 @@ window.frmAdminBuildJS = function() { } function destroyFieldGroupPopup() { - let popup, wrapper; + let popup; + let wrapper; + popup = document.getElementById( 'frm_field_group_popup' ); if ( popup === null ) { return; @@ -4681,7 +4781,9 @@ window.frmAdminBuildJS = function() { } function saveCustomFieldGroupClick() { - let syncDetails, $controls, $ul; + let syncDetails; + let $controls; + let $ul; syncDetails = []; @@ -4960,7 +5062,11 @@ window.frmAdminBuildJS = function() { } function getFieldMultiselectPopup() { - let popup, mergeOption, caret, verticalSeparator, deleteOption; + let popup; + let mergeOption; + let caret; + let verticalSeparator; + let deleteOption; popup = document.getElementById( 'frm_field_multiselect_popup' ); @@ -5004,7 +5110,11 @@ window.frmAdminBuildJS = function() { } function selectedFieldsAreMergeable() { - let selectedFieldGroups, totalFieldCount, length, index, fieldGroup; + let selectedFieldGroups; + let totalFieldCount; + let length; + let index; + let fieldGroup; selectedFieldGroups = document.querySelectorAll( '.frm-selected-field-group' ); length = selectedFieldGroups.length; if ( 1 === length ) { @@ -5025,7 +5135,8 @@ window.frmAdminBuildJS = function() { } function mergeFieldsIntoRowClick( event ) { - let size, popup; + let size; + let popup; if ( null !== event.originalEvent.target.closest( '#frm_field_group_popup' ) ) { // prevent clicks within the popup from triggering the button again. @@ -5053,7 +5164,9 @@ window.frmAdminBuildJS = function() { } function deleteFieldGroupsClick() { - let fieldIdsToDelete, deleteOnConfirm, multiselectPopup; + let fieldIdsToDelete; + let deleteOnConfirm; + let multiselectPopup; fieldIdsToDelete = getSelectedFieldIds(); deleteOnConfirm = getDeleteSelectedFieldGroupsOnConfirmFunction( fieldIdsToDelete ); @@ -5110,7 +5223,7 @@ window.frmAdminBuildJS = function() { } function deleteFields( fieldId ) { - const field = jQuery( '#frm_field_id_' + fieldId ); + const field = jQuery( `#frm_field_id_${ fieldId }` ); deleteField( fieldId ); @@ -5180,8 +5293,8 @@ window.frmAdminBuildJS = function() { nonce: frmGlobal.nonce }, success() { - const $thisField = jQuery( document.getElementById( 'frm_field_id_' + fieldId ) ), - settings = jQuery( '#frm-single-settings-' + fieldId ); + const $thisField = jQuery( document.getElementById( `frm_field_id_${ fieldId }` ) ); + const settings = jQuery( `#frm-single-settings-${ fieldId }` ); // Remove settings from sidebar. if ( settings.is( ':visible' ) ) { @@ -5193,10 +5306,10 @@ window.frmAdminBuildJS = function() { settings.remove(); $thisField.fadeOut( 'slow', function() { - let $section = $thisField.closest( '.start_divider' ), - type = $thisField.data( 'type' ), - $adjacentFields = $thisField.siblings( 'li.form-field' ), - $liWrapper; + const $section = $thisField.closest( '.start_divider' ); + const type = $thisField.data( 'type' ); + const $adjacentFields = $thisField.siblings( 'li.form-field' ); + let $liWrapper; if ( ! $adjacentFields.length ) { if ( $thisField.is( '.edit_field_type_end_divider' ) ) { @@ -5262,14 +5375,14 @@ window.frmAdminBuildJS = function() { } function countFieldTypeInForm( type ) { - return document.getElementById( 'frm-show-fields' ).querySelectorAll( 'li.form-field[data-ftype="' + type + '"]' ).length; + return document.getElementById( 'frm-show-fields' ).querySelectorAll( `li.form-field[data-ftype="${ type }"]` ).length; } function addFieldLogicRow() { /*jshint validthis:true */ - const id = jQuery( this ).closest( '.frm-single-settings' ).data( 'fid' ), - formId = thisFormId, - logicRows = document.getElementById( 'frm_logic_row_' + id ).querySelectorAll( '.frm_logic_row' ); + const id = jQuery( this ).closest( '.frm-single-settings' ).data( 'fid' ); + const formId = thisFormId; + const logicRows = document.getElementById( `frm_logic_row_${ id }` ).querySelectorAll( '.frm_logic_row' ); jQuery.ajax( { type: 'POST', url: ajaxurl, @@ -5278,12 +5391,12 @@ window.frmAdminBuildJS = function() { form_id: formId, field_id: id, nonce: frmGlobal.nonce, - meta_name: getNewRowId( logicRows, 'frm_logic_' + id + '_' ), + meta_name: getNewRowId( logicRows, `frm_logic_${ id }_` ), fields: getFieldList() }, success( html ) { - jQuery( document.getElementById( 'logic_' + id ) ).fadeOut( 'fast', function() { - const logicRow = document.getElementById( 'frm_logic_row_' + id ); + jQuery( document.getElementById( `logic_${ id }` ) ).fadeOut( 'fast', function() { + const logicRow = document.getElementById( `frm_logic_row_${ id }` ); logicRow.insertAdjacentHTML( 'beforeend', html ); const logicRowText = logicRow.querySelector( '.frm_logic_row:last-child .frm-logic-rule-text' ); @@ -5309,9 +5422,9 @@ window.frmAdminBuildJS = function() { function addWatchLookupRow() { /*jshint validthis:true */ - const id = jQuery( this ).closest( '.frm-single-settings' ).data( 'fid' ), - formId = thisFormId, - lookupBlockRows = document.getElementById( 'frm_watch_lookup_block_' + id ).children; + const id = jQuery( this ).closest( '.frm-single-settings' ).data( 'fid' ); + const formId = thisFormId; + const lookupBlockRows = document.getElementById( `frm_watch_lookup_block_${ id }` ).children; jQuery.ajax( { type: 'POST', @@ -5320,11 +5433,11 @@ window.frmAdminBuildJS = function() { action: 'frm_add_watch_lookup_row', form_id: formId, field_id: id, - row_key: getNewRowId( lookupBlockRows, 'frm_watch_lookup_' + id + '_' ), + row_key: getNewRowId( lookupBlockRows, `frm_watch_lookup_${ id }_` ), nonce: frmGlobal.nonce }, success( newRow ) { - const watchRowBlock = jQuery( document.getElementById( 'frm_watch_lookup_block_' + id ) ); + const watchRowBlock = jQuery( document.getElementById( `frm_watch_lookup_block_${ id }` ) ); watchRowBlock.append( newRow ); watchRowBlock.fadeIn( 'slow' ); @@ -5341,10 +5454,10 @@ window.frmAdminBuildJS = function() { } function optionTextAlreadyExists( input ) { - let fieldId = jQuery( input ).closest( '.frm-single-settings' ).attr( 'data-fid' ), - optionInputs = jQuery( input ).closest( 'ul' ).get( 0 ).querySelectorAll( '.field_' + fieldId + '_option' ), - index, - optionInput; + const fieldId = jQuery( input ).closest( '.frm-single-settings' ).attr( 'data-fid' ); + const optionInputs = jQuery( input ).closest( 'ul' ).get( 0 ).querySelectorAll( `.field_${ fieldId }_option` ); + let index; + let optionInput; for ( index in optionInputs ) { optionInput = optionInputs[ index ]; @@ -5357,8 +5470,8 @@ window.frmAdminBuildJS = function() { } function onOptionTextFocus() { - let input, - fieldId; + let input; + let fieldId; if ( this.getAttribute( 'data-value-on-load' ) === null ) { this.setAttribute( 'data-value-on-load', this.value ); @@ -5367,7 +5480,7 @@ window.frmAdminBuildJS = function() { input = document.createElement( 'input' ); input.value = this.value; input.setAttribute( 'type', 'hidden' ); - input.setAttribute( 'name', 'optionmap[' + fieldId + '][' + this.value + ']' ); + input.setAttribute( 'name', `optionmap[${ fieldId }][${ this.value }]` ); this.parentNode.append( input ); if ( optionMap[ fieldId ] === undefined ) { @@ -5414,7 +5527,8 @@ window.frmAdminBuildJS = function() { function getChoiceNewValueAndLabel( choiceElement ) { const singleOptionContainer = choiceElement.closest( '.frm_single_option' ); - let newValue, newLabel; + let newValue; + let newLabel; if ( choiceElement.parentElement.classList.contains( 'frm_single_option' ) ) { // label changed newValue = singleOptionContainer.querySelector( '.frm_option_key input[type="text"]' ).value; @@ -5438,7 +5552,8 @@ window.frmAdminBuildJS = function() { const usingSeparateValues = choiceElement.closest( '.frm-single-settings' ).querySelector( '.frm_toggle_sep_values' )?.checked ?? false; const singleOptionContainer = choiceElement.closest( '.frm_single_option' ); - let oldValue, oldLabel; + let oldValue; + let oldLabel; if ( usingSeparateValues ) { if ( choiceElement.parentElement.classList.contains( 'frm_single_option' ) ) { // label changed @@ -5454,20 +5569,20 @@ window.frmAdminBuildJS = function() { } function onOptionTextBlur() { - let originalValue, - fieldId, - fieldIndex, - logicId, - row, - rowLength, - rowIndex, - valueSelect, - opts, - fieldIds, - settingId, - setting, - optionMatches, - option; + let originalValue; + let fieldId; + let fieldIndex; + let logicId; + let row; + let rowLength; + let rowIndex; + let valueSelect; + let opts; + let fieldIds; + let settingId; + let setting; + let optionMatches; + let option; const { oldValue, oldLabel, newValue, newLabel } = getChoiceOldAndNewValues( this ); @@ -5509,16 +5624,16 @@ window.frmAdminBuildJS = function() { } logicId = row.id.split( '_' )[ 2 ]; - valueSelect = row.querySelector( 'select[name="field_options[hide_opt_' + logicId + '][]"]' ); + valueSelect = row.querySelector( `select[name="field_options[hide_opt_${ logicId }][]"]` ); if ( '' === oldValue ) { optionMatches = []; } else { - optionMatches = valueSelect.querySelectorAll( 'option[value="' + oldValue + '"]' ); + optionMatches = valueSelect.querySelectorAll( `option[value="${ oldValue }"]` ); } if ( ! optionMatches.length ) { - optionMatches = valueSelect.querySelectorAll( 'option[value="' + newValue + '"]' ); + optionMatches = valueSelect.querySelectorAll( `option[value="${ newValue }"]` ); if ( ! optionMatches.length ) { if ( ! singleSettingsContainer.querySelector( '.frm_toggle_sep_values' )?.checked ) { @@ -5546,7 +5661,7 @@ window.frmAdminBuildJS = function() { for ( fieldIndex in fieldIds ) { settingId = fieldIds[ fieldIndex ]; - setting = document.getElementById( 'frm-single-settings-' + settingId ); + setting = document.getElementById( `frm-single-settings-${ settingId }` ); moveFieldSettings( setting ); } } @@ -5559,7 +5674,7 @@ window.frmAdminBuildJS = function() { * @return {HTMLElement|null} */ function searchSelectByText( selectElement, searchText ) { - const options = selectElement.options; + const { options } = selectElement; for ( let i = 0; i < options.length; i++ ) { const option = options[ i ]; @@ -5574,7 +5689,7 @@ window.frmAdminBuildJS = function() { function updateGetValueFieldSelection() { /*jshint validthis:true */ const fieldID = this.id.replace( 'get_values_form_', '' ); - const fieldSelect = document.getElementById( 'get_values_field_' + fieldID ); + const fieldSelect = document.getElementById( `get_values_field_${ fieldID }` ); const fieldType = this.getAttribute( 'data-fieldtype' ); if ( this.value === '' ) { @@ -5599,17 +5714,18 @@ window.frmAdminBuildJS = function() { // Clear the Watch Fields option when Lookup field switches to "Text" option function maybeClearWatchFields() { /*jshint validthis:true */ - let link, lookupBlock, - fieldID = this.name.replace( 'field_options[data_type_', '' ).replace( ']', '' ); + let link; + let lookupBlock; + const fieldID = this.name.replace( 'field_options[data_type_', '' ).replace( ']', '' ); - link = document.getElementById( 'frm_add_watch_lookup_link_' + fieldID ); + link = document.getElementById( `frm_add_watch_lookup_link_${ fieldID }` ); if ( ! link ) { return; } link = link.parentNode; if ( this.value === 'text' ) { - lookupBlock = document.getElementById( 'frm_watch_lookup_block_' + fieldID ); + lookupBlock = document.getElementById( `frm_watch_lookup_block_${ fieldID }` ); if ( lookupBlock !== null ) { // Clear and hide the Watch Fields option lookupBlock.innerHTML = ''; @@ -5630,8 +5746,9 @@ window.frmAdminBuildJS = function() { // Number the pages and hide/show the first page as needed. function renumberPageBreaks() { - let i, containerClass, - pages = document.getElementsByClassName( 'frm-page-num' ); + let i; + let containerClass; + const pages = document.getElementsByClassName( 'frm-page-num' ); if ( pages.length > 1 ) { document.getElementById( 'frm-fake-page' ).style.display = 'block'; @@ -5670,9 +5787,9 @@ window.frmAdminBuildJS = function() { } function toggleCollapseFakePage() { - const topLevel = document.getElementById( 'frm-fake-page' ), - firstField = document.getElementById( 'frm-show-fields' ).firstElementChild, - toCollapse = getAllFieldsForPage( firstField ); + const topLevel = document.getElementById( 'frm-fake-page' ); + const firstField = document.getElementById( 'frm-show-fields' ).firstElementChild; + const toCollapse = getAllFieldsForPage( firstField ); if ( firstField.getAttribute( 'data-ftype' ) === 'break' ) { // Don't collapse if the first field is a page break. @@ -5683,7 +5800,8 @@ window.frmAdminBuildJS = function() { } function getAllFieldsForPage( firstWrapper ) { - let $fieldsForPage, currentWrapper; + let $fieldsForPage; + let currentWrapper; $fieldsForPage = jQuery(); @@ -5705,9 +5823,9 @@ window.frmAdminBuildJS = function() { } function togglePage( field, toCollapse ) { - let i, - fieldCount = toCollapse.length, - slide = Math.min( fieldCount, 3 ); + let i; + const fieldCount = toCollapse.length; + const slide = Math.min( fieldCount, 3 ); if ( field.hasClass( 'frm-page-collapsed' ) ) { field.removeClass( 'frm-page-collapsed' ); @@ -5781,10 +5899,10 @@ window.frmAdminBuildJS = function() { } /*jshint validthis:true */ - let setting = document.querySelectorAll( '[data-changeme="' + this.id + '"]' )[ 0 ], - fieldId = this.id.replace( 'field_label_', '' ), - fieldType = document.getElementById( 'field_options_type_' + fieldId ), - fieldTypeName = fieldType.value; + const setting = document.querySelectorAll( `[data-changeme="${ this.id }"]` )[ 0 ]; + const fieldId = this.id.replace( 'field_label_', '' ); + const fieldType = document.getElementById( `field_options_type_${ fieldId }` ); + let fieldTypeName = fieldType.value; if ( setting !== undefined ) { if ( fieldType.tagName === 'SELECT' ) { @@ -5807,7 +5925,7 @@ window.frmAdminBuildJS = function() { function clickDescription() { /*jshint validthis:true */ - const setting = document.querySelectorAll( '[data-changeme="' + this.id + '"]' )[ 0 ]; + const setting = document.querySelectorAll( `[data-changeme="${ this.id }"]` )[ 0 ]; if ( setting !== undefined ) { setTimeout( function() { setting.focus(); @@ -5838,7 +5956,8 @@ window.frmAdminBuildJS = function() { function clickVis( e ) { /*jshint validthis:true */ - let currentClass, originalList; + let currentClass; + let originalList; currentClass = e.target.classList; @@ -5876,7 +5995,7 @@ window.frmAdminBuildJS = function() { const type = formatElement.value; if ( 'custom' === type ) { - const fieldId = formatElement.dataset.fieldId; + const { fieldId } = formatElement.dataset; const formatInput = document.getElementById( `frm-field-format-custom-${ fieldId }` ).querySelector( '.frm_format_opt' ); if ( 'international' === formatInput.value || 'currency' === formatInput.value || 'number' === formatInput.value ) { @@ -5903,13 +6022,13 @@ window.frmAdminBuildJS = function() { */ function openAdvanced() { const fieldId = this.getAttribute( 'data-fid' ); - autoExpandSettings( document.getElementById( 'field_options_field_key_' + fieldId ) ); + autoExpandSettings( document.getElementById( `field_options_field_key_${ fieldId }` ) ); } function toggleRepeatButtons() { /*jshint validthis:true */ const $thisField = jQuery( this ).closest( '.frm_field_box' ); - $thisField.find( '.repeat_icon_links' ).removeClass( 'repeat_format repeat_formatboth repeat_formattext' ).addClass( 'repeat_format' + this.value ); + $thisField.find( '.repeat_icon_links' ).removeClass( 'repeat_format repeat_formatboth repeat_formattext' ).addClass( `repeat_format${ this.value }` ); if ( this.value === 'text' || this.value === 'both' ) { $thisField.find( '.frm_repeat_text' ).show(); $thisField.find( '.repeat_icon_links a' ).addClass( 'frm_button' ); @@ -5939,12 +6058,12 @@ window.frmAdminBuildJS = function() { function updateRepeatText( obj, addRemove ) { const $thisField = jQuery( obj ).closest( '.frm_field_box' ); - $thisField.find( '.frm_' + addRemove + '_form_row .frm_repeat_label' ).text( obj.value ); + $thisField.find( `.frm_${ addRemove }_form_row .frm_repeat_label` ).text( obj.value ); } function fieldsInSection( id ) { const children = []; - jQuery( document.getElementById( 'frm_field_id_' + id ) ).find( 'li.frm_field_box:not(.no_repeat_section .edit_field_type_end_divider)' ).each( function() { + jQuery( document.getElementById( `frm_field_id_${ id }` ) ).find( 'li.frm_field_box:not(.no_repeat_section .edit_field_type_end_divider)' ).each( function() { children.push( jQuery( this ).data( 'fid' ) ); } ); return children; @@ -5954,8 +6073,8 @@ window.frmAdminBuildJS = function() { /*jshint validthis:true */ const id = jQuery( this ).closest( '.frm-single-settings' ).data( 'fid' ); const val = this.value; - const $showFields = document.getElementById( 'frm_show_selected_fields_' + id ); - const $showForms = document.getElementById( 'frm_show_selected_forms_' + id ); + const $showFields = document.getElementById( `frm_show_selected_fields_${ id }` ); + const $showForms = document.getElementById( `frm_show_selected_forms_${ id }` ); jQuery( $showForms ).find( 'select' ).val( '' ); if ( val === 'form' ) { @@ -5970,7 +6089,8 @@ window.frmAdminBuildJS = function() { function resetOptOnChange() { /*jshint validthis:true */ - let field, thisOpt; + let field; + let thisOpt; field = getFieldKeyFromOpt( this ); if ( ! field ) { @@ -5983,7 +6103,9 @@ window.frmAdminBuildJS = function() { } function getFieldKeyFromOpt( object ) { - let allOpts, fieldId, fieldKey; + let allOpts; + let fieldId; + let fieldKey; allOpts = jQuery( object ).closest( '.frm_sortable_field_opts' ); if ( ! allOpts.length ) { @@ -6000,12 +6122,17 @@ window.frmAdminBuildJS = function() { } function resetSingleOpt( fieldId, fieldKey, thisOpt ) { - let saved, text, defaultVal, previewInput, labelForDisplay, optContainer, - optKey = thisOpt.data( 'optkey' ), - separateValues = usingSeparateValues( fieldId ), - single = jQuery( 'label[for="field_' + fieldKey + '-' + optKey + '"]' ), - baseName = 'field_options[options_' + fieldId + '][' + optKey + ']', - label = jQuery( 'input[name="' + baseName + '[label]"]' ); + let saved; + let text; + let defaultVal; + let previewInput; + let labelForDisplay; + let optContainer; + const optKey = thisOpt.data( 'optkey' ); + const separateValues = usingSeparateValues( fieldId ); + const single = jQuery( `label[for="field_${ fieldKey }-${ optKey }"]` ); + const baseName = `field_options[options_${ fieldId }][${ optKey }]`; + let label = jQuery( `input[name="${ baseName }[label]"]` ); if ( single.length < 1 ) { resetDisplayedOpts( fieldId ); @@ -6013,7 +6140,7 @@ window.frmAdminBuildJS = function() { // Set the default value. defaultVal = thisOpt.find( 'input[name^="default_value_"]' ); if ( defaultVal.is( ':checked' ) && label.length > 0 ) { - jQuery( 'select[name^="item_meta[' + fieldId + ']"]' ).val( label.val() ); + jQuery( `select[name^="item_meta[${ fieldId }]"]` ).val( label.val() ); } return; } @@ -6022,10 +6149,10 @@ window.frmAdminBuildJS = function() { if ( label.length < 1 ) { // Check for other label. - label = jQuery( 'input[name="' + baseName + '"]' ); + label = jQuery( `input[name="${ baseName }"]` ); saved = label.val(); } else if ( separateValues ) { - saved = jQuery( 'input[name="' + baseName + '[value]"]' ).val(); + saved = jQuery( `input[name="${ baseName }[value]"]` ).val(); } else { saved = label.val(); } @@ -6058,10 +6185,10 @@ window.frmAdminBuildJS = function() { let nodeValue = ''; if ( buttonsAsOptions( fieldId ) ) { - nodeValue = div( { className: 'frm_label_button_container', text: ' ' + label.val() } ); + nodeValue = div( { className: 'frm_label_button_container', text: ` ${ label.val() }` } ); single[ 0 ].replaceChild( nodeValue, node ); } else { - node.nodeValue = ' ' + label.val(); + node.nodeValue = ` ${ label.val() }`; } } else { node.remove(); @@ -6078,7 +6205,7 @@ window.frmAdminBuildJS = function() { } function buttonsAsOptions( fieldId ) { - const fields = document.getElementsByName( 'field_options[image_options_' + fieldId + ']' ); + const fields = document.getElementsByName( `field_options[image_options_${ fieldId }]` ); const result = Array.from( fields ).find( field => field.checked && ( 'buttons' === field.value ) ); return result !== undefined; @@ -6091,7 +6218,9 @@ window.frmAdminBuildJS = function() { * @param label */ function getImageDisplayValue( thisOpt, fieldId, label ) { - let image, imageUrl, showLabelWithImage; + let image; + let imageUrl; + let showLabelWithImage; image = thisOpt.find( 'img' ); if ( image ) { @@ -6103,9 +6232,9 @@ window.frmAdminBuildJS = function() { } function getImageOptionSize( fieldId ) { - let val, - field = document.getElementById( 'field_options_image_size_' + fieldId ), - size = ''; + let val; + const field = document.getElementById( `field_options_image_size_${ fieldId }` ); + let size = ''; if ( field !== null ) { val = field.value; @@ -6117,15 +6246,19 @@ window.frmAdminBuildJS = function() { return size; } function resetDisplayedOpts( fieldId ) { - let i, opts, type, placeholder, fieldInfo, - input = jQuery( '[name^="item_meta[' + fieldId + ']"]' ); + let i; + let opts; + let type; + let placeholder; + let fieldInfo; + const input = jQuery( `[name^="item_meta[${ fieldId }]"]` ); if ( input.length < 1 ) { return; } if ( input.is( 'select' ) ) { - placeholder = document.getElementById( 'frm_placeholder_' + fieldId ); + placeholder = document.getElementById( `frm_placeholder_${ fieldId }` ); if ( placeholder === null || placeholder.value === '' ) { fillDropdownOpts( input[ 0 ], { sourceID: fieldId } ); } else { @@ -6136,14 +6269,14 @@ window.frmAdminBuildJS = function() { } } else { opts = getMultipleOpts( fieldId ); - jQuery( '#field_' + fieldId + '_inner_container > .frm_form_fields' ).html( '' ); - fieldInfo = getFieldKeyFromOpt( jQuery( '#frm_delete_field_' + fieldId + '-000_container' ) ); + jQuery( `#field_${ fieldId }_inner_container > .frm_form_fields` ).html( '' ); + fieldInfo = getFieldKeyFromOpt( jQuery( `#frm_delete_field_${ fieldId }-000_container` ) ); - const container = jQuery( '#field_' + fieldId + '_inner_container > .frm_form_fields' ), - hasImageOptions = imagesAsOptions( fieldId ), - imageSize = hasImageOptions ? getImageOptionSize( fieldId ) : '', - imageOptionClass = hasImageOptions ? ( 'frm_image_option frm_image_' + imageSize + ' ' ) : '', - isProduct = isProductField( fieldId ); + const container = jQuery( `#field_${ fieldId }_inner_container > .frm_form_fields` ); + const hasImageOptions = imagesAsOptions( fieldId ); + const imageSize = hasImageOptions ? getImageOptionSize( fieldId ) : ''; + const imageOptionClass = hasImageOptions ? ( `frm_image_option frm_image_${ imageSize } ` ) : ''; + const isProduct = isProductField( fieldId ); type = ( 'hidden' === input.attr( 'type' ) ? input.data( 'field-type' ) : input.attr( 'type' ) ); for ( i = 0; i < opts.length; i++ ) { @@ -6162,9 +6295,9 @@ window.frmAdminBuildJS = function() { * @return {Object} */ function getNewConditionalLogicOption( fieldId, expectedOption ) { - const optionsContainer = document.getElementById( 'frm_field_' + fieldId + '_opts' ); + const optionsContainer = document.getElementById( `frm_field_${ fieldId }_opts` ); - const expectedOptionInput = optionsContainer.querySelector( 'input[value="' + expectedOption + '"]' ); + const expectedOptionInput = optionsContainer.querySelector( `input[value="${ expectedOption }"]` ); if ( expectedOptionInput ) { return getChoiceNewValueAndLabel( expectedOptionInput ); @@ -6174,9 +6307,18 @@ window.frmAdminBuildJS = function() { } function adjustConditionalLogicOptionOrders( fieldId, type ) { - let row, opts, logicId, valueSelect, optionLength, optionIndex, expectedOption, optionMatch, fieldOptions, rowIndex, - rows = builderPage.querySelectorAll( '.frm_logic_row' ), - rowLength = rows.length; + let row; + let opts; + let logicId; + let valueSelect; + let optionLength; + let optionIndex; + let expectedOption; + let optionMatch; + let fieldOptions; + let rowIndex; + const rows = builderPage.querySelectorAll( '.frm_logic_row' ); + const rowLength = rows.length; fieldOptions = wp.hooks.applyFilters( 'frm_conditional_logic_field_options', getFieldOptions( fieldId ), { type, fieldId } ); optionLength = fieldOptions.length; @@ -6190,24 +6332,24 @@ window.frmAdminBuildJS = function() { } logicId = row.id.split( '_' )[ 2 ]; - valueSelect = row.querySelector( 'select[name="field_options[hide_opt_' + logicId + '][]"]' ); + valueSelect = row.querySelector( `select[name="field_options[hide_opt_${ logicId }][]"]` ); for ( optionIndex = optionLength - 1; optionIndex >= 0; optionIndex-- ) { expectedOption = fieldOptions[ optionIndex ]; - let expectedOptionValue = document.getElementById( 'frm_field_' + fieldId + '_opts' ).querySelector( '.frm_option_key input[type="text"]' )?.value; + let expectedOptionValue = document.getElementById( `frm_field_${ fieldId }_opts` ).querySelector( '.frm_option_key input[type="text"]' )?.value; if ( ! expectedOptionValue ) { expectedOptionValue = expectedOption; } - optionMatch = valueSelect.querySelector( 'option[value="' + expectedOptionValue + '"]' ); + optionMatch = valueSelect.querySelector( `option[value="${ expectedOptionValue }"]` ); const { newValue, newLabel } = getNewConditionalLogicOption( fieldId, expectedOption ); - const fieldChoices = document.querySelectorAll( '#frm_field_' + fieldId + '_opts input[data-value-on-focus]' ); + const fieldChoices = document.querySelectorAll( `#frm_field_${ fieldId }_opts input[data-value-on-focus]` ); const expectedChoiceEl = Array.from( fieldChoices ).find( element => element.value === expectedOption ); if ( expectedChoiceEl ) { const oldValue = expectedChoiceEl.dataset.valueOnFocus; - const hasMatch = oldValue && valueSelect.querySelector( 'option[value="' + oldValue + '"]' ); + const hasMatch = oldValue && valueSelect.querySelector( `option[value="${ oldValue }"]` ); if ( hasMatch ) { continue; } @@ -6223,7 +6365,7 @@ window.frmAdminBuildJS = function() { } function prependValueSelectWithOptionMatch( valueSelect, optionMatch, newValue, newLabel ) { - if ( optionMatch === null && ! valueSelect.querySelector( 'option[value="' + newValue + '"]' ) ) { + if ( optionMatch === null && ! valueSelect.querySelector( `option[value="${ newValue }"]` ) ) { optionMatch = frmDom.tag( 'option', { text: newLabel } ); optionMatch.value = newValue; } @@ -6232,9 +6374,14 @@ window.frmAdminBuildJS = function() { } function getFieldOptions( fieldId ) { - let index, input, li, listItems, optsContainer, length, - options = []; - optsContainer = document.getElementById( 'frm_field_' + fieldId + '_opts' ); + let index; + let input; + let li; + let listItems; + let optsContainer; + let length; + const options = []; + optsContainer = document.getElementById( `frm_field_${ fieldId }_opts` ); if ( ! optsContainer ) { return options; @@ -6249,20 +6396,20 @@ window.frmAdminBuildJS = function() { continue; } - input = li.querySelector( '.field_' + fieldId + '_option' ); + input = li.querySelector( `.field_${ fieldId }_option` ); options.push( input.value ); } return options; } function addRadioCheckboxOpt( type, opt, fieldId, fieldKey, isProduct, classes ) { - let other, - single = '', - isOther = opt.key.includes( 'other' ), - id = 'field_' + fieldKey + '-' + opt.key, - inputType = type === 'scale' ? 'radio' : type; + let other; + let single = ''; + const isOther = opt.key.includes( 'other' ); + const id = `field_${ fieldKey }-${ opt.key }`; + const inputType = type === 'scale' ? 'radio' : type; - other = ''; + other = ``; this.getSingle = function() { /** @@ -6280,12 +6427,12 @@ window.frmAdminBuildJS = function() { return single; } - return '
' + - ( isOther ? other : '' ) + - '
'; + return `
${ + isOther ? other : '' + }
`; }; return this.getSingle(); @@ -6295,18 +6442,18 @@ window.frmAdminBuildJS = function() { if ( field === null ) { return; } - const sourceID = atts.sourceID, - placeholder = atts.placeholder, - isProduct = isProductField( sourceID ), - showOther = atts.other; + const { sourceID } = atts; + const { placeholder } = atts; + const isProduct = isProductField( sourceID ); + const showOther = atts.other; removeDropdownOpts( field ); const opts = getMultipleOpts( sourceID, field.id.includes( 'frm_field_logic_opt' ) ); let hasPlaceholder = ( placeholder !== undefined ); for ( let i = 0; i < opts.length; i++ ) { - let label = opts[ i ].label, - isOther = opts[ i ].key.includes( 'other' ); + let { label } = opts[ i ]; + const isOther = opts[ i ].key.includes( 'other' ); if ( hasPlaceholder && label !== '' ) { addBlankSelectOption( field, placeholder ); @@ -6330,8 +6477,8 @@ window.frmAdminBuildJS = function() { } function addBlankSelectOption( field, placeholder ) { - const opt = document.createElement( 'option' ), - firstChild = field.firstChild; + const opt = document.createElement( 'option' ); + const { firstChild } = field; opt.value = ''; opt.innerHTML = placeholder; @@ -6350,12 +6497,17 @@ window.frmAdminBuildJS = function() { * @param {boolean} showValueAsLabel Whether to show the value as label for empty labels. */ function getMultipleOpts( fieldId, showValueAsLabel = false ) { - let i, saved, labelName, label, key, optObj, - checked = false, - opts = [], - imageUrl = ''; + let i; + let saved; + let labelName; + let label; + let key; + let optObj; + let checked = false; + const opts = []; + let imageUrl = ''; - const optVals = jQuery( 'input[name^="field_options[options_' + fieldId + ']"]' ).filter( '[name$="[label]"], [name*="[other_"]' ); + const optVals = jQuery( `input[name^="field_options[options_${ fieldId }]"]` ).filter( '[name$="[label]"], [name*="[other_"]' ); const isProduct = isProductField( fieldId ); const showLabelWithImage = showingLabelWithImage( fieldId ); const hasImageOptions = imagesAsOptions( fieldId ); @@ -6368,11 +6520,11 @@ window.frmAdminBuildJS = function() { saved = optVals[ i ].value; label = saved; - key = optVals[ i ].name.replace( 'field_options[options_' + fieldId + '][', '' ).replace( '[label]', '' ).replace( ']', '' ); + key = optVals[ i ].name.replace( `field_options[options_${ fieldId }][`, '' ).replace( '[label]', '' ).replace( ']', '' ); if ( separateValues ) { labelName = optVals[ i ].name.replace( '[label]', '[value]' ); - saved = jQuery( 'input[name="' + labelName + '"]' ).val(); + saved = jQuery( `input[name="${ labelName }"]` ).val(); if ( showValueAsLabel && '' === label ) { label = '' !== saved ? saved : frm_admin_js.no_label; @@ -6400,7 +6552,7 @@ window.frmAdminBuildJS = function() { if ( isProduct ) { labelName = optVals[ i ].name.replace( '[label]', '[price]' ); - optObj.price = jQuery( 'input[name="' + labelName + '"]' ).val(); + optObj.price = jQuery( `input[name="${ labelName }"]` ).val(); } opts.push( optObj ); @@ -6410,8 +6562,8 @@ window.frmAdminBuildJS = function() { } function getImageUrlFromInput( optVal ) { - let img, - wrapper = jQuery( optVal ).siblings( '.frm_image_preview_wrapper' ); + let img; + const wrapper = jQuery( optVal ).siblings( '.frm_image_preview_wrapper' ); if ( ! wrapper.length ) { return ''; @@ -6452,11 +6604,11 @@ window.frmAdminBuildJS = function() { } function getImageLabel( label, showLabelWithImage, imageUrl ) { - let imageLabelClass, - originalLabel = label, - labelImage, - labelNode, - imageLabel; + let imageLabelClass; + let originalLabel = label; + let labelImage; + let labelNode; + let imageLabel; originalLabel = purifyHtml( originalLabel ); @@ -6475,7 +6627,7 @@ window.frmAdminBuildJS = function() { labelNode = tag( 'span', { - className: 'frm_image_option_container' + imageLabelClass, + className: `frm_image_option_container${ imageLabelClass }`, children: [ labelImage, tag( 'span', { className: 'frm_text_label_for_image', child: imageLabel } ) @@ -6487,7 +6639,7 @@ window.frmAdminBuildJS = function() { } function getChecked( id ) { - const field = jQuery( '#' + id ); + const field = jQuery( `#${ id }` ); if ( field.length === 0 ) { return false; @@ -6514,7 +6666,7 @@ window.frmAdminBuildJS = function() { * @param fieldId */ function usingSeparateValues( fieldId ) { - return isChecked( 'separate_value_' + fieldId ); + return isChecked( `separate_value_${ fieldId }` ); } /** @@ -6522,8 +6674,8 @@ window.frmAdminBuildJS = function() { * @param fieldId */ function imagesAsOptions( fieldId ) { - let checked = false, - field = document.getElementsByName( 'field_options[image_options_' + fieldId + ']' ); + let checked = false; + const field = document.getElementsByName( `field_options[image_options_${ fieldId }]` ); for ( let i = 0; i < field.length; i++ ) { if ( field[ i ].checked ) { @@ -6538,7 +6690,7 @@ window.frmAdminBuildJS = function() { } function showingLabelWithImage( fieldId ) { - const isShowing = ! isChecked( 'hide_image_text_' + fieldId ); + const isShowing = ! isChecked( `hide_image_text_${ fieldId }` ); /** * @since 5.0.04 @@ -6557,13 +6709,13 @@ window.frmAdminBuildJS = function() { function checkUniqueOpt( targetInput ) { const settingsContainer = targetInput.closest( '.frm-single-settings' ); const fieldId = settingsContainer.getAttribute( 'data-fid' ); - const areValuesSeparate = settingsContainer.querySelector( '[name="field_options[separate_value_' + fieldId + ']"]' ).checked; + const areValuesSeparate = settingsContainer.querySelector( `[name="field_options[separate_value_${ fieldId }]"]` ).checked; if ( areValuesSeparate && ! targetInput.name.endsWith( '[value]' ) ) { return; } - const container = document.getElementById( 'frm_field_' + fieldId + '_opts' ); + const container = document.getElementById( `frm_field_${ fieldId }_opts` ); const conflicts = Array.from( container.querySelectorAll( 'input[type="text"]' ) ).filter( input => input.id !== targetInput.id && areValuesSeparate === input.name.endsWith( '[value]' ) && @@ -6578,24 +6730,24 @@ window.frmAdminBuildJS = function() { function getFieldValues() { /*jshint validthis:true */ - let isTaxonomy, - val = this.value; + let isTaxonomy; + const val = this.value; if ( val ) { const parentIDs = this.parentNode.id.replace( 'frm_logic_', '' ).split( '_' ); const fieldID = parentIDs[ 0 ]; const metaKey = parentIDs[ 1 ]; - const valueField = document.getElementById( 'frm_field_id_' + val ); + const valueField = document.getElementById( `frm_field_id_${ val }` ); const valueFieldType = valueField.getAttribute( 'data-ftype' ); - const fill = document.getElementById( 'frm_show_selected_values_' + fieldID + '_' + metaKey ); - const optionName = 'field_options[hide_opt_' + fieldID + '][]'; - const optionID = 'frm_field_logic_opt_' + fieldID; + const fill = document.getElementById( `frm_show_selected_values_${ fieldID }_${ metaKey }` ); + const optionName = `field_options[hide_opt_${ fieldID }][]`; + const optionID = `frm_field_logic_opt_${ fieldID }`; let input = false; let showSelect = ( valueFieldType === 'select' || valueFieldType === 'checkbox' || valueFieldType === 'radio' ); const showText = ( valueFieldType === 'text' || valueFieldType === 'email' || valueFieldType === 'phone' || valueFieldType === 'url' || valueFieldType === 'number' ); if ( showSelect ) { - isTaxonomy = document.getElementById( 'frm_has_hidden_options_' + val ); + isTaxonomy = document.getElementById( `frm_has_hidden_options_${ val }` ); if ( isTaxonomy !== null ) { // get the category options with ajax showSelect = false; @@ -6613,7 +6765,7 @@ window.frmAdminBuildJS = function() { input.type = 'text'; } input.name = optionName; - input.id = optionID + '_' + metaKey; + input.id = `${ optionID }_${ metaKey }`; fill.append( input ); if ( creatingValuesDropdown ) { @@ -6658,7 +6810,7 @@ window.frmAdminBuildJS = function() { nonce: frmGlobal.nonce }, success( msg ) { - const $selectedFields = jQuery( '#frm_show_selected_fields_' + fieldId ); + const $selectedFields = jQuery( `#frm_show_selected_fields_${ fieldId }` ); $selectedFields.toggleClass( 'frm6', ! msg.includes( 'frm-inline-message' ) ); $selectedFields.html( msg ).show(); } @@ -6686,13 +6838,13 @@ window.frmAdminBuildJS = function() { this.getFieldOrderInputById = function( fieldId, parent ) { let field; - const orderFieldsObject = updateFieldOrder.prototype.orderFieldsObject; - const fieldSettingsForm = updateFieldOrder.prototype.fieldSettingsForm; + const { orderFieldsObject } = updateFieldOrder.prototype; + const { fieldSettingsForm } = updateFieldOrder.prototype; if ( orderFieldsObject[ fieldId ] === undefined ) { - field = fieldSettingsForm.querySelector( 'input[name="field_options[field_order_' + fieldId + ']"]' ); + field = fieldSettingsForm.querySelector( `input[name="field_options[field_order_${ fieldId }]"]` ); if ( null === field ) { - field = parent.querySelector( 'input[name="field_options[field_order_' + fieldId + ']"]' ); + field = parent.querySelector( `input[name="field_options[field_order_${ fieldId }]"]` ); } orderFieldsObject[ fieldId ] = field; return field; @@ -6705,9 +6857,14 @@ window.frmAdminBuildJS = function() { renumberPageBreaks(); return ( function() { - let fieldId, field, currentOrder, newOrder, i, singleField, - moveFieldsClass = new moveFieldSettings(), - fields = jQuery( 'li.frm_field_box', jQuery( '#frm-show-fields' ) ); + let fieldId; + let field; + let currentOrder; + let newOrder; + let i; + let singleField; + const moveFieldsClass = new moveFieldSettings(); + const fields = jQuery( 'li.frm_field_box', jQuery( '#frm-show-fields' ) ); for ( i = 0; i < fields.length; i++ ) { fieldId = fields[ i ].getAttribute( 'data-fid' ); @@ -6719,7 +6876,7 @@ window.frmAdminBuildJS = function() { if ( currentOrder != newOrder && null !== currentOrder ) { field.value = newOrder; - singleField = fields[ i ].querySelector( '#frm-single-settings-' + fieldId ); + singleField = fields[ i ].querySelector( `#frm-single-settings-${ fieldId }` ); // add field that needs to be moved to "updateFieldOrder.prototype.fieldSettingsForm" moveFieldsClass.append( singleField ); @@ -6740,7 +6897,11 @@ window.frmAdminBuildJS = function() { } function toggleOneSectionHolder( $section ) { - let noSectionFields, $rows, length, index, sectionHasFields; + let noSectionFields; + let $rows; + let length; + let index; + let sectionHasFields; if ( ! $section.length ) { return; @@ -6763,7 +6924,7 @@ window.frmAdminBuildJS = function() { function handleShowPasswordLiveUpdate() { frmDom.util.documentOn( 'change', '.frm_show_password_setting_input', event => { const fieldId = event.target.getAttribute( 'data-fid' ); - const fieldEl = document.getElementById( 'frm_field_id_' + fieldId ); + const fieldEl = document.getElementById( `frm_field_id_${ fieldId }` ); if ( ! fieldEl ) { return; } @@ -6806,8 +6967,8 @@ window.frmAdminBuildJS = function() { } function unselectEveryoneOptionIfSelected( $select ) { - let selectedValues = $select.val(), - index; + const selectedValues = $select.val(); + let index; if ( selectedValues === null ) { $select.next( '.btn-group' ).find( '.multiselect-container input[value=""]' ).prop( 'checked', true ); @@ -6836,18 +6997,20 @@ window.frmAdminBuildJS = function() { /* Change the classes in the builder */ function changeFieldClass( field, setting ) { - let classes, replace, alignField, - replaceWith = ' ' + setting.value, - fieldId = field.getAttribute( 'data-fid' ); + let classes; + let replace; + let alignField; + let replaceWith = ` ${ setting.value }`; + const fieldId = field.getAttribute( 'data-fid' ); // Include classes from multiple settings. if ( fieldId !== undefined ) { if ( setting.classList.contains( 'field_options_align' ) ) { - replaceWith += ' ' + document.getElementById( 'frm_classes_' + fieldId ).value; + replaceWith += ` ${ document.getElementById( `frm_classes_${ fieldId }` ).value }`; } else if ( setting.classList.contains( 'frm_classes' ) ) { - alignField = document.getElementById( 'field_options_align_' + fieldId ); + alignField = document.getElementById( `field_options_align_${ fieldId }` ); if ( alignField !== null ) { - replaceWith += ' ' + alignField.value; + replaceWith += ` ${ alignField.value }`; } } } @@ -6864,7 +7027,7 @@ window.frmAdminBuildJS = function() { if ( ! field.className.includes( replace ) ) { replace = ' frmstart frmend '; } - replaceWith = ' frmstart ' + replaceWith.trim() + ' frmend '; + replaceWith = ` frmstart ${ replaceWith.trim() } frmend `; } else { replace = classes.trim(); replaceWith = replaceWith.trim(); @@ -6880,9 +7043,9 @@ window.frmAdminBuildJS = function() { } function showInlineModal( icon, input, event ) { - const box = document.getElementById( icon.getAttribute( 'data-open' ) ), - container = jQuery( icon ).closest( 'p,ul' ), - inputTrigger = ( input !== undefined ); + const box = document.getElementById( icon.getAttribute( 'data-open' ) ); + const container = jQuery( icon ).closest( 'p,ul' ); + const inputTrigger = ( input !== undefined ); if ( container.hasClass( 'frm-open' ) ) { container.removeClass( 'frm-open' ); @@ -6920,7 +7083,7 @@ window.frmAdminBuildJS = function() { /*jshint validthis:true */ e.preventDefault(); this.parentNode.classList.add( 'frm_hidden' ); - jQuery( '.frm-open [data-open="' + this.parentNode.id + '"]' ).closest( '.frm-open' ).removeClass( 'frm-open' ); + jQuery( `.frm-open [data-open="${ this.parentNode.id }"]` ).closest( '.frm-open' ).removeClass( 'frm-open' ); } /** @@ -6947,8 +7110,8 @@ window.frmAdminBuildJS = function() { function changeInputtedValue() { /*jshint validthis:true */ - let i, - action = this.getAttribute( 'data-frmchange' ).split( ',' ); + let i; + const action = this.getAttribute( 'data-frmchange' ).split( ',' ); for ( i = 0; i < action.length; i++ ) { if ( action[ i ] === 'updateOption' ) { @@ -6968,10 +7131,10 @@ window.frmAdminBuildJS = function() { * @param input */ function changeDefaultRadioValue( input ) { - const parentLi = getOptionParent( input ), - key = parentLi.getAttribute( 'data-optkey' ), - fieldId = getOptionFieldId( parentLi, key ), - defaultRadio = parentLi.querySelector( 'input[name="default_value_' + fieldId + '"]' ); + const parentLi = getOptionParent( input ); + const key = parentLi.getAttribute( 'data-optkey' ); + const fieldId = getOptionFieldId( parentLi, key ); + const defaultRadio = parentLi.querySelector( `input[name="default_value_${ fieldId }"]` ); if ( defaultRadio !== null ) { defaultRadio.value = input.value; @@ -6984,15 +7147,15 @@ window.frmAdminBuildJS = function() { * @param input */ function changeHiddenSeparateValue( input ) { - let savedVal, - parentLi = getOptionParent( input ), - key = parentLi.getAttribute( 'data-optkey' ), - fieldId = getOptionFieldId( parentLi, key ), - sep = document.getElementById( 'separate_value_' + fieldId ); + let savedVal; + const parentLi = getOptionParent( input ); + const key = parentLi.getAttribute( 'data-optkey' ); + const fieldId = getOptionFieldId( parentLi, key ); + const sep = document.getElementById( `separate_value_${ fieldId }` ); if ( sep !== null && sep.checked === false ) { // If separate values are not turned on. - savedVal = document.getElementById( 'field_key_' + fieldId + '-' + key ); + savedVal = document.getElementById( `field_key_${ fieldId }-${ key }` ); savedVal.value = input.value; changeDefaultRadioValue( savedVal ); } @@ -7009,7 +7172,7 @@ window.frmAdminBuildJS = function() { function getOptionFieldId( li, key ) { const liId = li.id; - return liId.replace( 'frm_delete_field_', '' ).replace( '-' + key + '_container', '' ); + return liId.replace( 'frm_delete_field_', '' ).replace( `-${ key }_container`, '' ); } function submitBuild() { @@ -7196,7 +7359,7 @@ window.frmAdminBuildJS = function() { }; formatTypes.forEach( formatType => { - const value = formatType.value; + const { value } = formatType; if ( value in valueMap ) { const formatInput = document.getElementById( `frm_format_${ formatType.dataset.fieldId }` ); formatInput.value = valueMap[ value ]; @@ -7270,7 +7433,7 @@ window.frmAdminBuildJS = function() { const title = element.dataset.upgrade; const tab = element.getAttribute( 'href' ).replace( '#', '' ); - const container = document.querySelector( '.frm_' + tab ) || document.querySelector( '.' + tab ); + const container = document.querySelector( `.frm_${ tab }` ) || document.querySelector( `.${ tab }` ); if ( ! container ) { return; @@ -7332,12 +7495,12 @@ window.frmAdminBuildJS = function() { } function appendClonedModalElementToContainer( className ) { - container.append( upgradeModal.querySelector( '.' + className ).cloneNode( true ) ); + container.append( upgradeModal.querySelector( `.${ className }` ).cloneNode( true ) ); } } function getScreenshotWrapper( screenshot ) { - const folderUrl = frmGlobal.url + '/images/screenshots/'; + const folderUrl = `${ frmGlobal.url }/images/screenshots/`; const wrapper = div( { className: 'frm-settings-screenshot-wrapper', children: [ @@ -7348,7 +7511,7 @@ window.frmAdminBuildJS = function() { function getToolbar() { const children = getColorIcons(); - children.push( img( { src: frmGlobal.url + '/images/tab.svg' } ) ); + children.push( img( { src: `${ frmGlobal.url }/images/tab.svg` } ) ); return div( { className: 'frm-settings-screenshot-toolbar', children @@ -7375,7 +7538,7 @@ window.frmAdminBuildJS = function() { parentClass = ''; } maybeAddFieldSelection( parentClass ); - jQuery( parentClass + ' .frm_has_shortcodes:not(.frm-with-right-icon) input,' + parentClass + ' .frm_has_shortcodes:not(.frm-with-right-icon) textarea' ).wrap( '' ).before( '' ); + jQuery( `${ parentClass } .frm_has_shortcodes:not(.frm-with-right-icon) input,${ parentClass } .frm_has_shortcodes:not(.frm-with-right-icon) textarea` ).wrap( '' ).before( '' ); } /** @@ -7384,8 +7547,8 @@ window.frmAdminBuildJS = function() { * @param parentClass */ function maybeAddFieldSelection( parentClass ) { - let i, - missingClass = jQuery( parentClass + ' :not(.frm_has_shortcodes) .frm_not_email_message, ' + parentClass + ' :not(.frm_has_shortcodes) .frm_not_email_to, ' + parentClass + ' :not(.frm_has_shortcodes) .frm_not_email_subject' ); + let i; + const missingClass = jQuery( `${ parentClass } :not(.frm_has_shortcodes) .frm_not_email_message, ${ parentClass } :not(.frm_has_shortcodes) .frm_not_email_to, ${ parentClass } :not(.frm_has_shortcodes) .frm_not_email_subject` ); for ( i = 0; i < missingClass.length; i++ ) { missingClass[ i ].parentNode.classList.add( 'frm_has_shortcodes' ); } @@ -7398,13 +7561,13 @@ window.frmAdminBuildJS = function() { c = 'edit'; } const v = jQuery( this ).val(); - jQuery( '.' + c + '_action_box' ).hide(); + jQuery( `.${ c }_action_box` ).hide(); if ( v === 'redirect' ) { - jQuery( '.' + c + '_action_redirect_box.' + c + '_action_box' ).fadeIn( 'slow' ); + jQuery( `.${ c }_action_redirect_box.${ c }_action_box` ).fadeIn( 'slow' ); } else if ( v === 'page' ) { - jQuery( '.' + c + '_action_page_box.' + c + '_action_box' ).fadeIn( 'slow' ); + jQuery( `.${ c }_action_page_box.${ c }_action_box` ).fadeIn( 'slow' ); } else { - jQuery( '.' + c + '_action_message_box.' + c + '_action_box' ).fadeIn( 'slow' ); + jQuery( `.${ c }_action_message_box.${ c }_action_box` ).fadeIn( 'slow' ); } } @@ -7427,7 +7590,7 @@ window.frmAdminBuildJS = function() { const newID = newActionId( currentID ); $action.find( '.frm_action_id, .frm-btn-group' ).remove(); - $action.find( 'input[name$="[' + currentID + '][ID]"]' ).val( '' ); + $action.find( `input[name$="[${ currentID }][ID]"]` ).val( '' ); $action.find( '.widget-inside' ).hide(); // the .html() gets original values, so they need to be set @@ -7439,16 +7602,16 @@ window.frmAdminBuildJS = function() { return this.checked; } ); - const rename = new RegExp( '\\[' + currentID + '\\]', 'g' ); - const reid = new RegExp( '_' + currentID + '"', 'g' ); - const reclass = new RegExp( '-' + currentID + '"', 'g' ); - const revalue = new RegExp( '"' + currentID + '"', 'g' ); // if a field id matches, this could cause trouble + const rename = new RegExp( `\\[${ currentID }\\]`, 'g' ); + const reid = new RegExp( `_${ currentID }"`, 'g' ); + const reclass = new RegExp( `-${ currentID }"`, 'g' ); + const revalue = new RegExp( `"${ currentID }"`, 'g' ); // if a field id matches, this could cause trouble - let html = $action.html().replace( rename, '[' + newID + ']' ).replace( reid, '_' + newID + '"' ); - html = html.replace( reclass, '-' + newID + '"' ).replace( revalue, '"' + newID + '"' ); + let html = $action.html().replace( rename, `[${ newID }]` ).replace( reid, `_${ newID }"` ); + html = html.replace( reclass, `-${ newID }"` ).replace( revalue, `"${ newID }"` ); const newAction = div( { - id: 'frm_form_action_' + newID, + id: `frm_form_action_${ newID }`, className: $action.get( 0 ).className } ); newAction.setAttribute( 'data-actionkey', newID ); @@ -7489,10 +7652,10 @@ window.frmAdminBuildJS = function() { } function waitForActionToLoadBeforeCopy( element ) { - let $trigger = jQuery( element ), - $original = $trigger.closest( '.frm_form_action_settings' ), - $inside = $original.find( '.widget-inside' ), - $top; + const $trigger = jQuery( element ); + const $original = $trigger.closest( '.frm_form_action_settings' ); + const $inside = $original.find( '.widget-inside' ); + let $top; if ( $inside.find( 'p, div, table' ).length ) { return false; @@ -7510,7 +7673,7 @@ window.frmAdminBuildJS = function() { function newActionId( currentID ) { let newID = parseInt( currentID, 10 ) + 11; - const exists = document.getElementById( 'frm_form_action_' + newID ); + const exists = document.getElementById( `frm_form_action_${ newID }` ); if ( exists !== null ) { newID++; newID = newActionId( newID ); @@ -7530,7 +7693,7 @@ window.frmAdminBuildJS = function() { const formId = thisFormId; const placeholderSetting = document.createElement( 'div' ); - placeholderSetting.classList.add( 'frm_single_' + type + '_settings' ); + placeholderSetting.classList.add( `frm_single_${ type }_settings` ); const actionsList = document.getElementById( 'frm_notification_settings' ); actionsList.append( placeholderSetting ); @@ -7562,7 +7725,7 @@ window.frmAdminBuildJS = function() { jQuery( '.frm_form_action_settings' ).fadeIn( 'slow' ); - const newAction = document.getElementById( 'frm_form_action_' + actionId ); + const newAction = document.getElementById( `frm_form_action_${ actionId }` ); newAction.classList.add( 'open' ); document.getElementById( 'post-body-content' ).scroll( { @@ -7573,7 +7736,7 @@ window.frmAdminBuildJS = function() { // Check if icon should be active checkActiveAction( type ); - showInputIcon( '#frm_form_action_' + actionId ); + showInputIcon( `#frm_form_action_${ actionId }` ); initiateMultiselect(); initAutocomplete( newAction ); @@ -7601,8 +7764,8 @@ window.frmAdminBuildJS = function() { function toggleActionGroups() { /*jshint validthis:true */ - const actions = document.getElementById( 'frm_email_addon_menu' ).classList, - search = document.getElementById( 'actions-search-input' ); + const actions = document.getElementById( 'frm_email_addon_menu' ).classList; + const search = document.getElementById( 'actions-search-input' ); if ( actions.contains( 'frm-all-actions' ) ) { actions.remove( 'frm-all-actions' ); @@ -7618,9 +7781,9 @@ window.frmAdminBuildJS = function() { } function getNewActionId() { - let actionSettings = document.querySelectorAll( '.frm_form_action_settings' ), - len = getNewRowId( actionSettings, 'frm_form_action_' ); - if ( document.getElementById( 'frm_form_action_' + len ) !== undefined ) { + const actionSettings = document.querySelectorAll( '.frm_form_action_settings' ); + let len = getNewRowId( actionSettings, 'frm_form_action_' ); + if ( document.getElementById( `frm_form_action_${ len }` ) !== undefined ) { len = len + 100; } if ( lastNewActionIdReturned >= len ) { @@ -7650,16 +7813,17 @@ window.frmAdminBuildJS = function() { * @param obj */ function showFieldOptions( obj ) { - let i, singleField, - fieldId = obj.getAttribute( 'data-fid' ), - fieldType = obj.getAttribute( 'data-type' ), - allFieldSettings = document.querySelectorAll( '.frm-single-settings:not(.frm_hidden)' ); + let i; + let singleField; + const fieldId = obj.getAttribute( 'data-fid' ); + const fieldType = obj.getAttribute( 'data-type' ); + const allFieldSettings = document.querySelectorAll( '.frm-single-settings:not(.frm_hidden)' ); for ( i = 0; i < allFieldSettings.length; i++ ) { allFieldSettings[ i ].classList.add( 'frm_hidden' ); } - singleField = document.getElementById( 'frm-single-settings-' + fieldId ); + singleField = document.getElementById( `frm-single-settings-${ fieldId }` ); moveFieldSettings( singleField ); if ( fieldType && 'quantity' === fieldType ) { @@ -7692,14 +7856,14 @@ window.frmAdminBuildJS = function() { return; } - const fieldSettingsSelector = '#frm-single-settings-' + fieldId; - if ( document.querySelector( fieldSettingsSelector + ' .frm-show-box' ) ) { + const fieldSettingsSelector = `#frm-single-settings-${ fieldId }`; + if ( document.querySelector( `${ fieldSettingsSelector } .frm-show-box` ) ) { return; } singleField.querySelector( '.wp-editor-container' )?.classList.add( 'frm_has_shortcodes' ); const wrapTextareaWithIconContainer = () => { - const textareas = document.querySelectorAll( fieldSettingsSelector + ' .frm_has_shortcodes textarea' ); + const textareas = document.querySelectorAll( `${ fieldSettingsSelector } .frm_has_shortcodes textarea` ); textareas.forEach( textarea => { const wrapperSpan = span( { className: 'frm-with-right-icon' } ); textarea.parentNode.insertBefore( wrapperSpan, textarea ); @@ -7737,7 +7901,8 @@ window.frmAdminBuildJS = function() { } function isTinyMceActive() { - let activeSettings, wrapper; + let activeSettings; + let wrapper; activeSettings = document.querySelector( '.frm-single-settings:not(.frm_hidden)' ); if ( ! activeSettings ) { @@ -7805,29 +7970,29 @@ window.frmAdminBuildJS = function() { const actionKey = jQuery( this ).closest( '.frm_form_action_settings' ).data( 'actionkey' ); const rowType = this.getAttribute( 'data-emailrow' ); - jQuery( '#frm_form_action_' + actionKey + ' .frm_' + rowType + '_row' ).fadeIn( 'slow' ); + jQuery( `#frm_form_action_${ actionKey } .frm_${ rowType }_row` ).fadeIn( 'slow' ); jQuery( this ).fadeOut( 'slow' ); } function hideEmailRow() { /*jshint validthis:true */ - const actionBox = jQuery( this ).closest( '.frm_form_action_settings' ), - rowType = this.getAttribute( 'data-emailrow' ), - emailRowSelector = '.frm_' + rowType + '_row', - emailButtonSelector = '.frm_' + rowType + '_button'; + const actionBox = jQuery( this ).closest( '.frm_form_action_settings' ); + const rowType = this.getAttribute( 'data-emailrow' ); + const emailRowSelector = `.frm_${ rowType }_row`; + const emailButtonSelector = `.frm_${ rowType }_button`; jQuery( actionBox ).find( emailButtonSelector ).fadeIn( 'slow' ); jQuery( actionBox ).find( emailRowSelector ).fadeOut( 'slow', function() { - jQuery( actionBox ).find( emailRowSelector + ' input' ).val( '' ); + jQuery( actionBox ).find( `${ emailRowSelector } input` ).val( '' ); } ); } function showEmailWarning() { /*jshint validthis:true */ - const actionBox = jQuery( this ).closest( '.frm_form_action_settings' ), - emailRowSelector = '.frm_from_to_match_row', - fromVal = actionBox.find( 'input[name$="[post_content][from]"]' ).val(), - toVal = actionBox.find( 'input[name$="[post_content][email_to]"]' ).val(); + const actionBox = jQuery( this ).closest( '.frm_form_action_settings' ); + const emailRowSelector = '.frm_from_to_match_row'; + const fromVal = actionBox.find( 'input[name$="[post_content][from]"]' ).val(); + const toVal = actionBox.find( 'input[name$="[post_content][email_to]"]' ).val(); if ( fromVal === toVal ) { jQuery( actionBox ).find( emailRowSelector ).fadeIn( 'slow' ); @@ -7837,7 +8002,7 @@ window.frmAdminBuildJS = function() { } function checkActiveAction( type ) { - const actionTriggers = document.querySelectorAll( '.frm_' + type + '_action' ); + const actionTriggers = document.querySelectorAll( `.frm_${ type }_action` ); if ( isAtLimitForActionType( type ) ) { const addAlreadyUsedClass = getLimitForActionType( type ) > 0; @@ -7885,23 +8050,23 @@ window.frmAdminBuildJS = function() { } function getLimitForActionType( type ) { - return parseInt( jQuery( '.frm_' + type + '_action' ).data( 'limit' ), 10 ); + return parseInt( jQuery( `.frm_${ type }_action` ).data( 'limit' ), 10 ); } function getNumberOfActionsForType( type ) { - return jQuery( '.frm_single_' + type + '_settings' ).length; + return jQuery( `.frm_single_${ type }_settings` ).length; } function actionLimitMessage() { let message = frmAdminJs.only_one_action; - let limit = this.dataset.limit; + let { limit } = this.dataset; if ( limit !== undefined ) { limit = parseInt( limit ); if ( limit > 1 ) { message = message.replace( 1, limit ).trim(); } else { - message += ' ' + frmAdminJs.edit_action_text; + message += ` ${ frmAdminJs.edit_action_text }`; } } @@ -7913,11 +8078,11 @@ window.frmAdminBuildJS = function() { const id = jQuery( this ).data( 'emailkey' ); const type = jQuery( this ).closest( '.frm_form_action_settings' ).find( '.frm_action_name' ).val(); const formId = document.getElementById( 'form_id' ).value; - const logicRowsContainer = document.getElementById( 'frm_logic_row_' + id ); + const logicRowsContainer = document.getElementById( `frm_logic_row_${ id }` ); const logicRows = logicRowsContainer.querySelectorAll( '.frm_logic_row' ); - const newRowID = getNewRowId( logicRows, 'frm_logic_' + id + '_' ); + const newRowID = getNewRowId( logicRows, `frm_logic_${ id }_` ); const placeholder = div( { - id: 'frm_logic_' + id + '_' + newRowID, + id: `frm_logic_${ id }_${ newRowID }`, className: 'frm_logic_row frm_hidden' } ); @@ -7933,7 +8098,7 @@ window.frmAdminBuildJS = function() { nonce: frmGlobal.nonce }, success( html ) { - jQuery( document.getElementById( 'logic_link_' + id ) ).fadeOut( 'slow', () => { + jQuery( document.getElementById( `logic_link_${ id }` ) ).fadeOut( 'slow', () => { placeholder.insertAdjacentHTML( 'beforebegin', html ); placeholder.remove(); @@ -8002,11 +8167,12 @@ window.frmAdminBuildJS = function() { function switchPostType() { /*jshint validthis:true */ // update all rows of categories/taxonomies - let curSelect, newSelect, - catRows = document.getElementById( 'frm_posttax_rows' ).childNodes, - postParentField = document.querySelector( '.frm_post_parent_field' ), - postMenuOrderField = document.querySelector( '.frm_post_menu_order_field' ), - postType = this.value; + let curSelect; + let newSelect; + const catRows = document.getElementById( 'frm_posttax_rows' ).childNodes; + const postParentField = document.querySelector( '.frm_post_parent_field' ); + const postMenuOrderField = document.querySelector( '.frm_post_menu_order_field' ); + const postType = this.value; // Get new category/taxonomy options jQuery.ajax( { @@ -8060,8 +8226,8 @@ window.frmAdminBuildJS = function() { } function getActionOption( field, postType, action, successHandler ) { - const opt = field.querySelector( '.frm_autocomplete_value_input' ) || field.querySelector( 'select' ), - optName = opt.getAttribute( 'name' ); + const opt = field.querySelector( '.frm_autocomplete_value_input' ) || field.querySelector( 'select' ); + const optName = opt.getAttribute( 'name' ); jQuery.ajax( { url: ajaxurl, @@ -8105,16 +8271,16 @@ window.frmAdminBuildJS = function() { } function addPostRow( type, button ) { - let name, - id = jQuery( 'input[name="id"]' ).val(), - settings = jQuery( button ).closest( '.frm_form_action_settings' ), - key = settings.data( 'actionkey' ), - postType = settings.find( '.frm_post_type' ).val(), - metaName = 0, - postTypeRows = document.querySelectorAll( '.frm_post' + type + '_row' ); + let name; + const id = jQuery( 'input[name="id"]' ).val(); + const settings = jQuery( button ).closest( '.frm_form_action_settings' ); + const key = settings.data( 'actionkey' ); + const postType = settings.find( '.frm_post_type' ).val(); + let metaName = 0; + const postTypeRows = document.querySelectorAll( `.frm_post${ type }_row` ); if ( postTypeRows.length ) { - name = postTypeRows[ postTypeRows.length - 1 ].id.replace( 'frm_post' + type + '_', '' ); + name = postTypeRows[ postTypeRows.length - 1 ].id.replace( `frm_post${ type }_`, '' ); if ( isNumeric( name ) ) { metaName = 1 + parseInt( name, 10 ); } else { @@ -8125,7 +8291,7 @@ window.frmAdminBuildJS = function() { jQuery.ajax( { type: 'POST', url: ajaxurl, data: { - action: 'frm_add_post' + type + '_row', + action: `frm_add_post${ type }_row`, form_id: id, meta_name: metaName, tax_key: metaName, @@ -8134,9 +8300,10 @@ window.frmAdminBuildJS = function() { nonce: frmGlobal.nonce }, success( html ) { - let cfOpts, optIndex; - jQuery( document.getElementById( 'frm_post' + type + '_rows' ) ).append( html ); - jQuery( '.frm_add_post' + type + '_row.button' ).hide(); + let cfOpts; + let optIndex; + jQuery( document.getElementById( `frm_post${ type }_rows` ) ).append( html ); + jQuery( `.frm_add_post${ type }_row.button` ).hide(); if ( type === 'meta' ) { jQuery( '.frm_name_value' ).show(); @@ -8163,13 +8330,13 @@ window.frmAdminBuildJS = function() { jQuery( this ).closest( '.frm_posttax_row' ).find( '.frm_posttax_opt_list' ).html( '
' ); - const postType = jQuery( this ).closest( '.frm_form_action_settings' ).find( 'select[name$="[post_content][post_type]"]' ).val(), - actionKey = jQuery( this ).closest( '.frm_form_action_settings' ).data( 'actionkey' ), - taxKey = jQuery( this ).closest( '.frm_posttax_row' ).attr( 'id' ).replace( 'frm_posttax_', '' ), - metaName = jQuery( this ).val(), - showExclude = jQuery( document.getElementById( taxKey + '_show_exclude' ) ).is( ':checked' ) ? 1 : 0, - fieldId = jQuery( 'select[name$="[post_category][' + taxKey + '][field_id]"]' ).val(), - id = jQuery( 'input[name="id"]' ).val(); + const postType = jQuery( this ).closest( '.frm_form_action_settings' ).find( 'select[name$="[post_content][post_type]"]' ).val(); + const actionKey = jQuery( this ).closest( '.frm_form_action_settings' ).data( 'actionkey' ); + const taxKey = jQuery( this ).closest( '.frm_posttax_row' ).attr( 'id' ).replace( 'frm_posttax_', '' ); + const metaName = jQuery( this ).val(); + const showExclude = jQuery( document.getElementById( `${ taxKey }_show_exclude` ) ).is( ':checked' ) ? 1 : 0; + const fieldId = jQuery( `select[name$="[post_category][${ taxKey }][field_id]"]` ).val(); + const id = jQuery( 'input[name="id"]' ).val(); jQuery.ajax( { type: 'POST', @@ -8186,7 +8353,7 @@ window.frmAdminBuildJS = function() { nonce: frmGlobal.nonce }, success( html ) { - const $tax = jQuery( document.getElementById( 'frm_posttax_' + taxKey ) ); + const $tax = jQuery( document.getElementById( `frm_posttax_${ taxKey }` ) ); $tax.replaceWith( html ); } } ); @@ -8221,10 +8388,10 @@ window.frmAdminBuildJS = function() { const toggleClass = changedOpt.data( 'toggleclass' ); if ( val === '' ) { - jQuery( '.' + toggleClass ).hide(); + jQuery( `.${ toggleClass }` ).hide(); } else { - jQuery( '.' + toggleClass ).show(); - jQuery( '.hide_' + toggleClass + '_' + val ).hide(); + jQuery( `.${ toggleClass }` ).show(); + jQuery( `.hide_${ toggleClass }_${ val }` ).hide(); } } @@ -8247,8 +8414,8 @@ window.frmAdminBuildJS = function() { } function insertFieldCode( element, variable ) { - let rich = false, - elementId = element; + let rich = false; + let elementId = element; if ( typeof element === 'object' ) { if ( element.hasClass( 'frm_noallow' ) ) { return; @@ -8269,7 +8436,7 @@ window.frmAdminBuildJS = function() { // If the search field has focus, find the correct field. elementId = active.id.replace( '-search-input', '' ); if ( elementId.match( /\d/gi ) === null ) { - active = jQuery( '.frm-single-settings:visible .' + elementId ); + active = jQuery( `.frm-single-settings:visible .${ elementId }` ); elementId = active.attr( 'id' ); } } else { @@ -8278,7 +8445,7 @@ window.frmAdminBuildJS = function() { } if ( elementId ) { - rich = jQuery( '#wp-' + elementId + '-wrap.wp-editor-wrap' ).length > 0; + rich = jQuery( `#wp-${ elementId }-wrap.wp-editor-wrap` ).length > 0; } const contentBox = jQuery( document.getElementById( elementId ) ); @@ -8286,7 +8453,7 @@ window.frmAdminBuildJS = function() { // this helps to exclude those that don't want shortcode-like inserted content e.g. frm-pro's summary field const doShortcode = element.parents( 'ul.frm_code_list' ).attr( 'data-shortcode' ); if ( doShortcode === 'undefined' || doShortcode !== 'no' ) { - variable = '[' + variable + ']'; + variable = `[${ variable }]`; } } @@ -8441,8 +8608,8 @@ window.frmAdminBuildJS = function() { return textToInsert; } - const startPattern = new RegExp( separator + '\\s*$' ); - const endPattern = new RegExp( '^\\s*' + separator ); + const startPattern = new RegExp( `${ separator }\\s*$` ); + const endPattern = new RegExp( `^\\s*${ separator }` ); if ( value.substr( 0, selectionStart ).trim().length && false === startPattern.test( value.substr( 0, selectionStart ) ) ) { textToInsert = separator + textToInsert; @@ -8457,8 +8624,8 @@ window.frmAdminBuildJS = function() { function resetLogicBuilder() { /*jshint validthis:true */ - const id = document.getElementById( 'frm-id-condition' ), - key = document.getElementById( 'frm-key-condition' ); + const id = document.getElementById( 'frm-id-condition' ); + const key = document.getElementById( 'frm-key-condition' ); if ( this.value === 'id' ) { id.classList.remove( 'frm_hidden' ); @@ -8472,17 +8639,18 @@ window.frmAdminBuildJS = function() { } function setLogicExample() { - let field, code, - idKey = document.getElementById( 'frm-id-key-condition-id' ).checked ? 'frm-id-condition' : 'frm-key-condition', - is = document.getElementById( 'frm-is-condition' ).value, - text = document.getElementById( 'frm-text-condition' ).value, - result = document.getElementById( 'frm-insert-condition' ); + let field; + let code; + let idKey = document.getElementById( 'frm-id-key-condition-id' ).checked ? 'frm-id-condition' : 'frm-key-condition'; + const is = document.getElementById( 'frm-is-condition' ).value; + const text = document.getElementById( 'frm-text-condition' ).value; + const result = document.getElementById( 'frm-insert-condition' ); idKey = document.getElementById( idKey ); field = idKey.options[ idKey.selectedIndex ].value; - code = 'if ' + field + ' ' + is + '="' + text + '"]'; - result.setAttribute( 'data-code', code + frmAdminJs.conditional_text + '[/if ' + field ); - result.innerHTML = '[' + code + '[/if ' + field + ']'; + code = `if ${ field } ${ is }="${ text }"]`; + result.setAttribute( 'data-code', `${ code + frmAdminJs.conditional_text }[/if ${ field }` ); + result.innerHTML = `[${ code }[/if ${ field }]`; } /** @@ -8621,14 +8789,14 @@ window.frmAdminBuildJS = function() { const shortCodesPopup = document.getElementById( 'frm_adv_info' ); const parentPos = shortCodesPopup.parentElement.getBoundingClientRect(); - shortCodesPopup.style.top = ( moreIconPosition.top - parentPos.top + 32 ) + 'px'; - shortCodesPopup.style.left = ( moreIconPosition.left - parentPos.left - 280 ) + 'px'; + shortCodesPopup.style.top = `${ moreIconPosition.top - parentPos.top + 32 }px`; + shortCodesPopup.style.left = `${ moreIconPosition.left - parentPos.left - 280 }px`; } function showShortcodeBox( moreIcon, shouldFocus ) { - let input = getInputForIcon( moreIcon ), - box = document.getElementById( 'frm_adv_info' ), - classes = moreIcon.className; + const input = getInputForIcon( moreIcon ); + const box = document.getElementById( 'frm_adv_info' ); + let classes = moreIcon.className; if ( moreIcon.tagName === 'svg' ) { moreIcon = moreIcon.firstElementChild; @@ -8718,7 +8886,7 @@ window.frmAdminBuildJS = function() { const shortcode = item.querySelector( 'a' ).dataset.code; const inputId = document.getElementById( 'frm_adv_info' ).dataset.fills; const input = document.getElementById( inputId ); - const contextualShortcodes = frmAdminJs.contextualShortcodes; + const { contextualShortcodes } = frmAdminJs; if ( contextualShortcodes.address.includes( shortcode ) ) { return input.matches( contextualShortcodes.addressSelector ); } @@ -8746,12 +8914,13 @@ window.frmAdminBuildJS = function() { * @return {void} */ function toggleContextualShortcodes( input, type ) { - let selector, contextualShortcodes; - selector = frmAdminJs.contextualShortcodes[ type + 'Selector' ]; + let selector; + let contextualShortcodes; + selector = frmAdminJs.contextualShortcodes[ `${ type }Selector` ]; contextualShortcodes = frmAdminJs.contextualShortcodes[ type ]; const shouldShowShortcodes = input.matches( selector ); for ( const shortcode of contextualShortcodes ) { - const shortcodeLi = document.querySelector( '#frm-adv-info-tab .frm_code_list [data-code="' + shortcode + '"]' )?.closest( 'li' ); + const shortcodeLi = document.querySelector( `#frm-adv-info-tab .frm_code_list [data-code="${ shortcode }"]` )?.closest( 'li' ); shortcodeLi?.classList.toggle( 'frm_hidden', ! shouldShowShortcodes ); } } @@ -8821,7 +8990,7 @@ window.frmAdminBuildJS = function() { function offsetModalY( $modal, amount ) { const position = { my: 'top', - at: 'top+' + amount, + at: `top+${ amount }`, of: window }; $modal.dialog( 'option', 'position', position ); @@ -8873,7 +9042,10 @@ window.frmAdminBuildJS = function() { } function hideShortcodes( box ) { - let i, u, closeIcons, closeSvg; + let i; + let u; + let closeIcons; + let closeSvg; if ( box === undefined ) { box = document.getElementById( 'frm_adv_info' ); if ( box === null ) { @@ -8907,8 +9079,8 @@ window.frmAdminBuildJS = function() { } function toggleAllowedHTML( input ) { - let b, - id = input.id; + let b; + let { id } = input; if ( id === undefined || id.includes( '-search-input' ) ) { return; } @@ -8920,17 +9092,17 @@ window.frmAdminBuildJS = function() { b = [ 'after_html', 'before_html', 'submit_html', 'field_custom_html' ]; if ( jQuery.inArray( id, b ) >= 0 ) { - jQuery( '.frm_code_list li:not(.show_' + id + ')' ).addClass( 'frm_hidden' ); - jQuery( '.frm_code_list li.show_' + id ).removeClass( 'frm_hidden' ); + jQuery( `.frm_code_list li:not(.show_${ id })` ).addClass( 'frm_hidden' ); + jQuery( `.frm_code_list li.show_${ id }` ).removeClass( 'frm_hidden' ); } } function toggleKeyID( switchTo, e ) { e.stopPropagation(); jQuery( '.frm_code_list .frmids, .frm_code_list .frmkeys' ).addClass( 'frm_hidden' ); - jQuery( '.frm_code_list .' + switchTo ).removeClass( 'frm_hidden' ); + jQuery( `.frm_code_list .${ switchTo }` ).removeClass( 'frm_hidden' ); jQuery( '.frmids, .frmkeys' ).removeClass( 'current' ); - jQuery( '.' + switchTo ).addClass( 'current' ); + jQuery( `.${ switchTo }` ).addClass( 'current' ); } function onActionLoaded( event ) { @@ -8952,7 +9124,7 @@ window.frmAdminBuildJS = function() { /* Global settings page */ function loadSettingsTab( anchor ) { const holder = anchor.replace( '#', '' ); - const holderContainer = jQuery( '.frm_' + holder + '_ajax' ); + const holderContainer = jQuery( `.frm_${ holder }_ajax` ); if ( holderContainer.length ) { jQuery.ajax( { type: 'POST', url: ajaxurl, @@ -8975,7 +9147,7 @@ window.frmAdminBuildJS = function() { jQuery.ajax( { type: 'POST', url: ajaxurl, - data: 'action=frm_uninstall&nonce=' + frmGlobal.nonce, + data: `action=frm_uninstall&nonce=${ frmGlobal.nonce }`, success( msg ) { jQuery( '.frm_uninstall' ).fadeOut( 'slow' ); window.location = msg; @@ -8990,18 +9162,18 @@ window.frmAdminBuildJS = function() { const button = jQuery( this ); const buttonName = this.name; const pluginSlug = this.getAttribute( 'data-plugin' ); - const action = buttonName.replace( 'edd_' + pluginSlug + '_license_', '' ); - let license = document.getElementById( 'edd_' + pluginSlug + '_license_key' ).value; + const action = buttonName.replace( `edd_${ pluginSlug }_license_`, '' ); + let license = document.getElementById( `edd_${ pluginSlug }_license_key` ).value; button.get( 0 ).disabled = true; jQuery.ajax( { type: 'POST', url: ajaxurl, dataType: 'json', - data: { action: 'frm_addon_' + action, license, plugin: pluginSlug, nonce: frmGlobal.nonce }, + data: { action: `frm_addon_${ action }`, license, plugin: pluginSlug, nonce: frmGlobal.nonce }, success( msg ) { button.get( 0 ).disabled = false; const thisRow = button.closest( '.edd_frm_license_row' ); if ( action === 'deactivate' ) { license = ''; - document.getElementById( 'edd_' + pluginSlug + '_license_key' ).value = ''; + document.getElementById( `edd_${ pluginSlug }_license_key` ).value = ''; } thisRow.find( '.edd_frm_license' ).html( license ); const eddWrapper = button.get( 0 ).closest( '.frm_form_field' ); @@ -9052,8 +9224,8 @@ window.frmAdminBuildJS = function() { */ function importForms( forms, targetForm ) { // Hide the form select section. - const $form = jQuery( targetForm ), - $processSettings = $form.next( '.frm-importer-process' ); + const $form = jQuery( targetForm ); + const $processSettings = $form.next( '.frm-importer-process' ); // Display total number of forms we have to import. $processSettings.find( '.form-total' ).text( forms.length ); @@ -9079,13 +9251,13 @@ window.frmAdminBuildJS = function() { * @param $processSettings */ function importForm( $processSettings ) { - const formID = s.importQueue[ 0 ], - provider = jQuery( '#welcome-panel' ).find( 'input[name="slug"]' ).val(), - data = { - action: 'frm_import_' + provider, - form_id: formID, - nonce: frmGlobal.nonce - }; + const formID = s.importQueue[ 0 ]; + const provider = jQuery( '#welcome-panel' ).find( 'input[name="slug"]' ).val(); + const data = { + action: `frm_import_${ provider }`, + form_id: formID, + nonce: frmGlobal.nonce + }; // Trigger AJAX import for this form. jQuery.post( ajaxurl, data, function( res ) { @@ -9093,9 +9265,9 @@ window.frmAdminBuildJS = function() { let statusUpdate; if ( res.data.error ) { - statusUpdate = '

' + res.data.name + ': ' + res.data.msg + '

'; + statusUpdate = `

${ res.data.name }: ${ res.data.msg }

`; } else { - statusUpdate = '

Imported ' + res.data.name + '

'; + statusUpdate = `

Imported ${ res.data.name }

`; } $processSettings.find( '.status' ).prepend( statusUpdate ); @@ -9181,7 +9353,7 @@ window.frmAdminBuildJS = function() { } function exportTypeChanged( event ) { - const value = event.target.value; + const { value } = event.target; showOrHideRepeaters( value ); checkExportTypes.call( event.target ); checkSelectedAllFormsCheckbox( value ); @@ -9260,10 +9432,10 @@ window.frmAdminBuildJS = function() { } function preventMultipleExport() { - const type = jQuery( 'select[name=format]' ), - selected = type.find( ':selected' ), - count = selected.data( 'count' ), - exportField = jQuery( 'input[name="frm_export_forms[]"]' ); + const type = jQuery( 'select[name=format]' ); + const selected = type.find( ':selected' ); + const count = selected.data( 'count' ); + const exportField = jQuery( 'input[name="frm_export_forms[]"]' ); if ( count === 'single' ) { // Disable all other fields to prevent multiple selections. @@ -9313,7 +9485,7 @@ window.frmAdminBuildJS = function() { $error.removeClass( 'frm_hidden' ).attr( 'frm-error', type ); if ( message !== undefined ) { - $error.find( 'span[frm-error="' + type + '"]' ).text( message ); + $error.find( `span[frm-error="${ type }"]` ).text( message ); } jQuery( inputId ).one( 'keyup', function() { @@ -9349,9 +9521,9 @@ window.frmAdminBuildJS = function() { function installTemplateFieldset( e ) { /*jshint validthis:true */ - const fieldset = this.parentNode.parentNode, - action = fieldset.elements.type.value, - button = this; + const fieldset = this.parentNode.parentNode; + const action = fieldset.elements.type.value; + const button = this; e.preventDefault(); button.classList.add( 'frm_loading_button' ); installNewForm( fieldset, action, button ); @@ -9359,8 +9531,8 @@ window.frmAdminBuildJS = function() { function installTemplate( e ) { /*jshint validthis:true */ - const action = this.elements.type.value, - button = this.querySelector( 'button' ); + const action = this.elements.type.value; + const button = this.querySelector( 'button' ); e.preventDefault(); button.classList.add( 'frm_loading_button' ); installNewForm( this, action, button ); @@ -9387,7 +9559,7 @@ window.frmAdminBuildJS = function() { postAjax( data, function( response ) { if ( response.redirect !== undefined ) { - const redirect = response.redirect; + const { redirect } = response; if ( form.elements.redirect === undefined ) { window.location = redirect; } else { @@ -9443,7 +9615,7 @@ window.frmAdminBuildJS = function() { nonce: frmGlobal.nonce }; postAjax( data, function() { - const card = document.getElementById( 'frm-template-custom-' + id ); + const card = document.getElementById( `frm-template-custom-${ id }` ); fadeOut( card, function() { card.remove(); } ); @@ -9452,11 +9624,11 @@ window.frmAdminBuildJS = function() { function searchContent() { /*jshint validthis:true */ - let i, - regEx = false, - searchText = this.value.toLowerCase(), - toSearch = this.getAttribute( 'data-tosearch' ), - items = document.getElementsByClassName( toSearch ); + let i; + let regEx = false; + let searchText = this.value.toLowerCase(); + const toSearch = this.getAttribute( 'data-tosearch' ); + const items = document.getElementsByClassName( toSearch ); if ( this.tagName === 'SELECT' ) { searchText = selectedOptions( this ); @@ -9516,7 +9688,7 @@ window.frmAdminBuildJS = function() { return false; } - return ( text + 's' ).includes( searchText ); + return ( `${ text }s` ).includes( searchText ); } /** @@ -9553,9 +9725,9 @@ window.frmAdminBuildJS = function() { /* Helpers */ function selectedOptions( select ) { - let opt, - result = [], - options = select && select.options; + let opt; + const result = []; + const options = select && select.options; for ( let i = 0, iLen = options.length; i < iLen; i++ ) { opt = options[ i ]; @@ -9579,7 +9751,7 @@ window.frmAdminBuildJS = function() { const xmlHttp = new XMLHttpRequest(); const params = typeof data === 'string' ? data : Object.keys( data ).map( function( k ) { - return encodeURIComponent( k ) + '=' + encodeURIComponent( data[ k ] ); + return `${ encodeURIComponent( k ) }=${ encodeURIComponent( data[ k ] ) }`; } ).join( '&' ); @@ -9674,7 +9846,7 @@ window.frmAdminBuildJS = function() { function maybeChangeEmbedFormMsg() { const fieldId = jQuery( this ).closest( '.frm-single-settings' ).data( 'fid' ); - let fieldItem = document.getElementById( 'frm_field_id_' + fieldId ); + let fieldItem = document.getElementById( `frm_field_id_${ fieldId }` ); if ( null === fieldItem || 'form' !== fieldItem.dataset.type ) { return; } @@ -9693,10 +9865,10 @@ window.frmAdminBuildJS = function() { } function toggleProductType() { - const settings = jQuery( this ).closest( '.frm-single-settings' ), - container = settings.find( '.frmjs_product_choices' ), - heading = settings.find( '.frm_prod_options_heading' ), - currentVal = this.options[ this.selectedIndex ].value; + const settings = jQuery( this ).closest( '.frm-single-settings' ); + const container = settings.find( '.frmjs_product_choices' ); + const heading = settings.find( '.frm_prod_options_heading' ); + const currentVal = this.options[ this.selectedIndex ].value; container.removeClass( 'frm_prod_type_single frm_prod_type_user_def' ); heading.removeClass( 'frm_prod_user_def' ); @@ -9714,7 +9886,7 @@ window.frmAdminBuildJS = function() { * @return {boolean} True if the field is a product field. */ function isProductField( fieldId ) { - const field = document.getElementById( 'frm_field_id_' + fieldId ); + const field = document.getElementById( `frm_field_id_${ fieldId }` ); if ( field === null ) { return false; } @@ -9726,15 +9898,16 @@ window.frmAdminBuildJS = function() { * @param form */ function formToData( form ) { - let subKey, i, - object = {}, - formData = form.elements; + let subKey; + let i; + const object = {}; + const formData = form.elements; for ( i = 0; i < formData.length; i++ ) { - let input = formData[ i ], - key = input.name, - value = input.value, - names = key.match( /(.*)\[(.*)\]/ ); + const input = formData[ i ]; + let key = input.name; + const { value } = input; + const names = key.match( /(.*)\[(.*)\]/ ); if ( ( input.type === 'radio' || input.type === 'checkbox' ) && ! input.checked ) { continue; @@ -9802,9 +9975,9 @@ window.frmAdminBuildJS = function() { * @param {number} colCount Number of columns. * @return {string} */ - const getColClass = colCount => 'frm' + parseInt( 12 / colCount ); + const getColClass = colCount => `frm${ parseInt( 12 / colCount ) }`; - const colClasses = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ].map( num => 'frm' + num ); + const colClasses = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ].map( num => `frm${ num }` ); const allSubFieldNames = [ 'first', 'middle', 'last' ]; @@ -9814,19 +9987,19 @@ window.frmAdminBuildJS = function() { * @param {Event} event Event object. */ const onChangeLayout = event => { - const value = event.target.value; + const { value } = event.target; const subFieldNames = value.split( '_' ); - const fieldId = event.target.dataset.fieldId; + const { fieldId } = event.target.dataset; /* * Live update form on the form builder. */ - const container = document.querySelector( '#field_' + fieldId + '_inner_container .frm_combo_inputs_container' ); + const container = document.querySelector( `#field_${ fieldId }_inner_container .frm_combo_inputs_container` ); const newColClass = getColClass( subFieldNames.length ); // Set all sub field elements to cache and hide all of them first. allSubFieldNames.forEach( name => { - const subFieldEl = container.querySelector( '[data-sub-field-name="' + name + '"]' ); + const subFieldEl = container.querySelector( `[data-sub-field-name="${ name }"]` ); if ( subFieldEl ) { subFieldEl.classList.add( 'frm_hidden' ); subFieldEl.classList.remove( ...colClasses ); @@ -9851,15 +10024,15 @@ window.frmAdminBuildJS = function() { */ // Hide all subfield options. allSubFieldNames.forEach( name => { - const optionsEl = document.querySelector( '.frm_sub_field_options-' + name + '[data-field-id="' + fieldId + '"]' ); + const optionsEl = document.querySelector( `.frm_sub_field_options-${ name }[data-field-id="${ fieldId }"]` ); if ( optionsEl ) { optionsEl.classList.add( 'frm_hidden' ); - setSubFieldElToCache( fieldId, name + '_options', optionsEl ); + setSubFieldElToCache( fieldId, `${ name }_options`, optionsEl ); } } ); subFieldNames.forEach( subFieldName => { - const optionsEl = getSubFieldElFromCache( fieldId, subFieldName + '_options' ); + const optionsEl = getSubFieldElFromCache( fieldId, `${ subFieldName }_options` ); if ( ! optionsEl ) { return; } @@ -9880,7 +10053,9 @@ window.frmAdminBuildJS = function() { } function addSaveAndDragIconsToOption( fieldId, liObject ) { - let li, useTag, useTagHref; + let li; + let useTag; + let useTagHref; let hasDragIcon = false; let hasSaveIcon = false; @@ -10024,7 +10199,7 @@ window.frmAdminBuildJS = function() { el.classList.add( 'frm_hidden' ); } ); - const activeEls = actionEl.querySelectorAll( '.frm_on_submit_dependent_setting[data-show-if-' + event.target.value + ']' ); + const activeEls = actionEl.querySelectorAll( `.frm_on_submit_dependent_setting[data-show-if-${ event.target.value }]` ); activeEls.forEach( activeEl => { activeEl.classList.remove( 'frm_hidden' ); } ); @@ -10113,7 +10288,7 @@ window.frmAdminBuildJS = function() { jQuery.ajax( { type: 'POST', url: $hiddenForm.attr( 'action' ), - data: $hiddenForm.serialize() + '&action=frm_forms_preview' + data: `${ $hiddenForm.serialize() }&action=frm_forms_preview` } ).done( function( data ) { const message = jQuery( data ).find( '.frm_message' ).text().trim(); if ( ! message.includes( 'Thanks!' ) ) { @@ -10420,7 +10595,8 @@ window.frmAdminBuildJS = function() { return ids; } - let formId, formKey; + let formId; + let formKey; const row = element.closest( 'tr' ); if ( row ) { @@ -10465,7 +10641,7 @@ window.frmAdminBuildJS = function() { const saleDismiss = saleBanner?.querySelector( '.dismiss' ); if ( saleBanner ) { onClickPreventDefault( saleBanner, event => { - const target = event.target; + const { target } = event; if ( target.closest( '.dismiss' ) ) { return; } @@ -10486,7 +10662,9 @@ window.frmAdminBuildJS = function() { buildInit() { jQuery( '#frm_builder_page' ).on( 'mouseup', '*:not(.frm-show-box)', maybeHideShortcodes ); - let loadFieldId, $builderForm, builderArea; + let loadFieldId; + let $builderForm; + let builderArea; debouncedSyncAfterDragAndDrop = debounce( syncAfterDragAndDrop, 10 ); postBodyContent = document.getElementById( 'post-body-content' ); @@ -10672,7 +10850,10 @@ window.frmAdminBuildJS = function() { settingsInit() { const $formActions = jQuery( document.getElementById( 'frm_notification_settings' ) ); - let formSettings, $loggedIn, $cookieExp, $editable; + let formSettings; + let $loggedIn; + let $cookieExp; + let $editable; // BCC, CC, and Reply To button functionality $formActions.on( 'click', '.frm_email_buttons', showEmailRow ); @@ -10827,7 +11008,10 @@ window.frmAdminBuildJS = function() { }, panelInit() { - let customPanel, settingsPage, viewPage, insertFieldsTab; + let customPanel; + let settingsPage; + let viewPage; + let insertFieldsTab; jQuery( '.frm_wrap, #postbox-container-1' ).on( 'click', '.frm_insert_code', insertCode ); jQuery( document ).on( 'change', '.frm_insert_val', function() { @@ -11024,7 +11208,7 @@ window.frmAdminBuildJS = function() { manageStyleSettings.addEventListener( 'change', event => { - const target = event.target; + const { target } = event; if ( 'SELECT' !== target.nodeName || ! target.dataset.name || target.getAttribute( 'name' ) ) { return; } @@ -11129,8 +11313,8 @@ window.frmAdminBuildJS = function() { }, updateOpts( fieldId, opts, modal ) { - const separate = usingSeparateValues( fieldId ), - action = isProductField( fieldId ) ? 'frm_bulk_products' : 'frm_import_options'; + const separate = usingSeparateValues( fieldId ); + const action = isProductField( fieldId ) ? 'frm_bulk_products' : 'frm_import_options'; jQuery.ajax( { type: 'POST', url: ajaxurl, @@ -11142,7 +11326,7 @@ window.frmAdminBuildJS = function() { nonce: frmGlobal.nonce }, success( html ) { - document.getElementById( 'frm_field_' + fieldId + '_opts' ).innerHTML = html; + document.getElementById( `frm_field_${ fieldId }_opts` ).innerHTML = html; wp.hooks.doAction( 'frm_after_bulk_edit_opts', fieldId ); resetDisplayedOpts( fieldId ); @@ -11156,13 +11340,13 @@ window.frmAdminBuildJS = function() { /* remove conditional logic if the field doesn't exist */ triggerRemoveLogic( fieldID, metaName ) { - jQuery( '#frm_logic_' + fieldID + '_' + metaName + ' .frm_remove_tag' ).trigger( 'click' ); + jQuery( `#frm_logic_${ fieldID }_${ metaName } .frm_remove_tag` ).trigger( 'click' ); }, downloadXML( controller, ids, isTemplate ) { - let url = ajaxurl + '?action=frm_' + controller + '_xml&ids=' + ids; + let url = `${ ajaxurl }?action=frm_${ controller }_xml&ids=${ ids }`; if ( isTemplate !== null ) { - url = url + '&is_template=' + isTemplate; + url = `${ url }&is_template=${ isTemplate }`; } location.href = url; }, @@ -11262,12 +11446,12 @@ window.frm_show_div = ( div, value, showIf, classId ) => { }; window.frmCheckAll = ( checked, n ) => { - jQuery( 'input[name^="' + n + '"]' ).prop( 'checked', ! ! checked ); + jQuery( `input[name^="${ n }"]` ).prop( 'checked', ! ! checked ); }; window.frmCheckAllLevel = ( checked, n, level ) => { - const $kids = jQuery( '.frm_catlevel_' + level ).children( '.frm_checkbox' ).children( 'label' ); - $kids.children( 'input[name^="' + n + '"]' ).prop( 'checked', ! ! checked ); + const $kids = jQuery( `.frm_catlevel_${ level }` ).children( '.frm_checkbox' ).children( 'label' ); + $kids.children( `input[name^="${ n }"]` ).prop( 'checked', ! ! checked ); }; window.frmGetFieldValues = ( fieldId, cur, rowNumber, fieldType, htmlName, callback ) => { @@ -11277,9 +11461,9 @@ window.frmGetFieldValues = ( fieldId, cur, rowNumber, fieldType, htmlName, callb jQuery.ajax( { type: 'POST', url: ajaxurl, - data: 'action=frm_get_field_values¤t_field=' + cur + '&field_id=' + fieldId + '&name=' + htmlName + '&t=' + fieldType + '&form_action=' + jQuery( 'input[name="frm_action"]' ).val() + '&nonce=' + frmGlobal.nonce, + data: `action=frm_get_field_values¤t_field=${ cur }&field_id=${ fieldId }&name=${ htmlName }&t=${ fieldType }&form_action=${ jQuery( 'input[name="frm_action"]' ).val() }&nonce=${ frmGlobal.nonce }`, success( msg ) { - document.getElementById( 'frm_show_selected_values_' + cur + '_' + rowNumber ).innerHTML = msg; + document.getElementById( `frm_show_selected_values_${ cur }_${ rowNumber }` ).innerHTML = msg; if ( 'function' === typeof callback ) { callback(); @@ -11296,12 +11480,12 @@ window.frmImportCsv = formID => { jQuery.ajax( { type: 'POST', url: ajaxurl, - data: 'action=frm_import_csv&nonce=' + frmGlobal.nonce + '&frm_skip_cookie=1' + urlVars, + data: `action=frm_import_csv&nonce=${ frmGlobal.nonce }&frm_skip_cookie=1${ urlVars }`, success( count ) { const max = jQuery( '.frm_admin_progress_bar' ).attr( 'aria-valuemax' ); const imported = max - count; const percent = ( imported / max ) * 100; - jQuery( '.frm_admin_progress_bar' ).css( 'width', percent + '%' ).attr( 'aria-valuenow', imported ); + jQuery( '.frm_admin_progress_bar' ).css( 'width', `${ percent }%` ).attr( 'aria-valuenow', imported ); if ( parseInt( count, 10 ) > 0 ) { jQuery( '.frm_csv_remaining' ).html( count ); @@ -11309,7 +11493,7 @@ window.frmImportCsv = formID => { } else { jQuery( document.getElementById( 'frm_import_message' ) ).html( frm_admin_js.import_complete ); setTimeout( function() { - location.href = '?page=formidable-entries&frm_action=list&form=' + formID + '&import-message=1'; + location.href = `?page=formidable-entries&frm_action=list&form=${ formID }&import-message=1`; }, 2000 ); } } diff --git a/js/src/admin/upgrade-popup.js b/js/src/admin/upgrade-popup.js index a685006c26..e39e605baa 100644 --- a/js/src/admin/upgrade-popup.js +++ b/js/src/admin/upgrade-popup.js @@ -60,7 +60,7 @@ export function addOneClick( link, context, upgradeLabel ) { oneclick = JSON.parse( oneclick ); button.className = button.className.replace( ' frm-install-addon', '' ).replace( ' frm-activate-addon', '' ); - button.className = button.className + ' ' + oneclick.class; + button.className = `${ button.className } ${ oneclick.class }`; button.rel = oneclick.url; oneclickMessage.textContent = __( 'This plugin is not activated. Would you like to activate it now?', 'formidable' ); @@ -175,7 +175,9 @@ export function initUpgradeModal() { frmDom.util.documentOn( 'change', 'select.frm_select_with_upgrade', handleUpgradeClick ); function handleUpgradeClick( event ) { - let element, link, content; + let element; + let link; + let content; element = event.target; @@ -236,7 +238,7 @@ export function initUpgradeModal() { if ( element.dataset.image && lockIcon ) { lockIcon.style.display = 'none'; - lockIcon.parentNode.insertBefore( frmDom.img( { id: upgradeImageId, src: frmGlobal.url + '/images/' + element.dataset.image } ), lockIcon ); + lockIcon.parentNode.insertBefore( frmDom.img( { id: upgradeImageId, src: `${ frmGlobal.url }/images/${ element.dataset.image }` } ), lockIcon ); } const level = modal.querySelector( '.license-level' ); @@ -257,12 +259,12 @@ export function initUpgradeModal() { // set the utm medium const button = modal.querySelector( '.button-primary:not(.frm-oneclick-button)' ); - link = button.getAttribute( 'href' ).replace( /(medium=)[a-z_-]+/ig, '$1' + element.getAttribute( 'data-medium' ) ); + link = button.getAttribute( 'href' ).replace( /(medium=)[a-z_-]+/ig, `$1${ element.getAttribute( 'data-medium' ) }` ); content = element.getAttribute( 'data-content' ); if ( content === null ) { content = ''; } - link = link.replace( /(content=)[a-z_-]+/ig, '$1' + content ); + link = link.replace( /(content=)[a-z_-]+/ig, `$1${ content }` ); button.setAttribute( 'href', link ); } } diff --git a/js/src/common/components/icon.js b/js/src/common/components/icon.js index 36d0551882..a802f13d08 100644 --- a/js/src/common/components/icon.js +++ b/js/src/common/components/icon.js @@ -6,7 +6,7 @@ const { Dashicon } = wp.components; export default class FormidableIcon extends Component { loadCustomSvgIcon() { - const icon = formidable_form_selector.icon; + const { icon } = formidable_form_selector; if ( icon.match( /frm_white_label_icon/ ) ) { return ( diff --git a/js/src/common/components/radio.js b/js/src/common/components/radio.js index 1e909e879b..e9f38c2708 100644 --- a/js/src/common/components/radio.js +++ b/js/src/common/components/radio.js @@ -10,7 +10,7 @@ const { function RadioControl( { label, className, selected, help, instanceId, onChange, options = [] } ) { const id = `inspector-radio-control-${ instanceId }`; const onChangeValue = event => onChange( event.target.value ); - className = className + ' components-radio-control'; + className = `${ className } components-radio-control`; return { options.map( ( option, index ) => diff --git a/js/src/components/class-overlay.js b/js/src/components/class-overlay.js index ddcd725494..24d029b500 100644 --- a/js/src/components/class-overlay.js +++ b/js/src/components/class-overlay.js @@ -78,7 +78,7 @@ export class frmOverlay { const options = { href: button.url, text: button.label, - className: 'button frm_animate_bg ' + buttonTypeClassname + className: `button frm_animate_bg ${ buttonTypeClassname }` }; if ( button.target ) { options.target = button.target; diff --git a/js/src/components/class-tabs-navigator.js b/js/src/components/class-tabs-navigator.js index 867c8f868f..9120f47f1e 100644 --- a/js/src/components/class-tabs-navigator.js +++ b/js/src/components/class-tabs-navigator.js @@ -108,7 +108,7 @@ export class frmTabsNavigator { : activeNav.offsetLeft; this.slideTrackLine.style.transform = `translateX(${ position }px)`; - this.slideTrackLine.style.width = activeNav.clientWidth + 'px'; + this.slideTrackLine.style.width = `${ activeNav.clientWidth }px`; } ); } diff --git a/js/src/core/utils/animation.js b/js/src/core/utils/animation.js index abf881580f..ec07e1ec6e 100644 --- a/js/src/core/utils/animation.js +++ b/js/src/core/utils/animation.js @@ -40,7 +40,7 @@ export class frmAnimate { setTimeout( () => { this.applyStyleToElements( ( element, index ) => { element.classList.remove( 'frm-animate' ); - element.style.transitionDelay = ( ( index + 1 ) * delay ) + 's'; + element.style.transitionDelay = `${ ( index + 1 ) * delay }s`; } ); }, 200 ); } diff --git a/js/src/form/block.js b/js/src/form/block.js index e0b2ae65d8..597aad6758 100755 --- a/js/src/form/block.js +++ b/js/src/form/block.js @@ -18,7 +18,7 @@ const { serverSideRender: ServerSideRender } = wp; function Edit( { setAttributes, attributes, isSelected } ) { const { formId } = attributes; - const forms = formidable_form_selector.forms; + const { forms } = formidable_form_selector; const blockProps = useBlockProps(); if ( forms.length === 0 ) { diff --git a/js/src/form/calculator.js b/js/src/form/calculator.js index c64bbee83a..7d1fce4728 100644 --- a/js/src/form/calculator.js +++ b/js/src/form/calculator.js @@ -11,7 +11,7 @@ const { Notice } = wp.components; const { useBlockProps } = wp.blockEditor; function Edit( { setAttributes, attributes } ) { - const forms = formidable_form_selector.forms; + const { forms } = formidable_form_selector; const blockProps = useBlockProps(); if ( forms.length === 0 ) { @@ -38,7 +38,7 @@ function Edit( { setAttributes, attributes } ) { { __( 'Upgrade Formidable Forms.', 'formidable' ) } - { + { diff --git a/js/src/form/graph.js b/js/src/form/graph.js index ef907542db..173126886a 100644 --- a/js/src/form/graph.js +++ b/js/src/form/graph.js @@ -57,7 +57,7 @@ import FormidableIcon from '../common/components/icon'; ) }
- { + {
diff --git a/js/src/form/inspector.js b/js/src/form/inspector.js index bfe267083a..aa76c8b01f 100755 --- a/js/src/form/inspector.js +++ b/js/src/form/inspector.js @@ -53,7 +53,7 @@ export default class Inspector extends Component { { formId && + href={ `${ getSubDir() }wp-admin\/admin.php?page=formidable&frm_action=edit&id=${ formId }` }> { __( 'Go to form', 'formidable' ) } } diff --git a/js/src/form/modal.js b/js/src/form/modal.js index 9fef169acc..3df4ee4a16 100644 --- a/js/src/form/modal.js +++ b/js/src/form/modal.js @@ -55,7 +55,7 @@ function Edit( { setAttributes, attributes } ) { ) }
- { + {
@@ -66,7 +66,7 @@ function Edit( { setAttributes, attributes } ) { registerBlockType( 'frm-modal/modal', { apiVersion: 3, - title: formidable_form_selector.name + ' ' + __( 'Modal', 'formidable' ), + title: `${ formidable_form_selector.name } ${ __( 'Modal', 'formidable' ) }`, description: __( 'Display a modal', 'formidable' ), icon: FormidableIcon, category: 'widgets', diff --git a/js/src/form/views.js b/js/src/form/views.js index 7446540423..edbfb35e67 100644 --- a/js/src/form/views.js +++ b/js/src/form/views.js @@ -26,7 +26,7 @@ function Edit() { if ( true === addonActivateButton.isLoading ) { return; } - updateAddonActivateButton( { ...addonActivateButton, isLoading: true, classnames: addonActivateButton.defaultClassname + ' ' + addonActivateButton.loadingClassname } ); + updateAddonActivateButton( { ...addonActivateButton, isLoading: true, classnames: `${ addonActivateButton.defaultClassname } ${ addonActivateButton.loadingClassname }` } ); if ( ! blockData.viewsAddon.installed && blockData.viewsAddon.hasAccess ) { frmAddonAPI.toggleAddonState( 'frm_install_addon', blockData.viewsAddon.url ).then( () => { window.location.reload(); @@ -82,7 +82,7 @@ function Edit() { }
- { + {
diff --git a/js/src/frm_testing_mode.js b/js/src/frm_testing_mode.js index a93a968d9a..b96094e154 100644 --- a/js/src/frm_testing_mode.js +++ b/js/src/frm_testing_mode.js @@ -31,7 +31,7 @@ } function setupBootstrapDropdowns() { - const frmDom = window.frmDom; + const { frmDom } = window; frmDom.bootstrap.setupBootstrapDropdowns( function() { const toggle = document.querySelector( '#frm_testmode_enabled_form_actions .dropdown-toggle' ); diff --git a/js/src/settings-components/components/slider-component.js b/js/src/settings-components/components/slider-component.js index c7c5e8fa4f..7dda55feff 100644 --- a/js/src/settings-components/components/slider-component.js +++ b/js/src/settings-components/components/slider-component.js @@ -323,7 +323,7 @@ export default class frmSliderComponent { const sliderWidth = slider.querySelector( '.frm-slider' ).offsetWidth - this.sliderBulletWidth; const value = parseInt( slider.querySelector( '.frm-slider-value input[type="text"]' ).value, 10 ); const unit = slider.querySelector( 'select' ).value; - const steps = this.options[ index ].steps; + const { steps } = this.options[ index ]; let deltaX = Math.ceil( ( value / this.options[ index ].maxValue ) * sliderWidth ); if ( '%' === unit ) { @@ -545,7 +545,7 @@ export default class frmSliderComponent { if ( element.classList.contains( 'frm-has-multiple-values' ) ) { const input = element.closest( '.frm-style-component' ).querySelector( 'input[type="hidden"]' ); const inputValue = input.value.split( ' ' ); - const type = element.dataset.type; + const { type } = element.dataset; if ( ! inputValue[ 2 ] ) { inputValue[ 2 ] = '0px'; diff --git a/square/js/frontend.js b/square/js/frontend.js index f2c42a0e67..1bdd9d42a1 100644 --- a/square/js/frontend.js +++ b/square/js/frontend.js @@ -3,8 +3,8 @@ return; } - const appId = frmSquareVars.appId; - const locationId = frmSquareVars.locationId; + const { appId } = frmSquareVars; + const { locationId } = frmSquareVars; // Track the state of the Square card element let squareCardElementIsComplete = false; @@ -37,7 +37,7 @@ // Add event listener to track when the card form is valid card.addEventListener( 'focusClassRemoved', event => { - const field = event.detail.field; + const { field } = event.detail; const value = event.detail.currentState.isCompletelyValid; cardFields[ field ] = value; @@ -178,7 +178,7 @@ return buyerTokens[ verificationData.data.hash ]; } - const verificationDetails = verificationData.data.verificationDetails; + const { verificationDetails } = verificationData.data; const verificationResults = await payments.verifyBuyer( token, verificationDetails ); buyerTokens[ verificationData.data.hash ] = verificationResults.token; diff --git a/square/js/settings.js b/square/js/settings.js index faf493e8df..571ed28d22 100644 --- a/square/js/settings.js +++ b/square/js/settings.js @@ -4,7 +4,7 @@ button.addEventListener( 'click', function( e ) { e.preventDefault(); - const mode = button.dataset.mode; + const { mode } = button.dataset; if ( 'test' === mode ) { frmDom.modal.maybeCreateModal( 'frm_square_test_setup_modal', diff --git a/stripe/js/connect_settings.js b/stripe/js/connect_settings.js index e71f5bed69..95d53573f8 100644 --- a/stripe/js/connect_settings.js +++ b/stripe/js/connect_settings.js @@ -85,7 +85,7 @@ const xmlHttp = new XMLHttpRequest(); const params = typeof data === 'string' ? data : Object.keys( data ).map( function( k ) { - return encodeURIComponent( k ) + '=' + encodeURIComponent( data[ k ] ); + return `${ encodeURIComponent( k ) }=${ encodeURIComponent( data[ k ] ) }`; } ).join( '&' ); diff --git a/stripe/js/frmstrp.js b/stripe/js/frmstrp.js index 7e3fbc5231..0a34b5fd83 100644 --- a/stripe/js/frmstrp.js +++ b/stripe/js/frmstrp.js @@ -1,13 +1,13 @@ ( function() { - let thisForm = false, - formID = 0, - event = false, - frmstripe, - running = 100, - elements, - isStripeLink = false, - linkAuthenticationElementIsComplete = false, - stripeLinkElementIsComplete = false; + let thisForm = false; + let formID = 0; + let event = false; + let frmstripe; + let running = 100; + let elements; + let isStripeLink = false; + let linkAuthenticationElementIsComplete = false; + let stripeLinkElementIsComplete = false; const triggerCustomEvent = function( el, eventName, data ) { frmFrontForm.triggerCustomEvent( el, eventName, data ); @@ -242,17 +242,17 @@ } function addName( $form ) { - let i, - firstField, - lastField, - firstFieldContainer, - lastFieldContainer, - firstNameID = '', - lastNameID = '', - subFieldEl; + let i; + let firstField; + let lastField; + let firstFieldContainer; + let lastFieldContainer; + let firstNameID = ''; + let lastNameID = ''; + let subFieldEl; const cardObject = {}; - const settings = frm_stripe_vars.settings; + const { settings } = frm_stripe_vars; /** * Gets first, middle or last name from the given field. @@ -263,14 +263,14 @@ */ const getNameFieldValue = function( field, subFieldName ) { if ( 'object' !== typeof field ) { - field = document.getElementById( 'frm_field_' + field + '_container' ); + field = document.getElementById( `frm_field_${ field }_container` ); } if ( ! field || 'object' !== typeof field || 'function' !== typeof field.querySelector ) { return ''; } - subFieldEl = field.querySelector( '.frm_combo_inputs_container .frm_form_subfield-' + subFieldName + ' input' ); + subFieldEl = field.querySelector( `.frm_combo_inputs_container .frm_form_subfield-${ subFieldName } input` ); if ( ! subFieldEl ) { return ''; } @@ -297,12 +297,12 @@ if ( type === 'container' ) { return queryForNameFieldIsFound ? window.frmProForm.queryForNameField( fieldID, 'container' ) - : document.querySelector( '#frm_field_' + fieldID + '_container, .frm_field_' + fieldID + '_container' ); + : document.querySelector( `#frm_field_${ fieldID }_container, .frm_field_${ fieldID }_container` ); } return queryForNameFieldIsFound ? window.frmProForm.queryForNameField( fieldID, 'field', $form[ 0 ] ) - : $form[ 0 ].querySelector( '#frm_field_' + fieldID + '_container input, input[name="item_meta[' + fieldID + ']"], .frm_field_' + fieldID + '_container input' ); + : $form[ 0 ].querySelector( `#frm_field_${ fieldID }_container input, input[name="item_meta[${ fieldID }]"], .frm_field_${ fieldID }_container input` ); } if ( firstNameID !== '' ) { @@ -320,11 +320,11 @@ if ( lastNameID !== '' ) { lastFieldContainer = getNameFieldItem( lastNameID, 'container' ); if ( lastFieldContainer && lastFieldContainer.querySelector( '.frm_combo_inputs_container' ) ) { // This is a name field. - cardObject.name = cardObject.name + ' ' + getNameFieldValue( lastFieldContainer, 'last' ); + cardObject.name = `${ cardObject.name } ${ getNameFieldValue( lastFieldContainer, 'last' ) }`; } else { lastField = getNameFieldItem( lastNameID, 'field', $form ); if ( lastField && lastField.value ) { - cardObject.name = cardObject.name + ' ' + lastField.value; + cardObject.name = `${ cardObject.name } ${ lastField.value }`; } } } @@ -361,7 +361,7 @@ function addFieldDataToPriceFieldsArray( field ) { if ( isNaN( field ) ) { - priceFields.push( 'field_' + field ); + priceFields.push( `field_${ field }` ); } else { priceFields.push( field ); } @@ -421,7 +421,7 @@ const xmlHttp = new XMLHttpRequest(); const params = typeof data === 'string' ? data : Object.keys( data ).map( function( k ) { - return encodeURIComponent( k ) + '=' + encodeURIComponent( data[ k ] ); + return `${ encodeURIComponent( k ) }=${ encodeURIComponent( data[ k ] ) }`; } ).join( '&' ); @@ -464,7 +464,7 @@ } const formId = parseInt( stripeLinkForm.querySelector( 'input[name="form_id"]' ).value ); - const intentField = stripeLinkForm.querySelector( 'input[name="frmintent' + formId + '[]"]' ); + const intentField = stripeLinkForm.querySelector( `input[name="frmintent${ formId }[]"]` ); if ( ! intentField ) { return false; @@ -565,7 +565,8 @@ * @return {void} */ function insertAuthenticationElement( cardElement ) { - let emailInput, cardFieldContainer; + let emailInput; + let cardFieldContainer; let addAboveCardElement = true; const emailField = checkForEmailField(); @@ -842,7 +843,10 @@ each( getStripeSettings(), checkStripeSettingForField ); function checkStripeSettingForField( currentSetting ) { - let currentFieldId, fieldMatchByKey, fieldContainer, hiddenInput; + let currentFieldId; + let fieldMatchByKey; + let fieldContainer; + let hiddenInput; if ( 'string' !== typeof currentSetting[ settingKey ] || ! currentSetting[ settingKey ].length ) { return; @@ -857,7 +861,7 @@ if ( isNaN( currentFieldId ) ) { // If it is not a number, try as a field key. - fieldMatchByKey = document.getElementById( 'field_' + currentFieldId ); + fieldMatchByKey = document.getElementById( `field_${ currentFieldId }` ); } } else { // First name and last name are not wrapped as shortcodes. @@ -867,17 +871,17 @@ if ( fieldMatchByKey ) { fieldContainer = fieldMatchByKey.closest( '.frm_form_field' ); } else { - fieldContainer = document.getElementById( 'frm_field_' + currentFieldId + '_container' ); + fieldContainer = document.getElementById( `frm_field_${ currentFieldId }_container` ); } if ( ! fieldContainer ) { - hiddenInput = document.querySelector( 'input[name="item_meta[' + currentFieldId + ']"]' ); + hiddenInput = document.querySelector( `input[name="item_meta[${ currentFieldId }]"]` ); if ( ! hiddenInput ) { if ( 'first_name' === settingKey ) { - hiddenInput = document.querySelector( 'input[name="item_meta[' + currentFieldId + '][first]"]' ); + hiddenInput = document.querySelector( `input[name="item_meta[${ currentFieldId }][first]"]` ); } else if ( 'last_name' === settingKey ) { - hiddenInput = document.querySelector( 'input[name="item_meta[' + currentFieldId + '][last]"]' ); + hiddenInput = document.querySelector( `input[name="item_meta[${ currentFieldId }][last]"]` ); } } @@ -906,7 +910,7 @@ */ function createMountTarget( className ) { const newElement = document.createElement( 'div' ); - newElement.className = className + ' frm_form_field form-field'; + newElement.className = `${ className } frm_form_field form-field`; return newElement; } @@ -919,7 +923,7 @@ */ function each( items, callback ) { let index; - const length = items.length; + const { length } = items; for ( index = 0; index < length; index++ ) { if ( false === callback( items[ index ], index ) ) { break; @@ -938,7 +942,7 @@ each( getPriceFields(), function( fieldId ) { - const fieldContainer = document.getElementById( 'frm_field_' + fieldId + '_container' ); + const fieldContainer = document.getElementById( `frm_field_${ fieldId }_container` ); if ( ! fieldContainer ) { return; } diff --git a/stripe/js/frmtrans_admin.js b/stripe/js/frmtrans_admin.js index 586d245a20..acfb4cfe3c 100755 --- a/stripe/js/frmtrans_admin.js +++ b/stripe/js/frmtrans_admin.js @@ -30,14 +30,14 @@ } const gateway = this.value; - const checked = this.checked; + const { checked } = this; - toggleOpts( this, checked, '.show_' + gateway ); + toggleOpts( this, checked, `.show_${ gateway }` ); const toggleOff = 'stripe' === gateway ? 'square' : 'stripe'; const settings = jQuery( this ).closest( '.frm_form_action_settings' ); - const showClass = 'show_' + settings.find( '.frm_gateway_opt input:checked' ).attr( 'value' ); - const gatewaySettings = settings.get( 0 ).querySelectorAll( '.show_' + toggleOff ); + const showClass = `show_${ settings.find( '.frm_gateway_opt input:checked' ).attr( 'value' ) }`; + const gatewaySettings = settings.get( 0 ).querySelectorAll( `.show_${ toggleOff }` ); gatewaySettings.forEach( setting => { diff --git a/tests/cypress/e2e/Forms/formPageDataValidation.cy.js b/tests/cypress/e2e/Forms/formPageDataValidation.cy.js index 39e2241679..46ffbccd26 100644 --- a/tests/cypress/e2e/Forms/formPageDataValidation.cy.js +++ b/tests/cypress/e2e/Forms/formPageDataValidation.cy.js @@ -61,11 +61,11 @@ describe( 'Forms page', () => { cy.log( 'Validate the header logo link' ); cy.get( 'a.frm-header-logo' ) - .should( 'have.attr', 'href', origin + '/wp-admin/admin.php?page=formidable' ) + .should( 'have.attr', 'href', `${ origin }/wp-admin/admin.php?page=formidable` ) .click(); cy.log( 'Validate the URL after clicking the header logo' ); - cy.url().should( 'eq', origin + '/wp-admin/admin.php?page=formidable' ); + cy.url().should( 'eq', `${ origin }/wp-admin/admin.php?page=formidable` ); cy.log( 'Validate other header elements' ); cy.get( 'h1' ).should( 'contain', 'Forms' ); diff --git a/tests/cypress/e2e/Forms/formsSettings.cy.js b/tests/cypress/e2e/Forms/formsSettings.cy.js index c4239b93a3..06e762a9d1 100644 --- a/tests/cypress/e2e/Forms/formsSettings.cy.js +++ b/tests/cypress/e2e/Forms/formsSettings.cy.js @@ -124,7 +124,7 @@ describe( 'Updating form settings', () => { } ); cy.log( 'Navigate back to the formidable form page' ); - cy.visit( Origin + '/wp-admin/admin.php?page=formidable' ); + cy.visit( `${ Origin }/wp-admin/admin.php?page=formidable` ); cy.openForm(); cy.log( 'Click on Preview - In Theme' ); @@ -145,7 +145,7 @@ describe( 'Updating form settings', () => { } ); cy.log( 'Navigate back to the formidable form page' ); - cy.visit( Origin + '/wp-admin/admin.php?page=formidable' ); + cy.visit( `${ Origin }/wp-admin/admin.php?page=formidable` ); cy.log( 'Teardown - Delete form' ); cy.deleteForm(); diff --git a/tests/cypress/e2e/admin.cy.js b/tests/cypress/e2e/admin.cy.js index 9821a25b57..80941a8a93 100644 --- a/tests/cypress/e2e/admin.cy.js +++ b/tests/cypress/e2e/admin.cy.js @@ -25,7 +25,7 @@ describe( 'Run some basic Formidale tests', function() { // Load the settings page fresh so it doesn't try to prompt for a form name on save. cy.get( '#form_id' ).invoke( 'val' ).then( formId => { - cy.visit( 'wp-admin/admin.php?page=formidable&frm_action=settings&id=' + formId ); + cy.visit( `wp-admin/admin.php?page=formidable&frm_action=settings&id=${ formId }` ); // Update the form settings. Give the form a name. cy.get( '#frm_form_name' ).type( 'My form' ); @@ -35,7 +35,7 @@ describe( 'Run some basic Formidale tests', function() { // Load the form preview and check if there is a submit button. // Submit the form and expect a success message. cy.get( '#frm_form_key' ).invoke( 'val' ).then( formKey => { - cy.visit( '/wp-admin/admin-ajax.php?action=frm_forms_preview&form=' + formKey ); + cy.visit( `/wp-admin/admin-ajax.php?action=frm_forms_preview&form=${ formKey }` ); cy.get( '.frm_button_submit' ).should( 'contain.text', 'Submit' ).click(); cy.get( '.frm_message' ).should( 'contain.text', 'Your responses were successfully submitted. Thank you!' ); } ); diff --git a/tests/cypress/e2e/validate-css.cy.js b/tests/cypress/e2e/validate-css.cy.js index ebbd839902..fdce99267b 100644 --- a/tests/cypress/e2e/validate-css.cy.js +++ b/tests/cypress/e2e/validate-css.cy.js @@ -35,7 +35,7 @@ describe( 'Run some CSS validation', () => { validationErrors.forEach( validationError => { if ( ! exceptions.includes( validationError.type ) ) { - errors.push( validationError.message + ' on line ' + validationError.line + ' (' + validationError.type + ')' ); + errors.push( `${ validationError.message } on line ${ validationError.line } (${ validationError.type })` ); } } ); @@ -51,10 +51,10 @@ describe( 'Run some CSS validation', () => { const formidableFolder = Cypress.env( 'FORMIDABLE_FOLDER' ) || 'formidable'; it( 'Check frm_admin.css for valid CSS', () => { - validateCSS( '/wp-content/plugins/' + formidableFolder + '/css/frm_admin.css' ); + validateCSS( `/wp-content/plugins/${ formidableFolder }/css/frm_admin.css` ); } ); it( 'Check generated CSS for valid CSS', () => { - validateCSS( '/wp-content/plugins/' + formidableFolder + '/css/formidableforms.css' ); + validateCSS( `/wp-content/plugins/${ formidableFolder }/css/formidableforms.css` ); } ); } ); From 7d48853b97dc601a888d41ede623824ae5995968 Mon Sep 17 00:00:00 2001 From: Sherv Date: Wed, 25 Feb 2026 19:07:58 +0300 Subject: [PATCH 02/34] Add ESLint rule to disallow unnecessary optional chaining on querySelectorAll and similar DOM methods --- .../no-optional-chaining-queryselectorall.js | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 eslint-rules/rules/no-optional-chaining-queryselectorall.js diff --git a/eslint-rules/rules/no-optional-chaining-queryselectorall.js b/eslint-rules/rules/no-optional-chaining-queryselectorall.js new file mode 100644 index 0000000000..7f899ed5c7 --- /dev/null +++ b/eslint-rules/rules/no-optional-chaining-queryselectorall.js @@ -0,0 +1,115 @@ +'use strict'; + +/** + * Detects unnecessary optional chaining on querySelectorAll results. + * Since querySelectorAll always returns a NodeList (never null/undefined), + * and NodeList.forEach handles empty lists safely, the ?. is redundant. + */ +module.exports = { + meta: { + type: 'suggestion', + docs: { + description: 'Disallow unnecessary optional chaining on querySelectorAll and similar DOM methods that never return null.', + }, + fixable: 'code', + schema: [], + messages: { + unnecessaryChaining: 'Unnecessary optional chaining on {{method}}. {{reason}}', + }, + }, + + create( context ) { + const sourceCode = context.sourceCode; + + // Methods that always return a value (never null/undefined) + const alwaysReturns = new Set([ + 'querySelectorAll', + 'getElementsByClassName', + 'getElementsByTagName', + 'getElementsByName', + 'children', + ]); + + return { + ChainExpression( node ) { + const { expression } = node; + + // Check if this is a call expression with optional chaining + if ( expression.type !== 'CallExpression' || ! expression.optional ) { + return; + } + + const { callee } = expression; + + // Check if callee is a MemberExpression (e.g., document.querySelectorAll) + if ( callee.type !== 'MemberExpression' ) { + return; + } + + const methodName = callee.property.name; + + if ( ! alwaysReturns.has( methodName ) ) { + return; + } + + let reason; + if ( methodName === 'querySelectorAll' ) { + reason = 'querySelectorAll always returns a NodeList. Use .querySelectorAll() without ?.'; + } else if ( methodName === 'children' ) { + reason = 'children always returns an HTMLCollection. Use .children without ?.'; + } else { + reason = `${ methodName } always returns a collection. Remove the ?.`; + } + + context.report({ + node, + messageId: 'unnecessaryChaining', + data: { + method: methodName, + reason, + }, + fix( fixer ) { + // Remove the ?. by replacing the CallExpression with a non-optional version + const callText = sourceCode.getText( expression ); + const fixedText = callText.replace( /\?\.([([])/g, '$1' ); + + return fixer.replaceText( node, fixedText ); + }, + }); + }, + + // Also catch cases like: elements?.forEach where elements is from querySelectorAll + MemberExpression( node ) { + if ( ! node.optional ) { + return; + } + + const { object } = node; + + // Check if object is a direct call to querySelectorAll or similar + if ( object.type === 'CallExpression' && object.callee.type === 'MemberExpression' ) { + const methodName = object.callee.property.name; + + if ( alwaysReturns.has( methodName ) ) { + context.report({ + node, + messageId: 'unnecessaryChaining', + data: { + method: methodName, + reason: `${ methodName } always returns a collection, so ${ node.property.name } will not be null.`, + }, + fix( fixer ) { + // Replace ?. with . + const objectText = sourceCode.getText( object ); + const propertyText = sourceCode.getText( node.property ); + const fixedText = `${ objectText }.${ propertyText }`; + + return fixer.replaceText( node, fixedText ); + }, + }); + } + } + }, + }; + }, +}; From 43e25918e512957979e6bc086c571402fd6f2e42 Mon Sep 17 00:00:00 2001 From: Sherv Date: Wed, 25 Feb 2026 19:08:05 +0300 Subject: [PATCH 03/34] Add ESLint rule to detect and warn about repeated DOM queries with the same selector --- eslint-rules/rules/no-repeated-selector.js | 106 +++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 eslint-rules/rules/no-repeated-selector.js diff --git a/eslint-rules/rules/no-repeated-selector.js b/eslint-rules/rules/no-repeated-selector.js new file mode 100644 index 0000000000..aacbc90915 --- /dev/null +++ b/eslint-rules/rules/no-repeated-selector.js @@ -0,0 +1,106 @@ +'use strict'; + +/** + * Detects repeated calls to querySelector/querySelectorAll with the same selector + * in the same function scope. Suggests caching the result in a variable. + */ +module.exports = { + meta: { + type: 'suggestion', + docs: { + description: 'Disallow repeated DOM queries with the same selector. Cache the result in a variable instead.', + }, + fixable: null, // Can't auto-fix this safely + schema: [], + messages: { + cacheSelector: 'querySelector with selector "{{selector}}" is called {{count}} times. Cache the result in a variable.', + }, + }, + + create( context ) { + const sourceCode = context.sourceCode; + + // Track selectors per function scope + const scopeStack = []; + + function enterScope() { + scopeStack.push( new Map() ); + } + + function exitScope() { + const selectorMap = scopeStack.pop(); + + // Report violations for this scope + for ( const [ selector, calls ] of selectorMap.entries() ) { + if ( calls.length > 1 ) { + // Report on the second call (first is fine, second+ are wasteful) + for ( let i = 1; i < calls.length; i++ ) { + context.report({ + node: calls[ i ], + messageId: 'cacheSelector', + data: { + selector, + count: calls.length, + }, + }); + } + } + } + } + + function trackSelector( node, methodName ) { + if ( scopeStack.length === 0 ) { + return; + } + + const selectorMap = scopeStack[ scopeStack.length - 1 ]; + + // Only track if there's a literal selector argument + if ( node.arguments.length === 0 || node.arguments[0].type !== 'Literal' ) { + return; + } + + const selector = node.arguments[0].value; + + if ( typeof selector !== 'string' ) { + return; + } + + // Use method name + selector as key to differentiate querySelector vs querySelectorAll + const key = `${ methodName }:${ selector }`; + + if ( ! selectorMap.has( key ) ) { + selectorMap.set( key, [] ); + } + + selectorMap.get( key ).push( node ); + } + + return { + // Enter function scope + FunctionDeclaration: enterScope, + FunctionExpression: enterScope, + ArrowFunctionExpression: enterScope, + + // Exit function scope + 'FunctionDeclaration:exit': exitScope, + 'FunctionExpression:exit': exitScope, + 'ArrowFunctionExpression:exit': exitScope, + + // Track querySelector/querySelectorAll calls + CallExpression( node ) { + const { callee } = node; + + if ( callee.type !== 'MemberExpression' ) { + return; + } + + const methodName = callee.property.name; + + if ( methodName === 'querySelector' || methodName === 'querySelectorAll' ) { + trackSelector( node, methodName ); + } + }, + }; + }, +}; From dbc1f290d7c64fb526592ec1485473aebc1d49ee Mon Sep 17 00:00:00 2001 From: Sherv Date: Wed, 25 Feb 2026 19:08:16 +0300 Subject: [PATCH 04/34] Add ESLint rule to detect appendChild calls in loops and suggest using DocumentFragment --- .../rules/prefer-document-fragment.js | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 eslint-rules/rules/prefer-document-fragment.js diff --git a/eslint-rules/rules/prefer-document-fragment.js b/eslint-rules/rules/prefer-document-fragment.js new file mode 100644 index 0000000000..b1184e044a --- /dev/null +++ b/eslint-rules/rules/prefer-document-fragment.js @@ -0,0 +1,91 @@ +'use strict'; + +/** + * Detects appendChild calls inside loops (forEach, for, while, etc.). + * Suggests using DocumentFragment to batch DOM operations. + */ +module.exports = { + meta: { + type: 'suggestion', + docs: { + description: 'Prefer DocumentFragment when calling appendChild in a loop to avoid multiple reflows.', + }, + fixable: null, // Can't auto-fix this safely without context + schema: [], + messages: { + useFragment: 'Avoid calling appendChild in a loop. Use DocumentFragment to batch DOM operations and prevent multiple reflows.', + }, + }, + + create( context ) { + const loopStack = []; + + function enterLoop() { + loopStack.push( true ); + } + + function exitLoop() { + loopStack.pop(); + } + + function isInLoop() { + return loopStack.length > 0; + } + + return { + // Enter loops + ForStatement: enterLoop, + ForInStatement: enterLoop, + ForOfStatement: enterLoop, + WhileStatement: enterLoop, + DoWhileStatement: enterLoop, + + // Exit loops + 'ForStatement:exit': exitLoop, + 'ForInStatement:exit': exitLoop, + 'ForOfStatement:exit': exitLoop, + 'WhileStatement:exit': exitLoop, + 'DoWhileStatement:exit': exitLoop, + + // Track .forEach, .map on arrays + CallExpression( node ) { + const { callee } = node; + + // Check for .forEach/.map + if ( callee.type === 'MemberExpression' ) { + const methodName = callee.property.name; + + if ( methodName === 'forEach' || methodName === 'map' ) { + // Enter loop context + enterLoop(); + + // We'll exit on the exit event, but we need to handle the callback + return; + } + + // Check for appendChild inside a loop + if ( methodName === 'appendChild' || methodName === 'append' || methodName === 'prepend' ) { + if ( isInLoop() ) { + context.report({ + node, + messageId: 'useFragment', + }); + } + } + } + }, + + 'CallExpression:exit'( node ) { + const { callee } = node; + + if ( callee.type === 'MemberExpression' ) { + const methodName = callee.property.name; + + if ( methodName === 'forEach' || methodName === 'map' ) { + exitLoop(); + } + } + }, + }; + }, +}; From 04d0653c5d608fa9f98e46e095ee2f76a076bd85 Mon Sep 17 00:00:00 2001 From: Sherv Date: Wed, 25 Feb 2026 19:09:11 +0300 Subject: [PATCH 05/34] Add ESLint rules for DOM optimization and enforce JavaScript coding standards --- eslint-rules/index.js | 6 +++ eslint.config.mjs | 93 ++++++++++++------------------------------- package-lock.json | 21 ++++++++-- package.json | 1 + 4 files changed, 49 insertions(+), 72 deletions(-) diff --git a/eslint-rules/index.js b/eslint-rules/index.js index 76f6e8f772..4fe924edef 100644 --- a/eslint-rules/index.js +++ b/eslint-rules/index.js @@ -4,6 +4,9 @@ const preferStrictComparison = require( './rules/prefer-strict-comparison' ); const noRedundantUndefinedCheck = require( './rules/no-redundant-undefined-check' ); const preferIncludes = require( './rules/prefer-includes' ); const noTypeofUndefined = require( './rules/no-typeof-undefined' ); +const noOptionalChainingQueryselectorall = require( './rules/no-optional-chaining-queryselectorall' ); +const noRepeatedSelector = require( './rules/no-repeated-selector' ); +const preferDocumentFragment = require( './rules/prefer-document-fragment' ); module.exports = { rules: { @@ -11,5 +14,8 @@ module.exports = { 'no-redundant-undefined-check': noRedundantUndefinedCheck, 'prefer-includes': preferIncludes, 'no-typeof-undefined': noTypeofUndefined, + 'no-optional-chaining-queryselectorall': noOptionalChainingQueryselectorall, + 'no-repeated-selector': noRepeatedSelector, + 'prefer-document-fragment': preferDocumentFragment, }, }; diff --git a/eslint.config.mjs b/eslint.config.mjs index aebc48d881..6143e2e0a4 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -168,6 +168,25 @@ export default [ 'comma-dangle': 'off', 'arrow-parens': ['error', 'as-needed'], + // Enforce frm-javascript.md patterns + 'no-var': 'warn', + 'prefer-const': 'warn', + 'prefer-destructuring': ['warn', { + 'array': true, + 'object': true, + }, { + 'enforceForRenamedProperties': false, + }], + 'prefer-spread': 'warn', + 'prefer-rest-params': 'error', + 'prefer-template': 'warn', + 'no-eval': 'error', + 'no-implied-eval': 'error', + 'no-new-func': 'error', + 'no-extend-native': 'error', + 'one-var': ['error', 'never'], + 'default-param-last': 'warn', + // WordPress overrides '@wordpress/no-global-active-element': 'off', // Disabled: use context.* APIs removed in ESLint 9 flat config (getScope, getAncestors, @@ -344,6 +363,12 @@ export default [ 'formidable/no-redundant-undefined-check': 'error', 'formidable/prefer-includes': 'error', 'formidable/no-typeof-undefined': 'error', + 'formidable/no-optional-chaining-queryselectorall': 'error', + 'formidable/no-repeated-selector': 'warn', + 'formidable/prefer-document-fragment': 'warn', + + // Import rules + 'import/no-default-export': 'warn', }, }, @@ -369,74 +394,6 @@ export default [ 'no-jquery/no-ajax': 'error', 'no-jquery/no-fade': 'error', 'no-jquery/no-is': 'error', - 'prefer-const': 'off', - }, - }, - - // Override for js/formidable_admin_global.js - { - files: ['js/formidable_admin_global.js'], - rules: { - 'prefer-const': 'off', - }, - }, - - // Override for js/src/admin/admin.js - { - files: ['js/src/admin/admin.js'], - rules: { - 'prefer-const': 'off', - 'no-redeclare': 'off', - 'no-unused-expressions': 'off', - 'jsdoc/require-returns-description': 'off', - 'jsdoc/require-param-type': 'off', - '@wordpress/valid-sprintf': 'off', - }, - }, - - // Override for js/src/common/components/radio.js - { - files: ['js/src/common/components/radio.js'], - rules: { - '@wordpress/no-base-control-with-label-without-id': 'off', - }, - }, - - // Override for files using @wordpress/dom-ready - { - files: [ - 'js/src/addons-page/index.js', - 'js/src/form-templates/index.js', - 'js/src/onboarding-wizard/index.js', - 'js/src/settings-components/index.js', - 'js/src/welcome-tour/index.js', - ], - rules: { - 'import/no-extraneous-dependencies': 'off', - }, - }, - - // Override for js/src/form-templates/events/favoriteButtonListener.js - { - files: ['js/src/form-templates/events/favoriteButtonListener.js'], - rules: { - 'no-unused-expressions': 'off', - }, - }, - - // Override for stripe/js/frmstrp.js - { - files: ['stripe/js/frmstrp.js'], - rules: { - 'no-bitwise': 'off', - }, - }, - - // Override for Cypress test files - { - files: ['tests/cypress/**/*.js'], - rules: { - 'no-unused-expressions': 'off', }, }, ]; diff --git a/package-lock.json b/package-lock.json index 852f725776..38a84b48dd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "@wordpress/api-request": "^1.0.0", "@wordpress/components": "^6.0.1", "@wordpress/data": "^3.1.2", + "@wordpress/dom-ready": "^3.6.0", "@wordpress/element": "^2.16.0", "@wordpress/i18n": "^3.14.0", "@wordpress/url": "^2.17.0", @@ -5192,6 +5193,15 @@ "@wordpress/i18n": "^3.20.0" } }, + "node_modules/@wordpress/a11y/node_modules/@wordpress/dom-ready": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@wordpress/dom-ready/-/dom-ready-2.13.2.tgz", + "integrity": "sha512-COH7n2uZfBq4FtluSbl37N3nCEcdMXzV42ETCWKUcumiP1Zd3qnkfQKcsxTaHWY8aVt/358RvJ7ghWe3xAd+fg==", + "license": "GPL-2.0-or-later", + "dependencies": { + "@babel/runtime": "^7.13.10" + } + }, "node_modules/@wordpress/api-fetch": { "version": "2.2.8", "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-2.2.8.tgz", @@ -5407,12 +5417,15 @@ } }, "node_modules/@wordpress/dom-ready": { - "version": "2.13.2", - "resolved": "https://registry.npmjs.org/@wordpress/dom-ready/-/dom-ready-2.13.2.tgz", - "integrity": "sha512-COH7n2uZfBq4FtluSbl37N3nCEcdMXzV42ETCWKUcumiP1Zd3qnkfQKcsxTaHWY8aVt/358RvJ7ghWe3xAd+fg==", + "version": "3.58.0", + "resolved": "https://registry.npmjs.org/@wordpress/dom-ready/-/dom-ready-3.58.0.tgz", + "integrity": "sha512-sDgRPjNBToRKgYrpwvMRv2Yc7/17+sp8hm/rRnbubwb+d/DbGkK4Tc/r4sNLSZCqUAtcBXq9uk1lzvhge3QUSg==", "license": "GPL-2.0-or-later", "dependencies": { - "@babel/runtime": "^7.13.10" + "@babel/runtime": "^7.16.0" + }, + "engines": { + "node": ">=12" } }, "node_modules/@wordpress/element": { diff --git a/package.json b/package.json index 5485aa7689..9995500fab 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ "dependencies": { "@babel/runtime": "^7.23.0", "@wordpress/api-fetch": "^2.2.8", + "@wordpress/dom-ready": "^3.6.0", "@wordpress/api-request": "^1.0.0", "@wordpress/components": "^6.0.1", "@wordpress/data": "^3.1.2", From cdc66856592dde30a87abca4cb792dccad25f43a Mon Sep 17 00:00:00 2001 From: Sherv Date: Wed, 25 Feb 2026 19:10:11 +0300 Subject: [PATCH 06/34] Update ESLint rules documentation with new DOM optimization rules and formatting improvements --- .windsurf/skills/eslint-rules/SKILL.md | 51 +++++++++++++++++++++----- 1 file changed, 41 insertions(+), 10 deletions(-) diff --git a/.windsurf/skills/eslint-rules/SKILL.md b/.windsurf/skills/eslint-rules/SKILL.md index 8b6f3c00d2..d3630086f5 100644 --- a/.windsurf/skills/eslint-rules/SKILL.md +++ b/.windsurf/skills/eslint-rules/SKILL.md @@ -20,14 +20,17 @@ Workflow for creating and maintaining custom ESLint rules in the Formidable Form Custom ESLint rules live in `/eslint-rules/` at the project root. -``` +```text eslint-rules/ ├── index.js # Plugin entry point, exports all rules └── rules/ # Individual rule files ├── prefer-strict-comparison.js ├── no-redundant-undefined-check.js ├── prefer-includes.js - └── no-typeof-undefined.js + ├── no-typeof-undefined.js + ├── no-optional-chaining-queryselectorall.js + ├── no-repeated-selector.js + └── prefer-document-fragment.js ``` The plugin is imported in `eslint.config.mjs` as `formidable` and rules are referenced as `formidable/`. @@ -35,6 +38,7 @@ The plugin is imported in `eslint.config.mjs` as `formidable` and rules are refe ### Release Exclusions The `/eslint-rules/` directory is excluded from releases via: + - `.gitattributes`: `export-ignore` - `bin/zip-plugin.sh`: `-x "*/eslint-rules/*"` @@ -65,10 +69,10 @@ Detects `.indexOf()` comparisons with `-1` and suggests `.includes()` instead. C - **Fixable:** Yes - **Patterns caught:** - - `arr.indexOf(x) !== -1` and yoda `-1 !== arr.indexOf(x)` - - `arr.indexOf(x) === -1` and yoda `-1 === arr.indexOf(x)` - - `arr.indexOf(x) > -1` and yoda `-1 < arr.indexOf(x)` - - `arr.indexOf(x) >= 0` + - `arr.indexOf(x) !== -1` and yoda `-1 !== arr.indexOf(x)` + - `arr.indexOf(x) === -1` and yoda `-1 === arr.indexOf(x)` + - `arr.indexOf(x) > -1` and yoda `-1 < arr.indexOf(x)` + - `arr.indexOf(x) >= 0` ### formidable/no-typeof-undefined @@ -76,9 +80,36 @@ Detects `typeof x === 'undefined'` and yoda `'undefined' === typeof x` patterns. - **Fixable:** Yes - **Patterns caught:** - - `typeof x === 'undefined'` / `typeof x == 'undefined'` - - `'undefined' === typeof x` / `'undefined' == typeof x` (yoda) - - Both `===`/`!==` and `==`/`!=` variants + - `typeof x === 'undefined'` / `typeof x == 'undefined'` + - `'undefined' === typeof x` / `'undefined' == typeof x` (yoda) + - Both `===`/`!==` and `==`/`!=` variants + +### formidable/no-optional-chaining-queryselectorall + +Prevents unnecessary optional chaining (`?.`) on DOM methods that always return a value (never null/undefined). Methods like `querySelectorAll`, `getElementsByClassName`, and `children` always return a collection, so optional chaining is redundant. + +- **Fixable:** Yes +- **Severity:** Error +- **Patterns caught:** + - `document.querySelectorAll(...)?.forEach` + - `element.getElementsByClassName(...)?.[0]` + - `element.children?.length` + +### formidable/no-repeated-selector + +Detects repeated calls to `querySelector` or `querySelectorAll` with the same selector string in the same function scope. Suggests caching the result in a variable. + +- **Fixable:** No (requires developer judgment) +- **Severity:** Warning +- **Example:** Multiple `document.querySelector('.item')` calls should be cached + +### formidable/prefer-document-fragment + +Detects `appendChild`, `append`, or `prepend` calls inside loops. Suggests using `DocumentFragment` to batch DOM operations and prevent multiple reflows. + +- **Fixable:** No (requires restructuring code) +- **Severity:** Warning +- **Loop types detected:** `for`, `for...of`, `for...in`, `while`, `forEach`, `map` --- @@ -180,7 +211,7 @@ npm run lint:fix ## AST Explorer -Use https://astexplorer.net/ with the `espree` parser to inspect AST node types when developing rules. This helps identify the correct node visitors and property names. +Use with the `espree` parser to inspect AST node types when developing rules. This helps identify the correct node visitors and property names. ## Invocation From befa405da9d828c51f3f0c054631ca0dd63c6aab Mon Sep 17 00:00:00 2001 From: Sherv Date: Wed, 25 Feb 2026 19:46:21 +0300 Subject: [PATCH 07/34] Refactor: convert var declarations to const/let following ESLint prefer-const rule --- js/formidable.js | 106 +-- js/formidable_admin_global.js | 31 +- js/src/admin/admin.js | 834 +++++++----------- .../events/favoriteButtonListener.js | 12 +- stripe/js/frmstrp.js | 1 + 5 files changed, 348 insertions(+), 636 deletions(-) diff --git a/js/formidable.js b/js/formidable.js index 571a3aad11..c112724b30 100644 --- a/js/formidable.js +++ b/js/formidable.js @@ -251,12 +251,11 @@ function frmFrontFormJS() { * @return {void} */ function checkValidity( field, errors ) { - let fieldID; if ( 'object' !== typeof field.validity || false !== field.validity.valid ) { return; } - fieldID = getFieldId( field, true ); + const fieldID = getFieldId( field, true ); if ( errors[ fieldID ] === undefined ) { errors[ fieldID ] = getFieldValidationMessage( field, 'data-invmsg' ); } @@ -682,15 +681,13 @@ function frmFrontFormJS() { const selects = document.querySelectorAll( '.form-field select' ); const styleElement = document.querySelector( '.with_frm_style' ); const textColorDisabled = styleElement ? getComputedStyle( styleElement ).getPropertyValue( '--text-color-disabled' ).trim() : ''; - let changeSelectColor; - // Exit if there are no select elements or the textColorDisabled property is missing if ( ! selects.length || ! textColorDisabled ) { return; } // Function to change the color of a select element - changeSelectColor = function( select ) { + const changeSelectColor = function( select ) { if ( select.options[ select.selectedIndex ] && hasClass( select.options[ select.selectedIndex ], 'frm-select-placeholder' ) ) { select.style.setProperty( 'color', textColorDisabled, 'important' ); } else { @@ -851,16 +848,11 @@ function frmFrontFormJS() { * @return {void} */ function getFormErrors( object, action ) { - let data; - let success; - let error; - let shouldTriggerEvent; - const fieldsets = object.querySelectorAll( '.frm_form_field' ); fieldsets.forEach( field => field.classList.add( 'frm_doing_ajax' ) ); - data = `${ jQuery( object ).serialize() }&action=frm_entries_${ action }&nonce=${ frm_js.nonce }`; // eslint-disable-line no-jquery/no-serialize - shouldTriggerEvent = object.classList.contains( 'frm_trigger_event_on_submit' ); + const data = `${ jQuery( object ).serialize() }&action=frm_entries_${ action }&nonce=${ frm_js.nonce }`; // eslint-disable-line no-jquery/no-serialize + const shouldTriggerEvent = object.classList.contains( 'frm_trigger_event_on_submit' ); const doRedirect = response => { jQuery( document ).trigger( 'frmBeforeFormRedirect', [ object, response ] ); @@ -878,8 +870,7 @@ function frmFrontFormJS() { } }; - success = function( response ) { - let defaultResponse; + const success = function( response ) { let formID; let replaceContent; let pageOrder; @@ -891,7 +882,7 @@ function frmFrontFormJS() { let inCollapsedSection; let frmTrigger; - defaultResponse = { + const defaultResponse = { content: '', errors: {}, pass: false @@ -1042,7 +1033,7 @@ function frmFrontFormJS() { } }; - error = function() { + const error = function() { object.querySelectorAll( 'input[type="submit"], input[type="button"]' ).forEach( button => button.disabled = false ); @@ -1053,18 +1044,14 @@ function frmFrontFormJS() { } function postToAjaxUrl( form, data, success, error ) { - let ajaxUrl; - let action; - let ajaxParams; - - ajaxUrl = frm_js.ajax_url; - action = form.getAttribute( 'action' ); + let ajaxUrl = frm_js.ajax_url; + const action = form.getAttribute( 'action' ); if ( 'string' === typeof action && action.includes( '?action=frm_forms_preview' ) ) { ajaxUrl = action.split( '?action=frm_forms_preview' )[ 0 ]; } - ajaxParams = { + const ajaxParams = { type: 'POST', url: ajaxUrl, data, @@ -1139,18 +1126,14 @@ function frmFrontFormJS() { } function addQueryVar( key, value ) { - let kvp; - let i; - let x; - key = encodeURI( key ); value = encodeURI( value ); - kvp = document.location.search.substr( 1 ).split( '&' ); + const kvp = document.location.search.substr( 1 ).split( '&' ); - i = kvp.length; + let i = kvp.length; while ( i-- ) { - x = kvp[ i ].split( '=' ); + const x = kvp[ i ].split( '=' ); if ( x[ 0 ] == key ) { x[ 1 ] = value; @@ -1167,9 +1150,6 @@ function frmFrontFormJS() { } function addFieldError( $fieldCont, key, jsErrors ) { - let id; - let describedBy; - let roleString; const container = $fieldCont instanceof jQuery ? $fieldCont.get( 0 ) : $fieldCont; if ( ! container || container.offsetParent === null ) { @@ -1178,9 +1158,9 @@ function frmFrontFormJS() { container.classList.add( 'frm_blank_field' ); const input = container.querySelector( 'input, select, textarea' ); - id = getErrorElementId( key, input ); + const id = getErrorElementId( key, input ); - describedBy = input ? input.getAttribute( 'aria-describedby' ) : null; + let describedBy = input ? input.getAttribute( 'aria-describedby' ) : null; if ( typeof frmThemeOverride_frmPlaceError === 'function' ) { // eslint-disable-line camelcase frmThemeOverride_frmPlaceError( key, jsErrors ); @@ -1189,7 +1169,7 @@ function frmFrontFormJS() { if ( jsErrors[ key ].includes( '${ jsErrors[ key ] }`; } container.insertAdjacentHTML( 'beforeend', errorHtml ); @@ -1433,20 +1413,16 @@ function frmFrontFormJS() { } function checkForErrorsAndMaybeSetFocus() { - let errors; - let element; - let timeoutCallback; - if ( ! frm_js.focus_first_error ) { return; } - errors = document.querySelectorAll( '.frm_form_field .frm_error' ); + const errors = document.querySelectorAll( '.frm_form_field .frm_error' ); if ( ! errors.length ) { return; } - element = errors[ 0 ]; + let element = errors[ 0 ]; do { element = element.previousSibling; if ( [ 'input', 'select', 'textarea' ].includes( element.nodeName.toLowerCase() ) ) { @@ -1531,31 +1507,21 @@ function frmFrontFormJS() { } function initFloatingLabels() { - let checkFloatLabel; - let checkDropdownLabel; - let runOnLoad; - let selector; - let floatClass; - - selector = '.frm-show-form .frm_inside_container input, .frm-show-form .frm_inside_container select, .frm-show-form .frm_inside_container textarea'; - floatClass = 'frm_label_float_top'; - - checkFloatLabel = function( input ) { - let container; - let shouldFloatTop; - let firstOpt; + const selector = '.frm-show-form .frm_inside_container input, .frm-show-form .frm_inside_container select, .frm-show-form .frm_inside_container textarea'; + const floatClass = 'frm_label_float_top'; - container = input.closest( '.frm_inside_container' ); + const checkFloatLabel = function( input ) { + const container = input.closest( '.frm_inside_container' ); if ( ! container ) { return; } - shouldFloatTop = input.value || document.activeElement === input; + const shouldFloatTop = input.value || document.activeElement === input; container.classList.toggle( floatClass, shouldFloatTop ); if ( 'SELECT' === input.tagName ) { - firstOpt = input.querySelector( 'option:first-child' ); + const firstOpt = input.querySelector( 'option:first-child' ); if ( shouldFloatTop ) { if ( firstOpt.hasAttribute( 'data-label' ) ) { @@ -1569,7 +1535,7 @@ function frmFrontFormJS() { } }; - checkDropdownLabel = function() { + const checkDropdownLabel = function() { document.querySelectorAll( `.frm-show-form .frm_inside_container:not(.${ floatClass }) select` ).forEach( function( input ) { const firstOpt = input.querySelector( 'option:first-child' ); @@ -1591,7 +1557,7 @@ function frmFrontFormJS() { ); } ); - runOnLoad = function( firstLoad ) { + const runOnLoad = function( firstLoad ) { if ( firstLoad && document.activeElement && [ 'INPUT', 'SELECT', 'TEXTAREA' ].includes( document.activeElement.tagName ) ) { checkFloatLabel( document.activeElement ); } else if ( firstLoad ) { @@ -1663,13 +1629,11 @@ function frmFrontFormJS() { } function maybeShowNewTabFallbackMessage() { - let messageEl; - if ( ! window.frmShowNewTabFallback ) { return; } - messageEl = document.querySelector( `#frm_form_${ frmShowNewTabFallback.formId }_container .frm_message` ); + const messageEl = document.querySelector( `#frm_form_${ frmShowNewTabFallback.formId }_container .frm_message` ); if ( ! messageEl ) { return; } @@ -1678,14 +1642,10 @@ function frmFrontFormJS() { } function setCustomValidityMessage() { - let forms; - let length; - let index; - - forms = document.getElementsByClassName( 'frm-show-form' ); - length = forms.length; + const forms = document.getElementsByClassName( 'frm-show-form' ); + const length = forms.length; - for ( index = 0; index < length; ++index ) { + for ( let index = 0; index < length; ++index ) { forms[ index ].addEventListener( 'invalid', function( event ) { @@ -2039,8 +1999,6 @@ function frmFrontFormJS() { scrollMsg( id, object, animate ) { let newPos; - let m; - let b; let screenTop; let screenBottom; let scrollObj = ''; @@ -2065,8 +2023,8 @@ function frmFrontFormJS() { } newPos = newPos - frm_js.offset; - m = getComputedStyle( document.documentElement ).marginTop; - b = getComputedStyle( document.body ).marginTop; + const m = getComputedStyle( document.documentElement ).marginTop; + const b = getComputedStyle( document.body ).marginTop; if ( m || b ) { newPos = newPos - parseInt( m ) - parseInt( b ); } diff --git a/js/formidable_admin_global.js b/js/formidable_admin_global.js index 6cfd6c96ae..c4605e0e2a 100644 --- a/js/formidable_admin_global.js +++ b/js/formidable_admin_global.js @@ -2,16 +2,13 @@ /* exported frm_install_now, frmSelectSubnav, frmCreatePostEntry */ jQuery( document ).ready( function() { - let deauthLink; - let submenuItem; - let li; const installLink = document.getElementById( 'frm_install_link' ); if ( installLink !== null ) { jQuery( installLink ).on( 'click', frmInstallPro ); } - deauthLink = jQuery( '.frm_deauthorize_link' ); + const deauthLink = jQuery( '.frm_deauthorize_link' ); if ( deauthLink.length ) { deauthLink.on( 'click', frmDeauthorizeNow ); } @@ -20,9 +17,9 @@ jQuery( document ).ready( function() { frmAdminPopup.init(); } - submenuItem = document.querySelector( '.frm-upgrade-submenu' ); + const submenuItem = document.querySelector( '.frm-upgrade-submenu' ); if ( null !== submenuItem ) { - li = submenuItem.parentNode.parentNode; + const li = submenuItem.parentNode.parentNode; if ( li ) { li.classList.add( 'frm-submenu-highlight' ); } @@ -47,7 +44,6 @@ function frm_install_now() { // eslint-disable-line camelcase } function frmInstallPro( e ) { - let $msg; const plugin = this.getAttribute( 'data-prourl' ); if ( plugin === '' ) { return true; @@ -55,7 +51,7 @@ function frmInstallPro( e ) { e.preventDefault(); - $msg = jQuery( document.getElementById( 'frm_install_message' ) ); + const $msg = jQuery( document.getElementById( 'frm_install_message' ) ); $msg.html( `
${ frmGlobal.updating_msg }
` ); $msg.fadeIn( 'slow' ); @@ -125,20 +121,16 @@ function frmCreatePostEntry( id, postId ) { function frmAdminPopupJS() { function switchSc() { - let val; jQuery( '.frm_switch_sc' ).removeClass( 'active' ); jQuery( this ).addClass( 'active' ); toggleMenu(); jQuery( '#frm_popup_content .media-frame-title h1' ).html( `${ jQuery( this ).children( '.howto' ).text() } ` ); - val = this.id.replace( 'sc-link-', '' ); + const val = this.id.replace( 'sc-link-', '' ); populateOpts( val ); return false; } function populateOpts( val ) { - let $settings; - let $scOpts; - let $spinner; const sc = document.getElementById( 'frm_complete_shortcode' ); if ( sc !== null ) { @@ -146,13 +138,13 @@ function frmAdminPopupJS() { } jQuery( '.frm_shortcode_option' ).hide(); - $settings = document.getElementById( `sc-opts-${ val }` ); + const $settings = document.getElementById( `sc-opts-${ val }` ); if ( $settings !== null ) { $settings.style.display = ''; jQuery( document.getElementById( `sc-${ val }` ) ).trigger( 'click' ); } else { - $scOpts = jQuery( document.getElementById( 'frm_shortcode_options' ) ); - $spinner = jQuery( '.media-frame-title .spinner' ); + const $scOpts = jQuery( document.getElementById( 'frm_shortcode_options' ) ); + const $spinner = jQuery( '.media-frame-title .spinner' ); $spinner.show(); jQuery.ajax( { type: 'POST', @@ -229,15 +221,13 @@ function frmAdminPopupJS() { return { init() { - let $scOptsDiv; - jQuery( '.frm_switch_sc' ).on( 'click', switchSc ); jQuery( '.button.frm_insert_form' ).on( 'click', function() { populateOpts( 'formidable' ); } ); jQuery( document.getElementById( 'frm_insert_shortcode' ) ).on( 'click', insertShortcode ); - $scOptsDiv = jQuery( document.getElementById( 'frm_shortcode_options' ) ); + const $scOptsDiv = jQuery( document.getElementById( 'frm_shortcode_options' ) ); $scOptsDiv.on( 'change', 'select, input', addToShortcode ); $scOptsDiv.on( 'change', '.frm_get_field_selection', getFieldSelection ); @@ -275,7 +265,6 @@ function frmWidgetsJS() { nonce: frmGlobal.nonce }, success( opts ) { - let titleField; const catField = widget.find( '.frm_list_items_cat_id' ); catField.find( 'option' ).remove().end(); catField.append( jQuery( '' ) ); @@ -283,7 +272,7 @@ function frmWidgetsJS() { catField.append( jQuery( '' ).attr( 'value', key ).text( value ) ); } ); - titleField = widget.find( '.frm_list_items_title_id' ); + const titleField = widget.find( '.frm_list_items_title_id' ); titleField.find( 'option' ).remove().end(); titleField.append( jQuery( '' ) ); jQuery.each( opts.titleValues, function( key, value ) { diff --git a/js/src/admin/admin.js b/js/src/admin/admin.js index f46232f3f3..41445157fc 100644 --- a/js/src/admin/admin.js +++ b/js/src/admin/admin.js @@ -232,7 +232,7 @@ window.FrmFormsConnect = window.FrmFormsConnect || ( function( document, window, window.frmAdminBuildJS = function() { //'use strict'; - /*global jQuery:false, frm_admin_js, frmGlobal, ajaxurl, fromDom */ + /*global jQuery:false, frm_admin_js, frmGlobal, ajaxurl, fromDom */ // eslint-disable-line no-redeclare const MAX_FIELD_GROUP_SIZE = 12; @@ -322,11 +322,6 @@ window.frmAdminBuildJS = function() { } function confirmModal( link ) { - let verify; - let $confirmMessage; - let i; - let dataAtts; - let btnClass; const $info = initModal( '#frm_confirm_modal', '400px' ); const continueButton = document.getElementById( 'frm-confirmed-click' ); @@ -340,9 +335,9 @@ window.frmAdminBuildJS = function() { continueButton.style.display = 'block'; } - verify = link.getAttribute( 'data-frmverify' ); - btnClass = verify ? link.getAttribute( 'data-frmverify-btn' ) : ''; - $confirmMessage = jQuery( '.frm-confirm-msg' ); + const verify = link.getAttribute( 'data-frmverify' ); + const btnClass = verify ? link.getAttribute( 'data-frmverify-btn' ) : ''; + const $confirmMessage = jQuery( '.frm-confirm-msg' ); $confirmMessage.empty(); if ( verify ) { @@ -352,14 +347,14 @@ window.frmAdminBuildJS = function() { } } - dataAtts = link.dataset; + const dataAtts = link.dataset; if ( continueButton ) { - for ( i in continueButton.dataset ) { + for ( const i in continueButton.dataset ) { continueButton.removeAttribute( `data-${ i }` ); } - for ( i in dataAtts ) { + for ( const i in dataAtts ) { if ( i !== 'frmverify' ) { continueButton.setAttribute( `data-${ i }`, dataAtts[ i ] ); } @@ -416,7 +411,7 @@ window.frmAdminBuildJS = function() { * Toggle a class on target elements when an anchor is clicked, or when a radio or checkbox has been selected. * * @param {Event} e Event with either the change or click type. - * @return {false} + * @return {false} Always returns false to prevent default behavior. */ function hideShowItem( e ) { /*jshint validthis:true */ @@ -842,8 +837,8 @@ window.frmAdminBuildJS = function() { * Maybe change the droppable. * Section titles are made droppable, but are not a list, so we need to change the droppable to the section's list instead. * - * @param {Element} droppable - * @return {Element} + * @param {Element} droppable The droppable element. + * @return {Element} The adjusted droppable element. */ function getDroppableForOnDragOver( droppable ) { if ( droppable.classList.contains( 'divider_section_only' ) ) { @@ -1353,18 +1348,15 @@ window.frmAdminBuildJS = function() { } function syncLayoutClasses( $item, type ) { - let $fields; - let size; - let layoutClasses; let classToAddFunction; if ( type === undefined ) { type = 'even'; } - $fields = $item.parent().children( 'li.form-field, li.frmbutton_loadingnow' ).not( '.edit_field_type_end_divider' ); - size = $fields.length; - layoutClasses = getLayoutClasses(); + const $fields = $item.parent().children( 'li.form-field, li.frmbutton_loadingnow' ).not( '.edit_field_type_end_divider' ); + const size = $fields.length; + const layoutClasses = getLayoutClasses(); if ( 'even' === type && 5 !== size ) { $fields.each( getSyncLayoutClass( layoutClasses, getEvenClassForSize( size ) ) ); @@ -1389,19 +1381,15 @@ window.frmAdminBuildJS = function() { } function updateFieldGroupControls( $row, count ) { - let rowOffset; - let shouldShowControls; - let controls; - - rowOffset = $row.offset(); + const rowOffset = $row.offset(); if ( rowOffset === undefined ) { return; } - shouldShowControls = count >= 2; + const shouldShowControls = count >= 2; - controls = document.getElementById( 'frm_field_group_controls' ); + let controls = document.getElementById( 'frm_field_group_controls' ); if ( null === controls ) { if ( ! shouldShowControls ) { // exit early. if we do not need controls and they do not exist, do nothing. @@ -1421,16 +1409,13 @@ window.frmAdminBuildJS = function() { } function setFieldControlsHtml( controls ) { - let layoutOption; - let moveOption; - - layoutOption = document.createElement( 'span' ); + const layoutOption = document.createElement( 'span' ); layoutOption.innerHTML = ''; const layoutOptionLabel = __( 'Set Row Layout', 'formidable' ); addTooltip( layoutOption, layoutOptionLabel ); makeTabbable( layoutOption, layoutOptionLabel ); - moveOption = document.createElement( 'span' ); + const moveOption = document.createElement( 'span' ); moveOption.innerHTML = ''; moveOption.classList.add( 'frm-move' ); const moveOptionLabel = __( 'Move Field Group', 'formidable' ); @@ -1495,26 +1480,18 @@ window.frmAdminBuildJS = function() { function getSyncLayoutClass( layoutClasses, classToAdd ) { return function( itemIndex ) { - let currentClassToAdd; - let length; - let layoutClassIndex; - let currentClass; - let activeLayoutClass; - let fieldId; - let layoutClassesInput; - - currentClassToAdd = 'function' === typeof classToAdd ? classToAdd( itemIndex ) : classToAdd; - length = layoutClasses.length; - activeLayoutClass = false; - for ( layoutClassIndex = 0; layoutClassIndex < length; ++layoutClassIndex ) { - currentClass = layoutClasses[ layoutClassIndex ]; + const currentClassToAdd = 'function' === typeof classToAdd ? classToAdd( itemIndex ) : classToAdd; + const length = layoutClasses.length; + let activeLayoutClass = false; + for ( let layoutClassIndex = 0; layoutClassIndex < length; ++layoutClassIndex ) { + const currentClass = layoutClasses[ layoutClassIndex ]; if ( this.classList.contains( currentClass ) ) { activeLayoutClass = currentClass; break; } } - fieldId = this.dataset.fid; + const fieldId = this.dataset.fid; if ( fieldId === undefined ) { // we are syncing the drag/drop placeholder before the actual field has loaded. @@ -1524,7 +1501,7 @@ window.frmAdminBuildJS = function() { } moveFieldSettings( document.getElementById( `frm-single-settings-${ fieldId }` ) ); - layoutClassesInput = document.getElementById( `frm_classes_${ fieldId }` ); + const layoutClassesInput = document.getElementById( `frm_classes_${ fieldId }` ); if ( null === layoutClassesInput ) { // not every field type has a layout class input. @@ -1570,7 +1547,9 @@ window.frmAdminBuildJS = function() { return li.clone(); }, stop( e, ui ) { - copyHelper && copyHelper.remove(); + if ( copyHelper ) { + copyHelper.remove(); + } const fieldId = ui.item.attr( 'id' ).replace( 'frm_delete_field_', '' ).replace( `-${ ui.item.data( 'optkey' ) }_container`, '' ); resetDisplayedOpts( fieldId ); fieldUpdated(); @@ -1670,12 +1649,12 @@ window.frmAdminBuildJS = function() { * * @since 6.23 * - * @param {string} fieldType - * @param {string} sectionId - * @param {string} formId - * @param {number} hasBreak + * @param {string} fieldType The type of field to insert. + * @param {string} sectionId The section ID to insert into. + * @param {string} formId The form ID. + * @param {number} hasBreak Whether the field has a page break. * - * @return {Object} + * @return {Object} Data object for the new field AJAX request. */ function getInsertNewFieldArgs( fieldType, sectionId, formId, hasBreak ) { const fieldArgs = { @@ -1701,8 +1680,8 @@ window.frmAdminBuildJS = function() { * * @since 6.23 * - * @param {string} fieldType - * @return {boolean} + * @param {string} fieldType The field type to check. + * @return {boolean} True if range field without slider type selected. */ function shouldStopInsertingField( fieldType ) { return wp.hooks.applyFilters( 'frm_should_stop_inserting_field', false, fieldType ); @@ -1815,8 +1794,8 @@ window.frmAdminBuildJS = function() { * * @since 6.23 * - * @param {string} msg - * @return {number} + * @param {string} msg The response message containing the field ID. + * @return {number} The extracted field ID. */ function checkMsgForFieldId( msg ) { const result = msg.match( /data-fid="(\d+)"/ ); @@ -1867,7 +1846,7 @@ window.frmAdminBuildJS = function() { * Can be used for any UI that requires a unique id. * Not to be used in data. * - * @return {number} + * @return {number} A unique auto-incremented ID. */ function getAutoId() { return ++autoId; @@ -1888,7 +1867,7 @@ window.frmAdminBuildJS = function() { * @param {HTMLElement} draggable * @param {HTMLElement} droppable * @param {Event} event - * @return {boolean} + * @return {boolean} Whether the drag operation is allowed. */ function allowDrop( draggable, droppable, event ) { if ( false === droppable ) { @@ -1983,7 +1962,7 @@ window.frmAdminBuildJS = function() { * Checks if given element is the last row in form builder. * * @param {HTMLElement} element Element. - * @return {boolean} + * @return {boolean} True if the element is the last row. */ function isLastRow( element ) { return element && element.matches( '#frm-show-fields > li:last-child' ); @@ -2107,14 +2086,13 @@ window.frmAdminBuildJS = function() { } function groupCanFitAnotherField( fieldsInRow, $field ) { - let fieldId; if ( fieldsInRow.length < MAX_FIELD_GROUP_SIZE ) { return true; } if ( fieldsInRow.length > MAX_FIELD_GROUP_SIZE ) { return false; } - fieldId = $field.attr( 'data-fid' ); + const fieldId = $field.attr( 'data-fid' ); // Allow the maximum number if we're not changing field groups. return 1 === jQuery( fieldsInRow ).filter( `[data-fid="${ fieldId }"]` ).length; } @@ -2373,9 +2351,9 @@ window.frmAdminBuildJS = function() { * @since 6.19 * * @param {HTMLElement} field - * @param {number} maxFieldsInGroup + * @param {number} maxFieldsInGroup Maximum allowed fields in a group. * - * @return {boolean} + * @return {boolean} True if the field can be added to the group. */ function canDuplicateField( field, maxFieldsInGroup ) { if ( field.classList.contains( 'frm-page-collapsed' ) ) { @@ -2390,15 +2368,10 @@ window.frmAdminBuildJS = function() { } function duplicateField() { - let $field; - let fieldId; - let children; - let newRowId; - let fieldOrder; const maxFieldsInGroup = MAX_FIELD_GROUP_SIZE; - $field = jQuery( this ).closest( 'li.form-field' ); - newRowId = this.getAttribute( 'frm-target-row-id' ); + const $field = jQuery( this ).closest( 'li.form-field' ); + const newRowId = this.getAttribute( 'frm-target-row-id' ); if ( ! ( newRowId && newRowId.startsWith( 'frm_field_group_' ) ) && ! canDuplicateField( $field.get( 0 ), maxFieldsInGroup ) ) { /* translators: %1$d: Maximum number of fields allowed in a field group. */ @@ -2407,8 +2380,9 @@ window.frmAdminBuildJS = function() { } closeOpenFieldDropdowns(); - fieldId = $field.data( 'fid' ); - children = fieldsInSection( fieldId ); + const fieldId = $field.data( 'fid' ); + const children = fieldsInSection( fieldId ); + let fieldOrder; if ( null !== newRowId ) { fieldOrder = this.getAttribute( 'frm-field-order' ); @@ -2504,39 +2478,28 @@ window.frmAdminBuildJS = function() { } function maybeDuplicateUnsavedSettings( originalFieldId, newFieldHtml ) { - let originalSettings; - let newFieldId; - let copySettings; - let fieldOptionKeys; - let originalDefault; - let copyDefault; - - originalSettings = document.getElementById( `frm-single-settings-${ originalFieldId }` ); + const originalSettings = document.getElementById( `frm-single-settings-${ originalFieldId }` ); if ( null === originalSettings ) { return; } - newFieldId = jQuery( newFieldHtml ).attr( 'data-fid' ); + const newFieldId = jQuery( newFieldHtml ).attr( 'data-fid' ); if ( newFieldId === undefined ) { return; } - copySettings = document.getElementById( `frm-single-settings-${ newFieldId }` ); + const copySettings = document.getElementById( `frm-single-settings-${ newFieldId }` ); if ( null === copySettings ) { return; } - fieldOptionKeys = [ + const fieldOptionKeys = [ 'name', 'required', 'unique', 'read_only', 'placeholder', 'description', 'size', 'max', 'format', 'prepend', 'append', 'separate_value' ]; originalSettings.querySelectorAll( 'input[name^="field_options["], textarea[name^="field_options["]' ).forEach( function( originalSetting ) { - let key; - let tagType; - let copySetting; - - key = getKeyFromSettingInput( originalSetting ); + const key = getKeyFromSettingInput( originalSetting ); if ( 'options' === key ) { copyOption( originalSetting, copySettings, originalFieldId, newFieldId ); @@ -2547,8 +2510,8 @@ window.frmAdminBuildJS = function() { return; } - tagType = originalSetting.matches( 'input' ) ? 'input' : 'textarea'; - copySetting = copySettings.querySelector( `${ tagType }[name="field_options[${ key }_${ newFieldId }]"]` ); + const tagType = originalSetting.matches( 'input' ) ? 'input' : 'textarea'; + const copySetting = copySettings.querySelector( `${ tagType }[name="field_options[${ key }_${ newFieldId }]"]` ); if ( null === copySetting ) { return; } @@ -2566,9 +2529,9 @@ window.frmAdminBuildJS = function() { } ); - originalDefault = originalSettings.querySelector( `input[name="default_value_${ originalFieldId }"]` ); + const originalDefault = originalSettings.querySelector( `input[name="default_value_${ originalFieldId }"]` ); if ( null !== originalDefault ) { - copyDefault = copySettings.querySelector( `input[name="default_value_${ newFieldId }"]` ); + const copyDefault = copySettings.querySelector( `input[name="default_value_${ newFieldId }"]` ); if ( null !== copyDefault && originalDefault.value !== copyDefault.value ) { copyDefault.value = originalDefault.value; jQuery( copyDefault ).trigger( 'change' ); @@ -2577,13 +2540,9 @@ window.frmAdminBuildJS = function() { } function copyOption( originalSetting, copySettings, originalFieldId, newFieldId ) { - let remainingKeyDetails; - let copyKey; - let copySetting; - - remainingKeyDetails = originalSetting.name.substr( 23 + ( `${ originalFieldId }` ).length ); - copyKey = `field_options[options_${ newFieldId }]${ remainingKeyDetails }`; - copySetting = copySettings.querySelector( `input[name="${ copyKey }"]` ); + const remainingKeyDetails = originalSetting.name.substr( 23 + ( `${ originalFieldId }` ).length ); + const copyKey = `field_options[options_${ newFieldId }]${ remainingKeyDetails }`; + const copySetting = copySettings.querySelector( `input[name="${ copyKey }"]` ); if ( null !== copySetting && copySetting.value !== originalSetting.value ) { copySetting.value = originalSetting.value; jQuery( copySetting ).trigger( 'change' ); @@ -2591,11 +2550,8 @@ window.frmAdminBuildJS = function() { } function getKeyFromSettingInput( input ) { - let nameWithoutPrefix; - let nameSplit; - - nameWithoutPrefix = input.name.substr( 14 ); - nameSplit = nameWithoutPrefix.split( '_' ); + const nameWithoutPrefix = input.name.substr( 14 ); + const nameSplit = nameWithoutPrefix.split( '_' ); nameSplit.pop(); return nameSplit.join( '_' ); } @@ -2622,12 +2578,7 @@ window.frmAdminBuildJS = function() { } function checkForActiveHoverTarget( event ) { - let container; - let elementFromPoint; - let list; - let previousHoverTarget; - - container = postBodyContent; + const container = postBodyContent; if ( container.classList.contains( 'frm-dragging-field' ) ) { return; } @@ -2637,12 +2588,12 @@ window.frmAdminBuildJS = function() { return; } - elementFromPoint = document.elementFromPoint( event.clientX, event.clientY ); + const elementFromPoint = document.elementFromPoint( event.clientX, event.clientY ); if ( null !== elementFromPoint && ! elementFromPoint.classList.contains( 'edit_field_type_divider' ) ) { - list = elementFromPoint.closest( 'ul.frm_sorting' ); + const list = elementFromPoint.closest( 'ul.frm_sorting' ); if ( null !== list && ! list.classList.contains( 'start_divider' ) && 'frm-show-fields' !== list.id ) { - previousHoverTarget = maybeRemoveGroupHoverTarget(); + const previousHoverTarget = maybeRemoveGroupHoverTarget(); if ( false !== previousHoverTarget && ! jQuery( previousHoverTarget ).is( list ) ) { destroyFieldGroupPopup(); } @@ -2654,15 +2605,12 @@ window.frmAdminBuildJS = function() { } function maybeRemoveGroupHoverTarget() { - let controls; - let previousHoverTarget; - - controls = document.getElementById( 'frm_field_group_controls' ); + const controls = document.getElementById( 'frm_field_group_controls' ); if ( null !== controls ) { controls.style.display = 'none'; } - previousHoverTarget = document.querySelector( '.frm-field-group-hover-target' ); + const previousHoverTarget = document.querySelector( '.frm-field-group-hover-target' ); if ( null === previousHoverTarget ) { return false; } @@ -2687,10 +2635,7 @@ window.frmAdminBuildJS = function() { // maybe offset the dropdown if it goes off the edge of the screen or container. setTimeout( function() { - let ul; - let $ul; - - ul = document.querySelector( '.dropdown .frm-dropdown-menu.show' ); + const ul = document.querySelector( '.dropdown .frm-dropdown-menu.show' ); if ( null === ul ) { return; @@ -2701,7 +2646,7 @@ window.frmAdminBuildJS = function() { if ( 0 === ul.children.length ) { fillFieldActionDropdown( ul, true === isFieldGroup ); } - $ul = jQuery( ul ); + const $ul = jQuery( ul ); if ( $ul.offset().left > jQuery( window ).width() - $ul.outerWidth() ) { ul.style.left = `${ -$ul.outerWidth() }px`; } else if ( postBodyContent && $ul.offset().left < postBodyContent.getBoundingClientRect().left ) { @@ -2735,11 +2680,8 @@ window.frmAdminBuildJS = function() { } function fillFieldActionDropdown( ul, isFieldGroup ) { - let classSuffix; - let options; - - classSuffix = isFieldGroup ? '_field_group' : '_field'; - options = [ getDeleteActionOption( isFieldGroup ), getDuplicateActionOption( isFieldGroup ) ]; + const classSuffix = isFieldGroup ? '_field_group' : '_field'; + const options = [ getDeleteActionOption( isFieldGroup ), getDuplicateActionOption( isFieldGroup ) ]; if ( ! isFieldGroup ) { options.push( { class: 'frm_select', icon: 'frm_settings_icon', label: __( 'Field Settings', 'formidable' ) } @@ -2747,19 +2689,15 @@ window.frmAdminBuildJS = function() { } options.forEach( function( option ) { - let li; - let anchor; - let span; - - li = document.createElement( 'div' ); + const li = document.createElement( 'div' ); li.classList.add( 'frm_more_options_li', 'dropdown-item' ); - anchor = document.createElement( 'a' ); + const anchor = document.createElement( 'a' ); anchor.classList.add( option.class + classSuffix ); anchor.setAttribute( 'href', '#' ); makeTabbable( anchor ); - span = document.createElement( 'span' ); + const span = document.createElement( 'span' ); span.textContent = option.label; anchor.innerHTML = ``; anchor.append( document.createTextNode( ' ' ) ); @@ -3010,8 +2948,8 @@ window.frmAdminBuildJS = function() { /** * Checks a string for parens, brackets, and curly braces and returns a message if any unmatched are found. * - * @param formula - * @return {string} + * @param {string} formula The formula string to check. + * @return {string} Warning message if unmatched delimiters found, empty string otherwise. */ function checkMatchingParens( formula ) { const stack = []; @@ -3052,9 +2990,9 @@ window.frmAdminBuildJS = function() { /** * Checks a calculation for shortcodes that shouldn't be in it and returns a message if found. * - * @param calculation - * @param inputElement - * @return {string} + * @param {string} calculation The calculation formula. + * @param {HTMLElement} inputElement The input element for the calculation. + * @return {string} Warning message if invalid shortcodes found, empty string otherwise. */ function checkShortcodes( calculation, inputElement ) { let msg = checkNonNumericShortcodes( calculation, inputElement ); @@ -3066,10 +3004,9 @@ window.frmAdminBuildJS = function() { /** * Checks if a numeric calculation has shortcodes that output non-numeric strings and returns a message if found. * - * @param calculation - * - * @param inputElement - * @return {string} + * @param {string} calculation The calculation formula. + * @param {HTMLElement} inputElement The input element for the calculation. + * @return {string} Warning message if non-numeric shortcodes found, empty string otherwise. */ function checkNonNumericShortcodes( calculation, inputElement ) { let msg = ''; @@ -3090,7 +3027,7 @@ window.frmAdminBuildJS = function() { /** * Determines if the calculation input is from a text calculation. * - * @param inputElement + * @param {HTMLElement} inputElement The calculation input element. */ function isTextCalculation( inputElement ) { return jQuery( inputElement ).siblings( 'label[for^="calc_type"]' ).children( 'input' ).prop( 'checked' ); @@ -3099,7 +3036,7 @@ window.frmAdminBuildJS = function() { /** * Returns a regular expression of shortcodes that can't be used in numeric calculations. * - * @return {RegExp} + * @return {RegExp} Pattern matching non-numeric shortcodes. */ function getNonNumericShortcodes() { return /\[(date|time|email|ip)\]/; @@ -3108,8 +3045,8 @@ window.frmAdminBuildJS = function() { /** * Checks if a string has any shortcodes that do not belong in forms and returns a message if any are found. * - * @param formula - * @return {string} + * @param {string} formula The formula string to check. + * @return {string} Warning message if non-form shortcodes found, empty string otherwise. */ function checkNonFormShortcodes( formula ) { const nonFormShortcodes = getNonFormShortcodes(); @@ -3126,7 +3063,7 @@ window.frmAdminBuildJS = function() { * Returns a regular expression of shortcodes that can't be used in forms but can be used in Views, Email * Notifications, and other Formidable areas. * - * @return {RegExp} + * @return {RegExp} Pattern matching shortcodes not valid in forms. */ function getNonFormShortcodes() { return /\[id\]|\[key\]|\[if\s\w+\]|\[foreach\s\w+\]|\[created-at(\s*)?/g; @@ -3175,11 +3112,6 @@ window.frmAdminBuildJS = function() { } function popCalcFields( v, force ) { - let box; - let exclude; - let fields; - let i; - let list; const p = jQuery( v ).closest( '.frm-single-settings' ); const calc = p.find( '.frm-calc-field' ); @@ -3191,20 +3123,21 @@ window.frmAdminBuildJS = function() { const fieldId = p.find( 'input[name="frm_fields_submitted[]"]' ).val(); + let box; if ( force ) { box = v; } else { box = document.getElementById( `frm-calc-box-${ fieldId }` ); } - exclude = getExcludeArray( box, isSummary ); + const exclude = getExcludeArray( box, isSummary ); const excludedOpts = extractExcludedOptions( exclude ); - fields = getFieldList(); - list = document.getElementById( `frm-calc-list-${ fieldId }` ); + const fields = getFieldList(); + const list = document.getElementById( `frm-calc-list-${ fieldId }` ); list.innerHTML = ''; - for ( i = 0; i < fields.length; i++ ) { + for ( let i = 0; i < fields.length; i++ ) { if ( ( exclude && exclude.includes( fields[ i ].fieldType ) ) || ( excludedOpts.length && hasExcludedOption( fields[ i ], excludedOpts ) ) ) { continue; @@ -3362,7 +3295,7 @@ window.frmAdminBuildJS = function() { /** * If the element doesn't exist, use a blank value. - * @param id + * @param {string} id The element ID to look up. */ function getPossibleValue( id ) { const field = document.getElementById( id ); @@ -3461,8 +3394,6 @@ window.frmAdminBuildJS = function() { function toggleInvalidMsg() { /*jshint validthis:true */ - let typeDropdown; - let fieldType; const fieldId = this.getAttribute( 'data-fid' ); let value = ''; @@ -3475,8 +3406,8 @@ window.frmAdminBuildJS = function() { value += input.value; } ); - typeDropdown = document.getElementsByName( `field_options[type_${ fieldId }]` )[ 0 ]; - fieldType = typeDropdown.options[ typeDropdown.selectedIndex ].value; + const typeDropdown = document.getElementsByName( `field_options[type_${ fieldId }]` )[ 0 ]; + const fieldType = typeDropdown.options[ typeDropdown.selectedIndex ].value; if ( fieldType === 'text' ) { toggleValidationBox( '' !== value, `.frm_invalid_msg${ fieldId }` ); @@ -3604,29 +3535,24 @@ window.frmAdminBuildJS = function() { jQuery( builderForm ).on( 'click', 'a.frm-bulk-edit-link', function( event ) { event.preventDefault(); - let i; - let key; - let label; let content = ''; - let optList; - let opts; const fieldId = jQuery( this ).closest( '[data-fid]' ).data( 'fid' ); const separate = usingSeparateValues( fieldId ); const product = isProductField( fieldId ); - optList = document.getElementById( `frm_field_${ fieldId }_opts` ); + const optList = document.getElementById( `frm_field_${ fieldId }_opts` ); if ( ! optList ) { return; } - opts = optList.getElementsByTagName( 'li' ); + const opts = optList.getElementsByTagName( 'li' ); document.getElementById( 'bulk-field-id' ).value = fieldId; - for ( i = 0; i < opts.length; i++ ) { - key = opts[ i ].getAttribute( 'data-optkey' ); + for ( let i = 0; i < opts.length; i++ ) { + const key = opts[ i ].getAttribute( 'data-optkey' ); if ( key !== '000' ) { - label = document.getElementsByName( `field_options[options_${ fieldId }][${ key }][label]` )[ 0 ]; + const label = document.getElementsByName( `field_options[options_${ fieldId }][${ key }][label]` )[ 0 ]; if ( label !== undefined ) { content += label.value; if ( separate ) { @@ -3794,8 +3720,6 @@ window.frmAdminBuildJS = function() { function toggleImageOptions() { /*jshint validthis:true */ - let hasImageOptions; - let imageSize; const $field = jQuery( this ).closest( '.frm-single-settings' ); const fieldId = $field.data( 'fid' ); const displayField = document.getElementById( `frm_field_id_${ fieldId }` ); @@ -3808,7 +3732,7 @@ window.frmAdminBuildJS = function() { toggle( jQuery( `.frm_alignment_${ fieldId }` ) ); toggle( jQuery( `.frm-add-other#frm_add_field_${ fieldId }` ) ); - hasImageOptions = imagesAsOptions( fieldId ); + const hasImageOptions = imagesAsOptions( fieldId ); if ( hasImageOptions ) { setAlignment( fieldId, 'inline' ); @@ -3959,7 +3883,7 @@ window.frmAdminBuildJS = function() { /** * If a field is clicked in the builder, prevent inputs from changing. - * @param e + * @param {Event} e The event to prevent. */ function stopFieldFocus( e ) { e.preventDefault(); @@ -4005,20 +3929,16 @@ window.frmAdminBuildJS = function() { * deselect it. */ function maybeUncheckRadio() { - let $self; - let uncheck; - let unbind; - let up; - /*jshint validthis:true */ - $self = jQuery( this ); + const $self = jQuery( this ); if ( $self.is( ':checked' ) ) { - uncheck = function() { + const uncheck = function() { setTimeout( function() { $self.prop( 'checked', false ); }, 0 ); }; - unbind = function() { + let up; + const unbind = function() { $self.off( 'mouseup', up ); }; up = function() { @@ -4092,17 +4012,14 @@ window.frmAdminBuildJS = function() { } function clickDeleteFieldGroup() { - let hoverTarget; - let decoy; - - hoverTarget = document.querySelector( '.frm-field-group-hover-target' ); + const hoverTarget = document.querySelector( '.frm-field-group-hover-target' ); if ( null === hoverTarget ) { return; } hoverTarget.classList.add( 'frm-selected-field-group' ); - decoy = document.createElement( 'div' ); + const decoy = document.createElement( 'div' ); decoy.classList.add( 'frm-delete-field-groups', 'frm_hidden' ); document.body.append( decoy ); decoy.click(); @@ -4171,8 +4088,7 @@ window.frmAdminBuildJS = function() { $fields.each( function( index ) { - let cloneOption; - cloneOption = document.createElement( 'li' ); + const cloneOption = document.createElement( 'li' ); cloneOption.classList.add( 'frm_clone_field' ); cloneOption.setAttribute( 'frm-target-row-id', newRowId ); cloneOption.setAttribute( 'frm-field-order', index ); @@ -4185,11 +4101,7 @@ window.frmAdminBuildJS = function() { } function clickFieldGroupLayout() { - let hoverTarget; - let sizeOfFieldGroup; - let popupWrapper; - - hoverTarget = document.querySelector( '.frm-field-group-hover-target' ); + const hoverTarget = document.querySelector( '.frm-field-group-hover-target' ); if ( null === hoverTarget ) { return; @@ -4197,12 +4109,12 @@ window.frmAdminBuildJS = function() { deselectFields(); - sizeOfFieldGroup = getSizeOfFieldGroupFromChildElement( hoverTarget.querySelector( 'li.form-field' ) ); + const sizeOfFieldGroup = getSizeOfFieldGroupFromChildElement( hoverTarget.querySelector( 'li.form-field' ) ); hoverTarget.classList.add( 'frm-has-open-field-group-popup' ); jQuery( document ).on( 'click', '#frm_builder_page', destroyFieldGroupPopupOnOutsideClick ); - popupWrapper = div(); + const popupWrapper = div(); popupWrapper.style.position = 'relative'; popupWrapper.append( getFieldGroupPopup( sizeOfFieldGroup, this ) ); this.parentNode.append( popupWrapper ); @@ -4231,12 +4143,7 @@ window.frmAdminBuildJS = function() { } function getFieldGroupPopup( sizeOfFieldGroup, childElement ) { - let popup; - let wrapper; - let rowLayoutOptions; - let ul; - - popup = document.getElementById( 'frm_field_group_popup' ); + let popup = document.getElementById( 'frm_field_group_popup' ); if ( null === popup ) { popup = div(); } else { @@ -4245,13 +4152,13 @@ window.frmAdminBuildJS = function() { popup.id = 'frm_field_group_popup'; - wrapper = div(); + const wrapper = div(); wrapper.style.padding = '0 24px 12px'; wrapper.append( getRowLayoutTitle() ); - rowLayoutOptions = getRowLayoutOptions( sizeOfFieldGroup ); + const rowLayoutOptions = getRowLayoutOptions( sizeOfFieldGroup ); - ul = childElement.closest( 'ul.frm_sorting' ); + const ul = childElement.closest( 'ul.frm_sorting' ); if ( null !== ul ) { maybeMarkRowLayoutAsActive( ul, rowLayoutOptions ); } @@ -4271,13 +4178,9 @@ window.frmAdminBuildJS = function() { } function maybeMarkRowLayoutAsActive( activeRow, options ) { - let length; - let index; - let currentRow; - - length = options.children.length; - for ( index = 0; index < length; ++index ) { - currentRow = options.children[ index ]; + const length = options.children.length; + for ( let index = 0; index < length; ++index ) { + const currentRow = options.children[ index ]; if ( rowLayoutsMatch( currentRow, activeRow ) ) { currentRow.classList.add( 'frm-active-row-layout' ); return; @@ -4329,10 +4232,7 @@ window.frmAdminBuildJS = function() { } function getRowLayoutOptions( size ) { - let wrapper; - let padding; - - wrapper = getEmptyGridContainer(); + const wrapper = getEmptyGridContainer(); if ( size > 6 ) { wrapper.append( getRowLayoutOption( size, 'even' ) ); @@ -4350,7 +4250,7 @@ window.frmAdminBuildJS = function() { wrapper.append( getRowLayoutOption( size, 'left' ) ); wrapper.append( getRowLayoutOption( size, 'right' ) ); } else { - padding = div(); + const padding = div(); padding.classList.add( 'frm_fourth' ); wrapper.prepend( padding ); } @@ -4359,13 +4259,11 @@ window.frmAdminBuildJS = function() { } function getRowLayoutOption( size, type ) { - let option; - let useClass; - - option = div(); + const option = div(); option.classList.add( 'frm-row-layout-option' ); makeTabbable( option, type ); + let useClass; switch ( size ) { case 6: useClass = 'frm_half'; @@ -4396,14 +4294,12 @@ window.frmAdminBuildJS = function() { function getRowLayoutAsKey( row ) { let $fields; - let sizes; - if ( row.classList.contains( 'frm-row-layout-option' ) ) { $fields = jQuery( row ).find( '.frm_grid_container' ).children(); } else { $fields = getFieldsInRow( jQuery( row ) ); } - sizes = []; + const sizes = []; $fields.each( function() { sizes.push( getSizeOfLayoutClass( getLayoutClassName( this.classList ) ) ); @@ -4413,13 +4309,9 @@ window.frmAdminBuildJS = function() { } function getRowForSizeAndType( size, type ) { - let row; - let index; - let block; - - row = getEmptyGridContainer(); - for ( index = 0; index < size; ++index ) { - block = div(); + const row = getEmptyGridContainer(); + for ( let index = 0; index < size; ++index ) { + const block = div(); block.classList.add( getClassForBlock( size, type, index ) ); block.style.height = '16px'; block.style.background = '#9EA9B8'; @@ -4525,11 +4417,8 @@ window.frmAdminBuildJS = function() { } function handleFieldGroupLayoutOptionInsideMergeClick() { - let $ul; - let type; - - $ul = mergeSelectedFieldGroups(); - type = this.getAttribute( 'layout-type' ); + const $ul = mergeSelectedFieldGroups(); + const type = this.getAttribute( 'layout-type' ); syncLayoutClasses( getFieldsInRow( $ul ).first(), type ); unselectFieldGroups(); } @@ -4557,58 +4446,42 @@ window.frmAdminBuildJS = function() { } function customFieldGroupLayoutClick() { - let $fields; if ( null !== this.closest( '.frm-merge-fields-into-row' ) ) { return; } - $fields = getFieldsInRow( jQuery( '.frm-field-group-hover-target' ) ); + const $fields = getFieldsInRow( jQuery( '.frm-field-group-hover-target' ) ); setupCustomLayoutOptions( $fields ); } function setupCustomLayoutOptions( $fields ) { - let size; - let popup; - let wrapper; - let layoutClass; - let inputRow; - let paddingElement; - let inputValueOverride; - let index; - let inputField; - let heading; - let label; - let buttonsWrapper; - let cancelButton; - let saveButton; - - size = $fields.length; + const size = $fields.length; - popup = document.getElementById( 'frm_field_group_popup' ); + const popup = document.getElementById( 'frm_field_group_popup' ); popup.innerHTML = ''; - wrapper = div(); + const wrapper = div(); wrapper.style.padding = '0 24px'; - layoutClass = getEvenClassForSize( 5 === size ? 6 : size ); + const layoutClass = getEvenClassForSize( 5 === size ? 6 : size ); - inputRow = div(); + const inputRow = div(); inputRow.style.padding = '20px 0'; inputRow.classList.add( 'frm_grid_container' ); if ( 5 === size ) { // add a span to pad the inputs by 1 column, to account for the missing 2 columns. - paddingElement = document.createElement( 'span' ); + const paddingElement = document.createElement( 'span' ); paddingElement.classList.add( 'frm1' ); inputRow.append( paddingElement ); } - inputValueOverride = getSelectedFieldCount() > 0 ? getSizeOfLayoutClass( getEvenClassForSize( size ) ) : false; + let inputValueOverride = getSelectedFieldCount() > 0 ? getSizeOfLayoutClass( getEvenClassForSize( size ) ) : false; if ( false !== inputValueOverride && inputValueOverride >= 12 ) { inputValueOverride = Math.floor( 12 / size ); } - for ( index = 0; index < size; ++index ) { - inputField = document.createElement( 'input' ); + for ( let index = 0; index < size; ++index ) { + const inputField = document.createElement( 'input' ); inputField.type = 'text'; inputField.classList.add( layoutClass ); inputField.classList.add( 'frm-custom-grid-size-input' ); @@ -4616,11 +4489,11 @@ window.frmAdminBuildJS = function() { inputRow.append( inputField ); } - heading = div(); + const heading = div(); heading.classList.add( 'frm-builder-popup-heading' ); heading.textContent = __( 'Enter number of columns for each field', 'formidable' ); - label = div(); + const label = div(); label.classList.add( 'frm-builder-popup-subheading' ); label.textContent = __( 'Layouts are based on a 12-column grid system', 'formidable' ); @@ -4629,15 +4502,15 @@ window.frmAdminBuildJS = function() { wrapper.append( inputRow ); - buttonsWrapper = div(); + const buttonsWrapper = div(); buttonsWrapper.style.textAlign = 'right'; - cancelButton = getSecondaryButton(); + const cancelButton = getSecondaryButton(); cancelButton.textContent = __( 'Cancel', 'formidable' ); cancelButton.classList.add( 'frm-cancel-custom-field-group-layout' ); cancelButton.style.marginRight = '10px'; - saveButton = getPrimaryButton(); + const saveButton = getPrimaryButton(); saveButton.textContent = __( 'Save', 'formidable' ); saveButton.classList.add( 'frm-save-custom-field-group-layout' ); @@ -4709,13 +4582,9 @@ window.frmAdminBuildJS = function() { } function getLayoutClassName( classList ) { - let classes; - let index; - let currentClass; - - classes = getLayoutClasses(); - for ( index = 0; index < classes.length; ++index ) { - currentClass = classes[ index ]; + const classes = getLayoutClasses(); + for ( let index = 0; index < classes.length; ++index ) { + const currentClass = classes[ index ]; if ( classList.contains( currentClass ) ) { return currentClass; } @@ -4765,14 +4634,11 @@ window.frmAdminBuildJS = function() { } function destroyFieldGroupPopup() { - let popup; - let wrapper; - - popup = document.getElementById( 'frm_field_group_popup' ); + const popup = document.getElementById( 'frm_field_group_popup' ); if ( popup === null ) { return; } - wrapper = document.querySelector( '.frm-has-open-field-group-popup' ); + const wrapper = document.querySelector( '.frm-has-open-field-group-popup' ); if ( null !== wrapper ) { wrapper.classList.remove( 'frm-has-open-field-group-popup' ); popup.parentNode.remove(); @@ -4781,11 +4647,7 @@ window.frmAdminBuildJS = function() { } function saveCustomFieldGroupClick() { - let syncDetails; - let $controls; - let $ul; - - syncDetails = []; + const syncDetails = []; jQuery( document.getElementById( 'frm_field_group_popup' ).querySelectorAll( '.frm_grid_container input' ) ) .each( @@ -4794,12 +4656,12 @@ window.frmAdminBuildJS = function() { } ); - $controls = jQuery( document.getElementById( 'frm_field_group_controls' ) ); + const $controls = jQuery( document.getElementById( 'frm_field_group_controls' ) ); if ( $controls.length && 'none' !== $controls.get( 0 ).style.display ) { syncLayoutClasses( getFieldsInRow( jQuery( document.querySelector( '.frm-field-group-hover-target' ) ) ).first(), syncDetails ); } else { - $ul = mergeSelectedFieldGroups(); + const $ul = mergeSelectedFieldGroups(); syncLayoutClasses( getFieldsInRow( $ul ).first(), syncDetails ); unselectFieldGroups(); } @@ -4965,7 +4827,7 @@ window.frmAdminBuildJS = function() { function getFieldGroupMessageText() { const text = document.createElement( 'span' ); text.classList.add( 'frm-field-group-message-text', 'frm-flex-center' ); - text.innerHTML = sprintf( + text.innerHTML = sprintf( // eslint-disable-line @wordpress/valid-sprintf -- Format string is a localized variable /* translators: %1$s: Start span HTML, %2$s: end span HTML */ frm_admin_js.holdShiftMsg, '', @@ -5062,13 +4924,7 @@ window.frmAdminBuildJS = function() { } function getFieldMultiselectPopup() { - let popup; - let mergeOption; - let caret; - let verticalSeparator; - let deleteOption; - - popup = document.getElementById( 'frm_field_multiselect_popup' ); + let popup = document.getElementById( 'frm_field_multiselect_popup' ); if ( null !== popup ) { popup.classList.toggle( 'frm-unmergable', ! selectedFieldsAreMergeable() ); @@ -5081,11 +4937,11 @@ window.frmAdminBuildJS = function() { popup.classList.add( 'frm-unmergable' ); } - mergeOption = div(); + const mergeOption = div(); mergeOption.classList.add( 'frm-merge-fields-into-row' ); mergeOption.textContent = __( 'Merge into row', 'formidable' ); - caret = document.createElement( 'a' ); + const caret = document.createElement( 'a' ); caret.style.marginLeft = '5px'; caret.classList.add( 'frm_icon_font', 'frm_arrowdown6_icon' ); caret.setAttribute( 'href', '#' ); @@ -5093,11 +4949,11 @@ window.frmAdminBuildJS = function() { popup.append( mergeOption ); - verticalSeparator = div(); + const verticalSeparator = div(); verticalSeparator.classList.add( 'frm-multiselect-popup-separator' ); popup.append( verticalSeparator ); - deleteOption = div(); + const deleteOption = div(); deleteOption.classList.add( 'frm-delete-field-groups' ); deleteOption.append( getIconClone( 'frm_trash_svg' ) ); popup.append( deleteOption ); @@ -5110,19 +4966,14 @@ window.frmAdminBuildJS = function() { } function selectedFieldsAreMergeable() { - let selectedFieldGroups; - let totalFieldCount; - let length; - let index; - let fieldGroup; - selectedFieldGroups = document.querySelectorAll( '.frm-selected-field-group' ); - length = selectedFieldGroups.length; + const selectedFieldGroups = document.querySelectorAll( '.frm-selected-field-group' ); + const length = selectedFieldGroups.length; if ( 1 === length ) { return false; } - totalFieldCount = 0; - for ( index = 0; index < length; ++index ) { - fieldGroup = selectedFieldGroups[ index ]; + let totalFieldCount = 0; + for ( let index = 0; index < length; ++index ) { + const fieldGroup = selectedFieldGroups[ index ]; if ( null !== fieldGroup.querySelector( '.edit_field_type_break, .edit_field_type_hidden' ) ) { return false; } @@ -5135,9 +4986,6 @@ window.frmAdminBuildJS = function() { } function mergeFieldsIntoRowClick( event ) { - let size; - let popup; - if ( null !== event.originalEvent.target.closest( '#frm_field_group_popup' ) ) { // prevent clicks within the popup from triggering the button again. return; @@ -5148,8 +4996,8 @@ window.frmAdminBuildJS = function() { return; } - size = getSelectedFieldCount(); - popup = getFieldGroupPopup( size, document.querySelector( '.frm-selected-field-group' ).firstChild ); + const size = getSelectedFieldCount(); + const popup = getFieldGroupPopup( size, document.querySelector( '.frm-selected-field-group' ).firstChild ); this.append( popup ); } @@ -5164,14 +5012,10 @@ window.frmAdminBuildJS = function() { } function deleteFieldGroupsClick() { - let fieldIdsToDelete; - let deleteOnConfirm; - let multiselectPopup; + const fieldIdsToDelete = getSelectedFieldIds(); + const deleteOnConfirm = getDeleteSelectedFieldGroupsOnConfirmFunction( fieldIdsToDelete ); - fieldIdsToDelete = getSelectedFieldIds(); - deleteOnConfirm = getDeleteSelectedFieldGroupsOnConfirmFunction( fieldIdsToDelete ); - - multiselectPopup = document.getElementById( 'frm_field_multiselect_popup' ); + const multiselectPopup = document.getElementById( 'frm_field_multiselect_popup' ); if ( null !== multiselectPopup ) { multiselectPopup.remove(); } @@ -5239,7 +5083,7 @@ window.frmAdminBuildJS = function() { /** * Checks if there is only submit field in the form builder. * - * @return {boolean} + * @return {boolean} True if only the submit field exists. */ function hasOnlySubmitField() { // If there are at least 2 rows, return false. @@ -5508,8 +5352,8 @@ window.frmAdminBuildJS = function() { /** * Returns an object that has the old and new values and labels, when a field choice is changed. * - * @param {HTMLElement} input - * @return {Object} + * @param {HTMLElement} input The changed input element. + * @return {Object} Object with oldValue, oldLabel, newValue, newLabel properties. */ function getChoiceOldAndNewValues( input ) { const { oldValue, oldLabel } = getChoiceOldValueAndLabel( input ); @@ -5521,8 +5365,8 @@ window.frmAdminBuildJS = function() { /** * Returns an object that has the new value and label, when a field choice is changed. * - * @param {HTMLElement} choiceElement - * @return {Object} + * @param {HTMLElement} choiceElement The changed choice element. + * @return {Object} Object with newValue and newLabel properties. */ function getChoiceNewValueAndLabel( choiceElement ) { const singleOptionContainer = choiceElement.closest( '.frm_single_option' ); @@ -5545,8 +5389,8 @@ window.frmAdminBuildJS = function() { /** * Returns an object that has the old value and label, when a field choice is changed. * - * @param {HTMLElement} choiceElement - * @return {Object} + * @param {HTMLElement} choiceElement The changed choice element. + * @return {Object} Object with oldValue and oldLabel properties. */ function getChoiceOldValueAndLabel( choiceElement ) { const usingSeparateValues = choiceElement.closest( '.frm-single-settings' ).querySelector( '.frm_toggle_sep_values' )?.checked ?? false; @@ -5569,20 +5413,9 @@ window.frmAdminBuildJS = function() { } function onOptionTextBlur() { - let originalValue; - let fieldId; let fieldIndex; - let logicId; - let row; - let rowLength; - let rowIndex; - let valueSelect; - let opts; - let fieldIds; let settingId; let setting; - let optionMatches; - let option; const { oldValue, oldLabel, newValue, newLabel } = getChoiceOldAndNewValues( this ); @@ -5592,8 +5425,8 @@ window.frmAdminBuildJS = function() { const singleSettingsContainer = this.closest( '.frm-single-settings' ); - fieldId = singleSettingsContainer.getAttribute( 'data-fid' ); - originalValue = this.getAttribute( 'data-value-on-load' ); + const fieldId = singleSettingsContainer.getAttribute( 'data-fid' ); + const originalValue = this.getAttribute( 'data-value-on-load' ); // check if the newValue is already mapped to another option // if it is, mark as duplicate and return @@ -5612,26 +5445,28 @@ window.frmAdminBuildJS = function() { optionMap[ fieldId ][ originalValue ].value = newValue; } - fieldIds = []; + const fieldIds = []; const rows = builderPage.querySelectorAll( '.frm_logic_row' ); - rowLength = rows.length; - for ( rowIndex = 0; rowIndex < rowLength; rowIndex++ ) { - row = rows[ rowIndex ]; - opts = row.querySelector( '.frm_logic_field_opts' ); + const rowLength = rows.length; + for ( let rowIndex = 0; rowIndex < rowLength; rowIndex++ ) { + const row = rows[ rowIndex ]; + const opts = row.querySelector( '.frm_logic_field_opts' ); if ( opts.value !== fieldId ) { continue; } - logicId = row.id.split( '_' )[ 2 ]; - valueSelect = row.querySelector( `select[name="field_options[hide_opt_${ logicId }][]"]` ); + const logicId = row.id.split( '_' )[ 2 ]; + const valueSelect = row.querySelector( `select[name="field_options[hide_opt_${ logicId }][]"]` ); + let optionMatches; if ( '' === oldValue ) { optionMatches = []; } else { optionMatches = valueSelect.querySelectorAll( `option[value="${ oldValue }"]` ); } + let option; if ( ! optionMatches.length ) { optionMatches = valueSelect.querySelectorAll( `option[value="${ newValue }"]` ); @@ -5669,9 +5504,9 @@ window.frmAdminBuildJS = function() { /** * Returns an option element that matches a string with its text content. * - * @param {HTMLElement} selectElement - * @param {string} searchText - * @return {HTMLElement|null} + * @param {HTMLElement} selectElement The select element to search. + * @param {string} searchText The text to search for. + * @return {HTMLElement|null} Matching option element or null. */ function searchSelectByText( selectElement, searchText ) { const { options } = selectElement; @@ -5956,10 +5791,7 @@ window.frmAdminBuildJS = function() { function clickVis( e ) { /*jshint validthis:true */ - let currentClass; - let originalList; - - currentClass = e.target.classList; + const currentClass = e.target.classList; if ( currentClass.contains( 'frm-collapse-page' ) || currentClass.contains( 'frm-sub-label' ) || e.target.closest( '.dropdown' ) !== null ) { return; @@ -5970,7 +5802,7 @@ window.frmAdminBuildJS = function() { } if ( this.classList.contains( 'edit_field_type_divider' ) ) { - originalList = e.originalEvent.target.closest( 'ul.frm_sorting' ); + const originalList = e.originalEvent.target.closest( 'ul.frm_sorting' ); if ( null !== originalList ) { // prevent section click if clicking a field group within a section. if ( originalList.classList.contains( 'edit_field_type_divider' ) || originalList.parentNode.parentNode.classList.contains( 'start_divider' ) ) { @@ -6089,31 +5921,24 @@ window.frmAdminBuildJS = function() { function resetOptOnChange() { /*jshint validthis:true */ - let field; - let thisOpt; - - field = getFieldKeyFromOpt( this ); + const field = getFieldKeyFromOpt( this ); if ( ! field ) { return; } - thisOpt = jQuery( this ).closest( '.frm_single_option' ); + const thisOpt = jQuery( this ).closest( '.frm_single_option' ); resetSingleOpt( field.fieldId, field.fieldKey, thisOpt ); } function getFieldKeyFromOpt( object ) { - let allOpts; - let fieldId; - let fieldKey; - - allOpts = jQuery( object ).closest( '.frm_sortable_field_opts' ); + const allOpts = jQuery( object ).closest( '.frm_sortable_field_opts' ); if ( ! allOpts.length ) { return false; } - fieldId = allOpts.attr( 'id' ).replace( 'frm_field_', '' ).replace( '_opts', '' ); - fieldKey = allOpts.data( 'key' ); + const fieldId = allOpts.attr( 'id' ).replace( 'frm_field_', '' ).replace( '_opts', '' ); + const fieldKey = allOpts.data( 'key' ); return { fieldId, @@ -6122,12 +5947,6 @@ window.frmAdminBuildJS = function() { } function resetSingleOpt( fieldId, fieldKey, thisOpt ) { - let saved; - let text; - let defaultVal; - let previewInput; - let labelForDisplay; - let optContainer; const optKey = thisOpt.data( 'optkey' ); const separateValues = usingSeparateValues( fieldId ); const single = jQuery( `label[for="field_${ fieldKey }-${ optKey }"]` ); @@ -6138,15 +5957,16 @@ window.frmAdminBuildJS = function() { resetDisplayedOpts( fieldId ); // Set the default value. - defaultVal = thisOpt.find( 'input[name^="default_value_"]' ); + const defaultVal = thisOpt.find( 'input[name^="default_value_"]' ); if ( defaultVal.is( ':checked' ) && label.length > 0 ) { jQuery( `select[name^="item_meta[${ fieldId }]"]` ).val( label.val() ); } return; } - previewInput = single.children( 'input' ); + const previewInput = single.children( 'input' ); + let saved; if ( label.length < 1 ) { // Check for other label. label = jQuery( `input[name="${ baseName }"]` ); @@ -6162,11 +5982,11 @@ window.frmAdminBuildJS = function() { } // Set the displayed value. - text = single[ 0 ].childNodes; + const text = single[ 0 ].childNodes; if ( imagesAsOptions( fieldId ) ) { - labelForDisplay = getImageDisplayValue( thisOpt, fieldId, label ); - optContainer = single.find( '.frm_image_option_container' ); + const labelForDisplay = getImageDisplayValue( thisOpt, fieldId, label ); + const optContainer = single.find( '.frm_image_option_container' ); if ( optContainer.length > 0 ) { optContainer.replaceWith( labelForDisplay ); @@ -6213,21 +6033,18 @@ window.frmAdminBuildJS = function() { /** * Set the displayed value for an image option. - * @param thisOpt - * @param fieldId - * @param label + * @param {HTMLElement} thisOpt The option element. + * @param {number} fieldId The field ID. + * @param {string} label The option label. */ function getImageDisplayValue( thisOpt, fieldId, label ) { - let image; + const image = thisOpt.find( 'img' ); let imageUrl; - let showLabelWithImage; - - image = thisOpt.find( 'img' ); if ( image ) { imageUrl = image.attr( 'src' ); } - showLabelWithImage = showingLabelWithImage( fieldId ); + const showLabelWithImage = showingLabelWithImage( fieldId ); return getImageLabel( label.val(), showLabelWithImage, imageUrl ); } @@ -6246,11 +6063,6 @@ window.frmAdminBuildJS = function() { return size; } function resetDisplayedOpts( fieldId ) { - let i; - let opts; - let type; - let placeholder; - let fieldInfo; const input = jQuery( `[name^="item_meta[${ fieldId }]"]` ); if ( input.length < 1 ) { @@ -6258,7 +6070,7 @@ window.frmAdminBuildJS = function() { } if ( input.is( 'select' ) ) { - placeholder = document.getElementById( `frm_placeholder_${ fieldId }` ); + const placeholder = document.getElementById( `frm_placeholder_${ fieldId }` ); if ( placeholder === null || placeholder.value === '' ) { fillDropdownOpts( input[ 0 ], { sourceID: fieldId } ); } else { @@ -6268,9 +6080,9 @@ window.frmAdminBuildJS = function() { } ); } } else { - opts = getMultipleOpts( fieldId ); + const opts = getMultipleOpts( fieldId ); jQuery( `#field_${ fieldId }_inner_container > .frm_form_fields` ).html( '' ); - fieldInfo = getFieldKeyFromOpt( jQuery( `#frm_delete_field_${ fieldId }-000_container` ) ); + const fieldInfo = getFieldKeyFromOpt( jQuery( `#frm_delete_field_${ fieldId }-000_container` ) ); const container = jQuery( `#field_${ fieldId }_inner_container > .frm_form_fields` ); const hasImageOptions = imagesAsOptions( fieldId ); @@ -6278,8 +6090,8 @@ window.frmAdminBuildJS = function() { const imageOptionClass = hasImageOptions ? ( `frm_image_option frm_image_${ imageSize } ` ) : ''; const isProduct = isProductField( fieldId ); - type = ( 'hidden' === input.attr( 'type' ) ? input.data( 'field-type' ) : input.attr( 'type' ) ); - for ( i = 0; i < opts.length; i++ ) { + const type = ( 'hidden' === input.attr( 'type' ) ? input.data( 'field-type' ) : input.attr( 'type' ) ); + for ( let i = 0; i < opts.length; i++ ) { container.append( addRadioCheckboxOpt( type, opts[ i ], fieldId, fieldInfo.fieldKey, isProduct, imageOptionClass ) ); } } @@ -6291,8 +6103,8 @@ window.frmAdminBuildJS = function() { * Returns an object that has a value and label for new conditional logic option, for a given option value. * * @param {number} fieldId - * @param {string} expectedOption - * @return {Object} + * @param {string} expectedOption The expected option value. + * @return {Object} Object with value and label for the new option. */ function getNewConditionalLogicOption( fieldId, expectedOption ) { const optionsContainer = document.getElementById( `frm_field_${ fieldId }_opts` ); @@ -6307,41 +6119,31 @@ window.frmAdminBuildJS = function() { } function adjustConditionalLogicOptionOrders( fieldId, type ) { - let row; - let opts; - let logicId; - let valueSelect; - let optionLength; - let optionIndex; - let expectedOption; - let optionMatch; - let fieldOptions; - let rowIndex; const rows = builderPage.querySelectorAll( '.frm_logic_row' ); const rowLength = rows.length; - fieldOptions = wp.hooks.applyFilters( 'frm_conditional_logic_field_options', getFieldOptions( fieldId ), { type, fieldId } ); - optionLength = fieldOptions.length; + const fieldOptions = wp.hooks.applyFilters( 'frm_conditional_logic_field_options', getFieldOptions( fieldId ), { type, fieldId } ); + const optionLength = fieldOptions.length; - for ( rowIndex = 0; rowIndex < rowLength; rowIndex++ ) { - row = rows[ rowIndex ]; - opts = row.querySelector( '.frm_logic_field_opts' ); + for ( let rowIndex = 0; rowIndex < rowLength; rowIndex++ ) { + const row = rows[ rowIndex ]; + const opts = row.querySelector( '.frm_logic_field_opts' ); if ( opts.value != fieldId ) { continue; } - logicId = row.id.split( '_' )[ 2 ]; - valueSelect = row.querySelector( `select[name="field_options[hide_opt_${ logicId }][]"]` ); + const logicId = row.id.split( '_' )[ 2 ]; + const valueSelect = row.querySelector( `select[name="field_options[hide_opt_${ logicId }][]"]` ); - for ( optionIndex = optionLength - 1; optionIndex >= 0; optionIndex-- ) { - expectedOption = fieldOptions[ optionIndex ]; + for ( let optionIndex = optionLength - 1; optionIndex >= 0; optionIndex-- ) { + const expectedOption = fieldOptions[ optionIndex ]; let expectedOptionValue = document.getElementById( `frm_field_${ fieldId }_opts` ).querySelector( '.frm_option_key input[type="text"]' )?.value; if ( ! expectedOptionValue ) { expectedOptionValue = expectedOption; } - optionMatch = valueSelect.querySelector( `option[value="${ expectedOptionValue }"]` ); + const optionMatch = valueSelect.querySelector( `option[value="${ expectedOptionValue }"]` ); const { newValue, newLabel } = getNewConditionalLogicOption( fieldId, expectedOption ); @@ -6357,7 +6159,7 @@ window.frmAdminBuildJS = function() { prependValueSelectWithOptionMatch( valueSelect, optionMatch, newValue, newLabel ); } - optionMatch = valueSelect.querySelector( 'option[value=""]' ); + const optionMatch = valueSelect.querySelector( 'option[value=""]' ); if ( optionMatch !== null ) { valueSelect.prepend( optionMatch ); } @@ -6374,42 +6176,35 @@ window.frmAdminBuildJS = function() { } function getFieldOptions( fieldId ) { - let index; - let input; - let li; - let listItems; - let optsContainer; - let length; const options = []; - optsContainer = document.getElementById( `frm_field_${ fieldId }_opts` ); + const optsContainer = document.getElementById( `frm_field_${ fieldId }_opts` ); if ( ! optsContainer ) { return options; } - listItems = optsContainer.querySelectorAll( '.frm_single_option' ); - length = listItems.length; + const listItems = optsContainer.querySelectorAll( '.frm_single_option' ); + const length = listItems.length; - for ( index = 0; index < length; index++ ) { - li = listItems[ index ]; + for ( let index = 0; index < length; index++ ) { + const li = listItems[ index ]; if ( li.classList.contains( 'frm_hidden' ) ) { continue; } - input = li.querySelector( `.field_${ fieldId }_option` ); + const input = li.querySelector( `.field_${ fieldId }_option` ); options.push( input.value ); } return options; } function addRadioCheckboxOpt( type, opt, fieldId, fieldKey, isProduct, classes ) { - let other; let single = ''; const isOther = opt.key.includes( 'other' ); const id = `field_${ fieldKey }-${ opt.key }`; const inputType = type === 'scale' ? 'radio' : type; - other = ``; + const other = ``; this.getSingle = function() { /** @@ -6431,7 +6226,7 @@ window.frmAdminBuildJS = function() { }"> ${ purifyHtml( opt.label ) }${ - isOther ? other : '' + isOther ? other : '' }`; }; @@ -6562,14 +6357,13 @@ window.frmAdminBuildJS = function() { } function getImageUrlFromInput( optVal ) { - let img; const wrapper = jQuery( optVal ).siblings( '.frm_image_preview_wrapper' ); if ( ! wrapper.length ) { return ''; } - img = wrapper.find( 'img' ); + const img = wrapper.find( 'img' ); if ( ! img.length ) { return ''; } @@ -6604,14 +6398,11 @@ window.frmAdminBuildJS = function() { } function getImageLabel( label, showLabelWithImage, imageUrl ) { - let imageLabelClass; let originalLabel = label; - let labelImage; - let labelNode; - let imageLabel; originalLabel = purifyHtml( originalLabel ); + let labelImage; if ( imageUrl ) { labelImage = img( { src: imageUrl, alt: originalLabel } ); } else { @@ -6619,12 +6410,12 @@ window.frmAdminBuildJS = function() { labelImage.innerHTML = frmAdminJs.image_placeholder_icon; } - imageLabelClass = showLabelWithImage ? ' frm_label_with_image' : ''; + const imageLabelClass = showLabelWithImage ? ' frm_label_with_image' : ''; - imageLabel = tag( 'span', { className: 'frm_text_label_for_image_inner' } ); + const imageLabel = tag( 'span', { className: 'frm_text_label_for_image_inner' } ); imageLabel.innerHTML = originalLabel; - labelNode = tag( + const labelNode = tag( 'span', { className: `frm_image_option_container${ imageLabelClass }`, @@ -6663,7 +6454,7 @@ window.frmAdminBuildJS = function() { /** * Is the box checked to use separate values? - * @param fieldId + * @param {number} fieldId The field ID. */ function usingSeparateValues( fieldId ) { return isChecked( `separate_value_${ fieldId }` ); @@ -6671,7 +6462,7 @@ window.frmAdminBuildJS = function() { /** * Is the box checked to use images as options? - * @param fieldId + * @param {number} fieldId The field ID. */ function imagesAsOptions( fieldId ) { let checked = false; @@ -6897,27 +6688,21 @@ window.frmAdminBuildJS = function() { } function toggleOneSectionHolder( $section ) { - let noSectionFields; - let $rows; - let length; - let index; - let sectionHasFields; - if ( ! $section.length ) { return; } - $rows = $section.find( 'ul.frm_sorting' ); - sectionHasFields = false; - length = $rows.length; - for ( index = 0; index < length; ++index ) { + const $rows = $section.find( 'ul.frm_sorting' ); + let sectionHasFields = false; + const length = $rows.length; + for ( let index = 0; index < length; ++index ) { if ( 0 !== getFieldsInRow( jQuery( $rows.get( index ) ) ).length ) { sectionHasFields = true; break; } } - noSectionFields = $section.parent().children( '.frm_no_section_fields' ).get( 0 ); + const noSectionFields = $section.parent().children( '.frm_no_section_fields' ).get( 0 ); noSectionFields.classList.toggle( 'frm_block', ! sectionHasFields ); } @@ -6968,7 +6753,6 @@ window.frmAdminBuildJS = function() { function unselectEveryoneOptionIfSelected( $select ) { const selectedValues = $select.val(); - let index; if ( selectedValues === null ) { $select.next( '.btn-group' ).find( '.multiselect-container input[value=""]' ).prop( 'checked', true ); @@ -6976,7 +6760,7 @@ window.frmAdminBuildJS = function() { return; } - index = selectedValues.indexOf( '' ); + const index = selectedValues.indexOf( '' ); if ( index >= 0 ) { selectedValues.splice( index, 1 ); $select.val( selectedValues ); @@ -7128,7 +6912,7 @@ window.frmAdminBuildJS = function() { /** * When the saved value is changed, update the default value radio. - * @param input + * @param {HTMLElement} input The changed input element. */ function changeDefaultRadioValue( input ) { const parentLi = getOptionParent( input ); @@ -7144,7 +6928,7 @@ window.frmAdminBuildJS = function() { /** * If separate values are not enabled, change the saved value when * the displayed value is changed. - * @param input + * @param {HTMLElement} input The changed input element. */ function changeHiddenSeparateValue( input ) { let savedVal; @@ -7224,14 +7008,12 @@ window.frmAdminBuildJS = function() { function submitNoAjax() { /*jshint validthis:true */ - let form; - if ( showNameYourFormModal() ) { return; } preFormSave( this ); - form = jQuery( builderForm ); + const form = jQuery( builderForm ); jQuery( document.getElementById( 'frm_compact_fields' ) ).val( JSON.stringify( form.serializeArray() ) ); triggerSubmit( document.getElementById( 'frm_js_build_form' ) ); } @@ -7262,7 +7044,7 @@ window.frmAdminBuildJS = function() { /** * Returns true if 'Name Your Form' modal should be displayed. * - * @return {boolean} + * @return {boolean} True if the modal should be displayed. */ function shouldShowNameYourFormNameModal() { const formNameInput = document.getElementById( 'frm_form_name' ); @@ -7544,7 +7326,7 @@ window.frmAdminBuildJS = function() { /** * For reverse compatibility. Check for fields that were * using the old sidebar. - * @param parentClass + * @param {string} parentClass The parent CSS class selector. */ function maybeAddFieldSelection( parentClass ) { let i; @@ -7655,13 +7437,12 @@ window.frmAdminBuildJS = function() { const $trigger = jQuery( element ); const $original = $trigger.closest( '.frm_form_action_settings' ); const $inside = $original.find( '.widget-inside' ); - let $top; if ( $inside.find( 'p, div, table' ).length ) { return false; } - $top = $original.find( '.widget-top' ); + const $top = $original.find( '.widget-top' ); $top.on( 'frm-action-loaded', function() { $trigger.trigger( 'click' ); $original.removeClass( 'open' ); @@ -7810,11 +7591,10 @@ window.frmAdminBuildJS = function() { /** * When a field is selected, show the field settings in the sidebar. - * @param obj + * @param {HTMLElement} obj The selected field element. */ function showFieldOptions( obj ) { let i; - let singleField; const fieldId = obj.getAttribute( 'data-fid' ); const fieldType = obj.getAttribute( 'data-type' ); const allFieldSettings = document.querySelectorAll( '.frm-single-settings:not(.frm_hidden)' ); @@ -7823,7 +7603,7 @@ window.frmAdminBuildJS = function() { allFieldSettings[ i ].classList.add( 'frm_hidden' ); } - singleField = document.getElementById( `frm-single-settings-${ fieldId }` ); + const singleField = document.getElementById( `frm-single-settings-${ fieldId }` ); moveFieldSettings( singleField ); if ( fieldType && 'quantity' === fieldType ) { @@ -7901,22 +7681,19 @@ window.frmAdminBuildJS = function() { } function isTinyMceActive() { - let activeSettings; - let wrapper; - - activeSettings = document.querySelector( '.frm-single-settings:not(.frm_hidden)' ); + const activeSettings = document.querySelector( '.frm-single-settings:not(.frm_hidden)' ); if ( ! activeSettings ) { return false; } - wrapper = activeSettings.querySelector( '.wp-editor-wrap' ); + const wrapper = activeSettings.querySelector( '.wp-editor-wrap' ); return null !== wrapper && wrapper.classList.contains( 'tmce-active' ); } /** * Move the settings to the sidebar the first time they are changed or selected. * Keep the end marker at the end of the form. - * @param singleField + * @param {HTMLElement} singleField The field settings element to move. */ function moveFieldSettings( singleField ) { const self = this; @@ -8567,8 +8344,8 @@ window.frmAdminBuildJS = function() { * * @since 6.11 * - * @param {string} className - * @return {boolean} + * @param {string} className The class name to check. + * @return {boolean} True if the class is a layout class. */ function isALayoutClass( className ) { const layoutClasses = [ 'frm_half', 'frm_third', 'frm_two_thirds', 'frm_fourth', 'frm_three_fourths', 'frm_fifth', 'frm_sixth', 'frm2', 'frm3', 'frm4', 'frm6', 'frm8', 'frm9', 'frm10', 'frm12' ]; @@ -8578,10 +8355,10 @@ window.frmAdminBuildJS = function() { /** * @since 6.11 * - * @param {string} beforeValue - * @param {Array} removeClasses - * @param {string} variable - * @return {string} + * @param {string} beforeValue The original value string. + * @param {Array} removeClasses Classes to remove. + * @param {string} variable The CSS variable name. + * @return {string} The value with specified classes removed. */ function maybeRemoveClasses( beforeValue, removeClasses, variable ) { const currentClasses = beforeValue.split( ' ' ).filter( @@ -8639,16 +8416,14 @@ window.frmAdminBuildJS = function() { } function setLogicExample() { - let field; - let code; let idKey = document.getElementById( 'frm-id-key-condition-id' ).checked ? 'frm-id-condition' : 'frm-key-condition'; const is = document.getElementById( 'frm-is-condition' ).value; const text = document.getElementById( 'frm-text-condition' ).value; const result = document.getElementById( 'frm-insert-condition' ); idKey = document.getElementById( idKey ); - field = idKey.options[ idKey.selectedIndex ].value; - code = `if ${ field } ${ is }="${ text }"]`; + const field = idKey.options[ idKey.selectedIndex ].value; + const code = `if ${ field } ${ is }="${ text }"]`; result.setAttribute( 'data-code', `${ code + frmAdminJs.conditional_text }[/if ${ field }` ); result.innerHTML = `[${ code }[/if ${ field }]`; } @@ -8658,7 +8433,7 @@ window.frmAdminBuildJS = function() { * * @param {HTMLElement} element HTML element. * - * @return {string} + * @return {string} The href attribute value. */ function getSVGHref( element ) { return element.getAttribute( 'href' ) || element.getAttributeNS( 'http://www.w3.org/1999/xlink', 'href' ); @@ -8849,7 +8624,7 @@ window.frmAdminBuildJS = function() { * @since 6.16.3 * * @param {HTMLElement} item - * @return {boolean} + * @return {boolean} True if the shortcode can be shown. */ function checkContextualShortcode( item ) { if ( frmAdminJs.contextualShortcodes.length === 0 ) { @@ -8864,7 +8639,7 @@ window.frmAdminBuildJS = function() { * @since 6.16.3 * * @param {HTMLElement} item - * @return {boolean} + * @return {boolean} True if the shortcode is contextual. */ function isContextualShortcode( item ) { const anchor = item.querySelector( 'a' ); @@ -8879,8 +8654,8 @@ window.frmAdminBuildJS = function() { /** * @since 6.16.3 * - * @param {HTMLElement} item - * @return {boolean} + * @param {HTMLElement} item The shortcode list item. + * @return {boolean} True if the contextual shortcode can be shown. */ function canShowContextualShortcode( item ) { const shortcode = item.querySelector( 'a' ).dataset.code; @@ -8914,10 +8689,8 @@ window.frmAdminBuildJS = function() { * @return {void} */ function toggleContextualShortcodes( input, type ) { - let selector; - let contextualShortcodes; - selector = frmAdminJs.contextualShortcodes[ `${ type }Selector` ]; - contextualShortcodes = frmAdminJs.contextualShortcodes[ type ]; + const selector = frmAdminJs.contextualShortcodes[ `${ type }Selector` ]; + const contextualShortcodes = frmAdminJs.contextualShortcodes[ type ]; const shouldShowShortcodes = input.matches( selector ); for ( const shortcode of contextualShortcodes ) { const shortcodeLi = document.querySelector( `#frm-adv-info-tab .frm_code_list [data-code="${ shortcode }"]` )?.closest( 'li' ); @@ -8930,7 +8703,7 @@ window.frmAdminBuildJS = function() { * * @since 6.16.3 * - * @return {Array} + * @return {Array} Array of contextual shortcode data. */ function getContextualShortcodes() { let contextualShortcodes = document.getElementById( 'frm_adv_info' )?.dataset.contextualShortcodes; @@ -9025,7 +8798,7 @@ window.frmAdminBuildJS = function() { /** * Get the ... icon for the selected input box. - * @param input + * @param {HTMLElement} input The input element. */ function getIconForInput( input ) { if ( input.nextElementSibling?.classList.contains( 'frm-input-icon' ) ) { @@ -9044,8 +8817,6 @@ window.frmAdminBuildJS = function() { function hideShortcodes( box ) { let i; let u; - let closeIcons; - let closeSvg; if ( box === undefined ) { box = document.getElementById( 'frm_adv_info' ); if ( box === null ) { @@ -9060,13 +8831,13 @@ window.frmAdminBuildJS = function() { box.style.display = 'none'; - closeIcons = document.querySelectorAll( '.frm-show-box.frm_close_icon' ); + const closeIcons = document.querySelectorAll( '.frm-show-box.frm_close_icon' ); for ( i = 0; i < closeIcons.length; i++ ) { closeIcons[ i ].classList.remove( 'frm_close_icon' ); closeIcons[ i ].classList.add( 'frm_more_horiz_solid_icon' ); } - closeSvg = document.querySelectorAll( '.frm_has_shortcodes use' ); + const closeSvg = document.querySelectorAll( '.frm_has_shortcodes use' ); for ( u = 0; u < closeSvg.length; u++ ) { if ( getSVGHref( closeSvg[ u ] ) === '#frm_close_icon' ) { if ( closeSvg[ u ].closest( '.frm_remove_field' ) ) { @@ -9079,7 +8850,6 @@ window.frmAdminBuildJS = function() { } function toggleAllowedHTML( input ) { - let b; let { id } = input; if ( id === undefined || id.includes( '-search-input' ) ) { return; @@ -9090,7 +8860,7 @@ window.frmAdminBuildJS = function() { id = 'field_custom_html'; } - b = [ 'after_html', 'before_html', 'submit_html', 'field_custom_html' ]; + const b = [ 'after_html', 'before_html', 'submit_html', 'field_custom_html' ]; if ( jQuery.inArray( id, b ) >= 0 ) { jQuery( `.frm_code_list li:not(.show_${ id })` ).addClass( 'frm_hidden' ); jQuery( `.frm_code_list li.show_${ id }` ).removeClass( 'frm_hidden' ); @@ -9219,8 +8989,8 @@ window.frmAdminBuildJS = function() { /** * Begins the process of importing the forms. - * @param forms - * @param targetForm + * @param {Array} forms The form IDs to import. + * @param {HTMLElement} targetForm The form element that triggered the import. */ function importForms( forms, targetForm ) { // Hide the form select section. @@ -9248,7 +9018,7 @@ window.frmAdminBuildJS = function() { /** * Imports a single form from the import queue. - * @param $processSettings + * @param {jQuery} $processSettings The jQuery wrapped process settings element. */ function importForm( $processSettings ) { const formID = s.importQueue[ 0 ]; @@ -9675,7 +9445,7 @@ window.frmAdminBuildJS = function() { * * @param {string} text The text in the element we are checking for a match. * @param {string} searchText The text value that is being searched. - * @return {boolean} + * @return {boolean} True if the text matches when pluralized. */ function textMatchesPlural( text, searchText ) { if ( searchText === 's' ) { @@ -9895,7 +9665,7 @@ window.frmAdminBuildJS = function() { /** * Serialize form data with vanilla JS. - * @param form + * @param {HTMLElement} form The form element to serialize. */ function formToData( form ) { let subKey; @@ -9973,7 +9743,7 @@ window.frmAdminBuildJS = function() { * Gets column class from the number of columns. * * @param {number} colCount Number of columns. - * @return {string} + * @return {string} The column CSS class name. */ const getColClass = colCount => `frm${ parseInt( 12 / colCount ) }`; @@ -10663,8 +10433,6 @@ window.frmAdminBuildJS = function() { jQuery( '#frm_builder_page' ).on( 'mouseup', '*:not(.frm-show-box)', maybeHideShortcodes ); let loadFieldId; - let $builderForm; - let builderArea; debouncedSyncAfterDragAndDrop = debounce( syncAfterDragAndDrop, 10 ); postBodyContent = document.getElementById( 'post-body-content' ); @@ -10703,8 +10471,8 @@ window.frmAdminBuildJS = function() { initiateMultiselect(); renumberPageBreaks(); - $builderForm = jQuery( builderForm ); - builderArea = document.getElementById( 'frm_form_editor_container' ); + const $builderForm = jQuery( builderForm ); + const builderArea = document.getElementById( 'frm_form_editor_container' ); $builderForm.on( 'click', '.frm_add_logic_row', addFieldLogicRow ); $builderForm.on( 'click', '.frm_add_watch_lookup_row', addWatchLookupRow ); $builderForm.on( 'change', '.frm_get_values_form', updateGetValueFieldSelection ); @@ -10850,11 +10618,6 @@ window.frmAdminBuildJS = function() { settingsInit() { const $formActions = jQuery( document.getElementById( 'frm_notification_settings' ) ); - let formSettings; - let $loggedIn; - let $cookieExp; - let $editable; - // BCC, CC, and Reply To button functionality $formActions.on( 'click', '.frm_email_buttons', showEmailRow ); $formActions.on( 'click', '.frm_remove_field', hideEmailRow ); @@ -10887,7 +10650,7 @@ window.frmAdminBuildJS = function() { addFormNameModalEvents(); - formSettings = jQuery( '.frm_form_settings' ); + const formSettings = jQuery( '.frm_form_settings' ); formSettings.on( 'click', '.frm_add_form_logic', addFormLogicRow ); formSettings.on( 'click', '.frm_already_used', actionLimitMessage ); @@ -10926,7 +10689,7 @@ window.frmAdminBuildJS = function() { jQuery( 'select[name="options[edit_action]"]' ).on( 'change', showSuccessOpt ); - $loggedIn = document.getElementById( 'logged_in' ); + const $loggedIn = document.getElementById( 'logged_in' ); jQuery( $loggedIn ).on( 'change', function() { if ( this.checked ) { visible( '.hide_logged_in' ); @@ -10935,7 +10698,7 @@ window.frmAdminBuildJS = function() { } } ); - $cookieExp = jQuery( document.getElementById( 'frm_cookie_expiration' ) ); + const $cookieExp = jQuery( document.getElementById( 'frm_cookie_expiration' ) ); jQuery( document.getElementById( 'frm_single_entry_type' ) ).on( 'change', function() { if ( this.value === 'cookie' ) { $cookieExp.fadeIn( 'slow' ); @@ -10972,7 +10735,7 @@ window.frmAdminBuildJS = function() { triggerChange( $saveDraft ); //If Allow editing is checked/unchecked - $editable = document.getElementById( 'editable' ); + const $editable = document.getElementById( 'editable' ); jQuery( $editable ).on( 'change', function() { if ( this.checked ) { jQuery( '.hide_editable' ).fadeIn( 'slow' ); @@ -11008,11 +10771,6 @@ window.frmAdminBuildJS = function() { }, panelInit() { - let customPanel; - let settingsPage; - let viewPage; - let insertFieldsTab; - jQuery( '.frm_wrap, #postbox-container-1' ).on( 'click', '.frm_insert_code', insertCode ); jQuery( document ).on( 'change', '.frm_insert_val', function() { insertFieldCode( jQuery( this ).data( 'target' ), jQuery( this ).val() ); @@ -11029,9 +10787,9 @@ window.frmAdminBuildJS = function() { } ); jQuery( document ).on( 'mousedown', '.frm-show-box', showShortcodes ); - settingsPage = document.getElementById( 'form_settings_page' ); - viewPage = document.body.classList.contains( 'post-type-frm_display' ); - insertFieldsTab = document.getElementById( 'frm_insert_fields_tab' ); + const settingsPage = document.getElementById( 'form_settings_page' ); + const viewPage = document.body.classList.contains( 'post-type-frm_display' ); + const insertFieldsTab = document.getElementById( 'frm_insert_fields_tab' ); if ( settingsPage !== null || viewPage || builderPage ) { jQuery( document ).on( 'focusin', 'form input, form textarea', function( e ) { @@ -11072,7 +10830,7 @@ window.frmAdminBuildJS = function() { e.preventDefault(); } ); - customPanel = jQuery( '#frm_adv_info' ); + const customPanel = jQuery( '#frm_adv_info' ); customPanel.on( 'click', '.subsubsub a.frmids', function( e ) { toggleKeyID( 'frmids', e ); } ); @@ -11162,14 +10920,12 @@ window.frmAdminBuildJS = function() { }, globalSettingsInit() { - let licenseTab; - jQuery( document ).on( 'click', '[data-frmuninstall]', uninstallNow ); initiateMultiselect(); // activate addon licenses - licenseTab = document.getElementById( 'licenses_settings' ); + const licenseTab = document.getElementById( 'licenses_settings' ); if ( licenseTab !== null ) { jQuery( licenseTab ).on( 'click', '.edd_frm_save_license', saveAddonLicense ); } diff --git a/js/src/form-templates/events/favoriteButtonListener.js b/js/src/form-templates/events/favoriteButtonListener.js index a71c7eb804..d3fd0e864b 100644 --- a/js/src/form-templates/events/favoriteButtonListener.js +++ b/js/src/form-templates/events/favoriteButtonListener.js @@ -90,14 +90,22 @@ const onFavoriteButtonClick = event => { if ( OPERATION.ADD === currentOperation ) { // Increment favorite counts ++favoritesCount.total; - isTemplateCustom ? ++favoritesCount.custom : ++favoritesCount.default; + if ( isTemplateCustom ) { + ++favoritesCount.custom; + } else { + ++favoritesCount.default; + } // Set heart icon to filled heartIcon.setAttribute( 'href', FILLED_HEART_ICON ); twinTemplateHeartIcon?.setAttribute( 'href', FILLED_HEART_ICON ); } else { // Decrement favorite counts --favoritesCount.total; - isTemplateCustom ? --favoritesCount.custom : --favoritesCount.default; + if ( isTemplateCustom ) { + --favoritesCount.custom; + } else { + --favoritesCount.default; + } // Set heart icon to outline heartIcon.setAttribute( 'href', LINEAR_HEART_ICON ); twinTemplateHeartIcon?.setAttribute( 'href', LINEAR_HEART_ICON ); diff --git a/stripe/js/frmstrp.js b/stripe/js/frmstrp.js index 0a34b5fd83..15964dc19b 100644 --- a/stripe/js/frmstrp.js +++ b/stripe/js/frmstrp.js @@ -550,6 +550,7 @@ const rgba = color.replace( /^rgba?\(|\s+|\)$/g, '' ).split( ',' ); + // eslint-disable-next-line no-bitwise -- Bitwise shifts are intentional for RGBA to hex conversion return `#${ ( ( 1 << 24 ) + ( parseInt( rgba[ 0 ], 10 ) << 16 ) + ( parseInt( rgba[ 1 ], 10 ) << 8 ) + parseInt( rgba[ 2 ], 10 ) ) .toString( 16 ) .slice( 1 ) }`; From fd693fc66730fd5623b00ff29afb3eea11666869 Mon Sep 17 00:00:00 2001 From: Sherv Date: Wed, 25 Feb 2026 19:52:03 +0300 Subject: [PATCH 08/34] Add id prop to BaseControl in RadioControl component --- js/src/common/components/radio.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/src/common/components/radio.js b/js/src/common/components/radio.js index e9f38c2708..8800fb4fd5 100644 --- a/js/src/common/components/radio.js +++ b/js/src/common/components/radio.js @@ -12,7 +12,7 @@ function RadioControl( { label, className, selected, help, instanceId, onChange, const onChangeValue = event => onChange( event.target.value ); className = `${ className } components-radio-control`; - return + return { options.map( ( option, index ) =>
Date: Wed, 25 Feb 2026 19:58:17 +0300 Subject: [PATCH 09/34] Add eslint-disable-line comment for no-unused-expressions in Cypress test assertion --- tests/cypress/e2e/Forms/formPageDataValidation.cy.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/cypress/e2e/Forms/formPageDataValidation.cy.js b/tests/cypress/e2e/Forms/formPageDataValidation.cy.js index 46ffbccd26..464d17bd46 100644 --- a/tests/cypress/e2e/Forms/formPageDataValidation.cy.js +++ b/tests/cypress/e2e/Forms/formPageDataValidation.cy.js @@ -177,7 +177,7 @@ describe( 'Forms page', () => { cy.get( '.created_at > abbr' ) .invoke( 'html' ) .then( html => { - expect( html.split( '
' )[ 1 ] ).to.exist.and.not.be.empty; + expect( html.split( '
' )[ 1 ] ).to.exist.and.not.be.empty; // eslint-disable-line no-unused-expressions } ); } ); } ); From 9642772e746a19bc904eed18374e460b04d9d419 Mon Sep 17 00:00:00 2001 From: Sherv Date: Wed, 25 Feb 2026 20:04:56 +0300 Subject: [PATCH 10/34] Remove unused sourceCode variable from no-repeated-selector ESLint rule --- eslint-rules/rules/no-repeated-selector.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/eslint-rules/rules/no-repeated-selector.js b/eslint-rules/rules/no-repeated-selector.js index aacbc90915..aa6c4de173 100644 --- a/eslint-rules/rules/no-repeated-selector.js +++ b/eslint-rules/rules/no-repeated-selector.js @@ -18,8 +18,6 @@ module.exports = { }, create( context ) { - const sourceCode = context.sourceCode; - // Track selectors per function scope const scopeStack = []; From cf8960a71b4c2bcbe052e47bec2e2f52f8ec2e2c Mon Sep 17 00:00:00 2001 From: Sherv Date: Wed, 25 Feb 2026 22:01:11 +0300 Subject: [PATCH 11/34] Initialize variables at declaration to prevent undefined values and improve code clarity --- .../no-optional-chaining-queryselectorall.js | 2 +- js/admin/deactivation-feedback.js | 2 +- js/formidable.js | 50 ++++++---------- stripe/js/frmstrp.js | 57 +++++++------------ 4 files changed, 40 insertions(+), 71 deletions(-) diff --git a/eslint-rules/rules/no-optional-chaining-queryselectorall.js b/eslint-rules/rules/no-optional-chaining-queryselectorall.js index 7f899ed5c7..1e12b2847a 100644 --- a/eslint-rules/rules/no-optional-chaining-queryselectorall.js +++ b/eslint-rules/rules/no-optional-chaining-queryselectorall.js @@ -52,7 +52,7 @@ module.exports = { return; } - let reason; + let reason = ''; if ( methodName === 'querySelectorAll' ) { reason = 'querySelectorAll always returns a NodeList. Use .querySelectorAll() without ?.'; } else if ( methodName === 'children' ) { diff --git a/js/admin/deactivation-feedback.js b/js/admin/deactivation-feedback.js index 26e6740592..c5ad840f96 100644 --- a/js/admin/deactivation-feedback.js +++ b/js/admin/deactivation-feedback.js @@ -4,7 +4,7 @@ const selectors = 'tr[data-slug="formidable"] .deactivate a, tr[data-slug="formidable-pro"] .deactivate a, tr[data-slug="formidable-forms-pro"] .deactivate a'; let deactivationModal; - let deactivationUrl; + let deactivationUrl = ''; const Modal = { init( id, width ) { diff --git a/js/formidable.js b/js/formidable.js index c112724b30..9e4ca6e50c 100644 --- a/js/formidable.js +++ b/js/formidable.js @@ -604,27 +604,24 @@ function frmFrontFormJS() { * @return {void} */ function confirmField( field, errors ) { - let value; - let confirmValue; - let firstField; const fieldID = getFieldId( field, true ); const strippedId = field.id.replace( 'conf_', '' ); const strippedFieldID = fieldID.replace( 'conf_', '' ); - const confirmField = document.getElementById( strippedId.replace( 'field_', 'field_conf_' ) ); + const confirmFieldEl = document.getElementById( strippedId.replace( 'field_', 'field_conf_' ) ); - if ( confirmField === null || errors[ `conf_${ strippedFieldID }` ] !== undefined ) { + if ( confirmFieldEl === null || errors[ `conf_${ strippedFieldID }` ] !== undefined ) { return; } if ( fieldID !== strippedFieldID ) { - firstField = document.getElementById( strippedId ); - value = firstField.value; - confirmValue = confirmField.value; + const firstField = document.getElementById( strippedId ); + const { value } = firstField; + const confirmValue = confirmFieldEl.value; if ( value !== confirmValue ) { - errors[ `conf_${ strippedFieldID }` ] = getFieldValidationMessage( confirmField, 'data-confmsg' ); + errors[ `conf_${ strippedFieldID }` ] = getFieldValidationMessage( confirmFieldEl, 'data-confmsg' ); } } else { - validateField( confirmField ); + validateField( confirmFieldEl ); } } @@ -871,17 +868,6 @@ function frmFrontFormJS() { }; const success = function( response ) { - let formID; - let replaceContent; - let pageOrder; - let formReturned; - let contSubmit; - let delay; - let $fieldCont; - let key; - let inCollapsedSection; - let frmTrigger; - const defaultResponse = { content: '', errors: {}, @@ -929,11 +915,11 @@ function frmFrontFormJS() { } const formIdInput = object.querySelector( 'input[name="form_id"]' ); - formID = formIdInput ? formIdInput.value : ''; + const formID = formIdInput ? formIdInput.value : ''; response.content = response.content.replace( / frm_pro_form /g, ' frm_pro_form frm_no_hide ' ); - replaceContent = jQuery( object ).closest( '.frm_forms' ); // eslint-disable-line no-jquery/no-closest + const replaceContent = jQuery( object ).closest( '.frm_forms' ); // eslint-disable-line no-jquery/no-closest removeAddedScripts( replaceContent, formID ); - delay = maybeSlideOut( replaceContent, response.content ); + const delay = maybeSlideOut( replaceContent, response.content ); setTimeout( function() { @@ -945,11 +931,11 @@ function frmFrontFormJS() { if ( typeof frmThemeOverride_frmAfterSubmit === 'function' ) { // eslint-disable-line camelcase const pageOrderInput = document.querySelector( `input[name="frm_page_order_${ formID }"]` ); - pageOrder = pageOrderInput ? pageOrderInput.value : ''; + const pageOrder = pageOrderInput ? pageOrderInput.value : ''; const tempDiv = document.createElement( 'div' ); tempDiv.innerHTML = response.content; const formReturnedInput = tempDiv.querySelector( 'input[name="form_id"]' ); - formReturned = formReturnedInput ? formReturnedInput.value : ''; + const formReturned = formReturnedInput ? formReturnedInput.value : ''; frmThemeOverride_frmAfterSubmit( formReturned, pageOrder, response.content, object ); } @@ -962,20 +948,20 @@ function frmFrontFormJS() { removeSubmitLoading( jQuery( object ), 'enable' ); //show errors - contSubmit = true; + let contSubmit = true; removeAllErrors(); - $fieldCont = null; + let $fieldCont = null; - for ( key in response.errors ) { + for ( const key in response.errors ) { const fieldContEl = object.querySelector( `#frm_field_${ key }_container` ); $fieldCont = fieldContEl ? jQuery( fieldContEl ) : jQuery(); if ( $fieldCont.length ) { if ( ! $fieldCont.is( ':visible' ) ) { // eslint-disable-line no-jquery/no-is - inCollapsedSection = $fieldCont.closest( '.frm_toggle_container' ); // eslint-disable-line no-jquery/no-closest + const inCollapsedSection = $fieldCont.closest( '.frm_toggle_container' ); // eslint-disable-line no-jquery/no-closest if ( inCollapsedSection.length ) { - frmTrigger = inCollapsedSection.prev(); + let frmTrigger = inCollapsedSection.prev(); if ( ! frmTrigger.hasClass( 'frm_trigger' ) ) { // If the frmTrigger object is the section description, check to see if the previous element is the trigger frmTrigger = frmTrigger.prev( '.frm_trigger' ); @@ -1643,7 +1629,7 @@ function frmFrontFormJS() { function setCustomValidityMessage() { const forms = document.getElementsByClassName( 'frm-show-form' ); - const length = forms.length; + const { length } = forms; for ( let index = 0; index < length; ++index ) { forms[ index ].addEventListener( diff --git a/stripe/js/frmstrp.js b/stripe/js/frmstrp.js index 15964dc19b..ec848e453e 100644 --- a/stripe/js/frmstrp.js +++ b/stripe/js/frmstrp.js @@ -242,14 +242,8 @@ } function addName( $form ) { - let i; - let firstField; - let lastField; - let firstFieldContainer; - let lastFieldContainer; let firstNameID = ''; let lastNameID = ''; - let subFieldEl; const cardObject = {}; const { settings } = frm_stripe_vars; @@ -270,7 +264,7 @@ return ''; } - subFieldEl = field.querySelector( `.frm_combo_inputs_container .frm_form_subfield-${ subFieldName } input` ); + const subFieldEl = field.querySelector( `.frm_combo_inputs_container .frm_form_subfield-${ subFieldName } input` ); if ( ! subFieldEl ) { return ''; } @@ -278,7 +272,7 @@ return subFieldEl.value; }; - for ( i = 0; i < settings.length; i++ ) { + for ( let i = 0; i < settings.length; i++ ) { firstNameID = settings[ i ].first_name; lastNameID = settings[ i ].last_name; } @@ -306,11 +300,11 @@ } if ( firstNameID !== '' ) { - firstFieldContainer = getNameFieldItem( firstNameID, 'container' ); + const firstFieldContainer = getNameFieldItem( firstNameID, 'container' ); if ( firstFieldContainer && firstFieldContainer.querySelector( '.frm_combo_inputs_container' ) ) { // This is a name field. cardObject.name = getNameFieldValue( firstFieldContainer, 'first' ); } else { - firstField = getNameFieldItem( firstNameID, 'field', $form ); + const firstField = getNameFieldItem( firstNameID, 'field', $form ); if ( firstField && firstField.value ) { cardObject.name = firstField.value; } @@ -318,11 +312,11 @@ } if ( lastNameID !== '' ) { - lastFieldContainer = getNameFieldItem( lastNameID, 'container' ); + const lastFieldContainer = getNameFieldItem( lastNameID, 'container' ); if ( lastFieldContainer && lastFieldContainer.querySelector( '.frm_combo_inputs_container' ) ) { // This is a name field. cardObject.name = `${ cardObject.name } ${ getNameFieldValue( lastFieldContainer, 'last' ) }`; } else { - lastField = getNameFieldItem( lastNameID, 'field', $form ); + const lastField = getNameFieldItem( lastNameID, 'field', $form ); if ( lastField && lastField.value ) { cardObject.name = `${ cardObject.name } ${ lastField.value }`; } @@ -394,19 +388,17 @@ // Update price intent on change. function priceChanged( _, field, fieldId ) { - let i; - let data; const price = getPriceFields(); let run = price.includes( fieldId ) || price.includes( field.id ); if ( ! run ) { - for ( i = 0; i < price.length; i++ ) { + for ( let i = 0; i < price.length; i++ ) { if ( field.id.indexOf( price[ i ] ) === 0 ) { run = true; } } } if ( run ) { - data = { + const data = { action: 'frm_strp_amount', form: JSON.stringify( jQuery( field ).closest( 'form' ).serializeArray() ), nonce: frm_stripe_vars.nonce @@ -567,7 +559,6 @@ */ function insertAuthenticationElement( cardElement ) { let emailInput; - let cardFieldContainer; let addAboveCardElement = true; const emailField = checkForEmailField(); @@ -585,7 +576,7 @@ if ( addAboveCardElement ) { // If no email field is found, add the email field above the credit card. - cardFieldContainer = cardElement.closest( '.frm_form_field' ); + const cardFieldContainer = cardElement.closest( '.frm_form_field' ); cardFieldContainer.parentNode.insertBefore( authenticationMountTarget, cardFieldContainer ); triggerCustomEvent( @@ -814,12 +805,9 @@ * @return {string} Field value. */ function getSettingFieldValue( field ) { - let value; - if ( 'hidden' === field.getAttribute( 'type' ) ) { - value = field.value; - } else { - value = field.querySelector( 'input' ).value; - } + const value = 'hidden' === field.getAttribute( 'type' ) + ? field.value + : field.querySelector( 'input' ).value; return value; } @@ -844,11 +832,6 @@ each( getStripeSettings(), checkStripeSettingForField ); function checkStripeSettingForField( currentSetting ) { - let currentFieldId; - let fieldMatchByKey; - let fieldContainer; - let hiddenInput; - if ( 'string' !== typeof currentSetting[ settingKey ] || ! currentSetting[ settingKey ].length ) { return; } @@ -856,6 +839,9 @@ const currentSettingValue = currentSetting[ settingKey ]; const settingIsWrappedAsShortcode = '[' === currentSettingValue[ 0 ] && ']' === currentSettingValue[ currentSettingValue.length - 1 ]; + let currentFieldId; + let fieldMatchByKey = null; + if ( settingIsWrappedAsShortcode ) { // Email is wrapped as a shortcode. currentFieldId = currentSettingValue.substr( 1, currentSettingValue.length - 2 ); @@ -869,14 +855,12 @@ currentFieldId = currentSettingValue; } - if ( fieldMatchByKey ) { - fieldContainer = fieldMatchByKey.closest( '.frm_form_field' ); - } else { - fieldContainer = document.getElementById( `frm_field_${ currentFieldId }_container` ); - } + const fieldContainer = fieldMatchByKey + ? fieldMatchByKey.closest( '.frm_form_field' ) + : document.getElementById( `frm_field_${ currentFieldId }_container` ); if ( ! fieldContainer ) { - hiddenInput = document.querySelector( `input[name="item_meta[${ currentFieldId }]"]` ); + let hiddenInput = document.querySelector( `input[name="item_meta[${ currentFieldId }]"]` ); if ( ! hiddenInput ) { if ( 'first_name' === settingKey ) { @@ -923,9 +907,8 @@ * @return {void} */ function each( items, callback ) { - let index; const { length } = items; - for ( index = 0; index < length; index++ ) { + for ( let index = 0; index < length; index++ ) { if ( false === callback( items[ index ], index ) ) { break; } From 4de4244af05b7c498698cfa3c8c8c4c6d3604130 Mon Sep 17 00:00:00 2001 From: Sherv Date: Tue, 3 Mar 2026 14:52:43 +0300 Subject: [PATCH 12/34] Refactor addon-state.js to use array destructuring for cleaner element access --- .deepsource.toml | 95 ++++++++++++++++++++++++++++++++++--- js/src/admin/addon-state.js | 6 +-- 2 files changed, 92 insertions(+), 9 deletions(-) diff --git a/.deepsource.toml b/.deepsource.toml index 36c7f81786..2ae6458bb4 100644 --- a/.deepsource.toml +++ b/.deepsource.toml @@ -1,24 +1,39 @@ version = 1 # 1. Global Exclude Patterns -# Tell DeepSource which files to completely ignore (e.g., external libraries). exclude_patterns = [ "**/node_modules/**", "**/vendor/**", "**/venv/**", "**/dist/**", - "**/build/**" + "**/build/**", + "**/coverage/**", + "**/*.min.js", + "**/*.js.map", + "js/formidable_blocks.js", + "js/formidable_overlay.js", + "js/form-templates.js", + "js/formidable_dashboard.js", + "js/onboarding-wizard.js", + "js/addons-page.js", + "js/formidable_styles.js", + "js/formidable_admin.js", + "js/bootstrap-multiselect.js", + "js/formidable-settings-components.js", + "js/formidable-web-components.js", + "js/frm_testing_mode.js", + "js/welcome-tour.js", + "eslint-rules/**" ] # 2. Test Patterns -# Tell DeepSource which files are tests. This prevents false positives -# (e.g., allowing "assert" statements in test files). test_patterns = [ - "**/tests/**" + "**/tests/**", + "**/phpunit/**", + "**/cypress/**" ] # 3. Analyzers -# Add a block like this for every language you use. [[analyzers]] name = "php" enabled = true @@ -26,3 +41,71 @@ enabled = true [[analyzers]] name = "javascript" enabled = true + + [analyzers.meta] + environment = [ + "browser", + "jquery", + "cypress", + "mocha" + ] + module_system = "es-modules" + globals = [ + # WordPress core globals + "ajaxurl", + "wp", + "wpApiSettings", + "tinyMCE", + "tb_remove", + "adminpage", + "pagenow", + # Google reCAPTCHA / hCaptcha / Turnstile + "grecaptcha", + "hcaptcha", + "turnstile", + # Formidable globals (via wp_localize_script) + "frmGlobal", + "frm_js", + "frm_admin_js", + "frmDom", + "frmFormTemplatesVars", + "FrmDeactivationFeedbackI18n", + "formidable_form_selector", + "frmSettings", + "s11FloatingLinksData", + "frmPlugSearch", + "frmAddonsVars", + "frmOnboardingWizardVars", + "frmApplicationsVars", + "frmWelcomeTourVars", + "frm_stripe_vars", + "frm_trans_vars", + "frmSquareVars", + # Formidable window globals + "frmFrontForm", + "frmAdminBuild", + "frmAdminBuildJS", + "FrmFormsConnect", + "frmAdminPopup", + "frmOverlay", + "frmDropdownComponent", + "frmStylerFunctions", + "frmProForm", + "frmThemeOverride_jsErrors", + "frmThemeOverride_frmPlaceError", + "frmThemeOverride_frmAfterSubmit", + "frm_add_logic_row", + "frm_remove_tag", + "frm_show_div", + "frmCheckAll", + "frmCheckAllLevel", + "frmGetFieldValues", + "frmImportCsv", + "FormidablePSH", + "__FRMURLVARS", + "frm_password_checks", + "formidable_block_calculator", + "formidable_view_selector", + "frmdates_admin_js", + "frm_abdn" + ] diff --git a/js/src/admin/addon-state.js b/js/src/admin/addon-state.js index 633207aab3..f143d55230 100644 --- a/js/src/admin/addon-state.js +++ b/js/src/admin/addon-state.js @@ -115,16 +115,16 @@ export function afterAddonInstall( response, button, message, el, saveAndReload, }; actionMap.frm_install_addon = actionMap.frm_activate_addon; - const messageElement = message[ 0 ]; + const [ messageElement ] = message; if ( messageElement ) { messageElement.textContent = actionMap[ action ].message; } - const { parentElement } = el[ 0 ]; + const [ { parentElement } ] = el; parentElement.classList.remove( 'frm-addon-not-installed', 'frm-addon-installed', 'frm-addon-active' ); parentElement.classList.add( actionMap[ action ].class ); - const buttonElement = button[ 0 ]; + const [ buttonElement ] = button; buttonElement.classList.remove( 'frm_loading_button' ); // Maybe refresh import and SMTP pages From d5257f8f3f72b17a82b40cf000c400d3c920cc48 Mon Sep 17 00:00:00 2001 From: Sherv Date: Tue, 3 Mar 2026 15:59:01 +0300 Subject: [PATCH 13/34] Refactor code to use destructuring, optional chaining, and improve switch statement patterns for better code quality --- js/src/admin/admin.js | 54 ++++++++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 24 deletions(-) diff --git a/js/src/admin/admin.js b/js/src/admin/admin.js index 41445157fc..32ebc68275 100644 --- a/js/src/admin/admin.js +++ b/js/src/admin/admin.js @@ -1481,7 +1481,7 @@ window.frmAdminBuildJS = function() { function getSyncLayoutClass( layoutClasses, classToAdd ) { return function( itemIndex ) { const currentClassToAdd = 'function' === typeof classToAdd ? classToAdd( itemIndex ) : classToAdd; - const length = layoutClasses.length; + const { length } = layoutClasses; let activeLayoutClass = false; for ( let layoutClassIndex = 0; layoutClassIndex < length; ++layoutClassIndex ) { const currentClass = layoutClasses[ layoutClassIndex ]; @@ -3138,7 +3138,7 @@ window.frmAdminBuildJS = function() { list.innerHTML = ''; for ( let i = 0; i < fields.length; i++ ) { - if ( ( exclude && exclude.includes( fields[ i ].fieldType ) ) || + if ( ( exclude?.includes( fields[ i ].fieldType ) ) || ( excludedOpts.length && hasExcludedOption( fields[ i ], excludedOpts ) ) ) { continue; } @@ -4178,7 +4178,7 @@ window.frmAdminBuildJS = function() { } function maybeMarkRowLayoutAsActive( activeRow, options ) { - const length = options.children.length; + const { length } = options.children; for ( let index = 0; index < length; ++index ) { const currentRow = options.children[ index ]; if ( rowLayoutsMatch( currentRow, activeRow ) ) { @@ -4374,8 +4374,9 @@ window.frmAdminBuildJS = function() { return 'frm2'; case 6: return 'frm1'; + default: + return 'frm12'; } - return 'frm12'; } function getLargeClassForSize( size ) { @@ -4388,8 +4389,9 @@ window.frmAdminBuildJS = function() { return 'frm4'; case 6: return 'frm7'; + default: + return 'frm12'; } - return 'frm12'; } function getEmptyGridContainer() { @@ -4571,14 +4573,14 @@ window.frmAdminBuildJS = function() { return 9; case 'frm_sixth': return 2; - } + default: + if ( 0 === className.indexOf( 'frm' ) ) { + return parseInt( className.substr( 3 ) ); + } - if ( 0 === className.indexOf( 'frm' ) ) { - return parseInt( className.substr( 3 ) ); + // Anything missing a layout class should be a full width row. + return 12; } - - // Anything missing a layout class should be a full width row. - return 12; } function getLayoutClassName( classList ) { @@ -4967,7 +4969,7 @@ window.frmAdminBuildJS = function() { function selectedFieldsAreMergeable() { const selectedFieldGroups = document.querySelectorAll( '.frm-selected-field-group' ); - const length = selectedFieldGroups.length; + const { length } = selectedFieldGroups; if ( 1 === length ) { return false; } @@ -6183,7 +6185,7 @@ window.frmAdminBuildJS = function() { return options; } const listItems = optsContainer.querySelectorAll( '.frm_single_option' ); - const length = listItems.length; + const { length } = listItems; for ( let index = 0; index < length; index++ ) { const li = listItems[ index ]; @@ -6381,7 +6383,7 @@ window.frmAdminBuildJS = function() { const cleanNode = frmDom.cleanNode( currentNode ); if ( '#text' === cleanNode.nodeName ) { - return total += cleanNode.textContent; + return total + cleanNode.textContent; } return total + cleanNode.outerHTML; @@ -6694,7 +6696,7 @@ window.frmAdminBuildJS = function() { const $rows = $section.find( 'ul.frm_sorting' ); let sectionHasFields = false; - const length = $rows.length; + const { length } = $rows; for ( let index = 0; index < length; ++index ) { if ( 0 !== getFieldsInRow( jQuery( $rows.get( index ) ) ).length ) { sectionHasFields = true; @@ -7256,7 +7258,7 @@ window.frmAdminBuildJS = function() { container.append( upgradeActions || upgradeButton ); // Maybe append the secondary "Already purchased?" link from the upgradeModal as well. - if ( upgradeModalLink.nextElementSibling && upgradeModalLink.nextElementSibling.querySelector( '.frm-link-secondary' ) ) { + if ( upgradeModalLink.nextElementSibling?.querySelector( '.frm-link-secondary' ) ) { container.append( upgradeModalLink.nextElementSibling.cloneNode( true ) ); } @@ -8948,8 +8950,8 @@ window.frmAdminBuildJS = function() { thisRow.find( '.edd_frm_license' ).html( license ); const eddWrapper = button.get( 0 ).closest( '.frm_form_field' ); const actionIsSuccess = msg.success === true; - eddWrapper.querySelector( `.frm_icon_font.frm_action_success` ).classList.toggle( 'frm_hidden', ! actionIsSuccess || action === 'deactivate' ); - eddWrapper.querySelector( `.frm_icon_font.frm_action_error` ).classList.toggle( 'frm_hidden', actionIsSuccess ); + eddWrapper.querySelector( '.frm_icon_font.frm_action_success' ).classList.toggle( 'frm_hidden', ! actionIsSuccess || action === 'deactivate' ); + eddWrapper.querySelector( '.frm_icon_font.frm_action_error' ).classList.toggle( 'frm_hidden', actionIsSuccess ); const messageBox = thisRow.find( '.frm_license_msg' ); messageBox.html( msg.message ); @@ -9497,7 +9499,7 @@ window.frmAdminBuildJS = function() { function selectedOptions( select ) { let opt; const result = []; - const options = select && select.options; + const options = select?.options; for ( let i = 0, iLen = options.length; i < iLen; i++ ) { opt = options[ i ]; @@ -10131,7 +10133,7 @@ window.frmAdminBuildJS = function() { e.stopPropagation(); } - if ( e.target.classList.contains( 'frm-show-box' ) || ( e.target.parentElement && e.target.parentElement.classList.contains( 'frm-show-box' ) ) ) { + if ( e.target.classList.contains( 'frm-show-box' ) || e.target.parentElement?.classList.contains( 'frm-show-box' ) ) { return; } @@ -10957,7 +10959,9 @@ window.frmAdminBuildJS = function() { } ); // Set fieldsUpdated to 0 to avoid the unsaved changes pop up. - frmDom.util.documentOn( 'submit', '.frm_settings_form', () => fieldsUpdated = 0 ); + frmDom.util.documentOn( 'submit', '.frm_settings_form', () => { + fieldsUpdated = 0; + } ); const manageStyleSettings = document.getElementById( 'manage_styles_settings' ); if ( manageStyleSettings ) { @@ -11030,7 +11034,9 @@ window.frmAdminBuildJS = function() { showOrHideRepeaters( getExportOption() ); document.querySelector( '#frm-export-select-all' ).addEventListener( 'change', event => { - document.querySelectorAll( '[name="frm_export_forms[]"]' ).forEach( cb => cb.checked = event.target.checked ); + document.querySelectorAll( '[name="frm_export_forms[]"]' ).forEach( cb => { + cb.checked = event.target.checked; + } ); } ); }, @@ -11202,12 +11208,12 @@ window.frm_show_div = ( div, value, showIf, classId ) => { }; window.frmCheckAll = ( checked, n ) => { - jQuery( `input[name^="${ n }"]` ).prop( 'checked', ! ! checked ); + jQuery( `input[name^="${ n }"]` ).prop( 'checked', Boolean( checked ) ); }; window.frmCheckAllLevel = ( checked, n, level ) => { const $kids = jQuery( `.frm_catlevel_${ level }` ).children( '.frm_checkbox' ).children( 'label' ); - $kids.children( `input[name^="${ n }"]` ).prop( 'checked', ! ! checked ); + $kids.children( `input[name^="${ n }"]` ).prop( 'checked', Boolean( checked ) ); }; window.frmGetFieldValues = ( fieldId, cur, rowNumber, fieldType, htmlName, callback ) => { From bc286231ce01297bc4be173b0668714bc59e18d0 Mon Sep 17 00:00:00 2001 From: Sherv Date: Tue, 3 Mar 2026 15:59:09 +0300 Subject: [PATCH 14/34] Disable ESLint rules to suppress DeepSource false positives for legacy code patterns --- eslint.config.mjs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/eslint.config.mjs b/eslint.config.mjs index 6143e2e0a4..a324173a88 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -165,6 +165,15 @@ export default [ 'no-alert': 'off', 'no-undef': 'off', 'no-shadow': 'off', + + // Suppress DeepSource false positives for legacy patterns + 'init-declarations': 'off', + 'id-length': 'off', + 'no-use-before-define': 'off', + 'consistent-return': 'off', + 'guard-for-in': 'off', + 'no-return-assign': 'off', + 'no-useless-escape': 'off', 'comma-dangle': 'off', 'arrow-parens': ['error', 'as-needed'], From a90c15512a767ce476d5c5da7fd2dba9308f3eb4 Mon Sep 17 00:00:00 2001 From: Sherv Date: Tue, 3 Mar 2026 15:59:23 +0300 Subject: [PATCH 15/34] Replace double negation operator with explicit Boolean() conversion for better code clarity --- js/src/common/components/radio.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/src/common/components/radio.js b/js/src/common/components/radio.js index 8800fb4fd5..39dab62981 100644 --- a/js/src/common/components/radio.js +++ b/js/src/common/components/radio.js @@ -26,7 +26,7 @@ function RadioControl( { label, className, selected, help, instanceId, onChange, value={ option.value } onChange={ onChangeValue } checked={ option.value === selected } - aria-describedby={ !! help ? `${ id }__help` : undefined } + aria-describedby={ Boolean( help ) ? `${ id }__help` : undefined } />
');var e=jQuery(this).closest(".frm_form_action_settings").find('select[name$="[post_content][post_type]"]').val(),t=jQuery(this).closest(".frm_form_action_settings").data("actionkey"),r=jQuery(this).closest(".frm_posttax_row").attr("id").replace("frm_posttax_",""),n=jQuery(this).val(),i=jQuery(document.getElementById(r+"_show_exclude")).is(":checked")?1:0,o=jQuery('select[name$="[post_category]['+r+'][field_id]"]').val(),a=jQuery('input[name="id"]').val();jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_posttax_row",form_id:a,post_type:e,tax_key:r,action_key:t,meta_name:n,field_id:o,show_exclude:i,nonce:frmGlobal.nonce},success:function(e){jQuery(document.getElementById("frm_posttax_"+r)).replaceWith(e)}})}}function wi(){var e=jQuery(this).closest(".frm_postmeta_row"),t=e.find(".frm_cancelnew"),r=e.find(".frm_enternew");return e.find("select.frm_cancelnew").is(":visible")?(t.hide(),r.show()):(t.show(),r.hide()),e.find("input.frm_enternew, select.frm_cancelnew").val(""),!1}function Qi(){var e=jQuery(this),t=e.val();"checkbox"===e.attr("type")&&!1===this.checked&&(t="");var r=e.data("toggleclass");""===t?jQuery("."+r).hide():(jQuery("."+r).show(),jQuery(".hide_"+r+"_"+t).hide())}function xi(){Wn()||($n(this),zn(document.querySelector(".frm_form_settings")))}function Ei(e){return e.preventDefault(),ki(jQuery(this),this.getAttribute("data-code")),!1}function ki(e,t){var r=!1,n=e;if("object"===a(e)){if(e.hasClass("frm_noallow"))return;void 0===(n=jQuery(e).closest("[data-fills]").attr("data-fills"))&&void 0!==(n=e.closest("div").attr("class"))&&(n=n.split(" ")[1])}if(void 0===n){var i=document.activeElement;"search"===i.type?null===(n=i.id.replace("-search-input","")).match(/\d/gi)&&(n=(i=jQuery(".frm-single-settings:visible ."+n)).attr("id")):n=i.id}n&&(r=jQuery("#wp-"+n+"-wrap.wp-editor-wrap").length>0);var o=jQuery(document.getElementById(n));if(void 0===e.attr("data-shortcode")&&(!o.length||void 0===o.attr("data-shortcode"))){var l=e.parents("ul.frm_code_list").attr("data-shortcode");"undefined"!==l&&"no"===l||(t="["+t+"]")}if(r&&(wpActiveEditor=n),!o.length)return!1;if("[default-html]"===t||"[default-plain]"===t){var s=0;"[default-plain]"===t&&(s=1),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_get_default_html",form_id:jQuery('input[name="id"]').val(),plain_text:s,nonce:frmGlobal.nonce},elementId:n,success:function(e){if(r){var t=document.createElement("p");t.innerText=e,send_to_editor(t.innerHTML)}else Ai(o,e)}})}else t=function(e,t,r){return"object"===a(t)&&t instanceof jQuery&&0===r[0].id.indexOf("success_url_")&&(t=t[0]).closest("#frm-insert-fields-box")?(t.parentNode.classList.contains("frm_insert_url")||(e=e.replace("]"," sanitize_url=1]")),e):e}(t,e,o),r?send_to_editor(t):Ai(o,t);return!1}function Ai(e,t){if(document.selection)e[0].focus(),document.selection.createRange().text=t;else{var r=e[0],n=r.selectionEnd;t=function(e,t,r,n){var i=e.data("sep");if(void 0===i)return t;var o=e.val();if(!o.trim().length)return t;var a=new RegExp(i+"\\s*$"),l=new RegExp("^\\s*"+i);return o.substr(0,r).trim().length&&!1===a.test(o.substr(0,r))&&(t=i+t),o.substr(n,o.length).trim().length&&!1===l.test(o.substr(n,o.length))&&(t+=i),t}(e,t,r.selectionStart,n),r.value=r.value.substr(0,r.selectionStart)+t+r.value.substr(r.selectionEnd,r.value.length);var i=n+t.length;!function(e,t){if(e.classList.contains("frm_classes")&&Si(t)){var r=e.value.split(" ").filter(Si);r.length&&(e.value=function(e,t,r){var n=e.split(" ").filter(function(e){return(e=e.trim()).length&&!t.includes(e)});return n.includes(r)||n.push(r),n.join(" ")}(e.value,r,t.trim()))}}(r,t),r.focus(),r.setSelectionRange(i,i)}Rn(e)}function Si(e){return["frm_half","frm_third","frm_two_thirds","frm_fourth","frm_three_fourths","frm_fifth","frm_sixth","frm2","frm3","frm4","frm6","frm8","frm9","frm10","frm12"].includes(e.trim())}function Li(){var e=document.getElementById("frm-id-condition"),t=document.getElementById("frm-key-condition");"id"===this.value?(e.classList.remove("frm_hidden"),t.classList.add("frm_hidden"),ko(t,"change")):(e.classList.add("frm_hidden"),t.classList.remove("frm_hidden"),ko(e,"change"))}function Ii(){var e,t,r=document.getElementById("frm-id-key-condition-id").checked?"frm-id-condition":"frm-key-condition",n=document.getElementById("frm-is-condition").value,i=document.getElementById("frm-text-condition").value,a=document.getElementById("frm-insert-condition");t="if "+(e=(r=document.getElementById(r)).options[r.selectedIndex].value)+" "+n+'="'+i+'"]',a.setAttribute("data-code",t+o.conditional_text+"[/if "+e),a.innerHTML="["+t+"[/if "+e+"]"}function Bi(e){return e.getAttribute("href")||e.getAttributeNS("http://www.w3.org/1999/xlink","href")}function qi(e){var t;e.parentNode.parentNode.classList.contains("frm_has_shortcodes")&&(Vi(),"use"===(t=Ui(e)).tagName?Bi(t=t.firstElementChild).includes("frm_close_icon")||Fi(t,"nofocus"):t.classList.contains("frm_close_icon")||Fi(t,"nofocus"))}function Ci(e){e.preventDefault(),e.stopPropagation(),Fi(this)}function Ni(e){!function(e){var t;if(e.id.startsWith("field_options_type_")){var r=e.id.split("_"),n=r.length&&r[r.length-1];null!==(t=document.querySelector("#frm-single-settings-".concat(n)))&&void 0!==t&&t.classList.contains("frm-type-".concat(e.value))||Ti()}}(e.target)}function Ti(e){var t;void 0===e&&(e=I("You are changing the field type. Not all field settings will appear as expected until you reload the page. Would you like to reload the page now?","formidable")),frmDom.modal.maybeCreateModal("frmSaveAndReloadModal",{title:I("Save and Reload?","formidable"),content:(t=d(e),t.style.padding="var(--gap-md)",t),footer:function(){var e=frmDom.modal.footerButton({text:I("Save and Reload","formidable"),buttonType:"primary"});_(e,function(){var e;(e=document.getElementById("frm_submit_side_top")).classList.contains("frm_submit_ajax")&&e.setAttribute("data-new-addon-installed",!0),e.click()});var t=frmDom.modal.footerButton({text:I("Cancel","formidable"),buttonType:"cancel"});return t.classList.add("dismiss"),frmDom.div({children:[t,e]})}()})}function Oi(e){var t;if(e instanceof Event){var r=document.querySelectorAll(".frm-single-settings .frm-show-box.frmsvg use"),n=Array.from(r).find(function(e){return"#frm_close_icon"===e.getAttribute("href")});if(void 0===n)return;t=n.parentElement}else t=e;var i=t.getBoundingClientRect(),o=document.getElementById("frm_adv_info"),a=o.parentElement.getBoundingClientRect();o.style.top=i.top-a.top+32+"px",o.style.left=i.left-a.left-280+"px"}function Fi(e,t){var r=Wi(e),n=document.getElementById("frm_adv_info"),a=e.className;if("svg"===e.tagName&&(e=e.firstElementChild),"use"===e.tagName&&(a=Bi(e)),a.includes("frm_close_icon"))Vi(n);else{if(Oi(e),jQuery(".frm_code_list a").removeClass("frm_noallow"),r.classList.contains("frm_not_email_to")?jQuery("#frm-insert-fields-box .frm_code_list li:not(.show_frm_not_email_to) a").addClass("frm_noallow"):r.classList.contains("frm_not_email_subject")&&jQuery(".frm_code_list li.hide_frm_not_email_subject a").addClass("frm_noallow"),n.setAttribute("data-fills",r.id),n.style.display="block","use"===e.tagName)if(e.hasAttributeNS("http://www.w3.org/1999/xlink","href"))e.setAttributeNS("http://www.w3.org/1999/xlink","href","#frm_close_icon");else{var l=document.createElementNS("http://www.w3.org/2000/svg","use");l.setAttributeNS("http://www.w3.org/1999/xlink","href","#frm_close_icon"),e.parentNode.replaceChild(l,e)}else e.className=a.replace("frm_more_horiz_solid_icon","frm_close_icon");"nofocus"!==t&&("none"!==r.style.display?r.focus():jQuery(tinymce.get(r.id)).trigger("focus")),function(e){["address","body"].forEach(function(t){!function(e,t){var r,n;r=o.contextualShortcodes[t+"Selector"],n=o.contextualShortcodes[t];var a,l=e.matches(r),s=function(e){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=i(e))){t&&(e=t);var r=0,n=function(){};return{s:n,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,l=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return a=e.done,e},e:function(e){l=!0,o=e},f:function(){try{a||null==t.return||t.return()}finally{if(l)throw o}}}}(n);try{for(s.s();!(a=s.n()).done;){var d,c=a.value,u=null===(d=document.querySelector('#frm-adv-info-tab .frm_code_list [data-code="'+c+'"]'))||void 0===d?void 0:d.closest("li");null==u||u.classList.toggle("frm_hidden",!l)}}catch(e){s.e(e)}finally{s.f()}}(e,t)})}(r)}}function Di(e){return 0===o.contextualShortcodes.length||!function(e){var t=e.querySelector("a");if(!t)return!1;var r=t.dataset.code;return o.contextualShortcodes.address.includes(r)||o.contextualShortcodes.body.includes(r)}(e)||function(e){var t=e.querySelector("a").dataset.code,r=document.getElementById("frm_adv_info").dataset.fills,n=document.getElementById(r),i=o.contextualShortcodes;return i.address.includes(t)?n.matches(i.addressSelector):n.matches(i.bodySelector)}(e)}function Mi(){x||(x=1,window.addEventListener("beforeunload",Ri))}function Pi(){x=0}function Hi(){x=0}function zi(){x=0}function Ri(e){x&&(e.preventDefault(),e.returnValue="")}function Gi(e,t){var r={my:"top",at:"top+"+t,of:window};e.dialog("option","position",r)}function Wi(e){if(e.classList.contains("frm-input-icon"))return e.previousElementSibling;for(var t,r=e.nextElementSibling;null!==r&&("INPUT"!==r.tagName&&"TEXTAREA"!==r.tagName||r.classList.contains("frm-token-input-field"));)r=Wi(r);return r||(r=null===(t=e.closest(".frm-field-formula"))||void 0===t?void 0:t.querySelector(".frm-calc-field")),r}function Ui(e){var t;if(null!==(t=e.nextElementSibling)&&void 0!==t&&t.classList.contains("frm-input-icon"))return e.nextElementSibling;for(var r=e.previousElementSibling;null!==r&&"I"!==r.tagName&&"svg"!==r.tagName;)r=Ui(r);return r}function Vi(e){var t,r,n,i;if((void 0!==e||null!==(e=document.getElementById("frm_adv_info")))&&null===document.getElementById("frm_dyncontent")){for(e.style.display="none",n=document.querySelectorAll(".frm-show-box.frm_close_icon"),t=0;t"+r.data.name+": "+r.data.msg+"

":'

Imported '+r.data.name+"

",e.find(".status").prepend(n),e.find(".status").show(),C.importQueue=jQuery.grep(C.importQueue,function(e){return e!=t}),C.imported++,0===C.importQueue.length?(e.find(".process-count").hide(),e.find(".forms-completed").text(C.imported),e.find(".process-completed").show()):(e.find(".form-current").text(C.imported+1),Zi(e)))})}function eo(e){e.preventDefault();var t=!1,r=jQuery('input[name="frm_export_forms[]"]');jQuery('input[name="frm_export_forms[]"]:checked').val()||(r.closest(".frm-table-box").addClass("frm_blank_field"),t="stop");var n=jQuery('input[name="type[]"]');if(jQuery('input[name="type[]"]:checked').val()||"checkbox"!==n.attr("type")||(n.closest("p").addClass("frm_blank_field"),t="stop"),"stop"===t)return!1;e.stopPropagation(),this.submit()}function to(){var e=jQuery(this).closest(".frm_blank_field");if(void 0!==e){var t=this.name;("type[]"===t&&jQuery('input[name="type[]"]:checked').val()||"frm_export_forms[]"===t&&jQuery(this).val())&&e.removeClass("frm_blank_field")}}function ro(){null!==jQuery(this).val().match(/\.csv$/i)?jQuery(".show_csv").fadeIn():jQuery(".show_csv").fadeOut()}function no(){var e=document.querySelector('select[name="format"]');return e?e.value:""}function io(e){var t,r,n=e.target.value;ao(n),oo.call(e.target),t=n,r=document.getElementById("frm-export-select-all"),"csv"===t?(r.checked=!1,r.disabled=!0):r.disabled=!1}function oo(){var e=jQuery(this),t=e.find(":selected"),r=t.data("support"),n=r.indexOf("|");jQuery('input[name="type[]"]').each(function(){this.checked=!1,r.includes(this.value)?(this.disabled=!1,-1===n&&(this.checked=!0)):this.disabled=!0}),"csv"===e.val()?(jQuery(".csv_opts").show(),jQuery(".xml_opts").hide()):(jQuery(".csv_opts").hide(),jQuery(".xml_opts").show());var i=t.data("count"),o=jQuery('input[name="frm_export_forms[]"]');"single"===i?(o.prop("multiple",!1),o.prop("checked",!1)):(o.prop("multiple",!0),o.prop("disabled",!1)),e.trigger("change")}function ao(e){if(""!==e){var t=document.querySelectorAll(".frm-is-repeater");t.length&&("csv"===e?t.forEach(function(e){e.classList.remove("frm_hidden")}):t.forEach(function(e){e.classList.add("frm_hidden")}),Qo.call(document.querySelector(".frm-auto-search")))}}function lo(){var e=jQuery("select[name=format]").find(":selected").data("count"),t=jQuery('input[name="frm_export_forms[]"]');"single"===e&&this.checked?(t.prop("disabled",!0),this.removeAttribute("disabled")):t.prop("disabled",!1)}function so(){jQuery(".frm_multiselect").hide().each(frmDom.bootstrap.multiselect.init)}function co(e){e.preventDefault(),mo(this,"frm_multiple_addons")}function uo(e){e.preventDefault(),mo(this,"frm_activate_addon")}function fo(e){e.preventDefault(),mo(this,"frm_install_addon")}function mo(e,t){r(1105).toggleAddonState(e,t)}function _o(){go()}function po(e){!function(e,t,r){var n=jQuery("#frm_leave_email_error");n.removeClass("frm_hidden").attr("frm-error",r),jQuery("#frm_leave_email").one("keyup",function(){n.addClass("frm_hidden")})}(0,0,e)}function go(){var e=document.getElementById("frmapi-email-form");jQuery.ajax({dataType:"json",url:e.getAttribute("data-url"),success:function(t){var r=t.renderedHtml;r=r.replace(/]*(formidableforms.css|action=frmpro_css)[^>]*>/gi,""),e.innerHTML=r}})}function yo(e){frmDom.autocomplete.initSelectionAutocomplete(e)}function ho(e){var t=this.parentNode.parentNode,r=t.elements.type.value;e.preventDefault(),this.classList.add("frm_loading_button"),bo(t,r,this)}function vo(e){var t=this.elements.type.value,r=this.querySelector("button");e.preventDefault(),r.classList.add("frm_loading_button"),bo(this,t,r)}function bo(e,t,r){var n=function(e){var t,r,n={},i=e.elements;for(r=0;r .frm-with-line").forEach(function(e){var t=e.nextElementSibling;if(t){var r=t.querySelectorAll(":scope > li.frmbutton"),n=Array.from(r).every(function(e){return e.classList.contains("frm_hidden")});e.classList.toggle("frm_hidden",n)}}),jQuery(this).trigger("frmAfterSearch")}function xo(e,t){return"s"!==t&&"s"!==e[e.length-1]&&(e+"s").includes(t)}function Eo(e){e.stopPropagation()}function ko(e,t){var r=document.createEvent("HTMLEvents");r.initEvent(t,!1,!0),e.dispatchEvent(r)}function Ao(e,t){var r,n=new XMLHttpRequest,i="string"==typeof e?e:Object.keys(e).map(function(t){return encodeURIComponent(t)+"="+encodeURIComponent(e[t])}).join("&");return n.open("post",ajaxurl,!0),n.onreadystatechange=function(){if(n.readyState>3&&200==n.status){r=n.responseText;try{r=JSON.parse(r)}catch(e){}t(r)}},n.setRequestHeader("X-Requested-With","XMLHttpRequest"),n.setRequestHeader("Content-type","application/x-www-form-urlencoded"),n.send(i),n}function So(e,t){e.classList.add("frm-fade"),setTimeout(t,1e3)}function Lo(e){jQuery(e).css("visibility","hidden")}function Io(e){jQuery(e).css("visibility","visible")}function Bo(e,t){return r(4260).initModal(e,t)}function qo(e,t){if("#"===t){var r=document.getElementById(e),n=r.style.display;r.style.display="none"===n?"block":"none"}else e.is(":visible")?e.hide():e.show()}function Co(){window.onbeforeunload=null;var e=jQuery(window);e.off("beforeunload.widgets"),e.off("beforeunload.edit-post")}function No(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=document.getElementById("frm_field_id_"+e);if(null!==t&&"form"===t.dataset.type)if(t=jQuery(t),this.options[this.selectedIndex].value){t.find(".frm-not-set")[0].classList.add("frm_hidden");var r=t.find(".frm-embed-message");r.html(r.data("embedmsg")+this.options[this.selectedIndex].text),t.find(".frm-embed-field-placeholder")[0].classList.remove("frm_hidden")}else t.find(".frm-not-set")[0].classList.remove("frm_hidden"),t.find(".frm-embed-field-placeholder")[0].classList.add("frm_hidden")}function To(){var e=jQuery(this).closest(".frm-single-settings"),t=e.find(".frmjs_product_choices"),r=e.find(".frm_prod_options_heading"),n=this.options[this.selectedIndex].value;t.removeClass("frm_prod_type_single frm_prod_type_user_def"),r.removeClass("frm_prod_user_def"),"single"===n?t.addClass("frm_prod_type_single"):"user_def"===n&&(t.addClass("frm_prod_type_user_def"),r.addClass("frm_prod_user_def"))}function Oo(e){var t=document.getElementById("frm_field_id_"+e);return null!==t&&"product"===t.getAttribute("data-type")}function Fo(){var e=function(e,t){return window.frmCachedSubFields=window.frmCachedSubFields||{},window.frmCachedSubFields[e]=window.frmCachedSubFields[e]||{},window.frmCachedSubFields[e][t]},t=function(e,t,r){window.frmCachedSubFields=window.frmCachedSubFields||{},window.frmCachedSubFields[e]=window.frmCachedSubFields[e]||{},window.frmCachedSubFields[e][t]=r},r=[1,2,3,4,5,6,7,8,9,10,11,12].map(function(e){return"frm"+e}),i=["first","middle","last"];document.addEventListener("change",function(o){o.target.matches(".frm_name_layout_dropdown")&&function(o){var a,l=o.target.value.split("_"),s=o.target.dataset.fieldId,d=document.querySelector("#field_"+s+"_inner_container .frm_combo_inputs_container"),c=(a=l.length,"frm"+parseInt(12/a));i.forEach(function(e){var i,o=d.querySelector('[data-sub-field-name="'+e+'"]');o&&(o.classList.add("frm_hidden"),(i=o.classList).remove.apply(i,n(r)),t(s,e,o))}),l.forEach(function(t){var r=e(s,t);r&&(r.classList.remove("frm_hidden"),r.classList.add(c),d.append(r))}),i.forEach(function(e){var r=document.querySelector(".frm_sub_field_options-"+e+'[data-field-id="'+s+'"]');r&&(r.classList.add("frm_hidden"),t(s,e+"_options",r))}),l.forEach(function(t){var r=e(s,t+"_options");r&&r.classList.remove("frm_hidden")})}(o)},!1)}function Do(e,t){var r,n,i,o=!1,a=!1;(r=t.newOption?(new DOMParser).parseFromString(t.newOption,"text/html").body.childNodes[0]:t).querySelectorAll("svg").forEach(function(e,t){(n=e.getElementsByTagNameNS("http://www.w3.org/2000/svg","use")[0])&&("#frm_drag_icon"===(i=Bi(n))&&(o=!0),"#frm_save_icon"===i&&(a=!0))}),o||r.prepend(v.drag.cloneNode(!0)),r.querySelector("[id^=field_key_".concat(e,"-]"))&&!a&&r.querySelector("[id^=field_key_".concat(e,"-]")).after(v.save.cloneNode(!0)),t.newOption&&(t.newOption=r)}function Mo(){var e=document.getElementById("frm_leave_email").value.trim();if(""!==e)if(!1!==/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/i.test(e)){var t=jQuery("#frmapi-email-form").find("form"),r=t.find('[type="email"]').not(".frm_verify");if(r.length){if(document.getElementById("frm_empty_inbox")){document.getElementById("frm-add-my-email-address").remove();var n=document.getElementById("frm_leave_email_wrapper");if(n){n.classList.add("frm_hidden");var i=c({className:"frm-wait frm_spinner"});i.style.visibility="visible",i.style.float="none",i.style.width="unset",n.parentElement.insertBefore(i,n.nextElementSibling)}}r.val(e),jQuery.ajax({type:"POST",url:t.attr("action"),data:t.serialize()+"&action=frm_forms_preview"}).done(function(e){if(jQuery(e).find(".frm_message").text().trim().includes("Thanks!")){var t=document.getElementById("frmapi-email-form").parentElement.querySelector(".frm_spinner");t&&t.remove(),wp.hooks.applyFilters("frm_thank_you_on_signup",!0)&&document.getElementById("frm_leave_email_wrapper").replaceWith(c(I("Thank you for signing up!","formidable")))}else po("invalid")})}}else po("invalid");else po("empty")}function Po(e){if(O||e.stopPropagation(),!(e.target.classList.contains("frm-show-box")||e.target.parentElement&&e.target.parentElement.classList.contains("frm-show-box"))){var t=document.getElementById("frm_adv_info");t&&(t.dataset.fills===e.target.id&&void 0!==e.target.id||e.target.closest("#frm_adv_info")||"none"===t.style.display||Vi(t))}}return{init:function(){var e,t,i,o,a,l,s;!function(){jQuery(document).on("click","#frm-add-my-email-address",function(e){e.preventDefault(),Mo()});var e=document.getElementById("frm_empty_inbox"),t=document.getElementById("frm_leave_email");if(e&&t){var r=document.getElementById("frm-leave-email-modal");r.classList.remove("frm_hidden"),r.querySelector(".frm_modal_footer").classList.add("frm_hidden"),t.addEventListener("keyup",function(e){if("Enter"===e.key){var t=document.getElementById("frm-add-my-email-address");t&&t.click()}})}}(),t=document.querySelector(".frm-admin-footer-links"),i=null!==(e=document.querySelector(".frm_page_container"))&&void 0!==e?e:document.getElementById("wpbody-content"),t&&i&&(i.append(t),t.classList.remove("frm_hidden")),document.addEventListener("show.bs.dropdown",function(){z()}),C={},jQuery(".wp-admin").on("click",function(e){var t=jQuery(e.target),r=jQuery(".dropdown.open");!r.length||t.hasClass("dropdown")||t.closest(".dropdown").length||r.removeClass("open")}),jQuery("#frm_bs_dropdown:not(.open) a").on("click",At),void 0===E&&(E=jQuery(document.getElementById("form_id")).val()),document.querySelectorAll(".frm-warning-dismiss").forEach(function(e){_(e,St)}),frmAdminBuild.inboxBannerInit(),b.length>0?frmAdminBuild.buildInit():null!==document.getElementById("frm_notification_settings")?frmAdminBuild.settingsInit():null!==document.getElementById("frm_styling_form")?frmAdminBuild.styleInit():null!==document.getElementById("form_global_settings")?frmAdminBuild.globalSettingsInit():null!==document.getElementById("frm_export_xml")?frmAdminBuild.exportInit():null!==document.querySelector(".frm-inbox-wrapper")?frmAdminBuild.inboxInit():null!==document.getElementById("frm-welcome")?frmAdminBuild.solutionInit():(function(){if(document.body.classList.contains("frm-admin-page-entries")){var e=document.getElementById("screen-options-wrap");if(e){var t=d({className:"frm_warning_style",text:I("Only 10 columns can be selected at a time.","formidable")});t.style.margin=0;var r=e.querySelector("legend");r.parentNode.insertBefore(t,r.nextElementSibling);var n=Array.from(e.querySelectorAll('input[type="checkbox"]')),i=function(){n.reduce(function(e,t){return t.checked?e+1:e},0)>=10?(t.classList.remove("frm_hidden"),n.forEach(function(e){e.checked||(e.parentNode.classList.add("frm_noallow"),e.disabled=!0)})):t.classList.add("frm_hidden")};i(),n.forEach(function(e){e.addEventListener("change",function(e){e.target.checked?i():(t.classList.add("frm_hidden"),n.forEach(function(e){e.parentNode.classList.remove("frm_noallow"),e.disabled=!1}))})})}}}(),yo(),jQuery("[data-frmprint]").on("click",function(){return window.print(),!1})),jQuery(document).on("change","select[data-toggleclass], input[data-toggleclass]",Qi),function(){function e(e){var t=e.options[e.selectedIndex];e.querySelectorAll("option[data-dependency]:not([data-dependency-skip])").forEach(function(e){var r=document.querySelector(e.dataset.dependency);null==r||r.classList.toggle("frm_hidden",t!==e)})}document.querySelectorAll("select.frm_select_with_dependency").forEach(e),frmDom.util.documentOn("change","select.frm_select_with_dependency",function(t){return e(t.target)})}(),(jQuery(document.getElementById("frm_adv_info")).length>0||jQuery(".frm_field_list").length>0)&&frmAdminBuild.panelInit(),o=jQuery(".wrap, .frm_wrap"),a=document.getElementById("frm_confirm_modal"),l=!1,s=!1,jQuery(a).on("click","[data-deletefield]",Qr),jQuery(a).on("click","[data-removeid]",R),jQuery(a).on("click","[data-trashtemplate]",wo),o.on("click",".frm_remove_tag, .frm_remove_form_action",R),o.on("click","a[data-frmverify]",F),o.on("click","a[data-frmtoggle]",P),o.on("click","a[data-frmhide], a[data-frmshow]",H),o.on("change","input[data-frmhide], input[data-frmshow]",H),o.on("click",".widget-top,a.widget-action",G),o.on("mouseenter.frm",".frm_bstooltip, .frm_help",function(){jQuery(this).off("mouseenter.frm"),function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=e;(r.hasAttribute("data-toggle")||r.hasAttribute("data-bs-toggle"))&&(r.parentElement.setAttribute("title",r.getAttribute("title")),r.removeAttribute("title"),r.classList.remove("frm_bstooltip"),r.parentElement.classList.add("frm_bstooltip"),r=r.parentElement),jQuery(r).tooltip(),t&&(z(),jQuery(r).tooltip("show"))}(this,!0)}),jQuery(document).on("click","#doaction, #doaction2",function(e){var t="doaction"===this.id?"top":"bottom",r=document.getElementById("bulk-action-selector-"+t),n=document.getElementById("confirm-bulk-delete-"+t);if(null!==r&&null!==n){if(l=this,!s&&"bulk_delete"===r.value)return e.preventDefault(),D(n),!1}else l=!1}),jQuery(document).on("click","#frm-confirmed-click",function(e){if(!1!==l&&!e.target.classList.contains("frm-btn-inactive"))return"confirm-bulk-delete"===this.getAttribute("href")?(e.preventDefault(),s=!0,l.click(),!1):void 0}),r(4260).initUpgradeModal(),frmDom.util.documentOn("click","[data-modal-title]",Kn);var c=jQuery(document.getElementById("frm_shortcodediv"));c.length>0&&(jQuery("a.edit-frm_shortcode").on("click",function(){return c.is(":hidden")&&(c.slideDown("fast"),this.style.display="none"),!1}),jQuery(".cancel-frm_shortcode","#frm_shortcodediv").on("click",function(){return c.slideUp("fast"),c.siblings("a.edit-frm_shortcode").show(),!1})),jQuery(document).on("click","#frm-nav-tabs a",W),jQuery(".post-type-frm_display .frm-nav-tabs a, .frm-category-tabs a").on("click",function(){var e=this.classList.contains("frm_show_upgrade_tab");if(!this.classList.contains("frm_noallow")||e)return e&&Jn(this),U(this),!1}),U(jQuery(".starttab a"),"auto"),jQuery(document).on("click","#frm-fid-search-menu a",function(){var e=this.id.replace("fid-","");return jQuery('select[name="fid"]').val(e),zn(document.getElementById("posts-filter")),!1}),jQuery(".frm_select_box").on("click focus",function(){this.select()}),jQuery(document).on("input search change",".frm-auto-search:not(#frm-form-templates-page #template-search-input)",Qo),jQuery(document).on("focusin click",".frm-auto-search",Eo);var u=jQuery(".frm-auto-search");""!==u.val()&&u.trigger("keyup"),FrmFormsConnect.init(),jQuery(document).on("click",".frm-install-addon",fo),jQuery(document).on("click",".frm-activate-addon",uo),jQuery(document).on("click",".frm-solution-multiple",co),jQuery("button, input[type=submit]").on("click",Co),document.addEventListener("click",function(e){if("LABEL"===e.target.nodeName){var t=e.target.getAttribute("for");if(t){var r=document.getElementById(t);if(r&&r.nextElementSibling){var n=r.nextElementSibling.querySelector("button.dropdown-toggle.multiselect");n&&setTimeout(function(){return n.click()},0)}}}}),frmAdminBuild.hooks.addFilter("frm_before_embed_modal",function(e,t){var r,n,i=t.element;if("form"!==t.type)return e;var o=i.closest("tr");if(o)r=parseInt(o.querySelector(".column-id").textContent),n=o.querySelector(".column-form_key").textContent;else{r=document.getElementById("form_id").value;var a=document.getElementById("frm_form_key");if(a)n=a.value;else{var l=document.getElementById("frm-previewDrop");l&&(n=l.nextElementSibling.querySelector(".dropdown-item a").getAttribute("href").split("form=")[1])}}return[r,n]}),document.querySelectorAll("#frm-show-fields > li, .frm_grid_container li").forEach(function(e,t){e.addEventListener("click",function(){var e,t,r;t=(null===(e=this.querySelector("li"))||void 0===e?void 0:e.dataset.fid)||this.dataset.fid,(r=document.querySelectorAll("[id^=frm_delete_field_".concat(t,"-]"))).length<2||n(r).slice(1).forEach(function(e,r){e.classList.contains("frm_other_option")||Do(t,e)})})});var f=document.getElementById("frm_small_screen_proceed_button");f&&_(f,function(){var e;null===(e=document.getElementById("frm_small_device_message_container"))||void 0===e||e.remove(),p("small_screen_proceed",new FormData)});var m=document.getElementById("frm_sale_banner"),g=null==m?void 0:m.querySelector(".dismiss");m&&(_(m,function(e){e.target.closest(".dismiss")||(window.location.href=m.getAttribute("data-url"))}),g&&_(g,function(){m.remove();var e=new FormData;p("sale_banner_dismiss",e)}))},buildInit:function(){var e,t,r;jQuery("#frm_builder_page").on("mouseup","*:not(.frm-show-box)",Po),g=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100;return frmDom.util.debounce(e,t)}(ie,10),y=document.getElementById("post-body-content"),h=jQuery(y),jQuery(".frm_field_loading").length&&Ee(jQuery(".frm_field_loading").first().attr("id")),V("ul.frm_sorting"),document.querySelectorAll(".field_type_list > li:not(.frm_show_upgrade)").forEach(X),jQuery("ul.field_type_list, .field_type_list li, ul.frm_code_list, .frm_code_list li, .frm_code_list li a, #frm_adv_info #category-tabs li, #frm_adv_info #category-tabs li a").disableSelection(),jQuery(".frm_submit_ajax").on("click",Hn),jQuery(".frm_submit_no_ajax").on("click",Gn),Un(),jQuery("a.edit-form-status").on("click",Sn),jQuery(".cancel-form-status").on("click",Ln),jQuery(".save-form-status").on("click",function(){var e=jQuery(document.getElementById("form_change_status")).val();return jQuery('input[name="new_status"]').val(e),jQuery(document.getElementById("form-status-display")).html(e),jQuery(".cancel-form-status").trigger("click"),!1}),jQuery(".frm_form_builder form").first().on("submit",function(){jQuery(".inplace_field").trigger("blur")}),so(),Fr(),e=jQuery(j),t=document.getElementById("frm_form_editor_container"),e.on("click",".frm_add_logic_row",Ar),e.on("click",".frm_add_watch_lookup_row",Lr),e.on("change",".frm_get_values_form",Tr),e.on("change",".frm_logic_field_opts",wn),e.on("frm-multiselect-changed",'select[name^="field_options[admin_only_"]',In),jQuery(document.getElementById("frm-insert-fields")).on("click",".frm_add_field",Ae),b.on("click",".frm_clone_field",Be),e.on("blur",'input[id^="frm_calc"]',Je),e.on("change","input.frm_format_opt, input.frm_max_length_opt",lt),e.on("change click","[data-changeme]",ot),e.on("click","input.frm_req_field",st),e.on("click",".frm_mark_unique",ct),e.on("change",".frm_repeat_format",Jr),e.on("change",".frm_repeat_limit",Xr),e.on("change",".frm_js_checkbox_limit",Yr),e.on("input",'input[name^="field_options[add_label_"]',function(){Zr(this,"add")}),e.on("input",'input[name^="field_options[remove_label_"]',function(){Zr(this,"remove")}),e.on("change",'select[name^="field_options[data_type_"]',Or),jQuery(t).on("click",".frm-collapse-page",Dr),jQuery(t).on("click",".frm-collapse-section",Hr),e.on("click",".frm-single-settings h3, .frm-single-settings h4.frm-collapsible",zr),e.on("keydown",".frm-single-settings h3, .frm-single-settings h4.frm-collapsible",function(e){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),zr.call(this,e))}),jQuery(t).on("show.bs.dropdown hide.bs.dropdown",He),e.on("click",".frm_toggle_sep_values",yt),e.on("click",".frm_toggle_image_options",ht),e.on("click",".frm_remove_image_option",Et),e.on("click",".frm_choose_image_box",xt),e.on("change",".frm_hide_image_text",Qt),e.on("change",".frm_field_options_image_size",jt),e.on("click",".frm_multiselect_opt",kt),b.on("mousedown","input, textarea, select",Lt),b.on("click","input[type=radio], input[type=checkbox]",Lt),b.on("click",".frm_delete_field",Nt),b.on("click",".frm_select_field",Tt),jQuery(document).on("click",".frm_delete_field_group",Ot),jQuery(document).on("click",".frm_clone_field_group",Ft),jQuery(document).on("click","#frm_field_group_controls > span:first-child",Dt),jQuery(document).on("click",".frm-row-layout-option",Yt),jQuery(document).on("click",".frm-merge-fields-into-row .frm-row-layout-option",Zt),jQuery(document).on("click",".frm-custom-field-group-layout",tr),jQuery(document).on("click",".frm-merge-fields-into-row .frm-custom-field-group-layout",nr),jQuery(document).on("click",".frm-break-field-group",sr),b.on("click","#frm_field_group_popup .frm_grid_container input",dr),jQuery(document).on("click",".frm-cancel-custom-field-group-layout",cr),jQuery(document).on("click",".frm-save-custom-field-group-layout",fr),b.on("click","ul.frm_sorting",mr),jQuery(document).on("click",".frm-merge-fields-into-row",br),jQuery(document).on("click",".frm-delete-field-groups",wr),b.on("click",'.frm-field-action-icons [data-toggle="dropdown"]',function(){this.closest("li.form-field").classList.add("frm-field-settings-open"),jQuery(document).on("click","#frm_builder_page",Te)}),b.on("mousemove","ul.frm_sorting",Oe),b.on("show.bs.dropdown",".frm-field-action-icons",Me),jQuery(document).on("show.bs.dropdown","#frm_field_group_controls",Pe),e.on("click",".frm_single_option a[data-removeid]",It),e.on("mousedown",".frm_single_option input[type=radio]",Bt),e.on("focusin",".frm_single_option input[type=text]",qt),e.on("click",".frm_add_opt",_t),e.on("change",".frm_single_option input",tn),e.on("change",".frm_image_id",tn),e.on("change",".frm_toggle_mult_sel",pt),b.on("click",".frm_primary_label",Gr),b.on("click",".frm_description",Wr),b.on("click","li.ui-state-default:not(.frm_noallow)",Vr),b.on("dblclick","li.ui-state-default",Kr),e.on("change",".frm_tax_form_select",en),e.on("change","select.conf_field",ut),e.on("change",".frm_get_field_selection",Qn),e.on("click",".frm-show-inline-modal",Cn),e.on("keydown",".frm-show-inline-modal",function(e){var t=e.key;"Enter"!==t&&" "!==t||(e.preventDefault(),Cn.call(this,e))}),e.on("click",".frm-inline-modal .dismiss",Nn),jQuery(document).on("change","[data-frmchange]",On),document.addEventListener("click",Tn),e.on("change",".frm_include_extras_field",et),e.on("change",'select[name^="field_options[form_select_"]',No),jQuery(document).on("submit","#frm_js_build_form",Pi),jQuery(document).on("change","#frm_builder_page input:not(.frm-search-input):not(.frm-custom-grid-size-input), #frm_builder_page select, #frm_builder_page textarea",Mi),nt(),jQuery(document).on("change",".frmjs_prod_data_type_opt",To),jQuery(document).on("focus",'.frm-single-settings ul input[type="text"][name^="field_options[options_"]',Br),jQuery(document).on("blur",'.frm-single-settings ul input[type="text"][name^="field_options[options_"]',Cr),frmDom.util.documentOn("click",".frm-show-field-settings",Vr),frmDom.util.documentOn("change","select.frm_format_dropdown, select.frm_phone_type_dropdown",$r),e.on("keydown",'.frm_single_option input[name^="field_options["], .frm_single_option input[name^="rows_"]',function(e){"Enter"===e.key&&function(e){var t=e.closest(".frm_single_option").parentElement.querySelectorAll('.frm_single_option input[name^="field_options[" ], .frm_single_option input[name^="rows_"]'),r=Array.from(t),n=r.indexOf(e);if(!(n<0)){var i=r.slice(n+1).find(function(e){return null!==e.offsetParent});if(i){i.focus();var o=i.value.length;i.setSelectionRange(o,o)}}}(e.currentTarget)}),!1!==(r=Bo("#frm-bulk-modal","700px"))&&(jQuery(".frm-insert-preset").on("click",mt),jQuery(j).on("click","a.frm-bulk-edit-link",function(e){e.preventDefault();var t,n,i,o,a,l="",s=jQuery(this).closest("[data-fid]").data("fid"),d=yn(s),c=Oo(s);if(o=document.getElementById("frm_field_"+s+"_opts")){for(a=o.getElementsByTagName("li"),document.getElementById("bulk-field-id").value=s,t=0;t=a.length-1&&(document.getElementById("frm_bulk_options").value=l);return r.dialog("open"),!1}}),jQuery("#frm-update-bulk-opts").on("click",function(){var e=document.getElementById("bulk-field-id").value;document.getElementById("bulk-option-type").value||(this.classList.add("frm_loading_button"),frmAdminBuild.updateOpts(e,document.getElementById("frm_bulk_options").value,r),Mi())})),qn(),document.addEventListener("frm_added_field",qn),Ie(),Fo(),kn(),frmDom.util.documentOn("change",".frm_show_password_setting_input",function(e){var t=e.target.getAttribute("data-fid"),r=document.getElementById("frm_field_id_"+t);r&&r.classList.toggle("frm_disabled_show_password",!e.target.checked)}),document.addEventListener("scroll",Oi,!0),document.addEventListener("change",Ni),document.querySelector(".frm_form_builder").addEventListener("mousedown",function(e){e.shiftKey&&e.preventDefault()}),wp.hooks.addAction("frmShowedFieldSettings","formidableAdmin",function(e,t){t.querySelectorAll(".frm-collapse-me").forEach(Rr)},9999)},settingsInit:function(){var e,t,r,n,i=jQuery(document.getElementById("frm_notification_settings"));i.on("click",".frm_email_buttons",oi),i.on("click",".frm_remove_field",ai),i.on("change",".frm_to_row, .frm_from_row",li),i.on("change",".frm_tax_selector",ji),i.on("change","select.frm_single_post_field",mi),i.on("change","select.frm_toggle_post_content",_i),i.on("change","select.frm_dyncontent_opt",pi),i.on("change",".frm_post_type",gi),i.on("click",".frm_add_postmeta_row",vi),i.on("click",".frm_add_posttax_row",hi),i.on("click",".frm_toggle_cf_opts",wi),i.on("click",".frm_duplicate_form_action",Zn),jQuery(".frm_actions_list").on("click",".frm_active_action",ti),jQuery("#frm-show-groups, #frm-hide-groups").on("click",ri),so(),jQuery("ul.frm_actions_list li").each(function(){si(jQuery(this).children("a").data("actiontype"));var e=jQuery(this).find("i");"none"!==e.css("background-image")&&e.addClass("frm-inverse")}),jQuery(".frm_submit_settings_btn").on("click",xi),Un(),(e=jQuery(".frm_form_settings")).on("click",".frm_add_form_logic",fi),e.on("click",".frm_already_used",ui),document.addEventListener("click",function(e){var t=e.target;t.closest(".frm_image_preview_wrapper")&&(t.closest(".frm_choose_image_box")?xt.bind(t)(e):t.closest(".frm_remove_image_option")&&Et.bind(t)(e))}),e.on("mouseup","*:not(.frm-show-box)",Po),jQuery(document.getElementById("no_save")).on("change",function(){this.checked&&!0!==confirm(o.no_save_warning)&&jQuery(this).attr("checked",!1)}),jQuery('select[name="options[edit_action]"]').on("change",Yn),t=document.getElementById("logged_in"),jQuery(t).on("change",function(){this.checked?Io(".hide_logged_in"):Lo(".hide_logged_in")}),r=jQuery(document.getElementById("frm_cookie_expiration")),jQuery(document.getElementById("frm_single_entry_type")).on("change",function(){"cookie"===this.value?r.fadeIn("slow"):r.fadeOut("slow")});var a=document.getElementById("single_entry");jQuery(a).on("change",function(){this.checked?Io(".hide_single_entry"):Lo(".hide_single_entry"),this.checked&&"cookie"===jQuery(document.getElementById("frm_single_entry_type")).val()?r.fadeIn("slow"):r.fadeOut("slow")}),jQuery(".hide_save_draft").hide();var l=jQuery(document.getElementById("save_draft"));l.on("change",function(){this.checked?jQuery(".hide_save_draft").fadeIn("slow"):jQuery(".hide_save_draft").fadeOut("slow")}),Rn(l),n=document.getElementById("editable"),jQuery(n).on("change",function(){this.checked?(jQuery(".hide_editable").fadeIn("slow"),Rn(document.getElementById("edit_action"))):(jQuery(".hide_editable").fadeOut("slow"),jQuery(".edit_action_message_box").fadeOut("slow"))}),jQuery(document).on("change","#protect_files",function(){this.checked?jQuery(".hide_protect_files").fadeIn("slow"):jQuery(".hide_protect_files").fadeOut("slow")}),jQuery(document).on("frm-multiselect-changed","#protect_files_role",In),jQuery(document).on("submit",".frm_form_settings",Hi),jQuery(document).on("change","#form_settings_page input:not(.frm-search-input), #form_settings_page select, #form_settings_page textarea",Mi),yo(),jQuery(document).on("frm-action-loaded",Ki),frmDom.util.documentOn("change",'.frm_on_submit_type input[type="radio"]',function(e){if(e.target.checked){var t=e.target.closest(".frm_form_action_settings");t.querySelectorAll(".frm_on_submit_dependent_setting:not(.frm_hidden)").forEach(function(e){e.classList.add("frm_hidden")}),t.querySelectorAll(".frm_on_submit_dependent_setting[data-show-if-"+e.target.value+"]").forEach(function(e){e.classList.remove("frm_hidden")}),t.setAttribute("data-on-submit-type",e.target.value)}}),wp.hooks.addAction("frm_reset_fields_updated","formidableAdmin",zi)},panelInit:function(){var e,t,r,n;jQuery(".frm_wrap, #postbox-container-1").on("click",".frm_insert_code",Ei),jQuery(document).on("change",".frm_insert_val",function(){ki(jQuery(this).data("target"),jQuery(this).val()),jQuery(this).val("")}),jQuery(document).on("click change",'[name="frm-id-key-condition"]',Li),jQuery(document).on("keyup change",".frm-build-logic",Ii),Xn(),jQuery(document).on("frmElementAdded",function(e,t){Xn(t)}),jQuery(document).on("mousedown",".frm-show-box",Ci),t=document.getElementById("form_settings_page"),r=document.body.classList.contains("post-type-frm_display"),n=document.getElementById("frm_insert_fields_tab"),(null!==t||r||O)&&jQuery(document).on("focusin","form input, form textarea",function(e){var i,o,a,l;if(e.stopPropagation(),qi(this),jQuery(this).is(":not(:submit, input[type=button], .frm-search-input, input[type=checkbox])")){if(jQuery(e.target).closest("#frm_adv_info").length)return;if(null!==t||O)i=jQuery("#frm_html_tab"),jQuery(this).closest("#html_settings").length>0?(i.show(),i.siblings().hide(),jQuery("#frm_html_tab a").trigger("click"),void 0===(l=this.id)||l.includes("-search-input")||(jQuery("#frm-adv-info-tab").attr("data-fills",l.trim()),this.classList.contains("field_custom_html")&&(l="field_custom_html"),a=["after_html","before_html","submit_html","field_custom_html"],jQuery.inArray(l,a)>=0&&(jQuery(".frm_code_list li:not(.show_"+l+")").addClass("frm_hidden"),jQuery(".frm_code_list li.show_"+l).removeClass("frm_hidden")))):((o=jQuery(".frm-category-tabs li"))[0]&&(o[0].style.display=""),n.click(),i.hide(),i.siblings().show());else if(r){var s=new CustomEvent("frm_legacy_views_handle_field_focus");s.frmData={idAttrValue:this.id},document.dispatchEvent(s)}}}),jQuery(".frm_wrap, #postbox-container-1").on("mousedown","#frm_adv_info a, .frm_field_list a",function(e){e.preventDefault()}),(e=jQuery("#frm_adv_info")).on("click",".subsubsub a.frmids",function(e){$i("frmids",e)}),e.on("click",".subsubsub a.frmkeys",function(e){$i("frmkeys",e)})},inboxInit:function(){var e;jQuery(".frm_inbox_dismiss").on("click",function(e){var t=this.parentNode.parentNode,r=t.getAttribute("data-message"),n=this.getAttribute("href"),i=t.cloneNode(!0),o=document.querySelector(".frm-dismissed-inbox-messages");if("free_templates"!==r||this.classList.contains("frm_inbox_dismiss")){e.preventDefault();var a={action:"frm_inbox_dismiss",key:r,nonce:frmGlobal.nonce},l="frm_inbox_slide_in"===t.id;l&&(t.classList.remove("s11-fadein"),t.classList.add("s11-fadeout"),t.addEventListener("animationend",function(){return t.remove()},{once:!0})),Ao(a,function(){if(!l)return"#"!==n?(window.location=n,!0):void So(t,function(){var e;null!==o&&(i.classList.remove("frm-fade"),null===(e=i.querySelector(".frm-inbox-message-heading .frm_inbox_dismiss"))||void 0===e||e.remove(),o.append(i)),1===t.parentNode.querySelectorAll(".frm-inbox-message-container").length&&(document.getElementById("frm_empty_inbox").classList.remove("frm_hidden"),t.parentNode.closest(".frm-active").classList.add("frm-empty-inbox"),_o()),t.remove()})})}}),!1===(null===(e=document.getElementById("frm_empty_inbox"))||void 0===e?void 0:e.classList.contains("frm_hidden"))&&_o()},solutionInit:function(){jQuery(document).on("submit","#frm-new-template",vo)},styleInit:function(){var e=jQuery(".frm_image_preview_wrapper");e.on("click",".frm_choose_image_box",xt),e.on("click",".frm_remove_image_option",Et),wp.hooks.doAction("frm_style_editor_init")},customCSSInit:function(){console.warn("Calling frmAdminBuild.customCSSInit is deprecated.")},globalSettingsInit:function(){var e;jQuery(document).on("click","[data-frmuninstall]",Ji),so(),null!==(e=document.getElementById("licenses_settings"))&&jQuery(e).on("click",".edd_frm_save_license",Xi),jQuery(document).on("click","#frm-new-template button",ho),jQuery("#frm-dismissable-cta .dismiss").on("click",function(e){e.preventDefault(),jQuery.post(ajaxurl,{action:"frm_lite_settings_upgrade",nonce:frmGlobal.nonce}),jQuery(".settings-lite-cta").remove()});var t=document.getElementById("frm_re_type");t&&t.addEventListener("change",jo),document.querySelector(".frm_captchas").addEventListener("change",function(e){var t,r=null===(t=document.querySelector('.frm_captchas input[checked="checked"]'))||void 0===t?void 0:t.value,n=e.target.value!==r;document.querySelector(".captcha_settings .frm_note_style").classList.toggle("frm_hidden",!n)}),frmDom.util.documentOn("submit",".frm_settings_form",function(){return x=0});var r=document.getElementById("manage_styles_settings");r&&r.addEventListener("change",function(e){var t=e.target;"SELECT"===t.nodeName&&t.dataset.name&&!t.getAttribute("name")&&t.setAttribute("name",t.dataset.name)});var n=document.getElementById("payments_settings"),i=null==n?void 0:n.querySelectorAll('[name="frm_payment_section"]');i&&i.forEach(function(e){e.addEventListener("change",function(){if(e.checked){var t=n.querySelector('label[for="'.concat(e.id,'"]'));t&&t.setAttribute("aria-selected","true"),i.forEach(function(t){if(t!==e){var r=n.querySelector('label[for="'.concat(t.id,'"]'));r&&r.setAttribute("aria-selected","false")}})}})})},exportInit:function(){jQuery(".frm_form_importer").on("submit",Yi),jQuery(document.getElementById("frm_export_xml")).on("submit",eo),jQuery("#frm_export_xml input, #frm_export_xml select").on("change",to),jQuery('input[name="frm_import_file"]').on("change",ro),document.querySelector('select[name="format"]').addEventListener("change",io),jQuery('input[name="frm_export_forms[]"]').on("click",lo),so(),jQuery(".frm-feature-banner .dismiss").on("click",function(e){e.preventDefault(),jQuery.post(ajaxurl,{action:"frm_dismiss_migrator",plugin:this.id,nonce:frmGlobal.nonce}),this.parentElement.remove()}),ao(no()),document.querySelector("#frm-export-select-all").addEventListener("change",function(e){document.querySelectorAll('[name="frm_export_forms[]"]').forEach(function(t){return t.checked=e.target.checked})})},inboxBannerInit:function(){var e=document.getElementById("frm_banner");if(e){var t=e.querySelector(".frm-banner-dismiss");document.addEventListener("click",function(r){r.target===t&&Ao({action:"frm_inbox_dismiss",key:e.dataset.key,nonce:frmGlobal.nonce},function(){jQuery(e).fadeOut(400,function(){e.remove()})})})}},updateOpts:function(e,t,r){var n=yn(e),i=Oo(e)?"frm_bulk_products":"frm_import_options";jQuery.ajax({type:"POST",url:ajaxurl,data:{action:i,field_id:e,opts:t,separate:n,nonce:frmGlobal.nonce},success:function(t){document.getElementById("frm_field_"+e+"_opts").innerHTML=t,wp.hooks.doAction("frm_after_bulk_edit_opts",e),on(e),void 0!==r&&(r.dialog("close"),document.getElementById("frm-update-bulk-opts").classList.remove("frm_loading_button"))}})},triggerRemoveLogic:function(e,t){jQuery("#frm_logic_"+e+"_"+t+" .frm_remove_tag").trigger("click")},downloadXML:function(e,t,r){var n=ajaxurl+"?action=frm_"+e+"_xml&ids="+t;null!==r&&(n=n+"&is_template="+r),location.href=n},hooks:{applyFilters:function(e){for(var t,r=arguments.length,n=new Array(r>1?r-1:0),i=1;i1?r-1:0),i=1;i1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(r){var n=E,i=0;"summary"===e&&(i=b.children('li[data-type="break"]').length>0?1:0),jQuery.ajax({type:"POST",url:ajaxurl,data:Object.assign(_e(e,0,n,i),{field_options:t}),success:function(t){r(t),setTimeout(function(){En(),Ue(t,!0);var r=ye(t);r&&wp.hooks.doAction("frm_after_field_added_in_form_builder",{field:t,fieldId:r,fieldType:e,form_id:n})},10)},error:ve})})},confirmLinkClick:D,handleInsertFieldByDraggingResponse:ge,handleAddFieldClickResponse:Le,syncLayoutClasses:ae,moveFieldSettings:ii,maybeCollapseSettings:zr}},window.frmAdminBuild=frmAdminBuildJS(),jQuery(document).ready(function(){var e;frmAdminBuild.init(),document.querySelectorAll(".frm-dropdown-menu").forEach(function(e){e.classList.add("dropdown-menu");var t,r,n=e.querySelector(".frm-dropdown-toggle");n&&(n.hasAttribute("role")||n.setAttribute("role","button"),n.hasAttribute("tabindex")||n.setAttribute("tabindex",0)),"UL"===e.tagName&&(r=(r=(r=(r=(r=(r=(t=e).outerHTML).replace("
    ","")).replaceAll("
  • ",'
  • ",""),t.outerHTML=r)}),null===(e=document.querySelector(".preview.dropdown .frm-dropdown-toggle"))||void 0===e||e.setAttribute("data-bs-toggle","dropdown"),document.querySelectorAll("[data-toggle]").forEach(function(e){return e.setAttribute("data-bs-toggle",e.getAttribute("data-toggle"))})}),window.frm_show_div=function(e,t,r,n){t==r?jQuery(n+e).fadeIn("slow").css("visibility","visible"):jQuery(n+e).fadeOut("slow")},window.frmCheckAll=function(e,t){jQuery('input[name^="'+t+'"]').prop("checked",!!e)},window.frmCheckAllLevel=function(e,t,r){jQuery(".frm_catlevel_"+r).children(".frm_checkbox").children("label").children('input[name^="'+t+'"]').prop("checked",!!e)},window.frmGetFieldValues=function(e,t,r,n,i,o){e&&jQuery.ajax({type:"POST",url:ajaxurl,data:"action=frm_get_field_values¤t_field="+t+"&field_id="+e+"&name="+i+"&t="+n+"&form_action="+jQuery('input[name="frm_action"]').val()+"&nonce="+frmGlobal.nonce,success:function(e){document.getElementById("frm_show_selected_values_"+t+"_"+r).innerHTML=e,"function"==typeof o&&o()}})},window.frmImportCsv=function(e){var t="";"undefined"!=typeof __FRMURLVARS&&(t=__FRMURLVARS),jQuery.ajax({type:"POST",url:ajaxurl,data:"action=frm_import_csv&nonce="+frmGlobal.nonce+"&frm_skip_cookie=1"+t,success:function(t){var r=jQuery(".frm_admin_progress_bar").attr("aria-valuemax"),n=r-t,i=n/r*100;jQuery(".frm_admin_progress_bar").css("width",i+"%").attr("aria-valuenow",n),parseInt(t,10)>0?(jQuery(".frm_csv_remaining").html(t),frmImportCsv(e)):(jQuery(document.getElementById("frm_import_message")).html(frm_admin_js.import_complete),setTimeout(function(){location.href="?page=formidable-entries&frm_action=list&form="+e+"&import-message=1"},2e3))}})}})(); \ No newline at end of file +(()=>{var e={65:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(8793),o=n(1323);function i(e){var t=(0,r.A)(e);return function(e){return(0,o.A)(t,e)}}},1323:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r={"!":function(e){return!e},"*":function(e,t){return e*t},"/":function(e,t){return e/t},"%":function(e,t){return e%t},"+":function(e,t){return e+t},"-":function(e,t){return e-t},"<":function(e,t){return e":function(e,t){return e>t},">=":function(e,t){return e>=t},"==":function(e,t){return e===t},"!=":function(e,t){return e!==t},"&&":function(e,t){return e&&t},"||":function(e,t){return e||t},"?:":function(e,t,n){if(e)throw t;return n}};function o(e,t){var n,o,i,a,l,s,c=[];for(n=0;n{"use strict";n.d(t,{A:()=>o});var r=n(65);function o(e){var t=(0,r.A)(e);return function(e){return+t({n:e})}}},8793:(e,t,n)=>{"use strict";var r,o,i,a;function l(e){for(var t,n,l,s,c=[],d=[];t=e.match(a);){for(n=t[0],(l=e.substr(0,t.index).trim())&&c.push(l);s=d.pop();){if(i[n]){if(i[n][0]===s){n=i[n][1]||n;break}}else if(o.indexOf(s)>=0||r[s]l}),r={"(":9,"!":8,"*":7,"/":7,"%":7,"+":6,"-":6,"<":5,"<=":5,">":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},o=["(","?"],i={")":["("],":":["?","?:"]},a=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/},7521:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(6956),o=n(7395);const i=function(e,t){return function(n,i,a){var l=arguments.length>3&&void 0!==arguments[3]?arguments[3]:10,s=e[t];if((0,o.A)(n)&&(0,r.A)(i))if("function"==typeof a)if("number"==typeof l){var c={callback:a,priority:l,namespace:i};if(s[n]){var d,u=s[n].handlers;for(d=u.length;d>0&&!(l>=u[d-1].priority);d--);d===u.length?u[d]=c:u.splice(d,0,c),s.__current.forEach(function(e){e.name===n&&e.currentIndex>=d&&e.currentIndex++})}else s[n]={handlers:[c],runs:0};"hookAdded"!==n&&e.doAction("hookAdded",n,i,a,l)}else console.error("If specified, the hook priority must be a number.");else console.error("The hook callback must be a function.")}}},11:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=function(e,t){return function(){var n,r,o=e[t];return null!==(n=null===(r=o.__current[o.__current.length-1])||void 0===r?void 0:r.name)&&void 0!==n?n:null}}},5375:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(7395);const o=function(e,t){return function(n){var o=e[t];if((0,r.A)(n))return o[n]&&o[n].runs?o[n].runs:0}}},3561:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=function(e,t){return function(n){var r=e[t];return void 0===n?void 0!==r.__current[0]:!!r.__current[0]&&n===r.__current[0].name}}},8830:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=function(e,t){return function(n,r){var o=e[t];return void 0!==r?n in o&&o[n].handlers.some(function(e){return e.namespace===r}):n in o}}},7765:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(3029),o=n(7521),i=n(4194),a=n(8830),l=n(6763),s=n(11),c=n(3561),d=n(5375),u=function e(){(0,r.A)(this,e),this.actions=Object.create(null),this.actions.__current=[],this.filters=Object.create(null),this.filters.__current=[],this.addAction=(0,o.A)(this,"actions"),this.addFilter=(0,o.A)(this,"filters"),this.removeAction=(0,i.A)(this,"actions"),this.removeFilter=(0,i.A)(this,"filters"),this.hasAction=(0,a.A)(this,"actions"),this.hasFilter=(0,a.A)(this,"filters"),this.removeAllActions=(0,i.A)(this,"actions",!0),this.removeAllFilters=(0,i.A)(this,"filters",!0),this.doAction=(0,l.A)(this,"actions"),this.applyFilters=(0,l.A)(this,"filters",!0),this.currentAction=(0,s.A)(this,"actions"),this.currentFilter=(0,s.A)(this,"filters"),this.doingAction=(0,c.A)(this,"actions"),this.doingFilter=(0,c.A)(this,"filters"),this.didAction=(0,d.A)(this,"actions"),this.didFilter=(0,d.A)(this,"filters")};const f=function(){return new u}},4194:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(6956),o=n(7395);const i=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(i,a){var l=e[t];if((0,o.A)(i)&&(n||(0,r.A)(a))){if(!l[i])return 0;var s=0;if(n)s=l[i].handlers.length,l[i]={runs:l[i].runs,handlers:[]};else for(var c=l[i].handlers,d=function(e){c[e].namespace===a&&(c.splice(e,1),s++,l.__current.forEach(function(t){t.name===i&&t.currentIndex>=e&&t.currentIndex--}))},u=c.length-1;u>=0;u--)d(u);return"hookRemoved"!==i&&e.doAction("hookRemoved",i,a),s}}}},6763:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(r){var o=e[t];o[r]||(o[r]={handlers:[],runs:0}),o[r].runs++;for(var i=o[r].handlers,a=arguments.length,l=new Array(a>1?a-1:0),s=1;s{"use strict";n.d(t,{se:()=>r});var r=(0,n(7765).A)();r.addAction,r.addFilter,r.removeAction,r.removeFilter,r.hasAction,r.hasFilter,r.removeAllActions,r.removeAllFilters,r.doAction,r.applyFilters,r.currentAction,r.currentFilter,r.doingAction,r.doingFilter,r.didAction,r.didFilter,r.actions,r.filters},7395:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=function(e){return"string"!=typeof e||""===e?(console.error("The hook name must be a non-empty string."),!1):/^__/.test(e)?(console.error("The hook name cannot begin with `__`."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(e)||(console.error("The hook name can only contain numbers, letters, dashes, periods and underscores."),!1)}},6956:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=function(e){return"string"!=typeof e||""===e?(console.error("The namespace must be a non-empty string."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(e)||(console.error("The namespace can only contain numbers, letters, dashes, periods, underscores and slashes."),!1)}},772:(e,t,n)=>{"use strict";n.d(t,{h:()=>c});var r=n(4467),o=n(5397);function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function a(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:"default";r.data[t]=a(a(a({},l),r.data[t]),e),r.data[t][""]=a(a({},l[""]),r.data[t][""])},u=function(e,t){d(e,t),c()},f=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default",t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0;return r.data[e]||d(void 0,e),r.dcnpgettext(e,t,n,o,i)},m=function(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default"},_=function(e,t,r){var o=f(r,t,e);return n?(o=n.applyFilters("i18n.gettext_with_context",o,e,t,r),n.applyFilters("i18n.gettext_with_context_"+m(r),o,e,t,r)):o};if(e&&u(e,t),n){var p=function(e){s.test(e)&&c()};n.addAction("hookAdded","core/i18n",p),n.addAction("hookRemoved","core/i18n",p)}return{getLocaleData:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default";return r.data[e]},setLocaleData:u,resetLocaleData:function(e,t){r.data={},r.pluralForms={},u(e,t)},subscribe:function(e){return i.add(e),function(){return i.delete(e)}},__:function(e,t){var r=f(t,void 0,e);return n?(r=n.applyFilters("i18n.gettext",r,e,t),n.applyFilters("i18n.gettext_"+m(t),r,e,t)):r},_x:_,_n:function(e,t,r,o){var i=f(o,void 0,e,t,r);return n?(i=n.applyFilters("i18n.ngettext",i,e,t,r,o),n.applyFilters("i18n.ngettext_"+m(o),i,e,t,r,o)):i},_nx:function(e,t,r,o,i){var a=f(i,o,e,t,r);return n?(a=n.applyFilters("i18n.ngettext_with_context",a,e,t,r,o,i),n.applyFilters("i18n.ngettext_with_context_"+m(i),a,e,t,r,o,i)):a},isRTL:function(){return"rtl"===_("ltr","text direction")},hasTranslation:function(e,t,o){var i,a,l=t?t+""+e:e,s=!(null===(i=r.data)||void 0===i||null===(a=i[null!=o?o:"default"])||void 0===a||!a[l]);return n&&(s=n.applyFilters("i18n.has_translation",s,e,t,o),s=n.applyFilters("i18n.has_translation_"+m(o),s,e,t,o)),s}}}},5839:(e,t,n)=>{"use strict";n.d(t,{__:()=>a});var r=n(772),o=n(2133),i=(0,r.h)(void 0,void 0,o.se),a=(i.getLocaleData.bind(i),i.setLocaleData.bind(i),i.resetLocaleData.bind(i),i.subscribe.bind(i),i.__.bind(i));i._x.bind(i),i._n.bind(i),i._nx.bind(i),i.isRTL.bind(i),i.hasTranslation.bind(i)},9575:(e,t,n)=>{"use strict";n.d(t,{__:()=>r.__}),n(181),n(772);var r=n(5839)},181:(e,t,n)=>{"use strict";var r=n(8616),o=n.n(r);n(7604),o()(console.error)},1105:(e,t,n)=>{"use strict";n.r(t),n.d(t,{addonError:()=>f,afterAddonInstall:()=>u,extractErrorFromAddOnResponse:()=>d,toggleAddonState:()=>c});var r=n(9575);function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,a,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,o=e}finally{try{if(!s&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw o}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return i(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n5&&void 0!==arguments[5]?arguments[5]:"frm_activate_addon",d=frm_admin_js,u=document.querySelectorAll(".frm-addon-status");u.forEach(function(t){t.textContent=e,t.style.display="block"}),t.css({opacity:"0"}),document.querySelectorAll(".frm-oneclick").forEach(function(e){e.style.display="none"}),function(){var e=document.getElementById("frm_upgrade_modal");if(e){e.classList.add("frm-success");var t=e.querySelector(".frm-upgrade-message");if(t){var n=t.querySelector("img");t.replaceChildren((0,r.__)("Great! Everything's ready to go!","formidable"),document.createElement("br"),(0,r.__)("You just need to refresh the builder so the new field becomes available.","formidable")),n&&t.append(n)}var o=document.querySelector(".frm-addon-status");o&&(o.textContent="");var i,a=e.querySelector(".frm-circled-icon");if(a)a.classList.add("frm-circled-icon-green"),null===(i=a.querySelector("svg"))||void 0===i||i.replaceWith(s({href:"#frm_checkmark_icon"}))}}();var f={frm_activate_addon:{class:"frm-addon-active",message:d.active},frm_deactivate_addon:{class:"frm-addon-installed",message:d.installed},frm_uninstall_addon:{class:"frm-addon-not-installed",message:d.not_installed}};f.frm_install_addon=f.frm_activate_addon;var _=o(n,1)[0];_&&(_.textContent=f[c].message);var p=o(i,1)[0].parentElement;p.classList.remove("frm-addon-not-installed","frm-addon-installed","frm-addon-active"),p.classList.add(f[c].class),o(t,1)[0].classList.remove("frm_loading_button"),document.querySelectorAll(".frm-admin-page-import, #frm-admin-smtp, #frm-welcome").length>0?window.location.reload():["settings","form_builder"].includes(a)&&u.forEach(function(e){var t=null!==e.closest("#frm_upgrade_modal");e.append(function(e,t){var n,o=[m(e)];return t&&o.push(((n=document.createElement("a")).setAttribute("href","#"),n.classList.add("button","button-secondary","frm-button-secondary","dismiss"),n.textContent=(0,r.__)("Not Now","formidable"),n)),l({className:"frm-save-and-reload-options",children:o})}(a,t))})}function f(e,t,n){e.form?(jQuery(".frm-inline-error").remove(),n.closest(".frm-card").html(e.form).css({padding:5}).find("#upgrade").attr("rel",n.attr("rel")).on("click",_)):(t.append('

    '.concat(e.message,"

    ")),n.removeClass("frm_loading_button"),jQuery(".frm-addon-error").delay(4e3).fadeOut())}function m(e){var t=document.createElement("button");return t.classList.add("frm-save-and-reload","button","button-primary","frm-button-primary"),t.textContent=(0,r.__)("Save and Reload","formidable"),t.addEventListener("click",function(){var t;"form_builder"===e?((t=document.getElementById("frm_submit_side_top")).classList.contains("frm_submit_ajax")&&t.setAttribute("data-new-addon-installed",!0),t.click()):"settings"===e&&function(){var e=document.getElementById("form_settings_page");if(null!==e){var t=e.querySelector("form.frm_form_settings");null!==t&&(wp.hooks.doAction("frm_reset_fields_updated"),t.submit())}}()}),t}function _(e){e.preventDefault();var t=jQuery(this),n=t.parent().parent(),r=t.attr("rel");t.addClass("frm_loading_button"),jQuery.ajax({url:ajaxurl,type:"POST",async:!0,cache:!1,dataType:"json",data:{action:"frm_install_addon",nonce:frmAdminJs.nonce,plugin:r,hostname:n.find("#hostname").val(),username:n.find("#username").val(),password:n.find("#password").val()},success:function(e){var r,o,i=d(e=null!==(r=null===(o=e)||void 0===o?void 0:o.data)&&void 0!==r?r:e);i?f(i,n,t):u(e,t,message,n)},error:function(){t.removeClass("frm_loading_button")}})}},4260:(e,t,n)=>{"use strict";n.r(t),n.d(t,{addOneClick:()=>i,initModal:()=>a,initUpgradeModal:()=>l});var r=n(9575),o=frmDom.svg;function i(e,t,n){var i;if("modal"===t)i=document.getElementById("frm_upgrade_modal");else{if("tab"!==t)return;i=document.getElementById(e.getAttribute("href").substr(1))}var a,l=i.querySelector(".frm-oneclick"),s=i.querySelector(".frm-upgrade-message"),c=i.querySelector(".frm-upgrade-link"),d=i.querySelector(".frm-oneclick-button"),u=i.querySelector(".frm-addon-status"),f=e.getAttribute("data-oneclick"),m=e.getAttribute("data-message"),_="block",p="block",g="none",y=i.querySelector(".frm-circled-icon");y&&(y.classList.remove("frm-circled-icon-green"),null===(a=y.querySelector("svg"))||void 0===a||a.replaceWith(o({href:"#frm_filled_lock_icon"})));var v=i.querySelector(".frm-learn-more");if(v&&(v.href=e.dataset.learnMore),null!==l&&null!==d&&void 0!==f&&f){null===m&&(p="none"),_="none",g="block",f=JSON.parse(f),d.className=d.className.replace(" frm-install-addon","").replace(" frm-activate-addon",""),d.className="".concat(d.className," ").concat(f.class),d.rel=f.url,l.textContent=(0,r.__)("This plugin is not activated. Would you like to activate it now?","formidable"),d.textContent=(0,r.__)("Activate","formidable");var h=e.querySelector("use");h&&(null==y||y.querySelector("svg").replaceWith(o({href:h.getAttribute("href")||h.getAttribute("xlink:href"),classList:["frm_svg32"]})))}m||(m=s.getAttribute("data-default")),void 0!==n&&(m=m.replace('',n)),s.innerHTML=m,e.dataset.upsellImage&&s.append(frmDom.img({src:e.dataset.upsellImage,alt:e.dataset.upgrade})),c.href=function(e,t){var n=e.getAttribute("data-link");return null!=n&&""!==n||(n=t.getAttribute("data-default")),n}(e,c),u.style.display="none",l&&(l.style.display=g),d&&(d.style.display="block"===g?"inline-block":g),s.style.display=p,c.style.display="block"===_?"inline-block":_;var b=c.closest(".frm-upgrade-modal-actions");b&&(b.style.display="block"===_?"flex":_)}function a(e,t){var n=jQuery(e);if(!n.length)return!1;void 0===t&&(t="552px");var r={dialogClass:"frm-dialog",modal:!0,autoOpen:!1,closeOnEscape:!0,width:t,resizable:!1,draggable:!1,open:function(){var e,t;jQuery(".ui-dialog-titlebar").addClass("frm_hidden").removeClass("ui-helper-clearfix"),jQuery("#wpwrap").addClass("frm_overlay"),jQuery(".frm-dialog").removeClass("ui-widget ui-widget-content ui-corner-all"),n.removeClass("ui-dialog-content ui-widget-content"),e=n,t=function(){e.dialog("close")},jQuery(".ui-widget-overlay").on("click",t),e.on("click","a.dismiss",t)},close:function(){jQuery("#wpwrap").removeClass("frm_overlay"),jQuery(".spinner").css("visibility","hidden"),this.removeAttribute("data-option-type");var e=document.getElementById("bulk-option-type");e&&(e.value="")}};return n.dialog(r),n}function l(){var e=a("#frm_upgrade_modal");function t(t){var n,r,o;if((n=t.target).classList){var a=n.classList.contains("frm_show_expired_modal")||null!==n.querySelector(".frm_show_expired_modal")||n.closest(".frm_show_expired_modal");if("change"===t.type&&n.classList.contains("frm_select_with_upgrade")){var l=n.options[n.selectedIndex];l&&l.dataset.upgrade&&(n=l)}if(!n.dataset.upgrade){var s=n.closest("[data-upgrade]");if(!s){if(!(s=n.closest(".frm_field_box")))return;n.dataset.upgrade=""}n=s}if(a)wp.hooks.doAction("frm_show_expired_modal",n);else{var c=n.dataset.upgrade;if(c&&!n.classList.contains("frm_show_upgrade_tab")){t.preventDefault();var d=e.get(0),u=d.querySelector(".frm_lock_icon");u&&(u.style.display="block",u.classList.remove("frm_lock_open_icon"),u.querySelector("use").setAttribute("href","#frm_lock_icon"));var f="frm_upgrade_modal_image",m=document.getElementById(f);m&&m.remove(),n.dataset.image&&u&&(u.style.display="none",u.parentNode.insertBefore(frmDom.img({id:f,src:"".concat(frmGlobal.url,"/images/").concat(n.dataset.image)}),u));var _=d.querySelector(".license-level");_&&(_.textContent=function(e){return e.dataset.requires?e.dataset.requires:"Pro"}(n)),i(n,"modal",c),d.querySelector(".frm_are_not_installed").style.display=n.dataset.image||n.dataset.oneclick?"none":"inline-block",d.querySelector(".frm-upgrade-modal-title-prefix").style.display=n.dataset.oneclick?"inline":"none",d.querySelector(".frm_feature_label").textContent=c,d.querySelector(".frm-upgrade-modal-title-suffix").style.display="none",d.querySelector("h2").style.display="block",e.dialog("open");var p=d.querySelector(".button-primary:not(.frm-oneclick-button)");r=p.getAttribute("href").replace(/(medium=)[a-z_-]+/gi,"$1".concat(n.getAttribute("data-medium"))),null===(o=n.getAttribute("data-content"))&&(o=""),r=r.replace(/(content=)[a-z_-]+/gi,"$1".concat(o)),p.setAttribute("href",r)}}}}!1!==e&&(document.addEventListener("click",t),frmDom.util.documentOn("change","select.frm_select_with_upgrade",t))}},8616:e=>{e.exports=function(e,t){var n,r,o=0;function i(){var i,a,l=n,s=arguments.length;e:for(;l;){if(l.args.length===arguments.length){for(a=0;a{var r;!function(){"use strict";var o={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function i(e){return function(e,t){var n,r,a,l,s,c,d,u,f,m=1,_=e.length,p="";for(r=0;r<_;r++)if("string"==typeof e[r])p+=e[r];else if("object"==typeof e[r]){if((l=e[r]).keys)for(n=t[m],a=0;a=0),l.type){case"b":n=parseInt(n,10).toString(2);break;case"c":n=String.fromCharCode(parseInt(n,10));break;case"d":case"i":n=parseInt(n,10);break;case"j":n=JSON.stringify(n,null,l.width?parseInt(l.width):0);break;case"e":n=l.precision?parseFloat(n).toExponential(l.precision):parseFloat(n).toExponential();break;case"f":n=l.precision?parseFloat(n).toFixed(l.precision):parseFloat(n);break;case"g":n=l.precision?String(Number(n.toPrecision(l.precision))):parseFloat(n);break;case"o":n=(parseInt(n,10)>>>0).toString(8);break;case"s":n=String(n),n=l.precision?n.substring(0,l.precision):n;break;case"t":n=String(!!n),n=l.precision?n.substring(0,l.precision):n;break;case"T":n=Object.prototype.toString.call(n).slice(8,-1).toLowerCase(),n=l.precision?n.substring(0,l.precision):n;break;case"u":n=parseInt(n,10)>>>0;break;case"v":n=n.valueOf(),n=l.precision?n.substring(0,l.precision):n;break;case"x":n=(parseInt(n,10)>>>0).toString(16);break;case"X":n=(parseInt(n,10)>>>0).toString(16).toUpperCase()}o.json.test(l.type)?p+=n:(!o.number.test(l.type)||u&&!l.sign?f="":(f=u?"+":"-",n=n.toString().replace(o.sign,"")),c=l.pad_char?"0"===l.pad_char?"0":l.pad_char.charAt(1):" ",d=l.width-(f+n).length,s=l.width&&d>0?c.repeat(d):"",p+=l.align?f+n+s:"0"===c?f+s+n:s+f+n)}return p}(function(e){if(l[e])return l[e];for(var t,n=e,r=[],i=0;n;){if(null!==(t=o.text.exec(n)))r.push(t[0]);else if(null!==(t=o.modulo.exec(n)))r.push("%");else{if(null===(t=o.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(t[2]){i|=1;var a=[],s=t[2],c=[];if(null===(c=o.key.exec(s)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(a.push(c[1]);""!==(s=s.substring(c[0].length));)if(null!==(c=o.key_access.exec(s)))a.push(c[1]);else{if(null===(c=o.index_access.exec(s)))throw new SyntaxError("[sprintf] failed to parse named argument key");a.push(c[1])}t[2]=a}else i|=2;if(3===i)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");r.push({placeholder:t[0],param_no:t[1],keys:t[2],sign:t[3],pad_char:t[4],align:t[5],width:t[6],precision:t[7],type:t[8]})}n=n.substring(t[0].length)}return l[e]=r}(e),arguments)}function a(e,t){return i.apply(null,[e].concat(t||[]))}var l=Object.create(null);"undefined"!=typeof window&&(window.sprintf=i,window.vsprintf=a,void 0===(r=function(){return{sprintf:i,vsprintf:a}}.call(t,n,t,e))||(e.exports=r))}()},5397:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(1364),o={contextDelimiter:"",onMissingKey:null};function i(e,t){var n;for(n in this.data=e,this.pluralForms={},this.options={},o)this.options[n]=void 0!==t&&n in t?t[n]:o[n]}i.prototype.getPluralForm=function(e,t){var n,o,i,a=this.pluralForms[e];return a||("function"!=typeof(i=(n=this.data[e][""])["Plural-Forms"]||n["plural-forms"]||n.plural_forms)&&(o=function(e){var t,n,r;for(t=e.split(";"),n=0;n{"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,{A:()=>r})},4467:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(9922);function o(e,t,n){return(t=(0,r.A)(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},2327:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(2284);function o(e,t){if("object"!=(0,r.A)(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!=(0,r.A)(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}},9922:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(2284),o=n(2327);function i(e){var t=(0,o.A)(e,"string");return"symbol"==(0,r.A)(t)?t:t+""}},2284:(e,t,n)=>{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}n.d(t,{A:()=>r})}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.exports}function r(e){return function(e){if(Array.isArray(e))return i(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||o(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){if(e){if("string"==typeof e)return i(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(e,t):void 0}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},window.FrmFormsConnect=window.FrmFormsConnect||function(e,t,n){var r={messageBox:null,reset:null,setElements:function(){r.messageBox=e.querySelector(".frm_pro_license_msg"),r.reset=e.getElementById("frm_reconnect_link")}},o={init:function(){r.setElements(),n(e.getElementById("frm_deauthorize_link")).on("click",o.deauthorize),n(".frm_authorize_link").on("click",o.authorize),n(".frm-dashboard-license-options").on("click","#frm_deauthorize_link",o.deauthorize),n(".frm-dashboard-license-options").on("click","#frm_reconnect_link",o.reauthorize),null!==r.reset&&n(r.reset).on("click",o.reauthorize)},authorize:function(){var t=this,r=this.getAttribute("data-plugin"),i=e.getElementById("edd_".concat(r,"_license_key")),a=i.value,l=e.getElementById("proplug-wpmu");this.classList.add("frm_loading_button"),l=null===l?0:l.checked?1:0,n.ajax({type:"POST",url:ajaxurl,dataType:"json",data:{action:"frm_addon_activate",license:a,plugin:r,wpmu:l,nonce:frmGlobal.nonce},success:function(e){o.afterAuthorize(e,i),t.classList.remove("frm_loading_button")}})},afterAuthorize:function(e,t){!0===e.success&&(t.value="•••••••••••••••••••"),wp.hooks.doAction("frm_after_authorize",e),o.showMessage(e)},showProgress:function(e){null===r.messageBox&&r.setElements();var t=r.messageBox;null!==t&&(!0===e.success?(t.classList.remove("frm_error_style"),t.classList.add("frm_message","frm_updated_message")):(t.classList.add("frm_error_style"),t.classList.remove("frm_message","frm_updated_message")),t.classList.remove("frm_hidden"),t.innerHTML=e.message)},showMessage:function(n){null===r.messageBox&&r.setElements();var i=r.messageBox;!0===n.success&&(o.showAuthorized(!0),o.showInlineSuccess(),wp.hooks.doAction("frmAdmin.afterLicenseAuthorizeSuccess",{msg:n})),o.showProgress(n),""!==n.message&&(setTimeout(function(){i.innerHTML="",i.classList.add("frm_hidden"),i.classList.remove("frm_error_style","frm_message","frm_updated_message")},1e4),e.querySelector(".frm-admin-page-dashboard")&&setTimeout(function(){t.location.reload()},1e3))},showAuthorized:function(t){var n=t?"unauthorized":"authorized",r=t?"authorized":"unauthorized",o=e.querySelectorAll(".frm_".concat(n,"_box"));o.length&&o.forEach(function(e){e.className=e.className.replace("frm_".concat(n,"_box"),"frm_".concat(r,"_box"))})},showInlineSuccess:function(){var t=e.querySelectorAll(".frm-confirm-msg [data-success]");t.length&&t.forEach(function(e){e.innerHTML=frmAdminBuild.purifyHtml(e.getAttribute("data-success"))})},reauthorize:function(){return this.innerHTML='',n.ajax({type:"POST",url:ajaxurl,dataType:"json",data:{action:"frm_reset_cache",plugin:"formidable_pro",nonce:frmGlobal.nonce},success:function(e){r.reset.textContent=e.message,"1"===r.reset.getAttribute("data-refresh")&&t.location.reload()}}),!1},deauthorize:function(){if(!confirm(frmGlobal.deauthorize))return!1;var t=this.getAttribute("data-plugin"),r=e.getElementById("edd_".concat(t,"_license_key")),i=r.value,a=this;return this.innerHTML='',n.ajax({type:"POST",url:ajaxurl,data:{action:"frm_addon_deactivate",license:i,plugin:t,nonce:frmGlobal.nonce},success:function(){o.showAuthorized(!1),r.value="",a.replaceWith("Disconnected"),wp.hooks.doAction("frmAdmin.afterLicenseDeauthorizeSuccess",{})}}),!1}};return o}(document,window,jQuery),window.frmAdminBuildJS=function(){var e,t,i=frm_admin_js,l=frmDom,s=l.tag,c=l.div,d=l.span,u=l.a,f=l.svg,m=l.img,_=frmDom.util.onClickPreventDefault,p=frmDom.ajax.doJsonPost;i.contextualShortcodes=(t=null===(e=document.getElementById("frm_adv_info"))||void 0===e?void 0:e.dataset.contextualShortcodes)?((t=JSON.parse(t)).addressSelector="[id^=email_to], [id^=from_], [id^=cc], [id^=bcc]",t.bodySelector="[id^=email_message_]",t):[];var g,y,v,h={save:f({href:"#frm_save_icon"}),drag:f({href:"#frm_drag_icon",classList:["frm_drag_icon","frm-drag"]})},b=jQuery(document.getElementById("frm-show-fields")),j=document.getElementById("new_fields"),w=document.getElementById("form_id"),Q=!1,x=0,E=0,k=0,A={},S=0,L=wp.i18n,I=L.__,B=L.sprintf,q={dragging:!1};null!==w&&(E=w.value);var C,N=new URL(window.location.href),T=N.searchParams,O=document.getElementById("frm_builder_page");function F(e){e.stopPropagation(),e.preventDefault(),D(this)}function D(e){var t=e.getAttribute("data-frmverify"),n=e.getAttribute("data-loaded-from");return null===t||"frm-confirmed-click"===e.id||("entries-list"===n?wp.hooks.applyFilters("frm_on_multiple_entries_delete",{link:e,initModal:Bi}):function(e){var t=Bi("#frm_confirm_modal","400px"),n=document.getElementById("frm-confirmed-click");if(!1===t)return!1;n&&(n.style.display="block");var r=e.getAttribute("data-frmverify"),o=r?e.getAttribute("data-frmverify-btn"):"",i=jQuery(".frm-confirm-msg");i.empty(),r&&(i.append(document.createTextNode(r)),o&&(null==n||n.classList.add(o)));var a=e.dataset;if(n){for(var l in n.dataset)n.removeAttribute("data-".concat(l));for(var s in a)"frmverify"!==s&&n.setAttribute("data-".concat(s),a[s])}return wp.hooks.doAction("frmAdmin.beforeOpenConfirmModal",{$info:t,link:e}),t.dialog("open"),null==n||n.setAttribute("href",e.getAttribute("href")||e.getAttribute("data-href")),!1}(e))}function M(e){var t=Bi("#frm_info_modal","400px");return!1===t||(jQuery(".frm-info-msg").html(e),t.dialog("open")),!1}function P(e){var t=this.getAttribute("data-frmtoggle"),n=this.getAttribute("data-toggletext"),r=jQuery(t);return e.preventDefault(),r.toggle(),null!==n&&""!==n&&(this.setAttribute("data-toggletext",this.innerHTML),this.textContent=n),!1}function z(e){var t=this.getAttribute("data-frmhide"),n=this.getAttribute("data-frmshow"),r=this.getAttribute("data-frmuncheck"),o=r?r.split(","):[];"INPUT"!==this.nodeName||"checkbox"!==this.type||this.checked||(null!==t?(n=t,t=null):null!==n&&(t=n,n=null)),e.preventDefault();var i=this.getAttribute("data-toggleclass")||"frm_hidden";null!==t&&jQuery(t).addClass(i),null!==n&&jQuery(n).removeClass(i);var a=this.parentNode.querySelectorAll("a.current");if(null!==a){for(var l=0;l1&&(e="",t=""):0===o.indexOf("frm_postmeta_")&&(jQuery("#frm_postmeta_rows .frm_postmeta_row").length<2&&(e=".frm_add_postmeta_row.button"),jQuery(".frm_toggle_cf_opts").length&&jQuery("#frm_postmeta_rows .frm_postmeta_row:not(#".concat(o,")")).last().length&&(""!==e&&(e+=","),e+="#".concat(jQuery("#frm_postmeta_rows .frm_postmeta_row:not(#".concat(o,")")).last().attr("id")," .frm_toggle_cf_opts")));var i=document.getElementById(o),a=jQuery(i);return a.fadeOut(300,function(){var n;a.remove(),Po(),""!==t&&jQuery(t).hide(),""!==e&&jQuery("".concat(e," a,").concat(e)).removeClass("frm_hidden").fadeIn("slow"),this.closest(".frm_form_action_settings")&&function(e){so(e);var t={type:e};wp.hooks.doAction("frm_after_action_removed",t)}(this.closest(".frm_form_action_settings").querySelector(".frm_action_name").value),null===(n=document.querySelector(".tooltip"))||void 0===n||n.remove()}),void 0!==n&&(n=jQuery(n)).fadeOut(400,function(){n.remove()}),""!==e&&jQuery(this).closest(".frm_logic_rows").fadeOut("slow"),wp.hooks.doAction("frm_admin_tag_removed",o,i),!1}}function G(e,t){void 0===t&&(t=this),Ze(t,!1);var n=jQuery(t).closest(".frm_form_action_settings"),r=e.target;if(n.length&&void 0!==r){var o=r.parentElement.className;if("string"==typeof o&&(o.includes("frm_email_icons")||o.includes("frm_toggle")))return void e.stopPropagation()}var i=n.children(".widget-inside");if(n.length&&i.find("p, div, table").length<1){var a=n.find('input[name$="[ID]"]').val(),l=n.find('input[name$="[post_excerpt]"]').val();l&&(i.html(''),n.find(".spinner").fadeIn("slow"),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_form_action_fill",action_id:a,action_type:l,nonce:frmGlobal.nonce},success:function(e){i.html(e),ci(),Xr("#".concat(n.attr("id"))),yi(i),jQuery(t).trigger("frm-action-loaded"),wp.hooks.doAction("frm_filled_form_action",i)}}))}jQuery(t).closest(".frm_field_box").siblings().find(".widget-inside").slideUp("fast"),void 0!==t.className&&t.className.includes("widget-action")||jQuery(t).closest(".start_divider").length<1||((i=jQuery(t).closest("div.widget").children(".widget-inside")).is(":hidden")?i.slideDown("fast"):i.slideUp("fast"))}function U(){var e=this.getAttribute("href");if(void 0===e)return!1;var t=e.replace("#","."),n=jQuery(this);n.closest("li").addClass("frm-tabs active").siblings("li").removeClass("frm-tabs active starttab"),n.closest("div").children(".tabs-panel").not(e).not(t).hide();var r=document.getElementById(e.replace("#",""));return r&&(r.style.display="block"),"frm_insert_fields_tab"!==this.id||this.closest("#frm_adv_info")||$e(),!1}function W(e,t){var n=(e=jQuery(e)).attr("href");if(void 0!==n){var r,o,i=n.replace("#",".");if(e.closest("li").addClass("frm-tabs active").siblings("li").removeClass("frm-tabs active starttab"),e.closest("div").find(".tabs-panel").length)e.closest("div").children(".tabs-panel").not(n).not(i).hide();else if(null!==document.getElementById("form_global_settings")){var a=e.data("frmajax");e.closest(".frm_wrap").find(".tabs-panel, .hide_with_tabs").hide(),void 0!==a&&"1"==a&&(r=n.replace("#",""),(o=jQuery(".frm_".concat(r,"_ajax"))).length&&jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_settings_tab",tab:r.replace("_settings",""),nonce:frmGlobal.nonce},success:function(e){o.replaceWith(e)}}))}else jQuery("#frm-categorydiv .tabs-panel, .hide_with_tabs").hide();jQuery(n).show(),jQuery(i).show(),$o(),"auto"!==t&&(jQuery(".frm_updated_message").hide(),jQuery(".frm_warning_style").hide()),jQuery(e).closest("#frm_adv_info").length||(jQuery(".frm_form_settings").length?jQuery(".frm_form_settings").attr("action","?page=formidable&frm_action=settings&id=".concat(jQuery('.frm_form_settings input[name="id"]').val(),"&t=").concat(n.replace("#",""))):jQuery(".frm_settings_form").attr("action","?page=formidable-settings&t=".concat(n.replace("#",""))))}}function V(e){var t,n;document.querySelectorAll(e).forEach(function(e){$(e),Array.from(e.children).forEach(function(e){return X(e,".frm-move")});var t=jQuery(e).children('[data-type="divider"]').children(".divider_section_only");t.length&&$(t)}),t=jQuery("#frm_builder_page"),n={items:".frm_sortable_field_opts li",axis:"y",opacity:.65,forcePlaceholderSize:!1,handle:".frm-drag",helper:function(e,t){return Q=t.clone().insertAfter(t),t.clone()},stop:function(e,t){Q&&Q.remove(),ir(t.item.attr("id").replace("frm_delete_field_","").replace("-".concat(t.item.data("optkey"),"_container"),"")),Po()}},jQuery(t).sortable(n)}function $(e){jQuery(e).droppable({accept:".frmbutton, li.frm_field_box",deactivate:ne,over:K,out:J,tolerance:"pointer"})}function K(e,t){var n=function(e){return e.classList.contains("divider_section_only")&&(e=jQuery(e).nextAll(".start_divider.frm_sorting").get(0)),e}(e.target);if(!je(t.draggable[0],n,e))return n.classList.remove("frm-over-droppable"),void jQuery(n).parents("ul.frm_sorting").addClass("frm-over-droppable");document.querySelectorAll(".frm-over-droppable").forEach(function(e){return e.classList.remove("frm-over-droppable")}),n.classList.add("frm-over-droppable"),jQuery(n).parents("ul.frm_sorting").addClass("frm-over-droppable")}function J(e){e.target.classList.remove("frm-over-droppable")}function X(e,t){var n={helper:Y,revert:"invalid",delay:10,start:Z,stop:ee,drag:te,cursor:"grabbing",refreshPositions:!0,cursorAt:{top:0,left:90}};"string"==typeof t&&(n.handle=t),jQuery(e).draggable(n)}function Y(e){var t,n=e.delegateTarget;if(Qe(n)){var r=document.getElementById("frm-insert-fields").querySelector(".frm_ttext").cloneNode(!0);return r.querySelector("use").setAttributeNS("http://www.w3.org/1999/xlink","href","#frm_field_group_layout_icon"),r.querySelector("span").textContent=I("Field Group","formidable"),r.classList.add("frm_field_box"),r.classList.add("ui-sortable-helper"),r}if(n.classList.contains("frmbutton"))return(t=n.cloneNode(!0)).classList.add("ui-sortable-helper"),n.classList.add("frm-new-field"),t;if(n.hasAttribute("data-ftype")){var o=n.getAttribute("data-ftype");if(t=document.getElementById("frm-insert-fields").querySelector(".frm_t".concat(o)))return(t=t.cloneNode(!0)).classList.add("form-field"),t.classList.add("ui-sortable-helper"),t.cloneNode(!0)}return c({className:"frmbutton"})}function Z(e,t){if(e.target.classList.contains("frm_at_limit"))return Se(),!1;q.dragging=!0;var n,r=y;r.classList.add("frm-dragging-field"),document.body.classList.add("frm-dragging"),t.helper.addClass("frm-sortable-helper"),t.helper.initialOffset=r.scrollTop,e.target.classList.add("frm-drag-fade"),vn(),(n=document.querySelectorAll("ul.start_divider")).length&&n.forEach(function(e){[].slice.call(e.children).forEach(function(e){(0===e.children.length||1===e.children.length&&"ul"===e.firstElementChild.nodeName.toLowerCase()&&0===e.firstElementChild.children.length)&&e.remove()})}),Fe(),Ne(),H()}function ee(){y.classList.remove("frm-dragging-field"),document.body.classList.remove("frm-dragging");var e=document.querySelector(".frm-drag-fade");e&&e.classList.remove("frm-drag-fade")}function te(e,t){!function(e){v.scrollTop(function(t,n){var r=e.clientY,o=y.offsetHeight,i=e.clientY-y.offsetTop,a=i-o/2;return i>o-50&&r>5?n+.1*a:i<70&&r<130?n-Math.abs(.1*a):n})}(e);var n=e.target,r=function(){for(var e=document.getElementById("frm-show-fields");e.querySelector(".frm-over-droppable");)e=e.querySelector(".frm-over-droppable");return"frm-show-fields"!==e.id||e.classList.contains("frm-over-droppable")||(e=!1),e}(),o=document.getElementById("frm_drag_placeholder");if(je(n,r,e)){o||(o=s("li",{id:"frm_drag_placeholder",className:"sortable-placeholder"}));var i,a=t.helper.get(0);if((a.classList.contains("form-field")||a.classList.contains("frm_field_box"))&&(a.style.transform="translateY(".concat((i=t.helper,y.scrollTop-i.initialOffset),"px)")),"frm-show-fields"===r.id||r.classList.contains("start_divider"))return o.style.left=0,void function(e){var t,n=e.y,r=e.placeholder,o=jQuery(e.droppable),i=o.children().not(".edit_field_type_end_divider");if(0===i.length)o.prepend(r),t=0;else{var a=re(o,n);if(a===i.length){var l=jQuery(i.get(a-1));t=l.offset().top+l.outerHeight(),o.append(r);var s=o.children(".edit_field_type_end_divider");s.length&&o.append(s)}else t=jQuery(i.get(a)).offset().top,jQuery(i.get(a)).before(r)}t-=o.offset().top,r.style.top="".concat(t,"px")}({droppable:r,y:e.clientY,placeholder:o});o.style.top="",function(e){var t,n=e.x,r=e.placeholder,o=jQuery(e.droppable),i=ie(o);if(i.length){var a=function(e,t){var n,r,o,i,a=ie(e);for(i=0,n=a.length-1;n>=0;--n)if(r=a.get(n),t>(o=jQuery(r).offset().left)){i=n,t>o+jQuery(r).outerWidth()/2&&(i=n+1);break}return i}(o,n);if(a===i.length){var l=jQuery(i.get(a-1));t=l.offset().left+l.outerWidth(),o.append(r)}else t=jQuery(i.get(a)).offset().left,jQuery(i.get(a)).before(r),t-=0===a?4:8;t-=o.offset().left,r.style.left="".concat(t,"px")}}({droppable:r,x:e.clientX,placeholder:o})}else o&&o.remove()}function ne(e,t){if(q.dragging){q.dragging=!1;var n=t.draggable[0],r=document.getElementById("frm_drag_placeholder");if(!r)return t.helper.remove(),void g();!function(e){if(e.previousElementSibling&&e.previousElementSibling.classList.contains("frm-is-collapsed")){var t=jQuery(e).prevUntil('[data-type="break"]');if(t.length){var n=t.find(".frm-collapse-page").get(0);n&&n.click()}}}(r);var o=t.helper.parent(),i=t.helper.get(0).closest("ul.start_divider"),a=r.closest("ul.start_divider");n.classList.contains("frm-new-field")?function(e){if(pe(e))wp.hooks.doAction("frm_stopped_inserting_by_dragging",e);else{var t=document.getElementById("frm_drag_placeholder"),n="".concat(e.replace("|","-"),"_").concat(be()),r=s("li",{id:n,className:"frm-wait frmbutton_loadingnow"}),o=jQuery(r),i=de(jQuery(t)),a=ue(i),l=fe(i);t.parentNode.insertBefore(r,t),t.remove(),ae(o);var c=0;"summary"===e&&(c=jQuery(".frmbutton_loadingnow#".concat(n)).prevAll('li[data-type="break"]').length?1:0),jQuery.ajax({type:"POST",url:ajaxurl,data:_e(e,l,a,c),success:function(t){ge(t,o);var n=ye(t);n&&wp.hooks.doAction("frm_after_field_added_in_form_builder",{field:t,fieldId:n,fieldType:e,form_id:a})},error:he})}}(n.id):(function(e,t){t.parentNode.insertBefore(e,t)}(n,r),function(e){if("UL"===e.nodeName&&!e.classList.contains("start_divider")&&"frm-show-fields"!==e.id){var t=e.closest("li");t&&!t.classList.contains("ui-draggable")&&X(t,".frm-move")}}(r.parentElement));var l=i?parseInt(i.closest(".edit_field_type_divider").getAttribute("data-fid")):0,c=a?parseInt(a.closest(".edit_field_type_divider").getAttribute("data-fid")):0;r.remove(),t.helper.remove();var d=o.length?ie(o):[];!function(e,t){var n;e.length&&(t.length?ae(t.first()):(n=e.get(0).closest("li.frm_field_box"))&&!n.classList.contains("edit_field_type_divider")&&n.remove())}(o,d),function(e,t){0===t.length&&1===ie(jQuery(e.parentNode)).length||ae(jQuery(e))}(n,d),l!==c&&me(jQuery(n),i),g()}}function re(e,t){var n,r,o,i,a=e.children().not(".edit_field_type_end_divider"),l=a.length;if(!document.querySelector(".frm-has-fields .frm_no_fields"))return 0;for(i=0,n=l-1;n>=0;--n)if(r=a.get(n),t>(o=jQuery(r).offset().top)){i=n,t>o+jQuery(r).outerHeight()/2&&(i=n+1);break}return i}function oe(){document.querySelectorAll("ul#frm-show-fields, ul.start_divider").forEach(function(e){e.childNodes.forEach(function(e){void 0!==e.classList&&(e.classList.contains("edit_field_type_end_divider")||void 0!==e.classList&&e.classList.contains("form-field")&&Ue(e))})}),kr(),document.querySelectorAll(".edit_field_type_end_divider").forEach(function(e){return e.parentNode.append(e)}),document.querySelectorAll("li.form_field_box:not(.form-field)").forEach(function(e){return!e.children.length&&e.remove()}),Er();var e=new Event("frm_sync_after_drag_and_drop",{bubbles:!1});document.dispatchEvent(e)}function ie(e){var t=jQuery(),n=e.get(0);return n.children?(Array.from(n.children).forEach(function(e){if("none"!==e.style.display){var n=e.classList;!n.contains("form-field")||n.contains("edit_field_type_end_divider")||n.contains("frm-sortable-helper")||(t=t.add(e))}}),t):t}function ae(e,t){var n;void 0===t&&(t="even");var r=e.parent().children("li.form-field, li.frmbutton_loadingnow").not(".edit_field_type_end_divider"),o=r.length,i=["frm_full","frm_half","frm_third","frm_fourth","frm_sixth","frm_two_thirds","frm_three_fourths","frm1","frm2","frm3","frm4","frm5","frm6","frm7","frm8","frm9","frm10","frm11","frm12"];"even"===t&&5!==o?r.each(ce(i,$t(o))):"clear"===t?r.each(ce(i,"")):(n=["left","right","middle","even"].includes(t)?function(e){return Vt(o,t,e)}:function(e){return sn(t[e])},r.each(ce(i,n))),le(e.parent(),r.length)}function le(e,t){if(void 0!==e.offset()){var n=t>=2,r=document.getElementById("frm_field_group_controls");if(null===r){if(!n)return;(r=c()).id="frm_field_group_controls",r.setAttribute("role","group"),r.setAttribute("tabindex",0),function(e){var t=document.createElement("span");t.innerHTML='';var n=I("Set Row Layout","formidable");se(t,n),Ht(t,n);var r=document.createElement("span");r.innerHTML='',r.classList.add("frm-move");var o=I("Move Field Group","formidable");se(r,o),Ht(r,o),e.innerHTML="",e.append(t),e.append(r),e.append(function(){var e=d({className:"dropdown"}),t=u({className:"frm_bstooltip frm-hover-icon frm-dropdown-toggle dropdown-toggle",children:[d({child:f({href:"#frm_thick_more_vert_icon"})}),d({className:"screen-reader-text",text:I("Toggle More Options Dropdown","formidable")})]});frmDom.setAttributes(t,{title:I("More Options","formidable"),"data-bs-toggle":"dropdown","data-bs-container":"body","data-bs-display":"static"}),Ht(t,I("More Options","formidable")),e.append(t);var n=c({className:"frm-dropdown-menu dropdown-menu dropdown-menu-right"});return n.setAttribute("role","menu"),e.append(n),e}())}(r),O.append(r)}e.append(r),r.style.display=n?"block":"none"}}function se(e,t){e.setAttribute("data-bs-toggle","tooltip"),e.setAttribute("data-bs-container","body"),e.setAttribute("title",t),e.addEventListener("mouseover",function(){null===e.getAttribute("data-original-title")&&jQuery(e).tooltip()})}function ce(e,t){return function(n){for(var r="function"==typeof t?t(n):t,o=e.length,i=!1,a=0;a0&&document.getElementById("form_id").value!==n||(o.last_row_field_ids=function(){var e=document.querySelector(".edit_field_type_submit");if(!e)return[];for(var t=e.parentNode.children,n=[],r=0;rt.childElementCount-1:i<=jQuery(t.querySelector(".edit_field_type_submit").closest("#frm-show-fields > li")).index()}if(r)return!(t.classList.contains("start_divider")||!we(t.parentElement)&&(!we(t.parentElement.nextElementSibling)||e.parentElement.querySelector("li.frm_field_box:not(.edit_field_type_submit)")));var a=t.classList.contains("start_divider")&&null!==t.closest(".repeat_section"),l=null!==t.closest(".repeat_section");if(a||l){if(e.classList.contains("edit_field_type_gdpr")||"gdpr"===e.id)return!1;if(wp.hooks.applyFilters("frm_deny_drop_in_repeater",!1,e))return!1}if(!a){if(!function(e,t){if(e.length<12)return!0;if(e.length>12)return!1;var n=t.attr("data-fid");return 1===jQuery(e).filter('[data-fid="'.concat(n,'"]')).length}(ie(jQuery(t)),jQuery(e)))return!1;if("divider"===e.id&&t.closest(".start_divider"))return!1}return e.classList.contains("frm-new-field")?function(e,t){var n=e.classList,r=n.contains("frm_tbreak"),o=n.contains("frm_thidden"),i=n.contains("frm_tdivider"),a=n.contains("frm_tform"),l=n.contains("frm_tuser_id");return"frm-show-fields"===t.id||t.classList.contains("start_divider")?!(r||o||i||a)||(!(t.classList.contains("start_divider")||null!==t.closest(".start_divider"))||!a&&!i):!(xe(t)||o||r||l)}(e,t):function(e,t){if(Qe(e))return function(e,t){return!(!t.classList.contains("start_divider")||null!==e.querySelector(".start_divider"))}(e,t);if(e.classList.contains("edit_field_type_break"))return!1;if(t.classList.contains("start_divider"))return function(e){return!e.classList.contains("edit_field_type_form")&&!e.querySelector(".edit_field_type_form")&&!(e.classList.contains("edit_field_type_divider")||e.querySelector(".edit_field_type_divider"))}(e);var n=e.classList.contains("edit_field_type_hidden"),r=e.classList.contains("edit_field_type_user_id");return!n&&!r&&function(e,t){if(xe(t))return!1;if(jQuery(e).children("ul.frm_sorting").not(".start_divider").length>0)return!1;var n=e.classList.contains("edit_field_type_divider")||e.querySelector(".edit_field_type_divider"),r=e.classList.contains("edit_field_type_form");return null===t.closest(".start_divider")||!n&&!r}(e,t)}(e,t)}function we(e){return e&&e.matches("#frm-show-fields > li:last-child")}function Qe(e){return e.classList.contains("frm_field_box")&&!e.classList.contains("form-field")}function xe(e){return null!==e.querySelector(".edit_field_type_break, .edit_field_type_hidden, .edit_field_type_user_id")}function Ee(e){var t=document.getElementById(e),n=jQuery(t),r=[],o=function(e){var t=e.querySelector(".frm_hidden_fdata");e.classList.add("frm_load_now"),null!==t&&r.push(t.innerHTML)};o(t);for(var i=ke(t);i&&r.length<15;)o(i),i=ke(i);jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_load_field",field:r,form_id:E,nonce:frmGlobal.nonce},success:function(e){return function(e,t,n){var r,o;if(0===(e=e.replace(/^\s+|\s+$/g,"")).indexOf("{")){for(r in e=JSON.parse(e)){jQuery("#frm_field_id_".concat(r)).replaceWith(e[r]);var i=document.getElementById("frm_field_id_".concat(r));i&&(i.querySelectorAll("[data-toggle]").forEach(function(e){return e.setAttribute("data-bs-toggle",e.getAttribute("data-toggle"))}),i.querySelectorAll(".frm-dropdown-menu").forEach(function(e){return e.classList.add("dropdown-menu")})),V("#frm_field_id_".concat(r,".edit_field_type_divider ul.frm_sorting")),X(document.getElementById("frm_field_id_".concat(r)))}((o=t.nextAll(".frm_field_loading:not(.frm_load_now)")).length||(o=jQuery(document.getElementById("frm-show-fields")).find(".frm_field_loading:not(.frm_load_now)")).length)&&Ee(o.attr("id")),ci(),Dn(),Ie();var a=new Event("frm_ajax_loaded_field",{bubbles:!1});a.frmFields=n.map(function(e){return JSON.parse(e)}),document.dispatchEvent(a)}else jQuery(".frm_load_now").removeClass(".frm_load_now").html("Error")}(e,n,r)}})}function ke(e){var t;return e.nextElementSibling?e.nextElementSibling:null===(t=e.parentNode)||void 0===t||null===(t=t.closest(".frm_field_box"))||void 0===t||null===(t=t.nextElementSibling)||void 0===t?void 0:t.querySelector(".form-field")}function Ae(){var e=jQuery(this);if(e.hasClass("disabled"))return!1;var t=e.closest(".frmbutton"),n=t.attr("id");if(t.hasClass("frm_at_limit"))return Se(),!1;if(!pe(n)){var r=0;"summary"===n&&(r=b.children('li[data-type="break"]').length>0?1:0);var o=E;return jQuery.ajax({type:"POST",url:ajaxurl,data:_e(n,0,o,r),success:function(e){Le(e);var t=ye(e);t&&wp.hooks.doAction("frm_after_field_added_in_form_builder",{field:e,fieldId:t,fieldType:n,form_id:o})},error:he}),!1}}function Se(){var e=document.querySelector(".frm_wrap");if(e){var t=document.createElement("a");t.setAttribute("data-frmverify",I("This field type has reached its limit.","formidable")),e.append(t),t.click(),t.remove();var n=document.getElementById("frm-confirmed-click");n&&(n.style.display="none")}}function Le(e){document.getElementById("frm_form_editor_container").classList.add("frm-has-fields");var t=Ge(e),n=b[0].querySelector(".edit_field_type_submit");n?jQuery(n.closest(".frm_field_box:not(.form-field)")).before(t):b.append(t),We(e,!0),t.each(function(){$(this.querySelector("ul.frm_sorting")),X(this.querySelector(".form-field"),".frm-move")})}function Ie(){var e=!0,t=document.querySelectorAll(".frmjs_prod_field_opt_cont");b.find("li.edit_field_type_product").length>1&&(e=!1);for(var n=0;n'),o.append(document.createTextNode(" ")),o.append(i),r.append(o),e.append(r)})}(t,!0===e);var n=jQuery(t);n.offset().left>jQuery(window).width()-n.outerWidth()?t.style.left="".concat(-n.outerWidth(),"px"):y&&n.offset().left").addClass("frm_field_box").html(jQuery("
      ").addClass("frm_grid_container frm_sorting").append(e)))}),n}function Ue(e){var t=s("ul",{className:"frm_grid_container frm_sorting"}),n=s("li",{className:"frm_field_box",child:t});e.replaceWith(n),t.append(e),$(t),X(n,".frm-move")}function We(e,t){var n,r,o=/id="(\S+)"/.exec(e),i=document.getElementById(o[1]),l="#".concat(o[1],".edit_field_type_divider ul.frm_sorting.start_divider"),s=jQuery(l),d=i.getAttribute("data-type");n=e,(r=c()).innerHTML=n,r.querySelectorAll(".form-field").forEach(Ve);var u,f,m=!1;if(Po(),V(l),"quantity"===d&&function(e){var t=e.getAttribute("data-fid"),n=document.getElementById("field_options[product_field_".concat(t,"]"));null!==n&&(nt(n),oo(document.getElementById("frm-single-settings-".concat(t))))}(i),"product"!==d&&"quantity"!==d||Ie(),s.length)s.parent(".frm_field_box").children(".frm_no_section_fields").addClass("frm_block");else{var _=jQuery(i).closest("ul.frm_sorting.start_divider");_.length&&(Ar(_),m=!0)}e.includes("frm-collapse-page")&&Dn(),f="frm-newly-added",(u=i).classList?u.classList.add(f):u.className+=" ".concat(f),setTimeout(function(){i.classList.remove("frm-newly-added")},1e3);var p,g=i.querySelector("#frm-last-row-fields-order");if(g&&((p=JSON.parse(g.value))&&"object"===a(p)&&Object.keys(p).forEach(function(e){var t=document.querySelector('input[name="field_options[field_order_'.concat(e,']"]'));t&&(t.value=p[e])})),t){var y=i.getBoundingClientRect(),v=document.getElementById("post-body-content");y.top>=0&&y.left>=0&&y.right<=(window.innerWidth||document.documentElement.clientWidth)&&y.bottom<=(window.innerHeight||document.documentElement.clientHeight)||v.scroll({top:v.scrollHeight,left:0,behavior:"smooth"}),!1===m&&Ar(s)}Ke(),ci(),document.getElementById("frm-show-fields").classList.remove("frm-over-droppable"),function(e){var t=document.getElementById(e);null!=t&&t.dataset.limit&&An(e)>=t.dataset.limit&&t.classList.add("frm_at_limit")}(d),i.querySelectorAll("[data-toggle]").forEach(function(e){return e.setAttribute("data-bs-toggle",e.getAttribute("data-toggle"))}),i.querySelectorAll(".frm-dropdown-menu").forEach(function(e){return e.classList.add("dropdown-menu")});var h=new Event("frm_added_field",{bubbles:!1});h.frmField=i,h.frmSection=l,h.frmType=d,h.frmToggles=m,document.dispatchEvent(h)}function Ve(e){if(e.dataset.fid){var t=document.getElementById("draft_fields");t&&(""===t.value?t.value=e.dataset.fid:t.value.split(",").includes(e.dataset.fid)||(t.value+=",".concat(e.dataset.fid)))}}function $e(e){jQuery("#new_fields .frm-single-settings").addClass("frm_hidden"),jQuery("#frm-options-panel > .frm-single-settings").removeClass("frm_hidden"),Ke(e)}function Ke(e){jQuery("li.ui-state-default.selected").removeClass("selected"),jQuery(".frm-show-field-settings.selected").removeClass("selected"),e||vn()}function Je(){var e=this.value,t=function(e){var t,n=[],r=e.split(""),o=r.length,a=["{","[","("],l={"}":"{",")":"(","]":"["},s=!1;for(t=0;t0||s?"".concat(i.unmatched_parens,"\n\n"):""}(e);t+=function(e,t){var n=function(e,t){var n="";return function(e){return jQuery(e).siblings('label[for^="calc_type"]').children("input").prop("checked")}(t)||/\[(date|time|email|ip)\]/.test(e)&&(n="".concat(i.text_shortcodes,"\n\n")),n}(e,t);return n+=function(e){var t="";return/\[id\]|\[key\]|\[if\s\w+\]|\[foreach\s\w+\]|\[created-at(\s*)?/g.test(e)&&(t+="".concat(i.view_shortcodes,"\n\n")),t}(e)}(e,this),""!==t&&M("".concat(e,"\n\n").concat(t))}function Xe(e,t){for(var n=!1,r=0;r").concat(l[t].fieldName,""))):(n=n?" checked":"",o.push('"));e.innerHTML=o.join("")}function rt(){for(var e=document.querySelectorAll(".frmjs_prod_field_opt"),t=0;t'):(d.innerHTML=_r(c),"TEXTAREA"===d.nodeName&&d.classList.contains("wp-editor-area")&&jQuery(d).trigger("change"),d.classList.contains("frm_primary_label")&&"break"===d.nextElementSibling.getAttribute("data-ftype")&&(d.nextElementSibling.querySelector(".frm_button_submit").textContent=c)))}function at(e){var t=parseFloat(e.getAttribute("max")),n=parseFloat(e.getAttribute("min"));return(t-n)/2+n}function lt(){var e=this.getAttribute("data-fid"),t="";["field_options_max_","frm_format_"].forEach(function(n){var r=document.getElementById(n+e);r&&(t+=r.value)});var n=document.getElementsByName("field_options[type_".concat(e,"]"))[0];"text"===n.options[n.selectedIndex].value&&ct(""!==t,".frm_invalid_msg".concat(e))}function st(){var e=this.id.replace("frm_","").replace("req_field_",""),t=this.checked,n=jQuery("#field_label_".concat(e," .frm_required"));if(ct(t,".frm_required_details".concat(e)),t){var r=jQuery('input[name="field_options[required_indicator_'.concat(e,']"]'));""===r.val()&&r.val("*"),n.removeClass("frm_hidden")}else n.addClass("frm_hidden")}function ct(e,t){var n=jQuery(t);if(e)n.fadeIn("fast").closest(".frm_validation_msg").fadeIn("fast");else{var r=n.fadeOut("fast").closest(".frm_validation_box"),o=r.css("display","block").children(":not(".concat(t,"):visible")).length;r.css("display",""),0===o&&n.closest(".frm_validation_msg").fadeOut("fast")}}function dt(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=jQuery(".frm_unique_details".concat(e));if(this.checked){t.fadeIn("fast").closest(".frm_validation_msg").fadeIn("fast");var n=jQuery(".frm_unique_details".concat(e," input"));""===n.val()&&n.val(i.default_unique)}else{var r=t.fadeOut("fast").closest(".frm_validation_box"),o=r.css("display","block").children(":not(.frm_unique_details".concat(e,"):visible")).length;r.css("display",""),0===o&&t.closest(".frm_validation_msg").fadeOut("fast")}}function ut(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=jQuery(this).val(),n=jQuery(document.getElementById("frm_field_id_".concat(e)));if(ct(""!==t,".frm_conf_details".concat(e)),""!==t){var r=jQuery(".frm_validation_box .frm_conf_details".concat(e," input"));""===r.val()&&r.val(i.default_conf),function(e){var t=document.getElementsByName("field_options[type_".concat(e,"]"))[0].value;ft(document.getElementById("field_description_".concat(e)),"field_options[description_".concat(e,"]"),i["enter_".concat(t)]),ft(document.getElementById("conf_field_description_".concat(e)),"field_options[conf_desc_".concat(e,"]"),i["confirm_".concat(t)])}(e),"inline"===t?n.removeClass("frm_conf_below").addClass("frm_conf_inline"):"below"===t&&n.removeClass("frm_conf_inline").addClass("frm_conf_below"),jQuery(".frm-conf-box-".concat(e)).removeClass("frm_hidden")}else jQuery(".frm-conf-box-".concat(e)).addClass("frm_hidden"),setTimeout(function(){n.removeClass("frm_conf_inline frm_conf_below")},200)}function ft(e,t,n){e.innerHTML===i.desc&&(e.innerHTML=n,document.getElementsByName(t)[0].value=n)}function mt(e){var t=JSON.parse(this.getAttribute("data-opts"));return e.preventDefault(),document.getElementById("frm_bulk_options").value=t.join("\n"),!1}function _t(){var e,t,n,r=jQuery(this).closest(".frm-single-settings").data("fid"),o=jQuery("#frm_field_".concat(r,"_opts .frm_option_template")).prop("outerHTML"),i=jQuery(this).data("opttype"),a=0,l="000",s=function(e){for(var t=0,n=0,r=jQuery("#frm_field_".concat(e,"_opts li")),o=0;to||"000"===o)&&(o=n)}return o}(r);if(s!==l&&(a=s+1),"other"===i){document.getElementById("other_input_".concat(r)).value=1;var c=jQuery(this).data("ftype");"radio"!==c&&"select"!==c||jQuery(this).fadeOut("slow");var d={action:"frm_add_field_option",field_id:r,opt_key:a,opt_type:i,nonce:frmGlobal.nonce};jQuery.post(ajaxurl,d,function(e){jQuery(document.getElementById("frm_field_".concat(r,"_opts"))).append(e),ir(r)})}else{o=(o=(o=(o=(o=o.replace(new RegExp('optkey="'.concat(l,'"'),"g"),'optkey="'.concat(a,'"'))).replace(new RegExp("-".concat(l,"_"),"g"),"-".concat(a,"_"))).replace(new RegExp("-".concat(l,'"'),"g"),"-".concat(a,'"'))).replace(new RegExp("\\[".concat(l,"\\]"),"g"),"[".concat(a,"]"))).replace("frm_hidden frm_option_template",""),Di(r,o={newOption:o});var u=this.closest(".frm_single_option");u?u.after(o.newOption):jQuery("#frm_field_".concat(r,"_opts")).append(o.newOption),ir(r)}null==(n=(e=this).classList.contains("frm-add-option-legacy")?null===(t=e.closest(".frm-collapse-me"))||void 0===t?void 0:t.querySelector(".frm_sortable_field_opts"):e.closest(".frm_sortable_field_opts"))||n.querySelectorAll(".frm_remove_tag.frm_disabled").forEach(function(e){return e.classList.remove("frm_disabled")}),Po()}function pt(){gt(jQuery(this).closest(".frm-single-settings").data("fid"),this.value)}function gt(e,t){var n=jQuery(".frm_multiple_cont_".concat(e));"select"===t?n.fadeIn("fast"):n.fadeOut("fast")}function yt(){var e=jQuery(this).closest(".frm-single-settings").data("fid");qi(jQuery(".field_".concat(e,"_option_key"))),jQuery(".field_".concat(e,"_option")).toggleClass("frm_with_key")}function vt(){var e=jQuery(this).closest(".frm-single-settings"),t=e.data("fid"),n=document.getElementById("frm_field_id_".concat(t));wt(jQuery(this)),qi(jQuery(".field_".concat(t,"_image_id"))),qi(jQuery(".frm_toggle_image_options_".concat(t))),qi(jQuery(".frm_image_size_".concat(t))),qi(jQuery(".frm_alignment_".concat(t))),qi(jQuery(".frm-add-other#frm_add_field_".concat(t)));var r=vr(t);r?(bt(t,"inline"),ht(n),imageSize=or(t),n.classList.add("frm_image_options"),n.classList.add("frm_image_size_".concat(imageSize)),e.find(".frm-bulk-edit-link").hide()):(n.classList.remove("frm_image_options"),ht(n),bt(t,"block"),e.find(".frm-bulk-edit-link").show()),wp.hooks.doAction("frm_image_options_toggled",e[0],r)}function ht(e){e.classList.remove("frm_image_size_","frm_image_size_small","frm_image_size_medium","frm_image_size_large","frm_image_size_xlarge")}function bt(e,t){jQuery("#field_options_align_".concat(e)).val(t).trigger("change")}function jt(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=document.getElementById("frm_field_id_".concat(e));Qt(),vr(e)&&(ht(t),t.classList.add("frm_image_options"),t.classList.add("frm_image_size_".concat(or(e))))}function wt(e){var t=e.closest(".frm-single-settings").data("fid");jQuery(".field_".concat(t,"_option")).trigger("change")}function Qt(){wt(jQuery(this))}function xt(e){var t,n=e.target.closest(".frm_image_preview_wrapper");if(null!==(t=wp)&&void 0!==t&&t.media&&(null==n||!n.dataset.upgrade)){e.preventDefault(),wp.media.model.settings.post.id=0;var r=wp.media.frames.file_frame=wp.media({multiple:!1,library:{type:["image"]}});r.on("select",function(){var e=r.state().get("selection").first().toJSON(),t=n.querySelector("img");t.setAttribute("src",e.url),t.classList.remove("frm_hidden"),t.removeAttribute("srcset"),n.querySelector(".frm_image_preview_frame").style.display="block",n.querySelector(".frm_image_preview_title").textContent=e.filename,n.querySelector(".frm_choose_image_box").style.display="none";var o=jQuery(n);o.siblings('input[name*="[label]"]').data("frmimgurl",e.url),o.find("input.frm_image_id").val(e.id).trigger("change"),wp.media.model.settings.post.id=0}),r.open()}}function Et(e){var t=jQuery(this).closest(".frm_image_preview_wrapper");e.preventDefault(),e.stopPropagation(),t.find("img").attr("src",""),t.find(".frm_image_preview_frame").hide(),t.find(".frm_choose_image_box").show(),t.find("input.frm_image_id").val(0).trigger("change")}function kt(){var e=jQuery(this).closest("li").find(".frm_form_fields select");this.checked?e.attr("multiple","multiple"):e.removeAttr("multiple")}function At(){var e=document.getElementById("dropform-search-input");null!==e&&setTimeout(function(){e.focus()},100)}function St(e){var t=e.target,n=t.closest(".frm_warning_style");jQuery(n).fadeOut(400,function(){return n.remove()});var r=t.dataset.action,o=new FormData;p(r,o)}function Lt(e){e.preventDefault()}function It(){var e,t,n=this.parentNode,r=n.parentNode,o=r.querySelectorAll("li:not(.frm_hidden)");2===o.length&&(null===(e=Array.from(o).find(function(e){return e!==n}).querySelector(".frm_remove_tag"))||void 0===e||e.classList.add("frm_disabled"));var i=this.getAttribute("data-fid");jQuery(n).fadeOut("fast",function(){wp.hooks.doAction("frm_before_delete_field_option",this),jQuery(n).remove(),jQuery(r).find(".frm_other_option").length<1&&(null!==(t=document.getElementById("other_input_".concat(i)))&&(t.value=0),jQuery("#other_button_".concat(i)).fadeIn("fast"))}),Po()}function Bt(){var e=jQuery(this);if(e.is(":checked")){var t,n=function(){e.off("mouseup",t)};t=function(){setTimeout(function(){e.prop("checked",!1)},0),n()},e.on("mouseup",t),e.one("mouseout",n)}}function qt(){this.value===i.new_option&&(this.setAttribute("data-value-on-focus",this.value),this.value="")}function Ct(e){return B(I("Are you sure you want to delete these %1$s selected field(s)?","formidable"),e)}function Nt(){var e=i.conf_delete,t=this.parentNode.parentNode.parentNode.parentNode.parentNode,n=t.parentNode,r=jQuery(this).closest("li.form-field"),o=r.data("fid");if("divider"===r.data("ftype")){var a=document.querySelectorAll(".frm-field-group-hover-target .start_divider .frm_field_box"),l=0;a.forEach(function(e){var t=e.querySelectorAll("li.form-field");t&&(l+=t.length)}),l&&(e=Ct(++l))}return n.classList.contains("frm-section-collapsed")||n.classList.contains("frm-page-collapsed")||("divider_section_only"===t.className&&(e=i.conf_delete_sec),this.setAttribute("data-frmverify",e),this.setAttribute("data-frmverify-btn","frm-button-red"),this.setAttribute("data-deletefield",o),Ne(),D(this)),!1}function Tt(){this.closest("li.form-field").click()}function Ot(){var e=document.querySelector(".frm-field-group-hover-target");if(null!==e){e.classList.add("frm-selected-field-group");var t=document.createElement("div");t.classList.add("frm-delete-field-groups","frm_hidden"),document.body.append(t),t.click()}}function Ft(){var e=document.querySelector(".frm-field-group-hover-target");if(null!==e){var t="frm_field_group_".concat(be()),n=document.createTextNode("");Ue(n);var r=jQuery(n).closest("li").get(0);r.classList.add("frm_hidden");var o=r.querySelector("ul");o.id=t,jQuery(e.closest("li.frm_field_box")).after(r);var i=ie(jQuery(e)),a=[],l=[],s=i.length,c={},d=0;jQuery(r).on("frm_added_duplicated_field_to_row",function(e,t){if(c[jQuery(t.duplicatedFieldHtml).attr("data-fid")]=t.originalFieldId,!(s>++d)){var n=jQuery(o),i=ie(n);l.forEach(function(e){e.remove()});for(var u=0;u6)return t.append(Gt(e,"even")),t;if(5!==e&&t.append(Gt(e,"even")),e%2==1&&t.append(Gt(e,"middle")),e<6)t.append(Gt(e,"left")),t.append(Gt(e,"right"));else{var n=c();n.classList.add("frm_fourth"),t.prepend(n)}return t}(e),l=t.closest("ul.frm_sorting");return null!==l&&function(e,t){for(var n=t.children.length,r=0;r6?"frm_full":e%2==1?"frm_fourth":"frm_third"}return r.classList.add(n),r.setAttribute("layout-type",t),r.append(function(e,t){for(var n=Xt(),r=0;r6?"frm1":[2,3,4,6].includes(e)?sn(12/e):5===e&&void 0!==t?0===t?"frm4":"frm2":"frm12"}function Kt(e){switch(e){case 2:case 3:return"frm3";case 4:case 5:return"frm2";case 6:return"frm1";default:return"frm12"}}function Jt(e){switch(e){case 2:return"frm9";case 3:case 4:return"frm6";case 5:return"frm4";case 6:return"frm7";default:return"frm12"}}function Xt(){var e=c();return e.classList.add("frm_grid_container"),e}function Yt(){var e=document.querySelector(".frm-field-group-hover-target");if(e){var t=this.getAttribute("layout-type");ae(ie(jQuery(e)).first(),t),fn()}}function Zt(){var e=en(),t=this.getAttribute("layout-type");ae(ie(e).first(),t),vn()}function en(){var e=jQuery(".frm-selected-field-group"),t=e.first();return e.not(t).each(function(){ie(jQuery(this)).each(function(){var e=this.parentNode;ie(t).last().after(this),jQuery(e).children("li.form-field").length||e.closest("li.frm_field_box").remove()})}),Er(),ae(ie(t).first()),t}function tn(){null===this.closest(".frm-merge-fields-into-row")&&nn(ie(jQuery(".frm-field-group-hover-target")))}function nn(e){var t=e.length,n=document.getElementById("frm_field_group_popup");n.innerHTML="";var r=c();r.style.padding="0 24px";var o=$t(5===t?6:t),i=c();if(i.style.padding="20px 0",i.classList.add("frm_grid_container"),5===t){var a=document.createElement("span");a.classList.add("frm1"),i.append(a)}var l=wn()>0&&an($t(t));!1!==l&&l>=12&&(l=Math.floor(12/t));for(var s=0;s',""),t);e.prepend(n),document.getElementById("frm-field-group-message-dismiss").addEventListener("click",function(){pn(document.getElementById("frm-field-group-message"))})}}(),"ul"===e.originalEvent.target.nodeName.toLowerCase()){var t=document.querySelector(".frm-field-group-hover-target");if(t){var n=e.ctrlKey||e.metaKey,r=e.shiftKey,o=t.classList.contains("frm-selected-field-group"),i=function(){var e=jQuery(".frm-selected-field-group");if(e.length)return e;var t=gn();if(t){var n=t.closest("ul");if(n&&1===ie(jQuery(n)).length)return n.classList.add("frm-selected-field-group"),jQuery(n)}return jQuery()}(),a=i.length;if(n||r){var l=gn();if(null===l||jQuery(l).siblings("li.form-field").length||(l.parentNode.classList.add("frm-selected-field-group"),++a),n){if(o)return--a,t.classList.remove("frm-selected-field-group"),void yn(a);++a}else if(r&&!o){++a;var s=i.first();(s.parent().index()=2||1===e&&ie(jQuery(document.querySelector(".frm-selected-field-group"))).length>1?function(){var e=document.getElementById("frm_field_multiselect_popup");if(null!==e)return e.classList.toggle("frm-unmergable",!bn()),e;(e=c()).id="frm_field_multiselect_popup",bn()||e.classList.add("frm-unmergable");var t=c();t.classList.add("frm-merge-fields-into-row"),t.textContent=I("Merge into row","formidable");var n=document.createElement("a");n.style.marginLeft="5px",n.classList.add("frm_icon_font","frm_arrowdown6_icon"),n.setAttribute("href","#"),t.append(n),e.append(t);var r=c();r.classList.add("frm-multiselect-popup-separator"),e.append(r);var o=c();o.classList.add("frm-delete-field-groups"),o.append(Rt("frm_trash_svg")),e.append(o),document.getElementById("post-body-content").append(e),jQuery(e).hide().fadeIn()}():hn(),Fe()}function vn(e){if(void 0!==e){if(null!==e.originalEvent.target.closest("#frm-show-fields"))return;if(e.originalEvent.target.classList.contains("frm-merge-fields-into-row"))return;if(null!==e.originalEvent.target.closest(".frm-merge-fields-into-row"))return;if(e.originalEvent.target.classList.contains("frm-custom-field-group-layout"))return;if(e.originalEvent.target.classList.contains("frm-cancel-custom-field-group-layout"))return}jQuery(".frm-selected-field-group").removeClass("frm-selected-field-group"),jQuery(document).off("click",vn),hn()}function hn(){var e=document.getElementById("frm_field_multiselect_popup");null!==e&&e.remove()}function bn(){var e=document.querySelectorAll(".frm-selected-field-group"),t=e.length;if(1===t)return!1;for(var n=0,r=0;r12)return!1}return!0}function jn(e){if(null===e.originalEvent.target.closest("#frm_field_group_popup")&&!e.originalEvent.target.classList.contains("frm-custom-field-group-layout")){var t=zt(wn(),document.querySelector(".frm-selected-field-group").firstChild);this.append(t)}}function wn(){var e=0;return jQuery(document.querySelectorAll(".frm-selected-field-group")).each(function(){e+=ie(jQuery(this)).length}),e}function Qn(){var e,t=(e=[],jQuery(".frm-selected-field-group > li.form-field").each(function(){e.push(this.dataset.fid)}),e),n=function(e){return function(t){t.preventDefault(),function(e){e.forEach(function(e){En(e)})}(e)}}(t),r=document.getElementById("frm_field_multiselect_popup");null!==r&&r.remove(),this.setAttribute("data-frmverify",Ct(t.length)),D(this);var o=document.getElementById("frm-confirmed-click");null==o||o.removeAttribute("data-deletefield"),jQuery(o).on("click",n),jQuery("#frm_confirm_modal").one("dialogclose",function(){jQuery(o).off("click",n)})}function xn(){En(this.getAttribute("data-deletefield"))}function En(e){var t=jQuery("#frm_field_id_".concat(e));kn(e),t.hasClass("edit_field_type_divider")&&t.find("li.frm_field_box[data-fid]").each(function(){kn(this.getAttribute("data-fid"))}),kr()}function kn(e){jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_delete_field",field_id:e,nonce:frmGlobal.nonce},success:function(){var t,n,r,o=jQuery(document.getElementById("frm_field_id_".concat(e))),i=jQuery("#frm-single-settings-".concat(e));i.is(":visible")&&(null===(t=document.querySelector(".frm-settings-panel .frm-tabs-navs ul > li:first-child"))||void 0===t||t.click(),document.querySelector("#frm-options-panel .frm-single-settings").classList.remove("frm_hidden")),function(e){var t=e[0].querySelectorAll(".frm-inline-modal[data-fills]");t.length&&t.forEach(function(e){e.classList.add("frm_hidden"),e.removeAttribute("data-fills"),e.closest("form").append(e)})}(i),i.remove(),o.fadeOut("slow",function(){var e,t=o.closest(".start_divider"),n=o.data("type"),r=o.siblings("li.form-field");if(r.length||(o.is(".edit_field_type_end_divider")?r.length=o.closest("li.form-field").siblings():e=o.closest("ul.frm_sorting").parent()),o.remove(),"break"===n?Dn():"product"===n&&(Ie(),rt()),r.length?ae(r.first()):e.remove(),0===jQuery("#frm-show-fields li").length||function(){if(b.get(0).childElementCount>1)return!1;var e=b.get(0).firstElementChild.firstElementChild.querySelectorAll("li.frm_field_box");return!(e.length>1)&&e[0].classList.contains("edit_field_type_submit")}()){var i=document.getElementById("frm_form_editor_container");i.classList.remove("frm-has-fields"),i.classList.add("frm-empty-fields")}else t.length&&Ar(t);H()}),o.length&&(n=o.data("type"),(r=document.getElementById(n))&&r.dataset.limit&&An(n)-11)for(document.getElementById("frm-fake-page").style.display="block",e=0;e200)&&(M(i.repeat_limit_min),this.value="")}function Zn(){var e=this.value;""!==e&&(e<1||e>200)&&(M(i.checkbox_limit),this.value="")}function er(e,t){jQuery(e).closest(".frm_field_box").find(".frm_".concat(t,"_form_row .frm_repeat_label")).text(e.value)}function tr(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=this.value,n=document.getElementById("frm_show_selected_fields_".concat(e)),r=document.getElementById("frm_show_selected_forms_".concat(e));jQuery(r).find("select").val(""),"form"===t?(r.style.display="inline",function(e){if(null!==e)for(;e.firstChild;)e.firstChild.remove()}(n)):(n.style.display="none",r.style.display="none",xr(t,e))}function nr(){var e=rr(this);if(e){var t=jQuery(this).closest(".frm_single_option");!function(e,t,n){var r=n.data("optkey"),o=yr(e),i=jQuery('label[for="field_'.concat(t,"-").concat(r,'"]')),a="field_options[options_".concat(e,"][").concat(r,"]"),l=jQuery('input[name="'.concat(a,'[label]"]'));if(i.length<1)return ir(e),void(n.find('input[name^="default_value_"]').is(":checked")&&l.length>0&&jQuery('select[name^="item_meta['.concat(e,']"]')).val(l.val()));var s,d=i.children("input");if(s=l.length<1?(l=jQuery('input[name="'.concat(a,'"]'))).val():o?jQuery('input[name="'.concat(a,'[value]"]')).val():l.val(),!(l.length<1)){var u=i[0].childNodes;if(vr(e)){var f=function(e,t,n){var r,o=e.find("img");o&&(r=o.attr("src"));var i=hr(t);return pr(n.val(),i,r)}(n,e,l),m=i.find(".frm_image_option_container");m.length>0?m.replaceWith(f):(u[u.length-1].nodeValue="",i.append(f))}else{var _=!1;u.forEach(function(t,n){if(!1===_)"INPUT"===t.tagName&&(_=n);else if(n===_+1){var r="";!function(e){var t=document.getElementsByName("field_options[image_options_".concat(e,"]")),n=Array.from(t).find(function(e){return e.checked&&"buttons"===e.value});return void 0!==n}(e)?t.nodeValue=" ".concat(l.val()):(r=c({className:"frm_label_button_container",text:" ".concat(l.val())}),i[0].replaceChild(r,t))}else t.remove()})}d.val(s),defaultVal=n.find('input[name^="default_value_"]'),d.prop("checked",!!defaultVal.is(":checked"))}}(e.fieldId,e.fieldKey,t)}}function rr(e){var t=jQuery(e).closest(".frm_sortable_field_opts");return!!t.length&&{fieldId:t.attr("id").replace("frm_field_","").replace("_opts",""),fieldKey:t.data("key")}}function or(e){var t,n=document.getElementById("field_options_image_size_".concat(e)),r="";return null!==n&&""!==(t=n.value)&&(r=t),r}function ir(e){var t=jQuery('[name^="item_meta['.concat(e,']"]'));if(!(t.length<1)){if(t.is("select")){var n=document.getElementById("frm_placeholder_".concat(e));null===n||""===n.value?dr(t[0],{sourceID:e}):dr(t[0],{sourceID:e,placeholder:n.value})}else{var r=fr(e);jQuery("#field_".concat(e,"_inner_container > .frm_form_fields")).html("");for(var o=rr(jQuery("#frm_delete_field_".concat(e,"-000_container"))),i=jQuery("#field_".concat(e,"_inner_container > .frm_form_fields")),a=vr(e),l=a?or(e):"",s=a?"frm_image_option frm_image_".concat(l," "):"",c=Oi(e),d="hidden"===t.attr("type")?t.data("field-type"):t.attr("type"),u=0;u=0;u--)d();var f=c.querySelector('option[value=""]');null!==f&&c.prepend(f)}}}function sr(e,t,n,r){null!==t||e.querySelector('option[value="'.concat(n,'"]'))||((t=frmDom.tag("option",{text:r})).value=n),e.prepend(t)}function cr(e,t,n,r,o,i){var a="",l=t.key.includes("other"),s="field_".concat(r,"-").concat(t.key),c="scale"===e?"radio":e,d='');return this.getSingle=function(){return""!==(a=wp.hooks.applyFilters("frm_admin.build_single_option_template",a,{opt:t,type:e,fieldId:n,classes:i,id:s}))?a:'
      ").concat(l?d:"","
      ")},this.getSingle()}function dr(e,t){if(null!==e){var n=t.sourceID,r=t.placeholder,o=Oi(n),i=t.other;!function(e){var t;if(void 0!==e.options)for(t=e.options.length-1;t>=0;t--)e.remove(t)}(e);for(var a=fr(n,e.id.includes("frm_field_logic_opt")),l=void 0!==r,s=0;s1&&void 0!==arguments[1]&&arguments[1],s=[],c=jQuery('input[name^="field_options[options_'.concat(e,']"]')).filter('[name$="[label]"], [name*="[other_"]'),d=Oi(e),u=hr(e),f=vr(e),m=yr(e);for(t=0;t0||(o=n=c[t].value,i=c[t].name.replace("field_options[options_".concat(e,"]["),"").replace("[label]","").replace("]",""),m&&(r=c[t].name.replace("[label]","[value]"),n=jQuery('input[name="'.concat(r,'"]')).val(),l&&""===o&&(o=""!==n?n:frm_admin_js.no_label)),f&&(o=pr(o,u,mr(c[t]))),a={saved:n,label:o=frmAdminBuild.hooks.applyFilters("frm_choice_field_label",o,e,c[t],f),checked:gr(c[t].id),key:i},d&&(r=c[t].name.replace("[label]","[price]"),a.price=jQuery('input[name="'.concat(r,'"]')).val()),s.push(a));return s}function mr(e){var t=jQuery(e).siblings(".frm_image_preview_wrapper");if(!t.length)return"";var n=t.find("img");return n.length?n.attr("src"):""}function _r(e){(e instanceof Element||e instanceof Document)&&(e=e.outerHTML);var t=jQuery.parseHTML(e).reduce(function(e,t){var n=frmDom.cleanNode(t);return"#text"===n.nodeName?e+n.textContent:e+n.outerHTML},"");return t!==e?_r(t):t}function pr(e,t,n){var r,o=e;o=_r(o),n?r=m({src:n,alt:o}):(r=c({className:"frm_empty_url"})).innerHTML=i.image_placeholder_icon;var a=t?" frm_label_with_image":"",l=s("span",{className:"frm_text_label_for_image_inner"});return l.innerHTML=o,s("span",{className:"frm_image_option_container".concat(a),children:[r,s("span",{className:"frm_text_label_for_image",child:l})]})}function gr(e){var t=jQuery("#".concat(e));if(0===t.length)return!1;var n=t.siblings("input[type=checkbox]");return n.length&&n.prop("checked")}function yr(e){return br("separate_value_".concat(e))}function vr(e){for(var t=!1,n=document.getElementsByName("field_options[image_options_".concat(e,"]")),r=0;r=0&&(t.splice(n,1),e.val(t),e.next(".btn-group").find('.multiselect-container input[value=""]').prop("checked",!1))}(jQuery(this))}function Br(e){e.val(""),e.next(".btn-group").find('.multiselect-container input[value!=""]').prop("checked",!1)}function qr(){jQuery(".frm-hide-empty").each(function(){0===jQuery(this).text().trim().length&&jQuery(this).remove()})}function Cr(e){e.preventDefault(),function(e,t,n){var r=document.getElementById(e.getAttribute("data-open")),o=jQuery(e).closest("p,ul"),i=void 0!==t;if(o.hasClass("frm-open"))o.removeClass("frm-open"),r.classList.add("frm_hidden");else{if(i||(t=Wo(e)),null!==t){if(!i){var a=n.key;"Enter"!==a&&" "!==a&&t.focus()}o.after(r),r.setAttribute("data-fills",t.id.replace("-proxy-input","")),0===r.id.indexOf("frm-calc-box")&&Ze(r,!0)}o.addClass("frm-open"),r.classList.remove("frm_hidden"),wp.hooks.doAction("frm_show_inline_modal",r,e)}}(this,void 0,e)}function Nr(e){e.preventDefault(),this.parentNode.classList.add("frm_hidden"),jQuery('.frm-open [data-open="'.concat(this.parentNode.id,'"]')).closest(".frm-open").removeClass("frm-open")}function Tr(e){var t=e.target;t.closest(".frm-inline-modal.frm-modal-no-dismiss")||t.closest(".frm-show-inline-modal")||t.closest("#frm_adv_info")||t.closest(".frm-token-proxy-input")||document.querySelectorAll(".frm-inline-modal.frm-modal-no-dismiss:not(.frm_hidden)").forEach(function(e){e.classList.add("frm_hidden"),e.previousElementSibling.classList.remove("frm-open")})}function Or(){var e,t=this.getAttribute("data-frmchange").split(",");for(e=0;e').before('')}function Yr(){var e="success";"options[edit_action]"===this.name&&(e="edit");var t=jQuery(this).val();jQuery(".".concat(e,"_action_box")).hide(),"redirect"===t?jQuery(".".concat(e,"_action_redirect_box.").concat(e,"_action_box")).fadeIn("slow"):"page"===t?jQuery(".".concat(e,"_action_page_box.").concat(e,"_action_box")).fadeIn("slow"):jQuery(".".concat(e,"_action_message_box.").concat(e,"_action_box")).fadeIn("slow")}function Zr(e){if(!function(e){var t=jQuery(e),n=t.closest(".frm_form_action_settings"),r=n.find(".widget-inside");if(r.find("p, div, table").length)return!1;var o=n.find(".widget-top");return o.on("frm-action-loaded",function(){t.trigger("click"),n.removeClass("open"),r.hide()}),o.trigger("click"),!0}(e.target)){var t=e.target.closest(".frm_form_action_settings"),n=t.querySelectorAll(".wp-editor-area");n.length&&n.forEach(function(e){tinymce.EditorManager.execCommand("mceRemoveEditor",!0,e.id)});var r=jQuery(t).clone(),o=r.attr("id").replace("frm_form_action_",""),i=eo(o);r.find(".frm_action_id, .frm-btn-group").remove(),r.find('input[name$="['.concat(o,'][ID]"]')).val(""),r.find(".widget-inside").hide(),r.find("input[type=text], textarea, input[type=number]").prop("defaultValue",function(){return this.value}),r.find("input[type=checkbox], input[type=radio]").prop("defaultChecked",function(){return this.checked});var a=new RegExp("\\[".concat(o,"\\]"),"g"),l=new RegExp("_".concat(o,'"'),"g"),s=new RegExp("-".concat(o,'"'),"g"),d=new RegExp('"'.concat(o,'"'),"g"),u=r.html().replace(a,"[".concat(i,"]")).replace(l,"_".concat(i,'"'));u=u.replace(s,"-".concat(i,'"')).replace(d,'"'.concat(i,'"'));var f=c({id:"frm_form_action_".concat(i),className:r.get(0).className});f.setAttribute("data-actionkey",i),f.innerHTML=u,f.querySelectorAll(".wp-editor-wrap, .wp-editor-wrap *").forEach(function(e){"string"==typeof e.className&&(e.className=e.className.replace(o,i)),e.id=e.id.replace(o,i)}),f.classList.remove("open"),document.getElementById("frm_notification_settings").append(f),n.length&&(n.forEach(function(e){frmDom.wysiwyg.init(e)}),f.querySelectorAll(".wp-editor-area").forEach(function(e){frmDom.wysiwyg.init(e)})),f.classList.contains("frm_single_on_submit_settings")&&f.querySelector("input.frm-page-search")&&yi(f),ci(),wp.hooks.doAction("frm_after_duplicate_action",f)}}function eo(e){var t=parseInt(e,10)+11;return null!==document.getElementById("frm_form_action_".concat(t))&&(t=eo(++t)),t}function to(){var e,t=jQuery(this).data("actiontype");if(!co(t)){var n=(e=Ln(document.querySelectorAll(".frm_form_action_settings"),"frm_form_action_"),void 0!==document.getElementById("frm_form_action_".concat(e))&&(e+=100),S>=e&&(e=S+1),S=e,e),r=E,o=document.createElement("div");o.classList.add("frm_single_".concat(t,"_settings"));var i=document.getElementById("frm_notification_settings");i.append(o),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_form_action",type:t,list_id:n,form_id:r,nonce:frmGlobal.nonce},success:function(e){Po(),o.remove(),document.querySelectorAll(".frm_form_action_settings.open").forEach(function(e){return e.classList.remove("open")});var r=c();r.innerHTML=e;var a=r.querySelector(".widget-top");Array.from(r.children).forEach(function(e){return i.append(e)}),jQuery(".frm_form_action_settings").fadeIn("slow");var l=document.getElementById("frm_form_action_".concat(n));l.classList.add("open"),document.getElementById("post-body-content").scroll({top:l.offsetTop+10,left:0,behavior:"smooth"}),so(t),Xr("#frm_form_action_".concat(n)),ci(),yi(l),a&&jQuery(a).trigger("frm-action-loaded"),frmAdminBuild.hooks.doAction("frm_added_form_action",l)}})}}function no(){var e=document.getElementById("frm_email_addon_menu").classList,t=document.getElementById("actions-search-input");e.contains("frm-all-actions")?(e.remove("frm-all-actions"),e.add("frm-limited-actions")):(e.add("frm-all-actions"),e.remove("frm-limited-actions")),t.value="",ki(t,"input")}function ro(e){e.on("Change",function(){!function(e){(function(){var e=document.querySelector(".frm-single-settings:not(.frm_hidden)");if(!e)return!1;var t=e.querySelector(".wp-editor-wrap");return null!==t&&t.classList.contains("tmce-active")})()&&!tinyMCE.activeEditor.isHidden()&&(e.targetElm.value=e.getContent(),jQuery(e.targetElm).trigger("change"))}(e)})}function oo(e){var t=this;if(null!==e)return this.fragment=document.createDocumentFragment(),this.initOnceInAllInstances=function(){void 0===oo.prototype.endMarker&&(oo.prototype.endMarker=document.getElementById("frm-end-form-marker"))},this.append=function(e){var n=null!==e?e.parentElement.classList:"";null!==e&&(n.contains("frm_field_box")||n.contains("divider_section_only"))&&t.fragment.append(e)},this.moveFields=function(){j.insertBefore(t.fragment,oo.prototype.endMarker)},this.initOnceInAllInstances(),void 0!==e?(this.append(e),void this.moveFields()):{append:this.append,moveFields:this.moveFields}}function io(){var e=jQuery(this).closest(".frm_form_action_settings").data("actionkey"),t=this.getAttribute("data-emailrow");jQuery("#frm_form_action_".concat(e," .frm_").concat(t,"_row")).fadeIn("slow"),jQuery(this).fadeOut("slow")}function ao(){var e=jQuery(this).closest(".frm_form_action_settings"),t=this.getAttribute("data-emailrow"),n=".frm_".concat(t,"_row"),r=".frm_".concat(t,"_button");jQuery(e).find(r).fadeIn("slow"),jQuery(e).find(n).fadeOut("slow",function(){jQuery(e).find("".concat(n," input")).val("")})}function lo(){var e=jQuery(this).closest(".frm_form_action_settings"),t=".frm_from_to_match_row";e.find('input[name$="[post_content][from]"]').val()===e.find('input[name$="[post_content][email_to]"]').val()?jQuery(e).find(t).fadeIn("slow"):jQuery(e).find(t).fadeOut("slow")}function so(e){var t,n,r=document.querySelectorAll(".frm_".concat(e,"_action"));co(e)?(t=r,n=uo(e)>0,t.forEach(function(e){e.classList.remove("frm_active_action"),e.classList.add("frm_inactive_action"),n&&e.classList.add("frm_already_used")})):r.forEach(function(e){e.querySelector(".frm_show_upgrade")||(e.classList.remove("frm_inactive_action","frm_already_used"),e.classList.add("frm_active_action"))})}function co(e){var t=function(e){return jQuery(".frm_single_".concat(e,"_settings")).length}(e)>=uo(e),n={type:e};return wp.hooks.applyFilters("frm_action_at_limit",t,n)}function uo(e){return parseInt(jQuery(".frm_".concat(e,"_action")).data("limit"),10)}function fo(){var e=i.only_one_action,t=this.dataset.limit;void 0!==t&&((t=parseInt(t))>1?e=e.replace(1,t).trim():e+=" ".concat(i.edit_action_text)),M(e)}function mo(){var e=jQuery(this).data("emailkey"),t=jQuery(this).closest(".frm_form_action_settings").find(".frm_action_name").val(),n=document.getElementById("form_id").value,r=document.getElementById("frm_logic_row_".concat(e)),o=Ln(r.querySelectorAll(".frm_logic_row"),"frm_logic_".concat(e,"_")),i=c({id:"frm_logic_".concat(e,"_").concat(o),className:"frm_logic_row frm_hidden"});return r.append(i),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_form_logic_row",email_id:e,form_id:n,meta_name:o,type:t,nonce:frmGlobal.nonce},success:function(t){jQuery(document.getElementById("logic_link_".concat(e))).fadeOut("slow",function(){i.insertAdjacentHTML("beforebegin",t),i.remove(),jQuery(r).parent(".frm_logic_rows").fadeIn("slow")})}}),!1}function _o(){var e=jQuery("select.frm_single_post_field");e.css("border-color","");var t=this,n=jQuery(t).val();if(""===n||"checkbox"===n)return!1;e.each(function(){if(jQuery(this).val()===n&&this.name!==t.name)return this.style.borderColor="red",jQuery(t).val(""),M(i.field_already_used),!1})}function po(){var e=jQuery(this).val();""===e?(jQuery(".frm_post_content_opt, select.frm_dyncontent_opt").hide().val(""),jQuery(".frm_dyncontent_opt").hide()):"post_content"===e?(jQuery(".frm_post_content_opt").show(),jQuery(".frm_dyncontent_opt").hide(),jQuery("select.frm_dyncontent_opt").val("")):(jQuery(".frm_post_content_opt").hide().val(""),jQuery("select.frm_dyncontent_opt, .frm_form_field.frm_dyncontent_opt").show())}function go(){var e=jQuery(this).val(),t=jQuery(document.getElementById("frm_dyncontent"));""===e||"new"===e?(t.val(""),jQuery(".frm_dyncontent_opt").show()):jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_display_get_content",id:e,nonce:frmGlobal.nonce},success:function(e){t.val(e),jQuery(".frm_dyncontent_opt").show()}})}function yo(){var e,t,n=document.getElementById("frm_posttax_rows").childNodes,r=document.querySelector(".frm_post_parent_field"),o=document.querySelector(".frm_post_menu_order_field"),i=this.value;jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_replace_posttax_options",post_type:i,nonce:frmGlobal.nonce},success:function(r){for(var o=0;o');var e=jQuery(this).closest(".frm_form_action_settings").find('select[name$="[post_content][post_type]"]').val(),t=jQuery(this).closest(".frm_form_action_settings").data("actionkey"),n=jQuery(this).closest(".frm_posttax_row").attr("id").replace("frm_posttax_",""),r=jQuery(this).val(),o=jQuery(document.getElementById("".concat(n,"_show_exclude"))).is(":checked")?1:0,i=jQuery('select[name$="[post_category]['.concat(n,'][field_id]"]')).val(),a=jQuery('input[name="id"]').val();jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_posttax_row",form_id:a,post_type:e,tax_key:n,action_key:t,meta_name:r,field_id:i,show_exclude:o,nonce:frmGlobal.nonce},success:function(e){jQuery(document.getElementById("frm_posttax_".concat(n))).replaceWith(e)}})}}function Qo(){var e=jQuery(this).closest(".frm_postmeta_row"),t=e.find(".frm_cancelnew"),n=e.find(".frm_enternew");return e.find("select.frm_cancelnew").is(":visible")?(t.hide(),n.show()):(t.show(),n.hide()),e.find("input.frm_enternew, select.frm_cancelnew").val(""),!1}function xo(){var e=jQuery(this),t=e.val();"checkbox"===e.attr("type")&&!1===this.checked&&(t="");var n=e.data("toggleclass");""===t?jQuery(".".concat(n)).hide():(jQuery(".".concat(n)).show(),jQuery(".hide_".concat(n,"_").concat(t)).hide())}function Eo(){Ur()||($r(this),Hr(document.querySelector(".frm_form_settings")))}function ko(e){return e.preventDefault(),Ao(jQuery(this),this.getAttribute("data-code")),!1}function Ao(e,t){var n=!1,r=e;if("object"===a(e)){if(e.hasClass("frm_noallow"))return;void 0===(r=jQuery(e).closest("[data-fills]").attr("data-fills"))&&void 0!==(r=e.closest("div").attr("class"))&&(r=r.split(" ")[1])}if(void 0===r){var o=document.activeElement;"search"===o.type?null===(r=o.id.replace("-search-input","")).match(/\d/gi)&&(r=(o=jQuery(".frm-single-settings:visible .".concat(r))).attr("id")):r=o.id}r&&(n=jQuery("#wp-".concat(r,"-wrap.wp-editor-wrap")).length>0);var i=jQuery(document.getElementById(r));if(void 0===e.attr("data-shortcode")&&(!i.length||void 0===i.attr("data-shortcode"))){var l=e.parents("ul.frm_code_list").attr("data-shortcode");"undefined"!==l&&"no"===l||(t="[".concat(t,"]"))}if(n&&(wpActiveEditor=r),!i.length)return!1;if("[default-html]"===t||"[default-plain]"===t){var s=0;"[default-plain]"===t&&(s=1),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_get_default_html",form_id:jQuery('input[name="id"]').val(),plain_text:s,nonce:frmGlobal.nonce},elementId:r,success:function(e){if(n){var t=document.createElement("p");t.innerText=e,send_to_editor(t.innerHTML)}else So(i,e)}})}else t=function(e,t,n){return"object"===a(t)&&t instanceof jQuery&&0===n[0].id.indexOf("success_url_")&&(t=t[0]).closest("#frm-insert-fields-box")?(t.parentNode.classList.contains("frm_insert_url")||(e=e.replace("]"," sanitize_url=1]")),e):e}(t,e,i),n?send_to_editor(t):So(i,t);return!1}function So(e,t){if(document.selection)e[0].focus(),document.selection.createRange().text=t;else{var n=e[0],r=n.selectionEnd;t=function(e,t,n,r){var o=e.data("sep");if(void 0===o)return t;var i=e.val();if(!i.trim().length)return t;var a=new RegExp("".concat(o,"\\s*$")),l=new RegExp("^\\s*".concat(o));return i.substr(0,n).trim().length&&!1===a.test(i.substr(0,n))&&(t=o+t),i.substr(r,i.length).trim().length&&!1===l.test(i.substr(r,i.length))&&(t+=o),t}(e,t,n.selectionStart,r),n.value=n.value.substr(0,n.selectionStart)+t+n.value.substr(n.selectionEnd,n.value.length);var o=r+t.length;!function(e,t){if(e.classList.contains("frm_classes")&&Lo(t)){var n=e.value.split(" ").filter(Lo);n.length&&(e.value=function(e,t,n){var r=e.split(" ").filter(function(e){return(e=e.trim()).length&&!t.includes(e)});return r.includes(n)||r.push(n),r.join(" ")}(e.value,n,t.trim()))}}(n,t),n.focus(),n.setSelectionRange(o,o)}Rr(e)}function Lo(e){return["frm_half","frm_third","frm_two_thirds","frm_fourth","frm_three_fourths","frm_fifth","frm_sixth","frm2","frm3","frm4","frm6","frm8","frm9","frm10","frm12"].includes(e.trim())}function Io(){var e=document.getElementById("frm-id-condition"),t=document.getElementById("frm-key-condition");"id"===this.value?(e.classList.remove("frm_hidden"),t.classList.add("frm_hidden"),ki(t,"change")):(e.classList.add("frm_hidden"),t.classList.remove("frm_hidden"),ki(e,"change"))}function Bo(){var e=document.getElementById("frm-id-key-condition-id").checked?"frm-id-condition":"frm-key-condition",t=document.getElementById("frm-is-condition").value,n=document.getElementById("frm-text-condition").value,r=document.getElementById("frm-insert-condition"),o=(e=document.getElementById(e)).options[e.selectedIndex].value,a="if ".concat(o," ").concat(t,'="').concat(n,'"]');r.setAttribute("data-code","".concat(a+i.conditional_text,"[/if ").concat(o)),r.innerHTML="[".concat(a,"[/if ").concat(o,"]")}function qo(e){return e.getAttribute("href")||e.getAttributeNS("http://www.w3.org/1999/xlink","href")}function Co(e){var t;e.parentNode.parentNode.classList.contains("frm_has_shortcodes")&&($o(),"use"===(t=Vo(e)).tagName?qo(t=t.firstElementChild).includes("frm_close_icon")||Do(t,"nofocus"):t.classList.contains("frm_close_icon")||Do(t,"nofocus"))}function No(e){e.preventDefault(),e.stopPropagation(),Do(this)}function To(e){!function(e){var t;if(e.id.startsWith("field_options_type_")){var n=e.id.split("_"),r=n.length&&n[n.length-1];null!==(t=document.querySelector("#frm-single-settings-".concat(r)))&&void 0!==t&&t.classList.contains("frm-type-".concat(e.value))||Oo()}}(e.target)}function Oo(e){var t;void 0===e&&(e=I("You are changing the field type. Not all field settings will appear as expected until you reload the page. Would you like to reload the page now?","formidable")),frmDom.modal.maybeCreateModal("frmSaveAndReloadModal",{title:I("Save and Reload?","formidable"),content:(t=c(e),t.style.padding="var(--gap-md)",t),footer:function(){var e=frmDom.modal.footerButton({text:I("Save and Reload","formidable"),buttonType:"primary"});_(e,function(){var e;(e=document.getElementById("frm_submit_side_top")).classList.contains("frm_submit_ajax")&&e.setAttribute("data-new-addon-installed",!0),e.click()});var t=frmDom.modal.footerButton({text:I("Cancel","formidable"),buttonType:"cancel"});return t.classList.add("dismiss"),frmDom.div({children:[t,e]})}()})}function Fo(e){var t;if(e instanceof Event){var n=document.querySelectorAll(".frm-single-settings .frm-show-box.frmsvg use"),r=Array.from(n).find(function(e){return"#frm_close_icon"===e.getAttribute("href")});if(void 0===r)return;t=r.parentElement}else t=e;var o=t.getBoundingClientRect(),i=document.getElementById("frm_adv_info"),a=i.parentElement.getBoundingClientRect();i.style.top="".concat(o.top-a.top+32,"px"),i.style.left="".concat(o.left-a.left-280,"px")}function Do(e,t){var n=Wo(e),r=document.getElementById("frm_adv_info"),a=e.className;if("svg"===e.tagName&&(e=e.firstElementChild),"use"===e.tagName&&(a=qo(e)),a.includes("frm_close_icon"))$o(r);else{if(Fo(e),jQuery(".frm_code_list a").removeClass("frm_noallow"),n.classList.contains("frm_not_email_to")?jQuery("#frm-insert-fields-box .frm_code_list li:not(.show_frm_not_email_to) a").addClass("frm_noallow"):n.classList.contains("frm_not_email_subject")&&jQuery(".frm_code_list li.hide_frm_not_email_subject a").addClass("frm_noallow"),r.setAttribute("data-fills",n.id),r.style.display="block","use"===e.tagName)if(e.hasAttributeNS("http://www.w3.org/1999/xlink","href"))e.setAttributeNS("http://www.w3.org/1999/xlink","href","#frm_close_icon");else{var l=document.createElementNS("http://www.w3.org/2000/svg","use");l.setAttributeNS("http://www.w3.org/1999/xlink","href","#frm_close_icon"),e.parentNode.replaceChild(l,e)}else e.className=a.replace("frm_more_horiz_solid_icon","frm_close_icon");"nofocus"!==t&&("none"!==n.style.display?n.focus():jQuery(tinymce.get(n.id)).trigger("focus")),function(e){["address","body"].forEach(function(t){!function(e,t){var n,r=i.contextualShortcodes["".concat(t,"Selector")],a=i.contextualShortcodes[t],l=e.matches(r),s=function(e){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=o(e))){t&&(e=t);var n=0,r=function(){};return{s:r,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==t.return||t.return()}finally{if(l)throw i}}}}(a);try{for(s.s();!(n=s.n()).done;){var c,d=n.value,u=null===(c=document.querySelector('#frm-adv-info-tab .frm_code_list [data-code="'.concat(d,'"]')))||void 0===c?void 0:c.closest("li");null==u||u.classList.toggle("frm_hidden",!l)}}catch(e){s.e(e)}finally{s.f()}}(e,t)})}(n)}}function Mo(e){return 0===i.contextualShortcodes.length||!function(e){var t=e.querySelector("a");if(!t)return!1;var n=t.dataset.code;return i.contextualShortcodes.address.includes(n)||i.contextualShortcodes.body.includes(n)}(e)||function(e){var t=e.querySelector("a").dataset.code,n=document.getElementById("frm_adv_info").dataset.fills,r=document.getElementById(n),o=i.contextualShortcodes;return o.address.includes(t)?r.matches(o.addressSelector):r.matches(o.bodySelector)}(e)}function Po(){x||(x=1,window.addEventListener("beforeunload",Go))}function zo(){x=0}function Ho(){x=0}function Ro(){x=0}function Go(e){x&&(e.preventDefault(),e.returnValue="")}function Uo(e,t){var n={my:"top",at:"top+".concat(t),of:window};e.dialog("option","position",n)}function Wo(e){if(e.classList.contains("frm-input-icon"))return e.previousElementSibling;for(var t,n=e.nextElementSibling;null!==n&&("INPUT"!==n.tagName&&"TEXTAREA"!==n.tagName||n.classList.contains("frm-token-input-field"));)n=Wo(n);return n||(n=null===(t=e.closest(".frm-field-formula"))||void 0===t?void 0:t.querySelector(".frm-calc-field")),n}function Vo(e){var t;if(null!==(t=e.nextElementSibling)&&void 0!==t&&t.classList.contains("frm-input-icon"))return e.nextElementSibling;for(var n=e.previousElementSibling;null!==n&&"I"!==n.tagName&&"svg"!==n.tagName;)n=Vo(n);return n}function $o(e){if((void 0!==e||null!==(e=document.getElementById("frm_adv_info")))&&null===document.getElementById("frm_dyncontent")){e.style.display="none";for(var t=document.querySelectorAll(".frm-show-box.frm_close_icon"),n=0;n".concat(n.data.name,": ").concat(n.data.msg,"

      "):'

      Imported ').concat(n.data.name,"

      "),e.find(".status").prepend(r),e.find(".status").show(),C.importQueue=jQuery.grep(C.importQueue,function(e){return e!=t}),C.imported++,0===C.importQueue.length?(e.find(".process-count").hide(),e.find(".forms-completed").text(C.imported),e.find(".process-completed").show()):(e.find(".form-current").text(C.imported+1),ei(e)))})}function ti(e){e.preventDefault();var t=!1,n=jQuery('input[name="frm_export_forms[]"]');jQuery('input[name="frm_export_forms[]"]:checked').val()||(n.closest(".frm-table-box").addClass("frm_blank_field"),t="stop");var r=jQuery('input[name="type[]"]');if(jQuery('input[name="type[]"]:checked').val()||"checkbox"!==r.attr("type")||(r.closest("p").addClass("frm_blank_field"),t="stop"),"stop"===t)return!1;e.stopPropagation(),this.submit()}function ni(){var e=jQuery(this).closest(".frm_blank_field");if(void 0!==e){var t=this.name;("type[]"===t&&jQuery('input[name="type[]"]:checked').val()||"frm_export_forms[]"===t&&jQuery(this).val())&&e.removeClass("frm_blank_field")}}function ri(){null!==jQuery(this).val().match(/\.csv$/i)?jQuery(".show_csv").fadeIn():jQuery(".show_csv").fadeOut()}function oi(){var e=document.querySelector('select[name="format"]');return e?e.value:""}function ii(e){var t,n,r=e.target.value;li(r),ai.call(e.target),t=r,n=document.getElementById("frm-export-select-all"),"csv"===t?(n.checked=!1,n.disabled=!0):n.disabled=!1}function ai(){var e=jQuery(this),t=e.find(":selected"),n=t.data("support"),r=n.indexOf("|");jQuery('input[name="type[]"]').each(function(){this.checked=!1,n.includes(this.value)?(this.disabled=!1,-1===r&&(this.checked=!0)):this.disabled=!0}),"csv"===e.val()?(jQuery(".csv_opts").show(),jQuery(".xml_opts").hide()):(jQuery(".csv_opts").hide(),jQuery(".xml_opts").show());var o=t.data("count"),i=jQuery('input[name="frm_export_forms[]"]');"single"===o?(i.prop("multiple",!1),i.prop("checked",!1)):(i.prop("multiple",!0),i.prop("disabled",!1)),e.trigger("change")}function li(e){if(""!==e){var t=document.querySelectorAll(".frm-is-repeater");t.length&&("csv"===e?t.forEach(function(e){e.classList.remove("frm_hidden")}):t.forEach(function(e){e.classList.add("frm_hidden")}),Qi.call(document.querySelector(".frm-auto-search")))}}function si(){var e=jQuery("select[name=format]").find(":selected").data("count"),t=jQuery('input[name="frm_export_forms[]"]');"single"===e&&this.checked?(t.prop("disabled",!0),this.removeAttribute("disabled")):t.prop("disabled",!1)}function ci(){jQuery(".frm_multiselect").hide().each(frmDom.bootstrap.multiselect.init)}function di(e){e.preventDefault(),mi(this,"frm_multiple_addons")}function ui(e){e.preventDefault(),mi(this,"frm_activate_addon")}function fi(e){e.preventDefault(),mi(this,"frm_install_addon")}function mi(e,t){n(1105).toggleAddonState(e,t)}function _i(){gi()}function pi(e){!function(e,t,n){var r=jQuery("#frm_leave_email_error");r.removeClass("frm_hidden").attr("frm-error",n),jQuery("#frm_leave_email").one("keyup",function(){r.addClass("frm_hidden")})}(0,0,e)}function gi(){var e=document.getElementById("frmapi-email-form");jQuery.ajax({dataType:"json",url:e.getAttribute("data-url"),success:function(t){var n=t.renderedHtml;n=n.replace(/]*(formidableforms.css|action=frmpro_css)[^>]*>/gi,""),e.innerHTML=n}})}function yi(e){frmDom.autocomplete.initSelectionAutocomplete(e)}function vi(e){var t=this.parentNode.parentNode,n=t.elements.type.value;e.preventDefault(),this.classList.add("frm_loading_button"),bi(t,n,this)}function hi(e){var t=this.elements.type.value,n=this.querySelector("button");e.preventDefault(),n.classList.add("frm_loading_button"),bi(this,t,n)}function bi(e,t,n){var r=function(e){var t,n,r={},o=e.elements;for(n=0;n .frm-with-line").forEach(function(e){var t=e.nextElementSibling;if(t){var n=t.querySelectorAll(":scope > li.frmbutton"),r=Array.from(n).every(function(e){return e.classList.contains("frm_hidden")});e.classList.toggle("frm_hidden",r)}}),jQuery(this).trigger("frmAfterSearch")}function xi(e,t){return"s"!==t&&"s"!==e[e.length-1]&&"".concat(e,"s").includes(t)}function Ei(e){e.stopPropagation()}function ki(e,t){var n=document.createEvent("HTMLEvents");n.initEvent(t,!1,!0),e.dispatchEvent(n)}function Ai(e,t){var n,r=new XMLHttpRequest,o="string"==typeof e?e:Object.keys(e).map(function(t){return"".concat(encodeURIComponent(t),"=").concat(encodeURIComponent(e[t]))}).join("&");return r.open("post",ajaxurl,!0),r.onreadystatechange=function(){if(r.readyState>3&&200==r.status){n=r.responseText;try{n=JSON.parse(n)}catch(e){}t(n)}},r.setRequestHeader("X-Requested-With","XMLHttpRequest"),r.setRequestHeader("Content-type","application/x-www-form-urlencoded"),r.send(o),r}function Si(e,t){e.classList.add("frm-fade"),setTimeout(t,1e3)}function Li(e){jQuery(e).css("visibility","hidden")}function Ii(e){jQuery(e).css("visibility","visible")}function Bi(e,t){return n(4260).initModal(e,t)}function qi(e,t){if("#"===t){var n=document.getElementById(e),r=n.style.display;n.style.display="none"===r?"block":"none"}else e.is(":visible")?e.hide():e.show()}function Ci(){window.onbeforeunload=null;var e=jQuery(window);e.off("beforeunload.widgets"),e.off("beforeunload.edit-post")}function Ni(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=document.getElementById("frm_field_id_".concat(e));if(null!==t&&"form"===t.dataset.type)if(t=jQuery(t),this.options[this.selectedIndex].value){t.find(".frm-not-set")[0].classList.add("frm_hidden");var n=t.find(".frm-embed-message");n.html(n.data("embedmsg")+this.options[this.selectedIndex].text),t.find(".frm-embed-field-placeholder")[0].classList.remove("frm_hidden")}else t.find(".frm-not-set")[0].classList.remove("frm_hidden"),t.find(".frm-embed-field-placeholder")[0].classList.add("frm_hidden")}function Ti(){var e=jQuery(this).closest(".frm-single-settings"),t=e.find(".frmjs_product_choices"),n=e.find(".frm_prod_options_heading"),r=this.options[this.selectedIndex].value;t.removeClass("frm_prod_type_single frm_prod_type_user_def"),n.removeClass("frm_prod_user_def"),"single"===r?t.addClass("frm_prod_type_single"):"user_def"===r&&(t.addClass("frm_prod_type_user_def"),n.addClass("frm_prod_user_def"))}function Oi(e){var t=document.getElementById("frm_field_id_".concat(e));return null!==t&&"product"===t.getAttribute("data-type")}function Fi(){var e=function(e,t){return window.frmCachedSubFields=window.frmCachedSubFields||{},window.frmCachedSubFields[e]=window.frmCachedSubFields[e]||{},window.frmCachedSubFields[e][t]},t=function(e,t,n){window.frmCachedSubFields=window.frmCachedSubFields||{},window.frmCachedSubFields[e]=window.frmCachedSubFields[e]||{},window.frmCachedSubFields[e][t]=n},n=[1,2,3,4,5,6,7,8,9,10,11,12].map(function(e){return"frm".concat(e)}),o=["first","middle","last"];document.addEventListener("change",function(i){i.target.matches(".frm_name_layout_dropdown")&&function(i){var a,l=i.target.value.split("_"),s=i.target.dataset.fieldId,c=document.querySelector("#field_".concat(s,"_inner_container .frm_combo_inputs_container")),d=(a=l.length,"frm".concat(parseInt(12/a)));o.forEach(function(e){var o,i=c.querySelector('[data-sub-field-name="'.concat(e,'"]'));i&&(i.classList.add("frm_hidden"),(o=i.classList).remove.apply(o,r(n)),t(s,e,i))}),l.forEach(function(t){var n=e(s,t);n&&(n.classList.remove("frm_hidden"),n.classList.add(d),c.append(n))}),o.forEach(function(e){var n=document.querySelector(".frm_sub_field_options-".concat(e,'[data-field-id="').concat(s,'"]'));n&&(n.classList.add("frm_hidden"),t(s,"".concat(e,"_options"),n))}),l.forEach(function(t){var n=e(s,"".concat(t,"_options"));n&&n.classList.remove("frm_hidden")})}(i)},!1)}function Di(e,t){var n,r,o,i=!1,a=!1;(n=t.newOption?(new DOMParser).parseFromString(t.newOption,"text/html").body.childNodes[0]:t).querySelectorAll("svg").forEach(function(e){(r=e.getElementsByTagNameNS("http://www.w3.org/2000/svg","use")[0])&&("#frm_drag_icon"===(o=qo(r))&&(i=!0),"#frm_save_icon"===o&&(a=!0))}),i||n.prepend(h.drag.cloneNode(!0)),n.querySelector("[id^=field_key_".concat(e,"-]"))&&!a&&n.querySelector("[id^=field_key_".concat(e,"-]")).after(h.save.cloneNode(!0)),t.newOption&&(t.newOption=n)}function Mi(){var e=document.getElementById("frm_leave_email").value.trim();if(""!==e)if(!1!==/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/i.test(e)){var t=jQuery("#frmapi-email-form").find("form"),n=t.find('[type="email"]').not(".frm_verify");if(n.length){if(document.getElementById("frm_empty_inbox")){document.getElementById("frm-add-my-email-address").remove();var r=document.getElementById("frm_leave_email_wrapper");if(r){r.classList.add("frm_hidden");var o=d({className:"frm-wait frm_spinner"});o.style.visibility="visible",o.style.float="none",o.style.width="unset",r.parentElement.insertBefore(o,r.nextElementSibling)}}n.val(e),jQuery.ajax({type:"POST",url:t.attr("action"),data:"".concat(t.serialize(),"&action=frm_forms_preview")}).done(function(e){if(jQuery(e).find(".frm_message").text().trim().includes("Thanks!")){var t=document.getElementById("frmapi-email-form").parentElement.querySelector(".frm_spinner");t&&t.remove(),wp.hooks.applyFilters("frm_thank_you_on_signup",!0)&&document.getElementById("frm_leave_email_wrapper").replaceWith(d(I("Thank you for signing up!","formidable")))}else pi("invalid")})}}else pi("invalid");else pi("empty")}function Pi(e){var t;if(O||e.stopPropagation(),!(e.target.classList.contains("frm-show-box")||null!==(t=e.target.parentElement)&&void 0!==t&&t.classList.contains("frm-show-box"))){var n=document.getElementById("frm_adv_info");n&&(n.dataset.fills===e.target.id&&void 0!==e.target.id||e.target.closest("#frm_adv_info")||"none"===n.style.display||$o(n))}}return{init:function(){var e,t,o,i,a,l,s;!function(){jQuery(document).on("click","#frm-add-my-email-address",function(e){e.preventDefault(),Mi()});var e=document.getElementById("frm_empty_inbox"),t=document.getElementById("frm_leave_email");if(e&&t){var n=document.getElementById("frm-leave-email-modal");n.classList.remove("frm_hidden"),n.querySelector(".frm_modal_footer").classList.add("frm_hidden"),t.addEventListener("keyup",function(e){if("Enter"===e.key){var t=document.getElementById("frm-add-my-email-address");t&&t.click()}})}}(),t=document.querySelector(".frm-admin-footer-links"),o=null!==(e=document.querySelector(".frm_page_container"))&&void 0!==e?e:document.getElementById("wpbody-content"),t&&o&&(o.append(t),t.classList.remove("frm_hidden")),document.addEventListener("show.bs.dropdown",function(){H()}),C={},jQuery(".wp-admin").on("click",function(e){var t=jQuery(e.target),n=jQuery(".dropdown.open");!n.length||t.hasClass("dropdown")||t.closest(".dropdown").length||n.removeClass("open")}),jQuery("#frm_bs_dropdown:not(.open) a").on("click",At),void 0===E&&(E=jQuery(document.getElementById("form_id")).val()),document.querySelectorAll(".frm-warning-dismiss").forEach(function(e){_(e,St)}),frmAdminBuild.inboxBannerInit(),b.length>0?frmAdminBuild.buildInit():null!==document.getElementById("frm_notification_settings")?frmAdminBuild.settingsInit():null!==document.getElementById("frm_styling_form")?frmAdminBuild.styleInit():null!==document.getElementById("form_global_settings")?frmAdminBuild.globalSettingsInit():null!==document.getElementById("frm_export_xml")?frmAdminBuild.exportInit():null!==document.querySelector(".frm-inbox-wrapper")?frmAdminBuild.inboxInit():null!==document.getElementById("frm-welcome")?frmAdminBuild.solutionInit():(function(){if(document.body.classList.contains("frm-admin-page-entries")){var e=document.getElementById("screen-options-wrap");if(e){var t=c({className:"frm_warning_style",text:I("Only 10 columns can be selected at a time.","formidable")});t.style.margin=0;var n=e.querySelector("legend");n.parentNode.insertBefore(t,n.nextElementSibling);var r=Array.from(e.querySelectorAll('input[type="checkbox"]')),o=function(){r.reduce(function(e,t){return t.checked?e+1:e},0)>=10?(t.classList.remove("frm_hidden"),r.forEach(function(e){e.checked||(e.parentNode.classList.add("frm_noallow"),e.disabled=!0)})):t.classList.add("frm_hidden")};o(),r.forEach(function(e){e.addEventListener("change",function(e){e.target.checked?o():(t.classList.add("frm_hidden"),r.forEach(function(e){e.parentNode.classList.remove("frm_noallow"),e.disabled=!1}))})})}}}(),yi(),jQuery("[data-frmprint]").on("click",function(){return window.print(),!1})),jQuery(document).on("change","select[data-toggleclass], input[data-toggleclass]",xo),function(){function e(e){var t=e.options[e.selectedIndex];e.querySelectorAll("option[data-dependency]:not([data-dependency-skip])").forEach(function(e){var n=document.querySelector(e.dataset.dependency);null==n||n.classList.toggle("frm_hidden",t!==e)})}document.querySelectorAll("select.frm_select_with_dependency").forEach(e),frmDom.util.documentOn("change","select.frm_select_with_dependency",function(t){return e(t.target)})}(),(jQuery(document.getElementById("frm_adv_info")).length>0||jQuery(".frm_field_list").length>0)&&frmAdminBuild.panelInit(),i=jQuery(".wrap, .frm_wrap"),a=document.getElementById("frm_confirm_modal"),l=!1,s=!1,jQuery(a).on("click","[data-deletefield]",xn),jQuery(a).on("click","[data-removeid]",R),jQuery(a).on("click","[data-trashtemplate]",wi),i.on("click",".frm_remove_tag, .frm_remove_form_action",R),i.on("click","a[data-frmverify]",F),i.on("click","a[data-frmtoggle]",P),i.on("click","a[data-frmhide], a[data-frmshow]",z),i.on("change","input[data-frmhide], input[data-frmshow]",z),i.on("click",".widget-top,a.widget-action",G),i.on("mouseenter.frm",".frm_bstooltip, .frm_help",function(){jQuery(this).off("mouseenter.frm"),function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e;(n.hasAttribute("data-toggle")||n.hasAttribute("data-bs-toggle"))&&(n.parentElement.setAttribute("title",n.getAttribute("title")),n.removeAttribute("title"),n.classList.remove("frm_bstooltip"),n.parentElement.classList.add("frm_bstooltip"),n=n.parentElement),jQuery(n).tooltip(),t&&(H(),jQuery(n).tooltip("show"))}(this,!0)}),jQuery(document).on("click","#doaction, #doaction2",function(e){var t="doaction"===this.id?"top":"bottom",n=document.getElementById("bulk-action-selector-".concat(t)),r=document.getElementById("confirm-bulk-delete-".concat(t));if(null!==n&&null!==r){if(l=this,!s&&"bulk_delete"===n.value)return e.preventDefault(),D(r),!1}else l=!1}),jQuery(document).on("click","#frm-confirmed-click",function(e){if(!1!==l&&!e.target.classList.contains("frm-btn-inactive"))return"confirm-bulk-delete"===this.getAttribute("href")?(e.preventDefault(),s=!0,l.click(),!1):void 0}),n(4260).initUpgradeModal(),frmDom.util.documentOn("click","[data-modal-title]",Kr);var d=jQuery(document.getElementById("frm_shortcodediv"));d.length>0&&(jQuery("a.edit-frm_shortcode").on("click",function(){return d.is(":hidden")&&(d.slideDown("fast"),this.style.display="none"),!1}),jQuery(".cancel-frm_shortcode","#frm_shortcodediv").on("click",function(){return d.slideUp("fast"),d.siblings("a.edit-frm_shortcode").show(),!1})),jQuery(document).on("click","#frm-nav-tabs a",U),jQuery(".post-type-frm_display .frm-nav-tabs a, .frm-category-tabs a").on("click",function(){var e=this.classList.contains("frm_show_upgrade_tab");if(!this.classList.contains("frm_noallow")||e)return e&&Jr(this),W(this),!1}),W(jQuery(".starttab a"),"auto"),jQuery(document).on("click","#frm-fid-search-menu a",function(){var e=this.id.replace("fid-","");return jQuery('select[name="fid"]').val(e),Hr(document.getElementById("posts-filter")),!1}),jQuery(".frm_select_box").on("click focus",function(){this.select()}),jQuery(document).on("input search change",".frm-auto-search:not(#frm-form-templates-page #template-search-input)",Qi),jQuery(document).on("focusin click",".frm-auto-search",Ei);var u=jQuery(".frm-auto-search");""!==u.val()&&u.trigger("keyup"),FrmFormsConnect.init(),jQuery(document).on("click",".frm-install-addon",fi),jQuery(document).on("click",".frm-activate-addon",ui),jQuery(document).on("click",".frm-solution-multiple",di),jQuery("button, input[type=submit]").on("click",Ci),document.addEventListener("click",function(e){if("LABEL"===e.target.nodeName){var t=e.target.getAttribute("for");if(t){var n=document.getElementById(t);if(n&&n.nextElementSibling){var r=n.nextElementSibling.querySelector("button.dropdown-toggle.multiselect");r&&setTimeout(function(){return r.click()},0)}}}}),frmAdminBuild.hooks.addFilter("frm_before_embed_modal",function(e,t){var n,r,o=t.element;if("form"!==t.type)return e;var i=o.closest("tr");if(i)n=parseInt(i.querySelector(".column-id").textContent),r=i.querySelector(".column-form_key").textContent;else{n=document.getElementById("form_id").value;var a=document.getElementById("frm_form_key");if(a)r=a.value;else{var l=document.getElementById("frm-previewDrop");l&&(r=l.nextElementSibling.querySelector(".dropdown-item a").getAttribute("href").split("form=")[1])}}return[n,r]}),document.querySelectorAll("#frm-show-fields > li, .frm_grid_container li").forEach(function(e,t){e.addEventListener("click",function(){var e,t,n;t=(null===(e=this.querySelector("li"))||void 0===e?void 0:e.dataset.fid)||this.dataset.fid,(n=document.querySelectorAll("[id^=frm_delete_field_".concat(t,"-]"))).length<2||r(n).slice(1).forEach(function(e,n){e.classList.contains("frm_other_option")||Di(t,e)})})});var f=document.getElementById("frm_small_screen_proceed_button");f&&_(f,function(){var e;null===(e=document.getElementById("frm_small_device_message_container"))||void 0===e||e.remove(),p("small_screen_proceed",new FormData)});var m=document.getElementById("frm_sale_banner"),g=null==m?void 0:m.querySelector(".dismiss");m&&(_(m,function(e){e.target.closest(".dismiss")||(window.location.href=m.getAttribute("data-url"))}),g&&_(g,function(){m.remove();var e=new FormData;p("sale_banner_dismiss",e)}))},buildInit:function(){jQuery("#frm_builder_page").on("mouseup","*:not(.frm-show-box)",Pi),g=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100;return frmDom.util.debounce(e,t)}(oe,10),y=document.getElementById("post-body-content"),v=jQuery(y),jQuery(".frm_field_loading").length&&Ee(jQuery(".frm_field_loading").first().attr("id")),V("ul.frm_sorting"),document.querySelectorAll(".field_type_list > li:not(.frm_show_upgrade)").forEach(X),jQuery("ul.field_type_list, .field_type_list li, ul.frm_code_list, .frm_code_list li, .frm_code_list li a, #frm_adv_info #category-tabs li, #frm_adv_info #category-tabs li a").disableSelection(),jQuery(".frm_submit_ajax").on("click",zr),jQuery(".frm_submit_no_ajax").on("click",Gr),Wr(),jQuery("a.edit-form-status").on("click",Sr),jQuery(".cancel-form-status").on("click",Lr),jQuery(".save-form-status").on("click",function(){var e=jQuery(document.getElementById("form_change_status")).val();return jQuery('input[name="new_status"]').val(e),jQuery(document.getElementById("form-status-display")).html(e),jQuery(".cancel-form-status").trigger("click"),!1}),jQuery(".frm_form_builder form").first().on("submit",function(){jQuery(".inplace_field").trigger("blur")}),ci(),Dn();var e,t=jQuery(j),n=document.getElementById("frm_form_editor_container");t.on("click",".frm_add_logic_row",Sn),t.on("click",".frm_add_watch_lookup_row",In),t.on("change",".frm_get_values_form",On),t.on("change",".frm_logic_field_opts",wr),t.on("frm-multiselect-changed",'select[name^="field_options[admin_only_"]',Ir),jQuery(document.getElementById("frm-insert-fields")).on("click",".frm_add_field",Ae),b.on("click",".frm_clone_field",Be),t.on("blur",'input[id^="frm_calc"]',Je),t.on("change","input.frm_format_opt, input.frm_max_length_opt",lt),t.on("change click","[data-changeme]",it),t.on("click","input.frm_req_field",st),t.on("click",".frm_mark_unique",dt),t.on("change",".frm_repeat_format",Xn),t.on("change",".frm_repeat_limit",Yn),t.on("change",".frm_js_checkbox_limit",Zn),t.on("input",'input[name^="field_options[add_label_"]',function(){er(this,"add")}),t.on("input",'input[name^="field_options[remove_label_"]',function(){er(this,"remove")}),t.on("change",'select[name^="field_options[data_type_"]',Fn),jQuery(n).on("click",".frm-collapse-page",Mn),jQuery(n).on("click",".frm-collapse-section",Hn),t.on("click",".frm-single-settings h3, .frm-single-settings h4.frm-collapsible",Rn),t.on("keydown",".frm-single-settings h3, .frm-single-settings h4.frm-collapsible",function(e){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),Rn.call(this,e))}),jQuery(n).on("show.bs.dropdown hide.bs.dropdown",ze),t.on("click",".frm_toggle_sep_values",yt),t.on("click",".frm_toggle_image_options",vt),t.on("click",".frm_remove_image_option",Et),t.on("click",".frm_choose_image_box",xt),t.on("change",".frm_hide_image_text",Qt),t.on("change",".frm_field_options_image_size",jt),t.on("click",".frm_multiselect_opt",kt),b.on("mousedown","input, textarea, select",Lt),b.on("click","input[type=radio], input[type=checkbox]",Lt),b.on("click",".frm_delete_field",Nt),b.on("click",".frm_select_field",Tt),jQuery(document).on("click",".frm_delete_field_group",Ot),jQuery(document).on("click",".frm_clone_field_group",Ft),jQuery(document).on("click","#frm_field_group_controls > span:first-child",Dt),jQuery(document).on("click",".frm-row-layout-option",Yt),jQuery(document).on("click",".frm-merge-fields-into-row .frm-row-layout-option",Zt),jQuery(document).on("click",".frm-custom-field-group-layout",tn),jQuery(document).on("click",".frm-merge-fields-into-row .frm-custom-field-group-layout",rn),jQuery(document).on("click",".frm-break-field-group",cn),b.on("click","#frm_field_group_popup .frm_grid_container input",dn),jQuery(document).on("click",".frm-cancel-custom-field-group-layout",un),jQuery(document).on("click",".frm-save-custom-field-group-layout",mn),b.on("click","ul.frm_sorting",_n),jQuery(document).on("click",".frm-merge-fields-into-row",jn),jQuery(document).on("click",".frm-delete-field-groups",Qn),b.on("click",'.frm-field-action-icons [data-toggle="dropdown"]',function(){this.closest("li.form-field").classList.add("frm-field-settings-open"),jQuery(document).on("click","#frm_builder_page",Te)}),b.on("mousemove","ul.frm_sorting",Oe),b.on("show.bs.dropdown",".frm-field-action-icons",Me),jQuery(document).on("show.bs.dropdown","#frm_field_group_controls",Pe),t.on("click",".frm_single_option a[data-removeid]",It),t.on("mousedown",".frm_single_option input[type=radio]",Bt),t.on("focusin",".frm_single_option input[type=text]",qt),t.on("click",".frm_add_opt",_t),t.on("change",".frm_single_option input",nr),t.on("change",".frm_image_id",nr),t.on("change",".frm_toggle_mult_sel",pt),b.on("click",".frm_primary_label",Un),b.on("click",".frm_description",Wn),b.on("click","li.ui-state-default:not(.frm_noallow)",$n),b.on("dblclick","li.ui-state-default",Jn),t.on("change",".frm_tax_form_select",tr),t.on("change","select.conf_field",ut),t.on("change",".frm_get_field_selection",Qr),t.on("click",".frm-show-inline-modal",Cr),t.on("keydown",".frm-show-inline-modal",function(e){var t=e.key;"Enter"!==t&&" "!==t||(e.preventDefault(),Cr.call(this,e))}),t.on("click",".frm-inline-modal .dismiss",Nr),jQuery(document).on("change","[data-frmchange]",Or),document.addEventListener("click",Tr),t.on("change",".frm_include_extras_field",et),t.on("change",'select[name^="field_options[form_select_"]',Ni),jQuery(document).on("submit","#frm_js_build_form",zo),jQuery(document).on("change","#frm_builder_page input:not(.frm-search-input):not(.frm-custom-grid-size-input), #frm_builder_page select, #frm_builder_page textarea",Po),rt(),jQuery(document).on("change",".frmjs_prod_data_type_opt",Ti),jQuery(document).on("focus",'.frm-single-settings ul input[type="text"][name^="field_options[options_"]',qn),jQuery(document).on("blur",'.frm-single-settings ul input[type="text"][name^="field_options[options_"]',Nn),frmDom.util.documentOn("click",".frm-show-field-settings",$n),frmDom.util.documentOn("change","select.frm_format_dropdown, select.frm_phone_type_dropdown",Kn),t.on("keydown",'.frm_single_option input[name^="field_options["], .frm_single_option input[name^="rows_"]',function(e){"Enter"===e.key&&function(e){var t=e.closest(".frm_single_option").parentElement.querySelectorAll('.frm_single_option input[name^="field_options[" ], .frm_single_option input[name^="rows_"]'),n=Array.from(t),r=n.indexOf(e);if(!(r<0)){var o=n.slice(r+1).find(function(e){return null!==e.offsetParent});if(o){o.focus();var i=o.value.length;o.setSelectionRange(i,i)}}}(e.currentTarget)}),!1!==(e=Bi("#frm-bulk-modal","700px"))&&(jQuery(".frm-insert-preset").on("click",mt),jQuery(j).on("click","a.frm-bulk-edit-link",function(t){t.preventDefault();var n="",r=jQuery(this).closest("[data-fid]").data("fid"),o=yr(r),i=Oi(r),a=document.getElementById("frm_field_".concat(r,"_opts"));if(a){var l=a.getElementsByTagName("li");document.getElementById("bulk-field-id").value=r;for(var s=0;s=l.length-1&&(document.getElementById("frm_bulk_options").value=n)}return e.dialog("open"),!1}}),jQuery("#frm-update-bulk-opts").on("click",function(){var t=document.getElementById("bulk-field-id").value;document.getElementById("bulk-option-type").value||(this.classList.add("frm_loading_button"),frmAdminBuild.updateOpts(t,document.getElementById("frm_bulk_options").value,e),Po())})),qr(),document.addEventListener("frm_added_field",qr),Ie(),Fi(),kr(),frmDom.util.documentOn("change",".frm_show_password_setting_input",function(e){var t=e.target.getAttribute("data-fid"),n=document.getElementById("frm_field_id_".concat(t));n&&n.classList.toggle("frm_disabled_show_password",!e.target.checked)}),document.addEventListener("scroll",Fo,!0),document.addEventListener("change",To),document.querySelector(".frm_form_builder").addEventListener("mousedown",function(e){e.shiftKey&&e.preventDefault()}),wp.hooks.addAction("frmShowedFieldSettings","formidableAdmin",function(e,t){t.querySelectorAll(".frm-collapse-me").forEach(Gn)},9999)},settingsInit:function(){var e=jQuery(document.getElementById("frm_notification_settings"));e.on("click",".frm_email_buttons",io),e.on("click",".frm_remove_field",ao),e.on("change",".frm_to_row, .frm_from_row",lo),e.on("change",".frm_tax_selector",wo),e.on("change","select.frm_single_post_field",_o),e.on("change","select.frm_toggle_post_content",po),e.on("change","select.frm_dyncontent_opt",go),e.on("change",".frm_post_type",yo),e.on("click",".frm_add_postmeta_row",bo),e.on("click",".frm_add_posttax_row",ho),e.on("click",".frm_toggle_cf_opts",Qo),e.on("click",".frm_duplicate_form_action",Zr),jQuery(".frm_actions_list").on("click",".frm_active_action",to),jQuery("#frm-show-groups, #frm-hide-groups").on("click",no),ci(),jQuery("ul.frm_actions_list li").each(function(){so(jQuery(this).children("a").data("actiontype"));var e=jQuery(this).find("i");"none"!==e.css("background-image")&&e.addClass("frm-inverse")}),jQuery(".frm_submit_settings_btn").on("click",Eo),Wr();var t=jQuery(".frm_form_settings");t.on("click",".frm_add_form_logic",mo),t.on("click",".frm_already_used",fo),document.addEventListener("click",function(e){var t=e.target;t.closest(".frm_image_preview_wrapper")&&(t.closest(".frm_choose_image_box")?xt.bind(t)(e):t.closest(".frm_remove_image_option")&&Et.bind(t)(e))}),t.on("mouseup","*:not(.frm-show-box)",Pi),jQuery(document.getElementById("no_save")).on("change",function(){this.checked&&!0!==confirm(i.no_save_warning)&&jQuery(this).attr("checked",!1)}),jQuery('select[name="options[edit_action]"]').on("change",Yr);var n=document.getElementById("logged_in");jQuery(n).on("change",function(){this.checked?Ii(".hide_logged_in"):Li(".hide_logged_in")});var r=jQuery(document.getElementById("frm_cookie_expiration"));jQuery(document.getElementById("frm_single_entry_type")).on("change",function(){"cookie"===this.value?r.fadeIn("slow"):r.fadeOut("slow")});var o=document.getElementById("single_entry");jQuery(o).on("change",function(){this.checked?Ii(".hide_single_entry"):Li(".hide_single_entry"),this.checked&&"cookie"===jQuery(document.getElementById("frm_single_entry_type")).val()?r.fadeIn("slow"):r.fadeOut("slow")}),jQuery(".hide_save_draft").hide();var a=jQuery(document.getElementById("save_draft"));a.on("change",function(){this.checked?jQuery(".hide_save_draft").fadeIn("slow"):jQuery(".hide_save_draft").fadeOut("slow")}),Rr(a);var l=document.getElementById("editable");jQuery(l).on("change",function(){this.checked?(jQuery(".hide_editable").fadeIn("slow"),Rr(document.getElementById("edit_action"))):(jQuery(".hide_editable").fadeOut("slow"),jQuery(".edit_action_message_box").fadeOut("slow"))}),jQuery(document).on("change","#protect_files",function(){this.checked?jQuery(".hide_protect_files").fadeIn("slow"):jQuery(".hide_protect_files").fadeOut("slow")}),jQuery(document).on("frm-multiselect-changed","#protect_files_role",Ir),jQuery(document).on("submit",".frm_form_settings",Ho),jQuery(document).on("change","#form_settings_page input:not(.frm-search-input), #form_settings_page select, #form_settings_page textarea",Po),yi(),jQuery(document).on("frm-action-loaded",Jo),frmDom.util.documentOn("change",'.frm_on_submit_type input[type="radio"]',function(e){if(e.target.checked){var t=e.target.closest(".frm_form_action_settings");t.querySelectorAll(".frm_on_submit_dependent_setting:not(.frm_hidden)").forEach(function(e){e.classList.add("frm_hidden")}),t.querySelectorAll(".frm_on_submit_dependent_setting[data-show-if-".concat(e.target.value,"]")).forEach(function(e){e.classList.remove("frm_hidden")}),t.setAttribute("data-on-submit-type",e.target.value)}}),wp.hooks.addAction("frm_reset_fields_updated","formidableAdmin",Ro)},panelInit:function(){jQuery(".frm_wrap, #postbox-container-1").on("click",".frm_insert_code",ko),jQuery(document).on("change",".frm_insert_val",function(){Ao(jQuery(this).data("target"),jQuery(this).val()),jQuery(this).val("")}),jQuery(document).on("click change",'[name="frm-id-key-condition"]',Io),jQuery(document).on("keyup change",".frm-build-logic",Bo),Xr(),jQuery(document).on("frmElementAdded",function(e,t){Xr(t)}),jQuery(document).on("mousedown",".frm-show-box",No);var e=document.getElementById("form_settings_page"),t=document.body.classList.contains("post-type-frm_display"),n=document.getElementById("frm_insert_fields_tab");(null!==e||t||O)&&jQuery(document).on("focusin","form input, form textarea",function(r){var o,i,a;if(r.stopPropagation(),Co(this),jQuery(this).is(":not(:submit, input[type=button], .frm-search-input, input[type=checkbox])")){if(jQuery(r.target).closest("#frm_adv_info").length)return;if(null!==e||O)o=jQuery("#frm_html_tab"),jQuery(this).closest("#html_settings").length>0?(o.show(),o.siblings().hide(),jQuery("#frm_html_tab a").trigger("click"),void 0===(a=this.id)||a.includes("-search-input")||(jQuery("#frm-adv-info-tab").attr("data-fills",a.trim()),this.classList.contains("field_custom_html")&&(a="field_custom_html"),jQuery.inArray(a,["after_html","before_html","submit_html","field_custom_html"])>=0&&(jQuery(".frm_code_list li:not(.show_".concat(a,")")).addClass("frm_hidden"),jQuery(".frm_code_list li.show_".concat(a)).removeClass("frm_hidden")))):((i=jQuery(".frm-category-tabs li"))[0]&&(i[0].style.display=""),n.click(),o.hide(),o.siblings().show());else if(t){var l=new CustomEvent("frm_legacy_views_handle_field_focus");l.frmData={idAttrValue:this.id},document.dispatchEvent(l)}}}),jQuery(".frm_wrap, #postbox-container-1").on("mousedown","#frm_adv_info a, .frm_field_list a",function(e){e.preventDefault()});var r=jQuery("#frm_adv_info");r.on("click",".subsubsub a.frmids",function(e){Ko("frmids",e)}),r.on("click",".subsubsub a.frmkeys",function(e){Ko("frmkeys",e)})},inboxInit:function(){var e;jQuery(".frm_inbox_dismiss").on("click",function(e){var t=this.parentNode.parentNode,n=t.getAttribute("data-message"),r=this.getAttribute("href"),o=t.cloneNode(!0),i=document.querySelector(".frm-dismissed-inbox-messages");if("free_templates"!==n||this.classList.contains("frm_inbox_dismiss")){e.preventDefault();var a={action:"frm_inbox_dismiss",key:n,nonce:frmGlobal.nonce},l="frm_inbox_slide_in"===t.id;l&&(t.classList.remove("s11-fadein"),t.classList.add("s11-fadeout"),t.addEventListener("animationend",function(){return t.remove()},{once:!0})),Ai(a,function(){if(!l)return"#"!==r?(window.location=r,!0):void Si(t,function(){var e;null!==i&&(o.classList.remove("frm-fade"),null===(e=o.querySelector(".frm-inbox-message-heading .frm_inbox_dismiss"))||void 0===e||e.remove(),i.append(o)),1===t.parentNode.querySelectorAll(".frm-inbox-message-container").length&&(document.getElementById("frm_empty_inbox").classList.remove("frm_hidden"),t.parentNode.closest(".frm-active").classList.add("frm-empty-inbox"),_i()),t.remove()})})}}),!1===(null===(e=document.getElementById("frm_empty_inbox"))||void 0===e?void 0:e.classList.contains("frm_hidden"))&&_i()},solutionInit:function(){jQuery(document).on("submit","#frm-new-template",hi)},styleInit:function(){var e=jQuery(".frm_image_preview_wrapper");e.on("click",".frm_choose_image_box",xt),e.on("click",".frm_remove_image_option",Et),wp.hooks.doAction("frm_style_editor_init")},customCSSInit:function(){console.warn("Calling frmAdminBuild.customCSSInit is deprecated.")},globalSettingsInit:function(){jQuery(document).on("click","[data-frmuninstall]",Xo),ci();var e=document.getElementById("licenses_settings");null!==e&&jQuery(e).on("click",".edd_frm_save_license",Yo),jQuery(document).on("click","#frm-new-template button",vi),jQuery("#frm-dismissable-cta .dismiss").on("click",function(e){e.preventDefault(),jQuery.post(ajaxurl,{action:"frm_lite_settings_upgrade",nonce:frmGlobal.nonce}),jQuery(".settings-lite-cta").remove()});var t=document.getElementById("frm_re_type");t&&t.addEventListener("change",ji),document.querySelector(".frm_captchas").addEventListener("change",function(e){var t,n=null===(t=document.querySelector('.frm_captchas input[checked="checked"]'))||void 0===t?void 0:t.value,r=e.target.value!==n;document.querySelector(".captcha_settings .frm_note_style").classList.toggle("frm_hidden",!r)}),frmDom.util.documentOn("submit",".frm_settings_form",function(){x=0});var n=document.getElementById("manage_styles_settings");n&&n.addEventListener("change",function(e){var t=e.target;"SELECT"===t.nodeName&&t.dataset.name&&!t.getAttribute("name")&&t.setAttribute("name",t.dataset.name)});var r=document.getElementById("payments_settings"),o=null==r?void 0:r.querySelectorAll('[name="frm_payment_section"]');o&&o.forEach(function(e){e.addEventListener("change",function(){if(e.checked){var t=r.querySelector('label[for="'.concat(e.id,'"]'));t&&t.setAttribute("aria-selected","true"),o.forEach(function(t){if(t!==e){var n=r.querySelector('label[for="'.concat(t.id,'"]'));n&&n.setAttribute("aria-selected","false")}})}})})},exportInit:function(){jQuery(".frm_form_importer").on("submit",Zo),jQuery(document.getElementById("frm_export_xml")).on("submit",ti),jQuery("#frm_export_xml input, #frm_export_xml select").on("change",ni),jQuery('input[name="frm_import_file"]').on("change",ri),document.querySelector('select[name="format"]').addEventListener("change",ii),jQuery('input[name="frm_export_forms[]"]').on("click",si),ci(),jQuery(".frm-feature-banner .dismiss").on("click",function(e){e.preventDefault(),jQuery.post(ajaxurl,{action:"frm_dismiss_migrator",plugin:this.id,nonce:frmGlobal.nonce}),this.parentElement.remove()}),li(oi()),document.querySelector("#frm-export-select-all").addEventListener("change",function(e){document.querySelectorAll('[name="frm_export_forms[]"]').forEach(function(t){t.checked=e.target.checked})})},inboxBannerInit:function(){var e=document.getElementById("frm_banner");if(e){var t=e.querySelector(".frm-banner-dismiss");document.addEventListener("click",function(n){n.target===t&&Ai({action:"frm_inbox_dismiss",key:e.dataset.key,nonce:frmGlobal.nonce},function(){jQuery(e).fadeOut(400,function(){e.remove()})})})}},updateOpts:function(e,t,n){var r=yr(e),o=Oi(e)?"frm_bulk_products":"frm_import_options";jQuery.ajax({type:"POST",url:ajaxurl,data:{action:o,field_id:e,opts:t,separate:r,nonce:frmGlobal.nonce},success:function(t){document.getElementById("frm_field_".concat(e,"_opts")).innerHTML=t,wp.hooks.doAction("frm_after_bulk_edit_opts",e),ir(e),void 0!==n&&(n.dialog("close"),document.getElementById("frm-update-bulk-opts").classList.remove("frm_loading_button"))}})},triggerRemoveLogic:function(e,t){jQuery("#frm_logic_".concat(e,"_").concat(t," .frm_remove_tag")).trigger("click")},downloadXML:function(e,t,n){var r="".concat(ajaxurl,"?action=frm_").concat(e,"_xml&ids=").concat(t);null!==n&&(r="".concat(r,"&is_template=").concat(n)),location.href=r},hooks:{applyFilters:function(e){for(var t,n=arguments.length,r=new Array(n>1?n-1:0),o=1;o1?n-1:0),o=1;o1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(n){var r=E,o=0;"summary"===e&&(o=b.children('li[data-type="break"]').length>0?1:0),jQuery.ajax({type:"POST",url:ajaxurl,data:Object.assign(_e(e,0,r,o),{field_options:t}),success:function(t){n(t),setTimeout(function(){Er(),We(t,!0);var n=ye(t);n&&wp.hooks.doAction("frm_after_field_added_in_form_builder",{field:t,fieldId:n,fieldType:e,form_id:r})},10)},error:he})})},confirmLinkClick:D,handleInsertFieldByDraggingResponse:ge,handleAddFieldClickResponse:Le,syncLayoutClasses:ae,moveFieldSettings:oo,maybeCollapseSettings:Rn}},window.frmAdminBuild=frmAdminBuildJS(),jQuery(document).ready(function(){var e;frmAdminBuild.init(),document.querySelectorAll(".frm-dropdown-menu").forEach(function(e){e.classList.add("dropdown-menu");var t,n,r=e.querySelector(".frm-dropdown-toggle");r&&(r.hasAttribute("role")||r.setAttribute("role","button"),r.hasAttribute("tabindex")||r.setAttribute("tabindex",0)),"UL"===e.tagName&&(n=(n=(n=(n=(n=(n=(t=e).outerHTML).replace("
        ","")).replaceAll("
      • ",'
      • ",""),t.outerHTML=n)}),null===(e=document.querySelector(".preview.dropdown .frm-dropdown-toggle"))||void 0===e||e.setAttribute("data-bs-toggle","dropdown"),document.querySelectorAll("[data-toggle]").forEach(function(e){return e.setAttribute("data-bs-toggle",e.getAttribute("data-toggle"))})}),window.frm_show_div=function(e,t,n,r){t==n?jQuery(r+e).fadeIn("slow").css("visibility","visible"):jQuery(r+e).fadeOut("slow")},window.frmCheckAll=function(e,t){jQuery('input[name^="'.concat(t,'"]')).prop("checked",Boolean(e))},window.frmCheckAllLevel=function(e,t,n){jQuery(".frm_catlevel_".concat(n)).children(".frm_checkbox").children("label").children('input[name^="'.concat(t,'"]')).prop("checked",Boolean(e))},window.frmGetFieldValues=function(e,t,n,r,o,i){e&&jQuery.ajax({type:"POST",url:ajaxurl,data:"action=frm_get_field_values¤t_field=".concat(t,"&field_id=").concat(e,"&name=").concat(o,"&t=").concat(r,"&form_action=").concat(jQuery('input[name="frm_action"]').val(),"&nonce=").concat(frmGlobal.nonce),success:function(e){document.getElementById("frm_show_selected_values_".concat(t,"_").concat(n)).innerHTML=e,"function"==typeof i&&i()}})},window.frmImportCsv=function(e){var t="";"undefined"!=typeof __FRMURLVARS&&(t=__FRMURLVARS),jQuery.ajax({type:"POST",url:ajaxurl,data:"action=frm_import_csv&nonce=".concat(frmGlobal.nonce,"&frm_skip_cookie=1").concat(t),success:function(t){var n=jQuery(".frm_admin_progress_bar").attr("aria-valuemax"),r=n-t,o=r/n*100;jQuery(".frm_admin_progress_bar").css("width","".concat(o,"%")).attr("aria-valuenow",r),parseInt(t,10)>0?(jQuery(".frm_csv_remaining").html(t),frmImportCsv(e)):(jQuery(document.getElementById("frm_import_message")).html(frm_admin_js.import_complete),setTimeout(function(){location.href="?page=formidable-entries&frm_action=list&form=".concat(e,"&import-message=1")},2e3))}})}})(); \ No newline at end of file diff --git a/js/formidable_blocks.js b/js/formidable_blocks.js index efc2d448cb..726527dba6 100644 --- a/js/formidable_blocks.js +++ b/js/formidable_blocks.js @@ -1 +1 @@ -(()=>{var e={2532:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(6314),o=r.n(n)()(function(e){return e[1]});o.push([e.id,'button.X_GKlxRFRHSOWckGcSPJ {\n\tcursor: progress;\n\topacity: 0.7;\n\tposition: relative;\n\ttext-indent: -999px;\n\tmin-width: 70px;\n\toverflow: hidden;\n}\n\nbutton.X_GKlxRFRHSOWckGcSPJ::before {\n\tcontent: "";\n\tdisplay: inline-block;\n\tposition: absolute;\n\tbackground: transparent;\n\tborder: 1px solid #fff;\n\tborder-top-color: transparent;\n\tborder-left-color: transparent;\n\tborder-radius: 50%;\n\n\tbox-sizing: border-box;\n\ttop: 50%;\n\tleft: 50%;\n\tmargin-top: -10px;\n\tmargin-left: -10px;\n\twidth: 20px;\n\theight: 20px;\n\n\tanimation: _3ywaXb1_tykjJGTtxpG 2s linear infinite;\n}\n',""]),o.locals={"frm-loading":"X_GKlxRFRHSOWckGcSPJ",spin:"_3ywaXb1_tykjJGTtxpG"};const i=o},6314:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var r=e(t);return t[2]?"@media ".concat(t[2]," {").concat(r,"}"):r}).join("")},t.i=function(e,r,n){"string"==typeof e&&(e=[[null,e,""]]);var o={};if(n)for(var i=0;i{"use strict";var n=r(6925);function o(){}function i(){}i.resetWarningCache=o,e.exports=function(){function e(e,t,r,o,i,l){if(l!==n){var a=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw a.name="Invariant Violation",a}}function t(){return e}e.isRequired=e;var r={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:o};return r.PropTypes=r,r}},5556:(e,t,r)=>{e.exports=r(2694)()},6925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},5072:e=>{"use strict";var t=[];function r(e){for(var r=-1,n=0;n{"use strict";var t={};e.exports=function(e,r){var n=function(e){if(void 0===t[e]){var r=document.querySelector(e);if(window.HTMLIFrameElement&&r instanceof window.HTMLIFrameElement)try{r=r.contentDocument.head}catch(e){r=null}t[e]=r}return t[e]}(e);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");n.appendChild(r)}},540:e=>{"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t),t}},5056:(e,t,r)=>{"use strict";e.exports=function(e){var t=r.nc;t&&e.setAttribute("nonce",t)}},7825:e=>{"use strict";e.exports=function(e){var t=e.insertStyleElement(e);return{update:function(r){!function(e,t,r){var n=r.css,o=r.media,i=r.sourceMap;o?e.setAttribute("media",o):e.removeAttribute("media"),i&&"undefined"!=typeof btoa&&(n+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),t.styleTagTransform(n,e)}(t,e,r)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},1113:e=>{"use strict";e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={id:n,exports:{}};return e[n](i,i.exports,r),i.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.nc=void 0,(()=>{"use strict";function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(t,r,n){var o,i,l;n((o={},l=r,(i=function(t){var r=function(t){if("object"!=e(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=e(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==e(r)?r:r+""}(i=t))in o?Object.defineProperty(o,i,{value:l,enumerable:!0,configurable:!0,writable:!0}):o[i]=l,o))}function n(e,t){return e?" ".concat(t,'="').concat(e,'"'):""}function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}function i(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=Array(t);r-1&&(n=e.substr(0,r)),n+"wp-admin/admin.php?page=formidable&frm_action=edit&id=".concat(c))},V("Go to form","formidable")))),wp.element.createElement(W,{title:V("Options","formidable"),initialOpen:!1},wp.element.createElement(J,{label:V("Show Form Title","formidable"),checked:s,onChange:function(e){t("title",e?"1":"",i)}}),wp.element.createElement(J,{label:V("Show Form Description","formidable"),checked:m,onChange:function(e){t("description",e?"1":"",i)}}),wp.element.createElement(J,{label:V("Minimize HTML","formidable"),checked:f,onChange:function(e){t("minimize",e?"1":"",i)}})),wp.element.createElement(W,{title:V("Shortcode","formidable"),initialOpen:!1},wp.element.createElement(U,null,wp.element.createElement(u,this.props.attributes))))}}])&&F(n.prototype,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,o}(M);function K(e){return K="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},K(e)}function $(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=Array(t);r{var e={2532:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(6314),o=r.n(n)()(function(e){return e[1]});o.push([e.id,'button.X_GKlxRFRHSOWckGcSPJ {\n\tcursor: progress;\n\topacity: 0.7;\n\tposition: relative;\n\ttext-indent: -999px;\n\tmin-width: 70px;\n\toverflow: hidden;\n}\n\nbutton.X_GKlxRFRHSOWckGcSPJ::before {\n\tcontent: "";\n\tdisplay: inline-block;\n\tposition: absolute;\n\tbackground: transparent;\n\tborder: 1px solid #fff;\n\tborder-top-color: transparent;\n\tborder-left-color: transparent;\n\tborder-radius: 50%;\n\n\tbox-sizing: border-box;\n\ttop: 50%;\n\tleft: 50%;\n\tmargin-top: -10px;\n\tmargin-left: -10px;\n\twidth: 20px;\n\theight: 20px;\n\n\tanimation: _3ywaXb1_tykjJGTtxpG 2s linear infinite;\n}\n',""]),o.locals={"frm-loading":"X_GKlxRFRHSOWckGcSPJ",spin:"_3ywaXb1_tykjJGTtxpG"};const i=o},6314:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var r=e(t);return t[2]?"@media ".concat(t[2]," {").concat(r,"}"):r}).join("")},t.i=function(e,r,n){"string"==typeof e&&(e=[[null,e,""]]);var o={};if(n)for(var i=0;i{"use strict";var n=r(6925);function o(){}function i(){}i.resetWarningCache=o,e.exports=function(){function e(e,t,r,o,i,l){if(l!==n){var a=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw a.name="Invariant Violation",a}}function t(){return e}e.isRequired=e;var r={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:o};return r.PropTypes=r,r}},5556:(e,t,r)=>{e.exports=r(2694)()},6925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},5072:e=>{"use strict";var t=[];function r(e){for(var r=-1,n=0;n{"use strict";var t={};e.exports=function(e,r){var n=function(e){if(void 0===t[e]){var r=document.querySelector(e);if(window.HTMLIFrameElement&&r instanceof window.HTMLIFrameElement)try{r=r.contentDocument.head}catch(e){r=null}t[e]=r}return t[e]}(e);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");n.appendChild(r)}},540:e=>{"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t),t}},5056:(e,t,r)=>{"use strict";e.exports=function(e){var t=r.nc;t&&e.setAttribute("nonce",t)}},7825:e=>{"use strict";e.exports=function(e){var t=e.insertStyleElement(e);return{update:function(r){!function(e,t,r){var n=r.css,o=r.media,i=r.sourceMap;o?e.setAttribute("media",o):e.removeAttribute("media"),i&&"undefined"!=typeof btoa&&(n+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),t.styleTagTransform(n,e)}(t,e,r)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},1113:e=>{"use strict";e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={id:n,exports:{}};return e[n](i,i.exports,r),i.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.nc=void 0,(()=>{"use strict";function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(t,r,n){var o,i,l;n((o={},l=r,(i=function(t){var r=function(t){if("object"!=e(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=e(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==e(r)?r:r+""}(i=t))in o?Object.defineProperty(o,i,{value:l,enumerable:!0,configurable:!0,writable:!0}):o[i]=l,o))}function n(e,t){return e?" ".concat(t,'="').concat(e,'"'):""}function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}function i(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=Array(t);r-1&&(n=e.substr(0,r)),n),"wp-admin/admin.php?page=formidable&frm_action=edit&id=").concat(c)},V("Go to form","formidable")))),wp.element.createElement(W,{title:V("Options","formidable"),initialOpen:!1},wp.element.createElement(J,{label:V("Show Form Title","formidable"),checked:s,onChange:function(e){t("title",e?"1":"",i)}}),wp.element.createElement(J,{label:V("Show Form Description","formidable"),checked:m,onChange:function(e){t("description",e?"1":"",i)}}),wp.element.createElement(J,{label:V("Minimize HTML","formidable"),checked:f,onChange:function(e){t("minimize",e?"1":"",i)}})),wp.element.createElement(W,{title:V("Shortcode","formidable"),initialOpen:!1},wp.element.createElement(U,null,wp.element.createElement(u,this.props.attributes))))}}])&&F(n.prototype,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,o}(M);function K(e){return K="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},K(e)}function $(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=Array(t);r{"use strict";function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"default";!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.elements=t,this.type=i,this.prepareElements()},i=[{key:"fadeIn",value:function(){var e=this;this.applyStyleToElements(function(t){t.classList.add("frm-fadein-up"),t.addEventListener("animationend",function(){e.resetOpacity(),t.classList.remove("frm-fadein-up")},{once:!0})})}},{key:"cascadeFadeIn",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.03;setTimeout(function(){e.applyStyleToElements(function(e,i){e.classList.remove("frm-animate"),e.style.transitionDelay=(i+1)*t+"s"})},200)}},{key:"prepareElements",value:function(){var e=this;this.applyStyleToElements(function(t){"default"===e.type&&(t.style.opacity="0.0"),"cascade"===e.type&&t.classList.add("frm-init-cascade-animation"),"cascade-3d"===e.type&&t.classList.add("frm-init-fadein-3d"),t.classList.add("frm-animate")})}},{key:"resetOpacity",value:function(){this.applyStyleToElements(function(e){return e.style.opacity="1.0"})}},{key:"applyStyleToElements",value:function(e){this.elements instanceof Element?e(this.elements,0):0 li"),this.slideTrackLine=this.wrapper.querySelector(".frm-tabs-active-underline"),this.slideTrack=this.wrapper.querySelector(".frm-tabs-slide-track"),this.slides=this.wrapper.querySelectorAll(".frm-tabs-slide-track > div"),this.isRTL="rtl"===document.documentElement.dir||"rtl"===document.body.dir,this.resizeObserver=null,this.init()))},(t=[{key:"init",value:function(){var e=this;null!==this.wrapper&&this.navs.length&&null!==this.slideTrackLine&&null!==this.slideTrack&&this.slides.length&&(this.initDefaultSlideTrackerWidth(),this.navs.forEach(function(t,i){t.addEventListener("click",function(t){return e.onNavClick(t,i)})}),this.setupScrollbarObserver(),window.addEventListener("beforeunload",this.cleanupObservers))}},{key:"onNavClick",value:function(e,t){var i=e.currentTarget;e.preventDefault(),this.removeActiveClassnameFromNavs(),i.classList.add("frm-active"),this.initSlideTrackUnderline(i,t),this.changeSlide(t);var n,r,o=i.querySelector("a");o&&"frm_insert_fields_tab"===o.id&&!o.closest("#frm_adv_info")&&(null===(n=window.frmAdminBuild)||void 0===n||null===(r=n.clearSettingsBox)||void 0===r||r.call(n))}},{key:"initDefaultSlideTrackerWidth",value:function(){this.slideTrackLine.dataset.initialWidth&&(this.slideTrackLine.style.width="".concat(this.slideTrackLine.dataset.initialWidth,"px"))}},{key:"initSlideTrackUnderline",value:function(e,t){this.slideTrackLine.classList.remove("frm-first","frm-last");var i=void 0!==e?e:this.navs.filter(function(e){return e.classList.contains("frm-active")});this.positionUnderlineIndicator(i)}},{key:"setupScrollbarObserver",value:function(){var e=this,t=this.wrapper.closest(".frm-scrollbar-wrapper");t&&"ResizeObserver"in window&&(this.resizeObserver=new ResizeObserver(function(){var t=e.wrapper.querySelector(".frm-tabs-navs ul > li.frm-active");t&&e.positionUnderlineIndicator(t)}),this.resizeObserver.observe(t))}},{key:"cleanupObservers",value:function(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null)}},{key:"positionUnderlineIndicator",value:function(e){var t=this;requestAnimationFrame(function(){var i=t.isRTL?-(e.parentElement.offsetWidth-e.offsetLeft-e.offsetWidth):e.offsetLeft;t.slideTrackLine.style.transform="translateX(".concat(i,"px)"),t.slideTrackLine.style.width=e.clientWidth+"px"})}},{key:"changeSlide",value:function(e){this.removeActiveClassnameFromSlides();var t=0==e?"0px":"calc( ( ".concat(100*e,"% + ").concat(parseInt(this.flexboxSlidesGap,10)*e,"px ) * ").concat(this.isRTL?1:-1," )");"0px"!==t?this.slideTrack.style.transform="translateX(".concat(t,")"):this.slideTrack.style.removeProperty("transform"),e in this.slides&&this.slides[e].classList.add("frm-active")}},{key:"removeActiveClassnameFromSlides",value:function(){this.slides.forEach(function(e){return e.classList.remove("frm-active")})}},{key:"removeActiveClassnameFromNavs",value:function(){this.navs.forEach(function(e){return e.classList.remove("frm-active")})}}])&&c(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();function m(e){return m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},m(e)}function d(e,t){for(var i=0;i{"use strict";function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(e,t){for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:"default";!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.elements=t,this.type=n,this.prepareElements()},n=[{key:"fadeIn",value:function(){var e=this;this.applyStyleToElements(function(t){t.classList.add("frm-fadein-up"),t.addEventListener("animationend",function(){e.resetOpacity(),t.classList.remove("frm-fadein-up")},{once:!0})})}},{key:"cascadeFadeIn",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.03;setTimeout(function(){e.applyStyleToElements(function(e,n){e.classList.remove("frm-animate"),e.style.transitionDelay="".concat((n+1)*t,"s")})},200)}},{key:"prepareElements",value:function(){var e=this;this.applyStyleToElements(function(t){"default"===e.type&&(t.style.opacity="0.0"),"cascade"===e.type&&t.classList.add("frm-init-cascade-animation"),"cascade-3d"===e.type&&t.classList.add("frm-init-fadein-3d"),t.classList.add("frm-animate")})}},{key:"resetOpacity",value:function(){this.applyStyleToElements(function(e){return e.style.opacity="1.0"})}},{key:"applyStyleToElements",value:function(e){this.elements instanceof Element?e(this.elements,0):0 li"),this.slideTrackLine=this.wrapper.querySelector(".frm-tabs-active-underline"),this.slideTrack=this.wrapper.querySelector(".frm-tabs-slide-track"),this.slides=this.wrapper.querySelectorAll(".frm-tabs-slide-track > div"),this.isRTL="rtl"===document.documentElement.dir||"rtl"===document.body.dir,this.resizeObserver=null,this.init()))},(t=[{key:"init",value:function(){var e=this;null!==this.wrapper&&this.navs.length&&null!==this.slideTrackLine&&null!==this.slideTrack&&this.slides.length&&(this.initDefaultSlideTrackerWidth(),this.navs.forEach(function(t,n){t.addEventListener("click",function(t){return e.onNavClick(t,n)})}),this.setupScrollbarObserver(),window.addEventListener("beforeunload",this.cleanupObservers))}},{key:"onNavClick",value:function(e,t){var n=e.currentTarget;e.preventDefault(),this.removeActiveClassnameFromNavs(),n.classList.add("frm-active"),this.initSlideTrackUnderline(n,t),this.changeSlide(t);var i,r,o=n.querySelector("a");o&&"frm_insert_fields_tab"===o.id&&!o.closest("#frm_adv_info")&&(null===(i=window.frmAdminBuild)||void 0===i||null===(r=i.clearSettingsBox)||void 0===r||r.call(i))}},{key:"initDefaultSlideTrackerWidth",value:function(){this.slideTrackLine.dataset.initialWidth&&(this.slideTrackLine.style.width="".concat(this.slideTrackLine.dataset.initialWidth,"px"))}},{key:"initSlideTrackUnderline",value:function(e,t){this.slideTrackLine.classList.remove("frm-first","frm-last");var n=void 0!==e?e:this.navs.filter(function(e){return e.classList.contains("frm-active")});this.positionUnderlineIndicator(n)}},{key:"setupScrollbarObserver",value:function(){var e=this,t=this.wrapper.closest(".frm-scrollbar-wrapper");t&&"ResizeObserver"in window&&(this.resizeObserver=new ResizeObserver(function(){var t=e.wrapper.querySelector(".frm-tabs-navs ul > li.frm-active");t&&e.positionUnderlineIndicator(t)}),this.resizeObserver.observe(t))}},{key:"cleanupObservers",value:function(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null)}},{key:"positionUnderlineIndicator",value:function(e){var t=this;requestAnimationFrame(function(){var n=t.isRTL?-(e.parentElement.offsetWidth-e.offsetLeft-e.offsetWidth):e.offsetLeft;t.slideTrackLine.style.transform="translateX(".concat(n,"px)"),t.slideTrackLine.style.width="".concat(e.clientWidth,"px")})}},{key:"changeSlide",value:function(e){this.removeActiveClassnameFromSlides();var t=0==e?"0px":"calc( ( ".concat(100*e,"% + ").concat(parseInt(this.flexboxSlidesGap,10)*e,"px ) * ").concat(this.isRTL?1:-1," )");"0px"!==t?this.slideTrack.style.transform="translateX(".concat(t,")"):this.slideTrack.style.removeProperty("transform"),e in this.slides&&this.slides[e].classList.add("frm-active")}},{key:"removeActiveClassnameFromSlides",value:function(){this.slides.forEach(function(e){return e.classList.remove("frm-active")})}},{key:"removeActiveClassnameFromNavs",value:function(){this.navs.forEach(function(e){return e.classList.remove("frm-active")})}}])&&c(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();function m(e){return m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},m(e)}function d(e,t){for(var n=0;n{"use strict";function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"default";!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.elements=t,this.type=r,this.prepareElements()},r=[{key:"fadeIn",value:function(){var e=this;this.applyStyleToElements(function(t){t.classList.add("frm-fadein-up"),t.addEventListener("animationend",function(){e.resetOpacity(),t.classList.remove("frm-fadein-up")},{once:!0})})}},{key:"cascadeFadeIn",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.03;setTimeout(function(){e.applyStyleToElements(function(e,r){e.classList.remove("frm-animate"),e.style.transitionDelay=(r+1)*t+"s"})},200)}},{key:"prepareElements",value:function(){var e=this;this.applyStyleToElements(function(t){"default"===e.type&&(t.style.opacity="0.0"),"cascade"===e.type&&t.classList.add("frm-init-cascade-animation"),"cascade-3d"===e.type&&t.classList.add("frm-init-fadein-3d"),t.classList.add("frm-animate")})}},{key:"resetOpacity",value:function(){this.applyStyleToElements(function(e){return e.style.opacity="1.0"})}},{key:"applyStyleToElements",value:function(e){this.elements instanceof Element?e(this.elements,0):0{"use strict";function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"default";!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.elements=t,this.type=r,this.prepareElements()},r=[{key:"fadeIn",value:function(){var e=this;this.applyStyleToElements(function(t){t.classList.add("frm-fadein-up"),t.addEventListener("animationend",function(){e.resetOpacity(),t.classList.remove("frm-fadein-up")},{once:!0})})}},{key:"cascadeFadeIn",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.03;setTimeout(function(){e.applyStyleToElements(function(e,r){e.classList.remove("frm-animate"),e.style.transitionDelay="".concat((r+1)*t,"s")})},200)}},{key:"prepareElements",value:function(){var e=this;this.applyStyleToElements(function(t){"default"===e.type&&(t.style.opacity="0.0"),"cascade"===e.type&&t.classList.add("frm-init-cascade-animation"),"cascade-3d"===e.type&&t.classList.add("frm-init-fadein-3d"),t.classList.add("frm-animate")})}},{key:"resetOpacity",value:function(){this.applyStyleToElements(function(e){return e.style.opacity="1.0"})}},{key:"applyStyleToElements",value:function(e){this.elements instanceof Element?e(this.elements,0):0{var e={65:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(8793),o=r(1323);function i(e){var t=(0,n.A)(e);return function(e){return(0,o.A)(t,e)}}},1323:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n={"!":function(e){return!e},"*":function(e,t){return e*t},"/":function(e,t){return e/t},"%":function(e,t){return e%t},"+":function(e,t){return e+t},"-":function(e,t){return e-t},"<":function(e,t){return e":function(e,t){return e>t},">=":function(e,t){return e>=t},"==":function(e,t){return e===t},"!=":function(e,t){return e!==t},"&&":function(e,t){return e&&t},"||":function(e,t){return e||t},"?:":function(e,t,r){if(e)throw t;return r}};function o(e,t){var r,o,i,a,s,l,c=[];for(r=0;r{"use strict";r.d(t,{A:()=>o});var n=r(65);function o(e){var t=(0,n.A)(e);return function(e){return+t({n:e})}}},8793:(e,t,r)=>{"use strict";var n,o,i,a;function s(e){for(var t,r,s,l,c=[],u=[];t=e.match(a);){for(r=t[0],(s=e.substr(0,t.index).trim())&&c.push(s);l=u.pop();){if(i[r]){if(i[r][0]===l){r=i[r][1]||r;break}}else if(o.indexOf(l)>=0||n[l]s}),n={"(":9,"!":8,"*":7,"/":7,"%":7,"+":6,"-":6,"<":5,"<=":5,">":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},o=["(","?"],i={")":["("],":":["?","?:"]},a=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/},7521:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(6956),o=r(7395);const i=function(e,t){return function(r,i,a){var s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:10,l=e[t];if((0,o.A)(r)&&(0,n.A)(i))if("function"==typeof a)if("number"==typeof s){var c={callback:a,priority:s,namespace:i};if(l[r]){var u,d=l[r].handlers;for(u=d.length;u>0&&!(s>=d[u-1].priority);u--);u===d.length?d[u]=c:d.splice(u,0,c),l.__current.forEach(function(e){e.name===r&&e.currentIndex>=u&&e.currentIndex++})}else l[r]={handlers:[c],runs:0};"hookAdded"!==r&&e.doAction("hookAdded",r,i,a,s)}else console.error("If specified, the hook priority must be a number.");else console.error("The hook callback must be a function.")}}},11:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});const n=function(e,t){return function(){var r,n,o=e[t];return null!==(r=null===(n=o.__current[o.__current.length-1])||void 0===n?void 0:n.name)&&void 0!==r?r:null}}},5375:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(7395);const o=function(e,t){return function(r){var o=e[t];if((0,n.A)(r))return o[r]&&o[r].runs?o[r].runs:0}}},3561:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});const n=function(e,t){return function(r){var n=e[t];return void 0===r?void 0!==n.__current[0]:!!n.__current[0]&&r===n.__current[0].name}}},8830:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});const n=function(e,t){return function(r,n){var o=e[t];return void 0!==n?r in o&&o[r].handlers.some(function(e){return e.namespace===n}):r in o}}},7765:(e,t,r)=>{"use strict";r.d(t,{A:()=>f});var n=r(3029),o=r(7521),i=r(4194),a=r(8830),s=r(6763),l=r(11),c=r(3561),u=r(5375),d=function e(){(0,n.A)(this,e),this.actions=Object.create(null),this.actions.__current=[],this.filters=Object.create(null),this.filters.__current=[],this.addAction=(0,o.A)(this,"actions"),this.addFilter=(0,o.A)(this,"filters"),this.removeAction=(0,i.A)(this,"actions"),this.removeFilter=(0,i.A)(this,"filters"),this.hasAction=(0,a.A)(this,"actions"),this.hasFilter=(0,a.A)(this,"filters"),this.removeAllActions=(0,i.A)(this,"actions",!0),this.removeAllFilters=(0,i.A)(this,"filters",!0),this.doAction=(0,s.A)(this,"actions"),this.applyFilters=(0,s.A)(this,"filters",!0),this.currentAction=(0,l.A)(this,"actions"),this.currentFilter=(0,l.A)(this,"filters"),this.doingAction=(0,c.A)(this,"actions"),this.doingFilter=(0,c.A)(this,"filters"),this.didAction=(0,u.A)(this,"actions"),this.didFilter=(0,u.A)(this,"filters")};const f=function(){return new d}},4194:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(6956),o=r(7395);const i=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(i,a){var s=e[t];if((0,o.A)(i)&&(r||(0,n.A)(a))){if(!s[i])return 0;var l=0;if(r)l=s[i].handlers.length,s[i]={runs:s[i].runs,handlers:[]};else for(var c=s[i].handlers,u=function(e){c[e].namespace===a&&(c.splice(e,1),l++,s.__current.forEach(function(t){t.name===i&&t.currentIndex>=e&&t.currentIndex--}))},d=c.length-1;d>=0;d--)u(d);return"hookRemoved"!==i&&e.doAction("hookRemoved",i,a),l}}}},6763:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});const n=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(n){var o=e[t];o[n]||(o[n]={handlers:[],runs:0}),o[n].runs++;for(var i=o[n].handlers,a=arguments.length,s=new Array(a>1?a-1:0),l=1;l{"use strict";r.d(t,{se:()=>n});var n=(0,r(7765).A)();n.addAction,n.addFilter,n.removeAction,n.removeFilter,n.hasAction,n.hasFilter,n.removeAllActions,n.removeAllFilters,n.doAction,n.applyFilters,n.currentAction,n.currentFilter,n.doingAction,n.doingFilter,n.didAction,n.didFilter,n.actions,n.filters},7395:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});const n=function(e){return"string"!=typeof e||""===e?(console.error("The hook name must be a non-empty string."),!1):/^__/.test(e)?(console.error("The hook name cannot begin with `__`."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(e)||(console.error("The hook name can only contain numbers, letters, dashes, periods and underscores."),!1)}},6956:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});const n=function(e){return"string"!=typeof e||""===e?(console.error("The namespace must be a non-empty string."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(e)||(console.error("The namespace can only contain numbers, letters, dashes, periods, underscores and slashes."),!1)}},772:(e,t,r)=>{"use strict";r.d(t,{h:()=>c});var n=r(4467),o=r(5397);function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function a(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:"default";n.data[t]=a(a(a({},s),n.data[t]),e),n.data[t][""]=a(a({},s[""]),n.data[t][""])},d=function(e,t){u(e,t),c()},f=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default",t=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0;return n.data[e]||u(void 0,e),n.dcnpgettext(e,t,r,o,i)},p=function(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default"},m=function(e,t,n){var o=f(n,t,e);return r?(o=r.applyFilters("i18n.gettext_with_context",o,e,t,n),r.applyFilters("i18n.gettext_with_context_"+p(n),o,e,t,n)):o};if(e&&d(e,t),r){var v=function(e){l.test(e)&&c()};r.addAction("hookAdded","core/i18n",v),r.addAction("hookRemoved","core/i18n",v)}return{getLocaleData:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default";return n.data[e]},setLocaleData:d,resetLocaleData:function(e,t){n.data={},n.pluralForms={},d(e,t)},subscribe:function(e){return i.add(e),function(){return i.delete(e)}},__:function(e,t){var n=f(t,void 0,e);return r?(n=r.applyFilters("i18n.gettext",n,e,t),r.applyFilters("i18n.gettext_"+p(t),n,e,t)):n},_x:m,_n:function(e,t,n,o){var i=f(o,void 0,e,t,n);return r?(i=r.applyFilters("i18n.ngettext",i,e,t,n,o),r.applyFilters("i18n.ngettext_"+p(o),i,e,t,n,o)):i},_nx:function(e,t,n,o,i){var a=f(i,o,e,t,n);return r?(a=r.applyFilters("i18n.ngettext_with_context",a,e,t,n,o,i),r.applyFilters("i18n.ngettext_with_context_"+p(i),a,e,t,n,o,i)):a},isRTL:function(){return"rtl"===m("ltr","text direction")},hasTranslation:function(e,t,o){var i,a,s=t?t+""+e:e,l=!(null===(i=n.data)||void 0===i||null===(a=i[null!=o?o:"default"])||void 0===a||!a[s]);return r&&(l=r.applyFilters("i18n.has_translation",l,e,t,o),l=r.applyFilters("i18n.has_translation_"+p(o),l,e,t,o)),l}}}},5839:(e,t,r)=>{"use strict";r.d(t,{__:()=>a});var n=r(772),o=r(2133),i=(0,n.h)(void 0,void 0,o.se),a=(i.getLocaleData.bind(i),i.setLocaleData.bind(i),i.resetLocaleData.bind(i),i.subscribe.bind(i),i.__.bind(i));i._x.bind(i),i._n.bind(i),i._nx.bind(i),i.isRTL.bind(i),i.hasTranslation.bind(i)},9575:(e,t,r)=>{"use strict";r.d(t,{__:()=>n.__}),r(181),r(772);var n=r(5839)},181:(e,t,r)=>{"use strict";var n=r(8616),o=r.n(n);r(7604),o()(console.error)},1105:(e,t,r)=>{"use strict";r.r(t),r.d(t,{addonError:()=>u,afterAddonInstall:()=>c,extractErrorFromAddOnResponse:()=>l,toggleAddonState:()=>s});var n=r(9575),o=frmDom,i=o.div,a=o.svg;function s(e,t){var r,n=null!==(r=window.ajaxurl)&&void 0!==r?r:frm_js.ajax_url;jQuery(".frm-addon-error").remove();var o=jQuery(e),i=o.attr("rel"),a=o.parent(),s=a.parent().find(".addon-status-label");o.addClass("frm_loading_button"),jQuery.ajax({url:n,type:"POST",async:!0,cache:!1,dataType:"json",data:{action:t,nonce:frmGlobal.nonce,plugin:i},success:function(e){var r,n,i;"string"!=typeof(e=null!==(r=null===(n=e)||void 0===n?void 0:n.data)&&void 0!==r?r:e)&&"string"==typeof e.message&&(void 0!==e.saveAndReload&&(i=e.saveAndReload),e=e.message);var d=l(e);d?u(d,a,o):(c(e,o,s,a,i,t),wp.hooks.doAction("frm_update_addon_state",e))},error:function(){o.removeClass("frm_loading_button")}})}function l(e){return"string"!=typeof e&&!e.success&&(e.form&&jQuery(e.form).is("#message")?{message:jQuery(e.form).find("p").html()}:e)}function c(e,t,r,o,s){var l=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"frm_activate_addon",c=frm_admin_js,u=document.querySelectorAll(".frm-addon-status");u.forEach(function(t){t.textContent=e,t.style.display="block"}),t.css({opacity:"0"}),document.querySelectorAll(".frm-oneclick").forEach(function(e){e.style.display="none"}),function(){var e=document.getElementById("frm_upgrade_modal");if(e){e.classList.add("frm-success");var t=e.querySelector(".frm-upgrade-message");if(t){var r=t.querySelector("img");t.replaceChildren((0,n.__)("Great! Everything's ready to go!","formidable"),document.createElement("br"),(0,n.__)("You just need to refresh the builder so the new field becomes available.","formidable")),r&&t.append(r)}var o=document.querySelector(".frm-addon-status");o&&(o.textContent="");var i,s=e.querySelector(".frm-circled-icon");if(s)s.classList.add("frm-circled-icon-green"),null===(i=s.querySelector("svg"))||void 0===i||i.replaceWith(a({href:"#frm_checkmark_icon"}))}}();var f={frm_activate_addon:{class:"frm-addon-active",message:c.active},frm_deactivate_addon:{class:"frm-addon-installed",message:c.installed},frm_uninstall_addon:{class:"frm-addon-not-installed",message:c.not_installed}};f.frm_install_addon=f.frm_activate_addon;var p=r[0];p&&(p.textContent=f[l].message);var m=o[0].parentElement;m.classList.remove("frm-addon-not-installed","frm-addon-installed","frm-addon-active"),m.classList.add(f[l].class),t[0].classList.remove("frm_loading_button"),document.querySelectorAll(".frm-admin-page-import, #frm-admin-smtp, #frm-welcome").length>0?window.location.reload():["settings","form_builder"].includes(s)&&u.forEach(function(e){var t=null!==e.closest("#frm_upgrade_modal");e.append(function(e,t){var r,o=[d(e)];return t&&o.push(((r=document.createElement("a")).setAttribute("href","#"),r.classList.add("button","button-secondary","frm-button-secondary","dismiss"),r.textContent=(0,n.__)("Not Now","formidable"),r)),i({className:"frm-save-and-reload-options",children:o})}(s,t))})}function u(e,t,r){e.form?(jQuery(".frm-inline-error").remove(),r.closest(".frm-card").html(e.form).css({padding:5}).find("#upgrade").attr("rel",r.attr("rel")).on("click",f)):(t.append('

        '+e.message+"

        "),r.removeClass("frm_loading_button"),jQuery(".frm-addon-error").delay(4e3).fadeOut())}function d(e){var t=document.createElement("button");return t.classList.add("frm-save-and-reload","button","button-primary","frm-button-primary"),t.textContent=(0,n.__)("Save and Reload","formidable"),t.addEventListener("click",function(){var t;"form_builder"===e?((t=document.getElementById("frm_submit_side_top")).classList.contains("frm_submit_ajax")&&t.setAttribute("data-new-addon-installed",!0),t.click()):"settings"===e&&function(){var e=document.getElementById("form_settings_page");if(null!==e){var t=e.querySelector("form.frm_form_settings");null!==t&&(wp.hooks.doAction("frm_reset_fields_updated"),t.submit())}}()}),t}function f(e){e.preventDefault();var t=jQuery(this),r=t.parent().parent(),n=t.attr("rel");t.addClass("frm_loading_button"),jQuery.ajax({url:ajaxurl,type:"POST",async:!0,cache:!1,dataType:"json",data:{action:"frm_install_addon",nonce:frmAdminJs.nonce,plugin:n,hostname:r.find("#hostname").val(),username:r.find("#username").val(),password:r.find("#password").val()},success:function(e){var n,o,i=l(e=null!==(n=null===(o=e)||void 0===o?void 0:o.data)&&void 0!==n?n:e);i?u(i,r,t):c(e,t,message,r)},error:function(){t.removeClass("frm_loading_button")}})}},4260:(e,t,r)=>{"use strict";r.r(t),r.d(t,{addOneClick:()=>i,initModal:()=>a,initUpgradeModal:()=>s});var n=r(9575),o=frmDom.svg;function i(e,t,r){var i;if("modal"===t)i=document.getElementById("frm_upgrade_modal");else{if("tab"!==t)return;i=document.getElementById(e.getAttribute("href").substr(1))}var a,s=i.querySelector(".frm-oneclick"),l=i.querySelector(".frm-upgrade-message"),c=i.querySelector(".frm-upgrade-link"),u=i.querySelector(".frm-oneclick-button"),d=i.querySelector(".frm-addon-status"),f=e.getAttribute("data-oneclick"),p=e.getAttribute("data-message"),m="block",v="block",h="none",g=i.querySelector(".frm-circled-icon");g&&(g.classList.remove("frm-circled-icon-green"),null===(a=g.querySelector("svg"))||void 0===a||a.replaceWith(o({href:"#frm_filled_lock_icon"})));var y=i.querySelector(".frm-learn-more");if(y&&(y.href=e.dataset.learnMore),null!==s&&null!==u&&void 0!==f&&f){null===p&&(v="none"),m="none",h="block",f=JSON.parse(f),u.className=u.className.replace(" frm-install-addon","").replace(" frm-activate-addon",""),u.className=u.className+" "+f.class,u.rel=f.url,s.textContent=(0,n.__)("This plugin is not activated. Would you like to activate it now?","formidable"),u.textContent=(0,n.__)("Activate","formidable");var _=e.querySelector("use");_&&(null==g||g.querySelector("svg").replaceWith(o({href:_.getAttribute("href")||_.getAttribute("xlink:href"),classList:["frm_svg32"]})))}p||(p=l.getAttribute("data-default")),void 0!==r&&(p=p.replace('',r)),l.innerHTML=p,e.dataset.upsellImage&&l.append(frmDom.img({src:e.dataset.upsellImage,alt:e.dataset.upgrade})),c.href=function(e,t){var r=e.getAttribute("data-link");return null!=r&&""!==r||(r=t.getAttribute("data-default")),r}(e,c),d.style.display="none",s&&(s.style.display=h),u&&(u.style.display="block"===h?"inline-block":h),l.style.display=v,c.style.display="block"===m?"inline-block":m;var b=c.closest(".frm-upgrade-modal-actions");b&&(b.style.display="block"===m?"flex":m)}function a(e,t){var r=jQuery(e);if(!r.length)return!1;void 0===t&&(t="552px");var n={dialogClass:"frm-dialog",modal:!0,autoOpen:!1,closeOnEscape:!0,width:t,resizable:!1,draggable:!1,open:function(){var e,t;jQuery(".ui-dialog-titlebar").addClass("frm_hidden").removeClass("ui-helper-clearfix"),jQuery("#wpwrap").addClass("frm_overlay"),jQuery(".frm-dialog").removeClass("ui-widget ui-widget-content ui-corner-all"),r.removeClass("ui-dialog-content ui-widget-content"),e=r,t=function(){e.dialog("close")},jQuery(".ui-widget-overlay").on("click",t),e.on("click","a.dismiss",t)},close:function(){jQuery("#wpwrap").removeClass("frm_overlay"),jQuery(".spinner").css("visibility","hidden"),this.removeAttribute("data-option-type");var e=document.getElementById("bulk-option-type");e&&(e.value="")}};return r.dialog(n),r}function s(){var e=a("#frm_upgrade_modal");function t(t){var r,n,o;if((r=t.target).classList){var a=r.classList.contains("frm_show_expired_modal")||null!==r.querySelector(".frm_show_expired_modal")||r.closest(".frm_show_expired_modal");if("change"===t.type&&r.classList.contains("frm_select_with_upgrade")){var s=r.options[r.selectedIndex];s&&s.dataset.upgrade&&(r=s)}if(!r.dataset.upgrade){var l=r.closest("[data-upgrade]");if(!l){if(!(l=r.closest(".frm_field_box")))return;r.dataset.upgrade=""}r=l}if(a)wp.hooks.doAction("frm_show_expired_modal",r);else{var c=r.dataset.upgrade;if(c&&!r.classList.contains("frm_show_upgrade_tab")){t.preventDefault();var u=e.get(0),d=u.querySelector(".frm_lock_icon");d&&(d.style.display="block",d.classList.remove("frm_lock_open_icon"),d.querySelector("use").setAttribute("href","#frm_lock_icon"));var f="frm_upgrade_modal_image",p=document.getElementById(f);p&&p.remove(),r.dataset.image&&d&&(d.style.display="none",d.parentNode.insertBefore(frmDom.img({id:f,src:frmGlobal.url+"/images/"+r.dataset.image}),d));var m=u.querySelector(".license-level");m&&(m.textContent=function(e){return e.dataset.requires?e.dataset.requires:"Pro"}(r)),i(r,"modal",c),u.querySelector(".frm_are_not_installed").style.display=r.dataset.image||r.dataset.oneclick?"none":"inline-block",u.querySelector(".frm-upgrade-modal-title-prefix").style.display=r.dataset.oneclick?"inline":"none",u.querySelector(".frm_feature_label").textContent=c,u.querySelector(".frm-upgrade-modal-title-suffix").style.display="none",u.querySelector("h2").style.display="block",e.dialog("open");var v=u.querySelector(".button-primary:not(.frm-oneclick-button)");n=v.getAttribute("href").replace(/(medium=)[a-z_-]+/gi,"$1"+r.getAttribute("data-medium")),null===(o=r.getAttribute("data-content"))&&(o=""),n=n.replace(/(content=)[a-z_-]+/gi,"$1"+o),v.setAttribute("href",n)}}}}!1!==e&&(document.addEventListener("click",t),frmDom.util.documentOn("change","select.frm_select_with_upgrade",t))}},8616:e=>{e.exports=function(e,t){var r,n,o=0;function i(){var i,a,s=r,l=arguments.length;e:for(;s;){if(s.args.length===arguments.length){for(a=0;a{var n;!function(){"use strict";var o={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function i(e){return function(e,t){var r,n,a,s,l,c,u,d,f,p=1,m=e.length,v="";for(n=0;n=0),s.type){case"b":r=parseInt(r,10).toString(2);break;case"c":r=String.fromCharCode(parseInt(r,10));break;case"d":case"i":r=parseInt(r,10);break;case"j":r=JSON.stringify(r,null,s.width?parseInt(s.width):0);break;case"e":r=s.precision?parseFloat(r).toExponential(s.precision):parseFloat(r).toExponential();break;case"f":r=s.precision?parseFloat(r).toFixed(s.precision):parseFloat(r);break;case"g":r=s.precision?String(Number(r.toPrecision(s.precision))):parseFloat(r);break;case"o":r=(parseInt(r,10)>>>0).toString(8);break;case"s":r=String(r),r=s.precision?r.substring(0,s.precision):r;break;case"t":r=String(!!r),r=s.precision?r.substring(0,s.precision):r;break;case"T":r=Object.prototype.toString.call(r).slice(8,-1).toLowerCase(),r=s.precision?r.substring(0,s.precision):r;break;case"u":r=parseInt(r,10)>>>0;break;case"v":r=r.valueOf(),r=s.precision?r.substring(0,s.precision):r;break;case"x":r=(parseInt(r,10)>>>0).toString(16);break;case"X":r=(parseInt(r,10)>>>0).toString(16).toUpperCase()}o.json.test(s.type)?v+=r:(!o.number.test(s.type)||d&&!s.sign?f="":(f=d?"+":"-",r=r.toString().replace(o.sign,"")),c=s.pad_char?"0"===s.pad_char?"0":s.pad_char.charAt(1):" ",u=s.width-(f+r).length,l=s.width&&u>0?c.repeat(u):"",v+=s.align?f+r+l:"0"===c?f+l+r:l+f+r)}return v}(function(e){if(s[e])return s[e];for(var t,r=e,n=[],i=0;r;){if(null!==(t=o.text.exec(r)))n.push(t[0]);else if(null!==(t=o.modulo.exec(r)))n.push("%");else{if(null===(t=o.placeholder.exec(r)))throw new SyntaxError("[sprintf] unexpected placeholder");if(t[2]){i|=1;var a=[],l=t[2],c=[];if(null===(c=o.key.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(a.push(c[1]);""!==(l=l.substring(c[0].length));)if(null!==(c=o.key_access.exec(l)))a.push(c[1]);else{if(null===(c=o.index_access.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");a.push(c[1])}t[2]=a}else i|=2;if(3===i)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");n.push({placeholder:t[0],param_no:t[1],keys:t[2],sign:t[3],pad_char:t[4],align:t[5],width:t[6],precision:t[7],type:t[8]})}r=r.substring(t[0].length)}return s[e]=n}(e),arguments)}function a(e,t){return i.apply(null,[e].concat(t||[]))}var s=Object.create(null);"undefined"!=typeof window&&(window.sprintf=i,window.vsprintf=a,void 0===(n=function(){return{sprintf:i,vsprintf:a}}.call(t,r,t,e))||(e.exports=n))}()},5397:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(1364),o={contextDelimiter:"",onMissingKey:null};function i(e,t){var r;for(r in this.data=e,this.pluralForms={},this.options={},o)this.options[r]=void 0!==t&&r in t?t[r]:o[r]}i.prototype.getPluralForm=function(e,t){var r,o,i,a=this.pluralForms[e];return a||("function"!=typeof(i=(r=this.data[e][""])["Plural-Forms"]||r["plural-forms"]||r.plural_forms)&&(o=function(e){var t,r,n;for(t=e.split(";"),r=0;r{"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}r.d(t,{A:()=>n})},4467:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(9922);function o(e,t,r){return(t=(0,n.A)(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}},2327:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(2284);function o(e,t){if("object"!=(0,n.A)(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,t||"default");if("object"!=(0,n.A)(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}},9922:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(2284),o=r(2327);function i(e){var t=(0,o.A)(e,"string");return"symbol"==(0,n.A)(t)?t:t+""}},2284:(e,t,r)=>{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}r.d(t,{A:()=>n})}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,r),i.exports}function n(){var e,t,r="function"==typeof Symbol?Symbol:{},i=r.iterator||"@@iterator",a=r.toStringTag||"@@toStringTag";function s(r,n,i,a){var s=n&&n.prototype instanceof c?n:c,u=Object.create(s.prototype);return o(u,"_invoke",function(r,n,o){var i,a,s,c=0,u=o||[],d=!1,f={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,r){return i=t,a=0,s=e,f.n=r,l}};function p(r,n){for(a=r,s=n,t=0;!d&&c&&!o&&t3?(o=m===n)&&(s=i[(a=i[4])?5:(a=3,3)],i[4]=i[5]=e):i[0]<=p&&((o=r<2&&pn||n>m)&&(i[4]=r,i[5]=n,f.n=m,a=0))}if(o||r>1)return l;throw d=!0,n}return function(o,u,m){if(c>1)throw TypeError("Generator is already running");for(d&&1===u&&p(u,m),a=u,s=m;(t=a<2?e:s)||!d;){i||(a?a<3?(a>1&&(f.n=-1),p(a,s)):f.n=s:f.v=s);try{if(c=2,i){if(a||(o="next"),t=i[o]){if(!(t=t.call(i,s)))throw TypeError("iterator result is not an object");if(!t.done)return t;s=t.value,a<2&&(a=0)}else 1===a&&(t=i.return)&&t.call(i),a<2&&(s=TypeError("The iterator does not provide a '"+o+"' method"),a=1);i=e}else if((t=(d=f.n<0)?s:r.call(n,f))!==l)break}catch(t){i=e,a=1,s=t}finally{c=1}}return{value:t,done:d}}}(r,i,a),!0),u}var l={};function c(){}function u(){}function d(){}t=Object.getPrototypeOf;var f=[][i]?t(t([][i]())):(o(t={},i,function(){return this}),t),p=d.prototype=c.prototype=Object.create(f);function m(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,d):(e.__proto__=d,o(e,a,"GeneratorFunction")),e.prototype=Object.create(p),e}return u.prototype=d,o(p,"constructor",d),o(d,"constructor",u),u.displayName="GeneratorFunction",o(d,a,"GeneratorFunction"),o(p),o(p,a,"Generator"),o(p,i,function(){return this}),o(p,"toString",function(){return"[object Generator]"}),(n=function(){return{w:s,m}})()}function o(e,t,r,n){var i=Object.defineProperty;try{i({},"",{})}catch(e){i=0}o=function(e,t,r,n){function a(t,r){o(e,t,function(e){return this._invoke(t,r,e)})}t?i?i(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(a("next",0),a("throw",1),a("return",2))},o(e,t,r,n)}function i(e,t,r,n,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void r(e)}s.done?t(l):Promise.resolve(l).then(n,o)}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},function(){var e=r(1105).toggleAddonState;function t(){jQuery(document).on("click","#frm_upgrade_modal .frm-install-addon",function(t){t.preventDefault(),e(this,"frm_install_addon")}),jQuery(document).on("click","#frm_upgrade_modal .frm-activate-addon",function(t){t.preventDefault(),e(this,"frm_activate_addon")}),function(){o.apply(this,arguments)}(),a(),jQuery(document).on("mouseenter.frm",".frm_help",function(){jQuery(this).off("mouseenter.frm"),jQuery(this).tooltip("show")})}function o(){var e;return e=n().m(function e(){return n().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,Promise.resolve().then(r.bind(r,4260));case 1:e.v.initUpgradeModal();case 2:return e.a(2)}},e)}),o=function(){var t=this,r=arguments;return new Promise(function(n,o){var a=e.apply(t,r);function s(e){i(a,n,o,s,l,"next",e)}function l(e){i(a,n,o,s,l,"throw",e)}s(void 0)})},o.apply(this,arguments)}function a(){var e=window.frmDom;e.bootstrap.setupBootstrapDropdowns(function(){var e=document.querySelector("#frm_testmode_enabled_form_actions .dropdown-toggle");e&&(e.classList.add("frm-dropdown-toggle"),e.hasAttribute("role")||e.setAttribute("role","button"),e.hasAttribute("tabindex")||e.setAttribute("tabindex",0))});var t=document.getElementById("frm_testmode_enabled_form_actions");t&&(t.style.display="none",e.bootstrap.multiselect.init.bind(t)(),t.disabled&&t.parentElement.querySelector(".dropdown-toggle").classList.add("frm_noallow"))}"complete"===document.readyState?t():document.addEventListener("DOMContentLoaded",t),document.addEventListener("frm_after_start_over",function(){a()}),jQuery(document).on("frmPageChanged frmFormComplete",function(){a()})}()})(); \ No newline at end of file +(()=>{var e={65:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(8793),o=r(1323);function i(e){var t=(0,n.A)(e);return function(e){return(0,o.A)(t,e)}}},1323:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n={"!":function(e){return!e},"*":function(e,t){return e*t},"/":function(e,t){return e/t},"%":function(e,t){return e%t},"+":function(e,t){return e+t},"-":function(e,t){return e-t},"<":function(e,t){return e":function(e,t){return e>t},">=":function(e,t){return e>=t},"==":function(e,t){return e===t},"!=":function(e,t){return e!==t},"&&":function(e,t){return e&&t},"||":function(e,t){return e||t},"?:":function(e,t,r){if(e)throw t;return r}};function o(e,t){var r,o,i,a,s,l,c=[];for(r=0;r{"use strict";r.d(t,{A:()=>o});var n=r(65);function o(e){var t=(0,n.A)(e);return function(e){return+t({n:e})}}},8793:(e,t,r)=>{"use strict";var n,o,i,a;function s(e){for(var t,r,s,l,c=[],u=[];t=e.match(a);){for(r=t[0],(s=e.substr(0,t.index).trim())&&c.push(s);l=u.pop();){if(i[r]){if(i[r][0]===l){r=i[r][1]||r;break}}else if(o.indexOf(l)>=0||n[l]s}),n={"(":9,"!":8,"*":7,"/":7,"%":7,"+":6,"-":6,"<":5,"<=":5,">":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},o=["(","?"],i={")":["("],":":["?","?:"]},a=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/},7521:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(6956),o=r(7395);const i=function(e,t){return function(r,i,a){var s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:10,l=e[t];if((0,o.A)(r)&&(0,n.A)(i))if("function"==typeof a)if("number"==typeof s){var c={callback:a,priority:s,namespace:i};if(l[r]){var u,d=l[r].handlers;for(u=d.length;u>0&&!(s>=d[u-1].priority);u--);u===d.length?d[u]=c:d.splice(u,0,c),l.__current.forEach(function(e){e.name===r&&e.currentIndex>=u&&e.currentIndex++})}else l[r]={handlers:[c],runs:0};"hookAdded"!==r&&e.doAction("hookAdded",r,i,a,s)}else console.error("If specified, the hook priority must be a number.");else console.error("The hook callback must be a function.")}}},11:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});const n=function(e,t){return function(){var r,n,o=e[t];return null!==(r=null===(n=o.__current[o.__current.length-1])||void 0===n?void 0:n.name)&&void 0!==r?r:null}}},5375:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(7395);const o=function(e,t){return function(r){var o=e[t];if((0,n.A)(r))return o[r]&&o[r].runs?o[r].runs:0}}},3561:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});const n=function(e,t){return function(r){var n=e[t];return void 0===r?void 0!==n.__current[0]:!!n.__current[0]&&r===n.__current[0].name}}},8830:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});const n=function(e,t){return function(r,n){var o=e[t];return void 0!==n?r in o&&o[r].handlers.some(function(e){return e.namespace===n}):r in o}}},7765:(e,t,r)=>{"use strict";r.d(t,{A:()=>f});var n=r(3029),o=r(7521),i=r(4194),a=r(8830),s=r(6763),l=r(11),c=r(3561),u=r(5375),d=function e(){(0,n.A)(this,e),this.actions=Object.create(null),this.actions.__current=[],this.filters=Object.create(null),this.filters.__current=[],this.addAction=(0,o.A)(this,"actions"),this.addFilter=(0,o.A)(this,"filters"),this.removeAction=(0,i.A)(this,"actions"),this.removeFilter=(0,i.A)(this,"filters"),this.hasAction=(0,a.A)(this,"actions"),this.hasFilter=(0,a.A)(this,"filters"),this.removeAllActions=(0,i.A)(this,"actions",!0),this.removeAllFilters=(0,i.A)(this,"filters",!0),this.doAction=(0,s.A)(this,"actions"),this.applyFilters=(0,s.A)(this,"filters",!0),this.currentAction=(0,l.A)(this,"actions"),this.currentFilter=(0,l.A)(this,"filters"),this.doingAction=(0,c.A)(this,"actions"),this.doingFilter=(0,c.A)(this,"filters"),this.didAction=(0,u.A)(this,"actions"),this.didFilter=(0,u.A)(this,"filters")};const f=function(){return new d}},4194:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(6956),o=r(7395);const i=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(i,a){var s=e[t];if((0,o.A)(i)&&(r||(0,n.A)(a))){if(!s[i])return 0;var l=0;if(r)l=s[i].handlers.length,s[i]={runs:s[i].runs,handlers:[]};else for(var c=s[i].handlers,u=function(e){c[e].namespace===a&&(c.splice(e,1),l++,s.__current.forEach(function(t){t.name===i&&t.currentIndex>=e&&t.currentIndex--}))},d=c.length-1;d>=0;d--)u(d);return"hookRemoved"!==i&&e.doAction("hookRemoved",i,a),l}}}},6763:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});const n=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(n){var o=e[t];o[n]||(o[n]={handlers:[],runs:0}),o[n].runs++;for(var i=o[n].handlers,a=arguments.length,s=new Array(a>1?a-1:0),l=1;l{"use strict";r.d(t,{se:()=>n});var n=(0,r(7765).A)();n.addAction,n.addFilter,n.removeAction,n.removeFilter,n.hasAction,n.hasFilter,n.removeAllActions,n.removeAllFilters,n.doAction,n.applyFilters,n.currentAction,n.currentFilter,n.doingAction,n.doingFilter,n.didAction,n.didFilter,n.actions,n.filters},7395:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});const n=function(e){return"string"!=typeof e||""===e?(console.error("The hook name must be a non-empty string."),!1):/^__/.test(e)?(console.error("The hook name cannot begin with `__`."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(e)||(console.error("The hook name can only contain numbers, letters, dashes, periods and underscores."),!1)}},6956:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});const n=function(e){return"string"!=typeof e||""===e?(console.error("The namespace must be a non-empty string."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(e)||(console.error("The namespace can only contain numbers, letters, dashes, periods, underscores and slashes."),!1)}},772:(e,t,r)=>{"use strict";r.d(t,{h:()=>c});var n=r(4467),o=r(5397);function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function a(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:"default";n.data[t]=a(a(a({},s),n.data[t]),e),n.data[t][""]=a(a({},s[""]),n.data[t][""])},d=function(e,t){u(e,t),c()},f=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default",t=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0;return n.data[e]||u(void 0,e),n.dcnpgettext(e,t,r,o,i)},p=function(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default"},m=function(e,t,n){var o=f(n,t,e);return r?(o=r.applyFilters("i18n.gettext_with_context",o,e,t,n),r.applyFilters("i18n.gettext_with_context_"+p(n),o,e,t,n)):o};if(e&&d(e,t),r){var v=function(e){l.test(e)&&c()};r.addAction("hookAdded","core/i18n",v),r.addAction("hookRemoved","core/i18n",v)}return{getLocaleData:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default";return n.data[e]},setLocaleData:d,resetLocaleData:function(e,t){n.data={},n.pluralForms={},d(e,t)},subscribe:function(e){return i.add(e),function(){return i.delete(e)}},__:function(e,t){var n=f(t,void 0,e);return r?(n=r.applyFilters("i18n.gettext",n,e,t),r.applyFilters("i18n.gettext_"+p(t),n,e,t)):n},_x:m,_n:function(e,t,n,o){var i=f(o,void 0,e,t,n);return r?(i=r.applyFilters("i18n.ngettext",i,e,t,n,o),r.applyFilters("i18n.ngettext_"+p(o),i,e,t,n,o)):i},_nx:function(e,t,n,o,i){var a=f(i,o,e,t,n);return r?(a=r.applyFilters("i18n.ngettext_with_context",a,e,t,n,o,i),r.applyFilters("i18n.ngettext_with_context_"+p(i),a,e,t,n,o,i)):a},isRTL:function(){return"rtl"===m("ltr","text direction")},hasTranslation:function(e,t,o){var i,a,s=t?t+""+e:e,l=!(null===(i=n.data)||void 0===i||null===(a=i[null!=o?o:"default"])||void 0===a||!a[s]);return r&&(l=r.applyFilters("i18n.has_translation",l,e,t,o),l=r.applyFilters("i18n.has_translation_"+p(o),l,e,t,o)),l}}}},5839:(e,t,r)=>{"use strict";r.d(t,{__:()=>a});var n=r(772),o=r(2133),i=(0,n.h)(void 0,void 0,o.se),a=(i.getLocaleData.bind(i),i.setLocaleData.bind(i),i.resetLocaleData.bind(i),i.subscribe.bind(i),i.__.bind(i));i._x.bind(i),i._n.bind(i),i._nx.bind(i),i.isRTL.bind(i),i.hasTranslation.bind(i)},9575:(e,t,r)=>{"use strict";r.d(t,{__:()=>n.__}),r(181),r(772);var n=r(5839)},181:(e,t,r)=>{"use strict";var n=r(8616),o=r.n(n);r(7604),o()(console.error)},1105:(e,t,r)=>{"use strict";r.r(t),r.d(t,{addonError:()=>f,afterAddonInstall:()=>d,extractErrorFromAddOnResponse:()=>u,toggleAddonState:()=>c});var n=r(9575);function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,s=[],l=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(s.push(n.value),s.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return s}}(e,t)||function(e,t){if(e){if("string"==typeof e)return i(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?i(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r5&&void 0!==arguments[5]?arguments[5]:"frm_activate_addon",u=frm_admin_js,d=document.querySelectorAll(".frm-addon-status");d.forEach(function(t){t.textContent=e,t.style.display="block"}),t.css({opacity:"0"}),document.querySelectorAll(".frm-oneclick").forEach(function(e){e.style.display="none"}),function(){var e=document.getElementById("frm_upgrade_modal");if(e){e.classList.add("frm-success");var t=e.querySelector(".frm-upgrade-message");if(t){var r=t.querySelector("img");t.replaceChildren((0,n.__)("Great! Everything's ready to go!","formidable"),document.createElement("br"),(0,n.__)("You just need to refresh the builder so the new field becomes available.","formidable")),r&&t.append(r)}var o=document.querySelector(".frm-addon-status");o&&(o.textContent="");var i,a=e.querySelector(".frm-circled-icon");if(a)a.classList.add("frm-circled-icon-green"),null===(i=a.querySelector("svg"))||void 0===i||i.replaceWith(l({href:"#frm_checkmark_icon"}))}}();var f={frm_activate_addon:{class:"frm-addon-active",message:u.active},frm_deactivate_addon:{class:"frm-addon-installed",message:u.installed},frm_uninstall_addon:{class:"frm-addon-not-installed",message:u.not_installed}};f.frm_install_addon=f.frm_activate_addon;var m=o(r,1)[0];m&&(m.textContent=f[c].message);var v=o(i,1)[0].parentElement;v.classList.remove("frm-addon-not-installed","frm-addon-installed","frm-addon-active"),v.classList.add(f[c].class),o(t,1)[0].classList.remove("frm_loading_button"),document.querySelectorAll(".frm-admin-page-import, #frm-admin-smtp, #frm-welcome").length>0?window.location.reload():["settings","form_builder"].includes(a)&&d.forEach(function(e){var t=null!==e.closest("#frm_upgrade_modal");e.append(function(e,t){var r,o=[p(e)];return t&&o.push(((r=document.createElement("a")).setAttribute("href","#"),r.classList.add("button","button-secondary","frm-button-secondary","dismiss"),r.textContent=(0,n.__)("Not Now","formidable"),r)),s({className:"frm-save-and-reload-options",children:o})}(a,t))})}function f(e,t,r){e.form?(jQuery(".frm-inline-error").remove(),r.closest(".frm-card").html(e.form).css({padding:5}).find("#upgrade").attr("rel",r.attr("rel")).on("click",m)):(t.append('

        '.concat(e.message,"

        ")),r.removeClass("frm_loading_button"),jQuery(".frm-addon-error").delay(4e3).fadeOut())}function p(e){var t=document.createElement("button");return t.classList.add("frm-save-and-reload","button","button-primary","frm-button-primary"),t.textContent=(0,n.__)("Save and Reload","formidable"),t.addEventListener("click",function(){var t;"form_builder"===e?((t=document.getElementById("frm_submit_side_top")).classList.contains("frm_submit_ajax")&&t.setAttribute("data-new-addon-installed",!0),t.click()):"settings"===e&&function(){var e=document.getElementById("form_settings_page");if(null!==e){var t=e.querySelector("form.frm_form_settings");null!==t&&(wp.hooks.doAction("frm_reset_fields_updated"),t.submit())}}()}),t}function m(e){e.preventDefault();var t=jQuery(this),r=t.parent().parent(),n=t.attr("rel");t.addClass("frm_loading_button"),jQuery.ajax({url:ajaxurl,type:"POST",async:!0,cache:!1,dataType:"json",data:{action:"frm_install_addon",nonce:frmAdminJs.nonce,plugin:n,hostname:r.find("#hostname").val(),username:r.find("#username").val(),password:r.find("#password").val()},success:function(e){var n,o,i=u(e=null!==(n=null===(o=e)||void 0===o?void 0:o.data)&&void 0!==n?n:e);i?f(i,r,t):d(e,t,message,r)},error:function(){t.removeClass("frm_loading_button")}})}},4260:(e,t,r)=>{"use strict";r.r(t),r.d(t,{addOneClick:()=>i,initModal:()=>a,initUpgradeModal:()=>s});var n=r(9575),o=frmDom.svg;function i(e,t,r){var i;if("modal"===t)i=document.getElementById("frm_upgrade_modal");else{if("tab"!==t)return;i=document.getElementById(e.getAttribute("href").substr(1))}var a,s=i.querySelector(".frm-oneclick"),l=i.querySelector(".frm-upgrade-message"),c=i.querySelector(".frm-upgrade-link"),u=i.querySelector(".frm-oneclick-button"),d=i.querySelector(".frm-addon-status"),f=e.getAttribute("data-oneclick"),p=e.getAttribute("data-message"),m="block",v="block",y="none",h=i.querySelector(".frm-circled-icon");h&&(h.classList.remove("frm-circled-icon-green"),null===(a=h.querySelector("svg"))||void 0===a||a.replaceWith(o({href:"#frm_filled_lock_icon"})));var g=i.querySelector(".frm-learn-more");if(g&&(g.href=e.dataset.learnMore),null!==s&&null!==u&&void 0!==f&&f){null===p&&(v="none"),m="none",y="block",f=JSON.parse(f),u.className=u.className.replace(" frm-install-addon","").replace(" frm-activate-addon",""),u.className="".concat(u.className," ").concat(f.class),u.rel=f.url,s.textContent=(0,n.__)("This plugin is not activated. Would you like to activate it now?","formidable"),u.textContent=(0,n.__)("Activate","formidable");var _=e.querySelector("use");_&&(null==h||h.querySelector("svg").replaceWith(o({href:_.getAttribute("href")||_.getAttribute("xlink:href"),classList:["frm_svg32"]})))}p||(p=l.getAttribute("data-default")),void 0!==r&&(p=p.replace('',r)),l.innerHTML=p,e.dataset.upsellImage&&l.append(frmDom.img({src:e.dataset.upsellImage,alt:e.dataset.upgrade})),c.href=function(e,t){var r=e.getAttribute("data-link");return null!=r&&""!==r||(r=t.getAttribute("data-default")),r}(e,c),d.style.display="none",s&&(s.style.display=y),u&&(u.style.display="block"===y?"inline-block":y),l.style.display=v,c.style.display="block"===m?"inline-block":m;var b=c.closest(".frm-upgrade-modal-actions");b&&(b.style.display="block"===m?"flex":m)}function a(e,t){var r=jQuery(e);if(!r.length)return!1;void 0===t&&(t="552px");var n={dialogClass:"frm-dialog",modal:!0,autoOpen:!1,closeOnEscape:!0,width:t,resizable:!1,draggable:!1,open:function(){var e,t;jQuery(".ui-dialog-titlebar").addClass("frm_hidden").removeClass("ui-helper-clearfix"),jQuery("#wpwrap").addClass("frm_overlay"),jQuery(".frm-dialog").removeClass("ui-widget ui-widget-content ui-corner-all"),r.removeClass("ui-dialog-content ui-widget-content"),e=r,t=function(){e.dialog("close")},jQuery(".ui-widget-overlay").on("click",t),e.on("click","a.dismiss",t)},close:function(){jQuery("#wpwrap").removeClass("frm_overlay"),jQuery(".spinner").css("visibility","hidden"),this.removeAttribute("data-option-type");var e=document.getElementById("bulk-option-type");e&&(e.value="")}};return r.dialog(n),r}function s(){var e=a("#frm_upgrade_modal");function t(t){var r,n,o;if((r=t.target).classList){var a=r.classList.contains("frm_show_expired_modal")||null!==r.querySelector(".frm_show_expired_modal")||r.closest(".frm_show_expired_modal");if("change"===t.type&&r.classList.contains("frm_select_with_upgrade")){var s=r.options[r.selectedIndex];s&&s.dataset.upgrade&&(r=s)}if(!r.dataset.upgrade){var l=r.closest("[data-upgrade]");if(!l){if(!(l=r.closest(".frm_field_box")))return;r.dataset.upgrade=""}r=l}if(a)wp.hooks.doAction("frm_show_expired_modal",r);else{var c=r.dataset.upgrade;if(c&&!r.classList.contains("frm_show_upgrade_tab")){t.preventDefault();var u=e.get(0),d=u.querySelector(".frm_lock_icon");d&&(d.style.display="block",d.classList.remove("frm_lock_open_icon"),d.querySelector("use").setAttribute("href","#frm_lock_icon"));var f="frm_upgrade_modal_image",p=document.getElementById(f);p&&p.remove(),r.dataset.image&&d&&(d.style.display="none",d.parentNode.insertBefore(frmDom.img({id:f,src:"".concat(frmGlobal.url,"/images/").concat(r.dataset.image)}),d));var m=u.querySelector(".license-level");m&&(m.textContent=function(e){return e.dataset.requires?e.dataset.requires:"Pro"}(r)),i(r,"modal",c),u.querySelector(".frm_are_not_installed").style.display=r.dataset.image||r.dataset.oneclick?"none":"inline-block",u.querySelector(".frm-upgrade-modal-title-prefix").style.display=r.dataset.oneclick?"inline":"none",u.querySelector(".frm_feature_label").textContent=c,u.querySelector(".frm-upgrade-modal-title-suffix").style.display="none",u.querySelector("h2").style.display="block",e.dialog("open");var v=u.querySelector(".button-primary:not(.frm-oneclick-button)");n=v.getAttribute("href").replace(/(medium=)[a-z_-]+/gi,"$1".concat(r.getAttribute("data-medium"))),null===(o=r.getAttribute("data-content"))&&(o=""),n=n.replace(/(content=)[a-z_-]+/gi,"$1".concat(o)),v.setAttribute("href",n)}}}}!1!==e&&(document.addEventListener("click",t),frmDom.util.documentOn("change","select.frm_select_with_upgrade",t))}},8616:e=>{e.exports=function(e,t){var r,n,o=0;function i(){var i,a,s=r,l=arguments.length;e:for(;s;){if(s.args.length===arguments.length){for(a=0;a{var n;!function(){"use strict";var o={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function i(e){return function(e,t){var r,n,a,s,l,c,u,d,f,p=1,m=e.length,v="";for(n=0;n=0),s.type){case"b":r=parseInt(r,10).toString(2);break;case"c":r=String.fromCharCode(parseInt(r,10));break;case"d":case"i":r=parseInt(r,10);break;case"j":r=JSON.stringify(r,null,s.width?parseInt(s.width):0);break;case"e":r=s.precision?parseFloat(r).toExponential(s.precision):parseFloat(r).toExponential();break;case"f":r=s.precision?parseFloat(r).toFixed(s.precision):parseFloat(r);break;case"g":r=s.precision?String(Number(r.toPrecision(s.precision))):parseFloat(r);break;case"o":r=(parseInt(r,10)>>>0).toString(8);break;case"s":r=String(r),r=s.precision?r.substring(0,s.precision):r;break;case"t":r=String(!!r),r=s.precision?r.substring(0,s.precision):r;break;case"T":r=Object.prototype.toString.call(r).slice(8,-1).toLowerCase(),r=s.precision?r.substring(0,s.precision):r;break;case"u":r=parseInt(r,10)>>>0;break;case"v":r=r.valueOf(),r=s.precision?r.substring(0,s.precision):r;break;case"x":r=(parseInt(r,10)>>>0).toString(16);break;case"X":r=(parseInt(r,10)>>>0).toString(16).toUpperCase()}o.json.test(s.type)?v+=r:(!o.number.test(s.type)||d&&!s.sign?f="":(f=d?"+":"-",r=r.toString().replace(o.sign,"")),c=s.pad_char?"0"===s.pad_char?"0":s.pad_char.charAt(1):" ",u=s.width-(f+r).length,l=s.width&&u>0?c.repeat(u):"",v+=s.align?f+r+l:"0"===c?f+l+r:l+f+r)}return v}(function(e){if(s[e])return s[e];for(var t,r=e,n=[],i=0;r;){if(null!==(t=o.text.exec(r)))n.push(t[0]);else if(null!==(t=o.modulo.exec(r)))n.push("%");else{if(null===(t=o.placeholder.exec(r)))throw new SyntaxError("[sprintf] unexpected placeholder");if(t[2]){i|=1;var a=[],l=t[2],c=[];if(null===(c=o.key.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(a.push(c[1]);""!==(l=l.substring(c[0].length));)if(null!==(c=o.key_access.exec(l)))a.push(c[1]);else{if(null===(c=o.index_access.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");a.push(c[1])}t[2]=a}else i|=2;if(3===i)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");n.push({placeholder:t[0],param_no:t[1],keys:t[2],sign:t[3],pad_char:t[4],align:t[5],width:t[6],precision:t[7],type:t[8]})}r=r.substring(t[0].length)}return s[e]=n}(e),arguments)}function a(e,t){return i.apply(null,[e].concat(t||[]))}var s=Object.create(null);"undefined"!=typeof window&&(window.sprintf=i,window.vsprintf=a,void 0===(n=function(){return{sprintf:i,vsprintf:a}}.call(t,r,t,e))||(e.exports=n))}()},5397:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(1364),o={contextDelimiter:"",onMissingKey:null};function i(e,t){var r;for(r in this.data=e,this.pluralForms={},this.options={},o)this.options[r]=void 0!==t&&r in t?t[r]:o[r]}i.prototype.getPluralForm=function(e,t){var r,o,i,a=this.pluralForms[e];return a||("function"!=typeof(i=(r=this.data[e][""])["Plural-Forms"]||r["plural-forms"]||r.plural_forms)&&(o=function(e){var t,r,n;for(t=e.split(";"),r=0;r{"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}r.d(t,{A:()=>n})},4467:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(9922);function o(e,t,r){return(t=(0,n.A)(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}},2327:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(2284);function o(e,t){if("object"!=(0,n.A)(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,t||"default");if("object"!=(0,n.A)(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}},9922:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(2284),o=r(2327);function i(e){var t=(0,o.A)(e,"string");return"symbol"==(0,n.A)(t)?t:t+""}},2284:(e,t,r)=>{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}r.d(t,{A:()=>n})}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,r),i.exports}function n(){var e,t,r="function"==typeof Symbol?Symbol:{},i=r.iterator||"@@iterator",a=r.toStringTag||"@@toStringTag";function s(r,n,i,a){var s=n&&n.prototype instanceof c?n:c,u=Object.create(s.prototype);return o(u,"_invoke",function(r,n,o){var i,a,s,c=0,u=o||[],d=!1,f={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,r){return i=t,a=0,s=e,f.n=r,l}};function p(r,n){for(a=r,s=n,t=0;!d&&c&&!o&&t3?(o=m===n)&&(s=i[(a=i[4])?5:(a=3,3)],i[4]=i[5]=e):i[0]<=p&&((o=r<2&&pn||n>m)&&(i[4]=r,i[5]=n,f.n=m,a=0))}if(o||r>1)return l;throw d=!0,n}return function(o,u,m){if(c>1)throw TypeError("Generator is already running");for(d&&1===u&&p(u,m),a=u,s=m;(t=a<2?e:s)||!d;){i||(a?a<3?(a>1&&(f.n=-1),p(a,s)):f.n=s:f.v=s);try{if(c=2,i){if(a||(o="next"),t=i[o]){if(!(t=t.call(i,s)))throw TypeError("iterator result is not an object");if(!t.done)return t;s=t.value,a<2&&(a=0)}else 1===a&&(t=i.return)&&t.call(i),a<2&&(s=TypeError("The iterator does not provide a '"+o+"' method"),a=1);i=e}else if((t=(d=f.n<0)?s:r.call(n,f))!==l)break}catch(t){i=e,a=1,s=t}finally{c=1}}return{value:t,done:d}}}(r,i,a),!0),u}var l={};function c(){}function u(){}function d(){}t=Object.getPrototypeOf;var f=[][i]?t(t([][i]())):(o(t={},i,function(){return this}),t),p=d.prototype=c.prototype=Object.create(f);function m(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,d):(e.__proto__=d,o(e,a,"GeneratorFunction")),e.prototype=Object.create(p),e}return u.prototype=d,o(p,"constructor",d),o(d,"constructor",u),u.displayName="GeneratorFunction",o(d,a,"GeneratorFunction"),o(p),o(p,a,"Generator"),o(p,i,function(){return this}),o(p,"toString",function(){return"[object Generator]"}),(n=function(){return{w:s,m}})()}function o(e,t,r,n){var i=Object.defineProperty;try{i({},"",{})}catch(e){i=0}o=function(e,t,r,n){function a(t,r){o(e,t,function(e){return this._invoke(t,r,e)})}t?i?i(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(a("next",0),a("throw",1),a("return",2))},o(e,t,r,n)}function i(e,t,r,n,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void r(e)}s.done?t(l):Promise.resolve(l).then(n,o)}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},function(){var e=r(1105).toggleAddonState;function t(){jQuery(document).on("click","#frm_upgrade_modal .frm-install-addon",function(t){t.preventDefault(),e(this,"frm_install_addon")}),jQuery(document).on("click","#frm_upgrade_modal .frm-activate-addon",function(t){t.preventDefault(),e(this,"frm_activate_addon")}),function(){o.apply(this,arguments)}(),a(),jQuery(document).on("mouseenter.frm",".frm_help",function(){jQuery(this).off("mouseenter.frm"),jQuery(this).tooltip("show")})}function o(){var e;return e=n().m(function e(){return n().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,Promise.resolve().then(r.bind(r,4260));case 1:e.v.initUpgradeModal();case 2:return e.a(2)}},e)}),o=function(){var t=this,r=arguments;return new Promise(function(n,o){var a=e.apply(t,r);function s(e){i(a,n,o,s,l,"next",e)}function l(e){i(a,n,o,s,l,"throw",e)}s(void 0)})},o.apply(this,arguments)}function a(){var e=window.frmDom;e.bootstrap.setupBootstrapDropdowns(function(){var e=document.querySelector("#frm_testmode_enabled_form_actions .dropdown-toggle");e&&(e.classList.add("frm-dropdown-toggle"),e.hasAttribute("role")||e.setAttribute("role","button"),e.hasAttribute("tabindex")||e.setAttribute("tabindex",0))});var t=document.getElementById("frm_testmode_enabled_form_actions");t&&(t.style.display="none",e.bootstrap.multiselect.init.bind(t)(),t.disabled&&t.parentElement.querySelector(".dropdown-toggle").classList.add("frm_noallow"))}"complete"===document.readyState?t():document.addEventListener("DOMContentLoaded",t),document.addEventListener("frm_after_start_over",function(){a()}),jQuery(document).on("frmPageChanged frmFormComplete",function(){a()})}()})(); \ No newline at end of file diff --git a/js/onboarding-wizard.js b/js/onboarding-wizard.js index 1f42a71f67..d114a1e6d6 100644 --- a/js/onboarding-wizard.js +++ b/js/onboarding-wizard.js @@ -1,2 +1,2 @@ /*! For license information please see onboarding-wizard.js.LICENSE.txt */ -(()=>{"use strict";function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t(e)}function e(t,e){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:"default";!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.elements=e,this.type=n,this.prepareElements()},n=[{key:"fadeIn",value:function(){var t=this;this.applyStyleToElements(function(e){e.classList.add("frm-fadein-up"),e.addEventListener("animationend",function(){t.resetOpacity(),e.classList.remove("frm-fadein-up")},{once:!0})})}},{key:"cascadeFadeIn",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.03;setTimeout(function(){t.applyStyleToElements(function(t,n){t.classList.remove("frm-animate"),t.style.transitionDelay=(n+1)*e+"s"})},200)}},{key:"prepareElements",value:function(){var t=this;this.applyStyleToElements(function(e){"default"===t.type&&(e.style.opacity="0.0"),"cascade"===t.type&&e.classList.add("frm-init-cascade-animation"),"cascade-3d"===t.type&&e.classList.add("frm-init-fadein-3d"),e.classList.add("frm-animate")})}},{key:"resetOpacity",value:function(){this.applyStyleToElements(function(t){return t.style.opacity="1.0"})}},{key:"applyStyleToElements",value:function(t){this.elements instanceof Element?t(this.elements,0):00&&void 0!==arguments[0]?arguments[0]:{};if("object"!==_(t)||null===t)throw new Error("createPageState: initialState must be a non-null object");var e=t;return{getState:function(){return e},getSingleState:function(t){var n=Reflect.get(e,t);return void 0===n?null:n},setState:function(t){if("object"!==_(t)||null===t)throw new Error("setState: newState must be a non-null object");e=T(T({},e),t)},setSingleState:function(t,n){Reflect.has(e,t)&&Reflect.set(e,t,n)}}}({processedSteps:[],installedAddons:[]}),I=A.getState,D=(A.getSingleState,A.setState,A.setSingleState),C=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==j(t)||null===t)throw new Error("createPageElements: initialElements must be a non-null object");var e=t;return{getElements:function(){return e},addElements:function(t){if("object"!==j(t)||null===t)throw new Error("addElements: newElements must be a non-null object");e=g(g({},e),t)}}}({onboardingWizardPage:document.getElementById("".concat(E,"-wizard-page")),container:document.getElementById("".concat(E,"-container")),rootline:document.getElementById("".concat(E,"-rootline")),steps:document.querySelectorAll(".".concat(E,"-step")),skipStepButtons:document.querySelectorAll(".".concat(E,"-skip-step")),backButtons:document.querySelectorAll(".".concat(E,"-back-button")),consentTrackingButton:document.getElementById("".concat(E,"-consent-tracking")),installAddonsButton:document.getElementById("".concat(E,"-install-addons-button")),hiddenLicenseKeyInput:document.getElementById("frm-license-key")}),N=C.getElements;C.addElements;var U=function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"pushState",o=document.querySelector(".".concat(E,'-step[data-step-name="').concat(t,'"]'));if(o){var i=document.querySelector(".".concat(E,"-step.").concat(S));i&&(i.classList.remove(S),null==(e=i)||e.classList.add(b)),o.classList.add(S),function(t){null==t||t.classList.remove(b)}(o),new r(o).fadeIn(),N().onboardingWizardPage.setAttribute("data-current-step",t),function(t,e){var n,r,o,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"pushState";if(p.set(t,e),f.search=p.toString(),["pushState","replaceState"].includes(i)){var a=(n={},o=e,(r=function(t){var e=function(t){if("object"!=s(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=s(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==s(e)?e:e+""}(r=t))in n?Object.defineProperty(n,r,{value:o,enumerable:!0,configurable:!0,writable:!0}):n[r]=o,n);window.history[i](a,"",f)}f.toString()}("step",t,n),function(t){t===P.UNSUCCESSFUL&&(t=P.SUCCESS);var e=N().rootline,n=e.querySelector('.frm-rootline-item[data-step="'.concat(t,'"]'));e.querySelectorAll(".frm-rootline-item").forEach(function(t){t.classList.remove(B),t.classList.remove(S)});var r=n.previousElementSibling;if(r)for(;r;)r.classList.add(B),r=r.previousElementSibling;t===P.SUCCESS?n.classList.add(B):n.classList.add(S)}(t)}},x=function(){var t=document.querySelector(".".concat(E,"-step.").concat(S)),e=null==t?void 0:t.nextElementSibling;if(e){var n=t.dataset.stepName,r=e.dataset.stepName,o=I().processedSteps;o.includes(n)||(o.push(n),D("processedSteps",o)),function(t,e){var n=function(t,e){var n;if(P.SUCCESS===e||P.UNSUCCESSFUL===e){var r=I().processedSteps;r.length>1&&(r.includes(e)||r.push(e),(n=new FormData).append("processed_steps",r.join(",")),n.append("completed_steps",!0))}if(P.INSTALL_ADDONS===t){var o=I().installedAddons;o.length>0&&(n=null!=n?n:new FormData).append("installed_addons",o.join(","))}return n}(t,e);n&&(0,frmDom.ajax.doJsonPost)("onboarding_setup_usage_data",n)}(n,r),U(r)}};var B="frm-completed-step",F=".frm-option-box";function G(t){"input"===t.target.tagName.toLowerCase()&&t.currentTarget.closest(F).classList.toggle("frm-checked")}var q=function(){x()};var z=function(){var t,e;(e=null==(t=document.querySelector(".".concat(E,"-step.").concat(S)))?void 0:t.previousElementSibling)&&U(e.dataset.stepName)};function R(){var t,e,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=r&&r.prototype instanceof c?r:c,l=Object.create(u.prototype);return J(l,"_invoke",function(n,r,o){var i,c,u,l=0,s=o||[],f=!1,p={p:0,n:0,v:t,a:d,f:d.bind(t,4),d:function(e,n){return i=e,c=0,u=t,p.n=n,a}};function d(n,r){for(c=n,u=r,e=0;!f&&l&&!o&&e3?(o=y===r)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=t):i[0]<=d&&((o=n<2&&dr||r>y)&&(i[4]=n,i[5]=r,p.n=y,c=0))}if(o||n>1)return a;throw f=!0,r}return function(o,s,y){if(l>1)throw TypeError("Generator is already running");for(f&&1===s&&d(s,y),c=s,u=y;(e=c<2?t:u)||!f;){i||(c?c<3?(c>1&&(p.n=-1),d(c,u)):p.n=u:p.v=u);try{if(l=2,i){if(c||(o="next"),e=i[o]){if(!(e=e.call(i,u)))throw TypeError("iterator result is not an object");if(!e.done)return e;u=e.value,c<2&&(c=0)}else 1===c&&(e=i.return)&&e.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=t}else if((e=(f=p.n<0)?u:n.call(r,p))!==a)break}catch(e){i=t,c=1,u=e}finally{l=1}}return{value:e,done:f}}}(n,o,i),!0),l}var a={};function c(){}function u(){}function l(){}e=Object.getPrototypeOf;var s=[][r]?e(e([][r]())):(J(e={},r,function(){return this}),e),f=l.prototype=c.prototype=Object.create(s);function p(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,l):(t.__proto__=l,J(t,o,"GeneratorFunction")),t.prototype=Object.create(f),t}return u.prototype=l,J(f,"constructor",l),J(l,"constructor",u),u.displayName="GeneratorFunction",J(l,o,"GeneratorFunction"),J(f),J(f,o,"Generator"),J(f,r,function(){return this}),J(f,"toString",function(){return"[object Generator]"}),(R=function(){return{w:i,m:p}})()}function J(t,e,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(t){o=0}J=function(t,e,n,r){function i(e,n){J(t,e,function(t){return this._invoke(e,n,t)})}e?o?o(t,e,{value:n,enumerable:!r,configurable:!r,writable:!r}):t[e]=n:(i("next",0),i("throw",1),i("return",2))},J(t,e,n,r)}function M(t,e,n,r,o,i,a){try{var c=t[i](a),u=c.value}catch(t){return void n(t)}c.done?e(u):Promise.resolve(u).then(r,o)}var W=function(){var t,e=(t=R().m(function t(){return R().w(function(t){for(;;)switch(t.n){case 0:(0,frmDom.ajax.doJsonPost)("onboarding_consent_tracking",new FormData).then(x);case 1:return t.a(2)}},t)}),function(){var e=this,n=arguments;return new Promise(function(r,o){var i=t.apply(e,n);function a(t){M(i,r,o,a,c,"next",t)}function c(t){M(i,r,o,a,c,"throw",t)}a(void 0)})});return function(){return e.apply(this,arguments)}}();function K(t){return K="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},K(t)}function V(t){if(null!=t){var e=t["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],n=0;if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length))return{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}}}throw new TypeError(K(t)+" is not iterable")}function $(){var t,e,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=r&&r.prototype instanceof c?r:c,l=Object.create(u.prototype);return H(l,"_invoke",function(n,r,o){var i,c,u,l=0,s=o||[],f=!1,p={p:0,n:0,v:t,a:d,f:d.bind(t,4),d:function(e,n){return i=e,c=0,u=t,p.n=n,a}};function d(n,r){for(c=n,u=r,e=0;!f&&l&&!o&&e3?(o=y===r)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=t):i[0]<=d&&((o=n<2&&dr||r>y)&&(i[4]=n,i[5]=r,p.n=y,c=0))}if(o||n>1)return a;throw f=!0,r}return function(o,s,y){if(l>1)throw TypeError("Generator is already running");for(f&&1===s&&d(s,y),c=s,u=y;(e=c<2?t:u)||!f;){i||(c?c<3?(c>1&&(p.n=-1),d(c,u)):p.n=u:p.v=u);try{if(l=2,i){if(c||(o="next"),e=i[o]){if(!(e=e.call(i,u)))throw TypeError("iterator result is not an object");if(!e.done)return e;u=e.value,c<2&&(c=0)}else 1===c&&(e=i.return)&&e.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=t}else if((e=(f=p.n<0)?u:n.call(r,p))!==a)break}catch(e){i=t,c=1,u=e}finally{l=1}}return{value:e,done:f}}}(n,o,i),!0),l}var a={};function c(){}function u(){}function l(){}e=Object.getPrototypeOf;var s=[][r]?e(e([][r]())):(H(e={},r,function(){return this}),e),f=l.prototype=c.prototype=Object.create(s);function p(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,l):(t.__proto__=l,H(t,o,"GeneratorFunction")),t.prototype=Object.create(f),t}return u.prototype=l,H(f,"constructor",l),H(l,"constructor",u),u.displayName="GeneratorFunction",H(l,o,"GeneratorFunction"),H(f),H(f,o,"Generator"),H(f,r,function(){return this}),H(f,"toString",function(){return"[object Generator]"}),($=function(){return{w:i,m:p}})()}function H(t,e,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(t){o=0}H=function(t,e,n,r){function i(e,n){H(t,e,function(t){return this._invoke(e,n,t)})}e?o?o(t,e,{value:n,enumerable:!r,configurable:!r,writable:!r}):t[e]=n:(i("next",0),i("throw",1),i("return",2))},H(t,e,n,r)}function Q(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=function(t,e){if(t){if("string"==typeof t)return X(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?X(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0,o=function(){};return{s:o,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){c=!0,i=t},f:function(){try{a||null==n.return||n.return()}finally{if(c)throw i}}}}function X(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n{"use strict";function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t(e)}function e(t,e){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:"default";!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.elements=e,this.type=n,this.prepareElements()},n=[{key:"fadeIn",value:function(){var t=this;this.applyStyleToElements(function(e){e.classList.add("frm-fadein-up"),e.addEventListener("animationend",function(){t.resetOpacity(),e.classList.remove("frm-fadein-up")},{once:!0})})}},{key:"cascadeFadeIn",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.03;setTimeout(function(){t.applyStyleToElements(function(t,n){t.classList.remove("frm-animate"),t.style.transitionDelay="".concat((n+1)*e,"s")})},200)}},{key:"prepareElements",value:function(){var t=this;this.applyStyleToElements(function(e){"default"===t.type&&(e.style.opacity="0.0"),"cascade"===t.type&&e.classList.add("frm-init-cascade-animation"),"cascade-3d"===t.type&&e.classList.add("frm-init-fadein-3d"),e.classList.add("frm-animate")})}},{key:"resetOpacity",value:function(){this.applyStyleToElements(function(t){return t.style.opacity="1.0"})}},{key:"applyStyleToElements",value:function(t){this.elements instanceof Element?t(this.elements,0):00&&void 0!==arguments[0]?arguments[0]:{};if("object"!==_(t)||null===t)throw new Error("createPageState: initialState must be a non-null object");var e=t;return{getState:function(){return e},getSingleState:function(t){var n=Reflect.get(e,t);return void 0===n?null:n},setState:function(t){if("object"!==_(t)||null===t)throw new Error("setState: newState must be a non-null object");e=T(T({},e),t)},setSingleState:function(t,n){Reflect.has(e,t)&&Reflect.set(e,t,n)}}}({processedSteps:[],installedAddons:[]}),I=A.getState,D=(A.getSingleState,A.setState,A.setSingleState),C=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==j(t)||null===t)throw new Error("createPageElements: initialElements must be a non-null object");var e=t;return{getElements:function(){return e},addElements:function(t){if("object"!==j(t)||null===t)throw new Error("addElements: newElements must be a non-null object");e=g(g({},e),t)}}}({onboardingWizardPage:document.getElementById("".concat(E,"-wizard-page")),container:document.getElementById("".concat(E,"-container")),rootline:document.getElementById("".concat(E,"-rootline")),steps:document.querySelectorAll(".".concat(E,"-step")),skipStepButtons:document.querySelectorAll(".".concat(E,"-skip-step")),backButtons:document.querySelectorAll(".".concat(E,"-back-button")),consentTrackingButton:document.getElementById("".concat(E,"-consent-tracking")),installAddonsButton:document.getElementById("".concat(E,"-install-addons-button")),hiddenLicenseKeyInput:document.getElementById("frm-license-key")}),N=C.getElements;C.addElements;var U=function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"pushState",o=document.querySelector(".".concat(E,'-step[data-step-name="').concat(t,'"]'));if(o){var i=document.querySelector(".".concat(E,"-step.").concat(S));i&&(i.classList.remove(S),null==(e=i)||e.classList.add(b)),o.classList.add(S),function(t){null==t||t.classList.remove(b)}(o),new r(o).fadeIn(),N().onboardingWizardPage.setAttribute("data-current-step",t),function(t,e){var n,r,o,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"pushState";if(p.set(t,e),f.search=p.toString(),["pushState","replaceState"].includes(i)){var a=(n={},o=e,(r=function(t){var e=function(t){if("object"!=s(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=s(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==s(e)?e:e+""}(r=t))in n?Object.defineProperty(n,r,{value:o,enumerable:!0,configurable:!0,writable:!0}):n[r]=o,n);window.history[i](a,"",f)}f.toString()}("step",t,n),function(t){t===P.UNSUCCESSFUL&&(t=P.SUCCESS);var e=N().rootline,n=e.querySelector('.frm-rootline-item[data-step="'.concat(t,'"]'));e.querySelectorAll(".frm-rootline-item").forEach(function(t){t.classList.remove(B),t.classList.remove(S)});var r=n.previousElementSibling;if(r)for(;r;)r.classList.add(B),r=r.previousElementSibling;t===P.SUCCESS?n.classList.add(B):n.classList.add(S)}(t)}},x=function(){var t=document.querySelector(".".concat(E,"-step.").concat(S)),e=null==t?void 0:t.nextElementSibling;if(e){var n=t.dataset.stepName,r=e.dataset.stepName,o=I().processedSteps;o.includes(n)||(o.push(n),D("processedSteps",o)),function(t,e){var n=function(t,e){var n;if(P.SUCCESS===e||P.UNSUCCESSFUL===e){var r=I().processedSteps;r.length>1&&(r.includes(e)||r.push(e),(n=new FormData).append("processed_steps",r.join(",")),n.append("completed_steps",!0))}if(P.INSTALL_ADDONS===t){var o=I().installedAddons;o.length>0&&(n=null!=n?n:new FormData).append("installed_addons",o.join(","))}return n}(t,e);n&&(0,frmDom.ajax.doJsonPost)("onboarding_setup_usage_data",n)}(n,r),U(r)}};var B="frm-completed-step",F=".frm-option-box";function G(t){"input"===t.target.tagName.toLowerCase()&&t.currentTarget.closest(F).classList.toggle("frm-checked")}var q=function(){x()};var z=function(){var t,e;(e=null==(t=document.querySelector(".".concat(E,"-step.").concat(S)))?void 0:t.previousElementSibling)&&U(e.dataset.stepName)};function R(){var t,e,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=r&&r.prototype instanceof c?r:c,l=Object.create(u.prototype);return J(l,"_invoke",function(n,r,o){var i,c,u,l=0,s=o||[],f=!1,p={p:0,n:0,v:t,a:d,f:d.bind(t,4),d:function(e,n){return i=e,c=0,u=t,p.n=n,a}};function d(n,r){for(c=n,u=r,e=0;!f&&l&&!o&&e3?(o=y===r)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=t):i[0]<=d&&((o=n<2&&dr||r>y)&&(i[4]=n,i[5]=r,p.n=y,c=0))}if(o||n>1)return a;throw f=!0,r}return function(o,s,y){if(l>1)throw TypeError("Generator is already running");for(f&&1===s&&d(s,y),c=s,u=y;(e=c<2?t:u)||!f;){i||(c?c<3?(c>1&&(p.n=-1),d(c,u)):p.n=u:p.v=u);try{if(l=2,i){if(c||(o="next"),e=i[o]){if(!(e=e.call(i,u)))throw TypeError("iterator result is not an object");if(!e.done)return e;u=e.value,c<2&&(c=0)}else 1===c&&(e=i.return)&&e.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=t}else if((e=(f=p.n<0)?u:n.call(r,p))!==a)break}catch(e){i=t,c=1,u=e}finally{l=1}}return{value:e,done:f}}}(n,o,i),!0),l}var a={};function c(){}function u(){}function l(){}e=Object.getPrototypeOf;var s=[][r]?e(e([][r]())):(J(e={},r,function(){return this}),e),f=l.prototype=c.prototype=Object.create(s);function p(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,l):(t.__proto__=l,J(t,o,"GeneratorFunction")),t.prototype=Object.create(f),t}return u.prototype=l,J(f,"constructor",l),J(l,"constructor",u),u.displayName="GeneratorFunction",J(l,o,"GeneratorFunction"),J(f),J(f,o,"Generator"),J(f,r,function(){return this}),J(f,"toString",function(){return"[object Generator]"}),(R=function(){return{w:i,m:p}})()}function J(t,e,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(t){o=0}J=function(t,e,n,r){function i(e,n){J(t,e,function(t){return this._invoke(e,n,t)})}e?o?o(t,e,{value:n,enumerable:!r,configurable:!r,writable:!r}):t[e]=n:(i("next",0),i("throw",1),i("return",2))},J(t,e,n,r)}function M(t,e,n,r,o,i,a){try{var c=t[i](a),u=c.value}catch(t){return void n(t)}c.done?e(u):Promise.resolve(u).then(r,o)}var W=function(){var t,e=(t=R().m(function t(){return R().w(function(t){for(;;)switch(t.n){case 0:(0,frmDom.ajax.doJsonPost)("onboarding_consent_tracking",new FormData).then(x);case 1:return t.a(2)}},t)}),function(){var e=this,n=arguments;return new Promise(function(r,o){var i=t.apply(e,n);function a(t){M(i,r,o,a,c,"next",t)}function c(t){M(i,r,o,a,c,"throw",t)}a(void 0)})});return function(){return e.apply(this,arguments)}}();function K(t){return K="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},K(t)}function V(t){if(null!=t){var e=t["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],n=0;if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length))return{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}}}throw new TypeError(K(t)+" is not iterable")}function $(){var t,e,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=r&&r.prototype instanceof c?r:c,l=Object.create(u.prototype);return H(l,"_invoke",function(n,r,o){var i,c,u,l=0,s=o||[],f=!1,p={p:0,n:0,v:t,a:d,f:d.bind(t,4),d:function(e,n){return i=e,c=0,u=t,p.n=n,a}};function d(n,r){for(c=n,u=r,e=0;!f&&l&&!o&&e3?(o=y===r)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=t):i[0]<=d&&((o=n<2&&dr||r>y)&&(i[4]=n,i[5]=r,p.n=y,c=0))}if(o||n>1)return a;throw f=!0,r}return function(o,s,y){if(l>1)throw TypeError("Generator is already running");for(f&&1===s&&d(s,y),c=s,u=y;(e=c<2?t:u)||!f;){i||(c?c<3?(c>1&&(p.n=-1),d(c,u)):p.n=u:p.v=u);try{if(l=2,i){if(c||(o="next"),e=i[o]){if(!(e=e.call(i,u)))throw TypeError("iterator result is not an object");if(!e.done)return e;u=e.value,c<2&&(c=0)}else 1===c&&(e=i.return)&&e.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=t}else if((e=(f=p.n<0)?u:n.call(r,p))!==a)break}catch(e){i=t,c=1,u=e}finally{l=1}}return{value:e,done:f}}}(n,o,i),!0),l}var a={};function c(){}function u(){}function l(){}e=Object.getPrototypeOf;var s=[][r]?e(e([][r]())):(H(e={},r,function(){return this}),e),f=l.prototype=c.prototype=Object.create(s);function p(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,l):(t.__proto__=l,H(t,o,"GeneratorFunction")),t.prototype=Object.create(f),t}return u.prototype=l,H(f,"constructor",l),H(l,"constructor",u),u.displayName="GeneratorFunction",H(l,o,"GeneratorFunction"),H(f),H(f,o,"Generator"),H(f,r,function(){return this}),H(f,"toString",function(){return"[object Generator]"}),($=function(){return{w:i,m:p}})()}function H(t,e,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(t){o=0}H=function(t,e,n,r){function i(e,n){H(t,e,function(t){return this._invoke(e,n,t)})}e?o?o(t,e,{value:n,enumerable:!r,configurable:!r,writable:!r}):t[e]=n:(i("next",0),i("throw",1),i("return",2))},H(t,e,n,r)}function Q(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=function(t,e){if(t){if("string"==typeof t)return X(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?X(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0,o=function(){};return{s:o,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){c=!0,i=t},f:function(){try{a||null==n.return||n.return()}finally{if(c)throw i}}}}function X(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n Date: Tue, 3 Mar 2026 20:58:45 +0300 Subject: [PATCH 30/34] Improve code formatting by adding const to imageSize declaration and reformatting template literal for better readability in admin.js --- js/src/admin/admin.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/js/src/admin/admin.js b/js/src/admin/admin.js index d2473e476d..c3d6ccec78 100644 --- a/js/src/admin/admin.js +++ b/js/src/admin/admin.js @@ -3729,7 +3729,7 @@ window.frmAdminBuildJS = function() { if ( hasImageOptions ) { setAlignment( fieldId, 'inline' ); removeImageSizeClasses( displayField ); - imageSize = getImageOptionSize( fieldId ); + const imageSize = getImageOptionSize( fieldId ); displayField.classList.add( 'frm_image_options' ); displayField.classList.add( `frm_image_size_${ imageSize }` ); $field.find( '.frm-bulk-edit-link' ).hide(); @@ -6220,12 +6220,13 @@ window.frmAdminBuildJS = function() { return single; } - return `
        ${ - isOther ? other : '' - }
        `; + return `
        + + ${ isOther ? other : '' } +
        `; }; return this.getSingle(); From f2bca79738b1e8484a5a5599f26b7594194c1173 Mon Sep 17 00:00:00 2001 From: Sherv Date: Tue, 3 Mar 2026 21:06:56 +0300 Subject: [PATCH 31/34] Move variable declarations to point of use and convert var to const/let in formidable.js --- js/formidable.js | 41 ++++++++++++++--------------------------- 1 file changed, 14 insertions(+), 27 deletions(-) diff --git a/js/formidable.js b/js/formidable.js index fdcad72935..dd66bfde80 100644 --- a/js/formidable.js +++ b/js/formidable.js @@ -602,9 +602,6 @@ function frmFrontFormJS() { * @return {void} */ function confirmField( field, errors ) { - let value; - let confirmValue; - let firstField; const fieldID = getFieldId( field, true ); const strippedId = field.id.replace( 'conf_', '' ); const strippedFieldID = fieldID.replace( 'conf_', '' ); @@ -615,9 +612,9 @@ function frmFrontFormJS() { } if ( fieldID !== strippedFieldID ) { - firstField = document.getElementById( strippedId ); - value = firstField.value; - confirmValue = confirmField.value; + const firstField = document.getElementById( strippedId ); + const { value } = firstField; + const confirmValue = confirmField.value; if ( value !== confirmValue ) { errors[ `conf_${ strippedFieldID }` ] = getFieldValidationMessage( confirmField, 'data-confmsg' ); } @@ -869,17 +866,6 @@ function frmFrontFormJS() { }; const success = function( response ) { - let formID; - let replaceContent; - let pageOrder; - let formReturned; - let contSubmit; - let delay; - let $fieldCont; - let key; - let inCollapsedSection; - let frmTrigger; - const defaultResponse = { content: '', errors: {}, @@ -927,11 +913,11 @@ function frmFrontFormJS() { } const formIdInput = object.querySelector( 'input[name="form_id"]' ); - formID = formIdInput ? formIdInput.value : ''; + const formID = formIdInput ? formIdInput.value : ''; response.content = response.content.replace( / frm_pro_form /g, ' frm_pro_form frm_no_hide ' ); - replaceContent = jQuery( object ).closest( '.frm_forms' ); // eslint-disable-line no-jquery/no-closest + const replaceContent = jQuery( object ).closest( '.frm_forms' ); // eslint-disable-line no-jquery/no-closest removeAddedScripts( replaceContent, formID ); - delay = maybeSlideOut( replaceContent, response.content ); + const delay = maybeSlideOut( replaceContent, response.content ); setTimeout( function() { @@ -943,11 +929,11 @@ function frmFrontFormJS() { if ( typeof frmThemeOverride_frmAfterSubmit === 'function' ) { // eslint-disable-line camelcase const pageOrderInput = document.querySelector( `input[name="frm_page_order_${ formID }"]` ); - pageOrder = pageOrderInput ? pageOrderInput.value : ''; + const pageOrder = pageOrderInput ? pageOrderInput.value : ''; const tempDiv = document.createElement( 'div' ); tempDiv.innerHTML = response.content; const formReturnedInput = tempDiv.querySelector( 'input[name="form_id"]' ); - formReturned = formReturnedInput ? formReturnedInput.value : ''; + const formReturned = formReturnedInput ? formReturnedInput.value : ''; frmThemeOverride_frmAfterSubmit( formReturned, pageOrder, response.content, object ); } @@ -960,20 +946,20 @@ function frmFrontFormJS() { removeSubmitLoading( jQuery( object ), 'enable' ); //show errors - contSubmit = true; + let contSubmit = true; removeAllErrors(); - $fieldCont = null; + let $fieldCont = null; - for ( key in response.errors ) { + for ( const key in response.errors ) { const fieldContEl = object.querySelector( `#frm_field_${ key }_container` ); $fieldCont = fieldContEl ? jQuery( fieldContEl ) : jQuery(); if ( $fieldCont.length ) { if ( ! $fieldCont.is( ':visible' ) ) { // eslint-disable-line no-jquery/no-is - inCollapsedSection = $fieldCont.closest( '.frm_toggle_container' ); // eslint-disable-line no-jquery/no-closest + const inCollapsedSection = $fieldCont.closest( '.frm_toggle_container' ); // eslint-disable-line no-jquery/no-closest if ( inCollapsedSection.length ) { - frmTrigger = inCollapsedSection.prev(); + let frmTrigger = inCollapsedSection.prev(); if ( ! frmTrigger.hasClass( 'frm_trigger' ) ) { // If the frmTrigger object is the section description, check to see if the previous element is the trigger frmTrigger = frmTrigger.prev( '.frm_trigger' ); @@ -1421,6 +1407,7 @@ function frmFrontFormJS() { } let element = errors[ 0 ]; + let timeoutCallback; do { element = element.previousSibling; if ( [ 'input', 'select', 'textarea' ].includes( element.nodeName.toLowerCase() ) ) { From 8e98b19c386ac81f2426fb452a96e4c49db1956c Mon Sep 17 00:00:00 2001 From: Sherv Date: Tue, 3 Mar 2026 21:44:10 +0300 Subject: [PATCH 32/34] Move variable declarations to point of use and convert var to const/let in frmstrp.js --- js/formidable_admin.js | 2 +- stripe/js/frmstrp.js | 58 +++++++++++++++--------------------------- 2 files changed, 21 insertions(+), 39 deletions(-) diff --git a/js/formidable_admin.js b/js/formidable_admin.js index 89523c7edf..3690574b8c 100644 --- a/js/formidable_admin.js +++ b/js/formidable_admin.js @@ -1 +1 @@ -(()=>{var e={65:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(8793),o=n(1323);function i(e){var t=(0,r.A)(e);return function(e){return(0,o.A)(t,e)}}},1323:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r={"!":function(e){return!e},"*":function(e,t){return e*t},"/":function(e,t){return e/t},"%":function(e,t){return e%t},"+":function(e,t){return e+t},"-":function(e,t){return e-t},"<":function(e,t){return e":function(e,t){return e>t},">=":function(e,t){return e>=t},"==":function(e,t){return e===t},"!=":function(e,t){return e!==t},"&&":function(e,t){return e&&t},"||":function(e,t){return e||t},"?:":function(e,t,n){if(e)throw t;return n}};function o(e,t){var n,o,i,a,l,s,c=[];for(n=0;n{"use strict";n.d(t,{A:()=>o});var r=n(65);function o(e){var t=(0,r.A)(e);return function(e){return+t({n:e})}}},8793:(e,t,n)=>{"use strict";var r,o,i,a;function l(e){for(var t,n,l,s,c=[],d=[];t=e.match(a);){for(n=t[0],(l=e.substr(0,t.index).trim())&&c.push(l);s=d.pop();){if(i[n]){if(i[n][0]===s){n=i[n][1]||n;break}}else if(o.indexOf(s)>=0||r[s]l}),r={"(":9,"!":8,"*":7,"/":7,"%":7,"+":6,"-":6,"<":5,"<=":5,">":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},o=["(","?"],i={")":["("],":":["?","?:"]},a=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/},7521:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(6956),o=n(7395);const i=function(e,t){return function(n,i,a){var l=arguments.length>3&&void 0!==arguments[3]?arguments[3]:10,s=e[t];if((0,o.A)(n)&&(0,r.A)(i))if("function"==typeof a)if("number"==typeof l){var c={callback:a,priority:l,namespace:i};if(s[n]){var d,u=s[n].handlers;for(d=u.length;d>0&&!(l>=u[d-1].priority);d--);d===u.length?u[d]=c:u.splice(d,0,c),s.__current.forEach(function(e){e.name===n&&e.currentIndex>=d&&e.currentIndex++})}else s[n]={handlers:[c],runs:0};"hookAdded"!==n&&e.doAction("hookAdded",n,i,a,l)}else console.error("If specified, the hook priority must be a number.");else console.error("The hook callback must be a function.")}}},11:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=function(e,t){return function(){var n,r,o=e[t];return null!==(n=null===(r=o.__current[o.__current.length-1])||void 0===r?void 0:r.name)&&void 0!==n?n:null}}},5375:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(7395);const o=function(e,t){return function(n){var o=e[t];if((0,r.A)(n))return o[n]&&o[n].runs?o[n].runs:0}}},3561:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=function(e,t){return function(n){var r=e[t];return void 0===n?void 0!==r.__current[0]:!!r.__current[0]&&n===r.__current[0].name}}},8830:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=function(e,t){return function(n,r){var o=e[t];return void 0!==r?n in o&&o[n].handlers.some(function(e){return e.namespace===r}):n in o}}},7765:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(3029),o=n(7521),i=n(4194),a=n(8830),l=n(6763),s=n(11),c=n(3561),d=n(5375),u=function e(){(0,r.A)(this,e),this.actions=Object.create(null),this.actions.__current=[],this.filters=Object.create(null),this.filters.__current=[],this.addAction=(0,o.A)(this,"actions"),this.addFilter=(0,o.A)(this,"filters"),this.removeAction=(0,i.A)(this,"actions"),this.removeFilter=(0,i.A)(this,"filters"),this.hasAction=(0,a.A)(this,"actions"),this.hasFilter=(0,a.A)(this,"filters"),this.removeAllActions=(0,i.A)(this,"actions",!0),this.removeAllFilters=(0,i.A)(this,"filters",!0),this.doAction=(0,l.A)(this,"actions"),this.applyFilters=(0,l.A)(this,"filters",!0),this.currentAction=(0,s.A)(this,"actions"),this.currentFilter=(0,s.A)(this,"filters"),this.doingAction=(0,c.A)(this,"actions"),this.doingFilter=(0,c.A)(this,"filters"),this.didAction=(0,d.A)(this,"actions"),this.didFilter=(0,d.A)(this,"filters")};const f=function(){return new u}},4194:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(6956),o=n(7395);const i=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(i,a){var l=e[t];if((0,o.A)(i)&&(n||(0,r.A)(a))){if(!l[i])return 0;var s=0;if(n)s=l[i].handlers.length,l[i]={runs:l[i].runs,handlers:[]};else for(var c=l[i].handlers,d=function(e){c[e].namespace===a&&(c.splice(e,1),s++,l.__current.forEach(function(t){t.name===i&&t.currentIndex>=e&&t.currentIndex--}))},u=c.length-1;u>=0;u--)d(u);return"hookRemoved"!==i&&e.doAction("hookRemoved",i,a),s}}}},6763:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(r){var o=e[t];o[r]||(o[r]={handlers:[],runs:0}),o[r].runs++;for(var i=o[r].handlers,a=arguments.length,l=new Array(a>1?a-1:0),s=1;s{"use strict";n.d(t,{se:()=>r});var r=(0,n(7765).A)();r.addAction,r.addFilter,r.removeAction,r.removeFilter,r.hasAction,r.hasFilter,r.removeAllActions,r.removeAllFilters,r.doAction,r.applyFilters,r.currentAction,r.currentFilter,r.doingAction,r.doingFilter,r.didAction,r.didFilter,r.actions,r.filters},7395:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=function(e){return"string"!=typeof e||""===e?(console.error("The hook name must be a non-empty string."),!1):/^__/.test(e)?(console.error("The hook name cannot begin with `__`."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(e)||(console.error("The hook name can only contain numbers, letters, dashes, periods and underscores."),!1)}},6956:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=function(e){return"string"!=typeof e||""===e?(console.error("The namespace must be a non-empty string."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(e)||(console.error("The namespace can only contain numbers, letters, dashes, periods, underscores and slashes."),!1)}},772:(e,t,n)=>{"use strict";n.d(t,{h:()=>c});var r=n(4467),o=n(5397);function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function a(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:"default";r.data[t]=a(a(a({},l),r.data[t]),e),r.data[t][""]=a(a({},l[""]),r.data[t][""])},u=function(e,t){d(e,t),c()},f=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default",t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0;return r.data[e]||d(void 0,e),r.dcnpgettext(e,t,n,o,i)},m=function(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default"},_=function(e,t,r){var o=f(r,t,e);return n?(o=n.applyFilters("i18n.gettext_with_context",o,e,t,r),n.applyFilters("i18n.gettext_with_context_"+m(r),o,e,t,r)):o};if(e&&u(e,t),n){var p=function(e){s.test(e)&&c()};n.addAction("hookAdded","core/i18n",p),n.addAction("hookRemoved","core/i18n",p)}return{getLocaleData:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default";return r.data[e]},setLocaleData:u,resetLocaleData:function(e,t){r.data={},r.pluralForms={},u(e,t)},subscribe:function(e){return i.add(e),function(){return i.delete(e)}},__:function(e,t){var r=f(t,void 0,e);return n?(r=n.applyFilters("i18n.gettext",r,e,t),n.applyFilters("i18n.gettext_"+m(t),r,e,t)):r},_x:_,_n:function(e,t,r,o){var i=f(o,void 0,e,t,r);return n?(i=n.applyFilters("i18n.ngettext",i,e,t,r,o),n.applyFilters("i18n.ngettext_"+m(o),i,e,t,r,o)):i},_nx:function(e,t,r,o,i){var a=f(i,o,e,t,r);return n?(a=n.applyFilters("i18n.ngettext_with_context",a,e,t,r,o,i),n.applyFilters("i18n.ngettext_with_context_"+m(i),a,e,t,r,o,i)):a},isRTL:function(){return"rtl"===_("ltr","text direction")},hasTranslation:function(e,t,o){var i,a,l=t?t+""+e:e,s=!(null===(i=r.data)||void 0===i||null===(a=i[null!=o?o:"default"])||void 0===a||!a[l]);return n&&(s=n.applyFilters("i18n.has_translation",s,e,t,o),s=n.applyFilters("i18n.has_translation_"+m(o),s,e,t,o)),s}}}},5839:(e,t,n)=>{"use strict";n.d(t,{__:()=>a});var r=n(772),o=n(2133),i=(0,r.h)(void 0,void 0,o.se),a=(i.getLocaleData.bind(i),i.setLocaleData.bind(i),i.resetLocaleData.bind(i),i.subscribe.bind(i),i.__.bind(i));i._x.bind(i),i._n.bind(i),i._nx.bind(i),i.isRTL.bind(i),i.hasTranslation.bind(i)},9575:(e,t,n)=>{"use strict";n.d(t,{__:()=>r.__}),n(181),n(772);var r=n(5839)},181:(e,t,n)=>{"use strict";var r=n(8616),o=n.n(r);n(7604),o()(console.error)},1105:(e,t,n)=>{"use strict";n.r(t),n.d(t,{addonError:()=>f,afterAddonInstall:()=>u,extractErrorFromAddOnResponse:()=>d,toggleAddonState:()=>c});var r=n(9575);function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,a,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,o=e}finally{try{if(!s&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw o}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return i(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n5&&void 0!==arguments[5]?arguments[5]:"frm_activate_addon",d=frm_admin_js,u=document.querySelectorAll(".frm-addon-status");u.forEach(function(t){t.textContent=e,t.style.display="block"}),t.css({opacity:"0"}),document.querySelectorAll(".frm-oneclick").forEach(function(e){e.style.display="none"}),function(){var e=document.getElementById("frm_upgrade_modal");if(e){e.classList.add("frm-success");var t=e.querySelector(".frm-upgrade-message");if(t){var n=t.querySelector("img");t.replaceChildren((0,r.__)("Great! Everything's ready to go!","formidable"),document.createElement("br"),(0,r.__)("You just need to refresh the builder so the new field becomes available.","formidable")),n&&t.append(n)}var o=document.querySelector(".frm-addon-status");o&&(o.textContent="");var i,a=e.querySelector(".frm-circled-icon");if(a)a.classList.add("frm-circled-icon-green"),null===(i=a.querySelector("svg"))||void 0===i||i.replaceWith(s({href:"#frm_checkmark_icon"}))}}();var f={frm_activate_addon:{class:"frm-addon-active",message:d.active},frm_deactivate_addon:{class:"frm-addon-installed",message:d.installed},frm_uninstall_addon:{class:"frm-addon-not-installed",message:d.not_installed}};f.frm_install_addon=f.frm_activate_addon;var _=o(n,1)[0];_&&(_.textContent=f[c].message);var p=o(i,1)[0].parentElement;p.classList.remove("frm-addon-not-installed","frm-addon-installed","frm-addon-active"),p.classList.add(f[c].class),o(t,1)[0].classList.remove("frm_loading_button"),document.querySelectorAll(".frm-admin-page-import, #frm-admin-smtp, #frm-welcome").length>0?window.location.reload():["settings","form_builder"].includes(a)&&u.forEach(function(e){var t=null!==e.closest("#frm_upgrade_modal");e.append(function(e,t){var n,o=[m(e)];return t&&o.push(((n=document.createElement("a")).setAttribute("href","#"),n.classList.add("button","button-secondary","frm-button-secondary","dismiss"),n.textContent=(0,r.__)("Not Now","formidable"),n)),l({className:"frm-save-and-reload-options",children:o})}(a,t))})}function f(e,t,n){e.form?(jQuery(".frm-inline-error").remove(),n.closest(".frm-card").html(e.form).css({padding:5}).find("#upgrade").attr("rel",n.attr("rel")).on("click",_)):(t.append('

        '.concat(e.message,"

        ")),n.removeClass("frm_loading_button"),jQuery(".frm-addon-error").delay(4e3).fadeOut())}function m(e){var t=document.createElement("button");return t.classList.add("frm-save-and-reload","button","button-primary","frm-button-primary"),t.textContent=(0,r.__)("Save and Reload","formidable"),t.addEventListener("click",function(){var t;"form_builder"===e?((t=document.getElementById("frm_submit_side_top")).classList.contains("frm_submit_ajax")&&t.setAttribute("data-new-addon-installed",!0),t.click()):"settings"===e&&function(){var e=document.getElementById("form_settings_page");if(null!==e){var t=e.querySelector("form.frm_form_settings");null!==t&&(wp.hooks.doAction("frm_reset_fields_updated"),t.submit())}}()}),t}function _(e){e.preventDefault();var t=jQuery(this),n=t.parent().parent(),r=t.attr("rel");t.addClass("frm_loading_button"),jQuery.ajax({url:ajaxurl,type:"POST",async:!0,cache:!1,dataType:"json",data:{action:"frm_install_addon",nonce:frmAdminJs.nonce,plugin:r,hostname:n.find("#hostname").val(),username:n.find("#username").val(),password:n.find("#password").val()},success:function(e){var r,o,i=d(e=null!==(r=null===(o=e)||void 0===o?void 0:o.data)&&void 0!==r?r:e);i?f(i,n,t):u(e,t,message,n)},error:function(){t.removeClass("frm_loading_button")}})}},4260:(e,t,n)=>{"use strict";n.r(t),n.d(t,{addOneClick:()=>i,initModal:()=>a,initUpgradeModal:()=>l});var r=n(9575),o=frmDom.svg;function i(e,t,n){var i;if("modal"===t)i=document.getElementById("frm_upgrade_modal");else{if("tab"!==t)return;i=document.getElementById(e.getAttribute("href").substr(1))}var a,l=i.querySelector(".frm-oneclick"),s=i.querySelector(".frm-upgrade-message"),c=i.querySelector(".frm-upgrade-link"),d=i.querySelector(".frm-oneclick-button"),u=i.querySelector(".frm-addon-status"),f=e.getAttribute("data-oneclick"),m=e.getAttribute("data-message"),_="block",p="block",g="none",y=i.querySelector(".frm-circled-icon");y&&(y.classList.remove("frm-circled-icon-green"),null===(a=y.querySelector("svg"))||void 0===a||a.replaceWith(o({href:"#frm_filled_lock_icon"})));var v=i.querySelector(".frm-learn-more");if(v&&(v.href=e.dataset.learnMore),null!==l&&null!==d&&void 0!==f&&f){null===m&&(p="none"),_="none",g="block",f=JSON.parse(f),d.className=d.className.replace(" frm-install-addon","").replace(" frm-activate-addon",""),d.className="".concat(d.className," ").concat(f.class),d.rel=f.url,l.textContent=(0,r.__)("This plugin is not activated. Would you like to activate it now?","formidable"),d.textContent=(0,r.__)("Activate","formidable");var h=e.querySelector("use");h&&(null==y||y.querySelector("svg").replaceWith(o({href:h.getAttribute("href")||h.getAttribute("xlink:href"),classList:["frm_svg32"]})))}m||(m=s.getAttribute("data-default")),void 0!==n&&(m=m.replace('',n)),s.innerHTML=m,e.dataset.upsellImage&&s.append(frmDom.img({src:e.dataset.upsellImage,alt:e.dataset.upgrade})),c.href=function(e,t){var n=e.getAttribute("data-link");return null!=n&&""!==n||(n=t.getAttribute("data-default")),n}(e,c),u.style.display="none",l&&(l.style.display=g),d&&(d.style.display="block"===g?"inline-block":g),s.style.display=p,c.style.display="block"===_?"inline-block":_;var b=c.closest(".frm-upgrade-modal-actions");b&&(b.style.display="block"===_?"flex":_)}function a(e,t){var n=jQuery(e);if(!n.length)return!1;void 0===t&&(t="552px");var r={dialogClass:"frm-dialog",modal:!0,autoOpen:!1,closeOnEscape:!0,width:t,resizable:!1,draggable:!1,open:function(){var e,t;jQuery(".ui-dialog-titlebar").addClass("frm_hidden").removeClass("ui-helper-clearfix"),jQuery("#wpwrap").addClass("frm_overlay"),jQuery(".frm-dialog").removeClass("ui-widget ui-widget-content ui-corner-all"),n.removeClass("ui-dialog-content ui-widget-content"),e=n,t=function(){e.dialog("close")},jQuery(".ui-widget-overlay").on("click",t),e.on("click","a.dismiss",t)},close:function(){jQuery("#wpwrap").removeClass("frm_overlay"),jQuery(".spinner").css("visibility","hidden"),this.removeAttribute("data-option-type");var e=document.getElementById("bulk-option-type");e&&(e.value="")}};return n.dialog(r),n}function l(){var e=a("#frm_upgrade_modal");function t(t){var n,r,o;if((n=t.target).classList){var a=n.classList.contains("frm_show_expired_modal")||null!==n.querySelector(".frm_show_expired_modal")||n.closest(".frm_show_expired_modal");if("change"===t.type&&n.classList.contains("frm_select_with_upgrade")){var l=n.options[n.selectedIndex];l&&l.dataset.upgrade&&(n=l)}if(!n.dataset.upgrade){var s=n.closest("[data-upgrade]");if(!s){if(!(s=n.closest(".frm_field_box")))return;n.dataset.upgrade=""}n=s}if(a)wp.hooks.doAction("frm_show_expired_modal",n);else{var c=n.dataset.upgrade;if(c&&!n.classList.contains("frm_show_upgrade_tab")){t.preventDefault();var d=e.get(0),u=d.querySelector(".frm_lock_icon");u&&(u.style.display="block",u.classList.remove("frm_lock_open_icon"),u.querySelector("use").setAttribute("href","#frm_lock_icon"));var f="frm_upgrade_modal_image",m=document.getElementById(f);m&&m.remove(),n.dataset.image&&u&&(u.style.display="none",u.parentNode.insertBefore(frmDom.img({id:f,src:"".concat(frmGlobal.url,"/images/").concat(n.dataset.image)}),u));var _=d.querySelector(".license-level");_&&(_.textContent=function(e){return e.dataset.requires?e.dataset.requires:"Pro"}(n)),i(n,"modal",c),d.querySelector(".frm_are_not_installed").style.display=n.dataset.image||n.dataset.oneclick?"none":"inline-block",d.querySelector(".frm-upgrade-modal-title-prefix").style.display=n.dataset.oneclick?"inline":"none",d.querySelector(".frm_feature_label").textContent=c,d.querySelector(".frm-upgrade-modal-title-suffix").style.display="none",d.querySelector("h2").style.display="block",e.dialog("open");var p=d.querySelector(".button-primary:not(.frm-oneclick-button)");r=p.getAttribute("href").replace(/(medium=)[a-z_-]+/gi,"$1".concat(n.getAttribute("data-medium"))),null===(o=n.getAttribute("data-content"))&&(o=""),r=r.replace(/(content=)[a-z_-]+/gi,"$1".concat(o)),p.setAttribute("href",r)}}}}!1!==e&&(document.addEventListener("click",t),frmDom.util.documentOn("change","select.frm_select_with_upgrade",t))}},8616:e=>{e.exports=function(e,t){var n,r,o=0;function i(){var i,a,l=n,s=arguments.length;e:for(;l;){if(l.args.length===arguments.length){for(a=0;a{var r;!function(){"use strict";var o={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function i(e){return function(e,t){var n,r,a,l,s,c,d,u,f,m=1,_=e.length,p="";for(r=0;r<_;r++)if("string"==typeof e[r])p+=e[r];else if("object"==typeof e[r]){if((l=e[r]).keys)for(n=t[m],a=0;a=0),l.type){case"b":n=parseInt(n,10).toString(2);break;case"c":n=String.fromCharCode(parseInt(n,10));break;case"d":case"i":n=parseInt(n,10);break;case"j":n=JSON.stringify(n,null,l.width?parseInt(l.width):0);break;case"e":n=l.precision?parseFloat(n).toExponential(l.precision):parseFloat(n).toExponential();break;case"f":n=l.precision?parseFloat(n).toFixed(l.precision):parseFloat(n);break;case"g":n=l.precision?String(Number(n.toPrecision(l.precision))):parseFloat(n);break;case"o":n=(parseInt(n,10)>>>0).toString(8);break;case"s":n=String(n),n=l.precision?n.substring(0,l.precision):n;break;case"t":n=String(!!n),n=l.precision?n.substring(0,l.precision):n;break;case"T":n=Object.prototype.toString.call(n).slice(8,-1).toLowerCase(),n=l.precision?n.substring(0,l.precision):n;break;case"u":n=parseInt(n,10)>>>0;break;case"v":n=n.valueOf(),n=l.precision?n.substring(0,l.precision):n;break;case"x":n=(parseInt(n,10)>>>0).toString(16);break;case"X":n=(parseInt(n,10)>>>0).toString(16).toUpperCase()}o.json.test(l.type)?p+=n:(!o.number.test(l.type)||u&&!l.sign?f="":(f=u?"+":"-",n=n.toString().replace(o.sign,"")),c=l.pad_char?"0"===l.pad_char?"0":l.pad_char.charAt(1):" ",d=l.width-(f+n).length,s=l.width&&d>0?c.repeat(d):"",p+=l.align?f+n+s:"0"===c?f+s+n:s+f+n)}return p}(function(e){if(l[e])return l[e];for(var t,n=e,r=[],i=0;n;){if(null!==(t=o.text.exec(n)))r.push(t[0]);else if(null!==(t=o.modulo.exec(n)))r.push("%");else{if(null===(t=o.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(t[2]){i|=1;var a=[],s=t[2],c=[];if(null===(c=o.key.exec(s)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(a.push(c[1]);""!==(s=s.substring(c[0].length));)if(null!==(c=o.key_access.exec(s)))a.push(c[1]);else{if(null===(c=o.index_access.exec(s)))throw new SyntaxError("[sprintf] failed to parse named argument key");a.push(c[1])}t[2]=a}else i|=2;if(3===i)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");r.push({placeholder:t[0],param_no:t[1],keys:t[2],sign:t[3],pad_char:t[4],align:t[5],width:t[6],precision:t[7],type:t[8]})}n=n.substring(t[0].length)}return l[e]=r}(e),arguments)}function a(e,t){return i.apply(null,[e].concat(t||[]))}var l=Object.create(null);"undefined"!=typeof window&&(window.sprintf=i,window.vsprintf=a,void 0===(r=function(){return{sprintf:i,vsprintf:a}}.call(t,n,t,e))||(e.exports=r))}()},5397:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(1364),o={contextDelimiter:"",onMissingKey:null};function i(e,t){var n;for(n in this.data=e,this.pluralForms={},this.options={},o)this.options[n]=void 0!==t&&n in t?t[n]:o[n]}i.prototype.getPluralForm=function(e,t){var n,o,i,a=this.pluralForms[e];return a||("function"!=typeof(i=(n=this.data[e][""])["Plural-Forms"]||n["plural-forms"]||n.plural_forms)&&(o=function(e){var t,n,r;for(t=e.split(";"),n=0;n{"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,{A:()=>r})},4467:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(9922);function o(e,t,n){return(t=(0,r.A)(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},2327:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(2284);function o(e,t){if("object"!=(0,r.A)(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!=(0,r.A)(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}},9922:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(2284),o=n(2327);function i(e){var t=(0,o.A)(e,"string");return"symbol"==(0,r.A)(t)?t:t+""}},2284:(e,t,n)=>{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}n.d(t,{A:()=>r})}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.exports}function r(e){return function(e){if(Array.isArray(e))return i(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||o(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){if(e){if("string"==typeof e)return i(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(e,t):void 0}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},window.FrmFormsConnect=window.FrmFormsConnect||function(e,t,n){var r={messageBox:null,reset:null,setElements:function(){r.messageBox=e.querySelector(".frm_pro_license_msg"),r.reset=e.getElementById("frm_reconnect_link")}},o={init:function(){r.setElements(),n(e.getElementById("frm_deauthorize_link")).on("click",o.deauthorize),n(".frm_authorize_link").on("click",o.authorize),n(".frm-dashboard-license-options").on("click","#frm_deauthorize_link",o.deauthorize),n(".frm-dashboard-license-options").on("click","#frm_reconnect_link",o.reauthorize),null!==r.reset&&n(r.reset).on("click",o.reauthorize)},authorize:function(){var t=this,r=this.getAttribute("data-plugin"),i=e.getElementById("edd_".concat(r,"_license_key")),a=i.value,l=e.getElementById("proplug-wpmu");this.classList.add("frm_loading_button"),l=null===l?0:l.checked?1:0,n.ajax({type:"POST",url:ajaxurl,dataType:"json",data:{action:"frm_addon_activate",license:a,plugin:r,wpmu:l,nonce:frmGlobal.nonce},success:function(e){o.afterAuthorize(e,i),t.classList.remove("frm_loading_button")}})},afterAuthorize:function(e,t){!0===e.success&&(t.value="•••••••••••••••••••"),wp.hooks.doAction("frm_after_authorize",e),o.showMessage(e)},showProgress:function(e){null===r.messageBox&&r.setElements();var t=r.messageBox;null!==t&&(!0===e.success?(t.classList.remove("frm_error_style"),t.classList.add("frm_message","frm_updated_message")):(t.classList.add("frm_error_style"),t.classList.remove("frm_message","frm_updated_message")),t.classList.remove("frm_hidden"),t.innerHTML=e.message)},showMessage:function(n){null===r.messageBox&&r.setElements();var i=r.messageBox;!0===n.success&&(o.showAuthorized(!0),o.showInlineSuccess(),wp.hooks.doAction("frmAdmin.afterLicenseAuthorizeSuccess",{msg:n})),o.showProgress(n),""!==n.message&&(setTimeout(function(){i.innerHTML="",i.classList.add("frm_hidden"),i.classList.remove("frm_error_style","frm_message","frm_updated_message")},1e4),e.querySelector(".frm-admin-page-dashboard")&&setTimeout(function(){t.location.reload()},1e3))},showAuthorized:function(t){var n=t?"unauthorized":"authorized",r=t?"authorized":"unauthorized",o=e.querySelectorAll(".frm_".concat(n,"_box"));o.length&&o.forEach(function(e){e.className=e.className.replace("frm_".concat(n,"_box"),"frm_".concat(r,"_box"))})},showInlineSuccess:function(){var t=e.querySelectorAll(".frm-confirm-msg [data-success]");t.length&&t.forEach(function(e){e.innerHTML=frmAdminBuild.purifyHtml(e.getAttribute("data-success"))})},reauthorize:function(){return this.innerHTML='',n.ajax({type:"POST",url:ajaxurl,dataType:"json",data:{action:"frm_reset_cache",plugin:"formidable_pro",nonce:frmGlobal.nonce},success:function(e){r.reset.textContent=e.message,"1"===r.reset.getAttribute("data-refresh")&&t.location.reload()}}),!1},deauthorize:function(){if(!confirm(frmGlobal.deauthorize))return!1;var t=this.getAttribute("data-plugin"),r=e.getElementById("edd_".concat(t,"_license_key")),i=r.value,a=this;return this.innerHTML='',n.ajax({type:"POST",url:ajaxurl,data:{action:"frm_addon_deactivate",license:i,plugin:t,nonce:frmGlobal.nonce},success:function(){o.showAuthorized(!1),r.value="",a.replaceWith("Disconnected"),wp.hooks.doAction("frmAdmin.afterLicenseDeauthorizeSuccess",{})}}),!1}};return o}(document,window,jQuery),window.frmAdminBuildJS=function(){var e,t,i=frm_admin_js,l=frmDom,s=l.tag,c=l.div,d=l.span,u=l.a,f=l.svg,m=l.img,_=frmDom.util.onClickPreventDefault,p=frmDom.ajax.doJsonPost;i.contextualShortcodes=(t=null===(e=document.getElementById("frm_adv_info"))||void 0===e?void 0:e.dataset.contextualShortcodes)?((t=JSON.parse(t)).addressSelector="[id^=email_to], [id^=from_], [id^=cc], [id^=bcc]",t.bodySelector="[id^=email_message_]",t):[];var g,y,v,h={save:f({href:"#frm_save_icon"}),drag:f({href:"#frm_drag_icon",classList:["frm_drag_icon","frm-drag"]})},b=jQuery(document.getElementById("frm-show-fields")),j=document.getElementById("new_fields"),w=document.getElementById("form_id"),Q=!1,x=0,E=0,k=0,A={},S=0,L=wp.i18n,I=L.__,B=L.sprintf,q={dragging:!1};null!==w&&(E=w.value);var C,N=new URL(window.location.href),T=N.searchParams,O=document.getElementById("frm_builder_page");function F(e){e.stopPropagation(),e.preventDefault(),D(this)}function D(e){var t=e.getAttribute("data-frmverify"),n=e.getAttribute("data-loaded-from");return null===t||"frm-confirmed-click"===e.id||("entries-list"===n?wp.hooks.applyFilters("frm_on_multiple_entries_delete",{link:e,initModal:Bi}):function(e){var t=Bi("#frm_confirm_modal","400px"),n=document.getElementById("frm-confirmed-click");if(!1===t)return!1;n&&(n.style.display="block");var r=e.getAttribute("data-frmverify"),o=r?e.getAttribute("data-frmverify-btn"):"",i=jQuery(".frm-confirm-msg");i.empty(),r&&(i.append(document.createTextNode(r)),o&&(null==n||n.classList.add(o)));var a=e.dataset;if(n){for(var l in n.dataset)n.removeAttribute("data-".concat(l));for(var s in a)"frmverify"!==s&&n.setAttribute("data-".concat(s),a[s])}return wp.hooks.doAction("frmAdmin.beforeOpenConfirmModal",{$info:t,link:e}),t.dialog("open"),null==n||n.setAttribute("href",e.getAttribute("href")||e.getAttribute("data-href")),!1}(e))}function M(e){var t=Bi("#frm_info_modal","400px");return!1===t||(jQuery(".frm-info-msg").html(e),t.dialog("open")),!1}function P(e){var t=this.getAttribute("data-frmtoggle"),n=this.getAttribute("data-toggletext"),r=jQuery(t);return e.preventDefault(),r.toggle(),null!==n&&""!==n&&(this.setAttribute("data-toggletext",this.innerHTML),this.textContent=n),!1}function z(e){var t=this.getAttribute("data-frmhide"),n=this.getAttribute("data-frmshow"),r=this.getAttribute("data-frmuncheck"),o=r?r.split(","):[];"INPUT"!==this.nodeName||"checkbox"!==this.type||this.checked||(null!==t?(n=t,t=null):null!==n&&(t=n,n=null)),e.preventDefault();var i=this.getAttribute("data-toggleclass")||"frm_hidden";null!==t&&jQuery(t).addClass(i),null!==n&&jQuery(n).removeClass(i);var a=this.parentNode.querySelectorAll("a.current");if(null!==a){for(var l=0;l1&&(e="",t=""):0===o.indexOf("frm_postmeta_")&&(jQuery("#frm_postmeta_rows .frm_postmeta_row").length<2&&(e=".frm_add_postmeta_row.button"),jQuery(".frm_toggle_cf_opts").length&&jQuery("#frm_postmeta_rows .frm_postmeta_row:not(#".concat(o,")")).last().length&&(""!==e&&(e+=","),e+="#".concat(jQuery("#frm_postmeta_rows .frm_postmeta_row:not(#".concat(o,")")).last().attr("id")," .frm_toggle_cf_opts")));var i=document.getElementById(o),a=jQuery(i);return a.fadeOut(300,function(){var n;a.remove(),Po(),""!==t&&jQuery(t).hide(),""!==e&&jQuery("".concat(e," a,").concat(e)).removeClass("frm_hidden").fadeIn("slow"),this.closest(".frm_form_action_settings")&&function(e){so(e);var t={type:e};wp.hooks.doAction("frm_after_action_removed",t)}(this.closest(".frm_form_action_settings").querySelector(".frm_action_name").value),null===(n=document.querySelector(".tooltip"))||void 0===n||n.remove()}),void 0!==n&&(n=jQuery(n)).fadeOut(400,function(){n.remove()}),""!==e&&jQuery(this).closest(".frm_logic_rows").fadeOut("slow"),wp.hooks.doAction("frm_admin_tag_removed",o,i),!1}}function G(e,t){void 0===t&&(t=this),Ze(t,!1);var n=jQuery(t).closest(".frm_form_action_settings"),r=e.target;if(n.length&&void 0!==r){var o=r.parentElement.className;if("string"==typeof o&&(o.includes("frm_email_icons")||o.includes("frm_toggle")))return void e.stopPropagation()}var i=n.children(".widget-inside");if(n.length&&i.find("p, div, table").length<1){var a=n.find('input[name$="[ID]"]').val(),l=n.find('input[name$="[post_excerpt]"]').val();l&&(i.html(''),n.find(".spinner").fadeIn("slow"),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_form_action_fill",action_id:a,action_type:l,nonce:frmGlobal.nonce},success:function(e){i.html(e),ci(),Xr("#".concat(n.attr("id"))),yi(i),jQuery(t).trigger("frm-action-loaded"),wp.hooks.doAction("frm_filled_form_action",i)}}))}jQuery(t).closest(".frm_field_box").siblings().find(".widget-inside").slideUp("fast"),void 0!==t.className&&t.className.includes("widget-action")||jQuery(t).closest(".start_divider").length<1||((i=jQuery(t).closest("div.widget").children(".widget-inside")).is(":hidden")?i.slideDown("fast"):i.slideUp("fast"))}function U(){var e=this.getAttribute("href");if(void 0===e)return!1;var t=e.replace("#","."),n=jQuery(this);n.closest("li").addClass("frm-tabs active").siblings("li").removeClass("frm-tabs active starttab"),n.closest("div").children(".tabs-panel").not(e).not(t).hide();var r=document.getElementById(e.replace("#",""));return r&&(r.style.display="block"),"frm_insert_fields_tab"!==this.id||this.closest("#frm_adv_info")||$e(),!1}function W(e,t){var n=(e=jQuery(e)).attr("href");if(void 0!==n){var r,o,i=n.replace("#",".");if(e.closest("li").addClass("frm-tabs active").siblings("li").removeClass("frm-tabs active starttab"),e.closest("div").find(".tabs-panel").length)e.closest("div").children(".tabs-panel").not(n).not(i).hide();else if(null!==document.getElementById("form_global_settings")){var a=e.data("frmajax");e.closest(".frm_wrap").find(".tabs-panel, .hide_with_tabs").hide(),void 0!==a&&"1"==a&&(r=n.replace("#",""),(o=jQuery(".frm_".concat(r,"_ajax"))).length&&jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_settings_tab",tab:r.replace("_settings",""),nonce:frmGlobal.nonce},success:function(e){o.replaceWith(e)}}))}else jQuery("#frm-categorydiv .tabs-panel, .hide_with_tabs").hide();jQuery(n).show(),jQuery(i).show(),$o(),"auto"!==t&&(jQuery(".frm_updated_message").hide(),jQuery(".frm_warning_style").hide()),jQuery(e).closest("#frm_adv_info").length||(jQuery(".frm_form_settings").length?jQuery(".frm_form_settings").attr("action","?page=formidable&frm_action=settings&id=".concat(jQuery('.frm_form_settings input[name="id"]').val(),"&t=").concat(n.replace("#",""))):jQuery(".frm_settings_form").attr("action","?page=formidable-settings&t=".concat(n.replace("#",""))))}}function V(e){var t,n;document.querySelectorAll(e).forEach(function(e){$(e),Array.from(e.children).forEach(function(e){return X(e,".frm-move")});var t=jQuery(e).children('[data-type="divider"]').children(".divider_section_only");t.length&&$(t)}),t=jQuery("#frm_builder_page"),n={items:".frm_sortable_field_opts li",axis:"y",opacity:.65,forcePlaceholderSize:!1,handle:".frm-drag",helper:function(e,t){return Q=t.clone().insertAfter(t),t.clone()},stop:function(e,t){Q&&Q.remove(),ir(t.item.attr("id").replace("frm_delete_field_","").replace("-".concat(t.item.data("optkey"),"_container"),"")),Po()}},jQuery(t).sortable(n)}function $(e){jQuery(e).droppable({accept:".frmbutton, li.frm_field_box",deactivate:ne,over:K,out:J,tolerance:"pointer"})}function K(e,t){var n=function(e){return e.classList.contains("divider_section_only")&&(e=jQuery(e).nextAll(".start_divider.frm_sorting").get(0)),e}(e.target);if(!je(t.draggable[0],n,e))return n.classList.remove("frm-over-droppable"),void jQuery(n).parents("ul.frm_sorting").addClass("frm-over-droppable");document.querySelectorAll(".frm-over-droppable").forEach(function(e){return e.classList.remove("frm-over-droppable")}),n.classList.add("frm-over-droppable"),jQuery(n).parents("ul.frm_sorting").addClass("frm-over-droppable")}function J(e){e.target.classList.remove("frm-over-droppable")}function X(e,t){var n={helper:Y,revert:"invalid",delay:10,start:Z,stop:ee,drag:te,cursor:"grabbing",refreshPositions:!0,cursorAt:{top:0,left:90}};"string"==typeof t&&(n.handle=t),jQuery(e).draggable(n)}function Y(e){var t,n=e.delegateTarget;if(Qe(n)){var r=document.getElementById("frm-insert-fields").querySelector(".frm_ttext").cloneNode(!0);return r.querySelector("use").setAttributeNS("http://www.w3.org/1999/xlink","href","#frm_field_group_layout_icon"),r.querySelector("span").textContent=I("Field Group","formidable"),r.classList.add("frm_field_box"),r.classList.add("ui-sortable-helper"),r}if(n.classList.contains("frmbutton"))return(t=n.cloneNode(!0)).classList.add("ui-sortable-helper"),n.classList.add("frm-new-field"),t;if(n.hasAttribute("data-ftype")){var o=n.getAttribute("data-ftype");if(t=document.getElementById("frm-insert-fields").querySelector(".frm_t".concat(o)))return(t=t.cloneNode(!0)).classList.add("form-field"),t.classList.add("ui-sortable-helper"),t.cloneNode(!0)}return c({className:"frmbutton"})}function Z(e,t){if(e.target.classList.contains("frm_at_limit"))return Se(),!1;q.dragging=!0;var n,r=y;r.classList.add("frm-dragging-field"),document.body.classList.add("frm-dragging"),t.helper.addClass("frm-sortable-helper"),t.helper.initialOffset=r.scrollTop,e.target.classList.add("frm-drag-fade"),vn(),(n=document.querySelectorAll("ul.start_divider")).length&&n.forEach(function(e){[].slice.call(e.children).forEach(function(e){(0===e.children.length||1===e.children.length&&"ul"===e.firstElementChild.nodeName.toLowerCase()&&0===e.firstElementChild.children.length)&&e.remove()})}),Fe(),Ne(),H()}function ee(){y.classList.remove("frm-dragging-field"),document.body.classList.remove("frm-dragging");var e=document.querySelector(".frm-drag-fade");e&&e.classList.remove("frm-drag-fade")}function te(e,t){!function(e){v.scrollTop(function(t,n){var r=e.clientY,o=y.offsetHeight,i=e.clientY-y.offsetTop,a=i-o/2;return i>o-50&&r>5?n+.1*a:i<70&&r<130?n-Math.abs(.1*a):n})}(e);var n=e.target,r=function(){for(var e=document.getElementById("frm-show-fields");e.querySelector(".frm-over-droppable");)e=e.querySelector(".frm-over-droppable");return"frm-show-fields"!==e.id||e.classList.contains("frm-over-droppable")||(e=!1),e}(),o=document.getElementById("frm_drag_placeholder");if(je(n,r,e)){o||(o=s("li",{id:"frm_drag_placeholder",className:"sortable-placeholder"}));var i,a=t.helper.get(0);if((a.classList.contains("form-field")||a.classList.contains("frm_field_box"))&&(a.style.transform="translateY(".concat((i=t.helper,y.scrollTop-i.initialOffset),"px)")),"frm-show-fields"===r.id||r.classList.contains("start_divider"))return o.style.left=0,void function(e){var t,n=e.y,r=e.placeholder,o=jQuery(e.droppable),i=o.children().not(".edit_field_type_end_divider");if(0===i.length)o.prepend(r),t=0;else{var a=re(o,n);if(a===i.length){var l=jQuery(i.get(a-1));t=l.offset().top+l.outerHeight(),o.append(r);var s=o.children(".edit_field_type_end_divider");s.length&&o.append(s)}else t=jQuery(i.get(a)).offset().top,jQuery(i.get(a)).before(r)}t-=o.offset().top,r.style.top="".concat(t,"px")}({droppable:r,y:e.clientY,placeholder:o});o.style.top="",function(e){var t,n=e.x,r=e.placeholder,o=jQuery(e.droppable),i=ie(o);if(i.length){var a=function(e,t){var n,r,o,i,a=ie(e);for(i=0,n=a.length-1;n>=0;--n)if(r=a.get(n),t>(o=jQuery(r).offset().left)){i=n,t>o+jQuery(r).outerWidth()/2&&(i=n+1);break}return i}(o,n);if(a===i.length){var l=jQuery(i.get(a-1));t=l.offset().left+l.outerWidth(),o.append(r)}else t=jQuery(i.get(a)).offset().left,jQuery(i.get(a)).before(r),t-=0===a?4:8;t-=o.offset().left,r.style.left="".concat(t,"px")}}({droppable:r,x:e.clientX,placeholder:o})}else o&&o.remove()}function ne(e,t){if(q.dragging){q.dragging=!1;var n=t.draggable[0],r=document.getElementById("frm_drag_placeholder");if(!r)return t.helper.remove(),void g();!function(e){if(e.previousElementSibling&&e.previousElementSibling.classList.contains("frm-is-collapsed")){var t=jQuery(e).prevUntil('[data-type="break"]');if(t.length){var n=t.find(".frm-collapse-page").get(0);n&&n.click()}}}(r);var o=t.helper.parent(),i=t.helper.get(0).closest("ul.start_divider"),a=r.closest("ul.start_divider");n.classList.contains("frm-new-field")?function(e){if(pe(e))wp.hooks.doAction("frm_stopped_inserting_by_dragging",e);else{var t=document.getElementById("frm_drag_placeholder"),n="".concat(e.replace("|","-"),"_").concat(be()),r=s("li",{id:n,className:"frm-wait frmbutton_loadingnow"}),o=jQuery(r),i=de(jQuery(t)),a=ue(i),l=fe(i);t.parentNode.insertBefore(r,t),t.remove(),ae(o);var c=0;"summary"===e&&(c=jQuery(".frmbutton_loadingnow#".concat(n)).prevAll('li[data-type="break"]').length?1:0),jQuery.ajax({type:"POST",url:ajaxurl,data:_e(e,l,a,c),success:function(t){ge(t,o);var n=ye(t);n&&wp.hooks.doAction("frm_after_field_added_in_form_builder",{field:t,fieldId:n,fieldType:e,form_id:a})},error:he})}}(n.id):(function(e,t){t.parentNode.insertBefore(e,t)}(n,r),function(e){if("UL"===e.nodeName&&!e.classList.contains("start_divider")&&"frm-show-fields"!==e.id){var t=e.closest("li");t&&!t.classList.contains("ui-draggable")&&X(t,".frm-move")}}(r.parentElement));var l=i?parseInt(i.closest(".edit_field_type_divider").getAttribute("data-fid")):0,c=a?parseInt(a.closest(".edit_field_type_divider").getAttribute("data-fid")):0;r.remove(),t.helper.remove();var d=o.length?ie(o):[];!function(e,t){var n;e.length&&(t.length?ae(t.first()):(n=e.get(0).closest("li.frm_field_box"))&&!n.classList.contains("edit_field_type_divider")&&n.remove())}(o,d),function(e,t){0===t.length&&1===ie(jQuery(e.parentNode)).length||ae(jQuery(e))}(n,d),l!==c&&me(jQuery(n),i),g()}}function re(e,t){var n,r,o,i,a=e.children().not(".edit_field_type_end_divider"),l=a.length;if(!document.querySelector(".frm-has-fields .frm_no_fields"))return 0;for(i=0,n=l-1;n>=0;--n)if(r=a.get(n),t>(o=jQuery(r).offset().top)){i=n,t>o+jQuery(r).outerHeight()/2&&(i=n+1);break}return i}function oe(){document.querySelectorAll("ul#frm-show-fields, ul.start_divider").forEach(function(e){e.childNodes.forEach(function(e){void 0!==e.classList&&(e.classList.contains("edit_field_type_end_divider")||void 0!==e.classList&&e.classList.contains("form-field")&&Ue(e))})}),kr(),document.querySelectorAll(".edit_field_type_end_divider").forEach(function(e){return e.parentNode.append(e)}),document.querySelectorAll("li.form_field_box:not(.form-field)").forEach(function(e){return!e.children.length&&e.remove()}),Er();var e=new Event("frm_sync_after_drag_and_drop",{bubbles:!1});document.dispatchEvent(e)}function ie(e){var t=jQuery(),n=e.get(0);return n.children?(Array.from(n.children).forEach(function(e){if("none"!==e.style.display){var n=e.classList;!n.contains("form-field")||n.contains("edit_field_type_end_divider")||n.contains("frm-sortable-helper")||(t=t.add(e))}}),t):t}function ae(e,t){var n;void 0===t&&(t="even");var r=e.parent().children("li.form-field, li.frmbutton_loadingnow").not(".edit_field_type_end_divider"),o=r.length,i=["frm_full","frm_half","frm_third","frm_fourth","frm_sixth","frm_two_thirds","frm_three_fourths","frm1","frm2","frm3","frm4","frm5","frm6","frm7","frm8","frm9","frm10","frm11","frm12"];"even"===t&&5!==o?r.each(ce(i,$t(o))):"clear"===t?r.each(ce(i,"")):(n=["left","right","middle","even"].includes(t)?function(e){return Vt(o,t,e)}:function(e){return sn(t[e])},r.each(ce(i,n))),le(e.parent(),r.length)}function le(e,t){if(void 0!==e.offset()){var n=t>=2,r=document.getElementById("frm_field_group_controls");if(null===r){if(!n)return;(r=c()).id="frm_field_group_controls",r.setAttribute("role","group"),r.setAttribute("tabindex",0),function(e){var t=document.createElement("span");t.innerHTML='';var n=I("Set Row Layout","formidable");se(t,n),Ht(t,n);var r=document.createElement("span");r.innerHTML='',r.classList.add("frm-move");var o=I("Move Field Group","formidable");se(r,o),Ht(r,o),e.innerHTML="",e.append(t),e.append(r),e.append(function(){var e=d({className:"dropdown"}),t=u({className:"frm_bstooltip frm-hover-icon frm-dropdown-toggle dropdown-toggle",children:[d({child:f({href:"#frm_thick_more_vert_icon"})}),d({className:"screen-reader-text",text:I("Toggle More Options Dropdown","formidable")})]});frmDom.setAttributes(t,{title:I("More Options","formidable"),"data-bs-toggle":"dropdown","data-bs-container":"body","data-bs-display":"static"}),Ht(t,I("More Options","formidable")),e.append(t);var n=c({className:"frm-dropdown-menu dropdown-menu dropdown-menu-right"});return n.setAttribute("role","menu"),e.append(n),e}())}(r),O.append(r)}e.append(r),r.style.display=n?"block":"none"}}function se(e,t){e.setAttribute("data-bs-toggle","tooltip"),e.setAttribute("data-bs-container","body"),e.setAttribute("title",t),e.addEventListener("mouseover",function(){null===e.getAttribute("data-original-title")&&jQuery(e).tooltip()})}function ce(e,t){return function(n){for(var r="function"==typeof t?t(n):t,o=e.length,i=!1,a=0;a0&&document.getElementById("form_id").value!==n||(o.last_row_field_ids=function(){var e=document.querySelector(".edit_field_type_submit");if(!e)return[];for(var t=e.parentNode.children,n=[],r=0;rt.childElementCount-1:i<=jQuery(t.querySelector(".edit_field_type_submit").closest("#frm-show-fields > li")).index()}if(r)return!(t.classList.contains("start_divider")||!we(t.parentElement)&&(!we(t.parentElement.nextElementSibling)||e.parentElement.querySelector("li.frm_field_box:not(.edit_field_type_submit)")));var a=t.classList.contains("start_divider")&&null!==t.closest(".repeat_section"),l=null!==t.closest(".repeat_section");if(a||l){if(e.classList.contains("edit_field_type_gdpr")||"gdpr"===e.id)return!1;if(wp.hooks.applyFilters("frm_deny_drop_in_repeater",!1,e))return!1}if(!a){if(!function(e,t){if(e.length<12)return!0;if(e.length>12)return!1;var n=t.attr("data-fid");return 1===jQuery(e).filter('[data-fid="'.concat(n,'"]')).length}(ie(jQuery(t)),jQuery(e)))return!1;if("divider"===e.id&&t.closest(".start_divider"))return!1}return e.classList.contains("frm-new-field")?function(e,t){var n=e.classList,r=n.contains("frm_tbreak"),o=n.contains("frm_thidden"),i=n.contains("frm_tdivider"),a=n.contains("frm_tform"),l=n.contains("frm_tuser_id");return"frm-show-fields"===t.id||t.classList.contains("start_divider")?!(r||o||i||a)||(!(t.classList.contains("start_divider")||null!==t.closest(".start_divider"))||!a&&!i):!(xe(t)||o||r||l)}(e,t):function(e,t){if(Qe(e))return function(e,t){return!(!t.classList.contains("start_divider")||null!==e.querySelector(".start_divider"))}(e,t);if(e.classList.contains("edit_field_type_break"))return!1;if(t.classList.contains("start_divider"))return function(e){return!e.classList.contains("edit_field_type_form")&&!e.querySelector(".edit_field_type_form")&&!(e.classList.contains("edit_field_type_divider")||e.querySelector(".edit_field_type_divider"))}(e);var n=e.classList.contains("edit_field_type_hidden"),r=e.classList.contains("edit_field_type_user_id");return!n&&!r&&function(e,t){if(xe(t))return!1;if(jQuery(e).children("ul.frm_sorting").not(".start_divider").length>0)return!1;var n=e.classList.contains("edit_field_type_divider")||e.querySelector(".edit_field_type_divider"),r=e.classList.contains("edit_field_type_form");return null===t.closest(".start_divider")||!n&&!r}(e,t)}(e,t)}function we(e){return e&&e.matches("#frm-show-fields > li:last-child")}function Qe(e){return e.classList.contains("frm_field_box")&&!e.classList.contains("form-field")}function xe(e){return null!==e.querySelector(".edit_field_type_break, .edit_field_type_hidden, .edit_field_type_user_id")}function Ee(e){var t=document.getElementById(e),n=jQuery(t),r=[],o=function(e){var t=e.querySelector(".frm_hidden_fdata");e.classList.add("frm_load_now"),null!==t&&r.push(t.innerHTML)};o(t);for(var i=ke(t);i&&r.length<15;)o(i),i=ke(i);jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_load_field",field:r,form_id:E,nonce:frmGlobal.nonce},success:function(e){return function(e,t,n){var r,o;if(0===(e=e.replace(/^\s+|\s+$/g,"")).indexOf("{")){for(r in e=JSON.parse(e)){jQuery("#frm_field_id_".concat(r)).replaceWith(e[r]);var i=document.getElementById("frm_field_id_".concat(r));i&&(i.querySelectorAll("[data-toggle]").forEach(function(e){return e.setAttribute("data-bs-toggle",e.getAttribute("data-toggle"))}),i.querySelectorAll(".frm-dropdown-menu").forEach(function(e){return e.classList.add("dropdown-menu")})),V("#frm_field_id_".concat(r,".edit_field_type_divider ul.frm_sorting")),X(document.getElementById("frm_field_id_".concat(r)))}((o=t.nextAll(".frm_field_loading:not(.frm_load_now)")).length||(o=jQuery(document.getElementById("frm-show-fields")).find(".frm_field_loading:not(.frm_load_now)")).length)&&Ee(o.attr("id")),ci(),Dn(),Ie();var a=new Event("frm_ajax_loaded_field",{bubbles:!1});a.frmFields=n.map(function(e){return JSON.parse(e)}),document.dispatchEvent(a)}else jQuery(".frm_load_now").removeClass(".frm_load_now").html("Error")}(e,n,r)}})}function ke(e){var t;return e.nextElementSibling?e.nextElementSibling:null===(t=e.parentNode)||void 0===t||null===(t=t.closest(".frm_field_box"))||void 0===t||null===(t=t.nextElementSibling)||void 0===t?void 0:t.querySelector(".form-field")}function Ae(){var e=jQuery(this);if(e.hasClass("disabled"))return!1;var t=e.closest(".frmbutton"),n=t.attr("id");if(t.hasClass("frm_at_limit"))return Se(),!1;if(!pe(n)){var r=0;"summary"===n&&(r=b.children('li[data-type="break"]').length>0?1:0);var o=E;return jQuery.ajax({type:"POST",url:ajaxurl,data:_e(n,0,o,r),success:function(e){Le(e);var t=ye(e);t&&wp.hooks.doAction("frm_after_field_added_in_form_builder",{field:e,fieldId:t,fieldType:n,form_id:o})},error:he}),!1}}function Se(){var e=document.querySelector(".frm_wrap");if(e){var t=document.createElement("a");t.setAttribute("data-frmverify",I("This field type has reached its limit.","formidable")),e.append(t),t.click(),t.remove();var n=document.getElementById("frm-confirmed-click");n&&(n.style.display="none")}}function Le(e){document.getElementById("frm_form_editor_container").classList.add("frm-has-fields");var t=Ge(e),n=b[0].querySelector(".edit_field_type_submit");n?jQuery(n.closest(".frm_field_box:not(.form-field)")).before(t):b.append(t),We(e,!0),t.each(function(){$(this.querySelector("ul.frm_sorting")),X(this.querySelector(".form-field"),".frm-move")})}function Ie(){var e=!0,t=document.querySelectorAll(".frmjs_prod_field_opt_cont");b.find("li.edit_field_type_product").length>1&&(e=!1);for(var n=0;n'),o.append(document.createTextNode(" ")),o.append(i),r.append(o),e.append(r)})}(t,!0===e);var n=jQuery(t);n.offset().left>jQuery(window).width()-n.outerWidth()?t.style.left="".concat(-n.outerWidth(),"px"):y&&n.offset().left").addClass("frm_field_box").html(jQuery("
          ").addClass("frm_grid_container frm_sorting").append(e)))}),n}function Ue(e){var t=s("ul",{className:"frm_grid_container frm_sorting"}),n=s("li",{className:"frm_field_box",child:t});e.replaceWith(n),t.append(e),$(t),X(n,".frm-move")}function We(e,t){var n,r,o=/id="(\S+)"/.exec(e),i=document.getElementById(o[1]),l="#".concat(o[1],".edit_field_type_divider ul.frm_sorting.start_divider"),s=jQuery(l),d=i.getAttribute("data-type");n=e,(r=c()).innerHTML=n,r.querySelectorAll(".form-field").forEach(Ve);var u,f,m=!1;if(Po(),V(l),"quantity"===d&&function(e){var t=e.getAttribute("data-fid"),n=document.getElementById("field_options[product_field_".concat(t,"]"));null!==n&&(nt(n),oo(document.getElementById("frm-single-settings-".concat(t))))}(i),"product"!==d&&"quantity"!==d||Ie(),s.length)s.parent(".frm_field_box").children(".frm_no_section_fields").addClass("frm_block");else{var _=jQuery(i).closest("ul.frm_sorting.start_divider");_.length&&(Ar(_),m=!0)}e.includes("frm-collapse-page")&&Dn(),f="frm-newly-added",(u=i).classList?u.classList.add(f):u.className+=" ".concat(f),setTimeout(function(){i.classList.remove("frm-newly-added")},1e3);var p,g=i.querySelector("#frm-last-row-fields-order");if(g&&((p=JSON.parse(g.value))&&"object"===a(p)&&Object.keys(p).forEach(function(e){var t=document.querySelector('input[name="field_options[field_order_'.concat(e,']"]'));t&&(t.value=p[e])})),t){var y=i.getBoundingClientRect(),v=document.getElementById("post-body-content");y.top>=0&&y.left>=0&&y.right<=(window.innerWidth||document.documentElement.clientWidth)&&y.bottom<=(window.innerHeight||document.documentElement.clientHeight)||v.scroll({top:v.scrollHeight,left:0,behavior:"smooth"}),!1===m&&Ar(s)}Ke(),ci(),document.getElementById("frm-show-fields").classList.remove("frm-over-droppable"),function(e){var t=document.getElementById(e);null!=t&&t.dataset.limit&&An(e)>=t.dataset.limit&&t.classList.add("frm_at_limit")}(d),i.querySelectorAll("[data-toggle]").forEach(function(e){return e.setAttribute("data-bs-toggle",e.getAttribute("data-toggle"))}),i.querySelectorAll(".frm-dropdown-menu").forEach(function(e){return e.classList.add("dropdown-menu")});var h=new Event("frm_added_field",{bubbles:!1});h.frmField=i,h.frmSection=l,h.frmType=d,h.frmToggles=m,document.dispatchEvent(h)}function Ve(e){if(e.dataset.fid){var t=document.getElementById("draft_fields");t&&(""===t.value?t.value=e.dataset.fid:t.value.split(",").includes(e.dataset.fid)||(t.value+=",".concat(e.dataset.fid)))}}function $e(e){jQuery("#new_fields .frm-single-settings").addClass("frm_hidden"),jQuery("#frm-options-panel > .frm-single-settings").removeClass("frm_hidden"),Ke(e)}function Ke(e){jQuery("li.ui-state-default.selected").removeClass("selected"),jQuery(".frm-show-field-settings.selected").removeClass("selected"),e||vn()}function Je(){var e=this.value,t=function(e){var t,n=[],r=e.split(""),o=r.length,a=["{","[","("],l={"}":"{",")":"(","]":"["},s=!1;for(t=0;t0||s?"".concat(i.unmatched_parens,"\n\n"):""}(e);t+=function(e,t){var n=function(e,t){var n="";return function(e){return jQuery(e).siblings('label[for^="calc_type"]').children("input").prop("checked")}(t)||/\[(date|time|email|ip)\]/.test(e)&&(n="".concat(i.text_shortcodes,"\n\n")),n}(e,t);return n+=function(e){var t="";return/\[id\]|\[key\]|\[if\s\w+\]|\[foreach\s\w+\]|\[created-at(\s*)?/g.test(e)&&(t+="".concat(i.view_shortcodes,"\n\n")),t}(e)}(e,this),""!==t&&M("".concat(e,"\n\n").concat(t))}function Xe(e,t){for(var n=!1,r=0;r").concat(l[t].fieldName,""))):(n=n?" checked":"",o.push('"));e.innerHTML=o.join("")}function rt(){for(var e=document.querySelectorAll(".frmjs_prod_field_opt"),t=0;t'):(d.innerHTML=_r(c),"TEXTAREA"===d.nodeName&&d.classList.contains("wp-editor-area")&&jQuery(d).trigger("change"),d.classList.contains("frm_primary_label")&&"break"===d.nextElementSibling.getAttribute("data-ftype")&&(d.nextElementSibling.querySelector(".frm_button_submit").textContent=c)))}function at(e){var t=parseFloat(e.getAttribute("max")),n=parseFloat(e.getAttribute("min"));return(t-n)/2+n}function lt(){var e=this.getAttribute("data-fid"),t="";["field_options_max_","frm_format_"].forEach(function(n){var r=document.getElementById(n+e);r&&(t+=r.value)});var n=document.getElementsByName("field_options[type_".concat(e,"]"))[0];"text"===n.options[n.selectedIndex].value&&ct(""!==t,".frm_invalid_msg".concat(e))}function st(){var e=this.id.replace("frm_","").replace("req_field_",""),t=this.checked,n=jQuery("#field_label_".concat(e," .frm_required"));if(ct(t,".frm_required_details".concat(e)),t){var r=jQuery('input[name="field_options[required_indicator_'.concat(e,']"]'));""===r.val()&&r.val("*"),n.removeClass("frm_hidden")}else n.addClass("frm_hidden")}function ct(e,t){var n=jQuery(t);if(e)n.fadeIn("fast").closest(".frm_validation_msg").fadeIn("fast");else{var r=n.fadeOut("fast").closest(".frm_validation_box"),o=r.css("display","block").children(":not(".concat(t,"):visible")).length;r.css("display",""),0===o&&n.closest(".frm_validation_msg").fadeOut("fast")}}function dt(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=jQuery(".frm_unique_details".concat(e));if(this.checked){t.fadeIn("fast").closest(".frm_validation_msg").fadeIn("fast");var n=jQuery(".frm_unique_details".concat(e," input"));""===n.val()&&n.val(i.default_unique)}else{var r=t.fadeOut("fast").closest(".frm_validation_box"),o=r.css("display","block").children(":not(.frm_unique_details".concat(e,"):visible")).length;r.css("display",""),0===o&&t.closest(".frm_validation_msg").fadeOut("fast")}}function ut(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=jQuery(this).val(),n=jQuery(document.getElementById("frm_field_id_".concat(e)));if(ct(""!==t,".frm_conf_details".concat(e)),""!==t){var r=jQuery(".frm_validation_box .frm_conf_details".concat(e," input"));""===r.val()&&r.val(i.default_conf),function(e){var t=document.getElementsByName("field_options[type_".concat(e,"]"))[0].value;ft(document.getElementById("field_description_".concat(e)),"field_options[description_".concat(e,"]"),i["enter_".concat(t)]),ft(document.getElementById("conf_field_description_".concat(e)),"field_options[conf_desc_".concat(e,"]"),i["confirm_".concat(t)])}(e),"inline"===t?n.removeClass("frm_conf_below").addClass("frm_conf_inline"):"below"===t&&n.removeClass("frm_conf_inline").addClass("frm_conf_below"),jQuery(".frm-conf-box-".concat(e)).removeClass("frm_hidden")}else jQuery(".frm-conf-box-".concat(e)).addClass("frm_hidden"),setTimeout(function(){n.removeClass("frm_conf_inline frm_conf_below")},200)}function ft(e,t,n){e.innerHTML===i.desc&&(e.innerHTML=n,document.getElementsByName(t)[0].value=n)}function mt(e){var t=JSON.parse(this.getAttribute("data-opts"));return e.preventDefault(),document.getElementById("frm_bulk_options").value=t.join("\n"),!1}function _t(){var e,t,n,r=jQuery(this).closest(".frm-single-settings").data("fid"),o=jQuery("#frm_field_".concat(r,"_opts .frm_option_template")).prop("outerHTML"),i=jQuery(this).data("opttype"),a=0,l="000",s=function(e){for(var t=0,n=0,r=jQuery("#frm_field_".concat(e,"_opts li")),o=0;to||"000"===o)&&(o=n)}return o}(r);if(s!==l&&(a=s+1),"other"===i){document.getElementById("other_input_".concat(r)).value=1;var c=jQuery(this).data("ftype");"radio"!==c&&"select"!==c||jQuery(this).fadeOut("slow");var d={action:"frm_add_field_option",field_id:r,opt_key:a,opt_type:i,nonce:frmGlobal.nonce};jQuery.post(ajaxurl,d,function(e){jQuery(document.getElementById("frm_field_".concat(r,"_opts"))).append(e),ir(r)})}else{o=(o=(o=(o=(o=o.replace(new RegExp('optkey="'.concat(l,'"'),"g"),'optkey="'.concat(a,'"'))).replace(new RegExp("-".concat(l,"_"),"g"),"-".concat(a,"_"))).replace(new RegExp("-".concat(l,'"'),"g"),"-".concat(a,'"'))).replace(new RegExp("\\[".concat(l,"\\]"),"g"),"[".concat(a,"]"))).replace("frm_hidden frm_option_template",""),Di(r,o={newOption:o});var u=this.closest(".frm_single_option");u?u.after(o.newOption):jQuery("#frm_field_".concat(r,"_opts")).append(o.newOption),ir(r)}null==(n=(e=this).classList.contains("frm-add-option-legacy")?null===(t=e.closest(".frm-collapse-me"))||void 0===t?void 0:t.querySelector(".frm_sortable_field_opts"):e.closest(".frm_sortable_field_opts"))||n.querySelectorAll(".frm_remove_tag.frm_disabled").forEach(function(e){return e.classList.remove("frm_disabled")}),Po()}function pt(){gt(jQuery(this).closest(".frm-single-settings").data("fid"),this.value)}function gt(e,t){var n=jQuery(".frm_multiple_cont_".concat(e));"select"===t?n.fadeIn("fast"):n.fadeOut("fast")}function yt(){var e=jQuery(this).closest(".frm-single-settings").data("fid");qi(jQuery(".field_".concat(e,"_option_key"))),jQuery(".field_".concat(e,"_option")).toggleClass("frm_with_key")}function vt(){var e=jQuery(this).closest(".frm-single-settings"),t=e.data("fid"),n=document.getElementById("frm_field_id_".concat(t));wt(jQuery(this)),qi(jQuery(".field_".concat(t,"_image_id"))),qi(jQuery(".frm_toggle_image_options_".concat(t))),qi(jQuery(".frm_image_size_".concat(t))),qi(jQuery(".frm_alignment_".concat(t))),qi(jQuery(".frm-add-other#frm_add_field_".concat(t)));var r=vr(t);r?(bt(t,"inline"),ht(n),imageSize=or(t),n.classList.add("frm_image_options"),n.classList.add("frm_image_size_".concat(imageSize)),e.find(".frm-bulk-edit-link").hide()):(n.classList.remove("frm_image_options"),ht(n),bt(t,"block"),e.find(".frm-bulk-edit-link").show()),wp.hooks.doAction("frm_image_options_toggled",e[0],r)}function ht(e){e.classList.remove("frm_image_size_","frm_image_size_small","frm_image_size_medium","frm_image_size_large","frm_image_size_xlarge")}function bt(e,t){jQuery("#field_options_align_".concat(e)).val(t).trigger("change")}function jt(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=document.getElementById("frm_field_id_".concat(e));Qt(),vr(e)&&(ht(t),t.classList.add("frm_image_options"),t.classList.add("frm_image_size_".concat(or(e))))}function wt(e){var t=e.closest(".frm-single-settings").data("fid");jQuery(".field_".concat(t,"_option")).trigger("change")}function Qt(){wt(jQuery(this))}function xt(e){var t,n=e.target.closest(".frm_image_preview_wrapper");if(null!==(t=wp)&&void 0!==t&&t.media&&(null==n||!n.dataset.upgrade)){e.preventDefault(),wp.media.model.settings.post.id=0;var r=wp.media.frames.file_frame=wp.media({multiple:!1,library:{type:["image"]}});r.on("select",function(){var e=r.state().get("selection").first().toJSON(),t=n.querySelector("img");t.setAttribute("src",e.url),t.classList.remove("frm_hidden"),t.removeAttribute("srcset"),n.querySelector(".frm_image_preview_frame").style.display="block",n.querySelector(".frm_image_preview_title").textContent=e.filename,n.querySelector(".frm_choose_image_box").style.display="none";var o=jQuery(n);o.siblings('input[name*="[label]"]').data("frmimgurl",e.url),o.find("input.frm_image_id").val(e.id).trigger("change"),wp.media.model.settings.post.id=0}),r.open()}}function Et(e){var t=jQuery(this).closest(".frm_image_preview_wrapper");e.preventDefault(),e.stopPropagation(),t.find("img").attr("src",""),t.find(".frm_image_preview_frame").hide(),t.find(".frm_choose_image_box").show(),t.find("input.frm_image_id").val(0).trigger("change")}function kt(){var e=jQuery(this).closest("li").find(".frm_form_fields select");this.checked?e.attr("multiple","multiple"):e.removeAttr("multiple")}function At(){var e=document.getElementById("dropform-search-input");null!==e&&setTimeout(function(){e.focus()},100)}function St(e){var t=e.target,n=t.closest(".frm_warning_style");jQuery(n).fadeOut(400,function(){return n.remove()});var r=t.dataset.action,o=new FormData;p(r,o)}function Lt(e){e.preventDefault()}function It(){var e,t,n=this.parentNode,r=n.parentNode,o=r.querySelectorAll("li:not(.frm_hidden)");2===o.length&&(null===(e=Array.from(o).find(function(e){return e!==n}).querySelector(".frm_remove_tag"))||void 0===e||e.classList.add("frm_disabled"));var i=this.getAttribute("data-fid");jQuery(n).fadeOut("fast",function(){wp.hooks.doAction("frm_before_delete_field_option",this),jQuery(n).remove(),jQuery(r).find(".frm_other_option").length<1&&(null!==(t=document.getElementById("other_input_".concat(i)))&&(t.value=0),jQuery("#other_button_".concat(i)).fadeIn("fast"))}),Po()}function Bt(){var e=jQuery(this);if(e.is(":checked")){var t,n=function(){e.off("mouseup",t)};t=function(){setTimeout(function(){e.prop("checked",!1)},0),n()},e.on("mouseup",t),e.one("mouseout",n)}}function qt(){this.value===i.new_option&&(this.setAttribute("data-value-on-focus",this.value),this.value="")}function Ct(e){return B(I("Are you sure you want to delete these %1$s selected field(s)?","formidable"),e)}function Nt(){var e=i.conf_delete,t=this.parentNode.parentNode.parentNode.parentNode.parentNode,n=t.parentNode,r=jQuery(this).closest("li.form-field"),o=r.data("fid");if("divider"===r.data("ftype")){var a=document.querySelectorAll(".frm-field-group-hover-target .start_divider .frm_field_box"),l=0;a.forEach(function(e){var t=e.querySelectorAll("li.form-field");t&&(l+=t.length)}),l&&(e=Ct(++l))}return n.classList.contains("frm-section-collapsed")||n.classList.contains("frm-page-collapsed")||("divider_section_only"===t.className&&(e=i.conf_delete_sec),this.setAttribute("data-frmverify",e),this.setAttribute("data-frmverify-btn","frm-button-red"),this.setAttribute("data-deletefield",o),Ne(),D(this)),!1}function Tt(){this.closest("li.form-field").click()}function Ot(){var e=document.querySelector(".frm-field-group-hover-target");if(null!==e){e.classList.add("frm-selected-field-group");var t=document.createElement("div");t.classList.add("frm-delete-field-groups","frm_hidden"),document.body.append(t),t.click()}}function Ft(){var e=document.querySelector(".frm-field-group-hover-target");if(null!==e){var t="frm_field_group_".concat(be()),n=document.createTextNode("");Ue(n);var r=jQuery(n).closest("li").get(0);r.classList.add("frm_hidden");var o=r.querySelector("ul");o.id=t,jQuery(e.closest("li.frm_field_box")).after(r);var i=ie(jQuery(e)),a=[],l=[],s=i.length,c={},d=0;jQuery(r).on("frm_added_duplicated_field_to_row",function(e,t){if(c[jQuery(t.duplicatedFieldHtml).attr("data-fid")]=t.originalFieldId,!(s>++d)){var n=jQuery(o),i=ie(n);l.forEach(function(e){e.remove()});for(var u=0;u6)return t.append(Gt(e,"even")),t;if(5!==e&&t.append(Gt(e,"even")),e%2==1&&t.append(Gt(e,"middle")),e<6)t.append(Gt(e,"left")),t.append(Gt(e,"right"));else{var n=c();n.classList.add("frm_fourth"),t.prepend(n)}return t}(e),l=t.closest("ul.frm_sorting");return null!==l&&function(e,t){for(var n=t.children.length,r=0;r6?"frm_full":e%2==1?"frm_fourth":"frm_third"}return r.classList.add(n),r.setAttribute("layout-type",t),r.append(function(e,t){for(var n=Xt(),r=0;r6?"frm1":[2,3,4,6].includes(e)?sn(12/e):5===e&&void 0!==t?0===t?"frm4":"frm2":"frm12"}function Kt(e){switch(e){case 2:case 3:return"frm3";case 4:case 5:return"frm2";case 6:return"frm1";default:return"frm12"}}function Jt(e){switch(e){case 2:return"frm9";case 3:case 4:return"frm6";case 5:return"frm4";case 6:return"frm7";default:return"frm12"}}function Xt(){var e=c();return e.classList.add("frm_grid_container"),e}function Yt(){var e=document.querySelector(".frm-field-group-hover-target");if(e){var t=this.getAttribute("layout-type");ae(ie(jQuery(e)).first(),t),fn()}}function Zt(){var e=en(),t=this.getAttribute("layout-type");ae(ie(e).first(),t),vn()}function en(){var e=jQuery(".frm-selected-field-group"),t=e.first();return e.not(t).each(function(){ie(jQuery(this)).each(function(){var e=this.parentNode;ie(t).last().after(this),jQuery(e).children("li.form-field").length||e.closest("li.frm_field_box").remove()})}),Er(),ae(ie(t).first()),t}function tn(){null===this.closest(".frm-merge-fields-into-row")&&nn(ie(jQuery(".frm-field-group-hover-target")))}function nn(e){var t=e.length,n=document.getElementById("frm_field_group_popup");n.innerHTML="";var r=c();r.style.padding="0 24px";var o=$t(5===t?6:t),i=c();if(i.style.padding="20px 0",i.classList.add("frm_grid_container"),5===t){var a=document.createElement("span");a.classList.add("frm1"),i.append(a)}var l=wn()>0&&an($t(t));!1!==l&&l>=12&&(l=Math.floor(12/t));for(var s=0;s',""),t);e.prepend(n),document.getElementById("frm-field-group-message-dismiss").addEventListener("click",function(){pn(document.getElementById("frm-field-group-message"))})}}(),"ul"===e.originalEvent.target.nodeName.toLowerCase()){var t=document.querySelector(".frm-field-group-hover-target");if(t){var n=e.ctrlKey||e.metaKey,r=e.shiftKey,o=t.classList.contains("frm-selected-field-group"),i=function(){var e=jQuery(".frm-selected-field-group");if(e.length)return e;var t=gn();if(t){var n=t.closest("ul");if(n&&1===ie(jQuery(n)).length)return n.classList.add("frm-selected-field-group"),jQuery(n)}return jQuery()}(),a=i.length;if(n||r){var l=gn();if(null===l||jQuery(l).siblings("li.form-field").length||(l.parentNode.classList.add("frm-selected-field-group"),++a),n){if(o)return--a,t.classList.remove("frm-selected-field-group"),void yn(a);++a}else if(r&&!o){++a;var s=i.first();(s.parent().index()=2||1===e&&ie(jQuery(document.querySelector(".frm-selected-field-group"))).length>1?function(){var e=document.getElementById("frm_field_multiselect_popup");if(null!==e)return e.classList.toggle("frm-unmergable",!bn()),e;(e=c()).id="frm_field_multiselect_popup",bn()||e.classList.add("frm-unmergable");var t=c();t.classList.add("frm-merge-fields-into-row"),t.textContent=I("Merge into row","formidable");var n=document.createElement("a");n.style.marginLeft="5px",n.classList.add("frm_icon_font","frm_arrowdown6_icon"),n.setAttribute("href","#"),t.append(n),e.append(t);var r=c();r.classList.add("frm-multiselect-popup-separator"),e.append(r);var o=c();o.classList.add("frm-delete-field-groups"),o.append(Rt("frm_trash_svg")),e.append(o),document.getElementById("post-body-content").append(e),jQuery(e).hide().fadeIn()}():hn(),Fe()}function vn(e){if(void 0!==e){if(null!==e.originalEvent.target.closest("#frm-show-fields"))return;if(e.originalEvent.target.classList.contains("frm-merge-fields-into-row"))return;if(null!==e.originalEvent.target.closest(".frm-merge-fields-into-row"))return;if(e.originalEvent.target.classList.contains("frm-custom-field-group-layout"))return;if(e.originalEvent.target.classList.contains("frm-cancel-custom-field-group-layout"))return}jQuery(".frm-selected-field-group").removeClass("frm-selected-field-group"),jQuery(document).off("click",vn),hn()}function hn(){var e=document.getElementById("frm_field_multiselect_popup");null!==e&&e.remove()}function bn(){var e=document.querySelectorAll(".frm-selected-field-group"),t=e.length;if(1===t)return!1;for(var n=0,r=0;r12)return!1}return!0}function jn(e){if(null===e.originalEvent.target.closest("#frm_field_group_popup")&&!e.originalEvent.target.classList.contains("frm-custom-field-group-layout")){var t=zt(wn(),document.querySelector(".frm-selected-field-group").firstChild);this.append(t)}}function wn(){var e=0;return jQuery(document.querySelectorAll(".frm-selected-field-group")).each(function(){e+=ie(jQuery(this)).length}),e}function Qn(){var e,t=(e=[],jQuery(".frm-selected-field-group > li.form-field").each(function(){e.push(this.dataset.fid)}),e),n=function(e){return function(t){t.preventDefault(),function(e){e.forEach(function(e){En(e)})}(e)}}(t),r=document.getElementById("frm_field_multiselect_popup");null!==r&&r.remove(),this.setAttribute("data-frmverify",Ct(t.length)),D(this);var o=document.getElementById("frm-confirmed-click");null==o||o.removeAttribute("data-deletefield"),jQuery(o).on("click",n),jQuery("#frm_confirm_modal").one("dialogclose",function(){jQuery(o).off("click",n)})}function xn(){En(this.getAttribute("data-deletefield"))}function En(e){var t=jQuery("#frm_field_id_".concat(e));kn(e),t.hasClass("edit_field_type_divider")&&t.find("li.frm_field_box[data-fid]").each(function(){kn(this.getAttribute("data-fid"))}),kr()}function kn(e){jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_delete_field",field_id:e,nonce:frmGlobal.nonce},success:function(){var t,n,r,o=jQuery(document.getElementById("frm_field_id_".concat(e))),i=jQuery("#frm-single-settings-".concat(e));i.is(":visible")&&(null===(t=document.querySelector(".frm-settings-panel .frm-tabs-navs ul > li:first-child"))||void 0===t||t.click(),document.querySelector("#frm-options-panel .frm-single-settings").classList.remove("frm_hidden")),function(e){var t=e[0].querySelectorAll(".frm-inline-modal[data-fills]");t.length&&t.forEach(function(e){e.classList.add("frm_hidden"),e.removeAttribute("data-fills"),e.closest("form").append(e)})}(i),i.remove(),o.fadeOut("slow",function(){var e,t=o.closest(".start_divider"),n=o.data("type"),r=o.siblings("li.form-field");if(r.length||(o.is(".edit_field_type_end_divider")?r.length=o.closest("li.form-field").siblings():e=o.closest("ul.frm_sorting").parent()),o.remove(),"break"===n?Dn():"product"===n&&(Ie(),rt()),r.length?ae(r.first()):e.remove(),0===jQuery("#frm-show-fields li").length||function(){if(b.get(0).childElementCount>1)return!1;var e=b.get(0).firstElementChild.firstElementChild.querySelectorAll("li.frm_field_box");return!(e.length>1)&&e[0].classList.contains("edit_field_type_submit")}()){var i=document.getElementById("frm_form_editor_container");i.classList.remove("frm-has-fields"),i.classList.add("frm-empty-fields")}else t.length&&Ar(t);H()}),o.length&&(n=o.data("type"),(r=document.getElementById(n))&&r.dataset.limit&&An(n)-11)for(document.getElementById("frm-fake-page").style.display="block",e=0;e200)&&(M(i.repeat_limit_min),this.value="")}function Zn(){var e=this.value;""!==e&&(e<1||e>200)&&(M(i.checkbox_limit),this.value="")}function er(e,t){jQuery(e).closest(".frm_field_box").find(".frm_".concat(t,"_form_row .frm_repeat_label")).text(e.value)}function tr(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=this.value,n=document.getElementById("frm_show_selected_fields_".concat(e)),r=document.getElementById("frm_show_selected_forms_".concat(e));jQuery(r).find("select").val(""),"form"===t?(r.style.display="inline",function(e){if(null!==e)for(;e.firstChild;)e.firstChild.remove()}(n)):(n.style.display="none",r.style.display="none",xr(t,e))}function nr(){var e=rr(this);if(e){var t=jQuery(this).closest(".frm_single_option");!function(e,t,n){var r=n.data("optkey"),o=yr(e),i=jQuery('label[for="field_'.concat(t,"-").concat(r,'"]')),a="field_options[options_".concat(e,"][").concat(r,"]"),l=jQuery('input[name="'.concat(a,'[label]"]'));if(i.length<1)return ir(e),void(n.find('input[name^="default_value_"]').is(":checked")&&l.length>0&&jQuery('select[name^="item_meta['.concat(e,']"]')).val(l.val()));var s,d=i.children("input");if(s=l.length<1?(l=jQuery('input[name="'.concat(a,'"]'))).val():o?jQuery('input[name="'.concat(a,'[value]"]')).val():l.val(),!(l.length<1)){var u=i[0].childNodes;if(vr(e)){var f=function(e,t,n){var r,o=e.find("img");o&&(r=o.attr("src"));var i=hr(t);return pr(n.val(),i,r)}(n,e,l),m=i.find(".frm_image_option_container");m.length>0?m.replaceWith(f):(u[u.length-1].nodeValue="",i.append(f))}else{var _=!1;u.forEach(function(t,n){if(!1===_)"INPUT"===t.tagName&&(_=n);else if(n===_+1){var r="";!function(e){var t=document.getElementsByName("field_options[image_options_".concat(e,"]")),n=Array.from(t).find(function(e){return e.checked&&"buttons"===e.value});return void 0!==n}(e)?t.nodeValue=" ".concat(l.val()):(r=c({className:"frm_label_button_container",text:" ".concat(l.val())}),i[0].replaceChild(r,t))}else t.remove()})}d.val(s),defaultVal=n.find('input[name^="default_value_"]'),d.prop("checked",!!defaultVal.is(":checked"))}}(e.fieldId,e.fieldKey,t)}}function rr(e){var t=jQuery(e).closest(".frm_sortable_field_opts");return!!t.length&&{fieldId:t.attr("id").replace("frm_field_","").replace("_opts",""),fieldKey:t.data("key")}}function or(e){var t,n=document.getElementById("field_options_image_size_".concat(e)),r="";return null!==n&&""!==(t=n.value)&&(r=t),r}function ir(e){var t=jQuery('[name^="item_meta['.concat(e,']"]'));if(!(t.length<1)){if(t.is("select")){var n=document.getElementById("frm_placeholder_".concat(e));null===n||""===n.value?dr(t[0],{sourceID:e}):dr(t[0],{sourceID:e,placeholder:n.value})}else{var r=fr(e);jQuery("#field_".concat(e,"_inner_container > .frm_form_fields")).html("");for(var o=rr(jQuery("#frm_delete_field_".concat(e,"-000_container"))),i=jQuery("#field_".concat(e,"_inner_container > .frm_form_fields")),a=vr(e),l=a?or(e):"",s=a?"frm_image_option frm_image_".concat(l," "):"",c=Oi(e),d="hidden"===t.attr("type")?t.data("field-type"):t.attr("type"),u=0;u=0;u--)d();var f=c.querySelector('option[value=""]');null!==f&&c.prepend(f)}}}function sr(e,t,n,r){null!==t||e.querySelector('option[value="'.concat(n,'"]'))||((t=frmDom.tag("option",{text:r})).value=n),e.prepend(t)}function cr(e,t,n,r,o,i){var a="",l=t.key.includes("other"),s="field_".concat(r,"-").concat(t.key),c="scale"===e?"radio":e,d='');return this.getSingle=function(){return""!==(a=wp.hooks.applyFilters("frm_admin.build_single_option_template",a,{opt:t,type:e,fieldId:n,classes:i,id:s}))?a:'
          ").concat(l?d:"","
          ")},this.getSingle()}function dr(e,t){if(null!==e){var n=t.sourceID,r=t.placeholder,o=Oi(n),i=t.other;!function(e){var t;if(void 0!==e.options)for(t=e.options.length-1;t>=0;t--)e.remove(t)}(e);for(var a=fr(n,e.id.includes("frm_field_logic_opt")),l=void 0!==r,s=0;s1&&void 0!==arguments[1]&&arguments[1],s=[],c=jQuery('input[name^="field_options[options_'.concat(e,']"]')).filter('[name$="[label]"], [name*="[other_"]'),d=Oi(e),u=hr(e),f=vr(e),m=yr(e);for(t=0;t0||(o=n=c[t].value,i=c[t].name.replace("field_options[options_".concat(e,"]["),"").replace("[label]","").replace("]",""),m&&(r=c[t].name.replace("[label]","[value]"),n=jQuery('input[name="'.concat(r,'"]')).val(),l&&""===o&&(o=""!==n?n:frm_admin_js.no_label)),f&&(o=pr(o,u,mr(c[t]))),a={saved:n,label:o=frmAdminBuild.hooks.applyFilters("frm_choice_field_label",o,e,c[t],f),checked:gr(c[t].id),key:i},d&&(r=c[t].name.replace("[label]","[price]"),a.price=jQuery('input[name="'.concat(r,'"]')).val()),s.push(a));return s}function mr(e){var t=jQuery(e).siblings(".frm_image_preview_wrapper");if(!t.length)return"";var n=t.find("img");return n.length?n.attr("src"):""}function _r(e){(e instanceof Element||e instanceof Document)&&(e=e.outerHTML);var t=jQuery.parseHTML(e).reduce(function(e,t){var n=frmDom.cleanNode(t);return"#text"===n.nodeName?e+n.textContent:e+n.outerHTML},"");return t!==e?_r(t):t}function pr(e,t,n){var r,o=e;o=_r(o),n?r=m({src:n,alt:o}):(r=c({className:"frm_empty_url"})).innerHTML=i.image_placeholder_icon;var a=t?" frm_label_with_image":"",l=s("span",{className:"frm_text_label_for_image_inner"});return l.innerHTML=o,s("span",{className:"frm_image_option_container".concat(a),children:[r,s("span",{className:"frm_text_label_for_image",child:l})]})}function gr(e){var t=jQuery("#".concat(e));if(0===t.length)return!1;var n=t.siblings("input[type=checkbox]");return n.length&&n.prop("checked")}function yr(e){return br("separate_value_".concat(e))}function vr(e){for(var t=!1,n=document.getElementsByName("field_options[image_options_".concat(e,"]")),r=0;r=0&&(t.splice(n,1),e.val(t),e.next(".btn-group").find('.multiselect-container input[value=""]').prop("checked",!1))}(jQuery(this))}function Br(e){e.val(""),e.next(".btn-group").find('.multiselect-container input[value!=""]').prop("checked",!1)}function qr(){jQuery(".frm-hide-empty").each(function(){0===jQuery(this).text().trim().length&&jQuery(this).remove()})}function Cr(e){e.preventDefault(),function(e,t,n){var r=document.getElementById(e.getAttribute("data-open")),o=jQuery(e).closest("p,ul"),i=void 0!==t;if(o.hasClass("frm-open"))o.removeClass("frm-open"),r.classList.add("frm_hidden");else{if(i||(t=Wo(e)),null!==t){if(!i){var a=n.key;"Enter"!==a&&" "!==a&&t.focus()}o.after(r),r.setAttribute("data-fills",t.id.replace("-proxy-input","")),0===r.id.indexOf("frm-calc-box")&&Ze(r,!0)}o.addClass("frm-open"),r.classList.remove("frm_hidden"),wp.hooks.doAction("frm_show_inline_modal",r,e)}}(this,void 0,e)}function Nr(e){e.preventDefault(),this.parentNode.classList.add("frm_hidden"),jQuery('.frm-open [data-open="'.concat(this.parentNode.id,'"]')).closest(".frm-open").removeClass("frm-open")}function Tr(e){var t=e.target;t.closest(".frm-inline-modal.frm-modal-no-dismiss")||t.closest(".frm-show-inline-modal")||t.closest("#frm_adv_info")||t.closest(".frm-token-proxy-input")||document.querySelectorAll(".frm-inline-modal.frm-modal-no-dismiss:not(.frm_hidden)").forEach(function(e){e.classList.add("frm_hidden"),e.previousElementSibling.classList.remove("frm-open")})}function Or(){var e,t=this.getAttribute("data-frmchange").split(",");for(e=0;e').before('')}function Yr(){var e="success";"options[edit_action]"===this.name&&(e="edit");var t=jQuery(this).val();jQuery(".".concat(e,"_action_box")).hide(),"redirect"===t?jQuery(".".concat(e,"_action_redirect_box.").concat(e,"_action_box")).fadeIn("slow"):"page"===t?jQuery(".".concat(e,"_action_page_box.").concat(e,"_action_box")).fadeIn("slow"):jQuery(".".concat(e,"_action_message_box.").concat(e,"_action_box")).fadeIn("slow")}function Zr(e){if(!function(e){var t=jQuery(e),n=t.closest(".frm_form_action_settings"),r=n.find(".widget-inside");if(r.find("p, div, table").length)return!1;var o=n.find(".widget-top");return o.on("frm-action-loaded",function(){t.trigger("click"),n.removeClass("open"),r.hide()}),o.trigger("click"),!0}(e.target)){var t=e.target.closest(".frm_form_action_settings"),n=t.querySelectorAll(".wp-editor-area");n.length&&n.forEach(function(e){tinymce.EditorManager.execCommand("mceRemoveEditor",!0,e.id)});var r=jQuery(t).clone(),o=r.attr("id").replace("frm_form_action_",""),i=eo(o);r.find(".frm_action_id, .frm-btn-group").remove(),r.find('input[name$="['.concat(o,'][ID]"]')).val(""),r.find(".widget-inside").hide(),r.find("input[type=text], textarea, input[type=number]").prop("defaultValue",function(){return this.value}),r.find("input[type=checkbox], input[type=radio]").prop("defaultChecked",function(){return this.checked});var a=new RegExp("\\[".concat(o,"\\]"),"g"),l=new RegExp("_".concat(o,'"'),"g"),s=new RegExp("-".concat(o,'"'),"g"),d=new RegExp('"'.concat(o,'"'),"g"),u=r.html().replace(a,"[".concat(i,"]")).replace(l,"_".concat(i,'"'));u=u.replace(s,"-".concat(i,'"')).replace(d,'"'.concat(i,'"'));var f=c({id:"frm_form_action_".concat(i),className:r.get(0).className});f.setAttribute("data-actionkey",i),f.innerHTML=u,f.querySelectorAll(".wp-editor-wrap, .wp-editor-wrap *").forEach(function(e){"string"==typeof e.className&&(e.className=e.className.replace(o,i)),e.id=e.id.replace(o,i)}),f.classList.remove("open"),document.getElementById("frm_notification_settings").append(f),n.length&&(n.forEach(function(e){frmDom.wysiwyg.init(e)}),f.querySelectorAll(".wp-editor-area").forEach(function(e){frmDom.wysiwyg.init(e)})),f.classList.contains("frm_single_on_submit_settings")&&f.querySelector("input.frm-page-search")&&yi(f),ci(),wp.hooks.doAction("frm_after_duplicate_action",f)}}function eo(e){var t=parseInt(e,10)+11;return null!==document.getElementById("frm_form_action_".concat(t))&&(t=eo(++t)),t}function to(){var e,t=jQuery(this).data("actiontype");if(!co(t)){var n=(e=Ln(document.querySelectorAll(".frm_form_action_settings"),"frm_form_action_"),void 0!==document.getElementById("frm_form_action_".concat(e))&&(e+=100),S>=e&&(e=S+1),S=e,e),r=E,o=document.createElement("div");o.classList.add("frm_single_".concat(t,"_settings"));var i=document.getElementById("frm_notification_settings");i.append(o),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_form_action",type:t,list_id:n,form_id:r,nonce:frmGlobal.nonce},success:function(e){Po(),o.remove(),document.querySelectorAll(".frm_form_action_settings.open").forEach(function(e){return e.classList.remove("open")});var r=c();r.innerHTML=e;var a=r.querySelector(".widget-top");Array.from(r.children).forEach(function(e){return i.append(e)}),jQuery(".frm_form_action_settings").fadeIn("slow");var l=document.getElementById("frm_form_action_".concat(n));l.classList.add("open"),document.getElementById("post-body-content").scroll({top:l.offsetTop+10,left:0,behavior:"smooth"}),so(t),Xr("#frm_form_action_".concat(n)),ci(),yi(l),a&&jQuery(a).trigger("frm-action-loaded"),frmAdminBuild.hooks.doAction("frm_added_form_action",l)}})}}function no(){var e=document.getElementById("frm_email_addon_menu").classList,t=document.getElementById("actions-search-input");e.contains("frm-all-actions")?(e.remove("frm-all-actions"),e.add("frm-limited-actions")):(e.add("frm-all-actions"),e.remove("frm-limited-actions")),t.value="",ki(t,"input")}function ro(e){e.on("Change",function(){!function(e){(function(){var e=document.querySelector(".frm-single-settings:not(.frm_hidden)");if(!e)return!1;var t=e.querySelector(".wp-editor-wrap");return null!==t&&t.classList.contains("tmce-active")})()&&!tinyMCE.activeEditor.isHidden()&&(e.targetElm.value=e.getContent(),jQuery(e.targetElm).trigger("change"))}(e)})}function oo(e){var t=this;if(null!==e)return this.fragment=document.createDocumentFragment(),this.initOnceInAllInstances=function(){void 0===oo.prototype.endMarker&&(oo.prototype.endMarker=document.getElementById("frm-end-form-marker"))},this.append=function(e){var n=null!==e?e.parentElement.classList:"";null!==e&&(n.contains("frm_field_box")||n.contains("divider_section_only"))&&t.fragment.append(e)},this.moveFields=function(){j.insertBefore(t.fragment,oo.prototype.endMarker)},this.initOnceInAllInstances(),void 0!==e?(this.append(e),void this.moveFields()):{append:this.append,moveFields:this.moveFields}}function io(){var e=jQuery(this).closest(".frm_form_action_settings").data("actionkey"),t=this.getAttribute("data-emailrow");jQuery("#frm_form_action_".concat(e," .frm_").concat(t,"_row")).fadeIn("slow"),jQuery(this).fadeOut("slow")}function ao(){var e=jQuery(this).closest(".frm_form_action_settings"),t=this.getAttribute("data-emailrow"),n=".frm_".concat(t,"_row"),r=".frm_".concat(t,"_button");jQuery(e).find(r).fadeIn("slow"),jQuery(e).find(n).fadeOut("slow",function(){jQuery(e).find("".concat(n," input")).val("")})}function lo(){var e=jQuery(this).closest(".frm_form_action_settings"),t=".frm_from_to_match_row";e.find('input[name$="[post_content][from]"]').val()===e.find('input[name$="[post_content][email_to]"]').val()?jQuery(e).find(t).fadeIn("slow"):jQuery(e).find(t).fadeOut("slow")}function so(e){var t,n,r=document.querySelectorAll(".frm_".concat(e,"_action"));co(e)?(t=r,n=uo(e)>0,t.forEach(function(e){e.classList.remove("frm_active_action"),e.classList.add("frm_inactive_action"),n&&e.classList.add("frm_already_used")})):r.forEach(function(e){e.querySelector(".frm_show_upgrade")||(e.classList.remove("frm_inactive_action","frm_already_used"),e.classList.add("frm_active_action"))})}function co(e){var t=function(e){return jQuery(".frm_single_".concat(e,"_settings")).length}(e)>=uo(e),n={type:e};return wp.hooks.applyFilters("frm_action_at_limit",t,n)}function uo(e){return parseInt(jQuery(".frm_".concat(e,"_action")).data("limit"),10)}function fo(){var e=i.only_one_action,t=this.dataset.limit;void 0!==t&&((t=parseInt(t))>1?e=e.replace(1,t).trim():e+=" ".concat(i.edit_action_text)),M(e)}function mo(){var e=jQuery(this).data("emailkey"),t=jQuery(this).closest(".frm_form_action_settings").find(".frm_action_name").val(),n=document.getElementById("form_id").value,r=document.getElementById("frm_logic_row_".concat(e)),o=Ln(r.querySelectorAll(".frm_logic_row"),"frm_logic_".concat(e,"_")),i=c({id:"frm_logic_".concat(e,"_").concat(o),className:"frm_logic_row frm_hidden"});return r.append(i),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_form_logic_row",email_id:e,form_id:n,meta_name:o,type:t,nonce:frmGlobal.nonce},success:function(t){jQuery(document.getElementById("logic_link_".concat(e))).fadeOut("slow",function(){i.insertAdjacentHTML("beforebegin",t),i.remove(),jQuery(r).parent(".frm_logic_rows").fadeIn("slow")})}}),!1}function _o(){var e=jQuery("select.frm_single_post_field");e.css("border-color","");var t=this,n=jQuery(t).val();if(""===n||"checkbox"===n)return!1;e.each(function(){if(jQuery(this).val()===n&&this.name!==t.name)return this.style.borderColor="red",jQuery(t).val(""),M(i.field_already_used),!1})}function po(){var e=jQuery(this).val();""===e?(jQuery(".frm_post_content_opt, select.frm_dyncontent_opt").hide().val(""),jQuery(".frm_dyncontent_opt").hide()):"post_content"===e?(jQuery(".frm_post_content_opt").show(),jQuery(".frm_dyncontent_opt").hide(),jQuery("select.frm_dyncontent_opt").val("")):(jQuery(".frm_post_content_opt").hide().val(""),jQuery("select.frm_dyncontent_opt, .frm_form_field.frm_dyncontent_opt").show())}function go(){var e=jQuery(this).val(),t=jQuery(document.getElementById("frm_dyncontent"));""===e||"new"===e?(t.val(""),jQuery(".frm_dyncontent_opt").show()):jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_display_get_content",id:e,nonce:frmGlobal.nonce},success:function(e){t.val(e),jQuery(".frm_dyncontent_opt").show()}})}function yo(){var e,t,n=document.getElementById("frm_posttax_rows").childNodes,r=document.querySelector(".frm_post_parent_field"),o=document.querySelector(".frm_post_menu_order_field"),i=this.value;jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_replace_posttax_options",post_type:i,nonce:frmGlobal.nonce},success:function(r){for(var o=0;o');var e=jQuery(this).closest(".frm_form_action_settings").find('select[name$="[post_content][post_type]"]').val(),t=jQuery(this).closest(".frm_form_action_settings").data("actionkey"),n=jQuery(this).closest(".frm_posttax_row").attr("id").replace("frm_posttax_",""),r=jQuery(this).val(),o=jQuery(document.getElementById("".concat(n,"_show_exclude"))).is(":checked")?1:0,i=jQuery('select[name$="[post_category]['.concat(n,'][field_id]"]')).val(),a=jQuery('input[name="id"]').val();jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_posttax_row",form_id:a,post_type:e,tax_key:n,action_key:t,meta_name:r,field_id:i,show_exclude:o,nonce:frmGlobal.nonce},success:function(e){jQuery(document.getElementById("frm_posttax_".concat(n))).replaceWith(e)}})}}function Qo(){var e=jQuery(this).closest(".frm_postmeta_row"),t=e.find(".frm_cancelnew"),n=e.find(".frm_enternew");return e.find("select.frm_cancelnew").is(":visible")?(t.hide(),n.show()):(t.show(),n.hide()),e.find("input.frm_enternew, select.frm_cancelnew").val(""),!1}function xo(){var e=jQuery(this),t=e.val();"checkbox"===e.attr("type")&&!1===this.checked&&(t="");var n=e.data("toggleclass");""===t?jQuery(".".concat(n)).hide():(jQuery(".".concat(n)).show(),jQuery(".hide_".concat(n,"_").concat(t)).hide())}function Eo(){Ur()||($r(this),Hr(document.querySelector(".frm_form_settings")))}function ko(e){return e.preventDefault(),Ao(jQuery(this),this.getAttribute("data-code")),!1}function Ao(e,t){var n=!1,r=e;if("object"===a(e)){if(e.hasClass("frm_noallow"))return;void 0===(r=jQuery(e).closest("[data-fills]").attr("data-fills"))&&void 0!==(r=e.closest("div").attr("class"))&&(r=r.split(" ")[1])}if(void 0===r){var o=document.activeElement;"search"===o.type?null===(r=o.id.replace("-search-input","")).match(/\d/gi)&&(r=(o=jQuery(".frm-single-settings:visible .".concat(r))).attr("id")):r=o.id}r&&(n=jQuery("#wp-".concat(r,"-wrap.wp-editor-wrap")).length>0);var i=jQuery(document.getElementById(r));if(void 0===e.attr("data-shortcode")&&(!i.length||void 0===i.attr("data-shortcode"))){var l=e.parents("ul.frm_code_list").attr("data-shortcode");"undefined"!==l&&"no"===l||(t="[".concat(t,"]"))}if(n&&(wpActiveEditor=r),!i.length)return!1;if("[default-html]"===t||"[default-plain]"===t){var s=0;"[default-plain]"===t&&(s=1),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_get_default_html",form_id:jQuery('input[name="id"]').val(),plain_text:s,nonce:frmGlobal.nonce},elementId:r,success:function(e){if(n){var t=document.createElement("p");t.innerText=e,send_to_editor(t.innerHTML)}else So(i,e)}})}else t=function(e,t,n){return"object"===a(t)&&t instanceof jQuery&&0===n[0].id.indexOf("success_url_")&&(t=t[0]).closest("#frm-insert-fields-box")?(t.parentNode.classList.contains("frm_insert_url")||(e=e.replace("]"," sanitize_url=1]")),e):e}(t,e,i),n?send_to_editor(t):So(i,t);return!1}function So(e,t){if(document.selection)e[0].focus(),document.selection.createRange().text=t;else{var n=e[0],r=n.selectionEnd;t=function(e,t,n,r){var o=e.data("sep");if(void 0===o)return t;var i=e.val();if(!i.trim().length)return t;var a=new RegExp("".concat(o,"\\s*$")),l=new RegExp("^\\s*".concat(o));return i.substr(0,n).trim().length&&!1===a.test(i.substr(0,n))&&(t=o+t),i.substr(r,i.length).trim().length&&!1===l.test(i.substr(r,i.length))&&(t+=o),t}(e,t,n.selectionStart,r),n.value=n.value.substr(0,n.selectionStart)+t+n.value.substr(n.selectionEnd,n.value.length);var o=r+t.length;!function(e,t){if(e.classList.contains("frm_classes")&&Lo(t)){var n=e.value.split(" ").filter(Lo);n.length&&(e.value=function(e,t,n){var r=e.split(" ").filter(function(e){return(e=e.trim()).length&&!t.includes(e)});return r.includes(n)||r.push(n),r.join(" ")}(e.value,n,t.trim()))}}(n,t),n.focus(),n.setSelectionRange(o,o)}Rr(e)}function Lo(e){return["frm_half","frm_third","frm_two_thirds","frm_fourth","frm_three_fourths","frm_fifth","frm_sixth","frm2","frm3","frm4","frm6","frm8","frm9","frm10","frm12"].includes(e.trim())}function Io(){var e=document.getElementById("frm-id-condition"),t=document.getElementById("frm-key-condition");"id"===this.value?(e.classList.remove("frm_hidden"),t.classList.add("frm_hidden"),ki(t,"change")):(e.classList.add("frm_hidden"),t.classList.remove("frm_hidden"),ki(e,"change"))}function Bo(){var e=document.getElementById("frm-id-key-condition-id").checked?"frm-id-condition":"frm-key-condition",t=document.getElementById("frm-is-condition").value,n=document.getElementById("frm-text-condition").value,r=document.getElementById("frm-insert-condition"),o=(e=document.getElementById(e)).options[e.selectedIndex].value,a="if ".concat(o," ").concat(t,'="').concat(n,'"]');r.setAttribute("data-code","".concat(a+i.conditional_text,"[/if ").concat(o)),r.innerHTML="[".concat(a,"[/if ").concat(o,"]")}function qo(e){return e.getAttribute("href")||e.getAttributeNS("http://www.w3.org/1999/xlink","href")}function Co(e){var t;e.parentNode.parentNode.classList.contains("frm_has_shortcodes")&&($o(),"use"===(t=Vo(e)).tagName?qo(t=t.firstElementChild).includes("frm_close_icon")||Do(t,"nofocus"):t.classList.contains("frm_close_icon")||Do(t,"nofocus"))}function No(e){e.preventDefault(),e.stopPropagation(),Do(this)}function To(e){!function(e){var t;if(e.id.startsWith("field_options_type_")){var n=e.id.split("_"),r=n.length&&n[n.length-1];null!==(t=document.querySelector("#frm-single-settings-".concat(r)))&&void 0!==t&&t.classList.contains("frm-type-".concat(e.value))||Oo()}}(e.target)}function Oo(e){var t;void 0===e&&(e=I("You are changing the field type. Not all field settings will appear as expected until you reload the page. Would you like to reload the page now?","formidable")),frmDom.modal.maybeCreateModal("frmSaveAndReloadModal",{title:I("Save and Reload?","formidable"),content:(t=c(e),t.style.padding="var(--gap-md)",t),footer:function(){var e=frmDom.modal.footerButton({text:I("Save and Reload","formidable"),buttonType:"primary"});_(e,function(){var e;(e=document.getElementById("frm_submit_side_top")).classList.contains("frm_submit_ajax")&&e.setAttribute("data-new-addon-installed",!0),e.click()});var t=frmDom.modal.footerButton({text:I("Cancel","formidable"),buttonType:"cancel"});return t.classList.add("dismiss"),frmDom.div({children:[t,e]})}()})}function Fo(e){var t;if(e instanceof Event){var n=document.querySelectorAll(".frm-single-settings .frm-show-box.frmsvg use"),r=Array.from(n).find(function(e){return"#frm_close_icon"===e.getAttribute("href")});if(void 0===r)return;t=r.parentElement}else t=e;var o=t.getBoundingClientRect(),i=document.getElementById("frm_adv_info"),a=i.parentElement.getBoundingClientRect();i.style.top="".concat(o.top-a.top+32,"px"),i.style.left="".concat(o.left-a.left-280,"px")}function Do(e,t){var n=Wo(e),r=document.getElementById("frm_adv_info"),a=e.className;if("svg"===e.tagName&&(e=e.firstElementChild),"use"===e.tagName&&(a=qo(e)),a.includes("frm_close_icon"))$o(r);else{if(Fo(e),jQuery(".frm_code_list a").removeClass("frm_noallow"),n.classList.contains("frm_not_email_to")?jQuery("#frm-insert-fields-box .frm_code_list li:not(.show_frm_not_email_to) a").addClass("frm_noallow"):n.classList.contains("frm_not_email_subject")&&jQuery(".frm_code_list li.hide_frm_not_email_subject a").addClass("frm_noallow"),r.setAttribute("data-fills",n.id),r.style.display="block","use"===e.tagName)if(e.hasAttributeNS("http://www.w3.org/1999/xlink","href"))e.setAttributeNS("http://www.w3.org/1999/xlink","href","#frm_close_icon");else{var l=document.createElementNS("http://www.w3.org/2000/svg","use");l.setAttributeNS("http://www.w3.org/1999/xlink","href","#frm_close_icon"),e.parentNode.replaceChild(l,e)}else e.className=a.replace("frm_more_horiz_solid_icon","frm_close_icon");"nofocus"!==t&&("none"!==n.style.display?n.focus():jQuery(tinymce.get(n.id)).trigger("focus")),function(e){["address","body"].forEach(function(t){!function(e,t){var n,r=i.contextualShortcodes["".concat(t,"Selector")],a=i.contextualShortcodes[t],l=e.matches(r),s=function(e){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=o(e))){t&&(e=t);var n=0,r=function(){};return{s:r,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==t.return||t.return()}finally{if(l)throw i}}}}(a);try{for(s.s();!(n=s.n()).done;){var c,d=n.value,u=null===(c=document.querySelector('#frm-adv-info-tab .frm_code_list [data-code="'.concat(d,'"]')))||void 0===c?void 0:c.closest("li");null==u||u.classList.toggle("frm_hidden",!l)}}catch(e){s.e(e)}finally{s.f()}}(e,t)})}(n)}}function Mo(e){return 0===i.contextualShortcodes.length||!function(e){var t=e.querySelector("a");if(!t)return!1;var n=t.dataset.code;return i.contextualShortcodes.address.includes(n)||i.contextualShortcodes.body.includes(n)}(e)||function(e){var t=e.querySelector("a").dataset.code,n=document.getElementById("frm_adv_info").dataset.fills,r=document.getElementById(n),o=i.contextualShortcodes;return o.address.includes(t)?r.matches(o.addressSelector):r.matches(o.bodySelector)}(e)}function Po(){x||(x=1,window.addEventListener("beforeunload",Go))}function zo(){x=0}function Ho(){x=0}function Ro(){x=0}function Go(e){x&&(e.preventDefault(),e.returnValue="")}function Uo(e,t){var n={my:"top",at:"top+".concat(t),of:window};e.dialog("option","position",n)}function Wo(e){if(e.classList.contains("frm-input-icon"))return e.previousElementSibling;for(var t,n=e.nextElementSibling;null!==n&&("INPUT"!==n.tagName&&"TEXTAREA"!==n.tagName||n.classList.contains("frm-token-input-field"));)n=Wo(n);return n||(n=null===(t=e.closest(".frm-field-formula"))||void 0===t?void 0:t.querySelector(".frm-calc-field")),n}function Vo(e){var t;if(null!==(t=e.nextElementSibling)&&void 0!==t&&t.classList.contains("frm-input-icon"))return e.nextElementSibling;for(var n=e.previousElementSibling;null!==n&&"I"!==n.tagName&&"svg"!==n.tagName;)n=Vo(n);return n}function $o(e){if((void 0!==e||null!==(e=document.getElementById("frm_adv_info")))&&null===document.getElementById("frm_dyncontent")){e.style.display="none";for(var t=document.querySelectorAll(".frm-show-box.frm_close_icon"),n=0;n".concat(n.data.name,": ").concat(n.data.msg,"

          "):'

          Imported ').concat(n.data.name,"

          "),e.find(".status").prepend(r),e.find(".status").show(),C.importQueue=jQuery.grep(C.importQueue,function(e){return e!=t}),C.imported++,0===C.importQueue.length?(e.find(".process-count").hide(),e.find(".forms-completed").text(C.imported),e.find(".process-completed").show()):(e.find(".form-current").text(C.imported+1),ei(e)))})}function ti(e){e.preventDefault();var t=!1,n=jQuery('input[name="frm_export_forms[]"]');jQuery('input[name="frm_export_forms[]"]:checked').val()||(n.closest(".frm-table-box").addClass("frm_blank_field"),t="stop");var r=jQuery('input[name="type[]"]');if(jQuery('input[name="type[]"]:checked').val()||"checkbox"!==r.attr("type")||(r.closest("p").addClass("frm_blank_field"),t="stop"),"stop"===t)return!1;e.stopPropagation(),this.submit()}function ni(){var e=jQuery(this).closest(".frm_blank_field");if(void 0!==e){var t=this.name;("type[]"===t&&jQuery('input[name="type[]"]:checked').val()||"frm_export_forms[]"===t&&jQuery(this).val())&&e.removeClass("frm_blank_field")}}function ri(){null!==jQuery(this).val().match(/\.csv$/i)?jQuery(".show_csv").fadeIn():jQuery(".show_csv").fadeOut()}function oi(){var e=document.querySelector('select[name="format"]');return e?e.value:""}function ii(e){var t,n,r=e.target.value;li(r),ai.call(e.target),t=r,n=document.getElementById("frm-export-select-all"),"csv"===t?(n.checked=!1,n.disabled=!0):n.disabled=!1}function ai(){var e=jQuery(this),t=e.find(":selected"),n=t.data("support"),r=n.indexOf("|");jQuery('input[name="type[]"]').each(function(){this.checked=!1,n.includes(this.value)?(this.disabled=!1,-1===r&&(this.checked=!0)):this.disabled=!0}),"csv"===e.val()?(jQuery(".csv_opts").show(),jQuery(".xml_opts").hide()):(jQuery(".csv_opts").hide(),jQuery(".xml_opts").show());var o=t.data("count"),i=jQuery('input[name="frm_export_forms[]"]');"single"===o?(i.prop("multiple",!1),i.prop("checked",!1)):(i.prop("multiple",!0),i.prop("disabled",!1)),e.trigger("change")}function li(e){if(""!==e){var t=document.querySelectorAll(".frm-is-repeater");t.length&&("csv"===e?t.forEach(function(e){e.classList.remove("frm_hidden")}):t.forEach(function(e){e.classList.add("frm_hidden")}),Qi.call(document.querySelector(".frm-auto-search")))}}function si(){var e=jQuery("select[name=format]").find(":selected").data("count"),t=jQuery('input[name="frm_export_forms[]"]');"single"===e&&this.checked?(t.prop("disabled",!0),this.removeAttribute("disabled")):t.prop("disabled",!1)}function ci(){jQuery(".frm_multiselect").hide().each(frmDom.bootstrap.multiselect.init)}function di(e){e.preventDefault(),mi(this,"frm_multiple_addons")}function ui(e){e.preventDefault(),mi(this,"frm_activate_addon")}function fi(e){e.preventDefault(),mi(this,"frm_install_addon")}function mi(e,t){n(1105).toggleAddonState(e,t)}function _i(){gi()}function pi(e){!function(e,t,n){var r=jQuery("#frm_leave_email_error");r.removeClass("frm_hidden").attr("frm-error",n),jQuery("#frm_leave_email").one("keyup",function(){r.addClass("frm_hidden")})}(0,0,e)}function gi(){var e=document.getElementById("frmapi-email-form");jQuery.ajax({dataType:"json",url:e.getAttribute("data-url"),success:function(t){var n=t.renderedHtml;n=n.replace(/]*(formidableforms.css|action=frmpro_css)[^>]*>/gi,""),e.innerHTML=n}})}function yi(e){frmDom.autocomplete.initSelectionAutocomplete(e)}function vi(e){var t=this.parentNode.parentNode,n=t.elements.type.value;e.preventDefault(),this.classList.add("frm_loading_button"),bi(t,n,this)}function hi(e){var t=this.elements.type.value,n=this.querySelector("button");e.preventDefault(),n.classList.add("frm_loading_button"),bi(this,t,n)}function bi(e,t,n){var r=function(e){var t,n,r={},o=e.elements;for(n=0;n .frm-with-line").forEach(function(e){var t=e.nextElementSibling;if(t){var n=t.querySelectorAll(":scope > li.frmbutton"),r=Array.from(n).every(function(e){return e.classList.contains("frm_hidden")});e.classList.toggle("frm_hidden",r)}}),jQuery(this).trigger("frmAfterSearch")}function xi(e,t){return"s"!==t&&"s"!==e[e.length-1]&&"".concat(e,"s").includes(t)}function Ei(e){e.stopPropagation()}function ki(e,t){var n=document.createEvent("HTMLEvents");n.initEvent(t,!1,!0),e.dispatchEvent(n)}function Ai(e,t){var n,r=new XMLHttpRequest,o="string"==typeof e?e:Object.keys(e).map(function(t){return"".concat(encodeURIComponent(t),"=").concat(encodeURIComponent(e[t]))}).join("&");return r.open("post",ajaxurl,!0),r.onreadystatechange=function(){if(r.readyState>3&&200==r.status){n=r.responseText;try{n=JSON.parse(n)}catch(e){}t(n)}},r.setRequestHeader("X-Requested-With","XMLHttpRequest"),r.setRequestHeader("Content-type","application/x-www-form-urlencoded"),r.send(o),r}function Si(e,t){e.classList.add("frm-fade"),setTimeout(t,1e3)}function Li(e){jQuery(e).css("visibility","hidden")}function Ii(e){jQuery(e).css("visibility","visible")}function Bi(e,t){return n(4260).initModal(e,t)}function qi(e,t){if("#"===t){var n=document.getElementById(e),r=n.style.display;n.style.display="none"===r?"block":"none"}else e.is(":visible")?e.hide():e.show()}function Ci(){window.onbeforeunload=null;var e=jQuery(window);e.off("beforeunload.widgets"),e.off("beforeunload.edit-post")}function Ni(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=document.getElementById("frm_field_id_".concat(e));if(null!==t&&"form"===t.dataset.type)if(t=jQuery(t),this.options[this.selectedIndex].value){t.find(".frm-not-set")[0].classList.add("frm_hidden");var n=t.find(".frm-embed-message");n.html(n.data("embedmsg")+this.options[this.selectedIndex].text),t.find(".frm-embed-field-placeholder")[0].classList.remove("frm_hidden")}else t.find(".frm-not-set")[0].classList.remove("frm_hidden"),t.find(".frm-embed-field-placeholder")[0].classList.add("frm_hidden")}function Ti(){var e=jQuery(this).closest(".frm-single-settings"),t=e.find(".frmjs_product_choices"),n=e.find(".frm_prod_options_heading"),r=this.options[this.selectedIndex].value;t.removeClass("frm_prod_type_single frm_prod_type_user_def"),n.removeClass("frm_prod_user_def"),"single"===r?t.addClass("frm_prod_type_single"):"user_def"===r&&(t.addClass("frm_prod_type_user_def"),n.addClass("frm_prod_user_def"))}function Oi(e){var t=document.getElementById("frm_field_id_".concat(e));return null!==t&&"product"===t.getAttribute("data-type")}function Fi(){var e=function(e,t){return window.frmCachedSubFields=window.frmCachedSubFields||{},window.frmCachedSubFields[e]=window.frmCachedSubFields[e]||{},window.frmCachedSubFields[e][t]},t=function(e,t,n){window.frmCachedSubFields=window.frmCachedSubFields||{},window.frmCachedSubFields[e]=window.frmCachedSubFields[e]||{},window.frmCachedSubFields[e][t]=n},n=[1,2,3,4,5,6,7,8,9,10,11,12].map(function(e){return"frm".concat(e)}),o=["first","middle","last"];document.addEventListener("change",function(i){i.target.matches(".frm_name_layout_dropdown")&&function(i){var a,l=i.target.value.split("_"),s=i.target.dataset.fieldId,c=document.querySelector("#field_".concat(s,"_inner_container .frm_combo_inputs_container")),d=(a=l.length,"frm".concat(parseInt(12/a)));o.forEach(function(e){var o,i=c.querySelector('[data-sub-field-name="'.concat(e,'"]'));i&&(i.classList.add("frm_hidden"),(o=i.classList).remove.apply(o,r(n)),t(s,e,i))}),l.forEach(function(t){var n=e(s,t);n&&(n.classList.remove("frm_hidden"),n.classList.add(d),c.append(n))}),o.forEach(function(e){var n=document.querySelector(".frm_sub_field_options-".concat(e,'[data-field-id="').concat(s,'"]'));n&&(n.classList.add("frm_hidden"),t(s,"".concat(e,"_options"),n))}),l.forEach(function(t){var n=e(s,"".concat(t,"_options"));n&&n.classList.remove("frm_hidden")})}(i)},!1)}function Di(e,t){var n,r,o,i=!1,a=!1;(n=t.newOption?(new DOMParser).parseFromString(t.newOption,"text/html").body.childNodes[0]:t).querySelectorAll("svg").forEach(function(e){(r=e.getElementsByTagNameNS("http://www.w3.org/2000/svg","use")[0])&&("#frm_drag_icon"===(o=qo(r))&&(i=!0),"#frm_save_icon"===o&&(a=!0))}),i||n.prepend(h.drag.cloneNode(!0)),n.querySelector("[id^=field_key_".concat(e,"-]"))&&!a&&n.querySelector("[id^=field_key_".concat(e,"-]")).after(h.save.cloneNode(!0)),t.newOption&&(t.newOption=n)}function Mi(){var e=document.getElementById("frm_leave_email").value.trim();if(""!==e)if(!1!==/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/i.test(e)){var t=jQuery("#frmapi-email-form").find("form"),n=t.find('[type="email"]').not(".frm_verify");if(n.length){if(document.getElementById("frm_empty_inbox")){document.getElementById("frm-add-my-email-address").remove();var r=document.getElementById("frm_leave_email_wrapper");if(r){r.classList.add("frm_hidden");var o=d({className:"frm-wait frm_spinner"});o.style.visibility="visible",o.style.float="none",o.style.width="unset",r.parentElement.insertBefore(o,r.nextElementSibling)}}n.val(e),jQuery.ajax({type:"POST",url:t.attr("action"),data:"".concat(t.serialize(),"&action=frm_forms_preview")}).done(function(e){if(jQuery(e).find(".frm_message").text().trim().includes("Thanks!")){var t=document.getElementById("frmapi-email-form").parentElement.querySelector(".frm_spinner");t&&t.remove(),wp.hooks.applyFilters("frm_thank_you_on_signup",!0)&&document.getElementById("frm_leave_email_wrapper").replaceWith(d(I("Thank you for signing up!","formidable")))}else pi("invalid")})}}else pi("invalid");else pi("empty")}function Pi(e){var t;if(O||e.stopPropagation(),!(e.target.classList.contains("frm-show-box")||null!==(t=e.target.parentElement)&&void 0!==t&&t.classList.contains("frm-show-box"))){var n=document.getElementById("frm_adv_info");n&&(n.dataset.fills===e.target.id&&void 0!==e.target.id||e.target.closest("#frm_adv_info")||"none"===n.style.display||$o(n))}}return{init:function(){var e,t,o,i,a,l,s;!function(){jQuery(document).on("click","#frm-add-my-email-address",function(e){e.preventDefault(),Mi()});var e=document.getElementById("frm_empty_inbox"),t=document.getElementById("frm_leave_email");if(e&&t){var n=document.getElementById("frm-leave-email-modal");n.classList.remove("frm_hidden"),n.querySelector(".frm_modal_footer").classList.add("frm_hidden"),t.addEventListener("keyup",function(e){if("Enter"===e.key){var t=document.getElementById("frm-add-my-email-address");t&&t.click()}})}}(),t=document.querySelector(".frm-admin-footer-links"),o=null!==(e=document.querySelector(".frm_page_container"))&&void 0!==e?e:document.getElementById("wpbody-content"),t&&o&&(o.append(t),t.classList.remove("frm_hidden")),document.addEventListener("show.bs.dropdown",function(){H()}),C={},jQuery(".wp-admin").on("click",function(e){var t=jQuery(e.target),n=jQuery(".dropdown.open");!n.length||t.hasClass("dropdown")||t.closest(".dropdown").length||n.removeClass("open")}),jQuery("#frm_bs_dropdown:not(.open) a").on("click",At),void 0===E&&(E=jQuery(document.getElementById("form_id")).val()),document.querySelectorAll(".frm-warning-dismiss").forEach(function(e){_(e,St)}),frmAdminBuild.inboxBannerInit(),b.length>0?frmAdminBuild.buildInit():null!==document.getElementById("frm_notification_settings")?frmAdminBuild.settingsInit():null!==document.getElementById("frm_styling_form")?frmAdminBuild.styleInit():null!==document.getElementById("form_global_settings")?frmAdminBuild.globalSettingsInit():null!==document.getElementById("frm_export_xml")?frmAdminBuild.exportInit():null!==document.querySelector(".frm-inbox-wrapper")?frmAdminBuild.inboxInit():null!==document.getElementById("frm-welcome")?frmAdminBuild.solutionInit():(function(){if(document.body.classList.contains("frm-admin-page-entries")){var e=document.getElementById("screen-options-wrap");if(e){var t=c({className:"frm_warning_style",text:I("Only 10 columns can be selected at a time.","formidable")});t.style.margin=0;var n=e.querySelector("legend");n.parentNode.insertBefore(t,n.nextElementSibling);var r=Array.from(e.querySelectorAll('input[type="checkbox"]')),o=function(){r.reduce(function(e,t){return t.checked?e+1:e},0)>=10?(t.classList.remove("frm_hidden"),r.forEach(function(e){e.checked||(e.parentNode.classList.add("frm_noallow"),e.disabled=!0)})):t.classList.add("frm_hidden")};o(),r.forEach(function(e){e.addEventListener("change",function(e){e.target.checked?o():(t.classList.add("frm_hidden"),r.forEach(function(e){e.parentNode.classList.remove("frm_noallow"),e.disabled=!1}))})})}}}(),yi(),jQuery("[data-frmprint]").on("click",function(){return window.print(),!1})),jQuery(document).on("change","select[data-toggleclass], input[data-toggleclass]",xo),function(){function e(e){var t=e.options[e.selectedIndex];e.querySelectorAll("option[data-dependency]:not([data-dependency-skip])").forEach(function(e){var n=document.querySelector(e.dataset.dependency);null==n||n.classList.toggle("frm_hidden",t!==e)})}document.querySelectorAll("select.frm_select_with_dependency").forEach(e),frmDom.util.documentOn("change","select.frm_select_with_dependency",function(t){return e(t.target)})}(),(jQuery(document.getElementById("frm_adv_info")).length>0||jQuery(".frm_field_list").length>0)&&frmAdminBuild.panelInit(),i=jQuery(".wrap, .frm_wrap"),a=document.getElementById("frm_confirm_modal"),l=!1,s=!1,jQuery(a).on("click","[data-deletefield]",xn),jQuery(a).on("click","[data-removeid]",R),jQuery(a).on("click","[data-trashtemplate]",wi),i.on("click",".frm_remove_tag, .frm_remove_form_action",R),i.on("click","a[data-frmverify]",F),i.on("click","a[data-frmtoggle]",P),i.on("click","a[data-frmhide], a[data-frmshow]",z),i.on("change","input[data-frmhide], input[data-frmshow]",z),i.on("click",".widget-top,a.widget-action",G),i.on("mouseenter.frm",".frm_bstooltip, .frm_help",function(){jQuery(this).off("mouseenter.frm"),function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e;(n.hasAttribute("data-toggle")||n.hasAttribute("data-bs-toggle"))&&(n.parentElement.setAttribute("title",n.getAttribute("title")),n.removeAttribute("title"),n.classList.remove("frm_bstooltip"),n.parentElement.classList.add("frm_bstooltip"),n=n.parentElement),jQuery(n).tooltip(),t&&(H(),jQuery(n).tooltip("show"))}(this,!0)}),jQuery(document).on("click","#doaction, #doaction2",function(e){var t="doaction"===this.id?"top":"bottom",n=document.getElementById("bulk-action-selector-".concat(t)),r=document.getElementById("confirm-bulk-delete-".concat(t));if(null!==n&&null!==r){if(l=this,!s&&"bulk_delete"===n.value)return e.preventDefault(),D(r),!1}else l=!1}),jQuery(document).on("click","#frm-confirmed-click",function(e){if(!1!==l&&!e.target.classList.contains("frm-btn-inactive"))return"confirm-bulk-delete"===this.getAttribute("href")?(e.preventDefault(),s=!0,l.click(),!1):void 0}),n(4260).initUpgradeModal(),frmDom.util.documentOn("click","[data-modal-title]",Kr);var d=jQuery(document.getElementById("frm_shortcodediv"));d.length>0&&(jQuery("a.edit-frm_shortcode").on("click",function(){return d.is(":hidden")&&(d.slideDown("fast"),this.style.display="none"),!1}),jQuery(".cancel-frm_shortcode","#frm_shortcodediv").on("click",function(){return d.slideUp("fast"),d.siblings("a.edit-frm_shortcode").show(),!1})),jQuery(document).on("click","#frm-nav-tabs a",U),jQuery(".post-type-frm_display .frm-nav-tabs a, .frm-category-tabs a").on("click",function(){var e=this.classList.contains("frm_show_upgrade_tab");if(!this.classList.contains("frm_noallow")||e)return e&&Jr(this),W(this),!1}),W(jQuery(".starttab a"),"auto"),jQuery(document).on("click","#frm-fid-search-menu a",function(){var e=this.id.replace("fid-","");return jQuery('select[name="fid"]').val(e),Hr(document.getElementById("posts-filter")),!1}),jQuery(".frm_select_box").on("click focus",function(){this.select()}),jQuery(document).on("input search change",".frm-auto-search:not(#frm-form-templates-page #template-search-input)",Qi),jQuery(document).on("focusin click",".frm-auto-search",Ei);var u=jQuery(".frm-auto-search");""!==u.val()&&u.trigger("keyup"),FrmFormsConnect.init(),jQuery(document).on("click",".frm-install-addon",fi),jQuery(document).on("click",".frm-activate-addon",ui),jQuery(document).on("click",".frm-solution-multiple",di),jQuery("button, input[type=submit]").on("click",Ci),document.addEventListener("click",function(e){if("LABEL"===e.target.nodeName){var t=e.target.getAttribute("for");if(t){var n=document.getElementById(t);if(n&&n.nextElementSibling){var r=n.nextElementSibling.querySelector("button.dropdown-toggle.multiselect");r&&setTimeout(function(){return r.click()},0)}}}}),frmAdminBuild.hooks.addFilter("frm_before_embed_modal",function(e,t){var n,r,o=t.element;if("form"!==t.type)return e;var i=o.closest("tr");if(i)n=parseInt(i.querySelector(".column-id").textContent),r=i.querySelector(".column-form_key").textContent;else{n=document.getElementById("form_id").value;var a=document.getElementById("frm_form_key");if(a)r=a.value;else{var l=document.getElementById("frm-previewDrop");l&&(r=l.nextElementSibling.querySelector(".dropdown-item a").getAttribute("href").split("form=")[1])}}return[n,r]}),document.querySelectorAll("#frm-show-fields > li, .frm_grid_container li").forEach(function(e,t){e.addEventListener("click",function(){var e,t,n;t=(null===(e=this.querySelector("li"))||void 0===e?void 0:e.dataset.fid)||this.dataset.fid,(n=document.querySelectorAll("[id^=frm_delete_field_".concat(t,"-]"))).length<2||r(n).slice(1).forEach(function(e,n){e.classList.contains("frm_other_option")||Di(t,e)})})});var f=document.getElementById("frm_small_screen_proceed_button");f&&_(f,function(){var e;null===(e=document.getElementById("frm_small_device_message_container"))||void 0===e||e.remove(),p("small_screen_proceed",new FormData)});var m=document.getElementById("frm_sale_banner"),g=null==m?void 0:m.querySelector(".dismiss");m&&(_(m,function(e){e.target.closest(".dismiss")||(window.location.href=m.getAttribute("data-url"))}),g&&_(g,function(){m.remove();var e=new FormData;p("sale_banner_dismiss",e)}))},buildInit:function(){jQuery("#frm_builder_page").on("mouseup","*:not(.frm-show-box)",Pi),g=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100;return frmDom.util.debounce(e,t)}(oe,10),y=document.getElementById("post-body-content"),v=jQuery(y),jQuery(".frm_field_loading").length&&Ee(jQuery(".frm_field_loading").first().attr("id")),V("ul.frm_sorting"),document.querySelectorAll(".field_type_list > li:not(.frm_show_upgrade)").forEach(X),jQuery("ul.field_type_list, .field_type_list li, ul.frm_code_list, .frm_code_list li, .frm_code_list li a, #frm_adv_info #category-tabs li, #frm_adv_info #category-tabs li a").disableSelection(),jQuery(".frm_submit_ajax").on("click",zr),jQuery(".frm_submit_no_ajax").on("click",Gr),Wr(),jQuery("a.edit-form-status").on("click",Sr),jQuery(".cancel-form-status").on("click",Lr),jQuery(".save-form-status").on("click",function(){var e=jQuery(document.getElementById("form_change_status")).val();return jQuery('input[name="new_status"]').val(e),jQuery(document.getElementById("form-status-display")).html(e),jQuery(".cancel-form-status").trigger("click"),!1}),jQuery(".frm_form_builder form").first().on("submit",function(){jQuery(".inplace_field").trigger("blur")}),ci(),Dn();var e,t=jQuery(j),n=document.getElementById("frm_form_editor_container");t.on("click",".frm_add_logic_row",Sn),t.on("click",".frm_add_watch_lookup_row",In),t.on("change",".frm_get_values_form",On),t.on("change",".frm_logic_field_opts",wr),t.on("frm-multiselect-changed",'select[name^="field_options[admin_only_"]',Ir),jQuery(document.getElementById("frm-insert-fields")).on("click",".frm_add_field",Ae),b.on("click",".frm_clone_field",Be),t.on("blur",'input[id^="frm_calc"]',Je),t.on("change","input.frm_format_opt, input.frm_max_length_opt",lt),t.on("change click","[data-changeme]",it),t.on("click","input.frm_req_field",st),t.on("click",".frm_mark_unique",dt),t.on("change",".frm_repeat_format",Xn),t.on("change",".frm_repeat_limit",Yn),t.on("change",".frm_js_checkbox_limit",Zn),t.on("input",'input[name^="field_options[add_label_"]',function(){er(this,"add")}),t.on("input",'input[name^="field_options[remove_label_"]',function(){er(this,"remove")}),t.on("change",'select[name^="field_options[data_type_"]',Fn),jQuery(n).on("click",".frm-collapse-page",Mn),jQuery(n).on("click",".frm-collapse-section",Hn),t.on("click",".frm-single-settings h3, .frm-single-settings h4.frm-collapsible",Rn),t.on("keydown",".frm-single-settings h3, .frm-single-settings h4.frm-collapsible",function(e){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),Rn.call(this,e))}),jQuery(n).on("show.bs.dropdown hide.bs.dropdown",ze),t.on("click",".frm_toggle_sep_values",yt),t.on("click",".frm_toggle_image_options",vt),t.on("click",".frm_remove_image_option",Et),t.on("click",".frm_choose_image_box",xt),t.on("change",".frm_hide_image_text",Qt),t.on("change",".frm_field_options_image_size",jt),t.on("click",".frm_multiselect_opt",kt),b.on("mousedown","input, textarea, select",Lt),b.on("click","input[type=radio], input[type=checkbox]",Lt),b.on("click",".frm_delete_field",Nt),b.on("click",".frm_select_field",Tt),jQuery(document).on("click",".frm_delete_field_group",Ot),jQuery(document).on("click",".frm_clone_field_group",Ft),jQuery(document).on("click","#frm_field_group_controls > span:first-child",Dt),jQuery(document).on("click",".frm-row-layout-option",Yt),jQuery(document).on("click",".frm-merge-fields-into-row .frm-row-layout-option",Zt),jQuery(document).on("click",".frm-custom-field-group-layout",tn),jQuery(document).on("click",".frm-merge-fields-into-row .frm-custom-field-group-layout",rn),jQuery(document).on("click",".frm-break-field-group",cn),b.on("click","#frm_field_group_popup .frm_grid_container input",dn),jQuery(document).on("click",".frm-cancel-custom-field-group-layout",un),jQuery(document).on("click",".frm-save-custom-field-group-layout",mn),b.on("click","ul.frm_sorting",_n),jQuery(document).on("click",".frm-merge-fields-into-row",jn),jQuery(document).on("click",".frm-delete-field-groups",Qn),b.on("click",'.frm-field-action-icons [data-toggle="dropdown"]',function(){this.closest("li.form-field").classList.add("frm-field-settings-open"),jQuery(document).on("click","#frm_builder_page",Te)}),b.on("mousemove","ul.frm_sorting",Oe),b.on("show.bs.dropdown",".frm-field-action-icons",Me),jQuery(document).on("show.bs.dropdown","#frm_field_group_controls",Pe),t.on("click",".frm_single_option a[data-removeid]",It),t.on("mousedown",".frm_single_option input[type=radio]",Bt),t.on("focusin",".frm_single_option input[type=text]",qt),t.on("click",".frm_add_opt",_t),t.on("change",".frm_single_option input",nr),t.on("change",".frm_image_id",nr),t.on("change",".frm_toggle_mult_sel",pt),b.on("click",".frm_primary_label",Un),b.on("click",".frm_description",Wn),b.on("click","li.ui-state-default:not(.frm_noallow)",$n),b.on("dblclick","li.ui-state-default",Jn),t.on("change",".frm_tax_form_select",tr),t.on("change","select.conf_field",ut),t.on("change",".frm_get_field_selection",Qr),t.on("click",".frm-show-inline-modal",Cr),t.on("keydown",".frm-show-inline-modal",function(e){var t=e.key;"Enter"!==t&&" "!==t||(e.preventDefault(),Cr.call(this,e))}),t.on("click",".frm-inline-modal .dismiss",Nr),jQuery(document).on("change","[data-frmchange]",Or),document.addEventListener("click",Tr),t.on("change",".frm_include_extras_field",et),t.on("change",'select[name^="field_options[form_select_"]',Ni),jQuery(document).on("submit","#frm_js_build_form",zo),jQuery(document).on("change","#frm_builder_page input:not(.frm-search-input):not(.frm-custom-grid-size-input), #frm_builder_page select, #frm_builder_page textarea",Po),rt(),jQuery(document).on("change",".frmjs_prod_data_type_opt",Ti),jQuery(document).on("focus",'.frm-single-settings ul input[type="text"][name^="field_options[options_"]',qn),jQuery(document).on("blur",'.frm-single-settings ul input[type="text"][name^="field_options[options_"]',Nn),frmDom.util.documentOn("click",".frm-show-field-settings",$n),frmDom.util.documentOn("change","select.frm_format_dropdown, select.frm_phone_type_dropdown",Kn),t.on("keydown",'.frm_single_option input[name^="field_options["], .frm_single_option input[name^="rows_"]',function(e){"Enter"===e.key&&function(e){var t=e.closest(".frm_single_option").parentElement.querySelectorAll('.frm_single_option input[name^="field_options[" ], .frm_single_option input[name^="rows_"]'),n=Array.from(t),r=n.indexOf(e);if(!(r<0)){var o=n.slice(r+1).find(function(e){return null!==e.offsetParent});if(o){o.focus();var i=o.value.length;o.setSelectionRange(i,i)}}}(e.currentTarget)}),!1!==(e=Bi("#frm-bulk-modal","700px"))&&(jQuery(".frm-insert-preset").on("click",mt),jQuery(j).on("click","a.frm-bulk-edit-link",function(t){t.preventDefault();var n="",r=jQuery(this).closest("[data-fid]").data("fid"),o=yr(r),i=Oi(r),a=document.getElementById("frm_field_".concat(r,"_opts"));if(a){var l=a.getElementsByTagName("li");document.getElementById("bulk-field-id").value=r;for(var s=0;s=l.length-1&&(document.getElementById("frm_bulk_options").value=n)}return e.dialog("open"),!1}}),jQuery("#frm-update-bulk-opts").on("click",function(){var t=document.getElementById("bulk-field-id").value;document.getElementById("bulk-option-type").value||(this.classList.add("frm_loading_button"),frmAdminBuild.updateOpts(t,document.getElementById("frm_bulk_options").value,e),Po())})),qr(),document.addEventListener("frm_added_field",qr),Ie(),Fi(),kr(),frmDom.util.documentOn("change",".frm_show_password_setting_input",function(e){var t=e.target.getAttribute("data-fid"),n=document.getElementById("frm_field_id_".concat(t));n&&n.classList.toggle("frm_disabled_show_password",!e.target.checked)}),document.addEventListener("scroll",Fo,!0),document.addEventListener("change",To),document.querySelector(".frm_form_builder").addEventListener("mousedown",function(e){e.shiftKey&&e.preventDefault()}),wp.hooks.addAction("frmShowedFieldSettings","formidableAdmin",function(e,t){t.querySelectorAll(".frm-collapse-me").forEach(Gn)},9999)},settingsInit:function(){var e=jQuery(document.getElementById("frm_notification_settings"));e.on("click",".frm_email_buttons",io),e.on("click",".frm_remove_field",ao),e.on("change",".frm_to_row, .frm_from_row",lo),e.on("change",".frm_tax_selector",wo),e.on("change","select.frm_single_post_field",_o),e.on("change","select.frm_toggle_post_content",po),e.on("change","select.frm_dyncontent_opt",go),e.on("change",".frm_post_type",yo),e.on("click",".frm_add_postmeta_row",bo),e.on("click",".frm_add_posttax_row",ho),e.on("click",".frm_toggle_cf_opts",Qo),e.on("click",".frm_duplicate_form_action",Zr),jQuery(".frm_actions_list").on("click",".frm_active_action",to),jQuery("#frm-show-groups, #frm-hide-groups").on("click",no),ci(),jQuery("ul.frm_actions_list li").each(function(){so(jQuery(this).children("a").data("actiontype"));var e=jQuery(this).find("i");"none"!==e.css("background-image")&&e.addClass("frm-inverse")}),jQuery(".frm_submit_settings_btn").on("click",Eo),Wr();var t=jQuery(".frm_form_settings");t.on("click",".frm_add_form_logic",mo),t.on("click",".frm_already_used",fo),document.addEventListener("click",function(e){var t=e.target;t.closest(".frm_image_preview_wrapper")&&(t.closest(".frm_choose_image_box")?xt.bind(t)(e):t.closest(".frm_remove_image_option")&&Et.bind(t)(e))}),t.on("mouseup","*:not(.frm-show-box)",Pi),jQuery(document.getElementById("no_save")).on("change",function(){this.checked&&!0!==confirm(i.no_save_warning)&&jQuery(this).attr("checked",!1)}),jQuery('select[name="options[edit_action]"]').on("change",Yr);var n=document.getElementById("logged_in");jQuery(n).on("change",function(){this.checked?Ii(".hide_logged_in"):Li(".hide_logged_in")});var r=jQuery(document.getElementById("frm_cookie_expiration"));jQuery(document.getElementById("frm_single_entry_type")).on("change",function(){"cookie"===this.value?r.fadeIn("slow"):r.fadeOut("slow")});var o=document.getElementById("single_entry");jQuery(o).on("change",function(){this.checked?Ii(".hide_single_entry"):Li(".hide_single_entry"),this.checked&&"cookie"===jQuery(document.getElementById("frm_single_entry_type")).val()?r.fadeIn("slow"):r.fadeOut("slow")}),jQuery(".hide_save_draft").hide();var a=jQuery(document.getElementById("save_draft"));a.on("change",function(){this.checked?jQuery(".hide_save_draft").fadeIn("slow"):jQuery(".hide_save_draft").fadeOut("slow")}),Rr(a);var l=document.getElementById("editable");jQuery(l).on("change",function(){this.checked?(jQuery(".hide_editable").fadeIn("slow"),Rr(document.getElementById("edit_action"))):(jQuery(".hide_editable").fadeOut("slow"),jQuery(".edit_action_message_box").fadeOut("slow"))}),jQuery(document).on("change","#protect_files",function(){this.checked?jQuery(".hide_protect_files").fadeIn("slow"):jQuery(".hide_protect_files").fadeOut("slow")}),jQuery(document).on("frm-multiselect-changed","#protect_files_role",Ir),jQuery(document).on("submit",".frm_form_settings",Ho),jQuery(document).on("change","#form_settings_page input:not(.frm-search-input), #form_settings_page select, #form_settings_page textarea",Po),yi(),jQuery(document).on("frm-action-loaded",Jo),frmDom.util.documentOn("change",'.frm_on_submit_type input[type="radio"]',function(e){if(e.target.checked){var t=e.target.closest(".frm_form_action_settings");t.querySelectorAll(".frm_on_submit_dependent_setting:not(.frm_hidden)").forEach(function(e){e.classList.add("frm_hidden")}),t.querySelectorAll(".frm_on_submit_dependent_setting[data-show-if-".concat(e.target.value,"]")).forEach(function(e){e.classList.remove("frm_hidden")}),t.setAttribute("data-on-submit-type",e.target.value)}}),wp.hooks.addAction("frm_reset_fields_updated","formidableAdmin",Ro)},panelInit:function(){jQuery(".frm_wrap, #postbox-container-1").on("click",".frm_insert_code",ko),jQuery(document).on("change",".frm_insert_val",function(){Ao(jQuery(this).data("target"),jQuery(this).val()),jQuery(this).val("")}),jQuery(document).on("click change",'[name="frm-id-key-condition"]',Io),jQuery(document).on("keyup change",".frm-build-logic",Bo),Xr(),jQuery(document).on("frmElementAdded",function(e,t){Xr(t)}),jQuery(document).on("mousedown",".frm-show-box",No);var e=document.getElementById("form_settings_page"),t=document.body.classList.contains("post-type-frm_display"),n=document.getElementById("frm_insert_fields_tab");(null!==e||t||O)&&jQuery(document).on("focusin","form input, form textarea",function(r){var o,i,a;if(r.stopPropagation(),Co(this),jQuery(this).is(":not(:submit, input[type=button], .frm-search-input, input[type=checkbox])")){if(jQuery(r.target).closest("#frm_adv_info").length)return;if(null!==e||O)o=jQuery("#frm_html_tab"),jQuery(this).closest("#html_settings").length>0?(o.show(),o.siblings().hide(),jQuery("#frm_html_tab a").trigger("click"),void 0===(a=this.id)||a.includes("-search-input")||(jQuery("#frm-adv-info-tab").attr("data-fills",a.trim()),this.classList.contains("field_custom_html")&&(a="field_custom_html"),jQuery.inArray(a,["after_html","before_html","submit_html","field_custom_html"])>=0&&(jQuery(".frm_code_list li:not(.show_".concat(a,")")).addClass("frm_hidden"),jQuery(".frm_code_list li.show_".concat(a)).removeClass("frm_hidden")))):((i=jQuery(".frm-category-tabs li"))[0]&&(i[0].style.display=""),n.click(),o.hide(),o.siblings().show());else if(t){var l=new CustomEvent("frm_legacy_views_handle_field_focus");l.frmData={idAttrValue:this.id},document.dispatchEvent(l)}}}),jQuery(".frm_wrap, #postbox-container-1").on("mousedown","#frm_adv_info a, .frm_field_list a",function(e){e.preventDefault()});var r=jQuery("#frm_adv_info");r.on("click",".subsubsub a.frmids",function(e){Ko("frmids",e)}),r.on("click",".subsubsub a.frmkeys",function(e){Ko("frmkeys",e)})},inboxInit:function(){var e;jQuery(".frm_inbox_dismiss").on("click",function(e){var t=this.parentNode.parentNode,n=t.getAttribute("data-message"),r=this.getAttribute("href"),o=t.cloneNode(!0),i=document.querySelector(".frm-dismissed-inbox-messages");if("free_templates"!==n||this.classList.contains("frm_inbox_dismiss")){e.preventDefault();var a={action:"frm_inbox_dismiss",key:n,nonce:frmGlobal.nonce},l="frm_inbox_slide_in"===t.id;l&&(t.classList.remove("s11-fadein"),t.classList.add("s11-fadeout"),t.addEventListener("animationend",function(){return t.remove()},{once:!0})),Ai(a,function(){if(!l)return"#"!==r?(window.location=r,!0):void Si(t,function(){var e;null!==i&&(o.classList.remove("frm-fade"),null===(e=o.querySelector(".frm-inbox-message-heading .frm_inbox_dismiss"))||void 0===e||e.remove(),i.append(o)),1===t.parentNode.querySelectorAll(".frm-inbox-message-container").length&&(document.getElementById("frm_empty_inbox").classList.remove("frm_hidden"),t.parentNode.closest(".frm-active").classList.add("frm-empty-inbox"),_i()),t.remove()})})}}),!1===(null===(e=document.getElementById("frm_empty_inbox"))||void 0===e?void 0:e.classList.contains("frm_hidden"))&&_i()},solutionInit:function(){jQuery(document).on("submit","#frm-new-template",hi)},styleInit:function(){var e=jQuery(".frm_image_preview_wrapper");e.on("click",".frm_choose_image_box",xt),e.on("click",".frm_remove_image_option",Et),wp.hooks.doAction("frm_style_editor_init")},customCSSInit:function(){console.warn("Calling frmAdminBuild.customCSSInit is deprecated.")},globalSettingsInit:function(){jQuery(document).on("click","[data-frmuninstall]",Xo),ci();var e=document.getElementById("licenses_settings");null!==e&&jQuery(e).on("click",".edd_frm_save_license",Yo),jQuery(document).on("click","#frm-new-template button",vi),jQuery("#frm-dismissable-cta .dismiss").on("click",function(e){e.preventDefault(),jQuery.post(ajaxurl,{action:"frm_lite_settings_upgrade",nonce:frmGlobal.nonce}),jQuery(".settings-lite-cta").remove()});var t=document.getElementById("frm_re_type");t&&t.addEventListener("change",ji),document.querySelector(".frm_captchas").addEventListener("change",function(e){var t,n=null===(t=document.querySelector('.frm_captchas input[checked="checked"]'))||void 0===t?void 0:t.value,r=e.target.value!==n;document.querySelector(".captcha_settings .frm_note_style").classList.toggle("frm_hidden",!r)}),frmDom.util.documentOn("submit",".frm_settings_form",function(){x=0});var n=document.getElementById("manage_styles_settings");n&&n.addEventListener("change",function(e){var t=e.target;"SELECT"===t.nodeName&&t.dataset.name&&!t.getAttribute("name")&&t.setAttribute("name",t.dataset.name)});var r=document.getElementById("payments_settings"),o=null==r?void 0:r.querySelectorAll('[name="frm_payment_section"]');o&&o.forEach(function(e){e.addEventListener("change",function(){if(e.checked){var t=r.querySelector('label[for="'.concat(e.id,'"]'));t&&t.setAttribute("aria-selected","true"),o.forEach(function(t){if(t!==e){var n=r.querySelector('label[for="'.concat(t.id,'"]'));n&&n.setAttribute("aria-selected","false")}})}})})},exportInit:function(){jQuery(".frm_form_importer").on("submit",Zo),jQuery(document.getElementById("frm_export_xml")).on("submit",ti),jQuery("#frm_export_xml input, #frm_export_xml select").on("change",ni),jQuery('input[name="frm_import_file"]').on("change",ri),document.querySelector('select[name="format"]').addEventListener("change",ii),jQuery('input[name="frm_export_forms[]"]').on("click",si),ci(),jQuery(".frm-feature-banner .dismiss").on("click",function(e){e.preventDefault(),jQuery.post(ajaxurl,{action:"frm_dismiss_migrator",plugin:this.id,nonce:frmGlobal.nonce}),this.parentElement.remove()}),li(oi()),document.querySelector("#frm-export-select-all").addEventListener("change",function(e){document.querySelectorAll('[name="frm_export_forms[]"]').forEach(function(t){t.checked=e.target.checked})})},inboxBannerInit:function(){var e=document.getElementById("frm_banner");if(e){var t=e.querySelector(".frm-banner-dismiss");document.addEventListener("click",function(n){n.target===t&&Ai({action:"frm_inbox_dismiss",key:e.dataset.key,nonce:frmGlobal.nonce},function(){jQuery(e).fadeOut(400,function(){e.remove()})})})}},updateOpts:function(e,t,n){var r=yr(e),o=Oi(e)?"frm_bulk_products":"frm_import_options";jQuery.ajax({type:"POST",url:ajaxurl,data:{action:o,field_id:e,opts:t,separate:r,nonce:frmGlobal.nonce},success:function(t){document.getElementById("frm_field_".concat(e,"_opts")).innerHTML=t,wp.hooks.doAction("frm_after_bulk_edit_opts",e),ir(e),void 0!==n&&(n.dialog("close"),document.getElementById("frm-update-bulk-opts").classList.remove("frm_loading_button"))}})},triggerRemoveLogic:function(e,t){jQuery("#frm_logic_".concat(e,"_").concat(t," .frm_remove_tag")).trigger("click")},downloadXML:function(e,t,n){var r="".concat(ajaxurl,"?action=frm_").concat(e,"_xml&ids=").concat(t);null!==n&&(r="".concat(r,"&is_template=").concat(n)),location.href=r},hooks:{applyFilters:function(e){for(var t,n=arguments.length,r=new Array(n>1?n-1:0),o=1;o1?n-1:0),o=1;o1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(n){var r=E,o=0;"summary"===e&&(o=b.children('li[data-type="break"]').length>0?1:0),jQuery.ajax({type:"POST",url:ajaxurl,data:Object.assign(_e(e,0,r,o),{field_options:t}),success:function(t){n(t),setTimeout(function(){Er(),We(t,!0);var n=ye(t);n&&wp.hooks.doAction("frm_after_field_added_in_form_builder",{field:t,fieldId:n,fieldType:e,form_id:r})},10)},error:he})})},confirmLinkClick:D,handleInsertFieldByDraggingResponse:ge,handleAddFieldClickResponse:Le,syncLayoutClasses:ae,moveFieldSettings:oo,maybeCollapseSettings:Rn}},window.frmAdminBuild=frmAdminBuildJS(),jQuery(document).ready(function(){var e;frmAdminBuild.init(),document.querySelectorAll(".frm-dropdown-menu").forEach(function(e){e.classList.add("dropdown-menu");var t,n,r=e.querySelector(".frm-dropdown-toggle");r&&(r.hasAttribute("role")||r.setAttribute("role","button"),r.hasAttribute("tabindex")||r.setAttribute("tabindex",0)),"UL"===e.tagName&&(n=(n=(n=(n=(n=(n=(t=e).outerHTML).replace("
            ","")).replaceAll("
          • ",'
          • ",""),t.outerHTML=n)}),null===(e=document.querySelector(".preview.dropdown .frm-dropdown-toggle"))||void 0===e||e.setAttribute("data-bs-toggle","dropdown"),document.querySelectorAll("[data-toggle]").forEach(function(e){return e.setAttribute("data-bs-toggle",e.getAttribute("data-toggle"))})}),window.frm_show_div=function(e,t,n,r){t==n?jQuery(r+e).fadeIn("slow").css("visibility","visible"):jQuery(r+e).fadeOut("slow")},window.frmCheckAll=function(e,t){jQuery('input[name^="'.concat(t,'"]')).prop("checked",Boolean(e))},window.frmCheckAllLevel=function(e,t,n){jQuery(".frm_catlevel_".concat(n)).children(".frm_checkbox").children("label").children('input[name^="'.concat(t,'"]')).prop("checked",Boolean(e))},window.frmGetFieldValues=function(e,t,n,r,o,i){e&&jQuery.ajax({type:"POST",url:ajaxurl,data:"action=frm_get_field_values¤t_field=".concat(t,"&field_id=").concat(e,"&name=").concat(o,"&t=").concat(r,"&form_action=").concat(jQuery('input[name="frm_action"]').val(),"&nonce=").concat(frmGlobal.nonce),success:function(e){document.getElementById("frm_show_selected_values_".concat(t,"_").concat(n)).innerHTML=e,"function"==typeof i&&i()}})},window.frmImportCsv=function(e){var t="";"undefined"!=typeof __FRMURLVARS&&(t=__FRMURLVARS),jQuery.ajax({type:"POST",url:ajaxurl,data:"action=frm_import_csv&nonce=".concat(frmGlobal.nonce,"&frm_skip_cookie=1").concat(t),success:function(t){var n=jQuery(".frm_admin_progress_bar").attr("aria-valuemax"),r=n-t,o=r/n*100;jQuery(".frm_admin_progress_bar").css("width","".concat(o,"%")).attr("aria-valuenow",r),parseInt(t,10)>0?(jQuery(".frm_csv_remaining").html(t),frmImportCsv(e)):(jQuery(document.getElementById("frm_import_message")).html(frm_admin_js.import_complete),setTimeout(function(){location.href="?page=formidable-entries&frm_action=list&form=".concat(e,"&import-message=1")},2e3))}})}})(); \ No newline at end of file +(()=>{var e={65:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(8793),o=n(1323);function i(e){var t=(0,r.A)(e);return function(e){return(0,o.A)(t,e)}}},1323:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r={"!":function(e){return!e},"*":function(e,t){return e*t},"/":function(e,t){return e/t},"%":function(e,t){return e%t},"+":function(e,t){return e+t},"-":function(e,t){return e-t},"<":function(e,t){return e":function(e,t){return e>t},">=":function(e,t){return e>=t},"==":function(e,t){return e===t},"!=":function(e,t){return e!==t},"&&":function(e,t){return e&&t},"||":function(e,t){return e||t},"?:":function(e,t,n){if(e)throw t;return n}};function o(e,t){var n,o,i,a,l,s,c=[];for(n=0;n{"use strict";n.d(t,{A:()=>o});var r=n(65);function o(e){var t=(0,r.A)(e);return function(e){return+t({n:e})}}},8793:(e,t,n)=>{"use strict";var r,o,i,a;function l(e){for(var t,n,l,s,c=[],d=[];t=e.match(a);){for(n=t[0],(l=e.substr(0,t.index).trim())&&c.push(l);s=d.pop();){if(i[n]){if(i[n][0]===s){n=i[n][1]||n;break}}else if(o.indexOf(s)>=0||r[s]l}),r={"(":9,"!":8,"*":7,"/":7,"%":7,"+":6,"-":6,"<":5,"<=":5,">":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},o=["(","?"],i={")":["("],":":["?","?:"]},a=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/},7521:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(6956),o=n(7395);const i=function(e,t){return function(n,i,a){var l=arguments.length>3&&void 0!==arguments[3]?arguments[3]:10,s=e[t];if((0,o.A)(n)&&(0,r.A)(i))if("function"==typeof a)if("number"==typeof l){var c={callback:a,priority:l,namespace:i};if(s[n]){var d,u=s[n].handlers;for(d=u.length;d>0&&!(l>=u[d-1].priority);d--);d===u.length?u[d]=c:u.splice(d,0,c),s.__current.forEach(function(e){e.name===n&&e.currentIndex>=d&&e.currentIndex++})}else s[n]={handlers:[c],runs:0};"hookAdded"!==n&&e.doAction("hookAdded",n,i,a,l)}else console.error("If specified, the hook priority must be a number.");else console.error("The hook callback must be a function.")}}},11:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=function(e,t){return function(){var n,r,o=e[t];return null!==(n=null===(r=o.__current[o.__current.length-1])||void 0===r?void 0:r.name)&&void 0!==n?n:null}}},5375:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(7395);const o=function(e,t){return function(n){var o=e[t];if((0,r.A)(n))return o[n]&&o[n].runs?o[n].runs:0}}},3561:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=function(e,t){return function(n){var r=e[t];return void 0===n?void 0!==r.__current[0]:!!r.__current[0]&&n===r.__current[0].name}}},8830:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=function(e,t){return function(n,r){var o=e[t];return void 0!==r?n in o&&o[n].handlers.some(function(e){return e.namespace===r}):n in o}}},7765:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(3029),o=n(7521),i=n(4194),a=n(8830),l=n(6763),s=n(11),c=n(3561),d=n(5375),u=function e(){(0,r.A)(this,e),this.actions=Object.create(null),this.actions.__current=[],this.filters=Object.create(null),this.filters.__current=[],this.addAction=(0,o.A)(this,"actions"),this.addFilter=(0,o.A)(this,"filters"),this.removeAction=(0,i.A)(this,"actions"),this.removeFilter=(0,i.A)(this,"filters"),this.hasAction=(0,a.A)(this,"actions"),this.hasFilter=(0,a.A)(this,"filters"),this.removeAllActions=(0,i.A)(this,"actions",!0),this.removeAllFilters=(0,i.A)(this,"filters",!0),this.doAction=(0,l.A)(this,"actions"),this.applyFilters=(0,l.A)(this,"filters",!0),this.currentAction=(0,s.A)(this,"actions"),this.currentFilter=(0,s.A)(this,"filters"),this.doingAction=(0,c.A)(this,"actions"),this.doingFilter=(0,c.A)(this,"filters"),this.didAction=(0,d.A)(this,"actions"),this.didFilter=(0,d.A)(this,"filters")};const f=function(){return new u}},4194:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(6956),o=n(7395);const i=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(i,a){var l=e[t];if((0,o.A)(i)&&(n||(0,r.A)(a))){if(!l[i])return 0;var s=0;if(n)s=l[i].handlers.length,l[i]={runs:l[i].runs,handlers:[]};else for(var c=l[i].handlers,d=function(e){c[e].namespace===a&&(c.splice(e,1),s++,l.__current.forEach(function(t){t.name===i&&t.currentIndex>=e&&t.currentIndex--}))},u=c.length-1;u>=0;u--)d(u);return"hookRemoved"!==i&&e.doAction("hookRemoved",i,a),s}}}},6763:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(r){var o=e[t];o[r]||(o[r]={handlers:[],runs:0}),o[r].runs++;for(var i=o[r].handlers,a=arguments.length,l=new Array(a>1?a-1:0),s=1;s{"use strict";n.d(t,{se:()=>r});var r=(0,n(7765).A)();r.addAction,r.addFilter,r.removeAction,r.removeFilter,r.hasAction,r.hasFilter,r.removeAllActions,r.removeAllFilters,r.doAction,r.applyFilters,r.currentAction,r.currentFilter,r.doingAction,r.doingFilter,r.didAction,r.didFilter,r.actions,r.filters},7395:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=function(e){return"string"!=typeof e||""===e?(console.error("The hook name must be a non-empty string."),!1):/^__/.test(e)?(console.error("The hook name cannot begin with `__`."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(e)||(console.error("The hook name can only contain numbers, letters, dashes, periods and underscores."),!1)}},6956:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=function(e){return"string"!=typeof e||""===e?(console.error("The namespace must be a non-empty string."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(e)||(console.error("The namespace can only contain numbers, letters, dashes, periods, underscores and slashes."),!1)}},772:(e,t,n)=>{"use strict";n.d(t,{h:()=>c});var r=n(4467),o=n(5397);function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function a(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:"default";r.data[t]=a(a(a({},l),r.data[t]),e),r.data[t][""]=a(a({},l[""]),r.data[t][""])},u=function(e,t){d(e,t),c()},f=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default",t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0;return r.data[e]||d(void 0,e),r.dcnpgettext(e,t,n,o,i)},m=function(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default"},_=function(e,t,r){var o=f(r,t,e);return n?(o=n.applyFilters("i18n.gettext_with_context",o,e,t,r),n.applyFilters("i18n.gettext_with_context_"+m(r),o,e,t,r)):o};if(e&&u(e,t),n){var p=function(e){s.test(e)&&c()};n.addAction("hookAdded","core/i18n",p),n.addAction("hookRemoved","core/i18n",p)}return{getLocaleData:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default";return r.data[e]},setLocaleData:u,resetLocaleData:function(e,t){r.data={},r.pluralForms={},u(e,t)},subscribe:function(e){return i.add(e),function(){return i.delete(e)}},__:function(e,t){var r=f(t,void 0,e);return n?(r=n.applyFilters("i18n.gettext",r,e,t),n.applyFilters("i18n.gettext_"+m(t),r,e,t)):r},_x:_,_n:function(e,t,r,o){var i=f(o,void 0,e,t,r);return n?(i=n.applyFilters("i18n.ngettext",i,e,t,r,o),n.applyFilters("i18n.ngettext_"+m(o),i,e,t,r,o)):i},_nx:function(e,t,r,o,i){var a=f(i,o,e,t,r);return n?(a=n.applyFilters("i18n.ngettext_with_context",a,e,t,r,o,i),n.applyFilters("i18n.ngettext_with_context_"+m(i),a,e,t,r,o,i)):a},isRTL:function(){return"rtl"===_("ltr","text direction")},hasTranslation:function(e,t,o){var i,a,l=t?t+""+e:e,s=!(null===(i=r.data)||void 0===i||null===(a=i[null!=o?o:"default"])||void 0===a||!a[l]);return n&&(s=n.applyFilters("i18n.has_translation",s,e,t,o),s=n.applyFilters("i18n.has_translation_"+m(o),s,e,t,o)),s}}}},5839:(e,t,n)=>{"use strict";n.d(t,{__:()=>a});var r=n(772),o=n(2133),i=(0,r.h)(void 0,void 0,o.se),a=(i.getLocaleData.bind(i),i.setLocaleData.bind(i),i.resetLocaleData.bind(i),i.subscribe.bind(i),i.__.bind(i));i._x.bind(i),i._n.bind(i),i._nx.bind(i),i.isRTL.bind(i),i.hasTranslation.bind(i)},9575:(e,t,n)=>{"use strict";n.d(t,{__:()=>r.__}),n(181),n(772);var r=n(5839)},181:(e,t,n)=>{"use strict";var r=n(8616),o=n.n(r);n(7604),o()(console.error)},1105:(e,t,n)=>{"use strict";n.r(t),n.d(t,{addonError:()=>f,afterAddonInstall:()=>u,extractErrorFromAddOnResponse:()=>d,toggleAddonState:()=>c});var r=n(9575);function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,a,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,o=e}finally{try{if(!s&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw o}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return i(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n5&&void 0!==arguments[5]?arguments[5]:"frm_activate_addon",d=frm_admin_js,u=document.querySelectorAll(".frm-addon-status");u.forEach(function(t){t.textContent=e,t.style.display="block"}),t.css({opacity:"0"}),document.querySelectorAll(".frm-oneclick").forEach(function(e){e.style.display="none"}),function(){var e=document.getElementById("frm_upgrade_modal");if(e){e.classList.add("frm-success");var t=e.querySelector(".frm-upgrade-message");if(t){var n=t.querySelector("img");t.replaceChildren((0,r.__)("Great! Everything's ready to go!","formidable"),document.createElement("br"),(0,r.__)("You just need to refresh the builder so the new field becomes available.","formidable")),n&&t.append(n)}var o=document.querySelector(".frm-addon-status");o&&(o.textContent="");var i,a=e.querySelector(".frm-circled-icon");if(a)a.classList.add("frm-circled-icon-green"),null===(i=a.querySelector("svg"))||void 0===i||i.replaceWith(s({href:"#frm_checkmark_icon"}))}}();var f={frm_activate_addon:{class:"frm-addon-active",message:d.active},frm_deactivate_addon:{class:"frm-addon-installed",message:d.installed},frm_uninstall_addon:{class:"frm-addon-not-installed",message:d.not_installed}};f.frm_install_addon=f.frm_activate_addon;var _=o(n,1)[0];_&&(_.textContent=f[c].message);var p=o(i,1)[0].parentElement;p.classList.remove("frm-addon-not-installed","frm-addon-installed","frm-addon-active"),p.classList.add(f[c].class),o(t,1)[0].classList.remove("frm_loading_button"),document.querySelectorAll(".frm-admin-page-import, #frm-admin-smtp, #frm-welcome").length>0?window.location.reload():["settings","form_builder"].includes(a)&&u.forEach(function(e){var t=null!==e.closest("#frm_upgrade_modal");e.append(function(e,t){var n,o=[m(e)];return t&&o.push(((n=document.createElement("a")).setAttribute("href","#"),n.classList.add("button","button-secondary","frm-button-secondary","dismiss"),n.textContent=(0,r.__)("Not Now","formidable"),n)),l({className:"frm-save-and-reload-options",children:o})}(a,t))})}function f(e,t,n){e.form?(jQuery(".frm-inline-error").remove(),n.closest(".frm-card").html(e.form).css({padding:5}).find("#upgrade").attr("rel",n.attr("rel")).on("click",_)):(t.append('

            '.concat(e.message,"

            ")),n.removeClass("frm_loading_button"),jQuery(".frm-addon-error").delay(4e3).fadeOut())}function m(e){var t=document.createElement("button");return t.classList.add("frm-save-and-reload","button","button-primary","frm-button-primary"),t.textContent=(0,r.__)("Save and Reload","formidable"),t.addEventListener("click",function(){var t;"form_builder"===e?((t=document.getElementById("frm_submit_side_top")).classList.contains("frm_submit_ajax")&&t.setAttribute("data-new-addon-installed",!0),t.click()):"settings"===e&&function(){var e=document.getElementById("form_settings_page");if(null!==e){var t=e.querySelector("form.frm_form_settings");null!==t&&(wp.hooks.doAction("frm_reset_fields_updated"),t.submit())}}()}),t}function _(e){e.preventDefault();var t=jQuery(this),n=t.parent().parent(),r=t.attr("rel");t.addClass("frm_loading_button"),jQuery.ajax({url:ajaxurl,type:"POST",async:!0,cache:!1,dataType:"json",data:{action:"frm_install_addon",nonce:frmAdminJs.nonce,plugin:r,hostname:n.find("#hostname").val(),username:n.find("#username").val(),password:n.find("#password").val()},success:function(e){var r,o,i=d(e=null!==(r=null===(o=e)||void 0===o?void 0:o.data)&&void 0!==r?r:e);i?f(i,n,t):u(e,t,message,n)},error:function(){t.removeClass("frm_loading_button")}})}},4260:(e,t,n)=>{"use strict";n.r(t),n.d(t,{addOneClick:()=>i,initModal:()=>a,initUpgradeModal:()=>l});var r=n(9575),o=frmDom.svg;function i(e,t,n){var i;if("modal"===t)i=document.getElementById("frm_upgrade_modal");else{if("tab"!==t)return;i=document.getElementById(e.getAttribute("href").substr(1))}var a,l=i.querySelector(".frm-oneclick"),s=i.querySelector(".frm-upgrade-message"),c=i.querySelector(".frm-upgrade-link"),d=i.querySelector(".frm-oneclick-button"),u=i.querySelector(".frm-addon-status"),f=e.getAttribute("data-oneclick"),m=e.getAttribute("data-message"),_="block",p="block",g="none",y=i.querySelector(".frm-circled-icon");y&&(y.classList.remove("frm-circled-icon-green"),null===(a=y.querySelector("svg"))||void 0===a||a.replaceWith(o({href:"#frm_filled_lock_icon"})));var v=i.querySelector(".frm-learn-more");if(v&&(v.href=e.dataset.learnMore),null!==l&&null!==d&&void 0!==f&&f){null===m&&(p="none"),_="none",g="block",f=JSON.parse(f),d.className=d.className.replace(" frm-install-addon","").replace(" frm-activate-addon",""),d.className="".concat(d.className," ").concat(f.class),d.rel=f.url,l.textContent=(0,r.__)("This plugin is not activated. Would you like to activate it now?","formidable"),d.textContent=(0,r.__)("Activate","formidable");var h=e.querySelector("use");h&&(null==y||y.querySelector("svg").replaceWith(o({href:h.getAttribute("href")||h.getAttribute("xlink:href"),classList:["frm_svg32"]})))}m||(m=s.getAttribute("data-default")),void 0!==n&&(m=m.replace('',n)),s.innerHTML=m,e.dataset.upsellImage&&s.append(frmDom.img({src:e.dataset.upsellImage,alt:e.dataset.upgrade})),c.href=function(e,t){var n=e.getAttribute("data-link");return null!=n&&""!==n||(n=t.getAttribute("data-default")),n}(e,c),u.style.display="none",l&&(l.style.display=g),d&&(d.style.display="block"===g?"inline-block":g),s.style.display=p,c.style.display="block"===_?"inline-block":_;var b=c.closest(".frm-upgrade-modal-actions");b&&(b.style.display="block"===_?"flex":_)}function a(e,t){var n=jQuery(e);if(!n.length)return!1;void 0===t&&(t="552px");var r={dialogClass:"frm-dialog",modal:!0,autoOpen:!1,closeOnEscape:!0,width:t,resizable:!1,draggable:!1,open:function(){var e,t;jQuery(".ui-dialog-titlebar").addClass("frm_hidden").removeClass("ui-helper-clearfix"),jQuery("#wpwrap").addClass("frm_overlay"),jQuery(".frm-dialog").removeClass("ui-widget ui-widget-content ui-corner-all"),n.removeClass("ui-dialog-content ui-widget-content"),e=n,t=function(){e.dialog("close")},jQuery(".ui-widget-overlay").on("click",t),e.on("click","a.dismiss",t)},close:function(){jQuery("#wpwrap").removeClass("frm_overlay"),jQuery(".spinner").css("visibility","hidden"),this.removeAttribute("data-option-type");var e=document.getElementById("bulk-option-type");e&&(e.value="")}};return n.dialog(r),n}function l(){var e=a("#frm_upgrade_modal");function t(t){var n,r,o;if((n=t.target).classList){var a=n.classList.contains("frm_show_expired_modal")||null!==n.querySelector(".frm_show_expired_modal")||n.closest(".frm_show_expired_modal");if("change"===t.type&&n.classList.contains("frm_select_with_upgrade")){var l=n.options[n.selectedIndex];l&&l.dataset.upgrade&&(n=l)}if(!n.dataset.upgrade){var s=n.closest("[data-upgrade]");if(!s){if(!(s=n.closest(".frm_field_box")))return;n.dataset.upgrade=""}n=s}if(a)wp.hooks.doAction("frm_show_expired_modal",n);else{var c=n.dataset.upgrade;if(c&&!n.classList.contains("frm_show_upgrade_tab")){t.preventDefault();var d=e.get(0),u=d.querySelector(".frm_lock_icon");u&&(u.style.display="block",u.classList.remove("frm_lock_open_icon"),u.querySelector("use").setAttribute("href","#frm_lock_icon"));var f="frm_upgrade_modal_image",m=document.getElementById(f);m&&m.remove(),n.dataset.image&&u&&(u.style.display="none",u.parentNode.insertBefore(frmDom.img({id:f,src:"".concat(frmGlobal.url,"/images/").concat(n.dataset.image)}),u));var _=d.querySelector(".license-level");_&&(_.textContent=function(e){return e.dataset.requires?e.dataset.requires:"Pro"}(n)),i(n,"modal",c),d.querySelector(".frm_are_not_installed").style.display=n.dataset.image||n.dataset.oneclick?"none":"inline-block",d.querySelector(".frm-upgrade-modal-title-prefix").style.display=n.dataset.oneclick?"inline":"none",d.querySelector(".frm_feature_label").textContent=c,d.querySelector(".frm-upgrade-modal-title-suffix").style.display="none",d.querySelector("h2").style.display="block",e.dialog("open");var p=d.querySelector(".button-primary:not(.frm-oneclick-button)");r=p.getAttribute("href").replace(/(medium=)[a-z_-]+/gi,"$1".concat(n.getAttribute("data-medium"))),null===(o=n.getAttribute("data-content"))&&(o=""),r=r.replace(/(content=)[a-z_-]+/gi,"$1".concat(o)),p.setAttribute("href",r)}}}}!1!==e&&(document.addEventListener("click",t),frmDom.util.documentOn("change","select.frm_select_with_upgrade",t))}},8616:e=>{e.exports=function(e,t){var n,r,o=0;function i(){var i,a,l=n,s=arguments.length;e:for(;l;){if(l.args.length===arguments.length){for(a=0;a{var r;!function(){"use strict";var o={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function i(e){return function(e,t){var n,r,a,l,s,c,d,u,f,m=1,_=e.length,p="";for(r=0;r<_;r++)if("string"==typeof e[r])p+=e[r];else if("object"==typeof e[r]){if((l=e[r]).keys)for(n=t[m],a=0;a=0),l.type){case"b":n=parseInt(n,10).toString(2);break;case"c":n=String.fromCharCode(parseInt(n,10));break;case"d":case"i":n=parseInt(n,10);break;case"j":n=JSON.stringify(n,null,l.width?parseInt(l.width):0);break;case"e":n=l.precision?parseFloat(n).toExponential(l.precision):parseFloat(n).toExponential();break;case"f":n=l.precision?parseFloat(n).toFixed(l.precision):parseFloat(n);break;case"g":n=l.precision?String(Number(n.toPrecision(l.precision))):parseFloat(n);break;case"o":n=(parseInt(n,10)>>>0).toString(8);break;case"s":n=String(n),n=l.precision?n.substring(0,l.precision):n;break;case"t":n=String(!!n),n=l.precision?n.substring(0,l.precision):n;break;case"T":n=Object.prototype.toString.call(n).slice(8,-1).toLowerCase(),n=l.precision?n.substring(0,l.precision):n;break;case"u":n=parseInt(n,10)>>>0;break;case"v":n=n.valueOf(),n=l.precision?n.substring(0,l.precision):n;break;case"x":n=(parseInt(n,10)>>>0).toString(16);break;case"X":n=(parseInt(n,10)>>>0).toString(16).toUpperCase()}o.json.test(l.type)?p+=n:(!o.number.test(l.type)||u&&!l.sign?f="":(f=u?"+":"-",n=n.toString().replace(o.sign,"")),c=l.pad_char?"0"===l.pad_char?"0":l.pad_char.charAt(1):" ",d=l.width-(f+n).length,s=l.width&&d>0?c.repeat(d):"",p+=l.align?f+n+s:"0"===c?f+s+n:s+f+n)}return p}(function(e){if(l[e])return l[e];for(var t,n=e,r=[],i=0;n;){if(null!==(t=o.text.exec(n)))r.push(t[0]);else if(null!==(t=o.modulo.exec(n)))r.push("%");else{if(null===(t=o.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(t[2]){i|=1;var a=[],s=t[2],c=[];if(null===(c=o.key.exec(s)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(a.push(c[1]);""!==(s=s.substring(c[0].length));)if(null!==(c=o.key_access.exec(s)))a.push(c[1]);else{if(null===(c=o.index_access.exec(s)))throw new SyntaxError("[sprintf] failed to parse named argument key");a.push(c[1])}t[2]=a}else i|=2;if(3===i)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");r.push({placeholder:t[0],param_no:t[1],keys:t[2],sign:t[3],pad_char:t[4],align:t[5],width:t[6],precision:t[7],type:t[8]})}n=n.substring(t[0].length)}return l[e]=r}(e),arguments)}function a(e,t){return i.apply(null,[e].concat(t||[]))}var l=Object.create(null);"undefined"!=typeof window&&(window.sprintf=i,window.vsprintf=a,void 0===(r=function(){return{sprintf:i,vsprintf:a}}.call(t,n,t,e))||(e.exports=r))}()},5397:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(1364),o={contextDelimiter:"",onMissingKey:null};function i(e,t){var n;for(n in this.data=e,this.pluralForms={},this.options={},o)this.options[n]=void 0!==t&&n in t?t[n]:o[n]}i.prototype.getPluralForm=function(e,t){var n,o,i,a=this.pluralForms[e];return a||("function"!=typeof(i=(n=this.data[e][""])["Plural-Forms"]||n["plural-forms"]||n.plural_forms)&&(o=function(e){var t,n,r;for(t=e.split(";"),n=0;n{"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,{A:()=>r})},4467:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(9922);function o(e,t,n){return(t=(0,r.A)(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},2327:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(2284);function o(e,t){if("object"!=(0,r.A)(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!=(0,r.A)(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}},9922:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(2284),o=n(2327);function i(e){var t=(0,o.A)(e,"string");return"symbol"==(0,r.A)(t)?t:t+""}},2284:(e,t,n)=>{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}n.d(t,{A:()=>r})}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.exports}function r(e){return function(e){if(Array.isArray(e))return i(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||o(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){if(e){if("string"==typeof e)return i(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(e,t):void 0}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},window.FrmFormsConnect=window.FrmFormsConnect||function(e,t,n){var r={messageBox:null,reset:null,setElements:function(){r.messageBox=e.querySelector(".frm_pro_license_msg"),r.reset=e.getElementById("frm_reconnect_link")}},o={init:function(){r.setElements(),n(e.getElementById("frm_deauthorize_link")).on("click",o.deauthorize),n(".frm_authorize_link").on("click",o.authorize),n(".frm-dashboard-license-options").on("click","#frm_deauthorize_link",o.deauthorize),n(".frm-dashboard-license-options").on("click","#frm_reconnect_link",o.reauthorize),null!==r.reset&&n(r.reset).on("click",o.reauthorize)},authorize:function(){var t=this,r=this.getAttribute("data-plugin"),i=e.getElementById("edd_".concat(r,"_license_key")),a=i.value,l=e.getElementById("proplug-wpmu");this.classList.add("frm_loading_button"),l=null===l?0:l.checked?1:0,n.ajax({type:"POST",url:ajaxurl,dataType:"json",data:{action:"frm_addon_activate",license:a,plugin:r,wpmu:l,nonce:frmGlobal.nonce},success:function(e){o.afterAuthorize(e,i),t.classList.remove("frm_loading_button")}})},afterAuthorize:function(e,t){!0===e.success&&(t.value="•••••••••••••••••••"),wp.hooks.doAction("frm_after_authorize",e),o.showMessage(e)},showProgress:function(e){null===r.messageBox&&r.setElements();var t=r.messageBox;null!==t&&(!0===e.success?(t.classList.remove("frm_error_style"),t.classList.add("frm_message","frm_updated_message")):(t.classList.add("frm_error_style"),t.classList.remove("frm_message","frm_updated_message")),t.classList.remove("frm_hidden"),t.innerHTML=e.message)},showMessage:function(n){null===r.messageBox&&r.setElements();var i=r.messageBox;!0===n.success&&(o.showAuthorized(!0),o.showInlineSuccess(),wp.hooks.doAction("frmAdmin.afterLicenseAuthorizeSuccess",{msg:n})),o.showProgress(n),""!==n.message&&(setTimeout(function(){i.innerHTML="",i.classList.add("frm_hidden"),i.classList.remove("frm_error_style","frm_message","frm_updated_message")},1e4),e.querySelector(".frm-admin-page-dashboard")&&setTimeout(function(){t.location.reload()},1e3))},showAuthorized:function(t){var n=t?"unauthorized":"authorized",r=t?"authorized":"unauthorized",o=e.querySelectorAll(".frm_".concat(n,"_box"));o.length&&o.forEach(function(e){e.className=e.className.replace("frm_".concat(n,"_box"),"frm_".concat(r,"_box"))})},showInlineSuccess:function(){var t=e.querySelectorAll(".frm-confirm-msg [data-success]");t.length&&t.forEach(function(e){e.innerHTML=frmAdminBuild.purifyHtml(e.getAttribute("data-success"))})},reauthorize:function(){return this.innerHTML='',n.ajax({type:"POST",url:ajaxurl,dataType:"json",data:{action:"frm_reset_cache",plugin:"formidable_pro",nonce:frmGlobal.nonce},success:function(e){r.reset.textContent=e.message,"1"===r.reset.getAttribute("data-refresh")&&t.location.reload()}}),!1},deauthorize:function(){if(!confirm(frmGlobal.deauthorize))return!1;var t=this.getAttribute("data-plugin"),r=e.getElementById("edd_".concat(t,"_license_key")),i=r.value,a=this;return this.innerHTML='',n.ajax({type:"POST",url:ajaxurl,data:{action:"frm_addon_deactivate",license:i,plugin:t,nonce:frmGlobal.nonce},success:function(){o.showAuthorized(!1),r.value="",a.replaceWith("Disconnected"),wp.hooks.doAction("frmAdmin.afterLicenseDeauthorizeSuccess",{})}}),!1}};return o}(document,window,jQuery),window.frmAdminBuildJS=function(){var e,t,i=frm_admin_js,l=frmDom,s=l.tag,c=l.div,d=l.span,u=l.a,f=l.svg,m=l.img,_=frmDom.util.onClickPreventDefault,p=frmDom.ajax.doJsonPost;i.contextualShortcodes=(t=null===(e=document.getElementById("frm_adv_info"))||void 0===e?void 0:e.dataset.contextualShortcodes)?((t=JSON.parse(t)).addressSelector="[id^=email_to], [id^=from_], [id^=cc], [id^=bcc]",t.bodySelector="[id^=email_message_]",t):[];var g,y,v,h={save:f({href:"#frm_save_icon"}),drag:f({href:"#frm_drag_icon",classList:["frm_drag_icon","frm-drag"]})},b=jQuery(document.getElementById("frm-show-fields")),j=document.getElementById("new_fields"),w=document.getElementById("form_id"),Q=!1,x=0,E=0,k=0,A={},S=0,L=wp.i18n,I=L.__,B=L.sprintf,q={dragging:!1};null!==w&&(E=w.value);var C,N=new URL(window.location.href),T=N.searchParams,O=document.getElementById("frm_builder_page");function F(e){e.stopPropagation(),e.preventDefault(),D(this)}function D(e){var t=e.getAttribute("data-frmverify"),n=e.getAttribute("data-loaded-from");return null===t||"frm-confirmed-click"===e.id||("entries-list"===n?wp.hooks.applyFilters("frm_on_multiple_entries_delete",{link:e,initModal:Bi}):function(e){var t=Bi("#frm_confirm_modal","400px"),n=document.getElementById("frm-confirmed-click");if(!1===t)return!1;n&&(n.style.display="block");var r=e.getAttribute("data-frmverify"),o=r?e.getAttribute("data-frmverify-btn"):"",i=jQuery(".frm-confirm-msg");i.empty(),r&&(i.append(document.createTextNode(r)),o&&(null==n||n.classList.add(o)));var a=e.dataset;if(n){for(var l in n.dataset)n.removeAttribute("data-".concat(l));for(var s in a)"frmverify"!==s&&n.setAttribute("data-".concat(s),a[s])}return wp.hooks.doAction("frmAdmin.beforeOpenConfirmModal",{$info:t,link:e}),t.dialog("open"),null==n||n.setAttribute("href",e.getAttribute("href")||e.getAttribute("data-href")),!1}(e))}function M(e){var t=Bi("#frm_info_modal","400px");return!1===t||(jQuery(".frm-info-msg").html(e),t.dialog("open")),!1}function P(e){var t=this.getAttribute("data-frmtoggle"),n=this.getAttribute("data-toggletext"),r=jQuery(t);return e.preventDefault(),r.toggle(),null!==n&&""!==n&&(this.setAttribute("data-toggletext",this.innerHTML),this.textContent=n),!1}function H(e){var t=this.getAttribute("data-frmhide"),n=this.getAttribute("data-frmshow"),r=this.getAttribute("data-frmuncheck"),o=r?r.split(","):[];"INPUT"!==this.nodeName||"checkbox"!==this.type||this.checked||(null!==t?(n=t,t=null):null!==n&&(t=n,n=null)),e.preventDefault();var i=this.getAttribute("data-toggleclass")||"frm_hidden";null!==t&&jQuery(t).addClass(i),null!==n&&jQuery(n).removeClass(i);var a=this.parentNode.querySelectorAll("a.current");if(null!==a){for(var l=0;l1&&(e="",t=""):0===o.indexOf("frm_postmeta_")&&(jQuery("#frm_postmeta_rows .frm_postmeta_row").length<2&&(e=".frm_add_postmeta_row.button"),jQuery(".frm_toggle_cf_opts").length&&jQuery("#frm_postmeta_rows .frm_postmeta_row:not(#".concat(o,")")).last().length&&(""!==e&&(e+=","),e+="#".concat(jQuery("#frm_postmeta_rows .frm_postmeta_row:not(#".concat(o,")")).last().attr("id")," .frm_toggle_cf_opts")));var i=document.getElementById(o),a=jQuery(i);return a.fadeOut(300,function(){var n;a.remove(),Po(),""!==t&&jQuery(t).hide(),""!==e&&jQuery("".concat(e," a,").concat(e)).removeClass("frm_hidden").fadeIn("slow"),this.closest(".frm_form_action_settings")&&function(e){so(e);var t={type:e};wp.hooks.doAction("frm_after_action_removed",t)}(this.closest(".frm_form_action_settings").querySelector(".frm_action_name").value),null===(n=document.querySelector(".tooltip"))||void 0===n||n.remove()}),void 0!==n&&(n=jQuery(n)).fadeOut(400,function(){n.remove()}),""!==e&&jQuery(this).closest(".frm_logic_rows").fadeOut("slow"),wp.hooks.doAction("frm_admin_tag_removed",o,i),!1}}function G(e,t){void 0===t&&(t=this),Ze(t,!1);var n=jQuery(t).closest(".frm_form_action_settings"),r=e.target;if(n.length&&void 0!==r){var o=r.parentElement.className;if("string"==typeof o&&(o.includes("frm_email_icons")||o.includes("frm_toggle")))return void e.stopPropagation()}var i=n.children(".widget-inside");if(n.length&&i.find("p, div, table").length<1){var a=n.find('input[name$="[ID]"]').val(),l=n.find('input[name$="[post_excerpt]"]').val();l&&(i.html(''),n.find(".spinner").fadeIn("slow"),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_form_action_fill",action_id:a,action_type:l,nonce:frmGlobal.nonce},success:function(e){i.html(e),ci(),Xr("#".concat(n.attr("id"))),yi(i),jQuery(t).trigger("frm-action-loaded"),wp.hooks.doAction("frm_filled_form_action",i)}}))}jQuery(t).closest(".frm_field_box").siblings().find(".widget-inside").slideUp("fast"),void 0!==t.className&&t.className.includes("widget-action")||jQuery(t).closest(".start_divider").length<1||((i=jQuery(t).closest("div.widget").children(".widget-inside")).is(":hidden")?i.slideDown("fast"):i.slideUp("fast"))}function U(){var e=this.getAttribute("href");if(void 0===e)return!1;var t=e.replace("#","."),n=jQuery(this);n.closest("li").addClass("frm-tabs active").siblings("li").removeClass("frm-tabs active starttab"),n.closest("div").children(".tabs-panel").not(e).not(t).hide();var r=document.getElementById(e.replace("#",""));return r&&(r.style.display="block"),"frm_insert_fields_tab"!==this.id||this.closest("#frm_adv_info")||$e(),!1}function W(e,t){var n=(e=jQuery(e)).attr("href");if(void 0!==n){var r,o,i=n.replace("#",".");if(e.closest("li").addClass("frm-tabs active").siblings("li").removeClass("frm-tabs active starttab"),e.closest("div").find(".tabs-panel").length)e.closest("div").children(".tabs-panel").not(n).not(i).hide();else if(null!==document.getElementById("form_global_settings")){var a=e.data("frmajax");e.closest(".frm_wrap").find(".tabs-panel, .hide_with_tabs").hide(),void 0!==a&&"1"==a&&(r=n.replace("#",""),(o=jQuery(".frm_".concat(r,"_ajax"))).length&&jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_settings_tab",tab:r.replace("_settings",""),nonce:frmGlobal.nonce},success:function(e){o.replaceWith(e)}}))}else jQuery("#frm-categorydiv .tabs-panel, .hide_with_tabs").hide();jQuery(n).show(),jQuery(i).show(),$o(),"auto"!==t&&(jQuery(".frm_updated_message").hide(),jQuery(".frm_warning_style").hide()),jQuery(e).closest("#frm_adv_info").length||(jQuery(".frm_form_settings").length?jQuery(".frm_form_settings").attr("action","?page=formidable&frm_action=settings&id=".concat(jQuery('.frm_form_settings input[name="id"]').val(),"&t=").concat(n.replace("#",""))):jQuery(".frm_settings_form").attr("action","?page=formidable-settings&t=".concat(n.replace("#",""))))}}function V(e){var t,n;document.querySelectorAll(e).forEach(function(e){$(e),Array.from(e.children).forEach(function(e){return X(e,".frm-move")});var t=jQuery(e).children('[data-type="divider"]').children(".divider_section_only");t.length&&$(t)}),t=jQuery("#frm_builder_page"),n={items:".frm_sortable_field_opts li",axis:"y",opacity:.65,forcePlaceholderSize:!1,handle:".frm-drag",helper:function(e,t){return Q=t.clone().insertAfter(t),t.clone()},stop:function(e,t){Q&&Q.remove(),ir(t.item.attr("id").replace("frm_delete_field_","").replace("-".concat(t.item.data("optkey"),"_container"),"")),Po()}},jQuery(t).sortable(n)}function $(e){jQuery(e).droppable({accept:".frmbutton, li.frm_field_box",deactivate:ne,over:K,out:J,tolerance:"pointer"})}function K(e,t){var n=function(e){return e.classList.contains("divider_section_only")&&(e=jQuery(e).nextAll(".start_divider.frm_sorting").get(0)),e}(e.target);if(!je(t.draggable[0],n,e))return n.classList.remove("frm-over-droppable"),void jQuery(n).parents("ul.frm_sorting").addClass("frm-over-droppable");document.querySelectorAll(".frm-over-droppable").forEach(function(e){return e.classList.remove("frm-over-droppable")}),n.classList.add("frm-over-droppable"),jQuery(n).parents("ul.frm_sorting").addClass("frm-over-droppable")}function J(e){e.target.classList.remove("frm-over-droppable")}function X(e,t){var n={helper:Y,revert:"invalid",delay:10,start:Z,stop:ee,drag:te,cursor:"grabbing",refreshPositions:!0,cursorAt:{top:0,left:90}};"string"==typeof t&&(n.handle=t),jQuery(e).draggable(n)}function Y(e){var t,n=e.delegateTarget;if(Qe(n)){var r=document.getElementById("frm-insert-fields").querySelector(".frm_ttext").cloneNode(!0);return r.querySelector("use").setAttributeNS("http://www.w3.org/1999/xlink","href","#frm_field_group_layout_icon"),r.querySelector("span").textContent=I("Field Group","formidable"),r.classList.add("frm_field_box"),r.classList.add("ui-sortable-helper"),r}if(n.classList.contains("frmbutton"))return(t=n.cloneNode(!0)).classList.add("ui-sortable-helper"),n.classList.add("frm-new-field"),t;if(n.hasAttribute("data-ftype")){var o=n.getAttribute("data-ftype");if(t=document.getElementById("frm-insert-fields").querySelector(".frm_t".concat(o)))return(t=t.cloneNode(!0)).classList.add("form-field"),t.classList.add("ui-sortable-helper"),t.cloneNode(!0)}return c({className:"frmbutton"})}function Z(e,t){if(e.target.classList.contains("frm_at_limit"))return Se(),!1;q.dragging=!0;var n,r=y;r.classList.add("frm-dragging-field"),document.body.classList.add("frm-dragging"),t.helper.addClass("frm-sortable-helper"),t.helper.initialOffset=r.scrollTop,e.target.classList.add("frm-drag-fade"),vn(),(n=document.querySelectorAll("ul.start_divider")).length&&n.forEach(function(e){[].slice.call(e.children).forEach(function(e){(0===e.children.length||1===e.children.length&&"ul"===e.firstElementChild.nodeName.toLowerCase()&&0===e.firstElementChild.children.length)&&e.remove()})}),Fe(),Ne(),z()}function ee(){y.classList.remove("frm-dragging-field"),document.body.classList.remove("frm-dragging");var e=document.querySelector(".frm-drag-fade");e&&e.classList.remove("frm-drag-fade")}function te(e,t){!function(e){v.scrollTop(function(t,n){var r=e.clientY,o=y.offsetHeight,i=e.clientY-y.offsetTop,a=i-o/2;return i>o-50&&r>5?n+.1*a:i<70&&r<130?n-Math.abs(.1*a):n})}(e);var n=e.target,r=function(){for(var e=document.getElementById("frm-show-fields");e.querySelector(".frm-over-droppable");)e=e.querySelector(".frm-over-droppable");return"frm-show-fields"!==e.id||e.classList.contains("frm-over-droppable")||(e=!1),e}(),o=document.getElementById("frm_drag_placeholder");if(je(n,r,e)){o||(o=s("li",{id:"frm_drag_placeholder",className:"sortable-placeholder"}));var i,a=t.helper.get(0);if((a.classList.contains("form-field")||a.classList.contains("frm_field_box"))&&(a.style.transform="translateY(".concat((i=t.helper,y.scrollTop-i.initialOffset),"px)")),"frm-show-fields"===r.id||r.classList.contains("start_divider"))return o.style.left=0,void function(e){var t,n=e.y,r=e.placeholder,o=jQuery(e.droppable),i=o.children().not(".edit_field_type_end_divider");if(0===i.length)o.prepend(r),t=0;else{var a=re(o,n);if(a===i.length){var l=jQuery(i.get(a-1));t=l.offset().top+l.outerHeight(),o.append(r);var s=o.children(".edit_field_type_end_divider");s.length&&o.append(s)}else t=jQuery(i.get(a)).offset().top,jQuery(i.get(a)).before(r)}t-=o.offset().top,r.style.top="".concat(t,"px")}({droppable:r,y:e.clientY,placeholder:o});o.style.top="",function(e){var t,n=e.x,r=e.placeholder,o=jQuery(e.droppable),i=ie(o);if(i.length){var a=function(e,t){var n,r,o,i,a=ie(e);for(i=0,n=a.length-1;n>=0;--n)if(r=a.get(n),t>(o=jQuery(r).offset().left)){i=n,t>o+jQuery(r).outerWidth()/2&&(i=n+1);break}return i}(o,n);if(a===i.length){var l=jQuery(i.get(a-1));t=l.offset().left+l.outerWidth(),o.append(r)}else t=jQuery(i.get(a)).offset().left,jQuery(i.get(a)).before(r),t-=0===a?4:8;t-=o.offset().left,r.style.left="".concat(t,"px")}}({droppable:r,x:e.clientX,placeholder:o})}else o&&o.remove()}function ne(e,t){if(q.dragging){q.dragging=!1;var n=t.draggable[0],r=document.getElementById("frm_drag_placeholder");if(!r)return t.helper.remove(),void g();!function(e){if(e.previousElementSibling&&e.previousElementSibling.classList.contains("frm-is-collapsed")){var t=jQuery(e).prevUntil('[data-type="break"]');if(t.length){var n=t.find(".frm-collapse-page").get(0);n&&n.click()}}}(r);var o=t.helper.parent(),i=t.helper.get(0).closest("ul.start_divider"),a=r.closest("ul.start_divider");n.classList.contains("frm-new-field")?function(e){if(pe(e))wp.hooks.doAction("frm_stopped_inserting_by_dragging",e);else{var t=document.getElementById("frm_drag_placeholder"),n="".concat(e.replace("|","-"),"_").concat(be()),r=s("li",{id:n,className:"frm-wait frmbutton_loadingnow"}),o=jQuery(r),i=de(jQuery(t)),a=ue(i),l=fe(i);t.parentNode.insertBefore(r,t),t.remove(),ae(o);var c=0;"summary"===e&&(c=jQuery(".frmbutton_loadingnow#".concat(n)).prevAll('li[data-type="break"]').length?1:0),jQuery.ajax({type:"POST",url:ajaxurl,data:_e(e,l,a,c),success:function(t){ge(t,o);var n=ye(t);n&&wp.hooks.doAction("frm_after_field_added_in_form_builder",{field:t,fieldId:n,fieldType:e,form_id:a})},error:he})}}(n.id):(function(e,t){t.parentNode.insertBefore(e,t)}(n,r),function(e){if("UL"===e.nodeName&&!e.classList.contains("start_divider")&&"frm-show-fields"!==e.id){var t=e.closest("li");t&&!t.classList.contains("ui-draggable")&&X(t,".frm-move")}}(r.parentElement));var l=i?parseInt(i.closest(".edit_field_type_divider").getAttribute("data-fid")):0,c=a?parseInt(a.closest(".edit_field_type_divider").getAttribute("data-fid")):0;r.remove(),t.helper.remove();var d=o.length?ie(o):[];!function(e,t){var n;e.length&&(t.length?ae(t.first()):(n=e.get(0).closest("li.frm_field_box"))&&!n.classList.contains("edit_field_type_divider")&&n.remove())}(o,d),function(e,t){0===t.length&&1===ie(jQuery(e.parentNode)).length||ae(jQuery(e))}(n,d),l!==c&&me(jQuery(n),i),g()}}function re(e,t){var n,r,o,i,a=e.children().not(".edit_field_type_end_divider"),l=a.length;if(!document.querySelector(".frm-has-fields .frm_no_fields"))return 0;for(i=0,n=l-1;n>=0;--n)if(r=a.get(n),t>(o=jQuery(r).offset().top)){i=n,t>o+jQuery(r).outerHeight()/2&&(i=n+1);break}return i}function oe(){document.querySelectorAll("ul#frm-show-fields, ul.start_divider").forEach(function(e){e.childNodes.forEach(function(e){void 0!==e.classList&&(e.classList.contains("edit_field_type_end_divider")||void 0!==e.classList&&e.classList.contains("form-field")&&Ue(e))})}),kr(),document.querySelectorAll(".edit_field_type_end_divider").forEach(function(e){return e.parentNode.append(e)}),document.querySelectorAll("li.form_field_box:not(.form-field)").forEach(function(e){return!e.children.length&&e.remove()}),Er();var e=new Event("frm_sync_after_drag_and_drop",{bubbles:!1});document.dispatchEvent(e)}function ie(e){var t=jQuery(),n=e.get(0);return n.children?(Array.from(n.children).forEach(function(e){if("none"!==e.style.display){var n=e.classList;!n.contains("form-field")||n.contains("edit_field_type_end_divider")||n.contains("frm-sortable-helper")||(t=t.add(e))}}),t):t}function ae(e,t){var n;void 0===t&&(t="even");var r=e.parent().children("li.form-field, li.frmbutton_loadingnow").not(".edit_field_type_end_divider"),o=r.length,i=["frm_full","frm_half","frm_third","frm_fourth","frm_sixth","frm_two_thirds","frm_three_fourths","frm1","frm2","frm3","frm4","frm5","frm6","frm7","frm8","frm9","frm10","frm11","frm12"];"even"===t&&5!==o?r.each(ce(i,$t(o))):"clear"===t?r.each(ce(i,"")):(n=["left","right","middle","even"].includes(t)?function(e){return Vt(o,t,e)}:function(e){return sn(t[e])},r.each(ce(i,n))),le(e.parent(),r.length)}function le(e,t){if(void 0!==e.offset()){var n=t>=2,r=document.getElementById("frm_field_group_controls");if(null===r){if(!n)return;(r=c()).id="frm_field_group_controls",r.setAttribute("role","group"),r.setAttribute("tabindex",0),function(e){var t=document.createElement("span");t.innerHTML='';var n=I("Set Row Layout","formidable");se(t,n),zt(t,n);var r=document.createElement("span");r.innerHTML='',r.classList.add("frm-move");var o=I("Move Field Group","formidable");se(r,o),zt(r,o),e.innerHTML="",e.append(t),e.append(r),e.append(function(){var e=d({className:"dropdown"}),t=u({className:"frm_bstooltip frm-hover-icon frm-dropdown-toggle dropdown-toggle",children:[d({child:f({href:"#frm_thick_more_vert_icon"})}),d({className:"screen-reader-text",text:I("Toggle More Options Dropdown","formidable")})]});frmDom.setAttributes(t,{title:I("More Options","formidable"),"data-bs-toggle":"dropdown","data-bs-container":"body","data-bs-display":"static"}),zt(t,I("More Options","formidable")),e.append(t);var n=c({className:"frm-dropdown-menu dropdown-menu dropdown-menu-right"});return n.setAttribute("role","menu"),e.append(n),e}())}(r),O.append(r)}e.append(r),r.style.display=n?"block":"none"}}function se(e,t){e.setAttribute("data-bs-toggle","tooltip"),e.setAttribute("data-bs-container","body"),e.setAttribute("title",t),e.addEventListener("mouseover",function(){null===e.getAttribute("data-original-title")&&jQuery(e).tooltip()})}function ce(e,t){return function(n){for(var r="function"==typeof t?t(n):t,o=e.length,i=!1,a=0;a0&&document.getElementById("form_id").value!==n||(o.last_row_field_ids=function(){var e=document.querySelector(".edit_field_type_submit");if(!e)return[];for(var t=e.parentNode.children,n=[],r=0;rt.childElementCount-1:i<=jQuery(t.querySelector(".edit_field_type_submit").closest("#frm-show-fields > li")).index()}if(r)return!(t.classList.contains("start_divider")||!we(t.parentElement)&&(!we(t.parentElement.nextElementSibling)||e.parentElement.querySelector("li.frm_field_box:not(.edit_field_type_submit)")));var a=t.classList.contains("start_divider")&&null!==t.closest(".repeat_section"),l=null!==t.closest(".repeat_section");if(a||l){if(e.classList.contains("edit_field_type_gdpr")||"gdpr"===e.id)return!1;if(wp.hooks.applyFilters("frm_deny_drop_in_repeater",!1,e))return!1}if(!a){if(!function(e,t){if(e.length<12)return!0;if(e.length>12)return!1;var n=t.attr("data-fid");return 1===jQuery(e).filter('[data-fid="'.concat(n,'"]')).length}(ie(jQuery(t)),jQuery(e)))return!1;if("divider"===e.id&&t.closest(".start_divider"))return!1}return e.classList.contains("frm-new-field")?function(e,t){var n=e.classList,r=n.contains("frm_tbreak"),o=n.contains("frm_thidden"),i=n.contains("frm_tdivider"),a=n.contains("frm_tform"),l=n.contains("frm_tuser_id");return"frm-show-fields"===t.id||t.classList.contains("start_divider")?!(r||o||i||a)||(!(t.classList.contains("start_divider")||null!==t.closest(".start_divider"))||!a&&!i):!(xe(t)||o||r||l)}(e,t):function(e,t){if(Qe(e))return function(e,t){return!(!t.classList.contains("start_divider")||null!==e.querySelector(".start_divider"))}(e,t);if(e.classList.contains("edit_field_type_break"))return!1;if(t.classList.contains("start_divider"))return function(e){return!e.classList.contains("edit_field_type_form")&&!e.querySelector(".edit_field_type_form")&&!(e.classList.contains("edit_field_type_divider")||e.querySelector(".edit_field_type_divider"))}(e);var n=e.classList.contains("edit_field_type_hidden"),r=e.classList.contains("edit_field_type_user_id");return!n&&!r&&function(e,t){if(xe(t))return!1;if(jQuery(e).children("ul.frm_sorting").not(".start_divider").length>0)return!1;var n=e.classList.contains("edit_field_type_divider")||e.querySelector(".edit_field_type_divider"),r=e.classList.contains("edit_field_type_form");return null===t.closest(".start_divider")||!n&&!r}(e,t)}(e,t)}function we(e){return e&&e.matches("#frm-show-fields > li:last-child")}function Qe(e){return e.classList.contains("frm_field_box")&&!e.classList.contains("form-field")}function xe(e){return null!==e.querySelector(".edit_field_type_break, .edit_field_type_hidden, .edit_field_type_user_id")}function Ee(e){var t=document.getElementById(e),n=jQuery(t),r=[],o=function(e){var t=e.querySelector(".frm_hidden_fdata");e.classList.add("frm_load_now"),null!==t&&r.push(t.innerHTML)};o(t);for(var i=ke(t);i&&r.length<15;)o(i),i=ke(i);jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_load_field",field:r,form_id:E,nonce:frmGlobal.nonce},success:function(e){return function(e,t,n){var r,o;if(0===(e=e.replace(/^\s+|\s+$/g,"")).indexOf("{")){for(r in e=JSON.parse(e)){jQuery("#frm_field_id_".concat(r)).replaceWith(e[r]);var i=document.getElementById("frm_field_id_".concat(r));i&&(i.querySelectorAll("[data-toggle]").forEach(function(e){return e.setAttribute("data-bs-toggle",e.getAttribute("data-toggle"))}),i.querySelectorAll(".frm-dropdown-menu").forEach(function(e){return e.classList.add("dropdown-menu")})),V("#frm_field_id_".concat(r,".edit_field_type_divider ul.frm_sorting")),X(document.getElementById("frm_field_id_".concat(r)))}((o=t.nextAll(".frm_field_loading:not(.frm_load_now)")).length||(o=jQuery(document.getElementById("frm-show-fields")).find(".frm_field_loading:not(.frm_load_now)")).length)&&Ee(o.attr("id")),ci(),Dn(),Ie();var a=new Event("frm_ajax_loaded_field",{bubbles:!1});a.frmFields=n.map(function(e){return JSON.parse(e)}),document.dispatchEvent(a)}else jQuery(".frm_load_now").removeClass(".frm_load_now").html("Error")}(e,n,r)}})}function ke(e){var t;return e.nextElementSibling?e.nextElementSibling:null===(t=e.parentNode)||void 0===t||null===(t=t.closest(".frm_field_box"))||void 0===t||null===(t=t.nextElementSibling)||void 0===t?void 0:t.querySelector(".form-field")}function Ae(){var e=jQuery(this);if(e.hasClass("disabled"))return!1;var t=e.closest(".frmbutton"),n=t.attr("id");if(t.hasClass("frm_at_limit"))return Se(),!1;if(!pe(n)){var r=0;"summary"===n&&(r=b.children('li[data-type="break"]').length>0?1:0);var o=E;return jQuery.ajax({type:"POST",url:ajaxurl,data:_e(n,0,o,r),success:function(e){Le(e);var t=ye(e);t&&wp.hooks.doAction("frm_after_field_added_in_form_builder",{field:e,fieldId:t,fieldType:n,form_id:o})},error:he}),!1}}function Se(){var e=document.querySelector(".frm_wrap");if(e){var t=document.createElement("a");t.setAttribute("data-frmverify",I("This field type has reached its limit.","formidable")),e.append(t),t.click(),t.remove();var n=document.getElementById("frm-confirmed-click");n&&(n.style.display="none")}}function Le(e){document.getElementById("frm_form_editor_container").classList.add("frm-has-fields");var t=Ge(e),n=b[0].querySelector(".edit_field_type_submit");n?jQuery(n.closest(".frm_field_box:not(.form-field)")).before(t):b.append(t),We(e,!0),t.each(function(){$(this.querySelector("ul.frm_sorting")),X(this.querySelector(".form-field"),".frm-move")})}function Ie(){var e=!0,t=document.querySelectorAll(".frmjs_prod_field_opt_cont");b.find("li.edit_field_type_product").length>1&&(e=!1);for(var n=0;n'),o.append(document.createTextNode(" ")),o.append(i),r.append(o),e.append(r)})}(t,!0===e);var n=jQuery(t);n.offset().left>jQuery(window).width()-n.outerWidth()?t.style.left="".concat(-n.outerWidth(),"px"):y&&n.offset().left").addClass("frm_field_box").html(jQuery("
              ").addClass("frm_grid_container frm_sorting").append(e)))}),n}function Ue(e){var t=s("ul",{className:"frm_grid_container frm_sorting"}),n=s("li",{className:"frm_field_box",child:t});e.replaceWith(n),t.append(e),$(t),X(n,".frm-move")}function We(e,t){var n,r,o=/id="(\S+)"/.exec(e),i=document.getElementById(o[1]),l="#".concat(o[1],".edit_field_type_divider ul.frm_sorting.start_divider"),s=jQuery(l),d=i.getAttribute("data-type");n=e,(r=c()).innerHTML=n,r.querySelectorAll(".form-field").forEach(Ve);var u,f,m=!1;if(Po(),V(l),"quantity"===d&&function(e){var t=e.getAttribute("data-fid"),n=document.getElementById("field_options[product_field_".concat(t,"]"));null!==n&&(nt(n),oo(document.getElementById("frm-single-settings-".concat(t))))}(i),"product"!==d&&"quantity"!==d||Ie(),s.length)s.parent(".frm_field_box").children(".frm_no_section_fields").addClass("frm_block");else{var _=jQuery(i).closest("ul.frm_sorting.start_divider");_.length&&(Ar(_),m=!0)}e.includes("frm-collapse-page")&&Dn(),f="frm-newly-added",(u=i).classList?u.classList.add(f):u.className+=" ".concat(f),setTimeout(function(){i.classList.remove("frm-newly-added")},1e3);var p,g=i.querySelector("#frm-last-row-fields-order");if(g&&((p=JSON.parse(g.value))&&"object"===a(p)&&Object.keys(p).forEach(function(e){var t=document.querySelector('input[name="field_options[field_order_'.concat(e,']"]'));t&&(t.value=p[e])})),t){var y=i.getBoundingClientRect(),v=document.getElementById("post-body-content");y.top>=0&&y.left>=0&&y.right<=(window.innerWidth||document.documentElement.clientWidth)&&y.bottom<=(window.innerHeight||document.documentElement.clientHeight)||v.scroll({top:v.scrollHeight,left:0,behavior:"smooth"}),!1===m&&Ar(s)}Ke(),ci(),document.getElementById("frm-show-fields").classList.remove("frm-over-droppable"),function(e){var t=document.getElementById(e);null!=t&&t.dataset.limit&&An(e)>=t.dataset.limit&&t.classList.add("frm_at_limit")}(d),i.querySelectorAll("[data-toggle]").forEach(function(e){return e.setAttribute("data-bs-toggle",e.getAttribute("data-toggle"))}),i.querySelectorAll(".frm-dropdown-menu").forEach(function(e){return e.classList.add("dropdown-menu")});var h=new Event("frm_added_field",{bubbles:!1});h.frmField=i,h.frmSection=l,h.frmType=d,h.frmToggles=m,document.dispatchEvent(h)}function Ve(e){if(e.dataset.fid){var t=document.getElementById("draft_fields");t&&(""===t.value?t.value=e.dataset.fid:t.value.split(",").includes(e.dataset.fid)||(t.value+=",".concat(e.dataset.fid)))}}function $e(e){jQuery("#new_fields .frm-single-settings").addClass("frm_hidden"),jQuery("#frm-options-panel > .frm-single-settings").removeClass("frm_hidden"),Ke(e)}function Ke(e){jQuery("li.ui-state-default.selected").removeClass("selected"),jQuery(".frm-show-field-settings.selected").removeClass("selected"),e||vn()}function Je(){var e=this.value,t=function(e){var t,n=[],r=e.split(""),o=r.length,a=["{","[","("],l={"}":"{",")":"(","]":"["},s=!1;for(t=0;t0||s?"".concat(i.unmatched_parens,"\n\n"):""}(e);t+=function(e,t){var n=function(e,t){var n="";return function(e){return jQuery(e).siblings('label[for^="calc_type"]').children("input").prop("checked")}(t)||/\[(date|time|email|ip)\]/.test(e)&&(n="".concat(i.text_shortcodes,"\n\n")),n}(e,t);return n+=function(e){var t="";return/\[id\]|\[key\]|\[if\s\w+\]|\[foreach\s\w+\]|\[created-at(\s*)?/g.test(e)&&(t+="".concat(i.view_shortcodes,"\n\n")),t}(e)}(e,this),""!==t&&M("".concat(e,"\n\n").concat(t))}function Xe(e,t){for(var n=!1,r=0;r").concat(l[t].fieldName,""))):(n=n?" checked":"",o.push('"));e.innerHTML=o.join("")}function rt(){for(var e=document.querySelectorAll(".frmjs_prod_field_opt"),t=0;t'):(d.innerHTML=_r(c),"TEXTAREA"===d.nodeName&&d.classList.contains("wp-editor-area")&&jQuery(d).trigger("change"),d.classList.contains("frm_primary_label")&&"break"===d.nextElementSibling.getAttribute("data-ftype")&&(d.nextElementSibling.querySelector(".frm_button_submit").textContent=c)))}function at(e){var t=parseFloat(e.getAttribute("max")),n=parseFloat(e.getAttribute("min"));return(t-n)/2+n}function lt(){var e=this.getAttribute("data-fid"),t="";["field_options_max_","frm_format_"].forEach(function(n){var r=document.getElementById(n+e);r&&(t+=r.value)});var n=document.getElementsByName("field_options[type_".concat(e,"]"))[0];"text"===n.options[n.selectedIndex].value&&ct(""!==t,".frm_invalid_msg".concat(e))}function st(){var e=this.id.replace("frm_","").replace("req_field_",""),t=this.checked,n=jQuery("#field_label_".concat(e," .frm_required"));if(ct(t,".frm_required_details".concat(e)),t){var r=jQuery('input[name="field_options[required_indicator_'.concat(e,']"]'));""===r.val()&&r.val("*"),n.removeClass("frm_hidden")}else n.addClass("frm_hidden")}function ct(e,t){var n=jQuery(t);if(e)n.fadeIn("fast").closest(".frm_validation_msg").fadeIn("fast");else{var r=n.fadeOut("fast").closest(".frm_validation_box"),o=r.css("display","block").children(":not(".concat(t,"):visible")).length;r.css("display",""),0===o&&n.closest(".frm_validation_msg").fadeOut("fast")}}function dt(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=jQuery(".frm_unique_details".concat(e));if(this.checked){t.fadeIn("fast").closest(".frm_validation_msg").fadeIn("fast");var n=jQuery(".frm_unique_details".concat(e," input"));""===n.val()&&n.val(i.default_unique)}else{var r=t.fadeOut("fast").closest(".frm_validation_box"),o=r.css("display","block").children(":not(.frm_unique_details".concat(e,"):visible")).length;r.css("display",""),0===o&&t.closest(".frm_validation_msg").fadeOut("fast")}}function ut(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=jQuery(this).val(),n=jQuery(document.getElementById("frm_field_id_".concat(e)));if(ct(""!==t,".frm_conf_details".concat(e)),""!==t){var r=jQuery(".frm_validation_box .frm_conf_details".concat(e," input"));""===r.val()&&r.val(i.default_conf),function(e){var t=document.getElementsByName("field_options[type_".concat(e,"]"))[0].value;ft(document.getElementById("field_description_".concat(e)),"field_options[description_".concat(e,"]"),i["enter_".concat(t)]),ft(document.getElementById("conf_field_description_".concat(e)),"field_options[conf_desc_".concat(e,"]"),i["confirm_".concat(t)])}(e),"inline"===t?n.removeClass("frm_conf_below").addClass("frm_conf_inline"):"below"===t&&n.removeClass("frm_conf_inline").addClass("frm_conf_below"),jQuery(".frm-conf-box-".concat(e)).removeClass("frm_hidden")}else jQuery(".frm-conf-box-".concat(e)).addClass("frm_hidden"),setTimeout(function(){n.removeClass("frm_conf_inline frm_conf_below")},200)}function ft(e,t,n){e.innerHTML===i.desc&&(e.innerHTML=n,document.getElementsByName(t)[0].value=n)}function mt(e){var t=JSON.parse(this.getAttribute("data-opts"));return e.preventDefault(),document.getElementById("frm_bulk_options").value=t.join("\n"),!1}function _t(){var e,t,n,r=jQuery(this).closest(".frm-single-settings").data("fid"),o=jQuery("#frm_field_".concat(r,"_opts .frm_option_template")).prop("outerHTML"),i=jQuery(this).data("opttype"),a=0,l="000",s=function(e){for(var t=0,n=0,r=jQuery("#frm_field_".concat(e,"_opts li")),o=0;to||"000"===o)&&(o=n)}return o}(r);if(s!==l&&(a=s+1),"other"===i){document.getElementById("other_input_".concat(r)).value=1;var c=jQuery(this).data("ftype");"radio"!==c&&"select"!==c||jQuery(this).fadeOut("slow");var d={action:"frm_add_field_option",field_id:r,opt_key:a,opt_type:i,nonce:frmGlobal.nonce};jQuery.post(ajaxurl,d,function(e){jQuery(document.getElementById("frm_field_".concat(r,"_opts"))).append(e),ir(r)})}else{o=(o=(o=(o=(o=o.replace(new RegExp('optkey="'.concat(l,'"'),"g"),'optkey="'.concat(a,'"'))).replace(new RegExp("-".concat(l,"_"),"g"),"-".concat(a,"_"))).replace(new RegExp("-".concat(l,'"'),"g"),"-".concat(a,'"'))).replace(new RegExp("\\[".concat(l,"\\]"),"g"),"[".concat(a,"]"))).replace("frm_hidden frm_option_template",""),Di(r,o={newOption:o});var u=this.closest(".frm_single_option");u?u.after(o.newOption):jQuery("#frm_field_".concat(r,"_opts")).append(o.newOption),ir(r)}null==(n=(e=this).classList.contains("frm-add-option-legacy")?null===(t=e.closest(".frm-collapse-me"))||void 0===t?void 0:t.querySelector(".frm_sortable_field_opts"):e.closest(".frm_sortable_field_opts"))||n.querySelectorAll(".frm_remove_tag.frm_disabled").forEach(function(e){return e.classList.remove("frm_disabled")}),Po()}function pt(){gt(jQuery(this).closest(".frm-single-settings").data("fid"),this.value)}function gt(e,t){var n=jQuery(".frm_multiple_cont_".concat(e));"select"===t?n.fadeIn("fast"):n.fadeOut("fast")}function yt(){var e=jQuery(this).closest(".frm-single-settings").data("fid");qi(jQuery(".field_".concat(e,"_option_key"))),jQuery(".field_".concat(e,"_option")).toggleClass("frm_with_key")}function vt(){var e=jQuery(this).closest(".frm-single-settings"),t=e.data("fid"),n=document.getElementById("frm_field_id_".concat(t));wt(jQuery(this)),qi(jQuery(".field_".concat(t,"_image_id"))),qi(jQuery(".frm_toggle_image_options_".concat(t))),qi(jQuery(".frm_image_size_".concat(t))),qi(jQuery(".frm_alignment_".concat(t))),qi(jQuery(".frm-add-other#frm_add_field_".concat(t)));var r=vr(t);if(r){bt(t,"inline"),ht(n);var o=or(t);n.classList.add("frm_image_options"),n.classList.add("frm_image_size_".concat(o)),e.find(".frm-bulk-edit-link").hide()}else n.classList.remove("frm_image_options"),ht(n),bt(t,"block"),e.find(".frm-bulk-edit-link").show();wp.hooks.doAction("frm_image_options_toggled",e[0],r)}function ht(e){e.classList.remove("frm_image_size_","frm_image_size_small","frm_image_size_medium","frm_image_size_large","frm_image_size_xlarge")}function bt(e,t){jQuery("#field_options_align_".concat(e)).val(t).trigger("change")}function jt(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=document.getElementById("frm_field_id_".concat(e));Qt(),vr(e)&&(ht(t),t.classList.add("frm_image_options"),t.classList.add("frm_image_size_".concat(or(e))))}function wt(e){var t=e.closest(".frm-single-settings").data("fid");jQuery(".field_".concat(t,"_option")).trigger("change")}function Qt(){wt(jQuery(this))}function xt(e){var t,n=e.target.closest(".frm_image_preview_wrapper");if(null!==(t=wp)&&void 0!==t&&t.media&&(null==n||!n.dataset.upgrade)){e.preventDefault(),wp.media.model.settings.post.id=0;var r=wp.media.frames.file_frame=wp.media({multiple:!1,library:{type:["image"]}});r.on("select",function(){var e=r.state().get("selection").first().toJSON(),t=n.querySelector("img");t.setAttribute("src",e.url),t.classList.remove("frm_hidden"),t.removeAttribute("srcset"),n.querySelector(".frm_image_preview_frame").style.display="block",n.querySelector(".frm_image_preview_title").textContent=e.filename,n.querySelector(".frm_choose_image_box").style.display="none";var o=jQuery(n);o.siblings('input[name*="[label]"]').data("frmimgurl",e.url),o.find("input.frm_image_id").val(e.id).trigger("change"),wp.media.model.settings.post.id=0}),r.open()}}function Et(e){var t=jQuery(this).closest(".frm_image_preview_wrapper");e.preventDefault(),e.stopPropagation(),t.find("img").attr("src",""),t.find(".frm_image_preview_frame").hide(),t.find(".frm_choose_image_box").show(),t.find("input.frm_image_id").val(0).trigger("change")}function kt(){var e=jQuery(this).closest("li").find(".frm_form_fields select");this.checked?e.attr("multiple","multiple"):e.removeAttr("multiple")}function At(){var e=document.getElementById("dropform-search-input");null!==e&&setTimeout(function(){e.focus()},100)}function St(e){var t=e.target,n=t.closest(".frm_warning_style");jQuery(n).fadeOut(400,function(){return n.remove()});var r=t.dataset.action,o=new FormData;p(r,o)}function Lt(e){e.preventDefault()}function It(){var e,t,n=this.parentNode,r=n.parentNode,o=r.querySelectorAll("li:not(.frm_hidden)");2===o.length&&(null===(e=Array.from(o).find(function(e){return e!==n}).querySelector(".frm_remove_tag"))||void 0===e||e.classList.add("frm_disabled"));var i=this.getAttribute("data-fid");jQuery(n).fadeOut("fast",function(){wp.hooks.doAction("frm_before_delete_field_option",this),jQuery(n).remove(),jQuery(r).find(".frm_other_option").length<1&&(null!==(t=document.getElementById("other_input_".concat(i)))&&(t.value=0),jQuery("#other_button_".concat(i)).fadeIn("fast"))}),Po()}function Bt(){var e=jQuery(this);if(e.is(":checked")){var t,n=function(){e.off("mouseup",t)};t=function(){setTimeout(function(){e.prop("checked",!1)},0),n()},e.on("mouseup",t),e.one("mouseout",n)}}function qt(){this.value===i.new_option&&(this.setAttribute("data-value-on-focus",this.value),this.value="")}function Ct(e){return B(I("Are you sure you want to delete these %1$s selected field(s)?","formidable"),e)}function Nt(){var e=i.conf_delete,t=this.parentNode.parentNode.parentNode.parentNode.parentNode,n=t.parentNode,r=jQuery(this).closest("li.form-field"),o=r.data("fid");if("divider"===r.data("ftype")){var a=document.querySelectorAll(".frm-field-group-hover-target .start_divider .frm_field_box"),l=0;a.forEach(function(e){var t=e.querySelectorAll("li.form-field");t&&(l+=t.length)}),l&&(e=Ct(++l))}return n.classList.contains("frm-section-collapsed")||n.classList.contains("frm-page-collapsed")||("divider_section_only"===t.className&&(e=i.conf_delete_sec),this.setAttribute("data-frmverify",e),this.setAttribute("data-frmverify-btn","frm-button-red"),this.setAttribute("data-deletefield",o),Ne(),D(this)),!1}function Tt(){this.closest("li.form-field").click()}function Ot(){var e=document.querySelector(".frm-field-group-hover-target");if(null!==e){e.classList.add("frm-selected-field-group");var t=document.createElement("div");t.classList.add("frm-delete-field-groups","frm_hidden"),document.body.append(t),t.click()}}function Ft(){var e=document.querySelector(".frm-field-group-hover-target");if(null!==e){var t="frm_field_group_".concat(be()),n=document.createTextNode("");Ue(n);var r=jQuery(n).closest("li").get(0);r.classList.add("frm_hidden");var o=r.querySelector("ul");o.id=t,jQuery(e.closest("li.frm_field_box")).after(r);var i=ie(jQuery(e)),a=[],l=[],s=i.length,c={},d=0;jQuery(r).on("frm_added_duplicated_field_to_row",function(e,t){if(c[jQuery(t.duplicatedFieldHtml).attr("data-fid")]=t.originalFieldId,!(s>++d)){var n=jQuery(o),i=ie(n);l.forEach(function(e){e.remove()});for(var u=0;u6)return t.append(Gt(e,"even")),t;if(5!==e&&t.append(Gt(e,"even")),e%2==1&&t.append(Gt(e,"middle")),e<6)t.append(Gt(e,"left")),t.append(Gt(e,"right"));else{var n=c();n.classList.add("frm_fourth"),t.prepend(n)}return t}(e),l=t.closest("ul.frm_sorting");return null!==l&&function(e,t){for(var n=t.children.length,r=0;r6?"frm_full":e%2==1?"frm_fourth":"frm_third"}return r.classList.add(n),r.setAttribute("layout-type",t),r.append(function(e,t){for(var n=Xt(),r=0;r6?"frm1":[2,3,4,6].includes(e)?sn(12/e):5===e&&void 0!==t?0===t?"frm4":"frm2":"frm12"}function Kt(e){switch(e){case 2:case 3:return"frm3";case 4:case 5:return"frm2";case 6:return"frm1";default:return"frm12"}}function Jt(e){switch(e){case 2:return"frm9";case 3:case 4:return"frm6";case 5:return"frm4";case 6:return"frm7";default:return"frm12"}}function Xt(){var e=c();return e.classList.add("frm_grid_container"),e}function Yt(){var e=document.querySelector(".frm-field-group-hover-target");if(e){var t=this.getAttribute("layout-type");ae(ie(jQuery(e)).first(),t),fn()}}function Zt(){var e=en(),t=this.getAttribute("layout-type");ae(ie(e).first(),t),vn()}function en(){var e=jQuery(".frm-selected-field-group"),t=e.first();return e.not(t).each(function(){ie(jQuery(this)).each(function(){var e=this.parentNode;ie(t).last().after(this),jQuery(e).children("li.form-field").length||e.closest("li.frm_field_box").remove()})}),Er(),ae(ie(t).first()),t}function tn(){null===this.closest(".frm-merge-fields-into-row")&&nn(ie(jQuery(".frm-field-group-hover-target")))}function nn(e){var t=e.length,n=document.getElementById("frm_field_group_popup");n.innerHTML="";var r=c();r.style.padding="0 24px";var o=$t(5===t?6:t),i=c();if(i.style.padding="20px 0",i.classList.add("frm_grid_container"),5===t){var a=document.createElement("span");a.classList.add("frm1"),i.append(a)}var l=wn()>0&&an($t(t));!1!==l&&l>=12&&(l=Math.floor(12/t));for(var s=0;s',""),t);e.prepend(n),document.getElementById("frm-field-group-message-dismiss").addEventListener("click",function(){pn(document.getElementById("frm-field-group-message"))})}}(),"ul"===e.originalEvent.target.nodeName.toLowerCase()){var t=document.querySelector(".frm-field-group-hover-target");if(t){var n=e.ctrlKey||e.metaKey,r=e.shiftKey,o=t.classList.contains("frm-selected-field-group"),i=function(){var e=jQuery(".frm-selected-field-group");if(e.length)return e;var t=gn();if(t){var n=t.closest("ul");if(n&&1===ie(jQuery(n)).length)return n.classList.add("frm-selected-field-group"),jQuery(n)}return jQuery()}(),a=i.length;if(n||r){var l=gn();if(null===l||jQuery(l).siblings("li.form-field").length||(l.parentNode.classList.add("frm-selected-field-group"),++a),n){if(o)return--a,t.classList.remove("frm-selected-field-group"),void yn(a);++a}else if(r&&!o){++a;var s=i.first();(s.parent().index()=2||1===e&&ie(jQuery(document.querySelector(".frm-selected-field-group"))).length>1?function(){var e=document.getElementById("frm_field_multiselect_popup");if(null!==e)return e.classList.toggle("frm-unmergable",!bn()),e;(e=c()).id="frm_field_multiselect_popup",bn()||e.classList.add("frm-unmergable");var t=c();t.classList.add("frm-merge-fields-into-row"),t.textContent=I("Merge into row","formidable");var n=document.createElement("a");n.style.marginLeft="5px",n.classList.add("frm_icon_font","frm_arrowdown6_icon"),n.setAttribute("href","#"),t.append(n),e.append(t);var r=c();r.classList.add("frm-multiselect-popup-separator"),e.append(r);var o=c();o.classList.add("frm-delete-field-groups"),o.append(Rt("frm_trash_svg")),e.append(o),document.getElementById("post-body-content").append(e),jQuery(e).hide().fadeIn()}():hn(),Fe()}function vn(e){if(void 0!==e){if(null!==e.originalEvent.target.closest("#frm-show-fields"))return;if(e.originalEvent.target.classList.contains("frm-merge-fields-into-row"))return;if(null!==e.originalEvent.target.closest(".frm-merge-fields-into-row"))return;if(e.originalEvent.target.classList.contains("frm-custom-field-group-layout"))return;if(e.originalEvent.target.classList.contains("frm-cancel-custom-field-group-layout"))return}jQuery(".frm-selected-field-group").removeClass("frm-selected-field-group"),jQuery(document).off("click",vn),hn()}function hn(){var e=document.getElementById("frm_field_multiselect_popup");null!==e&&e.remove()}function bn(){var e=document.querySelectorAll(".frm-selected-field-group"),t=e.length;if(1===t)return!1;for(var n=0,r=0;r12)return!1}return!0}function jn(e){if(null===e.originalEvent.target.closest("#frm_field_group_popup")&&!e.originalEvent.target.classList.contains("frm-custom-field-group-layout")){var t=Ht(wn(),document.querySelector(".frm-selected-field-group").firstChild);this.append(t)}}function wn(){var e=0;return jQuery(document.querySelectorAll(".frm-selected-field-group")).each(function(){e+=ie(jQuery(this)).length}),e}function Qn(){var e,t=(e=[],jQuery(".frm-selected-field-group > li.form-field").each(function(){e.push(this.dataset.fid)}),e),n=function(e){return function(t){t.preventDefault(),function(e){e.forEach(function(e){En(e)})}(e)}}(t),r=document.getElementById("frm_field_multiselect_popup");null!==r&&r.remove(),this.setAttribute("data-frmverify",Ct(t.length)),D(this);var o=document.getElementById("frm-confirmed-click");null==o||o.removeAttribute("data-deletefield"),jQuery(o).on("click",n),jQuery("#frm_confirm_modal").one("dialogclose",function(){jQuery(o).off("click",n)})}function xn(){En(this.getAttribute("data-deletefield"))}function En(e){var t=jQuery("#frm_field_id_".concat(e));kn(e),t.hasClass("edit_field_type_divider")&&t.find("li.frm_field_box[data-fid]").each(function(){kn(this.getAttribute("data-fid"))}),kr()}function kn(e){jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_delete_field",field_id:e,nonce:frmGlobal.nonce},success:function(){var t,n,r,o=jQuery(document.getElementById("frm_field_id_".concat(e))),i=jQuery("#frm-single-settings-".concat(e));i.is(":visible")&&(null===(t=document.querySelector(".frm-settings-panel .frm-tabs-navs ul > li:first-child"))||void 0===t||t.click(),document.querySelector("#frm-options-panel .frm-single-settings").classList.remove("frm_hidden")),function(e){var t=e[0].querySelectorAll(".frm-inline-modal[data-fills]");t.length&&t.forEach(function(e){e.classList.add("frm_hidden"),e.removeAttribute("data-fills"),e.closest("form").append(e)})}(i),i.remove(),o.fadeOut("slow",function(){var e,t=o.closest(".start_divider"),n=o.data("type"),r=o.siblings("li.form-field");if(r.length||(o.is(".edit_field_type_end_divider")?r.length=o.closest("li.form-field").siblings():e=o.closest("ul.frm_sorting").parent()),o.remove(),"break"===n?Dn():"product"===n&&(Ie(),rt()),r.length?ae(r.first()):e.remove(),0===jQuery("#frm-show-fields li").length||function(){if(b.get(0).childElementCount>1)return!1;var e=b.get(0).firstElementChild.firstElementChild.querySelectorAll("li.frm_field_box");return!(e.length>1)&&e[0].classList.contains("edit_field_type_submit")}()){var i=document.getElementById("frm_form_editor_container");i.classList.remove("frm-has-fields"),i.classList.add("frm-empty-fields")}else t.length&&Ar(t);z()}),o.length&&(n=o.data("type"),(r=document.getElementById(n))&&r.dataset.limit&&An(n)-11)for(document.getElementById("frm-fake-page").style.display="block",e=0;e200)&&(M(i.repeat_limit_min),this.value="")}function Zn(){var e=this.value;""!==e&&(e<1||e>200)&&(M(i.checkbox_limit),this.value="")}function er(e,t){jQuery(e).closest(".frm_field_box").find(".frm_".concat(t,"_form_row .frm_repeat_label")).text(e.value)}function tr(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=this.value,n=document.getElementById("frm_show_selected_fields_".concat(e)),r=document.getElementById("frm_show_selected_forms_".concat(e));jQuery(r).find("select").val(""),"form"===t?(r.style.display="inline",function(e){if(null!==e)for(;e.firstChild;)e.firstChild.remove()}(n)):(n.style.display="none",r.style.display="none",xr(t,e))}function nr(){var e=rr(this);if(e){var t=jQuery(this).closest(".frm_single_option");!function(e,t,n){var r=n.data("optkey"),o=yr(e),i=jQuery('label[for="field_'.concat(t,"-").concat(r,'"]')),a="field_options[options_".concat(e,"][").concat(r,"]"),l=jQuery('input[name="'.concat(a,'[label]"]'));if(i.length<1)return ir(e),void(n.find('input[name^="default_value_"]').is(":checked")&&l.length>0&&jQuery('select[name^="item_meta['.concat(e,']"]')).val(l.val()));var s,d=i.children("input");if(s=l.length<1?(l=jQuery('input[name="'.concat(a,'"]'))).val():o?jQuery('input[name="'.concat(a,'[value]"]')).val():l.val(),!(l.length<1)){var u=i[0].childNodes;if(vr(e)){var f=function(e,t,n){var r,o=e.find("img");o&&(r=o.attr("src"));var i=hr(t);return pr(n.val(),i,r)}(n,e,l),m=i.find(".frm_image_option_container");m.length>0?m.replaceWith(f):(u[u.length-1].nodeValue="",i.append(f))}else{var _=!1;u.forEach(function(t,n){if(!1===_)"INPUT"===t.tagName&&(_=n);else if(n===_+1){var r="";!function(e){var t=document.getElementsByName("field_options[image_options_".concat(e,"]")),n=Array.from(t).find(function(e){return e.checked&&"buttons"===e.value});return void 0!==n}(e)?t.nodeValue=" ".concat(l.val()):(r=c({className:"frm_label_button_container",text:" ".concat(l.val())}),i[0].replaceChild(r,t))}else t.remove()})}d.val(s),defaultVal=n.find('input[name^="default_value_"]'),d.prop("checked",!!defaultVal.is(":checked"))}}(e.fieldId,e.fieldKey,t)}}function rr(e){var t=jQuery(e).closest(".frm_sortable_field_opts");return!!t.length&&{fieldId:t.attr("id").replace("frm_field_","").replace("_opts",""),fieldKey:t.data("key")}}function or(e){var t,n=document.getElementById("field_options_image_size_".concat(e)),r="";return null!==n&&""!==(t=n.value)&&(r=t),r}function ir(e){var t=jQuery('[name^="item_meta['.concat(e,']"]'));if(!(t.length<1)){if(t.is("select")){var n=document.getElementById("frm_placeholder_".concat(e));null===n||""===n.value?dr(t[0],{sourceID:e}):dr(t[0],{sourceID:e,placeholder:n.value})}else{var r=fr(e);jQuery("#field_".concat(e,"_inner_container > .frm_form_fields")).html("");for(var o=rr(jQuery("#frm_delete_field_".concat(e,"-000_container"))),i=jQuery("#field_".concat(e,"_inner_container > .frm_form_fields")),a=vr(e),l=a?or(e):"",s=a?"frm_image_option frm_image_".concat(l," "):"",c=Oi(e),d="hidden"===t.attr("type")?t.data("field-type"):t.attr("type"),u=0;u=0;u--)d();var f=c.querySelector('option[value=""]');null!==f&&c.prepend(f)}}}function sr(e,t,n,r){null!==t||e.querySelector('option[value="'.concat(n,'"]'))||((t=frmDom.tag("option",{text:r})).value=n),e.prepend(t)}function cr(e,t,n,r,o,i){var a="",l=t.key.includes("other"),s="field_".concat(r,"-").concat(t.key),c="scale"===e?"radio":e,d='');return this.getSingle=function(){return""!==(a=wp.hooks.applyFilters("frm_admin.build_single_option_template",a,{opt:t,type:e,fieldId:n,classes:i,id:s}))?a:'
              \n\t\t\t\t\t\n\t\t\t\t\t").concat(l?d:"","\n\t\t\t\t
              ")},this.getSingle()}function dr(e,t){if(null!==e){var n=t.sourceID,r=t.placeholder,o=Oi(n),i=t.other;!function(e){var t;if(void 0!==e.options)for(t=e.options.length-1;t>=0;t--)e.remove(t)}(e);for(var a=fr(n,e.id.includes("frm_field_logic_opt")),l=void 0!==r,s=0;s1&&void 0!==arguments[1]&&arguments[1],s=[],c=jQuery('input[name^="field_options[options_'.concat(e,']"]')).filter('[name$="[label]"], [name*="[other_"]'),d=Oi(e),u=hr(e),f=vr(e),m=yr(e);for(t=0;t0||(o=n=c[t].value,i=c[t].name.replace("field_options[options_".concat(e,"]["),"").replace("[label]","").replace("]",""),m&&(r=c[t].name.replace("[label]","[value]"),n=jQuery('input[name="'.concat(r,'"]')).val(),l&&""===o&&(o=""!==n?n:frm_admin_js.no_label)),f&&(o=pr(o,u,mr(c[t]))),a={saved:n,label:o=frmAdminBuild.hooks.applyFilters("frm_choice_field_label",o,e,c[t],f),checked:gr(c[t].id),key:i},d&&(r=c[t].name.replace("[label]","[price]"),a.price=jQuery('input[name="'.concat(r,'"]')).val()),s.push(a));return s}function mr(e){var t=jQuery(e).siblings(".frm_image_preview_wrapper");if(!t.length)return"";var n=t.find("img");return n.length?n.attr("src"):""}function _r(e){(e instanceof Element||e instanceof Document)&&(e=e.outerHTML);var t=jQuery.parseHTML(e).reduce(function(e,t){var n=frmDom.cleanNode(t);return"#text"===n.nodeName?e+n.textContent:e+n.outerHTML},"");return t!==e?_r(t):t}function pr(e,t,n){var r,o=e;o=_r(o),n?r=m({src:n,alt:o}):(r=c({className:"frm_empty_url"})).innerHTML=i.image_placeholder_icon;var a=t?" frm_label_with_image":"",l=s("span",{className:"frm_text_label_for_image_inner"});return l.innerHTML=o,s("span",{className:"frm_image_option_container".concat(a),children:[r,s("span",{className:"frm_text_label_for_image",child:l})]})}function gr(e){var t=jQuery("#".concat(e));if(0===t.length)return!1;var n=t.siblings("input[type=checkbox]");return n.length&&n.prop("checked")}function yr(e){return br("separate_value_".concat(e))}function vr(e){for(var t=!1,n=document.getElementsByName("field_options[image_options_".concat(e,"]")),r=0;r=0&&(t.splice(n,1),e.val(t),e.next(".btn-group").find('.multiselect-container input[value=""]').prop("checked",!1))}(jQuery(this))}function Br(e){e.val(""),e.next(".btn-group").find('.multiselect-container input[value!=""]').prop("checked",!1)}function qr(){jQuery(".frm-hide-empty").each(function(){0===jQuery(this).text().trim().length&&jQuery(this).remove()})}function Cr(e){e.preventDefault(),function(e,t,n){var r=document.getElementById(e.getAttribute("data-open")),o=jQuery(e).closest("p,ul"),i=void 0!==t;if(o.hasClass("frm-open"))o.removeClass("frm-open"),r.classList.add("frm_hidden");else{if(i||(t=Wo(e)),null!==t){if(!i){var a=n.key;"Enter"!==a&&" "!==a&&t.focus()}o.after(r),r.setAttribute("data-fills",t.id.replace("-proxy-input","")),0===r.id.indexOf("frm-calc-box")&&Ze(r,!0)}o.addClass("frm-open"),r.classList.remove("frm_hidden"),wp.hooks.doAction("frm_show_inline_modal",r,e)}}(this,void 0,e)}function Nr(e){e.preventDefault(),this.parentNode.classList.add("frm_hidden"),jQuery('.frm-open [data-open="'.concat(this.parentNode.id,'"]')).closest(".frm-open").removeClass("frm-open")}function Tr(e){var t=e.target;t.closest(".frm-inline-modal.frm-modal-no-dismiss")||t.closest(".frm-show-inline-modal")||t.closest("#frm_adv_info")||t.closest(".frm-token-proxy-input")||document.querySelectorAll(".frm-inline-modal.frm-modal-no-dismiss:not(.frm_hidden)").forEach(function(e){e.classList.add("frm_hidden"),e.previousElementSibling.classList.remove("frm-open")})}function Or(){var e,t=this.getAttribute("data-frmchange").split(",");for(e=0;e').before('')}function Yr(){var e="success";"options[edit_action]"===this.name&&(e="edit");var t=jQuery(this).val();jQuery(".".concat(e,"_action_box")).hide(),"redirect"===t?jQuery(".".concat(e,"_action_redirect_box.").concat(e,"_action_box")).fadeIn("slow"):"page"===t?jQuery(".".concat(e,"_action_page_box.").concat(e,"_action_box")).fadeIn("slow"):jQuery(".".concat(e,"_action_message_box.").concat(e,"_action_box")).fadeIn("slow")}function Zr(e){if(!function(e){var t=jQuery(e),n=t.closest(".frm_form_action_settings"),r=n.find(".widget-inside");if(r.find("p, div, table").length)return!1;var o=n.find(".widget-top");return o.on("frm-action-loaded",function(){t.trigger("click"),n.removeClass("open"),r.hide()}),o.trigger("click"),!0}(e.target)){var t=e.target.closest(".frm_form_action_settings"),n=t.querySelectorAll(".wp-editor-area");n.length&&n.forEach(function(e){tinymce.EditorManager.execCommand("mceRemoveEditor",!0,e.id)});var r=jQuery(t).clone(),o=r.attr("id").replace("frm_form_action_",""),i=eo(o);r.find(".frm_action_id, .frm-btn-group").remove(),r.find('input[name$="['.concat(o,'][ID]"]')).val(""),r.find(".widget-inside").hide(),r.find("input[type=text], textarea, input[type=number]").prop("defaultValue",function(){return this.value}),r.find("input[type=checkbox], input[type=radio]").prop("defaultChecked",function(){return this.checked});var a=new RegExp("\\[".concat(o,"\\]"),"g"),l=new RegExp("_".concat(o,'"'),"g"),s=new RegExp("-".concat(o,'"'),"g"),d=new RegExp('"'.concat(o,'"'),"g"),u=r.html().replace(a,"[".concat(i,"]")).replace(l,"_".concat(i,'"'));u=u.replace(s,"-".concat(i,'"')).replace(d,'"'.concat(i,'"'));var f=c({id:"frm_form_action_".concat(i),className:r.get(0).className});f.setAttribute("data-actionkey",i),f.innerHTML=u,f.querySelectorAll(".wp-editor-wrap, .wp-editor-wrap *").forEach(function(e){"string"==typeof e.className&&(e.className=e.className.replace(o,i)),e.id=e.id.replace(o,i)}),f.classList.remove("open"),document.getElementById("frm_notification_settings").append(f),n.length&&(n.forEach(function(e){frmDom.wysiwyg.init(e)}),f.querySelectorAll(".wp-editor-area").forEach(function(e){frmDom.wysiwyg.init(e)})),f.classList.contains("frm_single_on_submit_settings")&&f.querySelector("input.frm-page-search")&&yi(f),ci(),wp.hooks.doAction("frm_after_duplicate_action",f)}}function eo(e){var t=parseInt(e,10)+11;return null!==document.getElementById("frm_form_action_".concat(t))&&(t=eo(++t)),t}function to(){var e,t=jQuery(this).data("actiontype");if(!co(t)){var n=(e=Ln(document.querySelectorAll(".frm_form_action_settings"),"frm_form_action_"),void 0!==document.getElementById("frm_form_action_".concat(e))&&(e+=100),S>=e&&(e=S+1),S=e,e),r=E,o=document.createElement("div");o.classList.add("frm_single_".concat(t,"_settings"));var i=document.getElementById("frm_notification_settings");i.append(o),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_form_action",type:t,list_id:n,form_id:r,nonce:frmGlobal.nonce},success:function(e){Po(),o.remove(),document.querySelectorAll(".frm_form_action_settings.open").forEach(function(e){return e.classList.remove("open")});var r=c();r.innerHTML=e;var a=r.querySelector(".widget-top");Array.from(r.children).forEach(function(e){return i.append(e)}),jQuery(".frm_form_action_settings").fadeIn("slow");var l=document.getElementById("frm_form_action_".concat(n));l.classList.add("open"),document.getElementById("post-body-content").scroll({top:l.offsetTop+10,left:0,behavior:"smooth"}),so(t),Xr("#frm_form_action_".concat(n)),ci(),yi(l),a&&jQuery(a).trigger("frm-action-loaded"),frmAdminBuild.hooks.doAction("frm_added_form_action",l)}})}}function no(){var e=document.getElementById("frm_email_addon_menu").classList,t=document.getElementById("actions-search-input");e.contains("frm-all-actions")?(e.remove("frm-all-actions"),e.add("frm-limited-actions")):(e.add("frm-all-actions"),e.remove("frm-limited-actions")),t.value="",ki(t,"input")}function ro(e){e.on("Change",function(){!function(e){(function(){var e=document.querySelector(".frm-single-settings:not(.frm_hidden)");if(!e)return!1;var t=e.querySelector(".wp-editor-wrap");return null!==t&&t.classList.contains("tmce-active")})()&&!tinyMCE.activeEditor.isHidden()&&(e.targetElm.value=e.getContent(),jQuery(e.targetElm).trigger("change"))}(e)})}function oo(e){var t=this;if(null!==e)return this.fragment=document.createDocumentFragment(),this.initOnceInAllInstances=function(){void 0===oo.prototype.endMarker&&(oo.prototype.endMarker=document.getElementById("frm-end-form-marker"))},this.append=function(e){var n=null!==e?e.parentElement.classList:"";null!==e&&(n.contains("frm_field_box")||n.contains("divider_section_only"))&&t.fragment.append(e)},this.moveFields=function(){j.insertBefore(t.fragment,oo.prototype.endMarker)},this.initOnceInAllInstances(),void 0!==e?(this.append(e),void this.moveFields()):{append:this.append,moveFields:this.moveFields}}function io(){var e=jQuery(this).closest(".frm_form_action_settings").data("actionkey"),t=this.getAttribute("data-emailrow");jQuery("#frm_form_action_".concat(e," .frm_").concat(t,"_row")).fadeIn("slow"),jQuery(this).fadeOut("slow")}function ao(){var e=jQuery(this).closest(".frm_form_action_settings"),t=this.getAttribute("data-emailrow"),n=".frm_".concat(t,"_row"),r=".frm_".concat(t,"_button");jQuery(e).find(r).fadeIn("slow"),jQuery(e).find(n).fadeOut("slow",function(){jQuery(e).find("".concat(n," input")).val("")})}function lo(){var e=jQuery(this).closest(".frm_form_action_settings"),t=".frm_from_to_match_row";e.find('input[name$="[post_content][from]"]').val()===e.find('input[name$="[post_content][email_to]"]').val()?jQuery(e).find(t).fadeIn("slow"):jQuery(e).find(t).fadeOut("slow")}function so(e){var t,n,r=document.querySelectorAll(".frm_".concat(e,"_action"));co(e)?(t=r,n=uo(e)>0,t.forEach(function(e){e.classList.remove("frm_active_action"),e.classList.add("frm_inactive_action"),n&&e.classList.add("frm_already_used")})):r.forEach(function(e){e.querySelector(".frm_show_upgrade")||(e.classList.remove("frm_inactive_action","frm_already_used"),e.classList.add("frm_active_action"))})}function co(e){var t=function(e){return jQuery(".frm_single_".concat(e,"_settings")).length}(e)>=uo(e),n={type:e};return wp.hooks.applyFilters("frm_action_at_limit",t,n)}function uo(e){return parseInt(jQuery(".frm_".concat(e,"_action")).data("limit"),10)}function fo(){var e=i.only_one_action,t=this.dataset.limit;void 0!==t&&((t=parseInt(t))>1?e=e.replace(1,t).trim():e+=" ".concat(i.edit_action_text)),M(e)}function mo(){var e=jQuery(this).data("emailkey"),t=jQuery(this).closest(".frm_form_action_settings").find(".frm_action_name").val(),n=document.getElementById("form_id").value,r=document.getElementById("frm_logic_row_".concat(e)),o=Ln(r.querySelectorAll(".frm_logic_row"),"frm_logic_".concat(e,"_")),i=c({id:"frm_logic_".concat(e,"_").concat(o),className:"frm_logic_row frm_hidden"});return r.append(i),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_form_logic_row",email_id:e,form_id:n,meta_name:o,type:t,nonce:frmGlobal.nonce},success:function(t){jQuery(document.getElementById("logic_link_".concat(e))).fadeOut("slow",function(){i.insertAdjacentHTML("beforebegin",t),i.remove(),jQuery(r).parent(".frm_logic_rows").fadeIn("slow")})}}),!1}function _o(){var e=jQuery("select.frm_single_post_field");e.css("border-color","");var t=this,n=jQuery(t).val();if(""===n||"checkbox"===n)return!1;e.each(function(){if(jQuery(this).val()===n&&this.name!==t.name)return this.style.borderColor="red",jQuery(t).val(""),M(i.field_already_used),!1})}function po(){var e=jQuery(this).val();""===e?(jQuery(".frm_post_content_opt, select.frm_dyncontent_opt").hide().val(""),jQuery(".frm_dyncontent_opt").hide()):"post_content"===e?(jQuery(".frm_post_content_opt").show(),jQuery(".frm_dyncontent_opt").hide(),jQuery("select.frm_dyncontent_opt").val("")):(jQuery(".frm_post_content_opt").hide().val(""),jQuery("select.frm_dyncontent_opt, .frm_form_field.frm_dyncontent_opt").show())}function go(){var e=jQuery(this).val(),t=jQuery(document.getElementById("frm_dyncontent"));""===e||"new"===e?(t.val(""),jQuery(".frm_dyncontent_opt").show()):jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_display_get_content",id:e,nonce:frmGlobal.nonce},success:function(e){t.val(e),jQuery(".frm_dyncontent_opt").show()}})}function yo(){var e,t,n=document.getElementById("frm_posttax_rows").childNodes,r=document.querySelector(".frm_post_parent_field"),o=document.querySelector(".frm_post_menu_order_field"),i=this.value;jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_replace_posttax_options",post_type:i,nonce:frmGlobal.nonce},success:function(r){for(var o=0;o');var e=jQuery(this).closest(".frm_form_action_settings").find('select[name$="[post_content][post_type]"]').val(),t=jQuery(this).closest(".frm_form_action_settings").data("actionkey"),n=jQuery(this).closest(".frm_posttax_row").attr("id").replace("frm_posttax_",""),r=jQuery(this).val(),o=jQuery(document.getElementById("".concat(n,"_show_exclude"))).is(":checked")?1:0,i=jQuery('select[name$="[post_category]['.concat(n,'][field_id]"]')).val(),a=jQuery('input[name="id"]').val();jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_posttax_row",form_id:a,post_type:e,tax_key:n,action_key:t,meta_name:r,field_id:i,show_exclude:o,nonce:frmGlobal.nonce},success:function(e){jQuery(document.getElementById("frm_posttax_".concat(n))).replaceWith(e)}})}}function Qo(){var e=jQuery(this).closest(".frm_postmeta_row"),t=e.find(".frm_cancelnew"),n=e.find(".frm_enternew");return e.find("select.frm_cancelnew").is(":visible")?(t.hide(),n.show()):(t.show(),n.hide()),e.find("input.frm_enternew, select.frm_cancelnew").val(""),!1}function xo(){var e=jQuery(this),t=e.val();"checkbox"===e.attr("type")&&!1===this.checked&&(t="");var n=e.data("toggleclass");""===t?jQuery(".".concat(n)).hide():(jQuery(".".concat(n)).show(),jQuery(".hide_".concat(n,"_").concat(t)).hide())}function Eo(){Ur()||($r(this),zr(document.querySelector(".frm_form_settings")))}function ko(e){return e.preventDefault(),Ao(jQuery(this),this.getAttribute("data-code")),!1}function Ao(e,t){var n=!1,r=e;if("object"===a(e)){if(e.hasClass("frm_noallow"))return;void 0===(r=jQuery(e).closest("[data-fills]").attr("data-fills"))&&void 0!==(r=e.closest("div").attr("class"))&&(r=r.split(" ")[1])}if(void 0===r){var o=document.activeElement;"search"===o.type?null===(r=o.id.replace("-search-input","")).match(/\d/gi)&&(r=(o=jQuery(".frm-single-settings:visible .".concat(r))).attr("id")):r=o.id}r&&(n=jQuery("#wp-".concat(r,"-wrap.wp-editor-wrap")).length>0);var i=jQuery(document.getElementById(r));if(void 0===e.attr("data-shortcode")&&(!i.length||void 0===i.attr("data-shortcode"))){var l=e.parents("ul.frm_code_list").attr("data-shortcode");"undefined"!==l&&"no"===l||(t="[".concat(t,"]"))}if(n&&(wpActiveEditor=r),!i.length)return!1;if("[default-html]"===t||"[default-plain]"===t){var s=0;"[default-plain]"===t&&(s=1),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_get_default_html",form_id:jQuery('input[name="id"]').val(),plain_text:s,nonce:frmGlobal.nonce},elementId:r,success:function(e){if(n){var t=document.createElement("p");t.innerText=e,send_to_editor(t.innerHTML)}else So(i,e)}})}else t=function(e,t,n){return"object"===a(t)&&t instanceof jQuery&&0===n[0].id.indexOf("success_url_")&&(t=t[0]).closest("#frm-insert-fields-box")?(t.parentNode.classList.contains("frm_insert_url")||(e=e.replace("]"," sanitize_url=1]")),e):e}(t,e,i),n?send_to_editor(t):So(i,t);return!1}function So(e,t){if(document.selection)e[0].focus(),document.selection.createRange().text=t;else{var n=e[0],r=n.selectionEnd;t=function(e,t,n,r){var o=e.data("sep");if(void 0===o)return t;var i=e.val();if(!i.trim().length)return t;var a=new RegExp("".concat(o,"\\s*$")),l=new RegExp("^\\s*".concat(o));return i.substr(0,n).trim().length&&!1===a.test(i.substr(0,n))&&(t=o+t),i.substr(r,i.length).trim().length&&!1===l.test(i.substr(r,i.length))&&(t+=o),t}(e,t,n.selectionStart,r),n.value=n.value.substr(0,n.selectionStart)+t+n.value.substr(n.selectionEnd,n.value.length);var o=r+t.length;!function(e,t){if(e.classList.contains("frm_classes")&&Lo(t)){var n=e.value.split(" ").filter(Lo);n.length&&(e.value=function(e,t,n){var r=e.split(" ").filter(function(e){return(e=e.trim()).length&&!t.includes(e)});return r.includes(n)||r.push(n),r.join(" ")}(e.value,n,t.trim()))}}(n,t),n.focus(),n.setSelectionRange(o,o)}Rr(e)}function Lo(e){return["frm_half","frm_third","frm_two_thirds","frm_fourth","frm_three_fourths","frm_fifth","frm_sixth","frm2","frm3","frm4","frm6","frm8","frm9","frm10","frm12"].includes(e.trim())}function Io(){var e=document.getElementById("frm-id-condition"),t=document.getElementById("frm-key-condition");"id"===this.value?(e.classList.remove("frm_hidden"),t.classList.add("frm_hidden"),ki(t,"change")):(e.classList.add("frm_hidden"),t.classList.remove("frm_hidden"),ki(e,"change"))}function Bo(){var e=document.getElementById("frm-id-key-condition-id").checked?"frm-id-condition":"frm-key-condition",t=document.getElementById("frm-is-condition").value,n=document.getElementById("frm-text-condition").value,r=document.getElementById("frm-insert-condition"),o=(e=document.getElementById(e)).options[e.selectedIndex].value,a="if ".concat(o," ").concat(t,'="').concat(n,'"]');r.setAttribute("data-code","".concat(a+i.conditional_text,"[/if ").concat(o)),r.innerHTML="[".concat(a,"[/if ").concat(o,"]")}function qo(e){return e.getAttribute("href")||e.getAttributeNS("http://www.w3.org/1999/xlink","href")}function Co(e){var t;e.parentNode.parentNode.classList.contains("frm_has_shortcodes")&&($o(),"use"===(t=Vo(e)).tagName?qo(t=t.firstElementChild).includes("frm_close_icon")||Do(t,"nofocus"):t.classList.contains("frm_close_icon")||Do(t,"nofocus"))}function No(e){e.preventDefault(),e.stopPropagation(),Do(this)}function To(e){!function(e){var t;if(e.id.startsWith("field_options_type_")){var n=e.id.split("_"),r=n.length&&n[n.length-1];null!==(t=document.querySelector("#frm-single-settings-".concat(r)))&&void 0!==t&&t.classList.contains("frm-type-".concat(e.value))||Oo()}}(e.target)}function Oo(e){var t;void 0===e&&(e=I("You are changing the field type. Not all field settings will appear as expected until you reload the page. Would you like to reload the page now?","formidable")),frmDom.modal.maybeCreateModal("frmSaveAndReloadModal",{title:I("Save and Reload?","formidable"),content:(t=c(e),t.style.padding="var(--gap-md)",t),footer:function(){var e=frmDom.modal.footerButton({text:I("Save and Reload","formidable"),buttonType:"primary"});_(e,function(){var e;(e=document.getElementById("frm_submit_side_top")).classList.contains("frm_submit_ajax")&&e.setAttribute("data-new-addon-installed",!0),e.click()});var t=frmDom.modal.footerButton({text:I("Cancel","formidable"),buttonType:"cancel"});return t.classList.add("dismiss"),frmDom.div({children:[t,e]})}()})}function Fo(e){var t;if(e instanceof Event){var n=document.querySelectorAll(".frm-single-settings .frm-show-box.frmsvg use"),r=Array.from(n).find(function(e){return"#frm_close_icon"===e.getAttribute("href")});if(void 0===r)return;t=r.parentElement}else t=e;var o=t.getBoundingClientRect(),i=document.getElementById("frm_adv_info"),a=i.parentElement.getBoundingClientRect();i.style.top="".concat(o.top-a.top+32,"px"),i.style.left="".concat(o.left-a.left-280,"px")}function Do(e,t){var n=Wo(e),r=document.getElementById("frm_adv_info"),a=e.className;if("svg"===e.tagName&&(e=e.firstElementChild),"use"===e.tagName&&(a=qo(e)),a.includes("frm_close_icon"))$o(r);else{if(Fo(e),jQuery(".frm_code_list a").removeClass("frm_noallow"),n.classList.contains("frm_not_email_to")?jQuery("#frm-insert-fields-box .frm_code_list li:not(.show_frm_not_email_to) a").addClass("frm_noallow"):n.classList.contains("frm_not_email_subject")&&jQuery(".frm_code_list li.hide_frm_not_email_subject a").addClass("frm_noallow"),r.setAttribute("data-fills",n.id),r.style.display="block","use"===e.tagName)if(e.hasAttributeNS("http://www.w3.org/1999/xlink","href"))e.setAttributeNS("http://www.w3.org/1999/xlink","href","#frm_close_icon");else{var l=document.createElementNS("http://www.w3.org/2000/svg","use");l.setAttributeNS("http://www.w3.org/1999/xlink","href","#frm_close_icon"),e.parentNode.replaceChild(l,e)}else e.className=a.replace("frm_more_horiz_solid_icon","frm_close_icon");"nofocus"!==t&&("none"!==n.style.display?n.focus():jQuery(tinymce.get(n.id)).trigger("focus")),function(e){["address","body"].forEach(function(t){!function(e,t){var n,r=i.contextualShortcodes["".concat(t,"Selector")],a=i.contextualShortcodes[t],l=e.matches(r),s=function(e){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=o(e))){t&&(e=t);var n=0,r=function(){};return{s:r,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==t.return||t.return()}finally{if(l)throw i}}}}(a);try{for(s.s();!(n=s.n()).done;){var c,d=n.value,u=null===(c=document.querySelector('#frm-adv-info-tab .frm_code_list [data-code="'.concat(d,'"]')))||void 0===c?void 0:c.closest("li");null==u||u.classList.toggle("frm_hidden",!l)}}catch(e){s.e(e)}finally{s.f()}}(e,t)})}(n)}}function Mo(e){return 0===i.contextualShortcodes.length||!function(e){var t=e.querySelector("a");if(!t)return!1;var n=t.dataset.code;return i.contextualShortcodes.address.includes(n)||i.contextualShortcodes.body.includes(n)}(e)||function(e){var t=e.querySelector("a").dataset.code,n=document.getElementById("frm_adv_info").dataset.fills,r=document.getElementById(n),o=i.contextualShortcodes;return o.address.includes(t)?r.matches(o.addressSelector):r.matches(o.bodySelector)}(e)}function Po(){x||(x=1,window.addEventListener("beforeunload",Go))}function Ho(){x=0}function zo(){x=0}function Ro(){x=0}function Go(e){x&&(e.preventDefault(),e.returnValue="")}function Uo(e,t){var n={my:"top",at:"top+".concat(t),of:window};e.dialog("option","position",n)}function Wo(e){if(e.classList.contains("frm-input-icon"))return e.previousElementSibling;for(var t,n=e.nextElementSibling;null!==n&&("INPUT"!==n.tagName&&"TEXTAREA"!==n.tagName||n.classList.contains("frm-token-input-field"));)n=Wo(n);return n||(n=null===(t=e.closest(".frm-field-formula"))||void 0===t?void 0:t.querySelector(".frm-calc-field")),n}function Vo(e){var t;if(null!==(t=e.nextElementSibling)&&void 0!==t&&t.classList.contains("frm-input-icon"))return e.nextElementSibling;for(var n=e.previousElementSibling;null!==n&&"I"!==n.tagName&&"svg"!==n.tagName;)n=Vo(n);return n}function $o(e){if((void 0!==e||null!==(e=document.getElementById("frm_adv_info")))&&null===document.getElementById("frm_dyncontent")){e.style.display="none";for(var t=document.querySelectorAll(".frm-show-box.frm_close_icon"),n=0;n".concat(n.data.name,": ").concat(n.data.msg,"

              "):'

              Imported ').concat(n.data.name,"

              "),e.find(".status").prepend(r),e.find(".status").show(),C.importQueue=jQuery.grep(C.importQueue,function(e){return e!=t}),C.imported++,0===C.importQueue.length?(e.find(".process-count").hide(),e.find(".forms-completed").text(C.imported),e.find(".process-completed").show()):(e.find(".form-current").text(C.imported+1),ei(e)))})}function ti(e){e.preventDefault();var t=!1,n=jQuery('input[name="frm_export_forms[]"]');jQuery('input[name="frm_export_forms[]"]:checked').val()||(n.closest(".frm-table-box").addClass("frm_blank_field"),t="stop");var r=jQuery('input[name="type[]"]');if(jQuery('input[name="type[]"]:checked').val()||"checkbox"!==r.attr("type")||(r.closest("p").addClass("frm_blank_field"),t="stop"),"stop"===t)return!1;e.stopPropagation(),this.submit()}function ni(){var e=jQuery(this).closest(".frm_blank_field");if(void 0!==e){var t=this.name;("type[]"===t&&jQuery('input[name="type[]"]:checked').val()||"frm_export_forms[]"===t&&jQuery(this).val())&&e.removeClass("frm_blank_field")}}function ri(){null!==jQuery(this).val().match(/\.csv$/i)?jQuery(".show_csv").fadeIn():jQuery(".show_csv").fadeOut()}function oi(){var e=document.querySelector('select[name="format"]');return e?e.value:""}function ii(e){var t,n,r=e.target.value;li(r),ai.call(e.target),t=r,n=document.getElementById("frm-export-select-all"),"csv"===t?(n.checked=!1,n.disabled=!0):n.disabled=!1}function ai(){var e=jQuery(this),t=e.find(":selected"),n=t.data("support"),r=n.indexOf("|");jQuery('input[name="type[]"]').each(function(){this.checked=!1,n.includes(this.value)?(this.disabled=!1,-1===r&&(this.checked=!0)):this.disabled=!0}),"csv"===e.val()?(jQuery(".csv_opts").show(),jQuery(".xml_opts").hide()):(jQuery(".csv_opts").hide(),jQuery(".xml_opts").show());var o=t.data("count"),i=jQuery('input[name="frm_export_forms[]"]');"single"===o?(i.prop("multiple",!1),i.prop("checked",!1)):(i.prop("multiple",!0),i.prop("disabled",!1)),e.trigger("change")}function li(e){if(""!==e){var t=document.querySelectorAll(".frm-is-repeater");t.length&&("csv"===e?t.forEach(function(e){e.classList.remove("frm_hidden")}):t.forEach(function(e){e.classList.add("frm_hidden")}),Qi.call(document.querySelector(".frm-auto-search")))}}function si(){var e=jQuery("select[name=format]").find(":selected").data("count"),t=jQuery('input[name="frm_export_forms[]"]');"single"===e&&this.checked?(t.prop("disabled",!0),this.removeAttribute("disabled")):t.prop("disabled",!1)}function ci(){jQuery(".frm_multiselect").hide().each(frmDom.bootstrap.multiselect.init)}function di(e){e.preventDefault(),mi(this,"frm_multiple_addons")}function ui(e){e.preventDefault(),mi(this,"frm_activate_addon")}function fi(e){e.preventDefault(),mi(this,"frm_install_addon")}function mi(e,t){n(1105).toggleAddonState(e,t)}function _i(){gi()}function pi(e){!function(e,t,n){var r=jQuery("#frm_leave_email_error");r.removeClass("frm_hidden").attr("frm-error",n),jQuery("#frm_leave_email").one("keyup",function(){r.addClass("frm_hidden")})}(0,0,e)}function gi(){var e=document.getElementById("frmapi-email-form");jQuery.ajax({dataType:"json",url:e.getAttribute("data-url"),success:function(t){var n=t.renderedHtml;n=n.replace(/]*(formidableforms.css|action=frmpro_css)[^>]*>/gi,""),e.innerHTML=n}})}function yi(e){frmDom.autocomplete.initSelectionAutocomplete(e)}function vi(e){var t=this.parentNode.parentNode,n=t.elements.type.value;e.preventDefault(),this.classList.add("frm_loading_button"),bi(t,n,this)}function hi(e){var t=this.elements.type.value,n=this.querySelector("button");e.preventDefault(),n.classList.add("frm_loading_button"),bi(this,t,n)}function bi(e,t,n){var r=function(e){var t,n,r={},o=e.elements;for(n=0;n .frm-with-line").forEach(function(e){var t=e.nextElementSibling;if(t){var n=t.querySelectorAll(":scope > li.frmbutton"),r=Array.from(n).every(function(e){return e.classList.contains("frm_hidden")});e.classList.toggle("frm_hidden",r)}}),jQuery(this).trigger("frmAfterSearch")}function xi(e,t){return"s"!==t&&"s"!==e[e.length-1]&&"".concat(e,"s").includes(t)}function Ei(e){e.stopPropagation()}function ki(e,t){var n=document.createEvent("HTMLEvents");n.initEvent(t,!1,!0),e.dispatchEvent(n)}function Ai(e,t){var n,r=new XMLHttpRequest,o="string"==typeof e?e:Object.keys(e).map(function(t){return"".concat(encodeURIComponent(t),"=").concat(encodeURIComponent(e[t]))}).join("&");return r.open("post",ajaxurl,!0),r.onreadystatechange=function(){if(r.readyState>3&&200==r.status){n=r.responseText;try{n=JSON.parse(n)}catch(e){}t(n)}},r.setRequestHeader("X-Requested-With","XMLHttpRequest"),r.setRequestHeader("Content-type","application/x-www-form-urlencoded"),r.send(o),r}function Si(e,t){e.classList.add("frm-fade"),setTimeout(t,1e3)}function Li(e){jQuery(e).css("visibility","hidden")}function Ii(e){jQuery(e).css("visibility","visible")}function Bi(e,t){return n(4260).initModal(e,t)}function qi(e,t){if("#"===t){var n=document.getElementById(e),r=n.style.display;n.style.display="none"===r?"block":"none"}else e.is(":visible")?e.hide():e.show()}function Ci(){window.onbeforeunload=null;var e=jQuery(window);e.off("beforeunload.widgets"),e.off("beforeunload.edit-post")}function Ni(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=document.getElementById("frm_field_id_".concat(e));if(null!==t&&"form"===t.dataset.type)if(t=jQuery(t),this.options[this.selectedIndex].value){t.find(".frm-not-set")[0].classList.add("frm_hidden");var n=t.find(".frm-embed-message");n.html(n.data("embedmsg")+this.options[this.selectedIndex].text),t.find(".frm-embed-field-placeholder")[0].classList.remove("frm_hidden")}else t.find(".frm-not-set")[0].classList.remove("frm_hidden"),t.find(".frm-embed-field-placeholder")[0].classList.add("frm_hidden")}function Ti(){var e=jQuery(this).closest(".frm-single-settings"),t=e.find(".frmjs_product_choices"),n=e.find(".frm_prod_options_heading"),r=this.options[this.selectedIndex].value;t.removeClass("frm_prod_type_single frm_prod_type_user_def"),n.removeClass("frm_prod_user_def"),"single"===r?t.addClass("frm_prod_type_single"):"user_def"===r&&(t.addClass("frm_prod_type_user_def"),n.addClass("frm_prod_user_def"))}function Oi(e){var t=document.getElementById("frm_field_id_".concat(e));return null!==t&&"product"===t.getAttribute("data-type")}function Fi(){var e=function(e,t){return window.frmCachedSubFields=window.frmCachedSubFields||{},window.frmCachedSubFields[e]=window.frmCachedSubFields[e]||{},window.frmCachedSubFields[e][t]},t=function(e,t,n){window.frmCachedSubFields=window.frmCachedSubFields||{},window.frmCachedSubFields[e]=window.frmCachedSubFields[e]||{},window.frmCachedSubFields[e][t]=n},n=[1,2,3,4,5,6,7,8,9,10,11,12].map(function(e){return"frm".concat(e)}),o=["first","middle","last"];document.addEventListener("change",function(i){i.target.matches(".frm_name_layout_dropdown")&&function(i){var a,l=i.target.value.split("_"),s=i.target.dataset.fieldId,c=document.querySelector("#field_".concat(s,"_inner_container .frm_combo_inputs_container")),d=(a=l.length,"frm".concat(parseInt(12/a)));o.forEach(function(e){var o,i=c.querySelector('[data-sub-field-name="'.concat(e,'"]'));i&&(i.classList.add("frm_hidden"),(o=i.classList).remove.apply(o,r(n)),t(s,e,i))}),l.forEach(function(t){var n=e(s,t);n&&(n.classList.remove("frm_hidden"),n.classList.add(d),c.append(n))}),o.forEach(function(e){var n=document.querySelector(".frm_sub_field_options-".concat(e,'[data-field-id="').concat(s,'"]'));n&&(n.classList.add("frm_hidden"),t(s,"".concat(e,"_options"),n))}),l.forEach(function(t){var n=e(s,"".concat(t,"_options"));n&&n.classList.remove("frm_hidden")})}(i)},!1)}function Di(e,t){var n,r,o,i=!1,a=!1;(n=t.newOption?(new DOMParser).parseFromString(t.newOption,"text/html").body.childNodes[0]:t).querySelectorAll("svg").forEach(function(e){(r=e.getElementsByTagNameNS("http://www.w3.org/2000/svg","use")[0])&&("#frm_drag_icon"===(o=qo(r))&&(i=!0),"#frm_save_icon"===o&&(a=!0))}),i||n.prepend(h.drag.cloneNode(!0)),n.querySelector("[id^=field_key_".concat(e,"-]"))&&!a&&n.querySelector("[id^=field_key_".concat(e,"-]")).after(h.save.cloneNode(!0)),t.newOption&&(t.newOption=n)}function Mi(){var e=document.getElementById("frm_leave_email").value.trim();if(""!==e)if(!1!==/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/i.test(e)){var t=jQuery("#frmapi-email-form").find("form"),n=t.find('[type="email"]').not(".frm_verify");if(n.length){if(document.getElementById("frm_empty_inbox")){document.getElementById("frm-add-my-email-address").remove();var r=document.getElementById("frm_leave_email_wrapper");if(r){r.classList.add("frm_hidden");var o=d({className:"frm-wait frm_spinner"});o.style.visibility="visible",o.style.float="none",o.style.width="unset",r.parentElement.insertBefore(o,r.nextElementSibling)}}n.val(e),jQuery.ajax({type:"POST",url:t.attr("action"),data:"".concat(t.serialize(),"&action=frm_forms_preview")}).done(function(e){if(jQuery(e).find(".frm_message").text().trim().includes("Thanks!")){var t=document.getElementById("frmapi-email-form").parentElement.querySelector(".frm_spinner");t&&t.remove(),wp.hooks.applyFilters("frm_thank_you_on_signup",!0)&&document.getElementById("frm_leave_email_wrapper").replaceWith(d(I("Thank you for signing up!","formidable")))}else pi("invalid")})}}else pi("invalid");else pi("empty")}function Pi(e){var t;if(O||e.stopPropagation(),!(e.target.classList.contains("frm-show-box")||null!==(t=e.target.parentElement)&&void 0!==t&&t.classList.contains("frm-show-box"))){var n=document.getElementById("frm_adv_info");n&&(n.dataset.fills===e.target.id&&void 0!==e.target.id||e.target.closest("#frm_adv_info")||"none"===n.style.display||$o(n))}}return{init:function(){var e,t,o,i,a,l,s;!function(){jQuery(document).on("click","#frm-add-my-email-address",function(e){e.preventDefault(),Mi()});var e=document.getElementById("frm_empty_inbox"),t=document.getElementById("frm_leave_email");if(e&&t){var n=document.getElementById("frm-leave-email-modal");n.classList.remove("frm_hidden"),n.querySelector(".frm_modal_footer").classList.add("frm_hidden"),t.addEventListener("keyup",function(e){if("Enter"===e.key){var t=document.getElementById("frm-add-my-email-address");t&&t.click()}})}}(),t=document.querySelector(".frm-admin-footer-links"),o=null!==(e=document.querySelector(".frm_page_container"))&&void 0!==e?e:document.getElementById("wpbody-content"),t&&o&&(o.append(t),t.classList.remove("frm_hidden")),document.addEventListener("show.bs.dropdown",function(){z()}),C={},jQuery(".wp-admin").on("click",function(e){var t=jQuery(e.target),n=jQuery(".dropdown.open");!n.length||t.hasClass("dropdown")||t.closest(".dropdown").length||n.removeClass("open")}),jQuery("#frm_bs_dropdown:not(.open) a").on("click",At),void 0===E&&(E=jQuery(document.getElementById("form_id")).val()),document.querySelectorAll(".frm-warning-dismiss").forEach(function(e){_(e,St)}),frmAdminBuild.inboxBannerInit(),b.length>0?frmAdminBuild.buildInit():null!==document.getElementById("frm_notification_settings")?frmAdminBuild.settingsInit():null!==document.getElementById("frm_styling_form")?frmAdminBuild.styleInit():null!==document.getElementById("form_global_settings")?frmAdminBuild.globalSettingsInit():null!==document.getElementById("frm_export_xml")?frmAdminBuild.exportInit():null!==document.querySelector(".frm-inbox-wrapper")?frmAdminBuild.inboxInit():null!==document.getElementById("frm-welcome")?frmAdminBuild.solutionInit():(function(){if(document.body.classList.contains("frm-admin-page-entries")){var e=document.getElementById("screen-options-wrap");if(e){var t=c({className:"frm_warning_style",text:I("Only 10 columns can be selected at a time.","formidable")});t.style.margin=0;var n=e.querySelector("legend");n.parentNode.insertBefore(t,n.nextElementSibling);var r=Array.from(e.querySelectorAll('input[type="checkbox"]')),o=function(){r.reduce(function(e,t){return t.checked?e+1:e},0)>=10?(t.classList.remove("frm_hidden"),r.forEach(function(e){e.checked||(e.parentNode.classList.add("frm_noallow"),e.disabled=!0)})):t.classList.add("frm_hidden")};o(),r.forEach(function(e){e.addEventListener("change",function(e){e.target.checked?o():(t.classList.add("frm_hidden"),r.forEach(function(e){e.parentNode.classList.remove("frm_noallow"),e.disabled=!1}))})})}}}(),yi(),jQuery("[data-frmprint]").on("click",function(){return window.print(),!1})),jQuery(document).on("change","select[data-toggleclass], input[data-toggleclass]",xo),function(){function e(e){var t=e.options[e.selectedIndex];e.querySelectorAll("option[data-dependency]:not([data-dependency-skip])").forEach(function(e){var n=document.querySelector(e.dataset.dependency);null==n||n.classList.toggle("frm_hidden",t!==e)})}document.querySelectorAll("select.frm_select_with_dependency").forEach(e),frmDom.util.documentOn("change","select.frm_select_with_dependency",function(t){return e(t.target)})}(),(jQuery(document.getElementById("frm_adv_info")).length>0||jQuery(".frm_field_list").length>0)&&frmAdminBuild.panelInit(),i=jQuery(".wrap, .frm_wrap"),a=document.getElementById("frm_confirm_modal"),l=!1,s=!1,jQuery(a).on("click","[data-deletefield]",xn),jQuery(a).on("click","[data-removeid]",R),jQuery(a).on("click","[data-trashtemplate]",wi),i.on("click",".frm_remove_tag, .frm_remove_form_action",R),i.on("click","a[data-frmverify]",F),i.on("click","a[data-frmtoggle]",P),i.on("click","a[data-frmhide], a[data-frmshow]",H),i.on("change","input[data-frmhide], input[data-frmshow]",H),i.on("click",".widget-top,a.widget-action",G),i.on("mouseenter.frm",".frm_bstooltip, .frm_help",function(){jQuery(this).off("mouseenter.frm"),function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e;(n.hasAttribute("data-toggle")||n.hasAttribute("data-bs-toggle"))&&(n.parentElement.setAttribute("title",n.getAttribute("title")),n.removeAttribute("title"),n.classList.remove("frm_bstooltip"),n.parentElement.classList.add("frm_bstooltip"),n=n.parentElement),jQuery(n).tooltip(),t&&(z(),jQuery(n).tooltip("show"))}(this,!0)}),jQuery(document).on("click","#doaction, #doaction2",function(e){var t="doaction"===this.id?"top":"bottom",n=document.getElementById("bulk-action-selector-".concat(t)),r=document.getElementById("confirm-bulk-delete-".concat(t));if(null!==n&&null!==r){if(l=this,!s&&"bulk_delete"===n.value)return e.preventDefault(),D(r),!1}else l=!1}),jQuery(document).on("click","#frm-confirmed-click",function(e){if(!1!==l&&!e.target.classList.contains("frm-btn-inactive"))return"confirm-bulk-delete"===this.getAttribute("href")?(e.preventDefault(),s=!0,l.click(),!1):void 0}),n(4260).initUpgradeModal(),frmDom.util.documentOn("click","[data-modal-title]",Kr);var d=jQuery(document.getElementById("frm_shortcodediv"));d.length>0&&(jQuery("a.edit-frm_shortcode").on("click",function(){return d.is(":hidden")&&(d.slideDown("fast"),this.style.display="none"),!1}),jQuery(".cancel-frm_shortcode","#frm_shortcodediv").on("click",function(){return d.slideUp("fast"),d.siblings("a.edit-frm_shortcode").show(),!1})),jQuery(document).on("click","#frm-nav-tabs a",U),jQuery(".post-type-frm_display .frm-nav-tabs a, .frm-category-tabs a").on("click",function(){var e=this.classList.contains("frm_show_upgrade_tab");if(!this.classList.contains("frm_noallow")||e)return e&&Jr(this),W(this),!1}),W(jQuery(".starttab a"),"auto"),jQuery(document).on("click","#frm-fid-search-menu a",function(){var e=this.id.replace("fid-","");return jQuery('select[name="fid"]').val(e),zr(document.getElementById("posts-filter")),!1}),jQuery(".frm_select_box").on("click focus",function(){this.select()}),jQuery(document).on("input search change",".frm-auto-search:not(#frm-form-templates-page #template-search-input)",Qi),jQuery(document).on("focusin click",".frm-auto-search",Ei);var u=jQuery(".frm-auto-search");""!==u.val()&&u.trigger("keyup"),FrmFormsConnect.init(),jQuery(document).on("click",".frm-install-addon",fi),jQuery(document).on("click",".frm-activate-addon",ui),jQuery(document).on("click",".frm-solution-multiple",di),jQuery("button, input[type=submit]").on("click",Ci),document.addEventListener("click",function(e){if("LABEL"===e.target.nodeName){var t=e.target.getAttribute("for");if(t){var n=document.getElementById(t);if(n&&n.nextElementSibling){var r=n.nextElementSibling.querySelector("button.dropdown-toggle.multiselect");r&&setTimeout(function(){return r.click()},0)}}}}),frmAdminBuild.hooks.addFilter("frm_before_embed_modal",function(e,t){var n,r,o=t.element;if("form"!==t.type)return e;var i=o.closest("tr");if(i)n=parseInt(i.querySelector(".column-id").textContent),r=i.querySelector(".column-form_key").textContent;else{n=document.getElementById("form_id").value;var a=document.getElementById("frm_form_key");if(a)r=a.value;else{var l=document.getElementById("frm-previewDrop");l&&(r=l.nextElementSibling.querySelector(".dropdown-item a").getAttribute("href").split("form=")[1])}}return[n,r]}),document.querySelectorAll("#frm-show-fields > li, .frm_grid_container li").forEach(function(e,t){e.addEventListener("click",function(){var e,t,n;t=(null===(e=this.querySelector("li"))||void 0===e?void 0:e.dataset.fid)||this.dataset.fid,(n=document.querySelectorAll("[id^=frm_delete_field_".concat(t,"-]"))).length<2||r(n).slice(1).forEach(function(e,n){e.classList.contains("frm_other_option")||Di(t,e)})})});var f=document.getElementById("frm_small_screen_proceed_button");f&&_(f,function(){var e;null===(e=document.getElementById("frm_small_device_message_container"))||void 0===e||e.remove(),p("small_screen_proceed",new FormData)});var m=document.getElementById("frm_sale_banner"),g=null==m?void 0:m.querySelector(".dismiss");m&&(_(m,function(e){e.target.closest(".dismiss")||(window.location.href=m.getAttribute("data-url"))}),g&&_(g,function(){m.remove();var e=new FormData;p("sale_banner_dismiss",e)}))},buildInit:function(){jQuery("#frm_builder_page").on("mouseup","*:not(.frm-show-box)",Pi),g=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100;return frmDom.util.debounce(e,t)}(oe,10),y=document.getElementById("post-body-content"),v=jQuery(y),jQuery(".frm_field_loading").length&&Ee(jQuery(".frm_field_loading").first().attr("id")),V("ul.frm_sorting"),document.querySelectorAll(".field_type_list > li:not(.frm_show_upgrade)").forEach(X),jQuery("ul.field_type_list, .field_type_list li, ul.frm_code_list, .frm_code_list li, .frm_code_list li a, #frm_adv_info #category-tabs li, #frm_adv_info #category-tabs li a").disableSelection(),jQuery(".frm_submit_ajax").on("click",Hr),jQuery(".frm_submit_no_ajax").on("click",Gr),Wr(),jQuery("a.edit-form-status").on("click",Sr),jQuery(".cancel-form-status").on("click",Lr),jQuery(".save-form-status").on("click",function(){var e=jQuery(document.getElementById("form_change_status")).val();return jQuery('input[name="new_status"]').val(e),jQuery(document.getElementById("form-status-display")).html(e),jQuery(".cancel-form-status").trigger("click"),!1}),jQuery(".frm_form_builder form").first().on("submit",function(){jQuery(".inplace_field").trigger("blur")}),ci(),Dn();var e,t=jQuery(j),n=document.getElementById("frm_form_editor_container");t.on("click",".frm_add_logic_row",Sn),t.on("click",".frm_add_watch_lookup_row",In),t.on("change",".frm_get_values_form",On),t.on("change",".frm_logic_field_opts",wr),t.on("frm-multiselect-changed",'select[name^="field_options[admin_only_"]',Ir),jQuery(document.getElementById("frm-insert-fields")).on("click",".frm_add_field",Ae),b.on("click",".frm_clone_field",Be),t.on("blur",'input[id^="frm_calc"]',Je),t.on("change","input.frm_format_opt, input.frm_max_length_opt",lt),t.on("change click","[data-changeme]",it),t.on("click","input.frm_req_field",st),t.on("click",".frm_mark_unique",dt),t.on("change",".frm_repeat_format",Xn),t.on("change",".frm_repeat_limit",Yn),t.on("change",".frm_js_checkbox_limit",Zn),t.on("input",'input[name^="field_options[add_label_"]',function(){er(this,"add")}),t.on("input",'input[name^="field_options[remove_label_"]',function(){er(this,"remove")}),t.on("change",'select[name^="field_options[data_type_"]',Fn),jQuery(n).on("click",".frm-collapse-page",Mn),jQuery(n).on("click",".frm-collapse-section",zn),t.on("click",".frm-single-settings h3, .frm-single-settings h4.frm-collapsible",Rn),t.on("keydown",".frm-single-settings h3, .frm-single-settings h4.frm-collapsible",function(e){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),Rn.call(this,e))}),jQuery(n).on("show.bs.dropdown hide.bs.dropdown",He),t.on("click",".frm_toggle_sep_values",yt),t.on("click",".frm_toggle_image_options",vt),t.on("click",".frm_remove_image_option",Et),t.on("click",".frm_choose_image_box",xt),t.on("change",".frm_hide_image_text",Qt),t.on("change",".frm_field_options_image_size",jt),t.on("click",".frm_multiselect_opt",kt),b.on("mousedown","input, textarea, select",Lt),b.on("click","input[type=radio], input[type=checkbox]",Lt),b.on("click",".frm_delete_field",Nt),b.on("click",".frm_select_field",Tt),jQuery(document).on("click",".frm_delete_field_group",Ot),jQuery(document).on("click",".frm_clone_field_group",Ft),jQuery(document).on("click","#frm_field_group_controls > span:first-child",Dt),jQuery(document).on("click",".frm-row-layout-option",Yt),jQuery(document).on("click",".frm-merge-fields-into-row .frm-row-layout-option",Zt),jQuery(document).on("click",".frm-custom-field-group-layout",tn),jQuery(document).on("click",".frm-merge-fields-into-row .frm-custom-field-group-layout",rn),jQuery(document).on("click",".frm-break-field-group",cn),b.on("click","#frm_field_group_popup .frm_grid_container input",dn),jQuery(document).on("click",".frm-cancel-custom-field-group-layout",un),jQuery(document).on("click",".frm-save-custom-field-group-layout",mn),b.on("click","ul.frm_sorting",_n),jQuery(document).on("click",".frm-merge-fields-into-row",jn),jQuery(document).on("click",".frm-delete-field-groups",Qn),b.on("click",'.frm-field-action-icons [data-toggle="dropdown"]',function(){this.closest("li.form-field").classList.add("frm-field-settings-open"),jQuery(document).on("click","#frm_builder_page",Te)}),b.on("mousemove","ul.frm_sorting",Oe),b.on("show.bs.dropdown",".frm-field-action-icons",Me),jQuery(document).on("show.bs.dropdown","#frm_field_group_controls",Pe),t.on("click",".frm_single_option a[data-removeid]",It),t.on("mousedown",".frm_single_option input[type=radio]",Bt),t.on("focusin",".frm_single_option input[type=text]",qt),t.on("click",".frm_add_opt",_t),t.on("change",".frm_single_option input",nr),t.on("change",".frm_image_id",nr),t.on("change",".frm_toggle_mult_sel",pt),b.on("click",".frm_primary_label",Un),b.on("click",".frm_description",Wn),b.on("click","li.ui-state-default:not(.frm_noallow)",$n),b.on("dblclick","li.ui-state-default",Jn),t.on("change",".frm_tax_form_select",tr),t.on("change","select.conf_field",ut),t.on("change",".frm_get_field_selection",Qr),t.on("click",".frm-show-inline-modal",Cr),t.on("keydown",".frm-show-inline-modal",function(e){var t=e.key;"Enter"!==t&&" "!==t||(e.preventDefault(),Cr.call(this,e))}),t.on("click",".frm-inline-modal .dismiss",Nr),jQuery(document).on("change","[data-frmchange]",Or),document.addEventListener("click",Tr),t.on("change",".frm_include_extras_field",et),t.on("change",'select[name^="field_options[form_select_"]',Ni),jQuery(document).on("submit","#frm_js_build_form",Ho),jQuery(document).on("change","#frm_builder_page input:not(.frm-search-input):not(.frm-custom-grid-size-input), #frm_builder_page select, #frm_builder_page textarea",Po),rt(),jQuery(document).on("change",".frmjs_prod_data_type_opt",Ti),jQuery(document).on("focus",'.frm-single-settings ul input[type="text"][name^="field_options[options_"]',qn),jQuery(document).on("blur",'.frm-single-settings ul input[type="text"][name^="field_options[options_"]',Nn),frmDom.util.documentOn("click",".frm-show-field-settings",$n),frmDom.util.documentOn("change","select.frm_format_dropdown, select.frm_phone_type_dropdown",Kn),t.on("keydown",'.frm_single_option input[name^="field_options["], .frm_single_option input[name^="rows_"]',function(e){"Enter"===e.key&&function(e){var t=e.closest(".frm_single_option").parentElement.querySelectorAll('.frm_single_option input[name^="field_options[" ], .frm_single_option input[name^="rows_"]'),n=Array.from(t),r=n.indexOf(e);if(!(r<0)){var o=n.slice(r+1).find(function(e){return null!==e.offsetParent});if(o){o.focus();var i=o.value.length;o.setSelectionRange(i,i)}}}(e.currentTarget)}),!1!==(e=Bi("#frm-bulk-modal","700px"))&&(jQuery(".frm-insert-preset").on("click",mt),jQuery(j).on("click","a.frm-bulk-edit-link",function(t){t.preventDefault();var n="",r=jQuery(this).closest("[data-fid]").data("fid"),o=yr(r),i=Oi(r),a=document.getElementById("frm_field_".concat(r,"_opts"));if(a){var l=a.getElementsByTagName("li");document.getElementById("bulk-field-id").value=r;for(var s=0;s=l.length-1&&(document.getElementById("frm_bulk_options").value=n)}return e.dialog("open"),!1}}),jQuery("#frm-update-bulk-opts").on("click",function(){var t=document.getElementById("bulk-field-id").value;document.getElementById("bulk-option-type").value||(this.classList.add("frm_loading_button"),frmAdminBuild.updateOpts(t,document.getElementById("frm_bulk_options").value,e),Po())})),qr(),document.addEventListener("frm_added_field",qr),Ie(),Fi(),kr(),frmDom.util.documentOn("change",".frm_show_password_setting_input",function(e){var t=e.target.getAttribute("data-fid"),n=document.getElementById("frm_field_id_".concat(t));n&&n.classList.toggle("frm_disabled_show_password",!e.target.checked)}),document.addEventListener("scroll",Fo,!0),document.addEventListener("change",To),document.querySelector(".frm_form_builder").addEventListener("mousedown",function(e){e.shiftKey&&e.preventDefault()}),wp.hooks.addAction("frmShowedFieldSettings","formidableAdmin",function(e,t){t.querySelectorAll(".frm-collapse-me").forEach(Gn)},9999)},settingsInit:function(){var e=jQuery(document.getElementById("frm_notification_settings"));e.on("click",".frm_email_buttons",io),e.on("click",".frm_remove_field",ao),e.on("change",".frm_to_row, .frm_from_row",lo),e.on("change",".frm_tax_selector",wo),e.on("change","select.frm_single_post_field",_o),e.on("change","select.frm_toggle_post_content",po),e.on("change","select.frm_dyncontent_opt",go),e.on("change",".frm_post_type",yo),e.on("click",".frm_add_postmeta_row",bo),e.on("click",".frm_add_posttax_row",ho),e.on("click",".frm_toggle_cf_opts",Qo),e.on("click",".frm_duplicate_form_action",Zr),jQuery(".frm_actions_list").on("click",".frm_active_action",to),jQuery("#frm-show-groups, #frm-hide-groups").on("click",no),ci(),jQuery("ul.frm_actions_list li").each(function(){so(jQuery(this).children("a").data("actiontype"));var e=jQuery(this).find("i");"none"!==e.css("background-image")&&e.addClass("frm-inverse")}),jQuery(".frm_submit_settings_btn").on("click",Eo),Wr();var t=jQuery(".frm_form_settings");t.on("click",".frm_add_form_logic",mo),t.on("click",".frm_already_used",fo),document.addEventListener("click",function(e){var t=e.target;t.closest(".frm_image_preview_wrapper")&&(t.closest(".frm_choose_image_box")?xt.bind(t)(e):t.closest(".frm_remove_image_option")&&Et.bind(t)(e))}),t.on("mouseup","*:not(.frm-show-box)",Pi),jQuery(document.getElementById("no_save")).on("change",function(){this.checked&&!0!==confirm(i.no_save_warning)&&jQuery(this).attr("checked",!1)}),jQuery('select[name="options[edit_action]"]').on("change",Yr);var n=document.getElementById("logged_in");jQuery(n).on("change",function(){this.checked?Ii(".hide_logged_in"):Li(".hide_logged_in")});var r=jQuery(document.getElementById("frm_cookie_expiration"));jQuery(document.getElementById("frm_single_entry_type")).on("change",function(){"cookie"===this.value?r.fadeIn("slow"):r.fadeOut("slow")});var o=document.getElementById("single_entry");jQuery(o).on("change",function(){this.checked?Ii(".hide_single_entry"):Li(".hide_single_entry"),this.checked&&"cookie"===jQuery(document.getElementById("frm_single_entry_type")).val()?r.fadeIn("slow"):r.fadeOut("slow")}),jQuery(".hide_save_draft").hide();var a=jQuery(document.getElementById("save_draft"));a.on("change",function(){this.checked?jQuery(".hide_save_draft").fadeIn("slow"):jQuery(".hide_save_draft").fadeOut("slow")}),Rr(a);var l=document.getElementById("editable");jQuery(l).on("change",function(){this.checked?(jQuery(".hide_editable").fadeIn("slow"),Rr(document.getElementById("edit_action"))):(jQuery(".hide_editable").fadeOut("slow"),jQuery(".edit_action_message_box").fadeOut("slow"))}),jQuery(document).on("change","#protect_files",function(){this.checked?jQuery(".hide_protect_files").fadeIn("slow"):jQuery(".hide_protect_files").fadeOut("slow")}),jQuery(document).on("frm-multiselect-changed","#protect_files_role",Ir),jQuery(document).on("submit",".frm_form_settings",zo),jQuery(document).on("change","#form_settings_page input:not(.frm-search-input), #form_settings_page select, #form_settings_page textarea",Po),yi(),jQuery(document).on("frm-action-loaded",Jo),frmDom.util.documentOn("change",'.frm_on_submit_type input[type="radio"]',function(e){if(e.target.checked){var t=e.target.closest(".frm_form_action_settings");t.querySelectorAll(".frm_on_submit_dependent_setting:not(.frm_hidden)").forEach(function(e){e.classList.add("frm_hidden")}),t.querySelectorAll(".frm_on_submit_dependent_setting[data-show-if-".concat(e.target.value,"]")).forEach(function(e){e.classList.remove("frm_hidden")}),t.setAttribute("data-on-submit-type",e.target.value)}}),wp.hooks.addAction("frm_reset_fields_updated","formidableAdmin",Ro)},panelInit:function(){jQuery(".frm_wrap, #postbox-container-1").on("click",".frm_insert_code",ko),jQuery(document).on("change",".frm_insert_val",function(){Ao(jQuery(this).data("target"),jQuery(this).val()),jQuery(this).val("")}),jQuery(document).on("click change",'[name="frm-id-key-condition"]',Io),jQuery(document).on("keyup change",".frm-build-logic",Bo),Xr(),jQuery(document).on("frmElementAdded",function(e,t){Xr(t)}),jQuery(document).on("mousedown",".frm-show-box",No);var e=document.getElementById("form_settings_page"),t=document.body.classList.contains("post-type-frm_display"),n=document.getElementById("frm_insert_fields_tab");(null!==e||t||O)&&jQuery(document).on("focusin","form input, form textarea",function(r){var o,i,a;if(r.stopPropagation(),Co(this),jQuery(this).is(":not(:submit, input[type=button], .frm-search-input, input[type=checkbox])")){if(jQuery(r.target).closest("#frm_adv_info").length)return;if(null!==e||O)o=jQuery("#frm_html_tab"),jQuery(this).closest("#html_settings").length>0?(o.show(),o.siblings().hide(),jQuery("#frm_html_tab a").trigger("click"),void 0===(a=this.id)||a.includes("-search-input")||(jQuery("#frm-adv-info-tab").attr("data-fills",a.trim()),this.classList.contains("field_custom_html")&&(a="field_custom_html"),jQuery.inArray(a,["after_html","before_html","submit_html","field_custom_html"])>=0&&(jQuery(".frm_code_list li:not(.show_".concat(a,")")).addClass("frm_hidden"),jQuery(".frm_code_list li.show_".concat(a)).removeClass("frm_hidden")))):((i=jQuery(".frm-category-tabs li"))[0]&&(i[0].style.display=""),n.click(),o.hide(),o.siblings().show());else if(t){var l=new CustomEvent("frm_legacy_views_handle_field_focus");l.frmData={idAttrValue:this.id},document.dispatchEvent(l)}}}),jQuery(".frm_wrap, #postbox-container-1").on("mousedown","#frm_adv_info a, .frm_field_list a",function(e){e.preventDefault()});var r=jQuery("#frm_adv_info");r.on("click",".subsubsub a.frmids",function(e){Ko("frmids",e)}),r.on("click",".subsubsub a.frmkeys",function(e){Ko("frmkeys",e)})},inboxInit:function(){var e;jQuery(".frm_inbox_dismiss").on("click",function(e){var t=this.parentNode.parentNode,n=t.getAttribute("data-message"),r=this.getAttribute("href"),o=t.cloneNode(!0),i=document.querySelector(".frm-dismissed-inbox-messages");if("free_templates"!==n||this.classList.contains("frm_inbox_dismiss")){e.preventDefault();var a={action:"frm_inbox_dismiss",key:n,nonce:frmGlobal.nonce},l="frm_inbox_slide_in"===t.id;l&&(t.classList.remove("s11-fadein"),t.classList.add("s11-fadeout"),t.addEventListener("animationend",function(){return t.remove()},{once:!0})),Ai(a,function(){if(!l)return"#"!==r?(window.location=r,!0):void Si(t,function(){var e;null!==i&&(o.classList.remove("frm-fade"),null===(e=o.querySelector(".frm-inbox-message-heading .frm_inbox_dismiss"))||void 0===e||e.remove(),i.append(o)),1===t.parentNode.querySelectorAll(".frm-inbox-message-container").length&&(document.getElementById("frm_empty_inbox").classList.remove("frm_hidden"),t.parentNode.closest(".frm-active").classList.add("frm-empty-inbox"),_i()),t.remove()})})}}),!1===(null===(e=document.getElementById("frm_empty_inbox"))||void 0===e?void 0:e.classList.contains("frm_hidden"))&&_i()},solutionInit:function(){jQuery(document).on("submit","#frm-new-template",hi)},styleInit:function(){var e=jQuery(".frm_image_preview_wrapper");e.on("click",".frm_choose_image_box",xt),e.on("click",".frm_remove_image_option",Et),wp.hooks.doAction("frm_style_editor_init")},customCSSInit:function(){console.warn("Calling frmAdminBuild.customCSSInit is deprecated.")},globalSettingsInit:function(){jQuery(document).on("click","[data-frmuninstall]",Xo),ci();var e=document.getElementById("licenses_settings");null!==e&&jQuery(e).on("click",".edd_frm_save_license",Yo),jQuery(document).on("click","#frm-new-template button",vi),jQuery("#frm-dismissable-cta .dismiss").on("click",function(e){e.preventDefault(),jQuery.post(ajaxurl,{action:"frm_lite_settings_upgrade",nonce:frmGlobal.nonce}),jQuery(".settings-lite-cta").remove()});var t=document.getElementById("frm_re_type");t&&t.addEventListener("change",ji),document.querySelector(".frm_captchas").addEventListener("change",function(e){var t,n=null===(t=document.querySelector('.frm_captchas input[checked="checked"]'))||void 0===t?void 0:t.value,r=e.target.value!==n;document.querySelector(".captcha_settings .frm_note_style").classList.toggle("frm_hidden",!r)}),frmDom.util.documentOn("submit",".frm_settings_form",function(){x=0});var n=document.getElementById("manage_styles_settings");n&&n.addEventListener("change",function(e){var t=e.target;"SELECT"===t.nodeName&&t.dataset.name&&!t.getAttribute("name")&&t.setAttribute("name",t.dataset.name)});var r=document.getElementById("payments_settings"),o=null==r?void 0:r.querySelectorAll('[name="frm_payment_section"]');o&&o.forEach(function(e){e.addEventListener("change",function(){if(e.checked){var t=r.querySelector('label[for="'.concat(e.id,'"]'));t&&t.setAttribute("aria-selected","true"),o.forEach(function(t){if(t!==e){var n=r.querySelector('label[for="'.concat(t.id,'"]'));n&&n.setAttribute("aria-selected","false")}})}})})},exportInit:function(){jQuery(".frm_form_importer").on("submit",Zo),jQuery(document.getElementById("frm_export_xml")).on("submit",ti),jQuery("#frm_export_xml input, #frm_export_xml select").on("change",ni),jQuery('input[name="frm_import_file"]').on("change",ri),document.querySelector('select[name="format"]').addEventListener("change",ii),jQuery('input[name="frm_export_forms[]"]').on("click",si),ci(),jQuery(".frm-feature-banner .dismiss").on("click",function(e){e.preventDefault(),jQuery.post(ajaxurl,{action:"frm_dismiss_migrator",plugin:this.id,nonce:frmGlobal.nonce}),this.parentElement.remove()}),li(oi()),document.querySelector("#frm-export-select-all").addEventListener("change",function(e){document.querySelectorAll('[name="frm_export_forms[]"]').forEach(function(t){t.checked=e.target.checked})})},inboxBannerInit:function(){var e=document.getElementById("frm_banner");if(e){var t=e.querySelector(".frm-banner-dismiss");document.addEventListener("click",function(n){n.target===t&&Ai({action:"frm_inbox_dismiss",key:e.dataset.key,nonce:frmGlobal.nonce},function(){jQuery(e).fadeOut(400,function(){e.remove()})})})}},updateOpts:function(e,t,n){var r=yr(e),o=Oi(e)?"frm_bulk_products":"frm_import_options";jQuery.ajax({type:"POST",url:ajaxurl,data:{action:o,field_id:e,opts:t,separate:r,nonce:frmGlobal.nonce},success:function(t){document.getElementById("frm_field_".concat(e,"_opts")).innerHTML=t,wp.hooks.doAction("frm_after_bulk_edit_opts",e),ir(e),void 0!==n&&(n.dialog("close"),document.getElementById("frm-update-bulk-opts").classList.remove("frm_loading_button"))}})},triggerRemoveLogic:function(e,t){jQuery("#frm_logic_".concat(e,"_").concat(t," .frm_remove_tag")).trigger("click")},downloadXML:function(e,t,n){var r="".concat(ajaxurl,"?action=frm_").concat(e,"_xml&ids=").concat(t);null!==n&&(r="".concat(r,"&is_template=").concat(n)),location.href=r},hooks:{applyFilters:function(e){for(var t,n=arguments.length,r=new Array(n>1?n-1:0),o=1;o1?n-1:0),o=1;o1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(n){var r=E,o=0;"summary"===e&&(o=b.children('li[data-type="break"]').length>0?1:0),jQuery.ajax({type:"POST",url:ajaxurl,data:Object.assign(_e(e,0,r,o),{field_options:t}),success:function(t){n(t),setTimeout(function(){Er(),We(t,!0);var n=ye(t);n&&wp.hooks.doAction("frm_after_field_added_in_form_builder",{field:t,fieldId:n,fieldType:e,form_id:r})},10)},error:he})})},confirmLinkClick:D,handleInsertFieldByDraggingResponse:ge,handleAddFieldClickResponse:Le,syncLayoutClasses:ae,moveFieldSettings:oo,maybeCollapseSettings:Rn}},window.frmAdminBuild=frmAdminBuildJS(),jQuery(document).ready(function(){var e;frmAdminBuild.init(),document.querySelectorAll(".frm-dropdown-menu").forEach(function(e){e.classList.add("dropdown-menu");var t,n,r=e.querySelector(".frm-dropdown-toggle");r&&(r.hasAttribute("role")||r.setAttribute("role","button"),r.hasAttribute("tabindex")||r.setAttribute("tabindex",0)),"UL"===e.tagName&&(n=(n=(n=(n=(n=(n=(t=e).outerHTML).replace("
                ","")).replaceAll("
              • ",'
              • ",""),t.outerHTML=n)}),null===(e=document.querySelector(".preview.dropdown .frm-dropdown-toggle"))||void 0===e||e.setAttribute("data-bs-toggle","dropdown"),document.querySelectorAll("[data-toggle]").forEach(function(e){return e.setAttribute("data-bs-toggle",e.getAttribute("data-toggle"))})}),window.frm_show_div=function(e,t,n,r){t==n?jQuery(r+e).fadeIn("slow").css("visibility","visible"):jQuery(r+e).fadeOut("slow")},window.frmCheckAll=function(e,t){jQuery('input[name^="'.concat(t,'"]')).prop("checked",Boolean(e))},window.frmCheckAllLevel=function(e,t,n){jQuery(".frm_catlevel_".concat(n)).children(".frm_checkbox").children("label").children('input[name^="'.concat(t,'"]')).prop("checked",Boolean(e))},window.frmGetFieldValues=function(e,t,n,r,o,i){e&&jQuery.ajax({type:"POST",url:ajaxurl,data:"action=frm_get_field_values¤t_field=".concat(t,"&field_id=").concat(e,"&name=").concat(o,"&t=").concat(r,"&form_action=").concat(jQuery('input[name="frm_action"]').val(),"&nonce=").concat(frmGlobal.nonce),success:function(e){document.getElementById("frm_show_selected_values_".concat(t,"_").concat(n)).innerHTML=e,"function"==typeof i&&i()}})},window.frmImportCsv=function(e){var t="";"undefined"!=typeof __FRMURLVARS&&(t=__FRMURLVARS),jQuery.ajax({type:"POST",url:ajaxurl,data:"action=frm_import_csv&nonce=".concat(frmGlobal.nonce,"&frm_skip_cookie=1").concat(t),success:function(t){var n=jQuery(".frm_admin_progress_bar").attr("aria-valuemax"),r=n-t,o=r/n*100;jQuery(".frm_admin_progress_bar").css("width","".concat(o,"%")).attr("aria-valuenow",r),parseInt(t,10)>0?(jQuery(".frm_csv_remaining").html(t),frmImportCsv(e)):(jQuery(document.getElementById("frm_import_message")).html(frm_admin_js.import_complete),setTimeout(function(){location.href="?page=formidable-entries&frm_action=list&form=".concat(e,"&import-message=1")},2e3))}})}})(); \ No newline at end of file diff --git a/stripe/js/frmstrp.js b/stripe/js/frmstrp.js index 15964dc19b..e35e518a7d 100644 --- a/stripe/js/frmstrp.js +++ b/stripe/js/frmstrp.js @@ -242,14 +242,8 @@ } function addName( $form ) { - let i; - let firstField; - let lastField; - let firstFieldContainer; - let lastFieldContainer; let firstNameID = ''; let lastNameID = ''; - let subFieldEl; const cardObject = {}; const { settings } = frm_stripe_vars; @@ -270,7 +264,7 @@ return ''; } - subFieldEl = field.querySelector( `.frm_combo_inputs_container .frm_form_subfield-${ subFieldName } input` ); + const subFieldEl = field.querySelector( `.frm_combo_inputs_container .frm_form_subfield-${ subFieldName } input` ); if ( ! subFieldEl ) { return ''; } @@ -278,7 +272,7 @@ return subFieldEl.value; }; - for ( i = 0; i < settings.length; i++ ) { + for ( let i = 0; i < settings.length; i++ ) { firstNameID = settings[ i ].first_name; lastNameID = settings[ i ].last_name; } @@ -306,11 +300,11 @@ } if ( firstNameID !== '' ) { - firstFieldContainer = getNameFieldItem( firstNameID, 'container' ); + const firstFieldContainer = getNameFieldItem( firstNameID, 'container' ); if ( firstFieldContainer && firstFieldContainer.querySelector( '.frm_combo_inputs_container' ) ) { // This is a name field. cardObject.name = getNameFieldValue( firstFieldContainer, 'first' ); } else { - firstField = getNameFieldItem( firstNameID, 'field', $form ); + const firstField = getNameFieldItem( firstNameID, 'field', $form ); if ( firstField && firstField.value ) { cardObject.name = firstField.value; } @@ -318,11 +312,11 @@ } if ( lastNameID !== '' ) { - lastFieldContainer = getNameFieldItem( lastNameID, 'container' ); + const lastFieldContainer = getNameFieldItem( lastNameID, 'container' ); if ( lastFieldContainer && lastFieldContainer.querySelector( '.frm_combo_inputs_container' ) ) { // This is a name field. cardObject.name = `${ cardObject.name } ${ getNameFieldValue( lastFieldContainer, 'last' ) }`; } else { - lastField = getNameFieldItem( lastNameID, 'field', $form ); + const lastField = getNameFieldItem( lastNameID, 'field', $form ); if ( lastField && lastField.value ) { cardObject.name = `${ cardObject.name } ${ lastField.value }`; } @@ -394,19 +388,17 @@ // Update price intent on change. function priceChanged( _, field, fieldId ) { - let i; - let data; const price = getPriceFields(); let run = price.includes( fieldId ) || price.includes( field.id ); if ( ! run ) { - for ( i = 0; i < price.length; i++ ) { + for ( let i = 0; i < price.length; i++ ) { if ( field.id.indexOf( price[ i ] ) === 0 ) { run = true; } } } if ( run ) { - data = { + const data = { action: 'frm_strp_amount', form: JSON.stringify( jQuery( field ).closest( 'form' ).serializeArray() ), nonce: frm_stripe_vars.nonce @@ -567,7 +559,6 @@ */ function insertAuthenticationElement( cardElement ) { let emailInput; - let cardFieldContainer; let addAboveCardElement = true; const emailField = checkForEmailField(); @@ -585,7 +576,7 @@ if ( addAboveCardElement ) { // If no email field is found, add the email field above the credit card. - cardFieldContainer = cardElement.closest( '.frm_form_field' ); + const cardFieldContainer = cardElement.closest( '.frm_form_field' ); cardFieldContainer.parentNode.insertBefore( authenticationMountTarget, cardFieldContainer ); triggerCustomEvent( @@ -814,13 +805,9 @@ * @return {string} Field value. */ function getSettingFieldValue( field ) { - let value; - if ( 'hidden' === field.getAttribute( 'type' ) ) { - value = field.value; - } else { - value = field.querySelector( 'input' ).value; - } - return value; + return 'hidden' === field.getAttribute( 'type' ) + ? field.value + : field.querySelector( 'input' ).value; } /** @@ -844,11 +831,6 @@ each( getStripeSettings(), checkStripeSettingForField ); function checkStripeSettingForField( currentSetting ) { - let currentFieldId; - let fieldMatchByKey; - let fieldContainer; - let hiddenInput; - if ( 'string' !== typeof currentSetting[ settingKey ] || ! currentSetting[ settingKey ].length ) { return; } @@ -856,6 +838,9 @@ const currentSettingValue = currentSetting[ settingKey ]; const settingIsWrappedAsShortcode = '[' === currentSettingValue[ 0 ] && ']' === currentSettingValue[ currentSettingValue.length - 1 ]; + let currentFieldId; + let fieldMatchByKey; + if ( settingIsWrappedAsShortcode ) { // Email is wrapped as a shortcode. currentFieldId = currentSettingValue.substr( 1, currentSettingValue.length - 2 ); @@ -869,14 +854,12 @@ currentFieldId = currentSettingValue; } - if ( fieldMatchByKey ) { - fieldContainer = fieldMatchByKey.closest( '.frm_form_field' ); - } else { - fieldContainer = document.getElementById( `frm_field_${ currentFieldId }_container` ); - } + const fieldContainer = fieldMatchByKey + ? fieldMatchByKey.closest( '.frm_form_field' ) + : document.getElementById( `frm_field_${ currentFieldId }_container` ); if ( ! fieldContainer ) { - hiddenInput = document.querySelector( `input[name="item_meta[${ currentFieldId }]"]` ); + let hiddenInput = document.querySelector( `input[name="item_meta[${ currentFieldId }]"]` ); if ( ! hiddenInput ) { if ( 'first_name' === settingKey ) { @@ -923,9 +906,8 @@ * @return {void} */ function each( items, callback ) { - let index; const { length } = items; - for ( index = 0; index < length; index++ ) { + for ( let index = 0; index < length; index++ ) { if ( false === callback( items[ index ], index ) ) { break; } From b512e0a4a0166be9f3f8f9031409556a1899bd70 Mon Sep 17 00:00:00 2001 From: Mike Letellier Date: Wed, 4 Mar 2026 15:23:14 -0400 Subject: [PATCH 33/34] Remove prefer template oxlint rule exception --- .oxlintrc.json | 1 - 1 file changed, 1 deletion(-) diff --git a/.oxlintrc.json b/.oxlintrc.json index 0b0f15c3cc..07be9139c9 100644 --- a/.oxlintrc.json +++ b/.oxlintrc.json @@ -45,7 +45,6 @@ "eslint/sort-keys": "off", "eslint/no-magic-numbers": "off", "eslint/radix": "off", - "eslint/prefer-template": "off", "eslint/prefer-const": "off", "eslint/prefer-object-spread": "off", "eslint/prefer-destructuring": "off", From 4d12b4e7fc4e3ae33e8ff3d084e21a8de2d6023a Mon Sep 17 00:00:00 2001 From: Mike Letellier Date: Wed, 4 Mar 2026 15:39:06 -0400 Subject: [PATCH 34/34] Prefer const --- js/formidable.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/js/formidable.js b/js/formidable.js index dd66bfde80..ba3f97f73a 100644 --- a/js/formidable.js +++ b/js/formidable.js @@ -248,12 +248,11 @@ function frmFrontFormJS() { * @return {void} */ function checkValidity( field, errors ) { - let fieldID; if ( 'object' !== typeof field.validity || false !== field.validity.valid ) { return; } - fieldID = getFieldId( field, true ); + const fieldID = getFieldId( field, true ); if ( errors[ fieldID ] === undefined ) { errors[ fieldID ] = getFieldValidationMessage( field, 'data-invmsg' ); }