@carefrees/form-utils-react-taro 0.0.4

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 (100) hide show
  1. package/README.md +9 -0
  2. package/esm/formItem/index.d.ts +11 -0
  3. package/esm/formItem/index.js +70 -0
  4. package/esm/formList/index.d.ts +27 -0
  5. package/esm/formList/index.js +40 -0
  6. package/esm/hooks/attr/attr.FormItem.d.ts +48 -0
  7. package/esm/hooks/attr/attr.FormItem.js +61 -0
  8. package/esm/hooks/register/register.FormHideItem.d.ts +9 -0
  9. package/esm/hooks/register/register.FormHideItem.js +31 -0
  10. package/esm/hooks/register/register.FormItem.d.ts +23 -0
  11. package/esm/hooks/register/register.FormItem.js +42 -0
  12. package/esm/hooks/register/register.FormList.d.ts +9 -0
  13. package/esm/hooks/register/register.FormList.js +31 -0
  14. package/esm/hooks/register/register.form.d.ts +3 -0
  15. package/esm/hooks/register/register.form.js +17 -0
  16. package/esm/hooks/useAttrs.d.ts +25 -0
  17. package/esm/hooks/useAttrs.js +10 -0
  18. package/esm/hooks/useForm.d.ts +7 -0
  19. package/esm/hooks/useForm.js +13 -0
  20. package/esm/hooks/useFormItem.d.ts +7 -0
  21. package/esm/hooks/useFormItem.js +11 -0
  22. package/esm/hooks/useFormItemParentName.d.ts +30 -0
  23. package/esm/hooks/useFormItemParentName.js +61 -0
  24. package/esm/hooks/useFormList.d.ts +7 -0
  25. package/esm/hooks/useFormList.js +11 -0
  26. package/esm/hooks/useHtmlFor.d.ts +1 -0
  27. package/esm/hooks/useHtmlFor.js +10 -0
  28. package/esm/hooks/useMultipleForm.d.ts +13 -0
  29. package/esm/hooks/useMultipleForm.js +19 -0
  30. package/esm/hooks/useUpdate.d.ts +2 -0
  31. package/esm/hooks/useUpdate.js +10 -0
  32. package/esm/hooks/useWatch.d.ts +19 -0
  33. package/esm/hooks/useWatch.js +41 -0
  34. package/esm/index.d.ts +46 -0
  35. package/esm/index.js +61 -0
  36. package/esm/layout/index.d.ts +35 -0
  37. package/esm/layout/index.js +99 -0
  38. package/esm/layout/layout.formItem.d.ts +44 -0
  39. package/esm/layout/layout.formItem.js +113 -0
  40. package/esm/styles/index.css +200 -0
  41. package/lib/formItem/index.d.ts +11 -0
  42. package/lib/formItem/index.js +107 -0
  43. package/lib/formList/index.d.ts +27 -0
  44. package/lib/formList/index.js +77 -0
  45. package/lib/hooks/attr/attr.FormItem.d.ts +48 -0
  46. package/lib/hooks/attr/attr.FormItem.js +95 -0
  47. package/lib/hooks/register/register.FormHideItem.d.ts +9 -0
  48. package/lib/hooks/register/register.FormHideItem.js +65 -0
  49. package/lib/hooks/register/register.FormItem.d.ts +23 -0
  50. package/lib/hooks/register/register.FormItem.js +76 -0
  51. package/lib/hooks/register/register.FormList.d.ts +9 -0
  52. package/lib/hooks/register/register.FormList.js +65 -0
  53. package/lib/hooks/register/register.form.d.ts +3 -0
  54. package/lib/hooks/register/register.form.js +51 -0
  55. package/lib/hooks/useAttrs.d.ts +25 -0
  56. package/lib/hooks/useAttrs.js +47 -0
  57. package/lib/hooks/useForm.d.ts +7 -0
  58. package/lib/hooks/useForm.js +53 -0
  59. package/lib/hooks/useFormItem.d.ts +7 -0
  60. package/lib/hooks/useFormItem.js +51 -0
  61. package/lib/hooks/useFormItemParentName.d.ts +30 -0
  62. package/lib/hooks/useFormItemParentName.js +101 -0
  63. package/lib/hooks/useFormList.d.ts +7 -0
  64. package/lib/hooks/useFormList.js +51 -0
  65. package/lib/hooks/useHtmlFor.d.ts +1 -0
  66. package/lib/hooks/useHtmlFor.js +44 -0
  67. package/lib/hooks/useMultipleForm.d.ts +13 -0
  68. package/lib/hooks/useMultipleForm.js +62 -0
  69. package/lib/hooks/useUpdate.d.ts +2 -0
  70. package/lib/hooks/useUpdate.js +44 -0
  71. package/lib/hooks/useWatch.d.ts +19 -0
  72. package/lib/hooks/useWatch.js +78 -0
  73. package/lib/index.d.ts +46 -0
  74. package/lib/index.js +317 -0
  75. package/lib/layout/index.d.ts +35 -0
  76. package/lib/layout/index.js +146 -0
  77. package/lib/layout/layout.formItem.d.ts +44 -0
  78. package/lib/layout/layout.formItem.js +157 -0
  79. package/lib/styles/index.css +200 -0
  80. package/package.json +32 -0
  81. package/src/formItem/index.tsx +103 -0
  82. package/src/formList/index.tsx +59 -0
  83. package/src/hooks/attr/attr.FormItem.tsx +131 -0
  84. package/src/hooks/register/register.FormHideItem.ts +29 -0
  85. package/src/hooks/register/register.FormItem.ts +52 -0
  86. package/src/hooks/register/register.FormList.ts +31 -0
  87. package/src/hooks/register/register.form.ts +18 -0
  88. package/src/hooks/useAttrs.ts +35 -0
  89. package/src/hooks/useForm.ts +23 -0
  90. package/src/hooks/useFormItem.ts +21 -0
  91. package/src/hooks/useFormItemParentName.ts +49 -0
  92. package/src/hooks/useFormList.ts +21 -0
  93. package/src/hooks/useHtmlFor.ts +9 -0
  94. package/src/hooks/useMultipleForm.ts +36 -0
  95. package/src/hooks/useUpdate.ts +12 -0
  96. package/src/hooks/useWatch.ts +61 -0
  97. package/src/index.tsx +102 -0
  98. package/src/layout/index.tsx +152 -0
  99. package/src/layout/layout.formItem.tsx +152 -0
  100. package/src/styles/index.css +208 -0
