@sheinx/base 3.6.0-beta.18 → 3.6.0-beta.19

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 (125) hide show
  1. package/cjs/checkbox/checkbox.type.d.ts +4 -0
  2. package/cjs/checkbox/checkbox.type.d.ts.map +1 -1
  3. package/cjs/checkbox/simple-checkbox.d.ts.map +1 -1
  4. package/cjs/checkbox/simple-checkbox.js +2 -1
  5. package/cjs/empty/empty.d.ts.map +1 -1
  6. package/cjs/empty/empty.js +1 -0
  7. package/cjs/icons/config.d.ts +2 -0
  8. package/cjs/icons/config.d.ts.map +1 -1
  9. package/cjs/icons/config.js +3 -1
  10. package/cjs/icons/icons.d.ts +1 -0
  11. package/cjs/icons/icons.d.ts.map +1 -1
  12. package/cjs/icons/icons.js +4 -0
  13. package/cjs/table/table.d.ts.map +1 -1
  14. package/cjs/table/table.js +26 -12
  15. package/cjs/table/table.type.d.ts +15 -0
  16. package/cjs/table/table.type.d.ts.map +1 -1
  17. package/cjs/table/tbody-empty.d.ts +7 -0
  18. package/cjs/table/tbody-empty.d.ts.map +1 -0
  19. package/cjs/table/tbody-empty.js +23 -0
  20. package/cjs/table/thead-filter.d.ts +12 -0
  21. package/cjs/table/thead-filter.d.ts.map +1 -0
  22. package/cjs/table/thead-filter.js +267 -0
  23. package/cjs/table/thead.d.ts.map +1 -1
  24. package/cjs/table/thead.js +35 -5
  25. package/cjs/table/thead.type.d.ts +2 -2
  26. package/cjs/table/thead.type.d.ts.map +1 -1
  27. package/cjs/tree/tree-checkbox.d.ts +1 -2
  28. package/cjs/tree/tree-checkbox.d.ts.map +1 -1
  29. package/cjs/tree/tree-checkbox.js +3 -16
  30. package/cjs/tree/tree-checkbox.type.d.ts +3 -4
  31. package/cjs/tree/tree-checkbox.type.d.ts.map +1 -1
  32. package/cjs/tree/tree-content.d.ts.map +1 -1
  33. package/cjs/tree/tree-content.js +47 -23
  34. package/cjs/tree/tree-content.type.d.ts +6 -4
  35. package/cjs/tree/tree-content.type.d.ts.map +1 -1
  36. package/cjs/tree/tree-list.d.ts.map +1 -1
  37. package/cjs/tree/tree-list.js +4 -2
  38. package/cjs/tree/tree-list.type.d.ts +2 -2
  39. package/cjs/tree/tree-list.type.d.ts.map +1 -1
  40. package/cjs/tree/tree-node.d.ts.map +1 -1
  41. package/cjs/tree/tree-node.js +1 -0
  42. package/cjs/tree/tree-node.type.d.ts +3 -3
  43. package/cjs/tree/tree-node.type.d.ts.map +1 -1
  44. package/cjs/tree/tree-root.d.ts.map +1 -1
  45. package/cjs/tree/tree-root.js +12 -1
  46. package/cjs/tree/tree-root.type.d.ts +2 -2
  47. package/cjs/tree/tree-root.type.d.ts.map +1 -1
  48. package/cjs/tree/tree-simple-node.d.ts.map +1 -1
  49. package/cjs/tree/tree-simple-node.js +7 -3
  50. package/cjs/tree/tree-virtual-node.d.ts.map +1 -1
  51. package/cjs/tree/tree-virtual-node.js +7 -4
  52. package/cjs/tree/tree.d.ts.map +1 -1
  53. package/cjs/tree/tree.js +6 -3
  54. package/cjs/tree/tree.type.d.ts +12 -0
  55. package/cjs/tree/tree.type.d.ts.map +1 -1
  56. package/cjs/tree-select/tree-select.d.ts.map +1 -1
  57. package/cjs/tree-select/tree-select.js +2 -1
  58. package/cjs/tree-select/tree-select.type.d.ts +2 -2
  59. package/cjs/tree-select/tree-select.type.d.ts.map +1 -1
  60. package/esm/checkbox/checkbox.type.d.ts +4 -0
  61. package/esm/checkbox/checkbox.type.d.ts.map +1 -1
  62. package/esm/checkbox/simple-checkbox.d.ts.map +1 -1
  63. package/esm/checkbox/simple-checkbox.js +2 -1
  64. package/esm/empty/empty.d.ts.map +1 -1
  65. package/esm/empty/empty.js +1 -0
  66. package/esm/icons/config.d.ts +2 -0
  67. package/esm/icons/config.d.ts.map +1 -1
  68. package/esm/icons/config.js +3 -1
  69. package/esm/icons/icons.d.ts +1 -0
  70. package/esm/icons/icons.d.ts.map +1 -1
  71. package/esm/icons/icons.js +4 -0
  72. package/esm/table/table.d.ts.map +1 -1
  73. package/esm/table/table.js +27 -13
  74. package/esm/table/table.type.d.ts +15 -0
  75. package/esm/table/table.type.d.ts.map +1 -1
  76. package/esm/table/tbody-empty.d.ts +7 -0
  77. package/esm/table/tbody-empty.d.ts.map +1 -0
  78. package/esm/table/tbody-empty.js +16 -0
  79. package/esm/table/thead-filter.d.ts +12 -0
  80. package/esm/table/thead-filter.d.ts.map +1 -0
  81. package/esm/table/thead-filter.js +259 -0
  82. package/esm/table/thead.d.ts.map +1 -1
  83. package/esm/table/thead.js +35 -5
  84. package/esm/table/thead.type.d.ts +2 -2
  85. package/esm/table/thead.type.d.ts.map +1 -1
  86. package/esm/tree/tree-checkbox.d.ts +1 -2
  87. package/esm/tree/tree-checkbox.d.ts.map +1 -1
  88. package/esm/tree/tree-checkbox.js +3 -16
  89. package/esm/tree/tree-checkbox.type.d.ts +3 -4
  90. package/esm/tree/tree-checkbox.type.d.ts.map +1 -1
  91. package/esm/tree/tree-content.d.ts.map +1 -1
  92. package/esm/tree/tree-content.js +47 -23
  93. package/esm/tree/tree-content.type.d.ts +6 -4
  94. package/esm/tree/tree-content.type.d.ts.map +1 -1
  95. package/esm/tree/tree-list.d.ts.map +1 -1
  96. package/esm/tree/tree-list.js +4 -2
  97. package/esm/tree/tree-list.type.d.ts +2 -2
  98. package/esm/tree/tree-list.type.d.ts.map +1 -1
  99. package/esm/tree/tree-node.d.ts.map +1 -1
  100. package/esm/tree/tree-node.js +1 -0
  101. package/esm/tree/tree-node.type.d.ts +3 -3
  102. package/esm/tree/tree-node.type.d.ts.map +1 -1
  103. package/esm/tree/tree-root.d.ts.map +1 -1
  104. package/esm/tree/tree-root.js +12 -1
  105. package/esm/tree/tree-root.type.d.ts +2 -2
  106. package/esm/tree/tree-root.type.d.ts.map +1 -1
  107. package/esm/tree/tree-simple-node.d.ts.map +1 -1
  108. package/esm/tree/tree-simple-node.js +7 -3
  109. package/esm/tree/tree-virtual-node.d.ts.map +1 -1
  110. package/esm/tree/tree-virtual-node.js +6 -3
  111. package/esm/tree/tree.d.ts.map +1 -1
  112. package/esm/tree/tree.js +6 -3
  113. package/esm/tree/tree.type.d.ts +12 -0
  114. package/esm/tree/tree.type.d.ts.map +1 -1
  115. package/esm/tree-select/tree-select.d.ts.map +1 -1
  116. package/esm/tree-select/tree-select.js +2 -1
  117. package/esm/tree-select/tree-select.type.d.ts +2 -2
  118. package/esm/tree-select/tree-select.type.d.ts.map +1 -1
  119. package/package.json +2 -2
  120. package/cjs/tree/tree-virtual-content.d.ts +0 -5
  121. package/cjs/tree/tree-virtual-content.d.ts.map +0 -1
  122. package/cjs/tree/tree-virtual-content.js +0 -202
  123. package/esm/tree/tree-virtual-content.d.ts +0 -5
  124. package/esm/tree/tree-virtual-content.d.ts.map +0 -1
  125. package/esm/tree/tree-virtual-content.js +0 -196
