@kdcloudjs/kdesign 1.7.35 → 1.7.37
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/kdesign-complete.less +185 -26
- package/dist/kdesign.css +228 -24
- package/dist/kdesign.css.map +1 -1
- package/dist/kdesign.js +565 -119
- package/dist/kdesign.js.map +1 -1
- package/dist/kdesign.min.css +3 -3
- package/dist/kdesign.min.js +5 -5
- package/dist/kdesign.min.js.map +1 -1
- package/es/city-picker/city-picker.js +1 -1
- package/es/clipboard/clipboard.d.ts +21 -0
- package/es/clipboard/clipboard.js +106 -0
- package/es/clipboard/index.d.ts +4 -0
- package/es/clipboard/index.js +3 -0
- package/es/clipboard/style/css.js +2 -0
- package/es/clipboard/style/index.css +190 -0
- package/es/clipboard/style/index.d.ts +2 -0
- package/es/clipboard/style/index.js +2 -0
- package/es/clipboard/style/index.less +32 -0
- package/es/clipboard/style/mixin.less +39 -0
- package/es/clipboard/style/token.less +52 -0
- package/es/clipboard/util.d.ts +13 -0
- package/es/clipboard/util.js +197 -0
- package/es/config-provider/compDefaultProps.d.ts +5 -0
- package/es/config-provider/compDefaultProps.js +5 -0
- package/es/index.d.ts +1 -0
- package/es/index.js +2 -1
- package/es/message/content.js +1 -4
- package/es/select/interface.d.ts +1 -0
- package/es/select/select.js +3 -8
- package/es/select/style/index.css +7 -4
- package/es/select/style/index.less +12 -4
- package/es/select/style/token.less +1 -0
- package/es/tree/style/index.css +22 -15
- package/es/tree/style/index.less +33 -18
- package/es/tree/tree.d.ts +1 -0
- package/es/tree/tree.js +29 -13
- package/es/tree/treeHooks.d.ts +2 -2
- package/es/tree/treeHooks.js +11 -6
- package/es/tree/treeNode.d.ts +2 -3
- package/es/tree/treeNode.js +6 -5
- package/es/tree/utils/treeUtils.d.ts +2 -2
- package/es/tree/utils/treeUtils.js +5 -6
- package/es/tree-select/interface.d.ts +1 -0
- package/es/tree-select/style/index.css +7 -4
- package/es/tree-select/style/index.less +12 -4
- package/es/tree-select/style/token.less +1 -0
- package/es/tree-select/tree-select.js +6 -2
- package/lib/city-picker/city-picker.js +1 -1
- package/lib/clipboard/clipboard.d.ts +21 -0
- package/lib/clipboard/clipboard.js +121 -0
- package/lib/clipboard/index.d.ts +4 -0
- package/lib/clipboard/index.js +11 -0
- package/lib/clipboard/style/css.js +4 -0
- package/lib/clipboard/style/index.css +190 -0
- package/lib/clipboard/style/index.d.ts +2 -0
- package/lib/clipboard/style/index.js +4 -0
- package/lib/clipboard/style/index.less +32 -0
- package/lib/clipboard/style/mixin.less +39 -0
- package/lib/clipboard/style/token.less +52 -0
- package/lib/clipboard/util.d.ts +13 -0
- package/lib/clipboard/util.js +204 -0
- package/lib/config-provider/compDefaultProps.d.ts +5 -0
- package/lib/config-provider/compDefaultProps.js +5 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +7 -0
- package/lib/message/content.js +1 -4
- package/lib/select/interface.d.ts +1 -0
- package/lib/select/select.js +3 -8
- package/lib/select/style/index.css +7 -4
- package/lib/select/style/index.less +12 -4
- package/lib/select/style/token.less +1 -0
- package/lib/style/components.less +1 -0
- package/lib/tree/style/index.css +22 -15
- package/lib/tree/style/index.less +33 -18
- package/lib/tree/tree.d.ts +1 -0
- package/lib/tree/tree.js +28 -12
- package/lib/tree/treeHooks.d.ts +2 -2
- package/lib/tree/treeHooks.js +10 -5
- package/lib/tree/treeNode.d.ts +2 -3
- package/lib/tree/treeNode.js +6 -5
- package/lib/tree/utils/treeUtils.d.ts +2 -2
- package/lib/tree/utils/treeUtils.js +5 -6
- package/lib/tree-select/interface.d.ts +1 -0
- package/lib/tree-select/style/index.css +7 -4
- package/lib/tree-select/style/index.less +12 -4
- package/lib/tree-select/style/token.less +1 -0
- package/lib/tree-select/tree-select.js +6 -2
- package/package.json +1 -1
package/es/tree/treeHooks.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { TreeNodeData, KeysDataType } from './tree';
|
|
1
|
+
import { TreeNodeData, KeysDataType, SearchStatus } from './tree';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
export declare const useViewportHeight: (height: number, listRef: React.RefObject<HTMLElement>) => number[];
|
|
4
4
|
export declare const useVisibleDataMemo: (virtual: boolean, filterData: TreeNodeData[], viewportHeight: number, estimatedItemSize: number, start: number) => TreeNodeData[][];
|
|
5
5
|
export declare const usePlantomHeightEffect: (plantomRef: React.RefObject<HTMLElement>, filterData: TreeNodeData[], estimatedItemSize: number) => void;
|
|
6
6
|
export declare const useChecked: (checkStrictly: boolean, checkedKeysProps: string[], defaultCheckedKeys: string[], _flattenAllData: any[], _maxLevel: number, checkable: boolean, keysData: KeysDataType) => readonly [string[], string[], React.Dispatch<React.SetStateAction<string[]>>, React.Dispatch<React.SetStateAction<string[]>>];
|
|
7
|
-
export declare const useExpand: (flattenAllData: any[], expandedKeysProps: string[], defaultExpandedKeys: string[], defaultExpandAll: boolean, defaultExpandRoot: boolean, defaultExpandParent: boolean, scrollKey: string, isInit: boolean, filterTreeNode: FunctionConstructor, isSearching: boolean, keysData: KeysDataType,
|
|
7
|
+
export declare const useExpand: (flattenAllData: any[], expandedKeysProps: string[], defaultExpandedKeys: string[], defaultExpandAll: boolean, defaultExpandRoot: boolean, defaultExpandParent: boolean, scrollKey: string, isInit: boolean, filterTreeNode: FunctionConstructor, isSearching: boolean, keysData: KeysDataType, searchStatus: SearchStatus) => readonly [string[], React.Dispatch<React.SetStateAction<string[]>>];
|
|
8
8
|
export declare const useScrollToKey: (scrollKey: string, index: number, estimatedItemSize: number, scrollRef: any, viewportHeight: number, treeNodePrefixCls: string) => void;
|
|
9
9
|
export declare const useSelect: (selectedKeysProps: string[], defaultSelectedKeys: string[]) => readonly [string[], React.Dispatch<React.SetStateAction<string[]>>];
|
package/es/tree/treeHooks.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime-corejs3/helpers/slicedToArray";
|
|
2
2
|
import _sliceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/slice";
|
|
3
3
|
import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
|
|
4
|
-
import React, { useEffect, useState } from 'react';
|
|
4
|
+
import React, { useEffect, useState, useRef } from 'react';
|
|
5
5
|
import { getInitCheckededKeys, getDataCheckededStateStrictly, getInitExpandedKeys, getPos, getAllParentKeys } from './utils/treeUtils';
|
|
6
6
|
export var useViewportHeight = function useViewportHeight(height, listRef) {
|
|
7
7
|
var _React$useState = React.useState(0),
|
|
@@ -59,22 +59,22 @@ export var useChecked = function useChecked(checkStrictly, checkedKeysProps, def
|
|
|
59
59
|
}, [nextHalfCheckedKeys]);
|
|
60
60
|
return [checkedKeys, halfCheckedKeys, setCheckedKeys, setHalfCheckedKeys];
|
|
61
61
|
};
|
|
62
|
-
export var useExpand = function useExpand(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, isInit, filterTreeNode, isSearching, keysData,
|
|
62
|
+
export var useExpand = function useExpand(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, isInit, filterTreeNode, isSearching, keysData, searchStatus) {
|
|
63
63
|
var expandScrollkeys = [];
|
|
64
64
|
if (scrollKey) {
|
|
65
65
|
var pos = getPos(flattenAllData, scrollKey);
|
|
66
66
|
expandScrollkeys = getAllParentKeys(flattenAllData, pos);
|
|
67
67
|
}
|
|
68
68
|
var initialExpandedKeys = React.useMemo(function () {
|
|
69
|
-
return getInitExpandedKeys(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, expandScrollkeys, filterTreeNode, isSearching, keysData,
|
|
70
|
-
}, [flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, filterTreeNode, isSearching, keysData,
|
|
69
|
+
return getInitExpandedKeys(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, expandScrollkeys, filterTreeNode, isSearching, keysData, isInit, searchStatus);
|
|
70
|
+
}, [flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, filterTreeNode, isSearching, keysData, isInit, searchStatus]);
|
|
71
71
|
var _React$useState7 = React.useState(initialExpandedKeys),
|
|
72
72
|
_React$useState8 = _slicedToArray(_React$useState7, 2),
|
|
73
73
|
expandedKeys = _React$useState8[0],
|
|
74
74
|
setExpandedKeys = _React$useState8[1];
|
|
75
75
|
React.useEffect(function () {
|
|
76
76
|
setExpandedKeys(initialExpandedKeys);
|
|
77
|
-
}, [flattenAllData, expandedKeysProps,
|
|
77
|
+
}, [flattenAllData, expandedKeysProps, defaultExpandAll, defaultExpandedKeys, defaultExpandRoot, defaultExpandParent, scrollKey, searchStatus]);
|
|
78
78
|
return [expandedKeys, setExpandedKeys];
|
|
79
79
|
};
|
|
80
80
|
export var useScrollToKey = function useScrollToKey(scrollKey, index, estimatedItemSize, scrollRef, viewportHeight, treeNodePrefixCls) {
|
|
@@ -115,8 +115,13 @@ export var useSelect = function useSelect(selectedKeysProps, defaultSelectedKeys
|
|
|
115
115
|
_useState2 = _slicedToArray(_useState, 2),
|
|
116
116
|
selectedKeys = _useState2[0],
|
|
117
117
|
setSelectedKeys = _useState2[1];
|
|
118
|
+
var mounting = useRef(true);
|
|
118
119
|
useEffect(function () {
|
|
119
|
-
|
|
120
|
+
if (mounting.current) {
|
|
121
|
+
mounting.current = false;
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
setSelectedKeys(selectedKeysProps);
|
|
120
125
|
}, [selectedKeysProps]);
|
|
121
126
|
return [selectedKeys, setSelectedKeys];
|
|
122
127
|
};
|
package/es/tree/treeNode.d.ts
CHANGED
|
@@ -10,9 +10,8 @@ export interface TreeNodeProps {
|
|
|
10
10
|
draggable?: boolean;
|
|
11
11
|
disableCheckbox?: boolean;
|
|
12
12
|
icon?: React.ReactNode | ((props: any) => React.ReactNode);
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
};
|
|
13
|
+
isActiveLine?: boolean;
|
|
14
|
+
activeLevel?: number;
|
|
16
15
|
showIcon?: boolean;
|
|
17
16
|
selected?: boolean;
|
|
18
17
|
style?: Map<string, string>;
|
package/es/tree/treeNode.js
CHANGED
|
@@ -41,7 +41,8 @@ var TreeNode = /*#__PURE__*/React.forwardRef(function (props) {
|
|
|
41
41
|
hasChildNode = TreeNodeProps.hasChildNode,
|
|
42
42
|
expand = TreeNodeProps.expand,
|
|
43
43
|
title = TreeNodeProps.title,
|
|
44
|
-
|
|
44
|
+
isActiveLine = TreeNodeProps.isActiveLine,
|
|
45
|
+
activeLevel = TreeNodeProps.activeLevel,
|
|
45
46
|
showIcon = TreeNodeProps.showIcon,
|
|
46
47
|
selected = TreeNodeProps.selected,
|
|
47
48
|
setDragNode = TreeNodeProps.setDragNode,
|
|
@@ -62,7 +63,7 @@ var TreeNode = /*#__PURE__*/React.forwardRef(function (props) {
|
|
|
62
63
|
onDragEnd = TreeNodeProps.onDragEnd,
|
|
63
64
|
onDrop = TreeNodeProps.onDrop,
|
|
64
65
|
onSelect = TreeNodeProps.onSelect,
|
|
65
|
-
others = __rest(TreeNodeProps, ["nodeKey", "prefixCls", "selectable", "checkable", "className", "icon", "switcherIcon", "disabled", "draggable", "pos", "checked", "level", "getDragNode", "hasChildNode", "expand", "title", "
|
|
66
|
+
others = __rest(TreeNodeProps, ["nodeKey", "prefixCls", "selectable", "checkable", "className", "icon", "switcherIcon", "disabled", "draggable", "pos", "checked", "level", "getDragNode", "hasChildNode", "expand", "title", "isActiveLine", "activeLevel", "showIcon", "selected", "setDragNode", "style", "indeterminate", "estimatedItemSize", "dragOver", "dropPosition", "expandOnClickNode", "onlyExpandOnClickIcon", "loading", "onExpand", "onCheck", "onDragStart", "onDragOver", "onDragLeave", "onDragEnter", "onDragEnd", "onDrop", "onSelect"]);
|
|
66
67
|
var nodeData = React.useMemo(function () {
|
|
67
68
|
return _extends({
|
|
68
69
|
selectable: selectable,
|
|
@@ -133,12 +134,11 @@ var TreeNode = /*#__PURE__*/React.forwardRef(function (props) {
|
|
|
133
134
|
return icon;
|
|
134
135
|
};
|
|
135
136
|
var indent = function indent() {
|
|
136
|
-
var _classNames;
|
|
137
137
|
var indentArr = [];
|
|
138
|
-
var className = classNames((_classNames = {}, _defineProperty(_classNames, "".concat(treeNodePrefixCls, "-indent"), true), _defineProperty(_classNames, "".concat(treeNodePrefixCls, "-indent-line"), !!showLine), _classNames));
|
|
139
138
|
for (var i = 0; i < level; i++) {
|
|
139
|
+
var _classNames;
|
|
140
140
|
indentArr.push( /*#__PURE__*/React.createElement("span", {
|
|
141
|
-
className:
|
|
141
|
+
className: classNames((_classNames = {}, _defineProperty(_classNames, "".concat(treeNodePrefixCls, "-indent"), true), _defineProperty(_classNames, "".concat(treeNodePrefixCls, "-indent-active"), !!isActiveLine && i === activeLevel), _classNames)),
|
|
142
142
|
key: i,
|
|
143
143
|
style: {
|
|
144
144
|
height: "".concat(estimatedItemSize)
|
|
@@ -244,6 +244,7 @@ var TreeNode = /*#__PURE__*/React.forwardRef(function (props) {
|
|
|
244
244
|
}, [expandOnClickNode, handleExpandIconClick, handleSelect, onlyExpandOnClickIcon]);
|
|
245
245
|
var handleDragStart = React.useCallback(function (e) {
|
|
246
246
|
if (!draggable) return;
|
|
247
|
+
e.target.classList.add("".concat(treeNodePrefixCls, "-dragging"));
|
|
247
248
|
setDragNode(nodeData);
|
|
248
249
|
onDragStart && onDragStart(e, props);
|
|
249
250
|
}, [draggable, setDragNode, nodeData, onDragStart, props]);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TreeNodeData, KeysDataType } from '../tree';
|
|
1
|
+
import { TreeNodeData, KeysDataType, SearchStatus } from '../tree';
|
|
2
2
|
/**
|
|
3
3
|
* 打平所有数组,并添加pos位置信息,
|
|
4
4
|
* 方便根据expandKeys等计算节点的expand,checkedKeys计算节点checked状态
|
|
@@ -60,6 +60,6 @@ export declare const getDataCheckededStateStrictly: (checkedKeys: string[]) => {
|
|
|
60
60
|
};
|
|
61
61
|
export declare const delKey: (prevKeys: string[], delKeys: string[]) => never[] & string[];
|
|
62
62
|
export declare const getAllNodeKeys: (data: any[]) => string[];
|
|
63
|
-
export declare const getInitExpandedKeys: (data: any[], expandedKeys: string[], defaultExpandedKeys: string[], defaultExpandAll: boolean, defaultExpandRoot: boolean, defaultExpandParent: boolean, expandScrollkeys: string[] | undefined, filterTreeNode: FunctionConstructor, isSearching: boolean, keysData: KeysDataType,
|
|
63
|
+
export declare const getInitExpandedKeys: (data: any[], expandedKeys: string[], defaultExpandedKeys: string[], defaultExpandAll: boolean, defaultExpandRoot: boolean, defaultExpandParent: boolean, expandScrollkeys: string[] | undefined, filterTreeNode: FunctionConstructor, isSearching: boolean, keysData: KeysDataType, isInit: boolean, searchStatus: SearchStatus) => string[];
|
|
64
64
|
export declare const getExpandedKeys: (expandedKeys: string[], expandScrollkeys?: string[]) => string[];
|
|
65
65
|
export declare const calcDropPosition: (event: React.MouseEvent, dropNode: HTMLElement) => 0 | 1 | -1;
|
|
@@ -583,8 +583,8 @@ export var getInitExpandedKeys = function getInitExpandedKeys(data, expandedKeys
|
|
|
583
583
|
var filterTreeNode = arguments.length > 7 ? arguments[7] : undefined;
|
|
584
584
|
var isSearching = arguments.length > 8 ? arguments[8] : undefined;
|
|
585
585
|
var keysData = arguments.length > 9 ? arguments[9] : undefined;
|
|
586
|
-
var
|
|
587
|
-
var
|
|
586
|
+
var isInit = arguments.length > 10 ? arguments[10] : undefined;
|
|
587
|
+
var searchStatus = arguments.length > 11 ? arguments[11] : undefined;
|
|
588
588
|
var keys = (expandedKeys === null || expandedKeys === void 0 ? void 0 : _concatInstanceProperty(expandedKeys).call(expandedKeys, expandScrollkeys)) || (defaultExpandedKeys === null || defaultExpandedKeys === void 0 ? void 0 : _concatInstanceProperty(defaultExpandedKeys).call(defaultExpandedKeys, expandScrollkeys)) || [];
|
|
589
589
|
if (isInit) {
|
|
590
590
|
if (defaultExpandAll) {
|
|
@@ -605,11 +605,10 @@ export var getInitExpandedKeys = function getInitExpandedKeys(data, expandedKeys
|
|
|
605
605
|
}
|
|
606
606
|
}
|
|
607
607
|
}
|
|
608
|
-
if (isSearching) {
|
|
609
|
-
|
|
610
|
-
keys = _concatInstanceProperty(_context6 = []).call(_context6, _toConsumableArray(searchExpandedKeys), _toConsumableArray(getAllFilterKeys(data, filterTreeNode, keysData).filterExpandKeys));
|
|
608
|
+
if (isSearching && searchStatus === 'SEARCH_START') {
|
|
609
|
+
keys = _toConsumableArray(getAllFilterKeys(data, filterTreeNode, keysData).filterExpandKeys);
|
|
611
610
|
}
|
|
612
|
-
return
|
|
611
|
+
return keys;
|
|
613
612
|
};
|
|
614
613
|
export var getExpandedKeys = function getExpandedKeys(expandedKeys) {
|
|
615
614
|
var expandScrollkeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
@@ -56,6 +56,7 @@ export interface ITreeSelectProps<T extends TreeSelectValue> extends AbstractSel
|
|
|
56
56
|
defaultValue?: T;
|
|
57
57
|
mode?: Mode;
|
|
58
58
|
autoFocus?: boolean;
|
|
59
|
+
status?: 'error';
|
|
59
60
|
onlyExpandOnClickIcon?: boolean;
|
|
60
61
|
onChange?: (value: T, treeNode: TreeNodeData) => void;
|
|
61
62
|
onSelect?: (value: T extends (infer I)[] ? I : T, { checked, node, event }: any) => void;
|
|
@@ -163,7 +163,7 @@
|
|
|
163
163
|
.kd-tree-select-icon-clear:hover {
|
|
164
164
|
color: var(--kd-c-tree-select-color-border-hover, var(--kd-g-color-theme, #5582f3));
|
|
165
165
|
}
|
|
166
|
-
.kd-tree-select-focused {
|
|
166
|
+
.kd-tree-select-focused:not(.kd-tree-select-error) {
|
|
167
167
|
border-color: var(--kd-c-tree-select-color-border-foucs, var(--kd-g-color-theme, #5582f3)) !important;
|
|
168
168
|
}
|
|
169
169
|
.kd-tree-select-placeholder {
|
|
@@ -181,7 +181,7 @@
|
|
|
181
181
|
.kd-tree-select-underline {
|
|
182
182
|
border-bottom: 1px solid var(--kd-c-tree-select-color-border, var(--kd-g-color-input, #999));
|
|
183
183
|
}
|
|
184
|
-
.kd-tree-select-underline:hover:not(.kd-tree-select-multiple-disabled):not(.kd-tree-select-single-disabled) {
|
|
184
|
+
.kd-tree-select-underline:hover:not(.kd-tree-select-multiple-disabled):not(.kd-tree-select-single-disabled):not( .kd-tree-select-error) {
|
|
185
185
|
border-bottom: 1px solid var(--kd-c-tree-select-color-border-hover, var(--kd-g-color-theme, #5582f3));
|
|
186
186
|
}
|
|
187
187
|
.kd-tree-select-bordered {
|
|
@@ -189,7 +189,7 @@
|
|
|
189
189
|
padding-left: var(--kd-c-tree-select-bordered-spacing-padding-left, 8px) !important;
|
|
190
190
|
border-radius: var(--kd-c-tree-select-bordered-radius-border, 2px);
|
|
191
191
|
}
|
|
192
|
-
.kd-tree-select-bordered:hover:not(.kd-tree-select-multiple-disabled):not(.kd-tree-select-single-disabled) {
|
|
192
|
+
.kd-tree-select-bordered:hover:not(.kd-tree-select-multiple-disabled):not(.kd-tree-select-single-disabled):not( .kd-tree-select-error) {
|
|
193
193
|
border: 1px solid var(--kd-c-tree-select-color-border-hover, var(--kd-g-color-theme, #5582f3));
|
|
194
194
|
}
|
|
195
195
|
.kd-tree-select-bordered .kd-tree-select-suffix {
|
|
@@ -312,7 +312,7 @@
|
|
|
312
312
|
white-space: nowrap;
|
|
313
313
|
text-overflow: ellipsis;
|
|
314
314
|
}
|
|
315
|
-
.kd-tree-select .kd-tree-select-single-focused {
|
|
315
|
+
.kd-tree-select .kd-tree-select-single-focused:not(.kd-tree-select-error) {
|
|
316
316
|
border-color: var(--kd-c-tree-select-color-border-foucs, var(--kd-g-color-theme, #5582f3)) !important;
|
|
317
317
|
}
|
|
318
318
|
.kd-tree-select .kd-tree-select-single-disabled {
|
|
@@ -495,6 +495,9 @@
|
|
|
495
495
|
color: var(--kd-c-tree-select-footer-color-text-selected, #0e5fd8);
|
|
496
496
|
padding: 0 2px;
|
|
497
497
|
}
|
|
498
|
+
.kd-tree-select-error:not(.kd-tree-select-single-disabled):not(.kd-tree-select-multiple-disabled) {
|
|
499
|
+
border-color: var(--kd-c-tree-select-color-error, var(--kd-g-color-error, #fb2323));
|
|
500
|
+
}
|
|
498
501
|
.kd-tree-select.topLeft.hidden,
|
|
499
502
|
.kd-tree-select.bottomLeft.hidden,
|
|
500
503
|
.kd-tree-select.topRight.hidden,
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
-
&-focused {
|
|
62
|
+
&-focused:not(.@{tree-select-prefix-cls}-error) {
|
|
63
63
|
.focusColor();
|
|
64
64
|
}
|
|
65
65
|
&-placeholder {
|
|
@@ -78,7 +78,9 @@
|
|
|
78
78
|
|
|
79
79
|
&-underline {
|
|
80
80
|
border-bottom: 1px solid @tree-select-g-color-border;
|
|
81
|
-
&:hover:not(.@{tree-select-prefix-cls}-multiple-disabled):not(.@{tree-select-prefix-cls}-single-disabled)
|
|
81
|
+
&:hover:not(.@{tree-select-prefix-cls}-multiple-disabled):not(.@{tree-select-prefix-cls}-single-disabled):not(
|
|
82
|
+
.@{tree-select-prefix-cls}-error
|
|
83
|
+
) {
|
|
82
84
|
border-bottom: 1px solid @tree-select-g-color-border-hover;
|
|
83
85
|
}
|
|
84
86
|
}
|
|
@@ -87,7 +89,9 @@
|
|
|
87
89
|
border: 1px solid @tree-select-border-g-color-border;
|
|
88
90
|
padding-left: @tree-select-bordered !important;
|
|
89
91
|
border-radius: @tree-select-border-radius-border;
|
|
90
|
-
&:hover:not(.@{tree-select-prefix-cls}-multiple-disabled):not(.@{tree-select-prefix-cls}-single-disabled)
|
|
92
|
+
&:hover:not(.@{tree-select-prefix-cls}-multiple-disabled):not(.@{tree-select-prefix-cls}-single-disabled):not(
|
|
93
|
+
.@{tree-select-prefix-cls}-error
|
|
94
|
+
) {
|
|
91
95
|
border: 1px solid @tree-select-g-color-border-hover;
|
|
92
96
|
}
|
|
93
97
|
|
|
@@ -206,7 +210,7 @@
|
|
|
206
210
|
.over();
|
|
207
211
|
}
|
|
208
212
|
}
|
|
209
|
-
&-focused {
|
|
213
|
+
&-focused:not(.@{tree-select-prefix-cls}-error) {
|
|
210
214
|
.focusColor();
|
|
211
215
|
}
|
|
212
216
|
&-disabled {
|
|
@@ -383,6 +387,10 @@
|
|
|
383
387
|
}
|
|
384
388
|
}
|
|
385
389
|
|
|
390
|
+
&-error:not(.@{tree-select-prefix-cls}-single-disabled):not(.@{tree-select-prefix-cls}-multiple-disabled) {
|
|
391
|
+
border-color: @tree-select-error-color;
|
|
392
|
+
}
|
|
393
|
+
|
|
386
394
|
&.topLeft.hidden,
|
|
387
395
|
&.bottomLeft.hidden,
|
|
388
396
|
&.topRight.hidden,
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
@tree-select-single-color-text: var(~'@{tree-select-custom-prefix}-single-color-text', @color-text-primary);
|
|
23
23
|
@tree-select-clear-color: var(~'@{tree-select-custom-prefix}-icon-clear-color-text', #d9d9d9);
|
|
24
24
|
@tree-select-clear-color-hover: var(~'@{tree-select-custom-prefix}-icon-clear-color-text-hover', #999);
|
|
25
|
+
@tree-select-error-color: var(~'@{tree-select-custom-prefix}-color-error', @color-error);
|
|
25
26
|
|
|
26
27
|
// font
|
|
27
28
|
@tree-select-list-font-size: var(~'@{tree-select-custom-prefix}-dropdown-font-size', 12px); // 下拉列表文字大小
|
|
@@ -98,7 +98,8 @@ var InternalTreeSelect = function InternalTreeSelect(props, ref) {
|
|
|
98
98
|
onCheck = treeSelectProps.onCheck,
|
|
99
99
|
dropdownRender = treeSelectProps.dropdownRender,
|
|
100
100
|
onlyExpandOnClickIcon = treeSelectProps.onlyExpandOnClickIcon,
|
|
101
|
-
listHeight = treeSelectProps.listHeight
|
|
101
|
+
listHeight = treeSelectProps.listHeight,
|
|
102
|
+
status = treeSelectProps.status;
|
|
102
103
|
var isMultiple = mode === 'multiple'; // 是否多选
|
|
103
104
|
var _useMergedState = useMergedState(isMultiple ? [] : undefined, {
|
|
104
105
|
value: value,
|
|
@@ -154,7 +155,7 @@ var InternalTreeSelect = function InternalTreeSelect(props, ref) {
|
|
|
154
155
|
// 下拉列表框样式
|
|
155
156
|
var dropDownCls = classNames(dropdownClassName, _defineProperty({}, "".concat(selectPrefixCls, "-dropdown"), true));
|
|
156
157
|
// 多选,单选公共样式
|
|
157
|
-
var commCls = classNames((_classNames4 = {}, _defineProperty(_classNames4, "".concat(selectPrefixCls, "-bordered"), borderType === 'bordered'), _defineProperty(_classNames4, "".concat(selectPrefixCls, "-underline"), borderType === 'underline'), _defineProperty(_classNames4, "".concat(selectPrefixCls, "-borderless"), borderType === 'none'), _defineProperty(_classNames4, _concatInstanceProperty(_context3 = "".concat(selectPrefixCls, "-size-")).call(_context3, size), size), _defineProperty(_classNames4, "".concat(selectPrefixCls, "-wrapper"), true), _classNames4));
|
|
158
|
+
var commCls = classNames((_classNames4 = {}, _defineProperty(_classNames4, "".concat(selectPrefixCls, "-bordered"), borderType === 'bordered'), _defineProperty(_classNames4, "".concat(selectPrefixCls, "-underline"), borderType === 'underline'), _defineProperty(_classNames4, "".concat(selectPrefixCls, "-borderless"), borderType === 'none'), _defineProperty(_classNames4, _concatInstanceProperty(_context3 = "".concat(selectPrefixCls, "-size-")).call(_context3, size), size), _defineProperty(_classNames4, "".concat(selectPrefixCls, "-wrapper"), true), _defineProperty(_classNames4, "".concat(selectPrefixCls, "-error"), status === 'error'), _classNames4));
|
|
158
159
|
useEffect(function () {
|
|
159
160
|
var arr = [];
|
|
160
161
|
if (isMultiple) {
|
|
@@ -353,6 +354,9 @@ var InternalTreeSelect = function InternalTreeSelect(props, ref) {
|
|
|
353
354
|
(_a = searchRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
354
355
|
}
|
|
355
356
|
}, [showSearch, autoFocus, disabled]);
|
|
357
|
+
useEffect(function () {
|
|
358
|
+
setSelectedKeys(initValue);
|
|
359
|
+
}, [initValue]);
|
|
356
360
|
// 渲染下拉列表框
|
|
357
361
|
var renderContent = function renderContent() {
|
|
358
362
|
var dropDownStyle = _extends({
|
|
@@ -201,7 +201,7 @@ var InternalSelect = function InternalSelect(props, ref) {
|
|
|
201
201
|
if (disabled) return null;
|
|
202
202
|
var suffixIcon = selectProps.suffixIcon;
|
|
203
203
|
var arrowIconCls = (0, _classnames.default)((_classNames4 = {}, (0, _defineProperty2.default)(_classNames4, "".concat(selectPrefixCls, "-icon-arrow"), true), (0, _defineProperty2.default)(_classNames4, "".concat(selectPrefixCls, "-icon-arrow-up"), optionShow), (0, _defineProperty2.default)(_classNames4, "".concat(selectPrefixCls, "-icon-arrow-down"), !optionShow), (0, _defineProperty2.default)(_classNames4, "".concat(selectPrefixCls, "-icon-arrow-focus"), optionShow), _classNames4));
|
|
204
|
-
var iconShow = allowClear && !disabled && (
|
|
204
|
+
var iconShow = allowClear && !disabled && (initValue !== null && initValue !== void 0 ? initValue : '') !== '';
|
|
205
205
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, iconShow && /*#__PURE__*/_react.default.createElement("span", {
|
|
206
206
|
onClick: handleReset,
|
|
207
207
|
onMouseDown: function onMouseDown(e) {
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare const ClipboardActions: ["copy", "cut"];
|
|
3
|
+
export declare type ClipboardAction = typeof ClipboardActions[number];
|
|
4
|
+
export declare const ClipboardSizes: ["large", "middle", "small"];
|
|
5
|
+
export declare type ClipboardSize = typeof ClipboardSizes[number];
|
|
6
|
+
export interface IClipboardProps {
|
|
7
|
+
action?: ClipboardAction;
|
|
8
|
+
content?: string;
|
|
9
|
+
children?: React.ReactNode;
|
|
10
|
+
className?: string;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
icon?: React.ReactNode | false;
|
|
13
|
+
prefixCls?: string;
|
|
14
|
+
size?: ClipboardSize;
|
|
15
|
+
style?: Record<string, unknown>;
|
|
16
|
+
target?: () => HTMLElement | string;
|
|
17
|
+
onError?: (error: Error) => void;
|
|
18
|
+
onSuccess?: (content: string) => void;
|
|
19
|
+
}
|
|
20
|
+
declare const Clipboard: React.ForwardRefExoticComponent<IClipboardProps & React.RefAttributes<unknown>>;
|
|
21
|
+
export default Clipboard;
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
|
|
4
|
+
var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
|
|
5
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
|
6
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.default = exports.ClipboardSizes = exports.ClipboardActions = void 0;
|
|
11
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
|
12
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
|
13
|
+
var _getOwnPropertySymbols = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols"));
|
|
14
|
+
var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
|
|
15
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
16
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
17
|
+
var _utils = require("../_utils");
|
|
18
|
+
var _devwarning = _interopRequireDefault(require("../_utils/devwarning"));
|
|
19
|
+
var _type = require("../_utils/type");
|
|
20
|
+
var _ConfigContext = _interopRequireDefault(require("../config-provider/ConfigContext"));
|
|
21
|
+
var _icon = _interopRequireDefault(require("../icon"));
|
|
22
|
+
var _util = require("./util");
|
|
23
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
24
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
25
|
+
var __rest = void 0 && (void 0).__rest || function (s, e) {
|
|
26
|
+
var t = {};
|
|
27
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
28
|
+
if (s != null && typeof _getOwnPropertySymbols.default === "function") for (var i = 0, p = (0, _getOwnPropertySymbols.default)(s); i < p.length; i++) {
|
|
29
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
30
|
+
}
|
|
31
|
+
return t;
|
|
32
|
+
};
|
|
33
|
+
var ClipboardActions = (0, _type.tuple)('copy', 'cut');
|
|
34
|
+
exports.ClipboardActions = ClipboardActions;
|
|
35
|
+
var ClipboardSizes = (0, _type.tuple)('large', 'middle', 'small');
|
|
36
|
+
exports.ClipboardSizes = ClipboardSizes;
|
|
37
|
+
var InternalClipboard = function InternalClipboard(props, ref) {
|
|
38
|
+
var _context, _classNames;
|
|
39
|
+
var _useContext = (0, _react.useContext)(_ConfigContext.default),
|
|
40
|
+
getPrefixCls = _useContext.getPrefixCls,
|
|
41
|
+
prefixCls = _useContext.prefixCls,
|
|
42
|
+
userDefaultProps = _useContext.compDefaultProps;
|
|
43
|
+
// 剪贴板参数,合并了系统默认参数、用户定义组件统一参数及组件传参
|
|
44
|
+
var clipboardProps = (0, _utils.getCompProps)('Clipboard', userDefaultProps, props);
|
|
45
|
+
var className = clipboardProps.className,
|
|
46
|
+
customPrefixcls = clipboardProps.prefixCls,
|
|
47
|
+
action = clipboardProps.action,
|
|
48
|
+
content = clipboardProps.content,
|
|
49
|
+
children = clipboardProps.children,
|
|
50
|
+
disabled = clipboardProps.disabled,
|
|
51
|
+
icon = clipboardProps.icon,
|
|
52
|
+
size = clipboardProps.size,
|
|
53
|
+
target = clipboardProps.target,
|
|
54
|
+
onError = clipboardProps.onError,
|
|
55
|
+
onSuccess = clipboardProps.onSuccess,
|
|
56
|
+
others = __rest(clipboardProps, ["className", "prefixCls", "action", "content", "children", "disabled", "icon", "size", "target", "onError", "onSuccess"]);
|
|
57
|
+
(0, _devwarning.default)(ClipboardActions.indexOf(action) === -1, 'clipboard', "cannot found clipboard action '".concat(action, "'"));
|
|
58
|
+
(0, _devwarning.default)(ClipboardSizes.indexOf(size) === -1, 'clipboard', "cannot found clipboard size '".concat(size, "'"));
|
|
59
|
+
// 剪贴板样式前缀
|
|
60
|
+
var clipboardPrefixCls = getPrefixCls(prefixCls, 'clipboard', customPrefixcls);
|
|
61
|
+
var clipboardClass = (0, _classnames.default)(clipboardPrefixCls, className, (_classNames = {}, (0, _defineProperty2.default)(_classNames, (0, _concat.default)(_context = "".concat(clipboardPrefixCls, "-size-")).call(_context, size), size), (0, _defineProperty2.default)(_classNames, "".concat(clipboardPrefixCls, "-icon-only"), !children && children !== 0 && icon !== null), _classNames));
|
|
62
|
+
// ref
|
|
63
|
+
var clipboardRef = ref || /*#__PURE__*/_react.default.createRef();
|
|
64
|
+
// 如果没有传 icon,则使用默认图标
|
|
65
|
+
// 如果 icon 传 null,则不使用图标
|
|
66
|
+
var iconNode = icon || (icon === undefined ? /*#__PURE__*/_react.default.createElement(_icon.default, {
|
|
67
|
+
type: "copy-code"
|
|
68
|
+
}) : null);
|
|
69
|
+
// 如果传的 children 为 string,则将 children 包装成块标签
|
|
70
|
+
var childrenNode = typeof children === 'string' ? /*#__PURE__*/_react.default.createElement("span", null, children) : children;
|
|
71
|
+
/**
|
|
72
|
+
* 剪贴板 click 事件处理
|
|
73
|
+
*/
|
|
74
|
+
var handleClick = (0, _react.useCallback)(function () {
|
|
75
|
+
if (disabled) {
|
|
76
|
+
// 禁用状态不触发点击事件
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
var selectedText;
|
|
80
|
+
try {
|
|
81
|
+
if (content) {
|
|
82
|
+
// 如果传了 content,则直接复制 content
|
|
83
|
+
selectedText = (0, _util.onClipboardCopy)(content);
|
|
84
|
+
} else {
|
|
85
|
+
var targetElement = typeof target === 'string' ? document.querySelector(target) : target();
|
|
86
|
+
if (!targetElement) {
|
|
87
|
+
// 没有获取到元素,抛出异常
|
|
88
|
+
throw new Error("target element '".concat(target, "' does not exist"));
|
|
89
|
+
} else {
|
|
90
|
+
if (action === 'copy' && targetElement.hasAttribute('disabled')) {
|
|
91
|
+
// 复制被置为 disabled 的元素,抛出异常
|
|
92
|
+
throw new Error("invalid \"target\" attribute of element '".concat(targetElement, "'. Please use \"readonly\" instead of \"disabled\" attribute"));
|
|
93
|
+
}
|
|
94
|
+
if (action === 'cut' && (targetElement.hasAttribute('readonly') || targetElement.hasAttribute('disabled'))) {
|
|
95
|
+
// 剪切被置为 readonly 或 disabled 的元素,抛出异常
|
|
96
|
+
throw new Error("invalid \"target\" attribute of element '".concat(targetElement, "'. You can't cut text from elements with \"readonly\" or \"disabled\" attributes"));
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// 对 targetElement 的值进行复制或剪切
|
|
100
|
+
selectedText = action === 'copy' ? (0, _util.onClipboardCopy)(targetElement) : (0, _util.onClipboardCut)(targetElement);
|
|
101
|
+
}
|
|
102
|
+
} catch (error) {
|
|
103
|
+
// 触发失败的回调
|
|
104
|
+
onError === null || onError === void 0 ? void 0 : onError(error);
|
|
105
|
+
// 退出处理器
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
// 触发成功的回调
|
|
109
|
+
onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(selectedText);
|
|
110
|
+
}, [action, content, disabled, onError, onSuccess, target]);
|
|
111
|
+
return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
|
|
112
|
+
className: clipboardClass,
|
|
113
|
+
disabled: disabled,
|
|
114
|
+
onClick: handleClick,
|
|
115
|
+
ref: clipboardRef
|
|
116
|
+
}, others), iconNode, childrenNode);
|
|
117
|
+
};
|
|
118
|
+
var Clipboard = /*#__PURE__*/_react.default.forwardRef(InternalClipboard);
|
|
119
|
+
Clipboard.displayName = 'Clipboard';
|
|
120
|
+
var _default = Clipboard;
|
|
121
|
+
exports.default = _default;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
declare const Clipboard: import("react").ForwardRefExoticComponent<import("./clipboard").IClipboardProps & import("react").RefAttributes<unknown>>;
|
|
3
|
+
export { ClipboardAction, IClipboardProps } from './clipboard';
|
|
4
|
+
export default Clipboard;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _clipboard = _interopRequireDefault(require("./clipboard"));
|
|
9
|
+
var Clipboard = _clipboard.default;
|
|
10
|
+
var _default = Clipboard;
|
|
11
|
+
exports.default = _default;
|