@elliemae/ds-treeview 2.2.0-alpha.1 → 2.2.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. package/cjs/TreeView.js +49 -31
  2. package/cjs/TreeView.js.map +7 -0
  3. package/cjs/TreeViewContext.js +53 -35
  4. package/cjs/TreeViewContext.js.map +7 -0
  5. package/cjs/config/cssClassesConstants.js +41 -13
  6. package/cjs/config/cssClassesConstants.js.map +7 -0
  7. package/cjs/config/useTreeview.js +108 -80
  8. package/cjs/config/useTreeview.js.map +7 -0
  9. package/cjs/index.js +37 -27
  10. package/cjs/index.js.map +7 -0
  11. package/cjs/parts/CheckboxSelectable.js +70 -59
  12. package/cjs/parts/CheckboxSelectable.js.map +7 -0
  13. package/cjs/parts/ChildrenCountDisplayer.js +45 -28
  14. package/cjs/parts/ChildrenCountDisplayer.js.map +7 -0
  15. package/cjs/parts/ExpandCaret.js +85 -83
  16. package/cjs/parts/ExpandCaret.js.map +7 -0
  17. package/cjs/parts/Icon.js +46 -31
  18. package/cjs/parts/Icon.js.map +7 -0
  19. package/cjs/parts/NestingSpace.js +43 -35
  20. package/cjs/parts/NestingSpace.js.map +7 -0
  21. package/cjs/parts/RadioSelectable.js +52 -37
  22. package/cjs/parts/RadioSelectable.js.map +7 -0
  23. package/cjs/parts/TreeItem.js +128 -147
  24. package/cjs/parts/TreeItem.js.map +7 -0
  25. package/cjs/parts/TreeItemText.js +88 -95
  26. package/cjs/parts/TreeItemText.js.map +7 -0
  27. package/cjs/parts/TreeList.js +117 -130
  28. package/cjs/parts/TreeList.js.map +7 -0
  29. package/cjs/plugins/dnd/TreeDndPlugin.js +51 -36
  30. package/cjs/plugins/dnd/TreeDndPlugin.js.map +7 -0
  31. package/cjs/plugins/dnd/index.js +28 -10
  32. package/cjs/plugins/dnd/index.js.map +7 -0
  33. package/cjs/plugins/index.js +34 -22
  34. package/cjs/plugins/index.js.map +7 -0
  35. package/cjs/plugins/roving/TreeRovingPlugin.js +35 -7
  36. package/cjs/plugins/roving/TreeRovingPlugin.js.map +7 -0
  37. package/cjs/plugins/roving/index.js +28 -9
  38. package/cjs/plugins/roving/index.js.map +7 -0
  39. package/cjs/plugins/searchable/SearchableTreePlugin.js +35 -7
  40. package/cjs/plugins/searchable/SearchableTreePlugin.js.map +7 -0
  41. package/cjs/plugins/searchable/index.js +28 -9
  42. package/cjs/plugins/searchable/index.js.map +7 -0
  43. package/cjs/plugins/selectable/SelectablePluginTree.js +35 -7
  44. package/cjs/plugins/selectable/SelectablePluginTree.js.map +7 -0
  45. package/cjs/plugins/selectable/index.js +28 -9
  46. package/cjs/plugins/selectable/index.js.map +7 -0
  47. package/cjs/plugins/toolbar/TreeToolbarPlugin.js +35 -7
  48. package/cjs/plugins/toolbar/TreeToolbarPlugin.js.map +7 -0
  49. package/cjs/plugins/toolbar/index.js +28 -9
  50. package/cjs/plugins/toolbar/index.js.map +7 -0
  51. package/cjs/plugins/tree/TreeDataPlugin.js +35 -7
  52. package/cjs/plugins/tree/TreeDataPlugin.js.map +7 -0
  53. package/cjs/plugins/tree/index.js +28 -9
  54. package/cjs/plugins/tree/index.js.map +7 -0
  55. package/cjs/plugins/virtualization/TreeVirtualizationPlugin.js +35 -7
  56. package/cjs/plugins/virtualization/TreeVirtualizationPlugin.js.map +7 -0
  57. package/cjs/plugins/virtualization/index.js +28 -9
  58. package/cjs/plugins/virtualization/index.js.map +7 -0
  59. package/cjs/react-desc-prop-types.js +82 -53
  60. package/cjs/react-desc-prop-types.js.map +7 -0
  61. package/cjs/related-components/TreeViewSearchBar.js +42 -40
  62. package/cjs/related-components/TreeViewSearchBar.js.map +7 -0
  63. package/cjs/sharedTypes.js +27 -2
  64. package/cjs/sharedTypes.js.map +7 -0
  65. package/cjs/utils/array-helpers.js +35 -11
  66. package/cjs/utils/array-helpers.js.map +7 -0
  67. package/cjs/utils/dnd-helpers.js +90 -84
  68. package/cjs/utils/dnd-helpers.js.map +7 -0
  69. package/cjs/utils/group-expands-helpers.js +86 -59
  70. package/cjs/utils/group-expands-helpers.js.map +7 -0
  71. package/cjs/utils/keyboard-helpers.js +84 -88
  72. package/cjs/utils/keyboard-helpers.js.map +7 -0
  73. package/cjs/utils/object-helpers.js +43 -36
  74. package/cjs/utils/object-helpers.js.map +7 -0
  75. package/cjs/utils/refs-helpers.js +43 -22
  76. package/cjs/utils/refs-helpers.js.map +7 -0
  77. package/cjs/utils/selectable-helper.js +61 -53
  78. package/cjs/utils/selectable-helper.js.map +7 -0
  79. package/cjs/utils/string-helpers.js +35 -7
  80. package/cjs/utils/string-helpers.js.map +7 -0
  81. package/cjs/utils/tree-helpers.js +105 -135
  82. package/cjs/utils/tree-helpers.js.map +7 -0
  83. package/cjs/utils/useDnDHelpers.js +97 -118
  84. package/cjs/utils/useDnDHelpers.js.map +7 -0
  85. package/cjs/utils/useInstanceRefActions.js +54 -43
  86. package/cjs/utils/useInstanceRefActions.js.map +7 -0
  87. package/cjs/utils/useTree.js +76 -78
  88. package/cjs/utils/useTree.js.map +7 -0
  89. package/esm/TreeView.js +18 -20
  90. package/esm/TreeView.js.map +7 -0
  91. package/esm/TreeViewContext.js +24 -29
  92. package/esm/TreeViewContext.js.map +7 -0
  93. package/esm/config/cssClassesConstants.js +12 -6
  94. package/esm/config/cssClassesConstants.js.map +7 -0
  95. package/esm/config/useTreeview.js +61 -54
  96. package/esm/config/useTreeview.js.map +7 -0
  97. package/esm/index.js +8 -9
  98. package/esm/index.js.map +7 -0
  99. package/esm/parts/CheckboxSelectable.js +36 -46
  100. package/esm/parts/CheckboxSelectable.js.map +7 -0
  101. package/esm/parts/ChildrenCountDisplayer.js +16 -20
  102. package/esm/parts/ChildrenCountDisplayer.js.map +7 -0
  103. package/esm/parts/ExpandCaret.js +54 -72
  104. package/esm/parts/ExpandCaret.js.map +7 -0
  105. package/esm/parts/Icon.js +16 -22
  106. package/esm/parts/Icon.js.map +7 -0
  107. package/esm/parts/NestingSpace.js +14 -27
  108. package/esm/parts/NestingSpace.js.map +7 -0
  109. package/esm/parts/RadioSelectable.js +20 -28
  110. package/esm/parts/RadioSelectable.js.map +7 -0
  111. package/esm/parts/TreeItem.js +91 -127
  112. package/esm/parts/TreeItem.js.map +7 -0
  113. package/esm/parts/TreeItemText.js +58 -85
  114. package/esm/parts/TreeItemText.js.map +7 -0
  115. package/esm/parts/TreeList.js +88 -117
  116. package/esm/parts/TreeList.js.map +7 -0
  117. package/esm/plugins/dnd/TreeDndPlugin.js +21 -26
  118. package/esm/plugins/dnd/TreeDndPlugin.js.map +7 -0
  119. package/esm/plugins/dnd/index.js +3 -1
  120. package/esm/plugins/dnd/index.js.map +7 -0
  121. package/esm/plugins/index.js +9 -7
  122. package/esm/plugins/index.js.map +7 -0
  123. package/esm/plugins/roving/TreeRovingPlugin.js +6 -3
  124. package/esm/plugins/roving/TreeRovingPlugin.js.map +7 -0
  125. package/esm/plugins/roving/index.js +3 -1
  126. package/esm/plugins/roving/index.js.map +7 -0
  127. package/esm/plugins/searchable/SearchableTreePlugin.js +6 -3
  128. package/esm/plugins/searchable/SearchableTreePlugin.js.map +7 -0
  129. package/esm/plugins/searchable/index.js +3 -1
  130. package/esm/plugins/searchable/index.js.map +7 -0
  131. package/esm/plugins/selectable/SelectablePluginTree.js +6 -3
  132. package/esm/plugins/selectable/SelectablePluginTree.js.map +7 -0
  133. package/esm/plugins/selectable/index.js +3 -1
  134. package/esm/plugins/selectable/index.js.map +7 -0
  135. package/esm/plugins/toolbar/TreeToolbarPlugin.js +6 -3
  136. package/esm/plugins/toolbar/TreeToolbarPlugin.js.map +7 -0
  137. package/esm/plugins/toolbar/index.js +3 -1
  138. package/esm/plugins/toolbar/index.js.map +7 -0
  139. package/esm/plugins/tree/TreeDataPlugin.js +6 -3
  140. package/esm/plugins/tree/TreeDataPlugin.js.map +7 -0
  141. package/esm/plugins/tree/index.js +3 -1
  142. package/esm/plugins/tree/index.js.map +7 -0
  143. package/esm/plugins/virtualization/TreeVirtualizationPlugin.js +6 -3
  144. package/esm/plugins/virtualization/TreeVirtualizationPlugin.js.map +7 -0
  145. package/esm/plugins/virtualization/index.js +3 -1
  146. package/esm/plugins/virtualization/index.js.map +7 -0
  147. package/esm/react-desc-prop-types.js +47 -43
  148. package/esm/react-desc-prop-types.js.map +7 -0
  149. package/esm/related-components/TreeViewSearchBar.js +13 -32
  150. package/esm/related-components/TreeViewSearchBar.js.map +7 -0
  151. package/esm/sharedTypes.js +2 -1
  152. package/esm/sharedTypes.js.map +7 -0
  153. package/esm/utils/array-helpers.js +6 -6
  154. package/esm/utils/array-helpers.js.map +7 -0
  155. package/esm/utils/dnd-helpers.js +58 -73
  156. package/esm/utils/dnd-helpers.js.map +7 -0
  157. package/esm/utils/group-expands-helpers.js +56 -46
  158. package/esm/utils/group-expands-helpers.js.map +7 -0
  159. package/esm/utils/keyboard-helpers.js +45 -72
  160. package/esm/utils/keyboard-helpers.js.map +7 -0
  161. package/esm/utils/object-helpers.js +14 -31
  162. package/esm/utils/object-helpers.js.map +7 -0
  163. package/esm/utils/refs-helpers.js +15 -19
  164. package/esm/utils/refs-helpers.js.map +7 -0
  165. package/esm/utils/selectable-helper.js +32 -43
  166. package/esm/utils/selectable-helper.js.map +7 -0
  167. package/esm/utils/string-helpers.js +6 -3
  168. package/esm/utils/string-helpers.js.map +7 -0
  169. package/esm/utils/tree-helpers.js +74 -119
  170. package/esm/utils/tree-helpers.js.map +7 -0
  171. package/esm/utils/useDnDHelpers.js +60 -106
  172. package/esm/utils/useDnDHelpers.js.map +7 -0
  173. package/esm/utils/useInstanceRefActions.js +21 -35
  174. package/esm/utils/useInstanceRefActions.js.map +7 -0
  175. package/esm/utils/useTree.js +35 -57
  176. package/esm/utils/useTree.js.map +7 -0
  177. package/package.json +10 -10
