@elliemae/ds-treeview 2.0.0-alpha.1 → 2.0.0-alpha.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/TreeView.js +9 -3
- package/cjs/TreeViewContext.js +1 -1
- package/cjs/config/cssClassesConstants.js +1 -1
- package/cjs/deprecated/TreeView.js +11 -5
- package/cjs/deprecated/__testUtils__/utils.js +13 -4
- package/cjs/deprecated/plugins/dnd/TreeDndPlugin.js +17 -10
- package/cjs/deprecated/plugins/dnd/renderers/DraggableItem.js +13 -8
- package/cjs/deprecated/plugins/dnd/renderers/DroppableList.js +26 -20
- package/cjs/deprecated/plugins/dnd/utils.js +43 -35
- package/cjs/deprecated/plugins/roving/TreeRovingPlugin.js +18 -8
- package/cjs/deprecated/plugins/searchable/SearchableTreePlugin.js +7 -5
- package/cjs/deprecated/plugins/searchable/utils.js +1 -1
- package/cjs/deprecated/plugins/selectable/SelectablePluginTree.js +55 -35
- package/cjs/deprecated/plugins/toolbar/TreeToolbarPlugin.js +18 -14
- package/cjs/deprecated/plugins/tree/TreeDataPlugin.js +51 -40
- package/cjs/deprecated/plugins/tree/useExpandTreeState.js +10 -6
- package/cjs/deprecated/plugins/tree/utils.js +21 -8
- package/cjs/deprecated/plugins/tree/walkTreeStrategy.js +13 -9
- package/cjs/deprecated/plugins/virtualization/TreeVirtualizationPlugin.js +27 -13
- package/cjs/deprecated/renderers.js +19 -11
- package/cjs/parts/CheckboxSelectable.js +10 -6
- package/cjs/parts/ChildrenCountDisplayer.js +3 -3
- package/cjs/parts/ExpandCaret.js +14 -14
- package/cjs/parts/Icon.js +4 -4
- package/cjs/parts/NestingSpace.js +8 -3
- package/cjs/parts/RadioSelectable.js +4 -5
- package/cjs/parts/TreeItem.js +44 -33
- package/cjs/parts/TreeItemText.js +27 -24
- package/cjs/parts/TreeList.js +30 -20
- package/cjs/plugins/dnd/TreeDndPlugin.js +2 -2
- package/cjs/prop-types.js +20 -20
- package/cjs/related-components/TreeViewSearchBar.js +2 -2
- package/cjs/utils/array-helpers.js +2 -0
- package/cjs/utils/dnd-helpers.js +29 -25
- package/cjs/utils/group-expands-helpers.js +7 -5
- package/cjs/utils/keyboard-helpers.js +7 -4
- package/cjs/utils/object-helpers.js +8 -0
- package/cjs/utils/refs-helpers.js +11 -1
- package/cjs/utils/selectable-helper.js +10 -3
- package/cjs/utils/tree-helpers.js +27 -9
- package/cjs/utils/useDnDHelpers.js +22 -15
- package/cjs/utils/useInstanceRefActions.js +14 -10
- package/cjs/utils/useTree.js +8 -2
- package/esm/TreeView.js +6 -0
- package/esm/config/cssClassesConstants.js +1 -1
- package/esm/deprecated/TreeView.js +7 -1
- package/esm/deprecated/__testUtils__/utils.js +10 -1
- package/esm/deprecated/plugins/dnd/TreeDndPlugin.js +14 -7
- package/esm/deprecated/plugins/dnd/renderers/DraggableItem.js +9 -3
- package/esm/deprecated/plugins/dnd/renderers/DroppableList.js +18 -11
- package/esm/deprecated/plugins/dnd/utils.js +35 -27
- package/esm/deprecated/plugins/roving/TreeRovingPlugin.js +12 -2
- package/esm/deprecated/plugins/searchable/SearchableTreePlugin.js +4 -1
- package/esm/deprecated/plugins/searchable/utils.js +1 -1
- package/esm/deprecated/plugins/selectable/SelectablePluginTree.js +45 -22
- package/esm/deprecated/plugins/toolbar/TreeToolbarPlugin.js +8 -3
- package/esm/deprecated/plugins/tree/TreeDataPlugin.js +35 -22
- package/esm/deprecated/plugins/tree/useExpandTreeState.js +7 -2
- package/esm/deprecated/plugins/tree/utils.js +19 -6
- package/esm/deprecated/plugins/tree/walkTreeStrategy.js +13 -9
- package/esm/deprecated/plugins/virtualization/TreeVirtualizationPlugin.js +24 -10
- package/esm/deprecated/renderers.js +17 -9
- package/esm/parts/CheckboxSelectable.js +7 -2
- package/esm/parts/ChildrenCountDisplayer.js +2 -2
- package/esm/parts/ExpandCaret.js +9 -7
- package/esm/parts/Icon.js +1 -1
- package/esm/parts/NestingSpace.js +6 -1
- package/esm/parts/RadioSelectable.js +3 -3
- package/esm/parts/TreeItem.js +34 -22
- package/esm/parts/TreeItemText.js +16 -13
- package/esm/parts/TreeList.js +25 -15
- package/esm/related-components/TreeViewSearchBar.js +1 -1
- package/esm/utils/array-helpers.js +2 -0
- package/esm/utils/dnd-helpers.js +29 -25
- package/esm/utils/group-expands-helpers.js +7 -5
- package/esm/utils/keyboard-helpers.js +6 -3
- package/esm/utils/object-helpers.js +8 -0
- package/esm/utils/refs-helpers.js +11 -1
- package/esm/utils/selectable-helper.js +9 -2
- package/esm/utils/tree-helpers.js +27 -9
- package/esm/utils/useDnDHelpers.js +21 -14
- package/esm/utils/useInstanceRefActions.js +14 -10
- package/esm/utils/useTree.js +6 -0
- package/package.json +14 -13
- package/types/TreeView.d.ts +118 -28
- package/types/deprecated/__testUtils__/utils.d.ts +49 -49
- package/types/deprecated/plugins/tree/useExpandTreeState.d.ts +12 -2
- package/types/react-desc-prop-types.d.ts +113 -27
- package/cjs/package.json +0 -7
- package/esm/package.json +0 -7
package/cjs/TreeView.js
CHANGED
|
@@ -4,6 +4,12 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var _jsx = require('@babel/runtime/helpers/jsx');
|
|
6
6
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
7
|
+
require('core-js/modules/web.dom-collections.iterator.js');
|
|
8
|
+
require('core-js/modules/esnext.async-iterator.filter.js');
|
|
9
|
+
require('core-js/modules/esnext.iterator.constructor.js');
|
|
10
|
+
require('core-js/modules/esnext.iterator.filter.js');
|
|
11
|
+
require('core-js/modules/esnext.async-iterator.for-each.js');
|
|
12
|
+
require('core-js/modules/esnext.iterator.for-each.js');
|
|
7
13
|
var React = require('react');
|
|
8
14
|
var reactVirtual = require('react-virtual');
|
|
9
15
|
var uuid = require('uuid');
|
|
@@ -26,7 +32,7 @@ var _TreeDnD, _TreeList;
|
|
|
26
32
|
|
|
27
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; }
|
|
28
34
|
|
|
29
|
-
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[
|
|
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__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; }
|
|
30
36
|
function TreeView(props) {
|
|
31
37
|
const treeRef = React.useRef({
|
|
32
38
|
actions: {}
|
|
@@ -114,9 +120,9 @@ function TreeView(props) {
|
|
|
114
120
|
ctx.props.onInstanceRefInitialized(treeRef);
|
|
115
121
|
}, 100);
|
|
116
122
|
}, []);
|
|
117
|
-
return /*#__PURE__*/_jsx__default[
|
|
123
|
+
return /*#__PURE__*/_jsx__default["default"](TreeViewContext["default"].Provider, {
|
|
118
124
|
value: ctx
|
|
119
|
-
}, void 0, plugins !== null && plugins !== void 0 && plugins.includes(TreeDndPlugin.TreeDndPlugin) ? _TreeDnD || (_TreeDnD = /*#__PURE__*/_jsx__default[
|
|
125
|
+
}, 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, {})));
|
|
120
126
|
}
|
|
121
127
|
TreeView.defaultProps = TreeViewContext.defaultProps;
|
|
122
128
|
const TreeViewWithSchema = reactDesc.describe(TreeView);
|
package/cjs/TreeViewContext.js
CHANGED
|
@@ -102,6 +102,6 @@ const TreeViewContext = /*#__PURE__*/React.createContext({
|
|
|
102
102
|
setHoverItem: () => {}
|
|
103
103
|
});
|
|
104
104
|
|
|
105
|
-
exports[
|
|
105
|
+
exports["default"] = TreeViewContext;
|
|
106
106
|
exports.defaultProps = defaultProps;
|
|
107
107
|
exports.defaultRelativeMouseCoord = defaultRelativeMouseCoord;
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
const DSTreeViewPrefix = 'em-ds';
|
|
6
6
|
const treeItemBlockName = 'tree-item';
|
|
7
7
|
const treeListBlockName = 'tree-list';
|
|
8
|
-
const treeListNoItemsBn =
|
|
8
|
+
const treeListNoItemsBn = "".concat(treeListBlockName, "-no-items");
|
|
9
9
|
|
|
10
10
|
exports.DSTreeViewPrefix = DSTreeViewPrefix;
|
|
11
11
|
exports.treeItemBlockName = treeItemBlockName;
|
|
@@ -5,6 +5,12 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
6
6
|
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
7
7
|
var _jsx = require('@babel/runtime/helpers/jsx');
|
|
8
|
+
require('core-js/modules/web.dom-collections.iterator.js');
|
|
9
|
+
require('core-js/modules/esnext.async-iterator.filter.js');
|
|
10
|
+
require('core-js/modules/esnext.iterator.constructor.js');
|
|
11
|
+
require('core-js/modules/esnext.iterator.filter.js');
|
|
12
|
+
require('core-js/modules/esnext.async-iterator.for-each.js');
|
|
13
|
+
require('core-js/modules/esnext.iterator.for-each.js');
|
|
8
14
|
require('react');
|
|
9
15
|
var useDataList = require('@elliemae/ds-shared/useDataList');
|
|
10
16
|
var renderers = require('./renderers.js');
|
|
@@ -24,9 +30,9 @@ const _excluded = ["data", "plugins", "children", "roving", "rowSize"];
|
|
|
24
30
|
|
|
25
31
|
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
32
|
|
|
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[
|
|
33
|
+
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
34
|
|
|
29
|
-
const wrapComponentIfExists = (Wrapper, children) => Wrapper ? /*#__PURE__*/_jsx__default[
|
|
35
|
+
const wrapComponentIfExists = (Wrapper, children) => Wrapper ? /*#__PURE__*/_jsx__default["default"](Wrapper, {}, void 0, children) : children;
|
|
30
36
|
|
|
31
37
|
function TreeView(_ref) {
|
|
32
38
|
let {
|
|
@@ -36,9 +42,9 @@ function TreeView(_ref) {
|
|
|
36
42
|
roving = true,
|
|
37
43
|
rowSize = 'normal'
|
|
38
44
|
} = _ref,
|
|
39
|
-
props = _objectWithoutProperties__default[
|
|
45
|
+
props = _objectWithoutProperties__default["default"](_ref, _excluded);
|
|
40
46
|
|
|
41
|
-
const instance = useDataList__default[
|
|
47
|
+
const instance = useDataList__default["default"](_objectSpread(_objectSpread({
|
|
42
48
|
data,
|
|
43
49
|
plugins: [TreeDataPlugin.TreePluginList, TreeVirtualizationPlugin.TreeVirtualizationPlugin, roving && TreeRovingPlugin.TreeRovingPlugin, ...plugins],
|
|
44
50
|
customDecorators: {
|
|
@@ -59,7 +65,7 @@ function TreeView(_ref) {
|
|
|
59
65
|
return wrapComponentIfExists(Wrapper, /*#__PURE__*/jsxRuntime.jsx(ListComponent, _objectSpread(_objectSpread({
|
|
60
66
|
records: instance.records
|
|
61
67
|
}, getListProps()), {}, {
|
|
62
|
-
className:
|
|
68
|
+
className: "em-ds-tv-row-size-".concat(rowSize)
|
|
63
69
|
})));
|
|
64
70
|
}
|
|
65
71
|
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
6
6
|
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
7
7
|
require('core-js/modules/esnext.map.delete-all.js');
|
|
8
|
+
require('core-js/modules/esnext.map.emplace.js');
|
|
8
9
|
require('core-js/modules/esnext.map.every.js');
|
|
9
10
|
require('core-js/modules/esnext.map.filter.js');
|
|
10
11
|
require('core-js/modules/esnext.map.find.js');
|
|
@@ -17,7 +18,13 @@ require('core-js/modules/esnext.map.merge.js');
|
|
|
17
18
|
require('core-js/modules/esnext.map.reduce.js');
|
|
18
19
|
require('core-js/modules/esnext.map.some.js');
|
|
19
20
|
require('core-js/modules/esnext.map.update.js');
|
|
21
|
+
require('core-js/modules/web.dom-collections.iterator.js');
|
|
22
|
+
require('core-js/modules/esnext.async-iterator.for-each.js');
|
|
23
|
+
require('core-js/modules/esnext.iterator.constructor.js');
|
|
24
|
+
require('core-js/modules/esnext.iterator.for-each.js');
|
|
20
25
|
require('core-js/modules/es.string.replace.js');
|
|
26
|
+
require('core-js/modules/esnext.async-iterator.filter.js');
|
|
27
|
+
require('core-js/modules/esnext.iterator.filter.js');
|
|
21
28
|
require('react');
|
|
22
29
|
var react = require('@testing-library/react');
|
|
23
30
|
var renderers = require('../renderers.js');
|
|
@@ -34,7 +41,7 @@ const _excluded = ["data", "plugins"],
|
|
|
34
41
|
|
|
35
42
|
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; }
|
|
36
43
|
|
|
37
|
-
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[
|
|
44
|
+
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; }
|
|
38
45
|
const treeItemsToMap = items => {
|
|
39
46
|
const itemsMap = new Map();
|
|
40
47
|
items.forEach(item => itemsMap.set(item.textContent.replace(/\(.*?\)/, '').replace(' ', ''), item));
|
|
@@ -49,12 +56,14 @@ const treeItemsToMap = items => {
|
|
|
49
56
|
* @param key
|
|
50
57
|
*/
|
|
51
58
|
|
|
52
|
-
function getTreeItemsFromRender(_ref
|
|
59
|
+
function getTreeItemsFromRender(_ref) {
|
|
60
|
+
let key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : renderers.treeItemBlockName;
|
|
61
|
+
|
|
53
62
|
let {
|
|
54
63
|
data,
|
|
55
64
|
plugins
|
|
56
65
|
} = _ref,
|
|
57
|
-
props = _objectWithoutProperties__default[
|
|
66
|
+
props = _objectWithoutProperties__default["default"](_ref, _excluded);
|
|
58
67
|
|
|
59
68
|
const _render = react.render( /*#__PURE__*/jsxRuntime.jsx(TreeView.TreeView, _objectSpread(_objectSpread({}, props), {}, {
|
|
60
69
|
data: data,
|
|
@@ -65,7 +74,7 @@ function getTreeItemsFromRender(_ref, key = renderers.treeItemBlockName) {
|
|
|
65
74
|
{
|
|
66
75
|
getAllByTestId
|
|
67
76
|
} = _render,
|
|
68
|
-
testingLibraryApi = _objectWithoutProperties__default[
|
|
77
|
+
testingLibraryApi = _objectWithoutProperties__default["default"](_render, _excluded2);
|
|
69
78
|
|
|
70
79
|
const items = getAllByTestId(key);
|
|
71
80
|
const itemsMap = treeItemsToMap(items);
|
|
@@ -3,8 +3,14 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
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');
|
|
6
12
|
var React = require('react');
|
|
7
|
-
var
|
|
13
|
+
var dsUtilities = require('@elliemae/ds-utilities');
|
|
8
14
|
var createInstancePlugin = require('@elliemae/ds-shared/createDataInstance/createInstancePlugin');
|
|
9
15
|
var DraggableItem = require('./renderers/DraggableItem.js');
|
|
10
16
|
var DroppableList = require('./renderers/DroppableList.js');
|
|
@@ -17,8 +23,8 @@ var createInstancePlugin__default = /*#__PURE__*/_interopDefaultLegacy(createIns
|
|
|
17
23
|
|
|
18
24
|
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; }
|
|
19
25
|
|
|
20
|
-
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[
|
|
21
|
-
const TreeDndPlugin = createInstancePlugin__default[
|
|
26
|
+
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; }
|
|
27
|
+
const TreeDndPlugin = createInstancePlugin__default["default"]('tree-dnd', {
|
|
22
28
|
state(instance) {
|
|
23
29
|
const {
|
|
24
30
|
originalData,
|
|
@@ -30,12 +36,13 @@ const TreeDndPlugin = createInstancePlugin__default['default']('tree-dnd', {
|
|
|
30
36
|
|
|
31
37
|
const [draggedRecord, setDraggedRecord] = React.useState(null); // eslint-disable-next-line react-hooks/rules-of-hooks
|
|
32
38
|
|
|
33
|
-
const changeRecordsPosition = React.useCallback(
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
+
const changeRecordsPosition = React.useCallback(_ref => {
|
|
40
|
+
let {
|
|
41
|
+
sourceRecord,
|
|
42
|
+
targetRecord,
|
|
43
|
+
combineWith,
|
|
44
|
+
down
|
|
45
|
+
} = _ref;
|
|
39
46
|
let nextTreeData;
|
|
40
47
|
const sourceTreePosition = utils.getTreePosition(sourceRecord.path);
|
|
41
48
|
let targetTreePosition = {};
|
|
@@ -54,7 +61,7 @@ const TreeDndPlugin = createInstancePlugin__default['default']('tree-dnd', {
|
|
|
54
61
|
// if we combine elements, we change a different array (the children of the target)
|
|
55
62
|
|
|
56
63
|
|
|
57
|
-
const changingSameArray = !combineWith &&
|
|
64
|
+
const changingSameArray = !combineWith && dsUtilities.isEqual(sourceTreePosition.parentPath, targetTreePosition.parentPath);
|
|
58
65
|
|
|
59
66
|
if (changingSameArray) {
|
|
60
67
|
nextTreeData = utils.changePositionSameArray({
|
|
@@ -3,9 +3,15 @@
|
|
|
3
3
|
var _jsx = require('@babel/runtime/helpers/jsx');
|
|
4
4
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
5
5
|
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
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');
|
|
6
12
|
require('react');
|
|
7
13
|
var reactBeautifulDnd = require('react-beautiful-dnd');
|
|
8
|
-
var
|
|
14
|
+
var dsIcons = require('@elliemae/ds-icons');
|
|
9
15
|
var utils = require('../utils.js');
|
|
10
16
|
var jsxRuntime = require('react/jsx-runtime');
|
|
11
17
|
|
|
@@ -14,13 +20,12 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
14
20
|
var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
|
|
15
21
|
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
16
22
|
var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
|
|
17
|
-
var GripperVertical__default = /*#__PURE__*/_interopDefaultLegacy(GripperVertical);
|
|
18
23
|
|
|
19
24
|
const _excluded = ["key"];
|
|
20
25
|
|
|
21
26
|
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; }
|
|
22
27
|
|
|
23
|
-
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[
|
|
28
|
+
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; }
|
|
24
29
|
|
|
25
30
|
const DraggableItem = (renderers // , instance
|
|
26
31
|
) => props => {
|
|
@@ -35,25 +40,25 @@ const DraggableItem = (renderers // , instance
|
|
|
35
40
|
const isDragDisabled = (record === null || record === void 0 ? void 0 : (_record$parentNode = record.parentNode) === null || _record$parentNode === void 0 ? void 0 : (_record$parentNode$da = _record$parentNode.data) === null || _record$parentNode$da === void 0 ? void 0 : _record$parentNode$da.disableDragChildren) || (record === null || record === void 0 ? void 0 : (_record$data = record.data) === null || _record$data === void 0 ? void 0 : _record$data.disableDrag) || false; // const { draggedRecord } = instance.getInstance().state;
|
|
36
41
|
// const isDragging = record.id === draggedRecord?.id;
|
|
37
42
|
|
|
38
|
-
return /*#__PURE__*/_jsx__default[
|
|
43
|
+
return /*#__PURE__*/_jsx__default["default"](reactBeautifulDnd.Draggable, {
|
|
39
44
|
isDragDisabled: isDragDisabled,
|
|
40
45
|
draggableId: String(record.id),
|
|
41
46
|
index: index
|
|
42
|
-
},
|
|
47
|
+
}, "".concat(record.id, "-draggable"), (provided, snapshot) => {
|
|
43
48
|
const _getDraggableProps = utils.getDraggableProps(props, provided, snapshot),
|
|
44
49
|
{
|
|
45
50
|
key
|
|
46
51
|
} = _getDraggableProps,
|
|
47
|
-
draggableProps = _objectWithoutProperties__default[
|
|
52
|
+
draggableProps = _objectWithoutProperties__default["default"](_getDraggableProps, _excluded);
|
|
48
53
|
|
|
49
54
|
return /*#__PURE__*/jsxRuntime.jsx(ItemComponent, _objectSpread(_objectSpread({}, draggableProps), {}, {
|
|
50
55
|
// isDragging={isDragging}
|
|
51
|
-
leftAddons: [/*#__PURE__*/jsxRuntime.jsx(
|
|
56
|
+
leftAddons: [/*#__PURE__*/jsxRuntime.jsx(dsIcons.GripperVertical, _objectSpread(_objectSpread({
|
|
52
57
|
"data-testid": "drag-handle"
|
|
53
58
|
}, provided.dragHandleProps), {}, {
|
|
54
59
|
className: "drag-handle",
|
|
55
60
|
tabIndex: isItemFocused ? 0 : -1
|
|
56
|
-
}),
|
|
61
|
+
}), "".concat(record.id, "-drag-handle")), ...(props.leftAddons || [])],
|
|
57
62
|
children: props.children
|
|
58
63
|
}), key);
|
|
59
64
|
});
|
|
@@ -3,11 +3,16 @@
|
|
|
3
3
|
var _jsx = require('@babel/runtime/helpers/jsx');
|
|
4
4
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
5
5
|
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
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');
|
|
6
12
|
var React = require('react');
|
|
7
13
|
var reactBeautifulDnd = require('react-beautiful-dnd');
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var system = require('@elliemae/ds-utilities/system');
|
|
14
|
+
var dsUtilities = require('@elliemae/ds-utilities');
|
|
15
|
+
var dsIcons = require('@elliemae/ds-icons');
|
|
11
16
|
var FocusGroupContext = require('@elliemae/ds-shared/FocusGroup/FocusGroupContext');
|
|
12
17
|
var utils = require('../../tree/utils.js');
|
|
13
18
|
var utils$1 = require('../utils.js');
|
|
@@ -18,20 +23,19 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
18
23
|
var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
|
|
19
24
|
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
20
25
|
var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
|
|
21
|
-
var GripperVertical__default = /*#__PURE__*/_interopDefaultLegacy(GripperVertical);
|
|
22
26
|
var FocusGroupContext__default = /*#__PURE__*/_interopDefaultLegacy(FocusGroupContext);
|
|
23
27
|
|
|
24
28
|
const _excluded = ["records"];
|
|
25
29
|
|
|
26
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; }
|
|
27
31
|
|
|
28
|
-
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[
|
|
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; }
|
|
29
33
|
|
|
30
34
|
const DroppableList = (renderers, instance) => _ref => {
|
|
31
35
|
let {
|
|
32
36
|
records
|
|
33
37
|
} = _ref,
|
|
34
|
-
rest = _objectWithoutProperties__default[
|
|
38
|
+
rest = _objectWithoutProperties__default["default"](_ref, _excluded);
|
|
35
39
|
|
|
36
40
|
const {
|
|
37
41
|
props: {
|
|
@@ -48,7 +52,7 @@ const DroppableList = (renderers, instance) => _ref => {
|
|
|
48
52
|
},
|
|
49
53
|
itemRenderer
|
|
50
54
|
} = instance.getInstance();
|
|
51
|
-
const focusContext = React.useContext(FocusGroupContext__default[
|
|
55
|
+
const focusContext = React.useContext(FocusGroupContext__default["default"]);
|
|
52
56
|
const [focusedItemWasDragged, setFocusedItemWasDragged] = React.useState(false);
|
|
53
57
|
const preDragFocusedNode = React.useRef();
|
|
54
58
|
const expandTimerRef = React.useRef();
|
|
@@ -74,9 +78,10 @@ const DroppableList = (renderers, instance) => _ref => {
|
|
|
74
78
|
|
|
75
79
|
currTargetRef.current = destination || currTargetRef.current;
|
|
76
80
|
}, [records]);
|
|
77
|
-
const onDragStart = React.useCallback(
|
|
78
|
-
|
|
79
|
-
|
|
81
|
+
const onDragStart = React.useCallback(_ref2 => {
|
|
82
|
+
let {
|
|
83
|
+
source
|
|
84
|
+
} = _ref2;
|
|
80
85
|
preDragFocusedNode.current = document.activeElement; // when we move the currently focused item, preDragFocusedNode is the body of the doc
|
|
81
86
|
|
|
82
87
|
setFocusedItemWasDragged(preDragFocusedNode.current.tagName === 'BODY');
|
|
@@ -91,13 +96,14 @@ const DroppableList = (renderers, instance) => _ref => {
|
|
|
91
96
|
}, [records]);
|
|
92
97
|
const onDragEnd = React.useCallback( // eslint-disable-next-line complexity
|
|
93
98
|
// eslint-disable-next-line max-statements
|
|
94
|
-
|
|
95
|
-
destination,
|
|
96
|
-
source,
|
|
97
|
-
combine
|
|
98
|
-
}) => {
|
|
99
|
+
_ref3 => {
|
|
99
100
|
var _sourceRecord$parentN, _targetRecord$parentN;
|
|
100
101
|
|
|
102
|
+
let {
|
|
103
|
+
destination,
|
|
104
|
+
source,
|
|
105
|
+
combine
|
|
106
|
+
} = _ref3;
|
|
101
107
|
clearTimeout(expandTimerRef.current);
|
|
102
108
|
const sourceIndex = source.index;
|
|
103
109
|
const destinationIndex = destination && destination.index;
|
|
@@ -143,18 +149,18 @@ const DroppableList = (renderers, instance) => _ref => {
|
|
|
143
149
|
record: record
|
|
144
150
|
}, utils$1.getDraggableProps({
|
|
145
151
|
className: 'item-cloned'
|
|
146
|
-
}, provided, snapshot)), /*#__PURE__*/jsxRuntime.jsx(
|
|
152
|
+
}, provided, snapshot)), /*#__PURE__*/jsxRuntime.jsx(dsIcons.GripperVertical, _objectSpread(_objectSpread({}, provided.dragHandleProps), {}, {
|
|
147
153
|
className: "drag-handle"
|
|
148
154
|
})), itemRenderer({
|
|
149
155
|
record,
|
|
150
156
|
nestingLevel: targetRecord.nestingLevel
|
|
151
157
|
}));
|
|
152
158
|
}, [currTargetRef, records, itemRenderer]);
|
|
153
|
-
return /*#__PURE__*/_jsx__default[
|
|
159
|
+
return /*#__PURE__*/_jsx__default["default"](reactBeautifulDnd.DragDropContext, {
|
|
154
160
|
onDragEnd: onDragEnd,
|
|
155
161
|
onDragStart: onDragStart,
|
|
156
162
|
onDragUpdate: onDragUpdate
|
|
157
|
-
}, void 0, /*#__PURE__*/_jsx__default[
|
|
163
|
+
}, void 0, /*#__PURE__*/_jsx__default["default"](reactBeautifulDnd.Droppable, {
|
|
158
164
|
droppableId: "droppableId",
|
|
159
165
|
isCombineEnabled: true,
|
|
160
166
|
mode: "virtual",
|
|
@@ -164,8 +170,8 @@ const DroppableList = (renderers, instance) => _ref => {
|
|
|
164
170
|
// work in a virtual list
|
|
165
171
|
const itemCount = snapshot.isUsingPlaceholder ? records.length + 1 : records.length;
|
|
166
172
|
return /*#__PURE__*/jsxRuntime.jsx(ListComponent, _objectSpread(_objectSpread({}, rest), {}, {
|
|
167
|
-
className:
|
|
168
|
-
innerRef:
|
|
173
|
+
className: dsUtilities.cx(rest.className, draggedRecord && 'dragging'),
|
|
174
|
+
innerRef: dsUtilities.mergeRefs(droppableProvided.innerRef, rest.innerRef, rest.ref),
|
|
169
175
|
itemCount: itemCount,
|
|
170
176
|
records: records
|
|
171
177
|
}));
|
|
@@ -3,8 +3,13 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
6
|
-
|
|
7
|
-
|
|
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 dsUtilities = require('@elliemae/ds-utilities');
|
|
8
13
|
|
|
9
14
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
10
15
|
|
|
@@ -12,7 +17,7 @@ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_definePropert
|
|
|
12
17
|
|
|
13
18
|
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; }
|
|
14
19
|
|
|
15
|
-
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[
|
|
20
|
+
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; }
|
|
16
21
|
function getStyle(provided, style) {
|
|
17
22
|
if (!style) {
|
|
18
23
|
return provided.draggableProps.style;
|
|
@@ -23,9 +28,9 @@ function getStyle(provided, style) {
|
|
|
23
28
|
function getDraggableProps(props, provided, snapshot) {
|
|
24
29
|
const isGroupedOver = Boolean(snapshot.combineTargetFor);
|
|
25
30
|
return _objectSpread(_objectSpread(_objectSpread({}, props), provided.draggableProps), {}, {
|
|
26
|
-
className:
|
|
31
|
+
className: dsUtilities.cx(props.className, isGroupedOver && 'can-group-over'),
|
|
27
32
|
// provided,
|
|
28
|
-
innerRef:
|
|
33
|
+
innerRef: dsUtilities.mergeRefs(provided.innerRef, props.innerRef, props.ref),
|
|
29
34
|
'data-index': props.index,
|
|
30
35
|
style: getStyle(provided, _objectSpread(_objectSpread({}, props.style), {}, {
|
|
31
36
|
display: 'flex'
|
|
@@ -36,7 +41,7 @@ const setTreeArrayInPath = (treeData, path, data) => {
|
|
|
36
41
|
const nextTreeData = [...treeData];
|
|
37
42
|
|
|
38
43
|
if (path.length) {
|
|
39
|
-
|
|
44
|
+
dsUtilities.set(nextTreeData, path, data);
|
|
40
45
|
return nextTreeData;
|
|
41
46
|
}
|
|
42
47
|
|
|
@@ -63,37 +68,39 @@ const isSourceBeforeTarget = (sourcePath, targetPath) => {
|
|
|
63
68
|
|
|
64
69
|
return sourceIsBeforeTarget;
|
|
65
70
|
};
|
|
66
|
-
const updateTargetPath = (sourcePath, targetPath
|
|
71
|
+
const updateTargetPath = function (sourcePath, targetPath) {
|
|
72
|
+
let incr = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1;
|
|
67
73
|
const nextTargetPath = [...targetPath];
|
|
68
74
|
const posToUpdate = sourcePath.length ? sourcePath.length - 1 : 0;
|
|
69
75
|
nextTargetPath.splice(posToUpdate, 1, targetPath[posToUpdate] + incr);
|
|
70
76
|
return nextTargetPath;
|
|
71
77
|
};
|
|
72
78
|
const getParentPath = path => path.slice(0, -1);
|
|
73
|
-
const getParentChildrenByPath = (treeData, path) => path && path.length ?
|
|
79
|
+
const getParentChildrenByPath = (treeData, path) => path && path.length ? dsUtilities.get(treeData, path) : treeData;
|
|
74
80
|
const getTreePosition = recordPath => ({
|
|
75
81
|
parentPath: getParentPath(recordPath),
|
|
76
82
|
index: recordPath.slice(-1)[0]
|
|
77
83
|
});
|
|
78
|
-
const changePositionBetweenDifferentArrays =
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
84
|
+
const changePositionBetweenDifferentArrays = _ref => {
|
|
85
|
+
let {
|
|
86
|
+
sourceTreePosition,
|
|
87
|
+
// already extracted sourceRecord.path
|
|
88
|
+
targetTreePosition,
|
|
89
|
+
// already extracted targetRecord.path
|
|
90
|
+
// combineWith the element we want to append to the children of (this is null when the drag doesn't result in adding children)
|
|
91
|
+
combineWith,
|
|
92
|
+
sourceRecord,
|
|
93
|
+
// what we are dragging
|
|
94
|
+
targetRecord,
|
|
95
|
+
// what we are dropping on top of
|
|
96
|
+
down,
|
|
97
|
+
// ???
|
|
98
|
+
data,
|
|
99
|
+
// tree before dragEnd changes
|
|
100
|
+
childrenKey = 'children' // constant -> 'children'
|
|
101
|
+
|
|
102
|
+
} = _ref;
|
|
103
|
+
let nextTreeData = dsUtilities.cloneDeep(data);
|
|
97
104
|
if (!sourceRecord || !sourceRecord.data) throw new Error('error while dragging, no dragged item received');
|
|
98
105
|
const sourceTreeChildren = getParentChildrenByPath(nextTreeData, sourceTreePosition.parentPath); // When moving an item we remove the item from it's former parent children array
|
|
99
106
|
|
|
@@ -122,15 +129,16 @@ const changePositionBetweenDifferentArrays = ({
|
|
|
122
129
|
return nextTreeData;
|
|
123
130
|
};
|
|
124
131
|
const combineWithTarget = () => {};
|
|
125
|
-
const changePositionSameArray =
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
+
const changePositionSameArray = _ref2 => {
|
|
133
|
+
let {
|
|
134
|
+
targetTreePosition,
|
|
135
|
+
sourceRecord,
|
|
136
|
+
targetRecord,
|
|
137
|
+
data
|
|
138
|
+
} = _ref2;
|
|
139
|
+
let nextTreeData = dsUtilities.cloneDeep(data);
|
|
132
140
|
const targetTreeChildren = getParentChildrenByPath(nextTreeData, targetTreePosition.parentPath);
|
|
133
|
-
const nextChildren =
|
|
141
|
+
const nextChildren = dsUtilities.arrayMove(targetTreeChildren, sourceRecord.index, targetRecord.index); // mutates the tree. That's the reason of the clone above
|
|
134
142
|
|
|
135
143
|
nextTreeData = setTreeArrayInPath(nextTreeData, targetTreePosition.parentPath, nextChildren);
|
|
136
144
|
return nextTreeData;
|
|
@@ -5,10 +5,16 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
6
6
|
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
7
7
|
var _jsx = require('@babel/runtime/helpers/jsx');
|
|
8
|
+
require('core-js/modules/web.dom-collections.iterator.js');
|
|
9
|
+
require('core-js/modules/esnext.async-iterator.filter.js');
|
|
10
|
+
require('core-js/modules/esnext.iterator.constructor.js');
|
|
11
|
+
require('core-js/modules/esnext.iterator.filter.js');
|
|
12
|
+
require('core-js/modules/esnext.async-iterator.for-each.js');
|
|
13
|
+
require('core-js/modules/esnext.iterator.for-each.js');
|
|
8
14
|
var React = require('react');
|
|
9
15
|
var FocusGroupProvider = require('@elliemae/ds-shared/FocusGroup/FocusGroupManager');
|
|
10
16
|
var useFocusGroupItem = require('@elliemae/ds-shared/FocusGroup/useFocusGroupItem');
|
|
11
|
-
var
|
|
17
|
+
var dsUtilities = require('@elliemae/ds-utilities');
|
|
12
18
|
var createInstancePlugin = require('@elliemae/ds-shared/createDataInstance/createInstancePlugin');
|
|
13
19
|
var jsxRuntime = require('react/jsx-runtime');
|
|
14
20
|
|
|
@@ -25,13 +31,13 @@ const _excluded = ["innerRef", "onFocus", "onBlur"];
|
|
|
25
31
|
|
|
26
32
|
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; }
|
|
27
33
|
|
|
28
|
-
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[
|
|
34
|
+
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; }
|
|
29
35
|
|
|
30
36
|
const TreeListRovingHoc = instance => props => {
|
|
31
37
|
const {
|
|
32
38
|
hotKeys
|
|
33
39
|
} = instance.getInstance();
|
|
34
|
-
return /*#__PURE__*/_jsx__default[
|
|
40
|
+
return /*#__PURE__*/_jsx__default["default"](FocusGroupProvider__default["default"], {
|
|
35
41
|
hotKeys: hotKeys
|
|
36
42
|
}, void 0, props.children);
|
|
37
43
|
}; // eslint-disable-next-line react/display-name
|
|
@@ -43,21 +49,21 @@ const TreeItemRovingHoc = Component => _ref => {
|
|
|
43
49
|
onFocus,
|
|
44
50
|
onBlur
|
|
45
51
|
} = _ref,
|
|
46
|
-
props = _objectWithoutProperties__default[
|
|
52
|
+
props = _objectWithoutProperties__default["default"](_ref, _excluded);
|
|
47
53
|
|
|
48
54
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
49
55
|
const ref = React.useRef(null); // eslint-disable-next-line react-hooks/rules-of-hooks
|
|
50
56
|
|
|
51
|
-
useFocusGroupItem__default[
|
|
57
|
+
useFocusGroupItem__default["default"](ref, {
|
|
52
58
|
onFocus,
|
|
53
59
|
onBlur
|
|
54
60
|
});
|
|
55
61
|
return /*#__PURE__*/jsxRuntime.jsx(Component, _objectSpread(_objectSpread({}, props), {}, {
|
|
56
|
-
innerRef:
|
|
62
|
+
innerRef: dsUtilities.mergeRefs(ref, innerRef)
|
|
57
63
|
}));
|
|
58
64
|
};
|
|
59
65
|
|
|
60
|
-
const TreeRovingPlugin = createInstancePlugin__default[
|
|
66
|
+
const TreeRovingPlugin = createInstancePlugin__default["default"]('tree-data', {
|
|
61
67
|
getItemProps(props, instance) {
|
|
62
68
|
const [isItemFocused, setIsItemFocused] = React.useState(false);
|
|
63
69
|
return _objectSpread(_objectSpread({}, props), {}, {
|
|
@@ -70,9 +76,13 @@ const TreeRovingPlugin = createInstancePlugin__default['default']('tree-data', {
|
|
|
70
76
|
|
|
71
77
|
if (instance !== null && instance !== void 0 && (_instance$props = instance.props) !== null && _instance$props !== void 0 && _instance$props.onItemFocus) {
|
|
72
78
|
instance.props.onItemFocus({
|
|
73
|
-
scrollToItem: (
|
|
79
|
+
scrollToItem: function () {
|
|
74
80
|
var _props$listRef, _props$listRef$curren;
|
|
75
81
|
|
|
82
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
83
|
+
args[_key] = arguments[_key];
|
|
84
|
+
}
|
|
85
|
+
|
|
76
86
|
return props === null || props === void 0 ? void 0 : (_props$listRef = props.listRef) === null || _props$listRef === void 0 ? void 0 : (_props$listRef$curren = _props$listRef.current) === null || _props$listRef$curren === void 0 ? void 0 : _props$listRef$curren.scrollToItem(args);
|
|
77
87
|
},
|
|
78
88
|
itemIndex: props === null || props === void 0 ? void 0 : props.index
|