@fairys/valtio-form-basic 0.0.12 → 0.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/esm/{form → common}/hooks/index.d.ts +1 -0
  2. package/esm/{form → common}/hooks/index.js +9 -1
  3. package/esm/common/index.d.ts +4 -0
  4. package/esm/common/index.js +4 -0
  5. package/esm/{form → common}/instance/index.d.ts +9 -2
  6. package/esm/{form → common}/instance/index.js +19 -5
  7. package/esm/{form → common}/utils/index.d.ts +1 -0
  8. package/esm/{form → common}/utils/index.js +2 -1
  9. package/esm/form/form.d.ts +7 -7
  10. package/esm/form/form.item.d.ts +10 -3
  11. package/esm/form/form.item.js +50 -32
  12. package/esm/form/form.js +5 -3
  13. package/esm/form/layout.d.ts +4 -2591
  14. package/esm/form/layout.js +7 -4
  15. package/esm/index.d.ts +1 -2
  16. package/esm/index.js +1 -2
  17. package/esm/styles/index.css +20 -4
  18. package/lib/common/hooks/index.d.ts +35 -0
  19. package/lib/common/hooks/index.js +117 -0
  20. package/lib/common/index.d.ts +4 -0
  21. package/lib/common/index.js +87 -0
  22. package/lib/common/instance/index.d.ts +88 -0
  23. package/lib/common/instance/index.js +243 -0
  24. package/lib/common/interface.d.ts +4 -0
  25. package/lib/common/interface.js +18 -0
  26. package/lib/common/utils/index.d.ts +25 -0
  27. package/lib/common/utils/index.js +107 -0
  28. package/lib/form/form.d.ts +76 -0
  29. package/lib/form/form.item.d.ts +224 -0
  30. package/lib/form/form.item.js +321 -0
  31. package/lib/form/form.js +53 -0
  32. package/lib/form/layout.d.ts +153 -0
  33. package/lib/form/layout.js +196 -0
  34. package/lib/index.d.ts +4 -0
  35. package/lib/index.js +18 -27
  36. package/lib/styles/index.css +308 -0
  37. package/package.json +5 -5
  38. package/src/{form → common}/hooks/index.tsx +9 -1
  39. package/src/common/index.ts +4 -0
  40. package/src/{form → common}/instance/index.ts +51 -13
  41. package/src/{form → common}/utils/index.ts +2 -0
  42. package/src/form/form.item.tsx +59 -36
  43. package/src/form/form.tsx +12 -7
  44. package/src/form/layout.tsx +9 -3
  45. package/src/index.tsx +4 -5
  46. /package/esm/{interface.d.ts → common/interface.d.ts} +0 -0
  47. /package/esm/{interface.js → common/interface.js} +0 -0
  48. /package/src/{interface.ts → common/interface.ts} +0 -0
