@hw-component/form 0.0.9-beta-v12 → 0.0.9-beta-v18

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.
@@ -14,12 +14,13 @@ 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';
21
+ import { useFormConfigContext } from '../Context/FormConfigProvider.js';
21
22
 
22
- var _excluded = ["hover", "labelWidth", "required", "colon", "label", "itemProps", "children", "helper", "hide", "render", "itemSpan", "hideLabel", "labelAlign"],
23
+ var _excluded = ["hover", "labelWidth", "required", "colon", "label", "itemProps", "children", "helper", "hide", "render", "itemSpan", "hideLabel", "labelAlign", "style"],
23
24
  _excluded2 = ["labelAlign"];
24
25
  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; }
25
26
  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; }
@@ -64,15 +65,19 @@ var Index = function Index(props) {
64
65
  span: 24
65
66
  } : _props$itemSpan,
66
67
  _props$hideLabel = props.hideLabel,
67
- hideLabel = _props$hideLabel === void 0 ? false : _props$hideLabel,
68
- labelAlign = props.labelAlign,
68
+ hideLabel = _props$hideLabel === void 0 ? false : _props$hideLabel;
69
+ props.labelAlign;
70
+ var style = props.style,
69
71
  oProps = _objectWithoutProperties(props, _excluded);
70
- props.labelAlign;
71
- var inProps = _objectWithoutProperties(props, _excluded2);
72
+ var _props$labelAlign = props.labelAlign,
73
+ align = _props$labelAlign === void 0 ? "right" : _props$labelAlign,
74
+ inProps = _objectWithoutProperties(props, _excluded2);
72
75
  var _useFormContext = useFormContext(),
73
76
  form = _useFormContext.form;
74
77
  var defaultComponent = useDefaultComponents();
78
+ var formItemStyle = useFormConfigContext("formItemStyle");
75
79
  var defaultRender = useDefaultRender(inProps, defaultComponent);
