@aloudata/aloudata-design 1.9.17 → 1.10.0

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.
Files changed (123) hide show
  1. package/dist/Checkbox/style/index.less +35 -9
  2. package/dist/ConfigProvider/getUserList.d.ts +13 -1
  3. package/dist/ConfigProvider/getUserList.js +5 -0
  4. package/dist/Icon/components/DragLine.d.ts +11 -0
  5. package/dist/Icon/components/DragLine.js +35 -0
  6. package/dist/Icon/index.d.ts +1 -0
  7. package/dist/Icon/index.js +1 -0
  8. package/dist/Icon/svg/drag-line.svg +5 -0
  9. package/dist/MemberPicker/components/MemberSelection.d.ts +1 -1
  10. package/dist/MemberPicker/components/MemberSelection.js +8 -3
  11. package/dist/MemberPicker/components/MultipleOption.d.ts +5 -2
  12. package/dist/MemberPicker/components/MultipleOption.js +20 -5
  13. package/dist/MemberPicker/components/NickLabel.d.ts +3 -3
  14. package/dist/MemberPicker/components/NickLabel.js +6 -6
  15. package/dist/MemberPicker/components/Panel.d.ts +7 -4
  16. package/dist/MemberPicker/components/Panel.js +70 -20
  17. package/dist/MemberPicker/components/PanelWrapper.d.ts +14 -0
  18. package/dist/MemberPicker/components/PanelWrapper.js +126 -0
  19. package/dist/MemberPicker/components/SelectedMemberTags.d.ts +3 -2
  20. package/dist/MemberPicker/components/SelectedMemberTags.js +8 -5
  21. package/dist/MemberPicker/components/SelectorFooter.js +1 -1
  22. package/dist/MemberPicker/components/SingleOption.d.ts +3 -2
  23. package/dist/MemberPicker/components/SingleOption.js +7 -4
  24. package/dist/MemberPicker/components/UserGroupSelection.d.ts +14 -0
  25. package/dist/MemberPicker/components/UserGroupSelection.js +130 -0
  26. package/dist/MemberPicker/index.d.ts +2 -0
  27. package/dist/MemberPicker/index.js +28 -17
  28. package/dist/MemberPicker/interface.d.ts +11 -5
  29. package/dist/MemberPicker/interface.js +6 -1
  30. package/dist/MemberPicker/style/index.less +18 -3
  31. package/dist/MemberPicker/utils/getUsersWithUserId.d.ts +4 -0
  32. package/dist/MemberPicker/utils/getUsersWithUserId.js +23 -2
  33. package/dist/MemberPicker/utils/index.d.ts +6 -0
  34. package/dist/MemberPicker/utils/index.js +16 -0
  35. package/dist/Radio/style/index.less +1 -1
  36. package/dist/ScrollArea/index.d.ts +1 -0
  37. package/dist/ScrollArea/index.js +6 -3
  38. package/dist/Table/components/Cell.d.ts +7 -0
  39. package/dist/Table/components/Cell.js +20 -0
  40. package/dist/Table/components/Header.d.ts +6 -0
  41. package/dist/Table/components/Header.js +19 -0
  42. package/dist/{AldTable → Table}/helper.d.ts +9 -2
  43. package/dist/Table/helper.js +121 -0
  44. package/dist/Table/hooks/useScroll.d.ts +26 -0
  45. package/dist/Table/hooks/useScroll.js +57 -0
  46. package/dist/Table/index.d.ts +3 -1
  47. package/dist/Table/index.js +176 -1
  48. package/dist/Table/style/index.less +106 -203
  49. package/dist/{AldTable → Table}/types.d.ts +5 -4
  50. package/dist/Tree/DirectoryTree.d.ts +20 -0
  51. package/dist/Tree/DirectoryTree.js +175 -0
  52. package/dist/Tree/Tree.d.ts +136 -0
  53. package/dist/Tree/Tree.js +130 -0
  54. package/dist/Tree/demo/basic/index.js +3 -2
  55. package/dist/Tree/demo/drag/index.d.ts +3 -0
  56. package/dist/Tree/demo/drag/index.js +52 -0
  57. package/dist/Tree/index.d.ts +19 -13
  58. package/dist/Tree/index.js +7 -17
  59. package/dist/Tree/style/checkbox.less +226 -0
  60. package/dist/Tree/style/directory.less +68 -0
  61. package/dist/Tree/style/index.less +68 -29
  62. package/dist/Tree/style/mixin.less +333 -0
  63. package/dist/Tree/style/reset.less +11 -0
  64. package/dist/Tree/style/rtl.less +68 -0
  65. package/dist/Tree/style/var.less +42 -0
  66. package/dist/Tree/utils/dictUtil.d.ts +9 -0
  67. package/dist/Tree/utils/dictUtil.js +74 -0
  68. package/dist/Tree/utils/dropIndicator.d.ts +9 -0
  69. package/dist/Tree/utils/dropIndicator.js +35 -0
  70. package/dist/Tree/utils/iconUtil.d.ts +5 -0
  71. package/dist/Tree/utils/iconUtil.js +63 -0
  72. package/dist/_utils/motion.d.ts +8 -0
  73. package/dist/_utils/motion.js +52 -0
  74. package/dist/_utils/reactNode.d.ts +8 -0
  75. package/dist/_utils/reactNode.js +15 -0
  76. package/dist/_utils/type.d.ts +9 -0
  77. package/dist/_utils/type.js +20 -0
  78. package/dist/index.d.ts +11 -13
  79. package/dist/index.js +6 -7
  80. package/dist/style/color/bezierEasing.less +110 -0
  81. package/dist/style/color/colorPalette.less +84 -0
  82. package/dist/style/color/colors.less +162 -0
  83. package/dist/style/color/tinyColor.less +1184 -0
  84. package/dist/style/core/index.less +2 -0
  85. package/dist/style/core/motion/fade.less +34 -0
  86. package/dist/style/core/motion/move.less +129 -0
  87. package/dist/style/core/motion/other.less +48 -0
  88. package/dist/style/core/motion/slide.less +131 -0
  89. package/dist/style/core/motion/zoom.less +179 -0
  90. package/dist/style/core/motion.less +22 -0
  91. package/dist/style/index.less +2 -0
  92. package/dist/style/mixins/index.less +1 -0
  93. package/dist/style/mixins/motion.less +33 -0
  94. package/dist/style/themes/default/default.less +24 -0
  95. package/dist/style/themes/default/index.less +1 -0
  96. package/package.json +2 -2
  97. package/dist/AldTable/helper.js +0 -109
  98. package/dist/AldTable/index.d.ts +0 -4
  99. package/dist/AldTable/index.js +0 -151
  100. package/dist/AldTable/style/index.d.ts +0 -2
  101. package/dist/AldTable/style/index.js +0 -2
  102. package/dist/AldTable/style/index.less +0 -136
  103. package/dist/Table/Table.d.ts +0 -6
  104. package/dist/Table/Table.js +0 -360
  105. package/dist/Table/components/Empty/index.d.ts +0 -3
  106. package/dist/Table/components/Empty/index.js +0 -14
  107. package/dist/Table/components/Loading/index.d.ts +0 -3
  108. package/dist/Table/components/Loading/index.js +0 -12
  109. package/dist/Table/components/TableBodyRowList/index.d.ts +0 -13
  110. package/dist/Table/components/TableBodyRowList/index.js +0 -75
  111. package/dist/Table/components/TableHead/index.d.ts +0 -23
  112. package/dist/Table/components/TableHead/index.js +0 -229
  113. package/dist/Table/constant.d.ts +0 -0
  114. package/dist/Table/constant.js +0 -0
  115. package/dist/Table/hooks/useFrame.d.ts +0 -7
  116. package/dist/Table/hooks/useFrame.js +0 -75
  117. package/dist/Table/interface.d.ts +0 -42
  118. package/dist/Table/interface.js +0 -1
  119. package/dist/Table/react-table-config.d.ts +0 -122
  120. package/dist/Table/style/variable.less +0 -4
  121. package/dist/Table/utils.d.ts +0 -15
  122. package/dist/Table/utils.js +0 -122
  123. /package/dist/{AldTable → Table}/types.js +0 -0