@@ -1,30 +1,45 @@
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"]);
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
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 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 = __toESM(require("react"));
36
+ var import_TreeViewContext = __toESM(require("../TreeViewContext"));
37
+ var import_tree_helpers = __toESM(require("./tree-helpers"));
38
+ var import_group_expands_helpers = __toESM(require("./group-expands-helpers"));
39
+ const useOnItemKeyDown = (item) => {
40
+ const ctx = (0, import_react.useContext)(import_TreeViewContext.default);
24
41
  const {
25
- props: {
26
- onItemFocus
27
- },
42
+ props: { onItemFocus },
28
43
  triggerTreeRerender,
29
44
  isDragging,
30
45
  visibleItems,
@@ -32,95 +47,70 @@ const useOnItemKeyDown = item => {
32
47
  setSelectedItem,
33
48
  setLatestToggledItem,
34
49
  updateUserExpandedState,
35
- virtualListHelpers: {
36
- scrollToIndex
37
- }
50
+ virtualListHelpers: { scrollToIndex }
38
51
  } = ctx;
39
- const {
40
- isGroup,
41
- isExpanded
42
- } = item;
43
- const onItemFocusCurry = React.useCallback(newFocusItem => onItemFocus({
52
+ const { isGroup, isExpanded } = item;
53
+ const onItemFocusCurry = (0, import_react.useCallback)((newFocusItem) => onItemFocus({
44
54
  itemIndex: newFocusItem.virtualIndex,
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
- },
55
+ scrollToItem: (opts = { align: "start" }) => scrollToIndex(newFocusItem.virtualIndex, opts),
51
56
  item: newFocusItem
52
57
  }), [onItemFocus, scrollToIndex]);
53
- const onItemKeyDown = React.useCallback(e => {
54
- const {
55
- keyCode
56
- } = e;
57
-
58
+ const onItemKeyDown = (0, import_react.useCallback)((e) => {
59
+ const { keyCode } = e;
58
60
  if (!isDragging) {
59
- if (keyCode !== 9) e.preventDefault(); // allow tab/shift+tab
60
-
61
- if (keyCode === 13 || keyCode === 32) setSelectedItem(item);
62
-
61
+ if (keyCode !== 9)
62
+ e.preventDefault();
63
+ if (keyCode === 13 || keyCode === 32)
64
+ setSelectedItem(item);
63
65
  if (keyCode === 37) {
64
66
  if (isGroup && isExpanded) {
65
- groupExpandsHelpers.toggleItemExpand(item, triggerTreeRerender, updateUserExpandedState, scrollToIndex);
67
+ (0, import_group_expands_helpers.toggleItemExpand)(item, triggerTreeRerender, updateUserExpandedState, scrollToIndex);
66
68
  setLatestToggledItem(item);
67
69
  }
68
70
  }
69
-
70
71
  if (keyCode === 39) {
71
72
  if (isGroup && !isExpanded) {
72
- groupExpandsHelpers.toggleItemExpand(item, triggerTreeRerender, updateUserExpandedState, scrollToIndex);
73
+ (0, import_group_expands_helpers.toggleItemExpand)(item, triggerTreeRerender, updateUserExpandedState, scrollToIndex);
73
74
  setLatestToggledItem(item);
74
75
  }
75
76
  }
76
-
77
- const {
78
- virtualIndex
79
- } = item;
80
-
81
- if (typeof virtualIndex === 'number') {
77
+ const { virtualIndex } = item;
78
+ if (typeof virtualIndex === "number") {
82
79
  const lastItemIndex = visibleItems.length - 1;
83
-
84
80
  if (keyCode === 38) {
85
81
  const isLoopedFocus = virtualIndex === 0;
86
82
  const newFocusIndex = isLoopedFocus ? lastItemIndex : virtualIndex - 1;
87
83
  const newFocusItem = visibleItems[newFocusIndex];
88
84
  scrollToIndex(newFocusIndex);
89
-
90
85
  if (isLoopedFocus) {
91
- // when looping the list from start to end we need to wait a bit before focusing
92
86
  setTimeout(() => {
93
87
  setFocusedItem(newFocusItem);
94
- treeHelpers.focusItem(newFocusItem);
88
+ (0, import_tree_helpers.focusItem)(newFocusItem);
95
89
  onItemFocusCurry(newFocusItem);
96
90
  }, 300);
97
91
  } else {
98
92
  setFocusedItem(newFocusItem);
99
93
  onItemFocusCurry(newFocusItem);
100
- treeHelpers.focusItem(newFocusItem);
94
+ (0, import_tree_helpers.focusItem)(newFocusItem);
101
95
  }
102
96
  }
103
-
104
97
  if (keyCode === 40) {
105
98
  const isLoopedFocus = virtualIndex === lastItemIndex;
106
99
  const newFocusIndex = isLoopedFocus ? 0 : virtualIndex + 1;
107
100
  const newFocusItem = visibleItems[newFocusIndex];
108
101
  scrollToIndex(newFocusIndex);
109
-
110
102
  if (isLoopedFocus) {
111
- // when looping the list from start to end we need to wait a bit before focusing
112
103
  setTimeout(() => {
113
104
  setFocusedItem(newFocusItem);
114
105
  onItemFocusCurry(newFocusItem);
115
- treeHelpers.focusItem(newFocusItem);
106
+ (0, import_tree_helpers.focusItem)(newFocusItem);
116
107
  }, 300);
117
108
  } else {
118
109
  setFocusedItem(newFocusItem);
119
110
  onItemFocusCurry(newFocusItem);
120
- treeHelpers.focusItem(newFocusItem);
111
+ (0, import_tree_helpers.focusItem)(newFocusItem);
121
112
  }
122
113
  }
123
-
124
114
  if (keyCode === 35) {
125
115
  if (virtualIndex !== lastItemIndex) {
126
116
  const newFocusItem = visibleItems[lastItemIndex];
@@ -128,11 +118,10 @@ const useOnItemKeyDown = item => {
128
118
  setTimeout(() => {
129
119
  setFocusedItem(newFocusItem);
130
120
  onItemFocusCurry(newFocusItem);
131
- treeHelpers.focusItem(newFocusItem);
121
+ (0, import_tree_helpers.focusItem)(newFocusItem);
132
122
  }, 300);
133
123
  }
134
124
  }
135
-
136
125
  if (keyCode === 36) {
137
126
  if (virtualIndex !== 0) {
138
127
  const newFocusItem = visibleItems[0];
@@ -140,35 +129,42 @@ const useOnItemKeyDown = item => {
140
129
  setTimeout(() => {
141
130
  setFocusedItem(newFocusItem);
142
131
  onItemFocusCurry(newFocusItem);
143
- treeHelpers.focusItem(newFocusItem);
132
+ (0, import_tree_helpers.focusItem)(newFocusItem);
144
133
  }, 300);
145
134
  }
146
135
  }
147
136
  }
148
137
  }
149
- }, [isDragging, setSelectedItem, item, isGroup, isExpanded, triggerTreeRerender, scrollToIndex, setLatestToggledItem, visibleItems, setFocusedItem, onItemFocusCurry, updateUserExpandedState]);
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
+ ]);
150
152
  return onItemKeyDown;
151
153
  };
152
- const useGlobalKeyboardListener = func => {
153
- React.useEffect(() => {
154
- document.addEventListener('keydown', func);
155
- return () => document.removeEventListener('keydown', func);
154
+ const useGlobalKeyboardListener = (func) => {
155
+ (0, import_react.useEffect)(() => {
156
+ document.addEventListener("keydown", func);
157
+ return () => document.removeEventListener("keydown", func);
156
158
  }, [func]);
157
159
  };
158
160
  const useGlobalToggleAllExpandShortcut = (treeRoot, triggerTreeRerender, setLatestToggledItem, updateUserExpandedState) => {
159
- const memoizedToggleAllKeyboardShortcut = React.useCallback(e => {
160
- const {
161
- shiftKey,
162
- keyCode
163
- } = e;
164
-
161
+ const memoizedToggleAllKeyboardShortcut = (0, import_react.useCallback)((e) => {
162
+ const { shiftKey, keyCode } = e;
165
163
  if (shiftKey && keyCode === 56) {
166
- groupExpandsHelpers.toggleExpandAllHelper('toggle', treeRoot, triggerTreeRerender, setLatestToggledItem, updateUserExpandedState);
164
+ (0, import_group_expands_helpers.toggleExpandAllHelper)("toggle", treeRoot, triggerTreeRerender, setLatestToggledItem, updateUserExpandedState);
167
165
  }
168
166
  }, [setLatestToggledItem, treeRoot, triggerTreeRerender, updateUserExpandedState]);
169
167
  return useGlobalKeyboardListener(memoizedToggleAllKeyboardShortcut);
170
168
  };
171
-
172
- exports.useGlobalKeyboardListener = useGlobalKeyboardListener;
173
- exports.useGlobalToggleAllExpandShortcut = useGlobalToggleAllExpandShortcut;
174
- exports.useOnItemKeyDown = useOnItemKeyDown;
169
+ module.exports = __toCommonJS(keyboard_helpers_exports);
170
+ //# sourceMappingURL=keyboard-helpers.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/utils/keyboard-helpers.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["/* eslint-disable max-params */\n/* eslint-disable max-lines */\n/* eslint-disable max-statements */\n/* eslint-disable complexity */\nimport { useCallback, useContext, useEffect } from 'react';\nimport TreeViewContext from '../TreeViewContext';\nimport { focusItem } from './tree-helpers';\nimport { toggleExpandAllHelper, toggleItemExpand } from './group-expands-helpers';\nimport type { DSTreeviewT } from '../react-desc-prop-types';\nimport type { DSTreeviewInternalsT } from '../sharedTypes';\n\n// 9 tab\n// 13 enter\n// 32 space\n// 37 left arrow\n// 38 up arrow\n// 39 right arrow\n// 40 down arrow\n// 35 end\n// 36 home\n\n// 56 number 8\n// 106 (NumPad) *\n\nexport const useOnItemKeyDown = (item: DSTreeviewT.Item) => {\n const ctx = useContext(TreeViewContext);\n const {\n props: { onItemFocus },\n triggerTreeRerender,\n isDragging,\n visibleItems,\n setFocusedItem,\n setSelectedItem,\n setLatestToggledItem,\n updateUserExpandedState,\n virtualListHelpers: { scrollToIndex },\n } = ctx;\n const { isGroup, isExpanded } = item;\n const onItemFocusCurry = useCallback(\n (newFocusItem: DSTreeviewT.Item) =>\n onItemFocus({\n itemIndex: newFocusItem.virtualIndex as number,\n scrollToItem: (opts = { align: 'start' }) => scrollToIndex(newFocusItem.virtualIndex as number, opts),\n item: newFocusItem,\n }),\n [onItemFocus, scrollToIndex],\n );\n\n const onItemKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLLIElement>) => {\n const { keyCode } = e;\n if (!isDragging) {\n if (keyCode !== 9) e.preventDefault(); // allow tab/shift+tab\n if (keyCode === 13 || keyCode === 32) setSelectedItem(item);\n\n if (keyCode === 37) {\n if (isGroup && isExpanded) {\n toggleItemExpand(item, triggerTreeRerender, updateUserExpandedState, scrollToIndex);\n setLatestToggledItem(item);\n }\n }\n if (keyCode === 39) {\n if (isGroup && !isExpanded) {\n toggleItemExpand(item, triggerTreeRerender, updateUserExpandedState, scrollToIndex);\n setLatestToggledItem(item);\n }\n }\n\n const { virtualIndex } = item;\n if (typeof virtualIndex === 'number') {\n const lastItemIndex = visibleItems.length - 1;\n if (keyCode === 38) {\n const isLoopedFocus = virtualIndex === 0;\n const newFocusIndex = isLoopedFocus ? lastItemIndex : virtualIndex - 1;\n const newFocusItem = visibleItems[newFocusIndex];\n scrollToIndex(newFocusIndex);\n if (isLoopedFocus) {\n // when looping the list from start to end we need to wait a bit before focusing\n setTimeout(() => {\n setFocusedItem(newFocusItem);\n focusItem(newFocusItem);\n onItemFocusCurry(newFocusItem);\n }, 300);\n } else {\n setFocusedItem(newFocusItem);\n onItemFocusCurry(newFocusItem);\n focusItem(newFocusItem);\n }\n }\n if (keyCode === 40) {\n const isLoopedFocus = virtualIndex === lastItemIndex;\n const newFocusIndex = isLoopedFocus ? 0 : virtualIndex + 1;\n const newFocusItem = visibleItems[newFocusIndex];\n scrollToIndex(newFocusIndex);\n if (isLoopedFocus) {\n // when looping the list from start to end we need to wait a bit before focusing\n setTimeout(() => {\n setFocusedItem(newFocusItem);\n onItemFocusCurry(newFocusItem);\n focusItem(newFocusItem);\n }, 300);\n } else {\n setFocusedItem(newFocusItem);\n onItemFocusCurry(newFocusItem);\n focusItem(newFocusItem);\n }\n }\n if (keyCode === 35) {\n if (virtualIndex !== lastItemIndex) {\n const newFocusItem = visibleItems[lastItemIndex];\n scrollToIndex(lastItemIndex);\n setTimeout(() => {\n setFocusedItem(newFocusItem);\n onItemFocusCurry(newFocusItem);\n focusItem(newFocusItem);\n }, 300);\n }\n }\n if (keyCode === 36) {\n if (virtualIndex !== 0) {\n const newFocusItem = visibleItems[0];\n scrollToIndex(0);\n setTimeout(() => {\n setFocusedItem(newFocusItem);\n onItemFocusCurry(newFocusItem);\n focusItem(newFocusItem);\n }, 300);\n }\n }\n }\n }\n },\n [\n isDragging,\n setSelectedItem,\n item,\n isGroup,\n isExpanded,\n triggerTreeRerender,\n scrollToIndex,\n setLatestToggledItem,\n visibleItems,\n setFocusedItem,\n onItemFocusCurry,\n updateUserExpandedState,\n ],\n );\n\n return onItemKeyDown;\n};\n\nexport const useGlobalKeyboardListener = (func: (e: KeyboardEvent) => void) => {\n useEffect(() => {\n document.addEventListener('keydown', func);\n return () => document.removeEventListener('keydown', func);\n }, [func]);\n};\n\nexport const useGlobalToggleAllExpandShortcut = (\n treeRoot: DSTreeviewT.Item['node'],\n triggerTreeRerender: () => void,\n setLatestToggledItem: DSTreeviewInternalsT.CTX['setLatestToggledItem'],\n updateUserExpandedState: DSTreeviewInternalsT.CTX['updateUserExpandedState'],\n) => {\n const memoizedToggleAllKeyboardShortcut = useCallback(\n (e: KeyboardEvent) => {\n const { shiftKey, keyCode } = e;\n if (shiftKey && keyCode === 56) {\n toggleExpandAllHelper('toggle', treeRoot, triggerTreeRerender, setLatestToggledItem, updateUserExpandedState);\n }\n },\n [setLatestToggledItem, treeRoot, triggerTreeRerender, updateUserExpandedState],\n );\n\n return useGlobalKeyboardListener(memoizedToggleAllKeyboardShortcut);\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,69 +1,76 @@
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 */
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
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 object_helpers_exports = {};
29
+ __export(object_helpers_exports, {
30
+ filterObject: () => filterObject,
31
+ unfreeze: () => unfreeze
32
+ });
33
+ var React = __toESM(require("react"));
18
34
  function isObjectADate(o) {
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';
35
+ return o?.constructor?.name === "Date";
22
36
  }
23
-
24
37
  function isObjectAnArray(o) {
25
38
  return Array.isArray(o);
26
39
  }
27
-
28
40
  function isObjectAString(o) {
29
- return typeof o === 'object';
41
+ return typeof o === "object";
30
42
  }
31
-
32
- const unfreeze = o => {
43
+ const unfreeze = (o) => {
33
44
  let oo;
34
-
35
45
  if (o === null) {
36
46
  oo = null;
37
- } else if (o === undefined) {
38
- oo = undefined;
47
+ } else if (o === void 0) {
48
+ oo = void 0;
39
49
  } else if (isObjectADate(o)) {
40
50
  oo = new Date(o);
41
51
  } else if (isObjectAnArray(o)) {
42
52
  oo = [];
43
- o.forEach(v => {
53
+ o.forEach((v) => {
44
54
  oo.push(v);
45
55
  });
46
56
  } else if (isObjectAString(o)) {
47
57
  oo = String(o);
48
58
  } else if (isObjectAString(o)) {
49
59
  oo = {};
50
-
51
60
  for (const property in o) {
52
61
  oo[property] = o[property];
53
62
  }
54
63
  } else {
55
64
  oo = o;
56
65
  }
57
-
58
66
  return oo;
59
67
  };
60
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
61
68
  function filterObject(obj, predicate) {
62
69
  return Object.keys(obj).reduce((res, key) => {
63
- if (predicate(obj[key])) res[key] = obj[key];
70
+ if (predicate(obj[key]))
71
+ res[key] = obj[key];
64
72
  return res;
65
73
  }, {});
66
74
  }
67
-
68
- exports.filterObject = filterObject;
69
- exports.unfreeze = unfreeze;
75
+ module.exports = __toCommonJS(object_helpers_exports);
76
+ //# sourceMappingURL=object-helpers.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/utils/object-helpers.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["/* eslint-disable no-sequences */\n/* eslint-disable no-return-assign */\n/* eslint-disable no-restricted-syntax */\n/* eslint-disable guard-for-in */\n\nfunction isObjectADate(o: string | number | unknown[] | Date | null | undefined | Record<string, unknown>): o is Date {\n return o?.constructor?.name === 'Date';\n}\nfunction isObjectAnArray(\n o: string | number | unknown[] | Date | null | undefined | Record<string, unknown>,\n): o is unknown[] {\n return Array.isArray(o);\n}\nfunction isObjectAString(\n o: string | number | unknown[] | Date | null | undefined | Record<string, unknown>,\n): o is Record<string, unknown> {\n return typeof o === 'object';\n}\n\nexport const unfreeze = (o: string | number | unknown[] | Date | null | undefined | Record<string, unknown>) => {\n let oo: string | number | unknown[] | Date | null | undefined | Record<string, unknown>;\n if (o === null) {\n oo = null;\n } else if (o === undefined) {\n oo = undefined;\n } else if (isObjectADate(o)) {\n oo = new Date(o);\n } else if (isObjectAnArray(o)) {\n oo = [];\n o.forEach((v) => {\n (oo as unknown[]).push(v);\n });\n } else if (isObjectAString(o)) {\n oo = String(o);\n } else if (isObjectAString(o)) {\n oo = {};\n for (const property in o) {\n oo[property] = o[property];\n }\n } else {\n oo = o;\n }\n return oo;\n};\n\ntype GenericItemT<T = unknown> = { [key: string]: T };\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function filterObject<T = unknown>(obj: GenericItemT<T>, predicate: (val: T) => boolean) {\n return Object.keys(obj).reduce<GenericItemT<T>>((res, key) => {\n if (predicate(obj[key])) res[key] = obj[key];\n return res;\n }, {} as GenericItemT<T>);\n}\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADKvB,uBAAuB,GAA+F;AACpH,SAAO,GAAG,aAAa,SAAS;AAAA;AAElC,yBACE,GACgB;AAChB,SAAO,MAAM,QAAQ;AAAA;AAEvB,yBACE,GAC8B;AAC9B,SAAO,OAAO,MAAM;AAAA;AAGf,MAAM,WAAW,CAAC,MAAuF;AAC9G,MAAI;AACJ,MAAI,MAAM,MAAM;AACd,SAAK;AAAA,aACI,MAAM,QAAW;AAC1B,SAAK;AAAA,aACI,cAAc,IAAI;AAC3B,SAAK,IAAI,KAAK;AAAA,aACL,gBAAgB,IAAI;AAC7B,SAAK;AACL,MAAE,QAAQ,CAAC,MAAM;AACf,MAAC,GAAiB,KAAK;AAAA;AAAA,aAEhB,gBAAgB,IAAI;AAC7B,SAAK,OAAO;AAAA,aACH,gBAAgB,IAAI;AAC7B,SAAK;AACL,eAAW,YAAY,GAAG;AACxB,SAAG,YAAY,EAAE;AAAA;AAAA,SAEd;AACL,SAAK;AAAA;AAEP,SAAO;AAAA;AAKF,sBAAmC,KAAsB,WAAgC;AAC9F,SAAO,OAAO,KAAK,KAAK,OAAwB,CAAC,KAAK,QAAQ;AAC5D,QAAI,UAAU,IAAI;AAAO,UAAI,OAAO,IAAI;AACxC,WAAO;AAAA,KACN;AAAA;",
6
+ "names": []
7
+ }
@@ -1,25 +1,46 @@
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];
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
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 });
15
17
  }
16
-
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 refs_helpers_exports = {};
29
+ __export(refs_helpers_exports, {
30
+ setMultipleRefs: () => setMultipleRefs
31
+ });
32
+ var React = __toESM(require("react"));
33
+ const setMultipleRefs = (...refs) => {
17
34
  const filteredRefs = refs.filter(Boolean);
18
- if (!filteredRefs.length) return () => {};
19
- if (filteredRefs.length === 0) return () => {};
20
- return newRef => {
21
- filteredRefs.forEach(refToBeUpdated => {
22
- if (typeof refToBeUpdated === 'function') {
35
+ if (!filteredRefs.length)
36
+ return () => {
37
+ };
38
+ if (filteredRefs.length === 0)
39
+ return () => {
40
+ };
41
+ return (newRef) => {
42
+ filteredRefs.forEach((refToBeUpdated) => {
43
+ if (typeof refToBeUpdated === "function") {
23
44
  refToBeUpdated(newRef);
24
45
  } else if (refToBeUpdated) {
25
46
  refToBeUpdated.current = newRef;
@@ -27,5 +48,5 @@ const setMultipleRefs = function () {
27
48
  });
28
49
  };
29
50
  };
30
-
31
- exports.setMultipleRefs = setMultipleRefs;
51
+ module.exports = __toCommonJS(refs_helpers_exports);
52
+ //# sourceMappingURL=refs-helpers.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/utils/refs-helpers.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["// allow multiple refs to be set to point to the same DOM element\ntype GenericMergeableRef = null | undefined | React.MutableRefObject<unknown> | ((ref: HTMLElement) => void);\nexport const setMultipleRefs = (...refs: GenericMergeableRef[]): ((ref: HTMLElement) => void) => {\n const filteredRefs = refs.filter(Boolean);\n if (!filteredRefs.length) return () => {};\n if (filteredRefs.length === 0) return () => {};\n\n return (newRef) => {\n filteredRefs.forEach((refToBeUpdated) => {\n if (typeof refToBeUpdated === 'function') {\n refToBeUpdated(newRef);\n } else if (refToBeUpdated) {\n refToBeUpdated.current = newRef;\n }\n });\n };\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADEhB,MAAM,kBAAkB,IAAI,SAA8D;AAC/F,QAAM,eAAe,KAAK,OAAO;AACjC,MAAI,CAAC,aAAa;AAAQ,WAAO,MAAM;AAAA;AACvC,MAAI,aAAa,WAAW;AAAG,WAAO,MAAM;AAAA;AAE5C,SAAO,CAAC,WAAW;AACjB,iBAAa,QAAQ,CAAC,mBAAmB;AACvC,UAAI,OAAO,mBAAmB,YAAY;AACxC,uBAAe;AAAA,iBACN,gBAAgB;AACzB,uBAAe,UAAU;AAAA;AAAA;AAAA;AAAA;",
6
+ "names": []
7
+ }
@@ -1,80 +1,88 @@
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 => {
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
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 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 = __toESM(require("./tree-helpers"));
36
+ const getGroupCheckState = (node) => {
21
37
  let childAllChecked = true;
22
38
  let anyChildChecked = false;
23
- treeHelpers.walkAllNodeChildren(node, childNode => {
39
+ (0, import_tree_helpers.walkAllNodeChildren)(node, (childNode) => {
24
40
  const {
25
- model: {
26
- isChecked
27
- }
41
+ model: { isChecked }
28
42
  } = childNode;
29
- if (isChecked === 'mixed' || isChecked === true) anyChildChecked = true;else childAllChecked = false;
43
+ if (isChecked === "mixed" || isChecked === true)
44
+ anyChildChecked = true;
45
+ else
46
+ childAllChecked = false;
30
47
  });
31
- if (childAllChecked) return true;
32
- if (anyChildChecked) return 'mixed';
48
+ if (childAllChecked)
49
+ return true;
50
+ if (anyChildChecked)
51
+ return "mixed";
33
52
  return false;
34
53
  };
35
- const selectCheckboxItemModelParentsTillRoot = function (modelToCheck) {
36
- let triggerTreeRerender = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
54
+ const selectCheckboxItemModelParentsTillRoot = (modelToCheck, triggerTreeRerender = null) => {
37
55
  const newSelections = {};
38
- const {
39
- nodePath
40
- } = modelToCheck;
41
- treeHelpers.walkParents(nodePath, parentNode => {
56
+ const { nodePath } = modelToCheck;
57
+ (0, import_tree_helpers.walkParents)(nodePath, (parentNode) => {
42
58
  const nextState = getGroupCheckState(parentNode);
43
59
  parentNode.model.isChecked = nextState;
44
60
  newSelections[parentNode.model.id] = nextState;
45
61
  });
46
- if (triggerTreeRerender) triggerTreeRerender();
62
+ if (triggerTreeRerender)
63
+ triggerTreeRerender();
47
64
  return newSelections;
48
65
  };
49
- const toggleCheckboxItem = function (itemToSelect) {
50
- let triggerTreeRerender = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
66
+ const toggleCheckboxItem = (itemToSelect, triggerTreeRerender = null) => {
51
67
  const {
52
68
  node: {
53
- model: {
54
- id,
55
- isChecked,
56
- children = []
57
- }
69
+ model: { id, isChecked, children = [] }
58
70
  }
59
71
  } = itemToSelect;
60
- const newSelections = {}; // 'mixed' -> true -> false -> true [...->false -> true]
61
-
62
- const nextState = isChecked === 'mixed' ? true : !isChecked;
72
+ const newSelections = {};
73
+ const nextState = isChecked === "mixed" ? true : !isChecked;
63
74
  itemToSelect.node.model.isChecked = nextState;
64
75
  newSelections[id] = nextState;
65
-
66
76
  if (children.length > 0 && (nextState === true || nextState === false)) {
67
- treeHelpers.walkAllNodeChildren(itemToSelect.node, childNode => {
77
+ (0, import_tree_helpers.walkAllNodeChildren)(itemToSelect.node, (childNode) => {
68
78
  childNode.model.isChecked = nextState;
69
79
  newSelections[childNode.model.id] = nextState;
70
80
  });
71
81
  }
72
-
73
82
  const parentsNewSelections = selectCheckboxItemModelParentsTillRoot(itemToSelect);
74
- if (triggerTreeRerender) triggerTreeRerender();
75
- return _objectSpread(_objectSpread({}, parentsNewSelections), newSelections);
83
+ if (triggerTreeRerender)
84
+ triggerTreeRerender();
85
+ return { ...parentsNewSelections, ...newSelections };
76
86
  };
77
-
78
- exports.getGroupCheckState = getGroupCheckState;
79
- exports.selectCheckboxItemModelParentsTillRoot = selectCheckboxItemModelParentsTillRoot;
80
- exports.toggleCheckboxItem = toggleCheckboxItem;
87
+ module.exports = __toCommonJS(selectable_helper_exports);
88
+ //# sourceMappingURL=selectable-helper.js.map