@aloudata/aloudata-design 2.9.0 → 2.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.
@@ -1,7 +1,11 @@
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
+ var _excluded = ["count", "status", "size", "className", "onClick"];
3
+ 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); }
2
4
  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; }
3
5
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
4
6
  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); }
7
+ 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; }
8
+ 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
9
  import classNames from 'classnames';
6
10
  import React from 'react';
7
11
  export default function Badge(props) {
@@ -11,7 +15,8 @@ export default function Badge(props) {
11
15
  status = _props$status === void 0 ? 'default' : _props$status,
12
16
  size = props.size,
13
17
  className = props.className,
14
- onClick = props.onClick;
18
+ onClick = props.onClick,
19
+ rest = _objectWithoutProperties(props, _excluded);
15
20
  var status2ColorMap = {
16
21
  success: {
17
22
  color: '#15803D',
@@ -34,12 +39,12 @@ export default function Badge(props) {
34
39
  backgroundColor: '#FEF08A'
35
40
  }
36
41
  };
37
- return /*#__PURE__*/React.createElement("div", {
42
+ return /*#__PURE__*/React.createElement("div", _extends({}, rest, {
38
43
  className: classNames('ald-badge', (_classNames = {}, _defineProperty(_classNames, 'ald-badge-large', size === 'large'), _defineProperty(_classNames, 'ald-badge-clickable', typeof onClick === 'function'), _classNames), className),
39
44
  style: {
40
45
  color: status2ColorMap[status].color,
41
46
  backgroundColor: status2ColorMap[status].backgroundColor
42
47
  },
43
48
  onClick: onClick
44
- }, count);
49
+ }), count);
45
50
  }
@@ -53,5 +53,5 @@ export declare function getShape(ButtonShape: 'circle' | 'default'): 'circle' |
53
53
  export declare const setIcon: (iconNode: React.ReactElement, loading: boolean | {
54
54
  delay?: number | undefined;
55
55
  }) => React.JSX.Element;
56
- declare function Button(props: IButtonProps): React.JSX.Element;
57
- export default Button;
56
+ declare const _default: React.ForwardRefExoticComponent<IButtonProps & React.RefAttributes<HTMLElement>>;
57
+ export default _default;
@@ -11,7 +11,7 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
11
11
  import { Button as AntdButton } from 'antd';
12
12
  import { useCompactItemContext } from 'antd/lib/space/Compact';
13
13
  import classNames from 'classnames';
14
- import React, { useContext } from 'react';
14
+ import React, { forwardRef, useContext } from 'react';
15
15
  import { ConfigContext } from "../ConfigProvider";
16
16
  import SizeContext from "../ConfigProvider/sizeContext";
17
17
  import { LoadingLine } from "../Icon";
@@ -61,7 +61,7 @@ export var setIcon = function setIcon(iconNode, loading) {
61
61
  }
62
62
  return /*#__PURE__*/React.createElement(React.Fragment, null);
63
63
  };
64
- function Button(props) {
64
+ function Button(props, ref) {
65
65
  var _props$type = props.type,
66
66
  type = _props$type === void 0 ? 'secondary' : _props$type,
67
67
  customSize = props.size,
@@ -90,7 +90,8 @@ function Button(props) {
90
90
  type: getButtonType(type),
91
91
  className: classNames(btnPrefix, "".concat(btnPrefix, "-").concat(type), className, getButtonSizeClass(size), compactItemClassnames),
92
92
  danger: getDangerStatus(type),
93
- shape: getShape(shape)
93
+ shape: getShape(shape),
94
+ ref: ref
94
95
  }), props.children);
95
96
  }
96
- export default Button;
97
+ export default /*#__PURE__*/forwardRef(Button);
@@ -1,28 +1,17 @@
1
+ import { OffsetOptions } from '@floating-ui/react';
1
2
  import React from 'react';
2
3
  import { MenuProps } from '../Menu';