@@ -4,6 +4,7 @@
4
4
  .ant-checkbox-inner {
5
5
  border: 1px solid #dbdbdb !important;
6
6
  background-color: #fff !important;
7
+ transform: scale(0.875);
7
8
  }
8
9
  // 此处同理
9
10
  .ant-checkbox::after,
@@ -74,16 +75,26 @@
74
75
  border-color: @B40;
75
76
 
76
77
  &::after {
77
- top: 3px;
78
- left: 2px;
78
+ // top: 3px;
79
+ // left: 2px;
79
80
  z-index: 10;
80
- width: 10px;
81
- height: 8px;
82
- background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAQCAYAAAAS7Y8mAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADLSURBVHgBrdTPDcIgFAZwHo3O0RF6MdGbjuAI3aCjuAGj6E3jyRGYQwPIR2rT1mfDH79Lyct7vxRIIPGHbLtr/aJKrZxpb6edRk2KwgB9kjw74fb4brp7Uwx/UL+s+1JtyakimEERbZw9YkEiI79Q6+zh0Z9xMhyDDjB3qyVogGfNeu2bODwFRST+dNQchoGUoAE2fvtoGtUmeA6KhDNu/LBkhmUlW2usSkUHeAGfJwqdwBF4NPoFL+BJKAszeDKKsG8FEGAk6JKDIm/pQrazK2zB6QAAAABJRU5ErkJggg==')
83
- no-repeat;
84
- background-size: 100%, 100%;
85
- border-width: 0;
86
- transform: none;
81
+ // width: 10px;
82
+ // background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAQCAYAAAAS7Y8mAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADLSURBVHgBrdTPDcIgFAZwHo3O0RF6MdGbjuAI3aCjuAGj6E3jyRGYQwPIR2rT1mfDH79Lyct7vxRIIPGHbLtr/aJKrZxpb6edRk2KwgB9kjw74fb4brp7Uwx/UL+s+1JtyakimEERbZw9YkEiI79Q6+zh0Z9xMhyDDjB3qyVogGfNeu2bODwFRST+dNQchoGUoAE2fvtoGtUmeA6KhDNu/LBkhmUlW2usSkUHeAGfJwqdwBF4NPoFL+BJKAszeDKKsG8FEGAk6JKDIm/pQrazK2zB6QAAAABJRU5ErkJggg==')
83
+ // no-repeat;
84
+ // background-size: 100%, 100%;
85
+ // border-width: 0;
86
+ // transform: none;
87
+ position: absolute;
88
+ // top: 0;
89
+ // left: 0;
90
+ // width: 100%;
91
+ // height: 100%;
92
+ border: 2px solid #3271c9;
93
+ border-top: 0;
94
+ border-left: 0;
95
+ transform: rotate(45deg) scale(1) translate(-50%, -50%);
96
+ opacity: 1;
97
+ transition: all 0.2s cubic-bezier(0.12, 0.4, 0.29, 1.46) 0.1s;
87
98
  }
