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