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) 2.92 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/keyfilter"),r=require("primereact/tooltip"),n=require("primereact/utils");function o(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var l=o(e);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},i.apply(this,arguments)}var a={defaultProps:{__TYPE:"InputTextarea",autoResize:!1,keyfilter:null,onBlur:null,onFocus:null,onInput:null,onKeyDown:null,onKeyUp:null,onPaste:null,tooltip:null,tooltipOptions:null,validateOnly:!1,children:void 0},getProps:function(e){return n.ObjectUtils.getMergedProps(e,a.defaultProps)},getOtherProps:function(e){return n.ObjectUtils.getDiffProps(e,a.defaultProps)}},u=l.memo(l.forwardRef((function(e,o){var u=a.getProps(e),s=l.useRef(o),c=l.useRef(0),p=function(e){var t=s.current;t&&n.DomHandler.isVisible(t)&&(c.current||(c.current=t.scrollHeight,t.style.overflow="hidden"),(c.current!==t.scrollHeight||e)&&(t.style.height="",t.style.height=t.scrollHeight+"px",parseFloat(t.style.height)>=parseFloat(t.style.maxHeight)?(t.style.overflowY="scroll",t.style.height=t.style.maxHeight):t.style.overflow="hidden",c.current=t.scrollHeight))},f=s.current&&s.current.value,y=l.useMemo((function(){return n.ObjectUtils.isNotEmpty(u.value)||n.ObjectUtils.isNotEmpty(u.defaultValue)||n.ObjectUtils.isNotEmpty(f)}),[u.value,u.defaultValue,f]);l.useEffect((function(){n.ObjectUtils.combinedRefs(s,o)}),[s,o]),l.useEffect((function(){u.autoResize&&p(!0)}),[u.autoResize]);var d=n.ObjectUtils.isNotEmpty(u.tooltip),m=a.getOtherProps(u),g=n.classNames("p-inputtextarea p-inputtext p-component",{"p-disabled":u.disabled,"p-filled":y,"p-inputtextarea-resizable":u.autoResize},u.className);return l.createElement(l.Fragment,null,l.createElement("textarea",i({ref:s},m,{className:g,onFocus:function(e){u.autoResize&&p(),u.onFocus&&u.onFocus(e)},onBlur:function(e){u.autoResize&&p(),u.onBlur&&u.onBlur(e)},onKeyUp:function(e){u.autoResize&&p(),u.onKeyUp&&u.onKeyUp(e)},onKeyDown:function(e){u.onKeyDown&&u.onKeyDown(e),u.keyfilter&&t.KeyFilter.onKeyPress(e,u.keyfilter,u.validateOnly)},onInput:function(e){u.autoResize&&p(),u.onInput&&u.onInput(e);var t=e.target;n.ObjectUtils.isNotEmpty(t.value)?n.DomHandler.addClass(t,"p-filled"):n.DomHandler.removeClass(t,"p-filled")},onPaste:function(e){u.onPaste&&u.onPaste(e),u.keyfilter&&t.KeyFilter.onPaste(e,u.keyfilter,u.validateOnly)}})),d&&l.createElement(r.Tooltip,i({target:s,content:u.tooltip},u.tooltipOptions)))})));u.displayName="InputTextarea",exports.InputTextarea=u;