88
99
  }
89
100
  }
@@ -195,6 +206,21 @@
195
206
  cursor: default;
196
207
  }
197
208
 
209
+ .ant-checkbox-wrapper[class]:hover .ant-checkbox::after {
210
+ visibility: hidden;
211
+ }
212
+
198
213
  .ant-checkbox-checked:hover .ant-checkbox-inner[class] {
199
214
  background-color: transparent;
200
215
  }
216
+ @keyframes ald-checkbox-effect {
217
+ 0% {
218
+ transform: scale(1);
219
+ opacity: 0.5;
220
+ }
221
+
222
+ 100% {
223
+ transform: scale(1.6);
224
+ opacity: 0;
225
+ }
226
+ }
@@ -1,12 +1,24 @@
1
1
  import * as React from 'react';
2
+ export declare enum EUserType {
3
+ USER = "USER",
4
+ USER_GROUP = "USER_GROUP"
5
+ }
2
6
  export interface IUser {
7
+ type: EUserType.USER;
3
8
  userId: string;
4
9
  account?: string;
5
10
  nickname?: string;
6
11
  photo?: string;
7
12
  [key: string]: unknown;
8
13
  }
9
- export type TUser = IUser[];
14
+ export interface IUserGroup {
15
+ type: EUserType.USER_GROUP;
16
+ groupId: string;
17
+ name: string;
18
+ parentId: string | null;
19
+ frontId: string | null;
20
+ }
21
+ export type TUser = Array<IUser | IUserGroup>;
10
22
  export interface IGetUserListParams {
11
23
  name?: string;
12
24
  id?: string;
@@ -1,4 +1,9 @@
1
1
  import * as React from 'react';
2
+ export var EUserType = /*#__PURE__*/function (EUserType) {
3
+ EUserType["USER"] = "USER";
4
+ EUserType["USER_GROUP"] = "USER_GROUP";
5
+ return EUserType;
6
+ }({});
2
7
  var GetUserListContext = /*#__PURE__*/React.createContext({});
3
8
  export var SizeContextProvider = function SizeContextProvider(_ref) {
4
9
  var children = _ref.children,
@@ -0,0 +1,11 @@
1
+ import type { SVGProps } from 'react';
2
+ import * as React from 'react';
3
+ interface SVGRProps {
4
+ size?: number;
5
+ title?: string;
6
+ titleId?: string;
7
+ desc?: string;
8
+ descId?: string;
9
+ }
10
+ declare const Memo: React.MemoExoticComponent<React.ForwardRefExoticComponent<Omit<SVGProps<SVGSVGElement> & SVGRProps, "ref"> & React.RefAttributes<SVGSVGElement>>>;
11
+ export default Memo;
@@ -0,0 +1,35 @@
1
+ var _excluded = ["title", "titleId", "desc", "descId"];
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
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
4
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
5
+ import * as React from 'react';
6
+ import { forwardRef, memo } from 'react';
7
+ var DragLine = function DragLine(_ref, ref) {
8
+ var title = _ref.title,
9
+ titleId = _ref.titleId,
10
+ desc = _ref.desc,
11
+ descId = _ref.descId,
12
+ props = _objectWithoutProperties(_ref, _excluded);
13
+ return /*#__PURE__*/React.createElement("svg", _extends({
14
+ xmlns: "http://www.w3.org/2000/svg",
15
+ width: props.width || props.size || 16,
16
+ height: props.height || props.size || 16,
17
+ fill: "none",
18
+ viewBox: "0 0 24 24",
19
+ ref: ref,
20
+ "aria-labelledby": titleId,
21
+ "aria-describedby": descId
22
+ }, props), desc ? /*#__PURE__*/React.createElement("desc", {
23
+ id: descId
24
+ }, desc) : null, title ? /*#__PURE__*/React.createElement("title", {
25
+ id: titleId
26
+ }, title) : null, /*#__PURE__*/React.createElement("path", {
27
+ fill: props.color || 'currentColor',
28
+ fillRule: "evenodd",
29
+ d: "M9 7a1 1 0 1 0 0-2 1 1 0 0 0 0 2Zm0 12a1 1 0 1 0 0-2 1 1 0 0 0 0 2Zm1-7a1 1 0 1 1-2 0 1 1 0 0 1 2 0Zm5-5a1 1 0 1 0 0-2 1 1 0 0 0 0 2Zm0 12a1 1 0 1 0 0-2 1 1 0 0 0 0 2Zm1-7a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z",
30
+ clipRule: "evenodd"
31
+ }));
32
+ };
33
+ var ForwardRef = /*#__PURE__*/forwardRef(DragLine);
34
+ var Memo = /*#__PURE__*/memo(ForwardRef);
35
+ export default Memo;
@@ -7,6 +7,7 @@ export { default as ChevronLeftLine } from './components/ChevronLeftLine';
7
7
  export { default as ChevronRightLine } from './components/ChevronRightLine';
8
8
  export { default as CloseLLine } from './components/CloseLLine';
9
9
  export { default as CloseMLine } from './components/CloseMLine';
10
+ export { default as DragLine } from './components/DragLine';
10
11
  export { default as EyeOffLine } from './components/EyeOffLine';
11
12
  export { default as EyeOnLine } from './components/EyeOnLine';
12
13
  export { default as FoldDownFill } from './components/FoldDownFill';
@@ -7,6 +7,7 @@ export { default as ChevronLeftLine } from "./components/ChevronLeftLine";
7
7
  export { default as ChevronRightLine } from "./components/ChevronRightLine";
8
8
  export { default as CloseLLine } from "./components/CloseLLine";
9
9
  export { default as CloseMLine } from "./components/CloseMLine";
10
+ export { default as DragLine } from "./components/DragLine";
10
11
  export { default as EyeOffLine } from "./components/EyeOffLine";
11
12
  export { default as EyeOnLine } from "./components/EyeOnLine";
12
13
  export { default as FoldDownFill } from "./components/FoldDownFill";
@@ -0,0 +1,5 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g id="drag-line">
3
+ <path id="Icon" fill-rule="evenodd" clip-rule="evenodd" d="M9 7C9.55228 7 10 6.55228 10 6C10 5.44772 9.55228 5 9 5C8.44772 5 8 5.44772 8 6C8 6.55228 8.44772 7 9 7ZM9 19C9.55228 19 10 18.5523 10 18C10 17.4477 9.55228 17 9 17C8.44772 17 8 17.4477 8 18C8 18.5523 8.44772 19 9 19ZM10 12C10 12.5523 9.55228 13 9 13C8.44772 13 8 12.5523 8 12C8 11.4477 8.44772 11 9 11C9.55228 11 10 11.4477 10 12ZM15 7C15.5523 7 16 6.55228 16 6C16 5.44772 15.5523 5 15 5C14.4477 5 14 5.44772 14 6C14 6.55228 14.4477 7 15 7ZM15 19C15.5523 19 16 18.5523 16 18C16 17.4477 15.5523 17 15 17C14.4477 17 14 17.4477 14 18C14 18.5523 14.4477 19 15 19ZM16 12C16 12.5523 15.5523 13 15 13C14.4477 13 14 12.5523 14 12C14 11.4477 14.4477 11 15 11C15.5523 11 16 11.4477 16 12Z" fill="black"/>
4
+ </g>
5
+ </svg>
@@ -3,7 +3,7 @@ import { IUser } from '../interface';
3
3
  interface IMemberSelectionProps {
4
4
  className?: string;
5
5
  userList: IUser[];
6
- multiple: boolean;
6
+ multiple?: boolean;
7
7
  onChange: (selected: boolean, user: IUser) => void;
8
8
  selectedUsers: IUser[];
9
9
  onSearchValueChange?: (value: string) => void;
@@ -11,13 +11,14 @@ import Empty from "../../Empty";
11
11
  import Input from "../../Input";
12
12
  import ScrollArea from "../../ScrollArea";
13
13
  import Spin from "../../Spin";
14
+ import { isUser } from "../utils/getUsersWithUserId";
14
15
  import MultipleOption from "./MultipleOption";
15
16
  import SingleOption from "./SingleOption";
16
17
  export default function MemberSelection(props) {
17
18
  var className = props.className,
18
19
  userList = props.userList,
19
20
  multiple = props.multiple,
20
- onChange = props.onChange,
21
+ _onChange = props.onChange,
21
22
  selectedUsers = props.selectedUsers,
22
23
  onSearchValueChange = props.onSearchValueChange,
23
24
  loading = props.loading,
@@ -73,12 +74,16 @@ export default function MemberSelection(props) {
73
74
  key: user.userId,
74
75
  user: user,
75
76
  selected: isSelected,
76
- onChange: onChange
77
+ onChange: function onChange(selected, user) {
78
+ if (isUser(user)) _onChange(selected, user);
79
+ }
77
80
  }) : /*#__PURE__*/React.createElement(SingleOption, {
78
81
  key: user.userId,
79
82
  user: user,
80
83
  selected: isSelected,
81
- onChange: onChange
84
+ onChange: function onChange(selected, user) {
85
+ if (isUser(user)) _onChange(selected, user);
86
+ }
82
87
  });
83
88
  })))));
