@itwin/tree-widget-react 0.10.0-dev.1 → 1.0.0-dev.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 (194) hide show
  1. package/CHANGELOG.md +331 -0
  2. package/README.md +146 -29
  3. package/lib/cjs/TreeWidget.d.ts +0 -1
  4. package/lib/cjs/TreeWidget.js +1 -6
  5. package/lib/cjs/TreeWidget.js.map +1 -1
  6. package/lib/cjs/components/TreeFilteringState.d.ts +3 -1
  7. package/lib/cjs/components/TreeFilteringState.js +19 -40
  8. package/lib/cjs/components/TreeFilteringState.js.map +1 -1
  9. package/lib/cjs/components/TreeWidgetComponent.d.ts +29 -5
  10. package/lib/cjs/components/TreeWidgetComponent.js +85 -29
  11. package/lib/cjs/components/TreeWidgetComponent.js.map +1 -1
  12. package/lib/cjs/components/TreeWidgetComponent.scss +4 -24
  13. package/lib/cjs/components/TreeWidgetUiItemsProvider.d.ts +25 -2
  14. package/lib/cjs/components/TreeWidgetUiItemsProvider.js +31 -46
  15. package/lib/cjs/components/TreeWidgetUiItemsProvider.js.map +1 -1
  16. package/lib/cjs/components/tree-header/TreeHeader.d.ts +26 -0
  17. package/lib/cjs/components/tree-header/TreeHeader.js +43 -0
  18. package/lib/cjs/components/tree-header/TreeHeader.js.map +1 -0
  19. package/lib/cjs/components/tree-header/TreeHeader.scss +69 -0
  20. package/lib/cjs/components/trees/CategoriesVisibilityUtils.d.ts +12 -6
  21. package/lib/cjs/components/trees/CategoriesVisibilityUtils.js +10 -4
  22. package/lib/cjs/components/trees/CategoriesVisibilityUtils.js.map +1 -1
  23. package/lib/cjs/components/trees/Common.d.ts +2 -2
  24. package/lib/cjs/components/trees/Common.js +1 -1
  25. package/lib/cjs/components/trees/Common.js.map +1 -1
  26. package/lib/cjs/components/trees/VisibilityTreeBase.scss +66 -10
  27. package/lib/cjs/components/trees/VisibilityTreeEventHandler.d.ts +13 -12
  28. package/lib/cjs/components/trees/VisibilityTreeEventHandler.js +6 -17
  29. package/lib/cjs/components/trees/VisibilityTreeEventHandler.js.map +1 -1
  30. package/lib/cjs/components/trees/VisibilityTreeRenderer.d.ts +38 -14
  31. package/lib/cjs/components/trees/VisibilityTreeRenderer.js +35 -41
  32. package/lib/cjs/components/trees/VisibilityTreeRenderer.js.map +1 -1
  33. package/lib/cjs/components/trees/category-tree/CategoriesTree.d.ts +12 -11
  34. package/lib/cjs/components/trees/category-tree/CategoriesTree.js +17 -41
  35. package/lib/cjs/components/trees/category-tree/CategoriesTree.js.map +1 -1
  36. package/lib/cjs/components/trees/category-tree/CategoriesTreeComponent.d.ts +67 -6
  37. package/lib/cjs/components/trees/category-tree/CategoriesTreeComponent.js +61 -72
  38. package/lib/cjs/components/trees/category-tree/CategoriesTreeComponent.js.map +1 -1
  39. package/lib/cjs/components/trees/category-tree/CategoryVisibilityHandler.d.ts +30 -8
  40. package/lib/cjs/components/trees/category-tree/CategoryVisibilityHandler.js +61 -34
  41. package/lib/cjs/components/trees/category-tree/CategoryVisibilityHandler.js.map +1 -1
  42. package/lib/cjs/components/trees/external-sources-tree/ExternalSources.json +230 -0
  43. package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTree.d.ts +27 -0
  44. package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTree.js +61 -0
  45. package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTree.js.map +1 -0
  46. package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTreeComponent.d.ts +20 -0
  47. package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTreeComponent.js +39 -0
  48. package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTreeComponent.js.map +1 -0
  49. package/lib/cjs/components/trees/imodel-content-tree/IModelContentTree.d.ts +30 -0
  50. package/lib/cjs/components/trees/imodel-content-tree/IModelContentTree.js +39 -0
  51. package/lib/cjs/components/trees/imodel-content-tree/IModelContentTree.js.map +1 -0
  52. package/lib/cjs/components/trees/imodel-content-tree/IModelContentTreeComponent.d.ts +26 -0
  53. package/lib/cjs/components/trees/imodel-content-tree/IModelContentTreeComponent.js +35 -0
  54. package/lib/cjs/components/trees/imodel-content-tree/IModelContentTreeComponent.js.map +1 -0
  55. package/lib/cjs/components/trees/index.d.ts +5 -1
  56. package/lib/cjs/components/trees/index.js +10 -2
  57. package/lib/cjs/components/trees/index.js.map +1 -1
  58. package/lib/cjs/components/trees/models-tree/ModelsTree.d.ts +26 -18
  59. package/lib/cjs/components/trees/models-tree/ModelsTree.js +22 -50
  60. package/lib/cjs/components/trees/models-tree/ModelsTree.js.map +1 -1
  61. package/lib/cjs/components/trees/models-tree/ModelsTreeComponent.d.ts +70 -2
  62. package/lib/cjs/components/trees/models-tree/ModelsTreeComponent.js +68 -105
  63. package/lib/cjs/components/trees/models-tree/ModelsTreeComponent.js.map +1 -1
  64. package/lib/cjs/components/trees/models-tree/ModelsVisibilityHandler.d.ts +40 -12
  65. package/lib/cjs/components/trees/models-tree/ModelsVisibilityHandler.js +65 -5
  66. package/lib/cjs/components/trees/models-tree/ModelsVisibilityHandler.js.map +1 -1
  67. package/lib/cjs/components/trees/models-tree/Utils.d.ts +12 -0
  68. package/lib/cjs/components/trees/models-tree/Utils.js +625 -1
  69. package/lib/cjs/components/trees/models-tree/Utils.js.map +1 -1
  70. package/lib/cjs/components/utils/AutoSizer.d.ts +6 -3
  71. package/lib/cjs/components/utils/AutoSizer.js +9 -29
  72. package/lib/cjs/components/utils/AutoSizer.js.map +1 -1
  73. package/lib/cjs/components/utils/IsPromiseLike.d.ts +4 -1
  74. package/lib/cjs/components/utils/IsPromiseLike.js +6 -3
  75. package/lib/cjs/components/utils/IsPromiseLike.js.map +1 -1
  76. package/lib/cjs/tree-widget-react.d.ts +0 -1
  77. package/lib/cjs/tree-widget-react.js +5 -2
  78. package/lib/cjs/tree-widget-react.js.map +1 -1
  79. package/lib/esm/TreeWidget.d.ts +0 -1
  80. package/lib/esm/TreeWidget.js +2 -7
  81. package/lib/esm/TreeWidget.js.map +1 -1
  82. package/lib/esm/components/TreeFilteringState.d.ts +3 -1
  83. package/lib/esm/components/TreeFilteringState.js +17 -19
  84. package/lib/esm/components/TreeFilteringState.js.map +1 -1
  85. package/lib/esm/components/TreeWidgetComponent.d.ts +29 -5
  86. package/lib/esm/components/TreeWidgetComponent.js +82 -7
  87. package/lib/esm/components/TreeWidgetComponent.js.map +1 -1
  88. package/lib/esm/components/TreeWidgetComponent.scss +4 -24
  89. package/lib/esm/components/TreeWidgetUiItemsProvider.d.ts +25 -2
  90. package/lib/esm/components/TreeWidgetUiItemsProvider.js +29 -41
  91. package/lib/esm/components/TreeWidgetUiItemsProvider.js.map +1 -1
  92. package/lib/esm/components/tree-header/TreeHeader.d.ts +26 -0
  93. package/lib/esm/components/tree-header/TreeHeader.js +36 -0
  94. package/lib/esm/components/tree-header/TreeHeader.js.map +1 -0
  95. package/lib/esm/components/tree-header/TreeHeader.scss +69 -0
  96. package/lib/esm/components/trees/CategoriesVisibilityUtils.d.ts +12 -6
  97. package/lib/esm/components/trees/CategoriesVisibilityUtils.js +10 -4
  98. package/lib/esm/components/trees/CategoriesVisibilityUtils.js.map +1 -1
  99. package/lib/esm/components/trees/Common.d.ts +2 -2
  100. package/lib/esm/components/trees/Common.js +1 -1
  101. package/lib/esm/components/trees/Common.js.map +1 -1
  102. package/lib/esm/components/trees/VisibilityTreeBase.scss +66 -10
  103. package/lib/esm/components/trees/VisibilityTreeEventHandler.d.ts +13 -12
  104. package/lib/esm/components/trees/VisibilityTreeEventHandler.js +6 -17
  105. package/lib/esm/components/trees/VisibilityTreeEventHandler.js.map +1 -1
  106. package/lib/esm/components/trees/VisibilityTreeRenderer.d.ts +38 -14
  107. package/lib/esm/components/trees/VisibilityTreeRenderer.js +29 -19
  108. package/lib/esm/components/trees/VisibilityTreeRenderer.js.map +1 -1
  109. package/lib/esm/components/trees/category-tree/CategoriesTree.d.ts +12 -11
  110. package/lib/esm/components/trees/category-tree/CategoriesTree.js +16 -21
  111. package/lib/esm/components/trees/category-tree/CategoriesTree.js.map +1 -1
  112. package/lib/esm/components/trees/category-tree/CategoriesTreeComponent.d.ts +67 -6
  113. package/lib/esm/components/trees/category-tree/CategoriesTreeComponent.js +60 -52
  114. package/lib/esm/components/trees/category-tree/CategoriesTreeComponent.js.map +1 -1
  115. package/lib/esm/components/trees/category-tree/CategoryVisibilityHandler.d.ts +30 -8
  116. package/lib/esm/components/trees/category-tree/CategoryVisibilityHandler.js +57 -14
  117. package/lib/esm/components/trees/category-tree/CategoryVisibilityHandler.js.map +1 -1
  118. package/lib/esm/components/trees/external-sources-tree/ExternalSources.json +230 -0
  119. package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTree.d.ts +27 -0
  120. package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTree.js +34 -0
  121. package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTree.js.map +1 -0
  122. package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTreeComponent.d.ts +20 -0
  123. package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTreeComponent.js +35 -0
  124. package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTreeComponent.js.map +1 -0
  125. package/lib/esm/components/trees/imodel-content-tree/IModelContentTree.d.ts +30 -0
  126. package/lib/esm/components/trees/imodel-content-tree/IModelContentTree.js +32 -0
  127. package/lib/esm/components/trees/imodel-content-tree/IModelContentTree.js.map +1 -0
  128. package/lib/esm/components/trees/imodel-content-tree/IModelContentTreeComponent.d.ts +26 -0
  129. package/lib/esm/components/trees/imodel-content-tree/IModelContentTreeComponent.js +31 -0
  130. package/lib/esm/components/trees/imodel-content-tree/IModelContentTreeComponent.js.map +1 -0
  131. package/lib/esm/components/trees/index.d.ts +5 -1
  132. package/lib/esm/components/trees/index.js +5 -1
  133. package/lib/esm/components/trees/index.js.map +1 -1
  134. package/lib/esm/components/trees/models-tree/ModelsTree.d.ts +26 -18
  135. package/lib/esm/components/trees/models-tree/ModelsTree.js +23 -32
  136. package/lib/esm/components/trees/models-tree/ModelsTree.js.map +1 -1
  137. package/lib/esm/components/trees/models-tree/ModelsTreeComponent.d.ts +70 -2
  138. package/lib/esm/components/trees/models-tree/ModelsTreeComponent.js +66 -84
  139. package/lib/esm/components/trees/models-tree/ModelsTreeComponent.js.map +1 -1
  140. package/lib/esm/components/trees/models-tree/ModelsVisibilityHandler.d.ts +40 -12
  141. package/lib/esm/components/trees/models-tree/ModelsVisibilityHandler.js +60 -5
  142. package/lib/esm/components/trees/models-tree/ModelsVisibilityHandler.js.map +1 -1
  143. package/lib/esm/components/trees/models-tree/Utils.d.ts +12 -0
  144. package/lib/esm/components/trees/models-tree/Utils.js +622 -0
  145. package/lib/esm/components/trees/models-tree/Utils.js.map +1 -1
  146. package/lib/esm/components/utils/AutoSizer.d.ts +6 -3
  147. package/lib/esm/components/utils/AutoSizer.js +9 -10
  148. package/lib/esm/components/utils/AutoSizer.js.map +1 -1
  149. package/lib/esm/components/utils/IsPromiseLike.d.ts +4 -1
  150. package/lib/esm/components/utils/IsPromiseLike.js +4 -1
  151. package/lib/esm/components/utils/IsPromiseLike.js.map +1 -1
  152. package/lib/esm/tree-widget-react.d.ts +0 -1
  153. package/lib/esm/tree-widget-react.js +0 -1
  154. package/lib/esm/tree-widget-react.js.map +1 -1
  155. package/lib/public/locales/en/TreeWidget.json +13 -4
  156. package/package.json +61 -66
  157. package/lib/cjs/components/rulesets/ClassificationSystems.json +0 -122
  158. package/lib/cjs/components/search-bar/SearchBar.d.ts +0 -48
  159. package/lib/cjs/components/search-bar/SearchBar.js +0 -86
  160. package/lib/cjs/components/search-bar/SearchBar.js.map +0 -1
  161. package/lib/cjs/components/search-bar/SearchBar.scss +0 -118
  162. package/lib/cjs/components/search-bar/SearchBox.d.ts +0 -70
  163. package/lib/cjs/components/search-bar/SearchBox.js +0 -186
  164. package/lib/cjs/components/search-bar/SearchBox.js.map +0 -1
  165. package/lib/cjs/components/search-bar/SearchBox.scss +0 -70
  166. package/lib/cjs/components/trees/IModelContentTree.d.ts +0 -4
  167. package/lib/cjs/components/trees/IModelContentTree.js +0 -50
  168. package/lib/cjs/components/trees/IModelContentTree.js.map +0 -1
  169. package/lib/cjs/components/trees/models-tree/Hierarchy.GroupedByClass.json +0 -391
  170. package/lib/cjs/components/trees/models-tree/Hierarchy.json +0 -386
  171. package/lib/cjs/components/trees/models-tree/ModelsTreeSearch.json +0 -239
  172. package/lib/cjs/types.d.ts +0 -44
  173. package/lib/cjs/types.js +0 -11
  174. package/lib/cjs/types.js.map +0 -1
  175. package/lib/esm/components/rulesets/ClassificationSystems.json +0 -122
  176. package/lib/esm/components/search-bar/SearchBar.d.ts +0 -48
  177. package/lib/esm/components/search-bar/SearchBar.js +0 -60
  178. package/lib/esm/components/search-bar/SearchBar.js.map +0 -1
  179. package/lib/esm/components/search-bar/SearchBar.scss +0 -118
  180. package/lib/esm/components/search-bar/SearchBox.d.ts +0 -70
  181. package/lib/esm/components/search-bar/SearchBox.js +0 -160
  182. package/lib/esm/components/search-bar/SearchBox.js.map +0 -1
  183. package/lib/esm/components/search-bar/SearchBox.scss +0 -70
  184. package/lib/esm/components/trees/IModelContentTree.d.ts +0 -4
  185. package/lib/esm/components/trees/IModelContentTree.js +0 -24
  186. package/lib/esm/components/trees/IModelContentTree.js.map +0 -1
  187. package/lib/esm/components/trees/models-tree/Hierarchy.GroupedByClass.json +0 -391
  188. package/lib/esm/components/trees/models-tree/Hierarchy.json +0 -386
  189. package/lib/esm/components/trees/models-tree/ModelsTreeSearch.json +0 -239
  190. package/lib/esm/types.d.ts +0 -44
  191. package/lib/esm/types.js +0 -8
  192. package/lib/esm/types.js.map +0 -1
  193. /package/lib/cjs/components/{rulesets → trees/imodel-content-tree}/IModelContent.json +0 -0
  194. /package/lib/esm/components/{rulesets → trees/imodel-content-tree}/IModelContent.json +0 -0
