@aloudata/aloudata-design 2.19.2 → 2.19.4
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/style/index.less +1 -1
- package/dist/Checkbox/style/index.less +5 -0
- package/dist/ColorPicker/style/index.less +22 -1
- package/dist/InputSearch/index.d.ts +3 -0
- package/dist/InputSearch/index.js +9 -2
- package/dist/LogicTree/components/DisplayLogicItem/index.d.ts +1 -2
- package/dist/LogicTree/components/DisplayLogicItem/index.js +2 -3
- package/dist/LogicTree/components/LogicItem/index.js +25 -7
- package/dist/MemberPicker/components/Panel.d.ts +1 -0
- package/dist/MemberPicker/components/Panel.js +4 -1
- package/dist/MemberPicker/components/PanelWrapper.d.ts +2 -1
- package/dist/MemberPicker/components/PanelWrapper.js +9 -3
- package/dist/Table/hooks/useScroll.js +12 -0
- package/dist/Table/index.js +2 -1
- package/dist/TextLink/style/index.less +1 -0
- package/dist/TextLink/style/type.less +0 -16
- package/dist/ald.min.css +1 -1
- package/package.json +1 -1
|
@@ -22,10 +22,27 @@
|
|
|
22
22
|
cursor: pointer;
|
|
23
23
|
transition: border 0.5s ease-in-out;
|
|
24
24
|
border-radius: 4px;
|
|
25
|
+
color: var(--content-primary);
|
|
25
26
|
|
|
26
27
|
&:not(.ald-color-picker-wrapper-disabled):hover {
|
|
27
28
|
border: 1px solid var(--interaction-border-normal);
|
|
28
29
|
}
|
|
30
|
+
|
|
31
|
+
&-disabled {
|
|
32
|
+
border: 1px solid var(--interaction-border-neutral-normal);
|
|
33
|
+
background: var(--global-cool-gray-alpha-50);
|
|
34
|
+
color: var(--content-primary);
|
|
35
|
+
|
|
36
|
+
&.ald-color-picker-wrapper-borderless {
|
|
37
|
+
border-color: transparent;
|
|
38
|
+
background: transparent;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
&:hover {
|
|
42
|
+
border-color: var(--interaction-border-neutral-normal);
|
|
43
|
+
background-color: var(--global-cool-gray-alpha-50);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
29
46
|
}
|
|
30
47
|
|
|
31
48
|
.ald-color-picker-wrapper-borderless {
|
|
@@ -165,5 +182,9 @@
|
|
|
165
182
|
}
|
|
166
183
|
|
|
167
184
|
.ald-color-picker-disabled {
|
|
168
|
-
|
|
185
|
+
cursor: initial;
|
|
186
|
+
|
|
187
|
+
.ald-color-picker-wrapper {
|
|
188
|
+
cursor: initial;
|
|
189
|
+
}
|
|
169
190
|
}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
export default function InputSearch(props: IProps): React.JSX.Element;
|
|
3
3
|
interface IProps {
|
|
4
|
+
/** 搜索回调,在输入完成时触发(回车、输入法结束、非输入法输入时) */
|
|
4
5
|
onSearch: (value: string) => void;
|
|
6
|
+
/** 值变化回调(受控模式时推荐使用,每次输入都触发,包括输入法期间) */
|
|
7
|
+
onChange?: (value: string) => void;
|
|
5
8
|
onBlur?: (value: string, e: React.FocusEvent<HTMLInputElement>) => void;
|
|
6
9
|
className?: string;
|
|
7
10
|
debounce?: boolean;
|
|
@@ -30,6 +30,7 @@ export default function InputSearch(props) {
|
|
|
30
30
|
locale = _useContext.locale;
|
|
31
31
|
var t = getTranslator(locale);
|
|
32
32
|
var onSearch = props.onSearch,
|
|
33
|
+
onChange = props.onChange,
|
|
33
34
|
className = props.className,
|
|
34
35
|
_props$debounce = props.debounce,
|
|
35
36
|
debounce = _props$debounce === void 0 ? true : _props$debounce,
|
|
@@ -91,6 +92,9 @@ export default function InputSearch(props) {
|
|
|
91
92
|
// 非受控模式才更新内部状态
|
|
92
93
|
if (!isControlled) {
|
|
93
94
|
setSearchValue(newValue);
|
|
95
|
+
} else {
|
|
96
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(newValue);
|
|
97
|
+
return;
|
|
94
98
|
}
|
|
95
99
|
if (!isComposing.current) {
|
|
96
100
|
// 受控的时候debounce不生效
|
|
@@ -100,11 +104,14 @@ export default function InputSearch(props) {
|
|
|
100
104
|
onSearch(newValue);
|
|
101
105
|
}
|
|
102
106
|
}
|
|
103
|
-
}, [debounce, debounceSearch, onSearch, isControlled]);
|
|
107
|
+
}, [debounce, debounceSearch, onSearch, isControlled, onChange]);
|
|
104
108
|
var handleCompositionStart = useCallback(function () {
|
|
105
109
|
isComposing.current = true;
|
|
106
110
|
}, []);
|
|
107
111
|
var handleCompositionEnd = useCallback(function (e) {
|
|
112
|
+
if (isControlled) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
108
115
|
isComposing.current = false;
|
|
109
116
|
// 在输入法结束后触发一次搜索
|
|
110
117
|
var value = e.target.value;
|
|
@@ -113,7 +120,7 @@ export default function InputSearch(props) {
|
|
|
113
120
|
} else {
|
|
114
121
|
onSearch(value);
|
|
115
122
|
}
|
|
116
|
-
}, [debounce, debounceSearch, onSearch]);
|
|
123
|
+
}, [debounce, debounceSearch, isControlled, onSearch]);
|
|
117
124
|
var iconSize = useMemo(function () {
|
|
118
125
|
if (size === 'middle' || size === 'large') {
|
|
119
126
|
return 20;
|
|
@@ -4,7 +4,6 @@ interface IProps<T> {
|
|
|
4
4
|
value: TNode<T>;
|
|
5
5
|
renderCondition: (value: T) => React.ReactNode;
|
|
6
6
|
backgroundColor?: string;
|
|
7
|
-
key: string;
|
|
8
7
|
}
|
|
9
|
-
export declare function DisplayLogicItem<T>({ value, renderCondition, backgroundColor,
|
|
8
|
+
export declare function DisplayLogicItem<T>({ value, renderCondition, backgroundColor, }: IProps<T>): React.JSX.Element | null;
|
|
10
9
|
export {};
|
|
@@ -17,8 +17,7 @@ export function DisplayLogicItem(_ref) {
|
|
|
17
17
|
var _logicTypeTextMap;
|
|
18
18
|
var value = _ref.value,
|
|
19
19
|
renderCondition = _ref.renderCondition,
|
|
20
|
-
backgroundColor = _ref.backgroundColor
|
|
21
|
-
key = _ref.key;
|
|
20
|
+
backgroundColor = _ref.backgroundColor;
|
|
22
21
|
var _useState = useState(0),
|
|
23
22
|
_useState2 = _slicedToArray(_useState, 2),
|
|
24
23
|
firstNodeHight = _useState2[0],
|
|
@@ -57,7 +56,7 @@ export function DisplayLogicItem(_ref) {
|
|
|
57
56
|
return /*#__PURE__*/React.createElement("div", {
|
|
58
57
|
className: "ald-logic-tree-node-wrap",
|
|
59
58
|
ref: ref,
|
|
60
|
-
key:
|
|
59
|
+
key: node.id
|
|
61
60
|
}, /*#__PURE__*/React.createElement("div", {
|
|
62
61
|
className: "ald-logic-tree-horizontal-line"
|
|
63
62
|
}), /*#__PURE__*/React.createElement(DisplayLogicItem, {
|
|
@@ -7,7 +7,7 @@ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefine
|
|
|
7
7
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
8
8
|
import classNames from 'classnames';
|
|
9
9
|
import _ from 'lodash';
|
|
10
|
-
import React, { useCallback, useContext, useRef, useState } from 'react';
|
|
10
|
+
import React, { useCallback, useContext, useEffect, useRef, useState } from 'react';
|
|
11
11
|
import { DragPreviewImage, useDrag, useDrop } from 'react-dnd';
|
|
12
12
|
import { EPutPosition } from "../..";
|
|
13
13
|
import DragLightLine from "../../../Icon/components/DragLightLine";
|
|
@@ -62,6 +62,8 @@ export default function LogicItem(_ref) {
|
|
|
62
62
|
}];
|
|
63
63
|
var type = value.type;
|
|
64
64
|
var ref = useRef(null);
|
|
65
|
+
var firstResizeObserverRef = useRef(null);
|
|
66
|
+
var lastResizeObserverRef = useRef(null);
|
|
65
67
|
var _useDrag = useDrag({
|
|
66
68
|
type: 'LOGIC_ITEM',
|
|
67
69
|
item: {
|
|
@@ -147,6 +149,10 @@ export default function LogicItem(_ref) {
|
|
|
147
149
|
drag(drop(ref));
|
|
148
150
|
var isDragOver = isOver && canDrop && !isRoot;
|
|
149
151
|
var firstRef = useCallback(function (node) {
|
|
152
|
+
if (firstResizeObserverRef.current) {
|
|
153
|
+
firstResizeObserverRef.current.disconnect();
|
|
154
|
+
firstResizeObserverRef.current = null;
|
|
155
|
+
}
|
|
150
156
|
if (!node) return;
|
|
151
157
|
var resizeObserver = new ResizeObserver(function (entries) {
|
|
152
158
|
var _iterator = _createForOfIteratorHelper(entries),
|
|
@@ -166,11 +172,13 @@ export default function LogicItem(_ref) {
|
|
|
166
172
|
}
|
|
167
173
|
});
|
|
168
174
|
resizeObserver.observe(node);
|
|
169
|
-
|
|
170
|
-
resizeObserver.disconnect();
|
|
171
|
-
};
|
|
175
|
+
firstResizeObserverRef.current = resizeObserver;
|
|
172
176
|
}, []);
|
|
173
177
|
var lastRef = useCallback(function (node) {
|
|
178
|
+
if (lastResizeObserverRef.current) {
|
|
179
|
+
lastResizeObserverRef.current.disconnect();
|
|
180
|
+
lastResizeObserverRef.current = null;
|
|
181
|
+
}
|
|
174
182
|
if (!node) return;
|
|
175
183
|
var resizeObserver = new ResizeObserver(function (entries) {
|
|
176
184
|
var _iterator2 = _createForOfIteratorHelper(entries),
|
|
@@ -190,9 +198,7 @@ export default function LogicItem(_ref) {
|
|
|
190
198
|
}
|
|
191
199
|
});
|
|
192
200
|
resizeObserver.observe(node);
|
|
193
|
-
|
|
194
|
-
resizeObserver.disconnect();
|
|
195
|
-
};
|
|
201
|
+
lastResizeObserverRef.current = resizeObserver;
|
|
196
202
|
}, []);
|
|
197
203
|
var onAddCondition = function onAddCondition() {
|
|
198
204
|
var id = value.id;
|
|
@@ -214,6 +220,18 @@ export default function LogicItem(_ref) {
|
|
|
214
220
|
var id = value.id;
|
|
215
221
|
changeRecordData(id, data);
|
|
216
222
|
};
|
|
223
|
+
useEffect(function () {
|
|
224
|
+
return function () {
|
|
225
|
+
if (firstResizeObserverRef.current) {
|
|
226
|
+
firstResizeObserverRef.current.disconnect();
|
|
227
|
+
firstResizeObserverRef.current = null;
|
|
228
|
+
}
|
|
229
|
+
if (lastResizeObserverRef.current) {
|
|
230
|
+
lastResizeObserverRef.current.disconnect();
|
|
231
|
+
lastResizeObserverRef.current = null;
|
|
232
|
+
}
|
|
233
|
+
};
|
|
234
|
+
}, []);
|
|
217
235
|
var isEn = locale === ELangType.EN;
|
|
218
236
|
if (type === ENodeType.LOGIC) {
|
|
219
237
|
var nodes = value.nodes,
|
|
@@ -22,6 +22,7 @@ interface IPanelProps {
|
|
|
22
22
|
originNode: ReactNode;
|
|
23
23
|
}) => ReactNode;
|
|
24
24
|
renderSelectedTag?: (user: IUser | IUserGroup, originNode: ReactNode) => ReactNode;
|
|
25
|
+
filterItem?: (item: IUser | IUserGroup) => boolean;
|
|
25
26
|
}
|
|
26
27
|
export declare const userDisplayNameIsRepeated: (userList: TUser, displayName?: string) => boolean;
|
|
27
28
|
export default function Panel(props: IPanelProps): React.JSX.Element;
|
|
@@ -46,7 +46,8 @@ export default function Panel(props) {
|
|
|
46
46
|
footer = props.footer,
|
|
47
47
|
onCancel = props.onCancel,
|
|
48
48
|
renderItem = props.renderItem,
|
|
49
|
-
renderSelectedTag = props.renderSelectedTag
|
|
49
|
+
renderSelectedTag = props.renderSelectedTag,
|
|
50
|
+
filterItem = props.filterItem;
|
|
50
51
|
var _useState = useState([]),
|
|
51
52
|
_useState2 = _slicedToArray(_useState, 2),
|
|
52
53
|
selectedUsers = _useState2[0],
|
|
@@ -97,6 +98,7 @@ export default function Panel(props) {
|
|
|
97
98
|
var userSelection = /*#__PURE__*/React.createElement(MemberSelection, {
|
|
98
99
|
className: 'ald-member-picker-member-selection-multiple',
|
|
99
100
|
userList: dataList.filter(isUser),
|
|
101
|
+
filterItem: filterItem,
|
|
100
102
|
width: (panelwidth - 6) / 2,
|
|
101
103
|
selectedUsers: selectedUsers.filter(isUser),
|
|
102
104
|
onChange: onSelectionChange,
|
|
@@ -109,6 +111,7 @@ export default function Panel(props) {
|
|
|
109
111
|
var userGroupSelection = /*#__PURE__*/React.createElement(UserGroupSelection, {
|
|
110
112
|
className: 'ald-member-picker-member-selection-multiple',
|
|
111
113
|
userGroupList: dataList.filter(isUserGroup),
|
|
114
|
+
filterItem: filterItem,
|
|
112
115
|
width: (panelwidth - 6) / 2,
|
|
113
116
|
selectedUsersGroup: selectedUsers.filter(isUserGroup),
|
|
114
117
|
onChange: onSelectionChange,
|
|
@@ -20,6 +20,7 @@ interface IProps {
|
|
|
20
20
|
originNode: ReactNode;
|
|
21
21
|
}) => ReactNode;
|
|
22
22
|
renderSelectedTag?: (user: IUser | IUserGroup, originNode: ReactNode) => ReactNode;
|
|
23
|
+
filterItem?: (item: IUser | IUserGroup) => boolean;
|
|
23
24
|
}
|
|
24
|
-
export declare const PanelWrapper: ({ type, value, multiple, dropdownWidth, onChange, onCancel, className, footer, lockedIds, renderItem, renderSelectedTag, }: IProps) => React.JSX.Element;
|
|
25
|
+
export declare const PanelWrapper: ({ type, value, multiple, dropdownWidth, onChange, onCancel, className, footer, lockedIds, renderItem, renderSelectedTag, filterItem, }: IProps) => React.JSX.Element;
|
|
25
26
|
export default PanelWrapper;
|
|
@@ -26,7 +26,8 @@ export var PanelWrapper = function PanelWrapper(_ref) {
|
|
|
26
26
|
_ref$lockedIds = _ref.lockedIds,
|
|
27
27
|
lockedIds = _ref$lockedIds === void 0 ? [] : _ref$lockedIds,
|
|
28
28
|
renderItem = _ref.renderItem,
|
|
29
|
-
renderSelectedTag = _ref.renderSelectedTag
|
|
29
|
+
renderSelectedTag = _ref.renderSelectedTag,
|
|
30
|
+
filterItem = _ref.filterItem;
|
|
30
31
|
var _useContext = useContext(LocaleContext),
|
|
31
32
|
locale = _useContext.locale;
|
|
32
33
|
var t = getTranslator(locale);
|
|
@@ -88,12 +89,17 @@ export var PanelWrapper = function PanelWrapper(_ref) {
|
|
|
88
89
|
loading = _useRequest.loading,
|
|
89
90
|
run = _useRequest.run;
|
|
90
91
|
var totalUserList = useMemo(function () {
|
|
91
|
-
var totalUsers = searchUserList.concat(selectedUserList)
|
|
92
|
+
var totalUsers = searchUserList.concat(selectedUserList).filter(function (item) {
|
|
93
|
+
if (filterItem) {
|
|
94
|
+
return filterItem(item);
|
|
95
|
+
}
|
|
96
|
+
return true;
|
|
97
|
+
});
|
|
92
98
|
return _.uniqBy(totalUsers, function (data) {
|
|
93
99
|
if (data.type === EUserType.USER) return data.userId;
|
|
94
100
|
return data.groupId;
|
|
95
101
|
});
|
|
96
|
-
}, [searchUserList, selectedUserList]);
|
|
102
|
+
}, [searchUserList, selectedUserList, filterItem]);
|
|
97
103
|
useEffect(function () {
|
|
98
104
|
run();
|
|
99
105
|
}, [run, searchString]);
|
|
@@ -51,6 +51,18 @@ export default function useScroll(props) {
|
|
|
51
51
|
if (!elem) {
|
|
52
52
|
return;
|
|
53
53
|
}
|
|
54
|
+
|
|
55
|
+
// 先检查表格是否真的需要横向滚动
|
|
56
|
+
var DEVIATION = 2;
|
|
57
|
+
var needsHorizontalScroll = elem.scrollWidth > elem.clientWidth + DEVIATION;
|
|
58
|
+
if (!needsHorizontalScroll) {
|
|
59
|
+
// 表格宽度足够,不需要横向滚动,隐藏左右两侧阴影
|
|
60
|
+
setIsPingLeft(false);
|
|
61
|
+
setIsPingRight(false);
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// 表格需要横向滚动,根据滚动位置判断是否显示阴影
|
|
54
66
|
var scrollLeft = elem.scrollLeft;
|
|
55
67
|
if (scrollLeft <= 0) {
|
|
56
68
|
setIsPingLeft(false);
|
package/dist/Table/index.js
CHANGED
|
@@ -288,8 +288,9 @@ function Table(props, ref) {
|
|
|
288
288
|
return 48;
|
|
289
289
|
},
|
|
290
290
|
// estimate row height for accurate scrollbar dragging
|
|
291
|
+
// 没有测量出 bodyRef.current 的高度时,返回 null,避免虚拟化器从 DOM 获取异常高度
|
|
291
292
|
getScrollElement: function getScrollElement() {
|
|
292
|
-
return bodyRef.current;
|
|
293
|
+
return totalSize ? bodyRef.current : null;
|
|
293
294
|
},
|
|
294
295
|
// measure dynamic row height, except in firefox because it measures table border height incorrectly
|
|
295
296
|
measureElement: typeof window !== 'undefined' && navigator.userAgent.indexOf('Firefox') === -1 ? function (element) {
|
|
@@ -20,14 +20,6 @@
|
|
|
20
20
|
color: var(--interaction-default-selected);
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
|
|
24
|
-
&.ald-text-link-disabled {
|
|
25
|
-
color: var(--alias-colors-text-disabled);
|
|
26
|
-
|
|
27
|
-
.ald-icon {
|
|
28
|
-
color: var(--alias-colors-icon-disabled);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
23
|
}
|
|
32
24
|
|
|
33
25
|
.ald-text-link-secondary {
|
|
@@ -52,14 +44,6 @@
|
|
|
52
44
|
color: var(--interaction-default-selected);
|
|
53
45
|
}
|
|
54
46
|
}
|
|
55
|
-
|
|
56
|
-
&.ald-text-link-disabled {
|
|
57
|
-
color: var(--alias-colors-text-disabled);
|
|
58
|
-
|
|
59
|
-
.ald-icon {
|
|
60
|
-
color: var(--alias-colors-icon-disabled);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
47
|
}
|
|
64
48
|
|
|
65
49
|
.ald-text-link-show-underline {
|