PageSourceSearch

https://omni24.io/wp-content/cache/min/1/wp-content/plugins/smart-…/js/spf_cf7.js?ver=1791197785

js omni24.io collected 2026-10-07 01:54:53 UTC 4,284 bytes, 18 lines download raw bytes

1class PCAFE_SPF_CF7{constructor(options,globalOptions){this.options=options;this.global=globalOptions;this.init();this.spf_config}
2init(){this.combineOptions();this.initSmartPhoneField()}
3combineOptions(){let comOps=this.options;if(this.options.config=='global'){comOps.initialCountry=this.global.spf_default_country;comOps.geoIpLookup=this.global.spf_geoip?1:0;comOps.validation=this.global.spf_frontend_validation?1:0}
4comOps.countrySearch=this.global.spf_country_search?1:0;comOps.dropdwonCoutnries=this.global.spf_restrict_country?this.global.spf_restrict_country:'';comOps.restrictType=this.global.spf_restrict_type;comOps.ipinfoToken=this.global.spf_ipinfo_token;this.spf_config=comOps}
5initSmartPhoneField(){if(typeof intlTelInput=='undefined'){return}
6const input=this.options.inputId;const iti=window.intlTelInput(input,this.configuration());input.addEventListener('keypress',function(e){var charCode=e.which?e.which:e.keyCode;if(String.fromCharCode(charCode).match(/[^0-9+]/g)){e.preventDefault()}});this.addCountryCodeInputHandler(input,iti);input.addEventListener('blur',(e)=>{this.validateNumber(input,iti)});input.addEventListener('keyup',(e)=>{this.formatValidation(input,iti)})}
7configuration(){let config={initialCountry:this.spf_config.initialCountry,formatOnDisplay:!1,countrySearch:this.spf_config.countrySearch?!0:!1,fixDropdownWidth:!0,nationalMode:!1,formatAsYouType:!1,useFullscreenPopup:!1,autoHideDialCode:!1};if(this.spf_config.restrictType=='exclude'){config.excludeCountries=this.spf_config.dropdwonCoutnries}
8if(this.spf_config.restrictType=='include'){config.onlyCountries=this.spf_config.dropdwonCoutnries}
9if(this.spf_config.geoIpLookup||this.spf_config.initialCountry=='auto'){var defaultCountry=this.spf_config.initialCountry.toString().toLowerCase();var api_url=this.spf_config.ipinfoToken?`https://ipinfo.io?token=${this.spf_config.ipinfoToken}`:"https://ipinfo.io/json";config.initialCountry='auto';config.geoIpLookup=function(callback){fetch(api_url).then(r=>r.json()).then(data=>{const country=(data&&data.country)?data.country.toLowerCase():defaultCountry;callback(country)}).catch(()=>callback(defaultCountry))}}
10return config}
11validateNumber(input,iti){if(!this.spf_config.validation)return;const isValid=iti.isValidNumber();if(input.value){if(isValid){input.classList.remove('invalid');input.classList.add('valid')}else{input.classList.remove('valid');input.classList.add('invalid')}}else{input.classList.remove('valid');input.classList.remove('invalid')}}
12formatValidation(input,iti){if(!this.spf_config.validation)return;const isValid=iti.isValidNumber();if(input.value){if(isValid){input.classList.remove('invalid');input.classList.add('valid')}else{input.classList.remove('valid');input.classList.remove('invalid')}}else{input.classList.remove('valid');input.classList.remove('invalid')}}
13addCountryCodeInputHandler(inputElement,iti){const handleCountryChange=(event)=>{const currentCountryData=iti.getSelectedCountryData();const currentCode=`+${currentCountryData.dialCode}`;this.updateCountryCodeHandler(event.currentTarget,currentCode)}
14inputElement.addEventListener('keydown',handleCountryChange);inputElement.addEventListener('input',handleCountryChange);inputElement.addEventListener('countrychange',handleCountryChange)}
15updateCountryCodeHandler(input,currentCode){let value=input.value;if(currentCode&&'+undefined'===currentCode||['','+'].includes(value)){return}
16if(!value.startsWith(currentCode)){value=value.replace(/\+/g,'');input.value=currentCode+value}}}
17function initSPFFields(){document.querySelectorAll('.wpcf7-smart_phone_field').forEach(function(input){let globalOptions=pcafe_spf_global_setting;let options={inputId:input,config:input.getAttribute('data-config'),initialCountry:input.getAttribute('data-init_country')?input.getAttribute('data-init_country'):'us',validation:input.getAttribute('data-fv')?input.getAttribute('data-fv'):0,};new PCAFE_SPF_CF7(options,globalOptions)})}
18initSPFFields();jQuery(document).on('elementor/popup/show',function(event,id,instance){setTimeout(()=>{initSPFFields()},300)});document.addEventListener('wpcf7submit',function(event){document.querySelectorAll('.wpcf7-smart_phone_field').forEach(function(input){input.classList.remove('invalid');input.classList.remove('valid')})},!1)

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.