84
89
  }
@@ -1,11 +1,14 @@
1
1
  import React from 'react';
2
+ import { IUserGroup } from '../../ConfigProvider/getUserList';
2
3
  import { IUser } from '../interface';
3
4
  interface IMultipleOptionProps {
4
5
  selected: boolean;
5
6
  disabled?: boolean;
6
- user: IUser;
7
- onChange?: (selected: boolean, user: IUser) => void;
7
+ user: IUser | IUserGroup;
8
+ onChange?: (selected: boolean, user: IUser | IUserGroup) => void;
8
9
  className?: string;
10
+ onNextLevel?: (userGroup: IUserGroup) => void;
11
+ hasNextLevel?: boolean;
9
12
  }
10
13
  export default function MultipleList(params: IMultipleOptionProps): React.JSX.Element;
11
14
  export {};
@@ -1,18 +1,23 @@
1
1
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
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
2
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
4
3
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
5
4
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
6
5
  import classnames from 'classnames';
7
6
  import React from 'react';
7
+ import Button from "../../Button";
8
8
  import Checkbox from "../../Checkbox";
9
+ import { getAccount, getId, getPhoto } from "../utils";
10
+ import { isUserGroup } from "../utils/getUsersWithUserId";
9
11
  import NickLabel from "./NickLabel";
