@pointcloud/pcloud-components 0.1.27 → 0.1.28
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/README.md +1 -1
- package/dist/esm/DForm/DItem/itemType.d.ts +29 -29
- package/dist/esm/LoginForm/defaultConfig.d.ts +4 -0
- package/dist/esm/LoginForm/defaultConfig.js +35 -0
- package/dist/esm/LoginForm/index.d.ts +21 -0
- package/dist/esm/LoginForm/index.js +122 -0
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.js +1 -0
- package/dist/umd/pcloud-components.min.js +1 -1
- package/package.json +108 -108
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# pcloud-components
|
|
2
2
|
|
|
3
|
-
>)  ?style=flat&logo=antdesign>)  >)  ?style=flat&logo=antdesign>)  ?style=flat&logo=webcomponentsdotorg>) ?style=flat>)
|
|
4
4
|
|
|
5
5
|
pcloud-components 是一套基于 Antd v4.24.16+ React v17 开发的业务组件库。
|
|
6
6
|
该项目已经发布到 Npm 仓库,可以直接使用, 点击[pcloud-components 地址](https://www.npmjs.com/package/@pointcloud/pcloud-components)访问。
|
|
@@ -28,91 +28,91 @@ declare type CustomItemProps = DItemBaseProps & HTMLAttributes<HTMLElement> & {
|
|
|
28
28
|
children?: ReactNode;
|
|
29
29
|
[key: string]: any;
|
|
30
30
|
};
|
|
31
|
-
declare type DInputItemProps = {
|
|
31
|
+
export declare type DInputItemProps = {
|
|
32
32
|
renderType?: 'dInput';
|
|
33
33
|
} & DItemBaseProps & DInputProps;
|
|
34
|
-
declare type DIpAddressProps = {
|
|
34
|
+
export declare type DIpAddressProps = {
|
|
35
35
|
renderType?: 'ipAddress';
|
|
36
36
|
} & DItemBaseProps & IPAddressProps;
|
|
37
|
-
declare type InputItemProps = {
|
|
37
|
+
export declare type InputItemProps = {
|
|
38
38
|
renderType?: 'input';
|
|
39
39
|
} & DItemBaseProps & InputProps;
|
|
40
|
-
declare type TextAreaItemProps = {
|
|
40
|
+
export declare type TextAreaItemProps = {
|
|
41
41
|
renderType?: 'textArea';
|
|
42
42
|
} & DItemBaseProps & TextAreaProps;
|
|
43
|
-
declare type PasswordItemProps = {
|
|
43
|
+
export declare type PasswordItemProps = {
|
|
44
44
|
renderType?: 'password';
|
|
45
45
|
} & DItemBaseProps & PasswordProps;
|
|
46
|
-
declare type InputNumberItemProps = {
|
|
46
|
+
export declare type InputNumberItemProps = {
|
|
47
47
|
renderType?: 'inputNumber';
|
|
48
48
|
} & DItemBaseProps & InputNumberProps;
|
|
49
|
-
declare type AutoCompleteItemProps = {
|
|
49
|
+
export declare type AutoCompleteItemProps = {
|
|
50
50
|
renderType?: 'autoComplete';
|
|
51
51
|
} & DItemBaseProps & AutoCompleteProps;
|
|
52
|
-
declare type DSelectItemProps = {
|
|
52
|
+
export declare type DSelectItemProps = {
|
|
53
53
|
renderType?: 'dSelect';
|
|
54
54
|
} & DItemBaseProps & DSelectProps;
|
|
55
|
-
declare type SelectItemProps = {
|
|
55
|
+
export declare type SelectItemProps = {
|
|
56
56
|
renderType?: 'select';
|
|
57
57
|
} & DItemBaseProps & SelectProps;
|
|
58
|
-
declare type DCascaderItemProps = {
|
|
58
|
+
export declare type DCascaderItemProps = {
|
|
59
59
|
renderType?: 'dCascader';
|
|
60
60
|
} & DItemBaseProps & DCascaderProps;
|
|
61
|
-
declare type CascaderItemProps = {
|
|
61
|
+
export declare type CascaderItemProps = {
|
|
62
62
|
renderType?: 'cascader';
|
|
63
63
|
} & DItemBaseProps & CascaderProps;
|
|
64
|
-
declare type DTreeSelectItemProps = {
|
|
64
|
+
export declare type DTreeSelectItemProps = {
|
|
65
65
|
renderType?: 'dTreeSelect';
|
|
66
66
|
} & DItemBaseProps & DTreeSelectProps;
|
|
67
|
-
declare type TreeSelectItemProps = {
|
|
67
|
+
export declare type TreeSelectItemProps = {
|
|
68
68
|
renderType?: 'treeSelect';
|
|
69
69
|
} & DItemBaseProps & TreeSelectProps;
|
|
70
|
-
declare type DatePickerItemProps = {
|
|
70
|
+
export declare type DatePickerItemProps = {
|
|
71
71
|
renderType?: 'datePicker';
|
|
72
72
|
} & DItemBaseProps & DatePickerProps;
|
|
73
|
-
declare type TimePickerItemProps = {
|
|
73
|
+
export declare type TimePickerItemProps = {
|
|
74
74
|
renderType?: 'timePicker';
|
|
75
75
|
} & DItemBaseProps & TimePickerProps;
|
|
76
|
-
declare type RangePickerItemProps = {
|
|
76
|
+
export declare type RangePickerItemProps = {
|
|
77
77
|
renderType?: 'rangePicker';
|
|
78
78
|
} & DItemBaseProps & RangePickerProps;
|
|
79
|
-
declare type MentionItemProps = {
|
|
79
|
+
export declare type MentionItemProps = {
|
|
80
80
|
renderType?: 'mentions';
|
|
81
81
|
} & DItemBaseProps & MentionProps;
|
|
82
|
-
declare type CheckboxItemProps = {
|
|
82
|
+
export declare type CheckboxItemProps = {
|
|
83
83
|
renderType?: 'checkbox';
|
|
84
84
|
} & DItemBaseProps & CheckboxProps;
|
|
85
|
-
declare type DCheckboxGroupProps = {
|
|
85
|
+
export declare type DCheckboxGroupProps = {
|
|
86
86
|
renderType?: 'checkboxGroup';
|
|
87
87
|
} & DItemBaseProps & CheckboxGroupProps;
|
|
88
|
-
declare type RadioItemProps = {
|
|
88
|
+
export declare type RadioItemProps = {
|
|
89
89
|
renderType?: 'radio';
|
|
90
90
|
} & DItemBaseProps & RadioProps;
|
|
91
|
-
declare type DRadioGorupProps = {
|
|
91
|
+
export declare type DRadioGorupProps = {
|
|
92
92
|
renderType?: 'radioGroup';
|
|
93
93
|
} & DItemBaseProps & RadioGroupProps;
|
|
94
|
-
declare type RateItemProps = {
|
|
94
|
+
export declare type RateItemProps = {
|
|
95
95
|
renderType?: 'rate';
|
|
96
96
|
} & DItemBaseProps & RateProps;
|
|
97
|
-
declare type SliderItemProps = {
|
|
97
|
+
export declare type SliderItemProps = {
|
|
98
98
|
renderType?: 'slider';
|
|
99
99
|
} & DItemBaseProps & SliderSingleProps;
|
|
100
|
-
declare type SwitchItemProps = {
|
|
100
|
+
export declare type SwitchItemProps = {
|
|
101
101
|
renderType?: 'switch';
|
|
102
102
|
} & DItemBaseProps & SwitchProps;
|
|
103
|
-
declare type TransferItemProps = {
|
|
103
|
+
export declare type TransferItemProps = {
|
|
104
104
|
renderType?: 'transfer';
|
|
105
105
|
} & DItemBaseProps & TransferProps<any>;
|
|
106
|
-
declare type UploadItemProps = {
|
|
106
|
+
export declare type UploadItemProps = {
|
|
107
107
|
renderType?: 'upload';
|
|
108
108
|
} & DItemBaseProps & UploadProps;
|
|
109
|
-
declare type DUploadItemProps = {
|
|
109
|
+
export declare type DUploadItemProps = {
|
|
110
110
|
renderType?: 'dUpload';
|
|
111
111
|
} & DItemBaseProps & DUploadProps;
|
|
112
|
-
declare type ButtonItemProps = {
|
|
112
|
+
export declare type ButtonItemProps = {
|
|
113
113
|
renderType?: 'button';
|
|
114
114
|
} & DItemBaseProps & ButtonProps;
|
|
115
|
-
declare type DividerItemProps = {
|
|
115
|
+
export declare type DividerItemProps = {
|
|
116
116
|
renderType?: 'divider';
|
|
117
117
|
} & DItemBaseProps & DividerProps;
|
|
118
118
|
export declare type DItemProps = CustomItemProps | DInputItemProps | DIpAddressProps | InputItemProps | TextAreaItemProps | PasswordItemProps | InputNumberItemProps | AutoCompleteItemProps | DSelectItemProps | SelectItemProps | DCascaderItemProps | CascaderItemProps | DTreeSelectItemProps | TreeSelectItemProps | DatePickerItemProps | TimePickerItemProps | RangePickerItemProps | MentionItemProps | CheckboxItemProps | CheckboxGroupProps | DCheckboxGroupProps | RadioItemProps | RadioGroupProps | DRadioGorupProps | RateItemProps | SliderItemProps | SwitchItemProps | TransferItemProps | UploadItemProps | DUploadItemProps | ButtonItemProps | DividerItemProps;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { InputItemProps, PasswordItemProps, ButtonItemProps } from '../DForm/DItem/itemType';
|
|
2
|
+
export declare const defaultUsernameItem: InputItemProps;
|
|
3
|
+
export declare const defaultPasswordItem: PasswordItemProps;
|
|
4
|
+
export declare const defaultLoginButtonItem: ButtonItemProps;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { LockOutlined, UserOutlined } from '@ant-design/icons';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
export var defaultUsernameItem = {
|
|
4
|
+
name: 'username',
|
|
5
|
+
label: '用户名',
|
|
6
|
+
renderType: 'input',
|
|
7
|
+
formItemProps: {
|
|
8
|
+
rules: [{
|
|
9
|
+
required: true,
|
|
10
|
+
message: '请输入用户名'
|
|
11
|
+
}]
|
|
12
|
+
},
|
|
13
|
+
placeholder: '请输入用户名',
|
|
14
|
+
prefix: /*#__PURE__*/_jsx(UserOutlined, {})
|
|
15
|
+
};
|
|
16
|
+
export var defaultPasswordItem = {
|
|
17
|
+
name: 'password',
|
|
18
|
+
label: '密码',
|
|
19
|
+
renderType: 'password',
|
|
20
|
+
formItemProps: {
|
|
21
|
+
rules: [{
|
|
22
|
+
required: true,
|
|
23
|
+
message: '请输入密码'
|
|
24
|
+
}]
|
|
25
|
+
},
|
|
26
|
+
placeholder: '请输入密码',
|
|
27
|
+
prefix: /*#__PURE__*/_jsx(LockOutlined, {})
|
|
28
|
+
};
|
|
29
|
+
export var defaultLoginButtonItem = {
|
|
30
|
+
renderType: 'button',
|
|
31
|
+
type: 'primary',
|
|
32
|
+
htmlType: 'submit',
|
|
33
|
+
label: '登录',
|
|
34
|
+
block: true
|
|
35
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { FormProps, FormInstance } from 'antd';
|
|
3
|
+
import { type DItemProps } from "./..";
|
|
4
|
+
export interface LoginFormProps extends Omit<FormProps, 'onFinish'> {
|
|
5
|
+
/** 登录表单额外的表单项 */
|
|
6
|
+
extraItems?: DItemProps[];
|
|
7
|
+
/** 点击登录按钮的回调 */
|
|
8
|
+
onFinish?: (values: any) => void | Promise<any>;
|
|
9
|
+
/** 登录按钮文本 */
|
|
10
|
+
loginText?: string;
|
|
11
|
+
/** 是否禁用登录按钮 */
|
|
12
|
+
loginButtonDisabled?: boolean;
|
|
13
|
+
/** 用户名表单项配置 */
|
|
14
|
+
usernameItem?: Partial<DItemProps>;
|
|
15
|
+
/** 密码表单项配置 */
|
|
16
|
+
passwordItem?: Partial<DItemProps>;
|
|
17
|
+
/** 登录按钮表单项配置 */
|
|
18
|
+
loginButtonItem?: Partial<DItemProps>;
|
|
19
|
+
}
|
|
20
|
+
declare const LoginForm: React.ForwardRefExoticComponent<LoginFormProps & React.RefAttributes<FormInstance<any>>>;
|
|
21
|
+
export default LoginForm;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
|
|
2
|
+
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
3
|
+
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
4
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
5
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
6
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
7
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
8
|
+
var _excluded = ["extraItems", "onFinish", "loginText", "loginButtonDisabled", "usernameItem", "passwordItem", "loginButtonItem", "className"];
|
|
9
|
+
import React, { useState, useEffect, forwardRef, useContext, useMemo } from 'react';
|
|
10
|
+
import classNames from 'classnames';
|
|
11
|
+
import { DForm } from "./..";
|
|
12
|
+
import { defaultUsernameItem, defaultPasswordItem, defaultLoginButtonItem } from "./defaultConfig";
|
|
13
|
+
import { ConfigContext } from "../ConfigProvider";
|
|
14
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
15
|
+
var mergeItemProps = function mergeItemProps(defaultItem, item, options) {
|
|
16
|
+
var baseMerged = _objectSpread(_objectSpread({}, defaultItem), item);
|
|
17
|
+
// 检查是否存在 formItemProps 属性
|
|
18
|
+
if ('formItemProps' in defaultItem && 'formItemProps' in item) {
|
|
19
|
+
baseMerged['formItemProps'] = _objectSpread(_objectSpread({}, defaultItem.formItemProps), item.formItemProps);
|
|
20
|
+
}
|
|
21
|
+
if (options) {
|
|
22
|
+
baseMerged = _objectSpread(_objectSpread({}, baseMerged), options);
|
|
23
|
+
}
|
|
24
|
+
return baseMerged;
|
|
25
|
+
};
|
|
26
|
+
var LoginForm = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
27
|
+
var _props$extraItems = props.extraItems,
|
|
28
|
+
extraItems = _props$extraItems === void 0 ? [] : _props$extraItems,
|
|
29
|
+
onFinish = props.onFinish,
|
|
30
|
+
_props$loginText = props.loginText,
|
|
31
|
+
loginText = _props$loginText === void 0 ? '登录' : _props$loginText,
|
|
32
|
+
_props$loginButtonDis = props.loginButtonDisabled,
|
|
33
|
+
loginButtonDisabled = _props$loginButtonDis === void 0 ? false : _props$loginButtonDis,
|
|
34
|
+
_props$usernameItem = props.usernameItem,
|
|
35
|
+
usernameItem = _props$usernameItem === void 0 ? {} : _props$usernameItem,
|
|
36
|
+
_props$passwordItem = props.passwordItem,
|
|
37
|
+
passwordItem = _props$passwordItem === void 0 ? {} : _props$passwordItem,
|
|
38
|
+
_props$loginButtonIte = props.loginButtonItem,
|
|
39
|
+
loginButtonItem = _props$loginButtonIte === void 0 ? {} : _props$loginButtonIte,
|
|
40
|
+
_props$className = props.className,
|
|
41
|
+
className = _props$className === void 0 ? '' : _props$className,
|
|
42
|
+
restProps = _objectWithoutProperties(props, _excluded);
|
|
43
|
+
var _useContext = useContext(ConfigContext),
|
|
44
|
+
prefixCls = _useContext.prefixCls,
|
|
45
|
+
getPrefixCls = _useContext.getPrefixCls;
|
|
46
|
+
var _useState = useState(false),
|
|
47
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
48
|
+
loading = _useState2[0],
|
|
49
|
+
setLoading = _useState2[1];
|
|
50
|
+
var _DForm$useForm = DForm.useForm(),
|
|
51
|
+
_DForm$useForm2 = _slicedToArray(_DForm$useForm, 1),
|
|
52
|
+
form = _DForm$useForm2[0];
|
|
53
|
+
var classname = getPrefixCls('login-form');
|
|
54
|
+
var wrapperClass = classNames(_defineProperty({}, "".concat(prefixCls, "-login-form"), !!prefixCls), classname, className).trim();
|
|
55
|
+
var mergedUsernameItem = useMemo(function () {
|
|
56
|
+
return mergeItemProps(defaultUsernameItem, usernameItem);
|
|
57
|
+
}, [usernameItem]);
|
|
58
|
+
var mergedPasswordItem = useMemo(function () {
|
|
59
|
+
return mergeItemProps(defaultPasswordItem, passwordItem);
|
|
60
|
+
}, [passwordItem]);
|
|
61
|
+
var mergedLoginButtonItem = useMemo(function () {
|
|
62
|
+
return mergeItemProps(defaultLoginButtonItem, loginButtonItem, {
|
|
63
|
+
label: loginText,
|
|
64
|
+
disabled: loginButtonDisabled || loading,
|
|
65
|
+
loading: loading
|
|
66
|
+
});
|
|
67
|
+
}, [loginButtonItem, loginText, loginButtonDisabled, loading]);
|
|
68
|
+
var items = useMemo(function () {
|
|
69
|
+
return [mergedUsernameItem, mergedPasswordItem].concat(_toConsumableArray(extraItems), [mergedLoginButtonItem]);
|
|
70
|
+
}, [mergedUsernameItem, mergedPasswordItem, extraItems, mergedLoginButtonItem]);
|
|
71
|
+
useEffect(function () {
|
|
72
|
+
if (ref) {
|
|
73
|
+
if (typeof ref === 'function') {
|
|
74
|
+
ref(form);
|
|
75
|
+
} else {
|
|
76
|
+
ref.current = form;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}, [form, ref]);
|
|
80
|
+
var handleFinish = /*#__PURE__*/function () {
|
|
81
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(values) {
|
|
82
|
+
var result;
|
|
83
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
84
|
+
while (1) switch (_context.prev = _context.next) {
|
|
85
|
+
case 0:
|
|
86
|
+
if (onFinish) {
|
|
87
|
+
_context.next = 2;
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
return _context.abrupt("return");
|
|
91
|
+
case 2:
|
|
92
|
+
setLoading(true);
|
|
93
|
+
_context.prev = 3;
|
|
94
|
+
result = onFinish(values);
|
|
95
|
+
if (!(result instanceof Promise)) {
|
|
96
|
+
_context.next = 8;
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
_context.next = 8;
|
|
100
|
+
return result;
|
|
101
|
+
case 8:
|
|
102
|
+
_context.prev = 8;
|
|
103
|
+
setLoading(false);
|
|
104
|
+
return _context.finish(8);
|
|
105
|
+
case 11:
|
|
106
|
+
case "end":
|
|
107
|
+
return _context.stop();
|
|
108
|
+
}
|
|
109
|
+
}, _callee, null, [[3,, 8, 11]]);
|
|
110
|
+
}));
|
|
111
|
+
return function handleFinish(_x) {
|
|
112
|
+
return _ref.apply(this, arguments);
|
|
113
|
+
};
|
|
114
|
+
}();
|
|
115
|
+
return /*#__PURE__*/_jsx(DForm, _objectSpread({
|
|
116
|
+
form: form,
|
|
117
|
+
items: items,
|
|
118
|
+
onFinish: handleFinish,
|
|
119
|
+
className: wrapperClass
|
|
120
|
+
}, restProps));
|
|
121
|
+
});
|
|
122
|
+
export default LoginForm;
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -30,6 +30,8 @@ export { default as DModal } from './DModal';
|
|
|
30
30
|
export type { DModalProps } from './DModal/interface';
|
|
31
31
|
export { default as ModalForm } from './ModalForm';
|
|
32
32
|
export type { ModalFormProps } from './ModalForm';
|
|
33
|
+
export { default as LoginForm } from './LoginForm';
|
|
34
|
+
export type { LoginFormProps } from './LoginForm';
|
|
33
35
|
export { default as ColorPicker } from './ColorPicker';
|
|
34
36
|
export type { ColorPickerType, TwitterPickerType, HuePickerType, AlphaPickerType, BlockPickerType, ChromePickerType, CompactPickerType, CirclePickerType, SliderPickerType, } from './ColorPicker/interface';
|
|
35
37
|
export { default as ScrollNumber } from './ScrollNumber';
|
package/dist/esm/index.js
CHANGED
|
@@ -15,6 +15,7 @@ export { default as DTable } from "./DTable";
|
|
|
15
15
|
export { default as DForm } from "./DForm";
|
|
16
16
|
export { default as DModal } from "./DModal";
|
|
17
17
|
export { default as ModalForm } from "./ModalForm";
|
|
18
|
+
export { default as LoginForm } from "./LoginForm";
|
|
18
19
|
export { default as ColorPicker } from "./ColorPicker";
|
|
19
20
|
export { default as ScrollNumber } from "./ScrollNumber";
|
|
20
21
|
export { default as WordCloud } from "./WordCloud";
|