@itwin/presentation-hierarchies-react 2.0.0-alpha.6 → 2.0.0-alpha.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/CHANGELOG.md +1151 -11
  2. package/README.md +93 -160
  3. package/lib/presentation-hierarchies-react/FlatTreeNode.d.ts +49 -0
  4. package/lib/presentation-hierarchies-react/FlatTreeNode.d.ts.map +1 -0
  5. package/lib/presentation-hierarchies-react/FlatTreeNode.js +96 -0
  6. package/lib/presentation-hierarchies-react/FlatTreeNode.js.map +1 -0
  7. package/lib/presentation-hierarchies-react/LocalizationContext.d.ts +24 -0
  8. package/lib/presentation-hierarchies-react/LocalizationContext.d.ts.map +1 -0
  9. package/lib/presentation-hierarchies-react/LocalizationContext.js +40 -0
  10. package/lib/presentation-hierarchies-react/LocalizationContext.js.map +1 -0
  11. package/lib/presentation-hierarchies-react/Renderers.d.ts +92 -0
  12. package/lib/presentation-hierarchies-react/Renderers.d.ts.map +1 -0
  13. package/lib/presentation-hierarchies-react/TreeNode.d.ts +80 -0
  14. package/lib/presentation-hierarchies-react/TreeNode.d.ts.map +1 -0
  15. package/lib/{esm/presentation-hierarchies-react → presentation-hierarchies-react}/UseIModelTree.d.ts +28 -15
  16. package/lib/presentation-hierarchies-react/UseIModelTree.d.ts.map +1 -0
  17. package/lib/presentation-hierarchies-react/UseIModelTree.js +183 -0
  18. package/lib/presentation-hierarchies-react/UseIModelTree.js.map +1 -0
  19. package/lib/presentation-hierarchies-react/UseNodeHighlighting.d.ts +30 -0
  20. package/lib/presentation-hierarchies-react/UseNodeHighlighting.d.ts.map +1 -0
  21. package/lib/presentation-hierarchies-react/UseNodeHighlighting.js +57 -0
  22. package/lib/presentation-hierarchies-react/UseNodeHighlighting.js.map +1 -0
  23. package/lib/presentation-hierarchies-react/UseSelectionHandler.d.ts +23 -0
  24. package/lib/presentation-hierarchies-react/UseSelectionHandler.d.ts.map +1 -0
  25. package/lib/presentation-hierarchies-react/UseSelectionHandler.js +124 -0
  26. package/lib/presentation-hierarchies-react/UseSelectionHandler.js.map +1 -0
  27. package/lib/presentation-hierarchies-react/UseTree.d.ts +112 -0
  28. package/lib/presentation-hierarchies-react/UseTree.d.ts.map +1 -0
  29. package/lib/presentation-hierarchies-react/UseTree.js +298 -0
  30. package/lib/presentation-hierarchies-react/UseTree.js.map +1 -0
  31. package/lib/presentation-hierarchies-react/Utils.js +56 -0
  32. package/lib/presentation-hierarchies-react/Utils.js.map +1 -0
  33. package/lib/presentation-hierarchies-react/internal/DisposePolyfill.js +10 -0
  34. package/lib/presentation-hierarchies-react/internal/DisposePolyfill.js.map +1 -0
  35. package/lib/presentation-hierarchies-react/internal/LocalizedStrings.d.ts +9 -0
  36. package/lib/presentation-hierarchies-react/internal/LocalizedStrings.d.ts.map +1 -0
  37. package/lib/presentation-hierarchies-react/internal/LocalizedStrings.js +12 -0
  38. package/lib/presentation-hierarchies-react/internal/LocalizedStrings.js.map +1 -0
  39. package/lib/presentation-hierarchies-react/internal/TreeActions.js +294 -0
  40. package/lib/presentation-hierarchies-react/internal/TreeActions.js.map +1 -0
  41. package/lib/presentation-hierarchies-react/internal/TreeLoader.js +98 -0
  42. package/lib/presentation-hierarchies-react/internal/TreeLoader.js.map +1 -0
  43. package/lib/presentation-hierarchies-react/internal/TreeModel.d.ts +1 -0
  44. package/lib/presentation-hierarchies-react/internal/TreeModel.js +115 -0
  45. package/lib/presentation-hierarchies-react/internal/TreeModel.js.map +1 -0
  46. package/lib/presentation-hierarchies-react/internal/UseUnifiedSelection.d.ts +35 -0
  47. package/lib/presentation-hierarchies-react/internal/UseUnifiedSelection.d.ts.map +1 -0
  48. package/lib/presentation-hierarchies-react/internal/UseUnifiedSelection.js +141 -0
  49. package/lib/presentation-hierarchies-react/internal/UseUnifiedSelection.js.map +1 -0
  50. package/lib/presentation-hierarchies-react/internal/Utils.js +42 -0
  51. package/lib/presentation-hierarchies-react/internal/Utils.js.map +1 -0
  52. package/lib/presentation-hierarchies-react/stratakit/ErrorItemRenderer.d.ts +40 -0
  53. package/lib/presentation-hierarchies-react/stratakit/ErrorItemRenderer.d.ts.map +1 -0
  54. package/lib/presentation-hierarchies-react/stratakit/ErrorItemRenderer.js +387 -0
  55. package/lib/presentation-hierarchies-react/stratakit/ErrorItemRenderer.js.map +1 -0
  56. package/lib/presentation-hierarchies-react/stratakit/RootErrorRenderer.d.ts +21 -0
  57. package/lib/presentation-hierarchies-react/stratakit/RootErrorRenderer.d.ts.map +1 -0
  58. package/lib/presentation-hierarchies-react/stratakit/RootErrorRenderer.js +185 -0
  59. package/lib/presentation-hierarchies-react/stratakit/RootErrorRenderer.js.map +1 -0
  60. package/lib/presentation-hierarchies-react/stratakit/TreeAction.d.ts +49 -0
  61. package/lib/presentation-hierarchies-react/stratakit/TreeAction.d.ts.map +1 -0
  62. package/lib/presentation-hierarchies-react/stratakit/TreeAction.js +88 -0
  63. package/lib/presentation-hierarchies-react/stratakit/TreeAction.js.map +1 -0
  64. package/lib/presentation-hierarchies-react/stratakit/TreeErrorRenderer.d.ts +38 -0
  65. package/lib/presentation-hierarchies-react/stratakit/TreeErrorRenderer.d.ts.map +1 -0
  66. package/lib/presentation-hierarchies-react/stratakit/TreeErrorRenderer.js +77 -0
  67. package/lib/presentation-hierarchies-react/stratakit/TreeErrorRenderer.js.map +1 -0
  68. package/lib/presentation-hierarchies-react/stratakit/TreeNodeFilterAction.d.ts +29 -0
  69. package/lib/presentation-hierarchies-react/stratakit/TreeNodeFilterAction.d.ts.map +1 -0
  70. package/lib/presentation-hierarchies-react/stratakit/TreeNodeFilterAction.js +91 -0
  71. package/lib/presentation-hierarchies-react/stratakit/TreeNodeFilterAction.js.map +1 -0
  72. package/lib/presentation-hierarchies-react/stratakit/TreeNodeRenameAction.d.ts +31 -0
  73. package/lib/presentation-hierarchies-react/stratakit/TreeNodeRenameAction.d.ts.map +1 -0
  74. package/lib/presentation-hierarchies-react/stratakit/TreeNodeRenameAction.js +155 -0
  75. package/lib/presentation-hierarchies-react/stratakit/TreeNodeRenameAction.js.map +1 -0
  76. package/lib/presentation-hierarchies-react/stratakit/TreeNodeRenderer.css +25 -0
  77. package/lib/presentation-hierarchies-react/stratakit/TreeNodeRenderer.d.ts +14 -0
  78. package/lib/presentation-hierarchies-react/stratakit/TreeNodeRenderer.d.ts.map +1 -0
  79. package/lib/presentation-hierarchies-react/stratakit/TreeNodeRenderer.js +540 -0
  80. package/lib/presentation-hierarchies-react/stratakit/TreeNodeRenderer.js.map +1 -0
  81. package/lib/presentation-hierarchies-react/stratakit/TreeRenderer.d.ts +75 -0
  82. package/lib/presentation-hierarchies-react/stratakit/TreeRenderer.d.ts.map +1 -0
  83. package/lib/presentation-hierarchies-react/stratakit/TreeRenderer.js +417 -0
  84. package/lib/presentation-hierarchies-react/stratakit/TreeRenderer.js.map +1 -0
  85. package/lib/presentation-hierarchies-react-extract.d.ts +17 -0
  86. package/lib/presentation-hierarchies-react-extract.js +16 -0
  87. package/lib/presentation-hierarchies-react-stratakit.d.ts +8 -0
  88. package/lib/presentation-hierarchies-react-stratakit.js +8 -0
  89. package/lib/presentation-hierarchies-react.d.ts +11 -0
  90. package/lib/presentation-hierarchies-react.js +8 -0
  91. package/lib/public/locales/en/PresentationHierarchies_1.0.json +26 -0
  92. package/package.json +78 -56
  93. package/lib/esm/presentation-hierarchies-react/TreeNode.d.ts +0 -75
  94. package/lib/esm/presentation-hierarchies-react/TreeNode.d.ts.map +0 -1
  95. package/lib/esm/presentation-hierarchies-react/TreeNode.js +0 -12
  96. package/lib/esm/presentation-hierarchies-react/TreeNode.js.map +0 -1
  97. package/lib/esm/presentation-hierarchies-react/UnifiedSelectionContext.d.ts +0 -15
  98. package/lib/esm/presentation-hierarchies-react/UnifiedSelectionContext.d.ts.map +0 -1
  99. package/lib/esm/presentation-hierarchies-react/UnifiedSelectionContext.js +0 -22
  100. package/lib/esm/presentation-hierarchies-react/UnifiedSelectionContext.js.map +0 -1
  101. package/lib/esm/presentation-hierarchies-react/UseIModelTree.d.ts.map +0 -1
  102. package/lib/esm/presentation-hierarchies-react/UseIModelTree.js +0 -62
  103. package/lib/esm/presentation-hierarchies-react/UseIModelTree.js.map +0 -1
  104. package/lib/esm/presentation-hierarchies-react/UseSelectionHandler.d.ts +0 -46
  105. package/lib/esm/presentation-hierarchies-react/UseSelectionHandler.d.ts.map +0 -1
  106. package/lib/esm/presentation-hierarchies-react/UseSelectionHandler.js +0 -98
  107. package/lib/esm/presentation-hierarchies-react/UseSelectionHandler.js.map +0 -1
  108. package/lib/esm/presentation-hierarchies-react/UseTree.d.ts +0 -132
  109. package/lib/esm/presentation-hierarchies-react/UseTree.d.ts.map +0 -1
  110. package/lib/esm/presentation-hierarchies-react/UseTree.js +0 -242
  111. package/lib/esm/presentation-hierarchies-react/UseTree.js.map +0 -1
  112. package/lib/esm/presentation-hierarchies-react/internal/DisposePolyfill.d.ts +0 -2
  113. package/lib/esm/presentation-hierarchies-react/internal/DisposePolyfill.d.ts.map +0 -1
  114. package/lib/esm/presentation-hierarchies-react/internal/DisposePolyfill.js +0 -11
  115. package/lib/esm/presentation-hierarchies-react/internal/DisposePolyfill.js.map +0 -1
  116. package/lib/esm/presentation-hierarchies-react/internal/TreeActions.d.ts +0 -53
  117. package/lib/esm/presentation-hierarchies-react/internal/TreeActions.d.ts.map +0 -1
  118. package/lib/esm/presentation-hierarchies-react/internal/TreeActions.js +0 -307
  119. package/lib/esm/presentation-hierarchies-react/internal/TreeActions.js.map +0 -1
  120. package/lib/esm/presentation-hierarchies-react/internal/TreeLoader.d.ts +0 -44
  121. package/lib/esm/presentation-hierarchies-react/internal/TreeLoader.d.ts.map +0 -1
  122. package/lib/esm/presentation-hierarchies-react/internal/TreeLoader.js +0 -94
  123. package/lib/esm/presentation-hierarchies-react/internal/TreeLoader.js.map +0 -1
  124. package/lib/esm/presentation-hierarchies-react/internal/TreeModel.d.ts +0 -70
  125. package/lib/esm/presentation-hierarchies-react/internal/TreeModel.d.ts.map +0 -1
  126. package/lib/esm/presentation-hierarchies-react/internal/TreeModel.js +0 -153
  127. package/lib/esm/presentation-hierarchies-react/internal/TreeModel.js.map +0 -1
  128. package/lib/esm/presentation-hierarchies-react/internal/UseUnifiedSelection.d.ts +0 -28
  129. package/lib/esm/presentation-hierarchies-react/internal/UseUnifiedSelection.d.ts.map +0 -1
  130. package/lib/esm/presentation-hierarchies-react/internal/UseUnifiedSelection.js +0 -128
  131. package/lib/esm/presentation-hierarchies-react/internal/UseUnifiedSelection.js.map +0 -1
  132. package/lib/esm/presentation-hierarchies-react/internal/Utils.d.ts +0 -23
  133. package/lib/esm/presentation-hierarchies-react/internal/Utils.d.ts.map +0 -1
  134. package/lib/esm/presentation-hierarchies-react/internal/Utils.js +0 -58
  135. package/lib/esm/presentation-hierarchies-react/internal/Utils.js.map +0 -1
  136. package/lib/esm/presentation-hierarchies-react/itwinui/FlatTreeNode.d.ts +0 -21
  137. package/lib/esm/presentation-hierarchies-react/itwinui/FlatTreeNode.d.ts.map +0 -1
  138. package/lib/esm/presentation-hierarchies-react/itwinui/FlatTreeNode.js +0 -30
  139. package/lib/esm/presentation-hierarchies-react/itwinui/FlatTreeNode.js.map +0 -1
  140. package/lib/esm/presentation-hierarchies-react/itwinui/LocalizationContext.d.ts +0 -73
  141. package/lib/esm/presentation-hierarchies-react/itwinui/LocalizationContext.d.ts.map +0 -1
  142. package/lib/esm/presentation-hierarchies-react/itwinui/LocalizationContext.js +0 -34
  143. package/lib/esm/presentation-hierarchies-react/itwinui/LocalizationContext.js.map +0 -1
  144. package/lib/esm/presentation-hierarchies-react/itwinui/TreeActionButton.d.ts +0 -25
  145. package/lib/esm/presentation-hierarchies-react/itwinui/TreeActionButton.d.ts.map +0 -1
  146. package/lib/esm/presentation-hierarchies-react/itwinui/TreeActionButton.js +0 -40
  147. package/lib/esm/presentation-hierarchies-react/itwinui/TreeActionButton.js.map +0 -1
  148. package/lib/esm/presentation-hierarchies-react/itwinui/TreeErrorRenderer.d.ts +0 -23
  149. package/lib/esm/presentation-hierarchies-react/itwinui/TreeErrorRenderer.d.ts.map +0 -1
  150. package/lib/esm/presentation-hierarchies-react/itwinui/TreeErrorRenderer.js +0 -72
  151. package/lib/esm/presentation-hierarchies-react/itwinui/TreeErrorRenderer.js.map +0 -1
  152. package/lib/esm/presentation-hierarchies-react/itwinui/TreeNodeRenderer.d.ts +0 -40
  153. package/lib/esm/presentation-hierarchies-react/itwinui/TreeNodeRenderer.d.ts.map +0 -1
  154. package/lib/esm/presentation-hierarchies-react/itwinui/TreeNodeRenderer.js +0 -80
  155. package/lib/esm/presentation-hierarchies-react/itwinui/TreeNodeRenderer.js.map +0 -1
  156. package/lib/esm/presentation-hierarchies-react/itwinui/TreeRenderer.d.ts +0 -30
  157. package/lib/esm/presentation-hierarchies-react/itwinui/TreeRenderer.d.ts.map +0 -1
  158. package/lib/esm/presentation-hierarchies-react/itwinui/TreeRenderer.js +0 -48
  159. package/lib/esm/presentation-hierarchies-react/itwinui/TreeRenderer.js.map +0 -1
  160. package/lib/esm/presentation-hierarchies-react.d.ts +0 -13
  161. package/lib/esm/presentation-hierarchies-react.d.ts.map +0 -1
  162. package/lib/esm/presentation-hierarchies-react.js +0 -16
  163. package/lib/esm/presentation-hierarchies-react.js.map +0 -1
