@elliemae/ds-treeview 2.0.1 → 2.1.0-rc.3

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 (167) hide show
  1. package/cjs/TreeView.js +5 -103
  2. package/cjs/TreeViewContext.js +44 -47
  3. package/cjs/config/useTreeview.js +137 -0
  4. package/cjs/index.js +1 -7
  5. package/cjs/parts/CheckboxSelectable.js +7 -9
  6. package/cjs/parts/ExpandCaret.js +17 -11
  7. package/cjs/parts/Icon.js +4 -0
  8. package/cjs/parts/NestingSpace.js +15 -22
  9. package/cjs/parts/RadioSelectable.js +7 -9
  10. package/cjs/parts/TreeItem.js +16 -13
  11. package/cjs/parts/TreeList.js +6 -4
  12. package/cjs/plugins/dnd/TreeDndPlugin.js +1 -1
  13. package/cjs/react-desc-prop-types.js +28 -27
  14. package/cjs/related-components/TreeViewSearchBar.js +9 -1
  15. package/cjs/{deprecated/plugins/selectable/helper.js → sharedTypes.js} +0 -0
  16. package/cjs/utils/dnd-helpers.js +2 -4
  17. package/cjs/utils/group-expands-helpers.js +34 -8
  18. package/cjs/utils/keyboard-helpers.js +64 -60
  19. package/cjs/utils/object-helpers.js +25 -7
  20. package/cjs/utils/refs-helpers.js +2 -2
  21. package/cjs/utils/selectable-helper.js +2 -2
  22. package/cjs/utils/tree-helpers.js +42 -27
  23. package/cjs/utils/useDnDHelpers.js +107 -100
  24. package/cjs/utils/useInstanceRefActions.js +3 -2
  25. package/cjs/utils/useTree.js +27 -8
  26. package/esm/TreeView.js +6 -103
  27. package/esm/TreeViewContext.js +44 -47
  28. package/esm/config/useTreeview.js +129 -0
  29. package/esm/index.js +0 -8
  30. package/esm/parts/CheckboxSelectable.js +7 -9
  31. package/esm/parts/ExpandCaret.js +17 -11
  32. package/esm/parts/Icon.js +4 -0
  33. package/esm/parts/NestingSpace.js +15 -21
  34. package/esm/parts/RadioSelectable.js +7 -9
  35. package/esm/parts/TreeItem.js +16 -13
  36. package/esm/parts/TreeList.js +6 -4
  37. package/esm/plugins/dnd/TreeDndPlugin.js +1 -1
  38. package/esm/react-desc-prop-types.js +28 -27
  39. package/esm/related-components/TreeViewSearchBar.js +9 -1
  40. package/esm/{deprecated/plugins/selectable/helper.js → sharedTypes.js} +0 -0
  41. package/esm/utils/dnd-helpers.js +2 -4
  42. package/esm/utils/group-expands-helpers.js +34 -9
  43. package/esm/utils/keyboard-helpers.js +62 -58
  44. package/esm/utils/object-helpers.js +25 -7
  45. package/esm/utils/refs-helpers.js +2 -2
  46. package/esm/utils/selectable-helper.js +2 -2
  47. package/esm/utils/tree-helpers.js +42 -27
  48. package/esm/utils/useDnDHelpers.js +107 -100
  49. package/esm/utils/useInstanceRefActions.js +3 -2
  50. package/esm/utils/useTree.js +27 -8
  51. package/package.json +17 -128
  52. package/types/TreeView.d.ts +4 -148
  53. package/types/TreeViewContext.d.ts +4 -106
  54. package/types/config/useTreeview.d.ts +7 -0
  55. package/types/index.d.ts +0 -1
  56. package/types/parts/CheckboxSelectable.d.ts +5 -6
  57. package/types/parts/ChildrenCountDisplayer.d.ts +6 -6
  58. package/types/parts/ExpandCaret.d.ts +6 -6
  59. package/types/parts/Icon.d.ts +7 -5
  60. package/types/parts/NestingSpace.d.ts +3 -8
  61. package/types/parts/RadioSelectable.d.ts +5 -6
  62. package/types/parts/TreeItem.d.ts +22 -14
  63. package/types/parts/TreeItemText.d.ts +5 -5
  64. package/types/parts/TreeList.d.ts +22 -9
  65. package/types/react-desc-prop-types.d.ts +124 -43
  66. package/types/related-components/TreeViewSearchBar.d.ts +14 -11
  67. package/types/sharedTypes.d.ts +54 -0
  68. package/types/utils/array-helpers.d.ts +2 -2
  69. package/types/utils/dnd-helpers.d.ts +26 -25
  70. package/types/utils/group-expands-helpers.d.ts +13 -10
  71. package/types/utils/keyboard-helpers.d.ts +5 -3
  72. package/types/utils/object-helpers.d.ts +6 -2
  73. package/types/utils/refs-helpers.d.ts +4 -1
  74. package/types/utils/selectable-helper.d.ts +7 -3
  75. package/types/utils/string-helpers.d.ts +1 -1
  76. package/types/utils/tree-helpers.d.ts +25 -11
  77. package/types/utils/useDnDHelpers.d.ts +23 -3
  78. package/types/utils/useInstanceRefActions.d.ts +3 -3
  79. package/types/utils/useTree.d.ts +8 -7
  80. package/cjs/deprecated/TreeView.js +0 -72
  81. package/cjs/deprecated/__testUtils__/utils.js +0 -89
  82. package/cjs/deprecated/index.js +0 -27
  83. package/cjs/deprecated/plugins/dnd/TreeDndPlugin.js +0 -119
  84. package/cjs/deprecated/plugins/dnd/index.js +0 -9
  85. package/cjs/deprecated/plugins/dnd/renderers/DraggableItem.js +0 -67
  86. package/cjs/deprecated/plugins/dnd/renderers/DroppableList.js +0 -181
  87. package/cjs/deprecated/plugins/dnd/utils.js +0 -157
  88. package/cjs/deprecated/plugins/index.js +0 -21
  89. package/cjs/deprecated/plugins/roving/TreeRovingPlugin.js +0 -109
  90. package/cjs/deprecated/plugins/roving/index.js +0 -9
  91. package/cjs/deprecated/plugins/searchable/SearchableTreePlugin.js +0 -109
  92. package/cjs/deprecated/plugins/searchable/index.js +0 -9
  93. package/cjs/deprecated/plugins/searchable/utils.js +0 -7
  94. package/cjs/deprecated/plugins/selectable/SelectablePluginTree.js +0 -290
  95. package/cjs/deprecated/plugins/selectable/index.js +0 -9
  96. package/cjs/deprecated/plugins/selectable/utils.js +0 -19
  97. package/cjs/deprecated/plugins/toolbar/TreeToolbarPlugin.js +0 -128
  98. package/cjs/deprecated/plugins/toolbar/index.js +0 -9
  99. package/cjs/deprecated/plugins/tree/TreeDataPlugin.js +0 -281
  100. package/cjs/deprecated/plugins/tree/index.js +0 -9
  101. package/cjs/deprecated/plugins/tree/useExpandTreeState.js +0 -143
  102. package/cjs/deprecated/plugins/tree/utils.js +0 -43
  103. package/cjs/deprecated/plugins/tree/walkTreeStrategy.js +0 -60
  104. package/cjs/deprecated/plugins/virtualization/TreeVirtualizationPlugin.js +0 -209
  105. package/cjs/deprecated/plugins/virtualization/index.js +0 -9
  106. package/cjs/deprecated/renderers.js +0 -76
  107. package/cjs/prop-types.js +0 -61
  108. package/esm/deprecated/TreeView.js +0 -61
  109. package/esm/deprecated/__testUtils__/utils.js +0 -79
  110. package/esm/deprecated/index.js +0 -14
  111. package/esm/deprecated/plugins/dnd/TreeDndPlugin.js +0 -110
  112. package/esm/deprecated/plugins/dnd/index.js +0 -1
  113. package/esm/deprecated/plugins/dnd/renderers/DraggableItem.js +0 -59
  114. package/esm/deprecated/plugins/dnd/renderers/DroppableList.js +0 -172
  115. package/esm/deprecated/plugins/dnd/utils.js +0 -139
  116. package/esm/deprecated/plugins/index.js +0 -7
  117. package/esm/deprecated/plugins/roving/TreeRovingPlugin.js +0 -96
  118. package/esm/deprecated/plugins/roving/index.js +0 -1
  119. package/esm/deprecated/plugins/searchable/SearchableTreePlugin.js +0 -99
  120. package/esm/deprecated/plugins/searchable/index.js +0 -1
  121. package/esm/deprecated/plugins/searchable/utils.js +0 -3
  122. package/esm/deprecated/plugins/selectable/SelectablePluginTree.js +0 -280
  123. package/esm/deprecated/plugins/selectable/index.js +0 -1
  124. package/esm/deprecated/plugins/selectable/utils.js +0 -15
  125. package/esm/deprecated/plugins/toolbar/TreeToolbarPlugin.js +0 -114
  126. package/esm/deprecated/plugins/toolbar/index.js +0 -1
  127. package/esm/deprecated/plugins/tree/TreeDataPlugin.js +0 -269
  128. package/esm/deprecated/plugins/tree/index.js +0 -1
  129. package/esm/deprecated/plugins/tree/useExpandTreeState.js +0 -135
  130. package/esm/deprecated/plugins/tree/utils.js +0 -28
  131. package/esm/deprecated/plugins/tree/walkTreeStrategy.js +0 -56
  132. package/esm/deprecated/plugins/virtualization/TreeVirtualizationPlugin.js +0 -197
  133. package/esm/deprecated/plugins/virtualization/index.js +0 -1
  134. package/esm/deprecated/renderers.js +0 -59
  135. package/esm/prop-types.js +0 -46
  136. package/types/deprecated/TreeView.d.ts +0 -8
  137. package/types/deprecated/__testUtils__/utils.d.ts +0 -72
  138. package/types/deprecated/index.d.ts +0 -2
  139. package/types/deprecated/plugins/dnd/TreeDndPlugin.d.ts +0 -1
  140. package/types/deprecated/plugins/dnd/index.d.ts +0 -1
  141. package/types/deprecated/plugins/dnd/renderers/DraggableItem.d.ts +0 -3
  142. package/types/deprecated/plugins/dnd/renderers/DroppableList.d.ts +0 -6
  143. package/types/deprecated/plugins/dnd/tests/TreeDndPlugin.test.d.ts +0 -0
  144. package/types/deprecated/plugins/dnd/utils.d.ts +0 -28
  145. package/types/deprecated/plugins/index.d.ts +0 -7
  146. package/types/deprecated/plugins/roving/TreeRovingPlugin.d.ts +0 -1
  147. package/types/deprecated/plugins/roving/index.d.ts +0 -1
  148. package/types/deprecated/plugins/searchable/SearchableTreePlugin.d.ts +0 -1
  149. package/types/deprecated/plugins/searchable/index.d.ts +0 -1
  150. package/types/deprecated/plugins/searchable/utils.d.ts +0 -1
  151. package/types/deprecated/plugins/selectable/SelectablePluginTree.d.ts +0 -1
  152. package/types/deprecated/plugins/selectable/helper.d.ts +0 -0
  153. package/types/deprecated/plugins/selectable/index.d.ts +0 -1
  154. package/types/deprecated/plugins/selectable/tests/SelectablePluginTree.test.d.ts +0 -1
  155. package/types/deprecated/plugins/selectable/utils.d.ts +0 -1
  156. package/types/deprecated/plugins/toolbar/TreeToolbarPlugin.d.ts +0 -1
  157. package/types/deprecated/plugins/toolbar/index.d.ts +0 -1
  158. package/types/deprecated/plugins/tree/TreeDataPlugin.d.ts +0 -1
  159. package/types/deprecated/plugins/tree/index.d.ts +0 -1
  160. package/types/deprecated/plugins/tree/tests/TreeDataPlugin.test.d.ts +0 -1
  161. package/types/deprecated/plugins/tree/useExpandTreeState.d.ts +0 -14
  162. package/types/deprecated/plugins/tree/utils.d.ts +0 -8
  163. package/types/deprecated/plugins/tree/walkTreeStrategy.d.ts +0 -9
  164. package/types/deprecated/plugins/virtualization/TreeVirtualizationPlugin.d.ts +0 -1
  165. package/types/deprecated/plugins/virtualization/index.d.ts +0 -1
  166. package/types/deprecated/renderers.d.ts +0 -19
  167. package/types/prop-types.d.ts +0 -26