80
+ var className = usePositionClassName(align);
76
81
  var hideItem = useHide({
77
82
  hide: hide,
78
83
  form: form
@@ -82,15 +87,16 @@ var Index = function Index(props) {
82
87
  }
83
88
  return jsx(Col, _objectSpread(_objectSpread({}, itemSpan), {}, {
84
89
  children: jsx(Form.Item, _objectSpread(_objectSpread({
90
+ className: className,
85
91
  label: !hideLabel && jsx(Index$1, {
86
92
  hover: hover,
87
93
  labelWidth: labelWidth,
88
94
  required: required,
89
95
  colon: colon,
90
- align: labelAlign,
91
96
  children: label
92
97
  })
93
98
  }, oProps), {}, {
99
+ style: style || formItemStyle,
94
100
  colon: false,
95
101
  required: false,
96
102
  children: jsx(Content, {
@@ -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
@@ -5,7 +5,6 @@ interface IProps {
5
5
  hover?: string | HoverModal;
6
6
  colon?: boolean;
7
7
  required?: boolean;
8
- align?: "left" | "right";
9
8
  }
10
9
  declare const Index: React.FC<IProps>;
11
10
  export default Index;
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", {
@@ -1,3 +1,3 @@
1
1
  import type { HFormProps } from "./modal";
2
- declare const _default: ({ configData, labelWidth, form, request, onFinish, infoRequest, valueType, initialValues, params, onValuesChange, itemSpan, hideLabel: formHideLabel, gutter, submitLoading, labelAlign: formLabelAlign, ...props }: HFormProps) => JSX.Element;
2
+ declare const _default: ({ configData, labelWidth, form, request, onFinish, infoRequest, valueType, initialValues, params, onValuesChange, itemSpan, hideLabel: formHideLabel, gutter, submitLoading, labelAlign: formLabelAlign, formItemStyle, ...props }: HFormProps) => JSX.Element;
3
3
  export default _default;
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';
@@ -19,7 +20,7 @@ import Index from '../PageHandler/index.js';
19
20
  import useInitConfigData from './hooks/useInitConfigData.js';
20
21
  import InitSet from './InitSet.js';
21
22
 
22
- var _excluded = ["configData", "labelWidth", "form", "request", "onFinish", "infoRequest", "valueType", "initialValues", "params", "onValuesChange", "itemSpan", "hideLabel", "gutter", "submitLoading", "labelAlign"];
23
+ var _excluded = ["configData", "labelWidth", "form", "request", "onFinish", "infoRequest", "valueType", "initialValues", "params", "onValuesChange", "itemSpan", "hideLabel", "gutter", "submitLoading", "labelAlign", "formItemStyle"];
23
24
  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; }
24
25
  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; }
25
26
  var HForm = (function (_ref) {
@@ -41,6 +42,7 @@ var HForm = (function (_ref) {
41
42
  gutter = _ref.gutter,
42
43
  submitLoading = _ref.submitLoading,
43
44
  formLabelAlign = _ref.labelAlign,
45
+ formItemStyle = _ref.formItemStyle,
44
46
  props = _objectWithoutProperties(_ref, _excluded);
45
47
  var hForm = useCurrentForm(form);
46
48
  var _useInitConfigData = useInitConfigData({
@@ -99,13 +101,17 @@ var HForm = (function (_ref) {
99
101
  _itemData$hideLabel = itemData.hideLabel,
100
102
  hideLabel = _itemData$hideLabel === void 0 ? formHideLabel : _itemData$hideLabel,
101
103
  _itemData$labelAlign = itemData.labelAlign,
102
- labelAlign = _itemData$labelAlign === void 0 ? formLabelAlign : _itemData$labelAlign;
104
+ labelAlign = _itemData$labelAlign === void 0 ? formLabelAlign : _itemData$labelAlign,
105
+ name = itemData.name,
106
+ _itemData$style = itemData.style,
107
+ style = _itemData$style === void 0 ? formItemStyle : _itemData$style;
103
108
  return /*#__PURE__*/createElement(Item, _objectSpread(_objectSpread({}, itemData), {}, {
104
- key: index,
109
+ labelAlign: labelAlign,
110
+ key: name || index,
111
+ style: style,
105
112
  hideLabel: hideLabel,
106
113
  itemSpan: itemSpan,
107
- labelWidth: itemLabelWidth || labelWidth,
108
- labelAlign: labelAlign
114
+ labelWidth: itemLabelWidth || labelWidth
109
115
  }));
110
116
  })
111
117
  }), jsx(InitSet, {})]
@@ -32,7 +32,8 @@ export interface DispatchModal<T = string | string[]> {
32
32
  manual?: boolean;
33
33
  reset?: boolean;
34
34
  }
35
- export interface HItemProps extends Omit<FormItemProps, "name"> {
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,8 @@ 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?: "left" | "right";
64
+ labelAlign?: LabelAlignModal;
65
+ formItemStyle?: React.CSSProperties;
63
66
  }
64
67
  export interface HFormItemProps extends HItemProps {
65
68
  required?: boolean;
@@ -68,7 +71,7 @@ export interface HFormItemProps extends HItemProps {
68
71
  itemSpan?: ColProps;
69
72
  initValueProvider?: AddValueFormat;
70
73
  subProvider?: AddValueFormat;
71
- labelAlign?: "left" | "right";
74
+ labelAlign?: LabelAlignModal;
72
75
  }
73
76
  export type argsFn = (...args: any[]) => void;
74
77
  export interface FormContextProps {
@@ -97,6 +100,7 @@ export interface IFormConfigContextProps {
97
100
  dateRanges?: RangePickerProps["ranges"];
98
101
  uploadProps?: ConfigUploadProps;
99
102
  defaultComponent?: DefaultComponentModal;
103
+ formItemStyle?: React.CSSProperties;
100
104
  }
101
105
  interface ActionModal {
102
106
  key: string;
package/es/config.js CHANGED
@@ -58,7 +58,8 @@ var baseConfig = {
58
58
  }(),
59
59
  maxSize: 1024 * 1024 * 1.8
60
60
  },
61
- defaultComponent: {}
61
+ defaultComponent: {},
62
+ formItemStyle: {}
62
63
  };
63
64
 
64
65
  export { baseConfig };
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;
@@ -21,8 +21,9 @@ var hooks = require('./hooks.js');
21
21
  var index = require('../Context/index.js');
22
22
  var useDefaultRender = require('../hooks/useDefaultRender.js');
23
23
  var index$1 = require('../hooks/index.js');
24
+ var FormConfigProvider = require('../Context/FormConfigProvider.js');
24
25
 
25
- var _excluded = ["hover", "labelWidth", "required", "colon", "label", "itemProps", "children", "helper", "hide", "render", "itemSpan", "hideLabel", "labelAlign"],
26
+ var _excluded = ["hover", "labelWidth", "required", "colon", "label", "itemProps", "children", "helper", "hide", "render", "itemSpan", "hideLabel", "labelAlign", "style"],
26
27
  _excluded2 = ["labelAlign"];
27
28
  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; }
28
29
  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; }
@@ -67,15 +68,19 @@ var Index = function Index(props) {
67
68
  span: 24
68
69
  } : _props$itemSpan,
69
70
  _props$hideLabel = props.hideLabel,
70
- hideLabel = _props$hideLabel === void 0 ? false : _props$hideLabel,
71
- labelAlign = props.labelAlign,
71
+ hideLabel = _props$hideLabel === void 0 ? false : _props$hideLabel;
72
+ props.labelAlign;
73
+ var style = props.style,
72
74
  oProps = _objectWithoutProperties(props, _excluded);
73
- props.labelAlign;
74
- var inProps = _objectWithoutProperties(props, _excluded2);
75
+ var _props$labelAlign = props.labelAlign,
76
+ align = _props$labelAlign === void 0 ? "right" : _props$labelAlign,
77
+ inProps = _objectWithoutProperties(props, _excluded2);
75
78
  var _useFormContext = index.useFormContext(),
76
79
  form = _useFormContext.form;
77
80
  var defaultComponent = index$1.useDefaultComponents();
81
+ var formItemStyle = FormConfigProvider.useFormConfigContext("formItemStyle");
78
82
  var defaultRender = useDefaultRender.useDefaultRender(inProps, defaultComponent);
83
+ var className = hooks.usePositionClassName(align);
79
84
  var hideItem = hooks.useHide({
80
85
  hide: hide,
81
86
  form: form
@@ -85,15 +90,16 @@ var Index = function Index(props) {
85
90
  }
86
91
  return jsxRuntime.jsx(antd.Col, _objectSpread(_objectSpread({}, itemSpan), {}, {
87
92
  children: jsxRuntime.jsx(antd.Form.Item, _objectSpread(_objectSpread({
93
+ className: className,
88
94
  label: !hideLabel && jsxRuntime.jsx(Label.default, {
89
95
  hover: hover,
90
96
  labelWidth: labelWidth,
91
97
  required: required,
92
98
  colon: colon,
93
- align: labelAlign,
94
99
  children: label
95
100
  })
96
101
  }, oProps), {}, {
102
+ style: style || formItemStyle,
97
103
  colon: false,
98
104
  required: false,
99
105
  children: jsxRuntime.jsx(Content, {
@@ -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
@@ -5,7 +5,6 @@ interface IProps {
5
5
  hover?: string | HoverModal;
6
6
  colon?: boolean;
7
7
  required?: boolean;
8
- align?: "left" | "right";
9
8
  }
10
9
  declare const Index: React.FC<IProps>;
11
10
  export default Index;
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", {
@@ -1,3 +1,3 @@
1
1
  import type { HFormProps } from "./modal";
2
- declare const _default: ({ configData, labelWidth, form, request, onFinish, infoRequest, valueType, initialValues, params, onValuesChange, itemSpan, hideLabel: formHideLabel, gutter, submitLoading, labelAlign: formLabelAlign, ...props }: HFormProps) => JSX.Element;
2
+ declare const _default: ({ configData, labelWidth, form, request, onFinish, infoRequest, valueType, initialValues, params, onValuesChange, itemSpan, hideLabel: formHideLabel, gutter, submitLoading, labelAlign: formLabelAlign, formItemStyle, ...props }: HFormProps) => JSX.Element;
3
3
  export default _default;
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');
@@ -22,7 +23,7 @@ var index$1 = require('../PageHandler/index.js');
22
23
  var useInitConfigData = require('./hooks/useInitConfigData.js');
23
24
  var InitSet = require('./InitSet.js');
24
25
 
25
- var _excluded = ["configData", "labelWidth", "form", "request", "onFinish", "infoRequest", "valueType", "initialValues", "params", "onValuesChange", "itemSpan", "hideLabel", "gutter", "submitLoading", "labelAlign"];
26
+ var _excluded = ["configData", "labelWidth", "form", "request", "onFinish", "infoRequest", "valueType", "initialValues", "params", "onValuesChange", "itemSpan", "hideLabel", "gutter", "submitLoading", "labelAlign", "formItemStyle"];
26
27
  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; }
27
28
  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; }
28
29
  var HForm = (function (_ref) {
@@ -44,6 +45,7 @@ var HForm = (function (_ref) {
44
45
  gutter = _ref.gutter,
45
46
  submitLoading = _ref.submitLoading,
46
47
  formLabelAlign = _ref.labelAlign,
48
+ formItemStyle = _ref.formItemStyle,
47
49
  props = _objectWithoutProperties(_ref, _excluded);
48
50
  var hForm = index.useCurrentForm(form);
49
51
  var _useInitConfigData = useInitConfigData.default({
@@ -102,13 +104,17 @@ var HForm = (function (_ref) {
102
104
  _itemData$hideLabel = itemData.hideLabel,
103
105
  hideLabel = _itemData$hideLabel === void 0 ? formHideLabel : _itemData$hideLabel,
104
106
  _itemData$labelAlign = itemData.labelAlign,
105
- labelAlign = _itemData$labelAlign === void 0 ? formLabelAlign : _itemData$labelAlign;
107
+ labelAlign = _itemData$labelAlign === void 0 ? formLabelAlign : _itemData$labelAlign,
108
+ name = itemData.name,
109
+ _itemData$style = itemData.style,
110
+ style = _itemData$style === void 0 ? formItemStyle : _itemData$style;
106
111
  return /*#__PURE__*/React.createElement(index$3.default, _objectSpread(_objectSpread({}, itemData), {}, {
107
- key: index,
112
+ labelAlign: labelAlign,
113
+ key: name || index,
114
+ style: style,
108
115
  hideLabel: hideLabel,
109
116
  itemSpan: itemSpan,
110
- labelWidth: itemLabelWidth || labelWidth,
111
- labelAlign: labelAlign
117
+ labelWidth: itemLabelWidth || labelWidth
112
118
  }));
113
119
  })
114
120
  }), jsxRuntime.jsx(InitSet.default, {})]
@@ -32,7 +32,8 @@ export interface DispatchModal<T = string | string[]> {
32
32
  manual?: boolean;
33
33
  reset?: boolean;
34
34
  }
35
- export interface HItemProps extends Omit<FormItemProps, "name"> {
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,8 @@ 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?: "left" | "right";
64
+ labelAlign?: LabelAlignModal;
65
+ formItemStyle?: React.CSSProperties;
63
66
  }
64
67
  export interface HFormItemProps extends HItemProps {
65
68
  required?: boolean;
@@ -68,7 +71,7 @@ export interface HFormItemProps extends HItemProps {
68
71
  itemSpan?: ColProps;
69
72
  initValueProvider?: AddValueFormat;
70
73
  subProvider?: AddValueFormat;
71
- labelAlign?: "left" | "right";
74
+ labelAlign?: LabelAlignModal;
72
75
  }
73
76
  export type argsFn = (...args: any[]) => void;
74
77
  export interface FormContextProps {
@@ -97,6 +100,7 @@ export interface IFormConfigContextProps {
97
100
  dateRanges?: RangePickerProps["ranges"];
98
101
  uploadProps?: ConfigUploadProps;
99
102
  defaultComponent?: DefaultComponentModal;
103
+ formItemStyle?: React.CSSProperties;
100
104
  }
101
105
  interface ActionModal {
102
106
  key: string;
package/lib/config.js CHANGED
@@ -59,7 +59,8 @@ var baseConfig = {
59
59
  }(),
60
60
  maxSize: 1024 * 1024 * 1.8
61
61
  },
62
- defaultComponent: {}
62
+ defaultComponent: {},
63
+ formItemStyle: {}
63
64
  };
64
65
 
65
66
  exports.baseConfig = baseConfig;
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hw-component/form",
3
- "version": "0.0.9-beta-v12",
3
+ "version": "0.0.9-beta-v18",
4
4
  "description": "基于antd二次开发",
5
5
  "repository": {
6
6
  "type": "git",
@@ -3,12 +3,13 @@ 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";
10
10
  import type { HFormItemProps } from "../modal";
11
11
  import { useDefaultComponents } from "../hooks";
12
+ import {useFormConfigContext} from "../Context/FormConfigProvider";
12
13
 
13
14
  interface ContentProps extends Omit<HItemProps, "name"> {
14
15
  value?: any;
@@ -30,7 +31,6 @@ const Content: React.FC<ContentProps> = ({
30
31
  </Space>
31
32
  );
32
33
  };
33
-
34
34
  const Index: React.FC<HFormItemProps> = (props) => {
35
35
  const {
36
36
  hover,
@@ -46,12 +46,15 @@ const Index: React.FC<HFormItemProps> = (props) => {
46
46
  itemSpan = { span: 24 },
47
47
  hideLabel = false,
48
48
  labelAlign,
49
+ style,
49
50
  ...oProps
50
51
  } = props;
51
- const { labelAlign: align, ...inProps } = props;
52
+ const { labelAlign: align = "right", ...inProps } = props;
52
53
  const { form } = useFormContext();
53
54
  const defaultComponent = useDefaultComponents();
55
+ const formItemStyle = useFormConfigContext("formItemStyle");
54
56
  const defaultRender = useDefaultRender(inProps, defaultComponent);
57
+ const className = usePositionClassName(align);
55
58
  const hideItem = useHide({ hide, form });
56
59
  if (hideItem) {
57
60
  return null;
@@ -59,6 +62,7 @@ const Index: React.FC<HFormItemProps> = (props) => {
59
62
  return (
60
63
  <Col {...itemSpan}>
61
64
  <Form.Item
65
+ className={className}
62
66
  label={
63
67
  !hideLabel && (
64
68
  <Label
@@ -66,13 +70,13 @@ const Index: React.FC<HFormItemProps> = (props) => {
66
70
  labelWidth={labelWidth}
67
71
  required={required}
68
72
  colon={colon}
69
- align={labelAlign}
70
73
  >
71
74
  {label}
72
75
  </Label>
73
76
  )
74
77
  }
75
78
  {...oProps}
79
+ style={style||formItemStyle}
76
80
  colon={false}
77
81
  required={false}
78
82
  >
@@ -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, textAlign: align }} className={className}>
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
+ }
@@ -24,6 +24,7 @@ export default ({
24
24
  gutter,
25
25
  submitLoading,
26
26
  labelAlign: formLabelAlign,
27
+ formItemStyle,
27
28
  ...props
28
29
  }: HFormProps) => {
29
30
  const hForm = useCurrentForm(form);
@@ -80,15 +81,18 @@ export default ({
80
81
  labelWidth: itemLabelWidth,
81
82
  hideLabel = formHideLabel,
82
83
  labelAlign = formLabelAlign,
84
+ name,
85
+ style=formItemStyle,
83
86
  } = itemData;
84
87
  return (
85
88
  <Item
86
89
  {...itemData}
87
- key={index}
90
+ labelAlign={labelAlign}
91
+ key={name||index}
92
+ style={style}
88
93
  hideLabel={hideLabel}
89
94
  itemSpan={itemSpan}
90
95
  labelWidth={itemLabelWidth || labelWidth}
91
- labelAlign={labelAlign}
92
96
  />
93
97
  );
94
98
  })}
@@ -75,7 +75,9 @@ export interface DispatchModal<T = string | string[]> {
75
75
  manual?: boolean;
76
76
  reset?: boolean;
77
77
  }
78
- export interface HItemProps extends Omit<FormItemProps, "name"> {
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,8 @@ export interface HFormProps<T = any, R = any>
106
108
  hideLabel?: boolean;
107
109
  gutter?: Gutter | [Gutter, Gutter];
108
110
  submitLoading?: boolean;
109
- labelAlign?: "left" | "right";
111
+ labelAlign?: LabelAlignModal;
112
+ formItemStyle?:React.CSSProperties;
110
113
  }
111
114
  export interface HFormItemProps extends HItemProps {
112
115
  required?: boolean;
@@ -115,7 +118,7 @@ export interface HFormItemProps extends HItemProps {
115
118
  itemSpan?: ColProps;
116
119
  initValueProvider?: AddValueFormat;
117
120
  subProvider?: AddValueFormat;
118
- labelAlign?: "left" | "right";
121
+ labelAlign?: LabelAlignModal;
119
122
  }
120
123
  export type argsFn = (...args: any[]) => void;
121
124
  export interface FormContextProps {
@@ -148,6 +151,7 @@ export interface IFormConfigContextProps {
148
151
  dateRanges?: RangePickerProps["ranges"];
149
152
  uploadProps?: ConfigUploadProps;
150
153
  defaultComponent?: DefaultComponentModal;
154
+ formItemStyle?:React.CSSProperties
151
155
  }
152
156
  interface ActionModal {
153
157
  key: string;
@@ -38,6 +38,7 @@ export const baseConfig: IFormConfigContextProps = {
38
38
  maxSize: 1024 * 1024 * 1.8,
39
39
  },
40
40
  defaultComponent: {},
41
+ formItemStyle:{}
41
42
  };
42
43
 
43
44
  export default {
@@ -14,64 +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
- style:{
39
- marginBottom:8
40
- },
41
- dispatch: {
42
- fnKey: "reload",
43
- dependencies: ["selectInput", "sz"],
44
- },
45
- itemProps: {
46
- options: op,
47
- showSearch: true,
48
- allowClear: true,
49
- mode: "multiple",
50
- },
51
- rules: [{ required: true }],
52
- },
53
- {
54
- label: "下拉输入框",
55
- name: "selectInput",
56
- type: "selectInput",
57
- rules: [{ required: true }],
58
- itemProps: {
59
- valueName: {
60
- select: "op",
61
- input: "opInput",
62
- },
63
- selectProps: {
64
- options: [{ label: "测试", value: 1 }],
65
- },
66
- },
67
- },
68
- {
69
- label: "按钮输入框",
70
- name: "buttonInput",
71
- type: "buttonInput",
72
- children: "点击",
73
- rules: [{ required: true }],
74
- },
75
17
  {
76
18
  label: "选择",
77
19
  name: "checkboxGroup",
@@ -83,6 +25,10 @@ const formData = (options) => {
83
25
  { value: "选择2", key: "check2" },
84
26
  ],
85
27
  direction: "vertical",
28
+ labelAlign: "topLeft",
29
+ style:{
30
+ marginBottom:200
31
+ }
86
32
  },
87
33
  {
88
34
  label: "开关",
@@ -96,100 +42,6 @@ const formData = (options) => {
96
42
  },
97
43
  },
98
44
  },
99
- {
100
- label: "时间",
101
- name: "datePicker",
102
- type: "datePicker",
103
- hover: "时间选择",
104
- helper: "帮助我",
105
- itemProps: {
106
- subProvider: (item, val) => {
107
- return {
108
- datePicker: "fakfjkfjsklfjskljsak",
109
- };
110
- },
111
- },
112
- rules: [{ required: true }],
113
- },
114
- {
115
- label: "时间段",
116
- name: "rangePicker",
117
- type: "rangePicker",
118
- helper: "帮助我",
119
- rules: [{ required: true }],
120
- itemProps: {
121
- valueMap: {
122
- start: "testStart",
123
- end: "testEnd",
124
- },
125
- },
126
- },
127
- {
128
- label: "时分秒",
129
- name: "timePicker",
130
- type: "timePicker",
131
- rules: [{ required: true }],
132
- },
133
- {
134
- label: "文件",
135
- name: "upload",
136
- type: "upload",
137
- rules: [{ required: true }],
138
- },
139
- {
140
- label: "地址文件",
141
- name: "urlUpload",
142
- type: "urlUpload",
143
- itemProps: {
144
- maxCount: 3,
145
- },
146
- rules: [{ required: true }],
147
- },
148
- {
149
- label: "颜色",
150
- name: "colorInput",
151
- type: "colorInput",
152
- },
153
- {
154
- label: "测试",
155
- type: "test",
156
- },
157
- {
158
- label: "多级",
159
- type: "cascader",
160
- name: "cascader",
161
- itemProps: {
162
- options: [
163
- {
164
- value: "多选1",
165
- key: 1,
166
- },
167
- ],
168
- },
169
- },
170
- {
171
- label: "验证码",
172
- type: "verificationCodeInput",
173
- name: "verificationCodeInput",
174
- itemProps: {
175
- request: () => {
176
- return Promise.resolve({ code: 200 });
177
- },
178
- },
179
- },
180
- {
181
- label: "去空input",
182
- type: "trimInput",
183
- name: "trimInput",
184
- },
185
- {
186
- label: "去空textArea",
187
- type: "trimTextArea",
188
- name: "trimTextArea",
189
- },
190
- {
191
- type: "submit",
192
- },
193
45
  {
194
46
  type: "submit",
195
47
  itemProps: {
@@ -261,6 +113,9 @@ export default () => {
261
113
  defaultComponent={{
262
114
  test: Test,
263
115
  }}
116
+ formItemStyle={{
117
+ marginBottom:100
118
+ }}
264
119
  fieldNames={{
265
120
  label: "value",
266
121
  value: "key",
@@ -270,7 +125,10 @@ export default () => {
270
125
  configData={formData(options)}
271
126
  labelWidth={200}
272
127
  form={form}
273
- labelAlign={"left"}
128
+ formItemStyle={{
129
+ marginBottom:10
130
+ }}
131
+ labelAlign={"right"}
274
132
  submitLoading={true}
275
133
  onFinish={(value) => {
276
134
  console.log(value);