3
- import DropdownButton from './Button';
4
- type Align = {
5
- points?: [string, string];
6
- offset?: [number, number];
7
- targetOffset?: [number, number];
8
- overflow?: {
9
- adjustX?: boolean;
10
- adjustY?: boolean;
11
- };
12
- useCssRight?: boolean;
13
- useCssBottom?: boolean;
14
- useCssTransform?: boolean;
15
- };
16
- export type ActionType = 'hover' | 'click' | 'contextMenu';
17
- export type PlacementType = 'bottomLeft' | 'bottom' | 'bottomRight' | 'topLeft' | 'top' | 'topRight';
4
+ import './style/index.less';
5
+ export type ActionType = 'hover' | 'click';
6
+ export type PlacementType = 'top' | 'bottom' | 'left' | 'right' | 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end' | 'left-start' | 'left-end' | 'right-start' | 'right-end';
18
7
  export interface IDropdownProps {
8
+ children: React.ReactNode;
19
9
  /**
20
- * @description 位置状态
21
- * @default {}
10
+ * @description 菜单弹出位置的偏移量
22
11
  */
23
- align?: Align;
12
+ offset?: OffsetOptions;
24
13
  /**
25
- * @description 关闭后是否销毁Dropdown
14
+ * @description 关闭后是否销毁 Dropdown
26
15
  * @default false
27
16
  */
28
17
  destroyPopupOnHide?: boolean;
@@ -30,7 +19,7 @@ export interface IDropdownProps {
30
19
  * @description 菜单渲染父节点。默认渲染到 body 上,如果你遇到菜单滚动定位问题,试试修改为滚动的区域,并相对其定位
31
20
  * @default () => document.body
32
21
  */
33
- getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;
22
+ getPopupContainer?: () => HTMLElement;
34
23
  /**
35
24
  * @description 菜单
36
25
  * @type Menu | () => Menu
@@ -46,13 +35,13 @@ export interface IDropdownProps {
46
35
  * @description 菜单弹出位置
47
36
  * @default bottomLeft
48
37
  */
49
- placement?: 'bottomLeft' | 'bottom' | 'bottomRight' | 'topLeft' | 'top' | 'topRight';
38
+ placement?: PlacementType;
50
39
  /**
51
40
  * @description 触发下拉的行为
52
- * @type ActionType[], 其中 ActionType 为 'hover' | 'click' | 'contextMenu';
53
- * @default [hover]
41
+ * @type ActionType, 其中 ActionType 为 'hover' | 'click' | 'contextMenu';
42
+ * @default click
54
43
  */
55
- trigger?: ActionType[];
44
+ trigger?: ActionType;
56
45
  /**
57
46
  * @description 菜单是否显示
58
47
  * @default -
@@ -68,12 +57,6 @@ export interface IDropdownProps {
68
57
  * @default -
69
58
  */
70
59
  overlayStyle?: React.CSSProperties;
71
- /**
72
- * @description 是否强制渲染
73
- * @default -
74
- */
75
- forceRender?: boolean;
76
- children?: React.ReactNode;
77
60
  /**
78
61
  * @description 自定义下拉框内容
79
62
  * @default -
@@ -85,8 +68,4 @@ export interface IDropdownProps {
85
68
  */
86
69
  disabled?: boolean;
87
70
  }
88
- declare function Dropdown(props: IDropdownProps): React.JSX.Element;
89
- declare namespace Dropdown {
90
- var Button: typeof DropdownButton;
91
- }
92
- export default Dropdown;
71
+ export default function Dropdown(props: IDropdownProps): React.JSX.Element;
@@ -1,5 +1,4 @@
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
- var _excluded = ["children", "open", "overlayClassName", "menu", "align", "placement", "trigger", "dropdownRender", "destroyPopupOnHide", "onOpenChange"];
3
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); }
4
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; }
5
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; }
@@ -12,48 +11,103 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
12
11
  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; }
13
12
  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; } }
