1async function pms_stripe_maybe_load_gateway($){if(!($('#stripe-pk').length>0)){return!1} 2var stripe_pk=$('#stripe-pk').val() 3if(typeof stripe_pk=='undefined'||stripe_pk=='') 4stripe_pk=$('#stripe-pk').attr('conditional-value') 5if(typeof stripe_pk=='undefined') 6return!1 7if(typeof pms.stripe_connected_account=='undefined'||pms.stripe_connected_account==''){console.log('Before you can accept payments, you need to connect your Stripe Account by going to Dashboard -> Paid Member Subscriptions -> Settings -> Payments.') 8return!1} 9var elements=!1 10var elements_setup_intent=!1 11var update_elements_setup_intent=!1 12var stripe=!1 13var $payment_element='' 14var $elements_instance_slug='' 15var cardIsEmpty=!0 16var recreating_payment_element=!1 17var email_change_debounce_timer=null 18var subscription_plan_selector='input[name=subscription_plans]' 19var paygate_selector='input.pms_pay_gate' 20var stripe_appearance={} 21if(pms.pms_elements_appearance_api) 22stripe_appearance=pms.pms_elements_appearance_api 23var StripeData={stripeAccount:pms.stripe_connected_account} 24if(pms.stripe_locale) 25StripeData.locale=pms.stripe_locale 26stripe=Stripe(stripe_pk,StripeData) 27var stripe_payment_intent_options={mode:'payment',currency:pms.currency,amount:1099,paymentMethodCreation:'manual',appearance:stripe_appearance,} 28var stripe_setup_intent_options={mode:'setup',currency:pms.currency,paymentMethodCreation:'manual',appearance:stripe_appearance,} 29if(pms.off_session_payments&&pms.off_session_payments==1){stripe_payment_intent_options.setupFutureUsage='off_session' 30stripe_setup_intent_options.setupFutureUsage='off_session'} 31if(pms.pms_customer_session){stripe_payment_intent_options.customerSessionClientSecret=pms.pms_customer_session 32stripe_setup_intent_options.customerSessionClientSecret=pms.pms_customer_session} 33elements=stripe.elements(stripe_payment_intent_options) 34elements_setup_intent=stripe.elements(stripe_setup_intent_options) 35stripeConnectInit() 36if(pms.pms_mc_addon_active) 37await pms_stripe_validate_sdk_checkout_currency($($pms_checked_subscription));if(typeof pms_initialize_recaptcha_v3=='function'){window.pmsRecaptchaCallbackExecuted=!0 38jQuery('.pms-form').off('submit',pms_initialize_recaptcha_v3)} 39if(typeof wppbInitializeRecaptchaV3=='function'){window.wppbRecaptchaCallbackExecuted=!0} 40$(document).on('click',subscription_plan_selector,async function(event){if(pms.pms_mc_addon_active){await pms_stripe_validate_sdk_checkout_currency($(this))} 41stripeConnectInit()}) 42function pms_stripe_connect_setup_future_usage_for_input($input){let recurring=$input.data('recurring') 43if(recurring==0||recurring==1){let default_recurring=$('input[type="hidden"][name="pms_default_recurring"]').val() 44if(default_recurring==2) 45return'off_session' 46else if(default_recurring==3) 47return null 48else return $('.pms-subscription-plan-auto-renew input[name="pms_recurring"]').prop('checked')?'off_session':null}else if(recurring==2){return'off_session'}else if(recurring==3){return null} 49return undefined} 50$.pms_stripe_connect_setup_future_usage_for_input=pms_stripe_connect_setup_future_usage_for_input 51$(document).on('pms_recompute_payment_mode',function(){stripeConnectInit()}) 52$(document).on('click','.pms-subscription-plan-auto-renew input[name="pms_recurring"]',function(event){if($(this).prop('checked')){elements.update({setupFutureUsage:'off_session'})}else{elements.update({setupFutureUsage:null})}}) 53$(document).on('change','.pms-form .pms-user-email-field input[name="user_email"], .wppb-register-user input[name="email"], .pms-form .pms-billing-details input[name="pms_billing_email"]',function(event){if(recreating_payment_element){return} 54if($('input[type=hidden][name=pay_gate]').val()!='stripe_connect'&&$('input[type=radio][name=pay_gate]:checked').val()!='stripe_connect') 55return 56if($('input[type=hidden][name=pay_gate]').is(':disabled')||$('input[type=radio][name=pay_gate]:checked').is(':disabled')) 57return 58let element=$(this) 59let email=$(this).val() 60if(email_change_debounce_timer){clearTimeout(email_change_debounce_timer)} 61if(email.length>0){element.attr('disabled',!0) 62pms_stripe_show_spinner() 63email_change_debounce_timer=setTimeout(function(){recreating_payment_element=!0 64if($payment_element&&$payment_element!=''){$payment_element.destroy() 65$payment_element=''} 66setTimeout(function(){stripeConnectInit() 67element.attr('disabled',!1) 68recreating_payment_element=!1},300)},250)}}) 69$(document).on('pms_discount_success',stripeConnectInit) 70$(document).on('pms_discount_error',stripeConnectInit) 71$(document).on('pms_tax_applied',function(event,data){if(data.total>0){elements.update({amount:pms_stripe_convert_amount_to_cents(data.total)})}}) 72$(document).on('pms_tax_removed',function(event){if(typeof $pms_checked_subscription!='undefined'){let price=$pms_checked_subscription.data('price') 73if(price>0){elements.update({amount:pms_stripe_convert_amount_to_cents(price)})}}}) 74if($('input[name="pms_update_payment_method"]').length>0&&$('.pms-paygate-extra-fields-stripe_connect').length>0){$('.pms-paygate-extra-fields-stripe_connect').show()} 75var payment_buttons='input[name=pms_register], ';payment_buttons+='input[name=pms_new_subscription], ';payment_buttons+='input[name=pms_change_subscription], ';payment_buttons+='input[name=pms_upgrade_subscription], ';payment_buttons+='input[name=pms_renew_subscription], ';payment_buttons+='input[name=pms_confirm_retry_payment_subscription], ';payment_buttons+='.wppb-register-user input[name=register]';$(document).on('wppb_invisible_recaptcha_success',stripeConnectPaymentGatewayHandler) 76$(document).on('submit','.pms-form',async function(e){if(e.target&&(jQuery(e.target).attr('id')=='pms_recover_password_form'||jQuery(e.target).attr('id')=='pms_new_password_form'||jQuery(e.target).attr('id')=='pms_login')) 77return 78var target_button=$('input[type="submit"], button[type="submit"]',$(this)).not('#pms-apply-discount').not('input[name="pms_redirect_back"]') 79var form=$(this).closest('form') 80if(typeof form!='undefined'&&form&&form.length>0&&form.hasClass('pms-ec-register-form')){stripeConnectPaymentGatewayHandler(e,target_button)}else if(!e.originalEvent||!e.originalEvent.submitter||$(e.originalEvent.submitter).attr('name')!='pms_redirect_back'){if($(e.originalEvent.submitter).attr('name')=='pms_update_payment_method') 81stripeConnectUpdatePaymentMethod(e,target_button) 82else stripeConnectPaymentGatewayHandler(e,target_button)}}) 83$(document).on('submit','.wppb-register-user',function(e){if(!($('.wppb-recaptcha .wppb-recaptcha-element',$(e.currentTarget)).hasClass('wppb-invisible-rec
83aptcha'))){var target_button=$('input[type="submit"], button[type="submit"]',$(this)).not('#pms-apply-discount').not('input[name="pms_redirect_back"]') 84stripeConnectPaymentGatewayHandler(e,target_button)}}) 85async function stripeConnectPaymentGatewayHandler(e,target_button=!1){if($('input[type=hidden][name=pay_gate]').val()!='stripe_connect'&&$('input[type=radio][name=pay_gate]:checked').val()!='stripe_connect') 86return 87if($('input[type=hidden][name=pay_gate]').is(':disabled')||$('input[type=radio][name=pay_gate]:checked').is(':disabled')) 88return 89e.preventDefault() 90$.pms_form_remove_errors() 91var current_button=$(this) 92if(e.type=='wppb_invisible_recaptcha_success'||e.type=='wppb_v3_recaptcha_success'||e.type=='pms_v3_recaptcha_success'){current_button=target_button==!1?$('input[type="submit"]',$('.wppb-recaptcha-element').closest('form')):$(target_button)}else if(e.type=='submit'){if(target_button!=!1) 93current_button=$(target_button)} 94current_button.attr('disabled',!0) 95return pms_stripe_maybe_validate_recaptcha(current_button,e).then(async function(recaptcha_response){let target_elements=elements 96if($.pms_checkout_is_setup_intents()) 97target_elements=elements_setup_intent 98if($(document).triggerHandler('pms_filter_stripe_connect_setup_future_usage',[null,current_button.closest('form')])==='off_session') 99target_elements.update({setupFutureUsage:'off_session'}) 100const{error:submitError}=await target_elements.submit() 101if(submitError){let message='' 102if(submitError.message&&submitError.message!=''){message=submitError.message}else{message='An error occurred while processing your payment. Please try again.'} 103$.pms_stripe_add_credit_card_error(message) 104$.pms_form_scrollTo('#pms-paygates-wrapper',current_button) 105return!1} 106const{error,confirmationToken}=await stripe.createConfirmationToken({elements:target_elements,});if(error){let message='' 107if(error.message&&error.message!=''){message=error.message}else{message='An error occurred while processing your payment. Please try again.'} 108$.pms_stripe_add_credit_card_error(message) 109$.pms_form_scrollTo('#pms-paygates-wrapper',current_button) 110return!1} 111return pms_stripe_process_checkout(current_button,confirmationToken.id).then(async function(response){if(response.success==!1&&(typeof response.data!='undefined'||typeof response.wppb_errors!='undefined'||typeof response.pms_errors!='undefined')){pms_stripe_handle_validation_errors(response,current_button) 112return!1} 113if(typeof response.redirect_url!='undefined'&&response.redirect_url){window.location.replace(response.redirect_url) 114return!0} 115if(response.success==!1&&typeof response.type!='undefined'){let intent 116if($.pms_checkout_is_setup_intents()){var{error,setupIntent}=await stripe.handleNextAction({clientSecret:response.client_secret});intent=setupIntent}else{var{error,paymentIntent}=await stripe.handleNextAction({clientSecret:response.client_secret});intent=paymentIntent} 117if(error&&error.payment_intent){intent=error.payment_intent}else if(error&&error.setup_intent){intent=error.setup_intent} 118const server_response=await pms_stripe_process_payment(intent,response,current_button) 119if(typeof server_response.redirect_url!='undefined'&&server_response.redirect_url){window.location.replace(server_response.redirect_url) 120return!0} 121return!1} 122pms_stripe_checkout_failed(current_button,response) 123return!1}).catch(function(error){pms_stripe_checkout_failed(current_button,error) 124return!1})})} 125async function pms_stripe_process_checkout(current_button,confirmationToken){var data=await $.pms_form_get_data(current_button,!0) 126if(confirmationToken){data.stripe_confirmation_token=confirmationToken} 127if(data==!1) 128return 129var form_data=new FormData() 130for(var key in data){if(Array.isArray(data[key])){data[key].forEach(function(value){form_data.append(key,value)})}else{form_data.append(key,data[key])}} 131return fetch(pms.ajax_url,{method:'post',credentials:'same-origin',body:form_data}).then(function(res){return res.json()})} 132async function pms_stripe_process_payment(payment_intent,user_data,target_button){nonce_data={} 133nonce_data.action='pms_update_nonce' 134const nonce=await fetch(pms.ajax_url,{method:'POST',credentials:'same-origin',headers:{'Content-Type':'application/x-www-form-urlencoded',},body:new URLSearchParams({action:'pms_update_nonce'})}).then(function(res){return res.json()}).catch(error=>{console.error('Something went wrong:',error) 135throw error}) 136var form_data=await $.pms_form_get_data(target_button) 137form_data.pmstkn_original=form_data.pmstkn 138form_data.pmstkn='' 139const data={...form_data,action:'pms_process_payment',user_id:user_data.user_id,payment_id:user_data.payment_id,subscription_id:user_data.subscription_id,subscription_plan_id:user_data.subscription_plan_id,payment_intent:payment_intent.id,current_page:window.location.href,pms_nonce:nonce,pms_resume_token:user_data.resume_token};if(data.subscription_plans){const priceKey=`subscription_price_${data.subscription_plans}`;if(form_data[priceKey]){data[priceKey]=form_data[priceKey]}} 140var request_data=new FormData() 141for(var key in data){request_data.append(key,data[key])} 142return await fetch(pms.ajax_url,{method:'POST',credentials:'same-origin',body:request_data}).then(function(res){return res.json()}).catch(error=>{console.error('Something went wrong:',error) 143throw error})} 144function stripeConnectInitUpdatePaymentMethod(){var $client_secret_setup_intent=$('.pms-form input[name="pms_stripe_connect_setup_intent"]').val() 145if($client_secret_setup_intent&&$client_secret_setup_intent.length>0){update_elements_setup_intent=stripe.elements({clientSecret:$client_secret_setup_intent,appearance:stripe_appearance}) 146$update_element=update_elements_setup_intent.create("payment") 147$update_element.mount("#pms-stripe-payment-elements") 148$update_element.addEventListener('change',creditCardErrorsHandler) 149pms_stripe_hide_spinner()}} 150function stripeConnectUpdatePaymentMethod(e,target_button=!1){e.preventDefault() 151$.pms_form_remove_errors() 152var current_button=$(this) 153if(target_button!=!1) 154current_button=$(target_button) 155current_button.attr('disabled',!0) 156if(cardIsEmpty===!0){$.pms_form_add_validation_errors([{target:'credit_card',message:pms.invalid_card_details_error}],current_button) 157return} 158stripe.confirmSetup({elements:update_elements_setup_intent,confirmParams:{return_url:pms.stripe_return_url,payment_method_data:{billing_details:pms_stripe_get_billing_details()}},redirect:'if_required',}).then(function(result){let token 159if(result.error&&result.error.decline_code&&result.error.decline_code=='live_mode_test_card'){let errors=[{target:'credit_card',message:result.error.message}] 160$.pms_form_add_validation_errors(errors,current_button)}else if(result.error&&result.error.type&&result.error.type=='validation_error')
161$.pms_form_reset_submit_button(current_button) 162else{if(result.error&&result.error.setup_intent) 163token={id:result.error.setup_intent.id}else if(result.setupIntent) 164token={id:result.setupIntent.payment_method}else token='' 165stripeTokenHandler(token,$(current_button).closest('form'))}})} 166function stripeConnectInit(){var target_elements_instance=!1 167var target_elements_instance_slug='' 168if($('#pms-update-payment-method-form #pms-stripe-payment-elements').length>0){stripeConnectInitUpdatePaymentMethod();return!1}else if($.pms_checkout_is_setup_intents()){target_elements_instance=elements_setup_intent 169target_elements_instance_slug='setup_intents'}else{target_elements_instance=elements 170target_elements_instance_slug='payment_intents'} 171let selected_subscription=jQuery(subscription_plan_selector+'[type=radio]').length>0?jQuery(subscription_plan_selector+'[type=radio]:checked'):jQuery(subscription_plan_selector+'[type=hidden]') 172let primary_setup_future_usage=pms_stripe_connect_setup_future_usage_for_input(selected_subscription) 173if(typeof primary_setup_future_usage!=='undefined') 174elements.update({setupFutureUsage:primary_setup_future_usage});if(target_elements_instance!=!1){if($payment_element==''){if(typeof selected_subscription!='undefined'&&target_elements_instance_slug=='payment_intents'){let price=(selected_subscription.data('mc_price')!==undefined&&selected_subscription.data('mc_price')!==null)?parseFloat(selected_subscription.data('mc_price')):parseFloat(selected_subscription.data('price'));let sign_up_fee=parseFloat(selected_subscription.data('sign_up_fee'));if(!isNaN(sign_up_fee)&&sign_up_fee>0){price=price+sign_up_fee} 175if(price>0){target_elements_instance.update({amount:pms_stripe_convert_amount_to_cents(price)})}} 176let default_values=pms_stripe_get_default_values() 177$payment_element=target_elements_instance.create("payment",default_values) 178$payment_element.mount("#pms-stripe-payment-elements") 179$payment_element.addEventListener('change',creditCardErrorsHandler)}else{if(typeof selected_subscription!='undefined'&&target_elements_instance_slug=='payment_intents'){let price=(selected_subscription.data('mc_price')!==undefined&&selected_subscription.data('mc_price')!==null)?parseFloat(selected_subscription.data('mc_price')):parseFloat(selected_subscription.data('price'));let sign_up_fee=parseFloat(selected_subscription.data('sign_up_fee'));if(!isNaN(sign_up_fee)&&sign_up_fee>0){price=price+sign_up_fee} 180if(price>0){target_elements_instance.update({amount:pms_stripe_convert_amount_to_cents(price)})}} 181let default_values=pms_stripe_get_default_values() 182if($elements_instance_slug!=target_elements_instance_slug){$payment_element.destroy() 183$payment_element=target_elements_instance.create("payment",default_values) 184$payment_element.mount("#pms-stripe-payment-elements") 185$payment_element.addEventListener('change',creditCardErrorsHandler)}} 186$elements_instance_slug=target_elements_instance_slug 187pms_stripe_hide_spinner() 188if(typeof paymentSidebarPosition=='function'){setTimeout(paymentSidebarPosition,300)}}} 189function stripeTokenHandler(token,$form=null){if($form===null) 190$form=$(payment_buttons).closest('form') 191$form.append($('<input type="hidden" name="stripe_token" />').val(token.id)) 192var button_name=$form.find('input[type="submit"], button[type="submit"]').not('#pms-apply-discount').not('input[name="pms_redirect_back"]').attr('name') 193var button_value=$form.find('input[type="submit"], button[type="submit"]').not('#pms-apply-discount').not('input[name="pms_redirect_back"]').val() 194$form.append($('<input type="hidden" />').val(button_value).attr('name',button_name)) 195$form.get(0).submit()} 196function pms_stripe_get_billing_details(){var data={} 197var email=$('.pms-form input[name="user_email"], .wppb-user-forms input[name="email"]').val() 198if(typeof email=='undefined'||email=='') 199data.email=$('.pms-form input[name="pms_billing_email"]').val() 200if(typeof email!='undefined'&&email!='') 201data.email=email.replace(/\s+/g,'') 202var name='' 203if($('.pms-billing-details input[name="pms_billing_first_name"]').length>0) 204name=name+$('.pms-billing-details input[name="pms_billing_first_name"]').val()+' ' 205else if($('.pms-form input[name="first_name"], .wppb-user-forms input[name="first_name"]').length>0) 206name=name+$('.pms-form input[name="first_name"], .wppb-user-forms input[name="first_name"]').val()+' ' 207if($('.pms-billing-details input[name="pms_billing_last_name"]').length>0) 208name=name+$('.pms-billing-details input[name="pms_billing_last_name"]').val() 209else if($('.pms-form input[name="last_name"], .wppb-user-forms input[name="last_name"]').length>0) 210name=name+$('.pms-form input[name="last_name"], .wppb-user-forms input[name="last_name"]').val() 211if(name.length>1) 212data.name=name 213if($('.pms-billing-details ').length>0){data.address={city:$('.pms-billing-details input[name="pms_billing_city"]').val(),country:$('.pms-billing-details input[name="pms_billing_country"]').val(),line1:$('.pms-billing-details input[name="pms_billing_address"]').val(),postal_code:$('.pms-billing-details input[name="pms_billing_zip"]').val(),state:$('.pms-billing-details input[name="pms_billing_state"]').val()}} 214return data}
215function creditCardErrorsHandler(event){if(event.complete==!0) 216cardIsEmpty=!1 217else cardIsEmpty=!0 218if(typeof paymentSidebarPosition=='function'){setTimeout(paymentSidebarPosition,300)}} 219function pms_stripe_handle_validation_errors(response,current_button){var form_type=$('.wppb-register-user .wppb-subscription-plans').length>0?'wppb':$('.pms-ec-register-form').length>0?'pms_email_confirmation':'pms' 220if(response.data&&(form_type=='pms'||form_type=='pms_email_confirmation')){$.pms_form_add_validation_errors(response.data,current_button)}else{if(response.pms_errors&&response.pms_errors.length>0) 221$.pms_form_add_validation_errors(response.pms_errors,current_button) 222if(typeof response.wppb_errors=='object') 223$.pms_form_add_wppb_validation_errors(response.wppb_errors,current_button)} 224jQuery(document).trigger('pms_checkout_validation_error',response,current_button)} 225function pms_stripe_checkout_failed(current_button,detail){console.error('[PMS Stripe] Checkout did not complete. Response:',detail) 226var $form=current_button.closest('form') 227$.pms_add_general_error(pms.checkout_unexpected_error,$form) 228$.pms_form_scrollTo($form,current_button)} 229async function pms_stripe_maybe_validate_recaptcha(current_button,event=null){if(typeof pms_initialize_recaptcha_v3=='function'){let form=current_button.closest('form') 230var recaptcha_field=jQuery('.pms-recaptcha',form) 231if(recaptcha_field.length>0){return await pms_initialize_recaptcha_v3(event,form)}} 232let wppb_form=current_button.closest('.wppb-register-user') 233if(wppb_form.length>0&&wppb_form[0].length>0&&typeof wppbInitializeRecaptchaV3=='function'){let wppb_recaptcha_field=jQuery('.wppb-recaptcha .wppb-recaptcha-element',wppb_form) 234if(wppb_recaptcha_field.length>0){return await wppbInitializeRecaptchaV3(event,wppb_form)}} 235return!0} 236function pms_stripe_convert_amount_to_cents(amount){let currency=pms.currency 237const zero_decimal_currencies=['BIF','CLP','DJF','GNF','JPY','KMF','KRW','MGA','PYG','RWF','UGX','VND','VUV','XAF','XOF','XPF'];if(!zero_decimal_currencies.includes(currency.toUpperCase())){amount=amount*100} 238return Math.round(amount)} 239async function pms_stripe_validate_sdk_checkout_currency(subscriptionPlan){pms_stripe_show_spinner() 240return $.ajax({url:pms.ajax_url,type:'POST',data:{action:'pms_validate_sdk_currency',pms_nonce:pms.pms_validate_currency_nonce,subscription_plan_id:subscriptionPlan.val(),pms_mc_currency:subscriptionPlan.data('mc_currency'),subscription_id:subscriptionPlan.closest('form').find('input[name="pms_current_subscription"]').val(),pay_gate:'stripe_connect'},dataType:'json',}).done(function(response){if(response&&response.success&&response.currency) 241elements.update({currency:response.currency.toLowerCase()}) 242pms_stripe_hide_spinner() 243return}).fail(function(){pms_stripe_hide_spinner()})} 244function pms_stripe_hide_spinner(){jQuery('#pms-stripe-payment-elements').show() 245jQuery('#pms-stripe-connect .pms-spinner__holder').hide()} 246function pms_stripe_show_spinner(){jQuery('#pms-stripe-payment-elements').hide() 247jQuery('#pms-stripe-connect .pms-spinner__holder').show()} 248function pms_stripe_get_default_values(){if(jQuery('body').hasClass('logged-in')&&pms.pms_customer_email){var user_email=pms.pms_customer_email}else{var user_email=$('.pms-form input[name="user_email"], .wppb-register-user input[name="email"]').val()} 249let name='' 250if(jQuery('body').hasClass('logged-in')&&pms.pms_customer_name){name=pms.pms_customer_name}else{if($('.pms-billing-details input[name="pms_billing_first_name"]').length>0) 251name=name+$('.pms-billing-details input[name="pms_billing_first_name"]').val()+' ' 252else if($('.pms-form input[name="first_name"], .wppb-user-forms input[name="first_name"]').length>0) 253name=name+$('.pms-form input[name="first_name"], .wppb-user-forms input[name="first_name"]').val()+' ' 254if($('.pms-billing-details input[name="pms_billing_last_name"]').length>0) 255name=name+$('.pms-billing-details input[name="pms_billing_last_name"]').val() 256else if($('.pms-form input[name="last_name"], .wppb-user-forms input[name="last_name"]').length>0) 257name=name+$('.pms-form input[name="last_name"], .wppb-user-forms input[name="last_name"]').val()} 258if(typeof user_email!='undefined'&&user_email.length>0){var default_values={defaultValues:{billingDetails:{email:user_email,name:name.length>0?name:null}}}}else{var default_values={}} 259return default_values}} 260jQuery(function(){try{pms_stripe_maybe_load_gateway(jQuery)}catch(err){console.error('[PMS Stripe] Error during init:',err)}});jQuery(document).on('elementor/popup/show',function(){if(jQuery('.pms-form #pms-stripe-connect',jQuery('.elementor-popup-modal')).length>0){pms_stripe_maybe_load_gateway(jQuery) 261document.addEventListener('click',function(ev){const btn=ev.target.closest('input[type="submit"], button[type="submit"]');if(!btn)return;const form=btn.form||btn.closest('form');if(!form)return;if(!form.classList.contains('pms-form'))return;ev.preventDefault();ev.stopImmediatePropagation();
261const submitEvent=new Event('submit',{bubbles:!0,cancelable:!0});form.dispatchEvent(submitEvent)},!0)}})
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.