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) 2.36 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 j=require("react"),l=require("@progress/kendo-react-common"),n=require("./utils.js");function M(t){const a=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const s in t)if(s!=="default"){const c=Object.getOwnPropertyDescriptor(t,s);Object.defineProperty(a,s,c.get?c:{enumerable:!0,get:()=>t[s]})}}return a.default=t,Object.freeze(a)}const e=M(j),i={rows:"0px",cols:"16px"},T=e.forwardRef((t,a)=>{const s=e.useRef(null),c=e.useRef(null);e.useImperativeHandle(c,()=>({element:s.current,props:t})),e.useImperativeHandle(a,()=>c.current);const{className:C,style:U,cols:d,colSpan:y,gutters:m=i,legend:F,...O}=t,p=l.useUnstyled(),o=p&&p.uForm,[E,b]=e.useState(void 0),[w,N]=e.useState(void 0),[G,v]=e.useState(void 0),L=e.useMemo(()=>l.classNames(l.uForm.fieldset({c:o}),w,C),[C,o,w]),_=e.useMemo(()=>l.classNames(l.uForm.formLayout({c:o}),E),[o,E]),h=e.useMemo(()=>l.classNames(l.uForm.legend({c:o})),[o]),f=e.useRef(null);return e.useEffect(()=>{s.current&&(f.current=s.current.closest("form"))},[]),e.useEffect(()=>{if(!d){b(void 0);return}if(!m){v(void 0);return}const r=f==null?void 0:f.current,R=()=>{let u=0;r?u=n.innerWidth(r):typeof window!="undefined"&&(u=window.innerWidth);const D=n.calculateColumns(d,u);if(b(n.generateColumnClass(D)),y!==void 0){const g=n.calculateColSpan(y,u);N(n.generateColSpanClass(g))}else N(void 0);if(m){const g=n.calculateGutters(m,u);v(g?{gap:n.generateGuttersStyling(g,i)}:{gap:n.generateGuttersStyling(i,i)})}};R();let S;return r&&typeof window!="undefined"&&"ResizeObserver"in window&&(S=new ResizeObserver(R),S.observe(r)),()=>{S&&r&&S.unobserve(r)}},[d,y,m]),e.createElement("fieldset",{ref:s,...O,style:t.style,className:L},F&&e.createElement("legend",{className:h},F),d?e.createElement("div",{className:_,style:G},t.children):t.children)});T.displayName="KendoReactFormFieldSet";exports.DEFAULT_FIELDSET_GUTTERS=i;exports.FormFieldSet=T;