@@ -1,70 +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
-
6
- .tree-widget-searchbox {
7
- font-family: var(--iui-font-sans);
8
- display: flex;
9
- align-items: center;
10
- position: relative;
11
- //default values (height, width, font-size, color)
12
- height: calc(var(--iui-size-xl) + var(--iui-size-3xs));
13
- width: 12em;
14
- font-size: calc(var(--iui-size-s) + var(--iui-size-3xs));
15
- color: var(--iui-color-background-hsl) / var(--iui-opacity-2);
16
- background: var(--iui-color-background);
17
- border: 1px solid hsl(var(--iui-color-foreground-hsl) / var(--iui-opacity-4));
18
-
19
- input {
20
- padding: 0 var(--iui-size-xs);
21
- height: 100%;
22
- width: 100%;
23
- flex: 1;
24
- background: var(--iui-color-background);
25
- margin-right: var(--iui-size-xs);
26
- color: var(--iui-color-text);
27
- font-size: inherit;
28
- box-sizing: border-box;
29
- border: 0;
30
-
31
- &::placeholder {
32
- color: var(--iui-color-text-disabled);
33
- }
34
-
35
- &:focus-within,
36
- &:focus,
37
- &:active,
38
- &[disabled],
39
- &[disabled]:hover,
40
- &[disabled]:active,
41
- &[disabled]:focus {
42
- border: 0;
43
- outline: none;
44
- outline-width: 0;
45
- box-shadow: none;
46
- }
47
- }
48
-
49
- .searchbox-stepping-container {
50
- display: flex;
51
- align-items: center;
52
- right: var(--iui-size-xl);
53
- height: 100%;
54
-
55
- .searchbox-stepping-count {
56
- font-size: var(--iui-size-s);
57
- color: var(--iui-color-text);
58
- margin-right: var(--iui-size-2xs);
59
- position: relative;
60
- word-wrap: none;
61
- }
62
-
63
- .searchbox-separator {
64
- height: 75%;
65
- width: 1px;
66
- margin: 0 var(--iui-size-xs);
67
- background: hsl(var(--iui-color-foreground-hsl) / var(--iui-opacity-4));
68
- }
69
- }
70
- }
@@ -1,4 +0,0 @@
1
- /// <reference types="react" />
2
- import type { IModelContentTreeProps } from "../../types";
3
- export declare const IModelContentTree: (props: IModelContentTreeProps) => JSX.Element;
4
- //# sourceMappingURL=IModelContentTree.d.ts.map
@@ -1,24 +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, { useMemo } from "react";
6
- import { usePresentationTreeNodeLoader } from "@itwin/presentation-components";
7
- import { ControlledTree, SelectionMode, useTreeEventsHandler, useTreeModel } from "@itwin/components-react";
8
- import IMODEL_CONTENT_RULESET from "../rulesets/IModelContent.json";
9
- import { AutoSizer } from "../utils/AutoSizer";
10
- import classNames from "classnames";
11
- export const IModelContentTree = (props) => {
12
- const { iModel, className, ...divProps } = props;
13
- const { nodeLoader } = usePresentationTreeNodeLoader({
14
- imodel: iModel,
15
- ruleset: IMODEL_CONTENT_RULESET,
16
- pagingSize: 20,
17
- appendChildrenCountForGroupingNodes: true,
18
- });
19
- const eventHandler = useTreeEventsHandler(useMemo(() => ({ nodeLoader, modelSource: nodeLoader.modelSource, collapsedChildrenDisposalEnabled: true }), [nodeLoader]));
20
- const treeModel = useTreeModel(nodeLoader.modelSource);
21
- return (React.createElement(AutoSizer, null, ({ width, height }) => (React.createElement("div", { ...divProps, className: classNames("imodel-content-tree", className) },
22
- React.createElement(ControlledTree, { width: width, height: height, nodeLoader: nodeLoader, selectionMode: SelectionMode.None, eventsHandler: eventHandler, model: treeModel, iconsEnabled: true })))));
23
- };
24
- //# sourceMappingURL=IModelContentTree.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IModelContentTree.js","sourceRoot":"","sources":["../../../../src/components/trees/IModelContentTree.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5G,OAAO,sBAAsB,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,UAAU,MAAM,YAAY,CAAC;AAGpC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAA6B,EAAE,EAAE;IACjE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC;IAEjD,MAAM,EAAE,UAAU,EAAE,GAAG,6BAA6B,CAAC;QACnD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,sBAAiC;QAC1C,UAAU,EAAE,EAAE;QACd,mCAAmC,EAAE,IAAI;KAC1C,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,WAAW,EAAE,gCAAgC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAEtK,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAEvD,OAAO,CACL,oBAAC,SAAS,QACP,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CACtB,gCAAS,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,qBAAqB,EAAE,SAAS,CAAC;QACxE,oBAAC,cAAc,IACb,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,aAAa,CAAC,IAAI,EACjC,aAAa,EAAE,YAAY,EAC3B,KAAK,EAAE,SAAS,EAChB,YAAY,EAAE,IAAI,GAClB,CACE,CACP,CACS,CACb,CAAC;AACJ,CAAC,CAAC","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, { useMemo } from \"react\";\nimport type { Ruleset } from \"@itwin/presentation-common\";\nimport { usePresentationTreeNodeLoader } from \"@itwin/presentation-components\";\nimport { ControlledTree, SelectionMode, useTreeEventsHandler, useTreeModel } from \"@itwin/components-react\";\nimport IMODEL_CONTENT_RULESET from \"../rulesets/IModelContent.json\";\nimport { AutoSizer } from \"../utils/AutoSizer\";\nimport classNames from \"classnames\";\nimport type { IModelContentTreeProps } from \"../../types\";\n\nexport const IModelContentTree = (props: IModelContentTreeProps) => {\n const { iModel, className, ...divProps } = props;\n\n const { nodeLoader } = usePresentationTreeNodeLoader({\n imodel: iModel,\n ruleset: IMODEL_CONTENT_RULESET as Ruleset,\n pagingSize: 20,\n appendChildrenCountForGroupingNodes: true,\n });\n const eventHandler = useTreeEventsHandler(useMemo(() => ({ nodeLoader, modelSource: nodeLoader.modelSource, collapsedChildrenDisposalEnabled: true }), [nodeLoader]));\n\n const treeModel = useTreeModel(nodeLoader.modelSource);\n\n return (\n <AutoSizer>\n {({ width, height }) => (\n <div {...divProps} className={classNames(\"imodel-content-tree\", className)}>\n <ControlledTree\n width={width}\n height={height}\n nodeLoader={nodeLoader}\n selectionMode={SelectionMode.None}\n eventsHandler={eventHandler}\n model={treeModel}\n iconsEnabled={true}\n />\n </div>\n )}\n </AutoSizer>\n );\n};\n"]}
@@ -1,391 +0,0 @@
1
- {
2
- "$schema": "../../../../node_modules/@itwin/presentation-common/Ruleset.schema.json",
3
- "id": "tree-widget-react/ModelsTree.GroupedByClass",
4
- "requiredSchemas": [
5
- {
6
- "name": "BisCore"
7
- }
8
- ],
9
- "rules": [
10
- {
11
- "ruleType": "RootNodes",
12
- "autoExpand": true,
13
- "specifications": [
14
- {
15
- "specType": "InstanceNodesOfSpecificClasses",
16
- "classes": [
17
- {
18
- "schemaName": "BisCore",
19
- "classNames": [
20
- "Subject"
21
- ]
22
- }
23
- ],
24
- "instanceFilter": "this.Parent = NULL",
25
- "arePolymorphic": false,
26
- "groupByClass": false,
27
- "groupByLabel": false
28
- }
29
- ],
30
- "customizationRules": [
31
- {
32
- "ruleType": "ExtendedData",
33
- "items": {
34
- "isSubject": "true"
35
- }
36
- }
37
- ]
38
- },
39
- {
40
- "ruleType": "ChildNodes",
41
- "condition": "ParentNode.IsOfClass(\"Subject\", \"BisCore\")",
42
- "specifications": [
43
- {
44
- "specType": "RelatedInstanceNodes",
45
- "relationshipPaths": [
46
- {
47
- "relationship": {
48
- "schemaName": "BisCore",
49
- "className": "SubjectOwnsSubjects"
50
- },
51
- "direction": "Forward",
52
- "targetClass": {
53
- "schemaName": "BisCore",
54
- "className": "Subject"
55
- }
56
- }
57
- ],
58
- "instanceFilter": "json_extract(this.JsonProperties, \"$.Subject.Job.Bridge\") <> NULL OR ifnull(json_extract(this.JsonProperties, \"$.Subject.Model.Type\"), \"\") = \"Hierarchy\"",
59
- "hideNodesInHierarchy": true,
60
- "groupByClass": false,
61
- "groupByLabel": false
62
- },
63
- {
64
- "specType": "RelatedInstanceNodes",
65
- "relationshipPaths": [
66
- {
67
- "relationship": {
68
- "schemaName": "BisCore",
69
- "className": "SubjectOwnsSubjects"
70
- },
71
- "direction": "Forward",
72
- "targetClass": {
73
- "schemaName": "BisCore",
74
- "className": "Subject"
75
- }
76
- }
77
- ],
78
- "instanceFilter": "json_extract(this.JsonProperties, \"$.Subject.Job.Bridge\") = NULL AND ifnull(json_extract(this.JsonProperties, \"$.Subject.Model.Type\"), \"\") <> \"Hierarchy\"",
79
- "hideIfNoChildren": true,
80
- "groupByClass": false,
81
- "groupByLabel": false
82
- }
83
- ],
84
- "customizationRules": [
85
- {
86
- "ruleType": "ExtendedData",
87
- "items": {
88
- "isSubject": "true"
89
- }
90
- }
91
- ]
92
- },
93
- {
94
- "ruleType": "ChildNodes",
95
- "condition": "ParentNode.IsOfClass(\"Subject\", \"BisCore\")",
96
- "specifications": [
97
- {
98
- "specType": "InstanceNodesOfSpecificClasses",
99
- "classes": {
100
- "schemaName": "BisCore",
101
- "classNames": [
102
- "GeometricModel3d"
103
- ]
104
- },
105
- "arePolymorphic": true,
106
- "relatedInstances": [
107
- {
108
- "relationshipPath": {
109
- "relationship": {
110
- "schemaName": "BisCore",
111
- "className": "ModelModelsElement"
112
- },
113
- "direction": "Forward",
114
- "targetClass": {
115
- "schemaName": "BisCore",
116
- "className": "InformationPartitionElement"
117
- }
118
- },
119
- "alias": "partition",
120
- "isRequired": true
121
- }
122
- ],
123
- "instanceFilter": "(parent.ECInstanceId = partition.Parent.Id OR json_extract(parent.JsonProperties, \"$.Subject.Model.TargetPartition\") = printf(\"0x%x\", partition.ECInstanceId)) AND NOT this.IsPrivate AND json_extract(partition.JsonProperties, \"$.PhysicalPartition.Model.Content\") = NULL AND json_extract(partition.JsonProperties, \"$.GraphicalPartition3d.Model.Content\") = NULL AND this.HasRelatedInstance(\"BisCore:ModelContainsElements\", \"Forward\", \"BisCore:GeometricElement3d\")",
124
- "hasChildren": "Always",
125
- "hideIfNoChildren": true,
126
- "groupByClass": false,
127
- "groupByLabel": false
128
- },
129
- {
130
- "specType": "InstanceNodesOfSpecificClasses",
131
- "classes": {
132
- "schemaName": "BisCore",
133
- "classNames": [
134
- "GeometricModel3d"
135
- ]
136
- },
137
- "arePolymorphic": true,
138
- "relatedInstances": [
139
- {
140
- "relationshipPath": {
141
- "relationship": {
142
- "schemaName": "BisCore",
143
- "className": "ModelModelsElement"
144
- },
145
- "direction": "Forward",
146
- "targetClass": {
147
- "schemaName": "BisCore",
148
- "className": "InformationPartitionElement"
149
- }
150
- },
151
- "alias": "partition",
152
- "isRequired": true
153
- }
154
- ],
155
- "instanceFilter": "(parent.ECInstanceId = partition.Parent.Id OR json_extract(parent.JsonProperties, \"$.Subject.Model.TargetPartition\") = printf(\"0x%x\", partition.ECInstanceId)) AND NOT this.IsPrivate AND (json_extract(partition.JsonProperties, \"$.PhysicalPartition.Model.Content\") <> NULL OR json_extract(partition.JsonProperties, \"$.GraphicalPartition3d.Model.Content\") <> NULL) AND this.HasRelatedInstance(\"BisCore:ModelContainsElements\", \"Forward\", \"BisCore:GeometricElement3d\")",
156
- "hasChildren": "Always",
157
- "hideNodesInHierarchy": true,
158
- "groupByClass": false,
159
- "groupByLabel": false
160
- }
161
- ],
162
- "customizationRules": [
163
- {
164
- "ruleType": "ExtendedData",
165
- "items": {
166
- "isModel": "true"
167
- }
168
- }
169
- ]
170
- },
171
- {
172
- "ruleType": "ChildNodes",
173
- "condition": "ParentNode.IsOfClass(\"ISubModeledElement\", \"BisCore\")",
174
- "specifications": [
175
- {
176
- "specType": "RelatedInstanceNodes",
177
- "relationshipPaths": [
178
- {
179
- "relationship": {
180
- "schemaName": "BisCore",
181
- "className": "ModelModelsElement"
182
- },
183
- "direction": "Backward"
184
- }
185
- ],
186
- "instanceFilter": "NOT this.IsPrivate AND this.HasRelatedInstance(\"BisCore:ModelContainsElements\", \"Forward\", \"BisCore:GeometricElement3d\")",
187
- "hideNodesInHierarchy": true,
188
- "groupByClass": false,
189
- "groupByLabel": false
190
- }
191
- ],
192
- "customizationRules": [
193
- {
194
- "ruleType": "ExtendedData",
195
- "items": {
196
- "isModel": "true"
197
- }
198
- }
199
- ]
200
- },
201
- {
202
- "ruleType": "ChildNodes",
203
- "condition": "ParentNode.IsOfClass(\"GeometricModel3d\", \"BisCore\")",
204
- "specifications": [
205
- {
206
- "specType": "RelatedInstanceNodes",
207
- "relationshipPaths": [
208
- [
209
- {
210
- "relationship": {
211
- "schemaName": "BisCore",
212
- "className": "ModelContainsElements"
213
- },
214
- "direction": "Forward",
215
- "targetClass": {
216
- "schemaName": "BisCore",
217
- "className": "GeometricElement3d"
218
- }
219
- },
220
- {
221
- "relationship": {
222
- "schemaName": "BisCore",
223
- "className": "GeometricElement3dIsInCategory"
224
- },
225
- "direction": "Forward",
226
- "targetClass": {
227
- "schemaName": "BisCore",
228
- "className": "SpatialCategory"
229
- }
230
- }
231
- ]
232
- ],
233
- "instanceFilter": "NOT this.IsPrivate",
234
- "suppressSimilarAncestorsCheck": true,
235
- "hideIfNoChildren": true,
236
- "groupByClass": false,
237
- "groupByLabel": false
238
- }
239
- ],
240
- "customizationRules": [
241
- {
242
- "ruleType": "ExtendedData",
243
- "items": {
244
- "isCategory": "true",
245
- "modelId": "ParentNode.InstanceId"
246
- }
247
- }
248
- ]
249
- },
250
- {
251
- "ruleType": "ChildNodes",
252
- "condition": "ParentNode.IsOfClass(\"SpatialCategory\", \"BisCore\")",
253
- "specifications": [
254
- {
255
- "specType": "RelatedInstanceNodes",
256
- "relationshipPaths": [
257
- {
258
- "relationship": {
259
- "schemaName": "BisCore",
260
- "className": "GeometricElement3dIsInCategory"
261
- },
262
- "direction": "Backward",
263
- "targetClass": {
264
- "schemaName": "BisCore",
265
- "className": "GeometricElement3d"
266
- }
267
- }
268
- ],
269
- "instanceFilter": "this.Model.Id = parent.parent.ECInstanceId ANDALSO this.Parent = NULL",
270
- "groupByClass": true,
271
- "groupByLabel": false
272
- }
273
- ],
274
- "customizationRules": [
275
- {
276
- "ruleType": "ExtendedData",
277
- "items": {
278
- "modelId": "this.Model.Id",
279
- "categoryId": "this.Category.Id"
280
- }
281
- }
282
- ]
283
- },
284
- {
285
- "ruleType": "ChildNodes",
286
- "condition": "ParentNode.IsOfClass(\"GeometricElement3d\", \"BisCore\")",
287
- "specifications": [
288
- {
289
- "specType": "RelatedInstanceNodes",
290
- "relationshipPaths": [
291
- {
292
- "relationship": {
293
- "schemaName": "BisCore",
294
- "className": "ElementOwnsChildElements"
295
- },
296
- "direction": "Forward",
297
- "targetClass": {
298
- "schemaName": "BisCore",
299
- "className": "GeometricElement3d"
300
- }
301
- }
302
- ],
303
- "groupByClass": true,
304
- "groupByLabel": false
305
- }
306
- ],
307
- "customizationRules": [
308
- {
309
- "ruleType": "ExtendedData",
310
- "items": {
311
- "modelId": "this.Model.Id",
312
- "categoryId": "this.Category.Id"
313
- }
314
- }
315
- ]
316
- },
317
- {
318
- "ruleType": "Grouping",
319
- "class": {
320
- "schemaName": "BisCore",
321
- "className": "Subject"
322
- },
323
- "groups": [
324
- {
325
- "specType": "SameLabelInstance",
326
- "applicationStage": "PostProcess"
327
- }
328
- ]
329
- },
330
- {
331
- "ruleType": "Grouping",
332
- "class": {
333
- "schemaName": "BisCore",
334
- "className": "SpatialCategory"
335
- },
336
- "groups": [
337
- {
338
- "specType": "SameLabelInstance",
339
- "applicationStage": "PostProcess"
340
- }
341
- ]
342
- },
343
- {
344
- "ruleType": "ImageIdOverride",
345
- "condition": "ThisNode.IsInstanceNode ANDALSO ThisNode.IsOfClass(\"Subject\", \"BisCore\")",
346
- "imageIdExpression": "IIF(this.Parent.Id = NULL, \"icon-imodel-hollow-2\", \"icon-folder\")"
347
- },
348
- {
349
- "ruleType": "ImageIdOverride",
350
- "condition": "ThisNode.IsInstanceNode ANDALSO ThisNode.IsOfClass(\"Model\", \"BisCore\")",
351
- "imageIdExpression": "\"icon-model\""
352
- },
353
- {
354
- "ruleType": "ImageIdOverride",
355
- "condition": "ThisNode.IsInstanceNode ANDALSO ThisNode.IsOfClass(\"Category\", \"BisCore\")",
356
- "imageIdExpression": "\"icon-layers\""
357
- },
358
- {
359
- "ruleType": "ImageIdOverride",
360
- "condition": "ThisNode.IsInstanceNode ANDALSO ThisNode.IsOfClass(\"Element\", \"BisCore\")",
361
- "imageIdExpression": "\"icon-item\""
362
- },
363
- {
364
- "ruleType": "ImageIdOverride",
365
- "condition": "ThisNode.IsClassGroupingNode",
366
- "imageIdExpression": "\"icon-ec-class\""
367
- },
368
- {
369
- "ruleType": "Content",
370
- "condition": "ContentDisplayType = \"AssemblyElementsRequest\"",
371
- "specifications": [
372
- {
373
- "specType": "SelectedNodeInstances"
374
- },
375
- {
376
- "specType": "ContentRelatedInstances",
377
- "relationshipPaths": [
378
- {
379
- "relationship": {
380
- "schemaName": "BisCore",
381
- "className": "ElementOwnsChildElements"
382
- },
383
- "direction": "Forward",
384
- "count": "*"
385
- }
386
- ]
387
- }
388
- ]
389
- }
390
- ]
391
- }