10
12
  export default function MultipleList(params) {
11
13
  var disabled = params.disabled,
12
14
  user = params.user,
13
15
  selected = params.selected,
14
16
  onChange = params.onChange,
15
- className = params.className;
17
+ className = params.className,
18
+ onNextLevel = params.onNextLevel,
19
+ _params$hasNextLevel = params.hasNextLevel,
20
+ hasNextLevel = _params$hasNextLevel === void 0 ? true : _params$hasNextLevel;
16
21
  var onClick = function onClick() {
17
22
  if (disabled) return;
18
23
  onChange === null || onChange === void 0 ? void 0 : onChange(!selected, user);
@@ -20,11 +25,21 @@ export default function MultipleList(params) {
20
25
  return /*#__PURE__*/React.createElement("div", {
21
26
  className: classnames('ald-member-picker-option', className, _defineProperty({}, 'ald-member-picker-optionDisabled', disabled)),
22
27
  onClick: onClick
28
+ }, /*#__PURE__*/React.createElement("div", {
29
+ className: 'ald-member-picker-label'
23
30
  }, /*#__PURE__*/React.createElement(Checkbox, {
24
31
  className: 'ald-member-picker-checkbox',
25
32
  checked: selected,
26
33
  disabled: disabled
27
- }), /*#__PURE__*/React.createElement(NickLabel, _extends({}, user, {
28
- src: user.photo
29
- })));
34
+ }), /*#__PURE__*/React.createElement(NickLabel, {
35
+ id: getId(user),
36
+ name: user.name,
37
+ photo: getPhoto(user),
38
+ account: getAccount(user)
39
+ })), isUserGroup(user) && hasNextLevel && /*#__PURE__*/React.createElement(Button, {
40
+ type: "link",
41
+ onClick: function onClick() {
42
+ onNextLevel === null || onNextLevel === void 0 ? void 0 : onNextLevel(user);
43
+ }
44
+ }, "\u4E0B\u7EA7"));
30
45
  }
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
2
  interface INickLabelProps {
3
- nickname?: string;
4
- userId: string;
5
- src?: string;
3
+ name?: string;
4
+ id: string;
5
+ photo?: React.ReactNode;
6
6
  account?: string;
7
7
  }
8
8
  declare const _default: React.NamedExoticComponent<INickLabelProps>;
@@ -1,20 +1,20 @@
1
1
  import React, { memo } from 'react';
2
2
  import Avatar from "../../Avatar";
3
3
  var NickLabel = function NickLabel(_ref) {
4
- var src = _ref.src,
5
- nickname = _ref.nickname,
6
- userId = _ref.userId,
4
+ var photo = _ref.photo,
5
+ name = _ref.name,
6
+ id = _ref.id,
7
7
  account = _ref.account;
8
- var innerName = nickname || userId;
8
+ var innerName = name || id;
9
9
  return /*#__PURE__*/React.createElement("div", {
10
10
  className: "ald-member-picker-nick-label"
11
11
  }, /*#__PURE__*/React.createElement(Avatar, {
12
12
  key: innerName,
13
- src: src,
13
+ src: photo,
14
14
  size: 20
15
15
  }, innerName), /*#__PURE__*/React.createElement("div", {
16
16
  className: "ald-member-picker-nick-label-name",
17
- title: "".concat(nickname, "(").concat(account, ")")
17
+ title: "".concat(name, "(").concat(account, ")")
18
18
  }, innerName));
19
19
  };
