@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.
Files changed (99) hide show
  1. package/README.md +30 -1
  2. package/lib/cjs/components/IconButton.scss +2 -2
  3. package/lib/cjs/components/TreeWidgetComponent.d.ts +1 -0
  4. package/lib/cjs/components/TreeWidgetComponent.scss +1 -1
  5. package/lib/cjs/components/TreeWidgetUiItemsProvider.d.ts +7 -16
  6. package/lib/cjs/components/TreeWidgetUiItemsProvider.js +45 -47
  7. package/lib/cjs/components/TreeWidgetUiItemsProvider.js.map +1 -1
  8. package/lib/cjs/components/header/TreeHeader.d.ts +1 -0
  9. package/lib/cjs/components/header/TreeHeader.scss +1 -1
  10. package/lib/cjs/components/rulesets/IModelContent.json +435 -0
  11. package/lib/cjs/components/search-bar/Popup.scss +1 -1
  12. package/lib/cjs/components/search-bar/SearchBar.scss +1 -1
  13. package/lib/cjs/components/search-bar/SearchBox.scss +1 -1
  14. package/lib/cjs/components/trees/CategoriesTree.d.ts +3 -7
  15. package/lib/cjs/components/trees/CategoriesTree.js +21 -23
  16. package/lib/cjs/components/trees/CategoriesTree.js.map +1 -1
  17. package/lib/cjs/components/trees/CategoriesTree.scss +1 -1
  18. package/lib/cjs/components/trees/IModelContentTree.d.ts +4 -0
  19. package/lib/cjs/components/trees/{ClassificationsTree.js → IModelContentTree.js} +19 -12
  20. package/lib/cjs/components/trees/IModelContentTree.js.map +1 -0
  21. package/lib/cjs/components/trees/ModelsTree.d.ts +3 -8
  22. package/lib/cjs/components/trees/ModelsTree.js +8 -16
  23. package/lib/cjs/components/trees/ModelsTree.js.map +1 -1
  24. package/lib/cjs/components/trees/ModelsTree.scss +1 -1
  25. package/lib/cjs/components/trees/SpatialTree.d.ts +3 -2
  26. package/lib/cjs/components/trees/SpatialTree.js +11 -28
  27. package/lib/cjs/components/trees/SpatialTree.js.map +1 -1
  28. package/lib/cjs/components/trees/index.d.ts +1 -2
  29. package/lib/cjs/components/trees/index.js +5 -6
  30. package/lib/cjs/components/trees/index.js.map +1 -1
  31. package/lib/cjs/components/utils/AutoSizer.d.ts +10 -0
  32. package/lib/cjs/components/utils/AutoSizer.js +36 -0
  33. package/lib/cjs/components/utils/AutoSizer.js.map +1 -0
  34. package/lib/cjs/tree-widget-react.d.ts +1 -1
  35. package/lib/cjs/tree-widget-react.js +4 -4
  36. package/lib/cjs/tree-widget-react.js.map +1 -1
  37. package/lib/cjs/types.d.ts +23 -0
  38. package/lib/cjs/types.js +3 -0
  39. package/lib/cjs/types.js.map +1 -0
  40. package/lib/esm/components/IconButton.scss +2 -2
  41. package/lib/esm/components/TreeWidgetComponent.d.ts +1 -0
  42. package/lib/esm/components/TreeWidgetComponent.scss +1 -1
  43. package/lib/esm/components/TreeWidgetUiItemsProvider.d.ts +7 -16
  44. package/lib/esm/components/TreeWidgetUiItemsProvider.js +45 -47
  45. package/lib/esm/components/TreeWidgetUiItemsProvider.js.map +1 -1
  46. package/lib/esm/components/header/TreeHeader.d.ts +1 -0
  47. package/lib/esm/components/header/TreeHeader.scss +1 -1
  48. package/lib/esm/components/rulesets/IModelContent.json +435 -0
  49. package/lib/esm/components/search-bar/Popup.scss +1 -1
  50. package/lib/esm/components/search-bar/SearchBar.scss +1 -1
  51. package/lib/esm/components/search-bar/SearchBox.scss +1 -1
  52. package/lib/esm/components/trees/CategoriesTree.d.ts +3 -7
  53. package/lib/esm/components/trees/CategoriesTree.js +23 -25
  54. package/lib/esm/components/trees/CategoriesTree.js.map +1 -1
  55. package/lib/esm/components/trees/CategoriesTree.scss +1 -1
  56. package/lib/esm/components/trees/IModelContentTree.d.ts +4 -0
  57. package/lib/esm/components/trees/IModelContentTree.js +24 -0
  58. package/lib/esm/components/trees/IModelContentTree.js.map +1 -0
  59. package/lib/esm/components/trees/ModelsTree.d.ts +3 -8
  60. package/lib/esm/components/trees/ModelsTree.js +9 -17
  61. package/lib/esm/components/trees/ModelsTree.js.map +1 -1
  62. package/lib/esm/components/trees/ModelsTree.scss +1 -1
  63. package/lib/esm/components/trees/SpatialTree.d.ts +3 -2
  64. package/lib/esm/components/trees/SpatialTree.js +10 -11
  65. package/lib/esm/components/trees/SpatialTree.js.map +1 -1
  66. package/lib/esm/components/trees/index.d.ts +1 -2
  67. package/lib/esm/components/trees/index.js +4 -5
  68. package/lib/esm/components/trees/index.js.map +1 -1
  69. package/lib/esm/components/utils/AutoSizer.d.ts +10 -0
  70. package/lib/esm/components/utils/AutoSizer.js +13 -0
  71. package/lib/esm/components/utils/AutoSizer.js.map +1 -0
  72. package/lib/esm/tree-widget-react.d.ts +1 -1
  73. package/lib/esm/tree-widget-react.js +4 -4
  74. package/lib/esm/tree-widget-react.js.map +1 -1
  75. package/lib/esm/types.d.ts +23 -0
  76. package/lib/esm/types.js +2 -0
  77. package/lib/esm/types.js.map +1 -0
  78. package/package.json +1 -2
  79. package/lib/cjs/components/TreeWidgetControl.d.ts +0 -26
  80. package/lib/cjs/components/TreeWidgetControl.js +0 -66
  81. package/lib/cjs/components/TreeWidgetControl.js.map +0 -1
  82. package/lib/cjs/components/rulesets/ClassificationSystems.json +0 -122
  83. package/lib/cjs/components/trees/ClassificationsTree.d.ts +0 -6
  84. package/lib/cjs/components/trees/ClassificationsTree.js.map +0 -1
  85. package/lib/cjs/components/trees/TreeWithRuleset.d.ts +0 -35
  86. package/lib/cjs/components/trees/TreeWithRuleset.js +0 -110
  87. package/lib/cjs/components/trees/TreeWithRuleset.js.map +0 -1
  88. package/lib/cjs/components/trees/TreeWithRulesetTree.scss +0 -17
  89. package/lib/esm/components/TreeWidgetControl.d.ts +0 -26
  90. package/lib/esm/components/TreeWidgetControl.js +0 -59
  91. package/lib/esm/components/TreeWidgetControl.js.map +0 -1
  92. package/lib/esm/components/rulesets/ClassificationSystems.json +0 -122
  93. package/lib/esm/components/trees/ClassificationsTree.d.ts +0 -6
  94. package/lib/esm/components/trees/ClassificationsTree.js +0 -17
  95. package/lib/esm/components/trees/ClassificationsTree.js.map +0 -1
  96. package/lib/esm/components/trees/TreeWithRuleset.d.ts +0 -35
  97. package/lib/esm/components/trees/TreeWithRuleset.js +0 -85
  98. package/lib/esm/components/trees/TreeWithRuleset.js.map +0 -1
  99. package/lib/esm/components/trees/TreeWithRulesetTree.scss +0 -17