@@ -0,0 +1,200 @@
1
+ .carefrees-form {
2
+ box-sizing: border-box;
3
+ background-color: #fff;
4
+ font-size: 14px;
5
+ }
6
+
7
+ .carefrees-form-layout {
8
+ box-sizing: border-box;
9
+ border-radius: 4px;
10
+ width: 100%;
11
+ padding-bottom: 8px;
12
+ position: relative;
13
+ }
14
+
15
+ .carefrees-form-layout.all-colspan {
16
+ grid-column: 1 / -1;
17
+ }
18
+
19
+ .carefrees-form-layout.bordered {
20
+ border: 1px solid #e0e0e0;
21
+ }
22
+
23
+ .carefrees-form-layout.bordered .carefrees-form-layout-header {
24
+ padding-inline: 8px;
25
+ }
26
+
27
+ .carefrees-form-layout-header {
28
+ padding-top: 5px;
29
+ padding-bottom: 5px;
30
+ box-sizing: border-box;
31
+ border-bottom: 1px solid #e0e0e0;
32
+ flex-direction: row;
33
+ justify-content: space-between;
34
+ align-items: center;
35
+ margin-block-end: 4px;
36
+ padding-inline: 2px;
37
+ display: flex;
38
+ }
39
+
40
+ .carefrees-form-layout-header-title {
41
+ color: #1d2129;
42
+ box-sizing: border-box;
43
+ font-size: 14px;
44
+ font-weight: 600;
45
+ }
46
+
47
+ .carefrees-form-layout-header-extra {
48
+ color: #1d2129;
49
+ box-sizing: border-box;
50
+ font-size: 14px;
51
+ font-weight: 500;
52
+ }
53
+
54
+ .carefrees-form-layout-body {
55
+ box-sizing: border-box;
56
+ grid-template-columns: repeat(1, auto);
57
+ gap: 2px;
58
+ width: 100%;
59
+ padding-left: 2px;
60
+ padding-right: 2px;
61
+ display: grid;
62
+ }
63
+
64
+ .carefrees-form-item {
65
+ box-sizing: border-box;
66
+ color: #000000e0;
67
+ flex-direction: row;
68
+ align-items: flex-start;
69
+ padding: 8px;
70
+ font-size: 14px;
71
+ display: flex;
72
+ }
73
+
74
+ .carefrees-form-item-container {
75
+ box-sizing: border-box;
76
+ flex-direction: column;
77
+ flex: 1;
78
+ gap: 4px;
79
+ height: 100%;
80
+ display: flex;
81
+ }
82
+
83
+ .carefrees-form-item-container.left {
84
+ text-align: left;
85
+ flex-direction: row;
86
+ gap: 8px;
87
+ }
88
+
89
+ .carefrees-form-item-container.left .carefrees-form-item-label {
90
+ justify-content: flex-end;
91
+ }
92
+
93
+ .carefrees-form-item-container.between {
94
+ text-align: left;
95
+ flex-direction: row;
96
+ justify-content: space-between;
97
+ gap: 8px;
98
+ }
99
+
100
+ .carefrees-form-item-container.between .carefrees-form-item-body, .carefrees-form-item-container.between .carefrees-form-item-body-input {
101
+ text-align: right;
102
+ justify-content: flex-end;
103
+ }
104
+
105
+ .carefrees-form-item-label-warp {
106
+ box-sizing: border-box;
107
+ }
108
+
109
+ .carefrees-form-item-label {
110
+ box-sizing: border-box;
111
+ color: #000000e0;
112
+ justify-content: flex-start;
113
+ align-items: center;
114
+ min-height: 1.4rem;
115
+ font-size: 14px;
116
+ display: flex;
117
+ position: relative;
118
+ }
119
+
120
+ .carefrees-form-item-label.show-colon:after {
121
+ content: ":";
122
+ text-align: center;
123
+ box-sizing: border-box;
124
+ margin: 0;
125
+ margin-inline: 2px;
126
+ display: inline-block;
127
+ }
128
+
129
+ .carefrees-form-item-label.required:before {
130
+ content: "*";
131
+ color: red;
132
+ box-sizing: border-box;
133
+ margin-inline-end: 4px;
134
+ display: inline-block;
135
+ }
136
+
137
+ .carefrees-form-item-body {
138
+ box-sizing: border-box;
139
+ flex-direction: column;
140
+ flex: 1;
141
+ justify-content: flex-start;
142
+ align-items: flex-start;
143
+ gap: 4px;
144
+ display: flex;
145
+ position: relative;
146
+ }
147
+
148
+ .carefrees-form-item-body-input {
149
+ box-sizing: border-box;
150
+ flex-direction: row;
151
+ flex: 1;
152
+ justify-content: flex-start;
153
+ align-items: center;
154
+ width: 100%;
155
+ display: flex;
156
+ }
157
+
158
+ .carefrees-form-item-body-input.input-bordered {
159
+ border-bottom: 1px solid #e0e0e0;
160
+ }
161
+
162
+ .carefrees-form-item-body-help {
163
+ box-sizing: border-box;
164
+ width: 100%;
165
+ }
166
+
167
+ .carefrees-form-item-body-error {
168
+ color: red;
169
+ box-sizing: border-box;
170
+ z-index: 10;
171
+ pointer-events: none;
172
+ flex-direction: row;
173
+ justify-content: start;
174
+ width: 100%;
175
+ padding-top: 2px;
176
+ font-size: 12px;
177
+ display: flex;
178
+ position: absolute;
179
+ inset: auto 0 -16px;
180
+ }
181
+
182
+ .carefrees-form-item-body-error.right-bottom {
183
+ justify-content: flex-end;
184
+ inset: auto 0 -16px;
185
+ }
186
+
187
+ .carefrees-form-item-body-error.top-left {
188
+ justify-content: start;
189
+ inset: -16px 0 auto;
190
+ }
191
+
192
+ .carefrees-form-item-body-error.top-right {
193
+ justify-content: flex-end;
194
+ inset: -16px 0 auto;
195
+ }
196
+
197
+ .carefrees-form-item-extra {
198
+ box-sizing: border-box;
199
+ }
200
+
@@ -0,0 +1,11 @@
1
+ import { LayoutFormItemProps } from './../layout/layout.formItem';
2
+ import { FormItemAttrOptions } from '../hooks/attr/attr.FormItem';
3
+ import React from 'react';
4
+ export interface FormItemProps extends FormItemAttrOptions, LayoutFormItemProps {
5
+ /**不进行样式渲染*/
6
+ noStyle?: boolean;
7
+ }
8
+ /**表单项*/
9
+ export declare const FormItem: React.MemoExoticComponent<(props: Partial<FormItemProps>) => import("react/jsx-runtime").JSX.Element>;
10
+ /**隐藏表单项*/
11
+ export declare const FormHideItem: React.MemoExoticComponent<(props: FormItemProps) => import("react/jsx-runtime").JSX.Element>;
@@ -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
+ FormItem: ()=>FormItem,
28
+ FormHideItem: ()=>FormHideItem
29
+ });
30
+ const jsx_runtime_namespaceObject = require("react/jsx-runtime");
31
+ const layout_formItem_js_namespaceObject = require("../layout/layout.formItem.js");
32
+ const attr_FormItem_js_namespaceObject = require("../hooks/attr/attr.FormItem.js");
33
+ const useFormItemParentName_js_namespaceObject = require("../hooks/useFormItemParentName.js");
34
+ const register_FormHideItem_js_namespaceObject = require("../hooks/register/register.FormHideItem.js");
35
+ const external_react_namespaceObject = require("react");
36
+ const FormItemInstance = /*#__PURE__*/ (0, external_react_namespaceObject.memo)((props)=>{
37
+ const { labelMode, noStyle, onlyRuleStyle, label, helpText, extra, errorLayout, required, showColon, colSpan, rowSpan, ...rest } = props;
38
+ const { children, ruleInstance, formItemInstance, htmlFor, validateResult } = (0, attr_FormItem_js_namespaceObject.useFormItemAttr)({
39
+ ...rest
40
+ });
41
+ if (noStyle) return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(useFormItemParentName_js_namespaceObject.FormItemParentNameProvider, {
42
+ name: formItemInstance.name,
43
+ sort: formItemInstance.sort,
44
+ children: children
45
+ });
46
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(useFormItemParentName_js_namespaceObject.FormItemParentNameProvider, {
47
+ name: formItemInstance.name,
48
+ sort: formItemInstance.sort,
49
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(layout_formItem_js_namespaceObject.LayoutFormItem, {
50
+ labelMode: labelMode,
51
+ onlyRuleStyle: onlyRuleStyle,
52
+ required: required || ruleInstance?.isRequired?.(),
53
+ label: label,
54
+ helpText: helpText,
55
+ extra: extra,
56
+ errorLayout: errorLayout,
57
+ showColon: showColon,
58
+ colSpan: colSpan,
59
+ rowSpan: rowSpan,
60
+ htmlFor: htmlFor,
61
+ validateResult: validateResult,
62
+ children: children
63
+ })
64
+ });
65
+ });
66
+ const FormItem = /*#__PURE__*/ (0, external_react_namespaceObject.memo)((props)=>{
67
+ const { name } = props;
68
+ if (name) return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(FormItemInstance, {
69
+ ...props,
70
+ name: name
71
+ });
72
+ const { labelMode, onlyRuleStyle, label, helpText, extra, errorLayout, required, showColon, colSpan, rowSpan, children } = props;
73
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(layout_formItem_js_namespaceObject.LayoutFormItem, {
74
+ labelMode: labelMode,
75
+ onlyRuleStyle: onlyRuleStyle,
76
+ required: required,
77
+ label: label,
78
+ helpText: helpText,
79
+ extra: extra,
80
+ errorLayout: errorLayout,
81
+ showColon: showColon,
82
+ colSpan: colSpan,
83
+ rowSpan: rowSpan,
84
+ children: children
85
+ });
86
+ });
87
+ const FormHideItem = /*#__PURE__*/ (0, external_react_namespaceObject.memo)((props)=>{
88
+ const { name, sort, isJoinParentField } = props;
89
+ const { isHide } = (0, register_FormHideItem_js_namespaceObject.useRegisterFormHideItem)({
90
+ name,
91
+ sort: sort,
92
+ isJoinParentField
93
+ });
94
+ if (isHide) return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_react_namespaceObject.Fragment, {});
95
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(FormItemInstance, {
96
+ ...props
97
+ });
98
+ });
99
+ exports.FormHideItem = __webpack_exports__.FormHideItem;
100
+ exports.FormItem = __webpack_exports__.FormItem;
101
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
102
+ "FormHideItem",
103
+ "FormItem"
104
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
105
+ Object.defineProperty(exports, '__esModule', {
106
+ value: true
107
+ });
@@ -0,0 +1,27 @@
1
+ import { RegisterFormListOptions } from './../hooks/register/register.FormList';
2
+ import { RuleInstanceBase, FormItemInstanceBase, FormListInstanceBase } from '@carefrees/form-utils';
3
+ import React from 'react';
4
+ export interface FormListChildrenProps {
5
+ /**数据集合*/
6
+ fields: {
7
+ name: number;
8
+ key: number;
9
+ }[];
10
+ /**添加*/
11
+ onAdd: (initialValue?: Object) => void;
12
+ /**删除*/
13
+ onDelete: (index: number | number[]) => void;
14
+ /**移动*/
15
+ onMove: (from: number, to: number) => void;
16
+ }
17
+ export interface FormListProps extends RegisterFormListOptions {
18
+ children: (options: FormListChildrenProps, instances: {
19
+ ruleInstance: RuleInstanceBase;
20
+ formItemInstance: FormItemInstanceBase;
21
+ formListInstance: FormListInstanceBase;
22
+ }) => React.ReactNode;
23
+ }
24
+ /**form list 组件*/
25
+ export declare const FormList: React.MemoExoticComponent<(props: FormListProps) => import("react/jsx-runtime").JSX.Element>;
26
+ /**隐藏 form list item 组件*/
27
+ export declare const FormHideList: React.MemoExoticComponent<(props: FormListProps) => import("react/jsx-runtime").JSX.Element>;
@@ -0,0 +1,77 @@
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
+ FormHideList: ()=>FormHideList,
28
+ FormList: ()=>FormList
29
+ });
30
+ const jsx_runtime_namespaceObject = require("react/jsx-runtime");
31
+ const register_FormList_js_namespaceObject = require("../hooks/register/register.FormList.js");
32
+ const useFormList_js_namespaceObject = require("../hooks/useFormList.js");
33
+ const useFormItemParentName_js_namespaceObject = require("../hooks/useFormItemParentName.js");
34
+ const register_FormHideItem_js_namespaceObject = require("../hooks/register/register.FormHideItem.js");
35
+ const external_react_namespaceObject = require("react");
36
+ const FormList = /*#__PURE__*/ (0, external_react_namespaceObject.memo)((props)=>{
37
+ const { children, ...rest } = props;
38
+ const { formListInstance, ruleInstance, formItemInstance } = (0, register_FormList_js_namespaceObject.useRegisterFormList)(rest);
39
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(useFormList_js_namespaceObject.FormListInstanceContext.Provider, {
40
+ value: formListInstance,
41
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(useFormItemParentName_js_namespaceObject.FormItemParentNameProvider, {
42
+ name: formListInstance.name,
43
+ sort: formListInstance.sort,
44
+ children: children({
45
+ fields: formListInstance.getFields(),
46
+ onAdd: formListInstance.onAdd,
47
+ onDelete: formListInstance.onDelete,
48
+ onMove: formListInstance.onMove
49
+ }, {
50
+ ruleInstance,
51
+ formItemInstance,
52
+ formListInstance
53
+ })
54
+ })
55
+ });
56
+ });
57
+ const FormHideList = /*#__PURE__*/ (0, external_react_namespaceObject.memo)((props)=>{
58
+ const { name, sort, isJoinParentField } = props;
59
+ const { isHide } = (0, register_FormHideItem_js_namespaceObject.useRegisterFormHideItem)({
60
+ name,
61
+ sort: sort,
62
+ isJoinParentField
63
+ });
64
+ if (isHide) return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_react_namespaceObject.Fragment, {});
65
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(FormList, {
66
+ ...props
67
+ });
68
+ });
69
+ exports.FormHideList = __webpack_exports__.FormHideList;
70
+ exports.FormList = __webpack_exports__.FormList;
71
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
72
+ "FormHideList",
73
+ "FormList"
74
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
75
+ Object.defineProperty(exports, '__esModule', {
76
+ value: true
77
+ });
@@ -0,0 +1,48 @@
1
+ import { RuleInstanceBase, FormInstanceBase, FormItemInstanceBase } from '@carefrees/form-utils';
2
+ import { RegisterFormItemOptions } from '../register/register.FormItem';
3
+ import React from 'react';
4
+ export interface FormItemAttrOptions extends RegisterFormItemOptions {
5
+ /**依赖更新项*/
6
+ dependencies?: string[];
7
+ /**通知 只用于校验规则提示 字段 */
8
+ noticeOnlyRuleDataField?: string[];
9
+ /**通知父级字段监听方法更新*/
10
+ isNoticeParentField?: boolean;
11
+ /**通知watch监听方法更新*/
12
+ noticeWatchField?: string[];
13
+ /**是否保护值(不进行表单项组件卸载重置初始值)*/
14
+ preserve?: boolean;
15
+ /**重写规则*/
16
+ useRules?: (ruleInstance: RuleInstanceBase, form: FormInstanceBase, formItemInstance: FormItemInstanceBase) => void;
17
+ /**输入框属性重写*/
18
+ useAttrs?: (attrs: any, form: FormInstanceBase, formItemInstance: FormItemInstanceBase) => any;
19
+ /**输入框属性*/
20
+ attrs?: any;
21
+ /**传递组件字段*/
22
+ valuePropName?: string;
23
+ /**取值字段(默认和valuePropName值相同)*/
24
+ getValuePath?: string;
25
+ /**自定义获取值*/
26
+ getValueFromEvent?: (event: any, form: FormInstanceBase, formItemInstance: FormItemInstanceBase) => any;
27
+ /**值格式化*/
28
+ formatValue?: (value: any, form: FormInstanceBase, formItemInstance: FormItemInstanceBase, event: any) => any;
29
+ /**触发数据更新之后触发(用于数据联动之类的)*/
30
+ onAfterUpdate?: (value: any, form: FormInstanceBase, formItemInstance: FormItemInstanceBase, event: any) => void;
31
+ /**事件名称*/
32
+ trigger?: string;
33
+ /**子元素*/
34
+ children?: React.ReactNode;
35
+ }
36
+ /**表单项参数*/
37
+ export declare const useFormItemAttr: (options: FormItemAttrOptions) => {
38
+ children: string | number | boolean | React.ReactElement<any, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode>;
39
+ form: FormInstanceBase<any>;
40
+ formItemInstance: FormItemInstanceBase;
41
+ ruleInstance: RuleInstanceBase;
42
+ onChange: (event: any) => void;
43
+ htmlFor: string;
44
+ validateResult: {
45
+ tip: string | (string | undefined)[];
46
+ isInvalid: boolean;
47
+ };
48
+ };
@@ -0,0 +1,95 @@
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
+ useFormItemAttr: ()=>useFormItemAttr
28
+ });
29
+ const form_utils_namespaceObject = require("@carefrees/form-utils");
30
+ const register_FormItem_js_namespaceObject = require("../register/register.FormItem.js");
31
+ const external_useHtmlFor_js_namespaceObject = require("../useHtmlFor.js");
32
+ const external_react_namespaceObject = require("react");
33
+ const useFormItemAttr = (options)=>{
34
+ const { trigger = 'onChange', dependencies, noticeOnlyRuleDataField, isNoticeParentField, noticeWatchField, preserve, valuePropName = 'value', getValuePath = valuePropName, getValueFromEvent, formatValue, onAfterUpdate, useAttrs, useRules, attrs, children, ...rest } = options;
35
+ const { formItemInstance, form, ruleInstance, newName } = (0, register_FormItem_js_namespaceObject.useRegisterFormItem)({
36
+ ...rest
37
+ });
38
+ formItemInstance.dependencies = dependencies;
39
+ formItemInstance.noticeOnlyRuleDataField = noticeOnlyRuleDataField;
40
+ formItemInstance.isNoticeParentField = isNoticeParentField;
41
+ formItemInstance.onAfterUpdate = onAfterUpdate;
42
+ formItemInstance.noticeWatchField = noticeWatchField;
43
+ formItemInstance.preserve = preserve;
44
+ const oldValue = form.getFieldValue(newName);
45
+ const onValueChange = (event)=>{
46
+ try {
47
+ let value = event;
48
+ const target = event?.detail || event?.target;
49
+ if ('function' == typeof getValueFromEvent) value = getValueFromEvent(event, form, formItemInstance);
50
+ else if (event && target && 'object' == typeof target && getValuePath in target) value = (0, form_utils_namespaceObject.get)(target, getValuePath);
51
+ if ('function' == typeof formatValue) value = formatValue(value, form, formItemInstance, event);
52
+ if (oldValue !== value) {
53
+ form.updatedFieldValue(newName, value, 'validate');
54
+ formItemInstance.onAfterUpdate?.(value, form, formItemInstance, event);
55
+ if (Array.isArray(formItemInstance.noticeWatchField) && formItemInstance.noticeWatchField.length) form.noticeWatch(formItemInstance.noticeWatchField);
56
+ if (Array.isArray(formItemInstance.noticeOnlyRuleDataField) && formItemInstance.noticeOnlyRuleDataField.length) form.onlyValidate(formItemInstance.noticeOnlyRuleDataField);
57
+ if (formItemInstance.isNoticeParentField && formItemInstance.parentDataField) form.notice(formItemInstance.parentDataField);
58
+ }
59
+ } catch (error) {
60
+ console.log(error);
61
+ }
62
+ };
63
+ formItemInstance.onChange = onValueChange;
64
+ const htmlFor = (0, external_useHtmlFor_js_namespaceObject.useHtmlFor)(newName);
65
+ formItemInstance.htmlFor = htmlFor;
66
+ const control = {
67
+ [trigger]: onValueChange,
68
+ ...attrs,
69
+ name: newName,
70
+ id: htmlFor,
71
+ [valuePropName]: oldValue
72
+ };
73
+ const newControl = useAttrs?.(control, form, formItemInstance) || control;
74
+ formItemInstance.control = newControl;
75
+ useRules?.(ruleInstance, form, formItemInstance);
76
+ const validateResult = (0, external_react_namespaceObject.useMemo)(()=>ruleInstance.getValidateResult(), [
77
+ ruleInstance.messages
78
+ ]);
79
+ return {
80
+ children: /*#__PURE__*/ (0, external_react_namespaceObject.isValidElement)(children) ? /*#__PURE__*/ (0, external_react_namespaceObject.cloneElement)(children, newControl) : children,
81
+ form,
82
+ formItemInstance,
83
+ ruleInstance,
84
+ onChange: onValueChange,
85
+ htmlFor,
86
+ validateResult
87
+ };
88
+ };
89
+ exports.useFormItemAttr = __webpack_exports__.useFormItemAttr;
90
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
91
+ "useFormItemAttr"
92
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
93
+ Object.defineProperty(exports, '__esModule', {
94
+ value: true
95
+ });
@@ -0,0 +1,9 @@
1
+ import { RegisterFormItemOptions } from './register.FormItem';
2
+ interface RegisterFormHideItemOptions extends Omit<RegisterFormItemOptions, 'rules'> {
3
+ }
4
+ /**注册表单隐藏表单项到表单实例中*/
5
+ export declare const useRegisterFormHideItem: (options: RegisterFormHideItemOptions) => {
6
+ form: import("@carefrees/form-utils").FormInstanceBase<any>;
7
+ isHide: any;
8
+ };
9
+ export {};
@@ -0,0 +1,65 @@
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
+ useRegisterFormHideItem: ()=>useRegisterFormHideItem
28
+ });
29
+ const external_react_namespaceObject = require("react");
30
+ const form_utils_namespaceObject = require("@carefrees/form-utils");
31
+ const external_useFormItemParentName_js_namespaceObject = require("../useFormItemParentName.js");
32
+ const external_useForm_js_namespaceObject = require("../useForm.js");
33
+ const external_useUpdate_js_namespaceObject = require("../useUpdate.js");
34
+ const useRegisterFormHideItem = (options)=>{
35
+ const { name, sort, isJoinParentField = true } = options;
36
+ const form = (0, external_useForm_js_namespaceObject.useFormInstance)();
37
+ const _update = (0, external_useUpdate_js_namespaceObject.useUpdate)();
38
+ const { newName, newSort } = (0, external_useFormItemParentName_js_namespaceObject.useFormItemParentName)({
39
+ name,
40
+ sort,
41
+ isJoinParentField
42
+ });
43
+ const hideItemInstance = (0, external_react_namespaceObject.useRef)(new form_utils_namespaceObject.FormHideItemInstanceBase().ctor(newName)).current;
44
+ const isHide = form.getFieldHideValue(newName);
45
+ hideItemInstance.instance = form;
46
+ hideItemInstance.updated = _update.current;
47
+ hideItemInstance.sort = newSort;
48
+ (0, external_react_namespaceObject.useEffect)(()=>{
49
+ const unMount = form.registerFormHideItem(hideItemInstance);
50
+ return ()=>unMount();
51
+ }, [
52
+ newName
53
+ ]);
54
+ return {
55
+ form,
56
+ isHide
57
+ };
58
+ };
59
+ exports.useRegisterFormHideItem = __webpack_exports__.useRegisterFormHideItem;
60
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
61
+ "useRegisterFormHideItem"
62
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
63
+ Object.defineProperty(exports, '__esModule', {
64
+ value: true
65
+ });
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @description 注册组件
3
+ */
4
+ import { RuleInstanceBase } from '@carefrees/form-utils';
5
+ import type { RuleItem } from 'async-validator';
6
+ export interface RegisterFormItemOptions {
7
+ /**字段*/
8
+ name: string;
9
+ /**规则*/
10
+ rules?: RuleItem[];
11
+ /**排序值*/
12
+ sort?: string;
13
+ /**是否拼接父级字段*/
14
+ isJoinParentField?: boolean;
15
+ }
16
+ /**注册表单项到表单实例中*/
17
+ export declare const useRegisterFormItem: (options: RegisterFormItemOptions) => {
18
+ ruleInstance: RuleInstanceBase;
19
+ formItemInstance: import("@carefrees/form-utils").FormItemInstanceBase;
20
+ form: import("@carefrees/form-utils").FormInstanceBase<any>;
21
+ parentName: string;
22
+ newName: string;
23
+ };