20
20
  export default /*#__PURE__*/memo(NickLabel);
@@ -1,14 +1,17 @@
1
+ import { IUserGroup, TUser } from "../../ConfigProvider/getUserList";
1
2
  import React from 'react';
2
- import { IUser } from '../interface';
3
+ import { EMemberPicker, IUser } from '../interface';
3
4
  interface IPanelProps {
5
+ type: EMemberPicker;
4
6
  multiple?: boolean;
5
- onChange?: (value: IUser[]) => void;
7
+ onChange?: (value: TUser) => void;
6
8
  dropdownWidth?: number;
7
- value?: IUser[] | IUser;
8
- userList: IUser[];
9
+ value?: TUser | (IUser | IUserGroup);
10
+ dataList: TUser;
9
11
  onSearchValueChange?: (value: string) => void;
10
12
  onCancel?: () => void;
11
13
  loading: boolean;
14
+ className?: string;
12
15
  }
13
16
  export default function Panel(props: IPanelProps): React.JSX.Element;
14
17
  export {};
@@ -14,17 +14,24 @@ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefine
14
14
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
15
15
  import classNames from 'classnames';
16
16
  import React, { useCallback, useEffect, useMemo, useState } from 'react';
17
+ import Tabs from "../../Tabs";
18
+ import { EMemberPicker } from "../interface";
19
+ import { getId } from "../utils";
20
+ import { isUser, isUserGroup } from "../utils/getUsersWithUserId";
17
21
  import MemberSelection from "./MemberSelection";
18
22
  import SelectedMemberTags from "./SelectedMemberTags";
19
23
  import SelectorFooter from "./SelectorFooter";
24
+ import UserGroupSelection from "./UserGroupSelection";
20
25
  export default function Panel(props) {
21
26
  var _classNames;
22
- var multiple = props.multiple,
27
+ var type = props.type,
28
+ multiple = props.multiple,
23
29
  dropdownWidth = props.dropdownWidth,
24
30
  value = props.value,
25
31
  onChange = props.onChange,
26
- userList = props.userList,
27
- onSearchValueChange = props.onSearchValueChange;
32
+ dataList = props.dataList,
33
+ onSearchValueChange = props.onSearchValueChange,
34
+ className = props.className;
28
35
  var _useState = useState([]),
29
36
  _useState2 = _slicedToArray(_useState, 2),
30
37
  selectedUsers = _useState2[0],
@@ -35,7 +42,7 @@ export default function Panel(props) {
35
42
  setSelected([].concat(_toConsumableArray(selectedUsers), [user]));
36
43
  } else {
37
44
  setSelected(selectedUsers.filter(function (item) {
38
- return item.userId !== user.userId;
45
+ return getId(item) !== getId(user);
39
46
  }));
40
47
  }
41
48
  } else {
@@ -50,7 +57,7 @@ export default function Panel(props) {
50
57
  }, [multiple, selectedUsers, onChange]);
51
58
  var onRemove = useCallback(function (user) {
52
59
  setSelected(selectedUsers.filter(function (item) {
53
- return item.userId !== user.userId;
60
+ return getId(item) !== getId(user);
54
61
  }));
55
62
  }, [selectedUsers]);
56
63
  var panelWidth = useMemo(function () {
@@ -74,21 +81,55 @@ export default function Panel(props) {
74
81
  }
75
82
  }
76
83
  }, [setSelected, value]);
