{"version":3,"file":"PhoneNumberInput.DMlL0MdP.mjs","names":["useState","useRef"],"sources":["https:/framerusercontent.com/modules/IQzDFpniaD3AmKydBXP4/Cs0w5Su72eeuirGvKldQ/PhoneNumberInput.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useState,useEffect,useRef}from\"react\";import{motion}from\"framer-motion\";import{Border,createBackground,parsePadding,fillProp,borderProp,shadowsProp,useInstanceId,HiddenInput}from\"https://framerusercontent.com/modules/DwWOdDzQZGCuvkNlbUjZ/p64C0n6xNEFY9NovSiJw/FramerFormsShared.js\";/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight any\n * @framerIntrinsicWidth 400\n * @framerDisableUnlink\n */export default function PhoneNumberInput(props){const{countryCodeOptions,border,shadows}=props;const id=useInstanceId();const isCanvas=RenderTarget.current()===RenderTarget.canvas;const hasCC=!!countryCodeOptions;const ccConnected=hasCC&&countryCodeOptions?.style!==\"split\";const phoneFormat=props.format==\"custom\"?props.customFormat==\"\"?\"XXXXXXXXXX\":props.customFormat:props.format;const countryCodeFormat=hasCC?countryCodeOptions.format==\"custom\"?countryCodeOptions.customFormat==\"\"?\"X\":countryCodeOptions.customFormat:countryCodeOptions.format:\"\";const maxDigits=countXCharacters(phoneFormat);const defaultCountryCode=String(countryCodeOptions?.defaultCountryCode)??\"1\";const[countryCode,setCountryCode]=useState(defaultCountryCode);const[phoneNumber,setPhoneNumber]=useState(\"\");const[countryCodeFocused,setCountryCodeFocused]=useState(false);const[phoneNumberFocused,setPhoneNumberFocused]=useState(false);const[invalid,setInvalid]=useState(false);const countryCodeInputRef=useRef(null);const phoneNumberInputRef=useRef(null);const[pt,pr,pb,pl]=parsePadding(props.padding);const[tl,tr,br,bl]=parsePadding(props.radius);const[bwt,bwr,bwb,bwl]=parsePadding(border?.width);useEffect(()=>{if(invalid){props.invalidEvent?.();}},[invalid]);const isComplete=phoneNumber.length===maxDigits;function onPhoneNumberChange(event){const unformatted=unformatValue(event.target.value).substring(0,maxDigits);const formattedValue=formatPhoneNumber(phoneNumber,phoneFormat);if(!isLastCharacterANumber(formattedValue)&&event.target.value.length<formattedValue.length){setPhoneNumber(unformatted.slice(0,-1));}else{setPhoneNumber(unformatted);}}function onCountryCodeChange(event){const unformatted=unformatValue(event.target.value).substring(0,3);const formattedValue=formatCountryCode(countryCode,countryCodeFormat);if(!isLastCharacterANumber(formattedValue)&&event.target.value.length<formattedValue.length){setCountryCode(unformatted.slice(0,-1));}else{setCountryCode(unformatted);}}function onCountryCodeFocus(){setCountryCodeFocused(true);if(invalid){setInvalid(false);}const lastChar=countryCodeFormat.slice(-1);if(lastChar!=\"X\"&&lastChar!=\"x\"){const countryCodeInput=countryCodeInputRef.current;if(countryCodeInput){const formattedValue=formatCountryCode(countryCode,countryCodeFormat);const cursorPosition=Math.max(countryCodeFormat.lastIndexOf(\"X\"),countryCodeFormat.lastIndexOf(\"x\"))+countryCode.length;setTimeout(()=>countryCodeInput.setSelectionRange(cursorPosition,cursorPosition),5);}}props.focusEvent?.();}function onPhoneNumberKeyDown(event){if(hasCC&&phoneNumber===\"\"){if(event.key===\"Backspace\"){countryCodeInputRef.current?.focus();}if(event.key===\"ArrowLeft\"){countryCodeInputRef.current?.focus();event.preventDefault();}}}function onCountryCodeKeyDown(event){if(hasCC){if(event.key===\"ArrowRight\"&&event.target.selectionStart===event.target.value.length){phoneNumberInputRef.current?.focus();event.preventDefault();}}}function onCountryCodeBlur(event){if(countryCode.length===0){setCountryCode(defaultCountryCode);}setCountryCodeFocused(false);props.blurEvent?.();}function onPhoneNumberFocus(){setPhoneNumberFocused(true);props.focusEvent?.();if(invalid){setInvalid(false);}}function onPhoneNumberBlur(){setPhoneNumberFocused(false);props.blurEvent?.();}return /*#__PURE__*/_jsxs(\"div\",{\"data-framerforms\":true,id:id,style:{display:\"flex\",flexDirection:\"row\",gap:countryCodeOptions?.style==\"split\"?countryCodeOptions.gap:0,...props.style},children:[/*#__PURE__*/_jsx(HiddenInput,{name:props.name,required:props.required||phoneNumber.length>0&&!isComplete,value:isComplete?hasCC?`+${countryCode} ${phoneNumber}`:phoneNumber:\"\",setInvalid:setInvalid}),hasCC&&/*#__PURE__*/_jsxs(motion.div,{animate:{...createBackground(props.fill,null,countryCodeFocused,invalid),boxShadow:invalid&&shadows?.invalid||countryCodeFocused&&shadows?.focus||shadows?.default},style:{position:\"relative\",borderRadius:ccConnected?px(tl,0,0,bl):props.radius,backdropFilter:props.bgBlur?`blur(${props.bgBlur}px)`:undefined},initial:false,transition:props.transition,children:[/*#__PURE__*/_jsx(\"input\",{ref:countryCodeInputRef,value:formatCountryCode(isCanvas?countryCodeOptions.defaultCountryCode:countryCode,countryCodeFormat),onChange:onCountryCodeChange,onFocus:onCountryCodeFocus,onBlur:onCountryCodeBlur,onKeyDown:onCountryCodeKeyDown,placeholder:props.placeholder||replaceXWithNumbers(phoneFormat),style:{background:\"none\",border:\"none\",color:props.color,width:countryCodeOptions.width+pl,height:\"100%\",margin:0,display:\"block\",padding:px(pt,0,pb,pl),...props.font},\"data-framerforms-no-prefill\":true}),border&&/*#__PURE__*/_jsx(Border,{...border,borderColor:invalid&&border?.colorInvalid||border.color,width:ccConnected?px(bwt,0,bwb,bwl):border.width,opacity:countryCodeFocused&&border?.colorFocus?0:1,transition:props.transition}),border?.colorFocus&&/*#__PURE__*/_jsx(Border,{...border,borderColor:border.colorFocus,width:border.width,opacity:countryCodeFocused?1:0,transition:props.transition})]}),/*#__PURE__*/_jsxs(motion.div,{animate:{...createBackground(props.fill,null,phoneNumberFocused,invalid),boxShadow:invalid&&shadows?.invalid||phoneNumberFocused&&shadows?.focus||shadows?.default},style:{position:\"relative\",borderRadius:ccConnected?px(0,tr,br,0):props.radius,flex:1,backdropFilter:props.bgBlur?`blur(${props.bgBlur}px)`:undefined},initial:false,transition:props.transition,children:[/*#__PURE__*/_jsx(\"input\",{ref:phoneNumberInputRef,autoFocus:props.autoFocus,value:formatPhoneNumber(phoneNumber,phoneFormat),onChange:onPhoneNumberChange,onFocus:onPhoneNumberFocus,onBlur:onPhoneNumberBlur,onKeyDown:onPhoneNumberKeyDown,placeholder:props.placeholder||replaceXWithNumbers(phoneFormat),style:{background:\"none\",border:\"none\",color:props.color,margin:0,display:\"block\",padding:props.padding,width:\"100%\",height:\"100%\",textOverflow:\"ellipsis\",...props.font},\"data-framerforms-no-prefill\":true}),border&&/*#__PURE__*/_jsx(Border,{...border,borderColor:invalid&&border?.colorInvalid||border.color,width:ccConnected?px(bwt,bwr,bwb,0):border.width,opacity:phoneNumberFocused&&border?.colorFocus?0:1,transition:props.transition}),border?.colorFocus&&/*#__PURE__*/_jsx(Border,{...border,borderColor:border.colorFocus,width:border.width,opacity:phoneNumberFocused?1:0,transition:props.transition})]}),countryCodeOptions?.style==\"divider\"&&/*#__PURE__*/_jsx(motion.div,{animate:{opacity:border?.colorFocus&&(countryCodeFocused||phoneNumberFocused)?0:1},style:{position:\"absolute\",width:countryCodeOptions.divider.width,left:countryCodeOptions.width+pl-Math.round(countryCodeOptions.divider.width/2),top:countryCodeOptions.divider.inset,bottom:countryCodeOptions.divider.inset,backgroundColor:countryCodeOptions.divider.color},initial:false,transition:props.transition}),/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:`\n                    #${id} input::placeholder {\n                        color: ${props.placeholderColor};\n                    }\n                    #${id} input:focus {\n                        outline: none;\n                    }`}})]});}PhoneNumberInput.displayName=\"Phone Number Input\";addPropertyControls(PhoneNumberInput,{name:{type:ControlType.String,defaultValue:\"Phone Number\",preventLocalization:true},required:{type:ControlType.Boolean,defaultValue:false},autoFocus:{type:ControlType.Boolean,defaultValue:false,title:\"Auto-Focus\"},countryCodeOptions:{type:ControlType.Object,optional:true,defaultValue:{defaultCountryCode:1,format:\"+1\",width:40},title:\"Country Code\",controls:{defaultCountryCode:{title:\"Default\",type:ControlType.Number,min:0,max:999,step:1,defaultValue:1},format:{title:\"Format\",type:ControlType.Enum,defaultValue:\"+1\",options:[\"+X\",\"(X)\",\"(+X)\",\"X\",\"custom\"],optionTitles:[\"+1\",\"(1)\",\"(+1)\",\"1\",\"Custom Format\"]},customFormat:{title:\" \",type:ControlType.String,defaultValue:\"+X\",description:\"*X* -> country code\",preventLocalization:true,hidden:props=>props.format!==\"custom\"},width:{type:ControlType.Number,defaultValue:45,min:1,step:1},style:{type:ControlType.Enum,defaultValue:\"divider\",options:[\"connected\",\"divider\",\"split\"],optionTitles:[\"Connected\",\"Divider\",\"Split\"],displaySegmentedControl:true,segmentedControlDirection:\"vertical\"},divider:{type:ControlType.Object,hidden:props=>props.style!==\"divider\",controls:{color:{type:ControlType.Color,defaultValue:\"rgba(136, 136, 136, 0.15)\"},width:{type:ControlType.Number,defaultValue:1,min:1,step:1,displayStepper:true},inset:{type:ControlType.Number,defaultValue:8,min:0,step:1,displayStepper:true}}},gap:{type:ControlType.Number,defaultValue:8,min:0,step:1,hidden:props=>props.style!==\"split\"}}},format:{type:ControlType.Enum,defaultValue:\"(XXX) XXX - XXXX\",options:[\"(XXX) XXX - XXXX\",\"(XXX) XXX-XXXX\",\"XXX-XXX-XXXX\",\"XXX.XXX.XXXX\",\"XXX XXX XXXX\",\"XXXXXXXXXXX\",\"XX XXXX XXXX\",\"custom\"],optionTitles:[\"(123) 456 - 7890\",\"(123) 456-7890\",\"123-456-7890\",\"123.456.7890\",\"123 456 7890\",\"1234567890\",\"12 3456 7890\",\"Custom Format\"]},customFormat:{title:\" \",type:ControlType.String,defaultValue:\"(XXX) XXX - XXXX\",description:\"*X* -> phone number\",preventLocalization:true,hidden:props=>props.format!==\"custom\"},placeholder:{type:ControlType.String,defaultValue:\"\",placeholder:\"Auto\"},font:{type:\"font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:14,lineHeight:1.2}},color:{type:ControlType.Color,defaultValue:\"#999999\"},placeholderColor:{type:ControlType.Color,defaultValue:\"#999999\",title:\"Placeholder\"},fill:fillProp({invalid:true}),radius:{type:ControlType.BorderRadius,defaultValue:\"10px\"},padding:{type:ControlType.Padding,defaultValue:\"12px\"},border:borderProp({invalid:true}),shadows:shadowsProp(),bgBlur:{type:ControlType.Number,min:0,max:100,step:1,displayStepper:true,title:\"BG Blur\"},transition:{type:ControlType.Transition,defaultValue:{type:false}},focusEvent:{type:ControlType.EventHandler,title:\"Focus\"},blurEvent:{type:ControlType.EventHandler,title:\"Blur\"},invalidEvent:{type:ControlType.EventHandler,title:\"Invalid\"}});function formatPhoneNumber(phoneNumber,format){if(!phoneNumber){return\"\";}let index=0// Tracks the position in the replacements string\n;let cutOffIndex=null// To determine where to slice the template after replacement\n;const result=format.replace(/[Xx]/g,(match,offset)=>{if(index<phoneNumber.length){return phoneNumber[index++];}else{if(phoneNumber.length<10&&cutOffIndex===null){// Set cut-off index at the first unmatched Xx after all replacements are used\ncutOffIndex=offset;}return\"\";}});// Slice the template to remove the part after the last valid replacement if necessary\nreturn cutOffIndex!==null?result.slice(0,cutOffIndex):result;}function replaceXWithNumbers(input){let count=1;return input.replace(/[Xx]/g,()=>{let number=count%10;if(number===0)number=0;count++;return number;});}function formatCountryCode(countryCode,format){return format.replace(/[Xx]/,countryCode);}function unformatValue(value){return value.replace(/\\D/g,\"\");}function isLastCharacterANumber(str){if(str.length===0)return false// Check if the string is empty\n;const lastChar=str[str.length-1]// Get the last character\n;return!isNaN(lastChar)&&!isNaN(parseFloat(lastChar))// Check if it's a numeric value\n;}const px=(a,b,c,d)=>`${a}px ${b}px ${c}px ${d}px`;function countXCharacters(str){// Convert the string to lowercase to count both 'X' and 'x'\nconst lowercaseStr=str.toLowerCase();// Use a regular expression to match 'x' characters\nconst xRegex=/x/g;// Use the match() method to find all occurrences of 'x'\nconst matches=lowercaseStr.match(xRegex);// Return the count of matches, or 0 if no matches found\nreturn matches?matches.length:0;}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PhoneNumberInput\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any\",\"framerIntrinsicWidth\":\"400\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerDisableUnlink\":\"\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PhoneNumberInput.map"],"mappings":"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"}