UNPKG

primereact

Version:

PrimeReact is an open source UI library for React featuring a rich set of 90+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with Prime

2 lines (1 loc) 8.18 kB
this.primereact=this.primereact||{},this.primereact.inputmask=function(e,n,r,t,u,c,a){"use strict";function l(e){if(e&&e.__esModule)return e;var n=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var t=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,t.get?t:{enumerable:!0,get:function(){return e[r]}})}})),n.default=e,Object.freeze(n)}var i=l(n);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var t in r)({}).hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},o.apply(null,arguments)}var s=a.ComponentBase.extend({defaultProps:{__TYPE:"InputMask",autoClear:!0,autoFocus:!1,className:null,disabled:!1,id:null,mask:null,maxLength:null,invalid:!1,variant:null,name:null,onBlur:null,onChange:null,onComplete:null,onFocus:null,placeholder:null,readOnly:!1,required:!1,size:null,slotChar:"_",style:null,tabIndex:null,tooltip:null,tooltipOptions:null,type:"text",unmask:!1,value:null,children:void 0},css:{classes:{root:function(e){var n=e.props,r=e.context;return c.classNames("p-inputmask",{"p-filled":n.filled,"p-invalid":n.invalid,"p-variant-filled":n.variant?"filled"===n.variant:r&&"filled"===r.inputStyle})}}}}),f=i.memo(i.forwardRef((function(e,n){var a=i.useContext(r.PrimeReactContext),l=s.getProps(e,a),f=i.useRef(null),p=i.useRef(null),v=i.useRef(0),d=i.useRef([]),m=i.useRef([]),g=i.useRef(0),h=i.useRef(null),b=i.useRef(!1),y=i.useRef(null),k=i.useRef(null),C=i.useRef(null),R=i.useRef(null),O=i.useRef(null),E=i.useRef(!1),x={props:l},D=s.setMetaData(x).cx,j=function(e,n){var r,t,u,c=f.current;return c&&c.offsetParent&&c===document.activeElement?("number"==typeof e?(t=e,u="number"==typeof n?n:t,c.setSelectionRange?c.setSelectionRange(t,u):c.createTextRange&&((r=c.createTextRange()).collapse(!0),r.moveEnd("character",u),r.moveStart("character",t),r.select())):c.setSelectionRange?(t=c.selectionStart,u=c.selectionEnd):document.selection&&document.selection.createRange&&(u=(t=0-(r=document.selection.createRange()).duplicate().moveStart("character",-1e5))+r.text.length),{begin:t,end:u}):null},P=function(){for(var e=p.current;e<=v.current;e++)if(d.current[e]&&m.current[e]===I(e))return!1;return!0},I=i.useCallback((function(e){return l.slotChar.charAt(e<l.slotChar.length?e:0)}),[l.slotChar]),M=function(){return l.unmask?K():f.current&&f.current.value},H=function(e){for(;++e<g.current&&!d.current[e];);return e},S=function(e){for(;--e>=0&&!d.current[e];);return e},T=function(e,n){var r,t;if(!(e<0)){for(r=e,t=H(n);r<g.current;r++)if(d.current[r]){if(!(t<g.current&&d.current[r].test(m.current[t])))break;m.current[r]=m.current[t],m.current[t]=I(t),t=H(t)}z(),j(Math.max(p.current,e))}},_=function(e){var n,r,t,u;for(n=e,r=I(e);n<g.current;n++)if(d.current[n]){if(t=H(n),u=m.current[n],m.current[n]=r,!(t<g.current&&d.current[t].test(u)))break;r=u}},w=function(e){var n=f.current.value,r=j();if(r){if(h.current.length&&h.current.length>n.length){for(N(!0);r.begin>0&&!d.current[r.begin-1];)r.begin--;if(0===r.begin)for(;r.begin<p.current&&!d.current[r.begin];)r.begin++;j(r.begin,r.begin)}else{for(N(!0);r.begin<g.current&&!d.current[r.begin];)r.begin++;j(r.begin,r.begin)}l.onComplete&&P()&&l.onComplete({originalEvent:e,value:M()}),U(e)}},A=function(e){if(b.current=!1,N(),U(e),L(),l.onBlur&&l.onBlur(e),f.current.value!==y.current){var n=document.createEvent("HTMLEvents");n.initEvent("change",!0,!1),f.current.dispatchEvent(n)}},F=function(e,n){var r;for(r=e;r<n&&r<g.current;r++)d.current[r]&&(m.current[r]=I(r))},z=function(){f.current&&(f.current.value=m.current.join(""))},N=function(e){k.current=!0;var n,r,t,u=f.current&&f.current.value,c=-1;for(n=0,t=0;n<g.current;n++)if(d.current[n]){for(m.current[n]=I(n);t++<u.length;)if(r=u.charAt(t-1),d.current[n].test(r)){m.current[n]=r,c=n;break}if(t>u.length){F(n+1,g.current);break}}else m.current[n]===u.charAt(t)&&t++,n<C.current&&(c=n);return e?z():c+1<C.current?l.autoClear||m.current.join("")===R.current?(f.current&&f.current.value&&(f.current.value=""),F(0,g.current)):z():(z(),f.current&&(f.current.value=f.current.value.substring(0,c+1))),C.current?n:p.current},B=function(e){if(!l.readOnly){if(!(arguments.length>1&&void 0!==arguments[1]&&arguments[1])){var n=N(!0);j(n)}U(e),l.onComplete&&P()&&l.onComplete({originalEvent:e,value:M()})}},K=i.useCallback((function(){for(var e=[],n=0;n<m.current.length;n++){var r=m.current[n];d.current[n]&&r!==I(n)&&e.push(r)}return e.join("")}),[I]),U=function(e){if(l.onChange){var n=l.unmask?K():e&&e.target.value;l.onChange({originalEvent:e,value:R.current!==n?n:"",stopPropagation:function(){e.stopPropagation()},preventDefault:function(){e.preventDefault()},target:{name:l.name,id:l.id,value:R.current!==n?n:""}})}},L=function(){f.current&&f.current.value&&f.current.value.length>0?c.DomHandler.addClass(f.current,"p-filled"):c.DomHandler.removeClass(f.current,"p-filled")},q=function(e){var n;return f.current&&(c.ObjectUtils.isEmpty(l.value)?f.current.value="":(f.current.value=l.value,n=N(e),setTimeout((function(){if(f.current)return z(),N(e)}),10)),y.current=f.current.value),L(),n},Z=i.useCallback((function(){return l.unmask?l.value!==K():R.current!==f.current.value&&f.current.value!==l.value}),[l.unmask,l.value,K]),Y=function(){if(l.mask){d.current=[],C.current=l.mask.length,g.current=l.mask.length,p.current=null;var e={9:"[0-9]",a:"[A-Za-z]","*":"[A-Za-z0-9]"};E.current=c.DomHandler.isChrome()&&c.DomHandler.isAndroid();for(var n=l.mask.split(""),r=0;r<n.length;r++){var t=n[r];"?"===t?(g.current--,C.current=r):e[t]?(d.current.push(new RegExp(e[t])),null===p.current&&(p.current=d.current.length-1),r<C.current&&(v.current=d.current.length-1)):d.current.push(null)}m.current=[];for(var u=0;u<n.length;u++){var a=n[u];"?"!==a&&m.current.push(e[a]?I(u):a)}R.current=m.current.join("")}};i.useImperativeHandle(n,(function(){return{props:l,focus:function(){return c.DomHandler.focus(f.current)},getElement:function(){return f.current}}})),i.useEffect((function(){c.ObjectUtils.combinedRefs(f,n)}),[f,n]),t.useMountEffect((function(){Y(),q()})),t.useUpdateEffect((function(){Y(),j(q(!0)),l.unmask&&U()}),[l.mask]),t.useUpdateEffect((function(){Z()&&q()}),[Z]),t.useUpdateEffect((function(){L()}),[l.disabled]);var G=s.getOtherProps(l),J=c.classNames(l.className,D("root",{context:a}));return i.createElement(u.InputText,o({ref:f,autoFocus:l.autoFocus,id:l.id,type:l.type,name:l.name,style:l.style,className:J},G,{placeholder:l.placeholder,size:l.size,maxLength:l.maxLength,tabIndex:l.tabIndex,disabled:l.disabled,invalid:l.invalid,readOnly:l.readOnly,onFocus:function(e){var n;l.readOnly||(b.current=!0,clearTimeout(O.current),y.current=f.current?f.current.value:"",n=N()||0,O.current=setTimeout((function(){f.current===document.activeElement&&(z(),n===l.mask.replace("?","").length?j(0,n):j(n),L())}),100),l.onFocus&&l.onFocus(e))},onBlur:A,onKeyDown:function(e){if(!l.readOnly){var n,r,t,u=e.which||e.keyCode;if(h.current=f.current.value,8===u||46===u||c.DomHandler.isIOS()&&127===u){if(!(n=j()))return;(t=n.end)-(r=n.begin)==0&&(r=46!==u?S(r):t=H(r-1),t=46===u?H(t):t),F(r,t),T(r,t-1),U(e),e.preventDefault()}else 13===u?(A(e),U(e)):27===u&&(f.current.value=y.current,j(0,N()),U(e),e.preventDefault())}},onKeyPress:function(e){if(!l.readOnly){var n=j();if(n){var r,t,u,a,i=e.which||e.keyCode;if(!(e.ctrlKey||e.altKey||e.metaKey||i<32)){if(i&&13!==i){if(n.end-n.begin!=0&&(F(n.begin,n.end),T(n.begin,n.end-1)),(r=H(n.begin-1))<g.current&&(t=String.fromCharCode(i),d.current[r].test(t))){if(_(r),m.current[r]=t,z(),u=H(r),c.DomHandler.isAndroid()){setTimeout((function(){j(u)}),0)}else j(u);n.begin<=v.current&&(a=P())}e.preventDefault()}U(e),l.onComplete&&a&&l.onComplete({originalEvent:e,value:M()})}}}},onInput:function(e){E.current?w(e):B(e)},onPaste:function(e){return B(e,!0)},required:l.required,tooltip:l.tooltip,tooltipOptions:l.tooltipOptions,pt:l.pt,unstyled:l.unstyled,__parentMetadata:{parent:x}}))})));return f.displayName="InputMask",e.InputMask=f,Object.defineProperty(e,"__esModule",{value:!0}),e}({},React,primereact.api,primereact.hooks,primereact.inputtext,primereact.utils,primereact.componentbase);