@itwin/tree-widget-react 0.6.2 → 0.7.1

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 (118) hide show
  1. package/lib/cjs/TreeWidget.js +1 -1
  2. package/lib/cjs/TreeWidget.js.map +1 -1
  3. package/lib/cjs/components/IconButton.js +3 -3
  4. package/lib/cjs/components/IconButton.js.map +1 -1
  5. package/lib/cjs/components/TreeFilteringState.js +4 -4
  6. package/lib/cjs/components/TreeFilteringState.js.map +1 -1
  7. package/lib/cjs/components/TreeWidgetComponent.d.ts +1 -1
  8. package/lib/cjs/components/TreeWidgetComponent.js +5 -5
  9. package/lib/cjs/components/TreeWidgetComponent.js.map +1 -1
  10. package/lib/cjs/components/TreeWidgetComponent.scss +1 -1
  11. package/lib/cjs/components/TreeWidgetUiItemsProvider.d.ts +4 -5
  12. package/lib/cjs/components/TreeWidgetUiItemsProvider.js +19 -14
  13. package/lib/cjs/components/TreeWidgetUiItemsProvider.js.map +1 -1
  14. package/lib/cjs/components/search-bar/SearchBar.d.ts +0 -3
  15. package/lib/cjs/components/search-bar/SearchBar.js +17 -28
  16. package/lib/cjs/components/search-bar/SearchBar.js.map +1 -1
  17. package/lib/cjs/components/search-bar/SearchBar.scss +18 -34
  18. package/lib/cjs/components/search-bar/SearchBox.js +1 -1
  19. package/lib/cjs/components/search-bar/SearchBox.js.map +1 -1
  20. package/lib/cjs/components/trees/CategoriesVisibilityUtils.d.ts +4 -5
  21. package/lib/cjs/components/trees/CategoriesVisibilityUtils.js +6 -9
  22. package/lib/cjs/components/trees/CategoriesVisibilityUtils.js.map +1 -1
  23. package/lib/cjs/components/trees/IModelContentTree.js +4 -4
  24. package/lib/cjs/components/trees/IModelContentTree.js.map +1 -1
  25. package/lib/cjs/components/trees/VisibilityTreeEventHandler.d.ts +4 -5
  26. package/lib/cjs/components/trees/VisibilityTreeEventHandler.js +17 -9
  27. package/lib/cjs/components/trees/VisibilityTreeEventHandler.js.map +1 -1
  28. package/lib/cjs/components/trees/VisibilityTreeRenderer.d.ts +4 -4
  29. package/lib/cjs/components/trees/VisibilityTreeRenderer.js +2 -2
  30. package/lib/cjs/components/trees/VisibilityTreeRenderer.js.map +1 -1
  31. package/lib/cjs/components/trees/category-tree/CategoriesTree.d.ts +9 -5
  32. package/lib/cjs/components/trees/category-tree/CategoriesTree.js +7 -8
  33. package/lib/cjs/components/trees/category-tree/CategoriesTree.js.map +1 -1
  34. package/lib/cjs/components/trees/category-tree/CategoriesTreeComponent.d.ts +7 -2
  35. package/lib/cjs/components/trees/category-tree/CategoriesTreeComponent.js +64 -31
  36. package/lib/cjs/components/trees/category-tree/CategoriesTreeComponent.js.map +1 -1
  37. package/lib/cjs/components/trees/category-tree/CategoryVisibilityHandler.d.ts +9 -9
  38. package/lib/cjs/components/trees/category-tree/CategoryVisibilityHandler.js +8 -8
  39. package/lib/cjs/components/trees/category-tree/CategoryVisibilityHandler.js.map +1 -1
  40. package/lib/cjs/components/trees/models-tree/ModelsTree.d.ts +5 -7
  41. package/lib/cjs/components/trees/models-tree/ModelsTree.js +7 -7
  42. package/lib/cjs/components/trees/models-tree/ModelsTree.js.map +1 -1
  43. package/lib/cjs/components/trees/models-tree/ModelsTreeComponent.d.ts +19 -2
  44. package/lib/cjs/components/trees/models-tree/ModelsTreeComponent.js +108 -74
  45. package/lib/cjs/components/trees/models-tree/ModelsTreeComponent.js.map +1 -1
  46. package/lib/cjs/components/trees/models-tree/ModelsVisibilityHandler.d.ts +6 -8
  47. package/lib/cjs/components/trees/models-tree/ModelsVisibilityHandler.js.map +1 -1
  48. package/lib/cjs/components/trees/spatial-tree/SpatialTreeComponent.js +9 -7
  49. package/lib/cjs/components/trees/spatial-tree/SpatialTreeComponent.js.map +1 -1
  50. package/lib/cjs/components/utils/AutoSizer.js +4 -4
  51. package/lib/cjs/components/utils/AutoSizer.js.map +1 -1
  52. package/lib/cjs/tree-widget-react.d.ts +0 -1
  53. package/lib/cjs/tree-widget-react.js +0 -1
  54. package/lib/cjs/tree-widget-react.js.map +1 -1
  55. package/lib/cjs/types.d.ts +19 -5
  56. package/lib/cjs/types.js +4 -0
  57. package/lib/cjs/types.js.map +1 -1
  58. package/lib/esm/components/TreeWidgetComponent.d.ts +1 -1
  59. package/lib/esm/components/TreeWidgetComponent.js +1 -1
  60. package/lib/esm/components/TreeWidgetComponent.js.map +1 -1
  61. package/lib/esm/components/TreeWidgetComponent.scss +1 -1
  62. package/lib/esm/components/TreeWidgetUiItemsProvider.d.ts +4 -5
  63. package/lib/esm/components/TreeWidgetUiItemsProvider.js +13 -8
  64. package/lib/esm/components/TreeWidgetUiItemsProvider.js.map +1 -1
  65. package/lib/esm/components/search-bar/SearchBar.d.ts +0 -3
  66. package/lib/esm/components/search-bar/SearchBar.js +14 -25
  67. package/lib/esm/components/search-bar/SearchBar.js.map +1 -1
  68. package/lib/esm/components/search-bar/SearchBar.scss +18 -34
  69. package/lib/esm/components/trees/CategoriesVisibilityUtils.d.ts +4 -5
  70. package/lib/esm/components/trees/CategoriesVisibilityUtils.js +4 -7
  71. package/lib/esm/components/trees/CategoriesVisibilityUtils.js.map +1 -1
  72. package/lib/esm/components/trees/VisibilityTreeEventHandler.d.ts +4 -5
  73. package/lib/esm/components/trees/VisibilityTreeEventHandler.js +13 -5
  74. package/lib/esm/components/trees/VisibilityTreeEventHandler.js.map +1 -1
  75. package/lib/esm/components/trees/VisibilityTreeRenderer.d.ts +4 -4
  76. package/lib/esm/components/trees/VisibilityTreeRenderer.js +1 -1
  77. package/lib/esm/components/trees/VisibilityTreeRenderer.js.map +1 -1
  78. package/lib/esm/components/trees/category-tree/CategoriesTree.d.ts +9 -5
  79. package/lib/esm/components/trees/category-tree/CategoriesTree.js +2 -3
  80. package/lib/esm/components/trees/category-tree/CategoriesTree.js.map +1 -1
  81. package/lib/esm/components/trees/category-tree/CategoriesTreeComponent.d.ts +7 -2
  82. package/lib/esm/components/trees/category-tree/CategoriesTreeComponent.js +63 -30
  83. package/lib/esm/components/trees/category-tree/CategoriesTreeComponent.js.map +1 -1
  84. package/lib/esm/components/trees/category-tree/CategoryVisibilityHandler.d.ts +9 -9
  85. package/lib/esm/components/trees/category-tree/CategoryVisibilityHandler.js +4 -4
  86. package/lib/esm/components/trees/category-tree/CategoryVisibilityHandler.js.map +1 -1
  87. package/lib/esm/components/trees/models-tree/ModelsTree.d.ts +5 -7
  88. package/lib/esm/components/trees/models-tree/ModelsTree.js.map +1 -1
  89. package/lib/esm/components/trees/models-tree/ModelsTreeComponent.d.ts +19 -2
  90. package/lib/esm/components/trees/models-tree/ModelsTreeComponent.js +103 -69
  91. package/lib/esm/components/trees/models-tree/ModelsTreeComponent.js.map +1 -1
  92. package/lib/esm/components/trees/models-tree/ModelsVisibilityHandler.d.ts +6 -8
  93. package/lib/esm/components/trees/models-tree/ModelsVisibilityHandler.js.map +1 -1
  94. package/lib/esm/components/trees/spatial-tree/SpatialTreeComponent.js +4 -2
  95. package/lib/esm/components/trees/spatial-tree/SpatialTreeComponent.js.map +1 -1
  96. package/lib/esm/tree-widget-react.d.ts +0 -1
  97. package/lib/esm/tree-widget-react.js +0 -1
  98. package/lib/esm/tree-widget-react.js.map +1 -1
  99. package/lib/esm/types.d.ts +19 -5
  100. package/lib/esm/types.js +4 -0
  101. package/lib/esm/types.js.map +1 -1
  102. package/package.json +32 -40
  103. package/lib/cjs/components/header/TreeHeader.d.ts +0 -15
  104. package/lib/cjs/components/header/TreeHeader.js +0 -43
  105. package/lib/cjs/components/header/TreeHeader.js.map +0 -1
  106. package/lib/cjs/components/header/TreeHeader.scss +0 -20
  107. package/lib/cjs/components/search-bar/Popup.d.ts +0 -50
  108. package/lib/cjs/components/search-bar/Popup.js +0 -246
  109. package/lib/cjs/components/search-bar/Popup.js.map +0 -1
  110. package/lib/cjs/components/search-bar/Popup.scss +0 -316
  111. package/lib/esm/components/header/TreeHeader.d.ts +0 -15
  112. package/lib/esm/components/header/TreeHeader.js +0 -20
  113. package/lib/esm/components/header/TreeHeader.js.map +0 -1
  114. package/lib/esm/components/header/TreeHeader.scss +0 -20
  115. package/lib/esm/components/search-bar/Popup.d.ts +0 -50
  116. package/lib/esm/components/search-bar/Popup.js +0 -220
  117. package/lib/esm/components/search-bar/Popup.js.map +0 -1
  118. package/lib/esm/components/search-bar/Popup.scss +0 -316
