From a4029289871a3e733466350f1f67df58893a3516 Mon Sep 17 00:00:00 2001 From: JonasDov <100586436+JonasDov@users.noreply.github.com> Date: Mon, 3 Aug 2026 04:59:01 +0000 Subject: [PATCH 1/5] [Tree widget]: cleanup tests --- .../test/trees/classifications-tree/VisibilityValidation.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/tree-widget/src/test/trees/classifications-tree/VisibilityValidation.ts b/packages/tree-widget/src/test/trees/classifications-tree/VisibilityValidation.ts index 93501a3ce..6e2848700 100644 --- a/packages/tree-widget/src/test/trees/classifications-tree/VisibilityValidation.ts +++ b/packages/tree-widget/src/test/trees/classifications-tree/VisibilityValidation.ts @@ -14,7 +14,7 @@ export async function validateNodeVisibility({ handler, expectations, validatedIds, -}: ValidateNodeProps & { node: HierarchyNode; validatedIds?: Set }) { +}: ValidateNodeProps & { node: HierarchyNode; validatedIds: Set }) { const actualVisibility = await handler.getVisibilityStatus(node); if (expectations === "all-hidden" || expectations === "all-visible") { @@ -28,7 +28,7 @@ export async function validateNodeVisibility({ ClassificationsTreeNode.isGeometricElementNode(node) ) { const { id } = node.key.instanceKeys[0]; - validatedIds?.add(id); + validatedIds.add(id); if (expectations[id] === "disabled") { expect(actualVisibility.isDisabled, `Node, ${JSON.stringify(node)}`).toBe(true); } else { From b551a412f21b4806d30f5fea917f20727a79fcd2 Mon Sep 17 00:00:00 2001 From: JonasDov <100586436+JonasDov@users.noreply.github.com> Date: Mon, 3 Aug 2026 05:38:47 +0000 Subject: [PATCH 2/5] [Tree widget]: reduce folder nesting on `next` --- .../docs/SharedVisibilityHandling.md | 2 +- packages/tree-widget/docs/Visibility.md | 38 +++++++++---------- .../common/FocusedInstancesContext.test.tsx | 2 +- .../common/TreeWidgetViewport.test.ts | 2 +- .../common/UseHierarchyVisibility.test.ts | 4 +- .../src/test/{trees => }/common/Utils.test.ts | 2 +- .../common/VisibilityValidation.ts | 4 +- ...lwaysAndNeverDrawnElementInfoCache.test.ts | 4 +- .../common/internal/BufferingViewport.test.ts | 4 +- .../internal/ChildElementsCache.test.ts | 4 +- .../internal/DescendantsCountCache.test.ts | 4 +- .../{trees => }/common/internal/Utils.test.ts | 2 +- .../VisibilityChangeEventListener.test.ts | 2 +- .../common/internal/VisibilityUtils.test.ts | 4 +- .../hooks/UseCachedVisibility.test.ts | 10 ++--- .../common/internal/hooks/UseIdsCache.test.ts | 2 +- packages/tree-widget/src/test/trees/Common.ts | 2 +- .../src/test/trees/HierarchyValidation.ts | 2 +- .../tree-widget/src/test/trees/TreeUtils.ts | 33 ++-------------- .../CategoriesTreeDefinition.test.ts | 13 +++---- .../CategoriesTreeFiltering.test.tsx | 13 +++---- .../internal/CategoriesTreeIdsCache.test.ts | 8 ++-- .../internal/CategoriesTreeNode.test.ts | 4 +- .../CategoriesTreeVisibilityHandler.test.ts | 17 ++++----- .../trees/categories-tree/internal/Utils.ts | 8 ++-- .../internal/VisibilityValidation.ts | 4 +- .../ClassificationsTreeFiltering.test.tsx | 6 +-- .../ClassificationsTreeNode.test.ts | 2 +- ...assificationsTreeVisibilityHandler.test.ts | 14 +++---- .../HierarchyNodeUtils.ts | 4 +- .../test/trees/classifications-tree/Utils.ts | 10 ++--- .../VisibilityValidation.ts | 2 +- .../models-tree/ModelsTreeDefinition.test.ts | 2 +- .../models-tree/ModelsTreeFiltering.test.tsx | 8 ++-- .../ModelsTreeHierarchyLevelFiltering.test.ts | 2 +- .../trees/models-tree/ModelsTreeNode.test.ts | 4 +- .../trees/models-tree/UseModelsTree.test.tsx | 8 ++-- .../src/test/trees/models-tree/Utils.ts | 14 +++---- .../internal/ModelsTreeIdsCache.test.ts | 6 +-- .../ModelsTreeVisibilityHandler.test.ts | 24 ++++++------ .../internal/VisibilityValidation.ts | 4 +- .../src/tree-widget-react-internal.ts | 26 ++++++------- packages/tree-widget/src/tree-widget-react.ts | 10 ++--- .../TreeWidgetComponentImpl.css | 0 .../TreeWidgetComponentImpl.tsx | 6 +-- .../TreeWidgetUiItemsProvider.css | 0 .../TreeWidgetUiItemsProvider.tsx | 4 +- .../components/utils/IsPromiseLike.ts | 12 ------ .../FocusedInstancesContext.tsx | 2 +- .../SharedTreeContextProvider.tsx | 0 .../trees/common => shared}/TreeErrors.ts | 0 .../common => shared}/TreeWidgetViewport.ts | 0 .../UseHierarchyVisibility.ts | 0 .../common => shared}/UseTelemetryContext.tsx | 0 .../trees/common => shared}/Utils.ts | 0 .../common => shared}/components/Delayed.tsx | 0 .../components/EmptyTree.css | 0 .../components/EmptyTree.tsx | 0 .../components/LocalizationContext.tsx | 4 +- .../components/ProgressOverlay.css | 0 .../components/ProgressOverlay.tsx | 0 .../components/SkeletonTree.css | 0 .../components/SkeletonTree.tsx | 0 .../common => shared}/components/Tree.css | 0 .../common => shared}/components/Tree.tsx | 2 +- .../components/TreeNodeCheckbox.scss | 0 .../components/TreeNodeVisibilityButton.css | 0 .../components/TreeNodeVisibilityButton.tsx | 0 .../components/TreeRenderer.tsx | 0 .../components/UseVisibilityButtonHandler.ts | 0 .../components/VisibilityTree.tsx | 0 .../components/VisibilityTreeRenderer.tsx | 0 .../internal/BufferingViewport.ts | 0 .../internal/ClassNameDefinitions.ts | 0 .../internal}/EachValueFrom.ts | 0 .../internal}/LocalizationHelpers.ts | 0 .../trees/common => shared}/internal/Rxjs.ts | 0 .../SharedTreeContextProviderInternal.tsx | 0 .../common => shared}/internal/Tooltip.ts | 2 +- .../trees/common => shared}/internal/Types.ts | 0 .../trees/common => shared}/internal/Utils.ts | 0 .../internal/VisibilityChangeEventListener.ts | 0 .../internal/VisibilityUtils.ts | 0 .../AlwaysAndNeverDrawnElementInfoCache.ts | 0 .../internal/caches/BaseIdsCache.ts | 0 .../internal/caches/BatchingCache.ts | 0 .../internal/caches/ChildElementsCache.ts | 0 .../internal/caches/DescendantsCountCache.ts | 0 .../caches/ElementModelCategoriesCache.ts | 0 .../internal/caches/ModeledElementsCache.ts | 0 .../internal/caches/SubCategoriesCache.ts | 0 .../hooks/UseActiveTreeWidgetViewport.tsx | 0 .../internal/hooks/UseCachedVisibility.ts | 0 .../internal/hooks/UseErrorState.ts | 0 .../internal/hooks/UseGuid.ts | 0 .../internal/hooks/UseHierarchyFiltering.tsx | 0 .../internal/hooks/UseIModelAccess.ts | 2 +- .../internal/hooks/UseIModelChangeListener.ts | 0 .../internal/hooks/UseIdsCache.ts | 0 .../internal/hooks/UseLatest.ts | 0 .../visibility/BaseSearchResultsTree.ts | 0 .../visibility/BaseVisibilityHelper.ts | 0 .../tree-header/ErrorState.tsx | 2 +- .../tree-header/SearchBox.tsx | 4 +- .../tree-header/SelectableTree.css | 0 .../tree-header/SelectableTree.tsx | 2 +- .../tree-header/WidgetHeader.css | 0 .../tree-header/WidgetHeader.tsx | 0 .../trees/categories-tree/CategoriesTree.tsx | 8 ++-- .../categories-tree/CategoriesTreeButtons.tsx | 18 ++++----- .../CategoriesTreeComponent.tsx | 10 ++--- .../CategoriesTreeDefinition.ts | 16 ++++---- .../categories-tree/CategoriesTreeIcon.tsx | 0 .../categories-tree/CategoriesTreeNode.ts | 0 .../categories-tree/UseCategoriesTree.tsx | 20 +++++----- .../internal/CategoriesTreeIdsCache.ts | 14 +++---- .../internal/CategoriesTreeNodeInternal.ts | 4 +- .../internal/UseSearchPaths.ts | 14 +++---- .../CategoriesTreeVisibilityHandler.ts | 22 +++++------ .../CategoriesTreeVisibilityHelper.ts | 14 +++---- .../internal/visibility/SearchResultsTree.ts | 10 ++--- .../ClassificationsTree.tsx | 8 ++-- .../ClassificationsTreeComponent.tsx | 8 ++-- .../ClassificationsTreeDefinition.ts | 14 +++---- .../ClassificationsTreeIcon.tsx | 0 .../ClassificationsTreeNode.ts | 0 .../UseClassificationsTree.tsx | 26 ++++++------- .../UseClassificationsTreeDefinition.ts | 8 ++-- .../internal/ClassificationsTreeIdsCache.ts | 14 +++---- .../ClassificationsTreeNodeInternal.ts | 2 +- .../ClassificationsTreeVisibilityHandler.ts | 18 ++++----- .../ClassificationsTreeVisibilityHelper.ts | 10 ++--- .../internal/visibility/SearchResultsTree.ts | 14 ++++--- .../ExternalSourcesTree.tsx | 12 +++--- .../ExternalSourcesTreeComponent.tsx | 2 +- .../ExternalSourcesTreeDefinition.ts | 4 +- .../imodel-content-tree/IModelContentTree.tsx | 12 +++--- .../IModelContentTreeComponent.tsx | 2 +- .../IModelContentTreeDefinition.ts | 4 +- .../internal/IModelContentTreeIdsCache.ts | 8 ++-- .../{components => }/trees/index.ts | 28 +++++++------- .../trees/models-tree/ModelsTree.tsx | 8 ++-- .../trees/models-tree/ModelsTreeButtons.tsx | 16 ++++---- .../trees/models-tree/ModelsTreeComponent.tsx | 12 +++--- .../trees/models-tree/ModelsTreeDefinition.ts | 16 ++++---- .../trees/models-tree/ModelsTreeIcon.tsx | 0 .../trees/models-tree/ModelsTreeNode.ts | 0 .../trees/models-tree/UseModelsTree.tsx | 20 +++++----- .../internal/ModelsTreeIdsCache.ts | 12 +++--- .../internal/ModelsTreeNodeInternal.ts | 4 +- .../models-tree/internal/UseSearchPaths.ts | 12 +++--- .../visibility/ModelsTreeVisibilityHandler.ts | 18 ++++----- .../visibility/ModelsTreeVisibilityHelper.ts | 10 ++--- .../internal/visibility/SearchResultsTree.ts | 10 ++--- 154 files changed, 410 insertions(+), 454 deletions(-) rename packages/tree-widget/src/test/{trees => }/common/FocusedInstancesContext.test.tsx (98%) rename packages/tree-widget/src/test/{trees => }/common/TreeWidgetViewport.test.ts (99%) rename packages/tree-widget/src/test/{trees => }/common/UseHierarchyVisibility.test.ts (98%) rename packages/tree-widget/src/test/{trees => }/common/Utils.test.ts (99%) rename packages/tree-widget/src/test/{trees => }/common/VisibilityValidation.ts (92%) rename packages/tree-widget/src/test/{trees => }/common/internal/AlwaysAndNeverDrawnElementInfoCache.test.ts (99%) rename packages/tree-widget/src/test/{trees => }/common/internal/BufferingViewport.test.ts (99%) rename packages/tree-widget/src/test/{trees => }/common/internal/ChildElementsCache.test.ts (99%) rename packages/tree-widget/src/test/{trees => }/common/internal/DescendantsCountCache.test.ts (99%) rename packages/tree-widget/src/test/{trees => }/common/internal/Utils.test.ts (98%) rename packages/tree-widget/src/test/{trees => }/common/internal/VisibilityChangeEventListener.test.ts (98%) rename packages/tree-widget/src/test/{trees => }/common/internal/VisibilityUtils.test.ts (99%) rename packages/tree-widget/src/test/{trees => }/common/internal/hooks/UseCachedVisibility.test.ts (98%) rename packages/tree-widget/src/test/{trees => }/common/internal/hooks/UseIdsCache.test.ts (98%) rename packages/tree-widget/src/tree-widget-react/{components => }/TreeWidgetComponentImpl.css (100%) rename packages/tree-widget/src/tree-widget-react/{components => }/TreeWidgetComponentImpl.tsx (97%) rename packages/tree-widget/src/tree-widget-react/{components => }/TreeWidgetUiItemsProvider.css (100%) rename packages/tree-widget/src/tree-widget-react/{components => }/TreeWidgetUiItemsProvider.tsx (95%) delete mode 100644 packages/tree-widget/src/tree-widget-react/components/utils/IsPromiseLike.ts rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/FocusedInstancesContext.tsx (98%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/SharedTreeContextProvider.tsx (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/TreeErrors.ts (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/TreeWidgetViewport.ts (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/UseHierarchyVisibility.ts (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/UseTelemetryContext.tsx (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/Utils.ts (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/components/Delayed.tsx (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/components/EmptyTree.css (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/components/EmptyTree.tsx (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/components/LocalizationContext.tsx (91%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/components/ProgressOverlay.css (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/components/ProgressOverlay.tsx (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/components/SkeletonTree.css (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/components/SkeletonTree.tsx (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/components/Tree.css (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/components/Tree.tsx (99%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/components/TreeNodeCheckbox.scss (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/components/TreeNodeVisibilityButton.css (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/components/TreeNodeVisibilityButton.tsx (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/components/TreeRenderer.tsx (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/components/UseVisibilityButtonHandler.ts (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/components/VisibilityTree.tsx (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/components/VisibilityTreeRenderer.tsx (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/internal/BufferingViewport.ts (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/internal/ClassNameDefinitions.ts (100%) rename packages/tree-widget/src/tree-widget-react/{components/utils => shared/internal}/EachValueFrom.ts (100%) rename packages/tree-widget/src/tree-widget-react/{components/shared => shared/internal}/LocalizationHelpers.ts (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/internal/Rxjs.ts (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/internal/SharedTreeContextProviderInternal.tsx (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/internal/Tooltip.ts (94%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/internal/Types.ts (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/internal/Utils.ts (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/internal/VisibilityChangeEventListener.ts (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/internal/VisibilityUtils.ts (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/internal/caches/AlwaysAndNeverDrawnElementInfoCache.ts (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/internal/caches/BaseIdsCache.ts (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/internal/caches/BatchingCache.ts (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/internal/caches/ChildElementsCache.ts (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/internal/caches/DescendantsCountCache.ts (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/internal/caches/ElementModelCategoriesCache.ts (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/internal/caches/ModeledElementsCache.ts (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/internal/caches/SubCategoriesCache.ts (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/internal/hooks/UseActiveTreeWidgetViewport.tsx (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/internal/hooks/UseCachedVisibility.ts (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/internal/hooks/UseErrorState.ts (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/internal/hooks/UseGuid.ts (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/internal/hooks/UseHierarchyFiltering.tsx (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/internal/hooks/UseIModelAccess.ts (97%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/internal/hooks/UseIModelChangeListener.ts (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/internal/hooks/UseIdsCache.ts (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/internal/hooks/UseLatest.ts (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/internal/visibility/BaseSearchResultsTree.ts (100%) rename packages/tree-widget/src/tree-widget-react/{components/trees/common => shared}/internal/visibility/BaseVisibilityHelper.ts (100%) rename packages/tree-widget/src/tree-widget-react/{components => }/tree-header/ErrorState.tsx (92%) rename packages/tree-widget/src/tree-widget-react/{components => }/tree-header/SearchBox.tsx (93%) rename packages/tree-widget/src/tree-widget-react/{components => }/tree-header/SelectableTree.css (100%) rename packages/tree-widget/src/tree-widget-react/{components => }/tree-header/SelectableTree.tsx (93%) rename packages/tree-widget/src/tree-widget-react/{components => }/tree-header/WidgetHeader.css (100%) rename packages/tree-widget/src/tree-widget-react/{components => }/tree-header/WidgetHeader.tsx (100%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/categories-tree/CategoriesTree.tsx (86%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/categories-tree/CategoriesTreeButtons.tsx (93%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/categories-tree/CategoriesTreeComponent.tsx (93%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/categories-tree/CategoriesTreeDefinition.ts (99%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/categories-tree/CategoriesTreeIcon.tsx (100%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/categories-tree/CategoriesTreeNode.ts (100%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/categories-tree/UseCategoriesTree.tsx (91%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/categories-tree/internal/CategoriesTreeIdsCache.ts (97%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/categories-tree/internal/CategoriesTreeNodeInternal.ts (96%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/categories-tree/internal/UseSearchPaths.ts (93%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/categories-tree/internal/visibility/CategoriesTreeVisibilityHandler.ts (93%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/categories-tree/internal/visibility/CategoriesTreeVisibilityHelper.ts (92%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/categories-tree/internal/visibility/SearchResultsTree.ts (97%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/classifications-tree/ClassificationsTree.tsx (86%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/classifications-tree/ClassificationsTreeComponent.tsx (90%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/classifications-tree/ClassificationsTreeDefinition.ts (98%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/classifications-tree/ClassificationsTreeIcon.tsx (100%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/classifications-tree/ClassificationsTreeNode.ts (100%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/classifications-tree/UseClassificationsTree.tsx (90%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/classifications-tree/UseClassificationsTreeDefinition.ts (94%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/classifications-tree/internal/ClassificationsTreeIdsCache.ts (96%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/classifications-tree/internal/ClassificationsTreeNodeInternal.ts (95%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/classifications-tree/internal/visibility/ClassificationsTreeVisibilityHandler.ts (92%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/classifications-tree/internal/visibility/ClassificationsTreeVisibilityHelper.ts (90%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/classifications-tree/internal/visibility/SearchResultsTree.ts (95%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/external-sources-tree/ExternalSourcesTree.tsx (88%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/external-sources-tree/ExternalSourcesTreeComponent.tsx (96%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/external-sources-tree/ExternalSourcesTreeDefinition.ts (98%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/imodel-content-tree/IModelContentTree.tsx (90%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/imodel-content-tree/IModelContentTreeComponent.tsx (96%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/imodel-content-tree/IModelContentTreeDefinition.ts (99%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/imodel-content-tree/internal/IModelContentTreeIdsCache.ts (97%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/index.ts (74%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/models-tree/ModelsTree.tsx (86%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/models-tree/ModelsTreeButtons.tsx (94%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/models-tree/ModelsTreeComponent.tsx (94%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/models-tree/ModelsTreeDefinition.ts (99%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/models-tree/ModelsTreeIcon.tsx (100%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/models-tree/ModelsTreeNode.ts (100%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/models-tree/UseModelsTree.tsx (93%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/models-tree/internal/ModelsTreeIdsCache.ts (96%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/models-tree/internal/ModelsTreeNodeInternal.ts (95%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/models-tree/internal/UseSearchPaths.ts (96%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/models-tree/internal/visibility/ModelsTreeVisibilityHandler.ts (94%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/models-tree/internal/visibility/ModelsTreeVisibilityHelper.ts (89%) rename packages/tree-widget/src/tree-widget-react/{components => }/trees/models-tree/internal/visibility/SearchResultsTree.ts (97%) diff --git a/packages/tree-widget/docs/SharedVisibilityHandling.md b/packages/tree-widget/docs/SharedVisibilityHandling.md index c19287115..cc0670ac1 100644 --- a/packages/tree-widget/docs/SharedVisibilityHandling.md +++ b/packages/tree-widget/docs/SharedVisibilityHandling.md @@ -49,7 +49,7 @@ flowchart TD RESULT_Empty([No status produced]) %% Start - TITLE(["mergeVisibilityStatuses"]) --> A["Inspect supplied VisibilityStatus.state values"] + TITLE(["mergeVisibilityStatuses"]) --> A["Inspect supplied VisibilityStatus.state values"] PROPS[\" input diff --git a/packages/tree-widget/docs/Visibility.md b/packages/tree-widget/docs/Visibility.md index b809dce40..6c205ccd1 100644 --- a/packages/tree-widget/docs/Visibility.md +++ b/packages/tree-widget/docs/Visibility.md @@ -57,48 +57,48 @@ Every flowchart in these documents follows the same conventions: ## Key Internal APIs -- [`useCachedVisibility`](../src/tree-widget-react/components/trees/common/internal/hooks/UseCachedVisibility.ts) — React hook that returns a factory for the shared hierarchy visibility handler. +- [`useCachedVisibility`](../src/tree-widget-react/shared/internal/hooks/UseCachedVisibility.ts) — React hook that returns a factory for the shared hierarchy visibility handler. - Creates and disposes a tree-specific handler for each status or change request. - - Cancels an in-progress `getVisibilityStatus()` when the same node receives a change request or the viewport emits a relevant visibility event. [`useHierarchyVisibility`](../src/tree-widget-react/components/trees/common/UseHierarchyVisibility.ts) requests the status again through `onVisibilityChange()`. - - Runs changes against a [`BufferingViewport`](../src/tree-widget-react/components/trees/common/internal/BufferingViewport.ts). The buffered viewport is committed only when the complete change pipeline finishes normally; cancellation discards all buffered mutations. + - Cancels an in-progress `getVisibilityStatus()` when the same node receives a change request or the viewport emits a relevant visibility event. [`useHierarchyVisibility`](../src/tree-widget-react/shared/UseHierarchyVisibility.ts) requests the status again through `onVisibilityChange()`. + - Runs changes against a [`BufferingViewport`](../src/tree-widget-react/shared/internal/BufferingViewport.ts). The buffered viewport is committed only when the complete change pipeline finishes normally; cancellation discards all buffered mutations. - Suppresses viewport and always/never-drawn cache events during a change, then resumes them after commit or cancellation. - Applies special handling when search paths are present, because filtered hierarchy nodes may omit children that still contribute to visibility. -- [`BaseVisibilityHelper`](../src/tree-widget-react/components/trees/common/internal/visibility/BaseVisibilityHelper.ts) — shared get/change operations for visibility status based on element/model/category ids. - - Uses [`BaseIdsCache`](../src/tree-widget-react/components/trees/common/internal/caches/BaseIdsCache.ts) to retrieve information about nodes. +- [`BaseVisibilityHelper`](../src/tree-widget-react/shared/internal/visibility/BaseVisibilityHelper.ts) — shared get/change operations for visibility status based on element/model/category ids. + - Uses [`BaseIdsCache`](../src/tree-widget-react/shared/internal/caches/BaseIdsCache.ts) to retrieve information about nodes. - Examples: `getModelsVisibilityStatus()`, `getCategoriesVisibilityStatus()`, `changeModelsVisibilityStatus()`, `changeCategoriesVisibilityStatus()`. -- Tree-specific visibility handlers [`CategoriesTreeVisibilityHandler`](../src/tree-widget-react/components/trees/categories-tree/internal/visibility/CategoriesTreeVisibilityHandler.ts), [`ClassificationsTreeVisibilityHandler`](../src/tree-widget-react/components/trees/classifications-tree/internal/visibility/ClassificationsTreeVisibilityHandler.ts), [`ModelsTreeVisibilityHandler`](../src/tree-widget-react/components/trees/models-tree/internal/visibility/ModelsTreeVisibilityHandler.ts): +- Tree-specific visibility handlers [`CategoriesTreeVisibilityHandler`](../src/tree-widget-react/trees/categories-tree/internal/visibility/CategoriesTreeVisibilityHandler.ts), [`ClassificationsTreeVisibilityHandler`](../src/tree-widget-react/trees/classifications-tree/internal/visibility/ClassificationsTreeVisibilityHandler.ts), [`ModelsTreeVisibilityHandler`](../src/tree-widget-react/trees/models-tree/internal/visibility/ModelsTreeVisibilityHandler.ts): - These handlers are aware of tree-specific hierarchy structure. - Take tree nodes as input, determine node type via nodes' `extendedData` property, and use appropriate methods from visibility helpers. - Expose get/change visibility status logic for search-target nodes. - Models and Classifications tree visibility is 3D-only. Categories tree visibility supports 2D and 3D viewports. - Before changing visibility in always-drawn-exclusive mode, preserve the current visible set while converting the viewport to normal mode, then apply the requested change. -- Tree-specific visibility helpers ([`CategoriesTreeVisibilityHelper`](../src/tree-widget-react/components/trees/categories-tree/internal/visibility/CategoriesTreeVisibilityHelper.ts), [`ClassificationsTreeVisibilityHelper`](../src/tree-widget-react/components/trees/classifications-tree/internal/visibility/ClassificationsTreeVisibilityHelper.ts), [`ModelsTreeVisibilityHelper`](../src/tree-widget-react/components/trees/models-tree/internal/visibility/ModelsTreeVisibilityHelper.ts)): +- Tree-specific visibility helpers ([`CategoriesTreeVisibilityHelper`](../src/tree-widget-react/trees/categories-tree/internal/visibility/CategoriesTreeVisibilityHelper.ts), [`ClassificationsTreeVisibilityHelper`](../src/tree-widget-react/trees/classifications-tree/internal/visibility/ClassificationsTreeVisibilityHelper.ts), [`ModelsTreeVisibilityHelper`](../src/tree-widget-react/trees/models-tree/internal/visibility/ModelsTreeVisibilityHelper.ts)): - Cover tree-specific cases (e.g. definition containers exist only in the Categories tree, so `CategoriesTreeVisibilityHelper` implements get/change visibility methods for definition containers). - - All of them use [`BaseVisibilityHelper`](../src/tree-widget-react/components/trees/common/internal/visibility/BaseVisibilityHelper.ts) to get/change visibility for those tree-specific cases. + - All of them use [`BaseVisibilityHelper`](../src/tree-widget-react/shared/internal/visibility/BaseVisibilityHelper.ts) to get/change visibility for those tree-specific cases. -- Search-results trees ([`BaseSearchResultsTree`](../src/tree-widget-react/components/trees/common/internal/visibility/BaseSearchResultsTree.ts) and tree-specific implementations: [Categories](../src/tree-widget-react/components/trees/categories-tree/internal/visibility/SearchResultsTree.ts), [Classifications](../src/tree-widget-react/components/trees/classifications-tree/internal/visibility/SearchResultsTree.ts), [Models](../src/tree-widget-react/components/trees/models-tree/internal/visibility/SearchResultsTree.ts)): +- Search-results trees ([`BaseSearchResultsTree`](../src/tree-widget-react/shared/internal/visibility/BaseSearchResultsTree.ts) and tree-specific implementations: [Categories](../src/tree-widget-react/trees/categories-tree/internal/visibility/SearchResultsTree.ts), [Classifications](../src/tree-widget-react/trees/classifications-tree/internal/visibility/SearchResultsTree.ts), [Models](../src/tree-widget-react/trees/models-tree/internal/visibility/SearchResultsTree.ts)): - Help get/change visibility of nodes which are not search targets and don't have search-target ancestors (since these nodes might have some children missing). They allow retrieving child search targets for such nodes and then getting/changing visibility is done based on search targets instead. - Caching: - - [`BaseIdsCache`](../src/tree-widget-react/components/trees/common/internal/caches/BaseIdsCache.ts) - stores data that is relevant to models/categories/classifications trees (e.g. model <-> category relationship). - - This cache is composed of other caches ([`DescendantsCountCache`](../src/tree-widget-react/components/trees/common/internal/caches/DescendantsCountCache.ts), [`ChildElementsCache`](../src/tree-widget-react/components/trees/common/internal/caches/ChildElementsCache.ts), [`SubCategoriesCache`](../src/tree-widget-react/components/trees/common/internal/caches/SubCategoriesCache.ts), and others). + - [`BaseIdsCache`](../src/tree-widget-react/shared/internal/caches/BaseIdsCache.ts) - stores data that is relevant to models/categories/classifications trees (e.g. model <-> category relationship). + - This cache is composed of other caches ([`DescendantsCountCache`](../src/tree-widget-react/shared/internal/caches/DescendantsCountCache.ts), [`ChildElementsCache`](../src/tree-widget-react/shared/internal/caches/ChildElementsCache.ts), [`SubCategoriesCache`](../src/tree-widget-react/shared/internal/caches/SubCategoriesCache.ts), and others). - Data stored in this cache is requested only once, because it does not change. - - Tree-specific id caches ([`CategoriesTreeIdsCache`](../src/tree-widget-react/components/trees/categories-tree/internal/CategoriesTreeIdsCache.ts), [`ClassificationsTreeIdsCache`](../src/tree-widget-react/components/trees/classifications-tree/internal/ClassificationsTreeIdsCache.ts), [`ModelsTreeIdsCache`](../src/tree-widget-react/components/trees/models-tree/internal/ModelsTreeIdsCache.ts)): + - Tree-specific id caches ([`CategoriesTreeIdsCache`](../src/tree-widget-react/trees/categories-tree/internal/CategoriesTreeIdsCache.ts), [`ClassificationsTreeIdsCache`](../src/tree-widget-react/trees/classifications-tree/internal/ClassificationsTreeIdsCache.ts), [`ModelsTreeIdsCache`](../src/tree-widget-react/trees/models-tree/internal/ModelsTreeIdsCache.ts)): - Store various tree-specific relationships, (e.g. models tree ids cache stores element's model <-> subject relationship). - - Extend `BaseIdsCacheImpl` so each tree-specific cache can be used in [`BaseVisibilityHelper`](../src/tree-widget-react/components/trees/common/internal/visibility/BaseVisibilityHelper.ts). + - Extend `BaseIdsCacheImpl` so each tree-specific cache can be used in [`BaseVisibilityHelper`](../src/tree-widget-react/shared/internal/visibility/BaseVisibilityHelper.ts). - - [`AlwaysAndNeverDrawnElementInfoCache`](../src/tree-widget-react/components/trees/common/internal/caches/AlwaysAndNeverDrawnElementInfoCache.ts) — caches extra data (like category) for always/never drawn elements. + - [`AlwaysAndNeverDrawnElementInfoCache`](../src/tree-widget-react/shared/internal/caches/AlwaysAndNeverDrawnElementInfoCache.ts) — caches extra data (like category) for always/never drawn elements. - Always and never drawn caches are reset when always and never drawn sets change respectively. - Always and never drawn elements can be retrieved by model, actual category, and hierarchy path. - - [`DescendantsCountCache`](../src/tree-widget-react/components/trees/common/internal/caches/DescendantsCountCache.ts) — retrieves descendant counts grouped by each descendant's actual category. + - [`DescendantsCountCache`](../src/tree-widget-react/shared/internal/caches/DescendantsCountCache.ts) — retrieves descendant counts grouped by each descendant's actual category. - Status requests use these counts with path-scoped always/never-drawn information. They do not load all descendant IDs. - Change requests use the grouped counts to decide which category groups already match the requested state. - - [`ChildElementsCache`](../src/tree-widget-react/components/trees/common/internal/caches/ChildElementsCache.ts) — cache for retrieving elements' children. + - [`ChildElementsCache`](../src/tree-widget-react/shared/internal/caches/ChildElementsCache.ts) — cache for retrieving elements' children. - Used only during changes, for category and element/grouping operations whose descendants are in categories that do not already match the requested state. - It retrieves IDs only for those non-matching category groups so they can be added to `alwaysDrawn` or `neverDrawn`. - It is not used for status requests. A hierarchy branch may contain hundreds of thousands of descendants, so status is computed from grouped counts instead. @@ -120,7 +120,7 @@ flowchart TD RESULT_ChangeCancelled([Change discarded]) %% Start - TITLE(["HierarchyVisibilityHandlerImpl request lifecycle"]) --> A{"Request operation"} + TITLE(["HierarchyVisibilityHandlerImpl request lifecycle"]) --> A{"Request operation"} PROPS[\" request @@ -194,8 +194,8 @@ The viewport only renders elements. Element visibility is resolved in the follow A trace of what happens when the user clicks the eye icon of a hidden category node in the Categories tree (no search active): -1. [`useHierarchyVisibility`](../src/tree-widget-react/components/trees/common/UseHierarchyVisibility.ts) calls `changeVisibility(node, true)` on the shared hierarchy visibility handler created by [`useCachedVisibility`](../src/tree-widget-react/components/trees/common/internal/hooks/UseCachedVisibility.ts). -2. The handler announces the change request, cancelling any in-progress status or change request for the same node. It creates a [`BufferingViewport`](../src/tree-widget-react/components/trees/common/internal/BufferingViewport.ts), suppresses viewport and always/never-drawn cache events, and creates a `CategoriesTreeVisibilityHandler` against the buffered viewport. +1. [`useHierarchyVisibility`](../src/tree-widget-react/shared/UseHierarchyVisibility.ts) calls `changeVisibility(node, true)` on the shared hierarchy visibility handler created by [`useCachedVisibility`](../src/tree-widget-react/shared/internal/hooks/UseCachedVisibility.ts). +2. The handler announces the change request, cancelling any in-progress status or change request for the same node. It creates a [`BufferingViewport`](../src/tree-widget-react/shared/internal/BufferingViewport.ts), suppresses viewport and always/never-drawn cache events, and creates a `CategoriesTreeVisibilityHandler` against the buffered viewport. 3. The tree-specific handler reads the node's `extendedData`, identifies a category node, and — after calling [removeAlwaysDrawnExclusive](./SharedVisibilityHandling.md#removealwaysdrawnexclusive) first if exclusive mode is active — delegates to the shared [changeCategoriesVisibilityStatus](./SharedVisibilityHandling.md#changecategoriesvisibilitystatus) without a `modelId`. 4. The shared helper enables the category in the category selector, then for every related model: clears the per-model category override, clears path-scoped always/never-drawn entries, and recursively changes scoped sub-models. Hidden related models are prepared by [showModelWithoutAnyCategoriesOrElements](./SharedVisibilityHandling.md#showmodelwithoutanycategoriesorelements) so no unrelated categories become visible. Descendants in other actual categories are reconciled through [queueElementsVisibilityChange](./SharedVisibilityHandling.md#queueelementsvisibilitychange), and hidden sub-categories of the requested category are enabled. 5. The change pipeline completes, so all buffered viewport mutations are committed in one batch, events are resumed, and the tree-specific handler is disposed. diff --git a/packages/tree-widget/src/test/trees/common/FocusedInstancesContext.test.tsx b/packages/tree-widget/src/test/common/FocusedInstancesContext.test.tsx similarity index 98% rename from packages/tree-widget/src/test/trees/common/FocusedInstancesContext.test.tsx rename to packages/tree-widget/src/test/common/FocusedInstancesContext.test.tsx index 4f39bf304..3bd172cd7 100644 --- a/packages/tree-widget/src/test/trees/common/FocusedInstancesContext.test.tsx +++ b/packages/tree-widget/src/test/common/FocusedInstancesContext.test.tsx @@ -5,7 +5,7 @@ import { beforeEach, describe, expect, it } from "vitest"; import { createStorage } from "@itwin/unified-selection"; -import { FocusedInstancesContextProvider, useFocusedInstancesContext } from "../../../tree-widget-react/components/trees/common/FocusedInstancesContext.js"; +import { FocusedInstancesContextProvider, useFocusedInstancesContext } from "../../../tree-widget-react/shared/FocusedInstancesContext.js"; import { act, createAsyncIterator, renderHook, waitFor } from "../../TestUtils.js"; import type { PropsWithChildren } from "react"; diff --git a/packages/tree-widget/src/test/trees/common/TreeWidgetViewport.test.ts b/packages/tree-widget/src/test/common/TreeWidgetViewport.test.ts similarity index 99% rename from packages/tree-widget/src/test/trees/common/TreeWidgetViewport.test.ts rename to packages/tree-widget/src/test/common/TreeWidgetViewport.test.ts index 915c4336f..3dd99f319 100644 --- a/packages/tree-widget/src/test/trees/common/TreeWidgetViewport.test.ts +++ b/packages/tree-widget/src/test/common/TreeWidgetViewport.test.ts @@ -16,7 +16,7 @@ import { afterAll, beforeAll, describe, expect, it, vi } from "vitest"; import { withEditTxn } from "@itwin/core-backend"; import { Code, ColorDef, IModel, RenderMode } from "@itwin/core-common"; import { IModelApp, OffScreenViewport, SpatialViewState, ViewRect } from "@itwin/core-frontend"; -import { createTreeWidgetViewport } from "../../../tree-widget-react/components/trees/common/TreeWidgetViewport.js"; +import { createTreeWidgetViewport } from "../../../tree-widget-react/shared/TreeWidgetViewport.js"; import { buildIModel } from "../../IModelUtils.js"; import type { Id64Array } from "@itwin/core-bentley"; diff --git a/packages/tree-widget/src/test/trees/common/UseHierarchyVisibility.test.ts b/packages/tree-widget/src/test/common/UseHierarchyVisibility.test.ts similarity index 98% rename from packages/tree-widget/src/test/trees/common/UseHierarchyVisibility.test.ts rename to packages/tree-widget/src/test/common/UseHierarchyVisibility.test.ts index ad381ba56..b1c4fa638 100644 --- a/packages/tree-widget/src/test/trees/common/UseHierarchyVisibility.test.ts +++ b/packages/tree-widget/src/test/common/UseHierarchyVisibility.test.ts @@ -5,12 +5,12 @@ import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; import { BeEvent } from "@itwin/core-bentley"; -import { useHierarchyVisibility } from "../../../tree-widget-react/components/trees/common/UseHierarchyVisibility.js"; +import { useHierarchyVisibility } from "../../../tree-widget-react/shared/UseHierarchyVisibility.js"; import { TreeWidget } from "../../../tree-widget-react/TreeWidget.js"; import { act, renderHook, waitFor } from "../../TestUtils.js"; import { createTreeNode } from "../TreeUtils.js"; -import type { HierarchyVisibilityHandler } from "../../../tree-widget-react/components/trees/common/UseHierarchyVisibility.js"; +import type { HierarchyVisibilityHandler } from "../../../tree-widget-react/shared/UseHierarchyVisibility.js"; type UseHierarchyVisibilityProps = Parameters[0]; diff --git a/packages/tree-widget/src/test/trees/common/Utils.test.ts b/packages/tree-widget/src/test/common/Utils.test.ts similarity index 99% rename from packages/tree-widget/src/test/trees/common/Utils.test.ts rename to packages/tree-widget/src/test/common/Utils.test.ts index 72b464036..6192c9537 100644 --- a/packages/tree-widget/src/test/trees/common/Utils.test.ts +++ b/packages/tree-widget/src/test/common/Utils.test.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { describe, expect, it } from "vitest"; -import { joinHierarchySearchTrees } from "../../../tree-widget-react/components/trees/common/Utils.js"; +import { joinHierarchySearchTrees } from "../../../tree-widget-react/shared/Utils.js"; import type { IModelInstanceKey } from "@itwin/presentation-hierarchies"; diff --git a/packages/tree-widget/src/test/trees/common/VisibilityValidation.ts b/packages/tree-widget/src/test/common/VisibilityValidation.ts similarity index 92% rename from packages/tree-widget/src/test/trees/common/VisibilityValidation.ts rename to packages/tree-widget/src/test/common/VisibilityValidation.ts index 382a2a5e6..9191b572e 100644 --- a/packages/tree-widget/src/test/trees/common/VisibilityValidation.ts +++ b/packages/tree-widget/src/test/common/VisibilityValidation.ts @@ -7,8 +7,8 @@ import { EMPTY, expand, from, mergeMap, tap } from "rxjs"; import { toVoidPromise } from "../../../tree-widget-react/components/trees/common/internal/Rxjs.js"; import type { HierarchyNode, HierarchyProvider } from "@itwin/presentation-hierarchies"; -import type { Visibility } from "../../../tree-widget-react/components/trees/common/internal/Tooltip.js"; -import type { HierarchyVisibilityHandler } from "../../../tree-widget-react/components/trees/common/UseHierarchyVisibility.js"; +import type { Visibility } from "../../../tree-widget-react/shared/internal/Tooltip.js"; +import type { HierarchyVisibilityHandler } from "../../../tree-widget-react/shared/UseHierarchyVisibility.js"; import type { TreeWidgetTestingViewport } from "../TreeUtils.js"; export interface VisibilityExpectations { diff --git a/packages/tree-widget/src/test/trees/common/internal/AlwaysAndNeverDrawnElementInfoCache.test.ts b/packages/tree-widget/src/test/common/internal/AlwaysAndNeverDrawnElementInfoCache.test.ts similarity index 99% rename from packages/tree-widget/src/test/trees/common/internal/AlwaysAndNeverDrawnElementInfoCache.test.ts rename to packages/tree-widget/src/test/common/internal/AlwaysAndNeverDrawnElementInfoCache.test.ts index bcea620cb..8947e3053 100644 --- a/packages/tree-widget/src/test/trees/common/internal/AlwaysAndNeverDrawnElementInfoCache.test.ts +++ b/packages/tree-widget/src/test/common/internal/AlwaysAndNeverDrawnElementInfoCache.test.ts @@ -10,14 +10,14 @@ import { ALWAYS_NEVER_BUFFER_THRESHOLD, AlwaysAndNeverDrawnElementInfoCache, SET_CHANGE_DEBOUNCE_TIME, -} from "../../../../tree-widget-react/components/trees/common/internal/caches/AlwaysAndNeverDrawnElementInfoCache.js"; +} from "../../../../tree-widget-react/shared/internal/caches/AlwaysAndNeverDrawnElementInfoCache.js"; import { createResolvablePromise } from "../../../TestUtils.js"; import { createFakeViewport } from "../../Common.js"; import type { Id64String } from "@itwin/core-bentley"; import type { QueryBinder } from "@itwin/core-common"; import type { TreeWidgetViewport } from "../../../../tree-widget-react.js"; -import type { ElementPathSegment } from "../../../../tree-widget-react/components/trees/common/internal/caches/AlwaysAndNeverDrawnElementInfoCache.js"; +import type { ElementPathSegment } from "../../../../tree-widget-react/shared/internal/caches/AlwaysAndNeverDrawnElementInfoCache.js"; describe("AlwaysAndNeverDrawnElementInfoCache", () => { beforeEach(() => { diff --git a/packages/tree-widget/src/test/trees/common/internal/BufferingViewport.test.ts b/packages/tree-widget/src/test/common/internal/BufferingViewport.test.ts similarity index 99% rename from packages/tree-widget/src/test/trees/common/internal/BufferingViewport.test.ts rename to packages/tree-widget/src/test/common/internal/BufferingViewport.test.ts index 66bc945a0..e850d37a0 100644 --- a/packages/tree-widget/src/test/trees/common/internal/BufferingViewport.test.ts +++ b/packages/tree-widget/src/test/common/internal/BufferingViewport.test.ts @@ -4,11 +4,11 @@ *--------------------------------------------------------------------------------------------*/ import { describe, expect, it } from "vitest"; -import { BufferingViewport } from "../../../../tree-widget-react/components/trees/common/internal/BufferingViewport.js"; +import { BufferingViewport } from "../../../../tree-widget-react/shared/internal/BufferingViewport.js"; import { createTreeWidgetTestingViewport } from "../../TreeUtils.js"; import type { IModelConnection } from "@itwin/core-frontend"; -import type { TreeWidgetViewport } from "../../../../tree-widget-react/components/trees/common/TreeWidgetViewport.js"; +import type { TreeWidgetViewport } from "../../../../tree-widget-react/shared/TreeWidgetViewport.js"; describe("BufferingViewport", () => { describe("models", () => { diff --git a/packages/tree-widget/src/test/trees/common/internal/ChildElementsCache.test.ts b/packages/tree-widget/src/test/common/internal/ChildElementsCache.test.ts similarity index 99% rename from packages/tree-widget/src/test/trees/common/internal/ChildElementsCache.test.ts rename to packages/tree-widget/src/test/common/internal/ChildElementsCache.test.ts index 3d3f1b4d0..eb7562d07 100644 --- a/packages/tree-widget/src/test/trees/common/internal/ChildElementsCache.test.ts +++ b/packages/tree-widget/src/test/common/internal/ChildElementsCache.test.ts @@ -21,8 +21,8 @@ import { ECSchemaRpcImpl } from "@itwin/ecschema-rpcinterface-impl"; import { PresentationRpcInterface } from "@itwin/presentation-common"; import { createECSqlQueryExecutor } from "@itwin/presentation-core-interop"; import { createLimitingECSqlQueryExecutor } from "@itwin/presentation-hierarchies"; -import { ChildElementsCache } from "../../../../tree-widget-react/components/trees/common/internal/caches/ChildElementsCache.js"; -import { CLASS_NAME_GeometricElement3d } from "../../../../tree-widget-react/components/trees/common/internal/ClassNameDefinitions.js"; +import { ChildElementsCache } from "../../../../tree-widget-react/shared/internal/caches/ChildElementsCache.js"; +import { CLASS_NAME_GeometricElement3d } from "../../../../tree-widget-react/shared/internal/ClassNameDefinitions.js"; import { buildIModel } from "../../../IModelUtils.js"; import { createFakeViewport } from "../../Common.js"; diff --git a/packages/tree-widget/src/test/trees/common/internal/DescendantsCountCache.test.ts b/packages/tree-widget/src/test/common/internal/DescendantsCountCache.test.ts similarity index 99% rename from packages/tree-widget/src/test/trees/common/internal/DescendantsCountCache.test.ts rename to packages/tree-widget/src/test/common/internal/DescendantsCountCache.test.ts index d4be455be..e9a43a0c6 100644 --- a/packages/tree-widget/src/test/trees/common/internal/DescendantsCountCache.test.ts +++ b/packages/tree-widget/src/test/common/internal/DescendantsCountCache.test.ts @@ -20,8 +20,8 @@ import { ECSchemaRpcImpl } from "@itwin/ecschema-rpcinterface-impl"; import { PresentationRpcInterface } from "@itwin/presentation-common"; import { createECSqlQueryExecutor } from "@itwin/presentation-core-interop"; import { createLimitingECSqlQueryExecutor } from "@itwin/presentation-hierarchies"; -import { DescendantsCountCache } from "../../../../tree-widget-react/components/trees/common/internal/caches/DescendantsCountCache.js"; -import { CLASS_NAME_GeometricElement3d } from "../../../../tree-widget-react/components/trees/common/internal/ClassNameDefinitions.js"; +import { DescendantsCountCache } from "../../../../tree-widget-react/shared/internal/caches/DescendantsCountCache.js"; +import { CLASS_NAME_GeometricElement3d } from "../../../../tree-widget-react/shared/internal/ClassNameDefinitions.js"; import { buildIModel } from "../../../IModelUtils.js"; import { createFakeViewport } from "../../Common.js"; diff --git a/packages/tree-widget/src/test/trees/common/internal/Utils.test.ts b/packages/tree-widget/src/test/common/internal/Utils.test.ts similarity index 98% rename from packages/tree-widget/src/test/trees/common/internal/Utils.test.ts rename to packages/tree-widget/src/test/common/internal/Utils.test.ts index 7815a15db..e94adea4d 100644 --- a/packages/tree-widget/src/test/trees/common/internal/Utils.test.ts +++ b/packages/tree-widget/src/test/common/internal/Utils.test.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { describe, expect, it } from "vitest"; -import { createWhereClause, mergeWithDefaults, stableStringify } from "../../../../tree-widget-react/components/trees/common/internal/Utils.js"; +import { createWhereClause, mergeWithDefaults, stableStringify } from "../../../../tree-widget-react/shared/internal/Utils.js"; describe("Utils", () => { describe("createWhereClause", () => { diff --git a/packages/tree-widget/src/test/trees/common/internal/VisibilityChangeEventListener.test.ts b/packages/tree-widget/src/test/common/internal/VisibilityChangeEventListener.test.ts similarity index 98% rename from packages/tree-widget/src/test/trees/common/internal/VisibilityChangeEventListener.test.ts rename to packages/tree-widget/src/test/common/internal/VisibilityChangeEventListener.test.ts index 7974c547a..2b9b9504d 100644 --- a/packages/tree-widget/src/test/trees/common/internal/VisibilityChangeEventListener.test.ts +++ b/packages/tree-widget/src/test/common/internal/VisibilityChangeEventListener.test.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { describe, expect, it, vi } from "vitest"; -import { createVisibilityChangeEventListener } from "../../../../tree-widget-react/components/trees/common/internal/VisibilityChangeEventListener.js"; +import { createVisibilityChangeEventListener } from "../../../../tree-widget-react/shared/internal/VisibilityChangeEventListener.js"; import { waitFor } from "../../../TestUtils.js"; import { createFakeViewport } from "../../Common.js"; diff --git a/packages/tree-widget/src/test/trees/common/internal/VisibilityUtils.test.ts b/packages/tree-widget/src/test/common/internal/VisibilityUtils.test.ts similarity index 99% rename from packages/tree-widget/src/test/trees/common/internal/VisibilityUtils.test.ts rename to packages/tree-widget/src/test/common/internal/VisibilityUtils.test.ts index 14c30fb5b..9b1143d29 100644 --- a/packages/tree-widget/src/test/trees/common/internal/VisibilityUtils.test.ts +++ b/packages/tree-widget/src/test/common/internal/VisibilityUtils.test.ts @@ -20,7 +20,7 @@ import { IModelApp, NoRenderApp } from "@itwin/core-frontend"; import { ECSchemaRpcInterface } from "@itwin/ecschema-rpcinterface-common"; import { ECSchemaRpcImpl } from "@itwin/ecschema-rpcinterface-impl"; import { PresentationRpcInterface } from "@itwin/presentation-common"; -import { createVisibilityStatus } from "../../../../tree-widget-react/components/trees/common/internal/Tooltip.js"; +import { createVisibilityStatus } from "../../../../tree-widget-react/shared/internal/Tooltip.js"; import { changeCategoryDisplay, changeElementStateNoChildrenOperator, @@ -30,7 +30,7 @@ import { invertAllModels, mergeVisibilityStatuses, showAll, -} from "../../../../tree-widget-react/components/trees/common/internal/VisibilityUtils.js"; +} from "../../../../tree-widget-react/shared/internal/VisibilityUtils.js"; import { buildIModel } from "../../../IModelUtils.js"; import { TestUtils } from "../../../TestUtils.js"; import { createFakeViewport } from "../../Common.js"; diff --git a/packages/tree-widget/src/test/trees/common/internal/hooks/UseCachedVisibility.test.ts b/packages/tree-widget/src/test/common/internal/hooks/UseCachedVisibility.test.ts similarity index 98% rename from packages/tree-widget/src/test/trees/common/internal/hooks/UseCachedVisibility.test.ts rename to packages/tree-widget/src/test/common/internal/hooks/UseCachedVisibility.test.ts index 101307835..eaf1f8c1f 100644 --- a/packages/tree-widget/src/test/trees/common/internal/hooks/UseCachedVisibility.test.ts +++ b/packages/tree-widget/src/test/common/internal/hooks/UseCachedVisibility.test.ts @@ -5,14 +5,14 @@ import { EMPTY, of, Subject } from "rxjs"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; -import { HierarchyVisibilityHandlerImpl } from "../../../../../tree-widget-react/components/trees/common/internal/hooks/UseCachedVisibility.js"; -import { createVisibilityStatus } from "../../../../../tree-widget-react/components/trees/common/internal/Tooltip.js"; +import { HierarchyVisibilityHandlerImpl } from "../../../../../tree-widget-react/shared/internal/hooks/UseCachedVisibility.js"; +import { createVisibilityStatus } from "../../../../../tree-widget-react/shared/internal/Tooltip.js"; import { createFakeViewport } from "../../../Common.js"; import type { HierarchyNode } from "@itwin/presentation-hierarchies"; -import type { HierarchyVisibilityHandlerImplProps } from "../../../../../tree-widget-react/components/trees/common/internal/hooks/UseCachedVisibility.js"; -import type { TreeSpecificVisibilityHandler } from "../../../../../tree-widget-react/components/trees/common/internal/visibility/BaseVisibilityHelper.js"; -import type { VisibilityStatus } from "../../../../../tree-widget-react/components/trees/common/UseHierarchyVisibility.js"; +import type { HierarchyVisibilityHandlerImplProps } from "../../../../../tree-widget-react/shared/internal/hooks/UseCachedVisibility.js"; +import type { TreeSpecificVisibilityHandler } from "../../../../../tree-widget-react/shared/internal/visibility/BaseVisibilityHelper.js"; +import type { VisibilityStatus } from "../../../../../tree-widget-react/shared/UseHierarchyVisibility.js"; function createNode(props?: { instanceKeys?: Array<{ className: string; id: string }>; parentKeys?: HierarchyNode["parentKeys"] }): HierarchyNode { return { diff --git a/packages/tree-widget/src/test/trees/common/internal/hooks/UseIdsCache.test.ts b/packages/tree-widget/src/test/common/internal/hooks/UseIdsCache.test.ts similarity index 98% rename from packages/tree-widget/src/test/trees/common/internal/hooks/UseIdsCache.test.ts rename to packages/tree-widget/src/test/common/internal/hooks/UseIdsCache.test.ts index 1b13bdefa..57096cb3c 100644 --- a/packages/tree-widget/src/test/trees/common/internal/hooks/UseIdsCache.test.ts +++ b/packages/tree-widget/src/test/common/internal/hooks/UseIdsCache.test.ts @@ -5,7 +5,7 @@ import { beforeEach, describe, expect, it, vi } from "vitest"; import { BeEvent } from "@itwin/core-bentley"; -import { useIdsCache } from "../../../../../tree-widget-react/components/trees/common/internal/hooks/UseIdsCache.js"; +import { useIdsCache } from "../../../../../tree-widget-react/shared/internal/hooks/UseIdsCache.js"; import { act, renderHook } from "../../../../TestUtils.js"; import type { BriefcaseConnection } from "@itwin/core-frontend"; diff --git a/packages/tree-widget/src/test/trees/Common.ts b/packages/tree-widget/src/test/trees/Common.ts index afa477c69..72079326f 100644 --- a/packages/tree-widget/src/test/trees/Common.ts +++ b/packages/tree-widget/src/test/trees/Common.ts @@ -15,7 +15,7 @@ import type { QueryBinder, QueryOptions } from "@itwin/core-common"; import type { IModelConnection } from "@itwin/core-frontend"; import type { LimitingECSqlQueryExecutor } from "@itwin/presentation-hierarchies"; import type { ECClassHierarchyInspector, ECSchemaProvider } from "@itwin/presentation-shared"; -import type { TreeWidgetViewport } from "../../tree-widget-react/components/trees/common/TreeWidgetViewport.js"; +import type { TreeWidgetViewport } from "../../tree-widget-react/shared/TreeWidgetViewport.js"; import type { TreeWidgetTestingViewport } from "./TreeUtils.js"; type QueryHandler = (query: string, params?: QueryBinder, config?: QueryOptions) => any[] | Promise; diff --git a/packages/tree-widget/src/test/trees/HierarchyValidation.ts b/packages/tree-widget/src/test/trees/HierarchyValidation.ts index 0f551320b..e2b147f3d 100644 --- a/packages/tree-widget/src/test/trees/HierarchyValidation.ts +++ b/packages/tree-widget/src/test/trees/HierarchyValidation.ts @@ -9,7 +9,7 @@ import { collect } from "./Common.js"; import type { GenericNodeKey, HierarchyProvider, NonGroupingHierarchyNode } from "@itwin/presentation-hierarchies"; -export interface HierarchyDef { +interface HierarchyDef { node: TNode; children?: Array> | boolean; } diff --git a/packages/tree-widget/src/test/trees/TreeUtils.ts b/packages/tree-widget/src/test/trees/TreeUtils.ts index 1d4ba10ca..d0c759165 100644 --- a/packages/tree-widget/src/test/trees/TreeUtils.ts +++ b/packages/tree-widget/src/test/trees/TreeUtils.ts @@ -4,41 +4,14 @@ *--------------------------------------------------------------------------------------------*/ import { BeEvent, Id64 } from "@itwin/core-bentley"; -import { getOrCreate } from "../../tree-widget-react/components/trees/common/internal/Utils.js"; +import { getOrCreate } from "../../tree-widget-react/shared/internal/Utils.js"; import type { Id64Arg, Id64String } from "@itwin/core-bentley"; -import type { NonGroupingHierarchyNode } from "@itwin/presentation-hierarchies"; -import type { TreeNode } from "@itwin/presentation-hierarchies-react"; -import type { CategoryId, ElementId, ModelId, SubCategoryId } from "../../tree-widget-react/components/trees/common/internal/Types.js"; -import type { TreeWidgetViewport } from "../../tree-widget-react/components/trees/common/TreeWidgetViewport.js"; +import type { CategoryId, ElementId, ModelId, SubCategoryId } from "../../tree-widget-react/shared/internal/Types.js"; +import type { TreeWidgetViewport } from "../../tree-widget-react/shared/TreeWidgetViewport.js"; export const CLASS_NAME_DefinitionModel = "BisCore.DefinitionModel"; -export function createTreeNode(partial?: Partial): TreeNode { - return { - id: "test-node", - label: "test-node", - isExpanded: false, - isLoading: false, - isFilterable: false, - isFiltered: false, - nodeData: createNonGroupingHierarchyNode(), - children: [], - errors: [], - ...partial, - }; -} - -export function createNonGroupingHierarchyNode(partial?: Partial): NonGroupingHierarchyNode { - return { - label: "test-node", - key: { type: "instances", instanceKeys: [] }, - parentKeys: [], - children: false, - ...partial, - }; -} - export function getDefaultSubCategoryId(categoryId: Id64String) { const categoryIdNumber = Number.parseInt(categoryId, 16); const subCategoryId = `0x${(categoryIdNumber + 1).toString(16)}`; diff --git a/packages/tree-widget/src/test/trees/categories-tree/CategoriesTreeDefinition.test.ts b/packages/tree-widget/src/test/trees/categories-tree/CategoriesTreeDefinition.test.ts index 1d7ab7953..995e542f1 100644 --- a/packages/tree-widget/src/test/trees/categories-tree/CategoriesTreeDefinition.test.ts +++ b/packages/tree-widget/src/test/trees/categories-tree/CategoriesTreeDefinition.test.ts @@ -24,13 +24,10 @@ import { ECSchemaRpcInterface } from "@itwin/ecschema-rpcinterface-common"; import { ECSchemaRpcImpl } from "@itwin/ecschema-rpcinterface-impl"; import { PresentationRpcInterface } from "@itwin/presentation-common"; import { createIModelHierarchyProvider } from "@itwin/presentation-hierarchies"; -import { - CategoriesTreeDefinition, - defaultHierarchyConfiguration, -} from "../../../tree-widget-react/components/trees/categories-tree/CategoriesTreeDefinition.js"; -import { CategoriesTreeIdsCache } from "../../../tree-widget-react/components/trees/categories-tree/internal/CategoriesTreeIdsCache.js"; -import { BaseIdsCache } from "../../../tree-widget-react/components/trees/common/internal/caches/BaseIdsCache.js"; -import { getClassesByView, mergeWithDefaults } from "../../../tree-widget-react/components/trees/common/internal/Utils.js"; +import { BaseIdsCache } from "../../../tree-widget-react/shared/internal/caches/BaseIdsCache.js"; +import { getClassesByView, mergeWithDefaults } from "../../../tree-widget-react/shared/internal/Utils.js"; +import { CategoriesTreeDefinition, defaultHierarchyConfiguration } from "../../../tree-widget-react/trees/categories-tree/CategoriesTreeDefinition.js"; +import { CategoriesTreeIdsCache } from "../../../tree-widget-react/trees/categories-tree/internal/CategoriesTreeIdsCache.js"; import { buildIModel, TestSchema } from "../../IModelUtils.js"; import { createIModelAccess } from "../Common.js"; import { NodeValidators, validateHierarchy } from "../HierarchyValidation.js"; @@ -40,7 +37,7 @@ import { getInsertFunctionByViewType } from "./internal/Utils.js"; import type { IModelConnection } from "@itwin/core-frontend"; import type { HierarchyProvider } from "@itwin/presentation-hierarchies"; import type { EC } from "@itwin/presentation-shared"; -import type { CategoriesTreeHierarchyConfiguration } from "../../../tree-widget-react/components/trees/categories-tree/CategoriesTreeDefinition.js"; +import type { CategoriesTreeHierarchyConfiguration } from "../../../tree-widget-react/trees/categories-tree/CategoriesTreeDefinition.js"; describe("Categories tree", () => { describe("Hierarchy definition", () => { diff --git a/packages/tree-widget/src/test/trees/categories-tree/CategoriesTreeFiltering.test.tsx b/packages/tree-widget/src/test/trees/categories-tree/CategoriesTreeFiltering.test.tsx index 6394022b2..b60c4eefa 100644 --- a/packages/tree-widget/src/test/trees/categories-tree/CategoriesTreeFiltering.test.tsx +++ b/packages/tree-widget/src/test/trees/categories-tree/CategoriesTreeFiltering.test.tsx @@ -25,13 +25,10 @@ import { ECSchemaRpcInterface } from "@itwin/ecschema-rpcinterface-common"; import { ECSchemaRpcImpl } from "@itwin/ecschema-rpcinterface-impl"; import { PresentationRpcInterface } from "@itwin/presentation-common"; import { act, renderHook } from "@testing-library/react"; -import { useCategoriesTree } from "../../../tree-widget-react/components/trees/categories-tree/UseCategoriesTree.js"; -import { - CLASS_NAME_GeometricElement2d, - CLASS_NAME_GeometricElement3d, -} from "../../../tree-widget-react/components/trees/common/internal/ClassNameDefinitions.js"; -import { getClassesByView } from "../../../tree-widget-react/components/trees/common/internal/Utils.js"; -import { SharedTreeContextProvider } from "../../../tree-widget-react/components/trees/common/SharedTreeContextProvider.js"; +import { CLASS_NAME_GeometricElement2d, CLASS_NAME_GeometricElement3d } from "../../../tree-widget-react/shared/internal/ClassNameDefinitions.js"; +import { getClassesByView } from "../../../tree-widget-react/shared/internal/Utils.js"; +import { SharedTreeContextProvider } from "../../../tree-widget-react/shared/SharedTreeContextProvider.js"; +import { useCategoriesTree } from "../../../tree-widget-react/trees/categories-tree/UseCategoriesTree.js"; import { buildIModel } from "../../IModelUtils.js"; import { createFakeViewport, createIModelAccess } from "../Common.js"; import { CLASS_NAME_DefinitionModel } from "../TreeUtils.js"; @@ -39,7 +36,7 @@ import { getInsertFunctionByViewType } from "./internal/Utils.js"; import type { IModelConnection } from "@itwin/core-frontend"; import type { EC, Props } from "@itwin/presentation-shared"; -import type { CategoryInfo } from "../../../tree-widget-react/components/trees/categories-tree/CategoriesTreeButtons.js"; +import type { CategoryInfo } from "../../../tree-widget-react/trees/categories-tree/CategoriesTreeButtons.js"; // cspell:words egory // cspell complains about Cat_egory and Cat%egory diff --git a/packages/tree-widget/src/test/trees/categories-tree/internal/CategoriesTreeIdsCache.test.ts b/packages/tree-widget/src/test/trees/categories-tree/internal/CategoriesTreeIdsCache.test.ts index f1fdf4397..f08786259 100644 --- a/packages/tree-widget/src/test/trees/categories-tree/internal/CategoriesTreeIdsCache.test.ts +++ b/packages/tree-widget/src/test/trees/categories-tree/internal/CategoriesTreeIdsCache.test.ts @@ -22,10 +22,10 @@ import { IModelReadRpcInterface } from "@itwin/core-common"; import { ECSchemaRpcInterface } from "@itwin/ecschema-rpcinterface-common"; import { ECSchemaRpcImpl } from "@itwin/ecschema-rpcinterface-impl"; import { PresentationRpcInterface } from "@itwin/presentation-common"; -import { CategoriesTreeIdsCache } from "../../../../tree-widget-react/components/trees/categories-tree/internal/CategoriesTreeIdsCache.js"; -import { BaseIdsCache } from "../../../../tree-widget-react/components/trees/common/internal/caches/BaseIdsCache.js"; -import { collect } from "../../../../tree-widget-react/components/trees/common/internal/Rxjs.js"; -import { getClassesByView } from "../../../../tree-widget-react/components/trees/common/internal/Utils.js"; +import { BaseIdsCache } from "../../../../tree-widget-react/shared/internal/caches/BaseIdsCache.js"; +import { collect } from "../../../../tree-widget-react/shared/internal/Rxjs.js"; +import { getClassesByView } from "../../../../tree-widget-react/shared/internal/Utils.js"; +import { CategoriesTreeIdsCache } from "../../../../tree-widget-react/trees/categories-tree/internal/CategoriesTreeIdsCache.js"; import { buildIModel } from "../../../IModelUtils.js"; import { createIModelAccess } from "../../Common.js"; import { CLASS_NAME_DefinitionModel, getDefaultSubCategoryId } from "../../TreeUtils.js"; diff --git a/packages/tree-widget/src/test/trees/categories-tree/internal/CategoriesTreeNode.test.ts b/packages/tree-widget/src/test/trees/categories-tree/internal/CategoriesTreeNode.test.ts index fe55ae7b4..f236d48ea 100644 --- a/packages/tree-widget/src/test/trees/categories-tree/internal/CategoriesTreeNode.test.ts +++ b/packages/tree-widget/src/test/trees/categories-tree/internal/CategoriesTreeNode.test.ts @@ -4,8 +4,8 @@ *--------------------------------------------------------------------------------------------*/ import { describe, expect, it } from "vitest"; -import { CategoriesTreeNode } from "../../../../tree-widget-react/components/trees/categories-tree/CategoriesTreeNode.js"; -import { CLASS_NAME_GeometricElement3d } from "../../../../tree-widget-react/components/trees/common/internal/ClassNameDefinitions.js"; +import { CLASS_NAME_GeometricElement3d } from "../../../../tree-widget-react/shared/internal/ClassNameDefinitions.js"; +import { CategoriesTreeNode } from "../../../../tree-widget-react/trees/categories-tree/CategoriesTreeNode.js"; import type { HierarchyNode } from "@itwin/presentation-hierarchies"; diff --git a/packages/tree-widget/src/test/trees/categories-tree/internal/CategoriesTreeVisibilityHandler.test.ts b/packages/tree-widget/src/test/trees/categories-tree/internal/CategoriesTreeVisibilityHandler.test.ts index af18ba622..1217371d4 100644 --- a/packages/tree-widget/src/test/trees/categories-tree/internal/CategoriesTreeVisibilityHandler.test.ts +++ b/packages/tree-widget/src/test/trees/categories-tree/internal/CategoriesTreeVisibilityHandler.test.ts @@ -23,19 +23,16 @@ import { ECSchemaRpcInterface } from "@itwin/ecschema-rpcinterface-common"; import { ECSchemaRpcImpl } from "@itwin/ecschema-rpcinterface-impl"; import { PresentationRpcInterface } from "@itwin/presentation-common"; import { createIModelHierarchyProvider } from "@itwin/presentation-hierarchies"; -import { - CategoriesTreeDefinition, - defaultHierarchyConfiguration, -} from "../../../../tree-widget-react/components/trees/categories-tree/CategoriesTreeDefinition.js"; -import { CategoriesTreeIdsCache } from "../../../../tree-widget-react/components/trees/categories-tree/internal/CategoriesTreeIdsCache.js"; -import { createCategoriesTreeVisibilityHandler } from "../../../../tree-widget-react/components/trees/categories-tree/internal/visibility/CategoriesTreeVisibilityHandler.js"; -import { BaseIdsCache } from "../../../../tree-widget-react/components/trees/common/internal/caches/BaseIdsCache.js"; +import { BaseIdsCache } from "../../../../tree-widget-react/shared/internal/caches/BaseIdsCache.js"; import { CLASS_NAME_GeometricElement3d, CLASS_NAME_SubCategory, CLASS_NAME_Subject, -} from "../../../../tree-widget-react/components/trees/common/internal/ClassNameDefinitions.js"; -import { getClassesByView, mergeWithDefaults } from "../../../../tree-widget-react/components/trees/common/internal/Utils.js"; +} from "../../../../tree-widget-react/shared/internal/ClassNameDefinitions.js"; +import { getClassesByView, mergeWithDefaults } from "../../../../tree-widget-react/shared/internal/Utils.js"; +import { CategoriesTreeDefinition, defaultHierarchyConfiguration } from "../../../../tree-widget-react/trees/categories-tree/CategoriesTreeDefinition.js"; +import { CategoriesTreeIdsCache } from "../../../../tree-widget-react/trees/categories-tree/internal/CategoriesTreeIdsCache.js"; +import { createCategoriesTreeVisibilityHandler } from "../../../../tree-widget-react/trees/categories-tree/internal/visibility/CategoriesTreeVisibilityHandler.js"; import { buildIModel } from "../../../IModelUtils.js"; import { TestUtils } from "../../../TestUtils.js"; import { createIModelAccess } from "../../Common.js"; @@ -59,7 +56,7 @@ import type { InstanceKey, Props } from "@itwin/presentation-shared"; import type { CategoriesTreeHierarchyConfiguration, RequiredCategoriesTreeHierarchyConfiguration, -} from "../../../../tree-widget-react/components/trees/categories-tree/CategoriesTreeDefinition.js"; +} from "../../../../tree-widget-react/trees/categories-tree/CategoriesTreeDefinition.js"; import type { VisibilityExpectations } from "../../common/VisibilityValidation.js"; import type { TreeWidgetTestingViewport } from "../../TreeUtils.js"; diff --git a/packages/tree-widget/src/test/trees/categories-tree/internal/Utils.ts b/packages/tree-widget/src/test/trees/categories-tree/internal/Utils.ts index 91c3b6ccd..a006d89ea 100644 --- a/packages/tree-widget/src/test/trees/categories-tree/internal/Utils.ts +++ b/packages/tree-widget/src/test/trees/categories-tree/internal/Utils.ts @@ -17,16 +17,16 @@ import { CLASS_NAME_DefinitionContainer, CLASS_NAME_Element, CLASS_NAME_SubCategory, -} from "../../../../tree-widget-react/components/trees/common/internal/ClassNameDefinitions.js"; -import { getClassesByView } from "../../../../tree-widget-react/components/trees/common/internal/Utils.js"; +} from "../../../../tree-widget-react/shared/internal/ClassNameDefinitions.js"; +import { getClassesByView } from "../../../../tree-widget-react/shared/internal/Utils.js"; import { TestSchema } from "../../../IModelUtils.js"; import type { EditTxn } from "@itwin/core-backend"; import type { Id64Array, Id64String } from "@itwin/core-bentley"; import type { ClassGroupingNodeKey, GroupingHierarchyNode, NonGroupingHierarchyNode } from "@itwin/presentation-hierarchies"; import type { EC, InstanceKey } from "@itwin/presentation-shared"; -import type { ElementId, ModelId } from "../../../../tree-widget-react/components/trees/common/internal/Types.js"; -import type { ParentElementsPath } from "../../../../tree-widget-react/components/trees/common/internal/Utils.js"; +import type { ElementId, ModelId } from "../../../../tree-widget-react/shared/internal/Types.js"; +import type { ParentElementsPath } from "../../../../tree-widget-react/shared/internal/Utils.js"; /** @internal */ export function createCategoryHierarchyNode(props: { diff --git a/packages/tree-widget/src/test/trees/categories-tree/internal/VisibilityValidation.ts b/packages/tree-widget/src/test/trees/categories-tree/internal/VisibilityValidation.ts index 8757ebadc..d35bbd66b 100644 --- a/packages/tree-widget/src/test/trees/categories-tree/internal/VisibilityValidation.ts +++ b/packages/tree-widget/src/test/trees/categories-tree/internal/VisibilityValidation.ts @@ -4,8 +4,8 @@ *--------------------------------------------------------------------------------------------*/ import { expect } from "vitest"; -import { CategoriesTreeNode } from "../../../../tree-widget-react/components/trees/categories-tree/CategoriesTreeNode.js"; -import { CategoriesTreeNodeInternal } from "../../../../tree-widget-react/components/trees/categories-tree/internal/CategoriesTreeNodeInternal.js"; +import { CategoriesTreeNode } from "../../../../tree-widget-react/trees/categories-tree/CategoriesTreeNode.js"; +import { CategoriesTreeNodeInternal } from "../../../../tree-widget-react/trees/categories-tree/internal/CategoriesTreeNodeInternal.js"; import type { HierarchyNode } from "@itwin/presentation-hierarchies"; import type { ValidateNodeProps } from "../../common/VisibilityValidation.js"; diff --git a/packages/tree-widget/src/test/trees/classifications-tree/ClassificationsTreeFiltering.test.tsx b/packages/tree-widget/src/test/trees/classifications-tree/ClassificationsTreeFiltering.test.tsx index a539e08d6..090cbfee3 100644 --- a/packages/tree-widget/src/test/trees/classifications-tree/ClassificationsTreeFiltering.test.tsx +++ b/packages/tree-widget/src/test/trees/classifications-tree/ClassificationsTreeFiltering.test.tsx @@ -8,13 +8,13 @@ import { afterAll, beforeAll, describe, expect, it } from "vitest"; import { withEditTxn } from "@itwin/core-backend"; import { Id64 } from "@itwin/core-bentley"; import { act, renderHook } from "@testing-library/react"; -import { useClassificationsTreeDefinition } from "../../../tree-widget-react/components/trees/classifications-tree/UseClassificationsTreeDefinition.js"; import { CLASS_NAME_Classification, CLASS_NAME_ClassificationTable, CLASS_NAME_GeometricElement3d, -} from "../../../tree-widget-react/components/trees/common/internal/ClassNameDefinitions.js"; -import { SharedTreeContextProvider } from "../../../tree-widget-react/components/trees/common/SharedTreeContextProvider.js"; +} from "../../../tree-widget-react/shared/internal/ClassNameDefinitions.js"; +import { SharedTreeContextProvider } from "../../../tree-widget-react/shared/SharedTreeContextProvider.js"; +import { useClassificationsTreeDefinition } from "../../../tree-widget-react/trees/classifications-tree/UseClassificationsTreeDefinition.js"; import { buildIModel } from "../../IModelUtils.js"; import { initializeITwinJs, terminateITwinJs } from "../../Initialize.js"; import { diff --git a/packages/tree-widget/src/test/trees/classifications-tree/ClassificationsTreeNode.test.ts b/packages/tree-widget/src/test/trees/classifications-tree/ClassificationsTreeNode.test.ts index 76ceeb852..cd57e439f 100644 --- a/packages/tree-widget/src/test/trees/classifications-tree/ClassificationsTreeNode.test.ts +++ b/packages/tree-widget/src/test/trees/classifications-tree/ClassificationsTreeNode.test.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { describe, expect, it } from "vitest"; -import { ClassificationsTreeNode } from "../../../tree-widget-react/components/trees/classifications-tree/ClassificationsTreeNode.js"; +import { ClassificationsTreeNode } from "../../../tree-widget-react/trees/classifications-tree/ClassificationsTreeNode.js"; import type { HierarchyNode } from "@itwin/presentation-hierarchies"; diff --git a/packages/tree-widget/src/test/trees/classifications-tree/ClassificationsTreeVisibilityHandler.test.ts b/packages/tree-widget/src/test/trees/classifications-tree/ClassificationsTreeVisibilityHandler.test.ts index ea0fc1715..3fd5e357e 100644 --- a/packages/tree-widget/src/test/trees/classifications-tree/ClassificationsTreeVisibilityHandler.test.ts +++ b/packages/tree-widget/src/test/trees/classifications-tree/ClassificationsTreeVisibilityHandler.test.ts @@ -7,11 +7,11 @@ import { insertPhysicalElement, insertPhysicalModelWithPartition, insertSpatialC import { afterAll, beforeAll, describe, it } from "vitest"; import { withEditTxn } from "@itwin/core-backend"; import { createIModelHierarchyProvider } from "@itwin/presentation-hierarchies"; -import { ClassificationsTreeDefinition } from "../../../tree-widget-react/components/trees/classifications-tree/ClassificationsTreeDefinition.js"; -import { ClassificationsTreeIdsCache } from "../../../tree-widget-react/components/trees/classifications-tree/internal/ClassificationsTreeIdsCache.js"; -import { createClassificationsTreeVisibilityHandler } from "../../../tree-widget-react/components/trees/classifications-tree/internal/visibility/ClassificationsTreeVisibilityHandler.js"; -import { BaseIdsCache } from "../../../tree-widget-react/components/trees/common/internal/caches/BaseIdsCache.js"; -import { CLASS_NAME_GeometricElement3d } from "../../../tree-widget-react/components/trees/common/internal/ClassNameDefinitions.js"; +import { BaseIdsCache } from "../../../tree-widget-react/shared/internal/caches/BaseIdsCache.js"; +import { CLASS_NAME_GeometricElement3d } from "../../../tree-widget-react/shared/internal/ClassNameDefinitions.js"; +import { ClassificationsTreeDefinition } from "../../../tree-widget-react/trees/classifications-tree/ClassificationsTreeDefinition.js"; +import { ClassificationsTreeIdsCache } from "../../../tree-widget-react/trees/classifications-tree/internal/ClassificationsTreeIdsCache.js"; +import { createClassificationsTreeVisibilityHandler } from "../../../tree-widget-react/trees/classifications-tree/internal/visibility/ClassificationsTreeVisibilityHandler.js"; import { buildIModel } from "../../IModelUtils.js"; import { initializeITwinJs, terminateITwinJs } from "../../Initialize.js"; import { createIModelAccess } from "../Common.js"; @@ -33,8 +33,8 @@ import { validateNodeVisibility } from "./VisibilityValidation.js"; import type { IModelConnection } from "@itwin/core-frontend"; import type { HierarchySearchTree } from "@itwin/presentation-hierarchies"; import type { Props } from "@itwin/presentation-shared"; -import type { ClassificationsTreeHierarchyConfiguration } from "../../../tree-widget-react/components/trees/classifications-tree/ClassificationsTreeDefinition.js"; -import type { ClassificationsTreeVisibilityHandlerConfiguration } from "../../../tree-widget-react/components/trees/classifications-tree/UseClassificationsTree.js"; +import type { ClassificationsTreeHierarchyConfiguration } from "../../../tree-widget-react/trees/classifications-tree/ClassificationsTreeDefinition.js"; +import type { ClassificationsTreeVisibilityHandlerConfiguration } from "../../../tree-widget-react/trees/classifications-tree/UseClassificationsTree.js"; describe("ClassificationsTreeVisibilityHandler", () => { beforeAll(async () => { diff --git a/packages/tree-widget/src/test/trees/classifications-tree/HierarchyNodeUtils.ts b/packages/tree-widget/src/test/trees/classifications-tree/HierarchyNodeUtils.ts index ed9fbefce..ab2ac7675 100644 --- a/packages/tree-widget/src/test/trees/classifications-tree/HierarchyNodeUtils.ts +++ b/packages/tree-widget/src/test/trees/classifications-tree/HierarchyNodeUtils.ts @@ -3,12 +3,12 @@ * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ -import { CLASS_NAME_Classification, CLASS_NAME_ClassificationTable } from "../../../tree-widget-react/components/trees/common/internal/ClassNameDefinitions.js"; +import { CLASS_NAME_Classification, CLASS_NAME_ClassificationTable } from "../../../tree-widget-react/shared/internal/ClassNameDefinitions.js"; import type { Id64String } from "@itwin/core-bentley"; import type { NonGroupingHierarchyNode } from "@itwin/presentation-hierarchies"; import type { InstanceKey } from "@itwin/presentation-shared"; -import type { ParentElementsPath } from "../../../tree-widget-react/components/trees/common/internal/Utils.js"; +import type { ParentElementsPath } from "../../../tree-widget-react/shared/internal/Utils.js"; export function createClassificationTableHierarchyNode({ id, diff --git a/packages/tree-widget/src/test/trees/classifications-tree/Utils.ts b/packages/tree-widget/src/test/trees/classifications-tree/Utils.ts index 88ebf4696..430035cc0 100644 --- a/packages/tree-widget/src/test/trees/classifications-tree/Utils.ts +++ b/packages/tree-widget/src/test/trees/classifications-tree/Utils.ts @@ -8,10 +8,10 @@ import { createRequire } from "node:module"; import { createCode, importSchema, insertDefinitionSubModel } from "test-utilities"; import { Code, IModel } from "@itwin/core-common"; import { createIModelHierarchyProvider } from "@itwin/presentation-hierarchies"; -import { ClassificationsTreeDefinition } from "../../../tree-widget-react/components/trees/classifications-tree/ClassificationsTreeDefinition.js"; -import { ClassificationsTreeIdsCache } from "../../../tree-widget-react/components/trees/classifications-tree/internal/ClassificationsTreeIdsCache.js"; -import { BaseIdsCache } from "../../../tree-widget-react/components/trees/common/internal/caches/BaseIdsCache.js"; -import { CLASS_NAME_GeometricElement3d } from "../../../tree-widget-react/components/trees/common/internal/ClassNameDefinitions.js"; +import { BaseIdsCache } from "../../../tree-widget-react/shared/internal/caches/BaseIdsCache.js"; +import { CLASS_NAME_GeometricElement3d } from "../../../tree-widget-react/shared/internal/ClassNameDefinitions.js"; +import { ClassificationsTreeDefinition } from "../../../tree-widget-react/trees/classifications-tree/ClassificationsTreeDefinition.js"; +import { ClassificationsTreeIdsCache } from "../../../tree-widget-react/trees/classifications-tree/internal/ClassificationsTreeIdsCache.js"; import { createIModelAccess } from "../Common.js"; import type { EditTxn, IModelDb } from "@itwin/core-backend"; @@ -20,7 +20,7 @@ import type { DefinitionElementProps } from "@itwin/core-common"; import type { IModelConnection } from "@itwin/core-frontend"; import type { HierarchyProvider } from "@itwin/presentation-hierarchies"; import type { EC } from "@itwin/presentation-shared"; -import type { ClassificationsTreeHierarchyConfiguration } from "../../../tree-widget-react/components/trees/classifications-tree/ClassificationsTreeDefinition.js"; +import type { ClassificationsTreeHierarchyConfiguration } from "../../../tree-widget-react/trees/classifications-tree/ClassificationsTreeDefinition.js"; export function createClassificationsTreeProvider( imodel: IModelConnection, diff --git a/packages/tree-widget/src/test/trees/classifications-tree/VisibilityValidation.ts b/packages/tree-widget/src/test/trees/classifications-tree/VisibilityValidation.ts index 6e2848700..960325c96 100644 --- a/packages/tree-widget/src/test/trees/classifications-tree/VisibilityValidation.ts +++ b/packages/tree-widget/src/test/trees/classifications-tree/VisibilityValidation.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { expect } from "vitest"; -import { ClassificationsTreeNode } from "../../../tree-widget-react/components/trees/classifications-tree/ClassificationsTreeNode.js"; +import { ClassificationsTreeNode } from "../../../tree-widget-react/trees/classifications-tree/ClassificationsTreeNode.js"; import type { HierarchyNode } from "@itwin/presentation-hierarchies"; import type { ValidateNodeProps } from "../common/VisibilityValidation.js"; diff --git a/packages/tree-widget/src/test/trees/models-tree/ModelsTreeDefinition.test.ts b/packages/tree-widget/src/test/trees/models-tree/ModelsTreeDefinition.test.ts index b837da74e..dae591116 100644 --- a/packages/tree-widget/src/test/trees/models-tree/ModelsTreeDefinition.test.ts +++ b/packages/tree-widget/src/test/trees/models-tree/ModelsTreeDefinition.test.ts @@ -20,7 +20,7 @@ import { IModel, IModelReadRpcInterface } from "@itwin/core-common"; import { ECSchemaRpcInterface } from "@itwin/ecschema-rpcinterface-common"; import { ECSchemaRpcImpl } from "@itwin/ecschema-rpcinterface-impl"; import { PresentationRpcInterface } from "@itwin/presentation-common"; -import { CLASS_NAME_GeometricElement2d, CLASS_NAME_Subject } from "../../../tree-widget-react/components/trees/common/internal/ClassNameDefinitions.js"; +import { CLASS_NAME_GeometricElement2d, CLASS_NAME_Subject } from "../../../tree-widget-react/shared/internal/ClassNameDefinitions.js"; import { buildIModel, TestSchema } from "../../IModelUtils.js"; import { NodeValidators, validateHierarchy } from "../HierarchyValidation.js"; import { createModelsTreeProvider } from "./Utils.js"; diff --git a/packages/tree-widget/src/test/trees/models-tree/ModelsTreeFiltering.test.tsx b/packages/tree-widget/src/test/trees/models-tree/ModelsTreeFiltering.test.tsx index b996c4ae5..1aa4df7dd 100644 --- a/packages/tree-widget/src/test/trees/models-tree/ModelsTreeFiltering.test.tsx +++ b/packages/tree-widget/src/test/trees/models-tree/ModelsTreeFiltering.test.tsx @@ -28,9 +28,9 @@ import { CLASS_NAME_GeometricElement3d, CLASS_NAME_GeometricModel3d, CLASS_NAME_Subject, -} from "../../../tree-widget-react/components/trees/common/internal/ClassNameDefinitions.js"; -import { SharedTreeContextProvider } from "../../../tree-widget-react/components/trees/common/SharedTreeContextProvider.js"; -import { useModelsTree } from "../../../tree-widget-react/components/trees/models-tree/UseModelsTree.js"; +} from "../../../tree-widget-react/shared/internal/ClassNameDefinitions.js"; +import { SharedTreeContextProvider } from "../../../tree-widget-react/shared/SharedTreeContextProvider.js"; +import { useModelsTree } from "../../../tree-widget-react/trees/models-tree/UseModelsTree.js"; import { buildIModel } from "../../IModelUtils.js"; import { createFakeViewport, createIModelAccess } from "../Common.js"; import { NodeValidators, validateHierarchy } from "../HierarchyValidation.js"; @@ -41,7 +41,7 @@ import type { Id64String } from "@itwin/core-bentley"; import type { IModelConnection } from "@itwin/core-frontend"; import type { HierarchySearchTree } from "@itwin/presentation-hierarchies"; import type { InstanceKey, Props } from "@itwin/presentation-shared"; -import type { ElementsGroupInfo, ModelsTreeHierarchyConfiguration } from "../../../tree-widget-react/components/trees/models-tree/ModelsTreeDefinition.js"; +import type { ElementsGroupInfo, ModelsTreeHierarchyConfiguration } from "../../../tree-widget-react/trees/models-tree/ModelsTreeDefinition.js"; import type { ExpectedHierarchyDef } from "../HierarchyValidation.js"; interface TreeSearchTestCaseDefinition { diff --git a/packages/tree-widget/src/test/trees/models-tree/ModelsTreeHierarchyLevelFiltering.test.ts b/packages/tree-widget/src/test/trees/models-tree/ModelsTreeHierarchyLevelFiltering.test.ts index 794833499..72c04b4df 100644 --- a/packages/tree-widget/src/test/trees/models-tree/ModelsTreeHierarchyLevelFiltering.test.ts +++ b/packages/tree-widget/src/test/trees/models-tree/ModelsTreeHierarchyLevelFiltering.test.ts @@ -23,7 +23,7 @@ import { ECSchemaRpcImpl } from "@itwin/ecschema-rpcinterface-impl"; import { DefaultContentDisplayTypes, KeySet, PresentationRpcInterface, PropertyValueFormat } from "@itwin/presentation-common"; import { Presentation } from "@itwin/presentation-frontend"; import { normalizeFullClassName } from "@itwin/presentation-shared"; -import { CLASS_NAME_Subject } from "../../../tree-widget-react/components/trees/common/internal/ClassNameDefinitions.js"; +import { CLASS_NAME_Subject } from "../../../tree-widget-react/shared/internal/ClassNameDefinitions.js"; import { buildIModel } from "../../IModelUtils.js"; import { collect } from "../Common.js"; import { NodeValidators, validateHierarchyLevel } from "../HierarchyValidation.js"; diff --git a/packages/tree-widget/src/test/trees/models-tree/ModelsTreeNode.test.ts b/packages/tree-widget/src/test/trees/models-tree/ModelsTreeNode.test.ts index 5aad8ad80..65d4a3696 100644 --- a/packages/tree-widget/src/test/trees/models-tree/ModelsTreeNode.test.ts +++ b/packages/tree-widget/src/test/trees/models-tree/ModelsTreeNode.test.ts @@ -4,8 +4,8 @@ *--------------------------------------------------------------------------------------------*/ import { describe, expect, it } from "vitest"; -import { CLASS_NAME_GeometricElement3d } from "../../../tree-widget-react/components/trees/common/internal/ClassNameDefinitions.js"; -import { ModelsTreeNode } from "../../../tree-widget-react/components/trees/models-tree/ModelsTreeNode.js"; +import { CLASS_NAME_GeometricElement3d } from "../../../tree-widget-react/shared/internal/ClassNameDefinitions.js"; +import { ModelsTreeNode } from "../../../tree-widget-react/trees/models-tree/ModelsTreeNode.js"; import type { HierarchyNode } from "@itwin/presentation-hierarchies"; diff --git a/packages/tree-widget/src/test/trees/models-tree/UseModelsTree.test.tsx b/packages/tree-widget/src/test/trees/models-tree/UseModelsTree.test.tsx index 1938b7546..4b6103d7d 100644 --- a/packages/tree-widget/src/test/trees/models-tree/UseModelsTree.test.tsx +++ b/packages/tree-widget/src/test/trees/models-tree/UseModelsTree.test.tsx @@ -18,9 +18,9 @@ import { ECSchemaRpcInterface } from "@itwin/ecschema-rpcinterface-common"; import { ECSchemaRpcImpl } from "@itwin/ecschema-rpcinterface-impl"; import { PresentationRpcInterface } from "@itwin/presentation-common"; import { createStorage } from "@itwin/unified-selection"; -import { FocusedInstancesContextProvider, useFocusedInstancesContext } from "../../../tree-widget-react/components/trees/common/FocusedInstancesContext.js"; -import { SharedTreeContextProviderInternal } from "../../../tree-widget-react/components/trees/common/internal/SharedTreeContextProviderInternal.js"; -import { useModelsTree } from "../../../tree-widget-react/components/trees/models-tree/UseModelsTree.js"; +import { FocusedInstancesContextProvider, useFocusedInstancesContext } from "../../../tree-widget-react/shared/FocusedInstancesContext.js"; +import { SharedTreeContextProviderInternal } from "../../../tree-widget-react/shared/internal/SharedTreeContextProviderInternal.js"; +import { useModelsTree } from "../../../tree-widget-react/trees/models-tree/UseModelsTree.js"; import { TreeWidget } from "../../../tree-widget-react/TreeWidget.js"; import { buildIModel } from "../../IModelUtils.js"; import { act, renderHook, waitFor } from "../../TestUtils.js"; @@ -33,7 +33,7 @@ import type { IModelConnection } from "@itwin/core-frontend"; import type { InstanceKey } from "@itwin/presentation-common"; import type { HierarchySearchTree } from "@itwin/presentation-hierarchies"; import type { SelectionStorage } from "@itwin/unified-selection"; -import type { UseModelsTreeProps } from "../../../tree-widget-react/components/trees/models-tree/UseModelsTree.js"; +import type { UseModelsTreeProps } from "../../../tree-widget-react/trees/models-tree/UseModelsTree.js"; import type { TreeWidgetTestingViewport } from "../TreeUtils.js"; describe("useModelsTree", () => { diff --git a/packages/tree-widget/src/test/trees/models-tree/Utils.ts b/packages/tree-widget/src/test/trees/models-tree/Utils.ts index f9e0a834c..d610300db 100644 --- a/packages/tree-widget/src/test/trees/models-tree/Utils.ts +++ b/packages/tree-widget/src/test/trees/models-tree/Utils.ts @@ -7,17 +7,17 @@ import { concatMap, EMPTY, expand, from, of, toArray } from "rxjs"; import { vi } from "vitest"; import { Id64 } from "@itwin/core-bentley"; import { createIModelHierarchyProvider } from "@itwin/presentation-hierarchies"; -import { BaseIdsCache } from "../../../tree-widget-react/components/trees/common/internal/caches/BaseIdsCache.js"; +import { BaseIdsCache } from "../../../tree-widget-react/shared/internal/caches/BaseIdsCache.js"; import { CLASS_NAME_Element, CLASS_NAME_GeometricElement3d, CLASS_NAME_Model, CLASS_NAME_SpatialCategory, CLASS_NAME_Subject, -} from "../../../tree-widget-react/components/trees/common/internal/ClassNameDefinitions.js"; -import { mergeWithDefaults } from "../../../tree-widget-react/components/trees/common/internal/Utils.js"; -import { ModelsTreeIdsCache } from "../../../tree-widget-react/components/trees/models-tree/internal/ModelsTreeIdsCache.js"; -import { defaultHierarchyConfiguration, ModelsTreeDefinition } from "../../../tree-widget-react/components/trees/models-tree/ModelsTreeDefinition.js"; +} from "../../../tree-widget-react/shared/internal/ClassNameDefinitions.js"; +import { mergeWithDefaults } from "../../../tree-widget-react/shared/internal/Utils.js"; +import { ModelsTreeIdsCache } from "../../../tree-widget-react/trees/models-tree/internal/ModelsTreeIdsCache.js"; +import { defaultHierarchyConfiguration, ModelsTreeDefinition } from "../../../tree-widget-react/trees/models-tree/ModelsTreeDefinition.js"; import { createIModelAccess } from "../Common.js"; import type { Id64Arg, Id64Array, Id64String } from "@itwin/core-bentley"; @@ -30,8 +30,8 @@ import type { NonGroupingHierarchyNode, } from "@itwin/presentation-hierarchies"; import type { EC, InstanceKey } from "@itwin/presentation-shared"; -import type { ParentElementsPath } from "../../../tree-widget-react/components/trees/common/internal/Utils.js"; -import type { ModelsTreeHierarchyConfiguration } from "../../../tree-widget-react/components/trees/models-tree/ModelsTreeDefinition.js"; +import type { ParentElementsPath } from "../../../tree-widget-react/shared/internal/Utils.js"; +import type { ModelsTreeHierarchyConfiguration } from "../../../tree-widget-react/trees/models-tree/ModelsTreeDefinition.js"; interface CreateModelsTreeProviderProps { imodelConnection: IModelConnection; diff --git a/packages/tree-widget/src/test/trees/models-tree/internal/ModelsTreeIdsCache.test.ts b/packages/tree-widget/src/test/trees/models-tree/internal/ModelsTreeIdsCache.test.ts index 551b2381a..eff477772 100644 --- a/packages/tree-widget/src/test/trees/models-tree/internal/ModelsTreeIdsCache.test.ts +++ b/packages/tree-widget/src/test/trees/models-tree/internal/ModelsTreeIdsCache.test.ts @@ -7,9 +7,9 @@ import { firstValueFrom } from "rxjs"; import { describe, expect, it, vi } from "vitest"; import { createECSqlQueryExecutor } from "@itwin/presentation-core-interop"; import { createLimitingECSqlQueryExecutor } from "@itwin/presentation-hierarchies"; -import { BaseIdsCache } from "../../../../tree-widget-react/components/trees/common/internal/caches/BaseIdsCache.js"; -import { ModelsTreeIdsCache } from "../../../../tree-widget-react/components/trees/models-tree/internal/ModelsTreeIdsCache.js"; -import { defaultHierarchyConfiguration } from "../../../../tree-widget-react/components/trees/models-tree/ModelsTreeDefinition.js"; +import { BaseIdsCache } from "../../../../tree-widget-react/shared/internal/caches/BaseIdsCache.js"; +import { ModelsTreeIdsCache } from "../../../../tree-widget-react/trees/models-tree/internal/ModelsTreeIdsCache.js"; +import { defaultHierarchyConfiguration } from "../../../../tree-widget-react/trees/models-tree/ModelsTreeDefinition.js"; import { createIModelMock } from "../../Common.js"; describe("ModelsTreeIdsCache", () => { diff --git a/packages/tree-widget/src/test/trees/models-tree/internal/ModelsTreeVisibilityHandler.test.ts b/packages/tree-widget/src/test/trees/models-tree/internal/ModelsTreeVisibilityHandler.test.ts index 635c41053..2b590820d 100644 --- a/packages/tree-widget/src/test/trees/models-tree/internal/ModelsTreeVisibilityHandler.test.ts +++ b/packages/tree-widget/src/test/trees/models-tree/internal/ModelsTreeVisibilityHandler.test.ts @@ -25,18 +25,18 @@ import { ECSchemaRpcImpl } from "@itwin/ecschema-rpcinterface-impl"; import { PresentationRpcInterface } from "@itwin/presentation-common"; import { createECSqlQueryExecutor } from "@itwin/presentation-core-interop"; import { createIModelHierarchyProvider, createLimitingECSqlQueryExecutor, HierarchySearchTree } from "@itwin/presentation-hierarchies"; -import { BaseIdsCache } from "../../../../tree-widget-react/components/trees/common/internal/caches/BaseIdsCache.js"; +import { BaseIdsCache } from "../../../../tree-widget-react/shared/internal/caches/BaseIdsCache.js"; import { CLASS_NAME_GeometricElement3d, CLASS_NAME_GeometricModel3d, CLASS_NAME_SpatialCategory, CLASS_NAME_Subject, -} from "../../../../tree-widget-react/components/trees/common/internal/ClassNameDefinitions.js"; -import { createVisibilityStatus } from "../../../../tree-widget-react/components/trees/common/internal/Tooltip.js"; -import { mergeWithDefaults } from "../../../../tree-widget-react/components/trees/common/internal/Utils.js"; -import { ModelsTreeIdsCache } from "../../../../tree-widget-react/components/trees/models-tree/internal/ModelsTreeIdsCache.js"; -import { createModelsTreeVisibilityHandler } from "../../../../tree-widget-react/components/trees/models-tree/internal/visibility/ModelsTreeVisibilityHandler.js"; -import { defaultHierarchyConfiguration, ModelsTreeDefinition } from "../../../../tree-widget-react/components/trees/models-tree/ModelsTreeDefinition.js"; +} from "../../../../tree-widget-react/shared/internal/ClassNameDefinitions.js"; +import { createVisibilityStatus } from "../../../../tree-widget-react/shared/internal/Tooltip.js"; +import { mergeWithDefaults } from "../../../../tree-widget-react/shared/internal/Utils.js"; +import { ModelsTreeIdsCache } from "../../../../tree-widget-react/trees/models-tree/internal/ModelsTreeIdsCache.js"; +import { createModelsTreeVisibilityHandler } from "../../../../tree-widget-react/trees/models-tree/internal/visibility/ModelsTreeVisibilityHandler.js"; +import { defaultHierarchyConfiguration, ModelsTreeDefinition } from "../../../../tree-widget-react/trees/models-tree/ModelsTreeDefinition.js"; import { buildIModel, TestSchema } from "../../../IModelUtils.js"; import { TestUtils } from "../../../TestUtils.js"; import { createFakeViewport, createIModelAccess } from "../../Common.js"; @@ -57,14 +57,14 @@ import type { GeometricElement3dProps, QueryBinder } from "@itwin/core-common"; import type { IModelConnection } from "@itwin/core-frontend"; import type { GroupingHierarchyNode, NonGroupingHierarchyNode } from "@itwin/presentation-hierarchies"; import type { EC, ECClassHierarchyInspector, InstanceKey, Props } from "@itwin/presentation-shared"; -import type { Visibility } from "../../../../tree-widget-react/components/trees/common/internal/Tooltip.js"; -import type { TreeWidgetViewport } from "../../../../tree-widget-react/components/trees/common/TreeWidgetViewport.js"; -import type { HierarchyVisibilityHandler } from "../../../../tree-widget-react/components/trees/common/UseHierarchyVisibility.js"; -import type { ModelsTreeVisibilityHandlerProps } from "../../../../tree-widget-react/components/trees/models-tree/internal/visibility/ModelsTreeVisibilityHandler.js"; +import type { Visibility } from "../../../../tree-widget-react/shared/internal/Tooltip.js"; +import type { TreeWidgetViewport } from "../../../../tree-widget-react/shared/TreeWidgetViewport.js"; +import type { HierarchyVisibilityHandler } from "../../../../tree-widget-react/shared/UseHierarchyVisibility.js"; +import type { ModelsTreeVisibilityHandlerProps } from "../../../../tree-widget-react/trees/models-tree/internal/visibility/ModelsTreeVisibilityHandler.js"; import type { ModelsTreeHierarchyConfiguration, RequiredModelsTreeHierarchyConfiguration, -} from "../../../../tree-widget-react/components/trees/models-tree/ModelsTreeDefinition.js"; +} from "../../../../tree-widget-react/trees/models-tree/ModelsTreeDefinition.js"; import type { VisibilityExpectations } from "../../common/VisibilityValidation.js"; interface VisibilityOverrides { diff --git a/packages/tree-widget/src/test/trees/models-tree/internal/VisibilityValidation.ts b/packages/tree-widget/src/test/trees/models-tree/internal/VisibilityValidation.ts index 312720355..9a9f8b9de 100644 --- a/packages/tree-widget/src/test/trees/models-tree/internal/VisibilityValidation.ts +++ b/packages/tree-widget/src/test/trees/models-tree/internal/VisibilityValidation.ts @@ -4,8 +4,8 @@ *--------------------------------------------------------------------------------------------*/ import { expect } from "vitest"; -import { ModelsTreeNodeInternal } from "../../../../tree-widget-react/components/trees/models-tree/internal/ModelsTreeNodeInternal.js"; -import { ModelsTreeNode } from "../../../../tree-widget-react/components/trees/models-tree/ModelsTreeNode.js"; +import { ModelsTreeNodeInternal } from "../../../../tree-widget-react/trees/models-tree/internal/ModelsTreeNodeInternal.js"; +import { ModelsTreeNode } from "../../../../tree-widget-react/trees/models-tree/ModelsTreeNode.js"; import type { HierarchyNode } from "@itwin/presentation-hierarchies"; import type { ValidateNodeProps } from "../../common/VisibilityValidation.js"; diff --git a/packages/tree-widget/src/tree-widget-react-internal.ts b/packages/tree-widget/src/tree-widget-react-internal.ts index 04c0417a8..96621def8 100644 --- a/packages/tree-widget/src/tree-widget-react-internal.ts +++ b/packages/tree-widget/src/tree-widget-react-internal.ts @@ -6,27 +6,27 @@ // WARNING: This barrel file exports internal APIs only for use by packages in `https://github.com/iTwin/viewer-components-react` monorepo. // They should not be used outside of these packages. These APIs may be broken or removed at any time without notice. -export { toVoidPromise, collect } from "./tree-widget-react/components/trees/common/internal/Rxjs.js"; +export { toVoidPromise, collect } from "./tree-widget-react/shared/internal/Rxjs.js"; export { ModelsTreeDefinition, defaultHierarchyConfiguration as defaultModelsTreeHierarchyConfiguration, -} from "./tree-widget-react/components/trees/models-tree/ModelsTreeDefinition.js"; -export { ModelsTreeIdsCache } from "./tree-widget-react/components/trees/models-tree/internal/ModelsTreeIdsCache.js"; -export { createModelsTreeVisibilityHandler } from "./tree-widget-react/components/trees/models-tree/internal/visibility/ModelsTreeVisibilityHandler.js"; +} from "./tree-widget-react/trees/models-tree/ModelsTreeDefinition.js"; +export { ModelsTreeIdsCache } from "./tree-widget-react/trees/models-tree/internal/ModelsTreeIdsCache.js"; +export { createModelsTreeVisibilityHandler } from "./tree-widget-react/trees/models-tree/internal/visibility/ModelsTreeVisibilityHandler.js"; export { CategoriesTreeDefinition, defaultHierarchyConfiguration as defaultCategoriesTreeHierarchyConfiguration, -} from "./tree-widget-react/components/trees/categories-tree/CategoriesTreeDefinition.js"; -export { CategoriesTreeIdsCache } from "./tree-widget-react/components/trees/categories-tree/internal/CategoriesTreeIdsCache.js"; -export { createCategoriesTreeVisibilityHandler } from "./tree-widget-react/components/trees/categories-tree/internal/visibility/CategoriesTreeVisibilityHandler.js"; +} from "./tree-widget-react/trees/categories-tree/CategoriesTreeDefinition.js"; +export { CategoriesTreeIdsCache } from "./tree-widget-react/trees/categories-tree/internal/CategoriesTreeIdsCache.js"; +export { createCategoriesTreeVisibilityHandler } from "./tree-widget-react/trees/categories-tree/internal/visibility/CategoriesTreeVisibilityHandler.js"; -export { ClassificationsTreeDefinition } from "./tree-widget-react/components/trees/classifications-tree/ClassificationsTreeDefinition.js"; -export { ClassificationsTreeIdsCache } from "./tree-widget-react/components/trees/classifications-tree/internal/ClassificationsTreeIdsCache.js"; -export { releaseMainThreadOnItemsCount } from "./tree-widget-react/components/trees/common/internal/Rxjs.js"; -export { createClassificationsTreeVisibilityHandler } from "./tree-widget-react/components/trees/classifications-tree/internal/visibility/ClassificationsTreeVisibilityHandler.js"; +export { ClassificationsTreeDefinition } from "./tree-widget-react/trees/classifications-tree/ClassificationsTreeDefinition.js"; +export { ClassificationsTreeIdsCache } from "./tree-widget-react/trees/classifications-tree/internal/ClassificationsTreeIdsCache.js"; +export { releaseMainThreadOnItemsCount } from "./tree-widget-react/shared/internal/Rxjs.js"; +export { createClassificationsTreeVisibilityHandler } from "./tree-widget-react/trees/classifications-tree/internal/visibility/ClassificationsTreeVisibilityHandler.js"; -export { BaseIdsCache } from "./tree-widget-react/components/trees/common/internal/caches/BaseIdsCache.js"; +export { BaseIdsCache } from "./tree-widget-react/shared/internal/caches/BaseIdsCache.js"; -export { SET_CHANGE_DEBOUNCE_TIME } from "./tree-widget-react/components/trees/common/internal/caches/AlwaysAndNeverDrawnElementInfoCache.js"; +export { SET_CHANGE_DEBOUNCE_TIME } from "./tree-widget-react/shared/internal/caches/AlwaysAndNeverDrawnElementInfoCache.js"; diff --git a/packages/tree-widget/src/tree-widget-react.ts b/packages/tree-widget/src/tree-widget-react.ts index 75d80ff2d..a7054b1f8 100644 --- a/packages/tree-widget/src/tree-widget-react.ts +++ b/packages/tree-widget/src/tree-widget-react.ts @@ -4,9 +4,9 @@ *--------------------------------------------------------------------------------------------*/ export { TreeWidget } from "./tree-widget-react/TreeWidget.js"; -export { createTreeWidget, TreeWidgetComponent } from "./tree-widget-react/components/TreeWidgetUiItemsProvider.js"; -export type { TreeDefinition } from "./tree-widget-react/components/TreeWidgetComponentImpl.js"; -export { SelectableTree } from "./tree-widget-react/components/tree-header/SelectableTree.js"; -export * from "./tree-widget-react/components/trees/index.js"; +export { createTreeWidget, TreeWidgetComponent } from "./tree-widget-react/TreeWidgetUiItemsProvider.js"; +export type { TreeDefinition } from "./tree-widget-react/TreeWidgetComponentImpl.js"; +export { SelectableTree } from "./tree-widget-react/tree-header/SelectableTree.js"; +export * from "./tree-widget-react/trees/index.js"; -export { LocalizationContextProvider, LOCALIZATION_NAMESPACES } from "./tree-widget-react/components/trees/common/components/LocalizationContext.js"; +export { LocalizationContextProvider, LOCALIZATION_NAMESPACES } from "./tree-widget-react/shared/components/LocalizationContext.js"; diff --git a/packages/tree-widget/src/tree-widget-react/components/TreeWidgetComponentImpl.css b/packages/tree-widget/src/tree-widget-react/TreeWidgetComponentImpl.css similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/TreeWidgetComponentImpl.css rename to packages/tree-widget/src/tree-widget-react/TreeWidgetComponentImpl.css diff --git a/packages/tree-widget/src/tree-widget-react/components/TreeWidgetComponentImpl.tsx b/packages/tree-widget/src/tree-widget-react/TreeWidgetComponentImpl.tsx similarity index 97% rename from packages/tree-widget/src/tree-widget-react/components/TreeWidgetComponentImpl.tsx rename to packages/tree-widget/src/tree-widget-react/TreeWidgetComponentImpl.tsx index 93e7ab8f6..04a9f8cb1 100644 --- a/packages/tree-widget/src/tree-widget-react/components/TreeWidgetComponentImpl.tsx +++ b/packages/tree-widget/src/tree-widget-react/TreeWidgetComponentImpl.tsx @@ -8,13 +8,13 @@ import "./TreeWidgetComponentImpl.css"; import { useCallback, useEffect, useMemo, useState } from "react"; import { useActiveIModelConnection } from "@itwin/appui-react"; import { Skeleton } from "@stratakit/bricks"; +import { useTranslation } from "./shared/components/LocalizationContext.js"; +import { SkeletonTree } from "./shared/components/SkeletonTree.js"; import { SelectableTree } from "./tree-header/SelectableTree.js"; import { WidgetHeader } from "./tree-header/WidgetHeader.js"; -import { useTranslation } from "./trees/common/components/LocalizationContext.js"; -import { SkeletonTree } from "./trees/common/components/SkeletonTree.js"; import type { IModelConnection } from "@itwin/core-frontend"; -import type { TranslateFunc } from "./shared/LocalizationHelpers.js"; +import type { TranslateFunc } from "./shared/internal/LocalizationHelpers.js"; import type { TreeContentDefinition, TreeSelectionProps } from "./tree-header/WidgetHeader.js"; /** @beta */ diff --git a/packages/tree-widget/src/tree-widget-react/components/TreeWidgetUiItemsProvider.css b/packages/tree-widget/src/tree-widget-react/TreeWidgetUiItemsProvider.css similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/TreeWidgetUiItemsProvider.css rename to packages/tree-widget/src/tree-widget-react/TreeWidgetUiItemsProvider.css diff --git a/packages/tree-widget/src/tree-widget-react/components/TreeWidgetUiItemsProvider.tsx b/packages/tree-widget/src/tree-widget-react/TreeWidgetUiItemsProvider.tsx similarity index 95% rename from packages/tree-widget/src/tree-widget-react/components/TreeWidgetUiItemsProvider.tsx rename to packages/tree-widget/src/tree-widget-react/TreeWidgetUiItemsProvider.tsx index d954bb8d2..21b83124b 100644 --- a/packages/tree-widget/src/tree-widget-react/components/TreeWidgetUiItemsProvider.tsx +++ b/packages/tree-widget/src/tree-widget-react/TreeWidgetUiItemsProvider.tsx @@ -10,9 +10,9 @@ import { ErrorBoundary } from "react-error-boundary"; import { StagePanelLocation, StagePanelSection, useTransientState } from "@itwin/appui-react"; import { Icon } from "@stratakit/foundations"; import hierarchyTreeSvg from "@stratakit/icons/hierarchy-tree.svg"; -import { getLocalizationKey } from "./shared/LocalizationHelpers.js"; +import { LocalizationContextProvider } from "./shared/components/LocalizationContext.js"; +import { getLocalizationKey } from "./shared/internal/LocalizationHelpers.js"; import { ErrorState } from "./tree-header/ErrorState.js"; -import { LocalizationContextProvider } from "./trees/common/components/LocalizationContext.js"; import { SharedTreeContextProvider } from "./trees/index.js"; import { TreeWidgetComponentImpl } from "./TreeWidgetComponentImpl.js"; diff --git a/packages/tree-widget/src/tree-widget-react/components/utils/IsPromiseLike.ts b/packages/tree-widget/src/tree-widget-react/components/utils/IsPromiseLike.ts deleted file mode 100644 index b9c0f91a1..000000000 --- a/packages/tree-widget/src/tree-widget-react/components/utils/IsPromiseLike.ts +++ /dev/null @@ -1,12 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Bentley Systems, Incorporated. All rights reserved. - * See LICENSE.md in the project root for license terms and full copyright notice. - *--------------------------------------------------------------------------------------------*/ - -/** - * Checks if the specified argument is a promise - * @internal - */ -export function isPromiseLike(obj: unknown): obj is PromiseLike { - return !!(obj && typeof obj === "object" && typeof (obj as any).then === "function"); -} diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/FocusedInstancesContext.tsx b/packages/tree-widget/src/tree-widget-react/shared/FocusedInstancesContext.tsx similarity index 98% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/FocusedInstancesContext.tsx rename to packages/tree-widget/src/tree-widget-react/shared/FocusedInstancesContext.tsx index 727f8b6c1..98cf2565a 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/common/FocusedInstancesContext.tsx +++ b/packages/tree-widget/src/tree-widget-react/shared/FocusedInstancesContext.tsx @@ -8,7 +8,7 @@ import { from, map } from "rxjs"; import { HierarchyNode } from "@itwin/presentation-hierarchies-react"; import { normalizeFullClassName } from "@itwin/presentation-shared"; import { Selectable, Selectables } from "@itwin/unified-selection"; -import { eachValueFrom } from "../../utils/EachValueFrom.js"; +import { eachValueFrom } from "./internal/EachValueFrom.js"; import type { PropsWithChildren } from "react"; import type { GroupingHierarchyNode } from "@itwin/presentation-hierarchies"; diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/SharedTreeContextProvider.tsx b/packages/tree-widget/src/tree-widget-react/shared/SharedTreeContextProvider.tsx similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/SharedTreeContextProvider.tsx rename to packages/tree-widget/src/tree-widget-react/shared/SharedTreeContextProvider.tsx diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/TreeErrors.ts b/packages/tree-widget/src/tree-widget-react/shared/TreeErrors.ts similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/TreeErrors.ts rename to packages/tree-widget/src/tree-widget-react/shared/TreeErrors.ts diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/TreeWidgetViewport.ts b/packages/tree-widget/src/tree-widget-react/shared/TreeWidgetViewport.ts similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/TreeWidgetViewport.ts rename to packages/tree-widget/src/tree-widget-react/shared/TreeWidgetViewport.ts diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/UseHierarchyVisibility.ts b/packages/tree-widget/src/tree-widget-react/shared/UseHierarchyVisibility.ts similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/UseHierarchyVisibility.ts rename to packages/tree-widget/src/tree-widget-react/shared/UseHierarchyVisibility.ts diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/UseTelemetryContext.tsx b/packages/tree-widget/src/tree-widget-react/shared/UseTelemetryContext.tsx similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/UseTelemetryContext.tsx rename to packages/tree-widget/src/tree-widget-react/shared/UseTelemetryContext.tsx diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/Utils.ts b/packages/tree-widget/src/tree-widget-react/shared/Utils.ts similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/Utils.ts rename to packages/tree-widget/src/tree-widget-react/shared/Utils.ts diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/components/Delayed.tsx b/packages/tree-widget/src/tree-widget-react/shared/components/Delayed.tsx similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/components/Delayed.tsx rename to packages/tree-widget/src/tree-widget-react/shared/components/Delayed.tsx diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/components/EmptyTree.css b/packages/tree-widget/src/tree-widget-react/shared/components/EmptyTree.css similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/components/EmptyTree.css rename to packages/tree-widget/src/tree-widget-react/shared/components/EmptyTree.css diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/components/EmptyTree.tsx b/packages/tree-widget/src/tree-widget-react/shared/components/EmptyTree.tsx similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/components/EmptyTree.tsx rename to packages/tree-widget/src/tree-widget-react/shared/components/EmptyTree.tsx diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/components/LocalizationContext.tsx b/packages/tree-widget/src/tree-widget-react/shared/components/LocalizationContext.tsx similarity index 91% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/components/LocalizationContext.tsx rename to packages/tree-widget/src/tree-widget-react/shared/components/LocalizationContext.tsx index 4c517ffd8..a573c2dcf 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/common/components/LocalizationContext.tsx +++ b/packages/tree-widget/src/tree-widget-react/shared/components/LocalizationContext.tsx @@ -8,11 +8,11 @@ import { LocalizationContextProvider as HierarchiesLocalizationContext, LOCALIZATION_NAMESPACES as HierarchiesReactLocalizationNamespaces, } from "@itwin/presentation-hierarchies-react"; -import { getLocalizationKey, LOCALIZATION_NAMESPACE } from "../../../shared/LocalizationHelpers.js"; +import { getLocalizationKey, LOCALIZATION_NAMESPACE } from "../internal/LocalizationHelpers.js"; import type { JSX, PropsWithChildren } from "react"; import type { Localization } from "@itwin/core-common"; -import type { TranslateFunc } from "../../../shared/LocalizationHelpers.js"; +import type { TranslateFunc } from "../internal/LocalizationHelpers.js"; const localizationContext = createContext((key) => key); diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/components/ProgressOverlay.css b/packages/tree-widget/src/tree-widget-react/shared/components/ProgressOverlay.css similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/components/ProgressOverlay.css rename to packages/tree-widget/src/tree-widget-react/shared/components/ProgressOverlay.css diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/components/ProgressOverlay.tsx b/packages/tree-widget/src/tree-widget-react/shared/components/ProgressOverlay.tsx similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/components/ProgressOverlay.tsx rename to packages/tree-widget/src/tree-widget-react/shared/components/ProgressOverlay.tsx diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/components/SkeletonTree.css b/packages/tree-widget/src/tree-widget-react/shared/components/SkeletonTree.css similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/components/SkeletonTree.css rename to packages/tree-widget/src/tree-widget-react/shared/components/SkeletonTree.css diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/components/SkeletonTree.tsx b/packages/tree-widget/src/tree-widget-react/shared/components/SkeletonTree.tsx similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/components/SkeletonTree.tsx rename to packages/tree-widget/src/tree-widget-react/shared/components/SkeletonTree.tsx diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/components/Tree.css b/packages/tree-widget/src/tree-widget-react/shared/components/Tree.css similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/components/Tree.css rename to packages/tree-widget/src/tree-widget-react/shared/components/Tree.css diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/components/Tree.tsx b/packages/tree-widget/src/tree-widget-react/shared/components/Tree.tsx similarity index 99% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/components/Tree.tsx rename to packages/tree-widget/src/tree-widget-react/shared/components/Tree.tsx index 120d98863..bff84914c 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/common/components/Tree.tsx +++ b/packages/tree-widget/src/tree-widget-react/shared/components/Tree.tsx @@ -10,7 +10,7 @@ import { BeEvent } from "@itwin/core-bentley"; import { SchemaMetadataContextProvider } from "@itwin/presentation-components"; import { useIModelUnifiedSelectionTree, useNodeHighlighting } from "@itwin/presentation-hierarchies-react"; import { StrataKitRootErrorRenderer } from "@itwin/presentation-hierarchies-react/stratakit"; -import { TreeWidget } from "../../../../TreeWidget.js"; +import { TreeWidget } from "../../TreeWidget.js"; import { useHierarchyLevelFiltering } from "../internal/hooks/UseHierarchyFiltering.js"; import { useIModelAccess } from "../internal/hooks/UseIModelAccess.js"; import { useIModelChangeListener } from "../internal/hooks/UseIModelChangeListener.js"; diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/components/TreeNodeCheckbox.scss b/packages/tree-widget/src/tree-widget-react/shared/components/TreeNodeCheckbox.scss similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/components/TreeNodeCheckbox.scss rename to packages/tree-widget/src/tree-widget-react/shared/components/TreeNodeCheckbox.scss diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/components/TreeNodeVisibilityButton.css b/packages/tree-widget/src/tree-widget-react/shared/components/TreeNodeVisibilityButton.css similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/components/TreeNodeVisibilityButton.css rename to packages/tree-widget/src/tree-widget-react/shared/components/TreeNodeVisibilityButton.css diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/components/TreeNodeVisibilityButton.tsx b/packages/tree-widget/src/tree-widget-react/shared/components/TreeNodeVisibilityButton.tsx similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/components/TreeNodeVisibilityButton.tsx rename to packages/tree-widget/src/tree-widget-react/shared/components/TreeNodeVisibilityButton.tsx diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/components/TreeRenderer.tsx b/packages/tree-widget/src/tree-widget-react/shared/components/TreeRenderer.tsx similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/components/TreeRenderer.tsx rename to packages/tree-widget/src/tree-widget-react/shared/components/TreeRenderer.tsx diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/components/UseVisibilityButtonHandler.ts b/packages/tree-widget/src/tree-widget-react/shared/components/UseVisibilityButtonHandler.ts similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/components/UseVisibilityButtonHandler.ts rename to packages/tree-widget/src/tree-widget-react/shared/components/UseVisibilityButtonHandler.ts diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/components/VisibilityTree.tsx b/packages/tree-widget/src/tree-widget-react/shared/components/VisibilityTree.tsx similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/components/VisibilityTree.tsx rename to packages/tree-widget/src/tree-widget-react/shared/components/VisibilityTree.tsx diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/components/VisibilityTreeRenderer.tsx b/packages/tree-widget/src/tree-widget-react/shared/components/VisibilityTreeRenderer.tsx similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/components/VisibilityTreeRenderer.tsx rename to packages/tree-widget/src/tree-widget-react/shared/components/VisibilityTreeRenderer.tsx diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/internal/BufferingViewport.ts b/packages/tree-widget/src/tree-widget-react/shared/internal/BufferingViewport.ts similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/internal/BufferingViewport.ts rename to packages/tree-widget/src/tree-widget-react/shared/internal/BufferingViewport.ts diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/internal/ClassNameDefinitions.ts b/packages/tree-widget/src/tree-widget-react/shared/internal/ClassNameDefinitions.ts similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/internal/ClassNameDefinitions.ts rename to packages/tree-widget/src/tree-widget-react/shared/internal/ClassNameDefinitions.ts diff --git a/packages/tree-widget/src/tree-widget-react/components/utils/EachValueFrom.ts b/packages/tree-widget/src/tree-widget-react/shared/internal/EachValueFrom.ts similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/utils/EachValueFrom.ts rename to packages/tree-widget/src/tree-widget-react/shared/internal/EachValueFrom.ts diff --git a/packages/tree-widget/src/tree-widget-react/components/shared/LocalizationHelpers.ts b/packages/tree-widget/src/tree-widget-react/shared/internal/LocalizationHelpers.ts similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/shared/LocalizationHelpers.ts rename to packages/tree-widget/src/tree-widget-react/shared/internal/LocalizationHelpers.ts diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/internal/Rxjs.ts b/packages/tree-widget/src/tree-widget-react/shared/internal/Rxjs.ts similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/internal/Rxjs.ts rename to packages/tree-widget/src/tree-widget-react/shared/internal/Rxjs.ts diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/internal/SharedTreeContextProviderInternal.tsx b/packages/tree-widget/src/tree-widget-react/shared/internal/SharedTreeContextProviderInternal.tsx similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/internal/SharedTreeContextProviderInternal.tsx rename to packages/tree-widget/src/tree-widget-react/shared/internal/SharedTreeContextProviderInternal.tsx diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/internal/Tooltip.ts b/packages/tree-widget/src/tree-widget-react/shared/internal/Tooltip.ts similarity index 94% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/internal/Tooltip.ts rename to packages/tree-widget/src/tree-widget-react/shared/internal/Tooltip.ts index dcee77e36..5dbe96e3f 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/common/internal/Tooltip.ts +++ b/packages/tree-widget/src/tree-widget-react/shared/internal/Tooltip.ts @@ -3,8 +3,8 @@ * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ -import type { TranslateFunc } from "../../../shared/LocalizationHelpers.js"; import type { VisibilityStatus } from "../UseHierarchyVisibility.js"; +import type { TranslateFunc } from "./LocalizationHelpers.js"; /** @internal */ export type Visibility = "visible" | "hidden" | "partial"; diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/internal/Types.ts b/packages/tree-widget/src/tree-widget-react/shared/internal/Types.ts similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/internal/Types.ts rename to packages/tree-widget/src/tree-widget-react/shared/internal/Types.ts diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/internal/Utils.ts b/packages/tree-widget/src/tree-widget-react/shared/internal/Utils.ts similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/internal/Utils.ts rename to packages/tree-widget/src/tree-widget-react/shared/internal/Utils.ts diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/internal/VisibilityChangeEventListener.ts b/packages/tree-widget/src/tree-widget-react/shared/internal/VisibilityChangeEventListener.ts similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/internal/VisibilityChangeEventListener.ts rename to packages/tree-widget/src/tree-widget-react/shared/internal/VisibilityChangeEventListener.ts diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/internal/VisibilityUtils.ts b/packages/tree-widget/src/tree-widget-react/shared/internal/VisibilityUtils.ts similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/internal/VisibilityUtils.ts rename to packages/tree-widget/src/tree-widget-react/shared/internal/VisibilityUtils.ts diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/internal/caches/AlwaysAndNeverDrawnElementInfoCache.ts b/packages/tree-widget/src/tree-widget-react/shared/internal/caches/AlwaysAndNeverDrawnElementInfoCache.ts similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/internal/caches/AlwaysAndNeverDrawnElementInfoCache.ts rename to packages/tree-widget/src/tree-widget-react/shared/internal/caches/AlwaysAndNeverDrawnElementInfoCache.ts diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/internal/caches/BaseIdsCache.ts b/packages/tree-widget/src/tree-widget-react/shared/internal/caches/BaseIdsCache.ts similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/internal/caches/BaseIdsCache.ts rename to packages/tree-widget/src/tree-widget-react/shared/internal/caches/BaseIdsCache.ts diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/internal/caches/BatchingCache.ts b/packages/tree-widget/src/tree-widget-react/shared/internal/caches/BatchingCache.ts similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/internal/caches/BatchingCache.ts rename to packages/tree-widget/src/tree-widget-react/shared/internal/caches/BatchingCache.ts diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/internal/caches/ChildElementsCache.ts b/packages/tree-widget/src/tree-widget-react/shared/internal/caches/ChildElementsCache.ts similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/internal/caches/ChildElementsCache.ts rename to packages/tree-widget/src/tree-widget-react/shared/internal/caches/ChildElementsCache.ts diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/internal/caches/DescendantsCountCache.ts b/packages/tree-widget/src/tree-widget-react/shared/internal/caches/DescendantsCountCache.ts similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/internal/caches/DescendantsCountCache.ts rename to packages/tree-widget/src/tree-widget-react/shared/internal/caches/DescendantsCountCache.ts diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/internal/caches/ElementModelCategoriesCache.ts b/packages/tree-widget/src/tree-widget-react/shared/internal/caches/ElementModelCategoriesCache.ts similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/internal/caches/ElementModelCategoriesCache.ts rename to packages/tree-widget/src/tree-widget-react/shared/internal/caches/ElementModelCategoriesCache.ts diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/internal/caches/ModeledElementsCache.ts b/packages/tree-widget/src/tree-widget-react/shared/internal/caches/ModeledElementsCache.ts similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/internal/caches/ModeledElementsCache.ts rename to packages/tree-widget/src/tree-widget-react/shared/internal/caches/ModeledElementsCache.ts diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/internal/caches/SubCategoriesCache.ts b/packages/tree-widget/src/tree-widget-react/shared/internal/caches/SubCategoriesCache.ts similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/internal/caches/SubCategoriesCache.ts rename to packages/tree-widget/src/tree-widget-react/shared/internal/caches/SubCategoriesCache.ts diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/internal/hooks/UseActiveTreeWidgetViewport.tsx b/packages/tree-widget/src/tree-widget-react/shared/internal/hooks/UseActiveTreeWidgetViewport.tsx similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/internal/hooks/UseActiveTreeWidgetViewport.tsx rename to packages/tree-widget/src/tree-widget-react/shared/internal/hooks/UseActiveTreeWidgetViewport.tsx diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/internal/hooks/UseCachedVisibility.ts b/packages/tree-widget/src/tree-widget-react/shared/internal/hooks/UseCachedVisibility.ts similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/internal/hooks/UseCachedVisibility.ts rename to packages/tree-widget/src/tree-widget-react/shared/internal/hooks/UseCachedVisibility.ts diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/internal/hooks/UseErrorState.ts b/packages/tree-widget/src/tree-widget-react/shared/internal/hooks/UseErrorState.ts similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/internal/hooks/UseErrorState.ts rename to packages/tree-widget/src/tree-widget-react/shared/internal/hooks/UseErrorState.ts diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/internal/hooks/UseGuid.ts b/packages/tree-widget/src/tree-widget-react/shared/internal/hooks/UseGuid.ts similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/internal/hooks/UseGuid.ts rename to packages/tree-widget/src/tree-widget-react/shared/internal/hooks/UseGuid.ts diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/internal/hooks/UseHierarchyFiltering.tsx b/packages/tree-widget/src/tree-widget-react/shared/internal/hooks/UseHierarchyFiltering.tsx similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/internal/hooks/UseHierarchyFiltering.tsx rename to packages/tree-widget/src/tree-widget-react/shared/internal/hooks/UseHierarchyFiltering.tsx diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/internal/hooks/UseIModelAccess.ts b/packages/tree-widget/src/tree-widget-react/shared/internal/hooks/UseIModelAccess.ts similarity index 97% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/internal/hooks/UseIModelAccess.ts rename to packages/tree-widget/src/tree-widget-react/shared/internal/hooks/UseIModelAccess.ts index a62770035..130f23a22 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/common/internal/hooks/UseIModelAccess.ts +++ b/packages/tree-widget/src/tree-widget-react/shared/internal/hooks/UseIModelAccess.ts @@ -7,7 +7,7 @@ import { useMemo } from "react"; import { createECSchemaProvider, createECSqlQueryExecutor } from "@itwin/presentation-core-interop"; import { createLimitingECSqlQueryExecutor } from "@itwin/presentation-hierarchies"; import { createCachingECClassHierarchyInspector } from "@itwin/presentation-shared"; -import { TreeWidget } from "../../../../../TreeWidget.js"; +import { TreeWidget } from "../../../TreeWidget.js"; import { LOGGING_NAMESPACE } from "../../Utils.js"; import type { IModelConnection } from "@itwin/core-frontend"; diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/internal/hooks/UseIModelChangeListener.ts b/packages/tree-widget/src/tree-widget-react/shared/internal/hooks/UseIModelChangeListener.ts similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/internal/hooks/UseIModelChangeListener.ts rename to packages/tree-widget/src/tree-widget-react/shared/internal/hooks/UseIModelChangeListener.ts diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/internal/hooks/UseIdsCache.ts b/packages/tree-widget/src/tree-widget-react/shared/internal/hooks/UseIdsCache.ts similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/internal/hooks/UseIdsCache.ts rename to packages/tree-widget/src/tree-widget-react/shared/internal/hooks/UseIdsCache.ts diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/internal/hooks/UseLatest.ts b/packages/tree-widget/src/tree-widget-react/shared/internal/hooks/UseLatest.ts similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/internal/hooks/UseLatest.ts rename to packages/tree-widget/src/tree-widget-react/shared/internal/hooks/UseLatest.ts diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/internal/visibility/BaseSearchResultsTree.ts b/packages/tree-widget/src/tree-widget-react/shared/internal/visibility/BaseSearchResultsTree.ts similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/internal/visibility/BaseSearchResultsTree.ts rename to packages/tree-widget/src/tree-widget-react/shared/internal/visibility/BaseSearchResultsTree.ts diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/internal/visibility/BaseVisibilityHelper.ts b/packages/tree-widget/src/tree-widget-react/shared/internal/visibility/BaseVisibilityHelper.ts similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/common/internal/visibility/BaseVisibilityHelper.ts rename to packages/tree-widget/src/tree-widget-react/shared/internal/visibility/BaseVisibilityHelper.ts diff --git a/packages/tree-widget/src/tree-widget-react/components/tree-header/ErrorState.tsx b/packages/tree-widget/src/tree-widget-react/tree-header/ErrorState.tsx similarity index 92% rename from packages/tree-widget/src/tree-widget-react/components/tree-header/ErrorState.tsx rename to packages/tree-widget/src/tree-widget-react/tree-header/ErrorState.tsx index e70d873c8..bb9b5de80 100644 --- a/packages/tree-widget/src/tree-widget-react/components/tree-header/ErrorState.tsx +++ b/packages/tree-widget/src/tree-widget-react/tree-header/ErrorState.tsx @@ -6,7 +6,7 @@ import { Button, Text } from "@stratakit/bricks"; import { Icon } from "@stratakit/foundations"; import errorSvg from "@stratakit/icons/status-error.svg"; -import { useTranslation } from "../trees/common/components/LocalizationContext.js"; +import { useTranslation } from "../shared/components/LocalizationContext.js"; import type { FallbackProps } from "react-error-boundary"; diff --git a/packages/tree-widget/src/tree-widget-react/components/tree-header/SearchBox.tsx b/packages/tree-widget/src/tree-widget-react/tree-header/SearchBox.tsx similarity index 93% rename from packages/tree-widget/src/tree-widget-react/components/tree-header/SearchBox.tsx rename to packages/tree-widget/src/tree-widget-react/tree-header/SearchBox.tsx index 6a10b1a6c..6adf35acb 100644 --- a/packages/tree-widget/src/tree-widget-react/components/tree-header/SearchBox.tsx +++ b/packages/tree-widget/src/tree-widget-react/tree-header/SearchBox.tsx @@ -7,8 +7,8 @@ import { useEffect, useState } from "react"; import { IconButton, TextBox } from "@stratakit/bricks"; import dismissSvg from "@stratakit/icons/dismiss.svg"; import searchSvg from "@stratakit/icons/search.svg"; -import { useTranslation } from "../trees/common/components/LocalizationContext.js"; -import { useLatest } from "../trees/common/internal/hooks/UseLatest.js"; +import { useTranslation } from "../shared/components/LocalizationContext.js"; +import { useLatest } from "../shared/internal/hooks/UseLatest.js"; interface DebouncedSearchBoxProps { isOpened: boolean; diff --git a/packages/tree-widget/src/tree-widget-react/components/tree-header/SelectableTree.css b/packages/tree-widget/src/tree-widget-react/tree-header/SelectableTree.css similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/tree-header/SelectableTree.css rename to packages/tree-widget/src/tree-widget-react/tree-header/SelectableTree.css diff --git a/packages/tree-widget/src/tree-widget-react/components/tree-header/SelectableTree.tsx b/packages/tree-widget/src/tree-widget-react/tree-header/SelectableTree.tsx similarity index 93% rename from packages/tree-widget/src/tree-widget-react/components/tree-header/SelectableTree.tsx rename to packages/tree-widget/src/tree-widget-react/tree-header/SelectableTree.tsx index fbb6f9f3b..5c153c0b8 100644 --- a/packages/tree-widget/src/tree-widget-react/components/tree-header/SelectableTree.tsx +++ b/packages/tree-widget/src/tree-widget-react/tree-header/SelectableTree.tsx @@ -10,7 +10,7 @@ import { Divider } from "@stratakit/bricks"; import { ErrorState } from "./ErrorState.js"; import type { PropsWithChildren, ReactNode } from "react"; -import type { TreeWidgetViewport } from "../trees/common/TreeWidgetViewport.js"; +import type { TreeWidgetViewport } from "../shared/TreeWidgetViewport.js"; /** @public */ export interface TreeToolbarButtonProps { diff --git a/packages/tree-widget/src/tree-widget-react/components/tree-header/WidgetHeader.css b/packages/tree-widget/src/tree-widget-react/tree-header/WidgetHeader.css similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/tree-header/WidgetHeader.css rename to packages/tree-widget/src/tree-widget-react/tree-header/WidgetHeader.css diff --git a/packages/tree-widget/src/tree-widget-react/components/tree-header/WidgetHeader.tsx b/packages/tree-widget/src/tree-widget-react/tree-header/WidgetHeader.tsx similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/tree-header/WidgetHeader.tsx rename to packages/tree-widget/src/tree-widget-react/tree-header/WidgetHeader.tsx diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/CategoriesTree.tsx b/packages/tree-widget/src/tree-widget-react/trees/categories-tree/CategoriesTree.tsx similarity index 86% rename from packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/CategoriesTree.tsx rename to packages/tree-widget/src/tree-widget-react/trees/categories-tree/CategoriesTree.tsx index a62410302..126efb818 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/CategoriesTree.tsx +++ b/packages/tree-widget/src/tree-widget-react/trees/categories-tree/CategoriesTree.tsx @@ -3,12 +3,12 @@ * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ -import { VisibilityTree } from "../common/components/VisibilityTree.js"; -import { VisibilityTreeRenderer } from "../common/components/VisibilityTreeRenderer.js"; +import { VisibilityTree } from "../../shared/components/VisibilityTree.js"; +import { VisibilityTreeRenderer } from "../../shared/components/VisibilityTreeRenderer.js"; import { useCategoriesTree } from "./UseCategoriesTree.js"; -import type { VisibilityTreeProps } from "../common/components/VisibilityTree.js"; -import type { ExtendedVisibilityTreeRendererProps } from "../common/components/VisibilityTreeRenderer.js"; +import type { VisibilityTreeProps } from "../../shared/components/VisibilityTree.js"; +import type { ExtendedVisibilityTreeRendererProps } from "../../shared/components/VisibilityTreeRenderer.js"; import type { UseCategoriesTreeProps } from "./UseCategoriesTree.js"; /** @beta */ diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/CategoriesTreeButtons.tsx b/packages/tree-widget/src/tree-widget-react/trees/categories-tree/CategoriesTreeButtons.tsx similarity index 93% rename from packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/CategoriesTreeButtons.tsx rename to packages/tree-widget/src/tree-widget-react/trees/categories-tree/CategoriesTreeButtons.tsx index 743a8f379..9b9ed88a1 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/CategoriesTreeButtons.tsx +++ b/packages/tree-widget/src/tree-widget-react/trees/categories-tree/CategoriesTreeButtons.tsx @@ -10,19 +10,19 @@ import { IconButton } from "@stratakit/bricks"; import visibilityHideSvg from "@stratakit/icons/visibility-hide.svg"; import visibilityInvertSvg from "@stratakit/icons/visibility-invert.svg"; import visibilityShowSvg from "@stratakit/icons/visibility-show.svg"; -import { useTranslation } from "../common/components/LocalizationContext.js"; -import { useErrorState } from "../common/internal/hooks/UseErrorState.js"; -import { useSharedTreeContextInternal } from "../common/internal/SharedTreeContextProviderInternal.js"; -import { getClassesByView } from "../common/internal/Utils.js"; -import { hideAllCategories, invertAllCategories, showAll } from "../common/internal/VisibilityUtils.js"; +import { useTranslation } from "../../shared/components/LocalizationContext.js"; +import { useErrorState } from "../../shared/internal/hooks/UseErrorState.js"; +import { useSharedTreeContextInternal } from "../../shared/internal/SharedTreeContextProviderInternal.js"; +import { getClassesByView } from "../../shared/internal/Utils.js"; +import { hideAllCategories, invertAllCategories, showAll } from "../../shared/internal/VisibilityUtils.js"; import type { Observable } from "rxjs"; import type { Id64Array, Id64String } from "@itwin/core-bentley"; +import type { BaseIdsCache } from "../../shared/internal/caches/BaseIdsCache.js"; +import type { ModelId } from "../../shared/internal/Types.js"; +import type { CategoryInfosMap } from "../../shared/internal/VisibilityUtils.js"; +import type { TreeWidgetViewport } from "../../shared/TreeWidgetViewport.js"; import type { TreeToolbarButtonProps } from "../../tree-header/SelectableTree.js"; -import type { BaseIdsCache } from "../common/internal/caches/BaseIdsCache.js"; -import type { ModelId } from "../common/internal/Types.js"; -import type { CategoryInfosMap } from "../common/internal/VisibilityUtils.js"; -import type { TreeWidgetViewport } from "../common/TreeWidgetViewport.js"; /** * Data structure that describes category. diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/CategoriesTreeComponent.tsx b/packages/tree-widget/src/tree-widget-react/trees/categories-tree/CategoriesTreeComponent.tsx similarity index 93% rename from packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/CategoriesTreeComponent.tsx rename to packages/tree-widget/src/tree-widget-react/trees/categories-tree/CategoriesTreeComponent.tsx index 6bca80fc6..28f47e379 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/CategoriesTreeComponent.tsx +++ b/packages/tree-widget/src/tree-widget-react/trees/categories-tree/CategoriesTreeComponent.tsx @@ -6,18 +6,18 @@ import { Fragment } from "react"; import { useActiveIModelConnection } from "@itwin/appui-react"; import { Skeleton } from "@stratakit/bricks"; +import { useActiveTreeWidgetViewport } from "../../shared/internal/hooks/UseActiveTreeWidgetViewport.js"; +import { SharedTreeContextProviderInternal, useSharedTreeContextInternal } from "../../shared/internal/SharedTreeContextProviderInternal.js"; +import { getClassesByView } from "../../shared/internal/Utils.js"; +import { TelemetryContextProvider } from "../../shared/UseTelemetryContext.js"; import { SelectableTree } from "../../tree-header/SelectableTree.js"; -import { useActiveTreeWidgetViewport } from "../common/internal/hooks/UseActiveTreeWidgetViewport.js"; -import { SharedTreeContextProviderInternal, useSharedTreeContextInternal } from "../common/internal/SharedTreeContextProviderInternal.js"; -import { getClassesByView } from "../common/internal/Utils.js"; -import { TelemetryContextProvider } from "../common/UseTelemetryContext.js"; import { CategoriesTree } from "./CategoriesTree.js"; import { HideAllButton, InvertAllButton, ShowAllButton, useCategoriesTreeButtonProps } from "./CategoriesTreeButtons.js"; import type { ReactNode } from "react"; import type { IModelConnection } from "@itwin/core-frontend"; +import type { TreeWidgetViewport } from "../../shared/TreeWidgetViewport.js"; import type { StandardTreeLabels } from "../../TreeWidgetComponentImpl.js"; -import type { TreeWidgetViewport } from "../common/TreeWidgetViewport.js"; import type { CategoriesTreeProps } from "./CategoriesTree.js"; import type { CategoriesTreeHeaderButtonProps, CategoriesTreeHeaderButtonType } from "./CategoriesTreeButtons.js"; diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/CategoriesTreeDefinition.ts b/packages/tree-widget/src/tree-widget-react/trees/categories-tree/CategoriesTreeDefinition.ts similarity index 99% rename from packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/CategoriesTreeDefinition.ts rename to packages/tree-widget/src/tree-widget-react/trees/categories-tree/CategoriesTreeDefinition.ts index 7e72c5ced..c8d41d0f6 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/CategoriesTreeDefinition.ts +++ b/packages/tree-widget/src/tree-widget-react/trees/categories-tree/CategoriesTreeDefinition.ts @@ -25,15 +25,15 @@ import { import { assert, Guid } from "@itwin/core-bentley"; import { createPredicateBasedHierarchyDefinition, ProcessedHierarchyNode } from "@itwin/presentation-hierarchies"; import { createBisInstanceLabelSelectClauseFactory, ECSql } from "@itwin/presentation-shared"; -import { eachValueFrom } from "../../utils/EachValueFrom.js"; import { CLASS_NAME_DefinitionContainer, CLASS_NAME_ISubModeledElement, CLASS_NAME_Model, CLASS_NAME_SubCategory, -} from "../common/internal/ClassNameDefinitions.js"; -import { catchBeSQLiteInterrupts } from "../common/internal/hooks/UseErrorState.js"; -import { fromWithRelease, releaseMainThreadOnItemsCount } from "../common/internal/Rxjs.js"; +} from "../../shared/internal/ClassNameDefinitions.js"; +import { eachValueFrom } from "../../shared/internal/EachValueFrom.js"; +import { catchBeSQLiteInterrupts } from "../../shared/internal/hooks/UseErrorState.js"; +import { fromWithRelease, releaseMainThreadOnItemsCount } from "../../shared/internal/Rxjs.js"; import { createExcludedClassesClause, createIdsSelector, @@ -44,8 +44,8 @@ import { groupingNodeDataFromChildren, ParentElementsPath, parseIdsSelectorResult, -} from "../common/internal/Utils.js"; -import { SearchLimitExceededError } from "../common/TreeErrors.js"; +} from "../../shared/internal/Utils.js"; +import { SearchLimitExceededError } from "../../shared/TreeErrors.js"; import { CategoriesTreeNodeInternal } from "./internal/CategoriesTreeNodeInternal.js"; import type { Observable, ObservedValueOf, OperatorFunction } from "rxjs"; @@ -74,8 +74,8 @@ import type { InstanceKey, Props, } from "@itwin/presentation-shared"; -import type { CategoryId, DefinitionContainerId, ElementId, ModelId, SubCategoryId } from "../common/internal/Types.js"; -import type { DeepRequired } from "../common/internal/Utils.js"; +import type { CategoryId, DefinitionContainerId, ElementId, ModelId, SubCategoryId } from "../../shared/internal/Types.js"; +import type { DeepRequired } from "../../shared/internal/Utils.js"; import type { CachedCategoryInfo, CategoriesTreeIdsCache } from "./internal/CategoriesTreeIdsCache.js"; import type { CategoryNodeProps, ElementNodeProps } from "./internal/CategoriesTreeNodeInternal.js"; diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/CategoriesTreeIcon.tsx b/packages/tree-widget/src/tree-widget-react/trees/categories-tree/CategoriesTreeIcon.tsx similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/CategoriesTreeIcon.tsx rename to packages/tree-widget/src/tree-widget-react/trees/categories-tree/CategoriesTreeIcon.tsx diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/CategoriesTreeNode.ts b/packages/tree-widget/src/tree-widget-react/trees/categories-tree/CategoriesTreeNode.ts similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/CategoriesTreeNode.ts rename to packages/tree-widget/src/tree-widget-react/trees/categories-tree/CategoriesTreeNode.ts diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/UseCategoriesTree.tsx b/packages/tree-widget/src/tree-widget-react/trees/categories-tree/UseCategoriesTree.tsx similarity index 91% rename from packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/UseCategoriesTree.tsx rename to packages/tree-widget/src/tree-widget-react/trees/categories-tree/UseCategoriesTree.tsx index a0254829b..132910797 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/UseCategoriesTree.tsx +++ b/packages/tree-widget/src/tree-widget-react/trees/categories-tree/UseCategoriesTree.tsx @@ -6,11 +6,11 @@ import { useCallback, useEffect, useMemo, useState } from "react"; import { createECSqlQueryExecutor } from "@itwin/presentation-core-interop"; import categorySvg from "@stratakit/icons/bis-category-3d.svg"; -import { EmptyTreeContent, NoSearchMatches, SearchUnknownError, TooManySearchMatches } from "../common/components/EmptyTree.js"; -import { useCachedVisibility } from "../common/internal/hooks/UseCachedVisibility.js"; -import { useGuid } from "../common/internal/hooks/UseGuid.js"; -import { useSharedTreeContextInternal } from "../common/internal/SharedTreeContextProviderInternal.js"; -import { getClassesByView, mergeWithDefaults, stableStringify } from "../common/internal/Utils.js"; +import { EmptyTreeContent, NoSearchMatches, SearchUnknownError, TooManySearchMatches } from "../../shared/components/EmptyTree.js"; +import { useCachedVisibility } from "../../shared/internal/hooks/UseCachedVisibility.js"; +import { useGuid } from "../../shared/internal/hooks/UseGuid.js"; +import { useSharedTreeContextInternal } from "../../shared/internal/SharedTreeContextProviderInternal.js"; +import { getClassesByView, mergeWithDefaults, stableStringify } from "../../shared/internal/Utils.js"; import { CategoriesTreeDefinition, defaultHierarchyConfiguration } from "./CategoriesTreeDefinition.js"; import { CategoriesTreeIcon } from "./CategoriesTreeIcon.js"; import { CategoriesTreeIdsCache } from "./internal/CategoriesTreeIdsCache.js"; @@ -22,11 +22,11 @@ import type { ReactNode } from "react"; import type { GuidString, Id64Array } from "@itwin/core-bentley"; import type { IModelConnection } from "@itwin/core-frontend"; import type { EC } from "@itwin/presentation-shared"; -import type { VisibilityTreeProps } from "../common/components/VisibilityTree.js"; -import type { ExtendedVisibilityTreeRendererProps } from "../common/components/VisibilityTreeRenderer.js"; -import type { CreateSearchResultsTreeProps, CreateTreeSpecificVisibilityHandlerProps } from "../common/internal/hooks/UseCachedVisibility.js"; -import type { SearchResultsTree } from "../common/internal/visibility/BaseSearchResultsTree.js"; -import type { TreeWidgetViewport } from "../common/TreeWidgetViewport.js"; +import type { VisibilityTreeProps } from "../../shared/components/VisibilityTree.js"; +import type { ExtendedVisibilityTreeRendererProps } from "../../shared/components/VisibilityTreeRenderer.js"; +import type { CreateSearchResultsTreeProps, CreateTreeSpecificVisibilityHandlerProps } from "../../shared/internal/hooks/UseCachedVisibility.js"; +import type { SearchResultsTree } from "../../shared/internal/visibility/BaseSearchResultsTree.js"; +import type { TreeWidgetViewport } from "../../shared/TreeWidgetViewport.js"; import type { CategoryInfo } from "./CategoriesTreeButtons.js"; import type { CategoriesTreeHierarchyConfiguration, RequiredCategoriesTreeHierarchyConfiguration } from "./CategoriesTreeDefinition.js"; import type { CategoriesTreeSearchError } from "./internal/UseSearchPaths.js"; diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/internal/CategoriesTreeIdsCache.ts b/packages/tree-widget/src/tree-widget-react/trees/categories-tree/internal/CategoriesTreeIdsCache.ts similarity index 97% rename from packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/internal/CategoriesTreeIdsCache.ts rename to packages/tree-widget/src/tree-widget-react/trees/categories-tree/internal/CategoriesTreeIdsCache.ts index 6bcfeb32c..d0274ba7d 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/internal/CategoriesTreeIdsCache.ts +++ b/packages/tree-widget/src/tree-widget-react/trees/categories-tree/internal/CategoriesTreeIdsCache.ts @@ -5,18 +5,18 @@ import { defaultIfEmpty, defer, EMPTY, forkJoin, from, map, merge, mergeMap, of, reduce, shareReplay, toArray } from "rxjs"; import { Guid, Id64 } from "@itwin/core-bentley"; -import { BaseIdsCacheImpl } from "../../common/internal/caches/BaseIdsCache.js"; -import { CLASS_NAME_DefinitionContainer, CLASS_NAME_Model, CLASS_NAME_SubCategory } from "../../common/internal/ClassNameDefinitions.js"; -import { catchBeSQLiteInterrupts } from "../../common/internal/hooks/UseErrorState.js"; -import { fromWithRelease } from "../../common/internal/Rxjs.js"; -import { createWhereClause, getClassesByView, getOrCreate } from "../../common/internal/Utils.js"; +import { BaseIdsCacheImpl } from "../../../shared/internal/caches/BaseIdsCache.js"; +import { CLASS_NAME_DefinitionContainer, CLASS_NAME_Model, CLASS_NAME_SubCategory } from "../../../shared/internal/ClassNameDefinitions.js"; +import { catchBeSQLiteInterrupts } from "../../../shared/internal/hooks/UseErrorState.js"; +import { fromWithRelease } from "../../../shared/internal/Rxjs.js"; +import { createWhereClause, getClassesByView, getOrCreate } from "../../../shared/internal/Utils.js"; import type { Observable } from "rxjs"; import type { GuidString, Id64Arg, Id64Array, Id64String } from "@itwin/core-bentley"; import type { HierarchyNodeIdentifiersPath, LimitingECSqlQueryExecutor } from "@itwin/presentation-hierarchies"; import type { EC } from "@itwin/presentation-shared"; -import type { BaseIdsCacheImplProps } from "../../common/internal/caches/BaseIdsCache.js"; -import type { CategoryId, DefinitionContainerId, ElementId, ModelId } from "../../common/internal/Types.js"; +import type { BaseIdsCacheImplProps } from "../../../shared/internal/caches/BaseIdsCache.js"; +import type { CategoryId, DefinitionContainerId, ElementId, ModelId } from "../../../shared/internal/Types.js"; interface DefinitionContainerInfo { modelId: Id64String; diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/internal/CategoriesTreeNodeInternal.ts b/packages/tree-widget/src/tree-widget-react/trees/categories-tree/internal/CategoriesTreeNodeInternal.ts similarity index 96% rename from packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/internal/CategoriesTreeNodeInternal.ts rename to packages/tree-widget/src/tree-widget-react/trees/categories-tree/internal/CategoriesTreeNodeInternal.ts index 40f2f261c..a5863c11c 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/internal/CategoriesTreeNodeInternal.ts +++ b/packages/tree-widget/src/tree-widget-react/trees/categories-tree/internal/CategoriesTreeNodeInternal.ts @@ -7,8 +7,8 @@ import { CategoriesTreeNode } from "../CategoriesTreeNode.js"; import type { Id64Array, Id64String } from "@itwin/core-bentley"; import type { ClassGroupingNodeKey, GroupingHierarchyNode, HierarchyNode, InstancesNodeKey, NonGroupingHierarchyNode } from "@itwin/presentation-hierarchies"; -import type { ElementId } from "../../common/internal/Types.js"; -import type { ParentElementsPath } from "../../common/internal/Utils.js"; +import type { ElementId } from "../../../shared/internal/Types.js"; +import type { ParentElementsPath } from "../../../shared/internal/Utils.js"; /** * Contains utility functions for working with Models Tree nodes. diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/internal/UseSearchPaths.ts b/packages/tree-widget/src/tree-widget-react/trees/categories-tree/internal/UseSearchPaths.ts similarity index 93% rename from packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/internal/UseSearchPaths.ts rename to packages/tree-widget/src/tree-widget-react/trees/categories-tree/internal/UseSearchPaths.ts index 4e583e559..5694e2f27 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/internal/UseSearchPaths.ts +++ b/packages/tree-widget/src/tree-widget-react/trees/categories-tree/internal/UseSearchPaths.ts @@ -7,17 +7,17 @@ import { useEffect, useMemo, useState } from "react"; import { filter, firstValueFrom, identity, tap } from "rxjs"; import { assert } from "@itwin/core-bentley"; import { HierarchyNodeIdentifier, HierarchySearchTree } from "@itwin/presentation-hierarchies"; -import { CLASS_NAME_DefinitionContainer, CLASS_NAME_SubCategory } from "../../common/internal/ClassNameDefinitions.js"; -import { toVoidPromise } from "../../common/internal/Rxjs.js"; -import { getClassesByView, getOrCreate } from "../../common/internal/Utils.js"; -import { SearchLimitExceededError } from "../../common/TreeErrors.js"; -import { useTelemetryContext } from "../../common/UseTelemetryContext.js"; +import { CLASS_NAME_DefinitionContainer, CLASS_NAME_SubCategory } from "../../../shared/internal/ClassNameDefinitions.js"; +import { toVoidPromise } from "../../../shared/internal/Rxjs.js"; +import { getClassesByView, getOrCreate } from "../../../shared/internal/Utils.js"; +import { SearchLimitExceededError } from "../../../shared/TreeErrors.js"; +import { useTelemetryContext } from "../../../shared/UseTelemetryContext.js"; import { CategoriesTreeDefinition } from "../CategoriesTreeDefinition.js"; import type { GuidString } from "@itwin/core-bentley"; import type { InstanceKey } from "@itwin/presentation-shared"; -import type { VisibilityTreeProps } from "../../common/components/VisibilityTree.js"; -import type { CategoryId, ElementId, ModelId, SubCategoryId } from "../../common/internal/Types.js"; +import type { VisibilityTreeProps } from "../../../shared/components/VisibilityTree.js"; +import type { CategoryId, ElementId, ModelId, SubCategoryId } from "../../../shared/internal/Types.js"; import type { CategoryInfo } from "../CategoriesTreeButtons.js"; import type { RequiredCategoriesTreeHierarchyConfiguration } from "../CategoriesTreeDefinition.js"; import type { CategoriesTreeIdsCache } from "./CategoriesTreeIdsCache.js"; diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/internal/visibility/CategoriesTreeVisibilityHandler.ts b/packages/tree-widget/src/tree-widget-react/trees/categories-tree/internal/visibility/CategoriesTreeVisibilityHandler.ts similarity index 93% rename from packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/internal/visibility/CategoriesTreeVisibilityHandler.ts rename to packages/tree-widget/src/tree-widget-react/trees/categories-tree/internal/visibility/CategoriesTreeVisibilityHandler.ts index 96d0fbc3e..ebae1188f 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/internal/visibility/CategoriesTreeVisibilityHandler.ts +++ b/packages/tree-widget/src/tree-widget-react/trees/categories-tree/internal/visibility/CategoriesTreeVisibilityHandler.ts @@ -5,23 +5,23 @@ import { concat, defer, EMPTY, from, merge, mergeAll, mergeMap, of, Subject } from "rxjs"; import { assert, Guid } from "@itwin/core-bentley"; -import { HierarchyVisibilityHandlerImpl } from "../../../common/internal/hooks/UseCachedVisibility.js"; -import { fromWithRelease } from "../../../common/internal/Rxjs.js"; -import { createVisibilityStatus } from "../../../common/internal/Tooltip.js"; -import { getClassesByView } from "../../../common/internal/Utils.js"; -import { mergeVisibilityStatuses } from "../../../common/internal/VisibilityUtils.js"; -import { CategoriesTreeNodeInternal } from "../../internal/CategoriesTreeNodeInternal.js"; +import { HierarchyVisibilityHandlerImpl } from "../../../../shared/internal/hooks/UseCachedVisibility.js"; +import { fromWithRelease } from "../../../../shared/internal/Rxjs.js"; +import { createVisibilityStatus } from "../../../../shared/internal/Tooltip.js"; +import { getClassesByView } from "../../../../shared/internal/Utils.js"; +import { mergeVisibilityStatuses } from "../../../../shared/internal/VisibilityUtils.js"; +import { CategoriesTreeNodeInternal } from "../CategoriesTreeNodeInternal.js"; import { CategoriesTreeVisibilityHelper } from "./CategoriesTreeVisibilityHelper.js"; import { createCategoriesSearchResultsTree } from "./SearchResultsTree.js"; import type { Observable } from "rxjs"; import type { HierarchyNode, HierarchySearchTree } from "@itwin/presentation-hierarchies"; import type { ECClassHierarchyInspector } from "@itwin/presentation-shared"; -import type { AlwaysAndNeverDrawnElementInfoCache } from "../../../common/internal/caches/AlwaysAndNeverDrawnElementInfoCache.js"; -import type { SearchResultsTree } from "../../../common/internal/visibility/BaseSearchResultsTree.js"; -import type { TreeSpecificVisibilityHandler } from "../../../common/internal/visibility/BaseVisibilityHelper.js"; -import type { TreeWidgetViewport } from "../../../common/TreeWidgetViewport.js"; -import type { VisibilityStatus } from "../../../common/UseHierarchyVisibility.js"; +import type { AlwaysAndNeverDrawnElementInfoCache } from "../../../../shared/internal/caches/AlwaysAndNeverDrawnElementInfoCache.js"; +import type { SearchResultsTree } from "../../../../shared/internal/visibility/BaseSearchResultsTree.js"; +import type { TreeSpecificVisibilityHandler } from "../../../../shared/internal/visibility/BaseVisibilityHelper.js"; +import type { TreeWidgetViewport } from "../../../../shared/TreeWidgetViewport.js"; +import type { VisibilityStatus } from "../../../../shared/UseHierarchyVisibility.js"; import type { RequiredCategoriesTreeHierarchyConfiguration } from "../../CategoriesTreeDefinition.js"; import type { CategoriesTreeIdsCache } from "../CategoriesTreeIdsCache.js"; import type { CategoriesTreeSearchTargets } from "./SearchResultsTree.js"; diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/internal/visibility/CategoriesTreeVisibilityHelper.ts b/packages/tree-widget/src/tree-widget-react/trees/categories-tree/internal/visibility/CategoriesTreeVisibilityHelper.ts similarity index 92% rename from packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/internal/visibility/CategoriesTreeVisibilityHelper.ts rename to packages/tree-widget/src/tree-widget-react/trees/categories-tree/internal/visibility/CategoriesTreeVisibilityHelper.ts index 7398b3c39..04584dddc 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/internal/visibility/CategoriesTreeVisibilityHelper.ts +++ b/packages/tree-widget/src/tree-widget-react/trees/categories-tree/internal/visibility/CategoriesTreeVisibilityHelper.ts @@ -4,16 +4,16 @@ *--------------------------------------------------------------------------------------------*/ import { bufferCount, concat, concatMap, delay, EMPTY, from, map, merge, mergeMap, reduce, toArray } from "rxjs"; -import { createVisibilityStatus } from "../../../common/internal/Tooltip.js"; -import { getOptimalBatchSize } from "../../../common/internal/Utils.js"; -import { BaseVisibilityHelper } from "../../../common/internal/visibility/BaseVisibilityHelper.js"; -import { mergeVisibilityStatuses } from "../../../common/internal/VisibilityUtils.js"; +import { createVisibilityStatus } from "../../../../shared/internal/Tooltip.js"; +import { getOptimalBatchSize } from "../../../../shared/internal/Utils.js"; +import { BaseVisibilityHelper } from "../../../../shared/internal/visibility/BaseVisibilityHelper.js"; +import { mergeVisibilityStatuses } from "../../../../shared/internal/VisibilityUtils.js"; import type { Observable } from "rxjs"; import type { Id64Arg, Id64String } from "@itwin/core-bentley"; -import type { BaseVisibilityHelperProps } from "../../../common/internal/visibility/BaseVisibilityHelper.js"; -import type { TreeWidgetViewport } from "../../../common/TreeWidgetViewport.js"; -import type { VisibilityStatus } from "../../../common/UseHierarchyVisibility.js"; +import type { BaseVisibilityHelperProps } from "../../../../shared/internal/visibility/BaseVisibilityHelper.js"; +import type { TreeWidgetViewport } from "../../../../shared/TreeWidgetViewport.js"; +import type { VisibilityStatus } from "../../../../shared/UseHierarchyVisibility.js"; import type { RequiredCategoriesTreeHierarchyConfiguration } from "../../CategoriesTreeDefinition.js"; import type { CategoriesTreeIdsCache } from "../CategoriesTreeIdsCache.js"; import type { ElementClassGroupingNodeProps } from "../CategoriesTreeNodeInternal.js"; diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/internal/visibility/SearchResultsTree.ts b/packages/tree-widget/src/tree-widget-react/trees/categories-tree/internal/visibility/SearchResultsTree.ts similarity index 97% rename from packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/internal/visibility/SearchResultsTree.ts rename to packages/tree-widget/src/tree-widget-react/trees/categories-tree/internal/visibility/SearchResultsTree.ts index 9688a742d..70f0fb7c4 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/internal/visibility/SearchResultsTree.ts +++ b/packages/tree-widget/src/tree-widget-react/trees/categories-tree/internal/visibility/SearchResultsTree.ts @@ -5,25 +5,25 @@ import { firstValueFrom, forkJoin } from "rxjs"; import { assert } from "@itwin/core-bentley"; -import { CLASS_NAME_SubCategory } from "../../../common/internal/ClassNameDefinitions.js"; -import { getOrCreate, ParentElementsPath } from "../../../common/internal/Utils.js"; +import { CLASS_NAME_SubCategory } from "../../../../shared/internal/ClassNameDefinitions.js"; +import { getOrCreate, ParentElementsPath } from "../../../../shared/internal/Utils.js"; import { createSearchResultsTree, InternalSearchTargetCategories, InternalSearchTargetElements, SearchResultsNodesHandler, -} from "../../../common/internal/visibility/BaseSearchResultsTree.js"; +} from "../../../../shared/internal/visibility/BaseSearchResultsTree.js"; import type { Id64Set, Id64String } from "@itwin/core-bentley"; import type { HierarchySearchTree } from "@itwin/presentation-hierarchies"; import type { EC, ECClassHierarchyInspector } from "@itwin/presentation-shared"; -import type { CategoryId, ElementId, ModelId, SubCategoryId } from "../../../common/internal/Types.js"; +import type { CategoryId, ElementId, ModelId, SubCategoryId } from "../../../../shared/internal/Types.js"; import type { BaseSearchResultsTreeNode, SearchResultsTree, SearchResultsTreeNodeChildren, SearchResultsTreeRootNode, -} from "../../../common/internal/visibility/BaseSearchResultsTree.js"; +} from "../../../../shared/internal/visibility/BaseSearchResultsTree.js"; import type { CategoriesTreeIdsCache } from "../CategoriesTreeIdsCache.js"; /** @internal */ diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/classifications-tree/ClassificationsTree.tsx b/packages/tree-widget/src/tree-widget-react/trees/classifications-tree/ClassificationsTree.tsx similarity index 86% rename from packages/tree-widget/src/tree-widget-react/components/trees/classifications-tree/ClassificationsTree.tsx rename to packages/tree-widget/src/tree-widget-react/trees/classifications-tree/ClassificationsTree.tsx index b92292870..62a9e459b 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/classifications-tree/ClassificationsTree.tsx +++ b/packages/tree-widget/src/tree-widget-react/trees/classifications-tree/ClassificationsTree.tsx @@ -3,12 +3,12 @@ * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ -import { VisibilityTree } from "../common/components/VisibilityTree.js"; -import { VisibilityTreeRenderer } from "../common/components/VisibilityTreeRenderer.js"; +import { VisibilityTree } from "../../shared/components/VisibilityTree.js"; +import { VisibilityTreeRenderer } from "../../shared/components/VisibilityTreeRenderer.js"; import { useClassificationsTree } from "./UseClassificationsTree.js"; -import type { VisibilityTreeProps } from "../common/components/VisibilityTree.js"; -import type { ExtendedVisibilityTreeRendererProps } from "../common/components/VisibilityTreeRenderer.js"; +import type { VisibilityTreeProps } from "../../shared/components/VisibilityTree.js"; +import type { ExtendedVisibilityTreeRendererProps } from "../../shared/components/VisibilityTreeRenderer.js"; import type { UseClassificationsTreeProps } from "./UseClassificationsTree.js"; /** @alpha */ diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/classifications-tree/ClassificationsTreeComponent.tsx b/packages/tree-widget/src/tree-widget-react/trees/classifications-tree/ClassificationsTreeComponent.tsx similarity index 90% rename from packages/tree-widget/src/tree-widget-react/components/trees/classifications-tree/ClassificationsTreeComponent.tsx rename to packages/tree-widget/src/tree-widget-react/trees/classifications-tree/ClassificationsTreeComponent.tsx index df0689277..2e912e8d8 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/classifications-tree/ClassificationsTreeComponent.tsx +++ b/packages/tree-widget/src/tree-widget-react/trees/classifications-tree/ClassificationsTreeComponent.tsx @@ -5,15 +5,15 @@ import { useActiveIModelConnection } from "@itwin/appui-react"; import { SchemaKey, SchemaMatchType } from "@itwin/ecschema-metadata"; +import { useActiveTreeWidgetViewport } from "../../shared/internal/hooks/UseActiveTreeWidgetViewport.js"; +import { SharedTreeContextProviderInternal } from "../../shared/internal/SharedTreeContextProviderInternal.js"; +import { TelemetryContextProvider } from "../../shared/UseTelemetryContext.js"; import { SelectableTree } from "../../tree-header/SelectableTree.js"; -import { useActiveTreeWidgetViewport } from "../common/internal/hooks/UseActiveTreeWidgetViewport.js"; -import { SharedTreeContextProviderInternal } from "../common/internal/SharedTreeContextProviderInternal.js"; -import { TelemetryContextProvider } from "../common/UseTelemetryContext.js"; import { ClassificationsTree } from "./ClassificationsTree.js"; import type { IModelConnection } from "@itwin/core-frontend"; +import type { TreeWidgetViewport } from "../../shared/TreeWidgetViewport.js"; import type { StandardTreeLabels } from "../../TreeWidgetComponentImpl.js"; -import type { TreeWidgetViewport } from "../common/TreeWidgetViewport.js"; import type { ClassificationsTreeProps } from "./ClassificationsTree.js"; /** @alpha */ diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/classifications-tree/ClassificationsTreeDefinition.ts b/packages/tree-widget/src/tree-widget-react/trees/classifications-tree/ClassificationsTreeDefinition.ts similarity index 98% rename from packages/tree-widget/src/tree-widget-react/components/trees/classifications-tree/ClassificationsTreeDefinition.ts rename to packages/tree-widget/src/tree-widget-react/trees/classifications-tree/ClassificationsTreeDefinition.ts index 544e01a16..366431022 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/classifications-tree/ClassificationsTreeDefinition.ts +++ b/packages/tree-widget/src/tree-widget-react/trees/classifications-tree/ClassificationsTreeDefinition.ts @@ -24,7 +24,6 @@ import { import { assert, Guid } from "@itwin/core-bentley"; import { createPredicateBasedHierarchyDefinition } from "@itwin/presentation-hierarchies"; import { createBisInstanceLabelSelectClauseFactory, ECSql } from "@itwin/presentation-shared"; -import { eachValueFrom } from "../../utils/EachValueFrom.js"; import { CLASS_NAME_Classification, CLASS_NAME_ClassificationSystem, @@ -33,11 +32,12 @@ import { CLASS_NAME_ElementHasClassifications, CLASS_NAME_GeometricElement, CLASS_NAME_GeometricElement3d, -} from "../common/internal/ClassNameDefinitions.js"; -import { catchBeSQLiteInterrupts } from "../common/internal/hooks/UseErrorState.js"; -import { fromWithRelease, releaseMainThreadOnItemsCount } from "../common/internal/Rxjs.js"; -import { createExcludedClassesClause, createWhereClause, getOptimalBatchSize, ParentElementsPath } from "../common/internal/Utils.js"; -import { SearchLimitExceededError } from "../common/TreeErrors.js"; +} from "../../shared/internal/ClassNameDefinitions.js"; +import { eachValueFrom } from "../../shared/internal/EachValueFrom.js"; +import { catchBeSQLiteInterrupts } from "../../shared/internal/hooks/UseErrorState.js"; +import { fromWithRelease, releaseMainThreadOnItemsCount } from "../../shared/internal/Rxjs.js"; +import { createExcludedClassesClause, createWhereClause, getOptimalBatchSize, ParentElementsPath } from "../../shared/internal/Utils.js"; +import { SearchLimitExceededError } from "../../shared/TreeErrors.js"; import { ClassificationsTreeNodeInternal } from "./internal/ClassificationsTreeNodeInternal.js"; import type { Observable, ObservedValueOf, OperatorFunction } from "rxjs"; @@ -61,7 +61,7 @@ import type { IInstanceLabelSelectClauseFactory, InstanceKey, } from "@itwin/presentation-shared"; -import type { ClassificationId, ClassificationTableId, ElementId } from "../common/internal/Types.js"; +import type { ClassificationId, ClassificationTableId, ElementId } from "../../shared/internal/Types.js"; import type { ClassificationsTreeIdsCache } from "./internal/ClassificationsTreeIdsCache.js"; const MAX_SEARCH_INSTANCE_KEY_COUNT = 100; diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/classifications-tree/ClassificationsTreeIcon.tsx b/packages/tree-widget/src/tree-widget-react/trees/classifications-tree/ClassificationsTreeIcon.tsx similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/classifications-tree/ClassificationsTreeIcon.tsx rename to packages/tree-widget/src/tree-widget-react/trees/classifications-tree/ClassificationsTreeIcon.tsx diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/classifications-tree/ClassificationsTreeNode.ts b/packages/tree-widget/src/tree-widget-react/trees/classifications-tree/ClassificationsTreeNode.ts similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/classifications-tree/ClassificationsTreeNode.ts rename to packages/tree-widget/src/tree-widget-react/trees/classifications-tree/ClassificationsTreeNode.ts diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/classifications-tree/UseClassificationsTree.tsx b/packages/tree-widget/src/tree-widget-react/trees/classifications-tree/UseClassificationsTree.tsx similarity index 90% rename from packages/tree-widget/src/tree-widget-react/components/trees/classifications-tree/UseClassificationsTree.tsx rename to packages/tree-widget/src/tree-widget-react/trees/classifications-tree/UseClassificationsTree.tsx index 291267b27..ef6a78202 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/classifications-tree/UseClassificationsTree.tsx +++ b/packages/tree-widget/src/tree-widget-react/trees/classifications-tree/UseClassificationsTree.tsx @@ -6,13 +6,13 @@ import { useCallback, useEffect, useMemo, useState } from "react"; import { createECSqlQueryExecutor } from "@itwin/presentation-core-interop"; import iconBisCategory3d from "@stratakit/icons/bis-category-3d.svg"; -import { EmptyTreeContent, NoSearchMatches, SearchUnknownError, TooManySearchMatches } from "../common/components/EmptyTree.js"; -import { useCachedVisibility } from "../common/internal/hooks/UseCachedVisibility.js"; -import { useGuid } from "../common/internal/hooks/UseGuid.js"; -import { useSharedTreeContextInternal } from "../common/internal/SharedTreeContextProviderInternal.js"; -import { getClassesByView, stableStringify } from "../common/internal/Utils.js"; -import { SearchLimitExceededError } from "../common/TreeErrors.js"; -import { useTelemetryContext } from "../common/UseTelemetryContext.js"; +import { EmptyTreeContent, NoSearchMatches, SearchUnknownError, TooManySearchMatches } from "../../shared/components/EmptyTree.js"; +import { useCachedVisibility } from "../../shared/internal/hooks/UseCachedVisibility.js"; +import { useGuid } from "../../shared/internal/hooks/UseGuid.js"; +import { useSharedTreeContextInternal } from "../../shared/internal/SharedTreeContextProviderInternal.js"; +import { getClassesByView, stableStringify } from "../../shared/internal/Utils.js"; +import { SearchLimitExceededError } from "../../shared/TreeErrors.js"; +import { useTelemetryContext } from "../../shared/UseTelemetryContext.js"; import { ClassificationsTreeComponent } from "./ClassificationsTreeComponent.js"; import { ClassificationsTreeIcon } from "./ClassificationsTreeIcon.js"; import { ClassificationsTreeIdsCache } from "./internal/ClassificationsTreeIdsCache.js"; @@ -25,12 +25,12 @@ import type { GuidString } from "@itwin/core-bentley"; import type { IModelConnection } from "@itwin/core-frontend"; import type { useTree } from "@itwin/presentation-hierarchies-react"; import type { EC } from "@itwin/presentation-shared"; -import type { VisibilityTreeProps } from "../common/components/VisibilityTree.js"; -import type { ExtendedVisibilityTreeRendererProps } from "../common/components/VisibilityTreeRenderer.js"; -import type { CreateSearchResultsTreeProps, CreateTreeSpecificVisibilityHandlerProps } from "../common/internal/hooks/UseCachedVisibility.js"; -import type { SearchResultsTree } from "../common/internal/visibility/BaseSearchResultsTree.js"; -import type { TreeWidgetViewport } from "../common/TreeWidgetViewport.js"; -import type { FunctionProps } from "../common/Utils.js"; +import type { VisibilityTreeProps } from "../../shared/components/VisibilityTree.js"; +import type { ExtendedVisibilityTreeRendererProps } from "../../shared/components/VisibilityTreeRenderer.js"; +import type { CreateSearchResultsTreeProps, CreateTreeSpecificVisibilityHandlerProps } from "../../shared/internal/hooks/UseCachedVisibility.js"; +import type { SearchResultsTree } from "../../shared/internal/visibility/BaseSearchResultsTree.js"; +import type { TreeWidgetViewport } from "../../shared/TreeWidgetViewport.js"; +import type { FunctionProps } from "../../shared/Utils.js"; import type { ClassificationsTreeHierarchyConfiguration } from "./ClassificationsTreeDefinition.js"; import type { HierarchyConfigForClassificationsCache, VisibilityHandlerConfigForClassificationsCache } from "./internal/ClassificationsTreeIdsCache.js"; import type { ClassificationsTreeSearchTargets } from "./internal/visibility/SearchResultsTree.js"; diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/classifications-tree/UseClassificationsTreeDefinition.ts b/packages/tree-widget/src/tree-widget-react/trees/classifications-tree/UseClassificationsTreeDefinition.ts similarity index 94% rename from packages/tree-widget/src/tree-widget-react/components/trees/classifications-tree/UseClassificationsTreeDefinition.ts rename to packages/tree-widget/src/tree-widget-react/trees/classifications-tree/UseClassificationsTreeDefinition.ts index 429a982ab..475bfc263 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/classifications-tree/UseClassificationsTreeDefinition.ts +++ b/packages/tree-widget/src/tree-widget-react/trees/classifications-tree/UseClassificationsTreeDefinition.ts @@ -5,9 +5,9 @@ import { useEffect, useMemo } from "react"; import { HierarchySearchTree } from "@itwin/presentation-hierarchies"; -import { createIModelAccess } from "../common/internal/hooks/UseIModelAccess.js"; -import { useSharedTreeContextInternal } from "../common/internal/SharedTreeContextProviderInternal.js"; -import { useTelemetryContext } from "../common/UseTelemetryContext.js"; +import { createIModelAccess } from "../../shared/internal/hooks/UseIModelAccess.js"; +import { useSharedTreeContextInternal } from "../../shared/internal/SharedTreeContextProviderInternal.js"; +import { useTelemetryContext } from "../../shared/UseTelemetryContext.js"; import { ClassificationsTreeDefinition } from "./ClassificationsTreeDefinition.js"; import { getClassificationsTreeIdsCache } from "./UseClassificationsTree.js"; @@ -15,7 +15,7 @@ import type { IModelConnection } from "@itwin/core-frontend"; import type { HierarchyDefinition } from "@itwin/presentation-hierarchies"; import type { useTree } from "@itwin/presentation-hierarchies-react"; import type { InstanceKey } from "@itwin/presentation-shared"; -import type { FunctionProps } from "../common/Utils.js"; +import type { FunctionProps } from "../../shared/Utils.js"; import type { ClassificationsTreeHierarchyConfiguration } from "./ClassificationsTreeDefinition.js"; import type { ClassificationsTreeVisibilityHandlerConfiguration } from "./UseClassificationsTree.js"; diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/classifications-tree/internal/ClassificationsTreeIdsCache.ts b/packages/tree-widget/src/tree-widget-react/trees/classifications-tree/internal/ClassificationsTreeIdsCache.ts similarity index 96% rename from packages/tree-widget/src/tree-widget-react/components/trees/classifications-tree/internal/ClassificationsTreeIdsCache.ts rename to packages/tree-widget/src/tree-widget-react/trees/classifications-tree/internal/ClassificationsTreeIdsCache.ts index 47f6e5d03..6eda7f7fb 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/classifications-tree/internal/ClassificationsTreeIdsCache.ts +++ b/packages/tree-widget/src/tree-widget-react/trees/classifications-tree/internal/ClassificationsTreeIdsCache.ts @@ -5,7 +5,7 @@ import { defer, EMPTY, expand, from, map, merge, mergeMap, of, reduce, shareReplay } from "rxjs"; import { Guid, Id64 } from "@itwin/core-bentley"; -import { BaseIdsCacheImpl } from "../../common/internal/caches/BaseIdsCache.js"; +import { BaseIdsCacheImpl } from "../../../shared/internal/caches/BaseIdsCache.js"; import { CLASS_NAME_Classification, CLASS_NAME_ClassificationSystem, @@ -13,16 +13,16 @@ import { CLASS_NAME_ElementHasClassifications, CLASS_NAME_GeometricElement3d, CLASS_NAME_SpatialCategory, -} from "../../common/internal/ClassNameDefinitions.js"; -import { catchBeSQLiteInterrupts } from "../../common/internal/hooks/UseErrorState.js"; -import { fromWithRelease } from "../../common/internal/Rxjs.js"; -import { createWhereClause, getOrCreate } from "../../common/internal/Utils.js"; +} from "../../../shared/internal/ClassNameDefinitions.js"; +import { catchBeSQLiteInterrupts } from "../../../shared/internal/hooks/UseErrorState.js"; +import { fromWithRelease } from "../../../shared/internal/Rxjs.js"; +import { createWhereClause, getOrCreate } from "../../../shared/internal/Utils.js"; import type { Observable } from "rxjs"; import type { GuidString, Id64Arg, Id64Array, Id64String } from "@itwin/core-bentley"; import type { HierarchyNodeIdentifiersPath, LimitingECSqlQueryExecutor } from "@itwin/presentation-hierarchies"; -import type { BaseIdsCacheImplProps } from "../../common/internal/caches/BaseIdsCache.js"; -import type { CategoryId, ClassificationId, ClassificationTableId, ElementId } from "../../common/internal/Types.js"; +import type { BaseIdsCacheImplProps } from "../../../shared/internal/caches/BaseIdsCache.js"; +import type { CategoryId, ClassificationId, ClassificationTableId, ElementId } from "../../../shared/internal/Types.js"; import type { ClassificationsTreeHierarchyConfiguration } from "../ClassificationsTreeDefinition.js"; import type { ClassificationsTreeVisibilityHandlerConfiguration } from "../UseClassificationsTree.js"; diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/classifications-tree/internal/ClassificationsTreeNodeInternal.ts b/packages/tree-widget/src/tree-widget-react/trees/classifications-tree/internal/ClassificationsTreeNodeInternal.ts similarity index 95% rename from packages/tree-widget/src/tree-widget-react/components/trees/classifications-tree/internal/ClassificationsTreeNodeInternal.ts rename to packages/tree-widget/src/tree-widget-react/trees/classifications-tree/internal/ClassificationsTreeNodeInternal.ts index ab9cfced1..0fea8bb09 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/classifications-tree/internal/ClassificationsTreeNodeInternal.ts +++ b/packages/tree-widget/src/tree-widget-react/trees/classifications-tree/internal/ClassificationsTreeNodeInternal.ts @@ -7,7 +7,7 @@ import { ClassificationsTreeNode } from "../ClassificationsTreeNode.js"; import type { Id64String } from "@itwin/core-bentley"; import type { HierarchyNode, InstancesNodeKey, NonGroupingHierarchyNode } from "@itwin/presentation-hierarchies"; -import type { ParentElementsPath } from "../../common/internal/Utils.js"; +import type { ParentElementsPath } from "../../../shared/internal/Utils.js"; /** * Contains utility functions for working with Classifications Tree nodes. diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/classifications-tree/internal/visibility/ClassificationsTreeVisibilityHandler.ts b/packages/tree-widget/src/tree-widget-react/trees/classifications-tree/internal/visibility/ClassificationsTreeVisibilityHandler.ts similarity index 92% rename from packages/tree-widget/src/tree-widget-react/components/trees/classifications-tree/internal/visibility/ClassificationsTreeVisibilityHandler.ts rename to packages/tree-widget/src/tree-widget-react/trees/classifications-tree/internal/visibility/ClassificationsTreeVisibilityHandler.ts index b52b2c17c..ab32e8442 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/classifications-tree/internal/visibility/ClassificationsTreeVisibilityHandler.ts +++ b/packages/tree-widget/src/tree-widget-react/trees/classifications-tree/internal/visibility/ClassificationsTreeVisibilityHandler.ts @@ -5,10 +5,10 @@ import { concat, defer, EMPTY, from, merge, mergeAll, mergeMap, of, Subject } from "rxjs"; import { assert, Guid } from "@itwin/core-bentley"; -import { HierarchyVisibilityHandlerImpl } from "../../../common/internal/hooks/UseCachedVisibility.js"; -import { fromWithRelease } from "../../../common/internal/Rxjs.js"; -import { createVisibilityStatus } from "../../../common/internal/Tooltip.js"; -import { mergeVisibilityStatuses } from "../../../common/internal/VisibilityUtils.js"; +import { HierarchyVisibilityHandlerImpl } from "../../../../shared/internal/hooks/UseCachedVisibility.js"; +import { fromWithRelease } from "../../../../shared/internal/Rxjs.js"; +import { createVisibilityStatus } from "../../../../shared/internal/Tooltip.js"; +import { mergeVisibilityStatuses } from "../../../../shared/internal/VisibilityUtils.js"; import { ClassificationsTreeNodeInternal } from "../ClassificationsTreeNodeInternal.js"; import { ClassificationsTreeVisibilityHelper } from "./ClassificationsTreeVisibilityHelper.js"; import { createClassificationsSearchResultsTree } from "./SearchResultsTree.js"; @@ -16,11 +16,11 @@ import { createClassificationsSearchResultsTree } from "./SearchResultsTree.js"; import type { Observable } from "rxjs"; import type { HierarchyNode, HierarchySearchTree } from "@itwin/presentation-hierarchies"; import type { ECClassHierarchyInspector } from "@itwin/presentation-shared"; -import type { AlwaysAndNeverDrawnElementInfoCache } from "../../../common/internal/caches/AlwaysAndNeverDrawnElementInfoCache.js"; -import type { SearchResultsTree } from "../../../common/internal/visibility/BaseSearchResultsTree.js"; -import type { TreeSpecificVisibilityHandler } from "../../../common/internal/visibility/BaseVisibilityHelper.js"; -import type { TreeWidgetViewport } from "../../../common/TreeWidgetViewport.js"; -import type { VisibilityStatus } from "../../../common/UseHierarchyVisibility.js"; +import type { AlwaysAndNeverDrawnElementInfoCache } from "../../../../shared/internal/caches/AlwaysAndNeverDrawnElementInfoCache.js"; +import type { SearchResultsTree } from "../../../../shared/internal/visibility/BaseSearchResultsTree.js"; +import type { TreeSpecificVisibilityHandler } from "../../../../shared/internal/visibility/BaseVisibilityHelper.js"; +import type { TreeWidgetViewport } from "../../../../shared/TreeWidgetViewport.js"; +import type { VisibilityStatus } from "../../../../shared/UseHierarchyVisibility.js"; import type { ClassificationsTreeIdsCache } from "../ClassificationsTreeIdsCache.js"; import type { ClassificationsTreeSearchTargets } from "./SearchResultsTree.js"; diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/classifications-tree/internal/visibility/ClassificationsTreeVisibilityHelper.ts b/packages/tree-widget/src/tree-widget-react/trees/classifications-tree/internal/visibility/ClassificationsTreeVisibilityHelper.ts similarity index 90% rename from packages/tree-widget/src/tree-widget-react/components/trees/classifications-tree/internal/visibility/ClassificationsTreeVisibilityHelper.ts rename to packages/tree-widget/src/tree-widget-react/trees/classifications-tree/internal/visibility/ClassificationsTreeVisibilityHelper.ts index edd9bf6ef..bafae8ff5 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/classifications-tree/internal/visibility/ClassificationsTreeVisibilityHelper.ts +++ b/packages/tree-widget/src/tree-widget-react/trees/classifications-tree/internal/visibility/ClassificationsTreeVisibilityHelper.ts @@ -4,14 +4,14 @@ *--------------------------------------------------------------------------------------------*/ import { defaultIfEmpty, filter, mergeMap, toArray } from "rxjs"; -import { createVisibilityStatus } from "../../../common/internal/Tooltip.js"; -import { BaseVisibilityHelper } from "../../../common/internal/visibility/BaseVisibilityHelper.js"; +import { createVisibilityStatus } from "../../../../shared/internal/Tooltip.js"; +import { BaseVisibilityHelper } from "../../../../shared/internal/visibility/BaseVisibilityHelper.js"; import type { Observable } from "rxjs"; import type { Id64Arg } from "@itwin/core-bentley"; -import type { CategoryId } from "../../../common/internal/Types.js"; -import type { BaseVisibilityHelperProps } from "../../../common/internal/visibility/BaseVisibilityHelper.js"; -import type { VisibilityStatus } from "../../../common/UseHierarchyVisibility.js"; +import type { CategoryId } from "../../../../shared/internal/Types.js"; +import type { BaseVisibilityHelperProps } from "../../../../shared/internal/visibility/BaseVisibilityHelper.js"; +import type { VisibilityStatus } from "../../../../shared/UseHierarchyVisibility.js"; import type { ClassificationsTreeIdsCache } from "../ClassificationsTreeIdsCache.js"; /** @internal */ diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/classifications-tree/internal/visibility/SearchResultsTree.ts b/packages/tree-widget/src/tree-widget-react/trees/classifications-tree/internal/visibility/SearchResultsTree.ts similarity index 95% rename from packages/tree-widget/src/tree-widget-react/components/trees/classifications-tree/internal/visibility/SearchResultsTree.ts rename to packages/tree-widget/src/tree-widget-react/trees/classifications-tree/internal/visibility/SearchResultsTree.ts index 2c0c97037..251a61d9e 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/classifications-tree/internal/visibility/SearchResultsTree.ts +++ b/packages/tree-widget/src/tree-widget-react/trees/classifications-tree/internal/visibility/SearchResultsTree.ts @@ -5,20 +5,24 @@ import { firstValueFrom } from "rxjs"; import { assert } from "@itwin/core-bentley"; -import { CLASS_NAME_Classification, CLASS_NAME_ClassificationTable } from "../../../common/internal/ClassNameDefinitions.js"; -import { ParentElementsPath } from "../../../common/internal/Utils.js"; -import { createSearchResultsTree, InternalSearchTargetElements, SearchResultsNodesHandler } from "../../../common/internal/visibility/BaseSearchResultsTree.js"; +import { CLASS_NAME_Classification, CLASS_NAME_ClassificationTable } from "../../../../shared/internal/ClassNameDefinitions.js"; +import { ParentElementsPath } from "../../../../shared/internal/Utils.js"; +import { + createSearchResultsTree, + InternalSearchTargetElements, + SearchResultsNodesHandler, +} from "../../../../shared/internal/visibility/BaseSearchResultsTree.js"; import type { Id64Set, Id64String } from "@itwin/core-bentley"; import type { HierarchySearchTree } from "@itwin/presentation-hierarchies"; import type { EC, ECClassHierarchyInspector } from "@itwin/presentation-shared"; -import type { ElementId } from "../../../common/internal/Types.js"; +import type { ElementId } from "../../../../shared/internal/Types.js"; import type { BaseSearchResultsTreeNode, SearchResultsTree, SearchResultsTreeNodeChildren, SearchResultsTreeRootNode, -} from "../../../common/internal/visibility/BaseSearchResultsTree.js"; +} from "../../../../shared/internal/visibility/BaseSearchResultsTree.js"; import type { ClassificationsTreeIdsCache } from "../ClassificationsTreeIdsCache.js"; /** @internal */ diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/external-sources-tree/ExternalSourcesTree.tsx b/packages/tree-widget/src/tree-widget-react/trees/external-sources-tree/ExternalSourcesTree.tsx similarity index 88% rename from packages/tree-widget/src/tree-widget-react/components/trees/external-sources-tree/ExternalSourcesTree.tsx rename to packages/tree-widget/src/tree-widget-react/trees/external-sources-tree/ExternalSourcesTree.tsx index d18a24096..07673886f 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/external-sources-tree/ExternalSourcesTree.tsx +++ b/packages/tree-widget/src/tree-widget-react/trees/external-sources-tree/ExternalSourcesTree.tsx @@ -9,18 +9,18 @@ import classSvg from "@stratakit/icons/bis-class.svg"; import elementSvg from "@stratakit/icons/bis-element.svg"; import documentSvg from "@stratakit/icons/document.svg"; import ecSchemaSvg from "@stratakit/icons/selection-children.svg"; -import { EmptyTreeContent } from "../common/components/EmptyTree.js"; -import { Tree } from "../common/components/Tree.js"; -import { TreeRenderer } from "../common/components/TreeRenderer.js"; -import { useGuid } from "../common/internal/hooks/UseGuid.js"; +import { EmptyTreeContent } from "../../shared/components/EmptyTree.js"; +import { Tree } from "../../shared/components/Tree.js"; +import { TreeRenderer } from "../../shared/components/TreeRenderer.js"; +import { useGuid } from "../../shared/internal/hooks/UseGuid.js"; import { ExternalSourcesTreeComponent } from "./ExternalSourcesTreeComponent.js"; import { ExternalSourcesTreeDefinition } from "./ExternalSourcesTreeDefinition.js"; import type { GuidString } from "@itwin/core-bentley"; import type { TreeNode } from "@itwin/presentation-hierarchies-react"; import type { Props } from "@itwin/presentation-shared"; -import type { TreeProps } from "../common/components/Tree.js"; -import type { ExtendedTreeRendererProps } from "../common/components/TreeRenderer.js"; +import type { TreeProps } from "../../shared/components/Tree.js"; +import type { ExtendedTreeRendererProps } from "../../shared/components/TreeRenderer.js"; /** @beta */ export type ExternalSourcesTreeProps = Pick< diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/external-sources-tree/ExternalSourcesTreeComponent.tsx b/packages/tree-widget/src/tree-widget-react/trees/external-sources-tree/ExternalSourcesTreeComponent.tsx similarity index 96% rename from packages/tree-widget/src/tree-widget-react/components/trees/external-sources-tree/ExternalSourcesTreeComponent.tsx rename to packages/tree-widget/src/tree-widget-react/trees/external-sources-tree/ExternalSourcesTreeComponent.tsx index 5c53d94a2..879d37926 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/external-sources-tree/ExternalSourcesTreeComponent.tsx +++ b/packages/tree-widget/src/tree-widget-react/trees/external-sources-tree/ExternalSourcesTreeComponent.tsx @@ -4,8 +4,8 @@ *--------------------------------------------------------------------------------------------*/ import { useActiveIModelConnection } from "@itwin/appui-react"; +import { TelemetryContextProvider } from "../../shared/UseTelemetryContext.js"; import { SelectableTree } from "../../tree-header/SelectableTree.js"; -import { TelemetryContextProvider } from "../common/UseTelemetryContext.js"; import { ExternalSourcesTree } from "./ExternalSourcesTree.js"; import type { StandardTreeLabels } from "../../TreeWidgetComponentImpl.js"; diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/external-sources-tree/ExternalSourcesTreeDefinition.ts b/packages/tree-widget/src/tree-widget-react/trees/external-sources-tree/ExternalSourcesTreeDefinition.ts similarity index 98% rename from packages/tree-widget/src/tree-widget-react/components/trees/external-sources-tree/ExternalSourcesTreeDefinition.ts rename to packages/tree-widget/src/tree-widget-react/trees/external-sources-tree/ExternalSourcesTreeDefinition.ts index 0b16a545d..9f605b709 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/external-sources-tree/ExternalSourcesTreeDefinition.ts +++ b/packages/tree-widget/src/tree-widget-react/trees/external-sources-tree/ExternalSourcesTreeDefinition.ts @@ -6,8 +6,8 @@ import { Guid } from "@itwin/core-bentley"; import { createPredicateBasedHierarchyDefinition, HierarchyNode } from "@itwin/presentation-hierarchies"; import { createBisInstanceLabelSelectClauseFactory, ECSql } from "@itwin/presentation-shared"; -import { CLASS_NAME_GeometricElement } from "../common/internal/ClassNameDefinitions.js"; -import { createWhereClause } from "../common/internal/Utils.js"; +import { CLASS_NAME_GeometricElement } from "../../shared/internal/ClassNameDefinitions.js"; +import { createWhereClause } from "../../shared/internal/Utils.js"; import type { GuidString } from "@itwin/core-bentley"; import type { diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/imodel-content-tree/IModelContentTree.tsx b/packages/tree-widget/src/tree-widget-react/trees/imodel-content-tree/IModelContentTree.tsx similarity index 90% rename from packages/tree-widget/src/tree-widget-react/components/trees/imodel-content-tree/IModelContentTree.tsx rename to packages/tree-widget/src/tree-widget-react/trees/imodel-content-tree/IModelContentTree.tsx index 75b95f6b8..9f7338579 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/imodel-content-tree/IModelContentTree.tsx +++ b/packages/tree-widget/src/tree-widget-react/trees/imodel-content-tree/IModelContentTree.tsx @@ -12,17 +12,17 @@ import subjectSvg from "@stratakit/icons/bis-subject.svg"; import groupSvg from "@stratakit/icons/group.svg"; import modelSvg from "@stratakit/icons/model-cube.svg"; import hierarchyTreeSvg from "@stratakit/icons/selection-children.svg"; -import { EmptyTreeContent } from "../common/components/EmptyTree.js"; -import { Tree } from "../common/components/Tree.js"; -import { TreeRenderer } from "../common/components/TreeRenderer.js"; -import { useGuid } from "../common/internal/hooks/UseGuid.js"; +import { EmptyTreeContent } from "../../shared/components/EmptyTree.js"; +import { Tree } from "../../shared/components/Tree.js"; +import { TreeRenderer } from "../../shared/components/TreeRenderer.js"; +import { useGuid } from "../../shared/internal/hooks/UseGuid.js"; import { IModelContentTreeComponent } from "./IModelContentTreeComponent.js"; import { defaultHierarchyConfiguration, IModelContentTreeDefinition } from "./IModelContentTreeDefinition.js"; import { IModelContentTreeIdsCache } from "./internal/IModelContentTreeIdsCache.js"; import type { TreeNode } from "@itwin/presentation-hierarchies-react"; -import type { TreeProps } from "../common/components/Tree.js"; -import type { ExtendedTreeRendererProps } from "../common/components/TreeRenderer.js"; +import type { TreeProps } from "../../shared/components/Tree.js"; +import type { ExtendedTreeRendererProps } from "../../shared/components/TreeRenderer.js"; import type { IModelContentTreeHierarchyConfiguration } from "./IModelContentTreeDefinition.js"; /** @beta */ diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/imodel-content-tree/IModelContentTreeComponent.tsx b/packages/tree-widget/src/tree-widget-react/trees/imodel-content-tree/IModelContentTreeComponent.tsx similarity index 96% rename from packages/tree-widget/src/tree-widget-react/components/trees/imodel-content-tree/IModelContentTreeComponent.tsx rename to packages/tree-widget/src/tree-widget-react/trees/imodel-content-tree/IModelContentTreeComponent.tsx index 5068ab5aa..31b9bc298 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/imodel-content-tree/IModelContentTreeComponent.tsx +++ b/packages/tree-widget/src/tree-widget-react/trees/imodel-content-tree/IModelContentTreeComponent.tsx @@ -4,8 +4,8 @@ *--------------------------------------------------------------------------------------------*/ import { useActiveIModelConnection } from "@itwin/appui-react"; +import { TelemetryContextProvider } from "../../shared/UseTelemetryContext.js"; import { SelectableTree } from "../../tree-header/SelectableTree.js"; -import { TelemetryContextProvider } from "../common/UseTelemetryContext.js"; import { IModelContentTree } from "./IModelContentTree.js"; import type { StandardTreeLabels } from "../../TreeWidgetComponentImpl.js"; diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/imodel-content-tree/IModelContentTreeDefinition.ts b/packages/tree-widget/src/tree-widget-react/trees/imodel-content-tree/IModelContentTreeDefinition.ts similarity index 99% rename from packages/tree-widget/src/tree-widget-react/components/trees/imodel-content-tree/IModelContentTreeDefinition.ts rename to packages/tree-widget/src/tree-widget-react/trees/imodel-content-tree/IModelContentTreeDefinition.ts index 1c2a790ce..f6606371f 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/imodel-content-tree/IModelContentTreeDefinition.ts +++ b/packages/tree-widget/src/tree-widget-react/trees/imodel-content-tree/IModelContentTreeDefinition.ts @@ -15,8 +15,8 @@ import { CLASS_NAME_Model, CLASS_NAME_SpatialCategory, CLASS_NAME_Subject, -} from "../common/internal/ClassNameDefinitions.js"; -import { createIdsSelector, createWhereClause, getClassesByView, parseIdsSelectorResult } from "../common/internal/Utils.js"; +} from "../../shared/internal/ClassNameDefinitions.js"; +import { createIdsSelector, createWhereClause, getClassesByView, parseIdsSelectorResult } from "../../shared/internal/Utils.js"; import type { DefineGenericNodeChildHierarchyLevelProps, diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/imodel-content-tree/internal/IModelContentTreeIdsCache.ts b/packages/tree-widget/src/tree-widget-react/trees/imodel-content-tree/internal/IModelContentTreeIdsCache.ts similarity index 97% rename from packages/tree-widget/src/tree-widget-react/components/trees/imodel-content-tree/internal/IModelContentTreeIdsCache.ts rename to packages/tree-widget/src/tree-widget-react/trees/imodel-content-tree/internal/IModelContentTreeIdsCache.ts index 3c775462b..ac970f287 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/imodel-content-tree/internal/IModelContentTreeIdsCache.ts +++ b/packages/tree-widget/src/tree-widget-react/trees/imodel-content-tree/internal/IModelContentTreeIdsCache.ts @@ -10,13 +10,13 @@ import { CLASS_NAME_InformationPartitionElement, CLASS_NAME_Model, CLASS_NAME_Subject, -} from "../../common/internal/ClassNameDefinitions.js"; -import { isBeSqliteInterruptError } from "../../common/internal/hooks/UseErrorState.js"; -import { createWhereClause, getOrCreate } from "../../common/internal/Utils.js"; +} from "../../../shared/internal/ClassNameDefinitions.js"; +import { isBeSqliteInterruptError } from "../../../shared/internal/hooks/UseErrorState.js"; +import { createWhereClause, getOrCreate } from "../../../shared/internal/Utils.js"; import type { GuidString, Id64Array, Id64Set, Id64String } from "@itwin/core-bentley"; import type { LimitingECSqlQueryExecutor } from "@itwin/presentation-hierarchies"; -import type { ModelId, SubjectId } from "../../common/internal/Types.js"; +import type { ModelId, SubjectId } from "../../../shared/internal/Types.js"; interface SubjectInfo { parentSubjectId: Id64String | undefined; diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/index.ts b/packages/tree-widget/src/tree-widget-react/trees/index.ts similarity index 74% rename from packages/tree-widget/src/tree-widget-react/components/trees/index.ts rename to packages/tree-widget/src/tree-widget-react/trees/index.ts index 99cf24809..c03ee9e75 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/index.ts +++ b/packages/tree-widget/src/tree-widget-react/trees/index.ts @@ -27,20 +27,20 @@ export { IModelContentTreeIcon } from "./imodel-content-tree/IModelContentTree.j export { ExternalSourcesTreeComponent } from "./external-sources-tree/ExternalSourcesTreeComponent.js"; export { ExternalSourcesTreeIcon } from "./external-sources-tree/ExternalSourcesTree.js"; -export { FocusedInstancesContextProvider, useFocusedInstancesContext } from "./common/FocusedInstancesContext.js"; - -export { Tree } from "./common/components/Tree.js"; -export type { TreeWidgetViewport } from "./common/TreeWidgetViewport.js"; -export { createTreeWidgetViewport } from "./common/TreeWidgetViewport.js"; -export { VisibilityTree } from "./common/components/VisibilityTree.js"; -export { VisibilityAction } from "./common/components/TreeNodeVisibilityButton.js"; -export { TreeRenderer } from "./common/components/TreeRenderer.js"; -export { VisibilityTreeRenderer } from "./common/components/VisibilityTreeRenderer.js"; -export { SkeletonTree } from "./common/components/SkeletonTree.js"; -export type { HierarchyVisibilityHandler, VisibilityStatus } from "./common/UseHierarchyVisibility.js"; -export { SharedTreeContextProvider } from "./common/SharedTreeContextProvider.js"; -export { TelemetryContextProvider } from "./common/UseTelemetryContext.js"; -export { SearchLimitExceededError } from "./common/TreeErrors.js"; +export { FocusedInstancesContextProvider, useFocusedInstancesContext } from "../shared/FocusedInstancesContext.js"; + +export { Tree } from "../shared/components/Tree.js"; +export type { TreeWidgetViewport } from "../shared/TreeWidgetViewport.js"; +export { createTreeWidgetViewport } from "../shared/TreeWidgetViewport.js"; +export { VisibilityTree } from "../shared/components/VisibilityTree.js"; +export { VisibilityAction } from "../shared/components/TreeNodeVisibilityButton.js"; +export { TreeRenderer } from "../shared/components/TreeRenderer.js"; +export { VisibilityTreeRenderer } from "../shared/components/VisibilityTreeRenderer.js"; +export { SkeletonTree } from "../shared/components/SkeletonTree.js"; +export type { HierarchyVisibilityHandler, VisibilityStatus } from "../shared/UseHierarchyVisibility.js"; +export { SharedTreeContextProvider } from "../shared/SharedTreeContextProvider.js"; +export { TelemetryContextProvider } from "../shared/UseTelemetryContext.js"; +export { SearchLimitExceededError } from "../shared/TreeErrors.js"; export type { ModelsTreeVisibilityHandlerOverrides } from "./models-tree/internal/visibility/ModelsTreeVisibilityHandler.js"; diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/models-tree/ModelsTree.tsx b/packages/tree-widget/src/tree-widget-react/trees/models-tree/ModelsTree.tsx similarity index 86% rename from packages/tree-widget/src/tree-widget-react/components/trees/models-tree/ModelsTree.tsx rename to packages/tree-widget/src/tree-widget-react/trees/models-tree/ModelsTree.tsx index 6d67076cb..b46a9dc32 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/models-tree/ModelsTree.tsx +++ b/packages/tree-widget/src/tree-widget-react/trees/models-tree/ModelsTree.tsx @@ -3,12 +3,12 @@ * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ -import { VisibilityTree } from "../common/components/VisibilityTree.js"; -import { VisibilityTreeRenderer } from "../common/components/VisibilityTreeRenderer.js"; +import { VisibilityTree } from "../../shared/components/VisibilityTree.js"; +import { VisibilityTreeRenderer } from "../../shared/components/VisibilityTreeRenderer.js"; import { useModelsTree } from "./UseModelsTree.js"; -import type { VisibilityTreeProps } from "../common/components/VisibilityTree.js"; -import type { ExtendedVisibilityTreeRendererProps } from "../common/components/VisibilityTreeRenderer.js"; +import type { VisibilityTreeProps } from "../../shared/components/VisibilityTree.js"; +import type { ExtendedVisibilityTreeRendererProps } from "../../shared/components/VisibilityTreeRenderer.js"; import type { UseModelsTreeProps } from "./UseModelsTree.js"; /** @beta */ diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/models-tree/ModelsTreeButtons.tsx b/packages/tree-widget/src/tree-widget-react/trees/models-tree/ModelsTreeButtons.tsx similarity index 94% rename from packages/tree-widget/src/tree-widget-react/components/trees/models-tree/ModelsTreeButtons.tsx rename to packages/tree-widget/src/tree-widget-react/trees/models-tree/ModelsTreeButtons.tsx index 40e9d7a2f..cb60e1567 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/models-tree/ModelsTreeButtons.tsx +++ b/packages/tree-widget/src/tree-widget-react/trees/models-tree/ModelsTreeButtons.tsx @@ -12,20 +12,20 @@ import focusModeSvg from "@stratakit/icons/cursor-click.svg"; import visibilityHideSvg from "@stratakit/icons/visibility-hide.svg"; import visibilityInvertSvg from "@stratakit/icons/visibility-invert.svg"; import visibilityShowSvg from "@stratakit/icons/visibility-show.svg"; -import { useTranslation } from "../common/components/LocalizationContext.js"; -import { useFocusedInstancesContext } from "../common/FocusedInstancesContext.js"; -import { useSharedTreeContextInternal } from "../common/internal/SharedTreeContextProviderInternal.js"; -import { getClassesByView } from "../common/internal/Utils.js"; -import { invertAllModels, showAll } from "../common/internal/VisibilityUtils.js"; +import { useTranslation } from "../../shared/components/LocalizationContext.js"; +import { useFocusedInstancesContext } from "../../shared/FocusedInstancesContext.js"; +import { useSharedTreeContextInternal } from "../../shared/internal/SharedTreeContextProviderInternal.js"; +import { getClassesByView } from "../../shared/internal/Utils.js"; +import { invertAllModels, showAll } from "../../shared/internal/VisibilityUtils.js"; import type { ReactElement } from "react"; import type { Observable } from "rxjs"; import type { Id64String } from "@itwin/core-bentley"; import type { IModelConnection } from "@itwin/core-frontend"; +import type { BaseIdsCache } from "../../shared/internal/caches/BaseIdsCache.js"; +import type { CategoryInfosMap } from "../../shared/internal/VisibilityUtils.js"; +import type { TreeWidgetViewport } from "../../shared/TreeWidgetViewport.js"; import type { TreeToolbarButtonProps } from "../../tree-header/SelectableTree.js"; -import type { BaseIdsCache } from "../common/internal/caches/BaseIdsCache.js"; -import type { CategoryInfosMap } from "../common/internal/VisibilityUtils.js"; -import type { TreeWidgetViewport } from "../common/TreeWidgetViewport.js"; /** * Information about a single Model. diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/models-tree/ModelsTreeComponent.tsx b/packages/tree-widget/src/tree-widget-react/trees/models-tree/ModelsTreeComponent.tsx similarity index 94% rename from packages/tree-widget/src/tree-widget-react/components/trees/models-tree/ModelsTreeComponent.tsx rename to packages/tree-widget/src/tree-widget-react/trees/models-tree/ModelsTreeComponent.tsx index 2104edf94..fcefbac88 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/models-tree/ModelsTreeComponent.tsx +++ b/packages/tree-widget/src/tree-widget-react/trees/models-tree/ModelsTreeComponent.tsx @@ -6,12 +6,12 @@ import { Fragment, useEffect } from "react"; import { useActiveIModelConnection } from "@itwin/appui-react"; import { Skeleton } from "@stratakit/bricks"; +import { FocusedInstancesContextProvider, useFocusedInstancesContext } from "../../shared/FocusedInstancesContext.js"; +import { useActiveTreeWidgetViewport } from "../../shared/internal/hooks/UseActiveTreeWidgetViewport.js"; +import { SharedTreeContextProviderInternal, useSharedTreeContextInternal } from "../../shared/internal/SharedTreeContextProviderInternal.js"; +import { getClassesByView } from "../../shared/internal/Utils.js"; +import { TelemetryContextProvider } from "../../shared/UseTelemetryContext.js"; import { SelectableTree } from "../../tree-header/SelectableTree.js"; -import { FocusedInstancesContextProvider, useFocusedInstancesContext } from "../common/FocusedInstancesContext.js"; -import { useActiveTreeWidgetViewport } from "../common/internal/hooks/UseActiveTreeWidgetViewport.js"; -import { SharedTreeContextProviderInternal, useSharedTreeContextInternal } from "../common/internal/SharedTreeContextProviderInternal.js"; -import { getClassesByView } from "../common/internal/Utils.js"; -import { TelemetryContextProvider } from "../common/UseTelemetryContext.js"; import { ModelsTree } from "./ModelsTree.js"; import { HideAllButton, @@ -25,8 +25,8 @@ import { import type { ReactNode } from "react"; import type { IModelConnection } from "@itwin/core-frontend"; +import type { TreeWidgetViewport } from "../../shared/TreeWidgetViewport.js"; import type { StandardTreeLabels } from "../../TreeWidgetComponentImpl.js"; -import type { TreeWidgetViewport } from "../common/TreeWidgetViewport.js"; import type { ModelsTreeProps } from "./ModelsTree.js"; import type { ModelsTreeHeaderButtonProps, ModelsTreeHeaderButtonType } from "./ModelsTreeButtons.js"; diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/models-tree/ModelsTreeDefinition.ts b/packages/tree-widget/src/tree-widget-react/trees/models-tree/ModelsTreeDefinition.ts similarity index 99% rename from packages/tree-widget/src/tree-widget-react/components/trees/models-tree/ModelsTreeDefinition.ts rename to packages/tree-widget/src/tree-widget-react/trees/models-tree/ModelsTreeDefinition.ts index 87a8813d5..f6b99d9d8 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/models-tree/ModelsTreeDefinition.ts +++ b/packages/tree-widget/src/tree-widget-react/trees/models-tree/ModelsTreeDefinition.ts @@ -8,7 +8,6 @@ import { assert, Guid } from "@itwin/core-bentley"; import { IModel } from "@itwin/core-common"; import { createPredicateBasedHierarchyDefinition, ProcessedHierarchyNode } from "@itwin/presentation-hierarchies"; import { createBisInstanceLabelSelectClauseFactory, ECSql, parseFullClassName } from "@itwin/presentation-shared"; -import { eachValueFrom } from "../../utils/EachValueFrom.js"; import { CLASS_NAME_Element, CLASS_NAME_GeometricElement3d, @@ -18,9 +17,10 @@ import { CLASS_NAME_Model, CLASS_NAME_SpatialCategory, CLASS_NAME_Subject, -} from "../common/internal/ClassNameDefinitions.js"; -import { catchBeSQLiteInterrupts } from "../common/internal/hooks/UseErrorState.js"; -import { fromWithRelease, releaseMainThreadOnItemsCount } from "../common/internal/Rxjs.js"; +} from "../../shared/internal/ClassNameDefinitions.js"; +import { eachValueFrom } from "../../shared/internal/EachValueFrom.js"; +import { catchBeSQLiteInterrupts } from "../../shared/internal/hooks/UseErrorState.js"; +import { fromWithRelease, releaseMainThreadOnItemsCount } from "../../shared/internal/Rxjs.js"; import { createExcludedClassesClause, createIdsSelector, @@ -29,8 +29,8 @@ import { groupingNodeDataFromChildren, ParentElementsPath, parseIdsSelectorResult, -} from "../common/internal/Utils.js"; -import { SearchLimitExceededError } from "../common/TreeErrors.js"; +} from "../../shared/internal/Utils.js"; +import { SearchLimitExceededError } from "../../shared/TreeErrors.js"; import { ModelsTreeNodeInternal } from "./internal/ModelsTreeNodeInternal.js"; import type { Observable, ObservedValueOf, OperatorFunction } from "rxjs"; @@ -60,8 +60,8 @@ import type { InstanceKey, Props, } from "@itwin/presentation-shared"; -import type { CategoryId } from "../common/internal/Types.js"; -import type { DeepRequired } from "../common/internal/Utils.js"; +import type { CategoryId } from "../../shared/internal/Types.js"; +import type { DeepRequired } from "../../shared/internal/Utils.js"; import type { ModelsTreeIdsCache } from "./internal/ModelsTreeIdsCache.js"; import type { CategoryNodeProps, ElementNodeProps } from "./internal/ModelsTreeNodeInternal.js"; diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/models-tree/ModelsTreeIcon.tsx b/packages/tree-widget/src/tree-widget-react/trees/models-tree/ModelsTreeIcon.tsx similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/models-tree/ModelsTreeIcon.tsx rename to packages/tree-widget/src/tree-widget-react/trees/models-tree/ModelsTreeIcon.tsx diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/models-tree/ModelsTreeNode.ts b/packages/tree-widget/src/tree-widget-react/trees/models-tree/ModelsTreeNode.ts similarity index 100% rename from packages/tree-widget/src/tree-widget-react/components/trees/models-tree/ModelsTreeNode.ts rename to packages/tree-widget/src/tree-widget-react/trees/models-tree/ModelsTreeNode.ts diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/models-tree/UseModelsTree.tsx b/packages/tree-widget/src/tree-widget-react/trees/models-tree/UseModelsTree.tsx similarity index 93% rename from packages/tree-widget/src/tree-widget-react/components/trees/models-tree/UseModelsTree.tsx rename to packages/tree-widget/src/tree-widget-react/trees/models-tree/UseModelsTree.tsx index 6e9e2d2e2..9341cd0e0 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/models-tree/UseModelsTree.tsx +++ b/packages/tree-widget/src/tree-widget-react/trees/models-tree/UseModelsTree.tsx @@ -14,11 +14,11 @@ import { TooManyInstancesFocused, TooManySearchMatches, UnknownInstanceFocusError, -} from "../common/components/EmptyTree.js"; -import { useCachedVisibility } from "../common/internal/hooks/UseCachedVisibility.js"; -import { useGuid } from "../common/internal/hooks/UseGuid.js"; -import { useSharedTreeContextInternal } from "../common/internal/SharedTreeContextProviderInternal.js"; -import { mergeWithDefaults, stableStringify } from "../common/internal/Utils.js"; +} from "../../shared/components/EmptyTree.js"; +import { useCachedVisibility } from "../../shared/internal/hooks/UseCachedVisibility.js"; +import { useGuid } from "../../shared/internal/hooks/UseGuid.js"; +import { useSharedTreeContextInternal } from "../../shared/internal/SharedTreeContextProviderInternal.js"; +import { mergeWithDefaults, stableStringify } from "../../shared/internal/Utils.js"; import { ModelsTreeIdsCache } from "./internal/ModelsTreeIdsCache.js"; import { useSearchPaths } from "./internal/UseSearchPaths.js"; import { ModelsTreeVisibilityHandler } from "./internal/visibility/ModelsTreeVisibilityHandler.js"; @@ -33,11 +33,11 @@ import type { IModelConnection } from "@itwin/core-frontend"; import type { HierarchySearchTree } from "@itwin/presentation-hierarchies"; import type { TreeNode } from "@itwin/presentation-hierarchies-react"; import type { InstanceKey } from "@itwin/presentation-shared"; -import type { VisibilityTreeProps } from "../common/components/VisibilityTree.js"; -import type { ExtendedVisibilityTreeRendererProps } from "../common/components/VisibilityTreeRenderer.js"; -import type { CreateSearchResultsTreeProps, CreateTreeSpecificVisibilityHandlerProps } from "../common/internal/hooks/UseCachedVisibility.js"; -import type { SearchResultsTree } from "../common/internal/visibility/BaseSearchResultsTree.js"; -import type { TreeWidgetViewport } from "../common/TreeWidgetViewport.js"; +import type { VisibilityTreeProps } from "../../shared/components/VisibilityTree.js"; +import type { ExtendedVisibilityTreeRendererProps } from "../../shared/components/VisibilityTreeRenderer.js"; +import type { CreateSearchResultsTreeProps, CreateTreeSpecificVisibilityHandlerProps } from "../../shared/internal/hooks/UseCachedVisibility.js"; +import type { SearchResultsTree } from "../../shared/internal/visibility/BaseSearchResultsTree.js"; +import type { TreeWidgetViewport } from "../../shared/TreeWidgetViewport.js"; import type { ModelsTreeSearchError, ModelsTreeSubTreeError } from "./internal/UseSearchPaths.js"; import type { ModelsTreeVisibilityHandlerOverrides } from "./internal/visibility/ModelsTreeVisibilityHandler.js"; import type { ModelsTreeSearchTargets } from "./internal/visibility/SearchResultsTree.js"; diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/models-tree/internal/ModelsTreeIdsCache.ts b/packages/tree-widget/src/tree-widget-react/trees/models-tree/internal/ModelsTreeIdsCache.ts similarity index 96% rename from packages/tree-widget/src/tree-widget-react/components/trees/models-tree/internal/ModelsTreeIdsCache.ts rename to packages/tree-widget/src/tree-widget-react/trees/models-tree/internal/ModelsTreeIdsCache.ts index 7a49ece9d..8924ec945 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/models-tree/internal/ModelsTreeIdsCache.ts +++ b/packages/tree-widget/src/tree-widget-react/trees/models-tree/internal/ModelsTreeIdsCache.ts @@ -6,17 +6,17 @@ import { defer, filter, forkJoin, map, mergeMap, of, reduce, shareReplay } from "rxjs"; import { assert, Guid, Id64 } from "@itwin/core-bentley"; import { IModel } from "@itwin/core-common"; -import { BaseIdsCacheImpl } from "../../common/internal/caches/BaseIdsCache.js"; -import { CLASS_NAME_GeometricModel3d, CLASS_NAME_InformationPartitionElement, CLASS_NAME_Subject } from "../../common/internal/ClassNameDefinitions.js"; -import { catchBeSQLiteInterrupts } from "../../common/internal/hooks/UseErrorState.js"; -import { createWhereClause, getOrCreate } from "../../common/internal/Utils.js"; +import { BaseIdsCacheImpl } from "../../../shared/internal/caches/BaseIdsCache.js"; +import { CLASS_NAME_GeometricModel3d, CLASS_NAME_InformationPartitionElement, CLASS_NAME_Subject } from "../../../shared/internal/ClassNameDefinitions.js"; +import { catchBeSQLiteInterrupts } from "../../../shared/internal/hooks/UseErrorState.js"; +import { createWhereClause, getOrCreate } from "../../../shared/internal/Utils.js"; import type { Observable } from "rxjs"; import type { GuidString, Id64Arg, Id64Array, Id64Set, Id64String } from "@itwin/core-bentley"; import type { HierarchyNodeIdentifiersPath, LimitingECSqlQueryExecutor } from "@itwin/presentation-hierarchies"; import type { InstanceKey } from "@itwin/presentation-shared"; -import type { BaseIdsCacheImplProps } from "../../common/internal/caches/BaseIdsCache.js"; -import type { ModelId, SubjectId } from "../../common/internal/Types.js"; +import type { BaseIdsCacheImplProps } from "../../../shared/internal/caches/BaseIdsCache.js"; +import type { ModelId, SubjectId } from "../../../shared/internal/Types.js"; import type { RequiredModelsTreeHierarchyConfiguration } from "../ModelsTreeDefinition.js"; /** diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/models-tree/internal/ModelsTreeNodeInternal.ts b/packages/tree-widget/src/tree-widget-react/trees/models-tree/internal/ModelsTreeNodeInternal.ts similarity index 95% rename from packages/tree-widget/src/tree-widget-react/components/trees/models-tree/internal/ModelsTreeNodeInternal.ts rename to packages/tree-widget/src/tree-widget-react/trees/models-tree/internal/ModelsTreeNodeInternal.ts index 53630d370..657f6cce7 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/models-tree/internal/ModelsTreeNodeInternal.ts +++ b/packages/tree-widget/src/tree-widget-react/trees/models-tree/internal/ModelsTreeNodeInternal.ts @@ -7,8 +7,8 @@ import { ModelsTreeNode } from "../ModelsTreeNode.js"; import type { Id64Array, Id64String } from "@itwin/core-bentley"; import type { ClassGroupingNodeKey, GroupingHierarchyNode, HierarchyNode, InstancesNodeKey, NonGroupingHierarchyNode } from "@itwin/presentation-hierarchies"; -import type { ElementId } from "../../common/internal/Types.js"; -import type { ParentElementsPath } from "../../common/internal/Utils.js"; +import type { ElementId } from "../../../shared/internal/Types.js"; +import type { ParentElementsPath } from "../../../shared/internal/Utils.js"; /** * Contains utility functions for working with Models Tree nodes. diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/models-tree/internal/UseSearchPaths.ts b/packages/tree-widget/src/tree-widget-react/trees/models-tree/internal/UseSearchPaths.ts similarity index 96% rename from packages/tree-widget/src/tree-widget-react/components/trees/models-tree/internal/UseSearchPaths.ts rename to packages/tree-widget/src/tree-widget-react/trees/models-tree/internal/UseSearchPaths.ts index b682f8604..3ed253cb8 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/models-tree/internal/UseSearchPaths.ts +++ b/packages/tree-widget/src/tree-widget-react/trees/models-tree/internal/UseSearchPaths.ts @@ -6,18 +6,18 @@ import { useEffect, useMemo, useState } from "react"; import { firstValueFrom } from "rxjs"; import { HierarchyNode, HierarchyNodeIdentifier, HierarchyNodeKey, HierarchySearchTree } from "@itwin/presentation-hierarchies"; -import { useFocusedInstancesContext } from "../../common/FocusedInstancesContext.js"; -import { CLASS_NAME_GeometricModel3d, CLASS_NAME_Subject } from "../../common/internal/ClassNameDefinitions.js"; -import { SearchLimitExceededError } from "../../common/TreeErrors.js"; -import { useTelemetryContext } from "../../common/UseTelemetryContext.js"; -import { joinHierarchySearchTrees } from "../../common/Utils.js"; +import { useFocusedInstancesContext } from "../../../shared/FocusedInstancesContext.js"; +import { CLASS_NAME_GeometricModel3d, CLASS_NAME_Subject } from "../../../shared/internal/ClassNameDefinitions.js"; +import { SearchLimitExceededError } from "../../../shared/TreeErrors.js"; +import { useTelemetryContext } from "../../../shared/UseTelemetryContext.js"; +import { joinHierarchySearchTrees } from "../../../shared/Utils.js"; import { ModelsTreeDefinition } from "../ModelsTreeDefinition.js"; import { ModelsTreeNode } from "../ModelsTreeNode.js"; import type { GuidString, Id64Array, Id64String } from "@itwin/core-bentley"; import type { GroupingHierarchyNode, InstancesNodeKey } from "@itwin/presentation-hierarchies"; import type { ECClassHierarchyInspector, InstanceKey } from "@itwin/presentation-shared"; -import type { VisibilityTreeProps } from "../../common/components/VisibilityTree.js"; +import type { VisibilityTreeProps } from "../../../shared/components/VisibilityTree.js"; import type { ClassGroupingHierarchyNode, ElementsGroupInfo, RequiredModelsTreeHierarchyConfiguration } from "../ModelsTreeDefinition.js"; import type { ModelsTreeIdsCache } from "./ModelsTreeIdsCache.js"; diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/models-tree/internal/visibility/ModelsTreeVisibilityHandler.ts b/packages/tree-widget/src/tree-widget-react/trees/models-tree/internal/visibility/ModelsTreeVisibilityHandler.ts similarity index 94% rename from packages/tree-widget/src/tree-widget-react/components/trees/models-tree/internal/visibility/ModelsTreeVisibilityHandler.ts rename to packages/tree-widget/src/tree-widget-react/trees/models-tree/internal/visibility/ModelsTreeVisibilityHandler.ts index f38680006..ecc40a494 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/models-tree/internal/visibility/ModelsTreeVisibilityHandler.ts +++ b/packages/tree-widget/src/tree-widget-react/trees/models-tree/internal/visibility/ModelsTreeVisibilityHandler.ts @@ -5,10 +5,10 @@ import { concat, defer, EMPTY, from, merge, mergeAll, mergeMap, of, Subject } from "rxjs"; import { assert, Guid } from "@itwin/core-bentley"; -import { HierarchyVisibilityHandlerImpl } from "../../../common/internal/hooks/UseCachedVisibility.js"; -import { fromWithRelease } from "../../../common/internal/Rxjs.js"; -import { createVisibilityStatus } from "../../../common/internal/Tooltip.js"; -import { mergeVisibilityStatuses } from "../../../common/internal/VisibilityUtils.js"; +import { HierarchyVisibilityHandlerImpl } from "../../../../shared/internal/hooks/UseCachedVisibility.js"; +import { fromWithRelease } from "../../../../shared/internal/Rxjs.js"; +import { createVisibilityStatus } from "../../../../shared/internal/Tooltip.js"; +import { mergeVisibilityStatuses } from "../../../../shared/internal/VisibilityUtils.js"; import { ModelsTreeNodeInternal } from "../ModelsTreeNodeInternal.js"; import { ModelsTreeVisibilityHelper } from "./ModelsTreeVisibilityHelper.js"; import { createModelsSearchResultsTree } from "./SearchResultsTree.js"; @@ -17,15 +17,15 @@ import type { Observable } from "rxjs"; import type { Id64Arg } from "@itwin/core-bentley"; import type { GroupingHierarchyNode, HierarchyNode, HierarchySearchTree } from "@itwin/presentation-hierarchies"; import type { ECClassHierarchyInspector } from "@itwin/presentation-shared"; -import type { AlwaysAndNeverDrawnElementInfoCache } from "../../../common/internal/caches/AlwaysAndNeverDrawnElementInfoCache.js"; -import type { SearchResultsTree } from "../../../common/internal/visibility/BaseSearchResultsTree.js"; -import type { BaseTreeVisibilityHandlerOverrides, TreeSpecificVisibilityHandler } from "../../../common/internal/visibility/BaseVisibilityHelper.js"; -import type { TreeWidgetViewport } from "../../../common/TreeWidgetViewport.js"; +import type { AlwaysAndNeverDrawnElementInfoCache } from "../../../../shared/internal/caches/AlwaysAndNeverDrawnElementInfoCache.js"; +import type { SearchResultsTree } from "../../../../shared/internal/visibility/BaseSearchResultsTree.js"; +import type { BaseTreeVisibilityHandlerOverrides, TreeSpecificVisibilityHandler } from "../../../../shared/internal/visibility/BaseVisibilityHelper.js"; +import type { TreeWidgetViewport } from "../../../../shared/TreeWidgetViewport.js"; import type { HierarchyVisibilityHandlerOverridableMethod, HierarchyVisibilityOverrideHandler, VisibilityStatus, -} from "../../../common/UseHierarchyVisibility.js"; +} from "../../../../shared/UseHierarchyVisibility.js"; import type { ModelsTreeIdsCache } from "../ModelsTreeIdsCache.js"; import type { ModelsTreeSearchTargets } from "./SearchResultsTree.js"; diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/models-tree/internal/visibility/ModelsTreeVisibilityHelper.ts b/packages/tree-widget/src/tree-widget-react/trees/models-tree/internal/visibility/ModelsTreeVisibilityHelper.ts similarity index 89% rename from packages/tree-widget/src/tree-widget-react/components/trees/models-tree/internal/visibility/ModelsTreeVisibilityHelper.ts rename to packages/tree-widget/src/tree-widget-react/trees/models-tree/internal/visibility/ModelsTreeVisibilityHelper.ts index b8790f008..225a4602f 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/models-tree/internal/visibility/ModelsTreeVisibilityHelper.ts +++ b/packages/tree-widget/src/tree-widget-react/trees/models-tree/internal/visibility/ModelsTreeVisibilityHelper.ts @@ -4,14 +4,14 @@ *--------------------------------------------------------------------------------------------*/ import { defaultIfEmpty, defer, mergeMap } from "rxjs"; -import { createVisibilityStatus } from "../../../common/internal/Tooltip.js"; -import { BaseVisibilityHelper } from "../../../common/internal/visibility/BaseVisibilityHelper.js"; -import { mergeVisibilityStatuses } from "../../../common/internal/VisibilityUtils.js"; +import { createVisibilityStatus } from "../../../../shared/internal/Tooltip.js"; +import { BaseVisibilityHelper } from "../../../../shared/internal/visibility/BaseVisibilityHelper.js"; +import { mergeVisibilityStatuses } from "../../../../shared/internal/VisibilityUtils.js"; import type { Observable } from "rxjs"; import type { Id64Arg } from "@itwin/core-bentley"; -import type { BaseVisibilityHelperProps } from "../../../common/internal/visibility/BaseVisibilityHelper.js"; -import type { VisibilityStatus } from "../../../common/UseHierarchyVisibility.js"; +import type { BaseVisibilityHelperProps } from "../../../../shared/internal/visibility/BaseVisibilityHelper.js"; +import type { VisibilityStatus } from "../../../../shared/UseHierarchyVisibility.js"; import type { ModelsTreeIdsCache } from "../ModelsTreeIdsCache.js"; import type { ElementClassGroupingNodeProps } from "../ModelsTreeNodeInternal.js"; import type { ModelsTreeVisibilityHandlerOverrides } from "./ModelsTreeVisibilityHandler.js"; diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/models-tree/internal/visibility/SearchResultsTree.ts b/packages/tree-widget/src/tree-widget-react/trees/models-tree/internal/visibility/SearchResultsTree.ts similarity index 97% rename from packages/tree-widget/src/tree-widget-react/components/trees/models-tree/internal/visibility/SearchResultsTree.ts rename to packages/tree-widget/src/tree-widget-react/trees/models-tree/internal/visibility/SearchResultsTree.ts index cbd00b596..0dd938d7a 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/models-tree/internal/visibility/SearchResultsTree.ts +++ b/packages/tree-widget/src/tree-widget-react/trees/models-tree/internal/visibility/SearchResultsTree.ts @@ -5,25 +5,25 @@ import { firstValueFrom } from "rxjs"; import { assert } from "@itwin/core-bentley"; -import { CLASS_NAME_Category, CLASS_NAME_Model, CLASS_NAME_Subject } from "../../../common/internal/ClassNameDefinitions.js"; -import { getOrCreate, ParentElementsPath } from "../../../common/internal/Utils.js"; +import { CLASS_NAME_Category, CLASS_NAME_Model, CLASS_NAME_Subject } from "../../../../shared/internal/ClassNameDefinitions.js"; +import { getOrCreate, ParentElementsPath } from "../../../../shared/internal/Utils.js"; import { createSearchResultsTree, InternalSearchTargetCategories, InternalSearchTargetElements, SearchResultsNodesHandler, -} from "../../../common/internal/visibility/BaseSearchResultsTree.js"; +} from "../../../../shared/internal/visibility/BaseSearchResultsTree.js"; import type { Id64Set, Id64String } from "@itwin/core-bentley"; import type { HierarchySearchTree } from "@itwin/presentation-hierarchies"; import type { EC, ECClassHierarchyInspector } from "@itwin/presentation-shared"; -import type { CategoryId, ElementId } from "../../../common/internal/Types.js"; +import type { CategoryId, ElementId } from "../../../../shared/internal/Types.js"; import type { BaseSearchResultsTreeNode, SearchResultsTree, SearchResultsTreeNodeChildren, SearchResultsTreeRootNode, -} from "../../../common/internal/visibility/BaseSearchResultsTree.js"; +} from "../../../../shared/internal/visibility/BaseSearchResultsTree.js"; import type { ModelsTreeIdsCache } from "../ModelsTreeIdsCache.js"; /** @internal */ From 6c4bdaeef566b2fd19ce1867bfe0e31a464aee54 Mon Sep 17 00:00:00 2001 From: JonasDov <100586436+JonasDov@users.noreply.github.com> Date: Mon, 3 Aug 2026 05:48:49 +0000 Subject: [PATCH 3/5] make validatedIds optional --- .../test/trees/classifications-tree/VisibilityValidation.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/tree-widget/src/test/trees/classifications-tree/VisibilityValidation.ts b/packages/tree-widget/src/test/trees/classifications-tree/VisibilityValidation.ts index 960325c96..8cc37251d 100644 --- a/packages/tree-widget/src/test/trees/classifications-tree/VisibilityValidation.ts +++ b/packages/tree-widget/src/test/trees/classifications-tree/VisibilityValidation.ts @@ -14,7 +14,7 @@ export async function validateNodeVisibility({ handler, expectations, validatedIds, -}: ValidateNodeProps & { node: HierarchyNode; validatedIds: Set }) { +}: ValidateNodeProps & { node: HierarchyNode; validatedIds?: Set }) { const actualVisibility = await handler.getVisibilityStatus(node); if (expectations === "all-hidden" || expectations === "all-visible") { @@ -28,7 +28,7 @@ export async function validateNodeVisibility({ ClassificationsTreeNode.isGeometricElementNode(node) ) { const { id } = node.key.instanceKeys[0]; - validatedIds.add(id); + validatedIds?.add(id); if (expectations[id] === "disabled") { expect(actualVisibility.isDisabled, `Node, ${JSON.stringify(node)}`).toBe(true); } else { From f89d9957f76e6ec37470a6a59b368cfd769bc0e2 Mon Sep 17 00:00:00 2001 From: JonasDov <100586436+JonasDov@users.noreply.github.com> Date: Mon, 3 Aug 2026 07:38:16 +0000 Subject: [PATCH 4/5] Adjust imports --- .../tree-widget/src/test/common/VisibilityValidation.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/tree-widget/src/test/common/VisibilityValidation.ts b/packages/tree-widget/src/test/common/VisibilityValidation.ts index 9191b572e..956c5c53c 100644 --- a/packages/tree-widget/src/test/common/VisibilityValidation.ts +++ b/packages/tree-widget/src/test/common/VisibilityValidation.ts @@ -4,12 +4,12 @@ *--------------------------------------------------------------------------------------------*/ import { EMPTY, expand, from, mergeMap, tap } from "rxjs"; -import { toVoidPromise } from "../../../tree-widget-react/components/trees/common/internal/Rxjs.js"; +import { toVoidPromise } from "../../tree-widget-react/components/trees/common/internal/Rxjs.js"; import type { HierarchyNode, HierarchyProvider } from "@itwin/presentation-hierarchies"; -import type { Visibility } from "../../../tree-widget-react/shared/internal/Tooltip.js"; -import type { HierarchyVisibilityHandler } from "../../../tree-widget-react/shared/UseHierarchyVisibility.js"; -import type { TreeWidgetTestingViewport } from "../TreeUtils.js"; +import type { Visibility } from "../../tree-widget-react/shared/internal/Tooltip.js"; +import type { HierarchyVisibilityHandler } from "../../tree-widget-react/shared/UseHierarchyVisibility.js"; +import type { TreeWidgetTestingViewport } from "../trees/TreeUtils.js"; export interface VisibilityExpectations { [id: string]: Visibility | "disabled"; From 666d3433132246c509d026b7ae96dbcbc380cc3a Mon Sep 17 00:00:00 2001 From: JonasDov <100586436+JonasDov@users.noreply.github.com> Date: Mon, 3 Aug 2026 08:12:21 +0000 Subject: [PATCH 5/5] rebase fixes --- .../FocusedInstancesContext.test.tsx | 4 +-- .../TreeWidgetViewport.test.ts | 4 +-- .../UseHierarchyVisibility.test.ts | 10 +++---- .../src/test/{common => shared}/Utils.test.ts | 2 +- .../VisibilityValidation.ts | 2 +- ...lwaysAndNeverDrawnElementInfoCache.test.ts | 10 +++---- .../internal/BufferingViewport.test.ts | 6 ++--- .../internal/ChildElementsCache.test.ts | 8 +++--- .../internal/DescendantsCountCache.test.ts | 8 +++--- .../{common => shared}/internal/Utils.test.ts | 2 +- .../VisibilityChangeEventListener.test.ts | 6 ++--- .../internal/VisibilityUtils.test.ts | 14 +++++----- .../hooks/UseCachedVisibility.test.ts | 12 ++++----- .../internal/hooks/UseIdsCache.test.ts | 4 +-- .../tree-widget/src/test/trees/TreeUtils.ts | 27 +++++++++++++++++++ .../CategoriesTreeVisibilityHandler.test.ts | 4 +-- .../internal/VisibilityValidation.ts | 2 +- ...assificationsTreeVisibilityHandler.test.ts | 2 +- .../VisibilityValidation.ts | 2 +- .../ModelsTreeVisibilityHandler.test.ts | 4 +-- .../internal/VisibilityValidation.ts | 2 +- 21 files changed, 81 insertions(+), 54 deletions(-) rename packages/tree-widget/src/test/{common => shared}/FocusedInstancesContext.test.tsx (98%) rename packages/tree-widget/src/test/{common => shared}/TreeWidgetViewport.test.ts (97%) rename packages/tree-widget/src/test/{common => shared}/UseHierarchyVisibility.test.ts (96%) rename packages/tree-widget/src/test/{common => shared}/Utils.test.ts (98%) rename packages/tree-widget/src/test/{common => shared}/VisibilityValidation.ts (95%) rename packages/tree-widget/src/test/{common => shared}/internal/AlwaysAndNeverDrawnElementInfoCache.test.ts (98%) rename packages/tree-widget/src/test/{common => shared}/internal/BufferingViewport.test.ts (98%) rename packages/tree-widget/src/test/{common => shared}/internal/ChildElementsCache.test.ts (98%) rename packages/tree-widget/src/test/{common => shared}/internal/DescendantsCountCache.test.ts (98%) rename packages/tree-widget/src/test/{common => shared}/internal/Utils.test.ts (98%) rename packages/tree-widget/src/test/{common => shared}/internal/VisibilityChangeEventListener.test.ts (96%) rename packages/tree-widget/src/test/{common => shared}/internal/VisibilityUtils.test.ts (97%) rename packages/tree-widget/src/test/{common => shared}/internal/hooks/UseCachedVisibility.test.ts (97%) rename packages/tree-widget/src/test/{common => shared}/internal/hooks/UseIdsCache.test.ts (97%) diff --git a/packages/tree-widget/src/test/common/FocusedInstancesContext.test.tsx b/packages/tree-widget/src/test/shared/FocusedInstancesContext.test.tsx similarity index 98% rename from packages/tree-widget/src/test/common/FocusedInstancesContext.test.tsx rename to packages/tree-widget/src/test/shared/FocusedInstancesContext.test.tsx index 3bd172cd7..5839802f5 100644 --- a/packages/tree-widget/src/test/common/FocusedInstancesContext.test.tsx +++ b/packages/tree-widget/src/test/shared/FocusedInstancesContext.test.tsx @@ -5,8 +5,8 @@ import { beforeEach, describe, expect, it } from "vitest"; import { createStorage } from "@itwin/unified-selection"; -import { FocusedInstancesContextProvider, useFocusedInstancesContext } from "../../../tree-widget-react/shared/FocusedInstancesContext.js"; -import { act, createAsyncIterator, renderHook, waitFor } from "../../TestUtils.js"; +import { FocusedInstancesContextProvider, useFocusedInstancesContext } from "../../tree-widget-react/shared/FocusedInstancesContext.js"; +import { act, createAsyncIterator, renderHook, waitFor } from "../TestUtils.js"; import type { PropsWithChildren } from "react"; import type { GroupingHierarchyNode } from "@itwin/presentation-hierarchies"; diff --git a/packages/tree-widget/src/test/common/TreeWidgetViewport.test.ts b/packages/tree-widget/src/test/shared/TreeWidgetViewport.test.ts similarity index 97% rename from packages/tree-widget/src/test/common/TreeWidgetViewport.test.ts rename to packages/tree-widget/src/test/shared/TreeWidgetViewport.test.ts index 3dd99f319..144840195 100644 --- a/packages/tree-widget/src/test/common/TreeWidgetViewport.test.ts +++ b/packages/tree-widget/src/test/shared/TreeWidgetViewport.test.ts @@ -16,8 +16,8 @@ import { afterAll, beforeAll, describe, expect, it, vi } from "vitest"; import { withEditTxn } from "@itwin/core-backend"; import { Code, ColorDef, IModel, RenderMode } from "@itwin/core-common"; import { IModelApp, OffScreenViewport, SpatialViewState, ViewRect } from "@itwin/core-frontend"; -import { createTreeWidgetViewport } from "../../../tree-widget-react/shared/TreeWidgetViewport.js"; -import { buildIModel } from "../../IModelUtils.js"; +import { createTreeWidgetViewport } from "../../tree-widget-react/shared/TreeWidgetViewport.js"; +import { buildIModel } from "../IModelUtils.js"; import type { Id64Array } from "@itwin/core-bentley"; import type { IModelConnection, Viewport } from "@itwin/core-frontend"; diff --git a/packages/tree-widget/src/test/common/UseHierarchyVisibility.test.ts b/packages/tree-widget/src/test/shared/UseHierarchyVisibility.test.ts similarity index 96% rename from packages/tree-widget/src/test/common/UseHierarchyVisibility.test.ts rename to packages/tree-widget/src/test/shared/UseHierarchyVisibility.test.ts index b1c4fa638..17fba2183 100644 --- a/packages/tree-widget/src/test/common/UseHierarchyVisibility.test.ts +++ b/packages/tree-widget/src/test/shared/UseHierarchyVisibility.test.ts @@ -5,12 +5,12 @@ import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; import { BeEvent } from "@itwin/core-bentley"; -import { useHierarchyVisibility } from "../../../tree-widget-react/shared/UseHierarchyVisibility.js"; -import { TreeWidget } from "../../../tree-widget-react/TreeWidget.js"; -import { act, renderHook, waitFor } from "../../TestUtils.js"; -import { createTreeNode } from "../TreeUtils.js"; +import { useHierarchyVisibility } from "../../tree-widget-react/shared/UseHierarchyVisibility.js"; +import { TreeWidget } from "../../tree-widget-react/TreeWidget.js"; +import { act, renderHook, waitFor } from "../TestUtils.js"; +import { createTreeNode } from "../trees/TreeUtils.js"; -import type { HierarchyVisibilityHandler } from "../../../tree-widget-react/shared/UseHierarchyVisibility.js"; +import type { HierarchyVisibilityHandler } from "../../tree-widget-react/shared/UseHierarchyVisibility.js"; type UseHierarchyVisibilityProps = Parameters[0]; diff --git a/packages/tree-widget/src/test/common/Utils.test.ts b/packages/tree-widget/src/test/shared/Utils.test.ts similarity index 98% rename from packages/tree-widget/src/test/common/Utils.test.ts rename to packages/tree-widget/src/test/shared/Utils.test.ts index 6192c9537..a830e8dc9 100644 --- a/packages/tree-widget/src/test/common/Utils.test.ts +++ b/packages/tree-widget/src/test/shared/Utils.test.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { describe, expect, it } from "vitest"; -import { joinHierarchySearchTrees } from "../../../tree-widget-react/shared/Utils.js"; +import { joinHierarchySearchTrees } from "../../tree-widget-react/shared/Utils.js"; import type { IModelInstanceKey } from "@itwin/presentation-hierarchies"; diff --git a/packages/tree-widget/src/test/common/VisibilityValidation.ts b/packages/tree-widget/src/test/shared/VisibilityValidation.ts similarity index 95% rename from packages/tree-widget/src/test/common/VisibilityValidation.ts rename to packages/tree-widget/src/test/shared/VisibilityValidation.ts index 956c5c53c..2c6425613 100644 --- a/packages/tree-widget/src/test/common/VisibilityValidation.ts +++ b/packages/tree-widget/src/test/shared/VisibilityValidation.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { EMPTY, expand, from, mergeMap, tap } from "rxjs"; -import { toVoidPromise } from "../../tree-widget-react/components/trees/common/internal/Rxjs.js"; +import { toVoidPromise } from "../../tree-widget-react/shared/internal/Rxjs.js"; import type { HierarchyNode, HierarchyProvider } from "@itwin/presentation-hierarchies"; import type { Visibility } from "../../tree-widget-react/shared/internal/Tooltip.js"; diff --git a/packages/tree-widget/src/test/common/internal/AlwaysAndNeverDrawnElementInfoCache.test.ts b/packages/tree-widget/src/test/shared/internal/AlwaysAndNeverDrawnElementInfoCache.test.ts similarity index 98% rename from packages/tree-widget/src/test/common/internal/AlwaysAndNeverDrawnElementInfoCache.test.ts rename to packages/tree-widget/src/test/shared/internal/AlwaysAndNeverDrawnElementInfoCache.test.ts index 8947e3053..ba83214cf 100644 --- a/packages/tree-widget/src/test/common/internal/AlwaysAndNeverDrawnElementInfoCache.test.ts +++ b/packages/tree-widget/src/test/shared/internal/AlwaysAndNeverDrawnElementInfoCache.test.ts @@ -10,14 +10,14 @@ import { ALWAYS_NEVER_BUFFER_THRESHOLD, AlwaysAndNeverDrawnElementInfoCache, SET_CHANGE_DEBOUNCE_TIME, -} from "../../../../tree-widget-react/shared/internal/caches/AlwaysAndNeverDrawnElementInfoCache.js"; -import { createResolvablePromise } from "../../../TestUtils.js"; -import { createFakeViewport } from "../../Common.js"; +} from "../../../tree-widget-react/shared/internal/caches/AlwaysAndNeverDrawnElementInfoCache.js"; +import { createResolvablePromise } from "../../TestUtils.js"; +import { createFakeViewport } from "../../trees/Common.js"; import type { Id64String } from "@itwin/core-bentley"; import type { QueryBinder } from "@itwin/core-common"; -import type { TreeWidgetViewport } from "../../../../tree-widget-react.js"; -import type { ElementPathSegment } from "../../../../tree-widget-react/shared/internal/caches/AlwaysAndNeverDrawnElementInfoCache.js"; +import type { ElementPathSegment } from "../../../tree-widget-react/shared/internal/caches/AlwaysAndNeverDrawnElementInfoCache.js"; +import type { TreeWidgetViewport } from "../../../tree-widget-react/shared/TreeWidgetViewport.js"; describe("AlwaysAndNeverDrawnElementInfoCache", () => { beforeEach(() => { diff --git a/packages/tree-widget/src/test/common/internal/BufferingViewport.test.ts b/packages/tree-widget/src/test/shared/internal/BufferingViewport.test.ts similarity index 98% rename from packages/tree-widget/src/test/common/internal/BufferingViewport.test.ts rename to packages/tree-widget/src/test/shared/internal/BufferingViewport.test.ts index e850d37a0..e18da0e75 100644 --- a/packages/tree-widget/src/test/common/internal/BufferingViewport.test.ts +++ b/packages/tree-widget/src/test/shared/internal/BufferingViewport.test.ts @@ -4,11 +4,11 @@ *--------------------------------------------------------------------------------------------*/ import { describe, expect, it } from "vitest"; -import { BufferingViewport } from "../../../../tree-widget-react/shared/internal/BufferingViewport.js"; -import { createTreeWidgetTestingViewport } from "../../TreeUtils.js"; +import { BufferingViewport } from "../../../tree-widget-react/shared/internal/BufferingViewport.js"; +import { createTreeWidgetTestingViewport } from "../../trees/TreeUtils.js"; import type { IModelConnection } from "@itwin/core-frontend"; -import type { TreeWidgetViewport } from "../../../../tree-widget-react/shared/TreeWidgetViewport.js"; +import type { TreeWidgetViewport } from "../../../tree-widget-react/shared/TreeWidgetViewport.js"; describe("BufferingViewport", () => { describe("models", () => { diff --git a/packages/tree-widget/src/test/common/internal/ChildElementsCache.test.ts b/packages/tree-widget/src/test/shared/internal/ChildElementsCache.test.ts similarity index 98% rename from packages/tree-widget/src/test/common/internal/ChildElementsCache.test.ts rename to packages/tree-widget/src/test/shared/internal/ChildElementsCache.test.ts index eb7562d07..5f1d3c75d 100644 --- a/packages/tree-widget/src/test/common/internal/ChildElementsCache.test.ts +++ b/packages/tree-widget/src/test/shared/internal/ChildElementsCache.test.ts @@ -21,10 +21,10 @@ import { ECSchemaRpcImpl } from "@itwin/ecschema-rpcinterface-impl"; import { PresentationRpcInterface } from "@itwin/presentation-common"; import { createECSqlQueryExecutor } from "@itwin/presentation-core-interop"; import { createLimitingECSqlQueryExecutor } from "@itwin/presentation-hierarchies"; -import { ChildElementsCache } from "../../../../tree-widget-react/shared/internal/caches/ChildElementsCache.js"; -import { CLASS_NAME_GeometricElement3d } from "../../../../tree-widget-react/shared/internal/ClassNameDefinitions.js"; -import { buildIModel } from "../../../IModelUtils.js"; -import { createFakeViewport } from "../../Common.js"; +import { ChildElementsCache } from "../../../tree-widget-react/shared/internal/caches/ChildElementsCache.js"; +import { CLASS_NAME_GeometricElement3d } from "../../../tree-widget-react/shared/internal/ClassNameDefinitions.js"; +import { buildIModel } from "../../IModelUtils.js"; +import { createFakeViewport } from "../../trees/Common.js"; import type { IModelConnection } from "@itwin/core-frontend"; diff --git a/packages/tree-widget/src/test/common/internal/DescendantsCountCache.test.ts b/packages/tree-widget/src/test/shared/internal/DescendantsCountCache.test.ts similarity index 98% rename from packages/tree-widget/src/test/common/internal/DescendantsCountCache.test.ts rename to packages/tree-widget/src/test/shared/internal/DescendantsCountCache.test.ts index e9a43a0c6..174dda5c2 100644 --- a/packages/tree-widget/src/test/common/internal/DescendantsCountCache.test.ts +++ b/packages/tree-widget/src/test/shared/internal/DescendantsCountCache.test.ts @@ -20,10 +20,10 @@ import { ECSchemaRpcImpl } from "@itwin/ecschema-rpcinterface-impl"; import { PresentationRpcInterface } from "@itwin/presentation-common"; import { createECSqlQueryExecutor } from "@itwin/presentation-core-interop"; import { createLimitingECSqlQueryExecutor } from "@itwin/presentation-hierarchies"; -import { DescendantsCountCache } from "../../../../tree-widget-react/shared/internal/caches/DescendantsCountCache.js"; -import { CLASS_NAME_GeometricElement3d } from "../../../../tree-widget-react/shared/internal/ClassNameDefinitions.js"; -import { buildIModel } from "../../../IModelUtils.js"; -import { createFakeViewport } from "../../Common.js"; +import { DescendantsCountCache } from "../../../tree-widget-react/shared/internal/caches/DescendantsCountCache.js"; +import { CLASS_NAME_GeometricElement3d } from "../../../tree-widget-react/shared/internal/ClassNameDefinitions.js"; +import { buildIModel } from "../../IModelUtils.js"; +import { createFakeViewport } from "../../trees/Common.js"; import type { IModelConnection } from "@itwin/core-frontend"; diff --git a/packages/tree-widget/src/test/common/internal/Utils.test.ts b/packages/tree-widget/src/test/shared/internal/Utils.test.ts similarity index 98% rename from packages/tree-widget/src/test/common/internal/Utils.test.ts rename to packages/tree-widget/src/test/shared/internal/Utils.test.ts index e94adea4d..a064a8044 100644 --- a/packages/tree-widget/src/test/common/internal/Utils.test.ts +++ b/packages/tree-widget/src/test/shared/internal/Utils.test.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { describe, expect, it } from "vitest"; -import { createWhereClause, mergeWithDefaults, stableStringify } from "../../../../tree-widget-react/shared/internal/Utils.js"; +import { createWhereClause, mergeWithDefaults, stableStringify } from "../../../tree-widget-react/shared/internal/Utils.js"; describe("Utils", () => { describe("createWhereClause", () => { diff --git a/packages/tree-widget/src/test/common/internal/VisibilityChangeEventListener.test.ts b/packages/tree-widget/src/test/shared/internal/VisibilityChangeEventListener.test.ts similarity index 96% rename from packages/tree-widget/src/test/common/internal/VisibilityChangeEventListener.test.ts rename to packages/tree-widget/src/test/shared/internal/VisibilityChangeEventListener.test.ts index 2b9b9504d..5a19264a7 100644 --- a/packages/tree-widget/src/test/common/internal/VisibilityChangeEventListener.test.ts +++ b/packages/tree-widget/src/test/shared/internal/VisibilityChangeEventListener.test.ts @@ -4,9 +4,9 @@ *--------------------------------------------------------------------------------------------*/ import { describe, expect, it, vi } from "vitest"; -import { createVisibilityChangeEventListener } from "../../../../tree-widget-react/shared/internal/VisibilityChangeEventListener.js"; -import { waitFor } from "../../../TestUtils.js"; -import { createFakeViewport } from "../../Common.js"; +import { createVisibilityChangeEventListener } from "../../../tree-widget-react/shared/internal/VisibilityChangeEventListener.js"; +import { waitFor } from "../../TestUtils.js"; +import { createFakeViewport } from "../../trees/Common.js"; describe("VisibilityChangeEventListener", () => { it("raises event on `onAlwaysDrawnChanged` event", async () => { diff --git a/packages/tree-widget/src/test/common/internal/VisibilityUtils.test.ts b/packages/tree-widget/src/test/shared/internal/VisibilityUtils.test.ts similarity index 97% rename from packages/tree-widget/src/test/common/internal/VisibilityUtils.test.ts rename to packages/tree-widget/src/test/shared/internal/VisibilityUtils.test.ts index 9b1143d29..ea6a7ada1 100644 --- a/packages/tree-widget/src/test/common/internal/VisibilityUtils.test.ts +++ b/packages/tree-widget/src/test/shared/internal/VisibilityUtils.test.ts @@ -20,7 +20,7 @@ import { IModelApp, NoRenderApp } from "@itwin/core-frontend"; import { ECSchemaRpcInterface } from "@itwin/ecschema-rpcinterface-common"; import { ECSchemaRpcImpl } from "@itwin/ecschema-rpcinterface-impl"; import { PresentationRpcInterface } from "@itwin/presentation-common"; -import { createVisibilityStatus } from "../../../../tree-widget-react/shared/internal/Tooltip.js"; +import { createVisibilityStatus } from "../../../tree-widget-react/shared/internal/Tooltip.js"; import { changeCategoryDisplay, changeElementStateNoChildrenOperator, @@ -30,16 +30,16 @@ import { invertAllModels, mergeVisibilityStatuses, showAll, -} from "../../../../tree-widget-react/shared/internal/VisibilityUtils.js"; -import { buildIModel } from "../../../IModelUtils.js"; -import { TestUtils } from "../../../TestUtils.js"; -import { createFakeViewport } from "../../Common.js"; -import { createTreeWidgetTestingViewport } from "../../TreeUtils.js"; +} from "../../../tree-widget-react/shared/internal/VisibilityUtils.js"; +import { buildIModel } from "../../IModelUtils.js"; +import { TestUtils } from "../../TestUtils.js"; +import { createFakeViewport } from "../../trees/Common.js"; +import { createTreeWidgetTestingViewport } from "../../trees/TreeUtils.js"; import type { IModelDb } from "@itwin/core-backend"; import type { Id64Array, Id64String } from "@itwin/core-bentley"; import type { IModelConnection } from "@itwin/core-frontend"; -import type { TreeWidgetTestingViewport } from "../../TreeUtils.js"; +import type { TreeWidgetTestingViewport } from "../../trees/TreeUtils.js"; describe("VisibilityUtils", () => { beforeAll(async () => { diff --git a/packages/tree-widget/src/test/common/internal/hooks/UseCachedVisibility.test.ts b/packages/tree-widget/src/test/shared/internal/hooks/UseCachedVisibility.test.ts similarity index 97% rename from packages/tree-widget/src/test/common/internal/hooks/UseCachedVisibility.test.ts rename to packages/tree-widget/src/test/shared/internal/hooks/UseCachedVisibility.test.ts index eaf1f8c1f..623ef87f3 100644 --- a/packages/tree-widget/src/test/common/internal/hooks/UseCachedVisibility.test.ts +++ b/packages/tree-widget/src/test/shared/internal/hooks/UseCachedVisibility.test.ts @@ -5,14 +5,14 @@ import { EMPTY, of, Subject } from "rxjs"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; -import { HierarchyVisibilityHandlerImpl } from "../../../../../tree-widget-react/shared/internal/hooks/UseCachedVisibility.js"; -import { createVisibilityStatus } from "../../../../../tree-widget-react/shared/internal/Tooltip.js"; -import { createFakeViewport } from "../../../Common.js"; +import { HierarchyVisibilityHandlerImpl } from "../../../../tree-widget-react/shared/internal/hooks/UseCachedVisibility.js"; +import { createVisibilityStatus } from "../../../../tree-widget-react/shared/internal/Tooltip.js"; +import { createFakeViewport } from "../../../trees/Common.js"; import type { HierarchyNode } from "@itwin/presentation-hierarchies"; -import type { HierarchyVisibilityHandlerImplProps } from "../../../../../tree-widget-react/shared/internal/hooks/UseCachedVisibility.js"; -import type { TreeSpecificVisibilityHandler } from "../../../../../tree-widget-react/shared/internal/visibility/BaseVisibilityHelper.js"; -import type { VisibilityStatus } from "../../../../../tree-widget-react/shared/UseHierarchyVisibility.js"; +import type { HierarchyVisibilityHandlerImplProps } from "../../../../tree-widget-react/shared/internal/hooks/UseCachedVisibility.js"; +import type { TreeSpecificVisibilityHandler } from "../../../../tree-widget-react/shared/internal/visibility/BaseVisibilityHelper.js"; +import type { VisibilityStatus } from "../../../../tree-widget-react/shared/UseHierarchyVisibility.js"; function createNode(props?: { instanceKeys?: Array<{ className: string; id: string }>; parentKeys?: HierarchyNode["parentKeys"] }): HierarchyNode { return { diff --git a/packages/tree-widget/src/test/common/internal/hooks/UseIdsCache.test.ts b/packages/tree-widget/src/test/shared/internal/hooks/UseIdsCache.test.ts similarity index 97% rename from packages/tree-widget/src/test/common/internal/hooks/UseIdsCache.test.ts rename to packages/tree-widget/src/test/shared/internal/hooks/UseIdsCache.test.ts index 57096cb3c..f956bb7a7 100644 --- a/packages/tree-widget/src/test/common/internal/hooks/UseIdsCache.test.ts +++ b/packages/tree-widget/src/test/shared/internal/hooks/UseIdsCache.test.ts @@ -5,8 +5,8 @@ import { beforeEach, describe, expect, it, vi } from "vitest"; import { BeEvent } from "@itwin/core-bentley"; -import { useIdsCache } from "../../../../../tree-widget-react/shared/internal/hooks/UseIdsCache.js"; -import { act, renderHook } from "../../../../TestUtils.js"; +import { useIdsCache } from "../../../../tree-widget-react/shared/internal/hooks/UseIdsCache.js"; +import { act, renderHook } from "../../../TestUtils.js"; import type { BriefcaseConnection } from "@itwin/core-frontend"; diff --git a/packages/tree-widget/src/test/trees/TreeUtils.ts b/packages/tree-widget/src/test/trees/TreeUtils.ts index d0c759165..24affcbc6 100644 --- a/packages/tree-widget/src/test/trees/TreeUtils.ts +++ b/packages/tree-widget/src/test/trees/TreeUtils.ts @@ -7,11 +7,38 @@ import { BeEvent, Id64 } from "@itwin/core-bentley"; import { getOrCreate } from "../../tree-widget-react/shared/internal/Utils.js"; import type { Id64Arg, Id64String } from "@itwin/core-bentley"; +import type { NonGroupingHierarchyNode } from "@itwin/presentation-hierarchies"; +import type { TreeNode } from "@itwin/presentation-hierarchies-react"; import type { CategoryId, ElementId, ModelId, SubCategoryId } from "../../tree-widget-react/shared/internal/Types.js"; import type { TreeWidgetViewport } from "../../tree-widget-react/shared/TreeWidgetViewport.js"; export const CLASS_NAME_DefinitionModel = "BisCore.DefinitionModel"; +export function createTreeNode(partial?: Partial): TreeNode { + return { + id: "test-node", + label: "test-node", + isExpanded: false, + isLoading: false, + isFilterable: false, + isFiltered: false, + nodeData: createNonGroupingHierarchyNode(), + children: [], + errors: [], + ...partial, + }; +} + +export function createNonGroupingHierarchyNode(partial?: Partial): NonGroupingHierarchyNode { + return { + label: "test-node", + key: { type: "instances", instanceKeys: [] }, + parentKeys: [], + children: false, + ...partial, + }; +} + export function getDefaultSubCategoryId(categoryId: Id64String) { const categoryIdNumber = Number.parseInt(categoryId, 16); const subCategoryId = `0x${(categoryIdNumber + 1).toString(16)}`; diff --git a/packages/tree-widget/src/test/trees/categories-tree/internal/CategoriesTreeVisibilityHandler.test.ts b/packages/tree-widget/src/test/trees/categories-tree/internal/CategoriesTreeVisibilityHandler.test.ts index 1217371d4..6006ac8b5 100644 --- a/packages/tree-widget/src/test/trees/categories-tree/internal/CategoriesTreeVisibilityHandler.test.ts +++ b/packages/tree-widget/src/test/trees/categories-tree/internal/CategoriesTreeVisibilityHandler.test.ts @@ -34,9 +34,9 @@ import { CategoriesTreeDefinition, defaultHierarchyConfiguration } from "../../. import { CategoriesTreeIdsCache } from "../../../../tree-widget-react/trees/categories-tree/internal/CategoriesTreeIdsCache.js"; import { createCategoriesTreeVisibilityHandler } from "../../../../tree-widget-react/trees/categories-tree/internal/visibility/CategoriesTreeVisibilityHandler.js"; import { buildIModel } from "../../../IModelUtils.js"; +import { validateHierarchyVisibility } from "../../../shared/VisibilityValidation.js"; import { TestUtils } from "../../../TestUtils.js"; import { createIModelAccess } from "../../Common.js"; -import { validateHierarchyVisibility } from "../../common/VisibilityValidation.js"; import { CLASS_NAME_DefinitionModel, createTreeWidgetTestingViewport, getDefaultSubCategoryId } from "../../TreeUtils.js"; import { createCategoryHierarchyNode, @@ -57,7 +57,7 @@ import type { CategoriesTreeHierarchyConfiguration, RequiredCategoriesTreeHierarchyConfiguration, } from "../../../../tree-widget-react/trees/categories-tree/CategoriesTreeDefinition.js"; -import type { VisibilityExpectations } from "../../common/VisibilityValidation.js"; +import type { VisibilityExpectations } from "../../../shared/VisibilityValidation.js"; import type { TreeWidgetTestingViewport } from "../../TreeUtils.js"; describe("CategoriesTreeVisibilityHandler", () => { diff --git a/packages/tree-widget/src/test/trees/categories-tree/internal/VisibilityValidation.ts b/packages/tree-widget/src/test/trees/categories-tree/internal/VisibilityValidation.ts index d35bbd66b..af22c62b2 100644 --- a/packages/tree-widget/src/test/trees/categories-tree/internal/VisibilityValidation.ts +++ b/packages/tree-widget/src/test/trees/categories-tree/internal/VisibilityValidation.ts @@ -8,7 +8,7 @@ import { CategoriesTreeNode } from "../../../../tree-widget-react/trees/categori import { CategoriesTreeNodeInternal } from "../../../../tree-widget-react/trees/categories-tree/internal/CategoriesTreeNodeInternal.js"; import type { HierarchyNode } from "@itwin/presentation-hierarchies"; -import type { ValidateNodeProps } from "../../common/VisibilityValidation.js"; +import type { ValidateNodeProps } from "../../../shared/VisibilityValidation.js"; export async function validateNodeVisibility({ node, diff --git a/packages/tree-widget/src/test/trees/classifications-tree/ClassificationsTreeVisibilityHandler.test.ts b/packages/tree-widget/src/test/trees/classifications-tree/ClassificationsTreeVisibilityHandler.test.ts index 3fd5e357e..e73e6d8a8 100644 --- a/packages/tree-widget/src/test/trees/classifications-tree/ClassificationsTreeVisibilityHandler.test.ts +++ b/packages/tree-widget/src/test/trees/classifications-tree/ClassificationsTreeVisibilityHandler.test.ts @@ -14,8 +14,8 @@ import { ClassificationsTreeIdsCache } from "../../../tree-widget-react/trees/cl import { createClassificationsTreeVisibilityHandler } from "../../../tree-widget-react/trees/classifications-tree/internal/visibility/ClassificationsTreeVisibilityHandler.js"; import { buildIModel } from "../../IModelUtils.js"; import { initializeITwinJs, terminateITwinJs } from "../../Initialize.js"; +import { validateHierarchyVisibility } from "../../shared/VisibilityValidation.js"; import { createIModelAccess } from "../Common.js"; -import { validateHierarchyVisibility } from "../common/VisibilityValidation.js"; import { createTreeWidgetTestingViewport } from "../TreeUtils.js"; import { createClassificationHierarchyNode, createClassificationTableHierarchyNode, createPhysicalElementHierarchyNode } from "./HierarchyNodeUtils.js"; import { diff --git a/packages/tree-widget/src/test/trees/classifications-tree/VisibilityValidation.ts b/packages/tree-widget/src/test/trees/classifications-tree/VisibilityValidation.ts index 8cc37251d..bade4bab7 100644 --- a/packages/tree-widget/src/test/trees/classifications-tree/VisibilityValidation.ts +++ b/packages/tree-widget/src/test/trees/classifications-tree/VisibilityValidation.ts @@ -7,7 +7,7 @@ import { expect } from "vitest"; import { ClassificationsTreeNode } from "../../../tree-widget-react/trees/classifications-tree/ClassificationsTreeNode.js"; import type { HierarchyNode } from "@itwin/presentation-hierarchies"; -import type { ValidateNodeProps } from "../common/VisibilityValidation.js"; +import type { ValidateNodeProps } from "../../shared/VisibilityValidation.js"; export async function validateNodeVisibility({ node, diff --git a/packages/tree-widget/src/test/trees/models-tree/internal/ModelsTreeVisibilityHandler.test.ts b/packages/tree-widget/src/test/trees/models-tree/internal/ModelsTreeVisibilityHandler.test.ts index 2b590820d..5d3c60393 100644 --- a/packages/tree-widget/src/test/trees/models-tree/internal/ModelsTreeVisibilityHandler.test.ts +++ b/packages/tree-widget/src/test/trees/models-tree/internal/ModelsTreeVisibilityHandler.test.ts @@ -38,9 +38,9 @@ import { ModelsTreeIdsCache } from "../../../../tree-widget-react/trees/models-t import { createModelsTreeVisibilityHandler } from "../../../../tree-widget-react/trees/models-tree/internal/visibility/ModelsTreeVisibilityHandler.js"; import { defaultHierarchyConfiguration, ModelsTreeDefinition } from "../../../../tree-widget-react/trees/models-tree/ModelsTreeDefinition.js"; import { buildIModel, TestSchema } from "../../../IModelUtils.js"; +import { validateHierarchyVisibility } from "../../../shared/VisibilityValidation.js"; import { TestUtils } from "../../../TestUtils.js"; import { createFakeViewport, createIModelAccess } from "../../Common.js"; -import { validateHierarchyVisibility } from "../../common/VisibilityValidation.js"; import { createTreeWidgetTestingViewport } from "../../TreeUtils.js"; import { createCategoryHierarchyNode, @@ -65,7 +65,7 @@ import type { ModelsTreeHierarchyConfiguration, RequiredModelsTreeHierarchyConfiguration, } from "../../../../tree-widget-react/trees/models-tree/ModelsTreeDefinition.js"; -import type { VisibilityExpectations } from "../../common/VisibilityValidation.js"; +import type { VisibilityExpectations } from "../../../shared/VisibilityValidation.js"; interface VisibilityOverrides { models?: Map; diff --git a/packages/tree-widget/src/test/trees/models-tree/internal/VisibilityValidation.ts b/packages/tree-widget/src/test/trees/models-tree/internal/VisibilityValidation.ts index 9a9f8b9de..c3ed64742 100644 --- a/packages/tree-widget/src/test/trees/models-tree/internal/VisibilityValidation.ts +++ b/packages/tree-widget/src/test/trees/models-tree/internal/VisibilityValidation.ts @@ -8,7 +8,7 @@ import { ModelsTreeNodeInternal } from "../../../../tree-widget-react/trees/mode import { ModelsTreeNode } from "../../../../tree-widget-react/trees/models-tree/ModelsTreeNode.js"; import type { HierarchyNode } from "@itwin/presentation-hierarchies"; -import type { ValidateNodeProps } from "../../common/VisibilityValidation.js"; +import type { ValidateNodeProps } from "../../../shared/VisibilityValidation.js"; export async function validateNodeVisibility({ node,