@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
|
@@ -21,6 +21,14 @@ export interface IBaseMemberSelectorProps extends Omit<ISelectProps, 'type'> {
|
|
|
21
21
|
footer?: ReactNode;
|
|
22
22
|
onCancel?: () => void;
|
|
23
23
|
filterItem?: (item: IUser | IUserGroup) => boolean;
|
|
24
|
+
renderItem?: (item: IUser | IUserGroup, context: {
|
|
25
|
+
isSelected: boolean;
|
|
26
|
+
disabled: boolean;
|
|
27
|
+
onClick: () => void;
|
|
28
|
+
onNextLevel?: () => void;
|
|
29
|
+
originNode: ReactNode;
|
|
30
|
+
}) => ReactNode;
|
|
31
|
+
renderSelectedTag?: (user: IUser | IUserGroup, originNode: ReactNode) => ReactNode;
|
|
24
32
|
}
|
|
25
33
|
export interface IMultipleMemberSelectorProps extends IBaseMemberSelectorProps {
|
|
26
34
|
multiple: true | Mode;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { DndProvider, useDragDropManager } from 'react-dnd';
|
|
3
|
+
import { HTML5Backend } from 'react-dnd-html5-backend';
|
|
4
|
+
|
|
5
|
+
// 内部组件用于检测 DndProvider
|
|
6
|
+
var DndContextDetector = function DndContextDetector(_ref) {
|
|
7
|
+
var children = _ref.children;
|
|
8
|
+
// 使用 useDragDropManager 检测是否已有 DndProvider
|
|
9
|
+
var hasContext = false;
|
|
10
|
+
try {
|
|
11
|
+
var manager = useDragDropManager();
|
|
12
|
+
hasContext = !!manager;
|
|
13
|
+
} catch (error) {
|
|
14
|
+
// 如果抛出错误,说明外部没有 DndProvider
|
|
15
|
+
hasContext = false;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// 如果已有上下文,直接返回 children
|
|
19
|
+
if (hasContext) {
|
|
20
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, children);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// 否则创建新的 DndProvider
|
|
24
|
+
return /*#__PURE__*/React.createElement(DndProvider, {
|
|
25
|
+
backend: HTML5Backend
|
|
26
|
+
}, children);
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* DndWrapper 组件:智能检测并处理 DndProvider
|
|
31
|
+
* 如果外部已存在 DndProvider,则直接复用,避免嵌套冲突
|
|
32
|
+
* 如果外部不存在 DndProvider,则创建新的
|
|
33
|
+
*/
|
|
34
|
+
var DndWrapper = function DndWrapper(_ref2) {
|
|
35
|
+
var children = _ref2.children;
|
|
36
|
+
return /*#__PURE__*/React.createElement(DndContextDetector, null, children);
|
|
37
|
+
};
|
|
38
|
+
export default DndWrapper;
|
|
@@ -13,6 +13,8 @@ import React, { useCallback, useMemo, useRef, useState } from 'react';
|
|
|
13
13
|
import { useDrag, useDrop } from 'react-dnd';
|
|
14
14
|
import { getEmptyImage } from 'react-dnd-html5-backend';
|
|
15
15
|
import { getRowKey, hasFixedLeftColumn, prefixCls } from "../helper";
|
|
16
|
+
import _ from 'lodash';
|
|
17
|
+
|
|
16
18
|
// 定义拖拽项类型
|
|
17
19
|
var ROW_DND_TYPE = 'ALD_TABLE_ROW_DND_TYPE';
|
|
18
20
|
// 拖拽手柄组件
|
|
@@ -136,7 +138,7 @@ export default function useRowDnd(props) {
|
|
|
136
138
|
}, []);
|
|
137
139
|
|
|
138
140
|
// 当拖拽过程中,临时存储数据
|
|
139
|
-
var _useState3 = useState(
|
|
141
|
+
var _useState3 = useState([]),
|
|
140
142
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
141
143
|
draggingTempData = _useState4[0],
|
|
142
144
|
setDraggingTempData = _useState4[1];
|
|
@@ -210,20 +212,27 @@ export default function useRowDnd(props) {
|
|
|
210
212
|
// 记录拖动开始
|
|
211
213
|
var handleDragStart = function handleDragStart(id) {
|
|
212
214
|
setDraggingRowId(id);
|
|
215
|
+
setDraggingTempData(_.cloneDeep(data));
|
|
213
216
|
};
|
|
214
217
|
|
|
215
218
|
// 记录拖动结束
|
|
216
219
|
var handleDragComplete = function handleDragComplete() {
|
|
220
|
+
// 必须在清空 draggingRowId 之前先找到 draggingRow
|
|
221
|
+
// 因为 tableData 依赖 draggingRowId,清空后 tableData 会切换回原始 data
|
|
217
222
|
var draggingRow = tableData.find(function (item) {
|
|
218
223
|
return getRowKey(item, rowKey) === draggingRowId;
|
|
219
224
|
});
|
|
220
|
-
setDraggingRowId(null);
|
|
221
225
|
if (!draggingRow) {
|
|
222
226
|
// 不应该出现这种情况
|
|
223
227
|
console.error('draggingRow is not found');
|
|
228
|
+
setDraggingRowId(null);
|
|
224
229
|
return;
|
|
225
230
|
}
|
|
226
|
-
|
|
231
|
+
// 保存当前的 tableData,因为清空 draggingRowId 后 tableData 会变化
|
|
232
|
+
var finalData = tableData;
|
|
233
|
+
setDraggingRowId(null);
|
|
234
|
+
setDraggingTempData([]);
|
|
235
|
+
onChange(finalData, draggingRow);
|
|
227
236
|
};
|
|
228
237
|
var dndColumn = {
|
|
229
238
|
dataIndex: '',
|
package/dist/Table/index.js
CHANGED
|
@@ -17,10 +17,9 @@ import _ from 'lodash';
|
|
|
17
17
|
import ResizeObserver from 'rc-resize-observer';
|
|
18
18
|
import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useState } from 'react';
|
|
19
19
|
import { Empty, Spin } from '..';
|
|
20
|
-
import { DndProvider } from 'react-dnd';
|
|
21
|
-
import { HTML5Backend } from 'react-dnd-html5-backend';
|
|
22
20
|
import ExpandCell from "./components/ExpandCell";
|
|
23
21
|
import Footer from "./components/Footer";
|
|
22
|
+
import DndWrapper from "./components/DndWrapper";
|
|
24
23
|
import { getRowKey, getTableColumns, prefixCls } from "./helper";
|
|
25
24
|
import useExpandable, { getExpandableConfig } from "./hooks/useExpandable";
|
|
26
25
|
import useFixed from "./hooks/useFixed";
|
|
@@ -513,8 +512,6 @@ function Table(props, ref) {
|
|
|
513
512
|
}
|
|
514
513
|
}, /*#__PURE__*/React.createElement("div", {
|
|
515
514
|
className: classnames(prefixCls('main'), (_classnames8 = {}, _defineProperty(_classnames8, prefixCls('overflow-hidden'), !!y), _defineProperty(_classnames8, prefixCls('ping-left'), isPingLeft), _defineProperty(_classnames8, prefixCls('ping-right'), isPingRight), _classnames8))
|
|
516
|
-
}, rowDnd ? /*#__PURE__*/React.createElement(
|
|
517
|
-
backend: HTML5Backend
|
|
518
|
-
}, tableContent) : tableContent)));
|
|
515
|
+
}, rowDnd ? /*#__PURE__*/React.createElement(DndWrapper, null, tableContent) : tableContent)));
|
|
519
516
|
}
|
|
520
517
|
export default /*#__PURE__*/forwardRef(Table);
|