84
+ var renderDropdown = useCallback(function () {
85
+ var userSelection = /*#__PURE__*/React.createElement(MemberSelection, {
86
+ className: 'ald-member-picker-member-selection-multiple',
87
+ userList: dataList.filter(isUser),
88
+ width: (panelWidth - 3) / 2,
89
+ selectedUsers: selectedUsers.filter(isUser),
90
+ onChange: onSelectionChange,
91
+ onSearchValueChange: onSearchValueChange,
92
+ multiple: true,
93
+ loading: props.loading
94
+ });
95
+ var userGroupSelection = /*#__PURE__*/React.createElement(UserGroupSelection, {
96
+ className: 'ald-member-picker-member-selection-multiple',
97
+ userGroupList: dataList.filter(isUserGroup),
98
+ width: (panelWidth - 3) / 2,
99
+ selectedUsersGroup: selectedUsers.filter(isUserGroup),
100
+ onChange: onSelectionChange,
101
+ onSearchValueChange: onSearchValueChange,
102
+ multiple: true,
103
+ loading: props.loading
104
+ });
105
+ if (type === EMemberPicker.USER) {
106
+ return userSelection;
107
+ }
108
+ if (type === EMemberPicker.GROUP) {
109
+ return userGroupSelection;
110
+ }
111
+ if (type === EMemberPicker.BOTH) {
112
+ return /*#__PURE__*/React.createElement(Tabs, {
113
+ centered: true,
114
+ items: [{
115
+ key: 'user',
116
+ label: '用户',
117
+ children: userSelection
118
+ }, {
119
+ key: 'userGroup',
120
+ label: '用户组',
121
+ children: userGroupSelection
122
+ }],
123
+ className: "ald-member-tabs"
124
+ });
125
+ }
126
+ }, [onSearchValueChange, onSelectionChange, panelWidth, props.loading, selectedUsers, type, dataList]);
77
127
  return /*#__PURE__*/React.createElement("div", {
78
- className: classNames('ald-member-picker-wrapper', (_classNames = {}, _defineProperty(_classNames, 'ald-member-picker-multiple', multiple), _defineProperty(_classNames, 'ald-member-picker-single', !multiple), _classNames)),
128
+ className: classNames(className, 'ald-member-picker-wrapper', (_classNames = {}, _defineProperty(_classNames, 'ald-member-picker-multiple', multiple), _defineProperty(_classNames, 'ald-member-picker-single', !multiple), _classNames)),
79
129
  style: {
80
130
  width: panelWidth
81
131
  }
82
- }, multiple ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(MemberSelection, {
83
- className: 'ald-member-picker-member-selection-multiple',
84
- userList: userList,
85
- width: (panelWidth - 3) / 2,
86
- selectedUsers: selectedUsers,
87
- onChange: onSelectionChange,
88
- onSearchValueChange: onSearchValueChange,
89
- multiple: multiple,
90
- loading: props.loading
91
- }), /*#__PURE__*/React.createElement(SelectedMemberTags, {
132
+ }, multiple ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", null, renderDropdown()), /*#__PURE__*/React.createElement(SelectedMemberTags, {
92
133
  className: 'ald-member-picker-selected-member-tags',
93
134
  selectedUsers: selectedUsers,
94
135
  width: (panelWidth - 3) / 2,
@@ -97,14 +138,23 @@ export default function Panel(props) {
97
138
  className: 'ald-member-picker-selector-footer',
98
139
  onCancel: props.onCancel,
99
140
  onOk: onOk
100
- })) : /*#__PURE__*/React.createElement(MemberSelection, {
141
+ })) : /*#__PURE__*/React.createElement(React.Fragment, null, type === EMemberPicker.USER && /*#__PURE__*/React.createElement(MemberSelection, {
101
142
  className: 'ald-member-picker-member-selection-single',
102
- userList: userList,
143
+ userList: dataList.filter(isUser),
103
144
  width: panelWidth - 2,
104
145
  onChange: onSelectionChange,
105
- selectedUsers: selectedUsers,
146
+ selectedUsers: selectedUsers.filter(isUser),
106
147
  onSearchValueChange: onSearchValueChange,
107
148
  multiple: false && multiple,
108
149
  loading: props.loading
109
- }));
150
+ }), type === EMemberPicker.GROUP && /*#__PURE__*/React.createElement(UserGroupSelection, {
151
+ className: 'ald-member-picker-member-selection-multiple',
152
+ userGroupList: dataList.filter(isUserGroup),
153
+ width: (panelWidth - 3) / 2,
154
+ selectedUsersGroup: selectedUsers.filter(isUserGroup),
155
+ onChange: onSelectionChange,
156
+ onSearchValueChange: onSearchValueChange,
157
+ multiple: false,
158
+ loading: props.loading
159
+ })));
110
160
  }
