class HubSpotFormUtils{static setupEmojiRemoval($form,options={}){const config={onInput:!0,onSubmit:!0,...options};config.onInput&&$form.find("input, textarea").on("input",(function(){const noEmoji=this.value.replace(/[\p{Emoji_Presentation}\u200B\u200D\uFE0F]/gu,"");this.value!==noEmoji&&(this.value=noEmoji)})),config.onSubmit&&$form.on("submit",(function(){$form.find("input, textarea").each((function(){this.value=this.value.replace(/[\p{Emoji_Presentation}\u200B\u200D\uFE0F]/gu,"")}))}))}static setupFormSubmission($form,config={}){const finalConfig={formSelector:"#form1",thankYouSelector:"#thank-you",hideSelectors:[],addClassToSelector:null,classToAdd:null,scrollToTop:!0,...config};$form.on("submit",(function(){return finalConfig.formSelector&&$(finalConfig.formSelector).hide(),finalConfig.hideSelectors.forEach((selector=>{$(selector).hide()})),finalConfig.addClassToSelector&&finalConfig.classToAdd&&$(finalConfig.addClassToSelector).addClass(finalConfig.classToAdd),finalConfig.thankYouSelector&&$(finalConfig.thankYouSelector).show(),finalConfig.scrollToTop&&window.scrollTo(0,0),!1}))}static populateReferrerField($form,options={}){const config={fieldName:"previous_page_url",...options},referrerValue=document.referrer||"";if(!referrerValue)return;let referrerField=$form.find(`input[name="${config.fieldName}"]`);referrerField.length||(referrerField=$form.find(`input[data-name="${config.fieldName}"]`)),referrerField.length||(referrerField=$form.find('input[name*="previous_page"]')),referrerField.length||$form.find("label").each((function(){if($(this).text().toLowerCase().includes("previous page")){const fieldId=$(this).attr("for");if(fieldId&&(referrerField=$form.find("#"+fieldId),referrerField.length))return!1}})),referrerField.length&&(referrerField.val(referrerValue),referrerField.trigger("change"))}static waitForDependencies(dependencies,callback,options={}){const config={checkInterval:100,maxWaitTime:15e3,...options},startTime=Date.now();!function checkDependencies(){if(Date.now()-startTime>config.maxWaitTime){const missingDeps=dependencies.filter((dep=>{const parts=dep.split(".");let obj=window;for(const part of parts){if(void 0===obj[part])return!0;obj=obj[part]}return!1}));return missingDeps.length>0&&(1!==missingDeps.length||"hbspt"!==missingDeps[0])&&console.warn("Timeout waiting for dependencies:",missingDeps),void(callback&&callback())}dependencies.every((dep=>{const parts=dep.split(".");let obj=window;for(const part of parts){if(void 0===obj[part])return!1;obj=obj[part]}return!0}))?callback&&callback():setTimeout(checkDependencies,config.checkInterval)}()}static setupErrorHandlers(){window.addEventListener("error",(function(event){const errorMsg=event.message||"";if(errorMsg.includes("SUBSCRIPTION")||errorMsg.includes("SUBSCRIPTION ISSUE")||errorMsg.includes("subscription is inactive")||errorMsg.includes("subscription is expired"))return event.preventDefault(),!0})),window.addEventListener("unhandledrejection",(function(event){const errorMsg=event.reason&&event.reason.message?event.reason.message:"";if(errorMsg.includes("SUBSCRIPTION")||errorMsg.includes("SUBSCRIPTION ISSUE")||errorMsg.includes("subscription is inactive")||errorMsg.includes("subscription is expired")||event.reason&&(event.reason.isSubscriptionError||"SubscriptionError"===event.reason.name))return event.preventDefault(),!0}))}static initForm($form,config={}){const finalConfig={removeEmojis:!0,populateReferrer:!0,setupSubmission:!1,submissionConfig:{},...config};finalConfig.removeEmojis&&this.setupEmojiRemoval($form),finalConfig.populateReferrer&&this.populateReferrerField($form,finalConfig.referrerOptions||{}),finalConfig.setupSubmission&&this.setupFormSubmission($form,finalConfig.submissionConfig)}}"undefined"!=typeof module&&module.exports&&(module.exports=HubSpotFormUtils);