@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.
Files changed (178) hide show
  1. package/cjs/TreeView.js +31 -49
  2. package/cjs/TreeViewContext.js +35 -53
  3. package/cjs/config/cssClassesConstants.js +13 -41
  4. package/cjs/config/useTreeview.js +80 -108
  5. package/cjs/index.js +27 -37
  6. package/cjs/parts/CheckboxSelectable.js +59 -70
  7. package/cjs/parts/ChildrenCountDisplayer.js +28 -45
  8. package/cjs/parts/ExpandCaret.js +83 -85
  9. package/cjs/parts/Icon.js +31 -46
  10. package/cjs/parts/NestingSpace.js +35 -43
  11. package/cjs/parts/RadioSelectable.js +37 -52
  12. package/cjs/parts/TreeItem.js +147 -128
  13. package/cjs/parts/TreeItemText.js +95 -88
  14. package/cjs/parts/TreeList.js +130 -117
  15. package/cjs/plugins/dnd/TreeDndPlugin.js +36 -51
  16. package/cjs/plugins/dnd/index.js +10 -28
  17. package/cjs/plugins/index.js +22 -34
  18. package/cjs/plugins/roving/TreeRovingPlugin.js +7 -35
  19. package/cjs/plugins/roving/index.js +9 -28
  20. package/cjs/plugins/searchable/SearchableTreePlugin.js +7 -35
  21. package/cjs/plugins/searchable/index.js +9 -28
  22. package/cjs/plugins/selectable/SelectablePluginTree.js +7 -35
  23. package/cjs/plugins/selectable/index.js +9 -28
  24. package/cjs/plugins/toolbar/TreeToolbarPlugin.js +7 -35
  25. package/cjs/plugins/toolbar/index.js +9 -28
  26. package/cjs/plugins/tree/TreeDataPlugin.js +7 -35
  27. package/cjs/plugins/tree/index.js +9 -28
  28. package/cjs/plugins/virtualization/TreeVirtualizationPlugin.js +7 -35
  29. package/cjs/plugins/virtualization/index.js +9 -28
  30. package/cjs/react-desc-prop-types.js +53 -82
  31. package/cjs/related-components/TreeViewSearchBar.js +40 -42
  32. package/cjs/sharedTypes.js +2 -27
  33. package/cjs/utils/array-helpers.js +11 -35
  34. package/cjs/utils/dnd-helpers.js +84 -90
  35. package/cjs/utils/group-expands-helpers.js +59 -86
  36. package/cjs/utils/keyboard-helpers.js +88 -84
  37. package/cjs/utils/object-helpers.js +36 -43
  38. package/cjs/utils/refs-helpers.js +22 -43
  39. package/cjs/utils/selectable-helper.js +53 -61
  40. package/cjs/utils/string-helpers.js +7 -35
  41. package/cjs/utils/tree-helpers.js +135 -105
  42. package/cjs/utils/useDnDHelpers.js +118 -97
  43. package/cjs/utils/useInstanceRefActions.js +43 -54
  44. package/cjs/utils/useTree.js +78 -76
  45. package/esm/TreeView.js +20 -18
  46. package/esm/TreeViewContext.js +29 -24
  47. package/esm/config/cssClassesConstants.js +6 -12
  48. package/esm/config/useTreeview.js +54 -61
  49. package/esm/index.js +9 -8
  50. package/esm/parts/CheckboxSelectable.js +46 -36
  51. package/esm/parts/ChildrenCountDisplayer.js +20 -16
  52. package/esm/parts/ExpandCaret.js +72 -54
  53. package/esm/parts/Icon.js +22 -16
  54. package/esm/parts/NestingSpace.js +27 -14
  55. package/esm/parts/RadioSelectable.js +28 -20
  56. package/esm/parts/TreeItem.js +127 -91
  57. package/esm/parts/TreeItemText.js +85 -58
  58. package/esm/parts/TreeList.js +117 -88
  59. package/esm/plugins/dnd/TreeDndPlugin.js +26 -21
  60. package/esm/plugins/dnd/index.js +1 -3
  61. package/esm/plugins/index.js +7 -9
  62. package/esm/plugins/roving/TreeRovingPlugin.js +3 -6
  63. package/esm/plugins/roving/index.js +1 -3
  64. package/esm/plugins/searchable/SearchableTreePlugin.js +3 -6
  65. package/esm/plugins/searchable/index.js +1 -3
  66. package/esm/plugins/selectable/SelectablePluginTree.js +3 -6
  67. package/esm/plugins/selectable/index.js +1 -3
  68. package/esm/plugins/toolbar/TreeToolbarPlugin.js +3 -6
  69. package/esm/plugins/toolbar/index.js +1 -3
  70. package/esm/plugins/tree/TreeDataPlugin.js +3 -6
  71. package/esm/plugins/tree/index.js +1 -3
  72. package/esm/plugins/virtualization/TreeVirtualizationPlugin.js +3 -6
  73. package/esm/plugins/virtualization/index.js +1 -3
  74. package/esm/react-desc-prop-types.js +43 -47
  75. package/esm/related-components/TreeViewSearchBar.js +32 -13
  76. package/esm/sharedTypes.js +1 -2
  77. package/esm/utils/array-helpers.js +6 -6
  78. package/esm/utils/dnd-helpers.js +73 -58
  79. package/esm/utils/group-expands-helpers.js +46 -56
  80. package/esm/utils/keyboard-helpers.js +72 -45
  81. package/esm/utils/object-helpers.js +31 -14
  82. package/esm/utils/refs-helpers.js +19 -15
  83. package/esm/utils/selectable-helper.js +43 -32
  84. package/esm/utils/string-helpers.js +3 -6
  85. package/esm/utils/tree-helpers.js +119 -74
  86. package/esm/utils/useDnDHelpers.js +106 -60
  87. package/esm/utils/useInstanceRefActions.js +35 -21
  88. package/esm/utils/useTree.js +57 -35
  89. package/package.json +10 -10
  90. package/types/TreeView.d.ts +1 -1
  91. package/cjs/TreeView.js.map +0 -7
  92. package/cjs/TreeViewContext.js.map +0 -7
  93. package/cjs/config/cssClassesConstants.js.map +0 -7
  94. package/cjs/config/useTreeview.js.map +0 -7
  95. package/cjs/index.js.map +0 -7
  96. package/cjs/parts/CheckboxSelectable.js.map +0 -7
  97. package/cjs/parts/ChildrenCountDisplayer.js.map +0 -7
  98. package/cjs/parts/ExpandCaret.js.map +0 -7
  99. package/cjs/parts/Icon.js.map +0 -7
  100. package/cjs/parts/NestingSpace.js.map +0 -7
  101. package/cjs/parts/RadioSelectable.js.map +0 -7
  102. package/cjs/parts/TreeItem.js.map +0 -7
  103. package/cjs/parts/TreeItemText.js.map +0 -7
  104. package/cjs/parts/TreeList.js.map +0 -7
  105. package/cjs/plugins/dnd/TreeDndPlugin.js.map +0 -7
  106. package/cjs/plugins/dnd/index.js.map +0 -7
  107. package/cjs/plugins/index.js.map +0 -7
  108. package/cjs/plugins/roving/TreeRovingPlugin.js.map +0 -7
  109. package/cjs/plugins/roving/index.js.map +0 -7
  110. package/cjs/plugins/searchable/SearchableTreePlugin.js.map +0 -7
  111. package/cjs/plugins/searchable/index.js.map +0 -7
  112. package/cjs/plugins/selectable/SelectablePluginTree.js.map +0 -7
  113. package/cjs/plugins/selectable/index.js.map +0 -7
  114. package/cjs/plugins/toolbar/TreeToolbarPlugin.js.map +0 -7
  115. package/cjs/plugins/toolbar/index.js.map +0 -7
  116. package/cjs/plugins/tree/TreeDataPlugin.js.map +0 -7
  117. package/cjs/plugins/tree/index.js.map +0 -7
  118. package/cjs/plugins/virtualization/TreeVirtualizationPlugin.js.map +0 -7
  119. package/cjs/plugins/virtualization/index.js.map +0 -7
  120. package/cjs/react-desc-prop-types.js.map +0 -7
  121. package/cjs/related-components/TreeViewSearchBar.js.map +0 -7
  122. package/cjs/sharedTypes.js.map +0 -7
  123. package/cjs/utils/array-helpers.js.map +0 -7
  124. package/cjs/utils/dnd-helpers.js.map +0 -7
  125. package/cjs/utils/group-expands-helpers.js.map +0 -7
  126. package/cjs/utils/keyboard-helpers.js.map +0 -7
  127. package/cjs/utils/object-helpers.js.map +0 -7
  128. package/cjs/utils/refs-helpers.js.map +0 -7
  129. package/cjs/utils/selectable-helper.js.map +0 -7
  130. package/cjs/utils/string-helpers.js.map +0 -7
  131. package/cjs/utils/tree-helpers.js.map +0 -7
  132. package/cjs/utils/useDnDHelpers.js.map +0 -7
  133. package/cjs/utils/useInstanceRefActions.js.map +0 -7
  134. package/cjs/utils/useTree.js.map +0 -7
  135. package/esm/TreeView.js.map +0 -7
  136. package/esm/TreeViewContext.js.map +0 -7
  137. package/esm/config/cssClassesConstants.js.map +0 -7
  138. package/esm/config/useTreeview.js.map +0 -7
  139. package/esm/index.js.map +0 -7
  140. package/esm/parts/CheckboxSelectable.js.map +0 -7
  141. package/esm/parts/ChildrenCountDisplayer.js.map +0 -7
  142. package/esm/parts/ExpandCaret.js.map +0 -7
  143. package/esm/parts/Icon.js.map +0 -7
  144. package/esm/parts/NestingSpace.js.map +0 -7
  145. package/esm/parts/RadioSelectable.js.map +0 -7
  146. package/esm/parts/TreeItem.js.map +0 -7
  147. package/esm/parts/TreeItemText.js.map +0 -7
  148. package/esm/parts/TreeList.js.map +0 -7
  149. package/esm/plugins/dnd/TreeDndPlugin.js.map +0 -7
  150. package/esm/plugins/dnd/index.js.map +0 -7
  151. package/esm/plugins/index.js.map +0 -7
  152. package/esm/plugins/roving/TreeRovingPlugin.js.map +0 -7
  153. package/esm/plugins/roving/index.js.map +0 -7
  154. package/esm/plugins/searchable/SearchableTreePlugin.js.map +0 -7
  155. package/esm/plugins/searchable/index.js.map +0 -7
  156. package/esm/plugins/selectable/SelectablePluginTree.js.map +0 -7
  157. package/esm/plugins/selectable/index.js.map +0 -7
  158. package/esm/plugins/toolbar/TreeToolbarPlugin.js.map +0 -7
  159. package/esm/plugins/toolbar/index.js.map +0 -7
  160. package/esm/plugins/tree/TreeDataPlugin.js.map +0 -7
  161. package/esm/plugins/tree/index.js.map +0 -7
  162. package/esm/plugins/virtualization/TreeVirtualizationPlugin.js.map +0 -7
  163. package/esm/plugins/virtualization/index.js.map +0 -7
  164. package/esm/react-desc-prop-types.js.map +0 -7
  165. package/esm/related-components/TreeViewSearchBar.js.map +0 -7
  166. package/esm/sharedTypes.js.map +0 -7
  167. package/esm/utils/array-helpers.js.map +0 -7
  168. package/esm/utils/dnd-helpers.js.map +0 -7
  169. package/esm/utils/group-expands-helpers.js.map +0 -7
  170. package/esm/utils/keyboard-helpers.js.map +0 -7
  171. package/esm/utils/object-helpers.js.map +0 -7
  172. package/esm/utils/refs-helpers.js.map +0 -7
  173. package/esm/utils/selectable-helper.js.map +0 -7
  174. package/esm/utils/string-helpers.js.map +0 -7
  175. package/esm/utils/tree-helpers.js.map +0 -7
  176. package/esm/utils/useDnDHelpers.js.map +0 -7
  177. package/esm/utils/useInstanceRefActions.js.map +0 -7
  178. package/esm/utils/useTree.js.map +0 -7
