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) 5.09 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/api"),r=require("primereact/componentbase"),n=require("primereact/hooks"),o=require("primereact/keyfilter"),i=require("primereact/tooltip"),l=require("primereact/utils");function a(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 u=a(e);function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},s.apply(null,arguments)}function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}function p(e,t){if("object"!=c(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=c(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function f(e){var t=p(e,"string");return"symbol"==c(t)?t:t+""}function y(e,t,r){return(t=f(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var d=r.ComponentBase.extend({defaultProps:{__TYPE:"InputTextarea",__parentMetadata:null,autoResize:!1,invalid:!1,variant:null,keyfilter:null,onBlur:null,onFocus:null,onBeforeInput:null,onInput:null,onKeyDown:null,onKeyUp:null,onPaste:null,tooltip:null,tooltipOptions:null,validateOnly:!1,children:void 0,className:null},css:{classes:{root:function(e){var t=e.props,r=e.context;return l.classNames("p-inputtextarea p-inputtext p-component",{"p-disabled":t.disabled,"p-filled":e.isFilled,"p-inputtextarea-resizable":t.autoResize,"p-invalid":t.invalid,"p-variant-filled":t.variant?"filled"===t.variant:r&&"filled"===r.inputStyle})}},styles:"\n@layer primereact {\n .p-inputtextarea-resizable {\n overflow: hidden;\n resize: none;\n }\n \n .p-fluid .p-inputtextarea {\n width: 100%;\n }\n}\n"}});function m(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function b(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?m(Object(r),!0).forEach((function(t){y(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):m(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var v=u.memo(u.forwardRef((function(e,a){var c=n.useMergeProps(),p=u.useContext(t.PrimeReactContext),f=d.getProps(e,p),y=u.useRef(a),m=u.useRef(0),v=d.setMetaData(b(b({props:f},f.__parentMetadata),{},{context:{disabled:f.disabled}})),O=v.ptm,g=v.cx;r.useHandleStyle(d.css.styles,v.isUnstyled,{name:"inputtextarea"});var h=function(e){var t=y.current;t&&j()&&(m.current||(m.current=t.scrollHeight,t.style.overflow="hidden"),(m.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",m.current=t.scrollHeight))},j=function(){if(l.DomHandler.isVisible(y.current)){var e=y.current.getBoundingClientRect();return e.width>0&&e.height>0}return!1};u.useEffect((function(){l.ObjectUtils.combinedRefs(y,a)}),[y,a]),u.useEffect((function(){f.autoResize&&h(!0)}),[f.autoResize,f.value]);var P=u.useMemo((function(){return l.ObjectUtils.isNotEmpty(f.value)||l.ObjectUtils.isNotEmpty(f.defaultValue)}),[f.value,f.defaultValue]),w=l.ObjectUtils.isNotEmpty(f.tooltip),x=c({ref:y,className:l.classNames(f.className,g("root",{context:p,isFilled:P})),onFocus:function(e){f.autoResize&&h(),f.onFocus&&f.onFocus(e)},onBlur:function(e){f.autoResize&&h(),f.onBlur&&f.onBlur(e)},onKeyUp:function(e){f.autoResize&&h(),f.onKeyUp&&f.onKeyUp(e)},onKeyDown:function(e){f.onKeyDown&&f.onKeyDown(e),f.keyfilter&&o.KeyFilter.onKeyPress(e,f.keyfilter,f.validateOnly)},onBeforeInput:function(e){f.onBeforeInput&&f.onBeforeInput(e),f.keyfilter&&o.KeyFilter.onBeforeInput(e,f.keyfilter,f.validateOnly)},onInput:function(e){var t=e.target;f.autoResize&&h(l.ObjectUtils.isEmpty(t.value)),f.onInput&&f.onInput(e),l.ObjectUtils.isNotEmpty(t.value)?l.DomHandler.addClass(t,"p-filled"):l.DomHandler.removeClass(t,"p-filled")},onPaste:function(e){f.onPaste&&f.onPaste(e),f.keyfilter&&o.KeyFilter.onPaste(e,f.keyfilter,f.validateOnly)}},d.getOtherProps(f),O("root"));return u.createElement(u.Fragment,null,u.createElement("textarea",x),w&&u.createElement(i.Tooltip,s({target:y,content:f.tooltip,pt:O("tooltip")},f.tooltipOptions)))})));v.displayName="InputTextarea",exports.InputTextarea=v;