@elliemae/ds-treeview 2.2.0-alpha.5 → 2.2.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/TreeView.js +31 -49
- package/cjs/TreeViewContext.js +35 -53
- package/cjs/config/cssClassesConstants.js +13 -41
- package/cjs/config/useTreeview.js +80 -108
- package/cjs/index.js +27 -37
- package/cjs/parts/CheckboxSelectable.js +59 -70
- package/cjs/parts/ChildrenCountDisplayer.js +28 -45
- package/cjs/parts/ExpandCaret.js +83 -85
- package/cjs/parts/Icon.js +31 -46
- package/cjs/parts/NestingSpace.js +35 -43
- package/cjs/parts/RadioSelectable.js +37 -52
- package/cjs/parts/TreeItem.js +147 -128
- package/cjs/parts/TreeItemText.js +95 -88
- package/cjs/parts/TreeList.js +130 -117
- package/cjs/plugins/dnd/TreeDndPlugin.js +36 -51
- package/cjs/plugins/dnd/index.js +10 -28
- package/cjs/plugins/index.js +22 -34
- package/cjs/plugins/roving/TreeRovingPlugin.js +7 -35
- package/cjs/plugins/roving/index.js +9 -28
- package/cjs/plugins/searchable/SearchableTreePlugin.js +7 -35
- package/cjs/plugins/searchable/index.js +9 -28
- package/cjs/plugins/selectable/SelectablePluginTree.js +7 -35
- package/cjs/plugins/selectable/index.js +9 -28
- package/cjs/plugins/toolbar/TreeToolbarPlugin.js +7 -35
- package/cjs/plugins/toolbar/index.js +9 -28
- package/cjs/plugins/tree/TreeDataPlugin.js +7 -35
- package/cjs/plugins/tree/index.js +9 -28
- package/cjs/plugins/virtualization/TreeVirtualizationPlugin.js +7 -35
- package/cjs/plugins/virtualization/index.js +9 -28
- package/cjs/react-desc-prop-types.js +53 -82
- package/cjs/related-components/TreeViewSearchBar.js +40 -42
- package/cjs/sharedTypes.js +2 -27
- package/cjs/utils/array-helpers.js +11 -35
- package/cjs/utils/dnd-helpers.js +84 -90
- package/cjs/utils/group-expands-helpers.js +59 -86
- package/cjs/utils/keyboard-helpers.js +88 -84
- package/cjs/utils/object-helpers.js +36 -43
- package/cjs/utils/refs-helpers.js +22 -43
- package/cjs/utils/selectable-helper.js +53 -61
- package/cjs/utils/string-helpers.js +7 -35
- package/cjs/utils/tree-helpers.js +135 -105
- package/cjs/utils/useDnDHelpers.js +118 -97
- package/cjs/utils/useInstanceRefActions.js +43 -54
- package/cjs/utils/useTree.js +78 -76
- package/esm/TreeView.js +20 -18
- package/esm/TreeViewContext.js +29 -24
- package/esm/config/cssClassesConstants.js +6 -12
- package/esm/config/useTreeview.js +54 -61
- package/esm/index.js +9 -8
- package/esm/parts/CheckboxSelectable.js +46 -36
- package/esm/parts/ChildrenCountDisplayer.js +20 -16
- package/esm/parts/ExpandCaret.js +72 -54
- package/esm/parts/Icon.js +22 -16
- package/esm/parts/NestingSpace.js +27 -14
- package/esm/parts/RadioSelectable.js +28 -20
- package/esm/parts/TreeItem.js +127 -91
- package/esm/parts/TreeItemText.js +85 -58
- package/esm/parts/TreeList.js +117 -88
- package/esm/plugins/dnd/TreeDndPlugin.js +26 -21
- package/esm/plugins/dnd/index.js +1 -3
- package/esm/plugins/index.js +7 -9
- package/esm/plugins/roving/TreeRovingPlugin.js +3 -6
- package/esm/plugins/roving/index.js +1 -3
- package/esm/plugins/searchable/SearchableTreePlugin.js +3 -6
- package/esm/plugins/searchable/index.js +1 -3
- package/esm/plugins/selectable/SelectablePluginTree.js +3 -6
- package/esm/plugins/selectable/index.js +1 -3
- package/esm/plugins/toolbar/TreeToolbarPlugin.js +3 -6
- package/esm/plugins/toolbar/index.js +1 -3
- package/esm/plugins/tree/TreeDataPlugin.js +3 -6
- package/esm/plugins/tree/index.js +1 -3
- package/esm/plugins/virtualization/TreeVirtualizationPlugin.js +3 -6
- package/esm/plugins/virtualization/index.js +1 -3
- package/esm/react-desc-prop-types.js +43 -47
- package/esm/related-components/TreeViewSearchBar.js +32 -13
- package/esm/sharedTypes.js +1 -2
- package/esm/utils/array-helpers.js +6 -6
- package/esm/utils/dnd-helpers.js +73 -58
- package/esm/utils/group-expands-helpers.js +46 -56
- package/esm/utils/keyboard-helpers.js +72 -45
- package/esm/utils/object-helpers.js +31 -14
- package/esm/utils/refs-helpers.js +19 -15
- package/esm/utils/selectable-helper.js +43 -32
- package/esm/utils/string-helpers.js +3 -6
- package/esm/utils/tree-helpers.js +119 -74
- package/esm/utils/useDnDHelpers.js +106 -60
- package/esm/utils/useInstanceRefActions.js +35 -21
- package/esm/utils/useTree.js +57 -35
- package/package.json +10 -10
- package/types/TreeView.d.ts +1 -1
- package/cjs/TreeView.js.map +0 -7
- package/cjs/TreeViewContext.js.map +0 -7
- package/cjs/config/cssClassesConstants.js.map +0 -7
- package/cjs/config/useTreeview.js.map +0 -7
- package/cjs/index.js.map +0 -7
- package/cjs/parts/CheckboxSelectable.js.map +0 -7
- package/cjs/parts/ChildrenCountDisplayer.js.map +0 -7
- package/cjs/parts/ExpandCaret.js.map +0 -7
- package/cjs/parts/Icon.js.map +0 -7
- package/cjs/parts/NestingSpace.js.map +0 -7
- package/cjs/parts/RadioSelectable.js.map +0 -7
- package/cjs/parts/TreeItem.js.map +0 -7
- package/cjs/parts/TreeItemText.js.map +0 -7
- package/cjs/parts/TreeList.js.map +0 -7
- package/cjs/plugins/dnd/TreeDndPlugin.js.map +0 -7
- package/cjs/plugins/dnd/index.js.map +0 -7
- package/cjs/plugins/index.js.map +0 -7
- package/cjs/plugins/roving/TreeRovingPlugin.js.map +0 -7
- package/cjs/plugins/roving/index.js.map +0 -7
- package/cjs/plugins/searchable/SearchableTreePlugin.js.map +0 -7
- package/cjs/plugins/searchable/index.js.map +0 -7
- package/cjs/plugins/selectable/SelectablePluginTree.js.map +0 -7
- package/cjs/plugins/selectable/index.js.map +0 -7
- package/cjs/plugins/toolbar/TreeToolbarPlugin.js.map +0 -7
- package/cjs/plugins/toolbar/index.js.map +0 -7
- package/cjs/plugins/tree/TreeDataPlugin.js.map +0 -7
- package/cjs/plugins/tree/index.js.map +0 -7
- package/cjs/plugins/virtualization/TreeVirtualizationPlugin.js.map +0 -7
- package/cjs/plugins/virtualization/index.js.map +0 -7
- package/cjs/react-desc-prop-types.js.map +0 -7
- package/cjs/related-components/TreeViewSearchBar.js.map +0 -7
- package/cjs/sharedTypes.js.map +0 -7
- package/cjs/utils/array-helpers.js.map +0 -7
- package/cjs/utils/dnd-helpers.js.map +0 -7
- package/cjs/utils/group-expands-helpers.js.map +0 -7
- package/cjs/utils/keyboard-helpers.js.map +0 -7
- package/cjs/utils/object-helpers.js.map +0 -7
- package/cjs/utils/refs-helpers.js.map +0 -7
- package/cjs/utils/selectable-helper.js.map +0 -7
- package/cjs/utils/string-helpers.js.map +0 -7
- package/cjs/utils/tree-helpers.js.map +0 -7
- package/cjs/utils/useDnDHelpers.js.map +0 -7
- package/cjs/utils/useInstanceRefActions.js.map +0 -7
- package/cjs/utils/useTree.js.map +0 -7
- package/esm/TreeView.js.map +0 -7
- package/esm/TreeViewContext.js.map +0 -7
- package/esm/config/cssClassesConstants.js.map +0 -7
- package/esm/config/useTreeview.js.map +0 -7
- package/esm/index.js.map +0 -7
- package/esm/parts/CheckboxSelectable.js.map +0 -7
- package/esm/parts/ChildrenCountDisplayer.js.map +0 -7
- package/esm/parts/ExpandCaret.js.map +0 -7
- package/esm/parts/Icon.js.map +0 -7
- package/esm/parts/NestingSpace.js.map +0 -7
- package/esm/parts/RadioSelectable.js.map +0 -7
- package/esm/parts/TreeItem.js.map +0 -7
- package/esm/parts/TreeItemText.js.map +0 -7
- package/esm/parts/TreeList.js.map +0 -7
- package/esm/plugins/dnd/TreeDndPlugin.js.map +0 -7
- package/esm/plugins/dnd/index.js.map +0 -7
- package/esm/plugins/index.js.map +0 -7
- package/esm/plugins/roving/TreeRovingPlugin.js.map +0 -7
- package/esm/plugins/roving/index.js.map +0 -7
- package/esm/plugins/searchable/SearchableTreePlugin.js.map +0 -7
- package/esm/plugins/searchable/index.js.map +0 -7
- package/esm/plugins/selectable/SelectablePluginTree.js.map +0 -7
- package/esm/plugins/selectable/index.js.map +0 -7
- package/esm/plugins/toolbar/TreeToolbarPlugin.js.map +0 -7
- package/esm/plugins/toolbar/index.js.map +0 -7
- package/esm/plugins/tree/TreeDataPlugin.js.map +0 -7
- package/esm/plugins/tree/index.js.map +0 -7
- package/esm/plugins/virtualization/TreeVirtualizationPlugin.js.map +0 -7
- package/esm/plugins/virtualization/index.js.map +0 -7
- package/esm/react-desc-prop-types.js.map +0 -7
- package/esm/related-components/TreeViewSearchBar.js.map +0 -7
- package/esm/sharedTypes.js.map +0 -7
- package/esm/utils/array-helpers.js.map +0 -7
- package/esm/utils/dnd-helpers.js.map +0 -7
- package/esm/utils/group-expands-helpers.js.map +0 -7
- package/esm/utils/keyboard-helpers.js.map +0 -7
- package/esm/utils/object-helpers.js.map +0 -7
- package/esm/utils/refs-helpers.js.map +0 -7
- package/esm/utils/selectable-helper.js.map +0 -7
- package/esm/utils/string-helpers.js.map +0 -7
- package/esm/utils/tree-helpers.js.map +0 -7
- package/esm/utils/useDnDHelpers.js.map +0 -7
- package/esm/utils/useInstanceRefActions.js.map +0 -7
- package/esm/utils/useTree.js.map +0 -7
|
@@ -1,45 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
return (module2, temp) => {
|
|
25
|
-
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
26
|
-
};
|
|
27
|
-
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
28
|
-
var keyboard_helpers_exports = {};
|
|
29
|
-
__export(keyboard_helpers_exports, {
|
|
30
|
-
useGlobalKeyboardListener: () => useGlobalKeyboardListener,
|
|
31
|
-
useGlobalToggleAllExpandShortcut: () => useGlobalToggleAllExpandShortcut,
|
|
32
|
-
useOnItemKeyDown: () => useOnItemKeyDown
|
|
33
|
-
});
|
|
34
|
-
var React = __toESM(require("react"));
|
|
35
|
-
var import_react = require("react");
|
|
36
|
-
var import_TreeViewContext = __toESM(require("../TreeViewContext"));
|
|
37
|
-
var import_tree_helpers = require("./tree-helpers");
|
|
38
|
-
var import_group_expands_helpers = require("./group-expands-helpers");
|
|
39
|
-
const useOnItemKeyDown = (item) => {
|
|
40
|
-
const ctx = (0, import_react.useContext)(import_TreeViewContext.default);
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var TreeViewContext = require('../TreeViewContext.js');
|
|
7
|
+
var treeHelpers = require('./tree-helpers.js');
|
|
8
|
+
var groupExpandsHelpers = require('./group-expands-helpers.js');
|
|
9
|
+
|
|
10
|
+
/* eslint-disable max-params */
|
|
11
|
+
// 9 tab
|
|
12
|
+
// 13 enter
|
|
13
|
+
// 32 space
|
|
14
|
+
// 37 left arrow
|
|
15
|
+
// 38 up arrow
|
|
16
|
+
// 39 right arrow
|
|
17
|
+
// 40 down arrow
|
|
18
|
+
// 35 end
|
|
19
|
+
// 36 home
|
|
20
|
+
// 56 number 8
|
|
21
|
+
// 106 (NumPad) *
|
|
22
|
+
const useOnItemKeyDown = item => {
|
|
23
|
+
const ctx = React.useContext(TreeViewContext["default"]);
|
|
41
24
|
const {
|
|
42
|
-
props: {
|
|
25
|
+
props: {
|
|
26
|
+
onItemFocus
|
|
27
|
+
},
|
|
43
28
|
triggerTreeRerender,
|
|
44
29
|
isDragging,
|
|
45
30
|
visibleItems,
|
|
@@ -47,70 +32,95 @@ const useOnItemKeyDown = (item) => {
|
|
|
47
32
|
setSelectedItem,
|
|
48
33
|
setLatestToggledItem,
|
|
49
34
|
updateUserExpandedState,
|
|
50
|
-
virtualListHelpers: {
|
|
35
|
+
virtualListHelpers: {
|
|
36
|
+
scrollToIndex
|
|
37
|
+
}
|
|
51
38
|
} = ctx;
|
|
52
|
-
const {
|
|
53
|
-
|
|
39
|
+
const {
|
|
40
|
+
isGroup,
|
|
41
|
+
isExpanded
|
|
42
|
+
} = item;
|
|
43
|
+
const onItemFocusCurry = React.useCallback(newFocusItem => onItemFocus({
|
|
54
44
|
itemIndex: newFocusItem.virtualIndex,
|
|
55
|
-
scrollToItem: (
|
|
45
|
+
scrollToItem: function () {
|
|
46
|
+
let opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
|
47
|
+
align: 'start'
|
|
48
|
+
};
|
|
49
|
+
return scrollToIndex(newFocusItem.virtualIndex, opts);
|
|
50
|
+
},
|
|
56
51
|
item: newFocusItem
|
|
57
52
|
}), [onItemFocus, scrollToIndex]);
|
|
58
|
-
const onItemKeyDown =
|
|
59
|
-
const {
|
|
53
|
+
const onItemKeyDown = React.useCallback(e => {
|
|
54
|
+
const {
|
|
55
|
+
keyCode
|
|
56
|
+
} = e;
|
|
57
|
+
|
|
60
58
|
if (!isDragging) {
|
|
61
|
-
if (keyCode !== 9)
|
|
62
|
-
|
|
63
|
-
if (keyCode === 13 || keyCode === 32)
|
|
64
|
-
|
|
59
|
+
if (keyCode !== 9) e.preventDefault(); // allow tab/shift+tab
|
|
60
|
+
|
|
61
|
+
if (keyCode === 13 || keyCode === 32) setSelectedItem(item);
|
|
62
|
+
|
|
65
63
|
if (keyCode === 37) {
|
|
66
64
|
if (isGroup && isExpanded) {
|
|
67
|
-
|
|
65
|
+
groupExpandsHelpers.toggleItemExpand(item, triggerTreeRerender, updateUserExpandedState, scrollToIndex);
|
|
68
66
|
setLatestToggledItem(item);
|
|
69
67
|
}
|
|
70
68
|
}
|
|
69
|
+
|
|
71
70
|
if (keyCode === 39) {
|
|
72
71
|
if (isGroup && !isExpanded) {
|
|
73
|
-
|
|
72
|
+
groupExpandsHelpers.toggleItemExpand(item, triggerTreeRerender, updateUserExpandedState, scrollToIndex);
|
|
74
73
|
setLatestToggledItem(item);
|
|
75
74
|
}
|
|
76
75
|
}
|
|
77
|
-
|
|
78
|
-
|
|
76
|
+
|
|
77
|
+
const {
|
|
78
|
+
virtualIndex
|
|
79
|
+
} = item;
|
|
80
|
+
|
|
81
|
+
if (typeof virtualIndex === 'number') {
|
|
79
82
|
const lastItemIndex = visibleItems.length - 1;
|
|
83
|
+
|
|
80
84
|
if (keyCode === 38) {
|
|
81
85
|
const isLoopedFocus = virtualIndex === 0;
|
|
82
86
|
const newFocusIndex = isLoopedFocus ? lastItemIndex : virtualIndex - 1;
|
|
83
87
|
const newFocusItem = visibleItems[newFocusIndex];
|
|
84
88
|
scrollToIndex(newFocusIndex);
|
|
89
|
+
|
|
85
90
|
if (isLoopedFocus) {
|
|
91
|
+
// when looping the list from start to end we need to wait a bit before focusing
|
|
86
92
|
setTimeout(() => {
|
|
87
93
|
setFocusedItem(newFocusItem);
|
|
88
|
-
|
|
94
|
+
treeHelpers.focusItem(newFocusItem);
|
|
89
95
|
onItemFocusCurry(newFocusItem);
|
|
90
96
|
}, 300);
|
|
91
97
|
} else {
|
|
92
98
|
setFocusedItem(newFocusItem);
|
|
93
99
|
onItemFocusCurry(newFocusItem);
|
|
94
|
-
|
|
100
|
+
treeHelpers.focusItem(newFocusItem);
|
|
95
101
|
}
|
|
96
102
|
}
|
|
103
|
+
|
|
97
104
|
if (keyCode === 40) {
|
|
98
105
|
const isLoopedFocus = virtualIndex === lastItemIndex;
|
|
99
106
|
const newFocusIndex = isLoopedFocus ? 0 : virtualIndex + 1;
|
|
100
107
|
const newFocusItem = visibleItems[newFocusIndex];
|
|
101
108
|
scrollToIndex(newFocusIndex);
|
|
109
|
+
|
|
102
110
|
if (isLoopedFocus) {
|
|
111
|
+
// when looping the list from start to end we need to wait a bit before focusing
|
|
103
112
|
setTimeout(() => {
|
|
104
113
|
setFocusedItem(newFocusItem);
|
|
105
114
|
onItemFocusCurry(newFocusItem);
|
|
106
|
-
|
|
115
|
+
treeHelpers.focusItem(newFocusItem);
|
|
107
116
|
}, 300);
|
|
108
117
|
} else {
|
|
109
118
|
setFocusedItem(newFocusItem);
|
|
110
119
|
onItemFocusCurry(newFocusItem);
|
|
111
|
-
|
|
120
|
+
treeHelpers.focusItem(newFocusItem);
|
|
112
121
|
}
|
|
113
122
|
}
|
|
123
|
+
|
|
114
124
|
if (keyCode === 35) {
|
|
115
125
|
if (virtualIndex !== lastItemIndex) {
|
|
116
126
|
const newFocusItem = visibleItems[lastItemIndex];
|
|
@@ -118,10 +128,11 @@ const useOnItemKeyDown = (item) => {
|
|
|
118
128
|
setTimeout(() => {
|
|
119
129
|
setFocusedItem(newFocusItem);
|
|
120
130
|
onItemFocusCurry(newFocusItem);
|
|
121
|
-
|
|
131
|
+
treeHelpers.focusItem(newFocusItem);
|
|
122
132
|
}, 300);
|
|
123
133
|
}
|
|
124
134
|
}
|
|
135
|
+
|
|
125
136
|
if (keyCode === 36) {
|
|
126
137
|
if (virtualIndex !== 0) {
|
|
127
138
|
const newFocusItem = visibleItems[0];
|
|
@@ -129,42 +140,35 @@ const useOnItemKeyDown = (item) => {
|
|
|
129
140
|
setTimeout(() => {
|
|
130
141
|
setFocusedItem(newFocusItem);
|
|
131
142
|
onItemFocusCurry(newFocusItem);
|
|
132
|
-
|
|
143
|
+
treeHelpers.focusItem(newFocusItem);
|
|
133
144
|
}, 300);
|
|
134
145
|
}
|
|
135
146
|
}
|
|
136
147
|
}
|
|
137
148
|
}
|
|
138
|
-
}, [
|
|
139
|
-
isDragging,
|
|
140
|
-
setSelectedItem,
|
|
141
|
-
item,
|
|
142
|
-
isGroup,
|
|
143
|
-
isExpanded,
|
|
144
|
-
triggerTreeRerender,
|
|
145
|
-
scrollToIndex,
|
|
146
|
-
setLatestToggledItem,
|
|
147
|
-
visibleItems,
|
|
148
|
-
setFocusedItem,
|
|
149
|
-
onItemFocusCurry,
|
|
150
|
-
updateUserExpandedState
|
|
151
|
-
]);
|
|
149
|
+
}, [isDragging, setSelectedItem, item, isGroup, isExpanded, triggerTreeRerender, scrollToIndex, setLatestToggledItem, visibleItems, setFocusedItem, onItemFocusCurry, updateUserExpandedState]);
|
|
152
150
|
return onItemKeyDown;
|
|
153
151
|
};
|
|
154
|
-
const useGlobalKeyboardListener =
|
|
155
|
-
|
|
156
|
-
document.addEventListener(
|
|
157
|
-
return () => document.removeEventListener(
|
|
152
|
+
const useGlobalKeyboardListener = func => {
|
|
153
|
+
React.useEffect(() => {
|
|
154
|
+
document.addEventListener('keydown', func);
|
|
155
|
+
return () => document.removeEventListener('keydown', func);
|
|
158
156
|
}, [func]);
|
|
159
157
|
};
|
|
160
158
|
const useGlobalToggleAllExpandShortcut = (treeRoot, triggerTreeRerender, setLatestToggledItem, updateUserExpandedState) => {
|
|
161
|
-
const memoizedToggleAllKeyboardShortcut =
|
|
162
|
-
const {
|
|
159
|
+
const memoizedToggleAllKeyboardShortcut = React.useCallback(e => {
|
|
160
|
+
const {
|
|
161
|
+
shiftKey,
|
|
162
|
+
keyCode
|
|
163
|
+
} = e;
|
|
164
|
+
|
|
163
165
|
if (shiftKey && keyCode === 56) {
|
|
164
|
-
|
|
166
|
+
groupExpandsHelpers.toggleExpandAllHelper('toggle', treeRoot, triggerTreeRerender, setLatestToggledItem, updateUserExpandedState);
|
|
165
167
|
}
|
|
166
168
|
}, [setLatestToggledItem, treeRoot, triggerTreeRerender, updateUserExpandedState]);
|
|
167
169
|
return useGlobalKeyboardListener(memoizedToggleAllKeyboardShortcut);
|
|
168
170
|
};
|
|
169
|
-
|
|
170
|
-
|
|
171
|
+
|
|
172
|
+
exports.useGlobalKeyboardListener = useGlobalKeyboardListener;
|
|
173
|
+
exports.useGlobalToggleAllExpandShortcut = useGlobalToggleAllExpandShortcut;
|
|
174
|
+
exports.useOnItemKeyDown = useOnItemKeyDown;
|
|
@@ -1,76 +1,69 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
return target;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (module2, isNodeMode) => {
|
|
21
|
-
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
22
|
-
};
|
|
23
|
-
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
24
|
-
return (module2, temp) => {
|
|
25
|
-
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
26
|
-
};
|
|
27
|
-
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
28
|
-
var object_helpers_exports = {};
|
|
29
|
-
__export(object_helpers_exports, {
|
|
30
|
-
filterObject: () => filterObject,
|
|
31
|
-
unfreeze: () => unfreeze
|
|
32
|
-
});
|
|
33
|
-
var React = __toESM(require("react"));
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
require('core-js/modules/esnext.async-iterator.for-each.js');
|
|
6
|
+
require('core-js/modules/esnext.iterator.constructor.js');
|
|
7
|
+
require('core-js/modules/esnext.iterator.for-each.js');
|
|
8
|
+
require('core-js/modules/esnext.async-iterator.reduce.js');
|
|
9
|
+
require('core-js/modules/esnext.iterator.reduce.js');
|
|
10
|
+
|
|
11
|
+
/* eslint-disable no-sequences */
|
|
12
|
+
|
|
13
|
+
/* eslint-disable no-return-assign */
|
|
14
|
+
|
|
15
|
+
/* eslint-disable no-restricted-syntax */
|
|
16
|
+
|
|
17
|
+
/* eslint-disable guard-for-in */
|
|
34
18
|
function isObjectADate(o) {
|
|
35
|
-
|
|
19
|
+
var _o$constructor;
|
|
20
|
+
|
|
21
|
+
return (o === null || o === void 0 ? void 0 : (_o$constructor = o.constructor) === null || _o$constructor === void 0 ? void 0 : _o$constructor.name) === 'Date';
|
|
36
22
|
}
|
|
23
|
+
|
|
37
24
|
function isObjectAnArray(o) {
|
|
38
25
|
return Array.isArray(o);
|
|
39
26
|
}
|
|
27
|
+
|
|
40
28
|
function isObjectAString(o) {
|
|
41
|
-
return typeof o ===
|
|
29
|
+
return typeof o === 'object';
|
|
42
30
|
}
|
|
43
|
-
|
|
31
|
+
|
|
32
|
+
const unfreeze = o => {
|
|
44
33
|
let oo;
|
|
34
|
+
|
|
45
35
|
if (o === null) {
|
|
46
36
|
oo = null;
|
|
47
|
-
} else if (o ===
|
|
48
|
-
oo =
|
|
37
|
+
} else if (o === undefined) {
|
|
38
|
+
oo = undefined;
|
|
49
39
|
} else if (isObjectADate(o)) {
|
|
50
40
|
oo = new Date(o);
|
|
51
41
|
} else if (isObjectAnArray(o)) {
|
|
52
42
|
oo = [];
|
|
53
|
-
o.forEach(
|
|
43
|
+
o.forEach(v => {
|
|
54
44
|
oo.push(v);
|
|
55
45
|
});
|
|
56
46
|
} else if (isObjectAString(o)) {
|
|
57
47
|
oo = String(o);
|
|
58
48
|
} else if (isObjectAString(o)) {
|
|
59
49
|
oo = {};
|
|
50
|
+
|
|
60
51
|
for (const property in o) {
|
|
61
52
|
oo[property] = o[property];
|
|
62
53
|
}
|
|
63
54
|
} else {
|
|
64
55
|
oo = o;
|
|
65
56
|
}
|
|
57
|
+
|
|
66
58
|
return oo;
|
|
67
59
|
};
|
|
60
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
68
61
|
function filterObject(obj, predicate) {
|
|
69
62
|
return Object.keys(obj).reduce((res, key) => {
|
|
70
|
-
if (predicate(obj[key]))
|
|
71
|
-
res[key] = obj[key];
|
|
63
|
+
if (predicate(obj[key])) res[key] = obj[key];
|
|
72
64
|
return res;
|
|
73
65
|
}, {});
|
|
74
66
|
}
|
|
75
|
-
|
|
76
|
-
|
|
67
|
+
|
|
68
|
+
exports.filterObject = filterObject;
|
|
69
|
+
exports.unfreeze = unfreeze;
|
|
@@ -1,46 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
16
|
-
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
require('core-js/modules/esnext.async-iterator.filter.js');
|
|
6
|
+
require('core-js/modules/esnext.iterator.constructor.js');
|
|
7
|
+
require('core-js/modules/esnext.iterator.filter.js');
|
|
8
|
+
require('core-js/modules/esnext.async-iterator.for-each.js');
|
|
9
|
+
require('core-js/modules/esnext.iterator.for-each.js');
|
|
10
|
+
|
|
11
|
+
// allow multiple refs to be set to point to the same DOM element
|
|
12
|
+
const setMultipleRefs = function () {
|
|
13
|
+
for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
14
|
+
refs[_key] = arguments[_key];
|
|
17
15
|
}
|
|
18
|
-
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (module2, isNodeMode) => {
|
|
21
|
-
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
22
|
-
};
|
|
23
|
-
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
24
|
-
return (module2, temp) => {
|
|
25
|
-
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
26
|
-
};
|
|
27
|
-
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
28
|
-
var refs_helpers_exports = {};
|
|
29
|
-
__export(refs_helpers_exports, {
|
|
30
|
-
setMultipleRefs: () => setMultipleRefs
|
|
31
|
-
});
|
|
32
|
-
var React = __toESM(require("react"));
|
|
33
|
-
const setMultipleRefs = (...refs) => {
|
|
16
|
+
|
|
34
17
|
const filteredRefs = refs.filter(Boolean);
|
|
35
|
-
if (!filteredRefs.length)
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
};
|
|
41
|
-
return (newRef) => {
|
|
42
|
-
filteredRefs.forEach((refToBeUpdated) => {
|
|
43
|
-
if (typeof refToBeUpdated === "function") {
|
|
18
|
+
if (!filteredRefs.length) return () => {};
|
|
19
|
+
if (filteredRefs.length === 0) return () => {};
|
|
20
|
+
return newRef => {
|
|
21
|
+
filteredRefs.forEach(refToBeUpdated => {
|
|
22
|
+
if (typeof refToBeUpdated === 'function') {
|
|
44
23
|
refToBeUpdated(newRef);
|
|
45
24
|
} else if (refToBeUpdated) {
|
|
46
25
|
refToBeUpdated.current = newRef;
|
|
@@ -48,5 +27,5 @@ const setMultipleRefs = (...refs) => {
|
|
|
48
27
|
});
|
|
49
28
|
};
|
|
50
29
|
};
|
|
51
|
-
|
|
52
|
-
|
|
30
|
+
|
|
31
|
+
exports.setMultipleRefs = setMultipleRefs;
|
|
@@ -1,88 +1,80 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
22
|
-
};
|
|
23
|
-
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
24
|
-
return (module2, temp) => {
|
|
25
|
-
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
26
|
-
};
|
|
27
|
-
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
28
|
-
var selectable_helper_exports = {};
|
|
29
|
-
__export(selectable_helper_exports, {
|
|
30
|
-
getGroupCheckState: () => getGroupCheckState,
|
|
31
|
-
selectCheckboxItemModelParentsTillRoot: () => selectCheckboxItemModelParentsTillRoot,
|
|
32
|
-
toggleCheckboxItem: () => toggleCheckboxItem
|
|
33
|
-
});
|
|
34
|
-
var React = __toESM(require("react"));
|
|
35
|
-
var import_tree_helpers = require("./tree-helpers");
|
|
36
|
-
const getGroupCheckState = (node) => {
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
require('core-js/modules/esnext.async-iterator.filter.js');
|
|
6
|
+
require('core-js/modules/esnext.iterator.constructor.js');
|
|
7
|
+
require('core-js/modules/esnext.iterator.filter.js');
|
|
8
|
+
require('core-js/modules/esnext.async-iterator.for-each.js');
|
|
9
|
+
require('core-js/modules/esnext.iterator.for-each.js');
|
|
10
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
11
|
+
var treeHelpers = require('./tree-helpers.js');
|
|
12
|
+
|
|
13
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
14
|
+
|
|
15
|
+
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
16
|
+
|
|
17
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
18
|
+
|
|
19
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
20
|
+
const getGroupCheckState = node => {
|
|
37
21
|
let childAllChecked = true;
|
|
38
22
|
let anyChildChecked = false;
|
|
39
|
-
|
|
23
|
+
treeHelpers.walkAllNodeChildren(node, childNode => {
|
|
40
24
|
const {
|
|
41
|
-
model: {
|
|
25
|
+
model: {
|
|
26
|
+
isChecked
|
|
27
|
+
}
|
|
42
28
|
} = childNode;
|
|
43
|
-
if (isChecked ===
|
|
44
|
-
anyChildChecked = true;
|
|
45
|
-
else
|
|
46
|
-
childAllChecked = false;
|
|
29
|
+
if (isChecked === 'mixed' || isChecked === true) anyChildChecked = true;else childAllChecked = false;
|
|
47
30
|
});
|
|
48
|
-
if (childAllChecked)
|
|
49
|
-
|
|
50
|
-
if (anyChildChecked)
|
|
51
|
-
return "mixed";
|
|
31
|
+
if (childAllChecked) return true;
|
|
32
|
+
if (anyChildChecked) return 'mixed';
|
|
52
33
|
return false;
|
|
53
34
|
};
|
|
54
|
-
const selectCheckboxItemModelParentsTillRoot = (modelToCheck
|
|
35
|
+
const selectCheckboxItemModelParentsTillRoot = function (modelToCheck) {
|
|
36
|
+
let triggerTreeRerender = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
55
37
|
const newSelections = {};
|
|
56
|
-
const {
|
|
57
|
-
|
|
38
|
+
const {
|
|
39
|
+
nodePath
|
|
40
|
+
} = modelToCheck;
|
|
41
|
+
treeHelpers.walkParents(nodePath, parentNode => {
|
|
58
42
|
const nextState = getGroupCheckState(parentNode);
|
|
59
43
|
parentNode.model.isChecked = nextState;
|
|
60
44
|
newSelections[parentNode.model.id] = nextState;
|
|
61
45
|
});
|
|
62
|
-
if (triggerTreeRerender)
|
|
63
|
-
triggerTreeRerender();
|
|
46
|
+
if (triggerTreeRerender) triggerTreeRerender();
|
|
64
47
|
return newSelections;
|
|
65
48
|
};
|
|
66
|
-
const toggleCheckboxItem = (itemToSelect
|
|
49
|
+
const toggleCheckboxItem = function (itemToSelect) {
|
|
50
|
+
let triggerTreeRerender = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
67
51
|
const {
|
|
68
52
|
node: {
|
|
69
|
-
model: {
|
|
53
|
+
model: {
|
|
54
|
+
id,
|
|
55
|
+
isChecked,
|
|
56
|
+
children = []
|
|
57
|
+
}
|
|
70
58
|
}
|
|
71
59
|
} = itemToSelect;
|
|
72
|
-
const newSelections = {};
|
|
73
|
-
|
|
60
|
+
const newSelections = {}; // 'mixed' -> true -> false -> true [...->false -> true]
|
|
61
|
+
|
|
62
|
+
const nextState = isChecked === 'mixed' ? true : !isChecked;
|
|
74
63
|
itemToSelect.node.model.isChecked = nextState;
|
|
75
64
|
newSelections[id] = nextState;
|
|
65
|
+
|
|
76
66
|
if (children.length > 0 && (nextState === true || nextState === false)) {
|
|
77
|
-
|
|
67
|
+
treeHelpers.walkAllNodeChildren(itemToSelect.node, childNode => {
|
|
78
68
|
childNode.model.isChecked = nextState;
|
|
79
69
|
newSelections[childNode.model.id] = nextState;
|
|
80
70
|
});
|
|
81
71
|
}
|
|
72
|
+
|
|
82
73
|
const parentsNewSelections = selectCheckboxItemModelParentsTillRoot(itemToSelect);
|
|
83
|
-
if (triggerTreeRerender)
|
|
84
|
-
|
|
85
|
-
return { ...parentsNewSelections, ...newSelections };
|
|
74
|
+
if (triggerTreeRerender) triggerTreeRerender();
|
|
75
|
+
return _objectSpread(_objectSpread({}, parentsNewSelections), newSelections);
|
|
86
76
|
};
|
|
87
|
-
|
|
88
|
-
|
|
77
|
+
|
|
78
|
+
exports.getGroupCheckState = getGroupCheckState;
|
|
79
|
+
exports.selectCheckboxItemModelParentsTillRoot = selectCheckboxItemModelParentsTillRoot;
|
|
80
|
+
exports.toggleCheckboxItem = toggleCheckboxItem;
|
|
@@ -1,35 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __reExport = (target, module2, copyDefault, desc) => {
|
|
13
|
-
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(module2))
|
|
15
|
-
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
16
|
-
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return target;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (module2, isNodeMode) => {
|
|
21
|
-
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
22
|
-
};
|
|
23
|
-
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
24
|
-
return (module2, temp) => {
|
|
25
|
-
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
26
|
-
};
|
|
27
|
-
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
28
|
-
var string_helpers_exports = {};
|
|
29
|
-
__export(string_helpers_exports, {
|
|
30
|
-
standardizeSearchQueryString: () => standardizeSearchQueryString
|
|
31
|
-
});
|
|
32
|
-
var React = __toESM(require("react"));
|
|
33
|
-
const standardizeSearchQueryString = (input) => input.trim().toLowerCase();
|
|
34
|
-
module.exports = __toCommonJS(string_helpers_exports);
|
|
35
|
-
//# sourceMappingURL=string-helpers.js.map
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
const standardizeSearchQueryString = input => input.trim().toLowerCase();
|
|
6
|
+
|
|
7
|
+
exports.standardizeSearchQueryString = standardizeSearchQueryString;
|