14
13
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
15
- 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; }
16
- 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; }
17
- import { Dropdown as AntdDropdown } from 'antd';
18
- import getPlacements from 'antd/lib/_util/placements';
14
+ import { FloatingFocusManager, autoUpdate, flip, offset, safePolygon, shift, useClick, useDismiss, useFloating, useHover, useId, useInteractions, useRole } from '@floating-ui/react';
15
+ import { useMemoizedFn } from 'ahooks';
19
16
  import classNames from 'classnames';
20
- import React, { useCallback, useMemo, useState } from 'react';
17
+ import ResizeObserver from 'rc-resize-observer';
18
+ import React, { cloneElement, useCallback, useEffect, useMemo, useState } from 'react';
19
+ import ReactDOM from 'react-dom';
21
20
  import Menu from "../Menu";
22
- import DropdownButton from "./Button";
21
+ import "./style/index.less";
23
22
  export default function Dropdown(props) {
24
23
  var children = props.children,
25
- open = props.open,
26
- overlayClassName = props.overlayClassName,
24
+ _props$destroyPopupOn = props.destroyPopupOnHide,
25
+ destroyPopupOnHide = _props$destroyPopupOn === void 0 ? true : _props$destroyPopupOn,
26
+ getPopupContainer = props.getPopupContainer,
27
27
  menu = props.menu,
28
- align = props.align,
29
- placement = props.placement,
28
+ overlayClassName = props.overlayClassName,
29
+ _props$placement = props.placement,
30
+ placement = _props$placement === void 0 ? 'bottom-start' : _props$placement,
30
31
  _props$trigger = props.trigger,
31
- trigger = _props$trigger === void 0 ? ['click'] : _props$trigger,
32
+ trigger = _props$trigger === void 0 ? 'click' : _props$trigger,
33
+ open = props.open,
34
+ _props$onOpenChange = props.onOpenChange,
35
+ onOpenChange = _props$onOpenChange === void 0 ? function () {} : _props$onOpenChange,
36
+ overlayStyle = props.overlayStyle,
32
37
  dropdownRender = props.dropdownRender,
33
- _props$destroyPopupOn = props.destroyPopupOnHide,
34
- destroyPopupOnHide = _props$destroyPopupOn === void 0 ? true : _props$destroyPopupOn,
35
- onOpenChange = props.onOpenChange,
36
- otherProps = _objectWithoutProperties(props, _excluded);
37
- // antd 根据 open 字段是否存在来判断 open 是否是可控模式
38
- var antdDropdownProps = otherProps;
39
- var defaultAlign = useMemo(function () {
40
- var _getPlacements;
41
- if (align) {
42
- return align;
43
- }
44
- return {
45
- offset: ((_getPlacements = getPlacements({
46
- arrowWidth: 0,
47
- offset: 4,
48
- borderRadius: 0
49
- })[placement || 'bottomLeft']) === null || _getPlacements === void 0 ? void 0 : _getPlacements['offset']) || [0, 4]
50
- };
51
- }, [align, placement]);
52
- var isOpenControlled = open !== undefined;
53
- var _useState = useState(open),
38
+ disabled = props.disabled,
39
+ _props$offset = props.offset,
40
+ offsetProps = _props$offset === void 0 ? 4 : _props$offset;
41
+ var _useState = useState(open || false),
54
42
  _useState2 = _slicedToArray(_useState, 2),
55
- dropdownOpen = _useState2[0],
56
- setDropdownOpen = _useState2[1];
43
+ isOpen = _useState2[0],
44
+ setIsOpen = _useState2[1];
45
+ var onOpenChangeFn = useMemoizedFn(onOpenChange);
46
+ var isOpenControlled = open !== undefined;
47
+ useEffect(function () {
48
+ if (isOpenControlled) {
49
+ setIsOpen(open);
50
+ }
51
+ }, [open, isOpenControlled]);
52
+ var onChangeOpen = useCallback(function (newOpen) {
53
+ if (!isOpenControlled) {
54
+ setIsOpen(newOpen);
55
+ }
56
+ onOpenChangeFn(newOpen);
57
+ }, [isOpenControlled, onOpenChangeFn]);
58
+ var _useFloating = useFloating({
59
+ placement: placement,
60
+ open: isOpen,
61
+ onOpenChange: onChangeOpen,
62
+ middleware: [offset(offsetProps), flip({
63
+ fallbackAxisSideDirection: 'end'
64
+ }), shift()],
65
+ whileElementsMounted: autoUpdate
66
+ }),
67
+ refs = _useFloating.refs,
68
+ floatingStyles = _useFloating.floatingStyles,
69
+ context = _useFloating.context;
70
+ var click = useClick(context);
71
+ var hover = useHover(context, {
72
+ enabled: trigger === 'hover',
73
+ handleClose: safePolygon({})
74
+ });
75
+ var dismiss = useDismiss(context);
76
+ var role = useRole(context);
77
+ var propsList = useMemo(function () {
78
+ var res = [dismiss, role];
79
+ var finalTrigger = trigger;
80
+ if (Array.isArray(trigger)) {
81
+ // 对于数组形式的 trigger,告警
82
+ console.error('trigger should be a string, support "hover" or "click" now.');
83
+ finalTrigger = 'click';
84
+ }
85
+ if (finalTrigger === 'hover') {
86
+ res.unshift(hover);
87
+ } else if (finalTrigger === 'click') {
88
+ res.unshift(click);
89
+ }
90
+ return res;
91
+ }, [trigger, click, dismiss, role, hover]);
92
+ var _useInteractions = useInteractions(propsList),
93
+ getReferenceProps = _useInteractions.getReferenceProps,
94
+ getFloatingProps = _useInteractions.getFloatingProps;
95
+ var headingId = useId();
96
+ var child = children;
97
+ var childProps = child.props || {};
98
+ var referenceProps = getReferenceProps();
99
+ var modifiedChild = /*#__PURE__*/cloneElement(child, _objectSpread(_objectSpread(_objectSpread({}, childProps), {}, {
100
+ disabled: disabled
101
+ }, referenceProps), {}, {
102
+ onClick: function onClick(event) {
103
+ var _childProps$onClick;
104
+ (_childProps$onClick = childProps.onClick) === null || _childProps$onClick === void 0 ? void 0 : _childProps$onClick.call(childProps, event);
105
+ var referenceOnClick = referenceProps.onClick;
106
+ if (typeof referenceOnClick === 'function') {
107
+ referenceOnClick(event);
108
+ }
109
+ }
110
+ }));
57
111
  var onMenuItemClick = useCallback(function (info) {
58
112
  if (menu !== null && menu !== void 0 && menu.onClick) {
59
113
  menu.onClick(info);
@@ -62,17 +116,9 @@ export default function Dropdown(props) {
62
116
  return;
63
117
  }
64
118
  if (!isOpenControlled) {
65
- setDropdownOpen(false);
119
+ setIsOpen(false);
66
120
  }
67
121
  }, [isOpenControlled, menu]);
68
- var onDropdownOpenChange = useCallback(function (isDropdownOpen) {
69
- if (onOpenChange) {
70
- onOpenChange(isDropdownOpen);
71
- }
72
- if (!isOpenControlled) {
73
- setDropdownOpen(isDropdownOpen);
74
- }
75
- }, [isOpenControlled, onOpenChange]);
76
122
  var menuInstance = useMemo(function () {
77
123
  var menuProps = _objectSpread(_objectSpread({}, menu), {}, {
78
124
  items: (menu === null || menu === void 0 ? void 0 : menu.items) || []
@@ -81,24 +127,30 @@ export default function Dropdown(props) {
81
127
  onClick: onMenuItemClick
82
128
  }));
83
129
  }, [menu, onMenuItemClick]);
84
- var menuRender = useCallback(function () {
85
- if (dropdownRender) {
86
- return dropdownRender(menuInstance);
87
- }
88
- if (menu) {
89
- return menuInstance;
90
- }
91
- return undefined;
92
- }, [menuInstance, dropdownRender, menu]);
93
- return /*#__PURE__*/React.createElement(AntdDropdown, _extends({
94
- overlayClassName: classNames('ald-dropdown-overlay', overlayClassName),
95
- align: defaultAlign,
96
- trigger: trigger,
97
- placement: placement,
98
- dropdownRender: menuRender,
99
- destroyPopupOnHide: destroyPopupOnHide,
100
- open: !!(isOpenControlled ? open : dropdownOpen),
101
- onOpenChange: onDropdownOpenChange
102
- }, antdDropdownProps), children);
103
- }
104
- Dropdown.Button = DropdownButton;
130
+ var popupElement = useMemo(function () {
131
+ return typeof dropdownRender === 'function' ? dropdownRender(menuInstance) : menuInstance;
132
+ }, [dropdownRender, menuInstance]);
133
+
134
+ // 渲染浮动内容到自定义容器
135
+ var renderFloatingContent = useCallback(function () {
136
+ var popupElem = /*#__PURE__*/React.createElement(FloatingFocusManager, {
137
+ context: context,
138
+ modal: false
139
+ }, /*#__PURE__*/React.createElement("div", _extends({
140
+ className: classNames('ald-dropdown-overlay', overlayClassName, _defineProperty({}, 'ald-dropdown-overlay-hidden', !isOpen)),
141
+ ref: refs.setFloating,
142
+ style: _objectSpread(_objectSpread({}, floatingStyles), overlayStyle),
143
+ "aria-labelledby": headingId
144
+ }, getFloatingProps()), popupElement));
145
+ var popupContainer = typeof getPopupContainer === 'function' ? getPopupContainer() : document.body;
146
+ return /*#__PURE__*/ReactDOM.createPortal(popupElem, popupContainer);
147
+ }, [context, floatingStyles, getFloatingProps, getPopupContainer, headingId, popupElement, refs.setFloating, overlayClassName, overlayStyle, isOpen]);
148
+ var popup = destroyPopupOnHide ? isOpen && renderFloatingContent() : renderFloatingContent();
149
+ var setTargetRef = useCallback(function (node) {
150
+ refs.setReference(node);
151
+ }, [refs]);
152
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ResizeObserver, {
153
+ disabled: !isOpen,
154
+ ref: setTargetRef
155
+ }, modifiedChild), popup);
156
+ }
@@ -5,6 +5,10 @@
5
5
  .ald-dropdown-overlay {
6
6
  .menuContainerStyle();
7
7
 
8
+ &.ald-dropdown-overlay-hidden {
9
+ visibility: hidden;
10
+ }
11
+
8
12
  padding: 4px 0 !important;
9
13
  animation-duration: 0s !important;
10
14
  max-width: none;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { IDropdownProps } from '../Dropdown';
2
+ import { IDropdownProps } from '../Dropdown/index';
3
3
  import { TSize } from '../Input';
4
4
  import { ITooltipProps } from '../Tooltip';
5
5
  interface IIconButtonProps {
@@ -13,7 +13,7 @@ interface IIconButtonProps {
13
13
  id?: string;
14
14
  mode?: 'light' | 'dark';
15
15
  }
16
- declare const DropdownButton: React.ForwardRefExoticComponent<IIconButtonProps & IDropdownProps & {
16
+ declare const DropdownButton: React.ForwardRefExoticComponent<IIconButtonProps & Omit<IDropdownProps, "children"> & {
17
17
  showArrow?: boolean | undefined;
18
18
  } & React.RefAttributes<HTMLDivElement>>;
19
19
  declare const IconButton: React.ForwardRefExoticComponent<IIconButtonProps & React.RefAttributes<HTMLDivElement>> & {
@@ -1,10 +1,10 @@
1
- var _excluded = ["icon", "onClick", "disabled", "size", "menu", "className", "onOpenChange", "tooltip", "id", "trigger", "showArrow", "mode"];
1
+ var _excluded = ["icon", "onClick", "disabled", "size", "menu", "className", "onOpenChange", "tooltip", "id", "showArrow", "mode"];
2
2
  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; }
3
3
  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; }
4
4
  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); }
