react-arborist 3.6.1 → 3.7.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.
@@ -16,6 +16,7 @@ let timeoutId = null;
16
16
  * the event handler. Future clean up welcome.
17
17
  */
18
18
  function DefaultContainer() {
19
+ var _a, _b;
19
20
  (0, context_1.useDataUpdates)();
20
21
  const tree = (0, context_1.useTreeApi)();
21
22
  return ((0, jsx_runtime_1.jsx)("div", { role: "tree", style: {
@@ -233,5 +234,5 @@ function DefaultContainer() {
233
234
  });
234
235
  if (node)
235
236
  tree.focus(node.id);
236
- }, children: (0, jsx_runtime_1.jsx)(react_window_1.FixedSizeList, { className: tree.props.className, outerRef: tree.listEl, itemCount: tree.visibleNodes.length, height: tree.height, width: tree.width, itemSize: tree.rowHeight, overscanCount: tree.overscanCount, itemKey: (index) => { var _a; return ((_a = tree.visibleNodes[index]) === null || _a === void 0 ? void 0 : _a.id) || index; }, outerElementType: list_outer_element_1.ListOuterElement, innerElementType: list_inner_element_1.ListInnerElement, onScroll: tree.props.onScroll, onItemsRendered: tree.onItemsRendered.bind(tree), ref: tree.list, children: row_container_1.RowContainer }) }));
237
+ }, children: (0, jsx_runtime_1.jsx)(react_window_1.FixedSizeList, { className: tree.props.className, outerRef: tree.listEl, itemCount: tree.visibleNodes.length, height: tree.height, width: tree.width, itemSize: tree.rowHeight, overscanCount: tree.overscanCount, itemKey: (index) => { var _a; return ((_a = tree.visibleNodes[index]) === null || _a === void 0 ? void 0 : _a.id) || index; }, outerElementType: (_a = tree.props.outerElementType) !== null && _a !== void 0 ? _a : list_outer_element_1.ListOuterElement, innerElementType: (_b = tree.props.innerElementType) !== null && _b !== void 0 ? _b : list_inner_element_1.ListInnerElement, onScroll: tree.props.onScroll, onItemsRendered: tree.onItemsRendered.bind(tree), ref: tree.list, children: row_container_1.RowContainer }) }));
237
238
  }
@@ -1 +1,2 @@
1
1
  export declare const ListOuterElement: import("react").ForwardRefExoticComponent<Omit<import("react").HTMLProps<HTMLDivElement>, "ref"> & import("react").RefAttributes<unknown>>;
2
+ export declare const DropContainer: () => import("react/jsx-runtime").JSX.Element;
@@ -11,7 +11,7 @@ var __rest = (this && this.__rest) || function (s, e) {
11
11
  return t;
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.ListOuterElement = void 0;
14
+ exports.DropContainer = exports.ListOuterElement = void 0;
15
15
  const jsx_runtime_1 = require("react/jsx-runtime");
16
16
  const react_1 = require("react");
17
17
  const context_1 = require("../context");
@@ -24,7 +24,7 @@ exports.ListOuterElement = (0, react_1.forwardRef)(function Outer(props, ref) {
24
24
  ref: ref }, rest, { onClick: (e) => {
25
25
  if (e.currentTarget === e.target)
26
26
  tree.deselectAll();
27
- }, children: [(0, jsx_runtime_1.jsx)(DropContainer, {}), children] })));
27
+ }, children: [(0, jsx_runtime_1.jsx)(exports.DropContainer, {}), children] })));
28
28
  });
29
29
  const DropContainer = () => {
30
30
  const tree = (0, context_1.useTreeApi)();
@@ -36,3 +36,4 @@ const DropContainer = () => {
36
36
  right: "0",
37
37
  }, children: (0, jsx_runtime_1.jsx)(cursor_1.Cursor, {}) }));
38
38
  };
39
+ exports.DropContainer = DropContainer;
@@ -1,4 +1,7 @@
1
1
  export { Tree } from "./components/tree";
2
+ export { DropContainer } from "./components/list-outer-element";
3
+ export { ListOuterElement } from "./components/list-outer-element";
4
+ export { ListInnerElement } from "./components/list-inner-element";
2
5
  export * from "./types/handlers";
3
6
  export * from "./types/renderers";
4
7
  export * from "./types/state";
@@ -14,10 +14,16 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.getTreeLinePrefix = exports.Tree = void 0;
17
+ exports.getTreeLinePrefix = exports.ListInnerElement = exports.ListOuterElement = exports.DropContainer = exports.Tree = void 0;
18
18
  /* The Public Api */
19
19
  var tree_1 = require("./components/tree");
