@aloudata/aloudata-design 2.14.5 → 2.14.6
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/BaseSelect.d.ts +2 -5
- package/dist/AldSelect/BaseSelect.js +14 -4
- package/dist/AldSelect/SelectTrigger.d.ts +3 -3
- package/dist/AldSelect/Selector/MultipleResponsiveSelectedSection.d.ts +3 -1
- package/dist/AldSelect/Selector/MultipleResponsiveSelectedSection.js +5 -3
- package/dist/AldSelect/Selector/MultipleSelector.d.ts +3 -1
- package/dist/AldSelect/Selector/MultipleSelector.js +15 -8
- package/dist/AldSelect/Selector/index.d.ts +3 -1
- package/dist/AldSelect/Selector/index.js +3 -1
- package/dist/AldSelect/components/PopupContent.d.ts +2 -2
- package/dist/AldSelect/hooks/useDisplayMenu.d.ts +2 -3
- package/dist/AldSelect/hooks/useOptions.d.ts +6 -5
- package/dist/AldSelect/hooks/useOptions.js +8 -7
- package/dist/AldSelect/index.js +11 -4
- package/dist/AldSelect/interface.d.ts +13 -5
- package/dist/AldSelect/style/index.less +36 -6
- package/dist/AldSelect/utils/commonUtil.d.ts +2 -3
- package/dist/AldSelect/utils/commonUtil.js +14 -3
- package/dist/Dropdown/index.d.ts +1 -1
- package/dist/Dropdown/index.js +1 -1
- package/dist/LogicTree/components/LogicItem/index.js +3 -2
- package/dist/LogicTree/style/index.less +1 -1
- package/dist/MemberPicker/index.js +61 -16
- package/dist/MemberPicker/interface.d.ts +3 -3
- package/dist/MemberPicker/style/index.less +3 -3
- package/dist/ald.min.css +1 -1
- package/dist/index.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import type { AlignType } from 'rc-trigger/lib/interface';
|
|
3
3
|
import { PlacementType } from '../Dropdown';
|
|
4
|
-
import { BaseSelectRef, ISelectProps, LabelInValueType } from './interface';
|
|
5
|
-
import { MenuProps } from '../Menu';
|
|
4
|
+
import { BaseSelectRef, ISelectProps, LabelInValueType, SelectMenuProps } from './interface';
|
|
6
5
|
export type RenderNode = React.ReactNode | ((props: any) => React.ReactNode);
|
|
7
6
|
export type RenderDOMFunc = (props: any) => HTMLElement;
|
|
8
7
|
export type Mode = 'multiple' | {
|
|
@@ -36,11 +35,10 @@ export interface BaseSelectProps extends BaseSelectPrivateProps, ISelectProps, R
|
|
|
36
35
|
className?: string;
|
|
37
36
|
style?: React.CSSProperties;
|
|
38
37
|
notFoundContent?: React.ReactNode;
|
|
39
|
-
placeholder?: string;
|
|
40
38
|
onClear?: () => void;
|
|
41
39
|
innerSearchValue?: string;
|
|
42
40
|
setInnerSearchValue?: (value: string) => void;
|
|
43
|
-
displayMenu?:
|
|
41
|
+
displayMenu?: SelectMenuProps;
|
|
44
42
|
open?: boolean;
|
|
45
43
|
defaultOpen?: boolean;
|
|
46
44
|
onOpenChange?: (open: boolean) => void;
|
|
@@ -48,7 +46,6 @@ export interface BaseSelectProps extends BaseSelectPrivateProps, ISelectProps, R
|
|
|
48
46
|
allowClear?: boolean;
|
|
49
47
|
showArrow?: boolean;
|
|
50
48
|
suffixIcon?: React.ReactNode;
|
|
51
|
-
dropdownRender?: (menu: React.ReactNode) => React.ReactNode;
|
|
52
49
|
dropdownAlign?: AlignType;
|
|
53
50
|
placement?: PlacementType;
|
|
54
51
|
getPopupContainer?: RenderDOMFunc;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
var _excluded = ["id", "className", "displayValues", "onDisplayValuesChange", "displayMenu", "notFoundContent", "onClear", "width", "mode", "status", "onOptionSelect", "onClick", "size", "borderLess", "disabled", "placeholder", "open", "defaultOpen", "onOpenChange", "showSearch", "innerSearchValue", "setInnerSearchValue", "allowClear", "showArrow", "prefix", "suffixIcon", "dropdownRender", "overlayStyle", "dropdownStyle", "popupMatchSelectWidth", "placement", "popupClassName", "style", "listHeight"];
|
|
1
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); }
|
|
2
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; }
|
|
3
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; }
|
|
@@ -10,6 +11,8 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
10
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; }
|
|
11
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; } }
|
|
12
13
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
14
|
+
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; }
|
|
15
|
+
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; }
|
|
13
16
|
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); }
|
|
14
17
|
import * as React from 'react';
|
|
15
18
|
import useMergedState from 'rc-util/lib/hooks/useMergedState';
|
|
@@ -29,7 +32,7 @@ export function isMultiple(mode) {
|
|
|
29
32
|
return !!mode;
|
|
30
33
|
}
|
|
31
34
|
export function isResponsive(mode) {
|
|
32
|
-
return _typeof(mode) === 'object' && (mode === null || mode === void 0 ? void 0 : mode.responsive);
|
|
35
|
+
return mode === 'multiple' || _typeof(mode) === 'object' && (mode === null || mode === void 0 ? void 0 : mode.responsive);
|
|
33
36
|
}
|
|
34
37
|
var BaseSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
35
38
|
var _setClassNames;
|
|
@@ -69,10 +72,12 @@ var BaseSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
69
72
|
placement = props.placement,
|
|
70
73
|
popupClassName = props.popupClassName,
|
|
71
74
|
style = props.style,
|
|
72
|
-
listHeight = props.listHeight
|
|
75
|
+
listHeight = props.listHeight,
|
|
76
|
+
restProps = _objectWithoutProperties(props, _excluded);
|
|
73
77
|
var setClassNames = prefixCls('select');
|
|
74
78
|
var selectRef = useRef(null);
|
|
75
79
|
var widthStyle = getWidthStyle(width);
|
|
80
|
+
var dropdownRef = useRef(null);
|
|
76
81
|
var isResponsiveMode = isResponsive(mode);
|
|
77
82
|
var isMultipleMode = isMultiple(mode);
|
|
78
83
|
/** Used for component focused management */
|
|
@@ -189,11 +194,14 @@ var BaseSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
189
194
|
open: !!mergedOpen,
|
|
190
195
|
notFoundContent: notFoundContent,
|
|
191
196
|
menu: showMenu,
|
|
197
|
+
ref: dropdownRef,
|
|
192
198
|
showSearch: showSearch,
|
|
193
199
|
searchValue: innerSearchValue,
|
|
194
200
|
setInnerSearchValue: setInnerSearchValue,
|
|
195
201
|
popupMatchSelectWidth: popupMatchSelectWidth,
|
|
196
|
-
overlayClassName: popupClassName
|
|
202
|
+
overlayClassName: popupClassName
|
|
203
|
+
// @ts-ignore
|
|
204
|
+
,
|
|
197
205
|
dropdownRender: dropdownRender,
|
|
198
206
|
overlayStyle: overlayStyle || dropdownStyle,
|
|
199
207
|
listHeight: listHeight,
|
|
@@ -215,8 +223,10 @@ var BaseSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
215
223
|
className: setClassNames('prefix')
|
|
216
224
|
}, prefix), _.isEmpty(displayValues) && /*#__PURE__*/React.createElement("div", {
|
|
217
225
|
className: setClassNames('placeholder')
|
|
218
|
-
}, placeholder), !_.isEmpty(displayValues) && /*#__PURE__*/React.createElement(Selector, _extends({},
|
|
226
|
+
}, placeholder), !_.isEmpty(displayValues) && /*#__PURE__*/React.createElement(Selector, _extends({}, restProps, {
|
|
219
227
|
size: size,
|
|
228
|
+
mode: mode,
|
|
229
|
+
dropdownRef: dropdownRef,
|
|
220
230
|
displayValues: displayValues,
|
|
221
231
|
onToggleOpen: onToggleOpen,
|
|
222
232
|
onRemove: onSelectorRemove,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { ScrollTo } from 'rc-virtual-list/lib/List';
|
|
3
|
-
import {
|
|
3
|
+
import { IDropdownProps } from '../Dropdown';
|
|
4
4
|
import { SelectOptionType } from '../Select';
|
|
5
5
|
export interface RefTriggerProps {
|
|
6
6
|
getPopupElement: () => HTMLDivElement | null;
|
|
@@ -10,10 +10,10 @@ export interface RefSelectorProps {
|
|
|
10
10
|
blur: () => void;
|
|
11
11
|
scrollTo?: ScrollTo;
|
|
12
12
|
}
|
|
13
|
-
export interface SelectTriggerProps extends
|
|
13
|
+
export interface SelectTriggerProps extends IDropdownProps {
|
|
14
14
|
open: boolean;
|
|
15
15
|
notFoundContent?: React.ReactNode;
|
|
16
|
-
popupMatchSelectWidth?: boolean;
|
|
16
|
+
popupMatchSelectWidth?: boolean | number;
|
|
17
17
|
showSearch?: boolean;
|
|
18
18
|
searchValue?: string;
|
|
19
19
|
setInnerSearchValue?: (value: string) => void;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { RefObject } from 'react';
|
|
2
2
|
import { DisplayValueType } from '../interface';
|
|
3
|
+
import { RefTriggerProps } from '../SelectTrigger';
|
|
3
4
|
export default function MultipleResponsiveSelectedSection(params: {
|
|
4
5
|
displayValues: DisplayValueType[];
|
|
5
6
|
renderItem: (valueItem: DisplayValueType) => React.JSX.Element | null;
|
|
6
7
|
onToggleOpen: (open: boolean) => void;
|
|
8
|
+
dropdownRef: RefObject<RefTriggerProps>;
|
|
7
9
|
}): React.JSX.Element;
|
|
@@ -2,7 +2,8 @@ import React, { useEffect, useRef } from 'react';
|
|
|
2
2
|
export default function MultipleResponsiveSelectedSection(params) {
|
|
3
3
|
var displayValues = params.displayValues,
|
|
4
4
|
renderItem = params.renderItem,
|
|
5
|
-
onToggleOpen = params.onToggleOpen
|
|
5
|
+
onToggleOpen = params.onToggleOpen,
|
|
6
|
+
dropdownRef = params.dropdownRef;
|
|
6
7
|
var multipleSelectedSectionRef = useRef(null);
|
|
7
8
|
useEffect(function () {
|
|
8
9
|
function getSelect() {
|
|
@@ -14,9 +15,10 @@ export default function MultipleResponsiveSelectedSection(params) {
|
|
|
14
15
|
return null;
|
|
15
16
|
}
|
|
16
17
|
function close(e) {
|
|
18
|
+
var _dropdownRef$current, _dropdownRef$current$;
|
|
17
19
|
var target = e.target;
|
|
18
20
|
var select = getSelect();
|
|
19
|
-
if (select && target.contains(
|
|
21
|
+
if (select && !select.contains(target) && !((_dropdownRef$current = dropdownRef.current) !== null && _dropdownRef$current !== void 0 && (_dropdownRef$current$ = _dropdownRef$current.getPopupElement()) !== null && _dropdownRef$current$ !== void 0 && _dropdownRef$current$.contains(target))) {
|
|
20
22
|
onToggleOpen(false);
|
|
21
23
|
}
|
|
22
24
|
}
|
|
@@ -24,7 +26,7 @@ export default function MultipleResponsiveSelectedSection(params) {
|
|
|
24
26
|
return function () {
|
|
25
27
|
document.removeEventListener('click', close);
|
|
26
28
|
};
|
|
27
|
-
}, [onToggleOpen]);
|
|
29
|
+
}, [onToggleOpen, dropdownRef]);
|
|
28
30
|
return /*#__PURE__*/React.createElement("div", {
|
|
29
31
|
ref: multipleSelectedSectionRef,
|
|
30
32
|
className: "beta-ald-select-selector-multiple-responsive-selected-section"
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { RefObject } from 'react';
|
|
2
2
|
import { SelectorProps } from './index';
|
|
3
3
|
import { DisplayValueType } from '../interface';
|
|
4
4
|
import { CustomTagProps } from '../BaseSelect';
|
|
5
|
+
import { RefTriggerProps } from '../SelectTrigger';
|
|
5
6
|
interface MultipleSelectorProps extends SelectorProps {
|
|
6
7
|
onRemove: (value: DisplayValueType) => void;
|
|
7
8
|
onToggleOpen: (open?: boolean) => void;
|
|
8
9
|
tagRender?: (props: CustomTagProps, isPreview?: boolean) => React.ReactNode;
|
|
9
10
|
maxTagPlaceholder?: React.ReactNode | ((omittedValues: DisplayValueType[]) => React.ReactNode);
|
|
11
|
+
dropdownRef: RefObject<RefTriggerProps>;
|
|
10
12
|
}
|
|
11
13
|
export default function MultipleSelector(props: MultipleSelectorProps): React.JSX.Element;
|
|
12
14
|
export {};
|
|
@@ -9,6 +9,7 @@ import React, { useMemo, useState } from 'react';
|
|
|
9
9
|
import Tag from "../../Tag";
|
|
10
10
|
import { isMultiple, isResponsive } from "../BaseSelect";
|
|
11
11
|
import ScrollArea from "../../ScrollArea";
|
|
12
|
+
import classNames from 'classnames';
|
|
12
13
|
import _ from 'lodash';
|
|
13
14
|
import Overflow from 'rc-overflow';
|
|
14
15
|
import MultipleResponsiveSelectedSection from "./MultipleResponsiveSelectedSection";
|
|
@@ -30,11 +31,12 @@ export default function MultipleSelector(props) {
|
|
|
30
31
|
onToggleOpen = props.onToggleOpen,
|
|
31
32
|
mode = props.mode,
|
|
32
33
|
disabled = props.disabled,
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
maxTagPlaceholder = props.maxTagPlaceholder,
|
|
35
|
+
showResponsiveSelectedSection = props.showResponsiveSelectedSection,
|
|
36
|
+
dropdownRef = props.dropdownRef;
|
|
37
|
+
var innerMaxTagPlaceholder = function innerMaxTagPlaceholder(omittedValues) {
|
|
38
|
+
return "+ ".concat(omittedValues.length === displayValues.length ? omittedValues.length - 1 : omittedValues.length);
|
|
39
|
+
};
|
|
38
40
|
var _useState = useState(0),
|
|
39
41
|
_useState2 = _slicedToArray(_useState, 2),
|
|
40
42
|
showItemIndex = _useState2[0],
|
|
@@ -45,6 +47,7 @@ export default function MultipleSelector(props) {
|
|
|
45
47
|
onToggleOpen(!open);
|
|
46
48
|
};
|
|
47
49
|
return /*#__PURE__*/React.createElement("span", {
|
|
50
|
+
className: "beta-ald-select-custom-tag-render-wrapper",
|
|
48
51
|
onMouseDown: onMouseDown,
|
|
49
52
|
key: value
|
|
50
53
|
}, tagRender === null || tagRender === void 0 ? void 0 : tagRender({
|
|
@@ -93,8 +96,8 @@ export default function MultipleSelector(props) {
|
|
|
93
96
|
if (displayValues.length === 1) {
|
|
94
97
|
return null;
|
|
95
98
|
}
|
|
96
|
-
var content = typeof maxTagPlaceholder === 'function' ? maxTagPlaceholder(omittedValues.length === displayValues.length ? omittedValues.slice(1, omittedValues.length) : omittedValues) :
|
|
97
|
-
return typeof
|
|
99
|
+
var content = typeof maxTagPlaceholder === 'function' ? maxTagPlaceholder(omittedValues.length === displayValues.length ? omittedValues.slice(1, omittedValues.length) : omittedValues) : innerMaxTagPlaceholder(omittedValues.length === displayValues.length ? omittedValues.slice(1, omittedValues.length) : omittedValues);
|
|
100
|
+
return typeof maxTagPlaceholder === 'function' ? content : defaultRenderSelector({
|
|
98
101
|
title: content
|
|
99
102
|
}, content, false);
|
|
100
103
|
};
|
|
@@ -125,6 +128,9 @@ export default function MultipleSelector(props) {
|
|
|
125
128
|
prefixCls: overflowPrefixCls,
|
|
126
129
|
data: displayValues,
|
|
127
130
|
renderItem: renderItem,
|
|
131
|
+
className: classNames({
|
|
132
|
+
'beta-ald-select-selector-overflow-hidden': showItemIndex === -1 && displayValues.length === 1
|
|
133
|
+
}),
|
|
128
134
|
renderRest: renderRest,
|
|
129
135
|
suffix: null,
|
|
130
136
|
itemKey: itemKey,
|
|
@@ -133,7 +139,8 @@ export default function MultipleSelector(props) {
|
|
|
133
139
|
}), showResponsiveSelectedSection && /*#__PURE__*/React.createElement(MultipleResponsiveSelectedSection, {
|
|
134
140
|
displayValues: displayValues,
|
|
135
141
|
renderItem: renderItem,
|
|
136
|
-
onToggleOpen: onToggleOpen
|
|
142
|
+
onToggleOpen: onToggleOpen,
|
|
143
|
+
dropdownRef: dropdownRef
|
|
137
144
|
}));
|
|
138
145
|
}
|
|
139
146
|
return /*#__PURE__*/React.createElement(ScrollArea, {
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { DisplayValueType, ISelectProps, LabelInValueType } from '../interface';
|
|
2
|
-
import React from 'react';
|
|
2
|
+
import React, { RefObject } from 'react';
|
|
3
|
+
import { RefTriggerProps } from '../SelectTrigger';
|
|
3
4
|
export interface SelectorProps extends ISelectProps {
|
|
4
5
|
displayValues: LabelInValueType[];
|
|
5
6
|
onRemove: (value: DisplayValueType) => void;
|
|
6
7
|
onToggleOpen: (open?: boolean) => void;
|
|
7
8
|
showResponsiveSelectedSection: boolean;
|
|
9
|
+
dropdownRef: RefObject<RefTriggerProps>;
|
|
8
10
|
}
|
|
9
11
|
export default function Selector(props: SelectorProps): React.JSX.Element;
|
|
@@ -9,10 +9,12 @@ export default function Selector(props) {
|
|
|
9
9
|
displayValues = props.displayValues,
|
|
10
10
|
onRemove = props.onRemove,
|
|
11
11
|
onToggleOpen = props.onToggleOpen,
|
|
12
|
-
showResponsiveSelectedSection = props.showResponsiveSelectedSection
|
|
12
|
+
showResponsiveSelectedSection = props.showResponsiveSelectedSection,
|
|
13
|
+
dropdownRef = props.dropdownRef;
|
|
13
14
|
if (isMultiple(mode)) {
|
|
14
15
|
return /*#__PURE__*/React.createElement(MultipleSelector, _extends({}, props, {
|
|
15
16
|
onRemove: onRemove,
|
|
17
|
+
dropdownRef: dropdownRef,
|
|
16
18
|
onToggleOpen: onToggleOpen,
|
|
17
19
|
showResponsiveSelectedSection: showResponsiveSelectedSection
|
|
18
20
|
}));
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { SelectMenuProps } from '../interface';
|
|
3
3
|
export default function PopupContent(props: {
|
|
4
4
|
content: React.ReactNode;
|
|
5
5
|
notFoundContent: React.ReactNode;
|
|
6
6
|
dropdownRender?: (menu: React.ReactNode) => React.ReactNode;
|
|
7
|
-
menuProps?:
|
|
7
|
+
menuProps?: SelectMenuProps;
|
|
8
8
|
}): React.JSX.Element;
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export default function useDisplayMenu(menu: MenuProps, filterOptions?: (inputValue: string, option: DefaultOptionType) => boolean, innerSearchValue?: string): MenuProps;
|
|
1
|
+
import { DefaultOptionType, SelectMenuProps } from '../interface';
|
|
2
|
+
export default function useDisplayMenu(menu: SelectMenuProps, filterOptions?: (inputValue: string, option: DefaultOptionType) => boolean, innerSearchValue?: string): SelectMenuProps;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { DefaultOptionType, DraftValueType, RawValueType, SelectItemType, SelectMenuItemType, SelectMenuProps } from '../interface';
|
|
3
3
|
export declare function isRawValue(value: DraftValueType): value is RawValueType;
|
|
4
4
|
/**
|
|
5
5
|
* Parse `children` to `options` if `options` is not provided.
|
|
6
6
|
* Then flatten the `options`.
|
|
7
7
|
*/
|
|
8
|
-
export default function useOptions<OptionType extends DefaultOptionType>(menu?:
|
|
9
|
-
menu:
|
|
10
|
-
keyMenuItems: Map<string,
|
|
8
|
+
export default function useOptions<OptionType extends DefaultOptionType>(menu?: SelectMenuProps, options?: OptionType[], value?: DraftValueType, optionLabelProp?: string): {
|
|
9
|
+
menu: SelectMenuProps;
|
|
10
|
+
keyMenuItems: Map<string, SelectItemType>;
|
|
11
|
+
labelMenuItems: Map<React.ReactNode, SelectMenuItemType>;
|
|
11
12
|
};
|
|
@@ -14,7 +14,7 @@ export function isRawValue(value) {
|
|
|
14
14
|
* Parse `children` to `options` if `options` is not provided.
|
|
15
15
|
* Then flatten the `options`.
|
|
16
16
|
*/
|
|
17
|
-
export default function useOptions(menu, options, value) {
|
|
17
|
+
export default function useOptions(menu, options, value, optionLabelProp) {
|
|
18
18
|
return React.useMemo(function () {
|
|
19
19
|
var selectedKeys = [];
|
|
20
20
|
if (value) {
|
|
@@ -35,8 +35,7 @@ export default function useOptions(menu, options, value) {
|
|
|
35
35
|
selectedKeys: selectedKeys
|
|
36
36
|
}) : convertOptionsToMenu(options || [], selectedKeys);
|
|
37
37
|
var keyMenuItems = new Map();
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
var labelMenuItems = new Map();
|
|
40
39
|
function dig(menuItems) {
|
|
41
40
|
// for loop to speed up collection speed
|
|
42
41
|
for (var i = 0; i < menuItems.length; i += 1) {
|
|
@@ -49,15 +48,17 @@ export default function useOptions(menu, options, value) {
|
|
|
49
48
|
continue;
|
|
50
49
|
} else {
|
|
51
50
|
keyMenuItems.set(menuItem.key, menuItem);
|
|
52
|
-
|
|
51
|
+
if (optionLabelProp) {
|
|
52
|
+
labelMenuItems.set(menuItem[optionLabelProp], menuItem);
|
|
53
|
+
}
|
|
53
54
|
}
|
|
54
55
|
}
|
|
55
56
|
}
|
|
56
|
-
|
|
57
57
|
dig(mergedMenu.items || []);
|
|
58
58
|
return {
|
|
59
59
|
menu: mergedMenu,
|
|
60
|
-
keyMenuItems: keyMenuItems
|
|
60
|
+
keyMenuItems: keyMenuItems,
|
|
61
|
+
labelMenuItems: labelMenuItems
|
|
61
62
|
};
|
|
62
|
-
}, [
|
|
63
|
+
}, [value, menu, options, optionLabelProp]);
|
|
63
64
|
}
|
package/dist/AldSelect/index.js
CHANGED
|
@@ -34,7 +34,8 @@ export default /*#__PURE__*/forwardRef(function AldSelect(props, ref) {
|
|
|
34
34
|
onDeselect = props.onDeselect,
|
|
35
35
|
labelInValue = props.labelInValue,
|
|
36
36
|
filterOption = props.filterOption,
|
|
37
|
-
searchValue = props.searchValue
|
|
37
|
+
searchValue = props.searchValue,
|
|
38
|
+
optionLabelProp = props.optionLabelProp;
|
|
38
39
|
|
|
39
40
|
// =========================== Values ===========================
|
|
40
41
|
var _useMergedState = useMergedState(defaultValue, {
|
|
@@ -67,14 +68,20 @@ export default /*#__PURE__*/forwardRef(function AldSelect(props, ref) {
|
|
|
67
68
|
if (isRawValue(val)) {
|
|
68
69
|
rawValue = val;
|
|
69
70
|
} else {
|
|
71
|
+
var _ref;
|
|
70
72
|
rawLabel = val.label;
|
|
71
|
-
|
|
73
|
+
// @ts-ignore val.key是为了兼容存在key的情况
|
|
74
|
+
rawValue = (_ref = val.value) !== null && _ref !== void 0 ? _ref : val.key;
|
|
72
75
|
}
|
|
73
76
|
var menuItem = keyMenuItems.get(rawValue.toString());
|
|
74
77
|
if (menuItem) {
|
|
75
78
|
// Fill missing props
|
|
76
79
|
if (rawLabel === undefined) {
|
|
77
|
-
|
|
80
|
+
if (optionLabelProp) {
|
|
81
|
+
rawLabel = menuItem[optionLabelProp] || menuItem.label;
|
|
82
|
+
} else {
|
|
83
|
+
rawLabel = menuItem.label;
|
|
84
|
+
}
|
|
78
85
|
}
|
|
79
86
|
rawDisabled = menuItem.disabled;
|
|
80
87
|
}
|
|
@@ -84,7 +91,7 @@ export default /*#__PURE__*/forwardRef(function AldSelect(props, ref) {
|
|
|
84
91
|
disabled: rawDisabled
|
|
85
92
|
};
|
|
86
93
|
});
|
|
87
|
-
}, [keyMenuItems]);
|
|
94
|
+
}, [keyMenuItems, optionLabelProp]);
|
|
88
95
|
|
|
89
96
|
// Merged value with LabelValueType
|
|
90
97
|
var rawLabeledValues = React.useMemo(function () {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { PlacementType } from '../Dropdown';
|
|
3
|
-
import { MenuProps } from '../Menu';
|
|
3
|
+
import { ItemType, MenuDividerType, MenuHeaderType, MenuProps, SubMenuType } from '../Menu';
|
|
4
4
|
import { CustomTagProps, Mode } from './BaseSelect';
|
|
5
5
|
type ArrayElementType<T> = T extends (infer E)[] ? E : T;
|
|
6
6
|
export interface ISelectProps<ValueType = any, OptionType extends BaseOptionType = DefaultOptionType> {
|
|
@@ -24,13 +24,13 @@ export interface ISelectProps<ValueType = any, OptionType extends BaseOptionType
|
|
|
24
24
|
placement?: PlacementType;
|
|
25
25
|
labelInValue?: boolean;
|
|
26
26
|
options?: OptionType[];
|
|
27
|
-
menu?:
|
|
27
|
+
menu?: SelectMenuProps;
|
|
28
28
|
value?: ValueType | null;
|
|
29
29
|
defaultValue?: ValueType | null;
|
|
30
30
|
onChange?: (value: ValueType, option: OptionType | OptionType[]) => void;
|
|
31
|
-
placeholder?:
|
|
31
|
+
placeholder?: React.ReactNode;
|
|
32
32
|
onClear?: () => void;
|
|
33
|
-
dropdownRender?: (menu: React.
|
|
33
|
+
dropdownRender?: (menu: React.ReactElement) => React.ReactElement;
|
|
34
34
|
dropdownStyle?: React.CSSProperties;
|
|
35
35
|
overlayStyle?: React.CSSProperties;
|
|
36
36
|
style?: React.CSSProperties;
|
|
@@ -38,7 +38,7 @@ export interface ISelectProps<ValueType = any, OptionType extends BaseOptionType
|
|
|
38
38
|
onOpenChange?: (open: boolean) => void;
|
|
39
39
|
getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;
|
|
40
40
|
onInputKeyDown?: (event: React.KeyboardEvent<HTMLInputElement>) => void;
|
|
41
|
-
popupMatchSelectWidth?: boolean;
|
|
41
|
+
popupMatchSelectWidth?: boolean | number;
|
|
42
42
|
onSelect?: SelectHandler<ArrayElementType<ValueType>, OptionType>;
|
|
43
43
|
onDeselect?: SelectHandler<ArrayElementType<ValueType>, OptionType>;
|
|
44
44
|
notFoundContent?: React.ReactNode;
|
|
@@ -46,6 +46,7 @@ export interface ISelectProps<ValueType = any, OptionType extends BaseOptionType
|
|
|
46
46
|
tagRender?: (props: CustomTagProps, isPreview?: boolean) => React.ReactNode;
|
|
47
47
|
maxTagPlaceholder?: React.ReactNode | ((omittedValues: DisplayValueType[]) => React.ReactNode);
|
|
48
48
|
onClick?: (e: React.MouseEvent<HTMLDivElement>) => void;
|
|
49
|
+
optionLabelProp?: string;
|
|
49
50
|
}
|
|
50
51
|
export interface BaseOptionType {
|
|
51
52
|
disabled?: boolean;
|
|
@@ -89,4 +90,11 @@ export interface DefaultOptionType extends BaseOptionType {
|
|
|
89
90
|
value?: string | number | null;
|
|
90
91
|
children?: Omit<DefaultOptionType, 'children'>[];
|
|
91
92
|
}
|
|
93
|
+
export interface SelectItemType extends ItemType {
|
|
94
|
+
[key: string]: any;
|
|
95
|
+
}
|
|
96
|
+
export type SelectMenuItemType = SelectItemType | MenuDividerType | SubMenuType | MenuHeaderType;
|
|
97
|
+
export interface SelectMenuProps extends Omit<MenuProps, 'items'> {
|
|
98
|
+
items: SelectMenuItemType[];
|
|
99
|
+
}
|
|
92
100
|
export {};
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
.beta-ald-select-selector:not(.beta-ald-select-selector-multiple-default) {
|
|
49
|
-
min-width:
|
|
49
|
+
min-width: 10px;
|
|
50
50
|
overflow: hidden;
|
|
51
51
|
white-space: nowrap;
|
|
52
52
|
text-overflow: ellipsis;
|
|
@@ -55,17 +55,19 @@
|
|
|
55
55
|
.beta-ald-select-selector-multiple-responsive {
|
|
56
56
|
display: flex;
|
|
57
57
|
align-items: center;
|
|
58
|
-
line-height: 0;
|
|
58
|
+
// line-height: 0;
|
|
59
59
|
gap: 4px;
|
|
60
60
|
|
|
61
61
|
.beta-ald-select-selector-overflow {
|
|
62
|
-
width: 100%;
|
|
63
|
-
flex-grow: 1;
|
|
64
|
-
flex-shrink: 1;
|
|
62
|
+
max-width: 100%;
|
|
65
63
|
display: flex;
|
|
66
64
|
gap: 4px;
|
|
65
|
+
flex: auto;
|
|
67
66
|
|
|
68
67
|
.beta-ald-select-selector-overflow-item {
|
|
68
|
+
display: flex;
|
|
69
|
+
align-items: center;
|
|
70
|
+
|
|
69
71
|
.ald-tag-content {
|
|
70
72
|
display: flex;
|
|
71
73
|
align-items: center;
|
|
@@ -74,9 +76,18 @@
|
|
|
74
76
|
text-overflow: ellipsis;
|
|
75
77
|
white-space: nowrap;
|
|
76
78
|
}
|
|
79
|
+
|
|
80
|
+
.beta-ald-select-custom-tag-render-wrapper {
|
|
81
|
+
display: flex;
|
|
82
|
+
align-items: center;
|
|
83
|
+
}
|
|
77
84
|
}
|
|
78
85
|
}
|
|
79
86
|
|
|
87
|
+
.beta-ald-select-selector-overflow-hidden {
|
|
88
|
+
display: none;
|
|
89
|
+
}
|
|
90
|
+
|
|
80
91
|
.beta-ald-select-selector-overflow-item-first {
|
|
81
92
|
display: flex;
|
|
82
93
|
min-width: 32px;
|
|
@@ -84,6 +95,23 @@
|
|
|
84
95
|
overflow: hidden;
|
|
85
96
|
text-overflow: ellipsis;
|
|
86
97
|
white-space: nowrap;
|
|
98
|
+
|
|
99
|
+
> div,
|
|
100
|
+
> span {
|
|
101
|
+
min-width: 0;
|
|
102
|
+
flex: 1;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.beta-ald-select-custom-tag-render-wrapper {
|
|
106
|
+
display: flex;
|
|
107
|
+
align-items: center;
|
|
108
|
+
|
|
109
|
+
> div,
|
|
110
|
+
> span {
|
|
111
|
+
min-width: 0;
|
|
112
|
+
flex: 1;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
87
115
|
}
|
|
88
116
|
|
|
89
117
|
.beta-ald-select-selector-multiple-responsive-selected-section {
|
|
@@ -98,6 +126,7 @@
|
|
|
98
126
|
border-width: 1px;
|
|
99
127
|
border-style: solid;
|
|
100
128
|
background-color: #fff;
|
|
129
|
+
z-index: 1;
|
|
101
130
|
}
|
|
102
131
|
}
|
|
103
132
|
|
|
@@ -124,7 +153,7 @@
|
|
|
124
153
|
}
|
|
125
154
|
|
|
126
155
|
.beta-ald-select-popup-container.ald-dropdown-overlay {
|
|
127
|
-
min-width:
|
|
156
|
+
min-width: 0;
|
|
128
157
|
|
|
129
158
|
.beta-ald-select-popup {
|
|
130
159
|
width: 100%;
|
|
@@ -137,6 +166,7 @@
|
|
|
137
166
|
.ald-menu {
|
|
138
167
|
.szh-menu {
|
|
139
168
|
border-radius: 0;
|
|
169
|
+
min-width: 0;
|
|
140
170
|
}
|
|
141
171
|
}
|
|
142
172
|
}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import {
|
|
3
|
-
import { DefaultOptionType } from '../interface';
|
|
2
|
+
import { DefaultOptionType, SelectMenuProps } from '../interface';
|
|
4
3
|
export declare function toArray<T>(value: T | T[]): T[];
|
|
5
4
|
export declare const isClient: false | HTMLElement;
|
|
6
5
|
/** Is client side and not jsdom */
|
|
7
6
|
export declare const isBrowserClient: false | HTMLElement;
|
|
8
|
-
export declare function convertOptionsToMenu(options: DefaultOptionType[], selectedKeys: React.Key[]):
|
|
7
|
+
export declare function convertOptionsToMenu(options: DefaultOptionType[], selectedKeys: React.Key[]): SelectMenuProps;
|
|
@@ -1,3 +1,9 @@
|
|
|
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 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; }
|
|
3
|
+
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; }
|
|
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; }
|
|
5
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
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); }
|
|
1
7
|
export function toArray(value) {
|
|
2
8
|
if (Array.isArray(value)) {
|
|
3
9
|
return value;
|
|
@@ -12,10 +18,15 @@ export function convertOptionsToMenu(options, selectedKeys) {
|
|
|
12
18
|
return {
|
|
13
19
|
items: options.map(function (option) {
|
|
14
20
|
var _option$value;
|
|
15
|
-
return {
|
|
21
|
+
return _objectSpread(_objectSpread({}, option), {}, {
|
|
16
22
|
label: option.label,
|
|
17
|
-
key: ((_option$value = option.value) === null || _option$value === void 0 ? void 0 : _option$value.toString()) || ''
|
|
18
|
-
|
|
23
|
+
key: ((_option$value = option.value) === null || _option$value === void 0 ? void 0 : _option$value.toString()) || '',
|
|
24
|
+
disabled: option.disabled,
|
|
25
|
+
onClick: option.onClick,
|
|
26
|
+
className: option.className,
|
|
27
|
+
danger: option.danger,
|
|
28
|
+
icon: option.icon
|
|
29
|
+
});
|
|
19
30
|
}),
|
|
20
31
|
selectedKeys: selectedKeys
|
|
21
32
|
};
|
package/dist/Dropdown/index.d.ts
CHANGED
package/dist/Dropdown/index.js
CHANGED
|
@@ -75,7 +75,7 @@ export default function Dropdown(props) {
|
|
|
75
75
|
var rects = _ref.rects,
|
|
76
76
|
elements = _ref.elements;
|
|
77
77
|
Object.assign(elements.floating.style, {
|
|
78
|
-
width: "".concat(rects.reference.width, "px")
|
|
78
|
+
width: typeof popupMatchTriggerWidth === 'number' ? "".concat(popupMatchTriggerWidth, "px") : "".concat(rects.reference.width, "px")
|
|
79
79
|
});
|
|
80
80
|
}
|
|
81
81
|
}) : undefined],
|
|
@@ -13,7 +13,7 @@ import DragLightLine from "../../../Icon/components/DragLightLine";
|
|
|
13
13
|
import PlusIcon from "../../../Icon/components/SignLightLine";
|
|
14
14
|
import TrashLightLine from "../../../Icon/components/TrashLightLine";
|
|
15
15
|
import IconButton from "../../../IconButton";
|
|
16
|
-
import
|
|
16
|
+
import AldSelect from "../../../AldSelect";
|
|
17
17
|
import TextLink from "../../../TextLink";
|
|
18
18
|
import { LocaleContext, getTranslator } from "../../../locale/default";
|
|
19
19
|
import { ELogicType, ENodeType } from "../../type";
|
|
@@ -260,10 +260,11 @@ export default function LogicItem(_ref) {
|
|
|
260
260
|
size: 16,
|
|
261
261
|
color: "#374151",
|
|
262
262
|
className: "ald-logic-tree-node-drag-icon"
|
|
263
|
-
})), /*#__PURE__*/React.createElement(
|
|
263
|
+
})), /*#__PURE__*/React.createElement(AldSelect, {
|
|
264
264
|
options: logicOptions,
|
|
265
265
|
className: "ald-logic-tree-select-relation",
|
|
266
266
|
size: "small",
|
|
267
|
+
popupMatchSelectWidth: false,
|
|
267
268
|
value: _logicType,
|
|
268
269
|
onChange: onChangeRelation,
|
|
269
270
|
disabled: nodes.length <= 1
|