package/README.md CHANGED
@@ -27,6 +27,35 @@ import { UiItemsManager } from "@itwin/appui-abstract";
27
27
  import { TreeWidgetUiItemsProvider } from "@itwin/tree-widget-react";
28
28
  ...
29
29
  UiItemsManager.register(
30
- new TreeWidgetUiItemsProvider({ ...TreeWidgetControlOptions })
30
+ new TreeWidgetUiItemsProvider({ ...TreeWidgetOptions })
31
31
  );
32
32
  ```
33
+
34
+ ### Additional trees avaialable
35
+
36
+ #### IModelContentTree
37
+
38
+ Component that displays a hierarchy with content of a given `IModelConnection`.
39
+
40
+ ##### Resulting hierarchy
41
+
42
+ - Root Subject
43
+ - Child Subjects
44
+ - Target Model
45
+ - Spatial Categories of top-assemblies in the Model (if model is a GeometricModel3d)
46
+ - Top-assemblies in the model and category
47
+ - Child elements of the assembly
48
+ - Drawing Categories of top-assemblies in the Model (if model is a GeometricModel2d)
49
+ - Top-assemblies in the model and category
50
+ - Child elements of the assembly
51
+ - Top-assemblies in the Model (if model is neither GeometricModel3d nor GeometricModel2d)
52
+ - Child elements of the assembly
53
+
54
+ In addition, for every modeled element we show content of the model as children for the element's node.
55
+
56
+ More details about Subjects and Models can be found here:
57
+
58
+ - <https://www.imodeljs.org/bis/intro/information-hierarchy/>
59
+ - <https://www.imodeljs.org/bis/intro/organizing-models-and-elements/>
60
+
61
+ More details about the hierarchy can be found in the [presentation ruleset JSON file](./src/components/rulesets/IModelContent.json).
@@ -2,8 +2,8 @@
2
2
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
- @import "~@itwin/core-react/lib/esm/core-react/index";
6
- @import "~@itwin/appui-layout-react/lib/esm/appui-layout-react/footer/_variables";
5
+ @import "~@itwin/core-react/lib/cjs/core-react/index";
6
+ @import "~@itwin/appui-layout-react/lib/cjs/appui-layout-react/footer/_variables";
7
7
 
8
8
  .tree-widget-icon-button {
9
9
  display: inline-block;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import "./TreeWidgetComponent.scss";
2
3
  import type { SelectableContentDefinition } from "@itwin/components-react";
3
4
  interface TreeWidgetComponentProps {
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
- @import "~@itwin/core-react/lib/esm/core-react/index";
5
+ @import "~@itwin/core-react/lib/cjs/core-react/index";
6
6
 
7
7
  .tree-widget-visibility-widget {
8
8
  padding: $uicore-s;
@@ -1,20 +1,11 @@
1
1
  import type { AbstractWidgetProps, StagePanelSection, UiItemsProvider } from "@itwin/appui-abstract";
2
- import { StagePanelLocation } from "@itwin/appui-abstract";
3
- import type { TreeWidgetControlOptions } from "./TreeWidgetControl";
2
+ import { AbstractZoneLocation, StagePanelLocation } from "@itwin/appui-abstract";
3
+ import type { TreeWidgetOptions } from "../types";
4
+ export declare const TreeWidgetId = "tree-widget-react:trees";
4
5
  export declare class TreeWidgetUiItemsProvider implements UiItemsProvider {
5
- readonly id = "TreeWidgetUiitemsProvider";
6
- private _imodel?;
7
- private _activeView?;
8
- private _enableElementsClassGrouping?;
9
- private _allViewports?;
10
- private _additionalTrees?;
11
- private _modelsTreeProps?;
12
- private _categoriesTreeProps?;
13
- private _spatialTreeProps?;
14
- private _modelsTreeReplacement?;
15
- private _categoriesTreeReplacement?;
16
- private _spatialTreeReplacement?;
17
- constructor(props?: Partial<TreeWidgetControlOptions>);
18
- provideWidgets(_stageId: string, stageUsage: string, location: StagePanelLocation, _section: StagePanelSection | undefined): ReadonlyArray<AbstractWidgetProps>;
6
+ private _treeWidgetOptions?;
7
+ readonly id = "TreeWidgetUiItemsProvider";
8
+ constructor(_treeWidgetOptions?: TreeWidgetOptions | undefined);
9
+ provideWidgets(_stageId: string, stageUsage: string, location: StagePanelLocation, section?: StagePanelSection, zoneLocation?: AbstractZoneLocation): ReadonlyArray<AbstractWidgetProps>;
19
10
  }
20
11
  //# sourceMappingURL=TreeWidgetUiItemsProvider.d.ts.map
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.TreeWidgetUiItemsProvider = void 0;
6
+ exports.TreeWidgetUiItemsProvider = exports.TreeWidgetId = void 0;
7
7
  const appui_abstract_1 = require("@itwin/appui-abstract");
8
8
  const appui_react_1 = require("@itwin/appui-react");
9
9
  const react_1 = __importDefault(require("react"));
@@ -12,64 +12,62 @@ const CategoriesTree_1 = require("./trees/CategoriesTree");
12
12
  const ModelsTree_1 = require("./trees/ModelsTree");
13
13
  const SpatialTree_1 = require("./trees/SpatialTree");
14
14
  const TreeWidget_1 = require("../TreeWidget");
15
+ exports.TreeWidgetId = "tree-widget-react:trees";
15
16
  class TreeWidgetUiItemsProvider {
16
- constructor(props) {
17
- var _a, _b, _c, _d, _e, _f;
18
- this.id = "TreeWidgetUiitemsProvider";
19
- this._imodel = props === null || props === void 0 ? void 0 : props.iModelConnection;
20
- this._activeView = props === null || props === void 0 ? void 0 : props.activeView;
21
- this._enableElementsClassGrouping = props === null || props === void 0 ? void 0 : props.enableElementsClassGrouping;
22
- this._allViewports = props === null || props === void 0 ? void 0 : props.allViewports;
23
- this._additionalTrees = props === null || props === void 0 ? void 0 : props.additionalTrees;
24
- this._modelsTreeProps = (_a = props === null || props === void 0 ? void 0 : props.additionalProps) === null || _a === void 0 ? void 0 : _a.modelsTree;
25
- this._categoriesTreeProps = (_b = props === null || props === void 0 ? void 0 : props.additionalProps) === null || _b === void 0 ? void 0 : _b.categoriesTree;
26
- this._spatialTreeProps = (_c = props === null || props === void 0 ? void 0 : props.additionalProps) === null || _c === void 0 ? void 0 : _c.spatialTree;
27
- this._modelsTreeReplacement = (_d = props === null || props === void 0 ? void 0 : props.treeReplacements) === null || _d === void 0 ? void 0 : _d.modelsTree;
28
- this._categoriesTreeReplacement = (_e = props === null || props === void 0 ? void 0 : props.treeReplacements) === null || _e === void 0 ? void 0 : _e.categoriesTree;
29
- this._spatialTreeReplacement = (_f = props === null || props === void 0 ? void 0 : props.treeReplacements) === null || _f === void 0 ? void 0 : _f.spatialTree;
17
+ constructor(_treeWidgetOptions) {
18
+ this._treeWidgetOptions = _treeWidgetOptions;
19
+ this.id = "TreeWidgetUiItemsProvider";
30
20
  }
31
- provideWidgets(_stageId, stageUsage, location, _section) {
32
- var _a, _b, _c;
21
+ provideWidgets(_stageId, stageUsage, location, section,
22
+ // eslint-disable-next-line deprecation/deprecation
23
+ zoneLocation) {
24
+ var _a, _b, _c, _d, _e, _f, _g;
33
25
  const widgets = [];
34
- const imodel = appui_react_1.UiFramework.getIModelConnection();
35
- if (stageUsage === appui_abstract_1.StageUsage.General &&
36
- location === appui_abstract_1.StagePanelLocation.Right &&
37
- imodel !== undefined) {
38
- const modelsTreeComponent = (react_1.default.createElement(ModelsTree_1.ModelsTreeComponent, { iModel: (_a = this._imodel) !== null && _a !== void 0 ? _a : imodel, allViewports: this._allViewports, activeView: this._activeView, enableElementsClassGrouping: this._enableElementsClassGrouping, ...this._modelsTreeProps }));
39
- const categoriesTreeComponent = (react_1.default.createElement(CategoriesTree_1.CategoriesTreeComponent, { iModel: (_b = this._imodel) !== null && _b !== void 0 ? _b : imodel, allViewports: this._allViewports, activeView: this._activeView, ...this._categoriesTreeProps }));
40
- const spatialContainmentComponent = (react_1.default.createElement(SpatialTree_1.SpatialTreeComponent, { iModel: (_c = this._imodel) !== null && _c !== void 0 ? _c : imodel, enableElementsClassGrouping: this._enableElementsClassGrouping
41
- ? appui_react_1.ClassGroupingOption.Yes
42
- : appui_react_1.ClassGroupingOption.No, ...this._spatialTreeProps }));
43
- const trees = [
44
- {
26
+ if (
27
+ // eslint-disable-next-line deprecation/deprecation
28
+ (!section && stageUsage === appui_abstract_1.StageUsage.General && zoneLocation === appui_abstract_1.AbstractZoneLocation.CenterRight) ||
29
+ (stageUsage === appui_abstract_1.StageUsage.General && location === appui_abstract_1.StagePanelLocation.Right && appui_react_1.UiFramework.uiVersion !== "1")) {
30
+ const trees = [];
31
+ if (!((_b = (_a = this._treeWidgetOptions) === null || _a === void 0 ? void 0 : _a.hideTrees) === null || _b === void 0 ? void 0 : _b.modelsTree)) {
32
+ trees.push({
45
33
  label: TreeWidget_1.TreeWidget.translate("modeltree"),
46
34
  id: "model-tree",
47
- render: this._modelsTreeReplacement
48
- ? this._modelsTreeReplacement
49
- : () => modelsTreeComponent,
50
- },
51
- {
35
+ render: () => {
36
+ var _a, _b;
37
+ return (react_1.default.createElement(ModelsTree_1.ModelsTreeComponent, { enableElementsClassGrouping: ((_a = this._treeWidgetOptions) === null || _a === void 0 ? void 0 : _a.enableElementsClassGrouping)
38
+ ? appui_react_1.ClassGroupingOption.YesWithCounts
39
+ : appui_react_1.ClassGroupingOption.No, ...(_b = this._treeWidgetOptions) === null || _b === void 0 ? void 0 : _b.modelsTreeProps }));
40
+ },
41
+ });
42
+ }
43
+ if (!((_d = (_c = this._treeWidgetOptions) === null || _c === void 0 ? void 0 : _c.hideTrees) === null || _d === void 0 ? void 0 : _d.categoriesTree)) {
44
+ trees.push({
52
45
  label: TreeWidget_1.TreeWidget.translate("categories"),
53
46
  id: "categories-tree",
54
- render: this._categoriesTreeReplacement
55
- ? this._categoriesTreeReplacement
56
- : () => categoriesTreeComponent,
57
- },
58
- {
47
+ render: () => {
48
+ var _a;
49
+ return (react_1.default.createElement(CategoriesTree_1.CategoriesTreeComponent, { ...(_a = this._treeWidgetOptions) === null || _a === void 0 ? void 0 : _a.categoriesTreeProps }));
50
+ },
51
+ });
52
+ }
53
+ if (!((_f = (_e = this._treeWidgetOptions) === null || _e === void 0 ? void 0 : _e.hideTrees) === null || _f === void 0 ? void 0 : _f.spatialTree)) {
54
+ trees.push({
59
55
  label: TreeWidget_1.TreeWidget.translate("containment"),
60
56
  id: "spatial-containment-tree",
61
- render: this._spatialTreeReplacement
62
- ? this._spatialTreeReplacement
63
- : () => spatialContainmentComponent,
64
- },
65
- ];
66
- if (this._additionalTrees) {
67
- trees.push(...this._additionalTrees);
57
+ render: () => {
58
+ var _a, _b;
59
+ return (react_1.default.createElement(SpatialTree_1.SpatialTreeComponent, { enableElementsClassGrouping: ((_a = this._treeWidgetOptions) === null || _a === void 0 ? void 0 : _a.enableElementsClassGrouping)
60
+ ? appui_react_1.ClassGroupingOption.YesWithCounts
61
+ : appui_react_1.ClassGroupingOption.No, ...(_b = this._treeWidgetOptions) === null || _b === void 0 ? void 0 : _b.spatialTreeProps }));
62
+ },
63
+ });
64
+ }
65
+ if ((_g = this._treeWidgetOptions) === null || _g === void 0 ? void 0 : _g.additionalTrees) {
66
+ trees.push(...this._treeWidgetOptions.additionalTrees);
68
67
  }
69
68
  widgets.push({
70
- id: "tree",
69
+ id: exports.TreeWidgetId,
71
70
  label: TreeWidget_1.TreeWidget.translate("treeview"),
72
- // eslint-disable-next-line react/display-name
73
71
  getWidgetContent: () => react_1.default.createElement(TreeWidgetComponent_1.TreeWidgetComponent, { trees: trees }),
74
72
  });
75
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TreeWidgetUiItemsProvider.js","sourceRoot":"","sources":["../../../src/components/TreeWidgetUiItemsProvider.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 type {\n AbstractWidgetProps,\n StagePanelSection,\n UiItemsProvider,\n} from \"@itwin/appui-abstract\";\nimport {\n StagePanelLocation,\n StageUsage,\n} from \"@itwin/appui-abstract\";\nimport { ClassGroupingOption, UiFramework } from \"@itwin/appui-react\";\nimport React from \"react\";\nimport { TreeWidgetComponent } from \"./TreeWidgetComponent\";\nimport { CategoriesTreeComponent } from \"./trees/CategoriesTree\";\nimport { ModelsTreeComponent } from \"./trees/ModelsTree\";\nimport { SpatialTreeComponent } from \"./trees/SpatialTree\";\nimport type { IModelConnection, Viewport } from \"@itwin/core-frontend\";\nimport type { SelectableContentDefinition } from \"@itwin/components-react\";\nimport { TreeWidget } from \"../TreeWidget\";\nimport type { TreeWidgetControlOptions } from \"./TreeWidgetControl\";\n\nexport class TreeWidgetUiItemsProvider implements UiItemsProvider {\n public readonly id = \"TreeWidgetUiitemsProvider\";\n\n private _imodel?: IModelConnection;\n private _activeView?: Viewport;\n private _enableElementsClassGrouping?: boolean;\n private _allViewports?: boolean;\n private _additionalTrees?: SelectableContentDefinition[];\n private _modelsTreeProps?: {};\n private _categoriesTreeProps?: {};\n private _spatialTreeProps?: {};\n private _modelsTreeReplacement?: () => React.ReactNode;\n private _categoriesTreeReplacement?: () => React.ReactNode;\n private _spatialTreeReplacement?: () => React.ReactNode;\n\n constructor(props?: Partial<TreeWidgetControlOptions>) {\n this._imodel = props?.iModelConnection;\n this._activeView = props?.activeView;\n this._enableElementsClassGrouping = props?.enableElementsClassGrouping;\n this._allViewports = props?.allViewports;\n this._additionalTrees = props?.additionalTrees;\n this._modelsTreeProps = props?.additionalProps?.modelsTree;\n this._categoriesTreeProps = props?.additionalProps?.categoriesTree;\n this._spatialTreeProps = props?.additionalProps?.spatialTree;\n this._modelsTreeReplacement = props?.treeReplacements?.modelsTree;\n this._categoriesTreeReplacement = props?.treeReplacements?.categoriesTree;\n this._spatialTreeReplacement = props?.treeReplacements?.spatialTree;\n }\n\n public provideWidgets(\n _stageId: string,\n stageUsage: string,\n location: StagePanelLocation,\n _section: StagePanelSection | undefined\n ): ReadonlyArray<AbstractWidgetProps> {\n const widgets: AbstractWidgetProps[] = [];\n const imodel = UiFramework.getIModelConnection();\n if (\n stageUsage === StageUsage.General &&\n location === StagePanelLocation.Right &&\n imodel !== undefined\n ) {\n const modelsTreeComponent = (\n <ModelsTreeComponent\n iModel={this._imodel ?? imodel}\n allViewports={this._allViewports}\n activeView={this._activeView}\n enableElementsClassGrouping={this._enableElementsClassGrouping}\n {...this._modelsTreeProps}\n />\n );\n\n const categoriesTreeComponent = (\n <CategoriesTreeComponent\n iModel={this._imodel ?? imodel}\n allViewports={this._allViewports}\n activeView={this._activeView}\n {...this._categoriesTreeProps}\n />\n );\n\n const spatialContainmentComponent = (\n <SpatialTreeComponent\n iModel={this._imodel ?? imodel}\n enableElementsClassGrouping={\n this._enableElementsClassGrouping\n ? ClassGroupingOption.Yes\n : ClassGroupingOption.No\n }\n {...this._spatialTreeProps}\n />\n );\n\n const trees: SelectableContentDefinition[] = [\n {\n label: TreeWidget.translate(\"modeltree\"),\n id: \"model-tree\",\n render: this._modelsTreeReplacement\n ? this._modelsTreeReplacement\n : () => modelsTreeComponent,\n },\n {\n label: TreeWidget.translate(\"categories\"),\n id: \"categories-tree\",\n render: this._categoriesTreeReplacement\n ? this._categoriesTreeReplacement\n : () => categoriesTreeComponent,\n },\n {\n label: TreeWidget.translate(\"containment\"),\n id: \"spatial-containment-tree\",\n render: this._spatialTreeReplacement\n ? this._spatialTreeReplacement\n : () => spatialContainmentComponent,\n },\n ];\n\n if (this._additionalTrees) {\n trees.push(...this._additionalTrees);\n }\n\n widgets.push({\n id: \"tree\",\n label: TreeWidget.translate(\"treeview\"),\n // eslint-disable-next-line react/display-name\n getWidgetContent: () => <TreeWidgetComponent trees={trees} />,\n });\n }\n\n return widgets;\n }\n}\n"]}
1
+ {"version":3,"file":"TreeWidgetUiItemsProvider.js","sourceRoot":"","sources":["../../../src/components/TreeWidgetUiItemsProvider.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*--------------------------------------------------------------------------------------------*/\n/* eslint-disable react/display-name */\nimport type {\n AbstractWidgetProps,\n StagePanelSection,\n UiItemsProvider,\n} from \"@itwin/appui-abstract\";\nimport {\n AbstractZoneLocation,\n StagePanelLocation,\n StageUsage,\n} from \"@itwin/appui-abstract\";\nimport { ClassGroupingOption, UiFramework } from \"@itwin/appui-react\";\nimport React from \"react\";\nimport { TreeWidgetComponent } from \"./TreeWidgetComponent\";\nimport { CategoriesTreeComponent } from \"./trees/CategoriesTree\";\nimport { ModelsTreeComponent } from \"./trees/ModelsTree\";\nimport { SpatialTreeComponent } from \"./trees/SpatialTree\";\nimport type { SelectableContentDefinition } from \"@itwin/components-react\";\nimport { TreeWidget } from \"../TreeWidget\";\nimport type { TreeWidgetOptions } from \"../types\";\n\nexport const TreeWidgetId = \"tree-widget-react:trees\";\nexport class TreeWidgetUiItemsProvider implements UiItemsProvider {\n public readonly id = \"TreeWidgetUiItemsProvider\";\n\n constructor(private _treeWidgetOptions?: TreeWidgetOptions) { }\n\n public provideWidgets(\n _stageId: string,\n stageUsage: string,\n location: StagePanelLocation,\n section?: StagePanelSection,\n // eslint-disable-next-line deprecation/deprecation\n zoneLocation?: AbstractZoneLocation,\n ): ReadonlyArray<AbstractWidgetProps> {\n const widgets: AbstractWidgetProps[] = [];\n if (\n // eslint-disable-next-line deprecation/deprecation\n (!section && stageUsage === StageUsage.General && zoneLocation === AbstractZoneLocation.CenterRight) ||\n (stageUsage === StageUsage.General && location === StagePanelLocation.Right && UiFramework.uiVersion !== \"1\")\n ) {\n const trees: SelectableContentDefinition[] = [];\n\n if (!this._treeWidgetOptions?.hideTrees?.modelsTree) {\n trees.push({\n label: TreeWidget.translate(\"modeltree\"),\n id: \"model-tree\",\n render: () => (\n <ModelsTreeComponent\n enableElementsClassGrouping={\n this._treeWidgetOptions?.enableElementsClassGrouping\n ? ClassGroupingOption.YesWithCounts\n : ClassGroupingOption.No\n }\n {...this._treeWidgetOptions?.modelsTreeProps}\n />\n ),\n });\n }\n\n if (!this._treeWidgetOptions?.hideTrees?.categoriesTree) {\n trees.push({\n label: TreeWidget.translate(\"categories\"),\n id: \"categories-tree\",\n render: () => (\n <CategoriesTreeComponent {...this._treeWidgetOptions?.categoriesTreeProps} />\n ),\n });\n }\n\n if (!this._treeWidgetOptions?.hideTrees?.spatialTree) {\n trees.push({\n label: TreeWidget.translate(\"containment\"),\n id: \"spatial-containment-tree\",\n render: () => (\n <SpatialTreeComponent\n enableElementsClassGrouping={\n this._treeWidgetOptions?.enableElementsClassGrouping\n ? ClassGroupingOption.YesWithCounts\n : ClassGroupingOption.No\n }\n {...this._treeWidgetOptions?.spatialTreeProps}\n />\n ),\n });\n }\n\n if (this._treeWidgetOptions?.additionalTrees) {\n trees.push(...this._treeWidgetOptions.additionalTrees);\n }\n\n widgets.push({\n id: TreeWidgetId,\n label: TreeWidget.translate(\"treeview\"),\n getWidgetContent: () => <TreeWidgetComponent trees={trees} />,\n });\n }\n\n return widgets;\n }\n}\n"]}
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import type { SearchOptions } from "../TreeFilteringState";
2
3
  import "./TreeHeader.scss";
3
4
  export interface TreeHeaderComponentProps {
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
- @import "~@itwin/core-react/lib/esm/core-react/index";
5
+ @import "~@itwin/core-react/lib/cjs/core-react/index";
6
6
 
7
7
  .tree-widget-header-tree-search-bar {
8
8
  margin-bottom: $uicore-s;