20
20
  Object.defineProperty(exports, "Tree", { enumerable: true, get: function () { return tree_1.Tree; } });
21
+ var list_outer_element_1 = require("./components/list-outer-element");
22
+ Object.defineProperty(exports, "DropContainer", { enumerable: true, get: function () { return list_outer_element_1.DropContainer; } });
23
+ var list_outer_element_2 = require("./components/list-outer-element");
24
+ Object.defineProperty(exports, "ListOuterElement", { enumerable: true, get: function () { return list_outer_element_2.ListOuterElement; } });
25
+ var list_inner_element_1 = require("./components/list-inner-element");
26
+ Object.defineProperty(exports, "ListInnerElement", { enumerable: true, get: function () { return list_inner_element_1.ListInnerElement; } });
21
27
  __exportStar(require("./types/handlers"), exports);
22
28
  __exportStar(require("./types/renderers"), exports);
23
29
  __exportStar(require("./types/state"), exports);
@@ -2,7 +2,7 @@ import { BoolFunc } from "./utils";
2
2
  import * as handlers from "./handlers";
3
3
  import * as renderers from "./renderers";
4
4
  import { ElementType, MouseEventHandler } from "react";
5
- import { ListOnScrollProps } from "react-window";
5
+ import { ListOnScrollProps, CommonProps as ReactWindowCommonProps } from "react-window";
6
6
  import { NodeApi } from "../interfaces/node-api";
7
7
  import { OpenMap } from "../state/open-slice";
8
8
  import { useDragDropManager, DndProviderProps } from "react-dnd";
@@ -57,4 +57,6 @@ export interface TreeProps<T> {
57
57
  backend: unknown;
58
58
  }>["backend"];
59
59
  dndManager?: ReturnType<typeof useDragDropManager>;
60
+ outerElementType?: ReactWindowCommonProps["outerElementType"];
61
+ innerElementType?: ReactWindowCommonProps["innerElementType"];
60
62
  }
@@ -13,6 +13,7 @@ let timeoutId = null;
13
13
  * the event handler. Future clean up welcome.
14
14
  */
15
15
  export function DefaultContainer() {
16
+ var _a, _b;
16
17
  useDataUpdates();
17
18
  const tree = useTreeApi();
18
19
  return (_jsx("div", { role: "tree", style: {
@@ -230,5 +231,5 @@ export function DefaultContainer() {
230
231
  });
231
232
  if (node)
232
233
  tree.focus(node.id);
233
- }, children: _jsx(FixedSizeList, { className: tree.props.className, outerRef: tree.listEl, itemCount: tree.visibleNodes.length, height: tree.height, width: tree.width, itemSize: tree.rowHeight, overscanCount: tree.overscanCount, itemKey: (index) => { var _a; return ((_a = tree.visibleNodes[index]) === null || _a === void 0 ? void 0 : _a.id) || index; }, outerElementType: ListOuterElement, innerElementType: ListInnerElement, onScroll: tree.props.onScroll, onItemsRendered: tree.onItemsRendered.bind(tree), ref: tree.list, children: RowContainer }) }));
234
+ }, children: _jsx(FixedSizeList, { className: tree.props.className, outerRef: tree.listEl, itemCount: tree.visibleNodes.length, height: tree.height, width: tree.width, itemSize: tree.rowHeight, overscanCount: tree.overscanCount, itemKey: (index) => { var _a; return ((_a = tree.visibleNodes[index]) === null || _a === void 0 ? void 0 : _a.id) || index; }, outerElementType: (_a = tree.props.outerElementType) !== null && _a !== void 0 ? _a : ListOuterElement, innerElementType: (_b = tree.props.innerElementType) !== null && _b !== void 0 ? _b : ListInnerElement, onScroll: tree.props.onScroll, onItemsRendered: tree.onItemsRendered.bind(tree), ref: tree.list, children: RowContainer }) }));
234
235
  }
@@ -1 +1,2 @@
1
1
  export declare const ListOuterElement: import("react").ForwardRefExoticComponent<Omit<import("react").HTMLProps<HTMLDivElement>, "ref"> & import("react").RefAttributes<unknown>>;
2
+ export declare const DropContainer: () => import("react/jsx-runtime").JSX.Element;
@@ -23,7 +23,7 @@ export const ListOuterElement = forwardRef(function Outer(props, ref) {
23
23
  tree.deselectAll();
24
24
  }, children: [_jsx(DropContainer, {}), children] })));
25
25
  });