@@ -0,0 +1,417 @@
1
+ import { useEvent, useMergedRefs } from "../Utils.js";
2
+ import { isPlaceholderItem, useErrorNodes, useFlatTreeItems } from "../FlatTreeNode.js";
3
+ import { TreeNodeRenameContextProvider, useTreeNodeRenameContextValue } from "./TreeNodeRenameAction.js";
4
+ import { useSelectionHandler } from "../UseSelectionHandler.js";
5
+ import { TreeErrorRenderer } from "./TreeErrorRenderer.js";
6
+ import { PlaceholderNode, StrataKitTreeNodeRenderer } from "./TreeNodeRenderer.js";
7
+ import { c } from "react-compiler-runtime";
8
+ import { forwardRef, memo, useCallback, useEffect, useImperativeHandle, useMemo, useRef } from "react";
9
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
10
+ import { Tree } from "@stratakit/structures";
11
+ import { useVirtualizer } from "@tanstack/react-virtual";
12
+ //#region src/presentation-hierarchies-react/stratakit/TreeRenderer.tsx
13
+ /**
14
+ * A component that renders a tree using the `Tree` component from `@stratakit/structures`.
15
+ *
16
+ * @alpha
17
+ */
18
+ const StrataKitTreeRenderer = forwardRef(function StrataKitTreeRenderer(props, forwardedRef) {
19
+ const { id, rootNodes, selectNodes, selectionMode, expandNode, treeLabel, getHierarchyLevelDetails, filterHierarchyLevel, reloadTree, isNodeSelected, errorRenderer, treeRootProps, getContextMenuActions, getEditingProps, getInlineActions, getMenuActions, getTreeItemProps } = props;
20
+ const { handleNodeSelect } = useSelectionHandler({
21
+ rootNodes,
22
+ selectNodes,
23
+ selectionMode: selectionMode ?? "single"
24
+ });
25
+ const flatItems = useFlatTreeItems(rootNodes);
26
+ const errorNodes = useErrorNodes(rootNodes);
27
+ const parentRef = useRef(null);
28
+ const virtualizer = useVirtualizer({
29
+ count: flatItems.length,
30
+ getScrollElement: () => parentRef.current,
31
+ getItemKey: useCallback((index) => flatItems[index].id, [flatItems]),
32
+ estimateSize: () => 28,
33
+ overscan: 10
34
+ });
35
+ const items = virtualizer.getVirtualItems();
36
+ const expandAndScrollToNode = useExpandAndScrollToNode({
37
+ rootNodes,
38
+ flatItems,
39
+ expandNode,
40
+ virtualizer
41
+ });
42
+ const renameContext = useTreeNodeRenameContextValue({ getEditingProps });
43
+ useImperativeHandle(forwardedRef, () => ({ renameNode: (nodePredicate) => expandAndScrollToNode({
44
+ nodePredicate,
45
+ onComplete: (targetNode) => {
46
+ requestAnimationFrame(() => renameContext.startRename(targetNode));
47
+ }
48
+ }) }));
49
+ const cancelRename = renameContext.cancelRename;
50
+ const isScrolling = virtualizer.isScrolling;
51
+ useEffect(() => {
52
+ if (isScrolling) cancelRename();
53
+ }, [isScrolling, cancelRename]);
54
+ const errorRendererProps = {
55
+ treeLabel,
56
+ errorNodes,
57
+ scrollToNode: (node) => expandAndScrollToNode({ nodePredicate: (n) => n.id === node.id }),
58
+ getHierarchyLevelDetails,
59
+ filterHierarchyLevel,
60
+ reloadTree: useCallback(({ parentNodeId }) => reloadTree({
61
+ parentNodeId,
62
+ state: "reset"
63
+ }), [reloadTree])
64
+ };
65
+ const getSelectedNodes = useMemo(() => {
66
+ let calculatedSelectedNodes;
67
+ return () => {
68
+ if (calculatedSelectedNodes === void 0) calculatedSelectedNodes = flatItems.filter((item) => !isPlaceholderItem(item) && isNodeSelected(item.id)).map((item_0) => item_0.node);
69
+ return calculatedSelectedNodes;
70
+ };
71
+ }, [flatItems, isNodeSelected]);
72
+ return /* @__PURE__ */ jsxs(Fragment, { children: [errorRenderer ? errorRenderer(errorRendererProps) : /* @__PURE__ */ jsx(TreeErrorRenderer, { ...errorRendererProps }), /* @__PURE__ */ jsx("div", {
73
+ id,
74
+ style: {
75
+ height: "100%",
76
+ width: "100%",
77
+ overflowY: "auto"
78
+ },
79
+ ref: parentRef,
80
+ children: /* @__PURE__ */ jsx(Tree.Root, {
81
+ ...treeRootProps,
82
+ style: {
83
+ height: virtualizer.getTotalSize(),
84
+ minHeight: "100%",
85
+ width: "100%",
86
+ position: "relative",
87
+ overflow: "hidden"
88
+ },
89
+ children: /* @__PURE__ */ jsx(TreeNodeRenameContextProvider, {
90
+ value: renameContext,
91
+ children: items.map((virtualizedItem) => {
92
+ const item_1 = flatItems[virtualizedItem.index];
93
+ const selected = isNodeSelected(item_1.id);
94
+ return /* @__PURE__ */ jsx(VirtualTreeItem, {
95
+ ref: virtualizer.measureElement,
96
+ "data-index": virtualizedItem.index,
97
+ start: virtualizedItem.start,
98
+ item: item_1,
99
+ selected,
100
+ expandNode,
101
+ reloadTree,
102
+ handleNodeSelect,
103
+ getSelectedNodes,
104
+ getContextMenuActions,
105
+ getInlineActions,
106
+ getMenuActions,
107
+ getTreeItemProps
108
+ }, virtualizedItem.key);
109
+ })
110
+ })
111
+ })
112
+ })] });
113
+ });
114
+ function useExpandAndScrollToNode(t0) {
115
+ const $ = c(11);
116
+ const { rootNodes, flatItems, expandNode, virtualizer } = t0;
117
+ let t1;
118
+ if ($[0] !== expandNode || $[1] !== rootNodes) {
119
+ t1 = (nodePredicate) => {
120
+ const pathToNode = findPathToNode(rootNodes, nodePredicate);
121
+ if (!pathToNode) return;
122
+ const targetNode = pathToNode.pop();
123
+ const collapsedNodes = pathToNode.filter(_temp);
124
+ collapsedNodes.forEach((node) => expandNode(node.id, true));
125
+ return {
126
+ targetNode,
127
+ didExpand: collapsedNodes.length > 0
128
+ };
129
+ };
130
+ $[0] = expandNode;
131
+ $[1] = rootNodes;
132
+ $[2] = t1;
133
+ } else t1 = $[2];
134
+ const expandToNode = t1;
135
+ const scrollToNode = useRef(void 0);
136
+ let t2;
137
+ let t3;
138
+ if ($[3] !== flatItems || $[4] !== virtualizer) {
139
+ t2 = () => {
140
+ if (scrollToNode.current === void 0) return;
141
+ const targetNodeId = scrollToNode.current.id;
142
+ const index = flatItems.findIndex((flatItem) => flatItem.id === targetNodeId);
143
+ if (index === -1) return;
144
+ virtualizer.scrollToIndex(index, { align: "auto" });
145
+ scrollToNode.current.onScrollComplete?.();
146
+ scrollToNode.current = void 0;
147
+ };
148
+ t3 = [flatItems, virtualizer];
149
+ $[3] = flatItems;
150
+ $[4] = virtualizer;
151
+ $[5] = t2;
152
+ $[6] = t3;
153
+ } else {
154
+ t2 = $[5];
155
+ t3 = $[6];
156
+ }
157
+ useEffect(t2, t3);
158
+ let t4;
159
+ if ($[7] !== expandToNode || $[8] !== flatItems || $[9] !== virtualizer) {
160
+ t4 = (t5) => {
161
+ const { nodePredicate: nodePredicate_0, onComplete } = t5;
162
+ const expandResult = expandToNode(nodePredicate_0);
163
+ if (!expandResult) return "node-not-found";
164
+ const { targetNode: targetNode_0, didExpand } = expandResult;
165
+ if (didExpand) scrollToNode.current = {
166
+ id: targetNode_0.id,
167
+ onScrollComplete: onComplete ? () => onComplete(targetNode_0) : void 0
168
+ };
169
+ else {
170
+ const index_0 = flatItems.findIndex((flatItem_0) => flatItem_0.id === targetNode_0.id);
171
+ virtualizer.scrollToIndex(index_0, { align: "auto" });
172
+ onComplete?.(targetNode_0);
173
+ }
174
+ return "success";
175
+ };
176
+ $[7] = expandToNode;
177
+ $[8] = flatItems;
178
+ $[9] = virtualizer;
179
+ $[10] = t4;
180
+ } else t4 = $[10];
181
+ return t4;
182
+ }
183
+ function _temp(pathNode) {
184
+ return !pathNode.isExpanded;
185
+ }
186
+ function findPathToNode(rootNodes, nodePredicate) {
187
+ for (const parent of rootNodes) {
188
+ if (nodePredicate(parent)) return [parent];
189
+ if (parent.children !== true) {
190
+ const childPath = findPathToNode(parent.children, nodePredicate);
191
+ if (childPath) return [parent, ...childPath];
192
+ }
193
+ }
194
+ }
195
+ const VirtualTreeItem = memo(forwardRef(function VirtualTreeItem(t0, forwardedRef) {
196
+ const $ = c(16);
197
+ let item;
198
+ let props;
199
+ let start;
200
+ if ($[0] !== t0) {
201
+ ({start, item, ...props} = t0);
202
+ $[0] = t0;
203
+ $[1] = item;
204
+ $[2] = props;
205
+ $[3] = start;
206
+ } else {
207
+ item = $[1];
208
+ props = $[2];
209
+ start = $[3];
210
+ }
211
+ const t1 = `translateY(${start}px)`;
212
+ let t2;
213
+ if ($[4] !== t1) {
214
+ t2 = {
215
+ position: "absolute",
216
+ top: 0,
217
+ left: 0,
218
+ width: "100%",
219
+ transform: t1,
220
+ willChange: "transform"
221
+ };
222
+ $[4] = t1;
223
+ $[5] = t2;
224
+ } else t2 = $[5];
225
+ const style = t2;
226
+ if (isPlaceholderItem(item)) {
227
+ const t3 = props["data-index"];
228
+ let t4;
229
+ if ($[6] !== forwardedRef || $[7] !== item.level || $[8] !== style || $[9] !== t3) {
230
+ t4 = /* @__PURE__ */ jsx(PlaceholderNode, {
231
+ ref: forwardedRef,
232
+ "data-index": t3,
233
+ style,
234
+ "aria-level": item.level,
235
+ "aria-posinset": 1,
236
+ "aria-setsize": 1
237
+ });
238
+ $[6] = forwardedRef;
239
+ $[7] = item.level;
240
+ $[8] = style;
241
+ $[9] = t3;
242
+ $[10] = t4;
243
+ } else t4 = $[10];
244
+ return t4;
245
+ }
246
+ let t3;
247
+ if ($[11] !== forwardedRef || $[12] !== item || $[13] !== props || $[14] !== style) {
248
+ t3 = /* @__PURE__ */ jsx(HierarchyNodeItem, {
249
+ ...props,
250
+ ref: forwardedRef,
251
+ style,
252
+ item
253
+ });
254
+ $[11] = forwardedRef;
255
+ $[12] = item;
256
+ $[13] = props;
257
+ $[14] = style;
258
+ $[15] = t3;
259
+ } else t3 = $[15];
260
+ return t3;
261
+ }));
262
+ const HierarchyNodeItem = memo(forwardRef(function HierarchyNodeItem(t0, forwardedRef) {
263
+ const $ = c(49);
264
+ let getContextMenuActions;
265
+ let getInlineActions;
266
+ let getMenuActions;
267
+ let getSelectedNodes;
268
+ let getTreeItemProps;
269
+ let handleNodeSelect;
270
+ let item;
271
+ let rest;
272
+ let selected;
273
+ if ($[0] !== t0) {
274
+ ({item, selected, getTreeItemProps, handleNodeSelect, getSelectedNodes, getMenuActions, getInlineActions, getContextMenuActions, ...rest} = t0);
275
+ $[0] = t0;
276
+ $[1] = getContextMenuActions;
277
+ $[2] = getInlineActions;
278
+ $[3] = getMenuActions;
279
+ $[4] = getSelectedNodes;
280
+ $[5] = getTreeItemProps;
281
+ $[6] = handleNodeSelect;
282
+ $[7] = item;
283
+ $[8] = rest;
284
+ $[9] = selected;
285
+ } else {
286
+ getContextMenuActions = $[1];
287
+ getInlineActions = $[2];
288
+ getMenuActions = $[3];
289
+ getSelectedNodes = $[4];
290
+ getTreeItemProps = $[5];
291
+ handleNodeSelect = $[6];
292
+ item = $[7];
293
+ rest = $[8];
294
+ selected = $[9];
295
+ }
296
+ const nodeRef = useRef(null);
297
+ const node = item.node;
298
+ let t1;
299
+ if ($[10] !== getTreeItemProps || $[11] !== node) {
300
+ t1 = getTreeItemProps?.(node);
301
+ $[10] = getTreeItemProps;
302
+ $[11] = node;
303
+ $[12] = t1;
304
+ } else t1 = $[12];
305
+ const treeItemProps = t1;
306
+ const isDisabled = treeItemProps?.["aria-disabled"] === true;
307
+ let t2;
308
+ if ($[13] !== getMenuActions || $[14] !== getSelectedNodes || $[15] !== node) {
309
+ t2 = getMenuActions ? getMenuActions({
310
+ targetNode: node,
311
+ selectedNodes: getSelectedNodes()
312
+ }) : void 0;
313
+ $[13] = getMenuActions;
314
+ $[14] = getSelectedNodes;
315
+ $[15] = node;
316
+ $[16] = t2;
317
+ } else t2 = $[16];
318
+ let t3;
319
+ if ($[17] !== getInlineActions || $[18] !== getSelectedNodes || $[19] !== node) {
320
+ t3 = getInlineActions ? getInlineActions({
321
+ targetNode: node,
322
+ selectedNodes: getSelectedNodes()
323
+ }) : void 0;
324
+ $[17] = getInlineActions;
325
+ $[18] = getSelectedNodes;
326
+ $[19] = node;
327
+ $[20] = t3;
328
+ } else t3 = $[20];
329
+ let t4;
330
+ if ($[21] !== getContextMenuActions || $[22] !== getSelectedNodes || $[23] !== node) {
331
+ t4 = getContextMenuActions ? getContextMenuActions({
332
+ targetNode: node,
333
+ selectedNodes: getSelectedNodes()
334
+ }) : void 0;
335
+ $[21] = getContextMenuActions;
336
+ $[22] = getSelectedNodes;
337
+ $[23] = node;
338
+ $[24] = t4;
339
+ } else t4 = $[24];
340
+ let t5;
341
+ if ($[25] !== t2 || $[26] !== t3 || $[27] !== t4) {
342
+ t5 = {
343
+ menuActions: t2,
344
+ inlineActions: t3,
345
+ contextMenuActions: t4
346
+ };
347
+ $[25] = t2;
348
+ $[26] = t3;
349
+ $[27] = t4;
350
+ $[28] = t5;
351
+ } else t5 = $[28];
352
+ const nodeActions = t5;
353
+ let t6;
354
+ if ($[29] !== handleNodeSelect || $[30] !== isDisabled || $[31] !== node || $[32] !== selected || $[33] !== treeItemProps) {
355
+ t6 = (e) => {
356
+ if (treeItemProps?.onClick) treeItemProps.onClick(e);
357
+ if (isDisabled || e.detail > 1) return;
358
+ handleNodeSelect({
359
+ nodeId: node.id,
360
+ isSelected: selected ?? false,
361
+ shiftDown: e.shiftKey,
362
+ ctrlDown: e.ctrlKey
363
+ });
364
+ };
365
+ $[29] = handleNodeSelect;
366
+ $[30] = isDisabled;
367
+ $[31] = node;
368
+ $[32] = selected;
369
+ $[33] = treeItemProps;
370
+ $[34] = t6;
371
+ } else t6 = $[34];
372
+ const onClick = useEvent(t6);
373
+ let t7;
374
+ if ($[35] !== treeItemProps) {
375
+ t7 = (e_0) => {
376
+ if (treeItemProps?.onMouseDown) treeItemProps.onMouseDown(e_0);
377
+ if (e_0.shiftKey) e_0.preventDefault();
378
+ };
379
+ $[35] = treeItemProps;
380
+ $[36] = t7;
381
+ } else t7 = $[36];
382
+ const onMouseDown = useEvent(t7);
383
+ const ref = useMergedRefs(forwardedRef, nodeRef);
384
+ let t8;
385
+ if ($[37] !== item.level || $[38] !== item.levelSize || $[39] !== item.node || $[40] !== item.posInLevel || $[41] !== nodeActions || $[42] !== onClick || $[43] !== onMouseDown || $[44] !== ref || $[45] !== rest || $[46] !== selected || $[47] !== treeItemProps) {
386
+ t8 = /* @__PURE__ */ jsx(StrataKitTreeNodeRenderer, {
387
+ ...treeItemProps,
388
+ ...rest,
389
+ ...nodeActions,
390
+ ref,
391
+ "aria-level": item.level,
392
+ "aria-posinset": item.posInLevel,
393
+ "aria-setsize": item.levelSize,
394
+ node: item.node,
395
+ selected,
396
+ onClick,
397
+ onMouseDown
398
+ });
399
+ $[37] = item.level;
400
+ $[38] = item.levelSize;
401
+ $[39] = item.node;
402
+ $[40] = item.posInLevel;
403
+ $[41] = nodeActions;
404
+ $[42] = onClick;
405
+ $[43] = onMouseDown;
406
+ $[44] = ref;
407
+ $[45] = rest;
408
+ $[46] = selected;
409
+ $[47] = treeItemProps;
410
+ $[48] = t8;
411
+ } else t8 = $[48];
412
+ return t8;
413
+ }));
414
+ //#endregion
415
+ export { StrataKitTreeRenderer };
416
+
417
+ //# sourceMappingURL=TreeRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TreeRenderer.js","names":["forwardRef","memo","useCallback","useEffect","useImperativeHandle","useMemo","useRef","Tree","useVirtualizer","isPlaceholderItem","useErrorNodes","useFlatTreeItems","useSelectionHandler","useEvent","useMergedRefs","TreeErrorRenderer","TreeNodeRenameContextProvider","useTreeNodeRenameContextValue","PlaceholderNode","StrataKitTreeNodeRenderer","ComponentProps","CSSProperties","FC","PropsWithoutRef","ReactElement","ReactNode","RefAttributes","FlatTreeItem","FlatTreeNodeItem","TreeRendererProps","TreeNode","SelectionMode","TreeErrorRendererProps","TreeNodeEditingProps","StrataKitTreeItemProps","TreeNodeRendererProps","TreeRendererOwnProps","id","treeLabel","selectionMode","errorRenderer","props","getEditingProps","node","treeRootProps","Partial","Omit","Root","getTreeItemProps","getMenuActions","targetNode","selectedNodes","getInlineActions","getContextMenuActions","StrataKitTreeRendererAttributes","renameNode","nodePredicate","StrataKitTreeRendererProps","Pick","StrataKitTreeRenderer","forwardedRef","rootNodes","selectNodes","expandNode","getHierarchyLevelDetails","filterHierarchyLevel","reloadTree","isNodeSelected","handleNodeSelect","flatItems","errorNodes","parentRef","HTMLDivElement","virtualizer","count","length","getScrollElement","current","getItemKey","index","estimateSize","overscan","items","getVirtualItems","expandAndScrollToNode","useExpandAndScrollToNode","renameContext","onComplete","requestAnimationFrame","startRename","cancelRename","isScrolling","errorRendererProps","scrollToNode","n","parentNodeId","state","getSelectedNodes","calculatedSelectedNodes","undefined","filter","item","map","height","width","overflowY","getTotalSize","minHeight","position","overflow","virtualizedItem","selected","measureElement","key","start","t0","$","_c","t1","pathToNode","findPathToNode","pop","collapsedNodes","_temp","forEach","didExpand","expandToNode","t2","t3","targetNodeId","findIndex","flatItem","scrollToIndex","align","onScrollComplete","t4","t5","nodePredicate_0","expandResult","targetNode_0","index_0","flatItem_0","pathNode","isExpanded","parent","children","childPath","VirtualTreeItemProps","HierarchyNodeItemProps","VirtualTreeItem","HTMLElement","top","left","transform","willChange","style","level","ReturnType","HierarchyNodeItem","rest","nodeRef","treeItemProps","isDisabled","menuActions","inlineActions","contextMenuActions","nodeActions","t6","e","onClick","detail","nodeId","isSelected","shiftDown","shiftKey","ctrlDown","ctrlKey","t7","e_0","onMouseDown","preventDefault","ref","t8","levelSize","posInLevel"],"sources":["../../../src/presentation-hierarchies-react/stratakit/TreeRenderer.tsx"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\nimport { forwardRef, memo, useCallback, useEffect, useImperativeHandle, useMemo, useRef } from \"react\";\nimport { Tree } from \"@stratakit/structures\";\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\nimport { isPlaceholderItem, useErrorNodes, useFlatTreeItems } from \"../FlatTreeNode.js\";\nimport { useSelectionHandler } from \"../UseSelectionHandler.js\";\nimport { useEvent, useMergedRefs } from \"../Utils.js\";\nimport { TreeErrorRenderer } from \"./TreeErrorRenderer.js\";\nimport { TreeNodeRenameContextProvider, useTreeNodeRenameContextValue } from \"./TreeNodeRenameAction.js\";\nimport { PlaceholderNode, StrataKitTreeNodeRenderer } from \"./TreeNodeRenderer.js\";\n\nimport type { ComponentProps, CSSProperties, FC, PropsWithoutRef, ReactElement, ReactNode, RefAttributes } from \"react\";\nimport type { FlatTreeItem, FlatTreeNodeItem } from \"../FlatTreeNode.js\";\nimport type { TreeRendererProps } from \"../Renderers.js\";\nimport type { TreeNode } from \"../TreeNode.js\";\nimport type { SelectionMode } from \"../UseSelectionHandler.js\";\nimport type { TreeErrorRendererProps } from \"./TreeErrorRenderer.js\";\nimport type { TreeNodeEditingProps } from \"./TreeNodeRenameAction.js\";\nimport type { StrataKitTreeItemProps, TreeNodeRendererProps } from \"./TreeNodeRenderer.js\";\n\n/** @alpha */\ninterface TreeRendererOwnProps {\n id?: string;\n /**\n * A user friendly display label of the tree. Should be unique within the consuming application,\n * as it's used for accessibility purposes.\n */\n treeLabel: string;\n /** Active selection mode used by the tree. Defaults to `\"single\"`. */\n selectionMode?: SelectionMode;\n /** A render function for errors' display component. Defaults to `<TreeErrorRenderer />`. */\n errorRenderer?: (props: TreeErrorRendererProps) => ReactElement;\n /** Props that defines if current node supports editing. */\n getEditingProps?: (node: TreeNode) => TreeNodeEditingProps | undefined;\n\n /** Custom props for the root Tree component. */\n treeRootProps?: Partial<Omit<ComponentProps<typeof Tree.Root>, \"style\">>;\n\n /** A callback that returns tree item props for specific node. */\n getTreeItemProps?: (\n node: TreeNode,\n ) => Partial<Omit<StrataKitTreeItemProps, \"selected\" | \"aria-level\" | \"aria-posinset\" | \"aria-setsize\">>;\n\n /**\n * Callback that returns menu actions for tree item.\n * Must return an array of `<TreeActionBase />` or `<Divider />` elements.\n */\n getMenuActions?: (props: { targetNode: TreeNode; selectedNodes: TreeNode[] }) => ReactNode[];\n /**\n * Callback that returns inline actions for tree item.\n * Must return an array of `<TreeActionBase />` elements.\n * Max 2 items.\n */\n getInlineActions?: (props: { targetNode: TreeNode; selectedNodes: TreeNode[] }) => ReactNode[];\n /**\n * Callback that returns actions for tree item context menu.\n * Must return an array of `<TreeActionBase />` or `<Divider />` elements.\n */\n getContextMenuActions?: (props: { targetNode: TreeNode; selectedNodes: TreeNode[] }) => ReactNode[];\n}\n\n/** @alpha */\nexport interface StrataKitTreeRendererAttributes {\n /**\n * Opens rename mode for the first node that matches the given predicate. Node must be already loaded in the tree.\n * If the node is not visible (because its parent is collapsed), all parents will be expanded to make it visible and node will be scrolled into view.\n *\n * Returns \"node-not-found\" if no node matches the predicate, \"success\" if rename was initiated.\n */\n renameNode: (nodePredicate: (node: TreeNode) => boolean) => \"node-not-found\" | \"success\";\n}\n\n/** @alpha */\ntype StrataKitTreeRendererProps = TreeRendererProps &\n Pick<TreeErrorRendererProps, \"filterHierarchyLevel\"> &\n TreeRendererOwnProps;\n\n/**\n * A component that renders a tree using the `Tree` component from `@stratakit/structures`.\n *\n * @alpha\n */\nexport const StrataKitTreeRenderer: FC<\n PropsWithoutRef<StrataKitTreeRendererProps> & RefAttributes<StrataKitTreeRendererAttributes>\n> = forwardRef<StrataKitTreeRendererAttributes, StrataKitTreeRendererProps>(\n function StrataKitTreeRenderer(props, forwardedRef) {\n const {\n id,\n rootNodes,\n selectNodes,\n selectionMode,\n expandNode,\n treeLabel,\n getHierarchyLevelDetails,\n filterHierarchyLevel,\n reloadTree,\n isNodeSelected,\n errorRenderer,\n treeRootProps,\n getContextMenuActions,\n getEditingProps,\n getInlineActions,\n getMenuActions,\n getTreeItemProps,\n } = props;\n const { handleNodeSelect } = useSelectionHandler({\n rootNodes,\n selectNodes,\n selectionMode: selectionMode ?? \"single\",\n });\n const flatItems = useFlatTreeItems(rootNodes);\n const errorNodes = useErrorNodes(rootNodes);\n\n const parentRef = useRef<HTMLDivElement>(null);\n\n // eslint-disable-next-line react-hooks/incompatible-library\n const virtualizer = useVirtualizer({\n count: flatItems.length,\n getScrollElement: () => parentRef.current,\n getItemKey: useCallback((index: number) => flatItems[index].id, [flatItems]),\n estimateSize: () => 28,\n overscan: 10,\n });\n const items = virtualizer.getVirtualItems();\n const expandAndScrollToNode = useExpandAndScrollToNode({ rootNodes, flatItems, expandNode, virtualizer });\n\n const renameContext = useTreeNodeRenameContextValue({ getEditingProps });\n useImperativeHandle(forwardedRef, () => ({\n renameNode: (nodePredicate) =>\n expandAndScrollToNode({\n nodePredicate,\n onComplete: (targetNode) => {\n // give time to scroll node into view before starting rename\n requestAnimationFrame(() => renameContext.startRename(targetNode));\n },\n }),\n }));\n\n const cancelRename = renameContext.cancelRename;\n const isScrolling = virtualizer.isScrolling;\n useEffect(() => {\n if (isScrolling) {\n // cancel rename when scroll is initiated\n cancelRename();\n }\n }, [isScrolling, cancelRename]);\n\n const errorRendererProps: TreeErrorRendererProps = {\n treeLabel,\n errorNodes,\n scrollToNode: (node) => expandAndScrollToNode({ nodePredicate: (n) => n.id === node.id }),\n getHierarchyLevelDetails,\n filterHierarchyLevel,\n reloadTree: useCallback<TreeErrorRendererProps[\"reloadTree\"]>(\n ({ parentNodeId }) => reloadTree({ parentNodeId, state: \"reset\" }),\n [reloadTree],\n ),\n };\n\n const getSelectedNodes = useMemo(() => {\n let calculatedSelectedNodes: TreeNode[] | undefined;\n return () => {\n if (calculatedSelectedNodes === undefined) {\n calculatedSelectedNodes = flatItems\n .filter((item): item is FlatTreeNodeItem => !isPlaceholderItem(item) && isNodeSelected(item.id))\n .map((item) => item.node);\n }\n return calculatedSelectedNodes;\n };\n }, [flatItems, isNodeSelected]);\n\n return (\n <>\n {errorRenderer ? errorRenderer(errorRendererProps) : <TreeErrorRenderer {...errorRendererProps} />}\n <div id={id} style={{ height: \"100%\", width: \"100%\", overflowY: \"auto\" }} ref={parentRef}>\n <Tree.Root\n {...treeRootProps}\n style={{\n height: virtualizer.getTotalSize(),\n minHeight: \"100%\",\n width: \"100%\",\n position: \"relative\",\n overflow: \"hidden\",\n }}\n >\n <TreeNodeRenameContextProvider value={renameContext}>\n {items.map((virtualizedItem) => {\n const item = flatItems[virtualizedItem.index];\n const selected = isNodeSelected(item.id);\n return (\n <VirtualTreeItem\n ref={virtualizer.measureElement}\n key={virtualizedItem.key}\n data-index={virtualizedItem.index}\n start={virtualizedItem.start}\n item={item}\n selected={selected}\n expandNode={expandNode}\n reloadTree={reloadTree}\n handleNodeSelect={handleNodeSelect}\n getSelectedNodes={getSelectedNodes}\n getContextMenuActions={getContextMenuActions}\n getInlineActions={getInlineActions}\n getMenuActions={getMenuActions}\n getTreeItemProps={getTreeItemProps}\n />\n );\n })}\n </TreeNodeRenameContextProvider>\n </Tree.Root>\n </div>\n </>\n );\n },\n);\n\nfunction useExpandAndScrollToNode({\n rootNodes,\n flatItems,\n expandNode,\n virtualizer,\n}: Pick<StrataKitTreeRendererProps, \"rootNodes\" | \"expandNode\"> & {\n flatItems: ReturnType<typeof useFlatTreeItems>;\n virtualizer: Pick<ReturnType<typeof useVirtualizer>, \"scrollToIndex\">;\n}) {\n const expandToNode = (nodePredicate: (node: TreeNode) => boolean) => {\n const pathToNode = findPathToNode(rootNodes, nodePredicate);\n if (!pathToNode) {\n return undefined;\n }\n const targetNode = pathToNode.pop()!;\n const collapsedNodes = pathToNode.filter((pathNode) => !pathNode.isExpanded);\n collapsedNodes.forEach((node) => expandNode(node.id, true));\n return { targetNode, didExpand: collapsedNodes.length > 0 };\n };\n\n const scrollToNode = useRef<{ id: string; onScrollComplete?: () => void } | undefined>(undefined);\n useEffect(() => {\n if (scrollToNode.current === undefined) {\n return;\n }\n const targetNodeId = scrollToNode.current.id;\n const index = flatItems.findIndex((flatItem) => flatItem.id === targetNodeId);\n if (index === -1) {\n return;\n }\n virtualizer.scrollToIndex(index, { align: \"auto\" });\n scrollToNode.current.onScrollComplete?.();\n scrollToNode.current = undefined;\n }, [flatItems, virtualizer]);\n\n return ({\n nodePredicate,\n onComplete,\n }: {\n nodePredicate: (node: TreeNode) => boolean;\n onComplete?: (targetNode: TreeNode) => void;\n }) => {\n const expandResult = expandToNode(nodePredicate);\n if (!expandResult) {\n return \"node-not-found\";\n }\n\n const { targetNode, didExpand } = expandResult;\n if (didExpand) {\n scrollToNode.current = {\n id: targetNode.id,\n onScrollComplete: onComplete ? () => onComplete(targetNode) : undefined,\n };\n } else {\n const index = flatItems.findIndex((flatItem) => flatItem.id === targetNode.id);\n virtualizer.scrollToIndex(index, { align: \"auto\" });\n onComplete?.(targetNode);\n }\n return \"success\";\n };\n}\n\nfunction findPathToNode(rootNodes: TreeNode[], nodePredicate: (node: TreeNode) => boolean): TreeNode[] | undefined {\n for (const parent of rootNodes) {\n if (nodePredicate(parent)) {\n return [parent];\n }\n if (parent.children !== true) {\n const childPath = findPathToNode(parent.children, nodePredicate);\n if (childPath) {\n return [parent, ...childPath];\n }\n }\n }\n return undefined;\n}\n\ntype VirtualTreeItemProps = Omit<HierarchyNodeItemProps, \"item\"> & {\n start: number;\n \"data-index\": number;\n item: FlatTreeItem;\n};\n\nconst VirtualTreeItem = memo(\n forwardRef<HTMLElement, VirtualTreeItemProps>(function VirtualTreeItem({ start, item, ...props }, forwardedRef) {\n const style: CSSProperties = useMemo(\n () => ({\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n transform: `translateY(${start}px)`,\n willChange: \"transform\",\n }),\n [start],\n );\n\n if (isPlaceholderItem(item)) {\n return (\n <PlaceholderNode\n ref={forwardedRef}\n data-index={props[\"data-index\"]}\n style={style}\n aria-level={item.level}\n aria-posinset={1}\n aria-setsize={1}\n />\n );\n }\n\n return <HierarchyNodeItem {...props} ref={forwardedRef} style={style} item={item} />;\n }),\n);\n\ntype HierarchyNodeItemProps = {\n item: FlatTreeNodeItem;\n style?: CSSProperties;\n getSelectedNodes: () => TreeNode[];\n} & Pick<TreeNodeRendererProps, \"expandNode\" | \"reloadTree\" | \"selected\"> &\n Pick<TreeRendererOwnProps, \"getContextMenuActions\" | \"getInlineActions\" | \"getMenuActions\" | \"getTreeItemProps\"> &\n Pick<ReturnType<typeof useSelectionHandler>, \"handleNodeSelect\">;\n\nconst HierarchyNodeItem = memo(\n forwardRef<HTMLElement, HierarchyNodeItemProps>(function HierarchyNodeItem(\n {\n item,\n selected,\n getTreeItemProps,\n handleNodeSelect,\n getSelectedNodes,\n getMenuActions,\n getInlineActions,\n getContextMenuActions,\n ...rest\n },\n forwardedRef,\n ) {\n const nodeRef = useRef<HTMLElement>(null);\n const node = item.node;\n const treeItemProps = getTreeItemProps?.(node);\n\n const isDisabled = treeItemProps?.[\"aria-disabled\"] === true;\n const nodeActions = useMemo(\n () => ({\n menuActions: getMenuActions\n ? getMenuActions({ targetNode: node, selectedNodes: getSelectedNodes() })\n : undefined,\n inlineActions: getInlineActions\n ? getInlineActions({ targetNode: node, selectedNodes: getSelectedNodes() })\n : undefined,\n contextMenuActions: getContextMenuActions\n ? getContextMenuActions({ targetNode: node, selectedNodes: getSelectedNodes() })\n : undefined,\n }),\n [node, getMenuActions, getInlineActions, getContextMenuActions, getSelectedNodes],\n );\n\n const onClick = useEvent<Required<TreeNodeRendererProps>[\"onClick\"]>((e) => {\n if (treeItemProps?.onClick) {\n treeItemProps.onClick(e);\n }\n // ignore if this is double click\n if (isDisabled || e.detail > 1) {\n return;\n }\n handleNodeSelect({ nodeId: node.id, isSelected: selected ?? false, shiftDown: e.shiftKey, ctrlDown: e.ctrlKey });\n });\n\n const onMouseDown = useEvent<Required<TreeNodeRendererProps>[\"onMouseDown\"]>((e) => {\n if (treeItemProps?.onMouseDown) {\n treeItemProps.onMouseDown(e);\n }\n // prevent text selection on shift+click\n if (e.shiftKey) {\n e.preventDefault();\n }\n });\n\n const ref = useMergedRefs(forwardedRef, nodeRef);\n return (\n <StrataKitTreeNodeRenderer\n {...treeItemProps}\n {...rest}\n {...nodeActions}\n ref={ref}\n aria-level={item.level}\n aria-posinset={item.posInLevel}\n aria-setsize={item.levelSize}\n node={item.node}\n selected={selected}\n onClick={onClick}\n onMouseDown={onMouseDown}\n />\n );\n }),\n);\n"],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { ErrorInfo, GenericErrorInfo, ResultSetTooLargeErrorInfo, TreeNode } from "./presentation-hierarchies-react/TreeNode.js";
2
+ import { HierarchyLevelDetails, TreeRendererProps } from "./presentation-hierarchies-react/Renderers.js";
3
+ import { useTree, useUnifiedSelectionTree } from "./presentation-hierarchies-react/UseTree.js";
4
+ import { useNodeHighlighting } from "./presentation-hierarchies-react/UseNodeHighlighting.js";
5
+ import { useIModelTree, useIModelUnifiedSelectionTree } from "./presentation-hierarchies-react/UseIModelTree.js";
6
+ import { LOCALIZATION_NAMESPACES } from "./presentation-hierarchies-react/internal/LocalizedStrings.js";
7
+ import { FlatTreeItem, useErrorNodes, useFlatTreeItems } from "./presentation-hierarchies-react/FlatTreeNode.js";
8
+ import { LocalizationContextProvider } from "./presentation-hierarchies-react/LocalizationContext.js";
9
+ import { GenericInstanceFilter, HierarchyNode, HierarchyProvider, SelectionStorage, getLogger, setLogger } from "./presentation-hierarchies-react.js";
10
+ import { TreeActionBase, TreeActionBaseAttributes } from "./presentation-hierarchies-react/stratakit/TreeAction.js";
11
+ import { TreeNodeFilterAction } from "./presentation-hierarchies-react/stratakit/TreeNodeFilterAction.js";
12
+ import { TreeNodeRenameAction } from "./presentation-hierarchies-react/stratakit/TreeNodeRenameAction.js";
13
+ import { ErrorItemRenderer } from "./presentation-hierarchies-react/stratakit/ErrorItemRenderer.js";
14
+ import { TreeErrorRenderer } from "./presentation-hierarchies-react/stratakit/TreeErrorRenderer.js";
15
+ import { StrataKitTreeRenderer, StrataKitTreeRendererAttributes } from "./presentation-hierarchies-react/stratakit/TreeRenderer.js";
16
+ import { StrataKitRootErrorRenderer } from "./presentation-hierarchies-react/stratakit/RootErrorRenderer.js";
17
+ export { ErrorInfo, ErrorItemRenderer, FlatTreeItem, GenericErrorInfo, GenericInstanceFilter, HierarchyLevelDetails, HierarchyNode, HierarchyProvider, LOCALIZATION_NAMESPACES, LocalizationContextProvider, ResultSetTooLargeErrorInfo, SelectionStorage, StrataKitRootErrorRenderer, StrataKitTreeRenderer, StrataKitTreeRendererAttributes, TreeActionBase, TreeActionBaseAttributes, TreeErrorRenderer, TreeNode, TreeNodeFilterAction, TreeNodeRenameAction, TreeRendererProps, getLogger, setLogger, useErrorNodes, useFlatTreeItems, useIModelTree, useIModelUnifiedSelectionTree, useNodeHighlighting, useTree, useUnifiedSelectionTree };
@@ -0,0 +1,16 @@
1
+ import { useTree, useUnifiedSelectionTree } from "./presentation-hierarchies-react/UseTree.js";
2
+ import { useNodeHighlighting } from "./presentation-hierarchies-react/UseNodeHighlighting.js";
3
+ import { LOCALIZATION_NAMESPACES } from "./presentation-hierarchies-react/internal/LocalizedStrings.js";
4
+ import { LocalizationContextProvider } from "./presentation-hierarchies-react/LocalizationContext.js";
5
+ import { useIModelTree, useIModelUnifiedSelectionTree } from "./presentation-hierarchies-react/UseIModelTree.js";
6
+ import { useErrorNodes, useFlatTreeItems } from "./presentation-hierarchies-react/FlatTreeNode.js";
7
+ import { GenericInstanceFilter, HierarchyNode, getLogger, setLogger } from "./presentation-hierarchies-react.js";
8
+ import { TreeActionBase } from "./presentation-hierarchies-react/stratakit/TreeAction.js";
9
+ import { TreeNodeFilterAction } from "./presentation-hierarchies-react/stratakit/TreeNodeFilterAction.js";
10
+ import { TreeNodeRenameAction } from "./presentation-hierarchies-react/stratakit/TreeNodeRenameAction.js";
11
+ import { ErrorItemRenderer } from "./presentation-hierarchies-react/stratakit/ErrorItemRenderer.js";
12
+ import { TreeErrorRenderer } from "./presentation-hierarchies-react/stratakit/TreeErrorRenderer.js";
13
+ import { StrataKitTreeRenderer } from "./presentation-hierarchies-react/stratakit/TreeRenderer.js";
14
+ import { StrataKitRootErrorRenderer } from "./presentation-hierarchies-react/stratakit/RootErrorRenderer.js";
15
+ import "./presentation-hierarchies-react-stratakit.js";
16
+ export { ErrorItemRenderer, GenericInstanceFilter, HierarchyNode, LOCALIZATION_NAMESPACES, LocalizationContextProvider, StrataKitRootErrorRenderer, StrataKitTreeRenderer, TreeActionBase, TreeErrorRenderer, TreeNodeFilterAction, TreeNodeRenameAction, getLogger, setLogger, useErrorNodes, useFlatTreeItems, useIModelTree, useIModelUnifiedSelectionTree, useNodeHighlighting, useTree, useUnifiedSelectionTree };
@@ -0,0 +1,8 @@
1
+ import { TreeActionBase, TreeActionBaseAttributes } from "./presentation-hierarchies-react/stratakit/TreeAction.js";
2
+ import { TreeNodeFilterAction } from "./presentation-hierarchies-react/stratakit/TreeNodeFilterAction.js";
3
+ import { TreeNodeRenameAction } from "./presentation-hierarchies-react/stratakit/TreeNodeRenameAction.js";
4
+ import { ErrorItemRenderer } from "./presentation-hierarchies-react/stratakit/ErrorItemRenderer.js";
5
+ import { TreeErrorRenderer } from "./presentation-hierarchies-react/stratakit/TreeErrorRenderer.js";
6
+ import { StrataKitTreeRenderer, StrataKitTreeRendererAttributes } from "./presentation-hierarchies-react/stratakit/TreeRenderer.js";
7
+ import { StrataKitRootErrorRenderer } from "./presentation-hierarchies-react/stratakit/RootErrorRenderer.js";
8
+ export { ErrorItemRenderer, StrataKitRootErrorRenderer, StrataKitTreeRenderer, type StrataKitTreeRendererAttributes, TreeActionBase, type TreeActionBaseAttributes, TreeErrorRenderer, TreeNodeFilterAction, TreeNodeRenameAction };
@@ -0,0 +1,8 @@
1
+ import { TreeActionBase } from "./presentation-hierarchies-react/stratakit/TreeAction.js";
2
+ import { TreeNodeFilterAction } from "./presentation-hierarchies-react/stratakit/TreeNodeFilterAction.js";
3
+ import { TreeNodeRenameAction } from "./presentation-hierarchies-react/stratakit/TreeNodeRenameAction.js";
4
+ import { ErrorItemRenderer } from "./presentation-hierarchies-react/stratakit/ErrorItemRenderer.js";
5
+ import { TreeErrorRenderer } from "./presentation-hierarchies-react/stratakit/TreeErrorRenderer.js";
6
+ import { StrataKitTreeRenderer } from "./presentation-hierarchies-react/stratakit/TreeRenderer.js";
7
+ import { StrataKitRootErrorRenderer } from "./presentation-hierarchies-react/stratakit/RootErrorRenderer.js";
8
+ export { ErrorItemRenderer, StrataKitRootErrorRenderer, StrataKitTreeRenderer, TreeActionBase, TreeErrorRenderer, TreeNodeFilterAction, TreeNodeRenameAction };
@@ -0,0 +1,11 @@
1
+ import { ErrorInfo, GenericErrorInfo, ResultSetTooLargeErrorInfo, TreeNode } from "./presentation-hierarchies-react/TreeNode.js";
2
+ import { HierarchyLevelDetails, TreeRendererProps } from "./presentation-hierarchies-react/Renderers.js";
3
+ import { useTree, useUnifiedSelectionTree } from "./presentation-hierarchies-react/UseTree.js";
4
+ import { useNodeHighlighting } from "./presentation-hierarchies-react/UseNodeHighlighting.js";
5
+ import { useIModelTree, useIModelUnifiedSelectionTree } from "./presentation-hierarchies-react/UseIModelTree.js";
6
+ import { LOCALIZATION_NAMESPACES } from "./presentation-hierarchies-react/internal/LocalizedStrings.js";
7
+ import { FlatTreeItem, useErrorNodes, useFlatTreeItems } from "./presentation-hierarchies-react/FlatTreeNode.js";
8
+ import { LocalizationContextProvider } from "./presentation-hierarchies-react/LocalizationContext.js";
9
+ import { GenericInstanceFilter, HierarchyNode, HierarchyProvider, getLogger, setLogger } from "@itwin/presentation-hierarchies";
10
+ import { SelectionStorage } from "@itwin/unified-selection";
11
+ export { type ErrorInfo, type FlatTreeItem, type GenericErrorInfo, GenericInstanceFilter, type HierarchyLevelDetails, HierarchyNode, type HierarchyProvider, LOCALIZATION_NAMESPACES, LocalizationContextProvider, type ResultSetTooLargeErrorInfo, type SelectionStorage, type TreeNode, type TreeRendererProps, getLogger, setLogger, useErrorNodes, useFlatTreeItems, useIModelTree, useIModelUnifiedSelectionTree, useNodeHighlighting, useTree, useUnifiedSelectionTree };
@@ -0,0 +1,8 @@
1
+ import { useTree, useUnifiedSelectionTree } from "./presentation-hierarchies-react/UseTree.js";
2
+ import { useNodeHighlighting } from "./presentation-hierarchies-react/UseNodeHighlighting.js";
3
+ import { LOCALIZATION_NAMESPACES } from "./presentation-hierarchies-react/internal/LocalizedStrings.js";
4
+ import { LocalizationContextProvider } from "./presentation-hierarchies-react/LocalizationContext.js";
5
+ import { useIModelTree, useIModelUnifiedSelectionTree } from "./presentation-hierarchies-react/UseIModelTree.js";
6
+ import { useErrorNodes, useFlatTreeItems } from "./presentation-hierarchies-react/FlatTreeNode.js";
7
+ import { GenericInstanceFilter, HierarchyNode, getLogger, setLogger } from "@itwin/presentation-hierarchies";
8
+ export { GenericInstanceFilter, HierarchyNode, LOCALIZATION_NAMESPACES, LocalizationContextProvider, getLogger, setLogger, useErrorNodes, useFlatTreeItems, useIModelTree, useIModelUnifiedSelectionTree, useNodeHighlighting, useTree, useUnifiedSelectionTree };
@@ -0,0 +1,26 @@
1
+ {
2
+ "loading": "Loading...",
3
+ "filterHierarchyLevel": "Apply filter",
4
+ "filterHierarchyLevelActiveDescription": "Filter is applied",
5
+ "clearHierarchyLevelFilter": "Clear active filter",
6
+ "noFilteredChildren": "No matches for current filter for {{node}}.",
7
+ "noFilteredChildrenChangeFilter": "Change filter",
8
+ "failedToCreateHierarchy": "Failed to create hierarchy for {{node}}.",
9
+ "failedToCreateRootHierarchy": "Failed to load tree.",
10
+ "resultLimitExceeded": "The hierarchy for {{node}} contains {{limit}}+ items. Try using filters or increase the limit.",
11
+ "rootResultLimitExceeded": "The root item hierarchy contains {{limit}}+ items. Try increasing the limit.",
12
+ "issuesForTree": "Issues for {{tree_label}}.",
13
+ "issuesFound": "{{number_of_issues}} issue(s) found.",
14
+ "noIssuesFound": "No issues found.",
15
+ "increaseHierarchyLimit": "Increase limit to {{limit}}",
16
+ "increaseHierarchyLimitToUnlimited": "Remove limit",
17
+ "increaseHierarchyLimitWithFiltering": "Add Filter",
18
+ "retry": "Retry",
19
+ "rename": "Rename",
20
+ "more": "More",
21
+ "confirm": "Confirm",
22
+ "cancel": "Cancel",
23
+ "newLabel": "New label",
24
+ "other": "Other",
25
+ "unspecified": "Unspecified"
26
+ }