@aloudata/aloudata-design 1.9.17 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/dist/Checkbox/style/index.less +35 -9
  2. package/dist/ConfigProvider/getUserList.d.ts +13 -1
  3. package/dist/ConfigProvider/getUserList.js +5 -0
  4. package/dist/Icon/components/DragLine.d.ts +11 -0
  5. package/dist/Icon/components/DragLine.js +35 -0
  6. package/dist/Icon/index.d.ts +1 -0
  7. package/dist/Icon/index.js +1 -0
  8. package/dist/Icon/svg/drag-line.svg +5 -0
  9. package/dist/MemberPicker/components/MemberSelection.d.ts +1 -1
  10. package/dist/MemberPicker/components/MemberSelection.js +8 -3
  11. package/dist/MemberPicker/components/MultipleOption.d.ts +5 -2
  12. package/dist/MemberPicker/components/MultipleOption.js +20 -5
  13. package/dist/MemberPicker/components/NickLabel.d.ts +3 -3
  14. package/dist/MemberPicker/components/NickLabel.js +6 -6
  15. package/dist/MemberPicker/components/Panel.d.ts +7 -4
  16. package/dist/MemberPicker/components/Panel.js +70 -20
  17. package/dist/MemberPicker/components/PanelWrapper.d.ts +14 -0
  18. package/dist/MemberPicker/components/PanelWrapper.js +126 -0
  19. package/dist/MemberPicker/components/SelectedMemberTags.d.ts +3 -2
  20. package/dist/MemberPicker/components/SelectedMemberTags.js +8 -5
  21. package/dist/MemberPicker/components/SelectorFooter.js +1 -1
  22. package/dist/MemberPicker/components/SingleOption.d.ts +3 -2
  23. package/dist/MemberPicker/components/SingleOption.js +7 -4
  24. package/dist/MemberPicker/components/UserGroupSelection.d.ts +14 -0
  25. package/dist/MemberPicker/components/UserGroupSelection.js +130 -0
  26. package/dist/MemberPicker/index.d.ts +2 -0
  27. package/dist/MemberPicker/index.js +28 -17
  28. package/dist/MemberPicker/interface.d.ts +11 -5
  29. package/dist/MemberPicker/interface.js +6 -1
  30. package/dist/MemberPicker/style/index.less +18 -3
  31. package/dist/MemberPicker/utils/getUsersWithUserId.d.ts +4 -0
  32. package/dist/MemberPicker/utils/getUsersWithUserId.js +23 -2
  33. package/dist/MemberPicker/utils/index.d.ts +6 -0
  34. package/dist/MemberPicker/utils/index.js +16 -0
  35. package/dist/Radio/style/index.less +1 -1
  36. package/dist/ScrollArea/index.d.ts +1 -0
  37. package/dist/ScrollArea/index.js +6 -3
  38. package/dist/Table/components/Cell.d.ts +7 -0
  39. package/dist/Table/components/Cell.js +20 -0
  40. package/dist/Table/components/Header.d.ts +6 -0
  41. package/dist/Table/components/Header.js +19 -0
  42. package/dist/{AldTable → Table}/helper.d.ts +9 -2
  43. package/dist/Table/helper.js +121 -0
  44. package/dist/Table/hooks/useScroll.d.ts +26 -0
  45. package/dist/Table/hooks/useScroll.js +57 -0
  46. package/dist/Table/index.d.ts +3 -1
  47. package/dist/Table/index.js +176 -1
  48. package/dist/Table/style/index.less +106 -203
  49. package/dist/{AldTable → Table}/types.d.ts +5 -4
  50. package/dist/Tree/DirectoryTree.d.ts +20 -0
  51. package/dist/Tree/DirectoryTree.js +175 -0
  52. package/dist/Tree/Tree.d.ts +136 -0
  53. package/dist/Tree/Tree.js +130 -0
  54. package/dist/Tree/demo/basic/index.js +3 -2
  55. package/dist/Tree/demo/drag/index.d.ts +3 -0
  56. package/dist/Tree/demo/drag/index.js +52 -0
  57. package/dist/Tree/index.d.ts +19 -13
  58. package/dist/Tree/index.js +7 -17
  59. package/dist/Tree/style/checkbox.less +226 -0
  60. package/dist/Tree/style/directory.less +68 -0
  61. package/dist/Tree/style/index.less +68 -29
  62. package/dist/Tree/style/mixin.less +333 -0
  63. package/dist/Tree/style/reset.less +11 -0
  64. package/dist/Tree/style/rtl.less +68 -0
  65. package/dist/Tree/style/var.less +42 -0
  66. package/dist/Tree/utils/dictUtil.d.ts +9 -0
  67. package/dist/Tree/utils/dictUtil.js +74 -0
  68. package/dist/Tree/utils/dropIndicator.d.ts +9 -0
  69. package/dist/Tree/utils/dropIndicator.js +35 -0
  70. package/dist/Tree/utils/iconUtil.d.ts +5 -0
  71. package/dist/Tree/utils/iconUtil.js +63 -0
  72. package/dist/_utils/motion.d.ts +8 -0
  73. package/dist/_utils/motion.js +52 -0
  74. package/dist/_utils/reactNode.d.ts +8 -0
  75. package/dist/_utils/reactNode.js +15 -0
  76. package/dist/_utils/type.d.ts +9 -0
  77. package/dist/_utils/type.js +20 -0
  78. package/dist/index.d.ts +11 -13
  79. package/dist/index.js +6 -7
  80. package/dist/style/color/bezierEasing.less +110 -0
  81. package/dist/style/color/colorPalette.less +84 -0
  82. package/dist/style/color/colors.less +162 -0
  83. package/dist/style/color/tinyColor.less +1184 -0
  84. package/dist/style/core/index.less +2 -0
  85. package/dist/style/core/motion/fade.less +34 -0
  86. package/dist/style/core/motion/move.less +129 -0
  87. package/dist/style/core/motion/other.less +48 -0
  88. package/dist/style/core/motion/slide.less +131 -0
  89. package/dist/style/core/motion/zoom.less +179 -0
  90. package/dist/style/core/motion.less +22 -0
  91. package/dist/style/index.less +2 -0
  92. package/dist/style/mixins/index.less +1 -0
  93. package/dist/style/mixins/motion.less +33 -0
  94. package/dist/style/themes/default/default.less +24 -0
  95. package/dist/style/themes/default/index.less +1 -0
  96. package/package.json +2 -2
  97. package/dist/AldTable/helper.js +0 -109
  98. package/dist/AldTable/index.d.ts +0 -4
  99. package/dist/AldTable/index.js +0 -151
  100. package/dist/AldTable/style/index.d.ts +0 -2
  101. package/dist/AldTable/style/index.js +0 -2
  102. package/dist/AldTable/style/index.less +0 -136
  103. package/dist/Table/Table.d.ts +0 -6
  104. package/dist/Table/Table.js +0 -360
  105. package/dist/Table/components/Empty/index.d.ts +0 -3
  106. package/dist/Table/components/Empty/index.js +0 -14
  107. package/dist/Table/components/Loading/index.d.ts +0 -3
  108. package/dist/Table/components/Loading/index.js +0 -12
  109. package/dist/Table/components/TableBodyRowList/index.d.ts +0 -13
  110. package/dist/Table/components/TableBodyRowList/index.js +0 -75
  111. package/dist/Table/components/TableHead/index.d.ts +0 -23
  112. package/dist/Table/components/TableHead/index.js +0 -229
  113. package/dist/Table/constant.d.ts +0 -0
  114. package/dist/Table/constant.js +0 -0
  115. package/dist/Table/hooks/useFrame.d.ts +0 -7
  116. package/dist/Table/hooks/useFrame.js +0 -75
  117. package/dist/Table/interface.d.ts +0 -42
  118. package/dist/Table/interface.js +0 -1
  119. package/dist/Table/react-table-config.d.ts +0 -122
  120. package/dist/Table/style/variable.less +0 -4
  121. package/dist/Table/utils.d.ts +0 -15
  122. package/dist/Table/utils.js +0 -122
  123. /package/dist/{AldTable → Table}/types.js +0 -0
