Skip to content

Commit 076ae4b

Browse files
initial
1 parent 6722876 commit 076ae4b

File tree

20 files changed

+346
-184
lines changed

20 files changed

+346
-184
lines changed

apps/test-viewer/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,10 @@
4545
"@itwin/unified-selection": "^1.4.1",
4646
"@itwin/web-viewer-react": "5.0.0-dev.9",
4747
"@itwin/webgl-compatibility": "^5.0.0",
48-
"@stratakit/bricks": "^0.2.0",
49-
"@stratakit/foundations": "^0.1.3",
48+
"@stratakit/bricks": "^0.3.3",
49+
"@stratakit/foundations": "^0.2.2",
5050
"@stratakit/icons": "^0.1.0",
51-
"@stratakit/structures": "^0.1.1",
51+
"@stratakit/structures": "^0.3.1",
5252
"react": "^18.3.1",
5353
"react-dom": "^18.3.1",
5454
"react-error-boundary": "^4.1.2",

apps/test-viewer/pnpm-lock.yaml

Lines changed: 88 additions & 42 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/itwin/tree-widget/package.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -60,17 +60,17 @@
6060
"@itwin/core-frontend": "^5.0.0",
6161
"@itwin/ecschema-metadata": "^5.0.0",
6262
"@stratakit/icons": "^0.1.0",
63-
"@stratakit/bricks": "^0.2.0",
64-
"@stratakit/foundations": "^0.1.3",
65-
"@stratakit/structures": "^0.1.1",
63+
"@stratakit/bricks": "^0.3.3",
64+
"@stratakit/foundations": "^0.2.2",
65+
"@stratakit/structures": "^0.3.1",
6666
"@itwin/presentation-components": "^5.12.0",
6767
"react": "^18.0.0",
6868
"react-dom": "^18.0.0"
6969
},
7070
"dependencies": {
7171
"@itwin/presentation-core-interop": "^1.4.0-alpha.1",
72-
"@itwin/presentation-hierarchies": "^2.0.0-alpha.0",
73-
"@itwin/presentation-hierarchies-react": "2.0.0-alpha.22",
72+
"@itwin/presentation-hierarchies": "^2.0.0-alpha.2",
73+
"@itwin/presentation-hierarchies-react": "2.0.0-alpha.27",
7474
"@itwin/presentation-shared": "^2.0.0-alpha.0",
7575
"@itwin/unified-selection": "^1.4.2-alpha.0",
7676
"classnames": "^2.5.1",
@@ -106,9 +106,9 @@
106106
"@itwin/presentation-testing": "^5.4.5",
107107
"@itwin/webgl-compatibility": "^5.0.0",
108108
"@stratakit/icons": "^0.1.0",
109-
"@stratakit/bricks": "^0.2.0",
110-
"@stratakit/foundations": "^0.1.3",
111-
"@stratakit/structures": "^0.1.1",
109+
"@stratakit/bricks": "^0.3.3",
110+
"@stratakit/foundations": "^0.2.2",
111+
"@stratakit/structures": "^0.3.1",
112112
"@playwright/test": "^1.48.2",
113113
"@testing-library/dom": "^10.4.0",
114114
"@testing-library/react": "^16.2.0",

packages/itwin/tree-widget/pnpm-lock.yaml

Lines changed: 102 additions & 70 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/itwin/tree-widget/src/test/trees/Common.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ import { createECSchemaProvider, createECSqlQueryExecutor } from "@itwin/present
1212
import { createLimitingECSqlQueryExecutor } from "@itwin/presentation-hierarchies";
1313
import { createCachingECClassHierarchyInspector } from "@itwin/presentation-shared";
1414

15+
import type { LimitingECSqlQueryExecutor } from "@itwin/presentation-hierarchies";
16+
import type { ECClassHierarchyInspector, ECSchemaProvider } from "@itwin/presentation-shared";
1517
import type { QueryBinder, QueryOptions } from "@itwin/core-common";
1618
import type { IModelConnection, Viewport, ViewState } from "@itwin/core-frontend";
1719

@@ -100,7 +102,13 @@ export function createFakeSinonViewport(
100102
return result as Viewport;
101103
}
102104

103-
export function createIModelAccess(imodel: IModelConnection) {
105+
type IModelAccess = ECSchemaProvider &
106+
LimitingECSqlQueryExecutor &
107+
ECClassHierarchyInspector & {
108+
imodelKey: string;
109+
};
110+
111+
export function createIModelAccess(imodel: IModelConnection): IModelAccess {
104112
const schemas = new SchemaContext();
105113
schemas.addLocater(new ECSchemaRpcLocater(imodel.getRpcProps()));
106114
const schemaProvider = createECSchemaProvider(schemas);

packages/itwin/tree-widget/src/tree-widget-react/components/trees/categories-tree/CategoriesTree.tsx

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import type { VisibilityTreeProps } from "../common/components/VisibilityTree.js
1313

1414
/** @beta */
1515
export type CategoriesTreeProps = Pick<VisibilityTreeProps, "imodel" | "selectionStorage" | "selectionMode" | "emptyTreeContent"> &
16-
Pick<VisibilityTreeRendererProps, "getActions" | "getDecorations"> &
16+
Pick<VisibilityTreeRendererProps, "getInlineActions" | "getMenuActions" | "getDecorations"> &
1717
UseCategoriesTreeProps & {
1818
hierarchyLevelConfig?: {
1919
sizeLimit?: number;
@@ -31,7 +31,8 @@ export function CategoriesTree({
3131
onCategoriesFiltered,
3232
emptyTreeContent,
3333
getDecorations,
34-
getActions,
34+
getInlineActions,
35+
getMenuActions,
3536
hierarchyConfig,
3637
}: CategoriesTreeProps) {
3738
const { categoriesTreeProps, rendererProps } = useCategoriesTree({
@@ -50,7 +51,13 @@ export function CategoriesTree({
5051
hierarchyLevelSizeLimit={hierarchyLevelConfig?.sizeLimit}
5152
selectionMode={selectionMode ?? "none"}
5253
treeRenderer={(treeProps) => (
53-
<VisibilityTreeRenderer {...treeProps} {...rendererProps} getActions={getActions} getDecorations={getDecorations ?? rendererProps.getDecorations} />
54+
<VisibilityTreeRenderer
55+
{...treeProps}
56+
{...rendererProps}
57+
getInlineActions={getInlineActions}
58+
getMenuActions={getMenuActions}
59+
getDecorations={getDecorations ?? rendererProps.getDecorations}
60+
/>
5461
)}
5562
/>
5663
);

packages/itwin/tree-widget/src/tree-widget-react/components/trees/categories-tree/CategoriesTreeComponent.tsx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,15 @@ import type { CategoriesTreeHeaderButtonProps, CategoriesTreeHeaderButtonType }
2121
interface CategoriesTreeComponentProps
2222
extends Pick<
2323
CategoriesTreeProps,
24-
"selectionStorage" | "hierarchyLevelConfig" | "selectionMode" | "filter" | "emptyTreeContent" | "getActions" | "getDecorations" | "hierarchyConfig"
24+
| "selectionStorage"
25+
| "hierarchyLevelConfig"
26+
| "selectionMode"
27+
| "filter"
28+
| "emptyTreeContent"
29+
| "getInlineActions"
30+
| "getMenuActions"
31+
| "getDecorations"
32+
| "hierarchyConfig"
2533
> {
2634
/**
2735
* Renderers of header buttons. Defaults to:

packages/itwin/tree-widget/src/tree-widget-react/components/trees/classifications-tree/ClassificationsTree.tsx

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import type { UseClassificationsTreeProps } from "./UseClassificationsTree.js";
1313

1414
/** @alpha */
1515
export type ClassificationsTreeProps = Pick<VisibilityTreeProps, "imodel" | "selectionStorage" | "selectionMode" | "emptyTreeContent"> &
16-
Pick<VisibilityTreeRendererProps, "getActions" | "getDecorations"> &
16+
Pick<VisibilityTreeRendererProps, "getInlineActions" | "getMenuActions" | "getDecorations"> &
1717
UseClassificationsTreeProps & {
1818
hierarchyLevelConfig?: {
1919
sizeLimit?: number;
@@ -30,7 +30,8 @@ export function ClassificationsTree({
3030
selectionMode,
3131
emptyTreeContent,
3232
getDecorations,
33-
getActions,
33+
getInlineActions,
34+
getMenuActions,
3435
filter,
3536
}: ClassificationsTreeProps) {
3637
const { classificationsTreeProps, rendererProps } = useClassificationsTree({
@@ -48,7 +49,13 @@ export function ClassificationsTree({
4849
hierarchyLevelSizeLimit={hierarchyLevelConfig?.sizeLimit}
4950
selectionMode={selectionMode ?? "none"}
5051
treeRenderer={(treeProps) => (
51-
<VisibilityTreeRenderer {...treeProps} {...rendererProps} getActions={getActions} getDecorations={getDecorations ?? rendererProps.getDecorations} />
52+
<VisibilityTreeRenderer
53+
{...treeProps}
54+
{...rendererProps}
55+
getInlineActions={getInlineActions}
56+
getMenuActions={getMenuActions}
57+
getDecorations={getDecorations ?? rendererProps.getDecorations}
58+
/>
5259
)}
5360
/>
5461
);

packages/itwin/tree-widget/src/tree-widget-react/components/trees/classifications-tree/ClassificationsTreeComponent.tsx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,15 @@ import type { IModelConnection, ScreenViewport } from "@itwin/core-frontend";
1818
interface ClassificationsTreeComponentProps
1919
extends Pick<
2020
ClassificationsTreeProps,
21-
"selectionStorage" | "hierarchyLevelConfig" | "selectionMode" | "filter" | "emptyTreeContent" | "getActions" | "getDecorations" | "hierarchyConfig"
21+
| "selectionStorage"
22+
| "hierarchyLevelConfig"
23+
| "selectionMode"
24+
| "filter"
25+
| "emptyTreeContent"
26+
| "getInlineActions"
27+
| "getMenuActions"
28+
| "getDecorations"
29+
| "hierarchyConfig"
2230
> {
2331
onPerformanceMeasured?: (featureId: string, duration: number) => void;
2432
onFeatureUsed?: (feature: string) => void;

packages/itwin/tree-widget/src/tree-widget-react/components/trees/common/components/BaseTreeRenderer.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { useHierarchiesLocalization } from "../internal/UseHierarchiesLocalizati
1010
export type BaseTreeRendererProps = React.ComponentPropsWithoutRef<typeof PresentationTree>;
1111

1212
/** @internal */
13-
export function BaseTreeRenderer({ rootNodes, expandNode, getActions, ...props }: BaseTreeRendererProps) {
13+
export function BaseTreeRenderer(props: BaseTreeRendererProps) {
1414
const localizedStrings = useHierarchiesLocalization();
15-
return <PresentationTree {...props} localizedStrings={localizedStrings} expandNode={expandNode} rootNodes={rootNodes} getActions={getActions} />;
15+
return <PresentationTree {...props} localizedStrings={localizedStrings} />;
1616
}

0 commit comments

Comments
 (0)