@itwin/tree-widget-react 3.0.0-dev.2 → 3.0.0-dev.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +225 -1
- package/lib/cjs/components/SelectableTree.d.ts +12 -6
- package/lib/cjs/components/SelectableTree.js.map +1 -1
- package/lib/cjs/components/TreeSelector.d.ts +2 -2
- package/lib/cjs/components/TreeSelector.js.map +1 -1
- package/lib/cjs/components/TreeWidgetUiItemsProvider.d.ts +3 -2
- package/lib/cjs/components/TreeWidgetUiItemsProvider.js.map +1 -1
- package/lib/cjs/components/tree-header/TreeHeader.d.ts +11 -9
- package/lib/cjs/components/tree-header/TreeHeader.js +4 -6
- package/lib/cjs/components/tree-header/TreeHeader.js.map +1 -1
- package/lib/cjs/components/tree-header/TreeWithHeader.d.ts +13 -0
- package/lib/cjs/components/tree-header/TreeWithHeader.js +20 -0
- package/lib/cjs/components/tree-header/TreeWithHeader.js.map +1 -0
- package/lib/cjs/components/trees/categories-tree/CategoriesTree.d.ts +7 -10
- package/lib/cjs/components/trees/categories-tree/CategoriesTree.js +9 -66
- package/lib/cjs/components/trees/categories-tree/CategoriesTree.js.map +1 -1
- package/lib/cjs/components/trees/categories-tree/CategoriesTreeButtons.d.ts +12 -5
- package/lib/cjs/components/trees/categories-tree/CategoriesTreeButtons.js +27 -7
- package/lib/cjs/components/trees/categories-tree/CategoriesTreeButtons.js.map +1 -1
- package/lib/cjs/components/trees/categories-tree/CategoriesTreeComponent.d.ts +4 -5
- package/lib/cjs/components/trees/categories-tree/CategoriesTreeComponent.js +17 -20
- package/lib/cjs/components/trees/categories-tree/CategoriesTreeComponent.js.map +1 -1
- package/lib/cjs/components/trees/categories-tree/CategoriesVisibilityHandler.d.ts +1 -9
- package/lib/cjs/components/trees/categories-tree/CategoriesVisibilityHandler.js +2 -6
- package/lib/cjs/components/trees/categories-tree/CategoriesVisibilityHandler.js.map +1 -1
- package/lib/cjs/components/trees/categories-tree/UseCategoriesTree.d.ts +25 -0
- package/lib/cjs/components/trees/categories-tree/UseCategoriesTree.js +89 -0
- package/lib/cjs/components/trees/categories-tree/UseCategoriesTree.js.map +1 -0
- package/lib/cjs/components/trees/common/CategoriesVisibilityUtils.d.ts +7 -11
- package/lib/cjs/components/trees/common/CategoriesVisibilityUtils.js +32 -83
- package/lib/cjs/components/trees/common/CategoriesVisibilityUtils.js.map +1 -1
- package/lib/cjs/components/trees/common/FocusedInstancesContext.d.ts +0 -3
- package/lib/cjs/components/trees/common/FocusedInstancesContext.js +0 -2
- package/lib/cjs/components/trees/common/FocusedInstancesContext.js.map +1 -1
- package/lib/cjs/components/trees/common/FocusedInstancesContextProvider.d.ts +0 -1
- package/lib/cjs/components/trees/common/FocusedInstancesContextProvider.js +0 -1
- package/lib/cjs/components/trees/common/FocusedInstancesContextProvider.js.map +1 -1
- package/lib/cjs/components/trees/common/UseFiltering.d.ts +0 -1
- package/lib/cjs/components/trees/common/UseFiltering.js +0 -1
- package/lib/cjs/components/trees/common/UseFiltering.js.map +1 -1
- package/lib/cjs/components/trees/common/UseHierarchiesLocalization.d.ts +0 -1
- package/lib/cjs/components/trees/common/UseHierarchiesLocalization.js +0 -1
- package/lib/cjs/components/trees/common/UseHierarchiesLocalization.js.map +1 -1
- package/lib/cjs/components/trees/common/UseHierarchyFiltering.d.ts +1 -7
- package/lib/cjs/components/trees/common/UseHierarchyFiltering.js +4 -3
- package/lib/cjs/components/trees/common/UseHierarchyFiltering.js.map +1 -1
- package/lib/cjs/components/trees/common/UseHierarchyVisibility.d.ts +15 -10
- package/lib/cjs/components/trees/common/UseHierarchyVisibility.js +20 -17
- package/lib/cjs/components/trees/common/UseHierarchyVisibility.js.map +1 -1
- package/lib/cjs/components/trees/common/UseIModelChangeListener.d.ts +0 -1
- package/lib/cjs/components/trees/common/UseIModelChangeListener.js +0 -1
- package/lib/cjs/components/trees/common/UseIModelChangeListener.js.map +1 -1
- package/lib/cjs/components/trees/common/UseMultiCheckboxHandler.d.ts +0 -1
- package/lib/cjs/components/trees/common/UseMultiCheckboxHandler.js +0 -1
- package/lib/cjs/components/trees/common/UseMultiCheckboxHandler.js.map +1 -1
- package/lib/cjs/components/trees/common/UseNodeHighlighting.d.ts +9 -5
- package/lib/cjs/components/trees/common/UseNodeHighlighting.js +15 -24
- package/lib/cjs/components/trees/common/UseNodeHighlighting.js.map +1 -1
- package/lib/cjs/components/trees/common/UseTelemetryContext.d.ts +29 -0
- package/lib/cjs/components/trees/common/UseTelemetryContext.js +49 -0
- package/lib/cjs/components/trees/common/UseTelemetryContext.js.map +1 -0
- package/lib/cjs/components/trees/common/Utils.d.ts +3 -0
- package/lib/cjs/components/trees/common/Utils.js +11 -1
- package/lib/cjs/components/trees/common/Utils.js.map +1 -1
- package/lib/cjs/components/trees/common/components/Delayed.d.ts +0 -1
- package/lib/cjs/components/trees/common/components/Delayed.js +0 -1
- package/lib/cjs/components/trees/common/components/Delayed.js.map +1 -1
- package/lib/cjs/components/trees/common/components/ProgressOverlay.d.ts +0 -1
- package/lib/cjs/components/trees/common/components/ProgressOverlay.js +0 -1
- package/lib/cjs/components/trees/common/components/ProgressOverlay.js.map +1 -1
- package/lib/cjs/components/trees/common/components/Tree.d.ts +52 -0
- package/lib/cjs/components/trees/common/components/{BaseTree.js → Tree.js} +27 -23
- package/lib/cjs/components/trees/common/components/Tree.js.map +1 -0
- package/lib/cjs/components/trees/common/components/TreeNodeCheckbox.d.ts +14 -7
- package/lib/cjs/components/trees/common/components/TreeNodeCheckbox.js.map +1 -1
- package/lib/cjs/components/trees/common/components/TreeNodeRenderer.d.ts +7 -6
- package/lib/cjs/components/trees/common/components/TreeNodeRenderer.js +1 -1
- package/lib/cjs/components/trees/common/components/TreeNodeRenderer.js.map +1 -1
- package/lib/cjs/components/trees/common/components/TreeRenderer.d.ts +11 -1
- package/lib/cjs/components/trees/common/components/TreeRenderer.js +4 -1
- package/lib/cjs/components/trees/common/components/TreeRenderer.js.map +1 -1
- package/lib/cjs/components/trees/common/components/VisibilityTree.d.ts +27 -10
- package/lib/cjs/components/trees/common/components/VisibilityTree.js +8 -23
- package/lib/cjs/components/trees/common/components/VisibilityTree.js.map +1 -1
- package/lib/cjs/components/trees/common/components/VisibilityTreeRenderer.d.ts +12 -0
- package/lib/cjs/components/trees/common/components/VisibilityTreeRenderer.js +26 -0
- package/lib/cjs/components/trees/common/components/VisibilityTreeRenderer.js.map +1 -0
- package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTree.d.ts +8 -7
- package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTree.js +7 -10
- package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTree.js.map +1 -1
- package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTreeComponent.d.ts +5 -5
- package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTreeComponent.js +3 -4
- package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTreeComponent.js.map +1 -1
- package/lib/cjs/components/trees/imodel-content-tree/IModelContentTree.d.ts +8 -7
- package/lib/cjs/components/trees/imodel-content-tree/IModelContentTree.js +9 -12
- package/lib/cjs/components/trees/imodel-content-tree/IModelContentTree.js.map +1 -1
- package/lib/cjs/components/trees/imodel-content-tree/IModelContentTreeComponent.d.ts +5 -5
- package/lib/cjs/components/trees/imodel-content-tree/IModelContentTreeComponent.js +3 -4
- package/lib/cjs/components/trees/imodel-content-tree/IModelContentTreeComponent.js.map +1 -1
- package/lib/cjs/components/trees/imodel-content-tree/IModelContentTreeDefinition.js.map +1 -1
- package/lib/cjs/components/trees/index.d.ts +11 -0
- package/lib/cjs/components/trees/index.js +19 -1
- package/lib/cjs/components/trees/index.js.map +1 -1
- package/lib/cjs/components/trees/models-tree/ModelsTree.d.ts +10 -9
- package/lib/cjs/components/trees/models-tree/ModelsTree.js +6 -206
- package/lib/cjs/components/trees/models-tree/ModelsTree.js.map +1 -1
- package/lib/cjs/components/trees/models-tree/ModelsTreeButtons.d.ts +19 -8
- package/lib/cjs/components/trees/models-tree/ModelsTreeButtons.js +31 -8
- package/lib/cjs/components/trees/models-tree/ModelsTreeButtons.js.map +1 -1
- package/lib/cjs/components/trees/models-tree/ModelsTreeComponent.d.ts +11 -6
- package/lib/cjs/components/trees/models-tree/ModelsTreeComponent.js +33 -34
- package/lib/cjs/components/trees/models-tree/ModelsTreeComponent.js.map +1 -1
- package/lib/cjs/components/trees/models-tree/ModelsTreeDefinition.d.ts +9 -5
- package/lib/cjs/components/trees/models-tree/ModelsTreeDefinition.js.map +1 -1
- package/lib/cjs/components/trees/models-tree/UseModelsTree.d.ts +29 -0
- package/lib/cjs/components/trees/models-tree/UseModelsTree.js +233 -0
- package/lib/cjs/components/trees/models-tree/UseModelsTree.js.map +1 -0
- package/lib/cjs/components/trees/models-tree/internal/ModelsTreeVisibilityHandler.d.ts +11 -3
- package/lib/cjs/components/trees/models-tree/internal/ModelsTreeVisibilityHandler.js +1 -1
- package/lib/cjs/components/trees/models-tree/internal/ModelsTreeVisibilityHandler.js.map +1 -1
- package/lib/cjs/tree-widget-react.d.ts +2 -1
- package/lib/cjs/tree-widget-react.js +3 -1
- package/lib/cjs/tree-widget-react.js.map +1 -1
- package/lib/esm/components/SelectableTree.d.ts +12 -6
- package/lib/esm/components/SelectableTree.js.map +1 -1
- package/lib/esm/components/TreeSelector.d.ts +2 -2
- package/lib/esm/components/TreeSelector.js.map +1 -1
- package/lib/esm/components/TreeWidgetUiItemsProvider.d.ts +3 -2
- package/lib/esm/components/TreeWidgetUiItemsProvider.js.map +1 -1
- package/lib/esm/components/tree-header/TreeHeader.d.ts +11 -9
- package/lib/esm/components/tree-header/TreeHeader.js +4 -6
- package/lib/esm/components/tree-header/TreeHeader.js.map +1 -1
- package/lib/esm/components/tree-header/TreeWithHeader.d.ts +13 -0
- package/lib/esm/components/tree-header/TreeWithHeader.js +13 -0
- package/lib/esm/components/tree-header/TreeWithHeader.js.map +1 -0
- package/lib/esm/components/trees/categories-tree/CategoriesTree.d.ts +7 -10
- package/lib/esm/components/trees/categories-tree/CategoriesTree.js +9 -66
- package/lib/esm/components/trees/categories-tree/CategoriesTree.js.map +1 -1
- package/lib/esm/components/trees/categories-tree/CategoriesTreeButtons.d.ts +12 -5
- package/lib/esm/components/trees/categories-tree/CategoriesTreeButtons.js +25 -7
- package/lib/esm/components/trees/categories-tree/CategoriesTreeButtons.js.map +1 -1
- package/lib/esm/components/trees/categories-tree/CategoriesTreeComponent.d.ts +4 -5
- package/lib/esm/components/trees/categories-tree/CategoriesTreeComponent.js +18 -18
- package/lib/esm/components/trees/categories-tree/CategoriesTreeComponent.js.map +1 -1
- package/lib/esm/components/trees/categories-tree/CategoriesVisibilityHandler.d.ts +1 -9
- package/lib/esm/components/trees/categories-tree/CategoriesVisibilityHandler.js +2 -6
- package/lib/esm/components/trees/categories-tree/CategoriesVisibilityHandler.js.map +1 -1
- package/lib/esm/components/trees/categories-tree/UseCategoriesTree.d.ts +25 -0
- package/lib/esm/components/trees/categories-tree/UseCategoriesTree.js +85 -0
- package/lib/esm/components/trees/categories-tree/UseCategoriesTree.js.map +1 -0
- package/lib/esm/components/trees/common/CategoriesVisibilityUtils.d.ts +7 -11
- package/lib/esm/components/trees/common/CategoriesVisibilityUtils.js +33 -84
- package/lib/esm/components/trees/common/CategoriesVisibilityUtils.js.map +1 -1
- package/lib/esm/components/trees/common/FocusedInstancesContext.d.ts +0 -3
- package/lib/esm/components/trees/common/FocusedInstancesContext.js +0 -2
- package/lib/esm/components/trees/common/FocusedInstancesContext.js.map +1 -1
- package/lib/esm/components/trees/common/FocusedInstancesContextProvider.d.ts +0 -1
- package/lib/esm/components/trees/common/FocusedInstancesContextProvider.js +0 -1
- package/lib/esm/components/trees/common/FocusedInstancesContextProvider.js.map +1 -1
- package/lib/esm/components/trees/common/UseFiltering.d.ts +0 -1
- package/lib/esm/components/trees/common/UseFiltering.js +0 -1
- package/lib/esm/components/trees/common/UseFiltering.js.map +1 -1
- package/lib/esm/components/trees/common/UseHierarchiesLocalization.d.ts +0 -1
- package/lib/esm/components/trees/common/UseHierarchiesLocalization.js +0 -1
- package/lib/esm/components/trees/common/UseHierarchiesLocalization.js.map +1 -1
- package/lib/esm/components/trees/common/UseHierarchyFiltering.d.ts +1 -7
- package/lib/esm/components/trees/common/UseHierarchyFiltering.js +4 -3
- package/lib/esm/components/trees/common/UseHierarchyFiltering.js.map +1 -1
- package/lib/esm/components/trees/common/UseHierarchyVisibility.d.ts +15 -10
- package/lib/esm/components/trees/common/UseHierarchyVisibility.js +20 -17
- package/lib/esm/components/trees/common/UseHierarchyVisibility.js.map +1 -1
- package/lib/esm/components/trees/common/UseIModelChangeListener.d.ts +0 -1
- package/lib/esm/components/trees/common/UseIModelChangeListener.js +0 -1
- package/lib/esm/components/trees/common/UseIModelChangeListener.js.map +1 -1
- package/lib/esm/components/trees/common/UseMultiCheckboxHandler.d.ts +0 -1
- package/lib/esm/components/trees/common/UseMultiCheckboxHandler.js +0 -1
- package/lib/esm/components/trees/common/UseMultiCheckboxHandler.js.map +1 -1
- package/lib/esm/components/trees/common/UseNodeHighlighting.d.ts +9 -5
- package/lib/esm/components/trees/common/UseNodeHighlighting.js +14 -23
- package/lib/esm/components/trees/common/UseNodeHighlighting.js.map +1 -1
- package/lib/esm/components/trees/common/UseTelemetryContext.d.ts +29 -0
- package/lib/esm/components/trees/common/UseTelemetryContext.js +43 -0
- package/lib/esm/components/trees/common/UseTelemetryContext.js.map +1 -0
- package/lib/esm/components/trees/common/Utils.d.ts +3 -0
- package/lib/esm/components/trees/common/Utils.js +9 -0
- package/lib/esm/components/trees/common/Utils.js.map +1 -1
- package/lib/esm/components/trees/common/components/Delayed.d.ts +0 -1
- package/lib/esm/components/trees/common/components/Delayed.js +0 -1
- package/lib/esm/components/trees/common/components/Delayed.js.map +1 -1
- package/lib/esm/components/trees/common/components/ProgressOverlay.d.ts +0 -1
- package/lib/esm/components/trees/common/components/ProgressOverlay.js +0 -1
- package/lib/esm/components/trees/common/components/ProgressOverlay.js.map +1 -1
- package/lib/esm/components/trees/common/components/Tree.d.ts +52 -0
- package/lib/esm/components/trees/common/components/{BaseTree.js → Tree.js} +26 -22
- package/lib/esm/components/trees/common/components/Tree.js.map +1 -0
- package/lib/esm/components/trees/common/components/TreeNodeCheckbox.d.ts +14 -7
- package/lib/esm/components/trees/common/components/TreeNodeCheckbox.js.map +1 -1
- package/lib/esm/components/trees/common/components/TreeNodeRenderer.d.ts +7 -6
- package/lib/esm/components/trees/common/components/TreeNodeRenderer.js +1 -1
- package/lib/esm/components/trees/common/components/TreeNodeRenderer.js.map +1 -1
- package/lib/esm/components/trees/common/components/TreeRenderer.d.ts +11 -1
- package/lib/esm/components/trees/common/components/TreeRenderer.js +4 -1
- package/lib/esm/components/trees/common/components/TreeRenderer.js.map +1 -1
- package/lib/esm/components/trees/common/components/VisibilityTree.d.ts +27 -10
- package/lib/esm/components/trees/common/components/VisibilityTree.js +8 -23
- package/lib/esm/components/trees/common/components/VisibilityTree.js.map +1 -1
- package/lib/esm/components/trees/common/components/VisibilityTreeRenderer.d.ts +12 -0
- package/lib/esm/components/trees/common/components/VisibilityTreeRenderer.js +22 -0
- package/lib/esm/components/trees/common/components/VisibilityTreeRenderer.js.map +1 -0
- package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTree.d.ts +8 -7
- package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTree.js +7 -10
- package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTree.js.map +1 -1
- package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTreeComponent.d.ts +5 -5
- package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTreeComponent.js +3 -4
- package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTreeComponent.js.map +1 -1
- package/lib/esm/components/trees/imodel-content-tree/IModelContentTree.d.ts +8 -7
- package/lib/esm/components/trees/imodel-content-tree/IModelContentTree.js +9 -12
- package/lib/esm/components/trees/imodel-content-tree/IModelContentTree.js.map +1 -1
- package/lib/esm/components/trees/imodel-content-tree/IModelContentTreeComponent.d.ts +5 -5
- package/lib/esm/components/trees/imodel-content-tree/IModelContentTreeComponent.js +3 -4
- package/lib/esm/components/trees/imodel-content-tree/IModelContentTreeComponent.js.map +1 -1
- package/lib/esm/components/trees/imodel-content-tree/IModelContentTreeDefinition.js.map +1 -1
- package/lib/esm/components/trees/index.d.ts +11 -0
- package/lib/esm/components/trees/index.js +9 -0
- package/lib/esm/components/trees/index.js.map +1 -1
- package/lib/esm/components/trees/models-tree/ModelsTree.d.ts +10 -9
- package/lib/esm/components/trees/models-tree/ModelsTree.js +7 -207
- package/lib/esm/components/trees/models-tree/ModelsTree.js.map +1 -1
- package/lib/esm/components/trees/models-tree/ModelsTreeButtons.d.ts +19 -8
- package/lib/esm/components/trees/models-tree/ModelsTreeButtons.js +30 -8
- package/lib/esm/components/trees/models-tree/ModelsTreeButtons.js.map +1 -1
- package/lib/esm/components/trees/models-tree/ModelsTreeComponent.d.ts +11 -6
- package/lib/esm/components/trees/models-tree/ModelsTreeComponent.js +35 -33
- package/lib/esm/components/trees/models-tree/ModelsTreeComponent.js.map +1 -1
- package/lib/esm/components/trees/models-tree/ModelsTreeDefinition.d.ts +9 -5
- package/lib/esm/components/trees/models-tree/ModelsTreeDefinition.js.map +1 -1
- package/lib/esm/components/trees/models-tree/UseModelsTree.d.ts +29 -0
- package/lib/esm/components/trees/models-tree/UseModelsTree.js +229 -0
- package/lib/esm/components/trees/models-tree/UseModelsTree.js.map +1 -0
- package/lib/esm/components/trees/models-tree/internal/ModelsTreeVisibilityHandler.d.ts +11 -3
- package/lib/esm/components/trees/models-tree/internal/ModelsTreeVisibilityHandler.js +2 -2
- package/lib/esm/components/trees/models-tree/internal/ModelsTreeVisibilityHandler.js.map +1 -1
- package/lib/esm/tree-widget-react.d.ts +2 -1
- package/lib/esm/tree-widget-react.js +1 -0
- package/lib/esm/tree-widget-react.js.map +1 -1
- package/package.json +12 -16
- package/lib/cjs/components/trees/categories-tree/UseCategories.d.ts +0 -8
- package/lib/cjs/components/trees/categories-tree/UseCategories.js +0 -22
- package/lib/cjs/components/trees/categories-tree/UseCategories.js.map +0 -1
- package/lib/cjs/components/trees/common/UseFeatureReporting.d.ts +0 -34
- package/lib/cjs/components/trees/common/UseFeatureReporting.js +0 -39
- package/lib/cjs/components/trees/common/UseFeatureReporting.js.map +0 -1
- package/lib/cjs/components/trees/common/UsePerformanceReporting.d.ts +0 -18
- package/lib/cjs/components/trees/common/UsePerformanceReporting.js +0 -25
- package/lib/cjs/components/trees/common/UsePerformanceReporting.js.map +0 -1
- package/lib/cjs/components/trees/common/components/BaseTree.d.ts +0 -34
- package/lib/cjs/components/trees/common/components/BaseTree.js.map +0 -1
- package/lib/cjs/components/utils/AutoSizer.d.ts +0 -13
- package/lib/cjs/components/utils/AutoSizer.js +0 -21
- package/lib/cjs/components/utils/AutoSizer.js.map +0 -1
- package/lib/esm/components/trees/categories-tree/UseCategories.d.ts +0 -8
- package/lib/esm/components/trees/categories-tree/UseCategories.js +0 -18
- package/lib/esm/components/trees/categories-tree/UseCategories.js.map +0 -1
- package/lib/esm/components/trees/common/UseFeatureReporting.d.ts +0 -34
- package/lib/esm/components/trees/common/UseFeatureReporting.js +0 -34
- package/lib/esm/components/trees/common/UseFeatureReporting.js.map +0 -1
- package/lib/esm/components/trees/common/UsePerformanceReporting.d.ts +0 -18
- package/lib/esm/components/trees/common/UsePerformanceReporting.js +0 -21
- package/lib/esm/components/trees/common/UsePerformanceReporting.js.map +0 -1
- package/lib/esm/components/trees/common/components/BaseTree.d.ts +0 -34
- package/lib/esm/components/trees/common/components/BaseTree.js.map +0 -1
- package/lib/esm/components/utils/AutoSizer.d.ts +0 -13
- package/lib/esm/components/utils/AutoSizer.js +0 -17
- package/lib/esm/components/utils/AutoSizer.js.map +0 -1
- /package/lib/cjs/components/{trees/Tree.scss → tree-header/TreeWithHeader.scss} +0 -0
- /package/lib/esm/components/{trees/Tree.scss → tree-header/TreeWithHeader.scss} +0 -0
|
@@ -1,22 +1,19 @@
|
|
|
1
1
|
import { VisibilityTree } from "../common/components/VisibilityTree";
|
|
2
|
-
import type { CategoryInfo } from "../common/CategoriesVisibilityUtils";
|
|
3
2
|
import type { ComponentPropsWithoutRef } from "react";
|
|
4
|
-
import type {
|
|
3
|
+
import type { Viewport } from "@itwin/core-frontend";
|
|
4
|
+
/** @beta */
|
|
5
5
|
interface CategoriesTreeOwnProps {
|
|
6
6
|
filter: string;
|
|
7
7
|
activeView: Viewport;
|
|
8
|
-
categories: CategoryInfo[];
|
|
9
|
-
viewManager?: ViewManager;
|
|
10
|
-
allViewports?: boolean;
|
|
11
8
|
hierarchyLevelConfig?: {
|
|
12
9
|
sizeLimit?: number;
|
|
13
10
|
};
|
|
14
|
-
onPerformanceMeasured?: (featureId: string, duration: number) => void;
|
|
15
|
-
onFeatureUsed?: (feature: string) => void;
|
|
16
11
|
}
|
|
12
|
+
/** @beta */
|
|
17
13
|
type VisibilityTreeProps = ComponentPropsWithoutRef<typeof VisibilityTree>;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
/** @beta */
|
|
15
|
+
type CategoriesTreeProps = CategoriesTreeOwnProps & Pick<VisibilityTreeProps, "imodel" | "getSchemaContext" | "selectionStorage" | "density" | "selectionMode">;
|
|
16
|
+
/** @beta */
|
|
17
|
+
export declare function CategoriesTree({ imodel, getSchemaContext, selectionStorage, activeView, filter, density, hierarchyLevelConfig, selectionMode, }: CategoriesTreeProps): JSX.Element;
|
|
21
18
|
export {};
|
|
22
19
|
//# sourceMappingURL=CategoriesTree.d.ts.map
|
|
@@ -6,73 +6,16 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
6
6
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
7
7
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
8
8
|
*--------------------------------------------------------------------------------------------*/
|
|
9
|
-
const react_1 = require("react");
|
|
10
|
-
const core_frontend_1 = require("@itwin/core-frontend");
|
|
11
|
-
const itwinui_icons_react_1 = require("@itwin/itwinui-icons-react");
|
|
12
|
-
const itwinui_react_1 = require("@itwin/itwinui-react");
|
|
13
|
-
const TreeWidget_1 = require("../../../TreeWidget");
|
|
14
9
|
const VisibilityTree_1 = require("../common/components/VisibilityTree");
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
imodel,
|
|
25
|
-
viewport: activeView,
|
|
26
|
-
viewManager: viewManager ?? core_frontend_1.IModelApp.viewManager,
|
|
27
|
-
categories,
|
|
28
|
-
allViewports,
|
|
29
|
-
});
|
|
30
|
-
return {
|
|
31
|
-
getVisibilityStatus: async (node) => visibilityHandler.getVisibilityStatus(node),
|
|
32
|
-
changeVisibility: async (node, on) => visibilityHandler.changeVisibility(node, on),
|
|
33
|
-
onVisibilityChange: visibilityHandler.onVisibilityChange,
|
|
34
|
-
dispose: () => visibilityHandler.dispose(),
|
|
35
|
-
};
|
|
36
|
-
}, [activeView, allViewports, categories, imodel, viewManager]);
|
|
37
|
-
const { reportUsage } = (0, UseFeatureReporting_1.useFeatureReporting)({ onFeatureUsed, treeIdentifier: CategoriesTreeComponent_1.CategoriesTreeComponent.id });
|
|
38
|
-
const getDefinitionsProvider = (0, react_1.useCallback)((props) => {
|
|
39
|
-
return new CategoriesTreeDefinition_1.CategoriesTreeDefinition({ ...props, viewType: activeView.view.is2d() ? "2d" : "3d" });
|
|
40
|
-
}, [activeView]);
|
|
41
|
-
const getSearchFilteredPaths = (0, react_1.useMemo)(() => {
|
|
42
|
-
setFilteringError(undefined);
|
|
43
|
-
if (!filter) {
|
|
44
|
-
return undefined;
|
|
45
|
-
}
|
|
46
|
-
return async ({ imodelAccess }) => {
|
|
47
|
-
reportUsage?.({ featureId: "filtering", reportInteraction: true });
|
|
48
|
-
try {
|
|
49
|
-
return await CategoriesTreeDefinition_1.CategoriesTreeDefinition.createInstanceKeyPaths({ imodelAccess, label: filter, viewType: activeView.view.is2d() ? "2d" : "3d" });
|
|
50
|
-
}
|
|
51
|
-
catch (e) {
|
|
52
|
-
const newError = e instanceof Error && e.message.match(/Filter matches more than \d+ items/) ? "tooManyFilterMatches" : "unknownFilterError";
|
|
53
|
-
setFilteringError(newError);
|
|
54
|
-
return [];
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
}, [filter, activeView, reportUsage]);
|
|
58
|
-
return ((0, jsx_runtime_1.jsx)(VisibilityTree_1.VisibilityTree, { height: height, width: width, imodel: imodel, treeName: CategoriesTreeComponent_1.CategoriesTreeComponent.id, getSchemaContext: getSchemaContext, visibilityHandlerFactory: visibilityHandlerFactory, getHierarchyDefinition: getDefinitionsProvider, getFilteredPaths: getSearchFilteredPaths, hierarchyLevelSizeLimit: hierarchyLevelConfig?.sizeLimit, getSublabel: getSublabel, getIcon: getIcon, density: density, noDataMessage: getNoDataMessage(filter, filteringError), selectionMode: selectionMode ?? "none", onPerformanceMeasured: (action, duration) => {
|
|
59
|
-
onPerformanceMeasured?.(`${CategoriesTreeComponent_1.CategoriesTreeComponent.id}-${action}`, duration);
|
|
60
|
-
}, reportUsage: reportUsage, searchText: filter }));
|
|
10
|
+
const VisibilityTreeRenderer_1 = require("../common/components/VisibilityTreeRenderer");
|
|
11
|
+
const UseCategoriesTree_1 = require("./UseCategoriesTree");
|
|
12
|
+
/** @beta */
|
|
13
|
+
function CategoriesTree({ imodel, getSchemaContext, selectionStorage, activeView, filter, density, hierarchyLevelConfig, selectionMode, }) {
|
|
14
|
+
const { categoriesTreeProps, rendererProps } = (0, UseCategoriesTree_1.useCategoriesTree)({
|
|
15
|
+
filter,
|
|
16
|
+
activeView,
|
|
17
|
+
});
|
|
18
|
+
return ((0, jsx_runtime_1.jsx)(VisibilityTree_1.VisibilityTree, { ...categoriesTreeProps, imodel: imodel, selectionStorage: selectionStorage, getSchemaContext: getSchemaContext, hierarchyLevelSizeLimit: hierarchyLevelConfig?.sizeLimit, density: density, selectionMode: selectionMode ?? "none", treeRenderer: (treeProps) => (0, jsx_runtime_1.jsx)(VisibilityTreeRenderer_1.VisibilityTreeRenderer, { ...treeProps, ...rendererProps }) }));
|
|
61
19
|
}
|
|
62
20
|
exports.CategoriesTree = CategoriesTree;
|
|
63
|
-
function getNoDataMessage(filter, error) {
|
|
64
|
-
if (error) {
|
|
65
|
-
return (0, jsx_runtime_1.jsx)(itwinui_react_1.Text, { children: TreeWidget_1.TreeWidget.translate(`categoriesTree.filtering.${error}`) });
|
|
66
|
-
}
|
|
67
|
-
if (filter) {
|
|
68
|
-
return (0, jsx_runtime_1.jsx)(itwinui_react_1.Text, { children: TreeWidget_1.TreeWidget.translate("categoriesTree.filtering.noMatches", { filter }) });
|
|
69
|
-
}
|
|
70
|
-
return undefined;
|
|
71
|
-
}
|
|
72
|
-
function getIcon() {
|
|
73
|
-
return (0, jsx_runtime_1.jsx)(itwinui_icons_react_1.SvgLayers, {});
|
|
74
|
-
}
|
|
75
|
-
function getSublabel(node) {
|
|
76
|
-
return node.extendedData?.description;
|
|
77
|
-
}
|
|
78
21
|
//# sourceMappingURL=CategoriesTree.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CategoriesTree.js","sourceRoot":"","sources":["../../../../../src/components/trees/categories-tree/CategoriesTree.tsx"],"names":[],"mappings":";;;;AAAA;;;gGAGgG;AAEhG,
|
|
1
|
+
{"version":3,"file":"CategoriesTree.js","sourceRoot":"","sources":["../../../../../src/components/trees/categories-tree/CategoriesTree.tsx"],"names":[],"mappings":";;;;AAAA;;;gGAGgG;AAEhG,wEAAqE;AACrE,wFAAqF;AACrF,2DAAwD;AAoBxD,YAAY;AACZ,SAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,MAAM,EACN,OAAO,EACP,oBAAoB,EACpB,aAAa,GACO;IACpB,MAAM,EAAE,mBAAmB,EAAE,aAAa,EAAE,GAAG,IAAA,qCAAiB,EAAC;QAC/D,MAAM;QACN,UAAU;KACX,CAAC,CAAC;IAEH,OAAO,CACL,uBAAC,+BAAc,OACT,mBAAmB,EACvB,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,gBAAgB,EAClC,uBAAuB,EAAE,oBAAoB,EAAE,SAAS,EACxD,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa,IAAI,MAAM,EACtC,YAAY,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,uBAAC,+CAAsB,OAAK,SAAS,KAAM,aAAa,GAAI,GACzF,CACH,CAAC;AACJ,CAAC;AA3BD,wCA2BC","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 { VisibilityTree } from \"../common/components/VisibilityTree\";\nimport { VisibilityTreeRenderer } from \"../common/components/VisibilityTreeRenderer\";\nimport { useCategoriesTree } from \"./UseCategoriesTree\";\n\nimport type { ComponentPropsWithoutRef } from \"react\";\nimport type { Viewport } from \"@itwin/core-frontend\";\n\n/** @beta */\ninterface CategoriesTreeOwnProps {\n filter: string;\n activeView: Viewport;\n hierarchyLevelConfig?: {\n sizeLimit?: number;\n };\n}\n\n/** @beta */\ntype VisibilityTreeProps = ComponentPropsWithoutRef<typeof VisibilityTree>;\n\n/** @beta */\ntype CategoriesTreeProps = CategoriesTreeOwnProps & Pick<VisibilityTreeProps, \"imodel\" | \"getSchemaContext\" | \"selectionStorage\" | \"density\" | \"selectionMode\">;\n\n/** @beta */\nexport function CategoriesTree({\n imodel,\n getSchemaContext,\n selectionStorage,\n activeView,\n filter,\n density,\n hierarchyLevelConfig,\n selectionMode,\n}: CategoriesTreeProps) {\n const { categoriesTreeProps, rendererProps } = useCategoriesTree({\n filter,\n activeView,\n });\n\n return (\n <VisibilityTree\n {...categoriesTreeProps}\n imodel={imodel}\n selectionStorage={selectionStorage}\n getSchemaContext={getSchemaContext}\n hierarchyLevelSizeLimit={hierarchyLevelConfig?.sizeLimit}\n density={density}\n selectionMode={selectionMode ?? \"none\"}\n treeRenderer={(treeProps) => <VisibilityTreeRenderer {...treeProps} {...rendererProps} />}\n />\n );\n}\n"]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import type { CategoryInfo } from "../common/CategoriesVisibilityUtils";
|
|
3
3
|
import type { TreeHeaderButtonProps } from "../../tree-header/TreeHeader";
|
|
4
|
+
import type { Viewport } from "@itwin/core-frontend";
|
|
4
5
|
/**
|
|
5
6
|
* Props that get passed to `CategoriesTreeComponent` header button renderer.
|
|
6
7
|
* @see CategoriesTreeComponentProps.headerButtons
|
|
@@ -9,13 +10,19 @@ import type { TreeHeaderButtonProps } from "../../tree-header/TreeHeader";
|
|
|
9
10
|
export interface CategoriesTreeHeaderButtonProps extends TreeHeaderButtonProps {
|
|
10
11
|
/** A list of categories available in the iModel */
|
|
11
12
|
categories: CategoryInfo[];
|
|
12
|
-
/** In case the tree is filtered, a list of filtered categories. */
|
|
13
|
-
filteredCategories?: CategoryInfo[];
|
|
14
13
|
}
|
|
15
|
-
/**
|
|
14
|
+
/**
|
|
15
|
+
* Custom hook that creates props required to render `CategoriesTreeComponent` header button.
|
|
16
|
+
* @public
|
|
17
|
+
*/
|
|
18
|
+
export declare function useCategoriesTreeButtonProps({ viewport }: {
|
|
19
|
+
viewport: Viewport;
|
|
20
|
+
}): Pick<CategoriesTreeHeaderButtonProps, "categories" | "viewport">;
|
|
21
|
+
/** @public */
|
|
16
22
|
export declare function ShowAllButton(props: CategoriesTreeHeaderButtonProps): JSX.Element;
|
|
17
|
-
/** @
|
|
23
|
+
/** @public */
|
|
18
24
|
export declare function HideAllButton(props: CategoriesTreeHeaderButtonProps): JSX.Element;
|
|
19
|
-
/** @
|
|
25
|
+
/** @public */
|
|
20
26
|
export declare function InvertAllButton(props: CategoriesTreeHeaderButtonProps): JSX.Element;
|
|
27
|
+
export declare function useCategories(viewport: Viewport): CategoryInfo[];
|
|
21
28
|
//# sourceMappingURL=CategoriesTreeButtons.d.ts.map
|
|
@@ -1,37 +1,57 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.InvertAllButton = exports.HideAllButton = exports.ShowAllButton = void 0;
|
|
3
|
+
exports.useCategories = exports.InvertAllButton = exports.HideAllButton = exports.ShowAllButton = exports.useCategoriesTreeButtonProps = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
/*---------------------------------------------------------------------------------------------
|
|
6
6
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
7
7
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
8
8
|
*--------------------------------------------------------------------------------------------*/
|
|
9
|
+
const react_1 = require("react");
|
|
10
|
+
const components_react_1 = require("@itwin/components-react");
|
|
9
11
|
const itwinui_icons_react_1 = require("@itwin/itwinui-icons-react");
|
|
10
12
|
const itwinui_react_1 = require("@itwin/itwinui-react");
|
|
11
13
|
const TreeWidget_1 = require("../../../TreeWidget");
|
|
12
14
|
const CategoriesVisibilityUtils_1 = require("../common/CategoriesVisibilityUtils");
|
|
13
|
-
/**
|
|
15
|
+
/**
|
|
16
|
+
* Custom hook that creates props required to render `CategoriesTreeComponent` header button.
|
|
17
|
+
* @public
|
|
18
|
+
*/
|
|
19
|
+
function useCategoriesTreeButtonProps({ viewport }) {
|
|
20
|
+
const categories = useCategories(viewport);
|
|
21
|
+
return {
|
|
22
|
+
viewport,
|
|
23
|
+
categories,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
exports.useCategoriesTreeButtonProps = useCategoriesTreeButtonProps;
|
|
27
|
+
/** @public */
|
|
14
28
|
function ShowAllButton(props) {
|
|
15
29
|
return ((0, jsx_runtime_1.jsx)(itwinui_react_1.IconButton, { size: props.density === "enlarged" ? "large" : "small", styleType: "borderless", title: TreeWidget_1.TreeWidget.translate("categoriesTree.buttons.showAll.tooltip"), onClick: () => {
|
|
16
30
|
props.onFeatureUsed?.(`categories-tree-showall`);
|
|
17
|
-
void (0, CategoriesVisibilityUtils_1.showAllCategories)(
|
|
31
|
+
void (0, CategoriesVisibilityUtils_1.showAllCategories)(props.categories.map((category) => category.categoryId), props.viewport);
|
|
18
32
|
}, children: (0, jsx_runtime_1.jsx)(itwinui_icons_react_1.SvgVisibilityShow, {}) }));
|
|
19
33
|
}
|
|
20
34
|
exports.ShowAllButton = ShowAllButton;
|
|
21
|
-
/** @
|
|
35
|
+
/** @public */
|
|
22
36
|
function HideAllButton(props) {
|
|
23
37
|
return ((0, jsx_runtime_1.jsx)(itwinui_react_1.IconButton, { size: props.density === "enlarged" ? "large" : "small", styleType: "borderless", title: TreeWidget_1.TreeWidget.translate("categoriesTree.buttons.hideAll.tooltip"), onClick: () => {
|
|
24
38
|
props.onFeatureUsed?.(`categories-tree-hideall`);
|
|
25
|
-
void (0, CategoriesVisibilityUtils_1.hideAllCategories)(
|
|
39
|
+
void (0, CategoriesVisibilityUtils_1.hideAllCategories)(props.categories.map((category) => category.categoryId), props.viewport);
|
|
26
40
|
}, children: (0, jsx_runtime_1.jsx)(itwinui_icons_react_1.SvgVisibilityHide, {}) }));
|
|
27
41
|
}
|
|
28
42
|
exports.HideAllButton = HideAllButton;
|
|
29
|
-
/** @
|
|
43
|
+
/** @public */
|
|
30
44
|
function InvertAllButton(props) {
|
|
31
45
|
return ((0, jsx_runtime_1.jsx)(itwinui_react_1.IconButton, { title: TreeWidget_1.TreeWidget.translate("categoriesTree.buttons.invert.tooltip"), size: props.density === "enlarged" ? "large" : "small", styleType: "borderless", onClick: () => {
|
|
32
46
|
props.onFeatureUsed?.(`categories-tree-invert`);
|
|
33
|
-
void (0, CategoriesVisibilityUtils_1.invertAllCategories)(props.
|
|
47
|
+
void (0, CategoriesVisibilityUtils_1.invertAllCategories)(props.categories, props.viewport);
|
|
34
48
|
}, children: (0, jsx_runtime_1.jsx)(itwinui_icons_react_1.SvgVisibilityHalf, {}) }));
|
|
35
49
|
}
|
|
36
50
|
exports.InvertAllButton = InvertAllButton;
|
|
51
|
+
const EMPTY_CATEGORIES_ARRAY = [];
|
|
52
|
+
function useCategories(viewport) {
|
|
53
|
+
const categoriesPromise = (0, react_1.useMemo)(async () => (0, CategoriesVisibilityUtils_1.loadCategoriesFromViewport)(viewport), [viewport]);
|
|
54
|
+
return (0, components_react_1.useAsyncValue)(categoriesPromise) ?? EMPTY_CATEGORIES_ARRAY;
|
|
55
|
+
}
|
|
56
|
+
exports.useCategories = useCategories;
|
|
37
57
|
//# sourceMappingURL=CategoriesTreeButtons.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CategoriesTreeButtons.js","sourceRoot":"","sources":["../../../../../src/components/trees/categories-tree/CategoriesTreeButtons.tsx"],"names":[],"mappings":";;;;AAAA;;;gGAGgG;AAEhG,oEAAqG;AACrG,wDAAkD;AAClD,oDAAiD;AACjD,
|
|
1
|
+
{"version":3,"file":"CategoriesTreeButtons.js","sourceRoot":"","sources":["../../../../../src/components/trees/categories-tree/CategoriesTreeButtons.tsx"],"names":[],"mappings":";;;;AAAA;;;gGAGgG;AAEhG,iCAAgC;AAChC,8DAAwD;AACxD,oEAAqG;AACrG,wDAAkD;AAClD,oDAAiD;AACjD,mFAA4I;AAgB5I;;;GAGG;AACH,SAAgB,4BAA4B,CAAC,EAAE,QAAQ,EAA0B;IAC/E,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC3C,OAAO;QACL,QAAQ;QACR,UAAU;KACX,CAAC;AACJ,CAAC;AAND,oEAMC;AAED,cAAc;AACd,SAAgB,aAAa,CAAC,KAAsC;IAClE,OAAO,CACL,uBAAC,0BAAU,IACT,IAAI,EAAE,KAAK,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EACtD,SAAS,EAAC,YAAY,EACtB,KAAK,EAAE,uBAAU,CAAC,SAAS,CAAC,wCAAwC,CAAC,EACrE,OAAO,EAAE,GAAG,EAAE;YACZ,KAAK,CAAC,aAAa,EAAE,CAAC,yBAAyB,CAAC,CAAC;YACjD,KAAK,IAAA,6CAAiB,EACpB,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EACvD,KAAK,CAAC,QAAQ,CACf,CAAC;QACJ,CAAC,YAED,uBAAC,uCAAiB,KAAG,GACV,CACd,CAAC;AACJ,CAAC;AAjBD,sCAiBC;AAED,cAAc;AACd,SAAgB,aAAa,CAAC,KAAsC;IAClE,OAAO,CACL,uBAAC,0BAAU,IACT,IAAI,EAAE,KAAK,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EACtD,SAAS,EAAC,YAAY,EACtB,KAAK,EAAE,uBAAU,CAAC,SAAS,CAAC,wCAAwC,CAAC,EACrE,OAAO,EAAE,GAAG,EAAE;YACZ,KAAK,CAAC,aAAa,EAAE,CAAC,yBAAyB,CAAC,CAAC;YACjD,KAAK,IAAA,6CAAiB,EACpB,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EACvD,KAAK,CAAC,QAAQ,CACf,CAAC;QACJ,CAAC,YAED,uBAAC,uCAAiB,KAAG,GACV,CACd,CAAC;AACJ,CAAC;AAjBD,sCAiBC;AAED,cAAc;AACd,SAAgB,eAAe,CAAC,KAAsC;IACpE,OAAO,CACL,uBAAC,0BAAU,IACT,KAAK,EAAE,uBAAU,CAAC,SAAS,CAAC,uCAAuC,CAAC,EACpE,IAAI,EAAE,KAAK,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EACtD,SAAS,EAAC,YAAY,EACtB,OAAO,EAAE,GAAG,EAAE;YACZ,KAAK,CAAC,aAAa,EAAE,CAAC,wBAAwB,CAAC,CAAC;YAChD,KAAK,IAAA,+CAAmB,EAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC7D,CAAC,YAED,uBAAC,uCAAiB,KAAG,GACV,CACd,CAAC;AACJ,CAAC;AAdD,0CAcC;AAED,MAAM,sBAAsB,GAAmB,EAAE,CAAC;AAElD,SAAgB,aAAa,CAAC,QAAkB;IAC9C,MAAM,iBAAiB,GAAG,IAAA,eAAO,EAAC,KAAK,IAAI,EAAE,CAAC,IAAA,sDAA0B,EAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChG,OAAO,IAAA,gCAAa,EAAC,iBAAiB,CAAC,IAAI,sBAAsB,CAAC;AACpE,CAAC;AAHD,sCAGC","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 { useMemo } from \"react\";\nimport { useAsyncValue } from \"@itwin/components-react\";\nimport { SvgVisibilityHalf, SvgVisibilityHide, SvgVisibilityShow } from \"@itwin/itwinui-icons-react\";\nimport { IconButton } from \"@itwin/itwinui-react\";\nimport { TreeWidget } from \"../../../TreeWidget\";\nimport { hideAllCategories, invertAllCategories, loadCategoriesFromViewport, showAllCategories } from \"../common/CategoriesVisibilityUtils\";\n\nimport type { CategoryInfo } from \"../common/CategoriesVisibilityUtils\";\nimport type { TreeHeaderButtonProps } from \"../../tree-header/TreeHeader\";\nimport type { Viewport } from \"@itwin/core-frontend\";\n\n/**\n * Props that get passed to `CategoriesTreeComponent` header button renderer.\n * @see CategoriesTreeComponentProps.headerButtons\n * @public\n */\nexport interface CategoriesTreeHeaderButtonProps extends TreeHeaderButtonProps {\n /** A list of categories available in the iModel */\n categories: CategoryInfo[];\n}\n\n/**\n * Custom hook that creates props required to render `CategoriesTreeComponent` header button.\n * @public\n */\nexport function useCategoriesTreeButtonProps({ viewport }: { viewport: Viewport }): Pick<CategoriesTreeHeaderButtonProps, \"categories\" | \"viewport\"> {\n const categories = useCategories(viewport);\n return {\n viewport,\n categories,\n };\n}\n\n/** @public */\nexport function ShowAllButton(props: CategoriesTreeHeaderButtonProps) {\n return (\n <IconButton\n size={props.density === \"enlarged\" ? \"large\" : \"small\"}\n styleType=\"borderless\"\n title={TreeWidget.translate(\"categoriesTree.buttons.showAll.tooltip\")}\n onClick={() => {\n props.onFeatureUsed?.(`categories-tree-showall`);\n void showAllCategories(\n props.categories.map((category) => category.categoryId),\n props.viewport,\n );\n }}\n >\n <SvgVisibilityShow />\n </IconButton>\n );\n}\n\n/** @public */\nexport function HideAllButton(props: CategoriesTreeHeaderButtonProps) {\n return (\n <IconButton\n size={props.density === \"enlarged\" ? \"large\" : \"small\"}\n styleType=\"borderless\"\n title={TreeWidget.translate(\"categoriesTree.buttons.hideAll.tooltip\")}\n onClick={() => {\n props.onFeatureUsed?.(`categories-tree-hideall`);\n void hideAllCategories(\n props.categories.map((category) => category.categoryId),\n props.viewport,\n );\n }}\n >\n <SvgVisibilityHide />\n </IconButton>\n );\n}\n\n/** @public */\nexport function InvertAllButton(props: CategoriesTreeHeaderButtonProps) {\n return (\n <IconButton\n title={TreeWidget.translate(\"categoriesTree.buttons.invert.tooltip\")}\n size={props.density === \"enlarged\" ? \"large\" : \"small\"}\n styleType=\"borderless\"\n onClick={() => {\n props.onFeatureUsed?.(`categories-tree-invert`);\n void invertAllCategories(props.categories, props.viewport);\n }}\n >\n <SvgVisibilityHalf />\n </IconButton>\n );\n}\n\nconst EMPTY_CATEGORIES_ARRAY: CategoryInfo[] = [];\n\nexport function useCategories(viewport: Viewport) {\n const categoriesPromise = useMemo(async () => loadCategoriesFromViewport(viewport), [viewport]);\n return useAsyncValue(categoriesPromise) ?? EMPTY_CATEGORIES_ARRAY;\n}\n"]}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import "../Tree.scss";
|
|
2
1
|
import { CategoriesTree } from "./CategoriesTree";
|
|
3
2
|
import { HideAllButton, InvertAllButton, ShowAllButton } from "./CategoriesTreeButtons";
|
|
4
3
|
import type { ComponentPropsWithoutRef } from "react";
|
|
5
|
-
import type { SelectionStorage } from "@itwin/presentation-hierarchies-react";
|
|
6
4
|
import type { CategoriesTreeHeaderButtonProps } from "./CategoriesTreeButtons";
|
|
7
|
-
|
|
8
|
-
interface CategoriesTreeComponentProps extends Pick<
|
|
5
|
+
/** @public */
|
|
6
|
+
interface CategoriesTreeComponentProps extends Pick<ComponentPropsWithoutRef<typeof CategoriesTree>, "getSchemaContext" | "selectionStorage" | "density" | "hierarchyLevelConfig" | "selectionMode"> {
|
|
9
7
|
/**
|
|
10
8
|
* Renderers of header buttons. Defaults to:
|
|
11
9
|
* ```ts
|
|
@@ -17,7 +15,8 @@ interface CategoriesTreeComponentProps extends Pick<CategoriesTreeProps, "getSch
|
|
|
17
15
|
* ```
|
|
18
16
|
*/
|
|
19
17
|
headerButtons?: Array<(props: CategoriesTreeHeaderButtonProps) => React.ReactNode>;
|
|
20
|
-
|
|
18
|
+
onPerformanceMeasured?: (featureId: string, duration: number) => void;
|
|
19
|
+
onFeatureUsed?: (feature: string) => void;
|
|
21
20
|
}
|
|
22
21
|
/**
|
|
23
22
|
* A component that renders `CategoriesTree` and a header with filtering capabilities and header buttons.
|
|
@@ -1,27 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.CategoriesTreeComponent = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
7
5
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
6
|
/*---------------------------------------------------------------------------------------------
|
|
9
7
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
10
8
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
11
9
|
*--------------------------------------------------------------------------------------------*/
|
|
12
|
-
require("
|
|
13
|
-
const classnames_1 = __importDefault(require("classnames"));
|
|
14
|
-
const react_1 = require("react");
|
|
10
|
+
const react_2 = require("react");
|
|
15
11
|
const appui_react_1 = require("@itwin/appui-react");
|
|
16
|
-
const core_frontend_1 = require("@itwin/core-frontend");
|
|
17
|
-
const presentation_hierarchies_react_1 = require("@itwin/presentation-hierarchies-react");
|
|
18
12
|
const TreeWidget_1 = require("../../../TreeWidget");
|
|
19
|
-
const
|
|
20
|
-
const AutoSizer_1 = require("../../utils/AutoSizer");
|
|
13
|
+
const TreeWithHeader_1 = require("../../tree-header/TreeWithHeader");
|
|
21
14
|
const UseFiltering_1 = require("../common/UseFiltering");
|
|
15
|
+
const UseTelemetryContext_1 = require("../common/UseTelemetryContext");
|
|
22
16
|
const CategoriesTree_1 = require("./CategoriesTree");
|
|
23
17
|
const CategoriesTreeButtons_1 = require("./CategoriesTreeButtons");
|
|
24
|
-
const UseCategories_1 = require("./UseCategories");
|
|
25
18
|
/**
|
|
26
19
|
* A component that renders `CategoriesTree` and a header with filtering capabilities and header buttons.
|
|
27
20
|
* @public
|
|
@@ -60,16 +53,20 @@ exports.CategoriesTreeComponent.id = "categories-tree-v2";
|
|
|
60
53
|
* @public
|
|
61
54
|
*/
|
|
62
55
|
exports.CategoriesTreeComponent.getLabel = () => TreeWidget_1.TreeWidget.translate("categoriesTree.label");
|
|
63
|
-
function CategoriesTreeComponentImpl({ iModel, viewport, headerButtons,
|
|
64
|
-
const
|
|
56
|
+
function CategoriesTreeComponentImpl({ iModel, viewport, headerButtons, onPerformanceMeasured, onFeatureUsed, ...treeProps }) {
|
|
57
|
+
const buttonProps = (0, CategoriesTreeButtons_1.useCategoriesTreeButtonProps)({ viewport });
|
|
65
58
|
const { filter, applyFilter, clearFilter } = (0, UseFiltering_1.useFiltering)();
|
|
66
59
|
const density = treeProps.density;
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
60
|
+
const buttons = headerButtons
|
|
61
|
+
? headerButtons.map((btn, index) => (0, jsx_runtime_1.jsx)(react_2.Fragment, { children: btn({ ...buttonProps, onFeatureUsed }) }, index))
|
|
62
|
+
: [
|
|
63
|
+
(0, react_1.createElement)(CategoriesTreeButtons_1.ShowAllButton, { ...buttonProps, key: "show-all-btn", density: density, onFeatureUsed: onFeatureUsed }),
|
|
64
|
+
(0, react_1.createElement)(CategoriesTreeButtons_1.HideAllButton, { ...buttonProps, key: "hide-all-btn", density: density, onFeatureUsed: onFeatureUsed }),
|
|
65
|
+
(0, react_1.createElement)(CategoriesTreeButtons_1.InvertAllButton, { ...buttonProps, key: "invert-all-btn", density: density, onFeatureUsed: onFeatureUsed }),
|
|
66
|
+
];
|
|
67
|
+
return ((0, jsx_runtime_1.jsx)(UseTelemetryContext_1.TelemetryContextProvider, { componentIdentifier: exports.CategoriesTreeComponent.id, onFeatureUsed: onFeatureUsed, onPerformanceMeasured: onPerformanceMeasured, children: (0, jsx_runtime_1.jsx)(TreeWithHeader_1.TreeWithHeader, { buttons: buttons, density: density, filteringProps: {
|
|
68
|
+
onFilterStart: applyFilter,
|
|
69
|
+
onFilterClear: clearFilter,
|
|
70
|
+
}, children: (0, jsx_runtime_1.jsx)(CategoriesTree_1.CategoriesTree, { ...treeProps, imodel: iModel, activeView: viewport, filter: filter }) }) }));
|
|
74
71
|
}
|
|
75
72
|
//# sourceMappingURL=CategoriesTreeComponent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CategoriesTreeComponent.js","sourceRoot":"","sources":["../../../../../src/components/trees/categories-tree/CategoriesTreeComponent.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CategoriesTreeComponent.js","sourceRoot":"","sources":["../../../../../src/components/trees/categories-tree/CategoriesTreeComponent.tsx"],"names":[],"mappings":";;;;;AAAA;;;gGAGgG;AAEhG,iCAAiC;AACjC,oDAAkF;AAClF,oDAAiD;AACjD,qEAAkE;AAClE,yDAAsD;AACtD,uEAAyE;AACzE,qDAAkD;AAClD,mEAAsH;AA2BtH;;;GAGG;AACI,MAAM,uBAAuB,GAAG,CAAC,KAAmC,EAAE,EAAE;IAC7E,MAAM,MAAM,GAAG,IAAA,uCAAyB,GAAE,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAA,+BAAiB,GAAE,CAAC;IAErC,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE;QACxB,OAAO,IAAI,CAAC;KACb;IAED,OAAO,uBAAC,2BAA2B,OAAK,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAAC;AACxF,CAAC,CAAC;AATW,QAAA,uBAAuB,2BASlC;AAEF;;;GAGG;AACH,+BAAuB,CAAC,aAAa,GAAG,qCAAa,CAAC;AAEtD;;;GAGG;AACH,+BAAuB,CAAC,aAAa,GAAG,qCAAa,CAAC;AAEtD;;;GAGG;AACH,+BAAuB,CAAC,eAAe,GAAG,uCAAe,CAAC;AAE1D;;;GAGG;AACH,+BAAuB,CAAC,EAAE,GAAG,oBAAoB,CAAC;AAElD;;;GAGG;AACH,+BAAuB,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,uBAAU,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;AAEtF,SAAS,2BAA2B,CAAC,EACnC,MAAM,EACN,QAAQ,EACR,aAAa,EACb,qBAAqB,EACrB,aAAa,EACb,GAAG,SAAS,EAC0E;IACtF,MAAM,WAAW,GAAG,IAAA,oDAA4B,EAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC/D,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,IAAA,2BAAY,GAAE,CAAC;IAC5D,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;IAElC,MAAM,OAAO,GAAc,aAAa;QACtC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,uBAAC,gBAAQ,cAAc,GAAG,CAAC,EAAE,GAAG,WAAW,EAAE,aAAa,EAAE,CAAC,IAA9C,KAAK,CAAqD,CAAC;QAC9G,CAAC,CAAC;YACE,2BAAC,qCAAa,OAAK,WAAW,EAAE,GAAG,EAAC,cAAc,EAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,GAAI;YACrG,2BAAC,qCAAa,OAAK,WAAW,EAAE,GAAG,EAAC,cAAc,EAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,GAAI;YACrG,2BAAC,uCAAe,OAAK,WAAW,EAAE,GAAG,EAAC,gBAAgB,EAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,GAAI;SAC1G,CAAC;IAEN,OAAO,CACL,uBAAC,8CAAwB,IAAC,mBAAmB,EAAE,+BAAuB,CAAC,EAAE,EAAE,aAAa,EAAE,aAAa,EAAE,qBAAqB,EAAE,qBAAqB,YACnJ,uBAAC,+BAAc,IACb,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE;gBACd,aAAa,EAAE,WAAW;gBAC1B,aAAa,EAAE,WAAW;aAC3B,YAED,uBAAC,+BAAc,OAAK,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAI,GACxE,GACQ,CAC5B,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 { Fragment } from \"react\";\nimport { useActiveIModelConnection, useActiveViewport } from \"@itwin/appui-react\";\nimport { TreeWidget } from \"../../../TreeWidget\";\nimport { TreeWithHeader } from \"../../tree-header/TreeWithHeader\";\nimport { useFiltering } from \"../common/UseFiltering\";\nimport { TelemetryContextProvider } from \"../common/UseTelemetryContext\";\nimport { CategoriesTree } from \"./CategoriesTree\";\nimport { HideAllButton, InvertAllButton, ShowAllButton, useCategoriesTreeButtonProps } from \"./CategoriesTreeButtons\";\n\nimport type { ComponentPropsWithoutRef, ReactNode } from \"react\";\nimport type { IModelConnection, ScreenViewport } from \"@itwin/core-frontend\";\nimport type { CategoriesTreeHeaderButtonProps } from \"./CategoriesTreeButtons\";\n\n/** @public */\ninterface CategoriesTreeComponentProps\n extends Pick<\n ComponentPropsWithoutRef<typeof CategoriesTree>,\n \"getSchemaContext\" | \"selectionStorage\" | \"density\" | \"hierarchyLevelConfig\" | \"selectionMode\"\n > {\n /**\n * Renderers of header buttons. Defaults to:\n * ```ts\n * [\n * CategoriesTreeComponent.ShowAllButton,\n * CategoriesTreeComponent.HideAllButton,\n * CategoriesTreeComponent.InvertAllButton,\n * ]\n * ```\n */\n headerButtons?: Array<(props: CategoriesTreeHeaderButtonProps) => React.ReactNode>;\n onPerformanceMeasured?: (featureId: string, duration: number) => void;\n onFeatureUsed?: (feature: string) => void;\n}\n\n/**\n * A component that renders `CategoriesTree` and a header with filtering capabilities and header buttons.\n * @public\n */\nexport const CategoriesTreeComponent = (props: CategoriesTreeComponentProps) => {\n const iModel = useActiveIModelConnection();\n const viewport = useActiveViewport();\n\n if (!iModel || !viewport) {\n return null;\n }\n\n return <CategoriesTreeComponentImpl {...props} iModel={iModel} viewport={viewport} />;\n};\n\n/**\n * Renders a \"Show all\" button that enables display of all categories and their subcategories.\n * @public\n */\nCategoriesTreeComponent.ShowAllButton = ShowAllButton;\n\n/**\n * Renders a \"Hide all\" button that disables display of all categories.\n * @public\n */\nCategoriesTreeComponent.HideAllButton = HideAllButton;\n\n/**\n * Renders an \"Invert all\" button that inverts display of all categories.\n * @public\n */\nCategoriesTreeComponent.InvertAllButton = InvertAllButton;\n\n/**\n * Id of the component. May be used when a creating a `TreeDefinition` for `SelectableTree`.\n * @public\n */\nCategoriesTreeComponent.id = \"categories-tree-v2\";\n\n/**\n * Label of the component. May be used when a creating a `TreeDefinition` for `SelectableTree`.\n * @public\n */\nCategoriesTreeComponent.getLabel = () => TreeWidget.translate(\"categoriesTree.label\");\n\nfunction CategoriesTreeComponentImpl({\n iModel,\n viewport,\n headerButtons,\n onPerformanceMeasured,\n onFeatureUsed,\n ...treeProps\n}: CategoriesTreeComponentProps & { iModel: IModelConnection; viewport: ScreenViewport }) {\n const buttonProps = useCategoriesTreeButtonProps({ viewport });\n const { filter, applyFilter, clearFilter } = useFiltering();\n const density = treeProps.density;\n\n const buttons: ReactNode = headerButtons\n ? headerButtons.map((btn, index) => <Fragment key={index}>{btn({ ...buttonProps, onFeatureUsed })}</Fragment>)\n : [\n <ShowAllButton {...buttonProps} key=\"show-all-btn\" density={density} onFeatureUsed={onFeatureUsed} />,\n <HideAllButton {...buttonProps} key=\"hide-all-btn\" density={density} onFeatureUsed={onFeatureUsed} />,\n <InvertAllButton {...buttonProps} key=\"invert-all-btn\" density={density} onFeatureUsed={onFeatureUsed} />,\n ];\n\n return (\n <TelemetryContextProvider componentIdentifier={CategoriesTreeComponent.id} onFeatureUsed={onFeatureUsed} onPerformanceMeasured={onPerformanceMeasured}>\n <TreeWithHeader\n buttons={buttons}\n density={density}\n filteringProps={{\n onFilterStart: applyFilter,\n onFilterClear: clearFilter,\n }}\n >\n <CategoriesTree {...treeProps} imodel={iModel} activeView={viewport} filter={filter} />\n </TreeWithHeader>\n </TelemetryContextProvider>\n );\n}\n"]}
|
|
@@ -1,22 +1,14 @@
|
|
|
1
1
|
import { BeEvent } from "@itwin/core-bentley";
|
|
2
2
|
import { HierarchyNode } from "@itwin/presentation-hierarchies";
|
|
3
|
-
import type {
|
|
4
|
-
import type { IModelConnection, ViewManager, Viewport } from "@itwin/core-frontend";
|
|
3
|
+
import type { Viewport } from "@itwin/core-frontend";
|
|
5
4
|
import type { HierarchyVisibilityHandler, VisibilityStatus } from "../common/UseHierarchyVisibility";
|
|
6
5
|
interface CategoriesVisibilityHandlerProps {
|
|
7
|
-
viewManager: ViewManager;
|
|
8
|
-
imodel: IModelConnection;
|
|
9
|
-
categories: CategoryInfo[];
|
|
10
6
|
viewport: Viewport;
|
|
11
|
-
allViewports?: boolean;
|
|
12
7
|
}
|
|
13
8
|
/** @internal */
|
|
14
9
|
export declare class CategoriesVisibilityHandler implements HierarchyVisibilityHandler {
|
|
15
|
-
private _viewManager;
|
|
16
|
-
private _imodel;
|
|
17
10
|
private _pendingVisibilityChange;
|
|
18
11
|
private _viewport;
|
|
19
|
-
private _useAllViewports;
|
|
20
12
|
constructor(props: CategoriesVisibilityHandlerProps);
|
|
21
13
|
dispose(): void;
|
|
22
14
|
onVisibilityChange: BeEvent<import("@itwin/core-bentley").Listener>;
|
|
@@ -20,11 +20,7 @@ class CategoriesVisibilityHandler {
|
|
|
20
20
|
this.onViewedCategoriesChanged = () => {
|
|
21
21
|
this.onVisibilityChangeInternal();
|
|
22
22
|
};
|
|
23
|
-
this._viewManager = props.viewManager;
|
|
24
|
-
this._imodel = props.imodel;
|
|
25
23
|
this._viewport = props.viewport;
|
|
26
|
-
// istanbul ignore next
|
|
27
|
-
this._useAllViewports = props.allViewports ?? false;
|
|
28
24
|
this._viewport.onDisplayStyleChanged.addListener(this.onDisplayStyleChanged);
|
|
29
25
|
this._viewport.onViewedCategoriesChanged.addListener(this.onViewedCategoriesChanged);
|
|
30
26
|
}
|
|
@@ -84,10 +80,10 @@ class CategoriesVisibilityHandler {
|
|
|
84
80
|
return presentation_hierarchies_1.HierarchyNode.isInstancesNode(node) && node.key.instanceKeys.length > 0 ? node.key.instanceKeys[0].id : /* istanbul ignore next */ "";
|
|
85
81
|
}
|
|
86
82
|
async enableCategory(ids, enabled, enableAllSubCategories = true) {
|
|
87
|
-
await (0, CategoriesVisibilityUtils_1.enableCategoryDisplay)(this.
|
|
83
|
+
await (0, CategoriesVisibilityUtils_1.enableCategoryDisplay)(this._viewport, ids, enabled, enableAllSubCategories);
|
|
88
84
|
}
|
|
89
85
|
enableSubCategory(key, enabled) {
|
|
90
|
-
(0, CategoriesVisibilityUtils_1.enableSubCategoryDisplay)(this.
|
|
86
|
+
(0, CategoriesVisibilityUtils_1.enableSubCategoryDisplay)(this._viewport, key, enabled);
|
|
91
87
|
}
|
|
92
88
|
}
|
|
93
89
|
exports.CategoriesVisibilityHandler = CategoriesVisibilityHandler;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CategoriesVisibilityHandler.js","sourceRoot":"","sources":["../../../../../src/components/trees/categories-tree/CategoriesVisibilityHandler.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;AAEhG,sDAA8C;AAC9C,8EAAgE;AAChE,mFAAsG;
|
|
1
|
+
{"version":3,"file":"CategoriesVisibilityHandler.js","sourceRoot":"","sources":["../../../../../src/components/trees/categories-tree/CategoriesVisibilityHandler.ts"],"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\nimport { BeEvent } from \"@itwin/core-bentley\";\nimport { HierarchyNode } from \"@itwin/presentation-hierarchies\";\nimport { enableCategoryDisplay, enableSubCategoryDisplay } from \"../common/CategoriesVisibilityUtils\";\n\nimport type { Viewport } from \"@itwin/core-frontend\";\nimport type { HierarchyVisibilityHandler, VisibilityStatus } from \"../common/UseHierarchyVisibility\";\n\ninterface CategoriesVisibilityHandlerProps {\n viewport: Viewport;\n}\n\n/** @internal */\nexport class CategoriesVisibilityHandler implements HierarchyVisibilityHandler {\n private _pendingVisibilityChange: any;\n private _viewport: Viewport;\n\n constructor(props: CategoriesVisibilityHandlerProps) {\n this._viewport = props.viewport;\n this._viewport.onDisplayStyleChanged.addListener(this.onDisplayStyleChanged);\n this._viewport.onViewedCategoriesChanged.addListener(this.onViewedCategoriesChanged);\n }\n\n public dispose() {\n this._viewport.onDisplayStyleChanged.removeListener(this.onDisplayStyleChanged);\n this._viewport.onViewedCategoriesChanged.removeListener(this.onViewedCategoriesChanged);\n clearTimeout(this._pendingVisibilityChange);\n }\n\n public onVisibilityChange = new BeEvent();\n\n /** Returns visibility status of the tree node. */\n public getVisibilityStatus(node: HierarchyNode): Promise<VisibilityStatus> | VisibilityStatus {\n if (!HierarchyNode.isInstancesNode(node)) {\n return { state: \"hidden\", isDisabled: true };\n }\n return { state: node.parentKeys.length ? this.getSubCategoryVisibility(node) : this.getCategoryVisibility(node) };\n }\n\n public async changeVisibility(node: HierarchyNode, on: boolean) {\n if (!HierarchyNode.isInstancesNode(node)) {\n return;\n }\n\n // handle subcategory visibility change\n if (node.parentKeys.length) {\n const childId = CategoriesVisibilityHandler.getInstanceIdFromHierarchyNode(node);\n const parentCategoryId = node.extendedData?.categoryId;\n\n // make sure parent category is enabled\n if (on && parentCategoryId) {\n await this.enableCategory([parentCategoryId], true, false);\n }\n\n this.enableSubCategory(childId, on);\n return;\n }\n\n const instanceId = CategoriesVisibilityHandler.getInstanceIdFromHierarchyNode(node);\n await this.enableCategory([instanceId], on, true);\n }\n\n public getSubCategoryVisibility(node: HierarchyNode) {\n const parentCategoryId = node.extendedData?.categoryId;\n if (!parentCategoryId) {\n return \"hidden\";\n }\n\n const subcategoryId = CategoriesVisibilityHandler.getInstanceIdFromHierarchyNode(node);\n const isVisible = this._viewport.view.viewsCategory(parentCategoryId) && this._viewport.isSubCategoryVisible(subcategoryId);\n return isVisible ? \"visible\" : \"hidden\";\n }\n\n public getCategoryVisibility(node: HierarchyNode) {\n const instanceId = CategoriesVisibilityHandler.getInstanceIdFromHierarchyNode(node);\n return this._viewport.view.viewsCategory(instanceId) ? \"visible\" : \"hidden\";\n }\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n private onDisplayStyleChanged = () => {\n this.onVisibilityChangeInternal();\n };\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n private onViewedCategoriesChanged = () => {\n this.onVisibilityChangeInternal();\n };\n\n private onVisibilityChangeInternal() {\n if (this._pendingVisibilityChange) {\n return;\n }\n\n this._pendingVisibilityChange = setTimeout(() => {\n this.onVisibilityChange.raiseEvent();\n this._pendingVisibilityChange = undefined;\n }, 0);\n }\n\n public static getInstanceIdFromHierarchyNode(node: HierarchyNode) {\n return HierarchyNode.isInstancesNode(node) && node.key.instanceKeys.length > 0 ? node.key.instanceKeys[0].id : /* istanbul ignore next */ \"\";\n }\n\n public async enableCategory(ids: string[], enabled: boolean, enableAllSubCategories = true) {\n await enableCategoryDisplay(this._viewport, ids, enabled, enableAllSubCategories);\n }\n\n public enableSubCategory(key: string, enabled: boolean) {\n enableSubCategoryDisplay(this._viewport, key, enabled);\n }\n}\n"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { VisibilityTree } from "../common/components/VisibilityTree";
|
|
2
|
+
import type { ComponentPropsWithoutRef } from "react";
|
|
3
|
+
import type { Viewport } from "@itwin/core-frontend";
|
|
4
|
+
import type { VisibilityTreeRenderer } from "../common/components/VisibilityTreeRenderer";
|
|
5
|
+
/** @beta */
|
|
6
|
+
type VisibilityTreeRendererProps = ComponentPropsWithoutRef<typeof VisibilityTreeRenderer>;
|
|
7
|
+
/** @beta */
|
|
8
|
+
type VisibilityTreeProps = ComponentPropsWithoutRef<typeof VisibilityTree>;
|
|
9
|
+
/** @beta */
|
|
10
|
+
interface UseCategoriesTreeProps {
|
|
11
|
+
filter: string;
|
|
12
|
+
activeView: Viewport;
|
|
13
|
+
}
|
|
14
|
+
/** @beta */
|
|
15
|
+
interface UseCategoriesTreeResult {
|
|
16
|
+
categoriesTreeProps: Pick<VisibilityTreeProps, "treeName" | "getHierarchyDefinition" | "getFilteredPaths" | "visibilityHandlerFactory" | "highlight" | "noDataMessage">;
|
|
17
|
+
rendererProps: Pick<Required<VisibilityTreeRendererProps>, "getIcon" | "getSublabel">;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Custom hook to create and manage state for the categories tree.
|
|
21
|
+
* @beta
|
|
22
|
+
*/
|
|
23
|
+
export declare function useCategoriesTree({ filter, activeView }: UseCategoriesTreeProps): UseCategoriesTreeResult;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=UseCategoriesTree.d.ts.map
|