@@ -0,0 +1,136 @@
1
+ import type { BasicDataNode, TreeProps as RcTreeProps } from 'rc-tree';
2
+ import RcTree from 'rc-tree';
3
+ import type { DataNode, Key } from 'rc-tree/lib/interface';
4
+ import * as React from 'react';
5
+ export type SwitcherIcon = React.ReactNode | ((props: AldTreeNodeProps) => React.ReactNode);
6
+ export type TreeLeafIcon = React.ReactNode | ((props: AldTreeNodeProps) => React.ReactNode);
7
+ export interface AldTreeNodeAttribute {
8
+ eventKey: string;
9
+ prefixCls: string;
10
+ className: string;
11
+ expanded: boolean;
12
+ selected: boolean;
13
+ checked: boolean;
14
+ halfChecked: boolean;
15
+ children: React.ReactNode;
16
+ title: React.ReactNode;
17
+ pos: string;
18
+ dragOver: boolean;
19
+ dragOverGapTop: boolean;
20
+ dragOverGapBottom: boolean;
21
+ isLeaf: boolean;
22
+ selectable: boolean;
23
+ disabled: boolean;
24
+ disableCheckbox: boolean;
25
+ }
26
+ export interface AldTreeNodeProps {
27
+ className?: string;
28
+ checkable?: boolean;
29
+ disabled?: boolean;
30
+ disableCheckbox?: boolean;
31
+ title?: string | React.ReactNode;
32
+ key?: Key;
33
+ eventKey?: string;
34
+ isLeaf?: boolean;
35
+ checked?: boolean;
36
+ expanded?: boolean;
37
+ loading?: boolean;
38
+ selected?: boolean;
39
+ selectable?: boolean;
40
+ icon?: ((treeNode: AldTreeNodeAttribute) => React.ReactNode) | React.ReactNode;
41
+ children?: React.ReactNode;
42
+ [customProp: string]: any;
43
+ }
44
+ export type AldTreeNode = React.Component<AldTreeNodeProps, object>;
45
+ export interface AldTreeNodeBaseEvent {
46
+ node: AldTreeNode;
47
+ nativeEvent: MouseEvent;
48
+ }
49
+ export interface AldTreeNodeCheckedEvent extends AldTreeNodeBaseEvent {
50
+ event: 'check';
51
+ checked?: boolean;
52
+ checkedNodes?: AldTreeNode[];
53
+ }
54
+ export interface AldTreeNodeSelectedEvent extends AldTreeNodeBaseEvent {
55
+ event: 'select';
56
+ selected?: boolean;
57
+ selectedNodes?: DataNode[];
58
+ }
59
+ export interface AldTreeNodeExpandedEvent extends AldTreeNodeBaseEvent {
60
+ expanded?: boolean;
61
+ }
62
+ export interface AldTreeNodeMouseEvent {
63
+ node: AldTreeNode;
64
+ event: React.DragEvent<HTMLElement>;
65
+ }
66
+ export interface AldTreeNodeDragEnterEvent extends AldTreeNodeMouseEvent {
67
+ expandedKeys: Key[];
68
+ }
69
+ export interface AldTreeNodeAttribute {
70
+ node: AldTreeNode;
71
+ dragNode: AldTreeNode;
72
+ dragNodesKeys: Key[];
73
+ dropPosition: number;
74
+ dropToGap?: boolean;
75
+ event: React.MouseEvent<HTMLElement>;
76
+ }
77
+ export type TreeNodeNormal = DataNode;
78
+ type DraggableFn = (node: DataNode) => boolean;
79
+ interface DraggableConfig {
80
+ icon?: React.ReactNode | false;
81
+ nodeDraggable?: DraggableFn;
82
+ }
83
+ export interface TreeProps<T extends BasicDataNode = DataNode> extends Omit<RcTreeProps<T>, 'prefixCls' | 'showLine' | 'direction' | 'draggable' | 'icon' | 'switcherIcon'> {
84
+ showLine?: boolean | {
85
+ showLeafIcon: boolean | TreeLeafIcon;
86
+ };
87
+ className?: string;
88
+ /** 是否支持多选 */
89
+ multiple?: boolean;
90
+ /** 是否自动展开父节点 */
91
+ autoExpandParent?: boolean;
92
+ /** Checkable状态下节点选择完全受控(父子节点选中状态不再关联) */
93
+ checkStrictly?: boolean;
94
+ /** 是否支持选中 */
95
+ checkable?: boolean;
96
+ /** 是否禁用树 */
97
+ disabled?: boolean;
98
+ /** 默认展开所有树节点 */
99
+ defaultExpandAll?: boolean;
100
+ /** 默认展开对应树节点 */
101
+ defaultExpandParent?: boolean;
102
+ /** 默认展开指定的树节点 */
103
+ defaultExpandedKeys?: Key[];
104
+ /** (受控)展开指定的树节点 */
105
+ expandedKeys?: Key[];
106
+ /** (受控)选中复选框的树节点 */
107
+ checkedKeys?: Key[] | {
108
+ checked: Key[];
109
+ halfChecked: Key[];
110
+ };
111
+ /** 默认选中复选框的树节点 */
112
+ defaultCheckedKeys?: Key[];
113
+ /** (受控)设置选中的树节点 */
114
+ selectedKeys?: Key[];
115
+ /** 默认选中的树节点 */
116
+ defaultSelectedKeys?: Key[];
117
+ selectable?: boolean;
118
+ /** 点击树节点触发 */
119
+ filterAldTreeNode?: (node: AldTreeNode) => boolean;
120
+ loadedKeys?: Key[];
121
+ /** 设置节点可拖拽(IE>8) */
122
+ draggable?: DraggableFn | boolean | DraggableConfig;
123
+ style?: React.CSSProperties;
124
+ showIcon?: boolean;
125
+ icon?: ((nodeProps: AldTreeNodeAttribute) => React.ReactNode) | React.ReactNode | RcTreeProps<T>['icon'];
126
+ switcherIcon?: SwitcherIcon | RcTreeProps<T>['switcherIcon'];
127
+ prefixCls?: string;
128
+ children?: React.ReactNode;
129
+ blockNode?: boolean;
130
+ size?: 'large' | 'small';
131
+ titleRender?: (node: T) => React.ReactNode;
132
+ showTabLeader?: boolean;
133
+ handlerRender?: (node: T) => React.ReactNode;
134
+ }
135
+ declare const Tree: React.ForwardRefExoticComponent<TreeProps<DataNode> & React.RefAttributes<RcTree<DataNode>>>;
136
+ export default Tree;
@@ -0,0 +1,130 @@
1
+ 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
+ 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); }
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; }
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; }
5
+ 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; }
6
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7
+ 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); }
8
+ import classNames from 'classnames';
9
+ import { noop } from 'lodash';
10
+ import RcTree from 'rc-tree';
11
+ import * as React from 'react';
12
+ import { ConfigContext } from "../ConfigProvider";
13
+ import { ChevronDownLine, DragLine } from "../Icon";
14
+ import collapseMotion from "../_utils/motion";
15
+ import theme from "../style/themes/default/themeColor.module.less";
16
+ import dropIndicatorRender from "./utils/dropIndicator";
17
+ import renderSwitcherIcon from "./utils/iconUtil";
18
+ var TREE_SWITCH_LARGE_ICON_SIZE = 20;
19
+ var TREE_SWITCH_CION_SIZE = 16;
20
+
21
+ // [Legacy] Compatible for v3
22
+
23
+ var Tree = /*#__PURE__*/React.forwardRef(function (props, ref) {
24
+ var _classNames;
25
+ var _React$useContext = React.useContext(ConfigContext),
26
+ getPrefixCls = _React$useContext.getPrefixCls,
27
+ direction = _React$useContext.direction,
28
+ virtual = _React$useContext.virtual;
29
+ var size = props.size || 'small';
30
+ var className = props.className,
31
+ _props$showIcon = props.showIcon,
32
+ showIcon = _props$showIcon === void 0 ? false : _props$showIcon,
33
+ showLine = props.showLine,
34
+ _props$blockNode = props.blockNode,
35
+ blockNode = _props$blockNode === void 0 ? false : _props$blockNode,
36
+ children = props.children,
37
+ _props$checkable = props.checkable,
38
+ checkable = _props$checkable === void 0 ? false : _props$checkable,
39
+ _props$selectable = props.selectable,
40
+ selectable = _props$selectable === void 0 ? true : _props$selectable,
41
+ draggable = props.draggable,
42
+ titleRender = props.titleRender,
43
+ showTabLeader = props.showTabLeader,
44
+ _props$handlerRender = props.handlerRender,
45
+ handlerRender = _props$handlerRender === void 0 ? noop : _props$handlerRender,
46
+ _props$motion = props.motion,
47
+ motion = _props$motion === void 0 ? _objectSpread(_objectSpread({}, collapseMotion), {}, {
48
+ motionAppear: false
49
+ }) : _props$motion;
50
+ var prefixCls = getPrefixCls('tree', 'ald-tree');
51
+ var customTitleRender = React.useCallback(function (node) {
52
+ return /*#__PURE__*/React.createElement(React.Fragment, null, titleRender ? titleRender(node) : node.title, showTabLeader && /*#__PURE__*/React.createElement("div", {
53
+ className: "ald-tree-tab-leader"
54
+ }), handlerRender && handlerRender(node));
55
+ }, [titleRender, showTabLeader, handlerRender]);
56
+ var newProps = _objectSpread(_objectSpread({}, props), {}, {
57
+ checkable: checkable,
58
+ selectable: selectable,
59
+ showIcon: showIcon,
60
+ motion: motion,
61
+ blockNode: blockNode,
62
+ showLine: Boolean(showLine),
63
+ dropIndicatorRender: dropIndicatorRender,
64
+ titleRender: customTitleRender
65
+ });
66
+ var draggableConfig = React.useMemo(function () {
67
+ if (!draggable) {
68
+ return false;
69
+ }
70
+ var newIcon = /*#__PURE__*/React.createElement(DragLine, {
71
+ size: TREE_SWITCH_CION_SIZE,
72
+ color: theme.NL50
73
+ });
74
+ var mergedDraggable = {
75
+ icon: newIcon
76
+ };
77
+ switch (_typeof(draggable)) {
78
+ case 'function':
79
+ mergedDraggable.nodeDraggable = draggable;
80
+ break;
81
+ case 'object':
82
+ mergedDraggable = _objectSpread(_objectSpread({}, draggable), {}, {
83
+ icon: newIcon
84
+ });
85
+ break;
86
+ default:
87
+ break;
88
+ // Do nothing
89
+ }
90
+
91
+ return mergedDraggable;
92
+ }, [draggable]);
93
+ var renderIndent = function renderIndent(nodeProps) {
94
+ var _keyEntities;
95
+ var eventKey = nodeProps.eventKey,
96
+ keyEntities = nodeProps.context.keyEntities,
97
+ isLeaf = nodeProps.isLeaf;
98
+ var level = ((_keyEntities = keyEntities[eventKey]) === null || _keyEntities === void 0 ? void 0 : _keyEntities.level) || 0;
99
+ var indentWidth = isLeaf ? TREE_SWITCH_CION_SIZE : 0;
100
+ indentWidth += level * (TREE_SWITCH_CION_SIZE / 2);
101
+ return /*#__PURE__*/React.createElement("span", {
102
+ style: {
103
+ width: indentWidth
104
+ }
105
+ });
106
+ };
107
+ return /*#__PURE__*/React.createElement(RcTree, _extends({
108
+ itemHeight: 20,
109
+ ref: ref,
110
+ virtual: virtual
111
+ }, newProps, {
112
+ prefixCls: prefixCls,
113
+ className: classNames((_classNames = {}, _defineProperty(_classNames, "".concat(prefixCls, "-icon-hide"), !showIcon), _defineProperty(_classNames, "".concat(prefixCls, "-block-node"), blockNode), _defineProperty(_classNames, "".concat(prefixCls, "-unselectable"), !selectable), _defineProperty(_classNames, "".concat(prefixCls, "-large"), size === 'large'), _defineProperty(_classNames, "".concat(prefixCls, "-rtl"), direction === 'rtl'), _classNames), className),
114
+ direction: direction,
115
+ checkable: checkable ? /*#__PURE__*/React.createElement("span", {
116
+ className: "".concat(prefixCls, "-checkbox-inner")
117
+ }) : checkable,
118
+ selectable: selectable
119
+ // @ts-ignore
120
+ ,
121
+ switcherIcon: function switcherIcon(nodeProps) {
122
+ return /*#__PURE__*/React.createElement(React.Fragment, null, renderIndent(nodeProps), renderSwitcherIcon(prefixCls, /*#__PURE__*/React.createElement(ChevronDownLine, {
123
+ size: size === 'small' ? TREE_SWITCH_CION_SIZE : TREE_SWITCH_LARGE_ICON_SIZE,
124
+ color: theme.NL50
125
+ }, "\u5C55\u5F00"), showLine, nodeProps));
126
+ },
127
+ draggable: draggableConfig
128
+ }), children);
129
+ });
130
+ export default Tree;
@@ -3,7 +3,7 @@ import React from 'react';
3
3
  export default (function () {
4
4
  return /*#__PURE__*/React.createElement(App, null, /*#__PURE__*/React.createElement(Tree, {
5
5
  treeData: [{
6
- title: 'parent 1',
6
+ title: 'Parent 1',
7
7
  key: '0-0',
8
8
  children: [{
9
9
  title: 'parent 1-0',
@@ -26,7 +26,8 @@ export default (function () {
26
26
  color: '#1890ff'
27
27
  }
28
28
  }, "sss"),
29
- key: '0-0-1-0'
29
+ key: '0-0-1-0',
30
+ disabled: true
30
31
  }]
31
32
  }]
32
33
  }]
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const _default: () => React.JSX.Element;
3
+ export default _default;
@@ -0,0 +1,52 @@
1
+ import { App, Tree } from "../../..";
2
+ import React from 'react';
3
+ export default (function () {
4
+ return /*#__PURE__*/React.createElement(App, null, /*#__PURE__*/React.createElement(Tree, {
5
+ draggable: true,
6
+ checkable: true,
7
+ showTabLeader: true,
8
+ onSelect: function onSelect(node, s) {
9
+ console.log('onSelect', node, s);
10
+ },
11
+ handlerRender: function handlerRender(node) {
12
+ return /*#__PURE__*/React.createElement("div", null, node.title, "handler");
13
+ },
14
+ titleRender: function titleRender(node) {
15
+ return /*#__PURE__*/React.createElement("span", null, node.title);
16
+ },
17
+ treeData: [{
18
+ title: 'Parent 1',
19
+ key: '0-0',
20
+ checkable: true,
21
+ children: [{
22
+ title: 'parent 1-0',
23
+ key: '0-0-0',
24
+ selectable: true,
25
+ children: [{
26
+ title: 'leaf',
27
+ selectable: true,
28
+ key: '0-0-0-0',
29
+ isLeaf: true
30
+ }, {
31
+ title: 'leaf',
32
+ key: '0-0-0-1',
33
+ isLeaf: true
34
+ }]
35
+ }, {
36
+ title: 'parent 1-1',
37
+ key: '0-0-1',
38
+ disabled: true,
39
+ selectable: true,
40
+ children: [{
41
+ title: /*#__PURE__*/React.createElement("span", {
42
+ style: {
43
+ color: '#1890ff'
44
+ }
45
+ }, "sss"),
46
+ key: '0-0-1-0',
47
+ disabled: true
48
+ }]
49
+ }]
50
+ }]
51
+ }));
52
+ });
@@ -1,13 +1,19 @@
1
- import { DataNode } from 'antd/lib/tree';
2
- import { AntTreeNode, AntTreeNodeCheckedEvent, AntTreeNodeExpandedEvent, AntTreeNodeMouseEvent, AntTreeNodeProps, AntTreeNodeSelectedEvent, AntdTreeNodeAttribute, TreeProps as AntdTreeProps } from 'antd/lib/tree/Tree';
3
- import RcTree from 'rc-tree';
4
- import { BasicDataNode } from 'rc-tree/lib/interface';
5
- import React, { ForwardedRef } from 'react';
6
- export type { DataNode, EventDataNode } from 'antd/lib/tree';
7
- export type { ExpandAction as DirectoryTreeExpandAction, DirectoryTreeProps, } from 'antd/lib/tree/DirectoryTree';
8
- export type { AntTreeNode, AntTreeNodeMouseEvent, AntTreeNodeExpandedEvent, AntTreeNodeCheckedEvent, AntTreeNodeSelectedEvent, AntdTreeNodeAttribute, AntTreeNodeProps, };
9
- export type TreeProps<T extends BasicDataNode = DataNode> = Omit<AntdTreeProps<T>, 'switcherIcon'>;
10
- declare const _default: <T extends BasicDataNode = DataNode>(props: TreeProps<T> & {
11
- ref?: React.ForwardedRef<RcTree<DataNode>> | undefined;
12
- }) => React.ReactElement;
13
- export default _default;
1
+ /// <reference types="react" />
2
+ import type RcTree from 'rc-tree';
3
+ import type { BasicDataNode } from 'rc-tree';
4
+ import { TreeNode } from 'rc-tree';
5
+ import type { DataNode } from 'rc-tree/lib/interface';
6
+ import DirectoryTree from './DirectoryTree';
7
+ import type { TreeProps } from './Tree';
8
+ export type { EventDataNode } from 'rc-tree/lib/interface';
9
+ export type { ExpandAction as DirectoryTreeExpandAction, DirectoryTreeProps, } from './DirectoryTree';
10
+ export type { AldTreeNode, AldTreeNodeAttribute, AldTreeNodeCheckedEvent, AldTreeNodeExpandedEvent, AldTreeNodeMouseEvent, AldTreeNodeProps, AldTreeNodeSelectedEvent, TreeProps, } from './Tree';
11
+ export type { DataNode };
12
+ type CompoundedComponent = (<T extends BasicDataNode | DataNode = DataNode>(props: React.PropsWithChildren<TreeProps<T>> & {
13
+ ref?: React.Ref<RcTree>;
14
+ }) => React.ReactElement) & {
15
+ TreeNode: typeof TreeNode;
16
+ DirectoryTree: typeof DirectoryTree;
17
+ };
18
+ declare const Tree: CompoundedComponent;
19
+ export default Tree;
@@ -1,17 +1,7 @@
1
- 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
- function _objectDestructuringEmpty(obj) { if (obj == null) throw new TypeError("Cannot destructure " + obj); }
3
- import { Tree as AntdTree } from 'antd';
4
- import React from 'react';
5
- import { ChevronDownLine } from "../Icon";
6
- import theme from "../style/themes/default/themeColor.module.less";
7
- function Tree(props, ref) {
8
- var restProps = Object.assign({}, (_objectDestructuringEmpty(props), props));
9
- return /*#__PURE__*/React.createElement(AntdTree, _extends({}, restProps, {
10
- ref: ref,
11
- switcherIcon: /*#__PURE__*/React.createElement(ChevronDownLine, {
12
- size: 14,
13
- color: theme.NL40
14
- }, "\u5C55\u5F00")
15
- }));
16
- }
17
- export default /*#__PURE__*/React.forwardRef(Tree);
1
+ import { TreeNode } from 'rc-tree';
2
+ import DirectoryTree from "./DirectoryTree";
3
+ import TreePure from "./Tree";
4
+ var Tree = TreePure;
5
+ Tree.DirectoryTree = DirectoryTree;
6
+ Tree.TreeNode = TreeNode;
7
+ export default Tree;
@@ -0,0 +1,226 @@
1
+ .aldCheckboxFn(@checkbox-prefix-cls: ~'ald-tree-checkbox') {
2
+ @checkbox-inner-prefix-cls: ~'@{checkbox-prefix-cls}-inner';
3
+ // 一般状态
4
+ .@{checkbox-prefix-cls} {
5
+ .reset-component();
6
+
7
+ position: relative;
8
+ line-height: 1;
9
+ white-space: nowrap;
10
+ outline: none;
11
+ cursor: pointer;
12
+
13
+ &-checked::after {
14
+ position: absolute;
15
+ top: 0;
16
+ left: 0;
17
+ width: 100%;
18
+ height: 100%;
19
+ border: 1px solid @checkbox-color;
20
+ border-radius: @checkbox-border-radius;
21
+ visibility: hidden;
22
+ animation: ald-checkbox-effect 0.36s ease-in-out;
23
+ animation-fill-mode: backwards;
24
+ content: '';
25
+ }
26
+
27
+ &:hover::after,
28
+ .@{checkbox-prefix-cls}-wrapper:hover &::after {
29
+ visibility: hidden;
30
+ }
31
+
32
+ &-inner {
33
+ position: relative;
34
+ top: 0;
35
+ left: 0;
36
+ display: block;
37
+ width: @checkbox-size;
38
+ height: @checkbox-size;
39
+ direction: ltr;
40
+ background-color: @checkbox-check-bg;
41
+ border: 1px solid #dbdbdb;
42
+ border-radius: @checkbox-border-radius;
43
+ border-collapse: separate;
44
+ transition: all 0.3s;
45
+ transform: scale(0.875);
46
+
47
+ &::after {
48
+ @check-width: (@checkbox-size / 14) * 5px;
49
+ @check-height: (@checkbox-size / 14) * 8px;
50
+
51
+ position: absolute;
52
+ top: 50%;
53
+ left: 21.5%;
54
+ display: table;
55
+ width: @check-width;
56
+ height: @check-height;
57
+ border: 2px solid @checkbox-check-color;
58
+ border-top: 0;
59
+ border-left: 0;
60
+ transform: rotate(45deg) scale(0) translate(-50%, -50%);
61
+ opacity: 0;
62
+ transition: all 0.1s @ease-in-back, opacity 0.1s;
63
+ content: ' ';
64
+ }
65
+ }
66
+
67
+ &-input {
68
+ position: absolute;
69
+ inset: 0;
70
+ z-index: 1;
71
+ width: 100%;
72
+ height: 100%;
73
+ cursor: pointer;
74
+ opacity: 0;
75
+ }
76
+ }
77
+
78
+ // 选中状态
79
+ .@{checkbox-prefix-cls}-checked .@{checkbox-inner-prefix-cls}::after {
80
+ position: absolute;
81
+ display: table;
82
+ border: 2px solid @checkbox-color;
83
+ border-top: 0;
84
+ border-left: 0;
85
+ transform: rotate(45deg) scale(1) translate(-50%, -50%);
86
+ opacity: 1;
87
+ transition: all 0.2s @ease-out-back 0.1s;
88
+ content: ' ';
89
+ }
90
+
91
+ .@{checkbox-prefix-cls}-checked {
92
+ .@{checkbox-inner-prefix-cls} {
93
+ background-color: #f8f8f8;
94
+ }
95
+ }
96
+
97
+ .@{checkbox-prefix-cls}-disabled {
98
+ cursor: initial;
99
+
100
+ &.@{checkbox-prefix-cls}-checked {
101
+ .@{checkbox-inner-prefix-cls}::after {
102
+ border-color: @disabled-color;
103
+ animation-name: none;
104
+ }
105
+ }
106
+
107
+ .@{checkbox-prefix-cls}-input {
108
+ cursor: initial;
109
+ pointer-events: none;
110
+ }
111
+
112
+ .@{checkbox-inner-prefix-cls} {
113
+ background-color: @input-disabled-bg;
114
+ // border-color: @border-color-base !important;
115
+
116
+ &::after {
117
+ border-color: @input-disabled-bg;
118
+ border-collapse: separate;
119
+ animation-name: none;
120
+ }
121
+ }
122
+
123
+ & + span {
124
+ color: @disabled-color;
125
+ cursor: initial;
126
+ }
127
+
128
+ // Not show highlight border of checkbox when disabled
129
+ &:hover::after,
130
+ .@{checkbox-prefix-cls}-wrapper:hover &::after {
131
+ visibility: hidden;
132
+ }
133
+ }
134
+
135
+ .@{checkbox-prefix-cls}-wrapper {
136
+ .reset-component();
137
+
138
+ display: inline-flex;
139
+ align-items: baseline;
140
+ line-height: unset;
141
+ cursor: pointer;
142
+
143
+ &::after {
144
+ display: inline-block;
145
+ width: 0;
146
+ overflow: hidden;
147
+ content: '\a0';
148
+ }
149
+
150
+ &.@{checkbox-prefix-cls}-wrapper-disabled {
151
+ cursor: initial;
152
+ }
153
+
154
+ & + & {
155
+ margin-left: 8px;
156
+ }
157
+
158
+ &&-in-form-item {
159
+ input[type='checkbox'] {
160
+ width: 14px;
161
+ height: 14px;
162
+ }
163
+ }
164
+ }
165
+
166
+ .@{checkbox-prefix-cls} + span {
167
+ padding-right: 8px;
168
+ padding-left: 8px;
169
+ }
170
+
171
+ .@{checkbox-prefix-cls}-group {
172
+ .reset-component();
173
+
174
+ display: inline-block;
175
+
176
+ &-item {
177
+ margin-right: @checkbox-group-item-margin-right;
178
+
179
+ &:last-child {
180
+ margin-right: 0;
181
+ }
182
+ }
183
+
184
+ &-item + &-item {
185
+ margin-left: 0;
186
+ }
187
+ }
188
+
189
+ // 半选状态
190
+ .@{checkbox-prefix-cls}-indeterminate {
191
+ .@{checkbox-inner-prefix-cls} {
192
+ background-color: @checkbox-check-bg;
193
+ }
194
+ .@{checkbox-inner-prefix-cls}::after {
195
+ @indeterminate-width: @checkbox-size - 8px;
196
+ @indeterminate-height: @checkbox-size - 14px;
197
+
198
+ top: 50%;
199
+ left: 50%;
200
+ width: @indeterminate-width;
201
+ height: @indeterminate-height;
202
+ background-color: @checkbox-color;
203
+ border: 0;
204
+ transform: translate(-50%, -50%) scale(1);
205
+ opacity: 1;
206
+ content: ' ';
207
+ }
208
+
209
+ &.@{checkbox-prefix-cls}-disabled .@{checkbox-inner-prefix-cls}::after {
210
+ background-color: @disabled-color;
211
+ border-color: @disabled-color;
212
+ }
213
+ }
214
+ }
215
+
216
+ @keyframes ald-checkbox-effect {
217
+ 0% {
218
+ transform: scale(1);
219
+ opacity: 0.5;
220
+ }
221
+
222
+ 100% {
223
+ transform: scale(1.6);
224
+ opacity: 0;
225
+ }
226
+ }