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