phone-mask-uz
Version:
A flexible React component for formatting and validating Uzbekistan phone numbers
3 lines (2 loc) • 2.68 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=r(e),o=function(){return o=Object.assign||function(e){for(var r,t=1,o=arguments.length;t<o;t++)for(var n in r=arguments[t])Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n]);return e},o.apply(this,arguments)};"function"==typeof SuppressedError&&SuppressedError;var n=function(e){var r=e.replace(/[^+\d]/g,"");if(!r.startsWith("+998"))return"+998 ";var t=r.slice(4).replace(/\s/g,""),o=[t.slice(0,2),t.slice(2,5),t.slice(5,7),t.slice(7,9)];return"+998 ".concat(o.filter(Boolean).join(" "))},a=e.forwardRef((function(r,a){var l=r.value,u=void 0===l?"":l,s=r.onChange,p=r.error,i=r.showError,c=void 0===i||i,f=r.className,d=void 0===f?"":f,v=r.disabled,h=void 0!==v&&v,b=r.inputComponent,m=r.inputProps,y=void 0===m?{}:m,g=r.wrapperComponent,O=r.wrapperProps,P=void 0===O?{}:O,w=r.placeholder,_=void 0===w?"+998 __ ___ __ __":w,j=function(e,r){var t={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&r.indexOf(o)<0&&(t[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(o=Object.getOwnPropertySymbols(e);n<o.length;n++)r.indexOf(o[n])<0&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(t[o[n]]=e[o[n]])}return t}(r,["value","onChange","error","showError","className","disabled","inputComponent","inputProps","wrapperComponent","wrapperProps","placeholder"]),C=e.useRef(null),E=e.useState(n(u)),x=E[0],N=E[1],S=e.useState(!1),W=S[0],B=S[1],I=e.useState(!0),k=I[0],D=I[1],F=function(e){var r=e.replace(/\D/g,"");return 12===r.length&&r.startsWith("998")};e.useEffect((function(){var e=n(u);N(e),D(F(e))}),[u]);var R=e.useCallback((function(e){var r=e.target.value;if(r.startsWith("+998")){var t=n(r),o=F(t);N(t),D(o),s&&s(t,o)}}),[s]),q=function(){B(!0),x&&"+998"!==x||(N("+998"),s&&s("+998",!1))},z=function(){B(!1),"+998"===x&&(N(""),s&&s("",!1))},M=e.useCallback((function(){var e=["phone-input"];return d&&e.push(d),W&&e.push("focused"),!k&&c&&e.push("error"),e.join(" ")}),[d,W,k,c]),V=b?t.default.createElement(b,o({ref:a||C,value:x,onChange:R,onFocus:q,onBlur:z,disabled:h,className:M(),placeholder:_},y,j)):t.default.createElement("input",o({ref:a||C,type:"tel",value:x,onChange:R,onFocus:q,onBlur:z,disabled:h,placeholder:_,className:M()},j));return g?t.default.createElement(g,o({},P,{error:c?p:void 0}),V):V}));a.displayName="PhoneInput",exports.PhoneInput=a,exports.default=a,exports.isValidPhoneNumber=function(e){var r=e.replace(/\D/g,"");return 12===r.length&&r.startsWith("998")},exports.normalizePhoneNumber=n;
//# sourceMappingURL=index.js.map