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) 1.63 kB
import*as e from"react";import{KeyFilter as t}from"primereact/keyfilter";import{Tooltip as n}from"primereact/tooltip";import{ObjectUtils as l,classNames as o,DomHandler as r}from"primereact/utils";function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var l in n)Object.prototype.hasOwnProperty.call(n,l)&&(e[l]=n[l])}return e},a.apply(this,arguments)}var i=e.memo(e.forwardRef((function(s,p){var u=e.useRef(p),f=u.current&&u.current.value,m=e.useMemo((function(){return l.isNotEmpty(s.value)||l.isNotEmpty(s.defaultValue)||l.isNotEmpty(f)}),[s.value,s.defaultValue,f]);e.useEffect((function(){l.combinedRefs(u,p)}),[u,p]);var c=l.isNotEmpty(s.tooltip),y=l.findDiffKeys(s,i.defaultProps),d=o("p-inputtext p-component",{"p-disabled":s.disabled,"p-filled":m},s.className);return e.createElement(e.Fragment,null,e.createElement("input",a({ref:u},y,{className:d,onInput:function(e){var n=!0;if(s.keyfilter&&s.validateOnly&&(n=t.validate(e,s.keyfilter)),s.onInput&&s.onInput(e,n),!s.onChange){var o=e.target;l.isNotEmpty(o.value)?r.addClass(o,"p-filled"):r.removeClass(o,"p-filled")}},onKeyPress:function(e){s.onKeyPress&&s.onKeyPress(e),s.keyfilter&&t.onKeyPress(e,s.keyfilter,s.validateOnly)},onPaste:function(e){s.onPaste&&s.onPaste(e),s.keyfilter&&t.onPaste(e,s.keyfilter,s.validateOnly)}})),c&&e.createElement(n,a({target:u,content:s.tooltip},s.tooltipOptions)))})));i.displayName="InputText",i.defaultProps={__TYPE:"InputText",keyfilter:null,validateOnly:!1,tooltip:null,tooltipOptions:null,onInput:null,onKeyPress:null,onPaste:null};export{i as InputText};