@elliemae/ds-treeview 2.2.0-alpha.5 → 2.2.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/TreeView.js +31 -49
- package/cjs/TreeViewContext.js +35 -53
- package/cjs/config/cssClassesConstants.js +13 -41
- package/cjs/config/useTreeview.js +80 -108
- package/cjs/index.js +27 -37
- package/cjs/parts/CheckboxSelectable.js +59 -70
- package/cjs/parts/ChildrenCountDisplayer.js +28 -45
- 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 +147 -128
- package/cjs/parts/TreeItemText.js +95 -88
- package/cjs/parts/TreeList.js +130 -117
- package/cjs/plugins/dnd/TreeDndPlugin.js +36 -51
- package/cjs/plugins/dnd/index.js +10 -28
- package/cjs/plugins/index.js +22 -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 +53 -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/dnd-helpers.js +84 -90
- package/cjs/utils/group-expands-helpers.js +59 -86
- package/cjs/utils/keyboard-helpers.js +88 -84
- 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 +135 -105
- package/cjs/utils/useDnDHelpers.js +118 -97
- package/cjs/utils/useInstanceRefActions.js +43 -54
- package/cjs/utils/useTree.js +78 -76
- package/esm/TreeView.js +20 -18
- package/esm/TreeViewContext.js +29 -24
- package/esm/config/cssClassesConstants.js +6 -12
- package/esm/config/useTreeview.js +54 -61
- package/esm/index.js +9 -8
- package/esm/parts/CheckboxSelectable.js +46 -36
- package/esm/parts/ChildrenCountDisplayer.js +20 -16
- 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 +127 -91
- package/esm/parts/TreeItemText.js +85 -58
- package/esm/parts/TreeList.js +117 -88
- package/esm/plugins/dnd/TreeDndPlugin.js +26 -21
- 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 +43 -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/dnd-helpers.js +73 -58
- package/esm/utils/group-expands-helpers.js +46 -56
- package/esm/utils/keyboard-helpers.js +72 -45
- 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 +119 -74
- package/esm/utils/useDnDHelpers.js +106 -60
- package/esm/utils/useInstanceRefActions.js +35 -21
- package/esm/utils/useTree.js +57 -35
- package/package.json +10 -10
- package/types/TreeView.d.ts +1 -1
- 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.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.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.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.map +0 -7
- package/esm/utils/useInstanceRefActions.js.map +0 -7
- package/esm/utils/useTree.js.map +0 -7
|
@@ -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;
|
package/cjs/parts/ExpandCaret.js
CHANGED
|
@@ -1,96 +1,94 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
ExpandCaret: () => ExpandCaret
|
|
31
|
-
});
|
|
32
|
-
var React = __toESM(require("react"));
|
|
33
|
-
var import_react = __toESM(require("react"));
|
|
34
|
-
var import_ds_button = __toESM(require("@elliemae/ds-button"));
|
|
35
|
-
var import_ds_icons = require("@elliemae/ds-icons");
|
|
36
|
-
var import_group_expands_helpers = require("../utils/group-expands-helpers");
|
|
37
|
-
var import_tree_helpers = require("../utils/tree-helpers");
|
|
38
|
-
var import_TreeViewContext = __toESM(require("../TreeViewContext"));
|
|
39
|
-
const ExpandCaret = (props) => {
|
|
40
|
-
const defaultHandleExpandGroup = (0, import_react.useCallback)(import_group_expands_helpers.toggleItemExpand, []);
|
|
41
|
-
const { item } = props;
|
|
42
|
-
const { id, isExpanded, isGroup, children } = item;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var _jsx = require('@babel/runtime/helpers/jsx');
|
|
6
|
+
var React = require('react');
|
|
7
|
+
var Button = require('@elliemae/ds-button');
|
|
8
|
+
var dsIcons = require('@elliemae/ds-icons');
|
|
9
|
+
var groupExpandsHelpers = require('../utils/group-expands-helpers.js');
|
|
10
|
+
var treeHelpers = require('../utils/tree-helpers.js');
|
|
11
|
+
var TreeViewContext = require('../TreeViewContext.js');
|
|
12
|
+
|
|
13
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
14
|
+
|
|
15
|
+
var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
|
|
16
|
+
var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
|
|
17
|
+
|
|
18
|
+
var _ArrowheadDown, _ArrowheadRight;
|
|
19
|
+
const ExpandCaret = props => {
|
|
20
|
+
const defaultHandleExpandGroup = React.useCallback(groupExpandsHelpers.toggleItemExpand, []);
|
|
21
|
+
const {
|
|
22
|
+
item
|
|
23
|
+
} = props;
|
|
24
|
+
const {
|
|
25
|
+
id,
|
|
26
|
+
isExpanded,
|
|
27
|
+
isGroup,
|
|
28
|
+
children
|
|
29
|
+
} = item;
|
|
43
30
|
const isGroupOrHasChildrens = isGroup || Array.isArray(children) && children.length > 0;
|
|
44
|
-
const ctx =
|
|
31
|
+
const ctx = React.useContext(TreeViewContext["default"]);
|
|
45
32
|
const {
|
|
46
|
-
props: {
|
|
33
|
+
props: {
|
|
34
|
+
onItemFocus
|
|
35
|
+
},
|
|
47
36
|
handleExpandGroup = defaultHandleExpandGroup,
|
|
48
37
|
triggerTreeRerender,
|
|
49
38
|
updateUserExpandedState,
|
|
50
39
|
setLatestToggledItem,
|
|
51
40
|
setFocusedItem,
|
|
52
|
-
virtualListHelpers: {
|
|
41
|
+
virtualListHelpers: {
|
|
42
|
+
scrollToIndex
|
|
43
|
+
}
|
|
53
44
|
} = ctx;
|
|
54
|
-
if (isGroupOrHasChildrens)
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
"data-testid": "ic-arrow-head-down"
|
|
63
|
-
}) : /* @__PURE__ */ import_react.default.createElement(import_ds_icons.ArrowheadRight, {
|
|
64
|
-
size: "s",
|
|
65
|
-
"data-testid": "ic-arrow-head-right"
|
|
66
|
-
}),
|
|
67
|
-
onMouseDown: (e) => {
|
|
68
|
-
if (e) {
|
|
69
|
-
e.preventDefault();
|
|
70
|
-
}
|
|
71
|
-
},
|
|
72
|
-
onClick: (e) => {
|
|
73
|
-
e.stopPropagation();
|
|
74
|
-
if (e)
|
|
75
|
-
handleExpandGroup(item, triggerTreeRerender, updateUserExpandedState, scrollToIndex, e);
|
|
76
|
-
setLatestToggledItem(item);
|
|
77
|
-
const itemVitualIndex = item.virtualIndex;
|
|
78
|
-
if (typeof itemVitualIndex === "number") {
|
|
79
|
-
onItemFocus({
|
|
80
|
-
itemIndex: itemVitualIndex,
|
|
81
|
-
scrollToItem: (opts = { align: "start" }) => scrollToIndex(itemVitualIndex, opts),
|
|
82
|
-
item
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
setFocusedItem(item);
|
|
86
|
-
(0, import_tree_helpers.focusItem)(item);
|
|
87
|
-
},
|
|
45
|
+
if (isGroupOrHasChildrens) return /*#__PURE__*/_jsx__default["default"](Button__default["default"], {
|
|
46
|
+
buttonType: "text",
|
|
47
|
+
className: "expandable-arrow",
|
|
48
|
+
"data-testid": "tree-item-expand-toggle",
|
|
49
|
+
icon: isExpanded ? _ArrowheadDown || (_ArrowheadDown = /*#__PURE__*/_jsx__default["default"](dsIcons.ArrowheadDown, {
|
|
50
|
+
size: "s",
|
|
51
|
+
"data-testid": "ic-arrow-head-down"
|
|
52
|
+
})) : _ArrowheadRight || (_ArrowheadRight = /*#__PURE__*/_jsx__default["default"](dsIcons.ArrowheadRight, {
|
|
88
53
|
size: "s",
|
|
89
|
-
|
|
90
|
-
})
|
|
91
|
-
|
|
92
|
-
|
|
54
|
+
"data-testid": "ic-arrow-head-right"
|
|
55
|
+
})),
|
|
56
|
+
onMouseDown: e => {
|
|
57
|
+
// prevent focusing the caret
|
|
58
|
+
if (e) {
|
|
59
|
+
e.preventDefault();
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
onClick: e => {
|
|
63
|
+
e.stopPropagation();
|
|
64
|
+
if (e) handleExpandGroup(item, triggerTreeRerender, updateUserExpandedState, scrollToIndex, e);
|
|
65
|
+
setLatestToggledItem(item);
|
|
66
|
+
const itemVitualIndex = item.virtualIndex;
|
|
67
|
+
|
|
68
|
+
if (typeof itemVitualIndex === 'number') {
|
|
69
|
+
onItemFocus({
|
|
70
|
+
itemIndex: itemVitualIndex,
|
|
71
|
+
scrollToItem: function () {
|
|
72
|
+
let opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
|
73
|
+
align: 'start'
|
|
74
|
+
};
|
|
75
|
+
return scrollToIndex(itemVitualIndex, opts);
|
|
76
|
+
},
|
|
77
|
+
item
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
setFocusedItem(item);
|
|
82
|
+
treeHelpers.focusItem(item);
|
|
83
|
+
},
|
|
84
|
+
size: "s",
|
|
85
|
+
tabIndex: -1
|
|
86
|
+
}, "".concat(id, "-expand-addon"));
|
|
87
|
+
return /*#__PURE__*/_jsx__default["default"]("div", {
|
|
88
|
+
style: {
|
|
89
|
+
width: '24px'
|
|
90
|
+
}
|
|
93
91
|
});
|
|
94
92
|
};
|
|
95
|
-
|
|
96
|
-
|
|
93
|
+
|
|
94
|
+
exports.ExpandCaret = ExpandCaret;
|
package/cjs/parts/Icon.js
CHANGED
|
@@ -1,52 +1,37 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
return target;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (module2, isNodeMode) => {
|
|
21
|
-
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
22
|
-
};
|
|
23
|
-
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
24
|
-
return (module2, temp) => {
|
|
25
|
-
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
26
|
-
};
|
|
27
|
-
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
28
|
-
var Icon_exports = {};
|
|
29
|
-
__export(Icon_exports, {
|
|
30
|
-
Icon: () => Icon
|
|
31
|
-
});
|
|
32
|
-
var React = __toESM(require("react"));
|
|
33
|
-
var import_react = __toESM(require("react"));
|
|
34
|
-
var import_ds_utilities = require("@elliemae/ds-utilities");
|
|
35
|
-
var import_TreeViewContext = __toESM(require("../TreeViewContext"));
|
|
36
|
-
const Icon = (props) => {
|
|
37
|
-
const { item } = props;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var dsUtilities = require('@elliemae/ds-utilities');
|
|
7
|
+
var TreeViewContext = require('../TreeViewContext.js');
|
|
8
|
+
|
|
9
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
10
|
+
|
|
11
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
12
|
+
|
|
13
|
+
const Icon = props => {
|
|
14
|
+
const {
|
|
15
|
+
item
|
|
16
|
+
} = props;
|
|
38
17
|
const isGroupOrHasChildrens = item.isGroup || Array.isArray(item.children) && item.children.length > 0;
|
|
39
|
-
const ctx =
|
|
18
|
+
const ctx = React.useContext(TreeViewContext["default"]);
|
|
40
19
|
const {
|
|
41
|
-
props: {
|
|
20
|
+
props: {
|
|
21
|
+
groupIcon,
|
|
22
|
+
itemIcon
|
|
23
|
+
}
|
|
42
24
|
} = ctx;
|
|
43
25
|
const icon = isGroupOrHasChildrens ? groupIcon : itemIcon;
|
|
44
|
-
if (!icon)
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
26
|
+
if (!icon) return null;
|
|
27
|
+
return /*#__PURE__*/React__default["default"].cloneElement(icon, {
|
|
28
|
+
'data-testid': isGroupOrHasChildrens ? 'tree-item-group-icon' : 'tree-item-icon',
|
|
29
|
+
// legacy class-name way of handling things,
|
|
30
|
+
// this will eventually be deprecated in favor of styled components
|
|
31
|
+
// untill then, just eslint-ignore and move on
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment
|
|
33
|
+
className: dsUtilities.cx(icon.props.className, 'tree-item-icon')
|
|
49
34
|
});
|
|
50
35
|
};
|
|
51
|
-
|
|
52
|
-
|
|
36
|
+
|
|
37
|
+
exports.Icon = Icon;
|
|
@@ -1,55 +1,47 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
var __reExport = (target, module2, copyDefault, desc) => {
|
|
13
|
-
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(module2))
|
|
15
|
-
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
16
|
-
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return target;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (module2, isNodeMode) => {
|
|
21
|
-
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
22
|
-
};
|
|
23
|
-
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
24
|
-
return (module2, temp) => {
|
|
25
|
-
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
26
|
-
};
|
|
27
|
-
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
28
|
-
var NestingSpace_exports = {};
|
|
29
|
-
__export(NestingSpace_exports, {
|
|
30
|
-
NestingSpace: () => NestingSpace
|
|
31
|
-
});
|
|
32
|
-
var React = __toESM(require("react"));
|
|
33
|
-
var import_react = __toESM(require("react"));
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var _jsx = require('@babel/runtime/helpers/jsx');
|
|
6
|
+
require('react');
|
|
7
|
+
|
|
8
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
9
|
+
|
|
10
|
+
var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
|
|
11
|
+
|
|
34
12
|
const getItemNestingLeftPadding = (level, opts) => {
|
|
35
|
-
const {
|
|
13
|
+
const {
|
|
14
|
+
spaceForNestingLevel = 1.5
|
|
15
|
+
} = opts;
|
|
36
16
|
const groupLeftPadding = spaceForNestingLevel * (level - 1);
|
|
37
|
-
const finalLeftPadding = groupLeftPadding + spaceForNestingLevel - 0.1;
|
|
38
|
-
|
|
17
|
+
const finalLeftPadding = groupLeftPadding + spaceForNestingLevel - 0.1; // root level left-padding would be negative and would not be applied
|
|
18
|
+
// if "root-level" nesting, then defaults to 0 left-padding.
|
|
19
|
+
|
|
20
|
+
return finalLeftPadding > 0 ? "".concat(finalLeftPadding, "em") : '0';
|
|
39
21
|
};
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
const {
|
|
22
|
+
|
|
23
|
+
const NestingSpace = props => {
|
|
24
|
+
const {
|
|
25
|
+
item,
|
|
26
|
+
spaceForNestingLevel
|
|
27
|
+
} = props;
|
|
28
|
+
const {
|
|
29
|
+
treeDepth
|
|
30
|
+
} = item;
|
|
31
|
+
|
|
43
32
|
if (treeDepth) {
|
|
44
33
|
const itemNestingLeftPadding = getItemNestingLeftPadding(treeDepth - 1, {
|
|
45
34
|
spaceForNestingLevel
|
|
46
35
|
});
|
|
47
|
-
return
|
|
36
|
+
return /*#__PURE__*/_jsx__default["default"]("div", {
|
|
48
37
|
"data-testid": "tree-item-nested-space",
|
|
49
|
-
style: {
|
|
38
|
+
style: {
|
|
39
|
+
width: itemNestingLeftPadding
|
|
40
|
+
}
|
|
50
41
|
});
|
|
51
42
|
}
|
|
43
|
+
|
|
52
44
|
return null;
|
|
53
45
|
};
|
|
54
|
-
|
|
55
|
-
|
|
46
|
+
|
|
47
|
+
exports.NestingSpace = NestingSpace;
|