@@ -0,0 +1,14 @@
1
+ import { IUserGroup, TUser } from "../../ConfigProvider/getUserList";
2
+ import React from 'react';
3
+ import { EMemberPicker, IUser, MemberPickerValue } from '../interface';
4
+ interface IProps {
5
+ type: EMemberPicker;
6
+ multiple?: boolean;
7
+ onChange?(v: TUser | (IUser | IUserGroup)): void;
8
+ dropdownWidth?: number;
9
+ value?: MemberPickerValue;
10
+ className?: string;
11
+ onCancel?: () => void;
12
+ }
13
+ export declare const PanelWrapper: ({ type, value, multiple, dropdownWidth, onChange, onCancel, className, }: IProps) => React.JSX.Element;
14
+ export default PanelWrapper;
@@ -0,0 +1,126 @@
1
+ function _objectDestructuringEmpty(obj) { if (obj == null) throw new TypeError("Cannot destructure " + obj); }
2
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
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
+ 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); }
5
+ 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; }
6
+ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
7
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
8
+ import { message } from "../..";
9
+ import ConfigProvider from "../../ConfigProvider";
10
+ import { useRequest } from 'ahooks';
11
+ import _ from 'lodash';
12
+ import React, { useCallback, useEffect, useMemo, useState } from 'react';
13
+ import { isUser, isUserGroup } from "../utils/getUsersWithUserId";
14
+ import Panel from "./Panel";
15
+ export var PanelWrapper = function PanelWrapper(_ref) {
16
+ var type = _ref.type,
17
+ value = _ref.value,
18
+ multiple = _ref.multiple,
19
+ dropdownWidth = _ref.dropdownWidth,
20
+ onChange = _ref.onChange,
21
+ onCancel = _ref.onCancel,
22
+ className = _ref.className;
23
+ var _ConfigProvider$useGe = ConfigProvider.useGetUserList(),
24
+ getUsersByIds = _ConfigProvider$useGe.getUsersByIds,
25
+ getUsersByKeywords = _ConfigProvider$useGe.getUsersByKeywords;
26
+ var _useState = useState([]),
27
+ _useState2 = _slicedToArray(_useState, 2),
28
+ selectedUserList = _useState2[0],
29
+ setSelectedUserList = _useState2[1];
30
+ var _useState3 = useState([]),
31
+ _useState4 = _slicedToArray(_useState3, 2),
32
+ searchUserList = _useState4[0],
33
+ setSearchUserList = _useState4[1];
34
+ var _useState5 = useState(''),
35
+ _useState6 = _slicedToArray(_useState5, 2),
36
+ searchString = _useState6[0],
37
+ setSearchString = _useState6[1];
38
+ var onSearchValueChange = useCallback(function (v) {
39
+ setSearchString(v);
40
+ }, []);
41
+ var queryByKeywords = useMemo(function () {
42
+ if (getUsersByKeywords) {
43
+ return getUsersByKeywords;
44
+ }
45
+ return function (_ref2) {
46
+ _objectDestructuringEmpty(_ref2);
47
+ return Promise.reject({
48
+ message: '请在ConfigProvider中配置getUsersByKeywords方法'
49
+ });
50
+ };
51
+ }, [getUsersByKeywords]);
52
+ var queryByIds = useMemo(function () {
53
+ if (getUsersByIds) {
54
+ return getUsersByIds;
55
+ }
56
+ return function (_ref3) {
57
+ _objectDestructuringEmpty(_ref3);
58
+ return Promise.reject({
59
+ message: '请在ConfigProvider中配置getUsersByIds方法'
60
+ });
61
+ };
62
+ }, [getUsersByIds]);
63
+ var _useRequest = useRequest(function () {
64
+ return queryByKeywords(searchString);
65
+ }, {
66
+ refreshDeps: [searchString],
67
+ manual: true,
68
+ cacheKey: 'member-selector',
69
+ cacheTime: 1000 * 60 * 2,
70
+ // 2分钟内不重复请求
71
+ onSuccess: function onSuccess(result) {
72
+ setSearchUserList(result);
73
+ },
74
+ onError: function onError(error) {
75
+ message.error(error.message);
76
+ }
77
+ }),
78
+ loading = _useRequest.loading,
79
+ run = _useRequest.run;
80
+ var totalUserList = useMemo(function () {
81
+ var totalUsers = searchUserList.concat(selectedUserList);
82
+ return _.uniqBy(totalUsers, 'userId');
83
+ }, [searchUserList, selectedUserList]);
84
+ useEffect(function () {
85
+ run();
86
+ }, [run, searchString]);
87
+ useEffect(function () {
88
+ if (Array.isArray(value) && (isUser(value[0]) || isUserGroup(value[0]))) {
89
+ setSelectedUserList(value);
90
+ } else if (isUser(value) || isUserGroup(value)) {
91
+ setSelectedUserList([value]);
92
+ } else {
93
+ var id = [];
94
+ if (!value) return;
95
+ if (Array.isArray(value) && value.length === 0) return;
96
+ if (!Array.isArray(value)) {
97
+ id = [value];
98
+ } else {
99
+ id = value;
100
+ }
101
+ queryByIds(id).then(function (result) {
102
+ setSelectedUserList(result);
103
+ });
104
+ }
105
+ }, [value, queryByIds]);
106
+ var onSelectedChange = useCallback(function (users) {
107
+ if (multiple) {
108
+ onChange === null || onChange === void 0 ? void 0 : onChange(users);
109
+ } else {
110
+ onChange === null || onChange === void 0 ? void 0 : onChange(users[0]);
111
+ }
112
+ }, [multiple, onChange]);
113
+ return /*#__PURE__*/React.createElement(Panel, {
114
+ type: type,
115
+ value: selectedUserList,
116
+ dataList: totalUserList,
117
+ multiple: multiple,
118
+ loading: loading,
119
+ dropdownWidth: dropdownWidth,
120
+ onSearchValueChange: onSearchValueChange,
121
+ onChange: onSelectedChange,
122
+ className: className,
123
+ onCancel: onCancel
124
+ });
125
+ };
126
+ export default PanelWrapper;
@@ -1,9 +1,10 @@
1
1
  import React from 'react';
2
+ import { IUserGroup, TUser } from '../../ConfigProvider/getUserList';
2
3
  import { IUser } from '../interface';
3
4
  interface ISelectedMemberTagsProps {
4
5
  className?: string;
5
- selectedUsers: IUser[];
6
- onRemove?: (user: IUser) => void;
6
+ selectedUsers: TUser;
7
+ onRemove?: (user: IUser | IUserGroup) => void;
7
8
  width: number;
8
9
  }
9
10
  export default function SelectedMemberTags(props: ISelectedMemberTagsProps): React.JSX.Element;