26
- const DropContainer = () => {
26
+ export const DropContainer = () => {
27
27
  const tree = useTreeApi();
28
28
  return (_jsx("div", { style: {
29
29
  height: tree.visibleNodes.length * tree.rowHeight,
@@ -1,4 +1,7 @@
1
1
  export { Tree } from "./components/tree";
2
+ export { DropContainer } from "./components/list-outer-element";
3
+ export { ListOuterElement } from "./components/list-outer-element";
4
+ export { ListInnerElement } from "./components/list-inner-element";
2
5
  export * from "./types/handlers";
3
6
  export * from "./types/renderers";
4
7
  export * from "./types/state";
@@ -1,5 +1,8 @@
1
1
  /* The Public Api */
2
2
  export { Tree } from "./components/tree";
3
+ export { DropContainer } from "./components/list-outer-element";
4
+ export { ListOuterElement } from "./components/list-outer-element";
5
+ export { ListInnerElement } from "./components/list-inner-element";
3
6
  export * from "./types/handlers";
4
7
  export * from "./types/renderers";
5
8
  export * from "./types/state";
@@ -2,7 +2,7 @@ import { BoolFunc } from "./utils";
2
2
  import * as handlers from "./handlers";
3
3
  import * as renderers from "./renderers";
4
4
  import { ElementType, MouseEventHandler } from "react";
5
- import { ListOnScrollProps } from "react-window";
5
+ import { ListOnScrollProps, CommonProps as ReactWindowCommonProps } from "react-window";
6
6
  import { NodeApi } from "../interfaces/node-api";
7
7
  import { OpenMap } from "../state/open-slice";
8
8
  import { useDragDropManager, DndProviderProps } from "react-dnd";
@@ -57,4 +57,6 @@ export interface TreeProps<T> {
57
57
  backend: unknown;
58
58
  }>["backend"];
59
59
  dndManager?: ReturnType<typeof useDragDropManager>;
60
+ outerElementType?: ReactWindowCommonProps["outerElementType"];
61
+ innerElementType?: ReactWindowCommonProps["innerElementType"];
60
62
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-arborist",
3
- "version": "3.6.1",
3
+ "version": "3.7.0",
4
4
  "license": "MIT",
5
5
  "source": "src/index.ts",
6
6
  "main": "dist/main/index.js",
@@ -226,8 +226,8 @@ export function DefaultContainer() {
226
226
  itemSize={tree.rowHeight}
227
227
  overscanCount={tree.overscanCount}
228
228
  itemKey={(index) => tree.visibleNodes[index]?.id || index}
229
- outerElementType={ListOuterElement}
230
- innerElementType={ListInnerElement}
229
+ outerElementType={tree.props.outerElementType ?? ListOuterElement}
230
+ innerElementType={tree.props.innerElementType ?? ListInnerElement}
231
231
  onScroll={tree.props.onScroll}
232
232
  onItemsRendered={tree.onItemsRendered.bind(tree)}
233
233
  ref={tree.list}
@@ -24,7 +24,7 @@ export const ListOuterElement = forwardRef(function Outer(
24
24
  );
25
25
  });
26
26
 
27
- const DropContainer = () => {
27
+ export const DropContainer = () => {
28
28
  const tree = useTreeApi();
29
29
  return (
30
30
  <div
package/src/index.ts CHANGED
@@ -1,5 +1,8 @@
1
1
  /* The Public Api */
2
2
  export { Tree } from "./components/tree";
3
+ export { DropContainer } from "./components/list-outer-element";
4
+ export { ListOuterElement } from "./components/list-outer-element";
5
+ export { ListInnerElement } from "./components/list-inner-element";
3
6
  export * from "./types/handlers";
4
7
  export * from "./types/renderers";
5
8
  export * from "./types/state";
@@ -2,7 +2,7 @@ import { BoolFunc } from "./utils";
2
2
  import * as handlers from "./handlers";
3
3
  import * as renderers from "./renderers";
4
4
  import { ElementType, MouseEventHandler } from "react";
5
- import { ListOnScrollProps } from "react-window";
5
+ import { ListOnScrollProps, CommonProps as ReactWindowCommonProps } from "react-window";
6
6
  import { NodeApi } from "../interfaces/node-api";
7
7
  import { OpenMap } from "../state/open-slice";
8
8
  import { useDragDropManager, DndProviderProps } from "react-dnd";
@@ -82,4 +82,8 @@ export interface TreeProps<T> {
82
82
  { backend: unknown }
83
83
  >["backend"];
84
84
  dndManager?: ReturnType<typeof useDragDropManager>;
85
+
86
+ /* Custom react-window outer/inner elements */
87
+ outerElementType?: ReactWindowCommonProps["outerElementType"];
88
+ innerElementType?: ReactWindowCommonProps["innerElementType"];
85
89
  }