@react-fabric/data 1.0.0-beta.3 → 1.0.0-beta.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/checklist/CheckList.js +143 -0
- package/dist/cjs/histogram/Histogram.js +16 -5
- package/dist/cjs/hooks/usePagination.js +7 -4
- package/dist/cjs/hooks/useSelectableList.js +54 -0
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/table/BodyCell.js +38 -5
- package/dist/cjs/table/BodyRow.js +107 -0
- package/dist/cjs/table/CheckboxCell.js +1 -1
- package/dist/cjs/table/HeaderCell.js +29 -36
- package/dist/cjs/table/Table.js +104 -66
- package/dist/cjs/table/useResizer.js +4 -4
- package/dist/cjs/table/useVirtualTable.js +118 -17
- package/dist/cjs/tree/TreeNode.js +44 -24
- package/dist/cjs/tree/TreePanel.js +28 -10
- package/dist/cjs/tree/useTree.js +96 -14
- package/dist/cjs/tree/utils.js +20 -5
- package/dist/cjs/virtual/Gallery.js +41 -27
- package/dist/cjs/virtual/List.js +41 -29
- package/dist/esm/checklist/CheckList.js +143 -0
- package/dist/esm/histogram/Histogram.js +16 -5
- package/dist/esm/hooks/usePagination.js +7 -4
- package/dist/esm/hooks/useSelectableList.js +54 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/table/BodyCell.js +38 -5
- package/dist/esm/table/BodyRow.js +107 -0
- package/dist/esm/table/CheckboxCell.js +1 -1
- package/dist/esm/table/HeaderCell.js +30 -37
- package/dist/esm/table/Table.js +106 -68
- package/dist/esm/table/useResizer.js +4 -4
- package/dist/esm/table/useVirtualTable.js +120 -19
- package/dist/esm/tree/TreeNode.js +46 -26
- package/dist/esm/tree/TreePanel.js +28 -10
- package/dist/esm/tree/useTree.js +98 -16
- package/dist/esm/tree/utils.js +20 -5
- package/dist/esm/virtual/Gallery.js +41 -27
- package/dist/esm/virtual/List.js +41 -29
- package/dist/types/checklist/CheckList.d.ts +30 -0
- package/dist/types/histogram/Histogram.d.ts +3 -3
- package/dist/types/hooks/useSelectableList.d.ts +28 -0
- package/dist/types/index.d.ts +2 -1
- package/dist/types/table/AddColumn.d.ts +2 -2
- package/dist/types/table/BodyCell.d.ts +4 -3
- package/dist/types/table/BodyRow.d.ts +20 -0
- package/dist/types/table/EmptyCell.d.ts +2 -2
- package/dist/types/table/HeaderCell.d.ts +2 -2
- package/dist/types/table/Table.d.ts +1 -1
- package/dist/types/table/types.d.ts +19 -8
- package/dist/types/table/useTableColumns.d.ts +6 -6
- package/dist/types/table/useVirtualTable.d.ts +20 -5
- package/dist/types/tree/TreeNode.d.ts +1 -1
- package/dist/types/tree/TreePanel.d.ts +1 -1
- package/dist/types/tree/types.d.ts +25 -5
- package/dist/types/tree/useTree.d.ts +2 -9
- package/dist/types/tree/utils.d.ts +4 -1
- package/dist/types/virtual/Gallery.d.ts +11 -3
- package/dist/types/virtual/List.d.ts +7 -3
- package/package.json +8 -7
- package/src/checklist/CheckList.tsx +222 -0
- package/src/histogram/Histogram.tsx +9 -2
- package/src/hooks/usePagination.tsx +13 -7
- package/src/hooks/useSelectableList.ts +94 -0
- package/src/index.ts +2 -1
- package/src/table/AddColumn.tsx +2 -2
- package/src/table/BodyCell.tsx +34 -5
- package/src/table/BodyRow.tsx +143 -0
- package/src/table/CheckboxCell.tsx +1 -1
- package/src/table/EmptyCell.tsx +2 -2
- package/src/table/HeaderCell.tsx +27 -13
- package/src/table/Table.tsx +141 -73
- package/src/table/types.ts +22 -7
- package/src/table/useResizer.ts +5 -3
- package/src/table/useTableColumns.ts +7 -7
- package/src/table/useVirtualTable.ts +142 -27
- package/src/tree/TreeNode.tsx +90 -56
- package/src/tree/TreePanel.tsx +23 -3
- package/src/tree/types.ts +32 -4
- package/src/tree/useTree.ts +102 -23
- package/src/tree/utils.ts +23 -8
- package/src/virtual/Gallery.tsx +43 -32
- package/src/virtual/List.tsx +38 -25
|
@@ -11,7 +11,7 @@ import { iconExpandAll, iconCollapseAll } from './types.js';
|
|
|
11
11
|
import { useTree } from './useTree.js';
|
|
12
12
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
13
13
|
|
|
14
|
-
var _excluded = ["ref", "items", "selected", "checked", "checkable", "noLines", "renderer", "searchable", "selectable", "matcher", "filterPlaceholder", "defaultLeafIcon", "defaultNodeIcon", "expander", "onChecked", "onLoad", "onSelect"];
|
|
14
|
+
var _excluded = ["ref", "items", "selected", "checked", "checkable", "noLines", "renderer", "searchable", "selectable", "matcher", "filterPlaceholder", "defaultLeafIcon", "defaultNodeIcon", "expander", "onChecked", "onLoad", "onQuery", "onSelect", "onClick", "sorter", "makeLabel", "makeIcon", "defaultExpanded", "onExpandToggle", "leafClassName", "nodeClassName"];
|
|
15
15
|
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; }
|
|
16
16
|
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; }
|
|
17
17
|
var TreePanel = function TreePanel(_ref) {
|
|
@@ -31,24 +31,38 @@ var TreePanel = function TreePanel(_ref) {
|
|
|
31
31
|
defaultNodeIcon = _ref.defaultNodeIcon,
|
|
32
32
|
_ref$expander = _ref.expander,
|
|
33
33
|
expander = _ref$expander === void 0 ? "box" : _ref$expander,
|
|
34
|
-
onChecked = _ref.onChecked
|
|
35
|
-
_ref.onLoad
|
|
36
|
-
|
|
34
|
+
onChecked = _ref.onChecked,
|
|
35
|
+
onLoad = _ref.onLoad,
|
|
36
|
+
onQuery = _ref.onQuery,
|
|
37
|
+
onSelect = _ref.onSelect,
|
|
38
|
+
onClick = _ref.onClick,
|
|
39
|
+
sorter = _ref.sorter,
|
|
40
|
+
makeLabel = _ref.makeLabel,
|
|
41
|
+
makeIcon = _ref.makeIcon,
|
|
42
|
+
defaultExpanded = _ref.defaultExpanded,
|
|
43
|
+
onExpandToggle = _ref.onExpandToggle,
|
|
44
|
+
leafClassName = _ref.leafClassName,
|
|
45
|
+
nodeClassName = _ref.nodeClassName,
|
|
37
46
|
aria = _objectWithoutProperties(_ref, _excluded);
|
|
38
47
|
var _useTree = useTree({
|
|
39
48
|
items: items,
|
|
40
49
|
checked: checked,
|
|
41
50
|
selected: selected,
|
|
42
51
|
matcher: matcher,
|
|
52
|
+
sorter: sorter,
|
|
53
|
+
onLoad: onLoad,
|
|
54
|
+
onQuery: onQuery,
|
|
43
55
|
onSelect: onSelect,
|
|
44
|
-
onChecked: onChecked
|
|
56
|
+
onChecked: onChecked,
|
|
57
|
+
defaultExpanded: defaultExpanded,
|
|
58
|
+
onExpandToggle: onExpandToggle
|
|
45
59
|
}),
|
|
46
60
|
tree = _useTree.tree,
|
|
47
61
|
toggleExpand = _useTree.toggleExpand,
|
|
48
62
|
toggleCheck = _useTree.toggleCheck,
|
|
49
63
|
expandAll = _useTree.expandAll,
|
|
50
64
|
collapseAll = _useTree.collapseAll,
|
|
51
|
-
|
|
65
|
+
_select = _useTree.select,
|
|
52
66
|
expand = _useTree.expand,
|
|
53
67
|
onFilter = _useTree.onFilter;
|
|
54
68
|
var scrollerRef = useRef(null);
|
|
@@ -74,7 +88,7 @@ var TreePanel = function TreePanel(_ref) {
|
|
|
74
88
|
return expand(id);
|
|
75
89
|
},
|
|
76
90
|
select: function select(id) {
|
|
77
|
-
return
|
|
91
|
+
return _select(id);
|
|
78
92
|
}
|
|
79
93
|
};
|
|
80
94
|
}, []);
|
|
@@ -120,6 +134,7 @@ var TreePanel = function TreePanel(_ref) {
|
|
|
120
134
|
height: (_virtualItems$ = virtualItems[0]) === null || _virtualItems$ === void 0 ? void 0 : _virtualItems$.start
|
|
121
135
|
}
|
|
122
136
|
}), virtualItems.map(function (_ref2) {
|
|
137
|
+
var _makeIcon, _ref3, _ref4;
|
|
123
138
|
var index = _ref2.index,
|
|
124
139
|
key = _ref2.key;
|
|
125
140
|
return /*#__PURE__*/jsx("div", {
|
|
@@ -132,11 +147,14 @@ var TreePanel = function TreePanel(_ref) {
|
|
|
132
147
|
checkable: checkable,
|
|
133
148
|
selectable: selectable,
|
|
134
149
|
defaultLeafIcon: defaultLeafIcon,
|
|
135
|
-
defaultNodeIcon: defaultNodeIcon,
|
|
150
|
+
defaultNodeIcon: (_makeIcon = makeIcon === null || makeIcon === void 0 ? void 0 : makeIcon(tree[index].data)) !== null && _makeIcon !== void 0 ? _makeIcon : defaultNodeIcon,
|
|
136
151
|
onToggle: toggleExpand,
|
|
137
152
|
onChecked: toggleCheck,
|
|
138
|
-
onSelect:
|
|
139
|
-
|
|
153
|
+
onSelect: _select,
|
|
154
|
+
onClick: onClick,
|
|
155
|
+
leafClassName: leafClassName,
|
|
156
|
+
nodeClassName: nodeClassName,
|
|
157
|
+
children: (_ref3 = (_ref4 = tree[index].data && (renderer === null || renderer === void 0 ? void 0 : renderer(tree[index].data))) !== null && _ref4 !== void 0 ? _ref4 : makeLabel === null || makeLabel === void 0 ? void 0 : makeLabel(tree[index].data)) !== null && _ref3 !== void 0 ? _ref3 : tree[index].label
|
|
140
158
|
})
|
|
141
159
|
}, key);
|
|
142
160
|
})]
|
package/dist/esm/tree/useTree.js
CHANGED
|
@@ -5,8 +5,8 @@ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
|
5
5
|
import { useDebounce } from '@react-fabric/core';
|
|
6
6
|
import { EMPTY_ARRAY } from '@react-fabric/utilities';
|
|
7
7
|
import memoizeOne from 'memoize-one';
|
|
8
|
-
import { useRef, useReducer, useEffect
|
|
9
|
-
import { refactorTree, makeTreeMap, flattenTree,
|
|
8
|
+
import { useRef, useCallback, useReducer, useEffect } from 'react';
|
|
9
|
+
import { refactorTree, makeTreeMap, flattenTree, updateSelection, filterTree, updateChecked } from './utils.js';
|
|
10
10
|
|
|
11
11
|
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; }
|
|
12
12
|
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; }
|
|
@@ -19,39 +19,110 @@ var useTree = function useTree(_ref) {
|
|
|
19
19
|
_ref$checked = _ref.checked,
|
|
20
20
|
checked = _ref$checked === void 0 ? EMPTY_ARRAY : _ref$checked,
|
|
21
21
|
selected = _ref.selected,
|
|
22
|
+
sorter = _ref.sorter,
|
|
22
23
|
matcher = _ref.matcher,
|
|
24
|
+
onLoad = _ref.onLoad,
|
|
25
|
+
onQuery = _ref.onQuery,
|
|
23
26
|
onSelect = _ref.onSelect,
|
|
24
|
-
onChecked = _ref.onChecked
|
|
27
|
+
onChecked = _ref.onChecked,
|
|
28
|
+
defaultExpanded = _ref.defaultExpanded,
|
|
29
|
+
onExpandToggle = _ref.onExpandToggle;
|
|
25
30
|
var componentEvents = useRef({
|
|
26
31
|
onSelect: onSelect,
|
|
27
32
|
onChecked: onChecked
|
|
28
33
|
});
|
|
34
|
+
var intialExpand = useRef(defaultExpanded !== null && defaultExpanded !== void 0 ? defaultExpanded : EMPTY_ARRAY);
|
|
29
35
|
var itemList = createItemList(items);
|
|
36
|
+
var fireExpandToggle = useCallback(function (itemMap) {
|
|
37
|
+
var expandedList = itemMap.filter(function (node) {
|
|
38
|
+
return node.open;
|
|
39
|
+
}).map(function (node) {
|
|
40
|
+
return node.id;
|
|
41
|
+
});
|
|
42
|
+
setTimeout(function () {
|
|
43
|
+
return onExpandToggle === null || onExpandToggle === void 0 ? void 0 : onExpandToggle(expandedList);
|
|
44
|
+
}, 100);
|
|
45
|
+
}, [onExpandToggle]);
|
|
46
|
+
var loadChildren = useCallback(function (node) {
|
|
47
|
+
var _node$children;
|
|
48
|
+
if (node.open && !node.leaf && !((_node$children = node.children) !== null && _node$children !== void 0 && _node$children.length)) {
|
|
49
|
+
node.loading = true;
|
|
50
|
+
void Promise.resolve(onLoad === null || onLoad === void 0 ? void 0 : onLoad(node.id)).then(function () {
|
|
51
|
+
var resp = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : EMPTY_ARRAY;
|
|
52
|
+
node.children = refactorTree(resp, {
|
|
53
|
+
sorter: sorter,
|
|
54
|
+
defaultExpanded: defaultExpanded
|
|
55
|
+
}, {
|
|
56
|
+
level: node.level + 1,
|
|
57
|
+
parent: node.id
|
|
58
|
+
});
|
|
59
|
+
})["finally"](function () {
|
|
60
|
+
var _intialExpand$current;
|
|
61
|
+
node.loading = false;
|
|
62
|
+
dispatch({
|
|
63
|
+
type: "loaded"
|
|
64
|
+
});
|
|
65
|
+
((_intialExpand$current = intialExpand.current) === null || _intialExpand$current === void 0 ? void 0 : _intialExpand$current.length) > 0 && dispatch({
|
|
66
|
+
type: "expand",
|
|
67
|
+
id: intialExpand.current.shift()
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
} else {
|
|
71
|
+
var _intialExpand$current2;
|
|
72
|
+
dispatch({
|
|
73
|
+
type: "loaded"
|
|
74
|
+
});
|
|
75
|
+
((_intialExpand$current2 = intialExpand.current) === null || _intialExpand$current2 === void 0 ? void 0 : _intialExpand$current2.length) > 0 && dispatch({
|
|
76
|
+
type: "expand",
|
|
77
|
+
id: intialExpand.current.shift()
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
}, [onLoad]);
|
|
30
81
|
var _useReducer = useReducer(function (state, action) {
|
|
31
82
|
if (action.type === "load") {
|
|
32
|
-
state.items = refactorTree(action.items
|
|
83
|
+
state.items = refactorTree(action.items, {
|
|
84
|
+
sorter: sorter,
|
|
85
|
+
defaultExpanded: defaultExpanded
|
|
86
|
+
});
|
|
33
87
|
state.itemMap = makeTreeMap(state.items);
|
|
34
88
|
state.tree = flattenTree(state.items);
|
|
35
89
|
return _objectSpread({}, state);
|
|
36
90
|
}
|
|
37
91
|
if (action.type === "toggleExpand") {
|
|
38
92
|
var node = state.itemMap.get(action.id);
|
|
39
|
-
|
|
93
|
+
if (node && !node.leaf) {
|
|
94
|
+
node && (node.open = !node.open);
|
|
95
|
+
loadChildren(node);
|
|
96
|
+
return _objectSpread({}, state);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
if (action.type === "loaded") {
|
|
100
|
+
state.itemMap = makeTreeMap(state.items);
|
|
101
|
+
fireExpandToggle(Array.from(state.itemMap.values()));
|
|
40
102
|
state.tree = flattenTree(state.items);
|
|
103
|
+
state.selected && updateSelection(state.itemMap, state.selected, true);
|
|
41
104
|
return _objectSpread({}, state);
|
|
42
105
|
}
|
|
43
106
|
if (action.type === "expand") {
|
|
44
|
-
// TODO: check if children available, if not call onLoad to fetch node children
|
|
45
107
|
var _node = state.itemMap.get(action.id);
|
|
46
|
-
_node &&
|
|
47
|
-
|
|
48
|
-
|
|
108
|
+
if (_node && !_node.leaf) {
|
|
109
|
+
_node.open = true;
|
|
110
|
+
var parentId = _node.parent;
|
|
111
|
+
while (parentId) {
|
|
112
|
+
var _node2 = state.itemMap.get(parentId);
|
|
113
|
+
_node2 && (_node2.open = true);
|
|
114
|
+
parentId = _node2 === null || _node2 === void 0 ? void 0 : _node2.parent;
|
|
115
|
+
}
|
|
116
|
+
loadChildren(_node);
|
|
117
|
+
return _objectSpread({}, state);
|
|
118
|
+
}
|
|
49
119
|
}
|
|
50
120
|
if (action.type === "expandAll") {
|
|
51
|
-
// TODO: prevent opening dynamic nodes that dont have children
|
|
52
121
|
state.itemMap.forEach(function (node) {
|
|
53
|
-
|
|
122
|
+
var _node$children2;
|
|
123
|
+
!node.leaf && ((_node$children2 = node.children) === null || _node$children2 === void 0 ? void 0 : _node$children2.length) && (node.open = true);
|
|
54
124
|
});
|
|
125
|
+
fireExpandToggle(Array.from(state.itemMap.values()));
|
|
55
126
|
state.tree = flattenTree(state.items);
|
|
56
127
|
return _objectSpread({}, state);
|
|
57
128
|
}
|
|
@@ -59,22 +130,28 @@ var useTree = function useTree(_ref) {
|
|
|
59
130
|
state.itemMap.forEach(function (node) {
|
|
60
131
|
!node.leaf && (node.open = false);
|
|
61
132
|
});
|
|
133
|
+
fireExpandToggle([]);
|
|
62
134
|
state.tree = flattenTree(state.items);
|
|
63
135
|
return _objectSpread({}, state);
|
|
64
136
|
}
|
|
65
137
|
if (action.type === "filter") {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
138
|
+
if (onQuery) {
|
|
139
|
+
var _action$query;
|
|
140
|
+
onQuery((_action$query = action.query) !== null && _action$query !== void 0 ? _action$query : "");
|
|
141
|
+
} else {
|
|
142
|
+
filterTree(state.itemMap, action.query, matcher);
|
|
143
|
+
state.tree = flattenTree(state.items);
|
|
144
|
+
return _objectSpread({}, state);
|
|
145
|
+
}
|
|
69
146
|
}
|
|
70
147
|
if (action.type === "select") {
|
|
71
|
-
var _componentEvents$curr, _componentEvents$curr2;
|
|
148
|
+
var _componentEvents$curr, _componentEvents$curr2, _state$itemMap$get;
|
|
72
149
|
if (state.selected) {
|
|
73
150
|
updateSelection(state.itemMap, state.selected);
|
|
74
151
|
}
|
|
75
152
|
updateSelection(state.itemMap, action.id, true);
|
|
76
153
|
state.tree = flattenTree(state.items);
|
|
77
|
-
(_componentEvents$curr = (_componentEvents$curr2 = componentEvents.current).onSelect) === null || _componentEvents$curr === void 0 || _componentEvents$curr.call(_componentEvents$curr2, action.id);
|
|
154
|
+
(_componentEvents$curr = (_componentEvents$curr2 = componentEvents.current).onSelect) === null || _componentEvents$curr === void 0 || _componentEvents$curr.call(_componentEvents$curr2, action.id, (_state$itemMap$get = state.itemMap.get(action.id)) === null || _state$itemMap$get === void 0 ? void 0 : _state$itemMap$get.data);
|
|
78
155
|
return _objectSpread(_objectSpread({}, state), {}, {
|
|
79
156
|
selected: action.id
|
|
80
157
|
});
|
|
@@ -116,10 +193,15 @@ var useTree = function useTree(_ref) {
|
|
|
116
193
|
};
|
|
117
194
|
}, [onSelect, onChecked]);
|
|
118
195
|
useEffect(function () {
|
|
196
|
+
var _intialExpand$current3;
|
|
119
197
|
dispatch({
|
|
120
198
|
type: "load",
|
|
121
199
|
items: itemList
|
|
122
200
|
});
|
|
201
|
+
itemList.length && ((_intialExpand$current3 = intialExpand.current) === null || _intialExpand$current3 === void 0 ? void 0 : _intialExpand$current3.length) > 0 && dispatch({
|
|
202
|
+
type: "expand",
|
|
203
|
+
id: intialExpand.current.shift()
|
|
204
|
+
});
|
|
123
205
|
}, [itemList]);
|
|
124
206
|
useEffect(function () {
|
|
125
207
|
selected && dispatch({
|
package/dist/esm/tree/utils.js
CHANGED
|
@@ -6,7 +6,7 @@ import { isString, matchString, compareValues } from '@react-fabric/utilities';
|
|
|
6
6
|
|
|
7
7
|
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; }
|
|
8
8
|
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; }
|
|
9
|
-
var
|
|
9
|
+
var defaultSorter = function defaultSorter(a, b) {
|
|
10
10
|
if (!!a.leaf !== !!b.leaf) return a.leaf ? 1 : -1;
|
|
11
11
|
return compareValues()(a.label, b.label);
|
|
12
12
|
};
|
|
@@ -28,15 +28,21 @@ var getIntermediate = function getIntermediate() {
|
|
|
28
28
|
};
|
|
29
29
|
|
|
30
30
|
// convert node item to internal node used by the tree
|
|
31
|
-
var refactorTree = function refactorTree(nodes) {
|
|
32
|
-
var
|
|
31
|
+
var refactorTree = function refactorTree(nodes, _ref) {
|
|
32
|
+
var _ref$sorter = _ref.sorter,
|
|
33
|
+
sorter = _ref$sorter === void 0 ? defaultSorter : _ref$sorter,
|
|
34
|
+
_ref$defaultExpanded = _ref.defaultExpanded,
|
|
35
|
+
defaultExpanded = _ref$defaultExpanded === void 0 ? [] : _ref$defaultExpanded;
|
|
36
|
+
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
|
|
33
37
|
level: 0,
|
|
34
38
|
parent: undefined
|
|
35
39
|
};
|
|
36
40
|
var list = [];
|
|
37
|
-
nodes.sort(sorter)
|
|
41
|
+
if (sorter !== false) nodes = nodes.sort(sorter);
|
|
42
|
+
nodes.forEach(function (node) {
|
|
43
|
+
var _node$children;
|
|
38
44
|
list.push(_objectSpread(_objectSpread({
|
|
39
|
-
open:
|
|
45
|
+
open: defaultExpanded.includes(node.id) && !!((_node$children = node.children) !== null && _node$children !== void 0 && _node$children.length),
|
|
40
46
|
level: options.level,
|
|
41
47
|
parent: options.parent,
|
|
42
48
|
checked: 0,
|
|
@@ -47,6 +53,9 @@ var refactorTree = function refactorTree(nodes) {
|
|
|
47
53
|
}, node), {}, {
|
|
48
54
|
leaf: !!node.leaf,
|
|
49
55
|
children: node.children && refactorTree(node.children, {
|
|
56
|
+
sorter: sorter,
|
|
57
|
+
defaultExpanded: defaultExpanded
|
|
58
|
+
}, {
|
|
50
59
|
level: options.level + 1,
|
|
51
60
|
parent: node.id
|
|
52
61
|
})
|
|
@@ -72,11 +81,17 @@ var flattenTree = function flattenTree(nodes) {
|
|
|
72
81
|
return !node.filtered;
|
|
73
82
|
});
|
|
74
83
|
filtered.forEach(function (node, idx) {
|
|
84
|
+
var _node$children2;
|
|
75
85
|
node.lines = [].concat(_toConsumableArray(lines), [idx === filtered.length - 1 ? 2 : 3]);
|
|
76
86
|
list.push(node);
|
|
77
87
|
(node.open || node.childFiltered) && node.children && list.push.apply(list, _toConsumableArray(flattenTree(node.children.filter(function (child) {
|
|
78
88
|
return !child.filtered;
|
|
79
89
|
}), [].concat(_toConsumableArray(lines), [idx === filtered.length - 1 ? 0 : 1]))));
|
|
90
|
+
node.open && ((_node$children2 = node.children) === null || _node$children2 === void 0 ? void 0 : _node$children2.length) === 0 && list.push({
|
|
91
|
+
empty: true,
|
|
92
|
+
leaf: true,
|
|
93
|
+
lines: [].concat(_toConsumableArray(lines), [idx === filtered.length - 1 ? 0 : 1, 2])
|
|
94
|
+
});
|
|
80
95
|
});
|
|
81
96
|
return list;
|
|
82
97
|
};
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
3
4
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
5
|
+
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
4
6
|
import { useEffectDebugger, useDebounce, Skeleton } from '@react-fabric/core';
|
|
5
7
|
import { debounce } from '@react-fabric/utilities';
|
|
6
8
|
import { useVirtualizer } from '@tanstack/react-virtual';
|
|
@@ -10,6 +12,9 @@ import { useDeferredValue, useMemo, useRef, useState, useEffect, useCallback, us
|
|
|
10
12
|
import { Scroller } from './Scroller.js';
|
|
11
13
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
12
14
|
|
|
15
|
+
var _excluded = ["items", "children", "columns", "fullWidth", "maxWidth", "minWidth", "total", "padding", "defaultHeight", "defaultWidth", "hideScroller", "initialScroll", "loading", "onLoadMore", "onScroll", "galleryRef"];
|
|
16
|
+
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; }
|
|
17
|
+
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; }
|
|
13
18
|
var createItemList = memoizeOne(function (items) {
|
|
14
19
|
return items;
|
|
15
20
|
});
|
|
@@ -18,6 +23,11 @@ var _VirtualGallery = function _VirtualGallery(_ref) {
|
|
|
18
23
|
var items = _ref.items,
|
|
19
24
|
children = _ref.children,
|
|
20
25
|
columns = _ref.columns,
|
|
26
|
+
fullWidth = _ref.fullWidth,
|
|
27
|
+
maxWidth = _ref.maxWidth,
|
|
28
|
+
minWidth = _ref.minWidth,
|
|
29
|
+
_ref$total = _ref.total,
|
|
30
|
+
total = _ref$total === void 0 ? 0 : _ref$total,
|
|
21
31
|
_ref$padding = _ref.padding,
|
|
22
32
|
padding = _ref$padding === void 0 ? "md" : _ref$padding,
|
|
23
33
|
_ref$defaultHeight = _ref.defaultHeight,
|
|
@@ -29,16 +39,17 @@ var _VirtualGallery = function _VirtualGallery(_ref) {
|
|
|
29
39
|
loading = _ref.loading,
|
|
30
40
|
onLoadMore = _ref.onLoadMore,
|
|
31
41
|
onScroll = _ref.onScroll,
|
|
32
|
-
galleryRef = _ref.galleryRef
|
|
42
|
+
galleryRef = _ref.galleryRef,
|
|
43
|
+
aria = _objectWithoutProperties(_ref, _excluded);
|
|
33
44
|
var count = useDeferredValue(items.length);
|
|
34
45
|
var extraSize = useMemo(function () {
|
|
35
|
-
return onLoadMore ?
|
|
46
|
+
return onLoadMore ? 8 : 0;
|
|
36
47
|
}, [onLoadMore]);
|
|
37
|
-
var itemList = createItemList(items.map(function (item,
|
|
48
|
+
var itemList = createItemList(items.map(function (item, index) {
|
|
38
49
|
return {
|
|
39
|
-
index:
|
|
40
|
-
|
|
41
|
-
isLast:
|
|
50
|
+
index: index,
|
|
51
|
+
item: item,
|
|
52
|
+
isLast: index + 1 === items.length
|
|
42
53
|
};
|
|
43
54
|
}));
|
|
44
55
|
var scrollerRef = useRef(null);
|
|
@@ -112,26 +123,24 @@ var _VirtualGallery = function _VirtualGallery(_ref) {
|
|
|
112
123
|
setScrollActive(calculateActiveScroll());
|
|
113
124
|
}, [count, calculateActiveScroll]);
|
|
114
125
|
useEffect(function () {
|
|
115
|
-
|
|
116
|
-
var
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
};
|
|
123
|
-
}, [onLoadMore, loading, itemList, virtualItems, count, columnCount]);
|
|
124
|
-
useEffect(function () {
|
|
125
|
-
var _virtualItems$2;
|
|
126
|
-
var firstItem = (_virtualItems$2 = virtualItems[0]) === null || _virtualItems$2 === void 0 ? void 0 : _virtualItems$2.index;
|
|
127
|
-
if (onLoadMore && firstItem !== undefined && items[firstItem * columnCount] === null) {
|
|
126
|
+
if (onLoadMore) {
|
|
127
|
+
var _virtualItems$2, _virtualItems$slice$p;
|
|
128
|
+
var firstItem = (_virtualItems$2 = virtualItems[0]) === null || _virtualItems$2 === void 0 ? void 0 : _virtualItems$2.index;
|
|
129
|
+
var lastItem = virtualItems === null || virtualItems === void 0 || (_virtualItems$slice$p = virtualItems.slice(-1).pop()) === null || _virtualItems$slice$p === void 0 ? void 0 : _virtualItems$slice$p.index;
|
|
130
|
+
var lastIndex = (lastItem !== null && lastItem !== void 0 ? lastItem : 0) * columnCount + columnCount;
|
|
131
|
+
var canLoadPrevPage = firstItem !== undefined && items[firstItem * columnCount] === null;
|
|
132
|
+
var canLoadNextPage = lastItem !== undefined && lastIndex >= count - 1 && count < total;
|
|
128
133
|
var db = debounce(onLoadMore);
|
|
129
|
-
|
|
134
|
+
if (canLoadPrevPage) {
|
|
135
|
+
db(firstItem);
|
|
136
|
+
} else if (!loading && canLoadNextPage) {
|
|
137
|
+
db(lastItem + 1);
|
|
138
|
+
}
|
|
130
139
|
return function () {
|
|
131
140
|
return db.cancel();
|
|
132
141
|
};
|
|
133
142
|
}
|
|
134
|
-
}, [onLoadMore,
|
|
143
|
+
}, [onLoadMore, virtualItems]);
|
|
135
144
|
useLayoutEffect(function () {
|
|
136
145
|
setTimeout(function () {
|
|
137
146
|
initialScroll && virtualizer.scrollToIndex(Math.floor(initialScroll / columnCount), {
|
|
@@ -163,17 +172,22 @@ var _VirtualGallery = function _VirtualGallery(_ref) {
|
|
|
163
172
|
}
|
|
164
173
|
};
|
|
165
174
|
}, [virtualizer, columnCount]);
|
|
166
|
-
return /*#__PURE__*/jsx("div", {
|
|
175
|
+
return /*#__PURE__*/jsx("div", _objectSpread(_objectSpread({
|
|
167
176
|
ref: scrollerRef,
|
|
168
177
|
onScroll: handleScroll,
|
|
169
|
-
className: classNames("area-content bg-base overflow-auto contain-strict")
|
|
178
|
+
className: classNames("area-content bg-base overflow-auto contain-strict")
|
|
179
|
+
}, aria), {}, {
|
|
170
180
|
children: /*#__PURE__*/jsxs("div", {
|
|
171
181
|
className: classNames("inline-flex flex-nowrap gap-2 justify-center min-h-full min-w-full"),
|
|
172
182
|
children: [/*#__PURE__*/jsx("div", {
|
|
173
|
-
className: classNames("box-content", padding === "sm" && "p-1", padding === "md" && "p-2", padding === "lg" && "p-4"),
|
|
183
|
+
className: classNames("box-content", fullWidth && "flex-1", padding === "sm" && "p-1", padding === "md" && "p-2", padding === "lg" && "p-4"),
|
|
184
|
+
style: {
|
|
185
|
+
minWidth: minWidth,
|
|
186
|
+
maxWidth: maxWidth
|
|
187
|
+
},
|
|
174
188
|
children: /*#__PURE__*/jsxs("div", {
|
|
175
189
|
style: {
|
|
176
|
-
height: virtualizer.getTotalSize()
|
|
190
|
+
height: virtualizer.getTotalSize() + extraSize
|
|
177
191
|
},
|
|
178
192
|
children: [/*#__PURE__*/jsx("div", {
|
|
179
193
|
style: {
|
|
@@ -184,7 +198,7 @@ var _VirtualGallery = function _VirtualGallery(_ref) {
|
|
|
184
198
|
index = _ref3.index,
|
|
185
199
|
measureElement = _ref3.measureElement;
|
|
186
200
|
return /*#__PURE__*/jsx("div", {
|
|
187
|
-
className: "flex",
|
|
201
|
+
className: "flex justify-start",
|
|
188
202
|
"data-index": index,
|
|
189
203
|
ref: measureElement,
|
|
190
204
|
children: columnMap.map(function (col) {
|
|
@@ -220,7 +234,7 @@ var _VirtualGallery = function _VirtualGallery(_ref) {
|
|
|
220
234
|
})
|
|
221
235
|
})]
|
|
222
236
|
})
|
|
223
|
-
});
|
|
237
|
+
}));
|
|
224
238
|
};
|
|
225
239
|
_VirtualGallery.displayName = "VirtualGallery";
|
|
226
240
|
var GenericMemo = memo;
|
package/dist/esm/virtual/List.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
3
4
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
5
|
+
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
4
6
|
import { useDebounce, Skeleton } from '@react-fabric/core';
|
|
5
7
|
import { debounce } from '@react-fabric/utilities';
|
|
6
8
|
import { useVirtualizer } from '@tanstack/react-virtual';
|
|
@@ -10,14 +12,21 @@ import { useDeferredValue, useMemo, useRef, useEffect, useCallback, useState, us
|
|
|
10
12
|
import { Scroller } from './Scroller.js';
|
|
11
13
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
12
14
|
|
|
15
|
+
var _excluded = ["items", "total", "children", "fullWidth", "maxWidth", "minWidth", "padding", "orientation", "defaultHeight", "defaultWidth", "hideScroller", "initialScroll", "loading", "onLoadMore", "onScroll", "listRef"];
|
|
16
|
+
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; }
|
|
17
|
+
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; }
|
|
13
18
|
var createItemList = memoizeOne(function (items) {
|
|
14
19
|
return items;
|
|
15
20
|
});
|
|
16
21
|
var _VirtualList = function _VirtualList(_ref) {
|
|
17
22
|
var _virtualItems$3, _virtualItems$4;
|
|
18
23
|
var items = _ref.items,
|
|
24
|
+
_ref$total = _ref.total,
|
|
25
|
+
total = _ref$total === void 0 ? 0 : _ref$total,
|
|
19
26
|
children = _ref.children,
|
|
20
27
|
fullWidth = _ref.fullWidth,
|
|
28
|
+
maxWidth = _ref.maxWidth,
|
|
29
|
+
minWidth = _ref.minWidth,
|
|
21
30
|
_ref$padding = _ref.padding,
|
|
22
31
|
padding = _ref$padding === void 0 ? "md" : _ref$padding,
|
|
23
32
|
_ref$orientation = _ref.orientation,
|
|
@@ -31,16 +40,17 @@ var _VirtualList = function _VirtualList(_ref) {
|
|
|
31
40
|
loading = _ref.loading,
|
|
32
41
|
onLoadMore = _ref.onLoadMore,
|
|
33
42
|
onScroll = _ref.onScroll,
|
|
34
|
-
listRef = _ref.listRef
|
|
43
|
+
listRef = _ref.listRef,
|
|
44
|
+
aria = _objectWithoutProperties(_ref, _excluded);
|
|
35
45
|
var count = useDeferredValue(items.length);
|
|
36
46
|
var extraSize = useMemo(function () {
|
|
37
|
-
return onLoadMore ?
|
|
47
|
+
return onLoadMore ? 8 : 0;
|
|
38
48
|
}, [onLoadMore]);
|
|
39
|
-
var itemList = createItemList(items.map(function (item,
|
|
49
|
+
var itemList = createItemList(items.map(function (item, index) {
|
|
40
50
|
return {
|
|
41
|
-
index:
|
|
42
|
-
|
|
43
|
-
isLast:
|
|
51
|
+
index: index,
|
|
52
|
+
item: item,
|
|
53
|
+
isLast: index + 1 === items.length
|
|
44
54
|
};
|
|
45
55
|
}));
|
|
46
56
|
var scrollerRef = useRef(null);
|
|
@@ -103,26 +113,23 @@ var _VirtualList = function _VirtualList(_ref) {
|
|
|
103
113
|
setScrollActive(calculateActiveScroll());
|
|
104
114
|
}, [itemList, calculateActiveScroll]);
|
|
105
115
|
useEffect(function () {
|
|
106
|
-
|
|
107
|
-
var
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
return db.cancel();
|
|
113
|
-
};
|
|
114
|
-
}, [onLoadMore, loading, itemList, virtualItems, count]);
|
|
115
|
-
useEffect(function () {
|
|
116
|
-
var _virtualItems$2;
|
|
117
|
-
var firstItem = (_virtualItems$2 = virtualItems[0]) === null || _virtualItems$2 === void 0 ? void 0 : _virtualItems$2.index;
|
|
118
|
-
if (onLoadMore && firstItem !== undefined && items[firstItem] === null) {
|
|
116
|
+
if (onLoadMore) {
|
|
117
|
+
var _virtualItems$2, _virtualItems$slice$p;
|
|
118
|
+
var firstItem = (_virtualItems$2 = virtualItems[0]) === null || _virtualItems$2 === void 0 ? void 0 : _virtualItems$2.index;
|
|
119
|
+
var lastItem = virtualItems === null || virtualItems === void 0 || (_virtualItems$slice$p = virtualItems.slice(-1).pop()) === null || _virtualItems$slice$p === void 0 ? void 0 : _virtualItems$slice$p.index;
|
|
120
|
+
var canLoadPrevPage = firstItem !== undefined && items[firstItem] === null;
|
|
121
|
+
var canLoadNextPage = lastItem !== undefined && lastItem === count - 1 && count < total;
|
|
119
122
|
var db = debounce(onLoadMore);
|
|
120
|
-
|
|
123
|
+
if (canLoadPrevPage) {
|
|
124
|
+
db(firstItem);
|
|
125
|
+
} else if (!loading && canLoadNextPage) {
|
|
126
|
+
db(lastItem + 1);
|
|
127
|
+
}
|
|
121
128
|
return function () {
|
|
122
129
|
return db.cancel();
|
|
123
130
|
};
|
|
124
131
|
}
|
|
125
|
-
}, [onLoadMore,
|
|
132
|
+
}, [onLoadMore, virtualItems]);
|
|
126
133
|
useLayoutEffect(function () {
|
|
127
134
|
setTimeout(function () {
|
|
128
135
|
initialScroll && virtualizer.scrollToIndex(initialScroll, {
|
|
@@ -154,19 +161,24 @@ var _VirtualList = function _VirtualList(_ref) {
|
|
|
154
161
|
}
|
|
155
162
|
};
|
|
156
163
|
}, [virtualizer]);
|
|
157
|
-
return /*#__PURE__*/jsx("div", {
|
|
164
|
+
return /*#__PURE__*/jsx("div", _objectSpread(_objectSpread({
|
|
158
165
|
ref: scrollerRef,
|
|
159
166
|
onScroll: handleScroll,
|
|
160
|
-
className: classNames("area-content bg-base overflow-auto contain-strict")
|
|
167
|
+
className: classNames("area-content bg-base overflow-auto contain-strict")
|
|
168
|
+
}, aria), {}, {
|
|
161
169
|
children: /*#__PURE__*/jsxs("div", {
|
|
162
170
|
className: classNames("inline-flex flex-nowrap gap-2 justify-center min-h-full min-w-full", orientation === "horizontal" && "flex-col"),
|
|
163
171
|
children: [/*#__PURE__*/jsxs("div", {
|
|
164
172
|
className: classNames("box-content inline-flex flex-nowrap", orientation === "vertical" && "flex-col", orientation === "horizontal" && "flex-row", fullWidth && "flex-1", padding === "sm" && "p-1", padding === "md" && "p-2", padding === "lg" && "p-4"),
|
|
173
|
+
style: {
|
|
174
|
+
minWidth: minWidth,
|
|
175
|
+
maxWidth: maxWidth
|
|
176
|
+
},
|
|
165
177
|
children: [/*#__PURE__*/jsxs("div", {
|
|
166
178
|
style: orientation === "vertical" ? {
|
|
167
|
-
height: virtualizer.getTotalSize()
|
|
179
|
+
height: virtualizer.getTotalSize() + extraSize
|
|
168
180
|
} : {
|
|
169
|
-
width: virtualizer.getTotalSize()
|
|
181
|
+
width: virtualizer.getTotalSize() + extraSize
|
|
170
182
|
},
|
|
171
183
|
children: [/*#__PURE__*/jsx("div", {
|
|
172
184
|
style: orientation === "vertical" ? {
|
|
@@ -185,9 +197,9 @@ var _VirtualList = function _VirtualList(_ref) {
|
|
|
185
197
|
children: children(itemList[index])
|
|
186
198
|
}, key);
|
|
187
199
|
})]
|
|
188
|
-
}),
|
|
189
|
-
className: orientation === "horizontal" ? "min-w-16" : "
|
|
190
|
-
children:
|
|
200
|
+
}), loading && /*#__PURE__*/jsx("div", {
|
|
201
|
+
className: orientation === "horizontal" ? "min-w-16" : "",
|
|
202
|
+
children: /*#__PURE__*/jsx(Skeleton, {})
|
|
191
203
|
})]
|
|
192
204
|
}), !hideScroller && /*#__PURE__*/jsx("div", {
|
|
193
205
|
className: classNames(orientation === "vertical" && "self-end sticky bottom-2", orientation === "horizontal" && "self-end sticky end-2"),
|
|
@@ -209,7 +221,7 @@ var _VirtualList = function _VirtualList(_ref) {
|
|
|
209
221
|
})
|
|
210
222
|
})]
|
|
211
223
|
})
|
|
212
|
-
});
|
|
224
|
+
}));
|
|
213
225
|
};
|
|
214
226
|
_VirtualList.displayName = "VirtualList";
|
|
215
227
|
var GenericMemo = memo;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type BadgeType, type TestProps } from "@react-fabric/core/dist/types/types";
|
|
2
|
+
import { type FC } from "react";
|
|
3
|
+
import { type SelectableProps } from "../hooks/useSelectableList";
|
|
4
|
+
export interface CheckListItem extends KeyValue {
|
|
5
|
+
id: string;
|
|
6
|
+
label: string;
|
|
7
|
+
icon?: string;
|
|
8
|
+
badge?: BadgeType;
|
|
9
|
+
isDisabled?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface CheckListProps extends SelectableProps, TestProps {
|
|
12
|
+
/**
|
|
13
|
+
* list items
|
|
14
|
+
*/
|
|
15
|
+
items: CheckListItem[];
|
|
16
|
+
/**
|
|
17
|
+
* allow negative selections
|
|
18
|
+
*/
|
|
19
|
+
allowNegative?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* max list items
|
|
22
|
+
*/
|
|
23
|
+
maxCount?: number;
|
|
24
|
+
/**
|
|
25
|
+
* message for empty list
|
|
26
|
+
*/
|
|
27
|
+
emptyMessage?: string;
|
|
28
|
+
sortItems?: boolean;
|
|
29
|
+
}
|
|
30
|
+
export declare const CheckList: FC<CheckListProps>;
|