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) • 2.4 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/tooltip"),r=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 o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var n=o(e);function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e},l.apply(this,arguments)}var i=n.memo(n.forwardRef((function(e,o){var a=n.useRef(o),u=n.useRef(0),s=function(e){var t=a.current;t&&r.DomHandler.isVisible(t)&&(u.current||(u.current=t.scrollHeight,t.style.overflow="hidden"),(u.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",u.current=t.scrollHeight))},c=a.current&&a.current.value,p=n.useMemo((function(){return r.ObjectUtils.isNotEmpty(e.value)||r.ObjectUtils.isNotEmpty(e.defaultValue)||r.ObjectUtils.isNotEmpty(c)}),[e.value,e.defaultValue,c]);n.useEffect((function(){r.ObjectUtils.combinedRefs(a,o)}),[a,o]),n.useEffect((function(){e.autoResize&&s(!0)}),[e.autoResize]);var f=r.ObjectUtils.isNotEmpty(e.tooltip),d=r.ObjectUtils.findDiffKeys(e,i.defaultProps),m=r.classNames("p-inputtextarea p-inputtext p-component",{"p-disabled":e.disabled,"p-filled":p,"p-inputtextarea-resizable":e.autoResize},e.className);return n.createElement(n.Fragment,null,n.createElement("textarea",l({ref:a},d,{className:m,onFocus:function(t){e.autoResize&&s(),e.onFocus&&e.onFocus(t)},onBlur:function(t){e.autoResize&&s(),e.onBlur&&e.onBlur(t)},onKeyUp:function(t){e.autoResize&&s(),e.onKeyUp&&e.onKeyUp(t)},onInput:function(t){e.autoResize&&s(),e.onInput&&e.onInput(t);var o=t.target;r.ObjectUtils.isNotEmpty(o.value)?r.DomHandler.addClass(o,"p-filled"):r.DomHandler.removeClass(o,"p-filled")}})),f&&n.createElement(t.Tooltip,l({target:a,content:e.tooltip},e.tooltipOptions)))})));i.displayName="InputTextarea",i.defaultProps={__TYPE:"InputTextarea",autoResize:!1,tooltip:null,tooltipOptions:null,onInput:null},exports.InputTextarea=i;