@aloudata/aloudata-design 1.4.3 → 1.5.1
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/dist/Button/index.js +5 -3
- package/dist/ConfigProvider/getUserList.d.ts +27 -0
- package/dist/ConfigProvider/getUserList.js +16 -0
- package/dist/ConfigProvider/hooks/useGetUserList.d.ts +5 -0
- package/dist/ConfigProvider/hooks/useGetUserList.js +15 -0
- package/dist/ConfigProvider/index.d.ts +21 -4
- package/dist/ConfigProvider/index.js +28 -2
- package/dist/DataPreviewTable/interface.d.ts +2 -1
- package/dist/DataPreviewTable/style/index.less +4 -5
- package/dist/DatePicker/index.d.ts +59 -3
- package/dist/DatePicker/index.js +36 -1
- package/dist/Form/index.d.ts +10 -2
- package/dist/Form/index.js +14 -2
- package/dist/Form/style/index.less +75 -0
- package/dist/Input/components/Password/index.d.ts +1 -1
- package/dist/Input/components/Password/index.js +7 -5
- package/dist/Input/components/TextArea/index.d.ts +1 -1
- package/dist/Input/components/TextArea/index.js +5 -3
- package/dist/Input/style/index.less +7 -1
- package/dist/InputNumber/index.js +24 -6
- package/dist/InputNumber/style/index.less +28 -13
- package/dist/MemberPicker/assets/default_user_photo.svg +7 -0
- package/dist/MemberPicker/components/MemberSelection.d.ts +13 -0
- package/dist/MemberPicker/components/MemberSelection.js +75 -0
- package/dist/MemberPicker/components/MultipleOption.d.ts +11 -0
- package/dist/MemberPicker/components/MultipleOption.js +27 -0
- package/dist/MemberPicker/components/NickLabel.d.ts +8 -0
- package/dist/MemberPicker/components/NickLabel.js +21 -0
- package/dist/MemberPicker/components/Panel.d.ts +14 -0
- package/dist/MemberPicker/components/Panel.js +118 -0
- package/dist/MemberPicker/components/SelectedMemberTags.d.ts +9 -0
- package/dist/MemberPicker/components/SelectedMemberTags.js +29 -0
- package/dist/MemberPicker/components/SelectorFooter.d.ts +8 -0
- package/dist/MemberPicker/components/SelectorFooter.js +15 -0
- package/dist/MemberPicker/components/SingleOption.d.ts +11 -0
- package/dist/MemberPicker/components/SingleOption.js +23 -0
- package/dist/MemberPicker/index.d.ts +4 -0
- package/dist/MemberPicker/index.js +207 -0
- package/dist/MemberPicker/interface.d.ts +21 -0
- package/dist/MemberPicker/interface.js +1 -0
- package/dist/MemberPicker/style/index.d.ts +2 -0
- package/dist/MemberPicker/style/index.js +2 -0
- package/dist/MemberPicker/style/index.less +187 -0
- package/dist/MemberPicker/utils/getUsersWithUserId.d.ts +2 -0
- package/dist/MemberPicker/utils/getUsersWithUserId.js +5 -0
- package/dist/Radio/components/Group/index.d.ts +1 -1
- package/dist/Radio/components/Group/index.js +7 -4
- package/dist/ScrollArea/index.d.ts +1 -0
- package/dist/ScrollArea/index.js +3 -2
- package/dist/Select/index.js +30 -11
- package/dist/Select/style/index.less +4 -0
- package/dist/Spin/index.js +2 -1
- package/dist/Switch/index.js +13 -7
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/dist/style/themes/default/index.less +1 -1
- package/package.json +7 -3
|
@@ -102,28 +102,30 @@
|
|
|
102
102
|
&.ald-input-number-large {
|
|
103
103
|
height: @inputNumber-height-large;
|
|
104
104
|
font-size: @inputNumber-font-size-large;
|
|
105
|
-
border-radius:
|
|
105
|
+
border-radius: @inputNumber-border-radius-large;
|
|
106
106
|
|
|
107
107
|
.ant-input-number-input {
|
|
108
108
|
padding: @inputNumber-padding-large;
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
.ant-input-number-handler-wrap {
|
|
112
|
-
border-radius: 0 @inputNumber-border-radius-large
|
|
112
|
+
border-radius: 0 @inputNumber-border-radius-large
|
|
113
|
+
@inputNumber-border-radius-large 0;
|
|
113
114
|
}
|
|
114
115
|
}
|
|
115
116
|
|
|
116
117
|
&.ald-input-number-middle {
|
|
117
118
|
height: @inputNumber-height-middle;
|
|
118
119
|
font-size: @inputNumber-font-size-middle;
|
|
119
|
-
border-radius:
|
|
120
|
+
border-radius: @inputNumber-border-radius-middle;
|
|
120
121
|
|
|
121
122
|
.ant-input-number-input {
|
|
122
123
|
padding: @inputNumber-padding-middle;
|
|
123
124
|
}
|
|
124
125
|
|
|
125
126
|
.ant-input-number-handler-wrap {
|
|
126
|
-
border-radius: 0 @inputNumber-border-radius-middle
|
|
127
|
+
border-radius: 0 @inputNumber-border-radius-middle
|
|
128
|
+
@inputNumber-border-radius-middle 0;
|
|
127
129
|
}
|
|
128
130
|
}
|
|
129
131
|
|
|
@@ -137,7 +139,8 @@
|
|
|
137
139
|
}
|
|
138
140
|
|
|
139
141
|
.ant-input-number-handler-wrap {
|
|
140
|
-
border-radius: 0 @inputNumber-border-radius-small+1
|
|
142
|
+
border-radius: 0 @inputNumber-border-radius-small+1
|
|
143
|
+
@inputNumber-border-radius-small+1 0;
|
|
141
144
|
}
|
|
142
145
|
}
|
|
143
146
|
|
|
@@ -146,7 +149,7 @@
|
|
|
146
149
|
background-color: @inputNumber-disabled-bg-color;
|
|
147
150
|
border-color: @inputNumber-disabled-border-color;
|
|
148
151
|
cursor: initial;
|
|
149
|
-
|
|
152
|
+
|
|
150
153
|
.ant-input-number-input-wrap .ant-input-number-input {
|
|
151
154
|
cursor: initial;
|
|
152
155
|
color: @inputNumber-disabled-color;
|
|
@@ -158,7 +161,7 @@
|
|
|
158
161
|
&-focused {
|
|
159
162
|
background-color: @inputNumber-active-bg-color;
|
|
160
163
|
border-color: @inputNumber-active-border-color;
|
|
161
|
-
box-shadow:none;
|
|
164
|
+
box-shadow: none;
|
|
162
165
|
}
|
|
163
166
|
}
|
|
164
167
|
|
|
@@ -179,11 +182,13 @@
|
|
|
179
182
|
padding: 0 14px;
|
|
180
183
|
|
|
181
184
|
&:first-child {
|
|
182
|
-
border-radius: @inputNumber-border-radius-large 0 0
|
|
185
|
+
border-radius: @inputNumber-border-radius-large 0 0
|
|
186
|
+
@inputNumber-border-radius-large;
|
|
183
187
|
}
|
|
184
188
|
|
|
185
189
|
&:last-child {
|
|
186
|
-
border-radius: 0 @inputNumber-border-radius-large
|
|
190
|
+
border-radius: 0 @inputNumber-border-radius-large
|
|
191
|
+
@inputNumber-border-radius-large 0;
|
|
187
192
|
}
|
|
188
193
|
|
|
189
194
|
& + .ant-input-number {
|
|
@@ -201,11 +206,13 @@
|
|
|
201
206
|
padding: 0 12px;
|
|
202
207
|
|
|
203
208
|
&:first-child {
|
|
204
|
-
border-radius: @inputNumber-border-radius-middle 0 0
|
|
209
|
+
border-radius: @inputNumber-border-radius-middle 0 0
|
|
210
|
+
@inputNumber-border-radius-middle;
|
|
205
211
|
}
|
|
206
212
|
|
|
207
213
|
&:last-child {
|
|
208
|
-
border-radius: 0 @inputNumber-border-radius-middle
|
|
214
|
+
border-radius: 0 @inputNumber-border-radius-middle
|
|
215
|
+
@inputNumber-border-radius-middle 0;
|
|
209
216
|
}
|
|
210
217
|
}
|
|
211
218
|
}
|
|
@@ -219,11 +226,13 @@
|
|
|
219
226
|
padding: 0 10px;
|
|
220
227
|
|
|
221
228
|
&:first-child {
|
|
222
|
-
border-radius: @inputNumber-border-radius-small 0 0
|
|
229
|
+
border-radius: @inputNumber-border-radius-small 0 0
|
|
230
|
+
@inputNumber-border-radius-small;
|
|
223
231
|
}
|
|
224
232
|
|
|
225
233
|
&:last-child {
|
|
226
|
-
border-radius: 0 @inputNumber-border-radius-small
|
|
234
|
+
border-radius: 0 @inputNumber-border-radius-small
|
|
235
|
+
@inputNumber-border-radius-small 0;
|
|
227
236
|
}
|
|
228
237
|
}
|
|
229
238
|
}
|
|
@@ -267,3 +276,9 @@
|
|
|
267
276
|
}
|
|
268
277
|
}
|
|
269
278
|
}
|
|
279
|
+
|
|
280
|
+
.ant-input-number-status-error:not(.ant-input-number-disabled):not(
|
|
281
|
+
.ant-input-number-borderless
|
|
282
|
+
).ant-input-number.ant-input-number {
|
|
283
|
+
border-color: @error-color;
|
|
284
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g id="默认头像">
|
|
3
|
+
<circle id="Icon" cx="10" cy="10" r="10" fill="#F3E6F6"/>
|
|
4
|
+
<path id="Icon_2" fill-rule="evenodd" clip-rule="evenodd" d="M12.5983 9.15803C12.9417 8.64413 13.125 8.03994 13.125 7.42187C13.125 6.59307 12.7957 5.79822 12.2097 5.21217C11.6236 4.62612 10.8288 4.29688 9.99998 4.29688C9.38192 4.29688 8.77774 4.48015 8.26384 4.82353C7.74994 5.16691 7.3494 5.65497 7.11288 6.22599C6.87635 6.79701 6.81447 7.42534 6.93505 8.03153C7.05563 8.63772 7.35325 9.19454 7.79029 9.63158C8.22732 10.0686 8.78414 10.3662 9.39033 10.4868C9.99652 10.6074 10.6248 10.5455 11.1959 10.309C11.7669 10.0725 12.2549 9.67193 12.5983 9.15803ZM10 18.75C12.6771 18.75 15.0735 17.5477 16.6785 15.6536C15.1187 13.6848 12.7069 12.4219 10 12.4219C7.29316 12.4219 4.88129 13.6848 3.32151 15.6536C4.92654 17.5477 7.32287 18.75 10 18.75Z" fill="#9A66A8"/>
|
|
5
|
+
</g>
|
|
6
|
+
</svg>
|
|
7
|
+
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { IUser } from '../interface';
|
|
3
|
+
interface IMemberSelectionProps {
|
|
4
|
+
className?: string;
|
|
5
|
+
userList: IUser[];
|
|
6
|
+
multiple: boolean;
|
|
7
|
+
onChange: (selected: boolean, user: IUser) => void;
|
|
8
|
+
selectedUsers: IUser[];
|
|
9
|
+
onSearchValueChange?: (value: string) => void;
|
|
10
|
+
loading: boolean;
|
|
11
|
+
}
|
|
12
|
+
export default function MemberSelection(props: IMemberSelectionProps): JSX.Element;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
+
|
|
3
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
|
+
|
|
5
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
6
|
+
|
|
7
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
8
|
+
|
|
9
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
10
|
+
|
|
11
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
12
|
+
|
|
13
|
+
import { SearchLine } from '@aloudata/icons-react';
|
|
14
|
+
import classNames from 'classnames';
|
|
15
|
+
import React, { useDeferredValue, useEffect, useState } from 'react';
|
|
16
|
+
import Empty from "../../Empty";
|
|
17
|
+
import Input from "../../Input";
|
|
18
|
+
import ScrollArea from "../../ScrollArea";
|
|
19
|
+
import Spin from "../../Spin";
|
|
20
|
+
import MultipleOption from "./MultipleOption";
|
|
21
|
+
import SingleOption from "./SingleOption";
|
|
22
|
+
export default function MemberSelection(props) {
|
|
23
|
+
var className = props.className,
|
|
24
|
+
userList = props.userList,
|
|
25
|
+
multiple = props.multiple,
|
|
26
|
+
onChange = props.onChange,
|
|
27
|
+
selectedUsers = props.selectedUsers,
|
|
28
|
+
onSearchValueChange = props.onSearchValueChange,
|
|
29
|
+
loading = props.loading;
|
|
30
|
+
|
|
31
|
+
var _useState = useState(''),
|
|
32
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
33
|
+
searchValue = _useState2[0],
|
|
34
|
+
setSearchValue = _useState2[1];
|
|
35
|
+
|
|
36
|
+
var deferredSearchValue = useDeferredValue(searchValue);
|
|
37
|
+
useEffect(function () {
|
|
38
|
+
onSearchValueChange === null || onSearchValueChange === void 0 ? void 0 : onSearchValueChange(deferredSearchValue);
|
|
39
|
+
}, [deferredSearchValue, onSearchValueChange]);
|
|
40
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
41
|
+
className: classNames(className, 'ald-member-picker-member-list-wrap')
|
|
42
|
+
}, /*#__PURE__*/React.createElement(Input, {
|
|
43
|
+
prefix: /*#__PURE__*/React.createElement(SearchLine, null),
|
|
44
|
+
className: 'ald-member-picker-search-input',
|
|
45
|
+
onChange: function onChange(e) {
|
|
46
|
+
setSearchValue(e.target.value);
|
|
47
|
+
}
|
|
48
|
+
}), /*#__PURE__*/React.createElement(Spin, {
|
|
49
|
+
tip: "Loading",
|
|
50
|
+
spinning: loading,
|
|
51
|
+
size: "small"
|
|
52
|
+
}, userList.length === 0 ? /*#__PURE__*/React.createElement(Empty, {
|
|
53
|
+
title: "\u65E0\u6570\u636E",
|
|
54
|
+
size: "small",
|
|
55
|
+
image: Empty.PRESENTED_IMAGE_SEARCH
|
|
56
|
+
}) : /*#__PURE__*/React.createElement(ScrollArea, {
|
|
57
|
+
className: 'ald-member-picker-member-list',
|
|
58
|
+
innerClassName: "ald-member-picker-member-scroll"
|
|
59
|
+
}, userList.map(function (user) {
|
|
60
|
+
var isSelected = selectedUsers.some(function (selectedUser) {
|
|
61
|
+
return selectedUser.userId === user.userId;
|
|
62
|
+
});
|
|
63
|
+
return multiple ? /*#__PURE__*/React.createElement(MultipleOption, {
|
|
64
|
+
key: user.userId,
|
|
65
|
+
user: user,
|
|
66
|
+
selected: isSelected,
|
|
67
|
+
onChange: onChange
|
|
68
|
+
}) : /*#__PURE__*/React.createElement(SingleOption, {
|
|
69
|
+
key: user.userId,
|
|
70
|
+
user: user,
|
|
71
|
+
selected: isSelected,
|
|
72
|
+
onChange: onChange
|
|
73
|
+
});
|
|
74
|
+
}))));
|
|
75
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { IUser } from '../interface';
|
|
3
|
+
interface IMultipleOptionProps {
|
|
4
|
+
selected: boolean;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
user: IUser;
|
|
7
|
+
onChange?: (selected: boolean, user: IUser) => void;
|
|
8
|
+
className?: string;
|
|
9
|
+
}
|
|
10
|
+
export default function MultipleList(params: IMultipleOptionProps): JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
+
|
|
3
|
+
import classnames from 'classnames';
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import Checkbox from "../../Checkbox";
|
|
6
|
+
import NickLabel from "./NickLabel";
|
|
7
|
+
export default function MultipleList(params) {
|
|
8
|
+
var disabled = params.disabled,
|
|
9
|
+
user = params.user,
|
|
10
|
+
selected = params.selected,
|
|
11
|
+
onChange = params.onChange,
|
|
12
|
+
className = params.className;
|
|
13
|
+
|
|
14
|
+
var onClick = function onClick() {
|
|
15
|
+
if (disabled) return;
|
|
16
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(!selected, user);
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
20
|
+
className: classnames('ald-member-picker-option', className, _defineProperty({}, 'ald-member-picker-optionDisabled', disabled)),
|
|
21
|
+
onClick: onClick
|
|
22
|
+
}, /*#__PURE__*/React.createElement(Checkbox, {
|
|
23
|
+
className: 'ald-member-picker-checkbox',
|
|
24
|
+
checked: selected,
|
|
25
|
+
disabled: disabled
|
|
26
|
+
}), /*#__PURE__*/React.createElement(NickLabel, user));
|
|
27
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React, { memo } from 'react';
|
|
2
|
+
import Avatar from "../../Avatar";
|
|
3
|
+
|
|
4
|
+
var NickLabel = function NickLabel(_ref) {
|
|
5
|
+
var src = _ref.src,
|
|
6
|
+
nickname = _ref.nickname,
|
|
7
|
+
userId = _ref.userId;
|
|
8
|
+
var innerName = nickname || userId;
|
|
9
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
10
|
+
className: "ald-member-picker-nick-label"
|
|
11
|
+
}, /*#__PURE__*/React.createElement(Avatar, {
|
|
12
|
+
key: innerName,
|
|
13
|
+
src: src,
|
|
14
|
+
alt: innerName,
|
|
15
|
+
size: 20
|
|
16
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
17
|
+
className: "ald-member-picker-nick-label-name"
|
|
18
|
+
}, innerName));
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export default /*#__PURE__*/memo(NickLabel);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { IUser } from '../interface';
|
|
3
|
+
interface IPanelProps {
|
|
4
|
+
multiple?: boolean;
|
|
5
|
+
onChange?: (value: IUser[]) => void;
|
|
6
|
+
dropdownWidth?: number;
|
|
7
|
+
value?: IUser[] | IUser;
|
|
8
|
+
userList: IUser[];
|
|
9
|
+
onSearchValueChange?: (value: string) => void;
|
|
10
|
+
onCancel?: () => void;
|
|
11
|
+
loading: boolean;
|
|
12
|
+
}
|
|
13
|
+
export default function Panel(props: IPanelProps): JSX.Element;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
+
|
|
3
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
4
|
+
|
|
5
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
6
|
+
|
|
7
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
8
|
+
|
|
9
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
10
|
+
|
|
11
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
12
|
+
|
|
13
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
14
|
+
|
|
15
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
16
|
+
|
|
17
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
18
|
+
|
|
19
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
20
|
+
|
|
21
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
22
|
+
|
|
23
|
+
import classNames from 'classnames';
|
|
24
|
+
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
|
25
|
+
import MemberSelection from "./MemberSelection";
|
|
26
|
+
import SelectedMemberTags from "./SelectedMemberTags";
|
|
27
|
+
import SelectorFooter from "./SelectorFooter";
|
|
28
|
+
export default function Panel(props) {
|
|
29
|
+
var _classNames;
|
|
30
|
+
|
|
31
|
+
var multiple = props.multiple,
|
|
32
|
+
dropdownWidth = props.dropdownWidth,
|
|
33
|
+
value = props.value,
|
|
34
|
+
onChange = props.onChange,
|
|
35
|
+
userList = props.userList,
|
|
36
|
+
onSearchValueChange = props.onSearchValueChange;
|
|
37
|
+
|
|
38
|
+
var _useState = useState([]),
|
|
39
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
40
|
+
selectedUsers = _useState2[0],
|
|
41
|
+
setSelected = _useState2[1];
|
|
42
|
+
|
|
43
|
+
var onSelectionChange = useCallback(function (selected, user) {
|
|
44
|
+
if (multiple) {
|
|
45
|
+
if (selected) {
|
|
46
|
+
setSelected([].concat(_toConsumableArray(selectedUsers), [user]));
|
|
47
|
+
} else {
|
|
48
|
+
setSelected(selectedUsers.filter(function (item) {
|
|
49
|
+
return item.userId !== user.userId;
|
|
50
|
+
}));
|
|
51
|
+
}
|
|
52
|
+
} else {
|
|
53
|
+
if (selected) {
|
|
54
|
+
setSelected([user]);
|
|
55
|
+
onChange === null || onChange === void 0 ? void 0 : onChange([user]);
|
|
56
|
+
} else {
|
|
57
|
+
setSelected([]);
|
|
58
|
+
onChange === null || onChange === void 0 ? void 0 : onChange([]);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}, [multiple, selectedUsers, onChange]);
|
|
62
|
+
var onRemove = useCallback(function (user) {
|
|
63
|
+
setSelected(selectedUsers.filter(function (item) {
|
|
64
|
+
return item.userId !== user.userId;
|
|
65
|
+
}));
|
|
66
|
+
}, [selectedUsers]);
|
|
67
|
+
var panelWidth = useMemo(function () {
|
|
68
|
+
if (dropdownWidth) {
|
|
69
|
+
return dropdownWidth;
|
|
70
|
+
} else if (multiple) {
|
|
71
|
+
return 480;
|
|
72
|
+
} else {
|
|
73
|
+
return 160;
|
|
74
|
+
}
|
|
75
|
+
}, [dropdownWidth, multiple]);
|
|
76
|
+
var onOk = useCallback(function () {
|
|
77
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(selectedUsers);
|
|
78
|
+
}, [onChange, selectedUsers]);
|
|
79
|
+
useEffect(function () {
|
|
80
|
+
if (value) {
|
|
81
|
+
if (Array.isArray(value)) {
|
|
82
|
+
setSelected(value);
|
|
83
|
+
} else {
|
|
84
|
+
setSelected([value]);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}, [setSelected, value]);
|
|
88
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
89
|
+
className: classNames('ald-member-picker-wrapper', (_classNames = {}, _defineProperty(_classNames, 'ald-member-picker-multiple', multiple), _defineProperty(_classNames, 'ald-member-picker-single', !multiple), _classNames)),
|
|
90
|
+
style: {
|
|
91
|
+
width: panelWidth
|
|
92
|
+
}
|
|
93
|
+
}, multiple ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(MemberSelection, {
|
|
94
|
+
className: 'ald-member-picker-memberSelection',
|
|
95
|
+
userList: userList,
|
|
96
|
+
selectedUsers: selectedUsers,
|
|
97
|
+
onChange: onSelectionChange,
|
|
98
|
+
onSearchValueChange: onSearchValueChange,
|
|
99
|
+
multiple: multiple,
|
|
100
|
+
loading: props.loading
|
|
101
|
+
}), /*#__PURE__*/React.createElement(SelectedMemberTags, {
|
|
102
|
+
className: 'ald-member-picker-selected-member-tags',
|
|
103
|
+
selectedUsers: selectedUsers,
|
|
104
|
+
onRemove: onRemove
|
|
105
|
+
}), /*#__PURE__*/React.createElement(SelectorFooter, {
|
|
106
|
+
className: 'ald-member-picker-selector-footer',
|
|
107
|
+
onCancel: props.onCancel,
|
|
108
|
+
onOk: onOk
|
|
109
|
+
})) : /*#__PURE__*/React.createElement(MemberSelection, {
|
|
110
|
+
className: 'ald-member-picker-memberSelection',
|
|
111
|
+
userList: userList,
|
|
112
|
+
onChange: onSelectionChange,
|
|
113
|
+
selectedUsers: selectedUsers,
|
|
114
|
+
onSearchValueChange: onSearchValueChange,
|
|
115
|
+
multiple: false && multiple,
|
|
116
|
+
loading: props.loading
|
|
117
|
+
}));
|
|
118
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { IUser } from '../interface';
|
|
3
|
+
interface ISelectedMemberTagsProps {
|
|
4
|
+
className?: string;
|
|
5
|
+
selectedUsers: IUser[];
|
|
6
|
+
onRemove?: (user: IUser) => void;
|
|
7
|
+
}
|
|
8
|
+
export default function SelectedMemberTags(props: ISelectedMemberTagsProps): JSX.Element;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { CloseMLine } from '@aloudata/icons-react';
|
|
2
|
+
import classNames from 'classnames';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import NickLabel from "./NickLabel";
|
|
5
|
+
export default function SelectedMemberTags(props) {
|
|
6
|
+
var className = props.className,
|
|
7
|
+
selectedUsers = props.selectedUsers;
|
|
8
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
9
|
+
className: classNames(className, 'ald-member-picker-selected-member-tags-wrap')
|
|
10
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
11
|
+
className: 'ald-member-picker-has-selected'
|
|
12
|
+
}, "\u5DF2\u9009 ", selectedUsers.length), /*#__PURE__*/React.createElement("div", {
|
|
13
|
+
className: 'ald-member-picker-tags'
|
|
14
|
+
}, selectedUsers.map(function (user) {
|
|
15
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
16
|
+
className: 'ald-member-picker-selected-member-tag',
|
|
17
|
+
key: user.userId
|
|
18
|
+
}, /*#__PURE__*/React.createElement(NickLabel, user), /*#__PURE__*/React.createElement(CloseMLine, {
|
|
19
|
+
size: 20,
|
|
20
|
+
className: 'ald-member-picker-close',
|
|
21
|
+
fill: "#98A2B3",
|
|
22
|
+
onClick: function onClick() {
|
|
23
|
+
var _props$onRemove;
|
|
24
|
+
|
|
25
|
+
(_props$onRemove = props.onRemove) === null || _props$onRemove === void 0 ? void 0 : _props$onRemove.call(props, user);
|
|
26
|
+
}
|
|
27
|
+
}));
|
|
28
|
+
})));
|
|
29
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Button } from "../..";
|
|
2
|
+
import classNames from 'classnames';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
export default function SelectorFooter(props) {
|
|
5
|
+
var className = props.className;
|
|
6
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
7
|
+
className: classNames(className, 'ald-member-picker-footer')
|
|
8
|
+
}, /*#__PURE__*/React.createElement(Button, {
|
|
9
|
+
onClick: props.onCancel,
|
|
10
|
+
type: "secondary"
|
|
11
|
+
}, "\u53D6\u6D88"), /*#__PURE__*/React.createElement(Button, {
|
|
12
|
+
onClick: props.onOk,
|
|
13
|
+
type: "primary"
|
|
14
|
+
}, "\u786E\u8BA4"));
|
|
15
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { IUser } from '../interface';
|
|
3
|
+
interface ISelectProps {
|
|
4
|
+
selected: boolean;
|
|
5
|
+
user: IUser;
|
|
6
|
+
onChange: (selected: boolean, user: IUser) => void;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
className?: string;
|
|
9
|
+
}
|
|
10
|
+
export default function SingleOption(params: ISelectProps): JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
+
|
|
3
|
+
import classnames from 'classnames';
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import NickLabel from "./NickLabel";
|
|
6
|
+
export default function SingleOption(params) {
|
|
7
|
+
var disabled = params.disabled,
|
|
8
|
+
selected = params.selected,
|
|
9
|
+
user = params.user,
|
|
10
|
+
_params$onChange = params.onChange,
|
|
11
|
+
onChange = _params$onChange === void 0 ? function () {} : _params$onChange,
|
|
12
|
+
className = params.className;
|
|
13
|
+
|
|
14
|
+
var onClick = function onClick() {
|
|
15
|
+
if (disabled) return;
|
|
16
|
+
onChange(!selected, user);
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
20
|
+
className: classnames('ald-member-picker-option', className, 'ald-member-picker-singleOption', _defineProperty({}, 'ald-member-picker-single-option-selected', selected)),
|
|
21
|
+
onClick: onClick
|
|
22
|
+
}, /*#__PURE__*/React.createElement(NickLabel, user));
|
|
23
|
+
}
|