@@ -0,0 +1,259 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
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(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
8
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
9
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
10
+ 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
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
12
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13
+ import React, { useEffect, useState } from 'react';
14
+ import classnames from 'classnames';
15
+ import { useFilter, util } from '@sheinx/hooks';
16
+ import Icons from "../icons";
17
+ import Tree from "../tree";
18
+ import Input from "../input";
19
+ import Button from "../button";
20
+ import Popover from "../popover";
21
+ import Radio from "../radio";
22
+ import Empty from "../empty";
23
+ import { jsx as _jsx } from "react/jsx-runtime";
24
+ import { jsxs as _jsxs } from "react/jsx-runtime";
25
+ var FilterFooter = function FilterFooter(props) {
26
+ var tableClasses = props.tableClasses;
27
+ return /*#__PURE__*/_jsxs("footer", {
28
+ className: tableClasses.filterFooter,
29
+ children: [/*#__PURE__*/_jsx(Button, {
30
+ htmlType: "reset",
31
+ jssStyle: props.jssStyle,
32
+ size: "small",
33
+ onClick: props.onReset,
34
+ disabled: !props.resetable,
35
+ children: "\u91CD\u7F6E"
36
+ }), /*#__PURE__*/_jsx(Button, {
37
+ jssStyle: props.jssStyle,
38
+ size: "small",
39
+ type: "primary",
40
+ onClick: props.onConfirm,
41
+ children: "\u786E\u5B9A"
42
+ })]
43
+ });
44
+ };
45
+ export var FilterSelect = function FilterSelect(props) {
46
+ var _props$filterInfo;
47
+ var _useState = useState(false),
48
+ _useState2 = _slicedToArray(_useState, 2),
49
+ popoverVisible = _useState2[0],
50
+ setPopoverVisible = _useState2[1];
51
+ var _useState3 = useState(),
52
+ _useState4 = _slicedToArray(_useState3, 2),
53
+ tempValue = _useState4[0],
54
+ setTempValue = _useState4[1];
55
+ var tableClasses = props.tableClasses,
56
+ filter = props.filter;
57
+ var config = filter.config;
58
+ var currentFilter = (_props$filterInfo = props.filterInfo) === null || _props$filterInfo === void 0 ? void 0 : _props$filterInfo.get(props.columnKey);
59
+ var treeOptions = (config === null || config === void 0 ? void 0 : config.data) || [];
60
+ var onReset = function onReset() {
61
+ setTempValue(undefined);
62
+ props.onFilterChange(props.columnKey, undefined);
63
+ setPopoverVisible(false);
64
+ };
65
+ var onConfirm = function onConfirm() {
66
+ props.onFilterChange(props.columnKey, tempValue);
67
+ setPopoverVisible(false);
68
+ };
69
+ var onVisibleChange = function onVisibleChange(visible) {
70
+ // 关闭popover时就提交筛选条件,包括click away触发的
71
+ if (!visible) {
72
+ props.onFilterChange(props.columnKey, tempValue);
73
+ }
74
+ setPopoverVisible(visible);
75
+ };
76
+ var treeKeygen = function treeKeygen(d) {
77
+ return d.value;
78
+ };
79
+ var treeProps = config !== null && config !== void 0 && config.multiple ? {
80
+ value: currentFilter === null || currentFilter === void 0 ? void 0 : currentFilter.value,
81
+ onChange: function onChange(v) {
82
+ setTempValue(v);
83
+ },
84
+ renderItem: (config === null || config === void 0 ? void 0 : config.renderItem) || 'label'
85
+ } : {
86
+ active: currentFilter === null || currentFilter === void 0 ? void 0 : currentFilter.value,
87
+ setActive: function setActive(v) {
88
+ setTempValue(v);
89
+ },
90
+ renderItem: function renderItem(d, _, active) {
91
+ var renderProp = util.isFunc(config === null || config === void 0 ? void 0 : config.renderItem) ? config === null || config === void 0 ? void 0 : config.renderItem : function (d) {
92
+ return d.label;
93
+ };
94
+ return /*#__PURE__*/_jsxs("div", {
95
+ className: tableClasses.filterRadio,
96
+ children: [/*#__PURE__*/_jsx(Radio, {
97
+ checked: active,
98
+ jssStyle: props.jssStyle
99
+ }), renderProp(d)]
100
+ });
101
+ }
102
+ };
103
+ var _useFilter = useFilter({
104
+ treeData: treeOptions,
105
+ keygen: treeKeygen,
106
+ childrenKey: 'children',
107
+ onAdvancedFilter: false,
108
+ onFilter: function onFilter(text) {
109
+ return function (item) {
110
+ return item.label.includes(text);
111
+ };
112
+ }
113
+ }),
114
+ filterData = _useFilter.filterData,
115
+ rawData = _useFilter.rawData,
116
+ onFilter = _useFilter.onFilter,
117
+ inputText = _useFilter.inputText,
118
+ setInputText = _useFilter.setInputText;
119
+ var displayData = filterData || rawData;
120
+ return /*#__PURE__*/_jsxs(Button, {
121
+ jssStyle: props.jssStyle,
122
+ shape: "circle",
123
+ size: "small",
124
+ className: classnames(tableClasses.filterIconContainer, (currentFilter === null || currentFilter === void 0 ? void 0 : currentFilter.value) && tableClasses.filterActive),
125
+ style: {
126
+ border: 'none'
127
+ },
128
+ children: [/*#__PURE__*/_jsx("span", {
129
+ className: tableClasses.filterIcon,
130
+ children: filter.icon || Icons.table.Filter
131
+ }), /*#__PURE__*/_jsx(Popover, {
132
+ jssStyle: props.jssStyle,
133
+ trigger: "click",
134
+ showArrow: false,
135
+ visible: popoverVisible,
136
+ onVisibleChange: onVisibleChange,
137
+ children: /*#__PURE__*/_jsxs("div", {
138
+ className: classnames(tableClasses.filterContainer),
139
+ children: [(config === null || config === void 0 ? void 0 : config.search) && /*#__PURE__*/_jsx("header", {
140
+ className: tableClasses.filterHeader,
141
+ children: /*#__PURE__*/_jsx(Input, {
142
+ value: inputText,
143
+ onChange: function onChange(v) {
144
+ if (onFilter) onFilter(v || '');
145
+ setInputText(v);
146
+ },
147
+ jssStyle: props.jssStyle,
148
+ placeholder: "\u5728\u7B5B\u9009\u9879\u4E2D\u641C\u7D22",
149
+ className: tableClasses.filterInput,
150
+ prefix: /*#__PURE__*/_jsx("span", {
151
+ className: tableClasses.filterInputIcon,
152
+ children: Icons.table.Search
153
+ })
154
+ })
155
+ }), /*#__PURE__*/_jsx("section", {
156
+ className: tableClasses.filterBody,
157
+ children: displayData && displayData.length > 0 ? /*#__PURE__*/_jsx(Tree, _objectSpread({
158
+ keygen: function keygen(d) {
159
+ return d.value;
160
+ },
161
+ jssStyle: props.jssStyle,
162
+ data: displayData,
163
+ actionOnClick: ['check']
164
+ }, treeProps)) : /*#__PURE__*/_jsx(Empty, {
165
+ jssStyle: props.jssStyle,
166
+ icon: null,
167
+ style: {
168
+ padding: '24px 0'
169
+ }
170
+ })
171
+ }), /*#__PURE__*/_jsx(FilterFooter, {
172
+ jssStyle: props.jssStyle,
173
+ tableClasses: tableClasses,
174
+ onReset: onReset,
175
+ onConfirm: onConfirm,
176
+ resetable: !!tempValue
177
+ })]
178
+ })
179
+ })]
180
+ });
181
+ };
182
+ export var FilterSearch = function FilterSearch(props) {
183
+ var _props$filterInfo2;
184
+ var tableClasses = props.tableClasses,
185
+ filter = props.filter;
186
+ var _useState5 = useState(false),
187
+ _useState6 = _slicedToArray(_useState5, 2),
188
+ popoverVisible = _useState6[0],
189
+ setPopoverVisible = _useState6[1];
190
+ var _useState7 = useState(),
191
+ _useState8 = _slicedToArray(_useState7, 2),
192
+ tempValue = _useState8[0],
193
+ setTempValue = _useState8[1];
194
+ var onReset = function onReset() {
195
+ setTempValue(undefined);
196
+ props.onFilterChange(props.columnKey, undefined);
197
+ setPopoverVisible(false);
198
+ };
199
+ var onConfirm = function onConfirm() {
200
+ props.onFilterChange(props.columnKey, tempValue);
201
+ setPopoverVisible(false);
202
+ };
203
+ var onVisibleChange = function onVisibleChange(visible) {
204
+ // 关闭popover时就提交筛选条件,包括click away触发的
205
+ if (!visible) {
206
+ props.onFilterChange(props.columnKey, tempValue);
207
+ }
208
+ setPopoverVisible(visible);
209
+ };
210
+ var currentFilter = (_props$filterInfo2 = props.filterInfo) === null || _props$filterInfo2 === void 0 ? void 0 : _props$filterInfo2.get(props.columnKey);
211
+ useEffect(function () {
212
+ if ((currentFilter === null || currentFilter === void 0 ? void 0 : currentFilter.value) !== undefined) {
213
+ setTempValue(currentFilter === null || currentFilter === void 0 ? void 0 : currentFilter.value);
214
+ }
215
+ }, [currentFilter === null || currentFilter === void 0 ? void 0 : currentFilter.value]);
216
+ return /*#__PURE__*/_jsxs(Button, {
217
+ jssStyle: props.jssStyle,
218
+ shape: "circle",
219
+ size: "small",
220
+ className: classnames(tableClasses.filterIconContainer, (currentFilter === null || currentFilter === void 0 ? void 0 : currentFilter.value) && tableClasses.filterActive),
221
+ style: {
222
+ border: 'none'
223
+ },
224
+ children: [/*#__PURE__*/_jsx("span", {
225
+ className: tableClasses.filterIcon,
226
+ children: filter.icon || Icons.table.Search
227
+ }), /*#__PURE__*/_jsx(Popover, {
228
+ jssStyle: props.jssStyle,
229
+ trigger: "click",
230
+ showArrow: false,
231
+ visible: popoverVisible,
232
+ onVisibleChange: onVisibleChange,
233
+ children: /*#__PURE__*/_jsxs("div", {
234
+ className: classnames(tableClasses.filterContainer),
235
+ children: [/*#__PURE__*/_jsx("header", {
236
+ className: tableClasses.filterHeader,
237
+ children: /*#__PURE__*/_jsx(Input, {
238
+ jssStyle: props.jssStyle,
239
+ placeholder: "\u5728\u7B5B\u9009\u9879\u4E2D\u641C\u7D22",
240
+ className: tableClasses.filterInput,
241
+ prefix: /*#__PURE__*/_jsx("span", {
242
+ className: tableClasses.filterInputIcon,
243
+ children: Icons.table.Search
244
+ }),
245
+ value: tempValue,
246
+ onChange: setTempValue,
247
+ onEnterPress: onConfirm
248
+ })
249
+ }), /*#__PURE__*/_jsx(FilterFooter, {
250
+ jssStyle: props.jssStyle,
251
+ tableClasses: tableClasses,
252
+ onReset: onReset,
253
+ onConfirm: onConfirm,
254
+ resetable: !!tempValue
255
+ })]
256
+ })
257
+ })]
258
+ });
259
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"thead.d.ts","sourceRoot":"","sources":["thead.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;gCAUnB,UAAU;AAAjC,wBAyRE"}
1
+ {"version":3,"file":"thead.d.ts","sourceRoot":"","sources":["thead.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;gCAWnB,UAAU;AAAjC,wBAsUE"}
@@ -10,6 +10,7 @@ import Icons from "../icons";
10
10
  import classNames from 'classnames';
11
11
  import Checkbox from "../checkbox";
12
12
  import { useConfig } from "../config";
13
+ import { FilterSearch, FilterSelect } from "./thead-filter";
13
14
  import { jsx as _jsx } from "react/jsx-runtime";
14
15
  import { Fragment as _Fragment } from "react/jsx-runtime";
15
16
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -111,6 +112,34 @@ export default (function (props) {
111
112
  })
112
113
  });
113
114
  };