@@ -27,13 +27,13 @@ exports.AutoSizer = void 0;
27
27
  const react_1 = __importStar(require("react"));
28
28
  const core_react_1 = require("@itwin/core-react");
29
29
  const AutoSizer = (props) => {
30
- const [height, setHeight] = react_1.useState(0);
31
- const [width, setWidth] = react_1.useState(0);
32
- const handleResize = react_1.useCallback((w, h) => {
30
+ const [height, setHeight] = (0, react_1.useState)(0);
31
+ const [width, setWidth] = (0, react_1.useState)(0);
32
+ const handleResize = (0, react_1.useCallback)((w, h) => {
33
33
  setHeight(h);
34
34
  setWidth(w);
35
35
  }, []);
36
- const ref = core_react_1.useResizeObserver(handleResize);
36
+ const ref = (0, core_react_1.useResizeObserver)(handleResize);
37
37
  return (react_1.default.createElement("div", { ref: ref, style: { width: "100%", height: "100%" } }, props.children({ width, height })));
38
38
  };
39
39
  exports.AutoSizer = AutoSizer;
@@ -1 +1 @@
1
- {"version":3,"file":"AutoSizer.js","sourceRoot":"","sources":["../../../../src/components/utils/AutoSizer.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;;;+FAG+F;AAC/F,+CAAqD;AACrD,kDAAsD;AAW/C,MAAM,SAAS,GAAG,CAAC,KAAqB,EAAE,EAAE;IACjD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,gBAAQ,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,gBAAQ,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,YAAY,GAAG,mBAAW,CAAC,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;QACxD,SAAS,CAAC,CAAC,CAAC,CAAC;QACb,QAAQ,CAAC,CAAC,CAAC,CAAC;IACd,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,MAAM,GAAG,GAAG,8BAAiB,CAAiB,YAAY,CAAC,CAAC;IAE5D,OAAO,CACL,uCAAK,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IACpD,KAAK,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAC9B,CACP,CAAC;AACJ,CAAC,CAAC;AAdW,QAAA,SAAS,aAcpB","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 { useResizeObserver } from \"@itwin/core-react\";\n\nexport interface Size {\n width: number;\n height: number;\n}\n\nexport interface AutoSizerProps {\n children: (size: Size) => React.ReactElement | null;\n}\n\nexport const AutoSizer = (props: AutoSizerProps) => {\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 return (\n <div ref={ref} style={{ width: \"100%\", height: \"100%\" }}>\n {props.children({ width, height })}\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"AutoSizer.js","sourceRoot":"","sources":["../../../../src/components/utils/AutoSizer.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;;;+FAG+F;AAC/F,+CAAqD;AACrD,kDAAsD;AAW/C,MAAM,SAAS,GAAG,CAAC,KAAqB,EAAE,EAAE;IACjD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAC;IACxC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAC;IACtC,MAAM,YAAY,GAAG,IAAA,mBAAW,EAAC,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;QACxD,SAAS,CAAC,CAAC,CAAC,CAAC;QACb,QAAQ,CAAC,CAAC,CAAC,CAAC;IACd,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,MAAM,GAAG,GAAG,IAAA,8BAAiB,EAAiB,YAAY,CAAC,CAAC;IAE5D,OAAO,CACL,uCAAK,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IACpD,KAAK,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAC9B,CACP,CAAC;AACJ,CAAC,CAAC;AAdW,QAAA,SAAS,aAcpB","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 { useResizeObserver } from \"@itwin/core-react\";\n\nexport interface Size {\n width: number;\n height: number;\n}\n\nexport interface AutoSizerProps {\n children: (size: Size) => React.ReactElement | null;\n}\n\nexport const AutoSizer = (props: AutoSizerProps) => {\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 return (\n <div ref={ref} style={{ width: \"100%\", height: \"100%\" }}>\n {props.children({ width, height })}\n </div>\n );\n};\n"]}
@@ -1,7 +1,6 @@
1
1
  export * from "./types";
2
2
  export * from "./TreeWidget";
3
3
  export * from "./components/TreeWidgetComponent";
4
- export * from "./components/header/TreeHeader";
5
4
  export * from "./components/trees";
6
5
  export * from "./components/TreeWidgetUiItemsProvider";
7
6
  //# sourceMappingURL=tree-widget-react.d.ts.map
@@ -17,7 +17,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./types"), exports);
18
18
  __exportStar(require("./TreeWidget"), exports);
19
19
  __exportStar(require("./components/TreeWidgetComponent"), exports);
20
- __exportStar(require("./components/header/TreeHeader"), exports);
21
20
  __exportStar(require("./components/trees"), exports);
22
21
  __exportStar(require("./components/TreeWidgetUiItemsProvider"), exports);
23
22
  //# sourceMappingURL=tree-widget-react.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tree-widget-react.js","sourceRoot":"","sources":["../../src/tree-widget-react.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;;;;;;;;;;AAE/F,0CAAwB;AACxB,+CAA6B;AAC7B,mEAAiD;AACjD,iEAA+C;AAC/C,qDAAmC;AACnC,yEAAuD","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\nexport * from \"./types\";\nexport * from \"./TreeWidget\";\nexport * from \"./components/TreeWidgetComponent\";\nexport * from \"./components/header/TreeHeader\";\nexport * from \"./components/trees\";\nexport * from \"./components/TreeWidgetUiItemsProvider\";\n"]}
1
+ {"version":3,"file":"tree-widget-react.js","sourceRoot":"","sources":["../../src/tree-widget-react.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;;;;;;;;;;AAE/F,0CAAwB;AACxB,+CAA6B;AAC7B,mEAAiD;AACjD,qDAAmC;AACnC,yEAAuD","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\nexport * from \"./types\";\nexport * from \"./TreeWidget\";\nexport * from \"./components/TreeWidgetComponent\";\nexport * from \"./components/trees\";\nexport * from \"./components/TreeWidgetUiItemsProvider\";\n"]}
@@ -1,15 +1,29 @@
1
1
  /// <reference types="react" />
2
- import type { StagePanelLocation, StagePanelSection } from "@itwin/appui-abstract";
3
- import type { SpatialContainmentTreeProps } from "@itwin/appui-react";
2
+ import type { SpatialContainmentTreeProps, StagePanelLocation, StagePanelSection } from "@itwin/appui-react";
4
3
  import type { SelectableContentDefinition } from "@itwin/components-react";
5
- import type { IModelConnection } from "@itwin/core-frontend";
4
+ import type { IModelConnection, ScreenViewport } from "@itwin/core-frontend";
6
5
  import type { CategoryTreeProps } from "./components/trees/category-tree/CategoriesTree";
7
6
  import type { ModelsTreeProps } from "./components/trees/models-tree/ModelsTree";
7
+ import type { CategoryInfo, ModelInfo } from "./tree-widget-react";
8
+ export interface TreeHeaderButtonProps {
9
+ viewport: ScreenViewport;
10
+ }
11
+ export interface ModelsTreeHeaderButtonProps extends TreeHeaderButtonProps {
12
+ models: ModelInfo[];
13
+ }
14
+ export interface CategoriesTreeHeaderButtonProps extends TreeHeaderButtonProps {
15
+ categories: CategoryInfo[];
16
+ filteredCategories?: CategoryInfo[];
17
+ }
8
18
  export interface IModelContentTreeProps extends Omit<React.AllHTMLAttributes<HTMLDivElement>, "children"> {
9
19
  iModel: IModelConnection;
10
20
  }
11
- export declare type ModelTreeProps = Omit<ModelsTreeProps, "iModel" | "activeView" | "width" | "height" | "filterInfo" | "onFilterApplied">;
12
- export declare type CategoriesTreeProps = Omit<CategoryTreeProps, "iModel" | "activeView" | "width" | "height" | "filterInfo" | "onFilterApplied">;
21
+ export interface ModelTreeProps extends Omit<ModelsTreeProps, "iModel" | "activeView" | "width" | "height" | "filterInfo" | "onFilterApplied"> {
22
+ headerButtons?: Array<(props: ModelsTreeHeaderButtonProps) => React.ReactNode>;
23
+ }
24
+ export interface CategoriesTreeProps extends Omit<CategoryTreeProps, "iModel" | "activeView" | "width" | "height" | "filterInfo" | "onFilterApplied" | "categories"> {
25
+ headerButtons?: Array<(props: CategoriesTreeHeaderButtonProps) => React.ReactNode>;
26
+ }
13
27
  export declare type SpatialTreeProps = Omit<SpatialContainmentTreeProps, "iModel" | "width" | "height">;
14
28
  export declare const ModelsTreeId = "models-tree";
15
29
  export declare const CategoriesTreeId = "categories-tree";
package/lib/cjs/types.js CHANGED
@@ -1,4 +1,8 @@
1
1
  "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
2
6
  Object.defineProperty(exports, "__esModule", { value: true });
3
7
  exports.SpatialContainmentTreeId = exports.CategoriesTreeId = exports.ModelsTreeId = void 0;
4
8
  exports.ModelsTreeId = "models-tree";
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAyCa,QAAA,YAAY,GAAG,aAAa,CAAC;AAE7B,QAAA,gBAAgB,GAAG,iBAAiB,CAAC;AAErC,QAAA,wBAAwB,GAAG,0BAA0B,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 type { StagePanelLocation, StagePanelSection } from \"@itwin/appui-abstract\";\nimport type { SpatialContainmentTreeProps } from \"@itwin/appui-react\";\nimport type { SelectableContentDefinition } from \"@itwin/components-react\";\nimport type { IModelConnection } from \"@itwin/core-frontend\";\nimport type { CategoryTreeProps } from \"./components/trees/category-tree/CategoriesTree\";\nimport type { ModelsTreeProps } from \"./components/trees/models-tree/ModelsTree\";\n\nexport interface IModelContentTreeProps\n extends Omit<React.AllHTMLAttributes<HTMLDivElement>, \"children\"> {\n iModel: IModelConnection;\n}\n\nexport type ModelTreeProps = Omit<\nModelsTreeProps,\n| \"iModel\"\n| \"activeView\"\n| \"width\"\n| \"height\"\n| \"filterInfo\"\n| \"onFilterApplied\"\n>;\n\nexport type CategoriesTreeProps = Omit<\nCategoryTreeProps,\n| \"iModel\"\n| \"activeView\"\n| \"width\"\n| \"height\"\n| \"filterInfo\"\n| \"onFilterApplied\"\n>;\n\nexport type SpatialTreeProps = Omit<\nSpatialContainmentTreeProps,\n\"iModel\" | \"width\" | \"height\"\n>;\n\nexport const ModelsTreeId = \"models-tree\";\n\nexport const CategoriesTreeId = \"categories-tree\";\n\nexport const SpatialContainmentTreeId = \"spatial-containment-tree\";\n\nexport interface TreeWidgetOptions {\n defaultPanelLocation?: StagePanelLocation;\n defaultPanelSection?: StagePanelSection;\n defaultTreeWidgetPriority?: number;\n enableElementsClassGrouping?: boolean;\n additionalTrees?: SelectableContentDefinition[];\n modelsTreeProps?: ModelTreeProps;\n categoriesTreeProps?: CategoriesTreeProps;\n spatialTreeProps?: SpatialTreeProps;\n defaultTreeId?: string;\n hideTrees?: {\n modelsTree?: boolean;\n categoriesTree?: boolean;\n spatialTree?: boolean;\n };\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAoDlF,QAAA,YAAY,GAAG,aAAa,CAAC;AAE7B,QAAA,gBAAgB,GAAG,iBAAiB,CAAC;AAErC,QAAA,wBAAwB,GAAG,0BAA0B,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*--------------------------------------------------------------------------------------------*/\n\nimport type { SpatialContainmentTreeProps, StagePanelLocation, StagePanelSection } from \"@itwin/appui-react\";\nimport type { SelectableContentDefinition } from \"@itwin/components-react\";\nimport type { IModelConnection, ScreenViewport } from \"@itwin/core-frontend\";\nimport type { CategoryTreeProps } from \"./components/trees/category-tree/CategoriesTree\";\nimport type { ModelsTreeProps } from \"./components/trees/models-tree/ModelsTree\";\nimport type { CategoryInfo, ModelInfo } from \"./tree-widget-react\";\n\nexport interface TreeHeaderButtonProps {\n viewport: ScreenViewport;\n}\n\nexport interface ModelsTreeHeaderButtonProps extends TreeHeaderButtonProps {\n models: ModelInfo[];\n}\n\nexport interface CategoriesTreeHeaderButtonProps extends TreeHeaderButtonProps {\n categories: CategoryInfo[];\n filteredCategories?: CategoryInfo[];\n}\n\nexport interface IModelContentTreeProps\n extends Omit<React.AllHTMLAttributes<HTMLDivElement>, \"children\"> {\n iModel: IModelConnection;\n}\n\nexport interface ModelTreeProps extends Omit<ModelsTreeProps,\n| \"iModel\"\n| \"activeView\"\n| \"width\"\n| \"height\"\n| \"filterInfo\"\n| \"onFilterApplied\"\n> { headerButtons?: Array<(props: ModelsTreeHeaderButtonProps) => React.ReactNode> }\n\nexport interface CategoriesTreeProps extends Omit<CategoryTreeProps,\n| \"iModel\"\n| \"activeView\"\n| \"width\"\n| \"height\"\n| \"filterInfo\"\n| \"onFilterApplied\"\n| \"categories\"\n> { headerButtons?: Array<(props: CategoriesTreeHeaderButtonProps) => React.ReactNode> }\n\nexport type SpatialTreeProps = Omit<\n// eslint-disable-next-line deprecation/deprecation\nSpatialContainmentTreeProps,\n\"iModel\" | \"width\" | \"height\"\n>;\n\nexport const ModelsTreeId = \"models-tree\";\n\nexport const CategoriesTreeId = \"categories-tree\";\n\nexport const SpatialContainmentTreeId = \"spatial-containment-tree\";\n\nexport interface TreeWidgetOptions {\n defaultPanelLocation?: StagePanelLocation;\n defaultPanelSection?: StagePanelSection;\n defaultTreeWidgetPriority?: number;\n enableElementsClassGrouping?: boolean;\n additionalTrees?: SelectableContentDefinition[];\n modelsTreeProps?: ModelTreeProps;\n categoriesTreeProps?: CategoriesTreeProps;\n spatialTreeProps?: SpatialTreeProps;\n defaultTreeId?: string;\n hideTrees?: {\n modelsTree?: boolean;\n categoriesTree?: boolean;\n spatialTree?: boolean;\n };\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import "./TreeWidgetComponent.scss";
3
- import type { SelectableContentDefinition } from "@itwin/components-react";
3
+ import { SelectableContentDefinition } from "@itwin/components-react";
4
4
  interface TreeWidgetComponentProps {
5
5
  trees?: SelectableContentDefinition[];
6
6
  }
@@ -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 * as React from "react";
6
5
  import "./TreeWidgetComponent.scss";
6
+ import * as React from "react";
7
7
  import { SelectableContent } from "@itwin/components-react";
8
8
  export function TreeWidgetComponent(props) {
9
9
  const trees = [];
@@ -1 +1 @@
1
- {"version":3,"file":"TreeWidgetComponent.js","sourceRoot":"","sources":["../../../src/components/TreeWidgetComponent.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,4BAA4B,CAAC;AAEpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAM5D,MAAM,UAAU,mBAAmB,CAAC,KAA+B;IACjE,MAAM,KAAK,GAAkC,EAAE,CAAC;IAEhD,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QAC3C,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE;YAC/B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACnB;KACF;IAED,OAAO,CACL,6BAAK,SAAS,EAAC,+BAA+B;QAC5C,oBAAC,iBAAiB,IAChB,QAAQ,EAAE,KAAK,EACf,wBAAwB,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GACrC,CACE,CACP,CAAC;AACJ,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 * as React from \"react\";\nimport \"./TreeWidgetComponent.scss\";\nimport type { SelectableContentDefinition } from \"@itwin/components-react\";\nimport { SelectableContent } from \"@itwin/components-react\";\n\ninterface TreeWidgetComponentProps {\n trees?: SelectableContentDefinition[];\n}\n\nexport function TreeWidgetComponent(props: TreeWidgetComponentProps) {\n const trees: SelectableContentDefinition[] = [];\n\n if (props.trees && props.trees.length !== 0) {\n for (const entry of props.trees) {\n trees.push(entry);\n }\n }\n\n return (\n <div className=\"tree-widget-visibility-widget\">\n <SelectableContent\n children={trees} // eslint-disable-line react/no-children-prop\n defaultSelectedContentId={trees[0].id}\n />\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"TreeWidgetComponent.js","sourceRoot":"","sources":["../../../src/components/TreeWidgetComponent.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F,OAAO,4BAA4B,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAA+B,MAAM,yBAAyB,CAAC;AAMzF,MAAM,UAAU,mBAAmB,CAAC,KAA+B;IACjE,MAAM,KAAK,GAAkC,EAAE,CAAC;IAEhD,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QAC3C,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE;YAC/B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACnB;KACF;IAED,OAAO,CACL,6BAAK,SAAS,EAAC,+BAA+B;QAC5C,oBAAC,iBAAiB,IAChB,QAAQ,EAAE,KAAK,EACf,wBAAwB,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GACrC,CACE,CACP,CAAC;AACJ,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*--------------------------------------------------------------------------------------------*/\n\nimport \"./TreeWidgetComponent.scss\";\nimport * as React from \"react\";\nimport { SelectableContent, SelectableContentDefinition } from \"@itwin/components-react\";\n\ninterface TreeWidgetComponentProps {\n trees?: SelectableContentDefinition[];\n}\n\nexport function TreeWidgetComponent(props: TreeWidgetComponentProps) {\n const trees: SelectableContentDefinition[] = [];\n\n if (props.trees && props.trees.length !== 0) {\n for (const entry of props.trees) {\n trees.push(entry);\n }\n }\n\n return (\n <div className=\"tree-widget-visibility-widget\">\n <SelectableContent\n children={trees} // eslint-disable-line react/no-children-prop\n defaultSelectedContentId={trees[0].id}\n />\n </div>\n );\n}\n"]}
@@ -60,5 +60,5 @@
60
60
  }
61
61
 
62
62
  .tree-widget-search-bar {
63
- margin-bottom: $uicore-s;
63
+ margin-bottom: 4px;
64
64
  }
@@ -1,12 +1,11 @@
1
- import type { AbstractWidgetProps, UiItemsProvider } from "@itwin/appui-abstract";
2
- import { StagePanelSection } from "@itwin/appui-abstract";
3
- import { AbstractZoneLocation, StagePanelLocation } from "@itwin/appui-abstract";
4
- import type { TreeWidgetOptions } from "../types";
1
+ import { AbstractZoneLocation } from "@itwin/appui-abstract";
2
+ import { CommonWidgetProps, StagePanelLocation, StagePanelSection, UiItemsProvider } from "@itwin/appui-react";
3
+ import { TreeWidgetOptions } from "../types";
5
4
  export declare const TreeWidgetId = "tree-widget-react:trees";
6
5
  export declare class TreeWidgetUiItemsProvider implements UiItemsProvider {
7
6
  private _treeWidgetOptions?;
8
7
  readonly id = "TreeWidgetUiItemsProvider";
9
8
  constructor(_treeWidgetOptions?: TreeWidgetOptions | undefined);
10
- provideWidgets(_stageId: string, stageUsage: string, location: StagePanelLocation, section?: StagePanelSection, zoneLocation?: AbstractZoneLocation): ReadonlyArray<AbstractWidgetProps>;
9
+ provideWidgets(_stageId: string, stageUsage: string, location: StagePanelLocation, section?: StagePanelSection, zoneLocation?: AbstractZoneLocation): ReadonlyArray<CommonWidgetProps>;
11
10
  }
12
11
  //# sourceMappingURL=TreeWidgetUiItemsProvider.d.ts.map
@@ -1,13 +1,18 @@
1
- import { StagePanelSection, } from "@itwin/appui-abstract";
2
- import { AbstractZoneLocation, StagePanelLocation, StageUsage, } from "@itwin/appui-abstract";
3
- import { ClassGroupingOption, UiFramework } from "@itwin/appui-react";
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
+ /* eslint-disable react/display-name */
4
6
  import React from "react";
5
- import { TreeWidgetComponent } from "./TreeWidgetComponent";
7
+ import { AbstractZoneLocation } from "@itwin/appui-abstract";
8
+ import { StagePanelLocation, StagePanelSection, StageUsage, UiFramework } from "@itwin/appui-react";
9
+ import { TreeWidget } from "../TreeWidget";
10
+ import { CategoriesTreeId, ModelsTreeId, SpatialContainmentTreeId } from "../types";
6
11
  import { CategoriesTreeComponent } from "./trees/category-tree/CategoriesTreeComponent";
12
+ import { ClassGroupingOption } from "./trees/Common";
7
13
  import { ModelsTreeComponent } from "./trees/models-tree/ModelsTreeComponent";
8
14
  import { SpatialTreeComponent } from "./trees/spatial-tree/SpatialTreeComponent";
9
- import { TreeWidget } from "../TreeWidget";
10
- import { CategoriesTreeId, ModelsTreeId, SpatialContainmentTreeId } from "../types";
15
+ import { TreeWidgetComponent } from "./TreeWidgetComponent";
11
16
  export const TreeWidgetId = "tree-widget-react:trees";
12
17
  export class TreeWidgetUiItemsProvider {
13
18
  constructor(_treeWidgetOptions) {
@@ -24,8 +29,8 @@ export class TreeWidgetUiItemsProvider {
24
29
  if (
25
30
  // eslint-disable-next-line deprecation/deprecation
26
31
  (!section && stageUsage === StageUsage.General && zoneLocation === AbstractZoneLocation.CenterRight) ||
27
- (stageUsage === StageUsage.General && location === preferredLocation && section === preferredPanelSection
28
- && UiFramework.uiVersion !== "1")) {
32
+ // eslint-disable-next-line deprecation/deprecation
33
+ (stageUsage === StageUsage.General && location === preferredLocation && section === preferredPanelSection && UiFramework.uiVersion !== "1")) {
29
34
  const trees = [];
30
35
  if (!((_f = (_e = this._treeWidgetOptions) === null || _e === void 0 ? void 0 : _e.hideTrees) === null || _f === void 0 ? void 0 : _f.modelsTree)) {
31
36
  trees.push({
@@ -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*--------------------------------------------------------------------------------------------*/\n/* eslint-disable react/display-name */\nimport type {\n AbstractWidgetProps,\n UiItemsProvider,\n} from \"@itwin/appui-abstract\";\nimport {\n StagePanelSection,\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/category-tree/CategoriesTreeComponent\";\nimport { ModelsTreeComponent } from \"./trees/models-tree/ModelsTreeComponent\";\nimport { SpatialTreeComponent } from \"./trees/spatial-tree/SpatialTreeComponent\";\nimport type { SelectableContentDefinition } from \"@itwin/components-react\";\nimport { TreeWidget } from \"../TreeWidget\";\nimport type { TreeWidgetOptions } from \"../types\";\nimport { CategoriesTreeId, ModelsTreeId, SpatialContainmentTreeId } 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 const preferredLocation = this._treeWidgetOptions?.defaultPanelLocation ?? StagePanelLocation.Right;\n const preferredPanelSection = this._treeWidgetOptions?.defaultPanelSection ?? StagePanelSection.Start;\n if (\n // eslint-disable-next-line deprecation/deprecation\n (!section && stageUsage === StageUsage.General && zoneLocation === AbstractZoneLocation.CenterRight) ||\n (stageUsage === StageUsage.General && location === preferredLocation && section === preferredPanelSection\n && UiFramework.uiVersion !== \"1\")\n ) {\n const trees: SelectableContentDefinition[] = [];\n\n if (!this._treeWidgetOptions?.hideTrees?.modelsTree) {\n trees.push({\n label: TreeWidget.translate(\"models\"),\n id: ModelsTreeId,\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: CategoriesTreeId,\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: SpatialContainmentTreeId,\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 if (this._treeWidgetOptions?.defaultTreeId && trees.length !== 0) {\n // Adding the defaultTree to first index\n const { defaultTreeId } = this._treeWidgetOptions;\n const extractedDefaultTree = trees.filter((tree) => tree.id === defaultTreeId)[0];\n const index = trees.indexOf(extractedDefaultTree);\n trees.unshift(trees.splice(index, 1)[0]);\n }\n\n widgets.push({\n id: TreeWidgetId,\n label: TreeWidget.translate(\"treeview\"),\n getWidgetContent: () => <TreeWidgetComponent trees={trees} />,\n icon: \"icon-hierarchy-tree\",\n restoreTransientState: () => true,\n priority: this._treeWidgetOptions?.defaultTreeWidgetPriority,\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 */\n\nimport React from \"react\";\nimport { AbstractZoneLocation } from \"@itwin/appui-abstract\";\nimport { CommonWidgetProps, StagePanelLocation, StagePanelSection, StageUsage, UiFramework, UiItemsProvider } from \"@itwin/appui-react\";\nimport { SelectableContentDefinition } from \"@itwin/components-react\";\nimport { TreeWidget } from \"../TreeWidget\";\nimport { CategoriesTreeId, ModelsTreeId, SpatialContainmentTreeId, TreeWidgetOptions } from \"../types\";\nimport { CategoriesTreeComponent } from \"./trees/category-tree/CategoriesTreeComponent\";\nimport { ClassGroupingOption } from \"./trees/Common\";\nimport { ModelsTreeComponent } from \"./trees/models-tree/ModelsTreeComponent\";\nimport { SpatialTreeComponent } from \"./trees/spatial-tree/SpatialTreeComponent\";\nimport { TreeWidgetComponent } from \"./TreeWidgetComponent\";\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<CommonWidgetProps> {\n const widgets: CommonWidgetProps[] = [];\n const preferredLocation = this._treeWidgetOptions?.defaultPanelLocation ?? StagePanelLocation.Right;\n const preferredPanelSection = this._treeWidgetOptions?.defaultPanelSection ?? StagePanelSection.Start;\n if (\n // eslint-disable-next-line deprecation/deprecation\n (!section && stageUsage === StageUsage.General && zoneLocation === AbstractZoneLocation.CenterRight) ||\n // eslint-disable-next-line deprecation/deprecation\n (stageUsage === StageUsage.General && location === preferredLocation && section === preferredPanelSection && UiFramework.uiVersion !== \"1\")\n ) {\n const trees: SelectableContentDefinition[] = [];\n\n if (!this._treeWidgetOptions?.hideTrees?.modelsTree) {\n trees.push({\n label: TreeWidget.translate(\"models\"),\n id: ModelsTreeId,\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: CategoriesTreeId,\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: SpatialContainmentTreeId,\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 if (this._treeWidgetOptions?.defaultTreeId && trees.length !== 0) {\n // Adding the defaultTree to first index\n const { defaultTreeId } = this._treeWidgetOptions;\n const extractedDefaultTree = trees.filter((tree) => tree.id === defaultTreeId)[0];\n const index = trees.indexOf(extractedDefaultTree);\n trees.unshift(trees.splice(index, 1)[0]);\n }\n\n widgets.push({\n id: TreeWidgetId,\n label: TreeWidget.translate(\"treeview\"),\n getWidgetContent: () => <TreeWidgetComponent trees={trees} />,\n icon: \"icon-hierarchy-tree\",\n restoreTransientState: () => true,\n priority: this._treeWidgetOptions?.defaultTreeWidgetPriority,\n });\n }\n\n return widgets;\n }\n}\n"]}
@@ -39,14 +39,11 @@ interface SearchBarState {
39
39
  }
40
40
  /** SearchBox with expanding search box capability */
41
41
  export declare class SearchBar extends React.PureComponent<SearchBarProps, SearchBarState> {
42
- private _target;
43
42
  private _searchBox;
44
43
  static defaultProps: Partial<SearchBarProps>;
45
44
  constructor(props: any);
46
45
  componentDidUpdate(prevProps: SearchBarProps): Promise<void>;
47
46
  private _onToggleSearch;
48
- private _onCloseDropdown;
49
- private _onToggleDropdown;
50
47
  render(): JSX.Element;
51
48
  }
52
49
  export {};
@@ -4,11 +4,10 @@
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  import * as React from "react";
6
6
  import classnames from "classnames";
7
- import { RelativePosition } from "@itwin/appui-abstract";
8
- import { Popup } from "./Popup";
9
7
  import { SearchBox } from "./SearchBox";
10
- import { IconButton } from "../IconButton";
11
8
  import "./SearchBar.scss";
9
+ import { ButtonGroup, DropdownMenu, IconButton, MenuItem, } from "@itwin/itwinui-react";
10
+ import { SvgMore, SvgSearch } from "@itwin/itwinui-icons-react";
12
11
  export var Alignment;
13
12
  (function (Alignment) {
14
13
  Alignment[Alignment["Left"] = 0] = "Left";
@@ -18,7 +17,6 @@ export var Alignment;
18
17
  export class SearchBar extends React.PureComponent {
19
18
  constructor(props) {
20
19
  super(props);
21
- this._target = null;
22
20
  this._searchBox = React.createRef();
23
21
  this._onToggleSearch = (_event) => {
24
22
  const showSearch = !this.state.showSearch;
@@ -30,12 +28,6 @@ export class SearchBar extends React.PureComponent {
30
28
  }, 100); // timeout allows the search bar animation to complete!
31
29
  });
32
30
  };
33
- this._onCloseDropdown = () => {
34
- this.setState({ showDropdown: false });
35
- };
36
- this._onToggleDropdown = () => {
37
- this.setState((prevState) => ({ showDropdown: !prevState.showDropdown }));
38
- };
39
31
  this.state = { showSearch: props.showSearch, showDropdown: false };
40
32
  }
41
33
  async componentDidUpdate(prevProps) {
@@ -44,28 +36,25 @@ export class SearchBar extends React.PureComponent {
44
36
  }
45
37
  render() {
46
38
  const { value, alignment, valueChangedDelay, placeholder, enableGrouping, title, } = this.props;
47
- const { showSearch, showDropdown } = this.state;
39
+ const { showSearch } = this.state;
48
40
  const classes = classnames("tree-widget-search-bar", this.props.className);
49
41
  const searchBoxClassName = classnames("search-bar-search-box", showSearch && "show");
50
42
  const searchIconClassName = classnames("search-bar-search-icon", showSearch ? "hide" : "show");
51
- const groupButtonClassName = classnames("search-bar-group-button2", showSearch && enableGrouping && "show");
52
- const contentClassName = classnames("search-bar-button-container", showSearch && "hide", alignment === Alignment.Right && "right");
53
- const searchBarContainerClassName = classnames("search-bar-search-container", enableGrouping && "search-bar-grouping-enabled");
43
+ const contentClassName = classnames("search-bar-button-container", showSearch && "contracted", alignment === Alignment.Right && "right");
54
44
  return (React.createElement("div", { className: classes },
55
- React.createElement("div", { className: groupButtonClassName, ref: (element) => {
56
- this._target = element;
57
- } },
58
- React.createElement(IconButton, { icon: "icon-more-2", onClick: this._onToggleDropdown })),
59
- React.createElement("div", { className: contentClassName }, this.props.children),
60
- React.createElement("div", { className: searchBarContainerClassName },
61
- React.createElement(SearchBox, { ref: this._searchBox, className: searchBoxClassName, searchText: value, valueChangedDelay: valueChangedDelay, placeholder: placeholder, onFilterCancel: this.props.onFilterCancel, onFilterClear: this.props.onFilterClear, onFilterStart: this.props.onFilterStart, resultCount: this.props.resultCount, onIconClick: this._onToggleSearch, onSelectedChanged: this.props.onSelectedChanged })),
62
- React.createElement(IconButton, { className: searchIconClassName, icon: "icon-search", onClick: this._onToggleSearch, title: title }),
63
- showSearch && (React.createElement(Popup, { isShown: showDropdown, position: RelativePosition.BottomLeft, onClose: this._onCloseDropdown, context: this._target },
64
- React.createElement("div", { className: "search-bar-dropdown-container" }, this.props.children)))));
45
+ enableGrouping && React.createElement("div", { className: contentClassName },
46
+ React.createElement(ButtonGroup, { overflowButton: (overflowStart) => (React.createElement(DropdownMenu, { menuItems: () => React.Children.toArray(this.props.children)
47
+ .slice(overflowStart === 0 ? 0 : overflowStart - 1)
48
+ .map((btn, index) => React.createElement(MenuItem, { key: index }, btn)), className: "search-bar-dropdown-container" },
49
+ React.createElement(IconButton, { styleType: "borderless", size: "small" },
50
+ React.createElement(SvgMore, null)))) }, this.props.children)),
51
+ showSearch ? (React.createElement("div", { className: "search-bar-search-container" },
52
+ React.createElement(SearchBox, { ref: this._searchBox, className: searchBoxClassName, searchText: value, valueChangedDelay: valueChangedDelay, placeholder: placeholder, onFilterCancel: this.props.onFilterCancel, onFilterClear: this.props.onFilterClear, onFilterStart: this.props.onFilterStart, resultCount: this.props.resultCount, onIconClick: this._onToggleSearch, onSelectedChanged: this.props.onSelectedChanged }))) : (React.createElement(IconButton, { className: searchIconClassName, onClick: this._onToggleSearch, title: title, styleType: "borderless", size: "small" },
53
+ React.createElement(SvgSearch, null)))));
65
54
  }
66
55
  }
67
56
  SearchBar.defaultProps = {
68
- alignment: Alignment.Left,
57
+ alignment: Alignment.Right,
69
58
  enableGrouping: true,
70
59
  };
71
60
  //# sourceMappingURL=SearchBar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SearchBar.js","sourceRoot":"","sources":["../../../../src/components/search-bar/SearchBar.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 * as React from \"react\";\nimport classnames from \"classnames\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { RelativePosition } from \"@itwin/appui-abstract\";\nimport { Popup } from \"./Popup\";\nimport { SearchBox } from \"./SearchBox\";\nimport { IconButton } from \"../IconButton\";\nimport \"./SearchBar.scss\";\n\nexport enum Alignment {\n Left = 0,\n Right = 1,\n}\n\nexport interface SearchBarProps extends CommonProps {\n /** value to set SearchBox */\n value?: string;\n /** Enable or disable dropdown functionality. If disabled, searchbox simply expands without displaying the group button */\n enableGrouping: boolean;\n /** show the search box in the open (expanded) state */\n showSearch?: boolean;\n /** alignment content to the left or right of the search bar */\n alignment?: Alignment;\n /** searchbox frequency to poll for changes in value (milliseconds) */\n valueChangedDelay?: number;\n /** searchbox placeholder value to show in gray before anything is entered in */\n placeholder?: string;\n /** title (tooltip) */\n title?: string;\n /** Tells the component if parent component is still handling the filtering */\n filteringInProgress?: boolean;\n /** Filtering is cleared after everything's loaded */\n onFilterStart: (newFilter: string) => void;\n /** Filtering is cleared after everything's loaded */\n onFilterCancel?: () => void;\n /** Filtering is cleared after everything's loaded */\n onFilterClear?: () => void;\n /** Total number of results/entries */\n resultCount: number;\n /** Callback to currently selected result/entry change */\n onSelectedChanged: (index: number) => void;\n}\n\ninterface SearchBarState {\n showSearch: boolean;\n showDropdown: boolean;\n}\n\n/** SearchBox with expanding search box capability */\nexport class SearchBar extends React.PureComponent<\nSearchBarProps,\nSearchBarState\n> {\n private _target: HTMLElement | null = null;\n private _searchBox = React.createRef<SearchBox>();\n\n public static defaultProps: Partial<SearchBarProps> = {\n alignment: Alignment.Left,\n enableGrouping: true,\n };\n\n constructor(props: any) {\n super(props);\n\n this.state = { showSearch: props.showSearch, showDropdown: false };\n }\n\n public async componentDidUpdate(prevProps: SearchBarProps) {\n if (prevProps.value !== this.props.value) {\n }\n }\n\n private _onToggleSearch = (\n _event?: React.MouseEvent<HTMLButtonElement, MouseEvent>\n ) => {\n const showSearch = !this.state.showSearch;\n this.setState({ showSearch }, () => {\n if (showSearch && this._searchBox.current)\n setTimeout(() => {\n if (this._searchBox.current) this._searchBox.current.focus();\n }, 100); // timeout allows the search bar animation to complete!\n });\n };\n\n private _onCloseDropdown = () => {\n this.setState({ showDropdown: false });\n };\n\n private _onToggleDropdown = () => {\n this.setState((prevState) => ({ showDropdown: !prevState.showDropdown }));\n };\n\n public render() {\n const {\n value,\n alignment,\n valueChangedDelay,\n placeholder,\n enableGrouping,\n title,\n } = this.props;\n const { showSearch, showDropdown } = this.state;\n\n const classes = classnames(\"tree-widget-search-bar\", this.props.className);\n const searchBoxClassName = classnames(\n \"search-bar-search-box\",\n showSearch && \"show\"\n );\n const searchIconClassName = classnames(\n \"search-bar-search-icon\",\n showSearch ? \"hide\" : \"show\"\n );\n const groupButtonClassName = classnames(\n \"search-bar-group-button2\",\n showSearch && enableGrouping && \"show\"\n );\n const contentClassName = classnames(\n \"search-bar-button-container\",\n showSearch && \"hide\",\n alignment === Alignment.Right && \"right\"\n );\n const searchBarContainerClassName = classnames(\n \"search-bar-search-container\",\n enableGrouping && \"search-bar-grouping-enabled\",\n );\n\n return (\n <div className={classes}>\n <div\n className={groupButtonClassName}\n ref={(element) => {\n this._target = element;\n }}\n >\n <IconButton icon=\"icon-more-2\" onClick={this._onToggleDropdown} />\n </div>\n <div className={contentClassName}>{this.props.children}</div>\n <div className={searchBarContainerClassName}>\n <SearchBox\n ref={this._searchBox}\n className={searchBoxClassName}\n searchText={value}\n valueChangedDelay={valueChangedDelay}\n placeholder={placeholder}\n onFilterCancel={this.props.onFilterCancel}\n onFilterClear={this.props.onFilterClear}\n onFilterStart={this.props.onFilterStart}\n resultCount={this.props.resultCount}\n onIconClick={this._onToggleSearch}\n onSelectedChanged={this.props.onSelectedChanged}\n />\n </div>\n <IconButton\n className={searchIconClassName}\n icon=\"icon-search\"\n onClick={this._onToggleSearch}\n title={title}\n />\n {showSearch && (\n <Popup\n isShown={showDropdown}\n position={RelativePosition.BottomLeft}\n onClose={this._onCloseDropdown}\n context={this._target}\n >\n <div className=\"search-bar-dropdown-container\">\n {this.props.children}\n </div>\n </Popup>\n )}\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"SearchBar.js","sourceRoot":"","sources":["../../../../src/components/search-bar/SearchBar.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 * as React from \"react\";\nimport classnames from \"classnames\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { SearchBox } from \"./SearchBox\";\nimport \"./SearchBar.scss\";\nimport {\n ButtonGroup,\n DropdownMenu,\n IconButton,\n MenuItem,\n} from \"@itwin/itwinui-react\";\nimport { SvgMore, SvgSearch } from \"@itwin/itwinui-icons-react\";\n\nexport enum Alignment {\n Left = 0,\n Right = 1,\n}\n\nexport interface SearchBarProps extends CommonProps {\n /** value to set SearchBox */\n value?: string;\n /** Enable or disable dropdown functionality. If disabled, searchbox simply expands without displaying the group button */\n enableGrouping: boolean;\n /** show the search box in the open (expanded) state */\n showSearch?: boolean;\n /** alignment content to the left or right of the search bar */\n alignment?: Alignment;\n /** searchbox frequency to poll for changes in value (milliseconds) */\n valueChangedDelay?: number;\n /** searchbox placeholder value to show in gray before anything is entered in */\n placeholder?: string;\n /** title (tooltip) */\n title?: string;\n /** Tells the component if parent component is still handling the filtering */\n filteringInProgress?: boolean;\n /** Filtering is cleared after everything's loaded */\n onFilterStart: (newFilter: string) => void;\n /** Filtering is cleared after everything's loaded */\n onFilterCancel?: () => void;\n /** Filtering is cleared after everything's loaded */\n onFilterClear?: () => void;\n /** Total number of results/entries */\n resultCount: number;\n /** Callback to currently selected result/entry change */\n onSelectedChanged: (index: number) => void;\n}\n\ninterface SearchBarState {\n showSearch: boolean;\n showDropdown: boolean;\n}\n\n/** SearchBox with expanding search box capability */\nexport class SearchBar extends React.PureComponent<\nSearchBarProps,\nSearchBarState\n> {\n private _searchBox = React.createRef<SearchBox>();\n\n public static defaultProps: Partial<SearchBarProps> = {\n alignment: Alignment.Right,\n enableGrouping: true,\n };\n\n constructor(props: any) {\n super(props);\n\n this.state = { showSearch: props.showSearch, showDropdown: false };\n }\n\n public async componentDidUpdate(prevProps: SearchBarProps) {\n if (prevProps.value !== this.props.value) {\n }\n }\n\n private _onToggleSearch = (\n _event?: React.MouseEvent<HTMLButtonElement, MouseEvent>\n ) => {\n const showSearch = !this.state.showSearch;\n this.setState({ showSearch }, () => {\n if (showSearch && this._searchBox.current)\n setTimeout(() => {\n if (this._searchBox.current) this._searchBox.current.focus();\n }, 100); // timeout allows the search bar animation to complete!\n });\n };\n\n public render() {\n const {\n value,\n alignment,\n valueChangedDelay,\n placeholder,\n enableGrouping,\n title,\n } = this.props;\n const { showSearch } = this.state;\n\n const classes = classnames(\"tree-widget-search-bar\", this.props.className);\n const searchBoxClassName = classnames(\n \"search-bar-search-box\",\n showSearch && \"show\"\n );\n const searchIconClassName = classnames(\n \"search-bar-search-icon\",\n showSearch ? \"hide\" : \"show\"\n );\n const contentClassName = classnames(\n \"search-bar-button-container\",\n showSearch && \"contracted\",\n alignment === Alignment.Right && \"right\"\n );\n\n return (\n <div className={classes}>\n {enableGrouping && <div className={contentClassName}>\n <ButtonGroup\n overflowButton={(overflowStart) => (\n <DropdownMenu\n menuItems={() =>\n React.Children.toArray(this.props.children)\n .slice(overflowStart === 0 ? 0 : overflowStart - 1)\n .map((btn, index) => <MenuItem key={index}>{btn}</MenuItem>)\n }\n className=\"search-bar-dropdown-container\"\n >\n <IconButton styleType=\"borderless\" size=\"small\">\n <SvgMore />\n </IconButton>\n </DropdownMenu>\n )}\n >\n {this.props.children}\n </ButtonGroup>\n </div>}\n {showSearch ? (\n <div className=\"search-bar-search-container\">\n <SearchBox\n ref={this._searchBox}\n className={searchBoxClassName}\n searchText={value}\n valueChangedDelay={valueChangedDelay}\n placeholder={placeholder}\n onFilterCancel={this.props.onFilterCancel}\n onFilterClear={this.props.onFilterClear}\n onFilterStart={this.props.onFilterStart}\n resultCount={this.props.resultCount}\n onIconClick={this._onToggleSearch}\n onSelectedChanged={this.props.onSelectedChanged}\n />\n </div>\n ) : (\n <IconButton\n className={searchIconClassName}\n onClick={this._onToggleSearch}\n title={title}\n styleType=\"borderless\"\n size=\"small\"\n >\n <SvgSearch />\n </IconButton>\n )}\n </div>\n );\n }\n}\n"]}
@@ -4,54 +4,45 @@
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  @import "~@itwin/core-react/lib/cjs/core-react/index";
6
6
 
7
- .tree-widget-search-bar {
7
+ // Buttons dropdown container
8
+ .search-bar-dropdown-container {
8
9
  display: flex;
10
+ flex-direction: column;
9
11
  align-items: center;
10
- position: relative;
12
+ margin-top: 6px;
13
+ }
11
14
 
12
- // "..." group button
13
- .search-bar-group-button2 {
14
- opacity: 0;
15
- display: none;
16
- animation: hide ease-in 0.1s;
17
- animation-fill-mode: forwards;
15
+ .tree-widget-header-tree-toolbar-icon {
16
+ color: $buic-icon-color;
17
+ }
18
18
 
19
- &.search-bar-group-button2.show {
20
- animation: show ease-in 0.25s;
21
- animation-delay: 0.1s;
22
- animation-fill-mode: forwards;
23
- display: block;
24
- }
25
- }
19
+ .tree-widget-search-bar {
20
+ display: flex;
21
+ align-items: center;
22
+ position: relative;
26
23
 
27
24
  // button container
28
25
  .search-bar-button-container {
29
26
  display: flex;
30
27
  align-items: center;
28
+ width: calc(100% - 26px);
31
29
 
32
30
  &.right {
33
31
  justify-content: flex-end;
34
32
  }
35
33
 
36
- &.hide {
37
- display: none;
34
+ &.contracted {
35
+ width: 32px;
38
36
  }
39
37
  }
40
38
 
41
- // dropdown container
42
- .search-bar-dropdown-container {
43
- display: flex;
44
- align-items: center;
45
- padding: 0 $uicore-s;
46
- }
47
-
48
39
  // override of the search box styling
49
40
  .search-bar-search-icon {
50
- position: absolute;
51
- right: 0;
52
41
  opacity: 0;
53
42
  transition: all 0.2s ease;
54
43
  color: $buic-icon-color;
44
+ height: 32px;
45
+
55
46
  &.show {
56
47
  opacity: 1;
57
48
  }
@@ -61,9 +52,6 @@
61
52
  .search-bar-search-container {
62
53
  flex: 1;
63
54
  height: 100%;
64
- position: absolute;
65
- left: 0;
66
- right: 0;
67
55
 
68
56
  .search-bar-search-box {
69
57
  height: 32px;
@@ -79,13 +67,9 @@
79
67
  &.show {
80
68
  visibility: visible;
81
69
  opacity: 1;
82
- width: 100%;
70
+ width: 100%
83
71
  }
84
72
  }
85
-
86
- &.search-bar-grouping-enabled {
87
- left: 32px;
88
- }
89
73
  }
90
74
  }
91
75
 
@@ -1,11 +1,10 @@
1
- import type { IModelConnection, ViewManager, Viewport } from "@itwin/core-frontend";
2
- import type { Category } from "./category-tree/CategoryVisibilityHandler";
3
- import type { Id64String } from "@itwin/core-bentley";
1
+ import { IModelConnection, ViewManager, Viewport } from "@itwin/core-frontend";
2
+ import { CategoryInfo } from "./category-tree/CategoryVisibilityHandler";
4
3
  /**
5
4
  * Toggles visibility of categories to show or hide.
6
5
  * @alpha
7
6
  */
8
- export declare function toggleAllCategories(viewManager: ViewManager, imodel: IModelConnection, display: boolean, viewport?: Viewport, forAllViewports?: boolean, categoryIds?: Id64String[]): Promise<void>;
7
+ export declare function toggleAllCategories(viewManager: ViewManager, imodel: IModelConnection, display: boolean, viewport?: Viewport, forAllViewports?: boolean): Promise<void>;
9
8
  /**
10
9
  * Gets ids of all categories from specified imodel and viewport.
11
10
  * @alpha
@@ -16,5 +15,5 @@ export declare function enableCategory(viewManager: ViewManager, imodel: IModelC
16
15
  /** Changes subcategory display in the viewport */
17
16
  export declare function enableSubCategory(viewManager: ViewManager, key: string, enabled: boolean, forAllViewports?: boolean): void;
18
17
  /** @internal */
19
- export declare function loadCategoriesFromViewport(iModel?: IModelConnection, vp?: Viewport): Promise<Category[]>;
18
+ export declare function loadCategoriesFromViewport(iModel?: IModelConnection, vp?: Viewport): Promise<CategoryInfo[]>;
20
19
  //# sourceMappingURL=CategoriesVisibilityUtils.d.ts.map
@@ -2,17 +2,14 @@
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 { PerModelCategoryVisibility } from "@itwin/core-frontend";
6
5
  import { QueryRowFormat } from "@itwin/core-common";
6
+ import { PerModelCategoryVisibility } from "@itwin/core-frontend";
7
7
  const EMPTY_CATEGORIES_ARRAY = [];
8
8
  /**
9
9
  * Toggles visibility of categories to show or hide.
10
10
  * @alpha
11
11
  */
12
- export async function toggleAllCategories(viewManager, imodel, display, viewport, forAllViewports, categoryIds) {
13
- if (categoryIds) {
14
- enableCategory(viewManager, imodel, categoryIds, display, forAllViewports !== null && forAllViewports !== void 0 ? forAllViewports : false);
15
- }
12
+ export async function toggleAllCategories(viewManager, imodel, display, viewport, forAllViewports) {
16
13
  // istanbul ignore next
17
14
  const activeView = viewport !== null && viewport !== void 0 ? viewport : viewManager.getFirstOpenView();
18
15
  const ids = await getCategories(imodel, activeView);
@@ -27,7 +24,7 @@ export async function toggleAllCategories(viewManager, imodel, display, viewport
27
24
  */
28
25
  export async function getCategories(imodel, viewport) {
29
26
  const categories = await loadCategoriesFromViewport(imodel, viewport);
30
- return categories.map((category) => category.key);
27
+ return categories.map((category) => category.categoryId);
31
28
  }
32
29
  /** Changes category display in the viewport */
33
30
  export function enableCategory(viewManager, imodel, ids, enabled, forAllViewports, enableAllSubCategories = true) {
@@ -105,7 +102,7 @@ export async function loadCategoriesFromViewport(iModel, vp) {
105
102
  // istanbul ignore next
106
103
  for await (const row of rowIterator) {
107
104
  const subCategoryIds = iModel.subcategories.getSubCategories(row.id);
108
- categories.push({ key: row.id, children: (subCategoryIds) ? [...subCategoryIds] : undefined });
105
+ categories.push({ categoryId: row.id, subCategoryIds: (subCategoryIds) ? [...subCategoryIds] : undefined });
109
106
  }
110
107
  }
111
108
  return categories;