class CCFEF extends elementorModules.frontend.handlers.Base{getDefaultSettings(){return{selectors:{inputTelTextArea:"textarea.ccfef_country_code_data_js",intlInputSpan:".ccfef-editor-intl-input",submitButton:"div.elementor-field-type-submit button"}}}getDefaultElements(){const selectors=this.getSettings("selectors");return{$textArea:this.$element.find(selectors.inputTelTextArea),$intlSpanElement:this.$element.find(selectors.intlInputSpan),$submitButton:this.$element.find(selectors.submitButton)}}bindEvents(){this.telId=new Array,this.includeCountries={},this.excludeCountries={},this.defaultCountry={},this.commonCountries={},this.iti={},this.getIntlUserData(),this.appendCountryCodeHandler(),this.addCountryCodeInputHandler(),this.customFlags(),this.removeInputTelSpanEle(),this.intlInputValidation()}appendCountryCodeHandler(){this.telId.forEach(data=>{this.addCountryCodeIconHandler(data.formId,data.fieldId,data.customId)})}addCountryCodeInputHandler(){const itiArr=this.iti;Object.keys(itiArr).forEach(key=>{const iti=itiArr[key],inputElement=iti.telInput;let previousCountryData=iti.getSelectedCountryData(),previousCode=`+${previousCountryData.dialCode}`,keyUpEvent=!1;const resetKeyUpEventStatus=()=>{keyUpEvent=!1},handleCountryChange=e=>{this.customFlags();const currentCountryData=iti.getSelectedCountryData(),currentCode=`+${currentCountryData.dialCode}`;if("keydown"===e.type||"input"===e.type)keyUpEvent=!0,clearTimeout(resetKeyUpEventStatus),setTimeout(resetKeyUpEventStatus,400),previousCountryData.dialCode!==currentCountryData.dialCode?previousCountryData=currentCountryData:previousCountryData.dialCode===currentCountryData.dialCode&&previousCountryData.iso2!==currentCountryData.iso2&&iti.setCountry(previousCountryData.iso2);else if("countrychange"===e.type){if(keyUpEvent)return;previousCountryData=currentCountryData}this.updateCountryCodeHandler(e.currentTarget,currentCode,previousCode),previousCode=currentCode};inputElement.addEventListener("keydown",handleCountryChange),inputElement.addEventListener("input",handleCountryChange),inputElement.addEventListener("countrychange",handleCountryChange)})}addCountryCodeIconHandler(formId,widgetId,inputId){const utilsPath=CCFEFCustomData.pluginDir+"assets/intl-tel-input/js/utils.min.js",telFIeld=jQuery(`.elementor-widget.elementor-widget-form[data-id="${formId}"] .elementor-field-type-tel.elementor-field-group input[type="tel"]#${inputId}`)[0];if(void 0!==telFIeld){let includeCountries=[],excludeCountries=[],defaultCountry="in";const defaultCoutiresArr=["in","us","gb","ru","fr","de","br","cn","jp","it"],uniqueId=`${formId}${widgetId}`;if(this.includeCountries.hasOwnProperty(uniqueId)&&this.includeCountries[uniqueId].length>0&&(defaultCountry=this.includeCountries[uniqueId][0],includeCountries=[...this.includeCountries[uniqueId]]),this.excludeCountries.hasOwnProperty(uniqueId)&&this.excludeCountries[uniqueId].length>0){let uniqueValue;defaultCountry=defaultCoutiresArr.filter(value=>!this.excludeCountries[uniqueId].includes(value))[0],excludeCountries=[...this.excludeCountries[uniqueId]]}this.defaultCountry[uniqueId]&&""!==this.defaultCountry[uniqueId]&&(defaultCountry=this.defaultCountry[uniqueId]);const iti=window.intlTelInput(telFIeld,{initialCountry:defaultCountry,utilsScript:utilsPath,formatOnDisplay:!1,formatAsYouType:!0,autoFormat:!1,containerClass:"cfefp-intl-container",useFullscreenPopup:!1,onlyCountries:includeCountries,excludeCountries:excludeCountries,customPlaceholder:(selectedCountryPlaceholder,selectedCountryData)=>{if(this.commonCountries[uniqueId])return"No country found";if(!selectedCountryData||!selectedCountryPlaceholder||!selectedCountryData.dialCode)return"No country found";let placeHolder=selectedCountryPlaceholder;"in"===selectedCountryData.iso2&&(placeHolder=selectedCountryPlaceholder.replace(/^0+/,""));const placeholderText=`+${selectedCountryData.dialCode} ${placeHolder}`;return placeholderText}}),intlSpan=document.querySelector(`.elementor-widget.elementor-widget-form[data-id="${formId}"] .ccfef-editor-intl-input[data-field-id="${widgetId}"]`),commonAttr=intlSpan?intlSpan.getAttribute("data-common-countries"):"";if("same"===commonAttr&&this.commonCountries[uniqueId]&&""!==includeCountries&&""!==excludeCountries){const countryList=iti.countryList;countryList&&countryList.classList.contains("iti__country-list")&&(countryList.style.display="none")}else{const countryList=iti.countryList;if(countryList&&countryList.classList.contains("iti__country-list")){const countryItems=countryList.querySelectorAll(".iti__country");countryItems.forEach((function(item){const countryCode=item.getAttribute("data-country-code");excludeCountries.includes(countryCode)&&(item.style.display="none")}));const visibleCountries=Array.from(countryItems).filter(item=>"none"!==item.style.display),includedVisibleCountries=visibleCountries.filter(item=>{const countryCode=item.getAttribute("data-country-code");return includeCountries.includes(countryCode)});if(includedVisibleCountries.length>0){const selectedItem=includedVisibleCountries.find(item=>"true"===item.getAttribute("aria-selected"));if(!selectedItem){const firstItem=includedVisibleCountries[0];firstItem.setAttribute("aria-selected","true");const newCountryCode=firstItem.getAttribute("data-country-code");iti.setCountry(newCountryCode)}}}}telFIeld.removeAttribute("pattern"),this.iti[formId+widgetId]=iti}}updateCountryCodeHandler(element,currentCode,previousCode){let value=element.value;currentCode&&"+undefined"===currentCode||["","+"].includes(value)||(currentCode!==previousCode&&(value=value.replace(new RegExp(`^\\${previousCode}`),"")),value.startsWith(currentCode)||(value=value.replace(/\+/g,""),element.value=currentCode+value))}customFlags(){const selectedCountries=this.$element.find(".cfefp-intl-container .iti__country-container .iti__flag:not(.iti__globe)");selectedCountries.each((function(){const selectedCountry=this,classList=selectedCountry.className.split(" ");if(classList[1]){const selectedCountryFlag=classList[1].split("__")[1],svgFlagPath=CCFEFCustomData.pluginDir+`assets/flags/${selectedCountryFlag}.svg`;selectedCountry.style.backgroundImage=`url('${svgFlagPath}')`}}))}removeInputTelSpanEle(){this.$element.find("span.ccfef-editor-intl-input").remove()}getIntlUserData(){const intelInputElement=this.elements.$intlSpanElement,previousIds=[];intelInputElement.each((_,ele)=>{const element=jQuery(ele),includeCountries=element.data("include-countries"),excludeCountries=element.data("exclude-countries"),defaultCountry=element.data("defaultCountry"),commonAttr=element.data("common-countries"),inputId=element.data("id"),fieldId=element.data("field-id"),formId=element.closest(".elementor-element.elementor-widget-form").data("id"),currentId=`${formId}${fieldId}`;if("same"===commonAttr&&""===includeCountries&&""!==excludeCountries)this.commonCountries[currentId]=!0;else{if(""!==includeCountries&&isNaN(includeCountries)){const splitIncludeCountries=includeCountries.split(",");this.includeCountries[currentId]=splitIncludeCountries}if(""!==excludeCountries&&isNaN(excludeCountries)){const splitExcludeCountries=excludeCountries.split(",");this.excludeCountries[currentId]=splitExcludeCountries}if("same"!==commonAttr&&""!==includeCountries&&""!==excludeCountries&&isNaN(includeCountries)){const includeArray=includeCountries.split(",").map(item=>item.trim());if(isNaN(excludeCountries)){const excludeArray=excludeCountries.split(",").map(item=>item.trim()),allIncludedPresent=includeArray.every(country=>excludeArray.includes(country));allIncludedPresent&&(this.commonCountries[currentId]=!0)}}""!==defaultCountry&&(this.defaultCountry[currentId]=defaultCountry)}previousIds.includes(currentId)||(this.telId.push({formId:formId,fieldId:fieldId,customId:inputId}),previousIds.push(currentId))})}intlInputValidation(){this.elements.$submitButton.on("click",e=>{const itiArr=this.iti;Object.keys(itiArr).length>0&&Object.keys(itiArr).forEach(data=>{const iti=itiArr[data],inputTelElement=iti.telInput;""!==inputTelElement.value&&(inputTelElement.value=inputTelElement.value.replace(/[^0-9+]/g,""));const parentWrp=inputTelElement.closest(".elementor-field-group"),telContainer=parentWrp.querySelector(".cfefp-intl-container");telContainer&&inputTelElement.offsetHeight&&telContainer.style.setProperty("--cfefp-intl-tel-button-height",`${inputTelElement.offsetHeight}px`);const errorContainer=jQuery(inputTelElement).parent();errorContainer.find("span.elementor-message").remove();const errorMap=CCFEFCustomData.errorMap;let errorMsgHtml='';if(""!==inputTelElement.value)if(iti.isValidNumber())jQuery(inputTelElement).closest(".cfefp-intl-container").removeClass("elementor-error");else{const errorType=iti.getValidationError();void 0!==errorType&&errorMap[errorType]&&(errorMsgHtml+=errorMap[errorType]+"",jQuery(inputTelElement).closest(".cfefp-intl-container").addClass("elementor-error"),jQuery(inputTelElement).after(errorMsgHtml),e.preventDefault())}})})}}jQuery(window).on("elementor/frontend/init",()=>{const addHandler=$element=>{elementorFrontend.elementsHandler.addHandler(CCFEF,{$element:$element})};elementorFrontend.hooks.addAction("frontend/element_ready/form.default",addHandler)});