@itwin/tree-widget-react 2.3.2 → 3.0.0-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -2
- package/README.md +232 -147
- package/lib/cjs/TreeWidget.d.ts +2 -4
- package/lib/cjs/TreeWidget.js +0 -6
- package/lib/cjs/TreeWidget.js.map +1 -1
- package/lib/cjs/components/SelectableTree.d.ts +3 -9
- package/lib/cjs/components/SelectableTree.js +1 -1
- package/lib/cjs/components/SelectableTree.js.map +1 -1
- package/lib/cjs/components/TreeSelector.d.ts +2 -2
- package/lib/cjs/components/TreeSelector.js.map +1 -1
- package/lib/cjs/components/TreeWidgetUiItemsProvider.d.ts +14 -25
- package/lib/cjs/components/TreeWidgetUiItemsProvider.js +43 -45
- package/lib/cjs/components/TreeWidgetUiItemsProvider.js.map +1 -1
- package/lib/cjs/components/tree-header/TreeHeader.js +17 -9
- package/lib/cjs/components/tree-header/TreeHeader.js.map +1 -1
- package/lib/cjs/components/tree-header/TreeHeader.scss +7 -41
- package/lib/cjs/components/trees/Tree.scss +23 -0
- package/lib/cjs/components/trees/categories-tree/CategoriesTree.d.ts +22 -0
- package/lib/cjs/components/trees/categories-tree/CategoriesTree.js +78 -0
- package/lib/cjs/components/trees/categories-tree/CategoriesTree.js.map +1 -0
- package/lib/cjs/components/trees/categories-tree/CategoriesTreeButtons.d.ts +21 -0
- package/lib/cjs/components/trees/categories-tree/CategoriesTreeButtons.js +37 -0
- package/lib/cjs/components/trees/categories-tree/CategoriesTreeButtons.js.map +1 -0
- package/lib/cjs/components/trees/categories-tree/CategoriesTreeComponent.d.ts +55 -0
- package/lib/cjs/components/trees/categories-tree/CategoriesTreeComponent.js +75 -0
- package/lib/cjs/components/trees/categories-tree/CategoriesTreeComponent.js.map +1 -0
- package/lib/cjs/components/trees/categories-tree/CategoriesTreeDefinition.d.ts +23 -0
- package/lib/cjs/components/trees/categories-tree/CategoriesTreeDefinition.js +185 -0
- package/lib/cjs/components/trees/categories-tree/CategoriesTreeDefinition.js.map +1 -0
- package/lib/cjs/components/trees/categories-tree/CategoriesVisibilityHandler.d.ts +36 -0
- package/lib/cjs/components/trees/categories-tree/CategoriesVisibilityHandler.js +94 -0
- package/lib/cjs/components/trees/categories-tree/CategoriesVisibilityHandler.js.map +1 -0
- package/lib/cjs/components/trees/categories-tree/UseCategories.d.ts +8 -0
- package/lib/cjs/components/trees/categories-tree/UseCategories.js +22 -0
- package/lib/cjs/components/trees/categories-tree/UseCategories.js.map +1 -0
- package/lib/cjs/components/trees/common/CategoriesVisibilityUtils.d.ts +46 -0
- package/lib/cjs/components/trees/{CategoriesVisibilityUtils.js → common/CategoriesVisibilityUtils.js} +56 -8
- package/lib/cjs/components/trees/common/CategoriesVisibilityUtils.js.map +1 -0
- package/lib/cjs/components/trees/common/FocusedInstancesContext.d.ts +14 -0
- package/lib/cjs/components/trees/common/FocusedInstancesContext.js +16 -0
- package/lib/cjs/components/trees/common/FocusedInstancesContext.js.map +1 -0
- package/lib/cjs/components/trees/common/FocusedInstancesContextProvider.d.ts +8 -0
- package/lib/cjs/components/trees/common/FocusedInstancesContextProvider.js +71 -0
- package/lib/cjs/components/trees/common/FocusedInstancesContextProvider.js.map +1 -0
- package/lib/cjs/components/trees/common/Rxjs.d.ts +10 -0
- package/lib/cjs/components/trees/common/Rxjs.js +46 -0
- package/lib/cjs/components/trees/common/Rxjs.js.map +1 -0
- package/lib/cjs/components/trees/common/UseFeatureReporting.d.ts +11 -0
- package/lib/cjs/components/trees/common/UseFeatureReporting.js +10 -1
- package/lib/cjs/components/trees/common/UseFeatureReporting.js.map +1 -1
- package/lib/cjs/components/trees/common/UseFiltering.d.ts +12 -0
- package/lib/cjs/components/trees/common/UseFiltering.js +29 -0
- package/lib/cjs/components/trees/common/UseFiltering.js.map +1 -0
- package/lib/cjs/components/trees/common/UseHierarchiesLocalization.d.ts +8 -0
- package/lib/cjs/components/trees/common/UseHierarchiesLocalization.js +33 -0
- package/lib/cjs/components/trees/common/UseHierarchiesLocalization.js.map +1 -0
- package/lib/cjs/components/trees/common/UseHierarchyFiltering.d.ts +19 -0
- package/lib/cjs/components/trees/common/UseHierarchyFiltering.js +157 -0
- package/lib/cjs/components/trees/common/UseHierarchyFiltering.js.map +1 -0
- package/lib/cjs/components/trees/common/UseHierarchyVisibility.d.ts +30 -0
- package/lib/cjs/components/trees/common/UseHierarchyVisibility.js +98 -0
- package/lib/cjs/components/trees/common/UseHierarchyVisibility.js.map +1 -0
- package/lib/cjs/components/trees/common/UseIModelChangeListener.d.ts +9 -0
- package/lib/cjs/components/trees/common/UseIModelChangeListener.js +20 -0
- package/lib/cjs/components/trees/common/UseIModelChangeListener.js.map +1 -0
- package/lib/cjs/components/trees/common/UseMultiCheckboxHandler.d.ts +13 -0
- package/lib/cjs/components/trees/common/UseMultiCheckboxHandler.js +35 -0
- package/lib/cjs/components/trees/common/UseMultiCheckboxHandler.js.map +1 -0
- package/lib/cjs/components/trees/common/UseNodeHighlighting.d.ts +16 -0
- package/lib/cjs/components/trees/common/UseNodeHighlighting.js +140 -0
- package/lib/cjs/components/trees/common/UseNodeHighlighting.js.map +1 -0
- package/lib/cjs/components/trees/common/Utils.d.ts +16 -6
- package/lib/cjs/components/trees/common/Utils.js +38 -34
- package/lib/cjs/components/trees/common/Utils.js.map +1 -1
- package/lib/cjs/components/trees/common/components/BaseTree.d.ts +34 -0
- package/lib/cjs/components/trees/common/components/BaseTree.js +77 -0
- package/lib/cjs/components/trees/common/components/BaseTree.js.map +1 -0
- package/lib/cjs/components/trees/common/components/Delayed.d.ts +6 -0
- package/lib/cjs/components/trees/common/components/Delayed.js +31 -0
- package/lib/cjs/components/trees/common/components/Delayed.js.map +1 -0
- package/lib/cjs/components/trees/common/components/ProgressOverlay.d.ts +5 -0
- package/lib/cjs/components/trees/common/components/ProgressOverlay.js +16 -0
- package/lib/cjs/components/trees/common/components/ProgressOverlay.js.map +1 -0
- package/lib/cjs/components/trees/common/components/ProgressOverlay.scss +21 -0
- package/lib/cjs/components/trees/common/components/TreeNodeCheckbox.d.ts +20 -0
- package/lib/cjs/components/trees/common/components/TreeNodeCheckbox.js +28 -0
- package/lib/cjs/components/trees/common/components/TreeNodeCheckbox.js.map +1 -0
- package/lib/cjs/components/trees/common/components/TreeNodeRenderer.d.ts +13 -0
- package/lib/cjs/components/trees/common/components/TreeNodeRenderer.js +20 -0
- package/lib/cjs/components/trees/common/components/TreeNodeRenderer.js.map +1 -0
- package/lib/cjs/components/trees/common/components/TreeRenderer.d.ts +19 -0
- package/lib/cjs/components/trees/common/components/TreeRenderer.js +30 -0
- package/lib/cjs/components/trees/common/components/TreeRenderer.js.map +1 -0
- package/lib/cjs/components/trees/common/components/TreeRenderer.scss +62 -0
- package/lib/cjs/components/trees/common/components/VisibilityTree.d.ts +14 -0
- package/lib/cjs/components/trees/common/components/VisibilityTree.js +41 -0
- package/lib/cjs/components/trees/common/components/VisibilityTree.js.map +1 -0
- package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTree.d.ts +11 -35
- package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTree.js +29 -83
- package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTree.js.map +1 -1
- package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTreeComponent.d.ts +14 -14
- package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTreeComponent.js +12 -12
- package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTreeComponent.js.map +1 -1
- package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTreeDefinition.d.ts +24 -0
- package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTreeDefinition.js +262 -0
- package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTreeDefinition.js.map +1 -0
- package/lib/cjs/components/trees/imodel-content-tree/IModelContentTree.d.ts +11 -35
- package/lib/cjs/components/trees/imodel-content-tree/IModelContentTree.js +41 -79
- package/lib/cjs/components/trees/imodel-content-tree/IModelContentTree.js.map +1 -1
- package/lib/cjs/components/trees/imodel-content-tree/IModelContentTreeComponent.d.ts +14 -14
- package/lib/cjs/components/trees/imodel-content-tree/IModelContentTreeComponent.js +12 -12
- package/lib/cjs/components/trees/imodel-content-tree/IModelContentTreeComponent.js.map +1 -1
- package/lib/cjs/components/trees/imodel-content-tree/IModelContentTreeDefinition.d.ts +28 -0
- package/lib/cjs/components/trees/imodel-content-tree/IModelContentTreeDefinition.js +619 -0
- package/lib/cjs/components/trees/imodel-content-tree/IModelContentTreeDefinition.js.map +1 -0
- package/lib/cjs/components/trees/imodel-content-tree/internal/IModelContentTreeIdsCache.d.ts +26 -0
- package/lib/cjs/components/trees/imodel-content-tree/internal/IModelContentTreeIdsCache.js +203 -0
- package/lib/cjs/components/trees/imodel-content-tree/internal/IModelContentTreeIdsCache.js.map +1 -0
- package/lib/cjs/components/trees/index.d.ts +4 -16
- package/lib/cjs/components/trees/index.js +9 -30
- package/lib/cjs/components/trees/index.js.map +1 -1
- package/lib/cjs/components/trees/models-tree/ModelsTree.d.ts +17 -72
- package/lib/cjs/components/trees/models-tree/ModelsTree.js +196 -135
- package/lib/cjs/components/trees/models-tree/ModelsTree.js.map +1 -1
- package/lib/cjs/components/trees/models-tree/ModelsTreeButtons.d.ts +33 -0
- package/lib/cjs/components/trees/models-tree/ModelsTreeButtons.js +101 -0
- package/lib/cjs/components/trees/models-tree/ModelsTreeButtons.js.map +1 -0
- package/lib/cjs/components/trees/models-tree/ModelsTreeComponent.d.ts +14 -35
- package/lib/cjs/components/trees/models-tree/ModelsTreeComponent.js +40 -83
- package/lib/cjs/components/trees/models-tree/ModelsTreeComponent.js.map +1 -1
- package/lib/cjs/components/trees/models-tree/ModelsTreeDefinition.d.ts +67 -0
- package/lib/cjs/components/trees/models-tree/ModelsTreeDefinition.js +617 -0
- package/lib/cjs/components/trees/models-tree/ModelsTreeDefinition.js.map +1 -0
- package/lib/cjs/components/trees/models-tree/internal/AlwaysAndNeverDrawnElementInfo.d.ts +24 -0
- package/lib/cjs/components/trees/models-tree/internal/AlwaysAndNeverDrawnElementInfo.js +121 -0
- package/lib/cjs/components/trees/models-tree/internal/AlwaysAndNeverDrawnElementInfo.js.map +1 -0
- package/lib/cjs/components/trees/models-tree/internal/ModelsTreeIdsCache.d.ts +44 -0
- package/lib/cjs/components/trees/models-tree/internal/ModelsTreeIdsCache.js +325 -0
- package/lib/cjs/components/trees/models-tree/internal/ModelsTreeIdsCache.js.map +1 -0
- package/lib/cjs/components/trees/models-tree/internal/ModelsTreeNode.d.ts +31 -0
- package/lib/cjs/components/trees/models-tree/internal/ModelsTreeNode.js +40 -0
- package/lib/cjs/components/trees/models-tree/internal/ModelsTreeNode.js.map +1 -0
- package/lib/cjs/components/trees/models-tree/internal/ModelsTreeVisibilityHandler.d.ts +122 -0
- package/lib/cjs/components/trees/models-tree/internal/ModelsTreeVisibilityHandler.js +757 -0
- package/lib/cjs/components/trees/models-tree/internal/ModelsTreeVisibilityHandler.js.map +1 -0
- package/lib/cjs/components/trees/models-tree/internal/Tooltip.d.ts +13 -0
- package/lib/cjs/components/trees/models-tree/internal/Tooltip.js +29 -0
- package/lib/cjs/components/trees/models-tree/internal/Tooltip.js.map +1 -0
- package/lib/cjs/components/trees/models-tree/internal/VisibilityChangeEventListener.d.ts +10 -0
- package/lib/cjs/components/trees/models-tree/internal/VisibilityChangeEventListener.js +43 -0
- package/lib/cjs/components/trees/models-tree/internal/VisibilityChangeEventListener.js.map +1 -0
- package/lib/cjs/tree-widget-react.d.ts +3 -4
- package/lib/cjs/tree-widget-react.js +8 -4
- package/lib/cjs/tree-widget-react.js.map +1 -1
- package/lib/esm/TreeWidget.d.ts +2 -4
- package/lib/esm/TreeWidget.js +0 -6
- package/lib/esm/TreeWidget.js.map +1 -1
- package/lib/esm/components/SelectableTree.d.ts +3 -9
- package/lib/esm/components/SelectableTree.js +1 -1
- package/lib/esm/components/SelectableTree.js.map +1 -1
- package/lib/esm/components/TreeSelector.d.ts +2 -2
- package/lib/esm/components/TreeSelector.js.map +1 -1
- package/lib/esm/components/TreeWidgetUiItemsProvider.d.ts +14 -25
- package/lib/esm/components/TreeWidgetUiItemsProvider.js +42 -44
- package/lib/esm/components/TreeWidgetUiItemsProvider.js.map +1 -1
- package/lib/esm/components/tree-header/TreeHeader.js +17 -9
- package/lib/esm/components/tree-header/TreeHeader.js.map +1 -1
- package/lib/esm/components/tree-header/TreeHeader.scss +7 -41
- package/lib/esm/components/trees/Tree.scss +23 -0
- package/lib/esm/components/trees/categories-tree/CategoriesTree.d.ts +22 -0
- package/lib/esm/components/trees/categories-tree/CategoriesTree.js +74 -0
- package/lib/esm/components/trees/categories-tree/CategoriesTree.js.map +1 -0
- package/lib/esm/components/trees/categories-tree/CategoriesTreeButtons.d.ts +21 -0
- package/lib/esm/components/trees/categories-tree/CategoriesTreeButtons.js +31 -0
- package/lib/esm/components/trees/categories-tree/CategoriesTreeButtons.js.map +1 -0
- package/lib/esm/components/trees/categories-tree/CategoriesTreeComponent.d.ts +55 -0
- package/lib/esm/components/trees/categories-tree/CategoriesTreeComponent.js +68 -0
- package/lib/esm/components/trees/categories-tree/CategoriesTreeComponent.js.map +1 -0
- package/lib/esm/components/trees/categories-tree/CategoriesTreeDefinition.d.ts +23 -0
- package/lib/esm/components/trees/categories-tree/CategoriesTreeDefinition.js +181 -0
- package/lib/esm/components/trees/categories-tree/CategoriesTreeDefinition.js.map +1 -0
- package/lib/esm/components/trees/categories-tree/CategoriesVisibilityHandler.d.ts +36 -0
- package/lib/esm/components/trees/categories-tree/CategoriesVisibilityHandler.js +90 -0
- package/lib/esm/components/trees/categories-tree/CategoriesVisibilityHandler.js.map +1 -0
- package/lib/esm/components/trees/categories-tree/UseCategories.d.ts +8 -0
- package/lib/esm/components/trees/categories-tree/UseCategories.js +18 -0
- package/lib/esm/components/trees/categories-tree/UseCategories.js.map +1 -0
- package/lib/esm/components/trees/common/CategoriesVisibilityUtils.d.ts +46 -0
- package/lib/esm/components/trees/{CategoriesVisibilityUtils.js → common/CategoriesVisibilityUtils.js} +51 -6
- package/lib/esm/components/trees/common/CategoriesVisibilityUtils.js.map +1 -0
- package/lib/esm/components/trees/common/FocusedInstancesContext.d.ts +14 -0
- package/lib/esm/components/trees/common/FocusedInstancesContext.js +12 -0
- package/lib/esm/components/trees/common/FocusedInstancesContext.js.map +1 -0
- package/lib/esm/components/trees/common/FocusedInstancesContextProvider.d.ts +8 -0
- package/lib/esm/components/trees/common/FocusedInstancesContextProvider.js +67 -0
- package/lib/esm/components/trees/common/FocusedInstancesContextProvider.js.map +1 -0
- package/lib/esm/components/trees/common/Rxjs.d.ts +10 -0
- package/lib/esm/components/trees/common/Rxjs.js +40 -0
- package/lib/esm/components/trees/common/Rxjs.js.map +1 -0
- package/lib/esm/components/trees/common/UseFeatureReporting.d.ts +11 -0
- package/lib/esm/components/trees/common/UseFeatureReporting.js +8 -0
- package/lib/esm/components/trees/common/UseFeatureReporting.js.map +1 -1
- package/lib/esm/components/trees/common/UseFiltering.d.ts +12 -0
- package/lib/esm/components/trees/common/UseFiltering.js +25 -0
- package/lib/esm/components/trees/common/UseFiltering.js.map +1 -0
- package/lib/esm/components/trees/common/UseHierarchiesLocalization.d.ts +8 -0
- package/lib/esm/components/trees/common/UseHierarchiesLocalization.js +29 -0
- package/lib/esm/components/trees/common/UseHierarchiesLocalization.js.map +1 -0
- package/lib/esm/components/trees/common/UseHierarchyFiltering.d.ts +19 -0
- package/lib/esm/components/trees/common/UseHierarchyFiltering.js +153 -0
- package/lib/esm/components/trees/common/UseHierarchyFiltering.js.map +1 -0
- package/lib/esm/components/trees/common/UseHierarchyVisibility.d.ts +30 -0
- package/lib/esm/components/trees/common/UseHierarchyVisibility.js +94 -0
- package/lib/esm/components/trees/common/UseHierarchyVisibility.js.map +1 -0
- package/lib/esm/components/trees/common/UseIModelChangeListener.d.ts +9 -0
- package/lib/esm/components/trees/common/UseIModelChangeListener.js +16 -0
- package/lib/esm/components/trees/common/UseIModelChangeListener.js.map +1 -0
- package/lib/esm/components/trees/common/UseMultiCheckboxHandler.d.ts +13 -0
- package/lib/esm/components/trees/common/UseMultiCheckboxHandler.js +31 -0
- package/lib/esm/components/trees/common/UseMultiCheckboxHandler.js.map +1 -0
- package/lib/esm/components/trees/common/UseNodeHighlighting.d.ts +16 -0
- package/lib/esm/components/trees/common/UseNodeHighlighting.js +136 -0
- package/lib/esm/components/trees/common/UseNodeHighlighting.js.map +1 -0
- package/lib/esm/components/trees/common/Utils.d.ts +16 -6
- package/lib/esm/components/trees/common/Utils.js +33 -29
- package/lib/esm/components/trees/common/Utils.js.map +1 -1
- package/lib/esm/components/trees/common/components/BaseTree.d.ts +34 -0
- package/lib/esm/components/trees/common/components/BaseTree.js +73 -0
- package/lib/esm/components/trees/common/components/BaseTree.js.map +1 -0
- package/lib/esm/components/trees/common/components/Delayed.d.ts +6 -0
- package/lib/esm/components/trees/common/components/Delayed.js +27 -0
- package/lib/esm/components/trees/common/components/Delayed.js.map +1 -0
- package/lib/esm/components/trees/common/components/ProgressOverlay.d.ts +5 -0
- package/lib/esm/components/trees/common/components/ProgressOverlay.js +12 -0
- package/lib/esm/components/trees/common/components/ProgressOverlay.js.map +1 -0
- package/lib/esm/components/trees/common/components/ProgressOverlay.scss +21 -0
- package/lib/esm/components/trees/common/components/TreeNodeCheckbox.d.ts +20 -0
- package/lib/esm/components/trees/common/components/TreeNodeCheckbox.js +21 -0
- package/lib/esm/components/trees/common/components/TreeNodeCheckbox.js.map +1 -0
- package/lib/esm/components/trees/common/components/TreeNodeRenderer.d.ts +13 -0
- package/lib/esm/components/trees/common/components/TreeNodeRenderer.js +13 -0
- package/lib/esm/components/trees/common/components/TreeNodeRenderer.js.map +1 -0
- package/lib/esm/components/trees/common/components/TreeRenderer.d.ts +19 -0
- package/lib/esm/components/trees/common/components/TreeRenderer.js +26 -0
- package/lib/esm/components/trees/common/components/TreeRenderer.js.map +1 -0
- package/lib/esm/components/trees/common/components/TreeRenderer.scss +62 -0
- package/lib/esm/components/trees/common/components/VisibilityTree.d.ts +14 -0
- package/lib/esm/components/trees/common/components/VisibilityTree.js +37 -0
- package/lib/esm/components/trees/common/components/VisibilityTree.js.map +1 -0
- package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTree.d.ts +11 -35
- package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTree.js +27 -58
- package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTree.js.map +1 -1
- package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTreeComponent.d.ts +14 -14
- package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTreeComponent.js +12 -12
- package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTreeComponent.js.map +1 -1
- package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTreeDefinition.d.ts +24 -0
- package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTreeDefinition.js +258 -0
- package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTreeDefinition.js.map +1 -0
- package/lib/esm/components/trees/imodel-content-tree/IModelContentTree.d.ts +11 -35
- package/lib/esm/components/trees/imodel-content-tree/IModelContentTree.js +39 -54
- package/lib/esm/components/trees/imodel-content-tree/IModelContentTree.js.map +1 -1
- package/lib/esm/components/trees/imodel-content-tree/IModelContentTreeComponent.d.ts +14 -14
- package/lib/esm/components/trees/imodel-content-tree/IModelContentTreeComponent.js +12 -12
- package/lib/esm/components/trees/imodel-content-tree/IModelContentTreeComponent.js.map +1 -1
- package/lib/esm/components/trees/imodel-content-tree/IModelContentTreeDefinition.d.ts +28 -0
- package/lib/esm/components/trees/imodel-content-tree/IModelContentTreeDefinition.js +615 -0
- package/lib/esm/components/trees/imodel-content-tree/IModelContentTreeDefinition.js.map +1 -0
- package/lib/esm/components/trees/imodel-content-tree/internal/IModelContentTreeIdsCache.d.ts +26 -0
- package/lib/esm/components/trees/imodel-content-tree/internal/IModelContentTreeIdsCache.js +199 -0
- package/lib/esm/components/trees/imodel-content-tree/internal/IModelContentTreeIdsCache.js.map +1 -0
- package/lib/esm/components/trees/index.d.ts +4 -16
- package/lib/esm/components/trees/index.js +4 -16
- package/lib/esm/components/trees/index.js.map +1 -1
- package/lib/esm/components/trees/models-tree/ModelsTree.d.ts +17 -72
- package/lib/esm/components/trees/models-tree/ModelsTree.js +196 -132
- package/lib/esm/components/trees/models-tree/ModelsTree.js.map +1 -1
- package/lib/esm/components/trees/models-tree/ModelsTreeButtons.d.ts +33 -0
- package/lib/esm/components/trees/models-tree/ModelsTreeButtons.js +92 -0
- package/lib/esm/components/trees/models-tree/ModelsTreeButtons.js.map +1 -0
- package/lib/esm/components/trees/models-tree/ModelsTreeComponent.d.ts +14 -35
- package/lib/esm/components/trees/models-tree/ModelsTreeComponent.js +38 -81
- package/lib/esm/components/trees/models-tree/ModelsTreeComponent.js.map +1 -1
- package/lib/esm/components/trees/models-tree/ModelsTreeDefinition.d.ts +67 -0
- package/lib/esm/components/trees/models-tree/ModelsTreeDefinition.js +613 -0
- package/lib/esm/components/trees/models-tree/ModelsTreeDefinition.js.map +1 -0
- package/lib/esm/components/trees/models-tree/internal/AlwaysAndNeverDrawnElementInfo.d.ts +24 -0
- package/lib/esm/components/trees/models-tree/internal/AlwaysAndNeverDrawnElementInfo.js +117 -0
- package/lib/esm/components/trees/models-tree/internal/AlwaysAndNeverDrawnElementInfo.js.map +1 -0
- package/lib/esm/components/trees/models-tree/internal/ModelsTreeIdsCache.d.ts +44 -0
- package/lib/esm/components/trees/models-tree/internal/ModelsTreeIdsCache.js +321 -0
- package/lib/esm/components/trees/models-tree/internal/ModelsTreeIdsCache.js.map +1 -0
- package/lib/esm/components/trees/models-tree/internal/ModelsTreeNode.d.ts +31 -0
- package/lib/esm/components/trees/models-tree/internal/ModelsTreeNode.js +37 -0
- package/lib/esm/components/trees/models-tree/internal/ModelsTreeNode.js.map +1 -0
- package/lib/esm/components/trees/models-tree/internal/ModelsTreeVisibilityHandler.d.ts +122 -0
- package/lib/esm/components/trees/models-tree/internal/ModelsTreeVisibilityHandler.js +748 -0
- package/lib/esm/components/trees/models-tree/internal/ModelsTreeVisibilityHandler.js.map +1 -0
- package/lib/esm/components/trees/models-tree/internal/Tooltip.d.ts +13 -0
- package/lib/esm/components/trees/models-tree/internal/Tooltip.js +24 -0
- package/lib/esm/components/trees/models-tree/internal/Tooltip.js.map +1 -0
- package/lib/esm/components/trees/models-tree/internal/VisibilityChangeEventListener.d.ts +10 -0
- package/lib/esm/components/trees/models-tree/internal/VisibilityChangeEventListener.js +39 -0
- package/lib/esm/components/trees/models-tree/internal/VisibilityChangeEventListener.js.map +1 -0
- package/lib/esm/tree-widget-react.d.ts +3 -4
- package/lib/esm/tree-widget-react.js +3 -4
- package/lib/esm/tree-widget-react.js.map +1 -1
- package/lib/public/locales/en/TreeWidget.json +126 -42
- package/package.json +19 -6
- package/lib/cjs/components/TreeFilteringState.d.ts +0 -18
- package/lib/cjs/components/TreeFilteringState.js +0 -46
- package/lib/cjs/components/TreeFilteringState.js.map +0 -1
- package/lib/cjs/components/trees/CategoriesVisibilityUtils.d.ts +0 -25
- package/lib/cjs/components/trees/CategoriesVisibilityUtils.js.map +0 -1
- package/lib/cjs/components/trees/VisibilityTreeBase.scss +0 -82
- package/lib/cjs/components/trees/VisibilityTreeEventHandler.d.ts +0 -67
- package/lib/cjs/components/trees/VisibilityTreeEventHandler.js +0 -158
- package/lib/cjs/components/trees/VisibilityTreeEventHandler.js.map +0 -1
- package/lib/cjs/components/trees/VisibilityTreeRenderer.d.ts +0 -100
- package/lib/cjs/components/trees/VisibilityTreeRenderer.js +0 -98
- package/lib/cjs/components/trees/VisibilityTreeRenderer.js.map +0 -1
- package/lib/cjs/components/trees/category-tree/Categories.json +0 -99
- package/lib/cjs/components/trees/category-tree/CategoriesTree.d.ts +0 -60
- package/lib/cjs/components/trees/category-tree/CategoriesTree.js +0 -141
- package/lib/cjs/components/trees/category-tree/CategoriesTree.js.map +0 -1
- package/lib/cjs/components/trees/category-tree/CategoriesTreeComponent.d.ts +0 -71
- package/lib/cjs/components/trees/category-tree/CategoriesTreeComponent.js +0 -123
- package/lib/cjs/components/trees/category-tree/CategoriesTreeComponent.js.map +0 -1
- package/lib/cjs/components/trees/category-tree/CategoryVisibilityHandler.d.ts +0 -72
- package/lib/cjs/components/trees/category-tree/CategoryVisibilityHandler.js +0 -172
- package/lib/cjs/components/trees/category-tree/CategoryVisibilityHandler.js.map +0 -1
- package/lib/cjs/components/trees/common/ContextMenu.d.ts +0 -39
- package/lib/cjs/components/trees/common/ContextMenu.js +0 -44
- package/lib/cjs/components/trees/common/ContextMenu.js.map +0 -1
- package/lib/cjs/components/trees/common/ReportingTreeEventHandler.d.ts +0 -27
- package/lib/cjs/components/trees/common/ReportingTreeEventHandler.js +0 -51
- package/lib/cjs/components/trees/common/ReportingTreeEventHandler.js.map +0 -1
- package/lib/cjs/components/trees/common/TreeNodeRenderer.d.ts +0 -61
- package/lib/cjs/components/trees/common/TreeNodeRenderer.js +0 -50
- package/lib/cjs/components/trees/common/TreeNodeRenderer.js.map +0 -1
- package/lib/cjs/components/trees/common/TreeRenderer.d.ts +0 -55
- package/lib/cjs/components/trees/common/TreeRenderer.js +0 -67
- package/lib/cjs/components/trees/common/TreeRenderer.js.map +0 -1
- package/lib/cjs/components/trees/common/TreeRenderer.scss +0 -149
- package/lib/cjs/components/trees/common/Types.d.ts +0 -57
- package/lib/cjs/components/trees/common/Types.js +0 -21
- package/lib/cjs/components/trees/common/Types.js.map +0 -1
- package/lib/cjs/components/trees/common/UseVisibilityTreeState.d.ts +0 -43
- package/lib/cjs/components/trees/common/UseVisibilityTreeState.js +0 -49
- package/lib/cjs/components/trees/common/UseVisibilityTreeState.js.map +0 -1
- package/lib/cjs/components/trees/external-sources-tree/ExternalSources.json +0 -228
- package/lib/cjs/components/trees/imodel-content-tree/IModelContent.json +0 -443
- package/lib/cjs/components/trees/models-tree/ModelsTreeEventHandler.d.ts +0 -19
- package/lib/cjs/components/trees/models-tree/ModelsTreeEventHandler.js +0 -36
- package/lib/cjs/components/trees/models-tree/ModelsTreeEventHandler.js.map +0 -1
- package/lib/cjs/components/trees/models-tree/ModelsVisibilityHandler.d.ts +0 -130
- package/lib/cjs/components/trees/models-tree/ModelsVisibilityHandler.js +0 -651
- package/lib/cjs/components/trees/models-tree/ModelsVisibilityHandler.js.map +0 -1
- package/lib/cjs/components/trees/models-tree/Utils.d.ts +0 -29
- package/lib/cjs/components/trees/models-tree/Utils.js +0 -556
- package/lib/cjs/components/trees/models-tree/Utils.js.map +0 -1
- package/lib/cjs/components/utils/UseTreeTransientState.d.ts +0 -19
- package/lib/cjs/components/utils/UseTreeTransientState.js +0 -33
- package/lib/cjs/components/utils/UseTreeTransientState.js.map +0 -1
- package/lib/esm/components/TreeFilteringState.d.ts +0 -18
- package/lib/esm/components/TreeFilteringState.js +0 -42
- package/lib/esm/components/TreeFilteringState.js.map +0 -1
- package/lib/esm/components/trees/CategoriesVisibilityUtils.d.ts +0 -25
- package/lib/esm/components/trees/CategoriesVisibilityUtils.js.map +0 -1
- package/lib/esm/components/trees/VisibilityTreeBase.scss +0 -82
- package/lib/esm/components/trees/VisibilityTreeEventHandler.d.ts +0 -67
- package/lib/esm/components/trees/VisibilityTreeEventHandler.js +0 -154
- package/lib/esm/components/trees/VisibilityTreeEventHandler.js.map +0 -1
- package/lib/esm/components/trees/VisibilityTreeRenderer.d.ts +0 -100
- package/lib/esm/components/trees/VisibilityTreeRenderer.js +0 -86
- package/lib/esm/components/trees/VisibilityTreeRenderer.js.map +0 -1
- package/lib/esm/components/trees/category-tree/Categories.json +0 -99
- package/lib/esm/components/trees/category-tree/CategoriesTree.d.ts +0 -60
- package/lib/esm/components/trees/category-tree/CategoriesTree.js +0 -111
- package/lib/esm/components/trees/category-tree/CategoriesTree.js.map +0 -1
- package/lib/esm/components/trees/category-tree/CategoriesTreeComponent.d.ts +0 -71
- package/lib/esm/components/trees/category-tree/CategoriesTreeComponent.js +0 -116
- package/lib/esm/components/trees/category-tree/CategoriesTreeComponent.js.map +0 -1
- package/lib/esm/components/trees/category-tree/CategoryVisibilityHandler.d.ts +0 -72
- package/lib/esm/components/trees/category-tree/CategoryVisibilityHandler.js +0 -164
- package/lib/esm/components/trees/category-tree/CategoryVisibilityHandler.js.map +0 -1
- package/lib/esm/components/trees/common/ContextMenu.d.ts +0 -39
- package/lib/esm/components/trees/common/ContextMenu.js +0 -39
- package/lib/esm/components/trees/common/ContextMenu.js.map +0 -1
- package/lib/esm/components/trees/common/ReportingTreeEventHandler.d.ts +0 -27
- package/lib/esm/components/trees/common/ReportingTreeEventHandler.js +0 -47
- package/lib/esm/components/trees/common/ReportingTreeEventHandler.js.map +0 -1
- package/lib/esm/components/trees/common/TreeNodeRenderer.d.ts +0 -61
- package/lib/esm/components/trees/common/TreeNodeRenderer.js +0 -44
- package/lib/esm/components/trees/common/TreeNodeRenderer.js.map +0 -1
- package/lib/esm/components/trees/common/TreeRenderer.d.ts +0 -55
- package/lib/esm/components/trees/common/TreeRenderer.js +0 -59
- package/lib/esm/components/trees/common/TreeRenderer.js.map +0 -1
- package/lib/esm/components/trees/common/TreeRenderer.scss +0 -149
- package/lib/esm/components/trees/common/Types.d.ts +0 -57
- package/lib/esm/components/trees/common/Types.js +0 -18
- package/lib/esm/components/trees/common/Types.js.map +0 -1
- package/lib/esm/components/trees/common/UseVisibilityTreeState.d.ts +0 -43
- package/lib/esm/components/trees/common/UseVisibilityTreeState.js +0 -45
- package/lib/esm/components/trees/common/UseVisibilityTreeState.js.map +0 -1
- package/lib/esm/components/trees/external-sources-tree/ExternalSources.json +0 -228
- package/lib/esm/components/trees/imodel-content-tree/IModelContent.json +0 -443
- package/lib/esm/components/trees/models-tree/ModelsTreeEventHandler.d.ts +0 -19
- package/lib/esm/components/trees/models-tree/ModelsTreeEventHandler.js +0 -32
- package/lib/esm/components/trees/models-tree/ModelsTreeEventHandler.js.map +0 -1
- package/lib/esm/components/trees/models-tree/ModelsVisibilityHandler.d.ts +0 -130
- package/lib/esm/components/trees/models-tree/ModelsVisibilityHandler.js +0 -641
- package/lib/esm/components/trees/models-tree/ModelsVisibilityHandler.js.map +0 -1
- package/lib/esm/components/trees/models-tree/Utils.d.ts +0 -29
- package/lib/esm/components/trees/models-tree/Utils.js +0 -548
- package/lib/esm/components/trees/models-tree/Utils.js.map +0 -1
- package/lib/esm/components/utils/UseTreeTransientState.d.ts +0 -19
- package/lib/esm/components/utils/UseTreeTransientState.js +0 -29
- package/lib/esm/components/utils/UseTreeTransientState.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VisibilityTree.js","sourceRoot":"","sources":["../../../../../../src/components/trees/common/components/VisibilityTree.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAa9C,gBAAgB;AAChB,MAAM,UAAU,cAAc,CAAC,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,GAAG,KAAK,EAAuB;IAC/G,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,KAAK,CAAC;IAC3C,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACjH,MAAM,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,EAAE,GAAG,sBAAsB,CAAC;QACrF,wBAAwB,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC,wBAAwB,CAAC,YAAY,CAAC,EAAE,CAAC,wBAAwB,EAAE,YAAY,CAAC,CAAC;KAC9H,CAAC,CAAC;IAEH,OAAO,CACL,KAAC,QAAQ,OACH,KAAK,EACT,qBAAqB,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;YAC1C,qBAAqB,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC1C,IAAI,MAAM,KAAK,QAAQ,EAAE;gBACvB,cAAc,EAAE,CAAC;aAClB;QACH,CAAC,EACD,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,KAAC,sBAAsB,OAAK,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,GAAI,GAChJ,CACH,CAAC;AACJ,CAAC;AAID,SAAS,sBAAsB,CAAC,EAC9B,gBAAgB,EAChB,iBAAiB,EAAE,OAAO,EAC1B,WAAW,EACX,GAAG,KAAK,EAC2I;IACnJ,MAAM,EAAE,iBAAiB,EAAE,GAAG,uBAAuB,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC;IACrI,MAAM,0BAA0B,GAAG,kBAAkB,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE,CAAC,CAAC;IAElI,MAAM,aAAa,GAAuC,OAAO,CAC/D,GAAG,EAAE,CAAC,CAAC;QACL,OAAO,EAAE,SAAS;QAClB,gBAAgB;QAChB,iBAAiB,EAAE,0BAA0B;KAC9C,CAAC,EACF,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,CAC/C,CAAC;IAEF,OAAO,KAAC,YAAY,OAAK,KAAK,EAAE,aAAa,EAAE,aAAa,GAAI,CAAC;AACnE,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\nimport { useCallback, useMemo } from \"react\";\nimport { useReportingAction } from \"../UseFeatureReporting\";\nimport { useHierarchyVisibility } from \"../UseHierarchyVisibility\";\nimport { useMultiCheckboxHandler } from \"../UseMultiCheckboxHandler\";\nimport { createIModelAccess } from \"../Utils\";\nimport { BaseTree } from \"./BaseTree\";\nimport { TreeRenderer } from \"./TreeRenderer\";\n\nimport type { ECClassHierarchyInspector } from \"@itwin/presentation-shared\";\nimport type { HierarchyVisibilityHandler } from \"../UseHierarchyVisibility\";\nimport type { ComponentPropsWithoutRef } from \"react\";\n\ntype BaseTreeProps = ComponentPropsWithoutRef<typeof BaseTree>;\ntype UseHierarchyVisibilityProps = Parameters<typeof useHierarchyVisibility>[0];\ntype VisibilityTreeProps = Omit<BaseTreeProps, \"treeRenderer\" | \"imodelAccess\"> &\n Omit<UseHierarchyVisibilityProps, \"visibilityHandlerFactory\"> & {\n visibilityHandlerFactory: (imodelAccess: ECClassHierarchyInspector) => HierarchyVisibilityHandler;\n };\n\n/** @internal */\nexport function VisibilityTree({ visibilityHandlerFactory, onPerformanceMeasured, ...props }: VisibilityTreeProps) {\n const { imodel, getSchemaContext } = props;\n const imodelAccess = useMemo(() => createIModelAccess({ imodel, getSchemaContext }), [imodel, getSchemaContext]);\n const { getCheckboxState, onCheckboxClicked, triggerRefresh } = useHierarchyVisibility({\n visibilityHandlerFactory: useCallback(() => visibilityHandlerFactory(imodelAccess), [visibilityHandlerFactory, imodelAccess]),\n });\n\n return (\n <BaseTree\n {...props}\n onPerformanceMeasured={(action, duration) => {\n onPerformanceMeasured?.(action, duration);\n if (action === \"reload\") {\n triggerRefresh();\n }\n }}\n imodelAccess={imodelAccess}\n treeRenderer={(treeProps) => <VisibilityTreeRenderer {...treeProps} getCheckboxState={getCheckboxState} onCheckboxClicked={onCheckboxClicked} />}\n />\n );\n}\n\ntype TreeRendererProps = ComponentPropsWithoutRef<typeof TreeRenderer>;\n\nfunction VisibilityTreeRenderer({\n getCheckboxState,\n onCheckboxClicked: onClick,\n reportUsage,\n ...props\n}: TreeRendererProps & Pick<ReturnType<typeof useHierarchyVisibility>, \"getCheckboxState\" | \"onCheckboxClicked\"> & Pick<BaseTreeProps, \"reportUsage\">) {\n const { onCheckboxClicked } = useMultiCheckboxHandler({ rootNodes: props.rootNodes, isNodeSelected: props.isNodeSelected, onClick });\n const reportingOnCheckboxClicked = useReportingAction({ featureId: \"visibility-change\", action: onCheckboxClicked, reportUsage });\n\n const checkboxProps: TreeRendererProps[\"checkboxProps\"] = useMemo(\n () => ({\n variant: \"eyeball\",\n getCheckboxState,\n onCheckboxClicked: reportingOnCheckboxClicked,\n }),\n [getCheckboxState, reportingOnCheckboxClicked],\n );\n\n return <TreeRenderer {...props} checkboxProps={checkboxProps} />;\n}\n"]}
|
|
@@ -1,39 +1,15 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import "../
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
*/
|
|
9
|
-
export declare const RULESET_EXTERNAL_SOURCES: Ruleset;
|
|
10
|
-
/**
|
|
11
|
-
* Props for the [[ExternalSourcesTree]] component
|
|
12
|
-
* @alpha
|
|
13
|
-
*/
|
|
14
|
-
export interface ExternalSourcesTreeProps extends BaseTreeProps {
|
|
15
|
-
/**
|
|
16
|
-
* Props for configuring hierarchy level.
|
|
17
|
-
* @beta
|
|
18
|
-
*/
|
|
19
|
-
hierarchyLevelConfig?: HierarchyLevelConfig;
|
|
20
|
-
/**
|
|
21
|
-
* Reports performance of a feature.
|
|
22
|
-
* @param featureId ID of the feature.
|
|
23
|
-
* @param elapsedTime Elapsed time of the feature.
|
|
24
|
-
* @beta
|
|
25
|
-
*/
|
|
26
|
-
onPerformanceMeasured?: (featureId: string, elapsedTime: number) => void;
|
|
27
|
-
/**
|
|
28
|
-
* Callback that is invoked when a tracked feature is used.
|
|
29
|
-
* @param featureId ID of the feature.
|
|
30
|
-
* @beta
|
|
31
|
-
*/
|
|
2
|
+
import { BaseTree } from "../common/components/BaseTree";
|
|
3
|
+
interface ExternalSourcesTreeOwnProps {
|
|
4
|
+
hierarchyLevelConfig?: {
|
|
5
|
+
sizeLimit?: number;
|
|
6
|
+
};
|
|
7
|
+
onPerformanceMeasured?: (featureId: string, duration: number) => void;
|
|
32
8
|
onFeatureUsed?: (feature: string) => void;
|
|
33
9
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
export
|
|
10
|
+
type BaseTreeProps = Parameters<typeof BaseTree>[0];
|
|
11
|
+
type ExternalSourcesTreeProps = ExternalSourcesTreeOwnProps & Pick<BaseTreeProps, "imodel" | "getSchemaContext" | "height" | "width" | "density" | "selectionMode">;
|
|
12
|
+
/** @internal */
|
|
13
|
+
export declare function ExternalSourcesTree({ onPerformanceMeasured, onFeatureUsed, ...props }: ExternalSourcesTreeProps): JSX.Element;
|
|
14
|
+
export {};
|
|
39
15
|
//# sourceMappingURL=ExternalSourcesTree.d.ts.map
|
|
@@ -3,66 +3,35 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
3
3
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
4
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
5
|
*--------------------------------------------------------------------------------------------*/
|
|
6
|
-
import "
|
|
7
|
-
import {
|
|
8
|
-
import { SelectionMode } from "@itwin/components-react";
|
|
9
|
-
import { PresentationTree, PresentationTreeNodeRenderer, UnifiedSelectionTreeEventHandler, usePresentationTreeState } from "@itwin/presentation-components";
|
|
10
|
-
import { ReportingTreeEventHandler } from "../common/ReportingTreeEventHandler";
|
|
11
|
-
import { FilterableTreeRenderer, TreeRenderer } from "../common/TreeRenderer";
|
|
6
|
+
import { SvgDetails, SvgDocument, SvgItem } from "@itwin/itwinui-icons-react";
|
|
7
|
+
import { BaseTree } from "../common/components/BaseTree";
|
|
12
8
|
import { useFeatureReporting } from "../common/UseFeatureReporting";
|
|
13
|
-
import { usePerformanceReporting } from "../common/UsePerformanceReporting";
|
|
14
|
-
import { addCustomTreeNodeItemLabelRenderer, combineTreeNodeItemCustomizations } from "../common/Utils";
|
|
15
|
-
import * as RULESET_EXTERNAL_SOURCES_IMPORT from "./ExternalSources.json";
|
|
16
9
|
import { ExternalSourcesTreeComponent } from "./ExternalSourcesTreeComponent";
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}, [reportUsage]);
|
|
42
|
-
const state = usePresentationTreeState({
|
|
43
|
-
imodel: props.iModel,
|
|
44
|
-
ruleset: RULESET_EXTERNAL_SOURCES,
|
|
45
|
-
pagingSize: PAGING_SIZE,
|
|
46
|
-
eventHandlerFactory,
|
|
47
|
-
customizeTreeNodeItem,
|
|
48
|
-
hierarchyLevelSizeLimit: hierarchyLevelConfig?.sizeLimit,
|
|
49
|
-
enableHierarchyAutoUpdate: true,
|
|
50
|
-
onNodeLoaded,
|
|
51
|
-
});
|
|
52
|
-
const treeRendererProps = {
|
|
53
|
-
contextMenuItems,
|
|
54
|
-
nodeLabelRenderer,
|
|
55
|
-
density,
|
|
56
|
-
};
|
|
57
|
-
if (!state) {
|
|
58
|
-
return null;
|
|
10
|
+
import { ExternalSourcesTreeDefinition } from "./ExternalSourcesTreeDefinition";
|
|
11
|
+
/** @internal */
|
|
12
|
+
export function ExternalSourcesTree({ onPerformanceMeasured, onFeatureUsed, ...props }) {
|
|
13
|
+
const { reportUsage } = useFeatureReporting({ onFeatureUsed, treeIdentifier: ExternalSourcesTreeComponent.id });
|
|
14
|
+
return (_jsx(BaseTree, { ...props, treeName: ExternalSourcesTreeComponent.id, getHierarchyDefinition: getDefinitionsProvider, getIcon: getIcon, selectionMode: props.selectionMode ?? "none", onPerformanceMeasured: (action, duration) => {
|
|
15
|
+
onPerformanceMeasured?.(`${ExternalSourcesTreeComponent.id}-${action}`, duration);
|
|
16
|
+
}, reportUsage: reportUsage }));
|
|
17
|
+
}
|
|
18
|
+
function getDefinitionsProvider(props) {
|
|
19
|
+
return new ExternalSourcesTreeDefinition(props);
|
|
20
|
+
}
|
|
21
|
+
function getIcon(node) {
|
|
22
|
+
if (node.extendedData?.imageId === undefined) {
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
switch (node.extendedData.imageId) {
|
|
26
|
+
case "icon-item":
|
|
27
|
+
return _jsx(SvgItem, {});
|
|
28
|
+
case "icon-ec-class":
|
|
29
|
+
return _jsx(SvgItem, {});
|
|
30
|
+
case "icon-document":
|
|
31
|
+
return _jsx(SvgDocument, {});
|
|
32
|
+
case "icon-ec-schema":
|
|
33
|
+
return _jsx(SvgDetails, {});
|
|
59
34
|
}
|
|
60
|
-
return
|
|
35
|
+
return undefined;
|
|
61
36
|
}
|
|
62
|
-
const customizeTreeNodeItem = combineTreeNodeItemCustomizations([
|
|
63
|
-
addCustomTreeNodeItemLabelRenderer,
|
|
64
|
-
(item, node) => {
|
|
65
|
-
item.icon = node.extendedData?.imageId;
|
|
66
|
-
},
|
|
67
|
-
]);
|
|
68
37
|
//# sourceMappingURL=ExternalSourcesTree.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExternalSourcesTree.js","sourceRoot":"","sources":["../../../../../src/components/trees/external-sources-tree/ExternalSourcesTree.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAEhG,OAAO,
|
|
1
|
+
{"version":3,"file":"ExternalSourcesTree.js","sourceRoot":"","sources":["../../../../../src/components/trees/external-sources-tree/ExternalSourcesTree.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAkBhF,gBAAgB;AAChB,MAAM,UAAU,mBAAmB,CAAC,EAAE,qBAAqB,EAAE,aAAa,EAAE,GAAG,KAAK,EAA4B;IAC9G,MAAM,EAAE,WAAW,EAAE,GAAG,mBAAmB,CAAC,EAAE,aAAa,EAAE,cAAc,EAAE,4BAA4B,CAAC,EAAE,EAAE,CAAC,CAAC;IAChH,OAAO,CACL,KAAC,QAAQ,OACH,KAAK,EACT,QAAQ,EAAE,4BAA4B,CAAC,EAAE,EACzC,sBAAsB,EAAE,sBAAsB,EAC9C,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,MAAM,EAC5C,qBAAqB,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;YAC1C,qBAAqB,EAAE,CAAC,GAAG,4BAA4B,CAAC,EAAE,IAAI,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAC;QACpF,CAAC,EACD,WAAW,EAAE,WAAW,GACxB,CACH,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,KAA6D;IAC3F,OAAO,IAAI,6BAA6B,CAAC,KAAK,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,OAAO,CAAC,IAA+B;IAC9C,IAAI,IAAI,CAAC,YAAY,EAAE,OAAO,KAAK,SAAS,EAAE;QAC5C,OAAO,SAAS,CAAC;KAClB;IAED,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;QACjC,KAAK,WAAW;YACd,OAAO,KAAC,OAAO,KAAG,CAAC;QACrB,KAAK,eAAe;YAClB,OAAO,KAAC,OAAO,KAAG,CAAC;QACrB,KAAK,eAAe;YAClB,OAAO,KAAC,WAAW,KAAG,CAAC;QACzB,KAAK,gBAAgB;YACnB,OAAO,KAAC,UAAU,KAAG,CAAC;KACzB;IAED,OAAO,SAAS,CAAC;AACnB,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\nimport { SvgDetails, SvgDocument, SvgItem } from \"@itwin/itwinui-icons-react\";\nimport { BaseTree } from \"../common/components/BaseTree\";\nimport { useFeatureReporting } from \"../common/UseFeatureReporting\";\nimport { ExternalSourcesTreeComponent } from \"./ExternalSourcesTreeComponent\";\nimport { ExternalSourcesTreeDefinition } from \"./ExternalSourcesTreeDefinition\";\n\nimport type { ReactElement } from \"react\";\nimport type { PresentationHierarchyNode } from \"@itwin/presentation-hierarchies-react\";\n\ninterface ExternalSourcesTreeOwnProps {\n hierarchyLevelConfig?: {\n sizeLimit?: number;\n };\n onPerformanceMeasured?: (featureId: string, duration: number) => void;\n onFeatureUsed?: (feature: string) => void;\n}\n\ntype BaseTreeProps = Parameters<typeof BaseTree>[0];\ntype GetHierarchyDefinitionsProviderCallback = BaseTreeProps[\"getHierarchyDefinition\"];\ntype ExternalSourcesTreeProps = ExternalSourcesTreeOwnProps &\n Pick<BaseTreeProps, \"imodel\" | \"getSchemaContext\" | \"height\" | \"width\" | \"density\" | \"selectionMode\">;\n\n/** @internal */\nexport function ExternalSourcesTree({ onPerformanceMeasured, onFeatureUsed, ...props }: ExternalSourcesTreeProps) {\n const { reportUsage } = useFeatureReporting({ onFeatureUsed, treeIdentifier: ExternalSourcesTreeComponent.id });\n return (\n <BaseTree\n {...props}\n treeName={ExternalSourcesTreeComponent.id}\n getHierarchyDefinition={getDefinitionsProvider}\n getIcon={getIcon}\n selectionMode={props.selectionMode ?? \"none\"}\n onPerformanceMeasured={(action, duration) => {\n onPerformanceMeasured?.(`${ExternalSourcesTreeComponent.id}-${action}`, duration);\n }}\n reportUsage={reportUsage}\n />\n );\n}\n\nfunction getDefinitionsProvider(props: Parameters<GetHierarchyDefinitionsProviderCallback>[0]) {\n return new ExternalSourcesTreeDefinition(props);\n}\n\nfunction getIcon(node: PresentationHierarchyNode): ReactElement | undefined {\n if (node.extendedData?.imageId === undefined) {\n return undefined;\n }\n\n switch (node.extendedData.imageId) {\n case \"icon-item\":\n return <SvgItem />;\n case \"icon-ec-class\":\n return <SvgItem />;\n case \"icon-document\":\n return <SvgDocument />;\n case \"icon-ec-schema\":\n return <SvgDetails />;\n }\n\n return undefined;\n}\n"]}
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
import "
|
|
3
|
-
import type {
|
|
1
|
+
import { ExternalSourcesTree } from "./ExternalSourcesTree";
|
|
2
|
+
import type { ComponentPropsWithoutRef } from "react";
|
|
3
|
+
import type { SelectionStorage } from "@itwin/presentation-hierarchies-react";
|
|
4
|
+
type ExternalSourcesTreeProps = ComponentPropsWithoutRef<typeof ExternalSourcesTree>;
|
|
5
|
+
interface ExternalSourcesTreeComponentProps extends Pick<ExternalSourcesTreeProps, "getSchemaContext" | "density" | "hierarchyLevelConfig" | "selectionMode" | "onPerformanceMeasured" | "onFeatureUsed"> {
|
|
6
|
+
selectionStorage: SelectionStorage;
|
|
7
|
+
}
|
|
4
8
|
/**
|
|
5
|
-
*
|
|
6
|
-
* @
|
|
7
|
-
*/
|
|
8
|
-
export type ExternalSourcesTreeComponentProps = Omit<ExternalSourcesTreeProps, "iModel" | "width" | "height">;
|
|
9
|
-
/**
|
|
10
|
-
* A component that displays an External Sources tree and any necessary "chrome".
|
|
11
|
-
* @alpha
|
|
9
|
+
* A component that renders `ExternalSourcesTree`.
|
|
10
|
+
* @beta
|
|
12
11
|
*/
|
|
13
12
|
export declare const ExternalSourcesTreeComponent: {
|
|
14
13
|
(props: ExternalSourcesTreeComponentProps): JSX.Element | null;
|
|
15
14
|
/**
|
|
16
|
-
* Id of the component. May be used when a creating a
|
|
17
|
-
* @
|
|
15
|
+
* Id of the component. May be used when a creating a `TreeDefinition` for `SelectableTree`.
|
|
16
|
+
* @beta
|
|
18
17
|
*/
|
|
19
18
|
id: string;
|
|
20
19
|
/**
|
|
21
|
-
* Label of the component. May be used when a creating a
|
|
22
|
-
* @
|
|
20
|
+
* Label of the component. May be used when a creating a `TreeDefinition` for `SelectableTree`.
|
|
21
|
+
* @beta
|
|
23
22
|
*/
|
|
24
23
|
getLabel(): string;
|
|
25
24
|
};
|
|
25
|
+
export {};
|
|
26
26
|
//# sourceMappingURL=ExternalSourcesTreeComponent.d.ts.map
|
|
@@ -3,30 +3,30 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
3
3
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
4
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
5
|
*--------------------------------------------------------------------------------------------*/
|
|
6
|
-
import "../VisibilityTreeBase.scss";
|
|
7
6
|
import { useActiveIModelConnection } from "@itwin/appui-react";
|
|
7
|
+
import { UnifiedSelectionProvider } from "@itwin/presentation-hierarchies-react";
|
|
8
8
|
import { TreeWidget } from "../../../TreeWidget";
|
|
9
9
|
import { AutoSizer } from "../../utils/AutoSizer";
|
|
10
10
|
import { ExternalSourcesTree } from "./ExternalSourcesTree";
|
|
11
11
|
/**
|
|
12
|
-
* A component that
|
|
13
|
-
* @
|
|
12
|
+
* A component that renders `ExternalSourcesTree`.
|
|
13
|
+
* @beta
|
|
14
14
|
*/
|
|
15
15
|
export const ExternalSourcesTreeComponent = (props) => {
|
|
16
|
-
const
|
|
17
|
-
if (!
|
|
16
|
+
const imodel = useActiveIModelConnection();
|
|
17
|
+
if (!imodel) {
|
|
18
18
|
return null;
|
|
19
19
|
}
|
|
20
|
-
return _jsx(AutoSizer, { children: ({ width, height }) => _jsx(ExternalSourcesTree, { ...props,
|
|
20
|
+
return (_jsx(UnifiedSelectionProvider, { storage: props.selectionStorage, children: _jsx(AutoSizer, { children: ({ width, height }) => _jsx(ExternalSourcesTree, { ...props, imodel: imodel, width: width, height: height }) }) }));
|
|
21
21
|
};
|
|
22
22
|
/**
|
|
23
|
-
* Id of the component. May be used when a creating a
|
|
24
|
-
* @
|
|
23
|
+
* Id of the component. May be used when a creating a `TreeDefinition` for `SelectableTree`.
|
|
24
|
+
* @beta
|
|
25
25
|
*/
|
|
26
|
-
ExternalSourcesTreeComponent.id = "external-sources-tree";
|
|
26
|
+
ExternalSourcesTreeComponent.id = "external-sources-tree-v2";
|
|
27
27
|
/**
|
|
28
|
-
* Label of the component. May be used when a creating a
|
|
29
|
-
* @
|
|
28
|
+
* Label of the component. May be used when a creating a `TreeDefinition` for `SelectableTree`.
|
|
29
|
+
* @beta
|
|
30
30
|
*/
|
|
31
|
-
ExternalSourcesTreeComponent.getLabel = () => TreeWidget.translate("
|
|
31
|
+
ExternalSourcesTreeComponent.getLabel = () => TreeWidget.translate("externalSourcesTree.label");
|
|
32
32
|
//# sourceMappingURL=ExternalSourcesTreeComponent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExternalSourcesTreeComponent.js","sourceRoot":"","sources":["../../../../../src/components/trees/external-sources-tree/ExternalSourcesTreeComponent.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAEhG,OAAO,
|
|
1
|
+
{"version":3,"file":"ExternalSourcesTreeComponent.js","sourceRoot":"","sources":["../../../../../src/components/trees/external-sources-tree/ExternalSourcesTreeComponent.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAa5D;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,KAAwC,EAAE,EAAE;IACvF,MAAM,MAAM,GAAG,yBAAyB,EAAE,CAAC;IAE3C,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,KAAC,wBAAwB,IAAC,OAAO,EAAE,KAAK,CAAC,gBAAgB,YACvD,KAAC,SAAS,cAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,KAAC,mBAAmB,OAAK,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAI,GAAa,GACvG,CAC5B,CAAC;AACJ,CAAC,CAAC;AAEF;;;GAGG;AACH,4BAA4B,CAAC,EAAE,GAAG,0BAA0B,CAAC;AAE7D;;;GAGG;AACH,4BAA4B,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\nimport { useActiveIModelConnection } from \"@itwin/appui-react\";\nimport { UnifiedSelectionProvider } from \"@itwin/presentation-hierarchies-react\";\nimport { TreeWidget } from \"../../../TreeWidget\";\nimport { AutoSizer } from \"../../utils/AutoSizer\";\nimport { ExternalSourcesTree } from \"./ExternalSourcesTree\";\n\nimport type { ComponentPropsWithoutRef } from \"react\";\nimport type { SelectionStorage } from \"@itwin/presentation-hierarchies-react\";\ntype ExternalSourcesTreeProps = ComponentPropsWithoutRef<typeof ExternalSourcesTree>;\ninterface ExternalSourcesTreeComponentProps\n extends Pick<\n ExternalSourcesTreeProps,\n \"getSchemaContext\" | \"density\" | \"hierarchyLevelConfig\" | \"selectionMode\" | \"onPerformanceMeasured\" | \"onFeatureUsed\"\n > {\n selectionStorage: SelectionStorage;\n}\n\n/**\n * A component that renders `ExternalSourcesTree`.\n * @beta\n */\nexport const ExternalSourcesTreeComponent = (props: ExternalSourcesTreeComponentProps) => {\n const imodel = useActiveIModelConnection();\n\n if (!imodel) {\n return null;\n }\n\n return (\n <UnifiedSelectionProvider storage={props.selectionStorage}>\n <AutoSizer>{({ width, height }) => <ExternalSourcesTree {...props} imodel={imodel} width={width} height={height} />}</AutoSizer>\n </UnifiedSelectionProvider>\n );\n};\n\n/**\n * Id of the component. May be used when a creating a `TreeDefinition` for `SelectableTree`.\n * @beta\n */\nExternalSourcesTreeComponent.id = \"external-sources-tree-v2\";\n\n/**\n * Label of the component. May be used when a creating a `TreeDefinition` for `SelectableTree`.\n * @beta\n */\nExternalSourcesTreeComponent.getLabel = () => TreeWidget.translate(\"externalSourcesTree.label\");\n"]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ECClassHierarchyInspector, ECSchemaProvider } from "@itwin/presentation-shared";
|
|
2
|
+
import type { DefineHierarchyLevelProps, HierarchyDefinition, HierarchyLevelDefinition, LimitingECSqlQueryExecutor, ProcessedHierarchyNode } from "@itwin/presentation-hierarchies";
|
|
3
|
+
interface ExternalSourcesTreeDefinitionProps {
|
|
4
|
+
imodelAccess: ECSchemaProvider & ECClassHierarchyInspector & LimitingECSqlQueryExecutor;
|
|
5
|
+
}
|
|
6
|
+
export declare class ExternalSourcesTreeDefinition implements HierarchyDefinition {
|
|
7
|
+
private _impl;
|
|
8
|
+
private _selectQueryFactory;
|
|
9
|
+
private _nodeLabelSelectClauseFactory;
|
|
10
|
+
private _queryExecutor;
|
|
11
|
+
private _isSupported?;
|
|
12
|
+
constructor(props: ExternalSourcesTreeDefinitionProps);
|
|
13
|
+
postProcessNode(node: ProcessedHierarchyNode): Promise<ProcessedHierarchyNode>;
|
|
14
|
+
defineHierarchyLevel(props: DefineHierarchyLevelProps): Promise<HierarchyLevelDefinition>;
|
|
15
|
+
private createRootHierarchyLevelDefinition;
|
|
16
|
+
private createExternalSourcesGroupChildrenQuery;
|
|
17
|
+
private createExternalSourceChildrenQuery;
|
|
18
|
+
private createExternalSourceSupportsFilteringSelector;
|
|
19
|
+
private createElementsNodeChildrenQuery;
|
|
20
|
+
private createCompositeLabelSelectClause;
|
|
21
|
+
private isSupported;
|
|
22
|
+
}
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=ExternalSourcesTreeDefinition.d.ts.map
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { createClassBasedHierarchyDefinition, createNodesQueryClauseFactory, HierarchyNode } from "@itwin/presentation-hierarchies";
|
|
6
|
+
import { createBisInstanceLabelSelectClauseFactory, ECSql } from "@itwin/presentation-shared";
|
|
7
|
+
export class ExternalSourcesTreeDefinition {
|
|
8
|
+
constructor(props) {
|
|
9
|
+
this._impl = createClassBasedHierarchyDefinition({
|
|
10
|
+
classHierarchyInspector: props.imodelAccess,
|
|
11
|
+
hierarchy: {
|
|
12
|
+
rootNodes: async (requestProps) => this.createRootHierarchyLevelDefinition(requestProps),
|
|
13
|
+
childNodes: [
|
|
14
|
+
{
|
|
15
|
+
parentNodeClassName: "BisCore.ExternalSourceGroup",
|
|
16
|
+
definitions: async (requestProps) => this.createExternalSourcesGroupChildrenQuery(requestProps),
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
parentNodeClassName: "BisCore.ExternalSource",
|
|
20
|
+
definitions: async (requestProps) => this.createExternalSourceChildrenQuery(requestProps),
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
customParentNodeKey: "ElementsNode",
|
|
24
|
+
definitions: async (requestProps) => this.createElementsNodeChildrenQuery(requestProps),
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
this._queryExecutor = props.imodelAccess;
|
|
30
|
+
this._selectQueryFactory = createNodesQueryClauseFactory({ imodelAccess: props.imodelAccess });
|
|
31
|
+
this._nodeLabelSelectClauseFactory = createBisInstanceLabelSelectClauseFactory({ classHierarchyInspector: props.imodelAccess });
|
|
32
|
+
}
|
|
33
|
+
async postProcessNode(node) {
|
|
34
|
+
if (HierarchyNode.isClassGroupingNode(node)) {
|
|
35
|
+
// `imageId` is assigned to instance nodes at query time, but grouping ones need to be handled during post-processing
|
|
36
|
+
return { ...node, extendedData: { ...node.extendedData, imageId: "icon-ec-class" } };
|
|
37
|
+
}
|
|
38
|
+
return node;
|
|
39
|
+
}
|
|
40
|
+
async defineHierarchyLevel(props) {
|
|
41
|
+
if (this._isSupported === undefined) {
|
|
42
|
+
this._isSupported = this.isSupported();
|
|
43
|
+
}
|
|
44
|
+
if ((await this._isSupported) === false) {
|
|
45
|
+
return [];
|
|
46
|
+
}
|
|
47
|
+
return this._impl.defineHierarchyLevel(props);
|
|
48
|
+
}
|
|
49
|
+
async createRootHierarchyLevelDefinition(props) {
|
|
50
|
+
const instanceFilterClauses = await this._selectQueryFactory.createFilterClauses({
|
|
51
|
+
filter: props.instanceFilter,
|
|
52
|
+
contentClass: { fullName: "BisCore.ExternalSource", alias: "this" },
|
|
53
|
+
});
|
|
54
|
+
return [
|
|
55
|
+
{
|
|
56
|
+
fullClassName: "BisCore.ExternalSource",
|
|
57
|
+
query: {
|
|
58
|
+
ecsql: `
|
|
59
|
+
SELECT
|
|
60
|
+
${await this._selectQueryFactory.createSelectClause({
|
|
61
|
+
ecClassId: { selector: ECSql.createRawPropertyValueSelector("this", "ECClassId") },
|
|
62
|
+
ecInstanceId: { selector: "this.ECInstanceId" },
|
|
63
|
+
nodeLabel: {
|
|
64
|
+
selector: await this.createCompositeLabelSelectClause({ externalSourceAlias: "this", repositoryLinkAlias: "rl" }),
|
|
65
|
+
},
|
|
66
|
+
extendedData: {
|
|
67
|
+
imageId: "icon-document",
|
|
68
|
+
},
|
|
69
|
+
autoExpand: true,
|
|
70
|
+
supportsFiltering: { selector: this.createExternalSourceSupportsFilteringSelector("this") },
|
|
71
|
+
})}
|
|
72
|
+
FROM ${instanceFilterClauses.from} this
|
|
73
|
+
${instanceFilterClauses.joins}
|
|
74
|
+
JOIN BisCore.SynchronizationConfigSpecifiesRootSources scsrs ON scsrs.TargetECInstanceId = this.ECInstanceId
|
|
75
|
+
LEFT JOIN BisCore.RepositoryLink rl ON rl.ECInstanceId = this.Repository.Id
|
|
76
|
+
${instanceFilterClauses.where ? `WHERE ${instanceFilterClauses.where}` : ""}
|
|
77
|
+
`,
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
];
|
|
81
|
+
}
|
|
82
|
+
async createExternalSourcesGroupChildrenQuery({ parentNodeInstanceIds: groupIds, instanceFilter, }) {
|
|
83
|
+
const instanceFilterClauses = await this._selectQueryFactory.createFilterClauses({
|
|
84
|
+
filter: instanceFilter,
|
|
85
|
+
contentClass: { fullName: "BisCore.ExternalSource", alias: "this" },
|
|
86
|
+
});
|
|
87
|
+
return [
|
|
88
|
+
{
|
|
89
|
+
fullClassName: "BisCore.ExternalSource",
|
|
90
|
+
query: {
|
|
91
|
+
ecsql: `
|
|
92
|
+
SELECT
|
|
93
|
+
${await this._selectQueryFactory.createSelectClause({
|
|
94
|
+
ecClassId: { selector: "this.ECClassId" },
|
|
95
|
+
ecInstanceId: { selector: "this.ECInstanceId" },
|
|
96
|
+
nodeLabel: {
|
|
97
|
+
selector: await this.createCompositeLabelSelectClause({ externalSourceAlias: "this", repositoryLinkAlias: "rl" }),
|
|
98
|
+
},
|
|
99
|
+
extendedData: {
|
|
100
|
+
imageId: "icon-document",
|
|
101
|
+
},
|
|
102
|
+
supportsFiltering: { selector: this.createExternalSourceSupportsFilteringSelector("this") },
|
|
103
|
+
})}
|
|
104
|
+
FROM ${instanceFilterClauses.from} this
|
|
105
|
+
JOIN BisCore.ExternalSourceGroupGroupsSources esggs ON esggs.TargetECInstanceId = this.ECInstanceId
|
|
106
|
+
LEFT JOIN BisCore.RepositoryLink rl ON rl.ECInstanceId = this.Repository.Id
|
|
107
|
+
${instanceFilterClauses.joins}
|
|
108
|
+
WHERE
|
|
109
|
+
esggs.SourceECInstanceId IN (${groupIds.map(() => "?").join(",")})
|
|
110
|
+
${instanceFilterClauses.where ? `AND ${instanceFilterClauses.where}` : ""}
|
|
111
|
+
`,
|
|
112
|
+
bindings: groupIds.map((id) => ({ type: "id", value: id })),
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
];
|
|
116
|
+
}
|
|
117
|
+
async createExternalSourceChildrenQuery({ parentNodeInstanceIds: sourceIds, instanceFilter, }) {
|
|
118
|
+
const instanceFilterClauses = await this._selectQueryFactory.createFilterClauses({
|
|
119
|
+
filter: instanceFilter,
|
|
120
|
+
contentClass: { fullName: "BisCore.ExternalSource", alias: "this" },
|
|
121
|
+
});
|
|
122
|
+
return [
|
|
123
|
+
{
|
|
124
|
+
fullClassName: "BisCore.ExternalSource",
|
|
125
|
+
query: {
|
|
126
|
+
ecsql: `
|
|
127
|
+
SELECT
|
|
128
|
+
${await this._selectQueryFactory.createSelectClause({
|
|
129
|
+
ecClassId: { selector: "this.ECClassId" },
|
|
130
|
+
ecInstanceId: { selector: "this.ECInstanceId" },
|
|
131
|
+
nodeLabel: {
|
|
132
|
+
selector: await this.createCompositeLabelSelectClause({ externalSourceAlias: "this", repositoryLinkAlias: "rl" }),
|
|
133
|
+
},
|
|
134
|
+
extendedData: {
|
|
135
|
+
imageId: "icon-document",
|
|
136
|
+
},
|
|
137
|
+
supportsFiltering: { selector: this.createExternalSourceSupportsFilteringSelector("this") },
|
|
138
|
+
})}
|
|
139
|
+
FROM ${instanceFilterClauses.from} this
|
|
140
|
+
JOIN BisCore.ExternalSourceAttachment esa ON esa.Attaches.Id = this.ECInstanceId
|
|
141
|
+
LEFT JOIN BisCore.RepositoryLink rl ON rl.ECInstanceId = this.Repository.Id
|
|
142
|
+
${instanceFilterClauses.joins}
|
|
143
|
+
WHERE
|
|
144
|
+
esa.Parent.Id IN (${sourceIds.map(() => "?").join(",")})
|
|
145
|
+
${instanceFilterClauses.where ? `AND ${instanceFilterClauses.where}` : ""}
|
|
146
|
+
`,
|
|
147
|
+
bindings: sourceIds.map((id) => ({ type: "id", value: id })),
|
|
148
|
+
},
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
node: {
|
|
152
|
+
key: "ElementsNode",
|
|
153
|
+
label: "Elements",
|
|
154
|
+
extendedData: {
|
|
155
|
+
sourceIds,
|
|
156
|
+
imageId: "icon-ec-schema",
|
|
157
|
+
},
|
|
158
|
+
supportsFiltering: true,
|
|
159
|
+
processingParams: {
|
|
160
|
+
hideIfNoChildren: true,
|
|
161
|
+
},
|
|
162
|
+
},
|
|
163
|
+
},
|
|
164
|
+
];
|
|
165
|
+
}
|
|
166
|
+
createExternalSourceSupportsFilteringSelector(alias) {
|
|
167
|
+
return `
|
|
168
|
+
IFNULL((
|
|
169
|
+
SELECT 1
|
|
170
|
+
FROM (
|
|
171
|
+
SELECT 1 FROM BisCore.ExternalSourceGroupGroupsSources WHERE SourceECInstanceId = ${alias}.ECInstanceId
|
|
172
|
+
UNION ALL
|
|
173
|
+
SELECT 1 FROM BisCore.ExternalSourceAttachment WHERE Parent.Id = ${alias}.ECInstanceId
|
|
174
|
+
)
|
|
175
|
+
LIMIT 1
|
|
176
|
+
), 0)
|
|
177
|
+
`;
|
|
178
|
+
}
|
|
179
|
+
async createElementsNodeChildrenQuery({ parentNode, instanceFilter }) {
|
|
180
|
+
const sourceIds = parentNode.extendedData?.sourceIds;
|
|
181
|
+
const instanceFilterClauses = await this._selectQueryFactory.createFilterClauses({
|
|
182
|
+
filter: instanceFilter,
|
|
183
|
+
contentClass: { fullName: "BisCore.GeometricElement", alias: "this" },
|
|
184
|
+
});
|
|
185
|
+
return [
|
|
186
|
+
{
|
|
187
|
+
fullClassName: "BisCore.GeometricElement",
|
|
188
|
+
query: {
|
|
189
|
+
ecsql: `
|
|
190
|
+
SELECT
|
|
191
|
+
${await this._selectQueryFactory.createSelectClause({
|
|
192
|
+
ecClassId: { selector: "this.ECClassId" },
|
|
193
|
+
ecInstanceId: { selector: "this.ECInstanceId" },
|
|
194
|
+
nodeLabel: {
|
|
195
|
+
selector: await this._nodeLabelSelectClauseFactory.createSelectClause({
|
|
196
|
+
classAlias: "this",
|
|
197
|
+
className: "BisCore.GeometricElement",
|
|
198
|
+
}),
|
|
199
|
+
},
|
|
200
|
+
extendedData: {
|
|
201
|
+
imageId: "icon-item",
|
|
202
|
+
},
|
|
203
|
+
grouping: { byClass: true },
|
|
204
|
+
hasChildren: false,
|
|
205
|
+
})}
|
|
206
|
+
FROM ${instanceFilterClauses.from} this
|
|
207
|
+
JOIN BisCore.ExternalSourceAspect esa ON esa.Element.Id = this.ECInstanceId
|
|
208
|
+
${instanceFilterClauses.joins}
|
|
209
|
+
WHERE
|
|
210
|
+
esa.Source.Id IN (${sourceIds.map(() => "?").join(",")})
|
|
211
|
+
${instanceFilterClauses.where ? `AND ${instanceFilterClauses.where}` : ""}
|
|
212
|
+
`,
|
|
213
|
+
bindings: sourceIds.map((id) => ({ type: "id", value: id })),
|
|
214
|
+
},
|
|
215
|
+
},
|
|
216
|
+
];
|
|
217
|
+
}
|
|
218
|
+
async createCompositeLabelSelectClause({ externalSourceAlias, repositoryLinkAlias }) {
|
|
219
|
+
return ECSql.createConcatenatedValueJsonSelector([
|
|
220
|
+
{
|
|
221
|
+
selector: `IIF(
|
|
222
|
+
${repositoryLinkAlias}.ECInstanceId IS NOT NULL,
|
|
223
|
+
${ECSql.createConcatenatedValueJsonSelector([
|
|
224
|
+
{
|
|
225
|
+
selector: await this._nodeLabelSelectClauseFactory.createSelectClause({
|
|
226
|
+
classAlias: repositoryLinkAlias,
|
|
227
|
+
className: "BisCore.RepositoryLink",
|
|
228
|
+
}),
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
type: "String",
|
|
232
|
+
value: " - ",
|
|
233
|
+
},
|
|
234
|
+
])},
|
|
235
|
+
''
|
|
236
|
+
)`,
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
selector: await this._nodeLabelSelectClauseFactory.createSelectClause({
|
|
240
|
+
classAlias: externalSourceAlias,
|
|
241
|
+
className: "BisCore.ExternalSource",
|
|
242
|
+
}),
|
|
243
|
+
},
|
|
244
|
+
]);
|
|
245
|
+
}
|
|
246
|
+
async isSupported() {
|
|
247
|
+
const query = `
|
|
248
|
+
SELECT 1
|
|
249
|
+
FROM ECDbMeta.ECSchemaDef
|
|
250
|
+
WHERE Name = 'BisCore' AND (VersionMajor > 1 OR (VersionMajor = 1 AND VersionMinor > 12))
|
|
251
|
+
`;
|
|
252
|
+
for await (const _row of this._queryExecutor.createQueryReader({ ecsql: query })) {
|
|
253
|
+
return true;
|
|
254
|
+
}
|
|
255
|
+
return false;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
//# sourceMappingURL=ExternalSourcesTreeDefinition.js.map
|