@hw-component/form 0.0.9-beta-v11 → 0.0.9-beta-v16
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/es/Form/FormItem/BasicItem.js +9 -7
- package/es/Form/FormItem/hooks.d.ts +2 -0
- package/es/Form/FormItem/hooks.js +13 -1
- package/es/Form/Label.d.ts +0 -1
- package/es/Form/Label.js +2 -5
- package/es/Form/hooks/useDefaultRender.js +2 -1
- package/es/Form/index.js +6 -4
- package/es/Form/modal.d.ts +6 -4
- package/es/index.css +21 -0
- package/lib/Form/FormItem/BasicItem.js +8 -6
- package/lib/Form/FormItem/hooks.d.ts +2 -0
- package/lib/Form/FormItem/hooks.js +13 -0
- package/lib/Form/Label.d.ts +0 -1
- package/lib/Form/Label.js +2 -5
- package/lib/Form/hooks/useDefaultRender.js +2 -1
- package/lib/Form/index.js +6 -4
- package/lib/Form/modal.d.ts +6 -4
- package/lib/index.css +21 -0
- package/package.json +1 -1
- package/src/components/Form/FormItem/BasicItem.tsx +4 -4
- package/src/components/Form/FormItem/hooks.tsx +14 -0
- package/src/components/Form/Label.tsx +1 -3
- package/src/components/Form/hooks/useDefaultRender.tsx +1 -0
- package/src/components/Form/index.less +32 -0
- package/src/components/Form/index.tsx +3 -2
- package/src/components/Form/modal.ts +7 -5
- package/src/components/Select/hooks/changeHooks.tsx +1 -1
- package/src/pages/Form/index.tsx +2 -151
|
@@ -14,7 +14,7 @@ import { Col, Form, Space } from 'antd';
|
|
|
14
14
|
import React from 'react';
|
|
15
15
|
import Index$2 from './Helper.js';
|
|
16
16
|
import { useClassName } from '../../hooks/index.js';
|
|
17
|
-
import { useHide } from './hooks.js';
|
|
17
|
+
import { usePositionClassName, useHide } from './hooks.js';
|
|
18
18
|
import { useFormContext } from '../Context/index.js';
|
|
19
19
|
import { useDefaultRender } from '../hooks/useDefaultRender.js';
|
|
20
20
|
import { useDefaultComponents } from '../hooks/index.js';
|
|
@@ -64,15 +64,17 @@ var Index = function Index(props) {
|
|
|
64
64
|
span: 24
|
|
65
65
|
} : _props$itemSpan,
|
|
66
66
|
_props$hideLabel = props.hideLabel,
|
|
67
|
-
hideLabel = _props$hideLabel === void 0 ? false : _props$hideLabel
|
|
68
|
-
|
|
69
|
-
oProps = _objectWithoutProperties(props, _excluded);
|
|
70
|
-
props.labelAlign
|
|
71
|
-
|
|
67
|
+
hideLabel = _props$hideLabel === void 0 ? false : _props$hideLabel;
|
|
68
|
+
props.labelAlign;
|
|
69
|
+
var oProps = _objectWithoutProperties(props, _excluded);
|
|
70
|
+
var _props$labelAlign = props.labelAlign,
|
|
71
|
+
align = _props$labelAlign === void 0 ? "right" : _props$labelAlign,
|
|
72
|
+
inProps = _objectWithoutProperties(props, _excluded2);
|
|
72
73
|
var _useFormContext = useFormContext(),
|
|
73
74
|
form = _useFormContext.form;
|
|
74
75
|
var defaultComponent = useDefaultComponents();
|
|
75
76
|
var defaultRender = useDefaultRender(inProps, defaultComponent);
|
|
77
|
+
var className = usePositionClassName(align);
|
|
76
78
|
var hideItem = useHide({
|
|
77
79
|
hide: hide,
|
|
78
80
|
form: form
|
|
@@ -82,12 +84,12 @@ var Index = function Index(props) {
|
|
|
82
84
|
}
|
|
83
85
|
return jsx(Col, _objectSpread(_objectSpread({}, itemSpan), {}, {
|
|
84
86
|
children: jsx(Form.Item, _objectSpread(_objectSpread({
|
|
87
|
+
className: className,
|
|
85
88
|
label: !hideLabel && jsx(Index$1, {
|
|
86
89
|
hover: hover,
|
|
87
90
|
labelWidth: labelWidth,
|
|
88
91
|
required: required,
|
|
89
92
|
colon: colon,
|
|
90
|
-
align: labelAlign,
|
|
91
93
|
children: label
|
|
92
94
|
})
|
|
93
95
|
}, oProps), {}, {
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import type { HFormInstance, HItemProps } from "../modal";
|
|
2
|
+
import type { LabelAlignModal } from "../modal";
|
|
2
3
|
export declare const useFormItemDomControl: ({ shouldUpdate, hide, dependencies, }: HItemProps) => ({ shouldUpdate, dependencies, hide, itemSpan, ...props }: import("../modal").HFormItemProps) => JSX.Element;
|
|
3
4
|
interface UseHideUpItemModal extends Omit<HItemProps, "name"> {
|
|
4
5
|
form: HFormInstance;
|
|
5
6
|
}
|
|
6
7
|
export declare const useShouldUpdate: ({ hide, shouldUpdate, }: Omit<HItemProps, "name">) => import("rc-field-form/lib/Field").ShouldUpdate<any> | undefined;
|
|
7
8
|
export declare const useHide: ({ hide, form }: UseHideUpItemModal) => boolean;
|
|
9
|
+
export declare const usePositionClassName: (position: LabelAlignModal) => string;
|
|
8
10
|
export {};
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import UpFormItem from './UpFormItem.js';
|
|
3
3
|
import RegularFormItem from './RegularFormItem.js';
|
|
4
4
|
import { useMemo } from 'react';
|
|
5
|
+
import { useClassName } from '../../hooks/index.js';
|
|
5
6
|
|
|
6
7
|
var useFormItemDomControl = function useFormItemDomControl(_ref) {
|
|
7
8
|
var shouldUpdate = _ref.shouldUpdate,
|
|
@@ -33,6 +34,17 @@ var useHide = function useHide(_ref3) {
|
|
|
33
34
|
}
|
|
34
35
|
return !!hide;
|
|
35
36
|
};
|
|
37
|
+
var classNameData = {
|
|
38
|
+
top: "hw-form-base-item-top",
|
|
39
|
+
left: "hw-form-base-item-left",
|
|
40
|
+
right: "hw-form-base-item-right",
|
|
41
|
+
topRight: "hw-form-base-item-top-right",
|
|
42
|
+
topLeft: "hw-form-base-item-top-left"
|
|
43
|
+
};
|
|
44
|
+
var usePositionClassName = function usePositionClassName(position) {
|
|
45
|
+
var className = classNameData[position];
|
|
46
|
+
return useClassName(className);
|
|
47
|
+
};
|
|
36
48
|
|
|
37
|
-
export { useFormItemDomControl, useHide, useShouldUpdate };
|
|
49
|
+
export { useFormItemDomControl, useHide, usePositionClassName, useShouldUpdate };
|
|
38
50
|
// powered by hdj
|
package/es/Form/Label.d.ts
CHANGED
package/es/Form/Label.js
CHANGED
|
@@ -19,9 +19,7 @@ var Index = function Index(_ref2) {
|
|
|
19
19
|
children = _ref2.children,
|
|
20
20
|
colon = _ref2.colon,
|
|
21
21
|
required = _ref2.required,
|
|
22
|
-
hover = _ref2.hover
|
|
23
|
-
_ref2$align = _ref2.align,
|
|
24
|
-
align = _ref2$align === void 0 ? "right" : _ref2$align;
|
|
22
|
+
hover = _ref2.hover;
|
|
25
23
|
var _useHover = useHover({
|
|
26
24
|
hover: hover
|
|
27
25
|
}),
|
|
@@ -31,8 +29,7 @@ var Index = function Index(_ref2) {
|
|
|
31
29
|
var className = useClassName(array);
|
|
32
30
|
return jsxs("div", {
|
|
33
31
|
style: {
|
|
34
|
-
width: labelWidth
|
|
35
|
-
textAlign: align
|
|
32
|
+
width: labelWidth
|
|
36
33
|
},
|
|
37
34
|
className: className,
|
|
38
35
|
children: [children, text && jsx("span", {
|
|
@@ -12,7 +12,7 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
12
12
|
import componentConfig from '../config.js';
|
|
13
13
|
import React from 'react';
|
|
14
14
|
|
|
15
|
-
var _excluded = ["render", "labelWidth", "colon", "type", "itemProps", "itemSpan", "hideLabel"];
|
|
15
|
+
var _excluded = ["render", "labelWidth", "colon", "type", "itemProps", "itemSpan", "hideLabel", "style"];
|
|
16
16
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
17
17
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
18
18
|
var useDefaultRender = function useDefaultRender(props, defaultComponents) {
|
|
@@ -25,6 +25,7 @@ var useDefaultRender = function useDefaultRender(props, defaultComponents) {
|
|
|
25
25
|
itemProps = _props$itemProps === void 0 ? {} : _props$itemProps;
|
|
26
26
|
props.itemSpan;
|
|
27
27
|
props.hideLabel;
|
|
28
|
+
props.style;
|
|
28
29
|
var componentProps = _objectWithoutProperties(props, _excluded);
|
|
29
30
|
var mergeComponent = _objectSpread(_objectSpread({}, componentConfig), defaultComponents);
|
|
30
31
|
var dom = mergeComponent[type];
|
package/es/Form/index.js
CHANGED
|
@@ -9,6 +9,7 @@ import 'core-js/modules/es.object.get-own-property-descriptors.js';
|
|
|
9
9
|
import _defineProperty from '@babel/runtime-corejs3/helpers/defineProperty';
|
|
10
10
|
import _objectWithoutProperties from '@babel/runtime-corejs3/helpers/objectWithoutProperties';
|
|
11
11
|
import 'core-js/modules/es.array.map.js';
|
|
12
|
+
import 'core-js/modules/es.function.name.js';
|
|
12
13
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
13
14
|
import { useEffect, createElement } from 'react';
|
|
14
15
|
import { Form, Row } from 'antd';
|
|
@@ -99,13 +100,14 @@ var HForm = (function (_ref) {
|
|
|
99
100
|
_itemData$hideLabel = itemData.hideLabel,
|
|
100
101
|
hideLabel = _itemData$hideLabel === void 0 ? formHideLabel : _itemData$hideLabel,
|
|
101
102
|
_itemData$labelAlign = itemData.labelAlign,
|
|
102
|
-
labelAlign = _itemData$labelAlign === void 0 ? formLabelAlign : _itemData$labelAlign
|
|
103
|
+
labelAlign = _itemData$labelAlign === void 0 ? formLabelAlign : _itemData$labelAlign,
|
|
104
|
+
name = itemData.name;
|
|
103
105
|
return /*#__PURE__*/createElement(Item, _objectSpread(_objectSpread({}, itemData), {}, {
|
|
104
|
-
|
|
106
|
+
labelAlign: labelAlign,
|
|
107
|
+
key: name || index,
|
|
105
108
|
hideLabel: hideLabel,
|
|
106
109
|
itemSpan: itemSpan,
|
|
107
|
-
labelWidth: itemLabelWidth || labelWidth
|
|
108
|
-
labelAlign: labelAlign
|
|
110
|
+
labelWidth: itemLabelWidth || labelWidth
|
|
109
111
|
}));
|
|
110
112
|
})
|
|
111
113
|
}), jsx(InitSet, {})]
|
package/es/Form/modal.d.ts
CHANGED
|
@@ -32,7 +32,8 @@ export interface DispatchModal<T = string | string[]> {
|
|
|
32
32
|
manual?: boolean;
|
|
33
33
|
reset?: boolean;
|
|
34
34
|
}
|
|
35
|
-
export
|
|
35
|
+
export type LabelAlignModal = "left" | "right" | "topLeft" | "topRight" | "top";
|
|
36
|
+
export interface HItemProps extends Omit<FormItemProps, "name" | "labelAlign"> {
|
|
36
37
|
type?: string;
|
|
37
38
|
itemProps?: ItemPropsType;
|
|
38
39
|
render?: RenderFun;
|
|
@@ -45,8 +46,9 @@ export interface HItemProps extends Omit<FormItemProps, "name"> {
|
|
|
45
46
|
dispatch?: DispatchModal;
|
|
46
47
|
itemSpan?: ColProps;
|
|
47
48
|
hideLabel?: boolean;
|
|
49
|
+
labelAlign?: LabelAlignModal;
|
|
48
50
|
}
|
|
49
|
-
export interface HFormProps<T = any, R = any> extends Omit<FormProps, "form" | "onFinish"> {
|
|
51
|
+
export interface HFormProps<T = any, R = any> extends Omit<FormProps, "form" | "onFinish" | "labelAlign"> {
|
|
50
52
|
configData: HItemProps[];
|
|
51
53
|
labelWidth?: number;
|
|
52
54
|
request?: (values: T, params?: any) => Promise<R>;
|
|
@@ -59,7 +61,7 @@ export interface HFormProps<T = any, R = any> extends Omit<FormProps, "form" | "
|
|
|
59
61
|
hideLabel?: boolean;
|
|
60
62
|
gutter?: Gutter | [Gutter, Gutter];
|
|
61
63
|
submitLoading?: boolean;
|
|
62
|
-
labelAlign?:
|
|
64
|
+
labelAlign?: LabelAlignModal;
|
|
63
65
|
}
|
|
64
66
|
export interface HFormItemProps extends HItemProps {
|
|
65
67
|
required?: boolean;
|
|
@@ -68,7 +70,7 @@ export interface HFormItemProps extends HItemProps {
|
|
|
68
70
|
itemSpan?: ColProps;
|
|
69
71
|
initValueProvider?: AddValueFormat;
|
|
70
72
|
subProvider?: AddValueFormat;
|
|
71
|
-
labelAlign?:
|
|
73
|
+
labelAlign?: LabelAlignModal;
|
|
72
74
|
}
|
|
73
75
|
export type argsFn = (...args: any[]) => void;
|
|
74
76
|
export interface FormContextProps {
|
package/es/index.css
CHANGED
|
@@ -33,6 +33,27 @@
|
|
|
33
33
|
align-items: center;
|
|
34
34
|
min-height: 32px;
|
|
35
35
|
}
|
|
36
|
+
.ant-hw-form-base-item-top-left .ant-form-item-label > label {
|
|
37
|
+
height: auto;
|
|
38
|
+
}
|
|
39
|
+
.ant-hw-form-base-item-top-left .ant-hw-form-item-colon {
|
|
40
|
+
text-align: left;
|
|
41
|
+
}
|
|
42
|
+
.ant-hw-form-base-item-top-right .ant-form-item-label > label {
|
|
43
|
+
height: auto;
|
|
44
|
+
}
|
|
45
|
+
.ant-hw-form-base-item-top-right .ant-hw-form-item-colon {
|
|
46
|
+
text-align: right;
|
|
47
|
+
}
|
|
48
|
+
.ant-hw-form-base-item-top .ant-form-item-label > label {
|
|
49
|
+
height: auto;
|
|
50
|
+
}
|
|
51
|
+
.ant-hw-form-base-item-right .ant-hw-form-item-colon {
|
|
52
|
+
text-align: right;
|
|
53
|
+
}
|
|
54
|
+
.ant-hw-form-base-item-left .ant-hw-form-item-colon {
|
|
55
|
+
text-align: left;
|
|
56
|
+
}
|
|
36
57
|
.ant-hw-color-box {
|
|
37
58
|
width: 22px;
|
|
38
59
|
height: 22px;
|
|
@@ -67,15 +67,17 @@ var Index = function Index(props) {
|
|
|
67
67
|
span: 24
|
|
68
68
|
} : _props$itemSpan,
|
|
69
69
|
_props$hideLabel = props.hideLabel,
|
|
70
|
-
hideLabel = _props$hideLabel === void 0 ? false : _props$hideLabel
|
|
71
|
-
|
|
72
|
-
oProps = _objectWithoutProperties(props, _excluded);
|
|
73
|
-
props.labelAlign
|
|
74
|
-
|
|
70
|
+
hideLabel = _props$hideLabel === void 0 ? false : _props$hideLabel;
|
|
71
|
+
props.labelAlign;
|
|
72
|
+
var oProps = _objectWithoutProperties(props, _excluded);
|
|
73
|
+
var _props$labelAlign = props.labelAlign,
|
|
74
|
+
align = _props$labelAlign === void 0 ? "right" : _props$labelAlign,
|
|
75
|
+
inProps = _objectWithoutProperties(props, _excluded2);
|
|
75
76
|
var _useFormContext = index.useFormContext(),
|
|
76
77
|
form = _useFormContext.form;
|
|
77
78
|
var defaultComponent = index$1.useDefaultComponents();
|
|
78
79
|
var defaultRender = useDefaultRender.useDefaultRender(inProps, defaultComponent);
|
|
80
|
+
var className = hooks.usePositionClassName(align);
|
|
79
81
|
var hideItem = hooks.useHide({
|
|
80
82
|
hide: hide,
|
|
81
83
|
form: form
|
|
@@ -85,12 +87,12 @@ var Index = function Index(props) {
|
|
|
85
87
|
}
|
|
86
88
|
return jsxRuntime.jsx(antd.Col, _objectSpread(_objectSpread({}, itemSpan), {}, {
|
|
87
89
|
children: jsxRuntime.jsx(antd.Form.Item, _objectSpread(_objectSpread({
|
|
90
|
+
className: className,
|
|
88
91
|
label: !hideLabel && jsxRuntime.jsx(Label.default, {
|
|
89
92
|
hover: hover,
|
|
90
93
|
labelWidth: labelWidth,
|
|
91
94
|
required: required,
|
|
92
95
|
colon: colon,
|
|
93
|
-
align: labelAlign,
|
|
94
96
|
children: label
|
|
95
97
|
})
|
|
96
98
|
}, oProps), {}, {
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import type { HFormInstance, HItemProps } from "../modal";
|
|
2
|
+
import type { LabelAlignModal } from "../modal";
|
|
2
3
|
export declare const useFormItemDomControl: ({ shouldUpdate, hide, dependencies, }: HItemProps) => ({ shouldUpdate, dependencies, hide, itemSpan, ...props }: import("../modal").HFormItemProps) => JSX.Element;
|
|
3
4
|
interface UseHideUpItemModal extends Omit<HItemProps, "name"> {
|
|
4
5
|
form: HFormInstance;
|
|
5
6
|
}
|
|
6
7
|
export declare const useShouldUpdate: ({ hide, shouldUpdate, }: Omit<HItemProps, "name">) => import("rc-field-form/lib/Field").ShouldUpdate<any> | undefined;
|
|
7
8
|
export declare const useHide: ({ hide, form }: UseHideUpItemModal) => boolean;
|
|
9
|
+
export declare const usePositionClassName: (position: LabelAlignModal) => string;
|
|
8
10
|
export {};
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
var UpFormItem = require('./UpFormItem.js');
|
|
4
4
|
var RegularFormItem = require('./RegularFormItem.js');
|
|
5
5
|
var React = require('react');
|
|
6
|
+
var index = require('../../hooks/index.js');
|
|
6
7
|
|
|
7
8
|
var useFormItemDomControl = function useFormItemDomControl(_ref) {
|
|
8
9
|
var shouldUpdate = _ref.shouldUpdate,
|
|
@@ -34,8 +35,20 @@ var useHide = function useHide(_ref3) {
|
|
|
34
35
|
}
|
|
35
36
|
return !!hide;
|
|
36
37
|
};
|
|
38
|
+
var classNameData = {
|
|
39
|
+
top: "hw-form-base-item-top",
|
|
40
|
+
left: "hw-form-base-item-left",
|
|
41
|
+
right: "hw-form-base-item-right",
|
|
42
|
+
topRight: "hw-form-base-item-top-right",
|
|
43
|
+
topLeft: "hw-form-base-item-top-left"
|
|
44
|
+
};
|
|
45
|
+
var usePositionClassName = function usePositionClassName(position) {
|
|
46
|
+
var className = classNameData[position];
|
|
47
|
+
return index.useClassName(className);
|
|
48
|
+
};
|
|
37
49
|
|
|
38
50
|
exports.useFormItemDomControl = useFormItemDomControl;
|
|
39
51
|
exports.useHide = useHide;
|
|
52
|
+
exports.usePositionClassName = usePositionClassName;
|
|
40
53
|
exports.useShouldUpdate = useShouldUpdate;
|
|
41
54
|
// powered by h
|
package/lib/Form/Label.d.ts
CHANGED
package/lib/Form/Label.js
CHANGED
|
@@ -22,9 +22,7 @@ var Index = function Index(_ref2) {
|
|
|
22
22
|
children = _ref2.children,
|
|
23
23
|
colon = _ref2.colon,
|
|
24
24
|
required = _ref2.required,
|
|
25
|
-
hover = _ref2.hover
|
|
26
|
-
_ref2$align = _ref2.align,
|
|
27
|
-
align = _ref2$align === void 0 ? "right" : _ref2$align;
|
|
25
|
+
hover = _ref2.hover;
|
|
28
26
|
var _useHover = useHover({
|
|
29
27
|
hover: hover
|
|
30
28
|
}),
|
|
@@ -34,8 +32,7 @@ var Index = function Index(_ref2) {
|
|
|
34
32
|
var className = index.useClassName(array);
|
|
35
33
|
return jsxRuntime.jsxs("div", {
|
|
36
34
|
style: {
|
|
37
|
-
width: labelWidth
|
|
38
|
-
textAlign: align
|
|
35
|
+
width: labelWidth
|
|
39
36
|
},
|
|
40
37
|
className: className,
|
|
41
38
|
children: [children, text && jsxRuntime.jsx("span", {
|
|
@@ -13,7 +13,7 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
13
13
|
var config = require('../config.js');
|
|
14
14
|
var React = require('react');
|
|
15
15
|
|
|
16
|
-
var _excluded = ["render", "labelWidth", "colon", "type", "itemProps", "itemSpan", "hideLabel"];
|
|
16
|
+
var _excluded = ["render", "labelWidth", "colon", "type", "itemProps", "itemSpan", "hideLabel", "style"];
|
|
17
17
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
18
18
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
19
19
|
var useDefaultRender = function useDefaultRender(props, defaultComponents) {
|
|
@@ -26,6 +26,7 @@ var useDefaultRender = function useDefaultRender(props, defaultComponents) {
|
|
|
26
26
|
itemProps = _props$itemProps === void 0 ? {} : _props$itemProps;
|
|
27
27
|
props.itemSpan;
|
|
28
28
|
props.hideLabel;
|
|
29
|
+
props.style;
|
|
29
30
|
var componentProps = _objectWithoutProperties(props, _excluded);
|
|
30
31
|
var mergeComponent = _objectSpread(_objectSpread({}, config.default), defaultComponents);
|
|
31
32
|
var dom = mergeComponent[type];
|
package/lib/Form/index.js
CHANGED
|
@@ -12,6 +12,7 @@ require('core-js/modules/es.object.get-own-property-descriptors.js');
|
|
|
12
12
|
var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
|
|
13
13
|
var _objectWithoutProperties = require('@babel/runtime-corejs3/helpers/objectWithoutProperties');
|
|
14
14
|
require('core-js/modules/es.array.map.js');
|
|
15
|
+
require('core-js/modules/es.function.name.js');
|
|
15
16
|
var jsxRuntime = require('react/jsx-runtime');
|
|
16
17
|
var React = require('react');
|
|
17
18
|
var antd = require('antd');
|
|
@@ -102,13 +103,14 @@ var HForm = (function (_ref) {
|
|
|
102
103
|
_itemData$hideLabel = itemData.hideLabel,
|
|
103
104
|
hideLabel = _itemData$hideLabel === void 0 ? formHideLabel : _itemData$hideLabel,
|
|
104
105
|
_itemData$labelAlign = itemData.labelAlign,
|
|
105
|
-
labelAlign = _itemData$labelAlign === void 0 ? formLabelAlign : _itemData$labelAlign
|
|
106
|
+
labelAlign = _itemData$labelAlign === void 0 ? formLabelAlign : _itemData$labelAlign,
|
|
107
|
+
name = itemData.name;
|
|
106
108
|
return /*#__PURE__*/React.createElement(index$3.default, _objectSpread(_objectSpread({}, itemData), {}, {
|
|
107
|
-
|
|
109
|
+
labelAlign: labelAlign,
|
|
110
|
+
key: name || index,
|
|
108
111
|
hideLabel: hideLabel,
|
|
109
112
|
itemSpan: itemSpan,
|
|
110
|
-
labelWidth: itemLabelWidth || labelWidth
|
|
111
|
-
labelAlign: labelAlign
|
|
113
|
+
labelWidth: itemLabelWidth || labelWidth
|
|
112
114
|
}));
|
|
113
115
|
})
|
|
114
116
|
}), jsxRuntime.jsx(InitSet.default, {})]
|
package/lib/Form/modal.d.ts
CHANGED
|
@@ -32,7 +32,8 @@ export interface DispatchModal<T = string | string[]> {
|
|
|
32
32
|
manual?: boolean;
|
|
33
33
|
reset?: boolean;
|
|
34
34
|
}
|
|
35
|
-
export
|
|
35
|
+
export type LabelAlignModal = "left" | "right" | "topLeft" | "topRight" | "top";
|
|
36
|
+
export interface HItemProps extends Omit<FormItemProps, "name" | "labelAlign"> {
|
|
36
37
|
type?: string;
|
|
37
38
|
itemProps?: ItemPropsType;
|
|
38
39
|
render?: RenderFun;
|
|
@@ -45,8 +46,9 @@ export interface HItemProps extends Omit<FormItemProps, "name"> {
|
|
|
45
46
|
dispatch?: DispatchModal;
|
|
46
47
|
itemSpan?: ColProps;
|
|
47
48
|
hideLabel?: boolean;
|
|
49
|
+
labelAlign?: LabelAlignModal;
|
|
48
50
|
}
|
|
49
|
-
export interface HFormProps<T = any, R = any> extends Omit<FormProps, "form" | "onFinish"> {
|
|
51
|
+
export interface HFormProps<T = any, R = any> extends Omit<FormProps, "form" | "onFinish" | "labelAlign"> {
|
|
50
52
|
configData: HItemProps[];
|
|
51
53
|
labelWidth?: number;
|
|
52
54
|
request?: (values: T, params?: any) => Promise<R>;
|
|
@@ -59,7 +61,7 @@ export interface HFormProps<T = any, R = any> extends Omit<FormProps, "form" | "
|
|
|
59
61
|
hideLabel?: boolean;
|
|
60
62
|
gutter?: Gutter | [Gutter, Gutter];
|
|
61
63
|
submitLoading?: boolean;
|
|
62
|
-
labelAlign?:
|
|
64
|
+
labelAlign?: LabelAlignModal;
|
|
63
65
|
}
|
|
64
66
|
export interface HFormItemProps extends HItemProps {
|
|
65
67
|
required?: boolean;
|
|
@@ -68,7 +70,7 @@ export interface HFormItemProps extends HItemProps {
|
|
|
68
70
|
itemSpan?: ColProps;
|
|
69
71
|
initValueProvider?: AddValueFormat;
|
|
70
72
|
subProvider?: AddValueFormat;
|
|
71
|
-
labelAlign?:
|
|
73
|
+
labelAlign?: LabelAlignModal;
|
|
72
74
|
}
|
|
73
75
|
export type argsFn = (...args: any[]) => void;
|
|
74
76
|
export interface FormContextProps {
|
package/lib/index.css
CHANGED
|
@@ -33,6 +33,27 @@
|
|
|
33
33
|
align-items: center;
|
|
34
34
|
min-height: 32px;
|
|
35
35
|
}
|
|
36
|
+
.ant-hw-form-base-item-top-left .ant-form-item-label > label {
|
|
37
|
+
height: auto;
|
|
38
|
+
}
|
|
39
|
+
.ant-hw-form-base-item-top-left .ant-hw-form-item-colon {
|
|
40
|
+
text-align: left;
|
|
41
|
+
}
|
|
42
|
+
.ant-hw-form-base-item-top-right .ant-form-item-label > label {
|
|
43
|
+
height: auto;
|
|
44
|
+
}
|
|
45
|
+
.ant-hw-form-base-item-top-right .ant-hw-form-item-colon {
|
|
46
|
+
text-align: right;
|
|
47
|
+
}
|
|
48
|
+
.ant-hw-form-base-item-top .ant-form-item-label > label {
|
|
49
|
+
height: auto;
|
|
50
|
+
}
|
|
51
|
+
.ant-hw-form-base-item-right .ant-hw-form-item-colon {
|
|
52
|
+
text-align: right;
|
|
53
|
+
}
|
|
54
|
+
.ant-hw-form-base-item-left .ant-hw-form-item-colon {
|
|
55
|
+
text-align: left;
|
|
56
|
+
}
|
|
36
57
|
.ant-hw-color-box {
|
|
37
58
|
width: 22px;
|
|
38
59
|
height: 22px;
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@ import { Form, Space, Col } from "antd";
|
|
|
3
3
|
import React from "react";
|
|
4
4
|
import Helper from "./Helper";
|
|
5
5
|
import { useClassName } from "../../hooks";
|
|
6
|
-
import { useHide } from "./hooks";
|
|
6
|
+
import { useHide, usePositionClassName } from "./hooks";
|
|
7
7
|
import { useFormContext } from "../Context";
|
|
8
8
|
import type { HItemProps } from "../modal";
|
|
9
9
|
import { useDefaultRender } from "../hooks/useDefaultRender";
|
|
@@ -30,7 +30,6 @@ const Content: React.FC<ContentProps> = ({
|
|
|
30
30
|
</Space>
|
|
31
31
|
);
|
|
32
32
|
};
|
|
33
|
-
|
|
34
33
|
const Index: React.FC<HFormItemProps> = (props) => {
|
|
35
34
|
const {
|
|
36
35
|
hover,
|
|
@@ -48,10 +47,11 @@ const Index: React.FC<HFormItemProps> = (props) => {
|
|
|
48
47
|
labelAlign,
|
|
49
48
|
...oProps
|
|
50
49
|
} = props;
|
|
51
|
-
const {labelAlign:align
|
|
50
|
+
const { labelAlign: align = "right", ...inProps } = props;
|
|
52
51
|
const { form } = useFormContext();
|
|
53
52
|
const defaultComponent = useDefaultComponents();
|
|
54
53
|
const defaultRender = useDefaultRender(inProps, defaultComponent);
|
|
54
|
+
const className = usePositionClassName(align);
|
|
55
55
|
const hideItem = useHide({ hide, form });
|
|
56
56
|
if (hideItem) {
|
|
57
57
|
return null;
|
|
@@ -59,6 +59,7 @@ const Index: React.FC<HFormItemProps> = (props) => {
|
|
|
59
59
|
return (
|
|
60
60
|
<Col {...itemSpan}>
|
|
61
61
|
<Form.Item
|
|
62
|
+
className={className}
|
|
62
63
|
label={
|
|
63
64
|
!hideLabel && (
|
|
64
65
|
<Label
|
|
@@ -66,7 +67,6 @@ const Index: React.FC<HFormItemProps> = (props) => {
|
|
|
66
67
|
labelWidth={labelWidth}
|
|
67
68
|
required={required}
|
|
68
69
|
colon={colon}
|
|
69
|
-
align={labelAlign}
|
|
70
70
|
>
|
|
71
71
|
{label}
|
|
72
72
|
</Label>
|
|
@@ -2,6 +2,8 @@ import UpFormItem from "./UpFormItem";
|
|
|
2
2
|
import RegularFormItem from "./RegularFormItem";
|
|
3
3
|
import { useMemo } from "react";
|
|
4
4
|
import type { HFormInstance, HItemProps } from "../modal";
|
|
5
|
+
import type { LabelAlignModal } from "../modal";
|
|
6
|
+
import { useClassName } from "../../hooks";
|
|
5
7
|
|
|
6
8
|
export const useFormItemDomControl = ({
|
|
7
9
|
shouldUpdate,
|
|
@@ -38,3 +40,15 @@ export const useHide = ({ hide, form }: UseHideUpItemModal) => {
|
|
|
38
40
|
}
|
|
39
41
|
return !!hide;
|
|
40
42
|
};
|
|
43
|
+
|
|
44
|
+
const classNameData = {
|
|
45
|
+
top: "hw-form-base-item-top",
|
|
46
|
+
left: "hw-form-base-item-left",
|
|
47
|
+
right: "hw-form-base-item-right",
|
|
48
|
+
topRight: "hw-form-base-item-top-right",
|
|
49
|
+
topLeft: "hw-form-base-item-top-left",
|
|
50
|
+
};
|
|
51
|
+
export const usePositionClassName = (position: LabelAlignModal) => {
|
|
52
|
+
const className = classNameData[position];
|
|
53
|
+
return useClassName(className);
|
|
54
|
+
};
|
|
@@ -9,7 +9,6 @@ interface IProps {
|
|
|
9
9
|
hover?: string | HoverModal;
|
|
10
10
|
colon?: boolean;
|
|
11
11
|
required?: boolean;
|
|
12
|
-
align?: "left" | "right";
|
|
13
12
|
}
|
|
14
13
|
const useHover = ({ hover }: IProps) => {
|
|
15
14
|
if (!hover || typeof hover === "string") {
|
|
@@ -26,7 +25,6 @@ const Index: React.FC<IProps> = ({
|
|
|
26
25
|
colon,
|
|
27
26
|
required,
|
|
28
27
|
hover,
|
|
29
|
-
align = "right",
|
|
30
28
|
}) => {
|
|
31
29
|
const { text, icon } = useHover({ hover });
|
|
32
30
|
const array = [
|
|
@@ -36,7 +34,7 @@ const Index: React.FC<IProps> = ({
|
|
|
36
34
|
|
|
37
35
|
const className = useClassName(array);
|
|
38
36
|
return (
|
|
39
|
-
<div style={{ width: labelWidth
|
|
37
|
+
<div style={{ width: labelWidth }} className={className}>
|
|
40
38
|
{children}
|
|
41
39
|
{text && (
|
|
42
40
|
<span style={{ marginLeft: 4 }}>
|
|
@@ -20,3 +20,35 @@
|
|
|
20
20
|
align-items: center;
|
|
21
21
|
min-height: 32px;
|
|
22
22
|
}
|
|
23
|
+
.@{ant-prefix}-hw-form-base-item-top-left {
|
|
24
|
+
.@{ant-prefix}-form-item-label > label {
|
|
25
|
+
height: auto;
|
|
26
|
+
}
|
|
27
|
+
.@{ant-prefix}-hw-form-item-colon {
|
|
28
|
+
text-align: left;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
.@{ant-prefix}-hw-form-base-item-top-right {
|
|
32
|
+
.@{ant-prefix}-form-item-label > label {
|
|
33
|
+
height: auto;
|
|
34
|
+
}
|
|
35
|
+
.@{ant-prefix}-hw-form-item-colon {
|
|
36
|
+
text-align: right;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
.@{ant-prefix}-hw-form-base-item-top {
|
|
40
|
+
.@{ant-prefix}-form-item-label > label {
|
|
41
|
+
height: auto;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
.@{ant-prefix}-hw-form-base-item-right {
|
|
45
|
+
.@{ant-prefix}-hw-form-item-colon {
|
|
46
|
+
text-align: right;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.@{ant-prefix}-hw-form-base-item-left {
|
|
51
|
+
.@{ant-prefix}-hw-form-item-colon {
|
|
52
|
+
text-align: left;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -80,15 +80,16 @@ export default ({
|
|
|
80
80
|
labelWidth: itemLabelWidth,
|
|
81
81
|
hideLabel = formHideLabel,
|
|
82
82
|
labelAlign = formLabelAlign,
|
|
83
|
+
name
|
|
83
84
|
} = itemData;
|
|
84
85
|
return (
|
|
85
86
|
<Item
|
|
86
87
|
{...itemData}
|
|
87
|
-
|
|
88
|
+
labelAlign={labelAlign}
|
|
89
|
+
key={name||index}
|
|
88
90
|
hideLabel={hideLabel}
|
|
89
91
|
itemSpan={itemSpan}
|
|
90
92
|
labelWidth={itemLabelWidth || labelWidth}
|
|
91
|
-
labelAlign={labelAlign}
|
|
92
93
|
/>
|
|
93
94
|
);
|
|
94
95
|
})}
|
|
@@ -75,7 +75,9 @@ export interface DispatchModal<T = string | string[]> {
|
|
|
75
75
|
manual?: boolean;
|
|
76
76
|
reset?: boolean;
|
|
77
77
|
}
|
|
78
|
-
export
|
|
78
|
+
export type LabelAlignModal = "left" | "right" | "topLeft" | "topRight" | "top";
|
|
79
|
+
|
|
80
|
+
export interface HItemProps extends Omit<FormItemProps, "name"|"labelAlign"> {
|
|
79
81
|
type?: string;
|
|
80
82
|
itemProps?: ItemPropsType;
|
|
81
83
|
render?: RenderFun;
|
|
@@ -90,10 +92,10 @@ export interface HItemProps extends Omit<FormItemProps, "name"> {
|
|
|
90
92
|
dispatch?: DispatchModal;
|
|
91
93
|
itemSpan?: ColProps;
|
|
92
94
|
hideLabel?: boolean;
|
|
95
|
+
labelAlign?: LabelAlignModal;
|
|
93
96
|
}
|
|
94
|
-
|
|
95
97
|
export interface HFormProps<T = any, R = any>
|
|
96
|
-
extends Omit<FormProps, "form" | "onFinish"> {
|
|
98
|
+
extends Omit<FormProps, "form" | "onFinish"|"labelAlign"> {
|
|
97
99
|
configData: HItemProps[];
|
|
98
100
|
labelWidth?: number;
|
|
99
101
|
request?: (values: T, params?: any) => Promise<R>;
|
|
@@ -106,7 +108,7 @@ export interface HFormProps<T = any, R = any>
|
|
|
106
108
|
hideLabel?: boolean;
|
|
107
109
|
gutter?: Gutter | [Gutter, Gutter];
|
|
108
110
|
submitLoading?: boolean;
|
|
109
|
-
labelAlign?:
|
|
111
|
+
labelAlign?: LabelAlignModal;
|
|
110
112
|
}
|
|
111
113
|
export interface HFormItemProps extends HItemProps {
|
|
112
114
|
required?: boolean;
|
|
@@ -115,7 +117,7 @@ export interface HFormItemProps extends HItemProps {
|
|
|
115
117
|
itemSpan?: ColProps;
|
|
116
118
|
initValueProvider?: AddValueFormat;
|
|
117
119
|
subProvider?: AddValueFormat;
|
|
118
|
-
labelAlign?:
|
|
120
|
+
labelAlign?: LabelAlignModal;
|
|
119
121
|
}
|
|
120
122
|
export type argsFn = (...args: any[]) => void;
|
|
121
123
|
export interface FormContextProps {
|
package/src/pages/Form/index.tsx
CHANGED
|
@@ -14,61 +14,6 @@ const formData = (options) => {
|
|
|
14
14
|
},
|
|
15
15
|
];
|
|
16
16
|
return [
|
|
17
|
-
{
|
|
18
|
-
label: "输入框",
|
|
19
|
-
name: "name",
|
|
20
|
-
rules: [
|
|
21
|
-
() => {
|
|
22
|
-
return {
|
|
23
|
-
required: true,
|
|
24
|
-
};
|
|
25
|
-
},
|
|
26
|
-
],
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
label: "数字",
|
|
30
|
-
name: "sz",
|
|
31
|
-
type: "inputNumber",
|
|
32
|
-
rules: [{ required: true }],
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
label: "下拉框213",
|
|
36
|
-
name: "select",
|
|
37
|
-
type: "select",
|
|
38
|
-
dispatch: {
|
|
39
|
-
fnKey: "reload",
|
|
40
|
-
dependencies: ["selectInput", "sz"],
|
|
41
|
-
},
|
|
42
|
-
itemProps: {
|
|
43
|
-
options: op,
|
|
44
|
-
showSearch: true,
|
|
45
|
-
allowClear:true,
|
|
46
|
-
mode:"multiple"
|
|
47
|
-
},
|
|
48
|
-
rules: [{ required: true }],
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
label: "下拉输入框",
|
|
52
|
-
name: "selectInput",
|
|
53
|
-
type: "selectInput",
|
|
54
|
-
rules: [{ required: true }],
|
|
55
|
-
itemProps: {
|
|
56
|
-
valueName: {
|
|
57
|
-
select: "op",
|
|
58
|
-
input: "opInput",
|
|
59
|
-
},
|
|
60
|
-
selectProps: {
|
|
61
|
-
options: [{ label: "测试", value: 1 }],
|
|
62
|
-
},
|
|
63
|
-
},
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
label: "按钮输入框",
|
|
67
|
-
name: "buttonInput",
|
|
68
|
-
type: "buttonInput",
|
|
69
|
-
children: "点击",
|
|
70
|
-
rules: [{ required: true }],
|
|
71
|
-
},
|
|
72
17
|
{
|
|
73
18
|
label: "选择",
|
|
74
19
|
name: "checkboxGroup",
|
|
@@ -80,6 +25,7 @@ const formData = (options) => {
|
|
|
80
25
|
{ value: "选择2", key: "check2" },
|
|
81
26
|
],
|
|
82
27
|
direction: "vertical",
|
|
28
|
+
labelAlign: "topLeft",
|
|
83
29
|
},
|
|
84
30
|
{
|
|
85
31
|
label: "开关",
|
|
@@ -93,100 +39,6 @@ const formData = (options) => {
|
|
|
93
39
|
},
|
|
94
40
|
},
|
|
95
41
|
},
|
|
96
|
-
{
|
|
97
|
-
label: "时间",
|
|
98
|
-
name: "datePicker",
|
|
99
|
-
type: "datePicker",
|
|
100
|
-
hover: "时间选择",
|
|
101
|
-
helper: "帮助我",
|
|
102
|
-
itemProps: {
|
|
103
|
-
subProvider: (item, val) => {
|
|
104
|
-
return {
|
|
105
|
-
datePicker: "fakfjkfjsklfjskljsak",
|
|
106
|
-
};
|
|
107
|
-
},
|
|
108
|
-
},
|
|
109
|
-
rules: [{ required: true }],
|
|
110
|
-
},
|
|
111
|
-
{
|
|
112
|
-
label: "时间段",
|
|
113
|
-
name: "rangePicker",
|
|
114
|
-
type: "rangePicker",
|
|
115
|
-
helper: "帮助我",
|
|
116
|
-
rules: [{ required: true }],
|
|
117
|
-
itemProps: {
|
|
118
|
-
valueMap: {
|
|
119
|
-
start: "testStart",
|
|
120
|
-
end: "testEnd",
|
|
121
|
-
},
|
|
122
|
-
},
|
|
123
|
-
},
|
|
124
|
-
{
|
|
125
|
-
label: "时分秒",
|
|
126
|
-
name: "timePicker",
|
|
127
|
-
type: "timePicker",
|
|
128
|
-
rules: [{ required: true }],
|
|
129
|
-
},
|
|
130
|
-
{
|
|
131
|
-
label: "文件",
|
|
132
|
-
name: "upload",
|
|
133
|
-
type: "upload",
|
|
134
|
-
rules: [{ required: true }],
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
label: "地址文件",
|
|
138
|
-
name: "urlUpload",
|
|
139
|
-
type: "urlUpload",
|
|
140
|
-
itemProps: {
|
|
141
|
-
maxCount: 3,
|
|
142
|
-
},
|
|
143
|
-
rules: [{ required: true }],
|
|
144
|
-
},
|
|
145
|
-
{
|
|
146
|
-
label: "颜色",
|
|
147
|
-
name: "colorInput",
|
|
148
|
-
type: "colorInput",
|
|
149
|
-
},
|
|
150
|
-
{
|
|
151
|
-
label: "测试",
|
|
152
|
-
type: "test",
|
|
153
|
-
},
|
|
154
|
-
{
|
|
155
|
-
label: "多级",
|
|
156
|
-
type: "cascader",
|
|
157
|
-
name: "cascader",
|
|
158
|
-
itemProps: {
|
|
159
|
-
options: [
|
|
160
|
-
{
|
|
161
|
-
value: "多选1",
|
|
162
|
-
key: 1,
|
|
163
|
-
},
|
|
164
|
-
],
|
|
165
|
-
},
|
|
166
|
-
},
|
|
167
|
-
{
|
|
168
|
-
label: "验证码",
|
|
169
|
-
type: "verificationCodeInput",
|
|
170
|
-
name: "verificationCodeInput",
|
|
171
|
-
itemProps: {
|
|
172
|
-
request: () => {
|
|
173
|
-
return Promise.resolve({ code: 200 });
|
|
174
|
-
},
|
|
175
|
-
},
|
|
176
|
-
},
|
|
177
|
-
{
|
|
178
|
-
label: "去空input",
|
|
179
|
-
type: "trimInput",
|
|
180
|
-
name: "trimInput",
|
|
181
|
-
},
|
|
182
|
-
{
|
|
183
|
-
label: "去空textArea",
|
|
184
|
-
type: "trimTextArea",
|
|
185
|
-
name: "trimTextArea",
|
|
186
|
-
},
|
|
187
|
-
{
|
|
188
|
-
type: "submit",
|
|
189
|
-
},
|
|
190
42
|
{
|
|
191
43
|
type: "submit",
|
|
192
44
|
itemProps: {
|
|
@@ -267,9 +119,8 @@ export default () => {
|
|
|
267
119
|
configData={formData(options)}
|
|
268
120
|
labelWidth={200}
|
|
269
121
|
form={form}
|
|
270
|
-
labelAlign={"
|
|
122
|
+
labelAlign={"right"}
|
|
271
123
|
submitLoading={true}
|
|
272
|
-
itemSpan={{ span: 12, xs: 24, md: 12 }}
|
|
273
124
|
onFinish={(value) => {
|
|
274
125
|
console.log(value);
|
|
275
126
|
}}
|