package/cjs/TreeView.js CHANGED
@@ -1,52 +1,34 @@
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 TreeView_exports = {};
29
- __export(TreeView_exports, {
30
- TreeView: () => TreeView,
31
- TreeViewWithSchema: () => TreeViewWithSchema
32
- });
33
- var React = __toESM(require("react"));
34
- var import_react = __toESM(require("react"));
35
- var import_react_desc = require("react-desc");
36
- var import_react_desc_prop_types = require("./react-desc-prop-types");
37
- var import_TreeViewContext = __toESM(require("./TreeViewContext"));
38
- var import_dnd = require("./plugins/dnd");
39
- var import_useTreeview = require("./config/useTreeview");
40
- var import_TreeList = require("./parts/TreeList");
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _jsx = require('@babel/runtime/helpers/jsx');
6
+ require('react');
7
+ var reactDesc = require('react-desc');
8
+ var reactDescPropTypes = require('./react-desc-prop-types.js');
9
+ var TreeViewContext = require('./TreeViewContext.js');
10
+ var TreeDndPlugin = require('./plugins/dnd/TreeDndPlugin.js');
11
+ var useTreeview = require('./config/useTreeview.js');
12
+ var TreeList = require('./parts/TreeList.js');
13
+
14
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
15
+
16
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
17
+
18
+ var _TreeDnD, _TreeList;
41
19
  function TreeView(props) {
42
- const { plugins } = props;
43
- const { ctx } = (0, import_useTreeview.useTreeview)(props);
44
- return /* @__PURE__ */ import_react.default.createElement(import_TreeViewContext.default.Provider, {
20
+ const {
21
+ plugins
22
+ } = props;
23
+ const {
24
+ ctx
25
+ } = useTreeview.useTreeview(props);
26
+ return /*#__PURE__*/_jsx__default["default"](TreeViewContext["default"].Provider, {
45
27
  value: ctx
46
- }, plugins?.includes(import_dnd.TreeDndPlugin) ? /* @__PURE__ */ import_react.default.createElement(import_dnd.TreeDnD, null) : /* @__PURE__ */ import_react.default.createElement(import_TreeList.TreeList, null));
28
+ }, void 0, plugins !== null && plugins !== void 0 && plugins.includes(TreeDndPlugin.TreeDndPlugin) ? _TreeDnD || (_TreeDnD = /*#__PURE__*/_jsx__default["default"](TreeDndPlugin.TreeDnD, {})) : _TreeList || (_TreeList = /*#__PURE__*/_jsx__default["default"](TreeList.TreeList, {})));
47
29
  }
