@itwin/tree-widget-react 0.2.0 → 0.4.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/README.md +30 -1
- package/lib/cjs/components/IconButton.scss +2 -2
- package/lib/cjs/components/TreeWidgetComponent.d.ts +1 -0
- package/lib/cjs/components/TreeWidgetComponent.scss +1 -1
- package/lib/cjs/components/TreeWidgetUiItemsProvider.d.ts +7 -16
- package/lib/cjs/components/TreeWidgetUiItemsProvider.js +45 -47
- package/lib/cjs/components/TreeWidgetUiItemsProvider.js.map +1 -1
- package/lib/cjs/components/header/TreeHeader.d.ts +1 -0
- package/lib/cjs/components/header/TreeHeader.scss +1 -1
- package/lib/cjs/components/rulesets/IModelContent.json +435 -0
- package/lib/cjs/components/search-bar/Popup.scss +1 -1
- package/lib/cjs/components/search-bar/SearchBar.scss +1 -1
- package/lib/cjs/components/search-bar/SearchBox.scss +1 -1
- package/lib/cjs/components/trees/CategoriesTree.d.ts +3 -7
- package/lib/cjs/components/trees/CategoriesTree.js +21 -23
- package/lib/cjs/components/trees/CategoriesTree.js.map +1 -1
- package/lib/cjs/components/trees/CategoriesTree.scss +1 -1
- package/lib/cjs/components/trees/IModelContentTree.d.ts +4 -0
- package/lib/cjs/components/trees/{ClassificationsTree.js → IModelContentTree.js} +19 -12
- package/lib/cjs/components/trees/IModelContentTree.js.map +1 -0
- package/lib/cjs/components/trees/ModelsTree.d.ts +3 -8
- package/lib/cjs/components/trees/ModelsTree.js +8 -16
- package/lib/cjs/components/trees/ModelsTree.js.map +1 -1
- package/lib/cjs/components/trees/ModelsTree.scss +1 -1
- package/lib/cjs/components/trees/SpatialTree.d.ts +3 -2
- package/lib/cjs/components/trees/SpatialTree.js +11 -28
- package/lib/cjs/components/trees/SpatialTree.js.map +1 -1
- package/lib/cjs/components/trees/index.d.ts +1 -2
- package/lib/cjs/components/trees/index.js +5 -6
- package/lib/cjs/components/trees/index.js.map +1 -1
- package/lib/cjs/components/utils/AutoSizer.d.ts +10 -0
- package/lib/cjs/components/utils/AutoSizer.js +36 -0
- package/lib/cjs/components/utils/AutoSizer.js.map +1 -0
- package/lib/cjs/tree-widget-react.d.ts +1 -1
- package/lib/cjs/tree-widget-react.js +4 -4
- package/lib/cjs/tree-widget-react.js.map +1 -1
- package/lib/cjs/types.d.ts +23 -0
- package/lib/cjs/types.js +3 -0
- package/lib/cjs/types.js.map +1 -0
- package/lib/esm/components/IconButton.scss +2 -2
- package/lib/esm/components/TreeWidgetComponent.d.ts +1 -0
- package/lib/esm/components/TreeWidgetComponent.scss +1 -1
- package/lib/esm/components/TreeWidgetUiItemsProvider.d.ts +7 -16
- package/lib/esm/components/TreeWidgetUiItemsProvider.js +45 -47
- package/lib/esm/components/TreeWidgetUiItemsProvider.js.map +1 -1
- package/lib/esm/components/header/TreeHeader.d.ts +1 -0
- package/lib/esm/components/header/TreeHeader.scss +1 -1
- package/lib/esm/components/rulesets/IModelContent.json +435 -0
- package/lib/esm/components/search-bar/Popup.scss +1 -1
- package/lib/esm/components/search-bar/SearchBar.scss +1 -1
- package/lib/esm/components/search-bar/SearchBox.scss +1 -1
- package/lib/esm/components/trees/CategoriesTree.d.ts +3 -7
- package/lib/esm/components/trees/CategoriesTree.js +23 -25
- package/lib/esm/components/trees/CategoriesTree.js.map +1 -1
- package/lib/esm/components/trees/CategoriesTree.scss +1 -1
- package/lib/esm/components/trees/IModelContentTree.d.ts +4 -0
- package/lib/esm/components/trees/IModelContentTree.js +24 -0
- package/lib/esm/components/trees/IModelContentTree.js.map +1 -0
- package/lib/esm/components/trees/ModelsTree.d.ts +3 -8
- package/lib/esm/components/trees/ModelsTree.js +9 -17
- package/lib/esm/components/trees/ModelsTree.js.map +1 -1
- package/lib/esm/components/trees/ModelsTree.scss +1 -1
- package/lib/esm/components/trees/SpatialTree.d.ts +3 -2
- package/lib/esm/components/trees/SpatialTree.js +10 -11
- package/lib/esm/components/trees/SpatialTree.js.map +1 -1
- package/lib/esm/components/trees/index.d.ts +1 -2
- package/lib/esm/components/trees/index.js +4 -5
- package/lib/esm/components/trees/index.js.map +1 -1
- package/lib/esm/components/utils/AutoSizer.d.ts +10 -0
- package/lib/esm/components/utils/AutoSizer.js +13 -0
- package/lib/esm/components/utils/AutoSizer.js.map +1 -0
- package/lib/esm/tree-widget-react.d.ts +1 -1
- package/lib/esm/tree-widget-react.js +4 -4
- package/lib/esm/tree-widget-react.js.map +1 -1
- package/lib/esm/types.d.ts +23 -0
- package/lib/esm/types.js +2 -0
- package/lib/esm/types.js.map +1 -0
- package/package.json +1 -2
- package/lib/cjs/components/TreeWidgetControl.d.ts +0 -26
- package/lib/cjs/components/TreeWidgetControl.js +0 -66
- package/lib/cjs/components/TreeWidgetControl.js.map +0 -1
- package/lib/cjs/components/rulesets/ClassificationSystems.json +0 -122
- package/lib/cjs/components/trees/ClassificationsTree.d.ts +0 -6
- package/lib/cjs/components/trees/ClassificationsTree.js.map +0 -1
- package/lib/cjs/components/trees/TreeWithRuleset.d.ts +0 -35
- package/lib/cjs/components/trees/TreeWithRuleset.js +0 -110
- package/lib/cjs/components/trees/TreeWithRuleset.js.map +0 -1
- package/lib/cjs/components/trees/TreeWithRulesetTree.scss +0 -17
- package/lib/esm/components/TreeWidgetControl.d.ts +0 -26
- package/lib/esm/components/TreeWidgetControl.js +0 -59
- package/lib/esm/components/TreeWidgetControl.js.map +0 -1
- package/lib/esm/components/rulesets/ClassificationSystems.json +0 -122
- package/lib/esm/components/trees/ClassificationsTree.d.ts +0 -6
- package/lib/esm/components/trees/ClassificationsTree.js +0 -17
- package/lib/esm/components/trees/ClassificationsTree.js.map +0 -1
- package/lib/esm/components/trees/TreeWithRuleset.d.ts +0 -35
- package/lib/esm/components/trees/TreeWithRuleset.js +0 -85
- package/lib/esm/components/trees/TreeWithRuleset.js.map +0 -1
- package/lib/esm/components/trees/TreeWithRulesetTree.scss +0 -17
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
import React, { useCallback, useState } from "react";
|
|
6
|
-
import { usePresentationTreeNodeLoader, useUnifiedSelectionTreeEventHandler, } from "@itwin/presentation-components";
|
|
7
|
-
import { ControlledTree, SelectionMode, useTreeModel, } from "@itwin/components-react";
|
|
8
|
-
import { Presentation } from "@itwin/presentation-frontend";
|
|
9
|
-
import "./TreeWithRulesetTree.scss";
|
|
10
|
-
import { useResizeObserver } from "@itwin/core-react";
|
|
11
|
-
export class TreeWithRuleset extends React.Component {
|
|
12
|
-
constructor() {
|
|
13
|
-
super(...arguments);
|
|
14
|
-
this._setRuleSet = async () => {
|
|
15
|
-
return Presentation.presentation
|
|
16
|
-
.rulesets()
|
|
17
|
-
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
18
|
-
.add(this.props.ruleSet)
|
|
19
|
-
.then((ruleset) => {
|
|
20
|
-
this._ruleset = ruleset;
|
|
21
|
-
const dataProvider = this.props.dataProvider;
|
|
22
|
-
this.setState({ dataProvider });
|
|
23
|
-
});
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
/** @internal */
|
|
27
|
-
async componentDidMount() {
|
|
28
|
-
await this._setRuleSet();
|
|
29
|
-
}
|
|
30
|
-
async componentDidUpdate(prevProps) {
|
|
31
|
-
if (this.props.ruleSet !== prevProps.ruleSet) {
|
|
32
|
-
this.removeRuleset();
|
|
33
|
-
await this._setRuleSet();
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
componentWillUnmount() {
|
|
37
|
-
this.removeRuleset();
|
|
38
|
-
}
|
|
39
|
-
removeRuleset() {
|
|
40
|
-
if (this._ruleset) {
|
|
41
|
-
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
42
|
-
Presentation.presentation.rulesets().remove(this._ruleset);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
export class SimpleTreeWithRuleset extends TreeWithRuleset {
|
|
47
|
-
constructor(props) {
|
|
48
|
-
super(props);
|
|
49
|
-
this.state = {
|
|
50
|
-
initialized: false,
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
render() {
|
|
54
|
-
const dataProvider = this.state
|
|
55
|
-
.dataProvider;
|
|
56
|
-
if (!dataProvider)
|
|
57
|
-
return React.createElement("div", null);
|
|
58
|
-
else {
|
|
59
|
-
return (React.createElement("div", { className: "spatial-tree" },
|
|
60
|
-
React.createElement(ControlledTreeWrapper, { rulesetId: this.props.ruleSet.id, iModel: this.props.imodel, dataProvider: dataProvider, pageSize: dataProvider.pagingSize })));
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
export const ControlledTreeWrapper = (props) => {
|
|
65
|
-
const { nodeLoader } = usePresentationTreeNodeLoader({
|
|
66
|
-
imodel: props.iModel,
|
|
67
|
-
ruleset: props.rulesetId,
|
|
68
|
-
pagingSize: props.pageSize || 20,
|
|
69
|
-
});
|
|
70
|
-
const modelSource = nodeLoader.modelSource;
|
|
71
|
-
const unifiedSelectionEventHandler = useUnifiedSelectionTreeEventHandler({
|
|
72
|
-
nodeLoader,
|
|
73
|
-
collapsedChildrenDisposalEnabled: true,
|
|
74
|
-
});
|
|
75
|
-
const [height, setHeight] = useState(0);
|
|
76
|
-
const [width, setWidth] = useState(0);
|
|
77
|
-
const handleResize = useCallback((w, h) => {
|
|
78
|
-
setHeight(h);
|
|
79
|
-
setWidth(w);
|
|
80
|
-
}, []);
|
|
81
|
-
const ref = useResizeObserver(handleResize);
|
|
82
|
-
const treeModel = useTreeModel(modelSource);
|
|
83
|
-
return (React.createElement("div", { ref: ref, style: { width: "100%", height: "100%" } }, width && height && (React.createElement(ControlledTree, { model: treeModel, nodeLoader: nodeLoader, eventsHandler: unifiedSelectionEventHandler, selectionMode: SelectionMode.Extended, width: width, height: height }))));
|
|
84
|
-
};
|
|
85
|
-
//# sourceMappingURL=TreeWithRuleset.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TreeWithRuleset.js","sourceRoot":"","sources":["../../../../src/components/trees/TreeWithRuleset.tsx"],"names":[],"mappings":"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","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*--------------------------------------------------------------------------------------------*/\nimport React, { useCallback, useState } from \"react\";\nimport type { RegisteredRuleset, Ruleset } from \"@itwin/presentation-common\";\nimport type {\n IPresentationTreeDataProvider,\n PresentationTreeDataProvider,\n} from \"@itwin/presentation-components\";\nimport {\n usePresentationTreeNodeLoader,\n useUnifiedSelectionTreeEventHandler,\n} from \"@itwin/presentation-components\";\nimport {\n ControlledTree,\n SelectionMode,\n useTreeModel,\n} from \"@itwin/components-react\";\nimport { Presentation } from \"@itwin/presentation-frontend\";\nimport \"./TreeWithRulesetTree.scss\";\nimport type { IModelConnection } from \"@itwin/core-frontend\";\nimport { useResizeObserver } from \"@itwin/core-react\";\n\nexport interface ControlledTreeProps {\n iModel: IModelConnection;\n dataProvider: IPresentationTreeDataProvider;\n rulesetId: string;\n pageSize?: number;\n}\n\nexport interface TreeProps {\n imodel: IModelConnection;\n ruleSet: Ruleset;\n dataProvider: IPresentationTreeDataProvider;\n}\n\nexport interface TreeState {\n initialized: false;\n dataProvider?: IPresentationTreeDataProvider;\n}\n\nexport abstract class TreeWithRuleset<\n T extends TreeProps,\n S extends TreeState\n> extends React.Component<T, S> {\n private _ruleset?: RegisteredRuleset;\n /** @internal */\n public async componentDidMount() {\n await this._setRuleSet();\n }\n\n public async componentDidUpdate(prevProps: any) {\n if (this.props.ruleSet !== prevProps.ruleSet) {\n this.removeRuleset();\n await this._setRuleSet();\n }\n }\n\n public componentWillUnmount() {\n this.removeRuleset();\n }\n\n private removeRuleset() {\n if (this._ruleset) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n Presentation.presentation.rulesets().remove(this._ruleset);\n }\n }\n\n private _setRuleSet = async () => {\n return Presentation.presentation\n .rulesets()\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n .add(this.props.ruleSet)\n .then((ruleset: RegisteredRuleset) => {\n this._ruleset = ruleset;\n const dataProvider = this.props.dataProvider;\n this.setState({ dataProvider });\n });\n };\n}\n\nexport class SimpleTreeWithRuleset extends TreeWithRuleset<\nTreeProps,\nTreeState\n> {\n constructor(props: TreeProps) {\n super(props);\n this.state = {\n initialized: false,\n };\n }\n\n public render() {\n const dataProvider = this.state\n .dataProvider as PresentationTreeDataProvider;\n if (!dataProvider) return <div />;\n else {\n return (\n <div className=\"spatial-tree\">\n <ControlledTreeWrapper\n rulesetId={this.props.ruleSet.id}\n iModel={this.props.imodel}\n dataProvider={dataProvider}\n pageSize={dataProvider.pagingSize}\n />\n </div>\n );\n }\n }\n}\n\nexport const ControlledTreeWrapper: React.FC<ControlledTreeProps> = (\n props: ControlledTreeProps\n) => {\n const { nodeLoader } = usePresentationTreeNodeLoader({\n imodel: props.iModel,\n ruleset: props.rulesetId,\n pagingSize: props.pageSize || 20,\n });\n\n const modelSource = nodeLoader.modelSource;\n const unifiedSelectionEventHandler = useUnifiedSelectionTreeEventHandler({\n nodeLoader,\n collapsedChildrenDisposalEnabled: true,\n });\n\n const [height, setHeight] = useState(0);\n const [width, setWidth] = useState(0);\n const handleResize = useCallback((w: number, h: number) => {\n setHeight(h);\n setWidth(w);\n }, []);\n const ref = useResizeObserver<HTMLDivElement>(handleResize);\n\n const treeModel = useTreeModel(modelSource);\n\n return (\n <div ref={ref} style={{ width: \"100%\", height: \"100%\" }}>\n {width && height && (\n <ControlledTree\n model={treeModel}\n nodeLoader={nodeLoader}\n eventsHandler={unifiedSelectionEventHandler}\n selectionMode={SelectionMode.Extended}\n width={width}\n height={height}\n />\n )}\n </div>\n );\n};\n\n"]}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
@import "~@itwin/core-react/lib/esm/core-react/index";
|
|
6
|
-
.spatial-tree {
|
|
7
|
-
display: flex;
|
|
8
|
-
flex-direction: column;
|
|
9
|
-
height: 100%;
|
|
10
|
-
}
|
|
11
|
-
.components-tree-node-content {
|
|
12
|
-
height: $uicore-l;
|
|
13
|
-
line-height: $uicore-font-size-small;
|
|
14
|
-
display: flex;
|
|
15
|
-
flex-direction: column;
|
|
16
|
-
justify-content: center;
|
|
17
|
-
}
|