@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.
- package/cjs/checkbox/checkbox.type.d.ts +4 -0
- package/cjs/checkbox/checkbox.type.d.ts.map +1 -1
- package/cjs/checkbox/simple-checkbox.d.ts.map +1 -1
- package/cjs/checkbox/simple-checkbox.js +2 -1
- package/cjs/empty/empty.d.ts.map +1 -1
- package/cjs/empty/empty.js +1 -0
- package/cjs/icons/config.d.ts +2 -0
- package/cjs/icons/config.d.ts.map +1 -1
- package/cjs/icons/config.js +3 -1
- package/cjs/icons/icons.d.ts +1 -0
- package/cjs/icons/icons.d.ts.map +1 -1
- package/cjs/icons/icons.js +4 -0
- package/cjs/table/table.d.ts.map +1 -1
- package/cjs/table/table.js +26 -12
- package/cjs/table/table.type.d.ts +15 -0
- package/cjs/table/table.type.d.ts.map +1 -1
- package/cjs/table/tbody-empty.d.ts +7 -0
- package/cjs/table/tbody-empty.d.ts.map +1 -0
- package/cjs/table/tbody-empty.js +23 -0
- package/cjs/table/thead-filter.d.ts +12 -0
- package/cjs/table/thead-filter.d.ts.map +1 -0
- package/cjs/table/thead-filter.js +267 -0
- package/cjs/table/thead.d.ts.map +1 -1
- package/cjs/table/thead.js +35 -5
- package/cjs/table/thead.type.d.ts +2 -2
- package/cjs/table/thead.type.d.ts.map +1 -1
- package/cjs/tree/tree-checkbox.d.ts +1 -2
- package/cjs/tree/tree-checkbox.d.ts.map +1 -1
- package/cjs/tree/tree-checkbox.js +3 -16
- package/cjs/tree/tree-checkbox.type.d.ts +3 -4
- package/cjs/tree/tree-checkbox.type.d.ts.map +1 -1
- package/cjs/tree/tree-content.d.ts.map +1 -1
- package/cjs/tree/tree-content.js +47 -23
- package/cjs/tree/tree-content.type.d.ts +6 -4
- package/cjs/tree/tree-content.type.d.ts.map +1 -1
- package/cjs/tree/tree-list.d.ts.map +1 -1
- package/cjs/tree/tree-list.js +4 -2
- package/cjs/tree/tree-list.type.d.ts +2 -2
- package/cjs/tree/tree-list.type.d.ts.map +1 -1
- package/cjs/tree/tree-node.d.ts.map +1 -1
- package/cjs/tree/tree-node.js +1 -0
- package/cjs/tree/tree-node.type.d.ts +3 -3
- package/cjs/tree/tree-node.type.d.ts.map +1 -1
- package/cjs/tree/tree-root.d.ts.map +1 -1
- package/cjs/tree/tree-root.js +12 -1
- package/cjs/tree/tree-root.type.d.ts +2 -2
- package/cjs/tree/tree-root.type.d.ts.map +1 -1
- package/cjs/tree/tree-simple-node.d.ts.map +1 -1
- package/cjs/tree/tree-simple-node.js +7 -3
- package/cjs/tree/tree-virtual-node.d.ts.map +1 -1
- package/cjs/tree/tree-virtual-node.js +7 -4
- package/cjs/tree/tree.d.ts.map +1 -1
- package/cjs/tree/tree.js +6 -3
- package/cjs/tree/tree.type.d.ts +12 -0
- package/cjs/tree/tree.type.d.ts.map +1 -1
- package/cjs/tree-select/tree-select.d.ts.map +1 -1
- package/cjs/tree-select/tree-select.js +2 -1
- package/cjs/tree-select/tree-select.type.d.ts +2 -2
- package/cjs/tree-select/tree-select.type.d.ts.map +1 -1
- package/esm/checkbox/checkbox.type.d.ts +4 -0
- package/esm/checkbox/checkbox.type.d.ts.map +1 -1
- package/esm/checkbox/simple-checkbox.d.ts.map +1 -1
- package/esm/checkbox/simple-checkbox.js +2 -1
- package/esm/empty/empty.d.ts.map +1 -1
- package/esm/empty/empty.js +1 -0
- package/esm/icons/config.d.ts +2 -0
- package/esm/icons/config.d.ts.map +1 -1
- package/esm/icons/config.js +3 -1
- package/esm/icons/icons.d.ts +1 -0
- package/esm/icons/icons.d.ts.map +1 -1
- package/esm/icons/icons.js +4 -0
- package/esm/table/table.d.ts.map +1 -1
- package/esm/table/table.js +27 -13
- package/esm/table/table.type.d.ts +15 -0
- package/esm/table/table.type.d.ts.map +1 -1
- package/esm/table/tbody-empty.d.ts +7 -0
- package/esm/table/tbody-empty.d.ts.map +1 -0
- package/esm/table/tbody-empty.js +16 -0
- package/esm/table/thead-filter.d.ts +12 -0
- package/esm/table/thead-filter.d.ts.map +1 -0
- package/esm/table/thead-filter.js +259 -0
- package/esm/table/thead.d.ts.map +1 -1
- package/esm/table/thead.js +35 -5
- package/esm/table/thead.type.d.ts +2 -2
- package/esm/table/thead.type.d.ts.map +1 -1
- package/esm/tree/tree-checkbox.d.ts +1 -2
- package/esm/tree/tree-checkbox.d.ts.map +1 -1
- package/esm/tree/tree-checkbox.js +3 -16
- package/esm/tree/tree-checkbox.type.d.ts +3 -4
- package/esm/tree/tree-checkbox.type.d.ts.map +1 -1
- package/esm/tree/tree-content.d.ts.map +1 -1
- package/esm/tree/tree-content.js +47 -23
- package/esm/tree/tree-content.type.d.ts +6 -4
- package/esm/tree/tree-content.type.d.ts.map +1 -1
- package/esm/tree/tree-list.d.ts.map +1 -1
- package/esm/tree/tree-list.js +4 -2
- package/esm/tree/tree-list.type.d.ts +2 -2
- package/esm/tree/tree-list.type.d.ts.map +1 -1
- package/esm/tree/tree-node.d.ts.map +1 -1
- package/esm/tree/tree-node.js +1 -0
- package/esm/tree/tree-node.type.d.ts +3 -3
- package/esm/tree/tree-node.type.d.ts.map +1 -1
- package/esm/tree/tree-root.d.ts.map +1 -1
- package/esm/tree/tree-root.js +12 -1
- package/esm/tree/tree-root.type.d.ts +2 -2
- package/esm/tree/tree-root.type.d.ts.map +1 -1
- package/esm/tree/tree-simple-node.d.ts.map +1 -1
- package/esm/tree/tree-simple-node.js +7 -3
- package/esm/tree/tree-virtual-node.d.ts.map +1 -1
- package/esm/tree/tree-virtual-node.js +6 -3
- package/esm/tree/tree.d.ts.map +1 -1
- package/esm/tree/tree.js +6 -3
- package/esm/tree/tree.type.d.ts +12 -0
- package/esm/tree/tree.type.d.ts.map +1 -1
- package/esm/tree-select/tree-select.d.ts.map +1 -1
- package/esm/tree-select/tree-select.js +2 -1
- package/esm/tree-select/tree-select.type.d.ts +2 -2
- package/esm/tree-select/tree-select.type.d.ts.map +1 -1
- package/package.json +2 -2
- package/cjs/tree/tree-virtual-content.d.ts +0 -5
- package/cjs/tree/tree-virtual-content.d.ts.map +0 -1
- package/cjs/tree/tree-virtual-content.js +0 -202
- package/esm/tree/tree-virtual-content.d.ts +0 -5
- package/esm/tree/tree-virtual-content.d.ts.map +0 -1
- 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
|
+
};
|
package/esm/table/thead.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thead.d.ts","sourceRoot":"","sources":["thead.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
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"}
|
package/esm/table/thead.js
CHANGED
|
@@ -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),
|
|
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;
|
|
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
|
-
|
|
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;
|
|
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
|
-
|
|
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:
|
|
41
|
-
|
|
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
|
|
4
|
+
export interface TreeCheckboxProps extends Pick<CommonType, 'className'> {
|
|
6
5
|
jssStyle?: JsstyleType;
|
|
7
6
|
id: KeygenResult;
|
|
8
7
|
disabled?: boolean;
|
|
9
|
-
|
|
10
|
-
onChange?: (
|
|
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":"
|
|
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,+
|
|
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"}
|
package/esm/tree/tree-content.js
CHANGED
|
@@ -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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
107
|
+
|
|
108
|
+
// 双击节点展开子节点
|
|
109
|
+
var onNodeDoubleClick = function onNodeDoubleClick() {
|
|
87
110
|
if (!doubleClickExpand) return;
|
|
88
|
-
if (hasChildren)
|
|
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:
|
|
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:
|
|
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
|
-
|
|
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(
|
|
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()),
|
|
172
|
-
children: [onChange && renderCheckbox(), /*#__PURE__*/_jsx("div",
|
|
195
|
+
}, contentDataProps()), {}, {
|
|
196
|
+
children: [onChange && renderCheckbox(), /*#__PURE__*/_jsx("div", {
|
|
173
197
|
dir: config.direction,
|
|
174
198
|
className: textClass,
|
|
175
|
-
onDoubleClick:
|
|
176
|
-
|
|
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
|
|
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
|
|
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":";AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"tree-content.type.d.ts","sourceRoot":"","sources":["tree-content.type.ts"],"names":[],"mappings":"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"}
|