import{r as s,M as R,bZ as T,a8 as U,j as l,a$ as k,bc as A,b0 as P,aL as B,b1 as D}from"./index.DXat8gQf.js";import{u as j}from"./uniqueId.Dme_RYod.js";import{u as _,a as $,b as K}from"./useOnInputChange.8aWa7n-i.js";import{I as O}from"./InputInstructions.BohKIZFT.js";import{a as q}from"./useBasicWidgetState.BrxTjxxP.js";import{T as G}from"./textarea.B7FAzJHc.js";import"./inputUtils.CQWz5UKz.js";import"./FormClearHelper.DWef4hWz.js";import"./base-input.CTx0gvzT.js";const W=(a,t)=>a.getStringValue(t)??t.default??null,N=a=>a.default??null,Z=a=>a.value??null,w=(a,t,o,u)=>{t.setStringValue(a,o.value,{fromUi:o.fromUi},u)},J=({disabled:a,element:t,widgetMgr:o,fragmentId:u,width:h})=>{var x;const g=s.useRef(j("text_area_")).current,[r,n]=s.useState(!1),[S,b]=s.useState(!1),[i,d]=s.useState(W(o,t)??null),y=s.useCallback(()=>{d(t.default??null),n(!0)},[t]),[I,c]=q({getStateFromWidgetMgr:W,getDefaultStateFromProto:N,getCurrStateFromProto:Z,updateWidgetMgrState:w,element:t,widgetMgr:o,fragmentId:u,onFormCleared:y});_(I,i,d,r);const e=R(),p=s.useCallback(()=>{n(!1),c({value:i,fromUi:!0})},[i,c]),V=s.useCallback(()=>{r&&p(),b(!1)},[r,p]),C=s.useCallback(()=>{b(!0)},[]),F=$({formId:t.formId,maxChars:t.maxChars,setDirty:n,setUiValue:d,setValueWithSource:c}),v=K(t.formId,p,r,o,u,!0),E={width:h},{height:f,placeholder:z,formId:m}=t,H=T({formId:m})?o.allowFormEnterToSubmit(m):r,L=S&&h>e.breakpoints.hideWidgetDetails;return U("div",{className:"stTextArea","data-testid":"stTextArea",style:E,children:[l(D,{label:t.label,disabled:a,labelVisibility:k((x=t.labelVisibility)==null?void 0:x.value),htmlFor:g,children:t.help&&l(A,{children:l(P,{content:t.help,placement:B.TOP_RIGHT})})}),l(G,{value:i??"",placeholder:z,onBlur:V,onFocus:C,onChange:F,onKeyDown:v,"aria-label":t.label,disabled:a,id:g,overrides:{Input:{style:{lineHeight:e.lineHeights.inputWidget,height:f?`${f}px`:"",minHeight:e.sizes.largestElementHeight,resize:"vertical","::placeholder":{opacity:"0.7"},paddingRight:e.spacing.lg,paddingLeft:e.spacing.lg,paddingBottom:e.spacing.lg,paddingTop:e.spacing.lg}},Root:{props:{"data-testid":"stTextAreaRootElement"},style:{borderLeftWidth:e.sizes.borderWidth,borderRightWidth:e.sizes.borderWidth,borderTopWidth:e.sizes.borderWidth,borderBottomWidth:e.sizes.borderWidth}}}}),L&&l(O,{dirty:r,value:i??"",maxLength:t.maxChars,type:"multiline",inForm:T({formId:m}),allowEnterToSubmit:H})]})},rt=s.memo(J);export{rt as default};