@@ -1,209 +0,0 @@
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 _jsx = require('@babel/runtime/helpers/jsx');
11
- var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
12
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
13
- var React = require('react');
14
- var reactWindowDynamicFork = require('@john-osullivan/react-window-dynamic-fork');
15
- var virtualization = require('@elliemae/ds-shared/virtualization');
16
- var createInstancePlugin = require('@elliemae/ds-shared/createDataInstance/createInstancePlugin');
17
- var renderers = require('../../renderers.js');
18
- var jsxRuntime = require('react/jsx-runtime');
19
-
20
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
21
-
22
- var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
23
- var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
24
- var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
25
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
26
- var createInstancePlugin__default = /*#__PURE__*/_interopDefaultLegacy(createInstancePlugin);
27
-
28
- const _excluded = ["records", "itemRenderer", "innerRef"];
29
-
30
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
31
-
32
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
33
-
34
- function shallowDiffers(prev, next) {
35
- // eslint-disable-next-line no-restricted-syntax
36
- for (const attribute in prev) {
37
- if (!(attribute in next)) {
38
- return true;
39
- }
40
- } // eslint-disable-next-line no-restricted-syntax
41
-
42
-
43
- for (const attribute in next) {
44
- if (prev[attribute] !== next[attribute]) {
45
- return true;
46
- }
47
- }
48
-
49
- return false;
50
- } // more performant alternative to areEqual from react-window 1.8.5
51
-
52
-
53
- function areEqualRecords(prevProps, nextProps) {
54
- const {
55
- style: prevStyle,
56
- index: pIdx,
57
- data: pData
58
- } = prevProps;
59
- const {
60
- style: nextStyle,
61
- index: nIdx,
62
- data: nData
63
- } = nextProps;
64
- return !shallowDiffers(prevStyle, nextStyle) && !shallowDiffers(pData === null || pData === void 0 ? void 0 : pData.records[pIdx], nData === null || nData === void 0 ? void 0 : nData.records[nIdx]);
65
- } // memoized list items strategy
66
- // https://react-window.now.sh/#/examples/list/memoized-list-items
67
-
68
-
69
- const VirtualizedTreeItem = /*#__PURE__*/React__default["default"].memo( /*#__PURE__*/React__default["default"].forwardRef((_ref, ref) => {
70
- let {
71
- index,
72
- style,
73
- data
74
- } = _ref;
75
- const {
76
- instance,
77
- records,
78
- listRef
79
- } = data;
80
- const {
81
- itemRenderer,
82
- getItemProps,
83
- renderers
84
- } = instance.getInstance();
85
- const record = records[index];
86
- const ItemComponent = renderers.item; // needed to show the shadow below the row and because
87
- // of absolute positioning from react-window
88
-
89
- const mixedProps = getItemProps({
90
- index,
91
- record,
92
- style,
93
- listRef,
94
- innerRef: ref
95
- }, {
96
- record
97
- });
98
- record.style = style;
99
- return /*#__PURE__*/jsxRuntime.jsx(ItemComponent, _objectSpread(_objectSpread({}, mixedProps), {}, {
100
- tabIndex: -1,
101
- children: itemRenderer(mixedProps)
102
- }));
103
- }), areEqualRecords); // eslint-disable-next-line react/display-name
104
-
105
- const VirtualizedTree = (renderers$1, instance) => _ref2 => {
106
- let {
107
- records,
108
- itemRenderer,
109
- innerRef
110
- } = _ref2,
111
- rest = _objectWithoutProperties__default["default"](_ref2, _excluded);
112
-
113
- // eslint-disable-next-line react-hooks/rules-of-hooks
114
- const {
115
- props: {
116
- autoHeight,
117
- fluid,
118
- width,
119
- height = 500,
120
- noItemsPlaceholder = 'No items found',
121
- initialOffset
122
- },
123
- state: {
124
- listRef
125
- },
126
- renderers: currRenderers,
127
- setListRef
128
- } = instance.getInstance(); // eslint-disable-next-line react-hooks/rules-of-hooks
129
-
130
- const ListComponent = React.useMemo(() => virtualization.getVirtualListComponent({
131
- component: reactWindowDynamicFork.DynamicSizeList,
132
- height,
133
- fluid,
134
- autoHeight
135
- }), [height, autoHeight]); // eslint-disable-next-line react-hooks/rules-of-hooks
136
-
137
- const itemData = React.useMemo(() => ({
138
- instance,
139
- listRef,
140
- renderers: currRenderers,
141
- records
142
- }), [records, currRenderers, listRef]); // todo: revise this
143
-
144
- if (records && !records.length) {
145
- return /*#__PURE__*/_jsx__default["default"](renderers.TreeListNoItems, {}, void 0, noItemsPlaceholder);
146
- }
147
-
148
- return /*#__PURE__*/jsxRuntime.jsx(ListComponent, _objectSpread(_objectSpread({
149
- innerRef: setListRef
150
- }, rest), {}, {
151
- ref: listRef,
152
- component: reactWindowDynamicFork.DynamicSizeList,
153
- height: height,
154
- initialScrollOffset: initialOffset,
155
- itemCount: records.length,
156
- itemData: itemData,
157
- outerElementType: renderers$1.list,
158
- outerRef: innerRef,
159
- width: width,
160
- children: VirtualizedTreeItem
161
- }));
162
- };
163
-
164
- const TreeVirtualizationPlugin = createInstancePlugin__default["default"]('tree-virtualization', {
165
- state() {
166
- // eslint-disable-next-line react-hooks/rules-of-hooks
167
- const listRef = React.useRef();
168
- return {
169
- state: {
170
- listRef
171
- },
172
- actions: {
173
- scrollTo: function () {
174
- var _listRef$current;
175
-
176
- if (listRef !== null && listRef !== void 0 && (_listRef$current = listRef.current) !== null && _listRef$current !== void 0 && _listRef$current.scrollTo) {
177
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
178
- args[_key] = arguments[_key];
179
- }
180
-
181
- listRef.current.scrollTo(args);
182
- }
183
- },
184
- scrollToItem: function () {
185
- var _listRef$current2;
186
-
187
- if (listRef !== null && listRef !== void 0 && (_listRef$current2 = listRef.current) !== null && _listRef$current2 !== void 0 && _listRef$current2.scrollToItem) {
188
- for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
189
- args[_key2] = arguments[_key2];
190
- }
191
-
192
- listRef.current.scrollToItem(args);
193
- }
194
- }
195
- }
196
- };
197
- },
198
-
199
- renderers(renderers, instance) {
200
- return {
201
- item: renderers.item,
202
- // eslint-disable-next-line react-hooks/rules-of-hooks
203
- list: React.useMemo(() => VirtualizedTree(renderers, instance), [])
204
- };
205
- }
206
-
207
- });
208
-
209
- exports.TreeVirtualizationPlugin = TreeVirtualizationPlugin;
@@ -1,9 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var TreeVirtualizationPlugin = require('./TreeVirtualizationPlugin.js');
6
-
7
-
8
-
9
- exports.TreeVirtualizationPlugin = TreeVirtualizationPlugin.TreeVirtualizationPlugin;
@@ -1,76 +0,0 @@
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 _jsx = require('@babel/runtime/helpers/jsx');
12
- var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
13
- var dsClassnames = require('@elliemae/ds-classnames');
14
- require('react');
15
- var jsxRuntime = require('react/jsx-runtime');
16
-
17
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
18
-
19
- var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
20
- var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
21
- var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
22
-
23
- const _excluded = ["leftAddons", "rightAddons", "children"];
24
-
25
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
26
-
27
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
28
- const treeListBlockName = 'tree-list';
29
- const treeItemBlockName = 'tree-item';
30
- const treeListNoItemsBn = "".concat(treeListBlockName, "-no-items");
31
- const TreeListItem = dsClassnames.aggregatedClasses('li', {
32
- 'data-testid': treeItemBlockName,
33
- role: 'treeitem'
34
- })(treeItemBlockName);
35
- const TreeListItemAddonsWrapper = dsClassnames.aggregatedClasses('div')(treeItemBlockName, 'addons');
36
- const TreeList = dsClassnames.aggregatedClasses('ul', {
37
- 'data-testid': treeListBlockName,
38
- role: 'tree'
39
- })(treeListBlockName, null, _ref => {
40
- let {
41
- rowSize
42
- } = _ref;
43
- return {
44
- ["rowsize-".concat(rowSize)]: rowSize
45
- };
46
- });
47
- const TreeListNoItems = dsClassnames.aggregatedClasses('div', {
48
- 'data-testid': treeListNoItemsBn
49
- })(treeListNoItemsBn);
50
-
51
- function TreeItem(_ref2) {
52
- let {
53
- leftAddons,
54
- rightAddons,
55
- children
56
- } = _ref2,
57
- rest = _objectWithoutProperties__default["default"](_ref2, _excluded);
58
-
59
- return /*#__PURE__*/jsxRuntime.jsxs(TreeListItem, _objectSpread(_objectSpread({}, rest), {}, {
60
- children: [leftAddons && /*#__PURE__*/_jsx__default["default"](TreeListItemAddonsWrapper, {}, void 0, leftAddons), children, rightAddons && /*#__PURE__*/_jsx__default["default"](TreeListItemAddonsWrapper, {}, void 0, rightAddons)]
61
- }));
62
- }
63
-
64
- const TreeRenderers = {
65
- list: TreeList,
66
- item: TreeItem
67
- };
68
-
69
- exports.TreeList = TreeList;
70
- exports.TreeListItem = TreeListItem;
71
- exports.TreeListItemAddonsWrapper = TreeListItemAddonsWrapper;
72
- exports.TreeListNoItems = TreeListNoItems;
73
- exports.TreeRenderers = TreeRenderers;
74
- exports.treeItemBlockName = treeItemBlockName;
75
- exports.treeListBlockName = treeListBlockName;
76
- exports.treeListNoItemsBn = treeListNoItemsBn;
package/cjs/prop-types.js DELETED
@@ -1,61 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var PropTypes = require('prop-types');
6
-
7
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
-
9
- var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
10
-
11
- /* eslint-disable max-lines */
12
- const InstanceActionsPropTypes = PropTypes__default["default"].shape({
13
- toggleExpandAll: PropTypes__default["default"].func,
14
- scrollTo: PropTypes__default["default"].func
15
- });
16
- const TreeViewInstancePropType = PropTypes__default["default"].shape({
17
- current: PropTypes__default["default"].oneOfType([PropTypes__default["default"].oneOf([null]), PropTypes__default["default"].shape({
18
- actions: InstanceActionsPropTypes.isRequired
19
- })])
20
- });
21
- const TreeViewItemPropType = PropTypes__default["default"].shape({
22
- children: PropTypes__default["default"].arrayOf(PropTypes__default["default"].object),
23
- id: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].number]),
24
- isGroup: PropTypes__default["default"].oneOfType([PropTypes__default["default"].oneOf([undefined, null]), PropTypes__default["default"].bool]),
25
- name: PropTypes__default["default"].string,
26
- node: PropTypes__default["default"].object
27
- });
28
- const TreeListPropTypes = {
29
- // required when drag and drop is enabled, tracks the drag and drop results after drop and visual feedback borders
30
- // passed down to TreeItem
31
- onMouseDragOverItem: PropTypes__default["default"].func
32
- };
33
- const TreeItemPropTypes = {
34
- item: TreeViewItemPropType.isRequired,
35
- index: PropTypes__default["default"].number,
36
- itemIndex: PropTypes__default["default"].number,
37
- itemWrapperStyle: PropTypes__default["default"].object,
38
- virtualItemRef: PropTypes__default["default"].func,
39
- spaceForNestingLevel: PropTypes__default["default"].number,
40
- onMouseDragOverItem: PropTypes__default["default"].func
41
- };
42
- const TreeItemExpandCaretPropTypes = {
43
- item: TreeViewItemPropType.isRequired
44
- };
45
- const TreeItemNestingSpacePropTypes = {
46
- item: TreeViewItemPropType.isRequired,
47
- spaceForNestingLevel: PropTypes__default["default"].number.isRequired
48
- };
49
- const TreeItemCheckboxPropTypes = {
50
- item: TreeViewItemPropType.isRequired,
51
- itemIndex: PropTypes__default["default"].number.isRequired
52
- };
53
-
54
- exports.InstanceActionsPropTypes = InstanceActionsPropTypes;
55
- exports.TreeItemCheckboxPropTypes = TreeItemCheckboxPropTypes;
56
- exports.TreeItemExpandCaretPropTypes = TreeItemExpandCaretPropTypes;
57
- exports.TreeItemNestingSpacePropTypes = TreeItemNestingSpacePropTypes;
58
- exports.TreeItemPropTypes = TreeItemPropTypes;
59
- exports.TreeListPropTypes = TreeListPropTypes;
60
- exports.TreeViewInstancePropType = TreeViewInstancePropType;
61
- exports.TreeViewItemPropType = TreeViewItemPropType;
@@ -1,61 +0,0 @@
1
- import 'core-js/modules/esnext.async-iterator.filter.js';
2
- import 'core-js/modules/esnext.iterator.constructor.js';
3
- import 'core-js/modules/esnext.iterator.filter.js';
4
- import 'core-js/modules/esnext.async-iterator.for-each.js';
5
- import 'core-js/modules/esnext.iterator.for-each.js';
6
- import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
7
- import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';
8
- import _jsx from '@babel/runtime/helpers/esm/jsx';
9
- import 'core-js/modules/web.dom-collections.iterator.js';
10
- import 'react';
11
- import useDataList from '@elliemae/ds-shared/useDataList';
12
- import { TreeRenderers } from './renderers.js';
13
- import { TreePluginList } from './plugins/tree/TreeDataPlugin.js';
14
- import { TreeVirtualizationPlugin } from './plugins/virtualization/TreeVirtualizationPlugin.js';
15
- import { TreeRovingPlugin } from './plugins/roving/TreeRovingPlugin.js';
16
- import { jsx } from 'react/jsx-runtime';
17
-
18
- const _excluded = ["data", "plugins", "children", "roving", "rowSize"];
19
-
20
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
21
-
22
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
23
-
24
- const wrapComponentIfExists = (Wrapper, children) => Wrapper ? /*#__PURE__*/_jsx(Wrapper, {}, void 0, children) : children;
25
-
26
- function TreeView(_ref) {
27
- let {
28
- data,
29
- plugins = [],
30
- children,
31
- roving = true,
32
- rowSize = 'normal'
33
- } = _ref,
34
- props = _objectWithoutProperties(_ref, _excluded);
35
-
36
- const instance = useDataList(_objectSpread(_objectSpread({
37
- data,
38
- plugins: [TreePluginList, TreeVirtualizationPlugin, roving && TreeRovingPlugin, ...plugins],
39
- customDecorators: {
40
- shouldWalkChildren: []
41
- },
42
- // adds a new decorator to the useDataList specific for trees
43
- renderers: TreeRenderers
44
- }, props), {}, {
45
- rowSize
46
- }));
47
- const {
48
- list: ListComponent,
49
- listWrapper: Wrapper
50
- } = instance.renderers;
51
- const {
52
- getListProps
53
- } = instance;
54
- return wrapComponentIfExists(Wrapper, /*#__PURE__*/jsx(ListComponent, _objectSpread(_objectSpread({
55
- records: instance.records
56
- }, getListProps()), {}, {
57
- className: "em-ds-tv-row-size-".concat(rowSize)
58
- })));
59
- }
60
-
61
- export { TreeView };
@@ -1,79 +0,0 @@
1
- import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
2
- import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';
3
- import 'core-js/modules/esnext.map.delete-all.js';
4
- import 'core-js/modules/esnext.map.emplace.js';
5
- import 'core-js/modules/esnext.map.every.js';
6
- import 'core-js/modules/esnext.map.filter.js';
7
- import 'core-js/modules/esnext.map.find.js';
8
- import 'core-js/modules/esnext.map.find-key.js';
9
- import 'core-js/modules/esnext.map.includes.js';
10
- import 'core-js/modules/esnext.map.key-of.js';
11
- import 'core-js/modules/esnext.map.map-keys.js';
12
- import 'core-js/modules/esnext.map.map-values.js';
13
- import 'core-js/modules/esnext.map.merge.js';
14
- import 'core-js/modules/esnext.map.reduce.js';
15
- import 'core-js/modules/esnext.map.some.js';
16
- import 'core-js/modules/esnext.map.update.js';
17
- import 'core-js/modules/web.dom-collections.iterator.js';
18
- import 'core-js/modules/esnext.async-iterator.for-each.js';
19
- import 'core-js/modules/esnext.iterator.constructor.js';
20
- import 'core-js/modules/esnext.iterator.for-each.js';
21
- import 'core-js/modules/es.string.replace.js';
22
- import 'core-js/modules/esnext.async-iterator.filter.js';
23
- import 'core-js/modules/esnext.iterator.filter.js';
24
- import 'react';
25
- import { render } from '@testing-library/react';
26
- import { treeItemBlockName } from '../renderers.js';
27
- import { TreeView } from '../TreeView.js';
28
- import { jsx } from 'react/jsx-runtime';
29
-
30
- const _excluded = ["data", "plugins"],
31
- _excluded2 = ["getAllByTestId"];
32
-
33
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
34
-
35
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
36
- const treeItemsToMap = items => {
37
- const itemsMap = new Map();
38
- items.forEach(item => itemsMap.set(item.textContent.replace(/\(.*?\)/, '').replace(' ', ''), item));
39
- return itemsMap;
40
- };
41
- /**
42
- * Returns items and itemMap with itemText as keys
43
- *
44
- * @param root0
45
- * @param root0.data
46
- * @param root0.plugins
47
- * @param key
48
- */
49
-
50
- function getTreeItemsFromRender(_ref) {
51
- let key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : treeItemBlockName;
52
-
53
- let {
54
- data,
55
- plugins
56
- } = _ref,
57
- props = _objectWithoutProperties(_ref, _excluded);
58
-
59
- const _render = render( /*#__PURE__*/jsx(TreeView, _objectSpread(_objectSpread({}, props), {}, {
60
- data: data,
61
- height: 1000,
62
- plugins: plugins,
63
- width: 300
64
- }))),
65
- {
66
- getAllByTestId
67
- } = _render,
68
- testingLibraryApi = _objectWithoutProperties(_render, _excluded2);
69
-
70
- const items = getAllByTestId(key);
71
- const itemsMap = treeItemsToMap(items);
72
- return _objectSpread({
73
- items,
74
- itemsMap,
75
- getAllByTestId
76
- }, testingLibraryApi);
77
- }
78
-
79
- export { getTreeItemsFromRender, treeItemsToMap };
@@ -1,14 +0,0 @@
1
- export { TreeView } from './TreeView.js';
2
- export { TreeDndPlugin } from './plugins/dnd/TreeDndPlugin.js';
3
- export { TreeRovingPlugin } from './plugins/roving/TreeRovingPlugin.js';
4
- export { SelectablePluginTree } from './plugins/selectable/SelectablePluginTree.js';
5
- export { TreeToolbarPlugin } from './plugins/toolbar/TreeToolbarPlugin.js';
6
- export { TreePluginList } from './plugins/tree/TreeDataPlugin.js';
7
- export { TreeVirtualizationPlugin } from './plugins/virtualization/TreeVirtualizationPlugin.js';
8
- export { SearchableTreePlugin } from './plugins/searchable/SearchableTreePlugin.js';
9
-
10
- /* eslint-disable global-require */
11
- // Polyfill ResizeObserver for demo
12
- if (typeof ResizeObserver === 'undefined') {
13
- global.ResizeObserver = require('resize-observer-polyfill').default;
14
- }
@@ -1,110 +0,0 @@
1
- import 'core-js/modules/esnext.async-iterator.filter.js';
2
- import 'core-js/modules/esnext.iterator.constructor.js';
3
- import 'core-js/modules/esnext.iterator.filter.js';
4
- import 'core-js/modules/esnext.async-iterator.for-each.js';
5
- import 'core-js/modules/esnext.iterator.for-each.js';
6
- import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
7
- import 'core-js/modules/web.dom-collections.iterator.js';
8
- import { useState, useCallback, useMemo } from 'react';
9
- import { isEqual } from '@elliemae/ds-utilities';
10
- import createInstancePlugin from '@elliemae/ds-shared/createDataInstance/createInstancePlugin';
11
- import DraggableItem from './renderers/DraggableItem.js';
12
- import DroppableList from './renderers/DroppableList.js';
13
- import { getTreePosition, changePositionSameArray, changePositionBetweenDifferentArrays } from './utils.js';
14
-
15
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
16
-
17
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
18
- const TreeDndPlugin = createInstancePlugin('tree-dnd', {
19
- state(instance) {
20
- const {
21
- originalData,
22
- props: {
23
- childrenKey = 'children',
24
- onOrderChange = () => null
25
- }
26
- } = instance; // eslint-disable-next-line react-hooks/rules-of-hooks
27
-
28
- const [draggedRecord, setDraggedRecord] = useState(null); // eslint-disable-next-line react-hooks/rules-of-hooks
29
-
30
- const changeRecordsPosition = useCallback(_ref => {
31
- let {
32
- sourceRecord,
33
- targetRecord,
34
- combineWith,
35
- down
36
- } = _ref;
37
- let nextTreeData;
38
- const sourceTreePosition = getTreePosition(sourceRecord.path);
39
- let targetTreePosition = {};
40
-
41
- if (combineWith) {
42
- targetTreePosition = {
43
- parentPath: combineWith.path
44
- };
45
- } else if (targetRecord) {
46
- targetTreePosition = getTreePosition(targetRecord.path);
47
- } else {
48
- // there is no reordering
49
- // Reason: outside tree / outside drop target
50
- return originalData;
51
- } // if we are not combining elements we change the same array
52
- // if we combine elements, we change a different array (the children of the target)
53
-
54
-
55
- const changingSameArray = !combineWith && isEqual(sourceTreePosition.parentPath, targetTreePosition.parentPath);
56
-
57
- if (changingSameArray) {
58
- nextTreeData = changePositionSameArray({
59
- sourceRecord,
60
- targetRecord,
61
- sourceTreePosition,
62
- targetTreePosition,
63
- data: originalData
64
- });
65
- } else {
66
- nextTreeData = changePositionBetweenDifferentArrays({
67
- sourceRecord,
68
- targetRecord: combineWith || targetRecord,
69
- combineWith,
70
- sourceTreePosition,
71
- targetTreePosition,
72
- data: originalData,
73
- down
74
- });
75
- }
76
-
77
- onOrderChange(nextTreeData, sourceRecord); // console.log('nextTreeData :>> ', nextTreeData);
78
- // console.log(
79
- // `${sourceRecord?.data?.name} --> ${
80
- // combineWith?.data?.name || targetRecord?.data?.name
81
- // }`,
82
- // );
83
-
84
- return nextTreeData;
85
- }, [originalData, childrenKey]);
86
- return {
87
- state: {
88
- draggedRecord
89
- },
90
- actions: {
91
- setDraggedRecord,
92
- changeRecordsPosition
93
- }
94
- };
95
- },
96
-
97
- renderers(renderers, instance) {
98
- // eslint-disable-next-line react-hooks/rules-of-hooks
99
- const item = useMemo(() => DraggableItem(renderers), []); // eslint-disable-next-line react-hooks/rules-of-hooks
100
-
101
- const list = useMemo(() => DroppableList(renderers, instance), []);
102
- return _objectSpread(_objectSpread({}, renderers), {}, {
103
- item,
104
- list
105
- });
106
- }
107
-
108
- });
109
-
110
- export { TreeDndPlugin };
@@ -1 +0,0 @@
1
- export { TreeDndPlugin } from './TreeDndPlugin.js';