monday-ui-react-core
Version:
Official monday.com UI resources for application development in React.js
3 lines (2 loc) • 2.31 kB
JavaScript
import{slicedToArray as e,defineProperty as t}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{__rest as a}from"../../../_virtual/_tslib.js";import r,{forwardRef as s,useMemo as l,useState as i,useCallback as o}from"react";import n from"classnames";import{getTestId as m}from"../../tests/testIds.js";import{ComponentDefaultTestId as d}from"../../tests/constants.js";import c from"./TextArea.module.scss.js";import u from"../Text/Text.js";import x from"../Flex/Flex.js";import p from"../HiddenText/HiddenText.js";var f={small:3,large:4},g=s((function(s,g){var h=s.size,b=void 0===h?"small":h,E=s.rows,v=s.label,T=s.helpText,j=s.success,y=s.error,N=s.className,C=s["data-testid"],w=s.id,A=s.disabled,_=s.readOnly,z=s.required,L=s.maxLength,O=s.allowExceedingMaxLength,q=s.onChange,F=s.value,H=s.resize,I=void 0===H||H,M=s.showCharCount,P=void 0!==M&&M,B=a(s,["size","rows","label","helpText","success","error","className","data-testid","id","disabled","readOnly","required","maxLength","allowExceedingMaxLength","onChange","value","resize","showCharCount"]),R=E||f[b],S=T&&"".concat(w,"-help-text"),W=O&&"".concat(w,"-allow-exceeding-max-length"),X=l((function(){return[S,W].filter((function(e){return!!e})).join(" ")||void 0}),[S,W]),k=i((null==F?void 0:F.length)||0),D=e(k,2),G=D[0],J=D[1],K=y||"number"==typeof L&&G>L,Q=o((function(e){J(e.target.value.length),null==q||q(e)}),[q]);return r.createElement("div",{className:n(c.textAreaWrapper,t(t(t(t({},c.error,K),c.success,j),c.disabled,A),c.readOnly,_),N),"data-testid":C||m(d.TEXT_AREA,w)},v&&r.createElement("label",{className:n(c.label,t({},c.required,z)),htmlFor:w},v),r.createElement("textarea",Object.assign({},B,{id:w,maxLength:"number"!=typeof L||O?void 0:L,ref:g,value:F,disabled:A,readOnly:_,required:z,rows:R,className:n(c.textArea,[c[b]],t({},c.resize,I)),"aria-invalid":K,"aria-describedby":X,onChange:Q})),(P||T)&&r.createElement(x,{gap:x.gaps.XS,justify:x.justify.SPACE_BETWEEN,className:n(c.subTextContainer)},T&&r.createElement(u,{className:n(c.helpText),color:u.colors.INHERIT,id:S},T),P&&r.createElement(r.Fragment,null,r.createElement(u,{className:c.limitText},G,"number"==typeof L&&"/".concat(L)),r.createElement(p,{id:W,text:"Maximum of ".concat(L," characters")}))))}));export{g as default};
//# sourceMappingURL=TextArea.js.map