@@ -0,0 +1,243 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.n = (module)=>{
5
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
6
+ __webpack_require__.d(getter, {
7
+ a: getter
8
+ });
9
+ return getter;
10
+ };
11
+ })();
12
+ (()=>{
13
+ __webpack_require__.d = (exports1, definition)=>{
14
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
15
+ enumerable: true,
16
+ get: definition[key]
17
+ });
18
+ };
19
+ })();
20
+ (()=>{
21
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
22
+ })();
23
+ (()=>{
24
+ __webpack_require__.r = (exports1)=>{
25
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
26
+ value: 'Module'
27
+ });
28
+ Object.defineProperty(exports1, '__esModule', {
29
+ value: true
30
+ });
31
+ };
32
+ })();
33
+ var __webpack_exports__ = {};
34
+ __webpack_require__.r(__webpack_exports__);
35
+ __webpack_require__.d(__webpack_exports__, {
36
+ FairysValtioFormInstance: ()=>FairysValtioFormInstance,
37
+ useFairysValtioFormInstanceContextState: ()=>useFairysValtioFormInstanceContextState,
38
+ useFairysValtioFormInstance: ()=>useFairysValtioFormInstance,
39
+ FairysValtioFormInstanceContext: ()=>FairysValtioFormInstanceContext,
40
+ useFairysValtioFormInstanceContext: ()=>useFairysValtioFormInstanceContext,
41
+ useFairysValtioFormInstanceContextHideState: ()=>useFairysValtioFormInstanceContextHideState
42
+ });
43
+ const external_react_namespaceObject = require("react");
44
+ const external_valtio_namespaceObject = require("valtio");
45
+ const external_async_validator_namespaceObject = require("async-validator");
46
+ var external_async_validator_default = /*#__PURE__*/ __webpack_require__.n(external_async_validator_namespaceObject);
47
+ const external_fast_copy_namespaceObject = require("fast-copy");
48
+ const index_js_namespaceObject = require("../utils/index.js");
49
+ class FairysValtioFormInstance {
50
+ isValtioProxy = (value)=>{
51
+ const { refSet } = (0, external_valtio_namespaceObject.unstable_getInternalStates)();
52
+ const canProxyDefault = (x)=>(0, index_js_namespaceObject.isObject)(x) && !refSet.has(x) && (Array.isArray(x) || !(Symbol.iterator in x)) && !(x instanceof WeakMap) && !(x instanceof WeakSet) && !(x instanceof Error) && !(x instanceof Number) && !(x instanceof Date) && !(x instanceof String) && !(x instanceof RegExp) && !(x instanceof ArrayBuffer) && !(x instanceof Promise);
53
+ return canProxyDefault(value);
54
+ };
55
+ state = (0, external_valtio_namespaceObject.proxy)({});
56
+ errorState = (0, external_valtio_namespaceObject.proxy)({});
57
+ hideState = (0, external_valtio_namespaceObject.proxy)({});
58
+ ctor = (options)=>{
59
+ const { formData, hideState, initFormDataType = 'deepCopy' } = options || {};
60
+ this.mountRules = {};
61
+ this.nameToPaths = {};
62
+ this.errorState = (0, external_valtio_namespaceObject.proxy)({});
63
+ this.hideState = (0, external_valtio_namespaceObject.proxy)(hideState ? (0, external_fast_copy_namespaceObject.copy)(hideState) : {});
64
+ const isValtioProxy = this.isValtioProxy(formData);
65
+ if (isValtioProxy) if ('deepCopy' === initFormDataType) this.state = (0, external_valtio_namespaceObject.proxy)((0, external_fast_copy_namespaceObject.copy)((0, external_valtio_namespaceObject.snapshot)(formData)));
66
+ else this.state = formData;
67
+ else {
68
+ if ('deepCopy' === initFormDataType) this.state = (0, external_valtio_namespaceObject.proxy)((0, external_fast_copy_namespaceObject.copy)(formData || {}));
69
+ this.state = (0, external_valtio_namespaceObject.proxy)(formData || {});
70
+ }
71
+ };
72
+ updated = (state, isValidate = true)=>{
73
+ const keys = Object.keys(state);
74
+ for(let index = 0; index < keys.length; index++){
75
+ const key = keys[index];
76
+ this.state[key] = state[key];
77
+ }
78
+ if (isValidate) this.validate(keys, false);
79
+ };
80
+ updatedValueByPaths = (path, value)=>{
81
+ (0, index_js_namespaceObject.set)(this.state, (0, index_js_namespaceObject.formatePath)(path), value);
82
+ this.validate([
83
+ path
84
+ ], false);
85
+ };
86
+ updatedHideInfo = (objectHideInfo)=>{
87
+ const keys = Object.keys(objectHideInfo);
88
+ for(let index = 0; index < keys.length; index++){
89
+ const field = keys[index];
90
+ this.hideState[field] = objectHideInfo[field];
91
+ }
92
+ return this;
93
+ };
94
+ clearHideInfo = (fields)=>{
95
+ let _fields = fields;
96
+ if (!Array.isArray(fields)) _fields = Object.keys(this.hideState);
97
+ for(let index = 0; index < _fields.length; index++){
98
+ const field = _fields[index];
99
+ delete this.hideState[field];
100
+ }
101
+ return this;
102
+ };
103
+ updatedErrorInfo = (objectErrorInfo)=>{
104
+ const keys = Object.keys(objectErrorInfo);
105
+ for(let index = 0; index < keys.length; index++){
106
+ const field = keys[index];
107
+ this.errorState[field] = objectErrorInfo[field];
108
+ }
109
+ return this;
110
+ };
111
+ clearErrorInfo = (fields)=>{
112
+ let _fields = fields;
113
+ if (!Array.isArray(fields)) _fields = Object.keys(this.errorState);
114
+ for(let index = 0; index < _fields.length; index++){
115
+ const field = _fields[index];
116
+ delete this.errorState[field];
117
+ }
118
+ return this;
119
+ };
120
+ clear = ()=>{
121
+ this.state = (0, external_valtio_namespaceObject.proxy)({});
122
+ this.errorState = (0, external_valtio_namespaceObject.proxy)({});
123
+ this.hideState = (0, external_valtio_namespaceObject.proxy)({});
124
+ this.mountRules = {};
125
+ this.rules = {};
126
+ this.nameToPaths = {};
127
+ };
128
+ mountRules = {};
129
+ removeRules = (name)=>{
130
+ delete this.mountRules[name];
131
+ };
132
+ rules = {};
133
+ nameToPaths = {};
134
+ validate = async (fields, isReturn = true)=>{
135
+ const rules = {
136
+ ...this.rules,
137
+ ...this.mountRules
138
+ };
139
+ const _formData = (0, external_valtio_namespaceObject.snapshot)(this.state);
140
+ const _values = {};
141
+ let _fields = Object.keys(rules);
142
+ let _lastRules = {};
143
+ let isPropsFields = false;
144
+ if (Array.isArray(fields) && fields.length) {
145
+ _fields = [
146
+ ...fields
147
+ ];
148
+ isPropsFields = true;
149
+ for(let index = 0; index < fields.length; index++){
150
+ const field = fields[index];
151
+ const paths = this.nameToPaths[field];
152
+ _lastRules[field] = rules[field];
153
+ _values[field] = (0, index_js_namespaceObject.get)(_formData, paths ? paths : (0, index_js_namespaceObject.formatePath)(field));
154
+ }
155
+ } else {
156
+ isPropsFields = false;
157
+ _lastRules = {
158
+ ...rules
159
+ };
160
+ for(let index = 0; index < _fields.length; index++){
161
+ const field = _fields[index];
162
+ const paths = this.nameToPaths[field];
163
+ _values[field] = (0, index_js_namespaceObject.get)(_formData, paths);
164
+ }
165
+ }
166
+ return new Promise((resolve, reject)=>{
167
+ new (external_async_validator_default())({
168
+ ...rules
169
+ }).validate({
170
+ ..._values
171
+ }, (errors, fields)=>{
172
+ for(let index = 0; index < _fields.length; index++){
173
+ const field = _fields[index];
174
+ const fidError = Array.isArray(errors) ? errors.filter((item)=>item.field === field) : void 0;
175
+ if (fidError) this.errorState[field] = (0, external_valtio_namespaceObject.ref)(fidError.map((item)=>item.message || ''));
176
+ else delete this.errorState[field];
177
+ }
178
+ if (isReturn) if (errors) reject({
179
+ errors,
180
+ fields
181
+ });
182
+ else isPropsFields ? resolve({
183
+ ...fields
184
+ }) : resolve({
185
+ ..._formData
186
+ });
187
+ });
188
+ });
189
+ };
190
+ validatePrefixFields = async (prefix, isReturn = true)=>{
191
+ const fields = Object.keys(this.rules);
192
+ const _fields = fields.filter((item)=>prefix.some((p)=>item.toString().startsWith(p)));
193
+ return this.validate(_fields, isReturn);
194
+ };
195
+ }
196
+ function useFairysValtioFormInstance(instance) {
197
+ const ref = (0, external_react_namespaceObject.useRef)();
198
+ if (!ref.current) if (instance) ref.current = instance;
199
+ else ref.current = new FairysValtioFormInstance();
200
+ return ref.current;
201
+ }
202
+ const FairysValtioFormInstanceContext = (0, external_react_namespaceObject.createContext)(new FairysValtioFormInstance());
203
+ function useFairysValtioFormInstanceContext() {
204
+ return (0, external_react_namespaceObject.useContext)(FairysValtioFormInstanceContext);
205
+ }
206
+ function useFairysValtioFormInstanceContextState() {
207
+ const instance = useFairysValtioFormInstanceContext();
208
+ const state = (0, external_valtio_namespaceObject.useSnapshot)(instance.state);
209
+ const errorState = (0, external_valtio_namespaceObject.useSnapshot)(instance.errorState);
210
+ return [
211
+ state,
212
+ errorState,
213
+ instance,
214
+ state.__defaultValue,
215
+ errorState.__defaultValue
216
+ ];
217
+ }
218
+ function useFairysValtioFormInstanceContextHideState() {
219
+ const instance = useFairysValtioFormInstanceContext();
220
+ const hideState = (0, external_valtio_namespaceObject.useSnapshot)(instance.hideState);
221
+ return [
222
+ hideState,
223
+ instance,
224
+ hideState.__defaultValue
225
+ ];
226
+ }
227
+ exports.FairysValtioFormInstance = __webpack_exports__.FairysValtioFormInstance;
228
+ exports.FairysValtioFormInstanceContext = __webpack_exports__.FairysValtioFormInstanceContext;
229
+ exports.useFairysValtioFormInstance = __webpack_exports__.useFairysValtioFormInstance;
230
+ exports.useFairysValtioFormInstanceContext = __webpack_exports__.useFairysValtioFormInstanceContext;
231
+ exports.useFairysValtioFormInstanceContextHideState = __webpack_exports__.useFairysValtioFormInstanceContextHideState;
232
+ exports.useFairysValtioFormInstanceContextState = __webpack_exports__.useFairysValtioFormInstanceContextState;
233
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
234
+ "FairysValtioFormInstance",
235
+ "FairysValtioFormInstanceContext",
236
+ "useFairysValtioFormInstance",
237
+ "useFairysValtioFormInstanceContext",
238
+ "useFairysValtioFormInstanceContextHideState",
239
+ "useFairysValtioFormInstanceContextState"
240
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
241
+ Object.defineProperty(exports, '__esModule', {
242
+ value: true
243
+ });
@@ -0,0 +1,4 @@
1
+ export type MObject<T> = {
2
+ [K in keyof T]: T[K];
3
+ };
4
+ export type MakeFieldRequired<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.r = (exports1)=>{
5
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
6
+ value: 'Module'
7
+ });
8
+ Object.defineProperty(exports1, '__esModule', {
9
+ value: true
10
+ });
11
+ };
12
+ })();
13
+ var __webpack_exports__ = {};
14
+ __webpack_require__.r(__webpack_exports__);
15
+ for(var __webpack_i__ in __webpack_exports__)exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
16
+ Object.defineProperty(exports, '__esModule', {
17
+ value: true
18
+ });
@@ -0,0 +1,25 @@
1
+ /***
2
+ * 设置值
3
+ * @param object 任意对象
4
+ * @param paths 值路径
5
+ * @param nextValue 新值
6
+ *
7
+ * @description
8
+ * 值不存在时,当 paths 路径中的值为 number 类型时,会创建一个空数组。当 paths 路径中的值为 string 类型时,会创建一个空对象。
9
+ */
10
+ export declare function set<T>(state: any, paths: PropertyKey[], nextValue: T): any;
11
+ /***
12
+ * 获取值
13
+ * @param value 任意值
14
+ * @param segments 键路径
15
+ */
16
+ export declare function get<TDefault = unknown>(value: any, segments: PropertyKey[]): TDefault;
17
+ /***
18
+ * 格式化路径,将路径中的数组索引转换为数字
19
+ * @param path 路径
20
+ * @returns 格式化后的路径
21
+ */
22
+ export declare function formatePath(path: PropertyKey): (number | symbol)[] | (string | number)[];
23
+ /**格式化属性名*/
24
+ export declare function formateName(name?: string, parentName?: string): string;
25
+ export declare const isObject: (x: unknown) => x is object;
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ formateName: ()=>formateName,
28
+ formatePath: ()=>formatePath,
29
+ get: ()=>get,
30
+ isObject: ()=>isObject,
31
+ set: ()=>set
32
+ });
33
+ function set(state, paths, nextValue) {
34
+ const _keys = [
35
+ ...paths
36
+ ];
37
+ let current = state;
38
+ const length = _keys.length - 1;
39
+ for(let i = 0; i <= length; i++){
40
+ const key = _keys[i];
41
+ const _current = current[key];
42
+ const nextKey = _keys[i + 1];
43
+ if (void 0 === _current && 'number' == typeof nextKey) current[key] = [];
44
+ else if (void 0 === _current && 'string' == typeof nextKey) current[key] = {};
45
+ if (i === length) current[key] = nextValue;
46
+ else current = current[key];
47
+ }
48
+ return state;
49
+ }
50
+ function get(value, segments) {
51
+ let current = value;
52
+ for (const key of segments)current = current?.[key];
53
+ return current;
54
+ }
55
+ function formatePath(path) {
56
+ if ('string' != typeof path) return [
57
+ path
58
+ ];
59
+ return path.split(/[\.]/g).reduce((pre, next)=>{
60
+ if (/\[[0-9]+\]$/.test(next)) {
61
+ const _next = next.split(/\[/);
62
+ let _nextValue = [];
63
+ for(let index = 0; index < _next.length; index++){
64
+ const element = _next[index];
65
+ if (/\]$/.test(element)) {
66
+ const _v = element.replace(/\]$/, '');
67
+ const v = Number.parseInt(_v);
68
+ if (_v.length !== `${v}`.length || Number.isNaN(v)) _nextValue.push(_v);
69
+ else _nextValue.push(v);
70
+ } else _nextValue.push(element);
71
+ }
72
+ return [
73
+ ...pre,
74
+ ..._nextValue
75
+ ];
76
+ }
77
+ return [
78
+ ...pre,
79
+ next
80
+ ];
81
+ }, []).map((item)=>{
82
+ if ('string' == typeof item) return item.trim();
83
+ return item;
84
+ }).filter((item)=>'' !== item);
85
+ }
86
+ function formateName(name, parentName) {
87
+ if (parentName && name) return parentName + '.' + name;
88
+ if (parentName) return parentName;
89
+ if (name) return name;
90
+ return '';
91
+ }
92
+ const isObject = (x)=>'object' == typeof x && null !== x;
93
+ exports.formateName = __webpack_exports__.formateName;
94
+ exports.formatePath = __webpack_exports__.formatePath;
95
+ exports.get = __webpack_exports__.get;
96
+ exports.isObject = __webpack_exports__.isObject;
97
+ exports.set = __webpack_exports__.set;
98
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
99
+ "formateName",
100
+ "formatePath",
101
+ "get",
102
+ "isObject",
103
+ "set"
104
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
105
+ Object.defineProperty(exports, '__esModule', {
106
+ value: true
107
+ });
@@ -0,0 +1,76 @@
1
+ import { MObject } from '../common/interface';
2
+ import { FairysValtioFormInstance } from '../common/instance';
3
+ import { type ReactNode } from 'react';
4
+ import { FairysValtioFormLayoutAttrsProps } from './layout';
5
+ import { RuleItem } from 'async-validator';
6
+ export interface FairysValtioFormAttrsProps<T extends MObject<T> = object> extends FairysValtioFormLayoutAttrsProps {
7
+ /**表单实例*/
8
+ form?: FairysValtioFormInstance<T>;
9
+ /**子元素*/
10
+ children: ReactNode;
11
+ /**表单项规则(如果表单项没有指定规则,则使用全局规则,如果表单项指定规则,则使用表单项规则)*/
12
+ rules?: Record<PropertyKey, RuleItem[]>;
13
+ /**表单初始值*/
14
+ formData?: FairysValtioFormInstance<T>['state'];
15
+ /**表单隐藏状态*/
16
+ hideState?: FairysValtioFormInstance<T>['hideState'];
17
+ /**
18
+ * 初始化表单数据类型,默认值为 deepCopy
19
+ * - deepCopy:使用深度拷贝初始化表单数据
20
+ * - immutable:直接使用对象(注意:当传递的不是`valtio`的`proxy`对象时,会使用`valtio`中的`proxy`声明)
21
+ */
22
+ initFormDataType?: 'deepCopy' | 'immutable';
23
+ }
24
+ /**
25
+ * 表单属性处理
26
+ *
27
+ * @example
28
+ *
29
+ * ```tsx
30
+ import { useFairysValtioForm } from "@fairys/valtio-form"
31
+ import type { FairysValtioFormAttrProps } from "@fairys/valtio-form"
32
+ export interface FormProps extends FairysValtioFormAttrProps{}
33
+
34
+ export const Form = (props: FormProps) => {
35
+ const { formInstance,children, ...rest } = useFairysValtioForm(props)
36
+ return (
37
+ <FairysValtioFormInstanceContext.Provider value={formInstance}>
38
+ <布局组件 {...rest}>{children}</布局组件>
39
+ </FairysValtioFormInstanceContext.Provider>
40
+ );
41
+ }
42
+ * ```
43
+ */
44
+ export declare function useFairysValtioForm<T extends MObject<T> = object>(props: FairysValtioFormAttrsProps<T>, ref: React.Ref<FairysValtioFormInstance<T>>): {
45
+ formInstance: FairysValtioFormInstance<T>;
46
+ /**子元素*/
47
+ children: ReactNode;
48
+ gap?: string | number;
49
+ title?: React.ReactNode;
50
+ extra?: React.ReactNode;
51
+ isAllColSpan?: boolean;
52
+ className?: string;
53
+ style?: React.CSSProperties;
54
+ headerClassName?: string;
55
+ headerStyle?: React.CSSProperties;
56
+ bodyClassName?: string;
57
+ bodyStyle?: React.CSSProperties;
58
+ bordered?: boolean;
59
+ boxShadow?: boolean;
60
+ lastItemBordered?: boolean;
61
+ platform?: "pc" | "rn" | "taro";
62
+ colCount?: number;
63
+ errorLayout?: "bottom-left" | "bottom-right" | "top-right" | "top-left" | "left-border-top" | "right-border-top";
64
+ labelMode?: "left" | "top" | "between";
65
+ formItemClassName?: string;
66
+ formItemStyle?: React.CSSProperties;
67
+ formItemLabelClassName?: string;
68
+ formItemLabelStyle?: React.CSSProperties;
69
+ formItemBodyClassName?: string;
70
+ formItemBodyStyle?: React.CSSProperties;
71
+ itemBorderType?: "bottom" | "body" | "none";
72
+ itemBorderColor?: React.CSSProperties["borderColor"];
73
+ isInvalidBorderRed?: boolean;
74
+ isInvalidTextRed?: boolean;
75
+ showColon?: boolean;
76
+ };