115
+ var renderFilter = function renderFilter(column, columnIndex) {
116
+ if (!column.filter) {
117
+ return null;
118
+ }
119
+ var mode = column.filter.mode;
120
+ var columnKey = typeof column.render === 'string' ? column.render : String(columnIndex);
121
+ if (mode === 'search') {
122
+ return /*#__PURE__*/_jsx(FilterSearch, {
123
+ tableClasses: tableClasses,
124
+ jssStyle: props.jssStyle,
125
+ filter: column.filter,
126
+ filterInfo: props.filterInfo,
127
+ onFilterChange: props.onFilterChange,
128
+ columnKey: columnKey
129
+ });
130
+ }
131
+ if (mode === 'select') {
132
+ return /*#__PURE__*/_jsx(FilterSelect, {
133
+ tableClasses: tableClasses,
134
+ jssStyle: props.jssStyle,
135
+ filter: column.filter,
136
+ filterInfo: props.filterInfo,
137
+ onFilterChange: props.onFilterChange,
138
+ columnKey: columnKey
139
+ });
140
+ }
141
+ return null;
142
+ };
114
143
  var renderDrag = function renderDrag(index) {
115
144
  if (!props.columnResizable) return null;
116
145
  return /*#__PURE__*/_jsx("div", {
@@ -164,7 +193,7 @@ export default (function (props) {
164
193
  position: 'sticky'
165
194
  };
166
195
  };
167
- var createTh = function createTh(trs, col, level, isLast) {
196
+ var createTh = function createTh(trs, col, level, isLast, columnIndex) {
168
197
  var colTemp = col;
169
198
  var colTemp2 = col;
170
199
  var fixedStyle = getFixedStyle(col.fixed, col.index, colTemp2.colSpan || 1, level);
@@ -172,14 +201,15 @@ export default (function (props) {
172
201
  var isExpand = colTemp.type === 'expand' || colTemp.type === 'row-expand';
173
202
  if (colTemp.title || isExpand) {
174
203
  var sorter = renderSort(colTemp);
204
+ var filter = renderFilter(colTemp, columnIndex);
175
205
  trs[level].push( /*#__PURE__*/_jsx("th", {
176
206
  className: cellClassName,
177
207
  rowSpan: columnLevel - level + 1,
178
208
  style: fixedStyle,
179
209
  dir: config.direction,
180
210
  children: /*#__PURE__*/_jsxs("div", {
181
- className: classNames(sorter && (tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.hasSorter)),
182
- children: [renderTitle(colTemp.title), renderSort(colTemp), colTemp.columnResizable !== false && renderDrag(colTemp.index)]
211
+ className: classNames(sorter && (tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.hasSorter), filter && (tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.hasFilter)),
212
+ children: [renderTitle(colTemp.title), sorter, filter, colTemp.columnResizable !== false && renderDrag(colTemp.index)]
183
213
  })
184
214
  }, col.key));
185
215
  return;
@@ -229,7 +259,7 @@ export default (function (props) {
229
259
  }, colTemp2.key));
230
260
  if (colTemp2.columns) {
231
261
  colTemp2.columns.forEach(function (c, index) {
232
- return createTh(trs, c, level + 1, isLast && colTemp2.columns.length - 1 === index);
262
+ return createTh(trs, c, level + 1, isLast && colTemp2.columns.length - 1 === index, index);
233
263
  });
234
264
  }
235
265
  };
@@ -241,7 +271,7 @@ export default (function (props) {
241
271
  });
242
272
  groupColumns.forEach(function (col, index) {
243
273
  var isLast = index === groupColumns.length - 1;
244
- createTh(trs, col, 0, isLast);
274
+ createTh(trs, col, 0, isLast, index);
245
275
  });
246
276
  return trs.map(function (tr, i) {
247
277
  return /*#__PURE__*/_jsx("tr", {
@@ -1,8 +1,8 @@
1
1
  import { TableProps, ListDatum } from './table.type';
2
- import { useTableSort, useTableLayout } from '@sheinx/hooks';
2
+ import { useTableSort, useTableFilter, useTableLayout } from '@sheinx/hooks';
3
3
  import type { TableFormatColumn, OptionalToRequired } from '@sheinx/hooks';
4
4
  export type UseTableLayoutResultFunc = ReturnType<typeof useTableLayout>['func'];
5
- export interface TheadProps extends Pick<OptionalToRequired<TableProps<any, any>>, 'data' | 'jssStyle' | 'onColumnResize' | 'columnResizable' | 'showSelectAll' | 'renderSorter' | 'radio' | 'disabled' | 'treeCheckAll' | 'sortDirections'>, Pick<ReturnType<typeof useTableSort<any>>, 'sortInfo' | 'onSorterChange'>, Pick<UseTableLayoutResultFunc, 'dragCol' | 'resizeCol'> {
5
+ export interface TheadProps extends Pick<OptionalToRequired<TableProps<any, any>>, 'data' | 'jssStyle' | 'onColumnResize' | 'columnResizable' | 'showSelectAll' | 'renderSorter' | 'radio' | 'disabled' | 'treeCheckAll' | 'sortDirections'>, Pick<ReturnType<typeof useTableSort<any>>, 'sortInfo' | 'onSorterChange'>, Pick<ReturnType<typeof useTableFilter<any>>, 'filterInfo' | 'onFilterChange'>, Pick<UseTableLayoutResultFunc, 'dragCol' | 'resizeCol'> {
6
6
  columns: TableFormatColumn<any>[];
7
7
  isScrollY?: boolean;
8
8
  bordered?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"thead.type.d.ts","sourceRoot":"","sources":["thead.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAE3E,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjF,MAAM,WAAW,UACf,SAAQ,IAAI,CACR,kBAAkB,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EACtC,MAAM,GACN,UAAU,GACV,gBAAgB,GAChB,iBAAiB,GACjB,eAAe,GACf,cAAc,GACd,OAAO,GACP,UAAU,GACV,cAAc,GACd,gBAAgB,CACnB,EACD,IAAI,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,gBAAgB,CAAC,EACzE,IAAI,CAAC,wBAAwB,EAAE,SAAS,GAAG,WAAW,CAAC;IACzD,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAC1C,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC"}
1
+ {"version":3,"file":"thead.type.d.ts","sourceRoot":"","sources":["thead.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAE3E,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjF,MAAM,WAAW,UACf,SAAQ,IAAI,CACR,kBAAkB,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EACtC,MAAM,GACN,UAAU,GACV,gBAAgB,GAChB,iBAAiB,GACjB,eAAe,GACf,cAAc,GACd,OAAO,GACP,UAAU,GACV,cAAc,GACd,gBAAgB,CACnB,EACD,IAAI,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,gBAAgB,CAAC,EACzE,IAAI,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,gBAAgB,CAAC,EAC7E,IAAI,CAAC,wBAAwB,EAAE,SAAS,GAAG,WAAW,CAAC;IACzD,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAC1C,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC"}
@@ -1,5 +1,4 @@
1
1
  import { TreeCheckboxProps } from './tree-checkbox.type';
2
- import { KeygenResult } from '@sheinx/hooks';
3
- declare const TreeCheckbox: <Value extends KeygenResult[]>(props: TreeCheckboxProps<Value>) => import("react/jsx-runtime").JSX.Element;
2
+ declare const TreeCheckbox: (props: TreeCheckboxProps) => import("react/jsx-runtime").JSX.Element;
4
3
  export default TreeCheckbox;
5
4
  //# sourceMappingURL=tree-checkbox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tree-checkbox.d.ts","sourceRoot":"","sources":["tree-checkbox.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,QAAA,MAAM,YAAY,4GAmCjB,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"tree-checkbox.d.ts","sourceRoot":"","sources":["tree-checkbox.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAIzD,QAAA,MAAM,YAAY,UAAW,iBAAiB,4CAsB7C,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -8,22 +8,9 @@ var TreeCheckbox = function TreeCheckbox(props) {
8
8
  id = props.id,
9
9
  onChange = props.onChange,
10
10
  disabled = props.disabled,
11
- onClick = props.onClick;
11
+ checked = props.checked;
12
12
  var _useTreeContext = useTreeContext(),
13
- getValue = _useTreeContext.getValue,
14
- set = _useTreeContext.set,
15
- getChecked = _useTreeContext.getChecked,
16
13
  unBindUpdate = _useTreeContext.unBindUpdate;
17
- var handleChange = function handleChange(_, checked) {
18
- set(id, checked ? 1 : 0);
19
- if (onChange) {
20
- onChange(getValue(), id);
21
- }
22
- };
23
- var handleClick = function handleClick(e) {
24
- onClick === null || onClick === void 0 || onClick(e);
25
- };
26
- var checked = getChecked(id);
27
14
  useEffect(function () {
28
15
  return function () {
29
16
  unBindUpdate(id);
@@ -37,8 +24,8 @@ var TreeCheckbox = function TreeCheckbox(props) {
37
24
  jssStyle: jssStyle,
38
25
  checked: checked,
39
26
  disabled: disabled,
40
- onChange: handleChange,
41
- onClick: handleClick
27
+ onChange: onChange,
28
+ needStopPropagation: true
42
29
  });
43
30
  };
44
31
  export default TreeCheckbox;
@@ -1,12 +1,11 @@
1
- /// <reference types="react" />
2
1
  import { KeygenResult } from '@sheinx/hooks';
3
2
  import { CommonType } from '../common/type';
4
3
  import { JsstyleType } from './tree.type';
5
- export interface TreeCheckboxProps<Value extends KeygenResult[]> extends Pick<CommonType, 'className'> {
4
+ export interface TreeCheckboxProps extends Pick<CommonType, 'className'> {
6
5
  jssStyle?: JsstyleType;
7
6
  id: KeygenResult;
8
7
  disabled?: boolean;
9
- onClick?: (e: React.MouseEvent) => void;
10
- onChange?: (value: Value, id: KeygenResult) => void;
8
+ checked: boolean | "indeterminate";
9
+ onChange?: (_: any, checked: boolean) => void;
11
10
  }
12
11
  //# sourceMappingURL=tree-checkbox.type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tree-checkbox.type.d.ts","sourceRoot":"","sources":["tree-checkbox.type.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,iBAAiB,CAAC,KAAK,SAAS,YAAY,EAAE,CAAE,SAAQ,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC;IACpG,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,EAAE,EAAE,YAAY,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,CAAC;CACrD"}
1
+ {"version":3,"file":"tree-checkbox.type.d.ts","sourceRoot":"","sources":["tree-checkbox.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC;IACtE,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,EAAE,EAAE,YAAY,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,GAAG,eAAe,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAC/C"}
@@ -1 +1 @@
1
- {"version":3,"file":"tree-content.d.ts","sourceRoot":"","sources":["tree-content.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAmB,MAAM,eAAe,CAAC;AAE9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAOvD,QAAA,MAAM,WAAW,+HAkNhB,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"tree-content.d.ts","sourceRoot":"","sources":["tree-content.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAmB,MAAM,eAAe,CAAC;AAE9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAOvD,QAAA,MAAM,WAAW,+HAkOhB,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -16,6 +16,9 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
16
16
  var NodeContent = function NodeContent(props) {
17
17
  var jssStyle = props.jssStyle,
18
18
  id = props.id,
19
+ virtual = props.virtual,
20
+ _props$level = props.level,
21
+ level = _props$level === void 0 ? 0 : _props$level,
19
22
  active = props.active,
20
23
  data = props.data,
21
24
  line = props.line,
@@ -36,7 +39,8 @@ var NodeContent = function NodeContent(props) {
36
39
  onChange = props.onChange,
37
40
  onToggle = props.onToggle,
38
41
  onDragOver = props.onDragOver,
39
- onNodeClick = props.onNodeClick;
42
+ onNodeClick = props.onNodeClick,
43
+ actionOnClick = props.actionOnClick;
40
44
  var forceUpdate = useRender();
41
45
  var _useTreeContext = useTreeContext(),
42
46
  isDisabled = _useTreeContext.isDisabled,
@@ -47,8 +51,7 @@ var NodeContent = function NodeContent(props) {
47
51
  var contentStyle = (jssStyle === null || jssStyle === void 0 ? void 0 : jssStyle.tree()) || {};
48
52
  var rootClass = classNames(contentStyle.contentWrapper, _defineProperty(_defineProperty(_defineProperty({}, contentStyle.childnode, data[childrenKey] && data[childrenKey].length > 0), contentStyle.inlineContent, inlineNode), contentStyle.contentDisabled, disabled));
49
53
  var contentClass = classNames(contentStyle.content, util.isString(contentClassProp) && contentClassProp, util.isFunc(contentClassProp) && contentClassProp(data));
50
- // const textClass = classNames(contentStyle.text, disabled ? contentStyle.textDisabled : '');
51
- var textClass = classNames(contentStyle.text);
54
+ var textClass = classNames(contentStyle.text, _defineProperty({}, contentStyle.textClickable, actionOnClick && !util.isEmpty(actionOnClick) || parentClickExpand || doubleClickExpand));
52
55
  var hasExpandIcons = expandIcons !== undefined;
53
56
  var children = data[childrenKey];
54
57
  var hasChildren = children && children.length > 0;
@@ -62,7 +65,7 @@ var NodeContent = function NodeContent(props) {
62
65
  // }
63
66
  return dataProps;
64
67
  };
65
- var handleIndicatorClick = function handleIndicatorClick() {
68
+ var handleNodeExpand = function handleNodeExpand() {
66
69
  onToggle === null || onToggle === void 0 || onToggle(id);
67
70
  if (data[childrenKey] !== undefined) return;
68
71
  if (loader) {
@@ -75,20 +78,43 @@ var NodeContent = function NodeContent(props) {
75
78
  }
76
79
  }
77
80
  };
81
+ var _useTreeContext2 = useTreeContext(),
82
+ getValue = _useTreeContext2.getValue,
83
+ set = _useTreeContext2.set,
84
+ getChecked = _useTreeContext2.getChecked;
85
+ // 选中节点前的复选框
86
+ var handleNodeCheck = function handleNodeCheck(_, checked) {
87
+ set(id, checked ? 1 : 0);
88
+ if (onChange) {
89
+ onChange(getValue());
90
+ }
91
+ };
92
+ var checked = getChecked(id);
78
93
  var handleNodeClick = function handleNodeClick() {
79
- // if (disabled) return;
80
94
  if (parentClickExpand && hasChildren) {
81
- handleIndicatorClick();
95
+ handleNodeExpand();
82
96
  } else {
83
97
  onNodeClick(data, id);
84
98
  }
99
+ if (!actionOnClick) return;
100
+ if (actionOnClick.indexOf('expand') > -1) {
101
+ handleNodeExpand();
102
+ }
103
+ if (actionOnClick.indexOf('check') > -1) {
104
+ handleNodeCheck(null, !checked);
105
+ }
85
106
  };
86
- var handleNodeExpand = function handleNodeExpand() {
107
+
108
+ // 双击节点展开子节点
109
+ var onNodeDoubleClick = function onNodeDoubleClick() {
87
110
  if (!doubleClickExpand) return;
88
- if (hasChildren) handleIndicatorClick();
111
+ if (hasChildren) handleNodeExpand();
89
112
  };
90
113
  var renderLoading = function renderLoading() {
91
114
  return /*#__PURE__*/_jsx("span", {
115
+ style: virtual ? {
116
+ left: (level - 1) * 24
117
+ } : undefined,
92
118
  className: contentStyle.iconWrapper,
93
119
  "data-expanded": expanded,
94
120
  "data-icon": hasExpandIcons,
@@ -113,20 +139,23 @@ var NodeContent = function NodeContent(props) {
113
139
  dir: config.direction,
114
140
  children: /*#__PURE__*/_jsx("span", {
115
141
  className: classNames(contentStyle.icon, iconClass),
116
- onClick: handleIndicatorClick,
142
+ onClick: handleNodeExpand,
117
143
  dir: config.direction,
118
144
  children: util.isFunc(icon) ? icon(data) : icon
119
145
  })
120
146
  });
121
147
  } else {
122
148
  indicator = /*#__PURE__*/_jsx("span", {
149
+ style: virtual ? {
150
+ left: (level - 1) * 24
151
+ } : undefined,
123
152
  className: contentStyle.iconWrapper,
124
153
  "data-expanded": expanded,
125
154
  "data-icon": hasExpandIcons,
126
155
  dir: config.direction,
127
156
  children: /*#__PURE__*/_jsx("span", {
128
157
  className: classNames(contentStyle.icon, iconClass),
129
- onClick: handleIndicatorClick,
158
+ onClick: handleNodeExpand,
130
159
  dir: config.direction,
131
160
  children: util.isFunc(icon) ? icon(data) : hasExpandIcons ? icon : Icons.tree.Expand
132
161
  })
@@ -144,7 +173,8 @@ var NodeContent = function NodeContent(props) {
144
173
  id: id,
145
174
  disabled: disabled,
146
175
  className: contentStyle.checkbox,
147
- onChange: onChange
176
+ checked: checked,
177
+ onChange: handleNodeCheck
148
178
  });
149
179
  };
150
180
  var renderNode = function renderNode() {
@@ -153,29 +183,23 @@ var NodeContent = function NodeContent(props) {
153
183
  };
154
184
  return render(data, expanded, active, id);
155
185
  };
156
- var contentEvent = {
157
- onClick: inlineNode ? undefined : handleNodeClick
158
- };
159
- var textEvent = {
160
- onClick: inlineNode ? handleNodeClick : undefined
161
- };
162
186
  return /*#__PURE__*/_jsxs("div", {
163
187
  className: rootClass,
164
188
  onDragOver: onDragOver,
165
189
  dir: config.direction,
166
- children: [renderIndicator(), /*#__PURE__*/_jsxs("div", _objectSpread(_objectSpread(_objectSpread({
190
+ children: [renderIndicator(), /*#__PURE__*/_jsxs("div", _objectSpread(_objectSpread({
167
191
  dir: config.direction,
168
192
  "data-expanded": expanded,
169
193
  ref: bindContent,
170
194
  className: contentClass
171
- }, contentDataProps()), contentEvent), {}, {
172
- children: [onChange && renderCheckbox(), /*#__PURE__*/_jsx("div", _objectSpread(_objectSpread({
195
+ }, contentDataProps()), {}, {
196
+ children: [onChange && renderCheckbox(), /*#__PURE__*/_jsx("div", {
173
197
  dir: config.direction,
174
198
  className: textClass,
175
- onDoubleClick: handleNodeExpand
176
- }, textEvent), {}, {
199
+ onDoubleClick: onNodeDoubleClick,
200
+ onClick: handleNodeClick,
177
201
  children: renderNode()
178
- }))]
202
+ })]
179
203
  }))]
180
204
  });
181
205
  };
@@ -1,9 +1,11 @@
1
1
  /// <reference types="react" />
2
2
  import { BaseTreeProps, KeygenResult, UpdateFunc } from '@sheinx/hooks';
3
- import { JsstyleType, TreeRenderItemType } from './tree.type';
4
- export interface TreeContextProps<DataItem, Value extends KeygenResult[]> extends Omit<BaseTreeProps<DataItem>, 'data' | 'childrenKey' | 'expanded' | 'active'> {
3
+ import { JsstyleType, TreeRenderItemType, TreeProps } from './tree.type';
4
+ export interface TreeContextProps<DataItem, Value extends KeygenResult[]> extends Omit<BaseTreeProps<DataItem>, 'data' | 'childrenKey' | 'expanded' | 'active'>, Pick<TreeProps<DataItem, Value>, 'actionOnClick'> {
5
5
  jssStyle?: JsstyleType;
6
6
  id: KeygenResult;
7
+ virtual?: boolean;
8
+ level?: number;
7
9
  parentClickExpand?: boolean;
8
10
  doubleClickExpand?: boolean;
9
11
  data: DataItem;
@@ -17,7 +19,7 @@ export interface TreeContextProps<DataItem, Value extends KeygenResult[]> extend
17
19
  childrenKey: keyof DataItem;
18
20
  renderItem: TreeRenderItemType<DataItem>;
19
21
  childrenClass?: ((data: DataItem) => string) | string;
20
- bindNode: (id: KeygenResult, update: UpdateFunc, data: DataItem) => {
22
+ bindNode?: (id: KeygenResult, update: UpdateFunc, data: DataItem) => {
21
23
  expanded: boolean;
22
24
  active: boolean;
23
25
  };
@@ -29,7 +31,7 @@ export interface TreeContextProps<DataItem, Value extends KeygenResult[]> extend
29
31
  setFetching: (value: boolean) => void;
30
32
  onToggle?: (id: KeygenResult, expanded?: boolean) => void;
31
33
  onFetch: () => void;
32
- onDragOver: (e: React.DragEvent) => void;
34
+ onDragOver?: (e: React.DragEvent) => void;
33
35
  onNodeClick: (data: DataItem, id: KeygenResult) => void;
34
36
  onChange?: (value: Value) => void;
35
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tree-content.type.d.ts","sourceRoot":"","sources":["tree-content.type.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tree-content.type.d.ts","sourceRoot":"","sources":["tree-content.type.ts"],"names":[],"mappings":"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"}