@elliemae/ds-treeview 2.2.0-alpha.4 → 3.0.0-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/TreeView.js +27 -49
- package/cjs/TreeViewContext.js +37 -61
- package/cjs/config/cssClassesConstants.js +13 -41
- package/cjs/config/useTreeview.js +78 -116
- package/cjs/hoc/DnDTreeContext.js +18 -0
- package/cjs/hoc/SortableItemContext.js +21 -0
- package/cjs/hoc/WithConditionalDnDContext.js +138 -0
- package/cjs/hoc/WithDnDSortableItemContext.js +70 -0
- package/cjs/index.js +26 -37
- package/cjs/parts/CheckboxSelectable.js +59 -70
- package/cjs/parts/ChildrenCountDisplayer.js +28 -45
- package/cjs/parts/DnDHandle.js +46 -0
- package/cjs/parts/DropIndicator.js +75 -0
- package/cjs/parts/ExpandCaret.js +83 -85
- package/cjs/parts/Icon.js +31 -46
- package/cjs/parts/NestingSpace.js +35 -43
- package/cjs/parts/RadioSelectable.js +37 -52
- package/cjs/parts/TreeItem.js +141 -147
- package/cjs/parts/TreeItemText.js +95 -88
- package/cjs/parts/TreeList.js +130 -119
- package/cjs/plugins/dnd/TreeDndPlugin.js +7 -59
- package/cjs/plugins/dnd/index.js +9 -28
- package/cjs/plugins/index.js +21 -34
- package/cjs/plugins/roving/TreeRovingPlugin.js +7 -35
- package/cjs/plugins/roving/index.js +9 -28
- package/cjs/plugins/searchable/SearchableTreePlugin.js +7 -35
- package/cjs/plugins/searchable/index.js +9 -28
- package/cjs/plugins/selectable/SelectablePluginTree.js +7 -35
- package/cjs/plugins/selectable/index.js +9 -28
- package/cjs/plugins/toolbar/TreeToolbarPlugin.js +7 -35
- package/cjs/plugins/toolbar/index.js +9 -28
- package/cjs/plugins/tree/TreeDataPlugin.js +7 -35
- package/cjs/plugins/tree/index.js +9 -28
- package/cjs/plugins/virtualization/TreeVirtualizationPlugin.js +7 -35
- package/cjs/plugins/virtualization/index.js +9 -28
- package/cjs/react-desc-prop-types.js +54 -82
- package/cjs/related-components/TreeViewSearchBar.js +40 -42
- package/cjs/sharedTypes.js +2 -27
- package/cjs/utils/array-helpers.js +11 -35
- package/cjs/utils/group-expands-helpers.js +59 -86
- package/cjs/utils/keyboard-helpers.js +90 -85
- package/cjs/utils/object-helpers.js +36 -43
- package/cjs/utils/refs-helpers.js +22 -43
- package/cjs/utils/selectable-helper.js +53 -61
- package/cjs/utils/string-helpers.js +7 -35
- package/cjs/utils/tree-helpers.js +161 -105
- package/cjs/utils/useInstanceRefActions.js +43 -54
- package/cjs/utils/useTree.js +80 -76
- package/esm/TreeView.js +16 -18
- package/esm/TreeViewContext.js +31 -32
- package/esm/config/cssClassesConstants.js +6 -12
- package/esm/config/useTreeview.js +56 -73
- package/esm/hoc/DnDTreeContext.js +14 -0
- package/esm/hoc/SortableItemContext.js +17 -0
- package/esm/hoc/WithConditionalDnDContext.js +128 -0
- package/esm/hoc/WithDnDSortableItemContext.js +61 -0
- package/esm/index.js +9 -8
- package/esm/parts/CheckboxSelectable.js +46 -36
- package/esm/parts/ChildrenCountDisplayer.js +20 -16
- package/esm/parts/DnDHandle.js +38 -0
- package/esm/parts/DropIndicator.js +68 -0
- package/esm/parts/ExpandCaret.js +72 -54
- package/esm/parts/Icon.js +22 -16
- package/esm/parts/NestingSpace.js +27 -14
- package/esm/parts/RadioSelectable.js +28 -20
- package/esm/parts/TreeItem.js +125 -114
- package/esm/parts/TreeItemText.js +85 -58
- package/esm/parts/TreeList.js +119 -91
- package/esm/plugins/dnd/TreeDndPlugin.js +3 -30
- package/esm/plugins/dnd/index.js +1 -3
- package/esm/plugins/index.js +7 -9
- package/esm/plugins/roving/TreeRovingPlugin.js +3 -6
- package/esm/plugins/roving/index.js +1 -3
- package/esm/plugins/searchable/SearchableTreePlugin.js +3 -6
- package/esm/plugins/searchable/index.js +1 -3
- package/esm/plugins/selectable/SelectablePluginTree.js +3 -6
- package/esm/plugins/selectable/index.js +1 -3
- package/esm/plugins/toolbar/TreeToolbarPlugin.js +3 -6
- package/esm/plugins/toolbar/index.js +1 -3
- package/esm/plugins/tree/TreeDataPlugin.js +3 -6
- package/esm/plugins/tree/index.js +1 -3
- package/esm/plugins/virtualization/TreeVirtualizationPlugin.js +3 -6
- package/esm/plugins/virtualization/index.js +1 -3
- package/esm/react-desc-prop-types.js +44 -47
- package/esm/related-components/TreeViewSearchBar.js +32 -13
- package/esm/sharedTypes.js +1 -2
- package/esm/utils/array-helpers.js +6 -6
- package/esm/utils/group-expands-helpers.js +46 -56
- package/esm/utils/keyboard-helpers.js +74 -46
- package/esm/utils/object-helpers.js +31 -14
- package/esm/utils/refs-helpers.js +19 -15
- package/esm/utils/selectable-helper.js +43 -32
- package/esm/utils/string-helpers.js +3 -6
- package/esm/utils/tree-helpers.js +143 -73
- package/esm/utils/useInstanceRefActions.js +35 -21
- package/esm/utils/useTree.js +59 -35
- package/package.json +35 -19
- package/types/hoc/DnDTreeContext.d.ts +14 -0
- package/types/hoc/SortableItemContext.d.ts +19 -0
- package/types/hoc/WithConditionalDnDContext.d.ts +4 -0
- package/types/hoc/WithDnDSortableItemContext.d.ts +4 -0
- package/types/parts/DnDHandle.d.ts +6 -0
- package/types/parts/DropIndicator.d.ts +10 -0
- package/types/parts/TreeItem.d.ts +4 -11
- package/types/parts/TreeList.d.ts +0 -4
- package/types/plugins/dnd/TreeDndPlugin.d.ts +0 -2
- package/types/react-desc-prop-types.d.ts +17 -3
- package/types/sharedTypes.d.ts +1 -8
- package/types/utils/keyboard-helpers.d.ts +2 -1
- package/types/utils/refs-helpers.d.ts +1 -1
- package/types/utils/tree-helpers.d.ts +4 -1
- package/types/utils/useTree.d.ts +1 -0
- package/cjs/TreeView.js.map +0 -7
- package/cjs/TreeViewContext.js.map +0 -7
- package/cjs/config/cssClassesConstants.js.map +0 -7
- package/cjs/config/useTreeview.js.map +0 -7
- package/cjs/index.js.map +0 -7
- package/cjs/parts/CheckboxSelectable.js.map +0 -7
- package/cjs/parts/ChildrenCountDisplayer.js.map +0 -7
- package/cjs/parts/ExpandCaret.js.map +0 -7
- package/cjs/parts/Icon.js.map +0 -7
- package/cjs/parts/NestingSpace.js.map +0 -7
- package/cjs/parts/RadioSelectable.js.map +0 -7
- package/cjs/parts/TreeItem.js.map +0 -7
- package/cjs/parts/TreeItemText.js.map +0 -7
- package/cjs/parts/TreeList.js.map +0 -7
- package/cjs/plugins/dnd/TreeDndPlugin.js.map +0 -7
- package/cjs/plugins/dnd/index.js.map +0 -7
- package/cjs/plugins/index.js.map +0 -7
- package/cjs/plugins/roving/TreeRovingPlugin.js.map +0 -7
- package/cjs/plugins/roving/index.js.map +0 -7
- package/cjs/plugins/searchable/SearchableTreePlugin.js.map +0 -7
- package/cjs/plugins/searchable/index.js.map +0 -7
- package/cjs/plugins/selectable/SelectablePluginTree.js.map +0 -7
- package/cjs/plugins/selectable/index.js.map +0 -7
- package/cjs/plugins/toolbar/TreeToolbarPlugin.js.map +0 -7
- package/cjs/plugins/toolbar/index.js.map +0 -7
- package/cjs/plugins/tree/TreeDataPlugin.js.map +0 -7
- package/cjs/plugins/tree/index.js.map +0 -7
- package/cjs/plugins/virtualization/TreeVirtualizationPlugin.js.map +0 -7
- package/cjs/plugins/virtualization/index.js.map +0 -7
- package/cjs/react-desc-prop-types.js.map +0 -7
- package/cjs/related-components/TreeViewSearchBar.js.map +0 -7
- package/cjs/sharedTypes.js.map +0 -7
- package/cjs/utils/array-helpers.js.map +0 -7
- package/cjs/utils/dnd-helpers.js +0 -146
- package/cjs/utils/dnd-helpers.js.map +0 -7
- package/cjs/utils/group-expands-helpers.js.map +0 -7
- package/cjs/utils/keyboard-helpers.js.map +0 -7
- package/cjs/utils/object-helpers.js.map +0 -7
- package/cjs/utils/refs-helpers.js.map +0 -7
- package/cjs/utils/selectable-helper.js.map +0 -7
- package/cjs/utils/string-helpers.js.map +0 -7
- package/cjs/utils/tree-helpers.js.map +0 -7
- package/cjs/utils/useDnDHelpers.js +0 -199
- package/cjs/utils/useDnDHelpers.js.map +0 -7
- package/cjs/utils/useInstanceRefActions.js.map +0 -7
- package/cjs/utils/useTree.js.map +0 -7
- package/esm/TreeView.js.map +0 -7
- package/esm/TreeViewContext.js.map +0 -7
- package/esm/config/cssClassesConstants.js.map +0 -7
- package/esm/config/useTreeview.js.map +0 -7
- package/esm/index.js.map +0 -7
- package/esm/parts/CheckboxSelectable.js.map +0 -7
- package/esm/parts/ChildrenCountDisplayer.js.map +0 -7
- package/esm/parts/ExpandCaret.js.map +0 -7
- package/esm/parts/Icon.js.map +0 -7
- package/esm/parts/NestingSpace.js.map +0 -7
- package/esm/parts/RadioSelectable.js.map +0 -7
- package/esm/parts/TreeItem.js.map +0 -7
- package/esm/parts/TreeItemText.js.map +0 -7
- package/esm/parts/TreeList.js.map +0 -7
- package/esm/plugins/dnd/TreeDndPlugin.js.map +0 -7
- package/esm/plugins/dnd/index.js.map +0 -7
- package/esm/plugins/index.js.map +0 -7
- package/esm/plugins/roving/TreeRovingPlugin.js.map +0 -7
- package/esm/plugins/roving/index.js.map +0 -7
- package/esm/plugins/searchable/SearchableTreePlugin.js.map +0 -7
- package/esm/plugins/searchable/index.js.map +0 -7
- package/esm/plugins/selectable/SelectablePluginTree.js.map +0 -7
- package/esm/plugins/selectable/index.js.map +0 -7
- package/esm/plugins/toolbar/TreeToolbarPlugin.js.map +0 -7
- package/esm/plugins/toolbar/index.js.map +0 -7
- package/esm/plugins/tree/TreeDataPlugin.js.map +0 -7
- package/esm/plugins/tree/index.js.map +0 -7
- package/esm/plugins/virtualization/TreeVirtualizationPlugin.js.map +0 -7
- package/esm/plugins/virtualization/index.js.map +0 -7
- package/esm/react-desc-prop-types.js.map +0 -7
- package/esm/related-components/TreeViewSearchBar.js.map +0 -7
- package/esm/sharedTypes.js.map +0 -7
- package/esm/utils/array-helpers.js.map +0 -7
- package/esm/utils/dnd-helpers.js +0 -117
- package/esm/utils/dnd-helpers.js.map +0 -7
- package/esm/utils/group-expands-helpers.js.map +0 -7
- package/esm/utils/keyboard-helpers.js.map +0 -7
- package/esm/utils/object-helpers.js.map +0 -7
- package/esm/utils/refs-helpers.js.map +0 -7
- package/esm/utils/selectable-helper.js.map +0 -7
- package/esm/utils/string-helpers.js.map +0 -7
- package/esm/utils/tree-helpers.js.map +0 -7
- package/esm/utils/useDnDHelpers.js +0 -170
- package/esm/utils/useDnDHelpers.js.map +0 -7
- package/esm/utils/useInstanceRefActions.js.map +0 -7
- package/esm/utils/useTree.js.map +0 -7
- package/types/utils/dnd-helpers.d.ts +0 -39
- package/types/utils/useDnDHelpers.d.ts +0 -26
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var _jsx = require('@babel/runtime/helpers/jsx');
|
|
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.map.js');
|
|
9
|
+
require('core-js/modules/esnext.iterator.map.js');
|
|
10
|
+
require('core-js/modules/esnext.async-iterator.for-each.js');
|
|
11
|
+
require('core-js/modules/esnext.iterator.constructor.js');
|
|
12
|
+
require('core-js/modules/esnext.iterator.for-each.js');
|
|
13
|
+
require('core-js/modules/esnext.async-iterator.find.js');
|
|
14
|
+
require('core-js/modules/esnext.iterator.find.js');
|
|
15
|
+
require('core-js/modules/esnext.async-iterator.filter.js');
|
|
16
|
+
require('core-js/modules/esnext.iterator.filter.js');
|
|
17
|
+
var React = require('react');
|
|
18
|
+
var core = require('@dnd-kit/core');
|
|
19
|
+
var sortable = require('@dnd-kit/sortable');
|
|
20
|
+
var dsDragAndDrop = require('@elliemae/ds-drag-and-drop');
|
|
21
|
+
var TreeViewContext = require('../TreeViewContext.js');
|
|
22
|
+
var TreeItem = require('../parts/TreeItem.js');
|
|
23
|
+
var DnDTreeContext = require('./DnDTreeContext.js');
|
|
24
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
25
|
+
|
|
26
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
27
|
+
|
|
28
|
+
var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
|
|
29
|
+
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
30
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
31
|
+
|
|
32
|
+
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; }
|
|
33
|
+
|
|
34
|
+
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; }
|
|
35
|
+
|
|
36
|
+
const ensure = function (argument) {
|
|
37
|
+
let message = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'This should never happen';
|
|
38
|
+
|
|
39
|
+
if (argument === undefined || argument === null) {
|
|
40
|
+
throw new TypeError(message);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return argument;
|
|
44
|
+
}; // only wraps in "DnDContext" and "DnDTreeContext" if any Drag and Drop functionality is requested
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
const withConditionalDnDRowContext = Component => props => {
|
|
48
|
+
const [lastActiveId, setLastActiveId] = React__default["default"].useState('');
|
|
49
|
+
const {
|
|
50
|
+
props: {
|
|
51
|
+
data,
|
|
52
|
+
onOrderChange,
|
|
53
|
+
getIsDropValid
|
|
54
|
+
},
|
|
55
|
+
flattenedItems,
|
|
56
|
+
visibleItems: flattenedVisibleTree,
|
|
57
|
+
withDragAndDrop
|
|
58
|
+
} = React.useContext(TreeViewContext["default"]);
|
|
59
|
+
const flattenedVisibleTreeForDnD = React.useMemo(() => flattenedVisibleTree.map((item, index) => {
|
|
60
|
+
var _item$treeDepth, _item$children$length, _item$children, _item$node$parent$mod, _item$node$parent, _item$node$parent$mod2, _item$node$parent$mod3;
|
|
61
|
+
|
|
62
|
+
return {
|
|
63
|
+
uid: item.id.toString(),
|
|
64
|
+
depth: ((_item$treeDepth = item.treeDepth) !== null && _item$treeDepth !== void 0 ? _item$treeDepth : 1) - 1,
|
|
65
|
+
realIndex: index,
|
|
66
|
+
childrenCount: (_item$children$length = (_item$children = item.children) === null || _item$children === void 0 ? void 0 : _item$children.length) !== null && _item$children$length !== void 0 ? _item$children$length : 0,
|
|
67
|
+
parentId: (_item$node$parent$mod = (_item$node$parent = item.node.parent) === null || _item$node$parent === void 0 ? void 0 : (_item$node$parent$mod2 = _item$node$parent.model) === null || _item$node$parent$mod2 === void 0 ? void 0 : (_item$node$parent$mod3 = _item$node$parent$mod2.id) === null || _item$node$parent$mod3 === void 0 ? void 0 : _item$node$parent$mod3.toString()) !== null && _item$node$parent$mod !== void 0 ? _item$node$parent$mod : null,
|
|
68
|
+
original: item
|
|
69
|
+
};
|
|
70
|
+
}), [flattenedVisibleTree]);
|
|
71
|
+
const onReorder = React.useCallback((tree, indexes) => {
|
|
72
|
+
// Pull the row's original data into an object
|
|
73
|
+
const nodes = {};
|
|
74
|
+
tree.forEach(item => {
|
|
75
|
+
const originalItem = item.original;
|
|
76
|
+
originalItem.children = [];
|
|
77
|
+
nodes[item.uid] = item.original;
|
|
78
|
+
});
|
|
79
|
+
const newUserTree = [];
|
|
80
|
+
tree.forEach(item => {
|
|
81
|
+
// If row has parent, insert it to it's subrows
|
|
82
|
+
// otherwise append it to the new user data
|
|
83
|
+
if (item.parentId !== null && item.parentId !== undefined && item.parentId !== '__ds_tree_root') {
|
|
84
|
+
var _parentNode$children;
|
|
85
|
+
|
|
86
|
+
const parentNode = nodes[item.parentId];
|
|
87
|
+
(_parentNode$children = parentNode.children) === null || _parentNode$children === void 0 ? void 0 : _parentNode$children.push(item.original);
|
|
88
|
+
} else if (item.uid !== '__ds_tree_root') newUserTree.push(item.original);
|
|
89
|
+
}); // Tell the user that the order has change, he can chose to commit it or not
|
|
90
|
+
|
|
91
|
+
onOrderChange(newUserTree, data, flattenedItems[indexes.fromIndex]);
|
|
92
|
+
}, [onOrderChange, data, flattenedItems]);
|
|
93
|
+
const {
|
|
94
|
+
dndContextProps,
|
|
95
|
+
sortableContextProps,
|
|
96
|
+
activeId,
|
|
97
|
+
activeIndex,
|
|
98
|
+
depth,
|
|
99
|
+
dropIndicatorPosition,
|
|
100
|
+
visibleItems,
|
|
101
|
+
isDropValid
|
|
102
|
+
} = dsDragAndDrop.useTreeDndkitConfig({
|
|
103
|
+
flattenedItems,
|
|
104
|
+
visibleItems: flattenedVisibleTreeForDnD,
|
|
105
|
+
isHorizontalDnD: false,
|
|
106
|
+
isExpandable: true,
|
|
107
|
+
onReorder,
|
|
108
|
+
getIsDropValid,
|
|
109
|
+
maxDragAndDropLevel: Infinity
|
|
110
|
+
});
|
|
111
|
+
if (lastActiveId !== activeId && activeId) setLastActiveId(activeId);
|
|
112
|
+
if (withDragAndDrop) return /*#__PURE__*/jsxRuntime.jsxs(core.DndContext, _objectSpread(_objectSpread({}, dndContextProps), {}, {
|
|
113
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(sortable.SortableContext, _objectSpread(_objectSpread({}, sortableContextProps), {}, {
|
|
114
|
+
children: /*#__PURE__*/_jsx__default["default"](DnDTreeContext.DnDTreeContext.Provider, {
|
|
115
|
+
value: {
|
|
116
|
+
activeIndex,
|
|
117
|
+
depth,
|
|
118
|
+
visibleItems: visibleItems.map(item => item.original),
|
|
119
|
+
dropIndicatorPosition,
|
|
120
|
+
lastActiveId,
|
|
121
|
+
setLastActiveId,
|
|
122
|
+
isDropValid
|
|
123
|
+
}
|
|
124
|
+
}, void 0, /*#__PURE__*/jsxRuntime.jsx(Component, _objectSpread({}, props)))
|
|
125
|
+
})), /*#__PURE__*/_jsx__default["default"](core.DragOverlay, {
|
|
126
|
+
style: {
|
|
127
|
+
width: 'auto'
|
|
128
|
+
}
|
|
129
|
+
}, void 0, activeId ? /*#__PURE__*/_jsx__default["default"](TreeItem.TreeItem, {
|
|
130
|
+
itemIndex: activeIndex,
|
|
131
|
+
item: ensure(flattenedVisibleTree.find(item => item.id.toString() === activeId)),
|
|
132
|
+
isDragOverlay: true
|
|
133
|
+
}) : null)]
|
|
134
|
+
}));
|
|
135
|
+
return /*#__PURE__*/jsxRuntime.jsx(Component, _objectSpread({}, props));
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
exports.withConditionalDnDRowContext = withConditionalDnDRowContext;
|
|
@@ -0,0 +1,70 @@
|
|
|
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 _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
12
|
+
var React = require('react');
|
|
13
|
+
var sortable = require('@dnd-kit/sortable');
|
|
14
|
+
var SortableItemContext = require('./SortableItemContext.js');
|
|
15
|
+
var TreeViewContext = require('../TreeViewContext.js');
|
|
16
|
+
var DnDTreeContext = require('./DnDTreeContext.js');
|
|
17
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
18
|
+
|
|
19
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
20
|
+
|
|
21
|
+
var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
|
|
22
|
+
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
23
|
+
|
|
24
|
+
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; }
|
|
25
|
+
|
|
26
|
+
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; }
|
|
27
|
+
const withDnDSortableItemContext = Component => props => {
|
|
28
|
+
const {
|
|
29
|
+
withDragAndDrop
|
|
30
|
+
} = React.useContext(TreeViewContext["default"]);
|
|
31
|
+
const {
|
|
32
|
+
dropIndicatorPosition,
|
|
33
|
+
lastActiveId,
|
|
34
|
+
setLastActiveId,
|
|
35
|
+
isDropValid
|
|
36
|
+
} = React.useContext(DnDTreeContext.DnDTreeContext);
|
|
37
|
+
const id = props.item.id.toString(); // onMount generate unique options, so everyting is only ran once
|
|
38
|
+
|
|
39
|
+
const draggableOptions = React.useMemo(() => ({
|
|
40
|
+
id
|
|
41
|
+
}), [id]);
|
|
42
|
+
const useSortableHelpers = sortable.useSortable(draggableOptions); // calculate all the "useSortable" values as per required
|
|
43
|
+
|
|
44
|
+
const draggableProps = React.useMemo(() => {
|
|
45
|
+
if (!withDragAndDrop) return false;
|
|
46
|
+
const {
|
|
47
|
+
index,
|
|
48
|
+
overIndex
|
|
49
|
+
} = useSortableHelpers;
|
|
50
|
+
return _objectSpread(_objectSpread({}, useSortableHelpers), {}, {
|
|
51
|
+
shouldShowDropIndicatorPosition: overIndex === index,
|
|
52
|
+
dropIndicatorPosition,
|
|
53
|
+
lastActiveId,
|
|
54
|
+
setLastActiveId,
|
|
55
|
+
isDropValid
|
|
56
|
+
});
|
|
57
|
+
}, [withDragAndDrop, useSortableHelpers, dropIndicatorPosition, lastActiveId, setLastActiveId, isDropValid]); // we use a context so we can easly access information wherever without bubbling down
|
|
58
|
+
// this context is all Memoized so as long as component is not re-mounted,
|
|
59
|
+
// the context won't trigger un-required renders per-se...
|
|
60
|
+
|
|
61
|
+
const ctx = React.useMemo(() => ({
|
|
62
|
+
draggableProps
|
|
63
|
+
}), [draggableProps]); // we always add the context, if draggableProps===false we don't have the DnD enabled.
|
|
64
|
+
|
|
65
|
+
return /*#__PURE__*/_jsx__default["default"](SortableItemContext.SortableItemContext.Provider, {
|
|
66
|
+
value: ctx
|
|
67
|
+
}, void 0, /*#__PURE__*/jsxRuntime.jsx(Component, _objectSpread({}, props)));
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
exports.withDnDSortableItemContext = withDnDSortableItemContext;
|
package/cjs/index.js
CHANGED
|
@@ -1,37 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
var
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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.TreeDndPlugin = TreeDndPlugin.TreeDndPlugin;
|
|
20
|
+
exports.TreeRovingPlugin = TreeRovingPlugin.TreeRovingPlugin;
|
|
21
|
+
exports.SelectablePluginTree = SelectablePluginTree.SelectablePluginTree;
|
|
22
|
+
exports.TreeToolbarPlugin = TreeToolbarPlugin.TreeToolbarPlugin;
|
|
23
|
+
exports.TreePluginList = TreeDataPlugin.TreePluginList;
|
|
24
|
+
exports.TreeVirtualizationPlugin = TreeVirtualizationPlugin.TreeVirtualizationPlugin;
|
|
25
|
+
exports.SearchableTreePlugin = SearchableTreePlugin.SearchableTreePlugin;
|
|
26
|
+
exports.TreeViewSearchBar = TreeViewSearchBar.TreeViewSearchBar;
|
|
@@ -1,89 +1,79 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
var
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
var
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
var
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
default: () => CheckboxSelectable_default
|
|
31
|
-
});
|
|
32
|
-
var React = __toESM(require("react"));
|
|
33
|
-
var import_react = __toESM(require("react"));
|
|
34
|
-
var import_ds_form = require("@elliemae/ds-form");
|
|
35
|
-
var import_styled_components = __toESM(require("styled-components"));
|
|
36
|
-
var import_TreeViewContext = __toESM(require("../TreeViewContext"));
|
|
37
|
-
var import_selectable_helper = require("../utils/selectable-helper");
|
|
38
|
-
var import_object_helpers = require("../utils/object-helpers");
|
|
39
|
-
const StyledCheckboxWrapper = import_styled_components.default.span`
|
|
40
|
-
padding-top: 3px;
|
|
41
|
-
`;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
require('core-js/modules/esnext.async-iterator.filter.js');
|
|
4
|
+
require('core-js/modules/esnext.iterator.constructor.js');
|
|
5
|
+
require('core-js/modules/esnext.iterator.filter.js');
|
|
6
|
+
require('core-js/modules/esnext.async-iterator.for-each.js');
|
|
7
|
+
require('core-js/modules/esnext.iterator.for-each.js');
|
|
8
|
+
var _jsx = require('@babel/runtime/helpers/jsx');
|
|
9
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
10
|
+
var React = require('react');
|
|
11
|
+
var dsForm = require('@elliemae/ds-form');
|
|
12
|
+
var styled = require('styled-components');
|
|
13
|
+
var TreeViewContext = require('../TreeViewContext.js');
|
|
14
|
+
var selectableHelper = require('../utils/selectable-helper.js');
|
|
15
|
+
var objectHelpers = require('../utils/object-helpers.js');
|
|
16
|
+
|
|
17
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
18
|
+
|
|
19
|
+
var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
|
|
20
|
+
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
21
|
+
var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
|
|
22
|
+
|
|
23
|
+
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; }
|
|
24
|
+
|
|
25
|
+
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; }
|
|
26
|
+
const StyledCheckboxWrapper = /*#__PURE__*/styled__default["default"].span.withConfig({
|
|
27
|
+
componentId: "sc-1tyhs3t-0"
|
|
28
|
+
})(["padding-top:3px;"]);
|
|
29
|
+
|
|
42
30
|
function CheckboxSelectable(props) {
|
|
43
|
-
const { item, itemIndex } = props;
|
|
44
|
-
const { id } = item;
|
|
45
|
-
const ctx = (0, import_react.useContext)(import_TreeViewContext.default);
|
|
46
31
|
const {
|
|
47
|
-
|
|
48
|
-
|
|
32
|
+
item,
|
|
33
|
+
itemIndex
|
|
34
|
+
} = props;
|
|
35
|
+
const {
|
|
36
|
+
id
|
|
37
|
+
} = item;
|
|
38
|
+
const ctx = React.useContext(TreeViewContext["default"]);
|
|
39
|
+
const {
|
|
40
|
+
props: {
|
|
41
|
+
onSelectionChange,
|
|
42
|
+
isItemDisabled
|
|
43
|
+
},
|
|
44
|
+
virtualListHelpers: {
|
|
45
|
+
scrollToIndex
|
|
46
|
+
},
|
|
49
47
|
triggerTreeRerender,
|
|
50
48
|
selectedCheckboxes,
|
|
51
49
|
setSelectedCheckboxes
|
|
52
50
|
} = ctx;
|
|
53
|
-
const onCheckboxChange =
|
|
54
|
-
const newSelections =
|
|
55
|
-
const newSelectionHasmap =
|
|
51
|
+
const onCheckboxChange = React.useCallback(() => {
|
|
52
|
+
const newSelections = selectableHelper.toggleCheckboxItem(item);
|
|
53
|
+
const newSelectionHasmap = objectHelpers.filterObject(_objectSpread(_objectSpread({}, selectedCheckboxes), newSelections), value => value !== false);
|
|
56
54
|
setSelectedCheckboxes(newSelectionHasmap);
|
|
57
55
|
triggerTreeRerender();
|
|
58
56
|
const indexAndScrollTo = {
|
|
59
57
|
scrollToItem: () => {
|
|
60
|
-
if (typeof item.virtualIndex ===
|
|
61
|
-
scrollToIndex(item.virtualIndex);
|
|
58
|
+
if (typeof item.virtualIndex === 'number') scrollToIndex(item.virtualIndex);
|
|
62
59
|
},
|
|
63
60
|
itemIndex
|
|
64
61
|
};
|
|
65
|
-
if (onSelectionChange)
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
onSelectionChange,
|
|
71
|
-
itemIndex,
|
|
72
|
-
scrollToIndex,
|
|
73
|
-
selectedCheckboxes,
|
|
74
|
-
setSelectedCheckboxes
|
|
75
|
-
]);
|
|
76
|
-
const isChecked = (0, import_react.useMemo)(() => {
|
|
77
|
-
if (selectedCheckboxes[id] === "mixed") {
|
|
78
|
-
return "mixed";
|
|
62
|
+
if (onSelectionChange) onSelectionChange(newSelectionHasmap, item, indexAndScrollTo);
|
|
63
|
+
}, [item, triggerTreeRerender, onSelectionChange, itemIndex, scrollToIndex, selectedCheckboxes, setSelectedCheckboxes]);
|
|
64
|
+
const isChecked = React.useMemo(() => {
|
|
65
|
+
if (selectedCheckboxes[id] === 'mixed') {
|
|
66
|
+
return 'mixed';
|
|
79
67
|
}
|
|
68
|
+
|
|
80
69
|
if (selectedCheckboxes[id] === true) {
|
|
81
70
|
return true;
|
|
82
71
|
}
|
|
72
|
+
|
|
83
73
|
return false;
|
|
84
74
|
}, [selectedCheckboxes, id]);
|
|
85
|
-
const isDisabled =
|
|
86
|
-
return
|
|
75
|
+
const isDisabled = React.useMemo(() => isItemDisabled(item), [item, isItemDisabled]);
|
|
76
|
+
return /*#__PURE__*/_jsx__default["default"](StyledCheckboxWrapper, {}, void 0, /*#__PURE__*/_jsx__default["default"](dsForm.DSCheckbox, {
|
|
87
77
|
checked: isChecked,
|
|
88
78
|
disabled: isDisabled,
|
|
89
79
|
className: "em-ds-tree-item-checkbox",
|
|
@@ -92,6 +82,5 @@ function CheckboxSelectable(props) {
|
|
|
92
82
|
tabIndex: "0"
|
|
93
83
|
}));
|
|
94
84
|
}
|
|
95
|
-
|
|
96
|
-
module.exports =
|
|
97
|
-
//# sourceMappingURL=CheckboxSelectable.js.map
|
|
85
|
+
|
|
86
|
+
module.exports = CheckboxSelectable;
|
|
@@ -1,47 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var
|
|
6
|
-
|
|
7
|
-
var
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
return (
|
|
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 ChildrenCountDisplayer_exports = {};
|
|
29
|
-
__export(ChildrenCountDisplayer_exports, {
|
|
30
|
-
ChildrenCountDisplayer: () => ChildrenCountDisplayer
|
|
31
|
-
});
|
|
32
|
-
var React = __toESM(require("react"));
|
|
33
|
-
var import_react = __toESM(require("react"));
|
|
34
|
-
var import_cssClassesConstants = require("../config/cssClassesConstants");
|
|
35
|
-
const className = `${import_cssClassesConstants.DSTreeViewPrefix}-${import_cssClassesConstants.treeItemBlockName}-children-count-displayer`;
|
|
36
|
-
const ChildrenCountDisplayer = (props) => {
|
|
37
|
-
const { item } = props;
|
|
38
|
-
const { isGroup, children } = item;
|
|
39
|
-
if (!isGroup)
|
|
40
|
-
return null;
|
|
41
|
-
return /* @__PURE__ */ import_react.default.createElement("span", {
|
|
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 cssClassesConstants = require('../config/cssClassesConstants.js');
|
|
8
|
+
|
|
9
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
10
|
+
|
|
11
|
+
var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
|
|
12
|
+
|
|
13
|
+
const className = "".concat(cssClassesConstants.DSTreeViewPrefix, "-").concat(cssClassesConstants.treeItemBlockName, "-children-count-displayer");
|
|
14
|
+
const ChildrenCountDisplayer = props => {
|
|
15
|
+
const {
|
|
16
|
+
item
|
|
17
|
+
} = props;
|
|
18
|
+
const {
|
|
19
|
+
isGroup,
|
|
20
|
+
children
|
|
21
|
+
} = item;
|
|
22
|
+
if (!isGroup) return null; // return ` | ${children.length} Items`;
|
|
23
|
+
|
|
24
|
+
return /*#__PURE__*/_jsx__default["default"]("span", {
|
|
42
25
|
"data-testid": "tree-item-children-count-displayer",
|
|
43
|
-
className
|
|
44
|
-
},
|
|
26
|
+
className: className
|
|
27
|
+
}, void 0, " | ".concat(children.length, " Items"));
|
|
45
28
|
};
|
|
46
|
-
|
|
47
|
-
|
|
29
|
+
|
|
30
|
+
exports.ChildrenCountDisplayer = ChildrenCountDisplayer;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
require('core-js/modules/esnext.async-iterator.filter.js');
|
|
6
|
+
require('core-js/modules/esnext.iterator.constructor.js');
|
|
7
|
+
require('core-js/modules/esnext.iterator.filter.js');
|
|
8
|
+
require('core-js/modules/esnext.async-iterator.for-each.js');
|
|
9
|
+
require('core-js/modules/esnext.iterator.for-each.js');
|
|
10
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
11
|
+
var React = require('react');
|
|
12
|
+
var dsIcons = require('@elliemae/ds-icons');
|
|
13
|
+
var SortableItemContext = require('../hoc/SortableItemContext.js');
|
|
14
|
+
|
|
15
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
16
|
+
|
|
17
|
+
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
18
|
+
|
|
19
|
+
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; }
|
|
20
|
+
|
|
21
|
+
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; }
|
|
22
|
+
const DnDHandle = _ref => {
|
|
23
|
+
let {
|
|
24
|
+
id,
|
|
25
|
+
isDragOverlay
|
|
26
|
+
} = _ref;
|
|
27
|
+
const {
|
|
28
|
+
draggableProps
|
|
29
|
+
} = React.useContext(SortableItemContext.SortableItemContext);
|
|
30
|
+
const isDragging = draggableProps && draggableProps.isDragging;
|
|
31
|
+
return /*#__PURE__*/React.createElement(dsIcons.GripperVertical, _objectSpread(_objectSpread({
|
|
32
|
+
role: "button"
|
|
33
|
+
}, draggableProps && _objectSpread(_objectSpread({}, draggableProps.listeners), draggableProps.attributes)), {}, {
|
|
34
|
+
"data-testid": "drag-handle",
|
|
35
|
+
"data-isactive": draggableProps && !!draggableProps.active,
|
|
36
|
+
"data-isdragoverlay": isDragOverlay,
|
|
37
|
+
id: "".concat(id, "-drag-handle"),
|
|
38
|
+
key: "".concat(id, "-drag-handle"),
|
|
39
|
+
className: "drag-handle ".concat(isDragging ? '' : 'focuseable'),
|
|
40
|
+
color: ['brand-primary', '800'],
|
|
41
|
+
size: "s",
|
|
42
|
+
tabIndex: 0
|
|
43
|
+
}));
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
exports.DnDHandle = DnDHandle;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _jsx = require('@babel/runtime/helpers/jsx');
|
|
4
|
+
require('react');
|
|
5
|
+
var styled = require('styled-components');
|
|
6
|
+
var SortableItemContext = require('../hoc/SortableItemContext.js');
|
|
7
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
8
|
+
|
|
9
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
10
|
+
|
|
11
|
+
var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
|
|
12
|
+
var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
|
|
13
|
+
|
|
14
|
+
const getPositionStyles = _ref => {
|
|
15
|
+
let {
|
|
16
|
+
dropIndicatorPosition
|
|
17
|
+
} = _ref;
|
|
18
|
+
return "\n top: ".concat(dropIndicatorPosition === SortableItemContext.DropIndicatorPosition.Before ? '0' : 'unset', ";\n bottom: ").concat(dropIndicatorPosition === SortableItemContext.DropIndicatorPosition.After ? '0' : 'unset', ";\n left: -2px;\n ");
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const getCircleStyles = _ref2 => {
|
|
22
|
+
let {
|
|
23
|
+
dropIndicatorPosition
|
|
24
|
+
} = _ref2;
|
|
25
|
+
return {
|
|
26
|
+
position: 'absolute',
|
|
27
|
+
zIndex: 20,
|
|
28
|
+
top: dropIndicatorPosition === SortableItemContext.DropIndicatorPosition.After ? 'unset' : '-2px',
|
|
29
|
+
bottom: dropIndicatorPosition === SortableItemContext.DropIndicatorPosition.Before ? 'unset' : '-2px',
|
|
30
|
+
left: '0px',
|
|
31
|
+
opacity: 1
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const StyledIndicator = /*#__PURE__*/styled__default["default"].div.withConfig({
|
|
36
|
+
componentId: "sc-1812zh0-0"
|
|
37
|
+
})(["position:absolute;", " box-sizing:border-box;width:", ";height:", ";background-color:", ";z-index:20;"], getPositionStyles, props => props.vertical ? '2px' : '100%', props => props.vertical ? '100%' : '2px', _ref3 => {
|
|
38
|
+
let {
|
|
39
|
+
isDropValid,
|
|
40
|
+
theme
|
|
41
|
+
} = _ref3;
|
|
42
|
+
return isDropValid ? theme.colors.brand[600] : theme.colors.danger[900];
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
const CircleIndicator = (style, isDropValid) => /*#__PURE__*/_jsx__default["default"]("svg", {
|
|
46
|
+
height: "6",
|
|
47
|
+
width: "6",
|
|
48
|
+
style: style
|
|
49
|
+
}, void 0, /*#__PURE__*/_jsx__default["default"]("circle", {
|
|
50
|
+
cx: "3",
|
|
51
|
+
cy: "3",
|
|
52
|
+
r: "3",
|
|
53
|
+
strokeWidth: "0",
|
|
54
|
+
fill: isDropValid ? '#1E79C2' : '#C64252'
|
|
55
|
+
}));
|
|
56
|
+
|
|
57
|
+
const DropIndicator = _ref4 => {
|
|
58
|
+
let {
|
|
59
|
+
dropIndicatorPosition,
|
|
60
|
+
isLast,
|
|
61
|
+
isDropValid
|
|
62
|
+
} = _ref4;
|
|
63
|
+
if (![SortableItemContext.DropIndicatorPosition.After, SortableItemContext.DropIndicatorPosition.Before].includes(dropIndicatorPosition)) return null;
|
|
64
|
+
const safeDropIndicatorPosition = isLast ? SortableItemContext.DropIndicatorPosition.Before : dropIndicatorPosition;
|
|
65
|
+
return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
66
|
+
children: [CircleIndicator(getCircleStyles({
|
|
67
|
+
dropIndicatorPosition: safeDropIndicatorPosition
|
|
68
|
+
}), isDropValid), /*#__PURE__*/_jsx__default["default"](StyledIndicator, {
|
|
69
|
+
dropIndicatorPosition: safeDropIndicatorPosition,
|
|
70
|
+
isDropValid: isDropValid
|
|
71
|
+
})]
|
|
72
|
+
});
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
module.exports = DropIndicator;
|