UNPKG

@progress/kendo-react-form

Version:

React Form is a small and fast package for form state management with zero dependencies. KendoReact Form package

9 lines (8 loc) 1.66 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 F=require("react"),p=require("./FormContext.js");function v(a){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(a){for(const o in a)if(o!=="default"){const l=Object.getOwnPropertyDescriptor(a,o);Object.defineProperty(e,o,l.get?l:{enumerable:!0,get:()=>a[o]})}}return e.default=a,Object.freeze(e)}const r=v(F),m=a=>{const{name:e,component:o,validator:l,children:i,onChange:c,...s}=a,t=r.useContext(p.FormContext),u=t?t.id:"";r.useEffect(()=>t?t.registerField(e,l):void 0,[e,u,l]);const h=r.useCallback(n=>{const b=n&&(n.value!==void 0?n.value:n.target?n.target.value:n.target);t.onChange(e,{value:b}),c&&c.call(void 0,n)},[e,u,c]),C=r.useCallback(n=>t.onChange(e,{value:n.target.value}),[e,u]),d=r.useCallback(()=>t.onBlur(e),[e,u]),g=r.useCallback(()=>t.onFocus(e),[e,u]);if(!t)return null;const f=t.valueGetter(e);return typeof o=="string"?r.createElement(o,{onChange:C,onBlur:d,onFocus:g,value:f,children:i,...s}):r.createElement(o,{children:i,...s,onChange:h,onBlur:d,onFocus:g,value:f,validationMessage:t.errors[e],touched:t.touched[e],modified:t.modified[e],visited:t.visited[e],valid:!(t.errors[e]&&t.touched[e]),name:e})};m.displayName="KendoReactField";exports.Field=m;