@hi-ui/form 4.1.1 → 4.1.3
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.
- package/CHANGELOG.md +24 -0
- package/lib/cjs/Form.js +26 -54
- package/lib/cjs/FormField.js +0 -19
- package/lib/cjs/FormItem.js +16 -48
- package/lib/cjs/FormLabel.js +46 -79
- package/lib/cjs/FormList.js +16 -52
- package/lib/cjs/FormMessage.js +9 -38
- package/lib/cjs/FormReset.js +9 -39
- package/lib/cjs/FormSubmit.js +11 -43
- package/lib/cjs/context.js +0 -9
- package/lib/cjs/index.js +0 -7
- package/lib/cjs/styles/index.scss.js +2 -5
- package/lib/cjs/use-form-field.js +15 -44
- package/lib/cjs/use-form.js +71 -168
- package/lib/cjs/utils/index.js +1 -11
- package/lib/esm/Form.js +24 -32
- package/lib/esm/FormField.js +0 -11
- package/lib/esm/FormItem.js +13 -22
- package/lib/esm/FormLabel.js +40 -52
- package/lib/esm/FormList.js +9 -26
- package/lib/esm/FormMessage.js +8 -18
- package/lib/esm/FormReset.js +8 -16
- package/lib/esm/FormSubmit.js +10 -20
- package/lib/esm/context.js +0 -4
- package/lib/esm/index.js +2 -6
- package/lib/esm/styles/index.scss.js +2 -4
- package/lib/esm/use-form-field.js +14 -24
- package/lib/esm/use-form.js +64 -136
- package/lib/esm/utils/index.js +1 -6
- package/lib/types/Form.d.ts +1 -1
- package/lib/types/FormField.d.ts +0 -3
- package/lib/types/FormItem.d.ts +0 -3
- package/lib/types/FormLabel.d.ts +0 -3
- package/lib/types/FormList.d.ts +0 -3
- package/lib/types/FormMessage.d.ts +0 -3
- package/lib/types/FormReset.d.ts +0 -3
- package/lib/types/FormSubmit.d.ts +0 -3
- package/package.json +13 -14
package/lib/cjs/FormMessage.js
CHANGED
|
@@ -9,63 +9,34 @@
|
|
|
9
9
|
*/
|
|
10
10
|
'use strict';
|
|
11
11
|
|
|
12
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
13
|
-
|
|
14
|
-
Object.defineProperty(exports, '__esModule', {
|
|
15
|
-
value: true
|
|
16
|
-
});
|
|
17
|
-
|
|
18
12
|
var tslib = require('tslib');
|
|
19
|
-
|
|
20
13
|
var React = require('react');
|
|
21
|
-
|
|
22
14
|
var classname = require('@hi-ui/classname');
|
|
23
|
-
|
|
24
15
|
var env = require('@hi-ui/env');
|
|
25
|
-
|
|
26
16
|
var context = require('./context.js');
|
|
27
|
-
|
|
28
|
-
function _interopDefaultLegacy(e) {
|
|
29
|
-
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
|
30
|
-
'default': e
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
35
|
-
|
|
36
17
|
var _role = 'form-message';
|
|
37
|
-
|
|
38
18
|
var _prefix = classname.getPrefixCls(_role);
|
|
39
|
-
/**
|
|
40
|
-
* TODO: What is FormMessage
|
|
41
|
-
*/
|
|
42
|
-
|
|
43
|
-
|
|
44
19
|
var FormMessage = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
45
20
|
var _a$prefixCls = _a.prefixCls,
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
21
|
+
prefixCls = _a$prefixCls === void 0 ? _prefix : _a$prefixCls,
|
|
22
|
+
_a$role = _a.role,
|
|
23
|
+
role = _a$role === void 0 ? _role : _a$role,
|
|
24
|
+
className = _a.className,
|
|
25
|
+
field = _a.field,
|
|
26
|
+
rest = tslib.__rest(_a, ["prefixCls", "role", "className", "children", "field"]);
|
|
53
27
|
var _useFormContext = context.useFormContext(),
|
|
54
|
-
|
|
28
|
+
getFieldError = _useFormContext.getFieldError;
|
|
29
|
+
// field 支持数组,递归去设置或者获取对象中的属性值
|
|
55
30
|
// 如何变成映射的 key,特殊处理化
|
|
56
|
-
|
|
57
|
-
|
|
58
31
|
var message = field ? getFieldError(field) : null;
|
|
59
32
|
var cls = classname.cx(prefixCls, className, message && prefixCls + "--show");
|
|
60
|
-
return /*#__PURE__*/
|
|
33
|
+
return /*#__PURE__*/React.createElement("span", Object.assign({
|
|
61
34
|
ref: ref,
|
|
62
35
|
role: role,
|
|
63
36
|
className: cls
|
|
64
37
|
}, rest), message);
|
|
65
38
|
});
|
|
66
|
-
|
|
67
39
|
if (env.__DEV__) {
|
|
68
40
|
FormMessage.displayName = 'FormMessage';
|
|
69
41
|
}
|
|
70
|
-
|
|
71
42
|
exports.FormMessage = FormMessage;
|
package/lib/cjs/FormReset.js
CHANGED
|
@@ -9,54 +9,26 @@
|
|
|
9
9
|
*/
|
|
10
10
|
'use strict';
|
|
11
11
|
|
|
12
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
13
|
-
|
|
14
|
-
Object.defineProperty(exports, '__esModule', {
|
|
15
|
-
value: true
|
|
16
|
-
});
|
|
17
|
-
|
|
18
12
|
var tslib = require('tslib');
|
|
19
|
-
|
|
20
13
|
var React = require('react');
|
|
21
|
-
|
|
22
14
|
var classname = require('@hi-ui/classname');
|
|
23
|
-
|
|
24
15
|
var env = require('@hi-ui/env');
|
|
25
|
-
|
|
26
16
|
var context = require('./context.js');
|
|
27
|
-
|
|
28
17
|
var Button = require('@hi-ui/button');
|
|
29
|
-
|
|
30
|
-
function _interopDefaultLegacy(e) {
|
|
31
|
-
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
|
32
|
-
'default': e
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
37
|
-
|
|
38
|
-
var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
|
|
39
|
-
|
|
40
18
|
var FORM_RESET_PREFIX = classname.getPrefixCls('form-reset');
|
|
41
|
-
/**
|
|
42
|
-
* TODO: What is FormReset
|
|
43
|
-
*/
|
|
44
|
-
|
|
45
19
|
var FormReset = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
46
20
|
var _a$prefixCls = _a.prefixCls,
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
21
|
+
prefixCls = _a$prefixCls === void 0 ? FORM_RESET_PREFIX : _a$prefixCls,
|
|
22
|
+
className = _a.className,
|
|
23
|
+
children = _a.children,
|
|
24
|
+
_a$type = _a.type,
|
|
25
|
+
type = _a$type === void 0 ? 'secondary' : _a$type,
|
|
26
|
+
_onClick = _a.onClick,
|
|
27
|
+
rest = tslib.__rest(_a, ["prefixCls", "className", "children", "type", "onClick"]);
|
|
55
28
|
var _useFormContext = context.useFormContext(),
|
|
56
|
-
|
|
57
|
-
|
|
29
|
+
resetForm = _useFormContext.resetForm;
|
|
58
30
|
var cls = classname.cx(prefixCls, className);
|
|
59
|
-
return /*#__PURE__*/
|
|
31
|
+
return /*#__PURE__*/React.createElement(Button, Object.assign({
|
|
60
32
|
ref: ref,
|
|
61
33
|
className: cls,
|
|
62
34
|
type: type
|
|
@@ -67,9 +39,7 @@ var FormReset = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
67
39
|
}
|
|
68
40
|
}), children);
|
|
69
41
|
});
|
|
70
|
-
|
|
71
42
|
if (env.__DEV__) {
|
|
72
43
|
FormReset.displayName = 'FormReset';
|
|
73
44
|
}
|
|
74
|
-
|
|
75
45
|
exports.FormReset = FormReset;
|
package/lib/cjs/FormSubmit.js
CHANGED
|
@@ -9,59 +9,29 @@
|
|
|
9
9
|
*/
|
|
10
10
|
'use strict';
|
|
11
11
|
|
|
12
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
13
|
-
|
|
14
|
-
Object.defineProperty(exports, '__esModule', {
|
|
15
|
-
value: true
|
|
16
|
-
});
|
|
17
|
-
|
|
18
12
|
var tslib = require('tslib');
|
|
19
|
-
|
|
20
13
|
var React = require('react');
|
|
21
|
-
|
|
22
14
|
var classname = require('@hi-ui/classname');
|
|
23
|
-
|
|
24
15
|
var env = require('@hi-ui/env');
|
|
25
|
-
|
|
26
16
|
var context = require('./context.js');
|
|
27
|
-
|
|
28
17
|
var Button = require('@hi-ui/button');
|
|
29
|
-
|
|
30
|
-
function _interopDefaultLegacy(e) {
|
|
31
|
-
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
|
32
|
-
'default': e
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
37
|
-
|
|
38
|
-
var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
|
|
39
|
-
|
|
40
18
|
var _role = 'form-submit';
|
|
41
|
-
|
|
42
19
|
var _prefix = classname.getPrefixCls(_role);
|
|
43
|
-
/**
|
|
44
|
-
* TODO: What is FormSubmit
|
|
45
|
-
*/
|
|
46
|
-
|
|
47
|
-
|
|
48
20
|
var FormSubmit = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
49
21
|
var _a$prefixCls = _a.prefixCls,
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
22
|
+
prefixCls = _a$prefixCls === void 0 ? _prefix : _a$prefixCls,
|
|
23
|
+
_a$role = _a.role,
|
|
24
|
+
role = _a$role === void 0 ? _role : _a$role,
|
|
25
|
+
className = _a.className,
|
|
26
|
+
children = _a.children,
|
|
27
|
+
_a$type = _a.type,
|
|
28
|
+
type = _a$type === void 0 ? 'primary' : _a$type,
|
|
29
|
+
_onClick = _a.onClick,
|
|
30
|
+
rest = tslib.__rest(_a, ["prefixCls", "role", "className", "children", "type", "onClick"]);
|
|
60
31
|
var _useFormContext = context.useFormContext(),
|
|
61
|
-
|
|
62
|
-
|
|
32
|
+
submitForm = _useFormContext.submitForm;
|
|
63
33
|
var cls = classname.cx(prefixCls, className);
|
|
64
|
-
return /*#__PURE__*/
|
|
34
|
+
return /*#__PURE__*/React.createElement(Button, Object.assign({
|
|
65
35
|
ref: ref,
|
|
66
36
|
role: role,
|
|
67
37
|
className: cls,
|
|
@@ -80,9 +50,7 @@ var FormSubmit = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
80
50
|
}
|
|
81
51
|
}), children);
|
|
82
52
|
});
|
|
83
|
-
|
|
84
53
|
if (env.__DEV__) {
|
|
85
54
|
FormSubmit.displayName = 'FormSubmit';
|
|
86
55
|
}
|
|
87
|
-
|
|
88
56
|
exports.FormSubmit = FormSubmit;
|
package/lib/cjs/context.js
CHANGED
|
@@ -9,24 +9,15 @@
|
|
|
9
9
|
*/
|
|
10
10
|
'use strict';
|
|
11
11
|
|
|
12
|
-
Object.defineProperty(exports, '__esModule', {
|
|
13
|
-
value: true
|
|
14
|
-
});
|
|
15
|
-
|
|
16
12
|
var React = require('react');
|
|
17
|
-
|
|
18
13
|
var formContext = /*#__PURE__*/React.createContext(null);
|
|
19
14
|
var FormProvider = formContext.Provider;
|
|
20
|
-
|
|
21
15
|
var useFormContext = function useFormContext() {
|
|
22
16
|
var context = React.useContext(formContext);
|
|
23
|
-
|
|
24
17
|
if (!context) {
|
|
25
18
|
throw new Error('The FormContext should using in Form.');
|
|
26
19
|
}
|
|
27
|
-
|
|
28
20
|
return context;
|
|
29
21
|
};
|
|
30
|
-
|
|
31
22
|
exports.FormProvider = FormProvider;
|
|
32
23
|
exports.useFormContext = useFormContext;
|
package/lib/cjs/index.js
CHANGED
|
@@ -12,19 +12,12 @@
|
|
|
12
12
|
Object.defineProperty(exports, '__esModule', {
|
|
13
13
|
value: true
|
|
14
14
|
});
|
|
15
|
-
|
|
16
15
|
require('./styles/index.scss.js');
|
|
17
|
-
|
|
18
16
|
var Form$1 = require('./Form.js');
|
|
19
|
-
|
|
20
17
|
var FormItem = require('./FormItem.js');
|
|
21
|
-
|
|
22
18
|
var FormList = require('./FormList.js');
|
|
23
|
-
|
|
24
19
|
var FormSubmit = require('./FormSubmit.js');
|
|
25
|
-
|
|
26
20
|
var FormReset = require('./FormReset.js');
|
|
27
|
-
|
|
28
21
|
var Form = Object.assign(Form$1.Form, {
|
|
29
22
|
Item: FormItem.FormItem,
|
|
30
23
|
List: FormList.FormList,
|
|
@@ -12,10 +12,7 @@
|
|
|
12
12
|
Object.defineProperty(exports, '__esModule', {
|
|
13
13
|
value: true
|
|
14
14
|
});
|
|
15
|
-
var css_248z = ".hi-v4-form {max-width: 100%;position: relative;
|
|
16
|
-
|
|
17
|
-
var __styleInject__ = require('inject-head-style')["default"];
|
|
18
|
-
|
|
15
|
+
var css_248z = ".hi-v4-form {max-width: 100%;position: relative;}.hi-v4-form fieldset {margin: 0;padding: 0;border: 0;}.hi-v4-form fieldset + fieldset {margin-top: 16px;}.hi-v4-form legend {margin: 0 0 16px;color: var(--hi-v4-color-gray-800, #1f2937);}.hi-v4-form--placement-horizontal {display: -webkit-box;display: -ms-flexbox;display: flex;-ms-flex-wrap: wrap;flex-wrap: wrap;-webkit-column-gap: var(--hi-v4-spacing-10, 20px);-moz-column-gap: var(--hi-v4-spacing-10, 20px);column-gap: var(--hi-v4-spacing-10, 20px);}.hi-v4-form--placement-horizontal .hi-v4-form-label__indent {min-height: var(--hi-v4-height-8, 32px);}.hi-v4-form-label {font-size: var(--hi-v4-text-size-md, 0.875rem);-webkit-box-sizing: border-box;box-sizing: border-box;margin-right: 0;}.hi-v4-form-label__content {display: -webkit-box;display: -ms-flexbox;display: flex;}.hi-v4-form-label--placement-top > .hi-v4-form-label__content {text-align: left;-webkit-box-orient: vertical;-webkit-box-direction: normal;-ms-flex-direction: column;flex-direction: column;padding-right: 0;}.hi-v4-form-label__content__text, .hi-v4-form-label__content__indent {-ms-flex-negative: 0;flex-shrink: 0;-webkit-box-sizing: border-box;box-sizing: border-box;vertical-align: top;color: var(--hi-v4-color-gray-800, #1f2937);overflow-wrap: break-word;}.hi-v4-form-label__content__text {padding-right: var(--hi-v4-spacing-6, 12px);min-height: var(--hi-v4-height-8, 32px);line-height: var(--hi-v4-height-8, 32px);}.hi-v4-form-label--placement-left > .hi-v4-form-label__content > .hi-v4-form-label__content__text {text-align: left;}.hi-v4-form-label--placement-right > .hi-v4-form-label__content > .hi-v4-form-label__content__text {text-align: right;}.hi-v4-form-label--placement-top > .hi-v4-form-label__content > .hi-v4-form-label__content__text {height: 22px;min-height: 22px;line-height: 22px;padding-right: 0;margin-bottom: var(--hi-v4-spacing-4, 8px);}.hi-v4-form-label--required > .hi-v4-form-label__content > .hi-v4-form-label__content__text::before {margin-right: var(--hi-v4-spacing-2, 4px);content: \"*\";color: var(--hi-v4-color-danger-500, var(--hi-v4-color-red-500, #ff5959));}.hi-v4-form-label__content__control {min-width: 1px;}.hi-v4-form-message {display: block;font-size: var(--hi-v4-text-size-md, 0.875rem);min-height: 24px;padding: 2px 0;-webkit-box-sizing: border-box;box-sizing: border-box;line-height: 20px;-webkit-transform: translateY(-10%);transform: translateY(-10%);opacity: 0;color: var(--hi-v4-color-danger-500, var(--hi-v4-color-red-500, #ff5959));-webkit-transition: all 0.3s;transition: all 0.3s;}.hi-v4-form-message--show {opacity: 1;-webkit-transform: translateY(0);transform: translateY(0);}.hi-v4-form-item {position: relative;}";
|
|
16
|
+
var __styleInject__ = require('style-inject')["default"];
|
|
19
17
|
__styleInject__(css_248z);
|
|
20
|
-
|
|
21
18
|
exports["default"] = css_248z;
|
|
@@ -9,45 +9,22 @@
|
|
|
9
9
|
*/
|
|
10
10
|
'use strict';
|
|
11
11
|
|
|
12
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
13
|
-
|
|
14
|
-
Object.defineProperty(exports, '__esModule', {
|
|
15
|
-
value: true
|
|
16
|
-
});
|
|
17
|
-
|
|
18
12
|
var React = require('react');
|
|
19
|
-
|
|
20
13
|
var context = require('./context.js');
|
|
21
|
-
|
|
22
14
|
var typeAssertion = require('@hi-ui/type-assertion');
|
|
23
|
-
|
|
24
15
|
var Validater = require('async-validator');
|
|
25
|
-
|
|
26
16
|
var arrayUtils = require('@hi-ui/array-utils');
|
|
27
|
-
|
|
28
17
|
var index = require('./utils/index.js');
|
|
29
|
-
|
|
30
|
-
function _interopDefaultLegacy(e) {
|
|
31
|
-
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
|
32
|
-
'default': e
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
var Validater__default = /*#__PURE__*/_interopDefaultLegacy(Validater);
|
|
37
|
-
|
|
38
18
|
var useFiledRules = function useFiledRules(props) {
|
|
39
19
|
var field = props.field,
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
20
|
+
rulesProp = props.rules,
|
|
21
|
+
_props$valueType = props.valueType,
|
|
22
|
+
valueType = _props$valueType === void 0 ? 'any' : _props$valueType;
|
|
44
23
|
var _useFormContext = context.useFormContext(),
|
|
45
|
-
|
|
24
|
+
getFieldRules = _useFormContext.getFieldRules;
|
|
46
25
|
/**
|
|
47
26
|
* 处理校验规则,item 优先级大于 form
|
|
48
27
|
*/
|
|
49
|
-
|
|
50
|
-
|
|
51
28
|
var fieldRules = React.useMemo(function () {
|
|
52
29
|
// @ts-ignore
|
|
53
30
|
var rules = arrayUtils.normalizeArray(rulesProp !== null && rulesProp !== void 0 ? rulesProp : getFieldRules(field));
|
|
@@ -59,33 +36,28 @@ var useFiledRules = function useFiledRules(props) {
|
|
|
59
36
|
}, [rulesProp, field, getFieldRules, valueType]);
|
|
60
37
|
return fieldRules;
|
|
61
38
|
};
|
|
62
|
-
|
|
63
39
|
var useFormField = function useFormField(props) {
|
|
64
40
|
var field = props.field,
|
|
65
|
-
|
|
66
|
-
|
|
41
|
+
valueType = props.valueType;
|
|
67
42
|
var _useFormContext2 = context.useFormContext(),
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
43
|
+
getFieldProps = _useFormContext2.getFieldProps,
|
|
44
|
+
registerField = _useFormContext2.registerField,
|
|
45
|
+
unregisterField = _useFormContext2.unregisterField;
|
|
46
|
+
var fieldRules = useFiledRules(props);
|
|
47
|
+
// 当前 field 的唯一校验器
|
|
74
48
|
var fieldValidate = React.useCallback(function (value) {
|
|
75
49
|
var _Validater, _validater$validate;
|
|
76
|
-
|
|
77
50
|
if (!typeAssertion.isArrayNonEmpty(fieldRules)) {
|
|
78
51
|
return Promise.resolve(null);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
|
|
52
|
+
}
|
|
53
|
+
// TODO: rules 处理成 Async Validate 的指定结构
|
|
82
54
|
var fieldMD5 = index.stringify(field);
|
|
83
|
-
var validater = new
|
|
55
|
+
var validater = new Validater((_Validater = {}, _Validater[fieldMD5] = fieldRules, _Validater));
|
|
84
56
|
return validater.validate((_validater$validate = {}, _validater$validate[fieldMD5] = valueType !== 'number' || value === '' ? value : isNaN(value) ? value : Number(value), _validater$validate), {
|
|
85
57
|
firstFields: true
|
|
86
58
|
});
|
|
87
|
-
}, [fieldRules, field, valueType]);
|
|
88
|
-
|
|
59
|
+
}, [fieldRules, field, valueType]);
|
|
60
|
+
// 注入当前 field 及其验证规则到 Form
|
|
89
61
|
React.useEffect(function () {
|
|
90
62
|
if (!index.isValidField(field)) return;
|
|
91
63
|
registerField(field, {
|
|
@@ -98,6 +70,5 @@ var useFormField = function useFormField(props) {
|
|
|
98
70
|
}, [registerField, unregisterField, field, fieldValidate]);
|
|
99
71
|
return getFieldProps(props);
|
|
100
72
|
};
|
|
101
|
-
|
|
102
73
|
exports.useFiledRules = useFiledRules;
|
|
103
74
|
exports.useFormField = useFormField;
|