UNPKG

primereact

Version:

PrimeReact is an open source UI library for React featuring a rich set of 80+ 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.38 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("primereact/hooks"),n=require("primereact/inputtext"),t=require("primereact/utils");function u(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 c=u(e);function a(){return a=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},a.apply(this,arguments)}var l=c.memo(c.forwardRef((function(e,u){var o=c.useRef(u),i=c.useRef(null),s=c.useRef(0),f=c.useRef([]),v=c.useRef([]),d=c.useRef(0),g=c.useRef(null),p=c.useRef(!1),m=c.useRef(null),h=c.useRef(null),b=c.useRef(null),y=c.useRef(null),k=c.useRef(null),C=c.useRef(!1),R=function(e,r){var n,t,u,c=o.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())))},O=function(){for(var e=i.current;e<=s.current;e++)if(f.current[e]&&v.current[e]===E(e))return!1;return!0},E=c.useCallback((function(r){return e.slotChar.charAt(r<e.slotChar.length?r:0)}),[e.slotChar]),x=function(){return e.unmask?S():o.current&&o.current.value},j=function(e){for(;++e<d.current&&!f.current[e];);return e},D=function(e){for(;--e>=0&&!f.current[e];);return e},P=function(e,r){var n,t;if(!(e<0)){for(n=e,t=j(r);n<d.current;n++)if(f.current[n]){if(!(t<d.current&&f.current[n].test(v.current[t])))break;v.current[n]=v.current[t],v.current[t]=E(t),t=j(t)}q(),R(Math.max(i.current,e))}},I=function(e){var r,n,t,u;for(r=e,n=E(e);r<d.current;r++)if(f.current[r]){if(t=j(r),u=v.current[r],v.current[r]=n,!(t<d.current&&f.current[t].test(u)))break;n=u}},T=function(r){var n=o.current.value,t=R();if(g.current.length&&g.current.length>n.length){for(w(!0);t.begin>0&&!f.current[t.begin-1];)t.begin--;if(0===t.begin)for(;t.begin<i.current&&!f.current[t.begin];)t.begin++;R(t.begin,t.begin)}else{for(w(!0);t.begin<d.current&&!f.current[t.begin];)t.begin++;R(t.begin,t.begin)}e.onComplete&&O()&&e.onComplete({originalEvent:r,value:x()}),U(r)},A=function(r){if(p.current=!1,w(),U(r),_(),e.onBlur&&e.onBlur(r),o.current.value!==m.current){var n=document.createEvent("HTMLEvents");n.initEvent("change",!0,!1),o.current.dispatchEvent(n)}},M=function(e,r){var n;for(n=e;n<r&&n<d.current;n++)f.current[n]&&(v.current[n]=E(n))},q=function(){o.current.value=v.current.join("")},w=function(r){h.current=!0;var n,t,u,c=o.current.value,a=-1;for(n=0,u=0;n<d.current;n++)if(f.current[n]){for(v.current[n]=E(n);u++<c.length;)if(t=c.charAt(u-1),f.current[n].test(t)){v.current[n]=t,a=n;break}if(u>c.length){M(n+1,d.current);break}}else v.current[n]===c.charAt(u)&&u++,n<b.current&&(a=n);return r?q():a+1<b.current?e.autoClear||v.current.join("")===y.current?(o.current.value&&(o.current.value=""),M(0,d.current)):q():(q(),o.current.value=o.current.value.substring(0,a+1)),b.current?n:i.current},H=function(r){if(!e.readOnly){var n=w(!0);R(n),U(r),e.onComplete&&O()&&e.onComplete({originalEvent:r,value:x()})}},S=c.useCallback((function(){for(var e=[],r=0;r<v.current.length;r++){var n=v.current[r];f.current[r]&&n!==E(r)&&e.push(n)}return e.join("")}),[E]),U=function(r){if(e.onChange){var n=e.unmask?S():r&&r.target.value;e.onChange({originalEvent:r,value:y.current!==n?n:"",stopPropagation:function(){},preventDefault:function(){},target:{name:e.name,id:e.id,value:y.current!==n?n:""}})}},_=function(){o.current&&o.current.value&&o.current.value.length>0?t.DomHandler.addClass(o.current,"p-filled"):t.DomHandler.removeClass(o.current,"p-filled")},z=function(r){var n;return o.current&&(null==e.value?o.current.value="":(o.current.value=e.value,n=w(r),setTimeout((function(){if(o.current)return q(),w(r)}),10)),m.current=o.current.value),_(),n},K=c.useCallback((function(){return e.unmask?e.value!==S():y.current!==o.current.value&&o.current.value!==e.value}),[e.unmask,e.value,S]),N=function(){if(e.mask){f.current=[],b.current=e.mask.length,d.current=e.mask.length,i.current=null;var r={9:"[0-9]",a:"[A-Za-z]","*":"[A-Za-z0-9]"},n=t.DomHandler.getUserAgent();C.current=/chrome/i.test(n)&&/android/i.test(n);for(var u=e.mask.split(""),c=0;c<u.length;c++){var a=u[c];"?"===a?(d.current--,b.current=c):r[a]?(f.current.push(new RegExp(r[a])),null===i.current&&(i.current=f.current.length-1),c<b.current&&(s.current=f.current.length-1)):f.current.push(null)}v.current=[];for(var l=0;l<u.length;l++){var o=u[l];"?"!==o&&v.current.push(r[o]?E(l):o)}y.current=v.current.join("")}};c.useImperativeHandle(u,(function(){return{props:e,getElement:function(){return o.current}}})),c.useEffect((function(){t.ObjectUtils.combinedRefs(o,u)}),[o,u]),r.useMountEffect((function(){N(),z()})),r.useUpdateEffect((function(){N(),R(z(!0)),e.unmask&&U()}),[e.mask]),r.useUpdateEffect((function(){K()&&z()}),[K]);var B=t.ObjectUtils.findDiffKeys(e,l.defaultProps),F=t.classNames("p-inputmask",e.className);return c.createElement(n.InputText,a({ref:o,id:e.id,type:e.type,name:e.name,style:e.style,className:F},B,{placeholder:e.placeholder,size:e.size,maxLength:e.maxLength,tabIndex:e.tabIndex,disabled:e.disabled,readOnly:e.readOnly,onFocus:function(r){var n;e.readOnly||(p.current=!0,clearTimeout(k.current),m.current=o.current.value,n=w(),k.current=setTimeout((function(){o.current===document.activeElement&&(q(),n===e.mask.replace("?","").length?R(0,n):R(n),_())}),10),e.onFocus&&e.onFocus(r))},onBlur:A,onKeyDown:function(r){if(!e.readOnly){var n,u,c,a=r.which||r.keyCode,l=/iphone/i.test(t.DomHandler.getUserAgent());g.current=o.current.value,8===a||46===a||l&&127===a?((c=(n=R()).end)-(u=n.begin)==0&&(u=46!==a?D(u):c=j(u-1),c=46===a?j(c):c),M(u,c),P(u,c-1),U(r),r.preventDefault()):13===a?(A(r),U(r)):27===a&&(o.current.value=m.current,R(0,w()),U(r),r.preventDefault())}},onKeyPress:function(r){if(!e.readOnly){var n,u,c,a,l=r.which||r.keyCode,o=R();if(!(r.ctrlKey||r.altKey||r.metaKey||l<32)){if(l&&13!==l){if(o.end-o.begin!=0&&(M(o.begin,o.end),P(o.begin,o.end-1)),(n=j(o.begin-1))<d.current&&(u=String.fromCharCode(l),f.current[n].test(u))){if(I(n),v.current[n]=u,q(),c=j(n),/android/i.test(t.DomHandler.getUserAgent())){setTimeout((function(){R(c)}),0)}else R(c);o.begin<=s.current&&(a=O())}r.preventDefault()}U(r),e.onComplete&&a&&e.onComplete({originalEvent:r,value:x()})}}},onInput:function(e){C.current?T(e):H(e)},onPaste:H,required:e.required,tooltip:e.tooltip,tooltipOptions:e.tooltipOptions}))})));l.displayName="InputMask",l.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},exports.InputMask=l;