5
5
  import classnames from 'classnames';
6
6
  import React, { forwardRef, useMemo } from 'react';
7
- import Dropdown from "../Dropdown";
7
+ import Dropdown from "../Dropdown/index";
8
8
  import { FoldDownFill } from "../Icon";
9
9
  import { getSizeType } from "../Input/components/Input";
10
10
  import Tooltip from "../Tooltip";
@@ -57,8 +57,6 @@ var DropdownButton = /*#__PURE__*/forwardRef(function (props, ref) {
57
57
  onOpenChange = props.onOpenChange,
58
58
  tooltip = props.tooltip,
59
59
  id = props.id,
60
- _props$trigger = props.trigger,
61
- trigger = _props$trigger === void 0 ? ['click'] : _props$trigger,
62
60
  showArrow = props.showArrow,
63
61
  _props$mode2 = props.mode,
64
62
  mode = _props$mode2 === void 0 ? 'light' : _props$mode2,
@@ -94,7 +92,6 @@ var DropdownButton = /*#__PURE__*/forwardRef(function (props, ref) {
94
92
  title: tooltip === null || tooltip === void 0 ? void 0 : tooltip.title
95
93
  }), /*#__PURE__*/React.createElement(Dropdown, _extends({
96
94
  menu: menu,
97
- trigger: trigger,
98
95
  onOpenChange: onOpenChange
99
96
  }, restDropdownProps), /*#__PURE__*/React.createElement("div", {
100
97
  id: id,
@@ -14,6 +14,7 @@ import ScrollArea from "../../ScrollArea";
14
14
  import Spin from "../../Spin";
15
15
  import { isUser } from "../utils/getUsersWithUserId";
16
16
  import MultipleOption from "./MultipleOption";
17
+ import { userDisplayNameIsRepeated } from "./Panel";
17
18
  import SingleOption from "./SingleOption";
18
19
  export default function MemberSelection(props) {
19
20
  var className = props.className,
@@ -83,6 +84,7 @@ export default function MemberSelection(props) {
83
84
  user: user,
84
85
  disabled: disabled,
85
86
  selected: isSelected,
87
+ showUserId: userDisplayNameIsRepeated(userList, user.nickname),
86
88
  onChange: function onChange(selected, user) {
87
89
  if (isUser(user)) _onChange(selected, user);
88
90
  }
@@ -90,6 +92,7 @@ export default function MemberSelection(props) {
90
92
  key: user.userId,
91
93
  user: user,
92
94
  selected: isSelected,
95
+ showUserId: userDisplayNameIsRepeated(userList, user.nickname),
93
96
  onChange: function onChange(selected, user) {
94
97
  if (isUser(user)) _onChange(selected, user);
95
98
  }
@@ -9,6 +9,7 @@ interface IMultipleOptionProps {
9
9
  className?: string;
10
10
  onNextLevel?: (userGroup: IUserGroup) => void;
11
11
  hasNextLevel?: boolean;
12
+ showUserId?: boolean;
12
13
  }
13
14
  export default function MultipleList(params: IMultipleOptionProps): React.JSX.Element;
14
15
  export {};
@@ -5,6 +5,7 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
5
5
  import classnames from 'classnames';
6
6
  import React from 'react';
7
7
  import Checkbox from "../../Checkbox";
8
+ import { EUserType } from "../../ConfigProvider/getUserList";
8
9
  import TextLink from "../../TextLink/index";
9
10
  import { getAccount, getId, getPhoto } from "../utils";
10
11
  import { isUserGroup } from "../utils/getUsersWithUserId";
@@ -17,7 +18,9 @@ export default function MultipleList(params) {
17
18
  className = params.className,
18
19
  onNextLevel = params.onNextLevel,
19
20
  _params$hasNextLevel = params.hasNextLevel,
20
- hasNextLevel = _params$hasNextLevel === void 0 ? true : _params$hasNextLevel;
21
+ hasNextLevel = _params$hasNextLevel === void 0 ? true : _params$hasNextLevel,
22
+ _params$showUserId = params.showUserId,
23
+ showUserId = _params$showUserId === void 0 ? false : _params$showUserId;
21
24
  var onClick = function onClick() {
22
25
  if (disabled) return;
23
26
  onChange === null || onChange === void 0 ? void 0 : onChange(!selected, user);
@@ -31,13 +34,17 @@ export default function MultipleList(params) {
31
34
  className: 'ald-member-picker-checkbox',
32
35
  checked: selected,
33
36
  disabled: disabled
34
- }), /*#__PURE__*/React.createElement(NickLabel, {
37
+ }), /*#__PURE__*/React.createElement("div", {
38
+ className: 'ald-member-picker-option-content'
39
+ }, /*#__PURE__*/React.createElement(NickLabel, {
35
40
  type: user.type,
36
41
  id: getId(user),
37
42
  name: user.name,
38
43
  photo: getPhoto(user),
39
44
  account: getAccount(user)
40
- })), isUserGroup(user) && hasNextLevel && /*#__PURE__*/React.createElement(TextLink, {
45
+ }), showUserId && user.type === EUserType.USER && /*#__PURE__*/React.createElement("div", {
46
+ className: 'ald-member-picker-option-id'
47
+ }, user.userId))), isUserGroup(user) && hasNextLevel && /*#__PURE__*/React.createElement(TextLink, {
41
48
  className: "ald-member-picker-btn",
42
49
  size: "small",
43
50
  disabled: disabled,
@@ -14,5 +14,6 @@ interface IPanelProps {
14
14
  className?: string;
15
15
  lockedIds: Array<TUserValue | TUserGroupValue>;
16
16
  }
17
+ export declare const userDisplayNameIsRepeated: (userList: TUser, displayName?: string) => boolean;
17
18
  export default function Panel(props: IPanelProps): React.JSX.Element;
18
19
  export {};
@@ -13,6 +13,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
13
13
  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; } }
14
14
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
15
15
  import classNames from 'classnames';
16
+ import { EUserType } from "../../ConfigProvider/getUserList";
16
17
  import React, { useCallback, useEffect, useMemo, useState } from 'react';
17
18
  import Tabs from "../../Tabs";
18
19
  import { EMemberPicker } from "../interface";
@@ -22,6 +23,11 @@ import MemberSelection from "./MemberSelection";
22
23
  import SelectedMemberTags from "./SelectedMemberTags";
23
24
  import SelectorFooter from "./SelectorFooter";
24
25
  import UserGroupSelection from "./UserGroupSelection";
26
+ export var userDisplayNameIsRepeated = function userDisplayNameIsRepeated(userList, displayName) {
27
+ return userList.filter(function (user) {
28
+ return user.type === EUserType.USER && user.nickname === displayName;
29
+ }).length > 1;
30
+ };
25
31
  export default function Panel(props) {
26
32
  var _classNames;
27
33
  var type = props.type,
@@ -140,7 +146,8 @@ export default function Panel(props) {
140
146
  selectedUsers: selectedUsers,
141
147
  width: (panelWidth - 3) / 2,
142
148
  onRemove: onRemove,
143
- lockedIds: lockedIds
149
+ lockedIds: lockedIds,
150
+ userList: dataList
144
151
  }), /*#__PURE__*/React.createElement(SelectorFooter, {
145
152
  className: 'ald-member-picker-selector-footer',
146
153
  onCancel: props.onCancel,
@@ -10,6 +10,7 @@ interface IProps {
10
10
  className?: string;
11
11
  onCancel?: () => void;
12
12
  lockedIds?: Array<TUserValue | TUserGroupValue>;
13
+ showUserId?: boolean;
13
14
  }
14
15
  export declare const PanelWrapper: ({ type, value, multiple, dropdownWidth, onChange, onCancel, className, lockedIds, }: IProps) => React.JSX.Element;
15
16
  export default PanelWrapper;
@@ -72,6 +72,7 @@ export var PanelWrapper = function PanelWrapper(_ref) {
72
72
  cacheTime: 1000 * 60 * 2,
73
73
  // 2分钟内不重复请求
74
74
  onSuccess: function onSuccess(result) {
75
+ console.log('%c [ result ]-73', 'font-size:13px; background:#c324a4; color:#ff68e8;', 1433223, result);
75
76
  setSearchUserList(result);
76
77
  },
77
78
  onError: function onError(error) {
@@ -7,6 +7,7 @@ interface ISelectedMemberTagsProps {
7
7
  onRemove?: (user: IUser | IUserGroup) => void;
8
8
  width: number;
9
9
  lockedIds: Array<TUserValue | TUserGroupValue>;
10
+ userList: TUser;
10
11
  }
11
12
  export default function SelectedMemberTags(props: ISelectedMemberTagsProps): React.JSX.Element;
12
13
  export {};
@@ -5,12 +5,14 @@ import { CloseMLine } from "../../Icon";
5
5
  import ScrollArea from "../../ScrollArea";
6
6
  import { getAccount, getId, getPhoto } from "../utils";
7
7
  import NickLabel from "./NickLabel";
8
+ import { userDisplayNameIsRepeated } from "./Panel";
8
9
  export default function SelectedMemberTags(props) {
9
10
  var className = props.className,
10
11
  selectedUsers = props.selectedUsers,
11
12
  width = props.width,
12
13
  _props$lockedIds = props.lockedIds,
13
- lockedIds = _props$lockedIds === void 0 ? [] : _props$lockedIds;
14
+ lockedIds = _props$lockedIds === void 0 ? [] : _props$lockedIds,
15
+ userList = props.userList;
14
16
  return /*#__PURE__*/React.createElement("div", {
15
17
  className: classNames(className, 'ald-member-picker-selected-member-tags-wrap')
16
18
  }, /*#__PURE__*/React.createElement("div", {
@@ -27,6 +29,7 @@ export default function SelectedMemberTags(props) {
27
29
  }
28
30
  }, selectedUsers.map(function (user) {
29
31
  var hasLocked = false;
32
+ var isDisplayNameRepeat = false;
30
33
  if (user && user.hasOwnProperty('groupId')) {
31
34
  var index = _.findIndex(lockedIds, {
32
35
  groupId: user.groupId,
@@ -38,6 +41,7 @@ export default function SelectedMemberTags(props) {
38
41
  userId: user.userId,
39
42
  type: user.type
40
43
  });
44
+ isDisplayNameRepeat = userDisplayNameIsRepeated(userList, user.nickname);
41
45
  hasLocked = _index !== -1;
42
46
  }
43
47
  return /*#__PURE__*/React.createElement("div", {
@@ -51,7 +55,9 @@ export default function SelectedMemberTags(props) {
51
55
  name: user.name,
52
56
  photo: getPhoto(user),
53
57
  account: getAccount(user)
54
- })), !hasLocked && /*#__PURE__*/React.createElement(CloseMLine, {
58
+ }), isDisplayNameRepeat && user.type === 'USER' && /*#__PURE__*/React.createElement("div", {
59
+ className: "ald-member-picker-option-id"
60
+ }, user.userId)), !hasLocked && /*#__PURE__*/React.createElement(CloseMLine, {
55
61
  size: 20,
56
62
  className: 'ald-member-picker-close',
57
63
  color: "#98A2B3",
@@ -9,6 +9,7 @@ interface IMultipleOptionProps {
9
9
  className?: string;
10
10
  onNextLevel?: (userGroup: IUserGroup) => void;
11
11
  hasNextLevel?: boolean;
12
+ showUserId?: boolean;
12
13
  }
13
14
  export default function SingleOption(params: IMultipleOptionProps): React.JSX.Element;
14
15
  export {};