48
- TreeView.propTypes = import_react_desc_prop_types.TreeViewPropTypes;
49
- const TreeViewWithSchema = (0, import_react_desc.describe)(TreeView);
50
- TreeViewWithSchema.propTypes = import_react_desc_prop_types.TreeViewPropTypes;
51
- module.exports = __toCommonJS(TreeView_exports);
52
- //# sourceMappingURL=TreeView.js.map
30
+ const TreeViewWithSchema = reactDesc.describe(TreeView);
31
+ TreeViewWithSchema.propTypes = reactDescPropTypes.TreeViewPropTypes;
32
+
33
+ exports.TreeView = TreeView;
34
+ exports.TreeViewWithSchema = TreeViewWithSchema;
@@ -1,44 +1,18 @@
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 TreeViewContext_exports = {};
29
- __export(TreeViewContext_exports, {
30
- default: () => TreeViewContext_default,
31
- defaultProps: () => defaultProps,
32
- defaultRelativeMouseCoord: () => defaultRelativeMouseCoord
33
- });
34
- var React = __toESM(require("react"));
35
- var import_react = require("react");
36
- function noop(..._args) {
37
- }
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+
7
+ /* eslint-disable no-unused-vars */
8
+
9
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
10
+ function noop() {}
11
+
38
12
  const defaultProps = {
39
13
  plugins: [],
40
14
  selection: {},
41
- instanceRef: (0, import_react.createRef)(),
15
+ instanceRef: /*#__PURE__*/React.createRef(),
42
16
  isItemDisabled: () => false,
43
17
  disableIcons: false,
44
18
  fluid: false,
@@ -56,15 +30,20 @@ const defaultProps = {
56
30
  onSelectionChange: noop,
57
31
  onExpandChange: noop,
58
32
  onInstanceRefInitialized: noop,
59
- rowSize: "normal",
60
- labelOverflow: "wrap",
61
- noItemsPlaceholder: "No items found",
62
- nameKey: "name",
63
- width: "100%",
64
- height: "100%",
33
+ rowSize: 'normal',
34
+ labelOverflow: 'wrap',
35
+ noItemsPlaceholder: 'No items found',
36
+ nameKey: 'name',
37
+ width: '100%',
38
+ height: '100%',
65
39
  groupIcon: null,
66
40
  itemIcon: null,
67
- searchQuery: ""
41
+ searchQuery: '' // workaround on the typings over the fact that
42
+ // when we instantiate the context we can't have all the props
43
+ // we only have a part of them but the final typings will include missing props
44
+ // this is safe to do because
45
+ // we will "mergeWithDefaults" + "validatePropTypes" when we do instantiate the context
46
+
68
47
  };
69
48
  const defaultRelativeMouseCoord = {
70
49
  isBefore: false,
@@ -85,22 +64,22 @@ const defaultContext = {
85
64
  relativeMouseCord: defaultRelativeMouseCoord,
86
65
  setRelativeMouseCord: noop,
87
66
  triggerTreeRerender: noop,
88
- tree: void 0,
89
- treeRoot: void 0,
67
+ tree: undefined,
68
+ treeRoot: undefined,
90
69
  virtualListHelpers: {
91
70
  virtualItems: [],
92
71
  totalSize: 0,
93
72
  scrollToOffset: noop,
94
73
  scrollToIndex: noop
95
74
  },
96
- virtualListRef: void 0,
75
+ virtualListRef: undefined,
97
76
  isDragging: false,
98
77
  setIsDragging: noop,
99
78
  isKeyboardDragging: false,
100
79
  setIsKeyboardDragging: noop,
101
80
  draggedItem: null,
102
81
  setDraggedItem: noop,
103
- uniqueTreeViewUUID: "",
82
+ uniqueTreeViewUUID: '',
104
83
  selectedItem: null,
105
84
  setSelectedItem: noop,
106
85
  focusedItem: null,
@@ -116,7 +95,10 @@ const defaultContext = {
116
95
  handleExpandGroup: noop,
117
96
  updateUserExpandedState: noop
118
97
  };
119
- const TreeViewContext = (0, import_react.createContext)(defaultContext);
120
- var TreeViewContext_default = TreeViewContext;
121
- module.exports = __toCommonJS(TreeViewContext_exports);
122
- //# sourceMappingURL=TreeViewContext.js.map
98
+ /** Context for cross component communication */
99
+
100
+ const TreeViewContext = /*#__PURE__*/React.createContext(defaultContext);
101
+
102
+ exports["default"] = TreeViewContext;
103
+ exports.defaultProps = defaultProps;
104
+ exports.defaultRelativeMouseCoord = defaultRelativeMouseCoord;
@@ -1,41 +1,13 @@
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 cssClassesConstants_exports = {};
29
- __export(cssClassesConstants_exports, {
30
- DSTreeViewPrefix: () => DSTreeViewPrefix,
31
- treeItemBlockName: () => treeItemBlockName,
32
- treeListBlockName: () => treeListBlockName,
33
- treeListNoItemsBn: () => treeListNoItemsBn
34
- });
35
- var React = __toESM(require("react"));
36
- const DSTreeViewPrefix = "em-ds";
37
- const treeItemBlockName = "tree-item";
38
- const treeListBlockName = "tree-list";
39
- const treeListNoItemsBn = `${treeListBlockName}-no-items`;
40
- module.exports = __toCommonJS(cssClassesConstants_exports);
41
- //# sourceMappingURL=cssClassesConstants.js.map
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const DSTreeViewPrefix = 'em-ds';
6
+ const treeItemBlockName = 'tree-item';
7
+ const treeListBlockName = 'tree-list';
8
+ const treeListNoItemsBn = "".concat(treeListBlockName, "-no-items");
9
+
10
+ exports.DSTreeViewPrefix = DSTreeViewPrefix;
11
+ exports.treeItemBlockName = treeItemBlockName;
12
+ exports.treeListBlockName = treeListBlockName;
13
+ exports.treeListNoItemsBn = treeListNoItemsBn;
@@ -1,62 +1,45 @@
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 useTreeview_exports = {};
29
- __export(useTreeview_exports, {
30
- useTreeview: () => useTreeview
31
- });
32
- var React = __toESM(require("react"));
33
- var import_react = require("react");
34
- var import_react_virtual = require("react-virtual");
35
- var import_ds_props_helpers = require("@elliemae/ds-props-helpers");
36
- var import_uuid = require("uuid");
37
- var import_react_desc_prop_types = require("../react-desc-prop-types");
38
- var import_TreeViewContext = require("../TreeViewContext");
39
- var import_dnd = require("../plugins/dnd");
40
- var import_useTree = require("../utils/useTree");
41
- var import_group_expands_helpers = require("../utils/group-expands-helpers");
42
- var import_useInstanceRefActions = require("../utils/useInstanceRefActions");
43
- var import_keyboard_helpers = require("../utils/keyboard-helpers");
44
- const useTreeview = (props) => {
45
- const propsWithDefault = (0, import_ds_props_helpers.useMemoMergePropsWithDefault)(props, import_TreeViewContext.defaultProps);
46
- (0, import_ds_props_helpers.useValidateTypescriptPropTypes)(propsWithDefault, import_react_desc_prop_types.TreeViewPropTypes);
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
+ require('core-js/modules/web.dom-collections.iterator.js');
7
+ require('core-js/modules/esnext.async-iterator.filter.js');
8
+ require('core-js/modules/esnext.iterator.constructor.js');
9
+ require('core-js/modules/esnext.iterator.filter.js');
10
+ require('core-js/modules/esnext.async-iterator.for-each.js');
11
+ require('core-js/modules/esnext.iterator.for-each.js');
12
+ var React = require('react');
13
+ var reactVirtual = require('react-virtual');
14
+ var dsPropsHelpers = require('@elliemae/ds-props-helpers');
15
+ var uuid = require('uuid');
16
+ var reactDescPropTypes = require('../react-desc-prop-types.js');
17
+ var TreeViewContext = require('../TreeViewContext.js');
18
+ var TreeDndPlugin = require('../plugins/dnd/TreeDndPlugin.js');
19
+ var useTree = require('../utils/useTree.js');
20
+ var groupExpandsHelpers = require('../utils/group-expands-helpers.js');
21
+ var useInstanceRefActions = require('../utils/useInstanceRefActions.js');
22
+ var keyboardHelpers = require('../utils/keyboard-helpers.js');
23
+
24
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
25
+
26
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
27
+
28
+ 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; }
29
+
30
+ 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; }
31
+ const useTreeview = props => {
32
+ const propsWithDefault = dsPropsHelpers.useMemoMergePropsWithDefault(props, TreeViewContext.defaultProps);
33
+ dsPropsHelpers.useValidateTypescriptPropTypes(propsWithDefault, reactDescPropTypes.TreeViewPropTypes);
47
34
  const defaultActions = {
48
35
  actions: {
49
- toggleExpandAll: () => {
50
- },
51
- scrollTo: () => {
52
- },
53
- setSelectedItemByVirtualIndex: () => {
54
- },
55
- setFocusedItemByVirtualIndex: () => {
56
- }
36
+ toggleExpandAll: () => {},
37
+ scrollTo: () => {},
38
+ setSelectedItemByVirtualIndex: () => {},
39
+ setFocusedItemByVirtualIndex: () => {}
57
40
  }
58
41
  };
59
- const treeRef = (0, import_react.useRef)(defaultActions);
42
+ const treeRef = React.useRef(defaultActions);
60
43
  const {
61
44
  data,
62
45
  plugins,
@@ -67,33 +50,39 @@ const useTreeview = (props) => {
67
50
  selection,
68
51
  onInstanceRefInitialized
69
52
  } = propsWithDefault;
70
- const [isDragging, setIsDragging] = (0, import_react.useState)(false);
71
- const [isKeyboardDragging, setIsKeyboardDragging] = (0, import_react.useState)(false);
72
- const [relativeMouseCord, setRelativeMouseCord] = (0, import_react.useState)(import_TreeViewContext.defaultRelativeMouseCoord);
73
- const [uniqueTreeViewUUID] = (0, import_react.useState)((0, import_uuid.v4)());
74
- const [draggedItem, setDraggedItem] = (0, import_react.useState)(null);
75
- const [hoverItem, setHoverItem] = (0, import_react.useState)(null);
76
- const [latestToggledItem, setLatestToggledItem] = (0, import_react.useState)(null);
77
- const [selectedItem, setSelectedItem] = (0, import_react.useState)(null);
78
- const [focusedItem, setFocusedItem] = (0, import_react.useState)(null);
79
- const [selectedCheckboxes, setSelectedCheckboxes] = (0, import_react.useState)({
80
- ...selection
81
- });
82
- const [expandedGroups, setExpandedGroups] = (0, import_react.useState)({});
83
- const { visibleItems, tree, treeRoot, triggerTreeRerender, updateUserExpandedState } = (0, import_useTree.useTree)(data, propsWithDefault, {
53
+ const [isDragging, setIsDragging] = React.useState(false);
54
+ const [isKeyboardDragging, setIsKeyboardDragging] = React.useState(false);
55
+ const [relativeMouseCord, setRelativeMouseCord] = React.useState(TreeViewContext.defaultRelativeMouseCoord);
56
+ const [uniqueTreeViewUUID] = React.useState(uuid.v4());
57
+ const [draggedItem, setDraggedItem] = React.useState(null);
58
+ const [hoverItem, setHoverItem] = React.useState(null);
59
+ const [latestToggledItem, setLatestToggledItem] = React.useState(null);
60
+ const [selectedItem, setSelectedItem] = React.useState(null);
61
+ const [focusedItem, setFocusedItem] = React.useState(null);
62
+ const [selectedCheckboxes, setSelectedCheckboxes] = React.useState(_objectSpread({}, selection));
63
+ const [expandedGroups, setExpandedGroups] = React.useState({});
64
+ const {
65
+ visibleItems,
66
+ tree,
67
+ treeRoot,
68
+ triggerTreeRerender,
69
+ updateUserExpandedState
70
+ } = useTree.useTree(data, propsWithDefault, {
84
71
  setExpandedGroups
85
72
  });
86
- const virtualListRef = (0, import_react.useRef)();
87
- const virtualListHelpers = (0, import_react_virtual.useVirtual)({
73
+ const virtualListRef = React.useRef(); // estimateSize should not be really required given what was stated on
74
+ // https://github.com/tannerlinsley/react-virtual/issues/23
75
+
76
+ const virtualListHelpers = reactVirtual.useVirtual({
88
77
  size: visibleItems.length,
89
78
  parentRef: virtualListRef,
90
79
  overscan: 15
91
80
  });
92
- const withDragAndDrop = !!(plugins?.includes(import_dnd.TreeDndPlugin) && onOrderChange);
81
+ const withDragAndDrop = !!(plugins !== null && plugins !== void 0 && plugins.includes(TreeDndPlugin.TreeDndPlugin) && onOrderChange);
93
82
  const withRadioChecks = isSingleSelect && !isMultiSelect;
94
83
  const withCheckboxChecks = !isSingleSelect && isMultiSelect;
95
- const handleExpandGroup = (0, import_react.useCallback)(import_group_expands_helpers.toggleItemExpand, []);
96
- const ctx = (0, import_react.useMemo)(() => ({
84
+ const handleExpandGroup = React.useCallback(groupExpandsHelpers.toggleItemExpand, []);
85
+ const ctx = React.useMemo(() => ({
97
86
  props: propsWithDefault,
98
87
  setRelativeMouseCord,
99
88
  relativeMouseCord,
@@ -127,39 +116,22 @@ const useTreeview = (props) => {
127
116
  setHoverItem,
128
117
  handleExpandGroup,
129
118
  updateUserExpandedState
130
- }), [
131
- draggedItem,
132
- expandedGroups,
133
- focusedItem,
134
- handleExpandGroup,
135
- hoverItem,
136
- isDragging,
137
- isKeyboardDragging,
138
- latestToggledItem,
139
- propsWithDefault,
140
- relativeMouseCord,
141
- selectedCheckboxes,
142
- selectedItem,
143
- tree,
144
- treeRoot,
145
- triggerTreeRerender,
146
- uniqueTreeViewUUID,
147
- virtualListHelpers,
148
- visibleItems,
149
- withCheckboxChecks,
150
- withDragAndDrop,
151
- withRadioChecks,
152
- updateUserExpandedState
153
- ]);
154
- if (instanceRef)
155
- instanceRef.current = treeRef.current;
156
- (0, import_useInstanceRefActions.useInstanceRefActions)(treeRef.current, ctx);
157
- (0, import_keyboard_helpers.useGlobalToggleAllExpandShortcut)(treeRoot, triggerTreeRerender, setLatestToggledItem, updateUserExpandedState);
158
- (0, import_group_expands_helpers.useNotifyExpandedChange)(propsWithDefault, ctx);
159
- (0, import_react.useEffect)(() => {
160
- setTimeout(() => onInstanceRefInitialized(treeRef), 100);
119
+ }), [draggedItem, expandedGroups, focusedItem, handleExpandGroup, hoverItem, isDragging, isKeyboardDragging, latestToggledItem, propsWithDefault, relativeMouseCord, selectedCheckboxes, selectedItem, tree, treeRoot, triggerTreeRerender, uniqueTreeViewUUID, virtualListHelpers, visibleItems, withCheckboxChecks, withDragAndDrop, withRadioChecks, updateUserExpandedState]); // this hooks can't use the context because the context provider doesn't wrap this
120
+ // as such we manually pass the second parameter as fit
121
+
122
+ if (instanceRef) instanceRef.current = treeRef.current;
123
+ useInstanceRefActions.useInstanceRefActions(treeRef.current, ctx);
124
+ keyboardHelpers.useGlobalToggleAllExpandShortcut(treeRoot, triggerTreeRerender, setLatestToggledItem, updateUserExpandedState);
125
+ groupExpandsHelpers.useNotifyExpandedChange(propsWithDefault, ctx); // this is an horrible hack.
126
+ // this is required because there is no "on rendered" react-way to check if every children has finished rendering
127
+ // this should be working for now, in the future we may want to review this for a better solution
128
+
129
+ React.useEffect(() => {
130
+ setTimeout(() => onInstanceRefInitialized(treeRef), 100); // eslint-disable-next-line react-hooks/exhaustive-deps
161
131
  }, []);
162
- return (0, import_react.useMemo)(() => ({ ctx }), [ctx]);
132
+ return React.useMemo(() => ({
133
+ ctx
134
+ }), [ctx]);
163
135
  };
164
- module.exports = __toCommonJS(useTreeview_exports);
165
- //# sourceMappingURL=useTreeview.js.map
136
+
137
+ exports.useTreeview = useTreeview;
package/cjs/index.js CHANGED
@@ -1,37 +1,27 @@
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 src_exports = {};
29
- __export(src_exports, {
30
- TreeViewSearchBar: () => import_TreeViewSearchBar.TreeViewSearchBar
31
- });
32
- var React = __toESM(require("react"));
33
- __reExport(src_exports, require("./TreeView"));
34
- __reExport(src_exports, require("./plugins"));
35
- var import_TreeViewSearchBar = require("./related-components/TreeViewSearchBar");
36
- module.exports = __toCommonJS(src_exports);
37
- //# sourceMappingURL=index.js.map
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var TreeView = require('./TreeView.js');
6
+ var TreeDndPlugin = require('./plugins/dnd/TreeDndPlugin.js');
7
+ var TreeRovingPlugin = require('./plugins/roving/TreeRovingPlugin.js');
8
+ var SelectablePluginTree = require('./plugins/selectable/SelectablePluginTree.js');
9
+ var TreeToolbarPlugin = require('./plugins/toolbar/TreeToolbarPlugin.js');
10
+ var TreeDataPlugin = require('./plugins/tree/TreeDataPlugin.js');
11
+ var TreeVirtualizationPlugin = require('./plugins/virtualization/TreeVirtualizationPlugin.js');
12
+ var SearchableTreePlugin = require('./plugins/searchable/SearchableTreePlugin.js');
13
+ var TreeViewSearchBar = require('./related-components/TreeViewSearchBar.js');
14
+
15
+
16
+
17
+ exports.TreeView = TreeView.TreeView;
18
+ exports.TreeViewWithSchema = TreeView.TreeViewWithSchema;
19
+ exports.TreeDnD = TreeDndPlugin.TreeDnD;
20
+ exports.TreeDndPlugin = TreeDndPlugin.TreeDndPlugin;
21
+ exports.TreeRovingPlugin = TreeRovingPlugin.TreeRovingPlugin;
22
+ exports.SelectablePluginTree = SelectablePluginTree.SelectablePluginTree;
23
+ exports.TreeToolbarPlugin = TreeToolbarPlugin.TreeToolbarPlugin;
24
+ exports.TreePluginList = TreeDataPlugin.TreePluginList;
25
+ exports.TreeVirtualizationPlugin = TreeVirtualizationPlugin.TreeVirtualizationPlugin;
26
+ exports.SearchableTreePlugin = SearchableTreePlugin.SearchableTreePlugin;
27
+ exports.TreeViewSearchBar = TreeViewSearchBar.TreeViewSearchBar;