UNPKG

@progress/kendo-react-inputs

Version:

React Inputs offer a customizable interface for users to enter and pick different information. KendoReact Input package

9 lines (8 loc) 2.7 kB
/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const w=require("react"),a=require("prop-types"),o=require("@progress/kendo-react-common");function A(e){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const l=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(s,n,l.get?l:{enumerable:!0,get:()=>e[n]})}}return s.default=e,Object.freeze(s)}const t=A(w),d=t.forwardRef((e,s)=>{const n=t.useRef(null),l=t.useRef(null),c=t.useRef(void 0),f=o.useUnstyled(),i=f&&f.uTextBox,y=t.useCallback(()=>{var u;return c.current!==void 0?c.current:(u=n.current)==null?void 0:u.value},[]);t.useImperativeHandle(l,()=>({get element(){return n.current},get name(){return n.current&&n.current.name},get value(){return y()}})),t.useImperativeHandle(s,()=>l.current);const{size:m=r.size,fillMode:g=r.fillMode,rounded:v=r.rounded,autoFocus:B=r.autoFocus,inputAttributes:h,className:x,dir:F,style:_,prefix:O=r.prefix,suffix:T=r.suffix,valid:D,onFocus:p,onBlur:R,modified:I,touched:H,visited:G,...q}=e,[N]=o.useCustomComponent(O),[S]=o.useCustomComponent(T),[b,C]=t.useState(!1),j=u=>{C(!0)},E=u=>{C(!1)},M=t.useCallback(u=>{c.current=u.target.value,e.onChange&&e.onChange.call(void 0,{syntheticEvent:u,nativeEvent:u.nativeEvent,value:u.target.value,target:l.current}),c.current=void 0},[e.onChange]),{onFocus:P,onBlur:z}=o.useAsyncFocusBlur({onFocus:j,onBlur:E,onSyncFocus:p,onSyncBlur:R}),k=t.useMemo(()=>o.classNames(o.uTextBox.wrapper({c:i,rounded:v,fillMode:g,size:m,focused:b,required:e.required,disabled:e.disabled,invalid:e.valid===!1}),x),[x,g,b,e.disabled,e.required,e.valid,v,m,i]);return t.createElement("span",{style:_,dir:F,className:k,onFocus:P,onBlur:z},t.createElement(N,null),t.createElement("input",{ref:n,className:o.classNames(o.uTextBox.inputInner({c:i})),autoFocus:B,...Object.assign({},q,h),"aria-required":e.required,onChange:M}),t.createElement(S,null))}),r={prefix:e=>null,suffix:e=>null,size:"medium",rounded:"medium",fillMode:"solid",autoFocus:!1};d.propTypes={size:a.oneOf([null,"small","medium","large"]),rounded:a.oneOf([null,"small","medium","large","full"]),fillMode:a.oneOf([null,"solid","flat","outline"]),autoFocus:a.bool,inputAttributes:a.object};d.displayName="KendoReactTextBoxComponent";exports.TextBox=d;