@aloudata/aloudata-design 2.19.0 → 2.19.2
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/AldSelect/Selector/MultipleResponsiveSelectedSection.d.ts +1 -1
- package/dist/AldSelect/Selector/MultipleResponsiveSelectedSection.js +3 -1
- package/dist/AldSelect/Selector/MultipleSelector.js +14 -8
- package/dist/AldSelect/Selector/index.js +5 -2
- package/dist/AldSelect/utils/commonUtil.js +10 -2
- package/dist/Dropdown/index.js +8 -1
- package/dist/Icon/components/InProgressFill.d.ts +1 -2
- package/dist/Icon/components/InProgressFill.js +1 -1
- package/dist/Icon/svg/In-Progress-fill.svg +2 -2
- package/dist/InputNumber/style/index.less +51 -4
- package/dist/MemberPicker/components/MemberSelection.d.ts +6 -0
- package/dist/MemberPicker/components/MemberSelection.js +37 -13
- package/dist/MemberPicker/components/Panel.d.ts +8 -0
- package/dist/MemberPicker/components/Panel.js +14 -7
- package/dist/MemberPicker/components/PanelWrapper.d.ts +9 -1
- package/dist/MemberPicker/components/PanelWrapper.js +6 -2
- package/dist/MemberPicker/components/SelectedMemberTags.d.ts +2 -1
- package/dist/MemberPicker/components/SelectedMemberTags.js +7 -2
- package/dist/MemberPicker/components/UserGroupSelection.d.ts +8 -1
- package/dist/MemberPicker/components/UserGroupSelection.js +32 -20
- package/dist/MemberPicker/index.js +6 -2
- package/dist/MemberPicker/interface.d.ts +8 -0
- package/dist/Table/components/DndWrapper.d.ts +10 -0
- package/dist/Table/components/DndWrapper.js +38 -0
- package/dist/Table/hooks/useRowDnd.js +12 -3
- package/dist/Table/index.js +2 -5
- package/dist/Tabs/style/index.less +1 -0
- package/dist/ald.min.css +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/dist/notification/demo/index.js +10 -1
- package/dist/notification/index.d.ts +1 -0
- package/dist/notification/index.js +16 -11
- package/package.json +1 -1
|
@@ -3,7 +3,7 @@ import { DisplayValueType } from '../interface';
|
|
|
3
3
|
import { RefTriggerProps } from '../SelectTrigger';
|
|
4
4
|
export default function MultipleResponsiveSelectedSection(params: {
|
|
5
5
|
displayValues: DisplayValueType[];
|
|
6
|
-
renderItem: (valueItem: DisplayValueType) => React.JSX.Element | null;
|
|
6
|
+
renderItem: (valueItem: DisplayValueType, index?: number) => React.JSX.Element | null;
|
|
7
7
|
onToggleOpen: (open: boolean) => void;
|
|
8
8
|
dropdownRef: RefObject<RefTriggerProps>;
|
|
9
9
|
maxHeight?: number;
|
|
@@ -41,7 +41,9 @@ export default function MultipleResponsiveSelectedSection(params) {
|
|
|
41
41
|
}
|
|
42
42
|
}, /*#__PURE__*/React.createElement("div", {
|
|
43
43
|
className: "beta-ald-select-selector-multiple-responsive-selected-section-tags"
|
|
44
|
-
}, displayValues.map(
|
|
44
|
+
}, displayValues.map(function (item, index) {
|
|
45
|
+
return renderItem(item, index);
|
|
46
|
+
}))), /*#__PURE__*/React.createElement(Suffix, {
|
|
45
47
|
showArrow: true,
|
|
46
48
|
allowClear: false,
|
|
47
49
|
icon: suffixIcon,
|
|
@@ -42,14 +42,14 @@ export default function MultipleSelector(props) {
|
|
|
42
42
|
_useState2 = _slicedToArray(_useState, 2),
|
|
43
43
|
showItemIndex = _useState2[0],
|
|
44
44
|
setShowItemIndex = _useState2[1];
|
|
45
|
-
var customizeRenderSelector = function customizeRenderSelector(value, content, itemDisabled, closable, onClose, isPreview) {
|
|
45
|
+
var customizeRenderSelector = function customizeRenderSelector(value, content, itemDisabled, closable, onClose, isPreview, uniqueKey) {
|
|
46
46
|
var onMouseDown = function onMouseDown(e) {
|
|
47
47
|
onPreventMouseDown(e);
|
|
48
48
|
};
|
|
49
49
|
return /*#__PURE__*/React.createElement("span", {
|
|
50
50
|
className: "beta-ald-select-custom-tag-render-wrapper",
|
|
51
51
|
onMouseDown: onMouseDown,
|
|
52
|
-
key: value
|
|
52
|
+
key: uniqueKey !== null && uniqueKey !== void 0 ? uniqueKey : value
|
|
53
53
|
}, tagRender === null || tagRender === void 0 ? void 0 : tagRender({
|
|
54
54
|
label: content,
|
|
55
55
|
value: value,
|
|
@@ -58,10 +58,10 @@ export default function MultipleSelector(props) {
|
|
|
58
58
|
onClose: onClose !== null && onClose !== void 0 ? onClose : function () {}
|
|
59
59
|
}, isPreview));
|
|
60
60
|
};
|
|
61
|
-
var defaultRenderSelector = function defaultRenderSelector(item, content, itemDisabled, closable, _onClose, isPreview) {
|
|
61
|
+
var defaultRenderSelector = function defaultRenderSelector(item, content, itemDisabled, closable, _onClose, isPreview, uniqueKey) {
|
|
62
62
|
return /*#__PURE__*/React.createElement(Tag, {
|
|
63
63
|
disabled: itemDisabled,
|
|
64
|
-
key: item === null || item === void 0 ? void 0 : item.value,
|
|
64
|
+
key: uniqueKey !== null && uniqueKey !== void 0 ? uniqueKey : item === null || item === void 0 ? void 0 : item.value,
|
|
65
65
|
size: "small",
|
|
66
66
|
closable: isPreview ? false : closable,
|
|
67
67
|
onClose: function onClose(e) {
|
|
@@ -72,7 +72,8 @@ export default function MultipleSelector(props) {
|
|
|
72
72
|
};
|
|
73
73
|
var isResponsiveMode = isResponsive(mode);
|
|
74
74
|
var showSelectedSection = isShowSelectedSection(mode);
|
|
75
|
-
var renderItem = function renderItem(valueItem) {
|
|
75
|
+
var renderItem = function renderItem(valueItem, index) {
|
|
76
|
+
var _valueItem$key;
|
|
76
77
|
var itemDisabled = valueItem.disabled,
|
|
77
78
|
label = valueItem.label,
|
|
78
79
|
value = valueItem.value;
|
|
@@ -97,7 +98,10 @@ export default function MultipleSelector(props) {
|
|
|
97
98
|
if (_.isNil(value)) {
|
|
98
99
|
return null;
|
|
99
100
|
}
|
|
100
|
-
|
|
101
|
+
|
|
102
|
+
// 生成唯一的 key,如果 value 可能重复,使用 value + index 组合
|
|
103
|
+
var uniqueKey = (_valueItem$key = valueItem.key) !== null && _valueItem$key !== void 0 ? _valueItem$key : value !== undefined && value !== null ? "".concat(value, "-").concat(index !== null && index !== void 0 ? index : '') : "item-".concat(index !== null && index !== void 0 ? index : '');
|
|
104
|
+
return typeof tagRender === 'function' ? customizeRenderSelector(value, displayLabel, !!itemDisabled, closable, onClose, isPreview, uniqueKey) : defaultRenderSelector(valueItem, displayLabel, !!itemDisabled, closable, onClose, isPreview, uniqueKey);
|
|
101
105
|
};
|
|
102
106
|
var renderRest = function renderRest(omittedValues) {
|
|
103
107
|
if (displayValues.length === 1) {
|
|
@@ -132,7 +136,7 @@ export default function MultipleSelector(props) {
|
|
|
132
136
|
className: "beta-ald-select-selector beta-ald-select-selector-multiple-responsive"
|
|
133
137
|
}, showItemIndex === -1 && displayValues.length > 0 && /*#__PURE__*/React.createElement("div", {
|
|
134
138
|
className: "beta-ald-select-selector-overflow-item-first"
|
|
135
|
-
}, renderItem(displayValues[0])), /*#__PURE__*/React.createElement(Overflow, {
|
|
139
|
+
}, renderItem(displayValues[0], 0)), /*#__PURE__*/React.createElement(Overflow, {
|
|
136
140
|
prefixCls: overflowPrefixCls,
|
|
137
141
|
data: displayValues,
|
|
138
142
|
renderItem: renderItem,
|
|
@@ -161,5 +165,7 @@ export default function MultipleSelector(props) {
|
|
|
161
165
|
}
|
|
162
166
|
}, /*#__PURE__*/React.createElement("div", {
|
|
163
167
|
className: "beta-ald-select-selector-multiple-default-tags"
|
|
164
|
-
}, displayValues.map(
|
|
168
|
+
}, displayValues.map(function (item, index) {
|
|
169
|
+
return renderItem(item, index);
|
|
170
|
+
})));
|
|
165
171
|
}
|
|
@@ -21,7 +21,10 @@ export default function Selector(props) {
|
|
|
21
21
|
}
|
|
22
22
|
return /*#__PURE__*/React.createElement("div", {
|
|
23
23
|
className: classNames('beta-ald-select-selector')
|
|
24
|
-
}, displayValues.map(function (item) {
|
|
25
|
-
|
|
24
|
+
}, displayValues.map(function (item, index) {
|
|
25
|
+
var _item$value;
|
|
26
|
+
return /*#__PURE__*/React.createElement("span", {
|
|
27
|
+
key: (_item$value = item.value) !== null && _item$value !== void 0 ? _item$value : "item-".concat(index)
|
|
28
|
+
}, item.label);
|
|
26
29
|
}));
|
|
27
30
|
}
|
|
@@ -18,11 +18,19 @@ export var toString = function toString(value) {
|
|
|
18
18
|
/** Is client side and not jsdom */
|
|
19
19
|
export var isBrowserClient = process.env.NODE_ENV !== 'test' && isClient;
|
|
20
20
|
export function convertOptionsToMenu(options, selectedKeys) {
|
|
21
|
+
// 使用 Map 来跟踪每个 key 出现的次数,确保 key 的唯一性
|
|
22
|
+
var keyCountMap = new Map();
|
|
21
23
|
return {
|
|
22
|
-
items: options.map(function (option) {
|
|
24
|
+
items: options.map(function (option, index) {
|
|
25
|
+
var _keyCountMap$get;
|
|
26
|
+
var baseKey = toString(option.value);
|
|
27
|
+
// 如果 key 已存在,添加索引后缀确保唯一性
|
|
28
|
+
var count = (_keyCountMap$get = keyCountMap.get(baseKey)) !== null && _keyCountMap$get !== void 0 ? _keyCountMap$get : 0;
|
|
29
|
+
keyCountMap.set(baseKey, count + 1);
|
|
30
|
+
var uniqueKey = count > 0 ? "".concat(baseKey, "-").concat(index) : baseKey;
|
|
23
31
|
return _objectSpread(_objectSpread({}, option), {}, {
|
|
24
32
|
label: option.label,
|
|
25
|
-
key:
|
|
33
|
+
key: uniqueKey,
|
|
26
34
|
disabled: option.disabled,
|
|
27
35
|
onClick: option.onClick,
|
|
28
36
|
className: option.className,
|
package/dist/Dropdown/index.js
CHANGED
|
@@ -79,7 +79,14 @@ export default function Dropdown(props) {
|
|
|
79
79
|
width: typeof popupMatchTriggerWidth === 'number' ? "".concat(popupMatchTriggerWidth, "px") : "".concat(rects.reference.width, "px")
|
|
80
80
|
});
|
|
81
81
|
}
|
|
82
|
-
}) :
|
|
82
|
+
}) : size({
|
|
83
|
+
apply: function apply(_ref2) {
|
|
84
|
+
var elements = _ref2.elements;
|
|
85
|
+
Object.assign(elements.floating.style, {
|
|
86
|
+
minWidth: '144px'
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
})],
|
|
83
90
|
whileElementsMounted: autoUpdatePos ? autoUpdate : undefined
|
|
84
91
|
}),
|
|
85
92
|
refs = _useFloating.refs,
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { SVGProps } from 'react';
|
|
2
1
|
import * as React from 'react';
|
|
3
2
|
interface SVGRProps {
|
|
4
3
|
size?: number | string;
|
|
@@ -7,5 +6,5 @@ interface SVGRProps {
|
|
|
7
6
|
desc?: string;
|
|
8
7
|
descId?: string;
|
|
9
8
|
}
|
|
10
|
-
declare const Memo: React.MemoExoticComponent<React.ForwardRefExoticComponent<Omit<SVGProps<SVGSVGElement> & SVGRProps, "ref"> & React.RefAttributes<SVGSVGElement>>>;
|
|
9
|
+
declare const Memo: React.MemoExoticComponent<React.ForwardRefExoticComponent<Omit<React.SVGProps<SVGSVGElement> & SVGRProps, "ref"> & React.RefAttributes<SVGSVGElement>>>;
|
|
11
10
|
export default Memo;
|
|
@@ -24,7 +24,7 @@ var InProgressFill = function InProgressFill(_ref, ref) {
|
|
|
24
24
|
}, desc) : null, title ? /*#__PURE__*/React.createElement("title", {
|
|
25
25
|
id: titleId
|
|
26
26
|
}, title) : null, /*#__PURE__*/React.createElement("g", {
|
|
27
|
-
fill: "
|
|
27
|
+
fill: "currentColor"
|
|
28
28
|
}, /*#__PURE__*/React.createElement("path", {
|
|
29
29
|
d: "M15 10a5 5 0 0 1-5 5V5a5 5 0 0 1 5 5Z"
|
|
30
30
|
}), /*#__PURE__*/React.createElement("path", {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
2
|
<g id=" Icon / Fill / Interface / In-Progress-fill">
|
|
3
3
|
<g id="Icon">
|
|
4
|
-
<path d="M15.0001 10C15.0001 12.7614 12.7615 15 10.0001 15V5.00001C12.7615 5.00001 15.0001 7.23858 15.0001 10Z" fill="
|
|
5
|
-
<path fill-rule="evenodd" clip-rule="evenodd" d="M18.3334 10C18.3334 14.6024 14.6025 18.3333 10.0001 18.3333C5.39771 18.3333 1.66675 14.6024 1.66675 10C1.66675 5.39763 5.39771 1.66667 10.0001 1.66667C14.6025 1.66667 18.3334 5.39763 18.3334 10ZM16.6667 10C16.6667 13.6819 13.682 16.6667 10.0001 16.6667C6.31818 16.6667 3.33341 13.6819 3.33341 10C3.33341 6.31811 6.31818 3.33334 10.0001 3.33334C13.682 3.33334 16.6667 6.31811 16.6667 10Z" fill="
|
|
4
|
+
<path d="M15.0001 10C15.0001 12.7614 12.7615 15 10.0001 15V5.00001C12.7615 5.00001 15.0001 7.23858 15.0001 10Z" fill="currentColor"/>
|
|
5
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M18.3334 10C18.3334 14.6024 14.6025 18.3333 10.0001 18.3333C5.39771 18.3333 1.66675 14.6024 1.66675 10C1.66675 5.39763 5.39771 1.66667 10.0001 1.66667C14.6025 1.66667 18.3334 5.39763 18.3334 10ZM16.6667 10C16.6667 13.6819 13.682 16.6667 10.0001 16.6667C6.31818 16.6667 3.33341 13.6819 3.33341 10C3.33341 6.31811 6.31818 3.33334 10.0001 3.33334C13.682 3.33334 16.6667 6.31811 16.6667 10Z" fill="currentColor"/>
|
|
6
6
|
</g>
|
|
7
7
|
</g>
|
|
8
8
|
</svg>
|
|
@@ -17,13 +17,18 @@
|
|
|
17
17
|
@inputNumber-padding-small: 0 7px;
|
|
18
18
|
|
|
19
19
|
//默认 - 使用CSS变量映射
|
|
20
|
-
@inputNumber-bg-color: var(--background-
|
|
21
|
-
@inputNumber-border-color: var(--border-
|
|
20
|
+
@inputNumber-bg-color: var(--interaction-background-form-field);
|
|
21
|
+
@inputNumber-border-color: var(--interaction-border-neutral-normal);
|
|
22
22
|
@inputNumber-color: var(--content-primary);
|
|
23
23
|
@inputNumber-wrapper-bg-color: var(--background-neutral-subtle);
|
|
24
|
+
|
|
25
|
+
//hover
|
|
26
|
+
@inputNumber-hover-bg-color: var(--interaction-background-form-field);
|
|
27
|
+
@inputNumber-hover-border-color: var(--interaction-border-hover);
|
|
24
28
|
//激活
|
|
25
29
|
@inputNumber-active-bg-color: var(--background-default);
|
|
26
|
-
@inputNumber-active-border-color: var(--interaction-border-
|
|
30
|
+
@inputNumber-active-border-color: var(--interaction-border-hover);
|
|
31
|
+
@inputNumber-active-outline-color: var(--global-blue-500);
|
|
27
32
|
|
|
28
33
|
//disable
|
|
29
34
|
@inputNumber-disabled-bg-color: var(--global-cool-gray-alpha-50);
|
|
@@ -47,6 +52,7 @@
|
|
|
47
52
|
background-color: @inputNumber-bg-color;
|
|
48
53
|
border-color: @inputNumber-border-color;
|
|
49
54
|
border-radius: @inputNumber-border-radius-middle;
|
|
55
|
+
overflow: hidden;
|
|
50
56
|
box-shadow: none;
|
|
51
57
|
|
|
52
58
|
.ant-input-number-input-wrap {
|
|
@@ -55,6 +61,7 @@
|
|
|
55
61
|
.ant-input-number-input {
|
|
56
62
|
height: 100%;
|
|
57
63
|
caret-color: @inputNumber-cursor-color;
|
|
64
|
+
border-radius: 0;
|
|
58
65
|
}
|
|
59
66
|
}
|
|
60
67
|
|
|
@@ -156,11 +163,16 @@
|
|
|
156
163
|
}
|
|
157
164
|
}
|
|
158
165
|
|
|
159
|
-
&:hover:not(.ald-input-number-disabled)
|
|
166
|
+
&:hover:not(.ald-input-number-disabled) {
|
|
167
|
+
background-color: @inputNumber-hover-bg-color;
|
|
168
|
+
border-color: @inputNumber-hover-border-color;
|
|
169
|
+
}
|
|
170
|
+
|
|
160
171
|
&-focused {
|
|
161
172
|
background-color: @inputNumber-active-bg-color;
|
|
162
173
|
border-color: @inputNumber-active-border-color;
|
|
163
174
|
box-shadow: none;
|
|
175
|
+
outline: @inputNumber-active-outline-color solid 1px;
|
|
164
176
|
}
|
|
165
177
|
}
|
|
166
178
|
|
|
@@ -172,6 +184,16 @@
|
|
|
172
184
|
border-color: @inputNumber-border-color;
|
|
173
185
|
box-shadow: none;
|
|
174
186
|
|
|
187
|
+
&:hover {
|
|
188
|
+
border-color: @inputNumber-hover-border-color;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
&:focus {
|
|
192
|
+
border-color: @inputNumber-active-border-color;
|
|
193
|
+
box-shadow: none;
|
|
194
|
+
outline: @inputNumber-active-outline-color solid 1px;
|
|
195
|
+
}
|
|
196
|
+
|
|
175
197
|
&.ald-input-number-large {
|
|
176
198
|
font-size: @inputNumber-font-size-large;
|
|
177
199
|
border-radius: @inputNumber-border-radius-large;
|
|
@@ -273,6 +295,18 @@
|
|
|
273
295
|
color: @inputNumber-addon-disable-color;
|
|
274
296
|
}
|
|
275
297
|
}
|
|
298
|
+
|
|
299
|
+
.ant-input-number-focused {
|
|
300
|
+
outline: none !important;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
.ant-input-number-handler-wrap {
|
|
304
|
+
border-radius: 0 !important;
|
|
305
|
+
|
|
306
|
+
.ant-input-number-handler {
|
|
307
|
+
border-radius: 0 !important;
|
|
308
|
+
}
|
|
309
|
+
}
|
|
276
310
|
}
|
|
277
311
|
}
|
|
278
312
|
|
|
@@ -281,3 +315,16 @@
|
|
|
281
315
|
).ant-input-number.ant-input-number {
|
|
282
316
|
border-color: var(--border-negative-strong);
|
|
283
317
|
}
|
|
318
|
+
|
|
319
|
+
.ald-input-number.ant-input-number-affix-wrapper {
|
|
320
|
+
border-color: @inputNumber-border-color;
|
|
321
|
+
|
|
322
|
+
&:hover {
|
|
323
|
+
border-color: @inputNumber-hover-border-color;
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
&-focused {
|
|
327
|
+
border-color: @inputNumber-hover-border-color;
|
|
328
|
+
outline: @inputNumber-hover-border-color solid 1px;
|
|
329
|
+
}
|
|
330
|
+
}
|
|
@@ -11,6 +11,12 @@ interface IMemberSelectionProps {
|
|
|
11
11
|
width: number;
|
|
12
12
|
filterItem?: (item: IUser) => boolean;
|
|
13
13
|
lockedIds: Array<TUserValue | TUserGroupValue>;
|
|
14
|
+
renderItem?: (item: IUser, context: {
|
|
15
|
+
isSelected: boolean;
|
|
16
|
+
disabled: boolean;
|
|
17
|
+
onClick: () => void;
|
|
18
|
+
originNode: React.ReactNode;
|
|
19
|
+
}) => React.ReactNode;
|
|
14
20
|
}
|
|
15
21
|
export declare const OPTION_HEIGHT = 36;
|
|
16
22
|
export declare const WRAPPER_HEIGHT = 300;
|
|
@@ -31,7 +31,8 @@ export default function MemberSelection(props) {
|
|
|
31
31
|
loading = props.loading,
|
|
32
32
|
width = props.width,
|
|
33
33
|
lockedIds = props.lockedIds,
|
|
34
|
-
filterItem = props.filterItem
|
|
34
|
+
filterItem = props.filterItem,
|
|
35
|
+
renderItem = props.renderItem;
|
|
35
36
|
var filteredList = useMemo(function () {
|
|
36
37
|
return userList.filter(function (item) {
|
|
37
38
|
if (filterItem) {
|
|
@@ -114,17 +115,7 @@ export default function MemberSelection(props) {
|
|
|
114
115
|
type: user.type
|
|
115
116
|
});
|
|
116
117
|
var disabled = index !== -1;
|
|
117
|
-
|
|
118
|
-
key: virtualItem.key,
|
|
119
|
-
style: {
|
|
120
|
-
position: 'absolute',
|
|
121
|
-
top: 0,
|
|
122
|
-
left: 0,
|
|
123
|
-
width: '100%',
|
|
124
|
-
height: "".concat(virtualItem.size, "px"),
|
|
125
|
-
transform: "translateY(".concat(virtualItem.start, "px)")
|
|
126
|
-
}
|
|
127
|
-
}, multiple ? /*#__PURE__*/React.createElement(MultipleOption, {
|
|
118
|
+
var originNode = multiple ? /*#__PURE__*/React.createElement(MultipleOption, {
|
|
128
119
|
key: user.userId,
|
|
129
120
|
user: user,
|
|
130
121
|
disabled: disabled,
|
|
@@ -141,6 +132,39 @@ export default function MemberSelection(props) {
|
|
|
141
132
|
onChange: function onChange(selected, user) {
|
|
142
133
|
if (isUser(user)) _onChange(selected, user);
|
|
143
134
|
}
|
|
144
|
-
})
|
|
135
|
+
});
|
|
136
|
+
if (renderItem) {
|
|
137
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
138
|
+
key: virtualItem.key,
|
|
139
|
+
style: {
|
|
140
|
+
position: 'absolute',
|
|
141
|
+
top: 0,
|
|
142
|
+
left: 0,
|
|
143
|
+
width: '100%',
|
|
144
|
+
height: "".concat(virtualItem.size, "px"),
|
|
145
|
+
transform: "translateY(".concat(virtualItem.start, "px)")
|
|
146
|
+
}
|
|
147
|
+
}, renderItem(user, {
|
|
148
|
+
isSelected: isSelected,
|
|
149
|
+
disabled: disabled,
|
|
150
|
+
onClick: function onClick() {
|
|
151
|
+
if (!disabled) {
|
|
152
|
+
_onChange(!isSelected, user);
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
originNode: originNode
|
|
156
|
+
}));
|
|
157
|
+
}
|
|
158
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
159
|
+
key: virtualItem.key,
|
|
160
|
+
style: {
|
|
161
|
+
position: 'absolute',
|
|
162
|
+
top: 0,
|
|
163
|
+
left: 0,
|
|
164
|
+
width: '100%',
|
|
165
|
+
height: "".concat(virtualItem.size, "px"),
|
|
166
|
+
transform: "translateY(".concat(virtualItem.start, "px)")
|
|
167
|
+
}
|
|
168
|
+
}, originNode);
|
|
145
169
|
})))));
|
|
146
170
|
}
|
|
@@ -14,6 +14,14 @@ interface IPanelProps {
|
|
|
14
14
|
className?: string;
|
|
15
15
|
lockedIds: Array<TUserValue | TUserGroupValue>;
|
|
16
16
|
footer?: ReactNode;
|
|
17
|
+
renderItem?: (item: IUser | IUserGroup, context: {
|
|
18
|
+
isSelected: boolean;
|
|
19
|
+
disabled: boolean;
|
|
20
|
+
onClick: () => void;
|
|
21
|
+
onNextLevel?: () => void;
|
|
22
|
+
originNode: ReactNode;
|
|
23
|
+
}) => ReactNode;
|
|
24
|
+
renderSelectedTag?: (user: IUser | IUserGroup, originNode: ReactNode) => ReactNode;
|
|
17
25
|
}
|
|
18
26
|
export declare const userDisplayNameIsRepeated: (userList: TUser, displayName?: string) => boolean;
|
|
19
27
|
export default function Panel(props: IPanelProps): React.JSX.Element;
|
|
@@ -44,7 +44,9 @@ export default function Panel(props) {
|
|
|
44
44
|
className = props.className,
|
|
45
45
|
lockedIds = props.lockedIds,
|
|
46
46
|
footer = props.footer,
|
|
47
|
-
onCancel = props.onCancel
|
|
47
|
+
onCancel = props.onCancel,
|
|
48
|
+
renderItem = props.renderItem,
|
|
49
|
+
renderSelectedTag = props.renderSelectedTag;
|
|
48
50
|
var _useState = useState([]),
|
|
49
51
|
_useState2 = _slicedToArray(_useState, 2),
|
|
50
52
|
selectedUsers = _useState2[0],
|
|
@@ -101,7 +103,8 @@ export default function Panel(props) {
|
|
|
101
103
|
onSearchValueChange: onSearchValueChange,
|
|
102
104
|
multiple: true,
|
|
103
105
|
lockedIds: lockedIds,
|
|
104
|
-
loading: props.loading
|
|
106
|
+
loading: props.loading,
|
|
107
|
+
renderItem: renderItem
|
|
105
108
|
});
|
|
106
109
|
var userGroupSelection = /*#__PURE__*/React.createElement(UserGroupSelection, {
|
|
107
110
|
className: 'ald-member-picker-member-selection-multiple',
|
|
@@ -112,7 +115,8 @@ export default function Panel(props) {
|
|
|
112
115
|
onSearchValueChange: onSearchValueChange,
|
|
113
116
|
multiple: true,
|
|
114
117
|
lockedIds: lockedIds,
|
|
115
|
-
loading: props.loading
|
|
118
|
+
loading: props.loading,
|
|
119
|
+
renderItem: renderItem
|
|
116
120
|
});
|
|
117
121
|
if (type === EMemberPicker.USER) {
|
|
118
122
|
return userSelection;
|
|
@@ -136,7 +140,7 @@ export default function Panel(props) {
|
|
|
136
140
|
className: "ald-member-tabs"
|
|
137
141
|
});
|
|
138
142
|
}
|
|
139
|
-
}, [t, dataList, panelwidth, selectedUsers, onSelectionChange, onSearchValueChange, lockedIds, props.loading, type]);
|
|
143
|
+
}, [t, dataList, panelwidth, selectedUsers, onSelectionChange, onSearchValueChange, lockedIds, props.loading, type, renderItem]);
|
|
140
144
|
return /*#__PURE__*/React.createElement("div", {
|
|
141
145
|
className: classNames(className, 'ald-member-picker-wrapper', (_classNames = {}, _defineProperty(_classNames, 'ald-member-picker-multiple', multiple), _defineProperty(_classNames, 'ald-member-picker-single', !multiple), _classNames)),
|
|
142
146
|
style: {
|
|
@@ -150,7 +154,8 @@ export default function Panel(props) {
|
|
|
150
154
|
width: (panelwidth - 3) / 2,
|
|
151
155
|
onRemove: onRemove,
|
|
152
156
|
lockedIds: lockedIds,
|
|
153
|
-
userList: dataList
|
|
157
|
+
userList: dataList,
|
|
158
|
+
renderSelectedTag: renderSelectedTag
|
|
154
159
|
}), /*#__PURE__*/React.createElement(SelectorFooter, {
|
|
155
160
|
className: 'ald-member-picker-selector-footer',
|
|
156
161
|
onCancel: onCancel,
|
|
@@ -167,7 +172,8 @@ export default function Panel(props) {
|
|
|
167
172
|
onSearchValueChange: onSearchValueChange,
|
|
168
173
|
multiple: false && multiple,
|
|
169
174
|
lockedIds: lockedIds,
|
|
170
|
-
loading: props.loading
|
|
175
|
+
loading: props.loading,
|
|
176
|
+
renderItem: renderItem
|
|
171
177
|
}), type === EMemberPicker.GROUP && /*#__PURE__*/React.createElement(UserGroupSelection, {
|
|
172
178
|
className: 'ald-member-picker-member-selection-multiple',
|
|
173
179
|
userGroupList: dataList.filter(isUserGroup),
|
|
@@ -177,6 +183,7 @@ export default function Panel(props) {
|
|
|
177
183
|
onSearchValueChange: onSearchValueChange,
|
|
178
184
|
multiple: false,
|
|
179
185
|
lockedIds: lockedIds,
|
|
180
|
-
loading: props.loading
|
|
186
|
+
loading: props.loading,
|
|
187
|
+
renderItem: renderItem
|
|
181
188
|
})));
|
|
182
189
|
}
|
|
@@ -12,6 +12,14 @@ interface IProps {
|
|
|
12
12
|
lockedIds?: Array<TUserValue | TUserGroupValue>;
|
|
13
13
|
showUserId?: boolean;
|
|
14
14
|
footer?: ReactNode;
|
|
15
|
+
renderItem?: (item: IUser | IUserGroup, context: {
|
|
16
|
+
isSelected: boolean;
|
|
17
|
+
disabled: boolean;
|
|
18
|
+
onClick: () => void;
|
|
19
|
+
onNextLevel?: () => void;
|
|
20
|
+
originNode: ReactNode;
|
|
21
|
+
}) => ReactNode;
|
|
22
|
+
renderSelectedTag?: (user: IUser | IUserGroup, originNode: ReactNode) => ReactNode;
|
|
15
23
|
}
|
|
16
|
-
export declare const PanelWrapper: ({ type, value, multiple, dropdownWidth, onChange, onCancel, className, footer, lockedIds, }: IProps) => React.JSX.Element;
|
|
24
|
+
export declare const PanelWrapper: ({ type, value, multiple, dropdownWidth, onChange, onCancel, className, footer, lockedIds, renderItem, renderSelectedTag, }: IProps) => React.JSX.Element;
|
|
17
25
|
export default PanelWrapper;
|
|
@@ -24,7 +24,9 @@ export var PanelWrapper = function PanelWrapper(_ref) {
|
|
|
24
24
|
className = _ref.className,
|
|
25
25
|
footer = _ref.footer,
|
|
26
26
|
_ref$lockedIds = _ref.lockedIds,
|
|
27
|
-
lockedIds = _ref$lockedIds === void 0 ? [] : _ref$lockedIds
|
|
27
|
+
lockedIds = _ref$lockedIds === void 0 ? [] : _ref$lockedIds,
|
|
28
|
+
renderItem = _ref.renderItem,
|
|
29
|
+
renderSelectedTag = _ref.renderSelectedTag;
|
|
28
30
|
var _useContext = useContext(LocaleContext),
|
|
29
31
|
locale = _useContext.locale;
|
|
30
32
|
var t = getTranslator(locale);
|
|
@@ -136,7 +138,9 @@ export var PanelWrapper = function PanelWrapper(_ref) {
|
|
|
136
138
|
className: className,
|
|
137
139
|
onCancel: onCancel,
|
|
138
140
|
lockedIds: lockedIds,
|
|
139
|
-
footer: footer
|
|
141
|
+
footer: footer,
|
|
142
|
+
renderItem: renderItem,
|
|
143
|
+
renderSelectedTag: renderSelectedTag
|
|
140
144
|
});
|
|
141
145
|
};
|
|
142
146
|
export default PanelWrapper;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
2
|
import { IUserGroup, TUser, TUserGroupValue, TUserValue } from '../../ConfigProvider/getUserList';
|
|
3
3
|
import { IUser } from '../interface';
|
|
4
4
|
interface ISelectedMemberTagsProps {
|
|
@@ -8,6 +8,7 @@ interface ISelectedMemberTagsProps {
|
|
|
8
8
|
width: number;
|
|
9
9
|
lockedIds: Array<TUserValue | TUserGroupValue>;
|
|
10
10
|
userList: TUser;
|
|
11
|
+
renderSelectedTag?: (user: IUser | IUserGroup, originNode: ReactNode) => ReactNode;
|
|
11
12
|
}
|
|
12
13
|
export default function SelectedMemberTags(props: ISelectedMemberTagsProps): React.JSX.Element;
|
|
13
14
|
export {};
|
|
@@ -14,7 +14,8 @@ export default function SelectedMemberTags(props) {
|
|
|
14
14
|
selectedUsers = props.selectedUsers,
|
|
15
15
|
width = props.width,
|
|
16
16
|
_props$lockedIds = props.lockedIds,
|
|
17
|
-
lockedIds = _props$lockedIds === void 0 ? [] : _props$lockedIds
|
|
17
|
+
lockedIds = _props$lockedIds === void 0 ? [] : _props$lockedIds,
|
|
18
|
+
renderSelectedTag = props.renderSelectedTag;
|
|
18
19
|
var _ConfigProvider$useGe = ConfigProvider.useGetUserList(),
|
|
19
20
|
getMemberPickerItemMoreInfoKey = _ConfigProvider$useGe.getMemberPickerItemMoreInfoKey;
|
|
20
21
|
var _useContext = useContext(LocaleContext),
|
|
@@ -46,7 +47,7 @@ export default function SelectedMemberTags(props) {
|
|
|
46
47
|
});
|
|
47
48
|
hasLocked = _index !== -1;
|
|
48
49
|
}
|
|
49
|
-
|
|
50
|
+
var originNode = /*#__PURE__*/React.createElement("div", {
|
|
50
51
|
className: 'ald-member-picker-selected-member-tag',
|
|
51
52
|
key: getId(user)
|
|
52
53
|
}, /*#__PURE__*/React.createElement("div", {
|
|
@@ -73,5 +74,9 @@ export default function SelectedMemberTags(props) {
|
|
|
73
74
|
(_props$onRemove = props.onRemove) === null || _props$onRemove === void 0 ? void 0 : _props$onRemove.call(props, user);
|
|
74
75
|
}
|
|
75
76
|
}));
|
|
77
|
+
if (renderSelectedTag) {
|
|
78
|
+
return renderSelectedTag(user, originNode);
|
|
79
|
+
}
|
|
80
|
+
return originNode;
|
|
76
81
|
}))));
|
|
77
82
|
}
|
|
@@ -11,6 +11,13 @@ interface IProps {
|
|
|
11
11
|
width: number;
|
|
12
12
|
lockedIds: Array<TUserValue | TUserGroupValue>;
|
|
13
13
|
filterItem?: (item: IUserGroup) => boolean;
|
|
14
|
+
renderItem?: (item: IUserGroup, context: {
|
|
15
|
+
isSelected: boolean;
|
|
16
|
+
disabled: boolean;
|
|
17
|
+
onClick: () => void;
|
|
18
|
+
onNextLevel?: () => void;
|
|
19
|
+
originNode: React.ReactNode;
|
|
20
|
+
}) => React.ReactNode;
|
|
14
21
|
}
|
|
15
|
-
declare const UserGroupSelection: ({ className, userGroupList, multiple, onChange, selectedUsersGroup: selectedUsersGroups, loading, width, lockedIds, filterItem, }: IProps) => React.JSX.Element;
|
|
22
|
+
declare const UserGroupSelection: ({ className, userGroupList, multiple, onChange, selectedUsersGroup: selectedUsersGroups, loading, width, lockedIds, filterItem, renderItem, }: IProps) => React.JSX.Element;
|
|
16
23
|
export default UserGroupSelection;
|
|
@@ -35,7 +35,8 @@ var UserGroupSelection = function UserGroupSelection(_ref) {
|
|
|
35
35
|
loading = _ref.loading,
|
|
36
36
|
width = _ref.width,
|
|
37
37
|
lockedIds = _ref.lockedIds,
|
|
38
|
-
filterItem = _ref.filterItem
|
|
38
|
+
filterItem = _ref.filterItem,
|
|
39
|
+
renderItem = _ref.renderItem;
|
|
39
40
|
var _useContext = useContext(LocaleContext),
|
|
40
41
|
locale = _useContext.locale;
|
|
41
42
|
var t = getTranslator(locale);
|
|
@@ -174,7 +175,16 @@ var UserGroupSelection = function UserGroupSelection(_ref) {
|
|
|
174
175
|
type: userGroup.type
|
|
175
176
|
});
|
|
176
177
|
var disabled = index !== -1;
|
|
177
|
-
|
|
178
|
+
var hasNextLevel = userGroupList.some(function (group) {
|
|
179
|
+
return group.parentId === userGroup.groupId;
|
|
180
|
+
}) || isAsync;
|
|
181
|
+
var onNextLevel = function onNextLevel() {
|
|
182
|
+
setGroupPath(function (prev) {
|
|
183
|
+
return [].concat(_toConsumableArray(prev), [userGroup]);
|
|
184
|
+
});
|
|
185
|
+
setSearchKey('');
|
|
186
|
+
};
|
|
187
|
+
var originNode = multiple ? /*#__PURE__*/React.createElement(MultipleOption, {
|
|
178
188
|
key: userGroup.groupId,
|
|
179
189
|
user: userGroup,
|
|
180
190
|
disabled: disabled,
|
|
@@ -184,15 +194,8 @@ var UserGroupSelection = function UserGroupSelection(_ref) {
|
|
|
184
194
|
_onChange(selected, userGroup);
|
|
185
195
|
}
|
|
186
196
|
},
|
|
187
|
-
hasNextLevel:
|
|
188
|
-
|
|
189
|
-
}) || isAsync,
|
|
190
|
-
onNextLevel: function onNextLevel(userGroup) {
|
|
191
|
-
setGroupPath(function (prev) {
|
|
192
|
-
return [].concat(_toConsumableArray(prev), [userGroup]);
|
|
193
|
-
});
|
|
194
|
-
setSearchKey('');
|
|
195
|
-
}
|
|
197
|
+
hasNextLevel: hasNextLevel,
|
|
198
|
+
onNextLevel: onNextLevel
|
|
196
199
|
}) : /*#__PURE__*/React.createElement(SingleOption, {
|
|
197
200
|
key: userGroup.groupId,
|
|
198
201
|
user: userGroup,
|
|
@@ -203,16 +206,25 @@ var UserGroupSelection = function UserGroupSelection(_ref) {
|
|
|
203
206
|
_onChange(selected, userGroup);
|
|
204
207
|
}
|
|
205
208
|
},
|
|
206
|
-
hasNextLevel:
|
|
207
|
-
|
|
208
|
-
}) || isAsync,
|
|
209
|
-
onNextLevel: function onNextLevel(userGroup) {
|
|
210
|
-
setGroupPath(function (prev) {
|
|
211
|
-
return [].concat(_toConsumableArray(prev), [userGroup]);
|
|
212
|
-
});
|
|
213
|
-
setSearchKey('');
|
|
214
|
-
}
|
|
209
|
+
hasNextLevel: hasNextLevel,
|
|
210
|
+
onNextLevel: onNextLevel
|
|
215
211
|
});
|
|
212
|
+
if (renderItem) {
|
|
213
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
214
|
+
key: userGroup.groupId
|
|
215
|
+
}, renderItem(userGroup, {
|
|
216
|
+
isSelected: isSelected,
|
|
217
|
+
disabled: disabled,
|
|
218
|
+
onClick: function onClick() {
|
|
219
|
+
if (isUserGroup(userGroup) && !disabled) {
|
|
220
|
+
_onChange(!isSelected, userGroup);
|
|
221
|
+
}
|
|
222
|
+
},
|
|
223
|
+
onNextLevel: hasNextLevel ? onNextLevel : undefined,
|
|
224
|
+
originNode: originNode
|
|
225
|
+
}));
|
|
226
|
+
}
|
|
227
|
+
return originNode;
|
|
216
228
|
})))));
|
|
217
229
|
};
|
|
218
230
|
export default UserGroupSelection;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var _excluded = ["value", "type", "onChange", "multiple", "dropdownWidth", "open", "onOpenChange", "placeholder", "className", "allowClear", "disabled", "onClear", "size", "prefix", "lockedIds", "footer", "onCancel", "filterItem", "mode"];
|
|
1
|
+
var _excluded = ["value", "type", "onChange", "multiple", "dropdownWidth", "open", "onOpenChange", "placeholder", "className", "allowClear", "disabled", "onClear", "size", "prefix", "lockedIds", "footer", "onCancel", "filterItem", "mode", "renderItem", "renderSelectedTag"];
|
|
2
2
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
3
3
|
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; }
|
|
4
4
|
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; }
|
|
@@ -60,6 +60,8 @@ var Component = function Component(props) {
|
|
|
60
60
|
_onCancel = props.onCancel,
|
|
61
61
|
filterItem = props.filterItem,
|
|
62
62
|
propsMode = props.mode,
|
|
63
|
+
renderItem = props.renderItem,
|
|
64
|
+
renderSelectedTag = props.renderSelectedTag,
|
|
63
65
|
restProps = _objectWithoutProperties(props, _excluded);
|
|
64
66
|
var _ConfigProvider$useGe = ConfigProvider.useGetUserList(),
|
|
65
67
|
getUsersByIds = _ConfigProvider$useGe.getUsersByIds,
|
|
@@ -368,7 +370,9 @@ var Component = function Component(props) {
|
|
|
368
370
|
onCancel: function onCancel() {
|
|
369
371
|
_onCancel === null || _onCancel === void 0 ? void 0 : _onCancel();
|
|
370
372
|
setDropdownOpen(false);
|
|
371
|
-
}
|
|
373
|
+
},
|
|
374
|
+
renderItem: renderItem,
|
|
375
|
+
renderSelectedTag: renderSelectedTag
|
|
372
376
|
}));
|
|
373
377
|
}
|
|
374
378
|
}));
|