@itwin/appui-react 3.6.0-dev.55 → 3.6.0-dev.59
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/lib/cjs/appui-react/UiFramework.d.ts +4 -4
- package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
- package/lib/cjs/appui-react/UiFramework.js +3 -3
- package/lib/cjs/appui-react/UiFramework.js.map +1 -1
- package/lib/cjs/appui-react/backstage/Backstage.d.ts +4 -4
- package/lib/cjs/appui-react/backstage/Backstage.js +2 -2
- package/lib/cjs/appui-react/backstage/Backstage.js.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageItemProps.d.ts +3 -3
- package/lib/cjs/appui-react/backstage/BackstageItemProps.js +1 -1
- package/lib/cjs/appui-react/backstage/BackstageItemProps.js.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageItemUtilities.d.ts +6 -6
- package/lib/cjs/appui-react/backstage/BackstageItemUtilities.js +4 -4
- package/lib/cjs/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
- package/lib/cjs/appui-react/backstage/CommandLaunch.d.ts +2 -2
- package/lib/cjs/appui-react/backstage/CommandLaunch.js +1 -1
- package/lib/cjs/appui-react/backstage/CommandLaunch.js.map +1 -1
- package/lib/cjs/appui-react/backstage/FrontstageLaunch.d.ts +2 -2
- package/lib/cjs/appui-react/backstage/FrontstageLaunch.js +1 -1
- package/lib/cjs/appui-react/backstage/FrontstageLaunch.js.map +1 -1
- package/lib/cjs/appui-react/backstage/Separator.d.ts +1 -1
- package/lib/cjs/appui-react/backstage/Separator.js +1 -1
- package/lib/cjs/appui-react/backstage/Separator.js.map +1 -1
- package/lib/cjs/appui-react/backstage/TaskLaunch.d.ts +2 -2
- package/lib/cjs/appui-react/backstage/TaskLaunch.js +1 -1
- package/lib/cjs/appui-react/backstage/TaskLaunch.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/ConfigurableUiManager.d.ts +3 -3
- package/lib/cjs/appui-react/configurableui/ConfigurableUiManager.js +3 -3
- package/lib/cjs/appui-react/configurableui/ConfigurableUiManager.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/state.d.ts +3 -3
- package/lib/cjs/appui-react/configurableui/state.d.ts.map +1 -1
- package/lib/cjs/appui-react/configurableui/state.js +2 -2
- package/lib/cjs/appui-react/configurableui/state.js.map +1 -1
- package/lib/cjs/appui-react/content/ContentGroup.d.ts +1 -1
- package/lib/cjs/appui-react/content/ContentGroup.js.map +1 -1
- package/lib/cjs/appui-react/content/ContentLayout.d.ts +1 -1
- package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/Frontstage.d.ts +13 -13
- package/lib/cjs/appui-react/frontstage/Frontstage.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/Frontstage.js +1 -1
- package/lib/cjs/appui-react/frontstage/Frontstage.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageComposer.d.ts +6 -6
- package/lib/cjs/appui-react/frontstage/FrontstageComposer.js +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageComposer.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts +16 -16
- package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js +16 -16
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageManager.d.ts +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageManager.js +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageManager.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageProvider.d.ts +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageProvider.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useFrameworkVersion.d.ts +4 -4
- package/lib/cjs/appui-react/hooks/useFrameworkVersion.js +3 -3
- package/lib/cjs/appui-react/hooks/useFrameworkVersion.js.map +1 -1
- package/lib/cjs/appui-react/imodel-components/Common.d.ts +2 -2
- package/lib/cjs/appui-react/imodel-components/Common.js +1 -1
- package/lib/cjs/appui-react/imodel-components/Common.js.map +1 -1
- package/lib/cjs/appui-react/imodel-components/VisibilityTreeEventHandler.d.ts +6 -6
- package/lib/cjs/appui-react/imodel-components/VisibilityTreeEventHandler.js +1 -1
- package/lib/cjs/appui-react/imodel-components/VisibilityTreeEventHandler.js.map +1 -1
- package/lib/cjs/appui-react/imodel-components/VisibilityTreeRenderer.d.ts +6 -6
- package/lib/cjs/appui-react/imodel-components/VisibilityTreeRenderer.js +5 -5
- package/lib/cjs/appui-react/imodel-components/VisibilityTreeRenderer.js.map +1 -1
- package/lib/cjs/appui-react/imodel-components/category-tree/CategoriesTree.d.ts +4 -4
- package/lib/cjs/appui-react/imodel-components/category-tree/CategoriesTree.js +3 -3
- package/lib/cjs/appui-react/imodel-components/category-tree/CategoriesTree.js.map +1 -1
- package/lib/cjs/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.d.ts +3 -3
- package/lib/cjs/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js +1 -1
- package/lib/cjs/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js.map +1 -1
- package/lib/cjs/appui-react/imodel-components/models-tree/ModelsTree.d.ts +2 -2
- package/lib/cjs/appui-react/imodel-components/models-tree/ModelsTree.js +1 -1
- package/lib/cjs/appui-react/imodel-components/models-tree/ModelsTree.js.map +1 -1
- package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.d.ts +3 -3
- package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js +2 -2
- package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js.map +1 -1
- package/lib/cjs/appui-react/imodel-components/spatial-tree/SpatialContainmentTree.d.ts +2 -2
- package/lib/cjs/appui-react/imodel-components/spatial-tree/SpatialContainmentTree.js +1 -1
- package/lib/cjs/appui-react/imodel-components/spatial-tree/SpatialContainmentTree.js.map +1 -1
- package/lib/cjs/appui-react/keyinbrowser/KeyinBrowser.d.ts +5 -5
- package/lib/cjs/appui-react/keyinbrowser/KeyinBrowser.d.ts.map +1 -1
- package/lib/cjs/appui-react/keyinbrowser/KeyinBrowser.js +1 -1
- package/lib/cjs/appui-react/keyinbrowser/KeyinBrowser.js.map +1 -1
- package/lib/cjs/appui-react/messages/ActivityMessage.d.ts +2 -2
- package/lib/cjs/appui-react/messages/ActivityMessage.js +1 -1
- package/lib/cjs/appui-react/messages/ActivityMessage.js.map +1 -1
- package/lib/cjs/appui-react/messages/ActivityMessagePopup.d.ts +2 -2
- package/lib/cjs/appui-react/messages/ActivityMessagePopup.js +1 -1
- package/lib/cjs/appui-react/messages/ActivityMessagePopup.js.map +1 -1
- package/lib/cjs/appui-react/messages/StatusMessageRenderer.d.ts +2 -2
- package/lib/cjs/appui-react/messages/StatusMessageRenderer.js +1 -1
- package/lib/cjs/appui-react/messages/StatusMessageRenderer.js.map +1 -1
- package/lib/cjs/appui-react/messages/StatusMessagesContainer.d.ts +1 -1
- package/lib/cjs/appui-react/messages/StatusMessagesContainer.js +1 -1
- package/lib/cjs/appui-react/messages/StatusMessagesContainer.js.map +1 -1
- package/lib/cjs/appui-react/messages/StickyMessage.d.ts +2 -2
- package/lib/cjs/appui-react/messages/StickyMessage.js +1 -1
- package/lib/cjs/appui-react/messages/StickyMessage.js.map +1 -1
- package/lib/cjs/appui-react/messages/ToastMessage.d.ts +2 -2
- package/lib/cjs/appui-react/messages/ToastMessage.js +1 -1
- package/lib/cjs/appui-react/messages/ToastMessage.js.map +1 -1
- package/lib/cjs/appui-react/pickers/ListPicker.d.ts +1 -1
- package/lib/cjs/appui-react/pickers/ListPicker.js +1 -1
- package/lib/cjs/appui-react/pickers/ListPicker.js.map +1 -1
- package/lib/cjs/appui-react/safearea/SafeAreaContext.d.ts +1 -1
- package/lib/cjs/appui-react/safearea/SafeAreaContext.js +1 -1
- package/lib/cjs/appui-react/safearea/SafeAreaContext.js.map +1 -1
- package/lib/cjs/appui-react/selection/ClearEmphasisStatusField.d.ts +1 -1
- package/lib/cjs/appui-react/selection/ClearEmphasisStatusField.js +1 -1
- package/lib/cjs/appui-react/selection/ClearEmphasisStatusField.js.map +1 -1
- package/lib/cjs/appui-react/settings/ui/UiSettingsPage.d.ts +2 -2
- package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js +2 -2
- package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
- package/lib/cjs/appui-react/shared/CustomItemProps.js.map +1 -1
- package/lib/cjs/appui-react/shared/GroupItemProps.d.ts +1 -1
- package/lib/cjs/appui-react/shared/GroupItemProps.d.ts.map +1 -1
- package/lib/cjs/appui-react/shared/GroupItemProps.js.map +1 -1
- package/lib/cjs/appui-react/shared/ItemDefBase.d.ts +4 -4
- package/lib/cjs/appui-react/shared/ItemDefBase.d.ts.map +1 -1
- package/lib/cjs/appui-react/shared/ItemDefBase.js +3 -3
- package/lib/cjs/appui-react/shared/ItemDefBase.js.map +1 -1
- package/lib/cjs/appui-react/shared/ItemProps.d.ts +4 -4
- package/lib/cjs/appui-react/shared/ItemProps.js.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanel.d.ts +5 -5
- package/lib/cjs/appui-react/stagepanels/StagePanel.js +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanel.js.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelHeader.d.ts +2 -2
- package/lib/cjs/appui-react/stagepanels/StagePanelHeader.js +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelHeader.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBar.d.ts +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.d.ts +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.js +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarWidgetControl.d.ts +3 -3
- package/lib/cjs/appui-react/statusbar/StatusBarWidgetControl.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/withMessageCenterFieldProps.d.ts +1 -1
- package/lib/cjs/appui-react/statusbar/withMessageCenterFieldProps.js +1 -1
- package/lib/cjs/appui-react/statusbar/withMessageCenterFieldProps.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/withStatusFieldProps.d.ts +1 -1
- package/lib/cjs/appui-react/statusbar/withStatusFieldProps.js +1 -1
- package/lib/cjs/appui-react/statusbar/withStatusFieldProps.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/ConditionalField.d.ts +1 -1
- package/lib/cjs/appui-react/statusfields/ConditionalField.js +1 -1
- package/lib/cjs/appui-react/statusfields/ConditionalField.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/FooterModeField.d.ts +1 -1
- package/lib/cjs/appui-react/statusfields/FooterModeField.js +1 -1
- package/lib/cjs/appui-react/statusfields/FooterModeField.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/Indicator.d.ts +4 -4
- package/lib/cjs/appui-react/statusfields/Indicator.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/Indicator.js +1 -1
- package/lib/cjs/appui-react/statusfields/Indicator.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts +1 -1
- package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/PromptField.d.ts +1 -1
- package/lib/cjs/appui-react/statusfields/PromptField.js +1 -1
- package/lib/cjs/appui-react/statusfields/PromptField.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/StatusFieldProps.d.ts +3 -3
- package/lib/cjs/appui-react/statusfields/StatusFieldProps.js.map +1 -1
- package/lib/cjs/appui-react/syncui/BooleanListener.d.ts +2 -2
- package/lib/cjs/appui-react/syncui/BooleanListener.js +1 -1
- package/lib/cjs/appui-react/syncui/BooleanListener.js.map +1 -1
- package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts +5 -5
- package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
- package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js +3 -3
- package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ActionItemButton.d.ts +2 -2
- package/lib/cjs/appui-react/toolbar/ActionItemButton.js +1 -1
- package/lib/cjs/appui-react/toolbar/ActionItemButton.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/GroupItem.d.ts +5 -5
- package/lib/cjs/appui-react/toolbar/GroupItem.d.ts.map +1 -1
- package/lib/cjs/appui-react/toolbar/GroupItem.js +2 -2
- package/lib/cjs/appui-react/toolbar/GroupItem.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/PopupButton.d.ts +4 -4
- package/lib/cjs/appui-react/toolbar/PopupButton.js +1 -1
- package/lib/cjs/appui-react/toolbar/PopupButton.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolButton.d.ts +2 -2
- package/lib/cjs/appui-react/toolbar/ToolButton.js +1 -1
- package/lib/cjs/appui-react/toolbar/ToolButton.js.map +1 -1
- package/lib/cjs/appui-react/tools/CoreToolDefinitions.d.ts +1 -1
- package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +1 -1
- package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
- package/lib/cjs/appui-react/tools/MarkupToolDefinitions.d.ts +1 -1
- package/lib/cjs/appui-react/tools/MarkupToolDefinitions.js +1 -1
- package/lib/cjs/appui-react/tools/MarkupToolDefinitions.js.map +1 -1
- package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts +2 -2
- package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
- package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -1
- package/lib/cjs/appui-react/uistate/UserSettingsStorage.d.ts +1 -1
- package/lib/cjs/appui-react/uistate/UserSettingsStorage.js +1 -1
- package/lib/cjs/appui-react/uistate/UserSettingsStorage.js.map +1 -1
- package/lib/cjs/appui-react/widgets/DefaultNavigationWidget.d.ts +3 -3
- package/lib/cjs/appui-react/widgets/DefaultNavigationWidget.js +2 -2
- package/lib/cjs/appui-react/widgets/DefaultNavigationWidget.js.map +1 -1
- package/lib/cjs/appui-react/widgets/NavigationWidget.d.ts +3 -3
- package/lib/cjs/appui-react/widgets/NavigationWidget.js +2 -2
- package/lib/cjs/appui-react/widgets/NavigationWidget.js.map +1 -1
- package/lib/cjs/appui-react/widgets/StableWidgetDef.d.ts +1 -1
- package/lib/cjs/appui-react/widgets/StableWidgetDef.js +1 -1
- package/lib/cjs/appui-react/widgets/StableWidgetDef.js.map +1 -1
- package/lib/cjs/appui-react/widgets/ToolWidget.d.ts +3 -3
- package/lib/cjs/appui-react/widgets/ToolWidget.js +2 -2
- package/lib/cjs/appui-react/widgets/ToolWidget.js.map +1 -1
- package/lib/cjs/appui-react/widgets/ToolbarWidgetBase.d.ts +1 -1
- package/lib/cjs/appui-react/widgets/ToolbarWidgetBase.js +1 -1
- package/lib/cjs/appui-react/widgets/ToolbarWidgetBase.js.map +1 -1
- package/lib/cjs/appui-react/widgets/Widget.d.ts +1 -1
- package/lib/cjs/appui-react/widgets/Widget.js +1 -1
- package/lib/cjs/appui-react/widgets/Widget.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +14 -14
- package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.js +10 -10
- package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetProps.d.ts +1 -1
- package/lib/cjs/appui-react/widgets/WidgetProps.js.map +1 -1
- package/lib/cjs/appui-react/workflow/Task.d.ts +4 -4
- package/lib/cjs/appui-react/workflow/Task.js +2 -2
- package/lib/cjs/appui-react/workflow/Task.js.map +1 -1
- package/lib/cjs/appui-react/workflow/Workflow.d.ts +8 -8
- package/lib/cjs/appui-react/workflow/Workflow.js +4 -4
- package/lib/cjs/appui-react/workflow/Workflow.js.map +1 -1
- package/lib/cjs/appui-react/zones/Zone.d.ts +3 -3
- package/lib/cjs/appui-react/zones/Zone.js +2 -2
- package/lib/cjs/appui-react/zones/Zone.js.map +1 -1
- package/lib/cjs/appui-react/zones/ZoneDef.d.ts +5 -5
- package/lib/cjs/appui-react/zones/ZoneDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/zones/ZoneDef.js +5 -5
- package/lib/cjs/appui-react/zones/ZoneDef.js.map +1 -1
- package/lib/esm/appui-react/UiFramework.d.ts +4 -4
- package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
- package/lib/esm/appui-react/UiFramework.js +3 -3
- package/lib/esm/appui-react/UiFramework.js.map +1 -1
- package/lib/esm/appui-react/backstage/Backstage.d.ts +4 -4
- package/lib/esm/appui-react/backstage/Backstage.js +2 -2
- package/lib/esm/appui-react/backstage/Backstage.js.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageItemProps.d.ts +3 -3
- package/lib/esm/appui-react/backstage/BackstageItemProps.js +1 -1
- package/lib/esm/appui-react/backstage/BackstageItemProps.js.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageItemUtilities.d.ts +6 -6
- package/lib/esm/appui-react/backstage/BackstageItemUtilities.js +4 -4
- package/lib/esm/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
- package/lib/esm/appui-react/backstage/CommandLaunch.d.ts +2 -2
- package/lib/esm/appui-react/backstage/CommandLaunch.js +1 -1
- package/lib/esm/appui-react/backstage/CommandLaunch.js.map +1 -1
- package/lib/esm/appui-react/backstage/FrontstageLaunch.d.ts +2 -2
- package/lib/esm/appui-react/backstage/FrontstageLaunch.js +1 -1
- package/lib/esm/appui-react/backstage/FrontstageLaunch.js.map +1 -1
- package/lib/esm/appui-react/backstage/Separator.d.ts +1 -1
- package/lib/esm/appui-react/backstage/Separator.js +1 -1
- package/lib/esm/appui-react/backstage/Separator.js.map +1 -1
- package/lib/esm/appui-react/backstage/TaskLaunch.d.ts +2 -2
- package/lib/esm/appui-react/backstage/TaskLaunch.js +1 -1
- package/lib/esm/appui-react/backstage/TaskLaunch.js.map +1 -1
- package/lib/esm/appui-react/configurableui/ConfigurableUiManager.d.ts +3 -3
- package/lib/esm/appui-react/configurableui/ConfigurableUiManager.js +3 -3
- package/lib/esm/appui-react/configurableui/ConfigurableUiManager.js.map +1 -1
- package/lib/esm/appui-react/configurableui/state.d.ts +3 -3
- package/lib/esm/appui-react/configurableui/state.d.ts.map +1 -1
- package/lib/esm/appui-react/configurableui/state.js +2 -2
- package/lib/esm/appui-react/configurableui/state.js.map +1 -1
- package/lib/esm/appui-react/content/ContentGroup.d.ts +1 -1
- package/lib/esm/appui-react/content/ContentGroup.js.map +1 -1
- package/lib/esm/appui-react/content/ContentLayout.d.ts +1 -1
- package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
- package/lib/esm/appui-react/frontstage/Frontstage.d.ts +13 -13
- package/lib/esm/appui-react/frontstage/Frontstage.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/Frontstage.js +1 -1
- package/lib/esm/appui-react/frontstage/Frontstage.js.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageComposer.d.ts +6 -6
- package/lib/esm/appui-react/frontstage/FrontstageComposer.js +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageComposer.js.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts +16 -16
- package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageDef.js +16 -16
- package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageManager.d.ts +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageManager.js +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageManager.js.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageProvider.d.ts +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageProvider.js.map +1 -1
- package/lib/esm/appui-react/hooks/useFrameworkVersion.d.ts +4 -4
- package/lib/esm/appui-react/hooks/useFrameworkVersion.js +3 -3
- package/lib/esm/appui-react/hooks/useFrameworkVersion.js.map +1 -1
- package/lib/esm/appui-react/imodel-components/Common.d.ts +2 -2
- package/lib/esm/appui-react/imodel-components/Common.js +1 -1
- package/lib/esm/appui-react/imodel-components/Common.js.map +1 -1
- package/lib/esm/appui-react/imodel-components/VisibilityTreeEventHandler.d.ts +6 -6
- package/lib/esm/appui-react/imodel-components/VisibilityTreeEventHandler.js +1 -1
- package/lib/esm/appui-react/imodel-components/VisibilityTreeEventHandler.js.map +1 -1
- package/lib/esm/appui-react/imodel-components/VisibilityTreeRenderer.d.ts +6 -6
- package/lib/esm/appui-react/imodel-components/VisibilityTreeRenderer.js +5 -5
- package/lib/esm/appui-react/imodel-components/VisibilityTreeRenderer.js.map +1 -1
- package/lib/esm/appui-react/imodel-components/category-tree/CategoriesTree.d.ts +4 -4
- package/lib/esm/appui-react/imodel-components/category-tree/CategoriesTree.js +3 -3
- package/lib/esm/appui-react/imodel-components/category-tree/CategoriesTree.js.map +1 -1
- package/lib/esm/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.d.ts +3 -3
- package/lib/esm/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js +1 -1
- package/lib/esm/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js.map +1 -1
- package/lib/esm/appui-react/imodel-components/models-tree/ModelsTree.d.ts +2 -2
- package/lib/esm/appui-react/imodel-components/models-tree/ModelsTree.js +1 -1
- package/lib/esm/appui-react/imodel-components/models-tree/ModelsTree.js.map +1 -1
- package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.d.ts +3 -3
- package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js +2 -2
- package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js.map +1 -1
- package/lib/esm/appui-react/imodel-components/spatial-tree/SpatialContainmentTree.d.ts +2 -2
- package/lib/esm/appui-react/imodel-components/spatial-tree/SpatialContainmentTree.js +1 -1
- package/lib/esm/appui-react/imodel-components/spatial-tree/SpatialContainmentTree.js.map +1 -1
- package/lib/esm/appui-react/keyinbrowser/KeyinBrowser.d.ts +5 -5
- package/lib/esm/appui-react/keyinbrowser/KeyinBrowser.d.ts.map +1 -1
- package/lib/esm/appui-react/keyinbrowser/KeyinBrowser.js +1 -1
- package/lib/esm/appui-react/keyinbrowser/KeyinBrowser.js.map +1 -1
- package/lib/esm/appui-react/messages/ActivityMessage.d.ts +2 -2
- package/lib/esm/appui-react/messages/ActivityMessage.js +1 -1
- package/lib/esm/appui-react/messages/ActivityMessage.js.map +1 -1
- package/lib/esm/appui-react/messages/ActivityMessagePopup.d.ts +2 -2
- package/lib/esm/appui-react/messages/ActivityMessagePopup.js +1 -1
- package/lib/esm/appui-react/messages/ActivityMessagePopup.js.map +1 -1
- package/lib/esm/appui-react/messages/StatusMessageRenderer.d.ts +2 -2
- package/lib/esm/appui-react/messages/StatusMessageRenderer.js +1 -1
- package/lib/esm/appui-react/messages/StatusMessageRenderer.js.map +1 -1
- package/lib/esm/appui-react/messages/StatusMessagesContainer.d.ts +1 -1
- package/lib/esm/appui-react/messages/StatusMessagesContainer.js +1 -1
- package/lib/esm/appui-react/messages/StatusMessagesContainer.js.map +1 -1
- package/lib/esm/appui-react/messages/StickyMessage.d.ts +2 -2
- package/lib/esm/appui-react/messages/StickyMessage.js +1 -1
- package/lib/esm/appui-react/messages/StickyMessage.js.map +1 -1
- package/lib/esm/appui-react/messages/ToastMessage.d.ts +2 -2
- package/lib/esm/appui-react/messages/ToastMessage.js +1 -1
- package/lib/esm/appui-react/messages/ToastMessage.js.map +1 -1
- package/lib/esm/appui-react/pickers/ListPicker.d.ts +1 -1
- package/lib/esm/appui-react/pickers/ListPicker.js +1 -1
- package/lib/esm/appui-react/pickers/ListPicker.js.map +1 -1
- package/lib/esm/appui-react/safearea/SafeAreaContext.d.ts +1 -1
- package/lib/esm/appui-react/safearea/SafeAreaContext.js +1 -1
- package/lib/esm/appui-react/safearea/SafeAreaContext.js.map +1 -1
- package/lib/esm/appui-react/selection/ClearEmphasisStatusField.d.ts +1 -1
- package/lib/esm/appui-react/selection/ClearEmphasisStatusField.js +1 -1
- package/lib/esm/appui-react/selection/ClearEmphasisStatusField.js.map +1 -1
- package/lib/esm/appui-react/settings/ui/UiSettingsPage.d.ts +2 -2
- package/lib/esm/appui-react/settings/ui/UiSettingsPage.js +2 -2
- package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
- package/lib/esm/appui-react/shared/CustomItemProps.js.map +1 -1
- package/lib/esm/appui-react/shared/GroupItemProps.d.ts +1 -1
- package/lib/esm/appui-react/shared/GroupItemProps.d.ts.map +1 -1
- package/lib/esm/appui-react/shared/GroupItemProps.js.map +1 -1
- package/lib/esm/appui-react/shared/ItemDefBase.d.ts +4 -4
- package/lib/esm/appui-react/shared/ItemDefBase.d.ts.map +1 -1
- package/lib/esm/appui-react/shared/ItemDefBase.js +3 -3
- package/lib/esm/appui-react/shared/ItemDefBase.js.map +1 -1
- package/lib/esm/appui-react/shared/ItemProps.d.ts +4 -4
- package/lib/esm/appui-react/shared/ItemProps.js.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanel.d.ts +5 -5
- package/lib/esm/appui-react/stagepanels/StagePanel.js +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanel.js.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanelHeader.d.ts +2 -2
- package/lib/esm/appui-react/stagepanels/StagePanelHeader.js +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanelHeader.js.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBar.d.ts +1 -1
- package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarItemsManager.d.ts +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarItemsManager.js +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarWidgetControl.d.ts +3 -3
- package/lib/esm/appui-react/statusbar/StatusBarWidgetControl.js.map +1 -1
- package/lib/esm/appui-react/statusbar/withMessageCenterFieldProps.d.ts +1 -1
- package/lib/esm/appui-react/statusbar/withMessageCenterFieldProps.js +1 -1
- package/lib/esm/appui-react/statusbar/withMessageCenterFieldProps.js.map +1 -1
- package/lib/esm/appui-react/statusbar/withStatusFieldProps.d.ts +1 -1
- package/lib/esm/appui-react/statusbar/withStatusFieldProps.js +1 -1
- package/lib/esm/appui-react/statusbar/withStatusFieldProps.js.map +1 -1
- package/lib/esm/appui-react/statusfields/ConditionalField.d.ts +1 -1
- package/lib/esm/appui-react/statusfields/ConditionalField.js +1 -1
- package/lib/esm/appui-react/statusfields/ConditionalField.js.map +1 -1
- package/lib/esm/appui-react/statusfields/FooterModeField.d.ts +1 -1
- package/lib/esm/appui-react/statusfields/FooterModeField.js +1 -1
- package/lib/esm/appui-react/statusfields/FooterModeField.js.map +1 -1
- package/lib/esm/appui-react/statusfields/Indicator.d.ts +4 -4
- package/lib/esm/appui-react/statusfields/Indicator.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/Indicator.js +1 -1
- package/lib/esm/appui-react/statusfields/Indicator.js.map +1 -1
- package/lib/esm/appui-react/statusfields/MessageCenter.d.ts +1 -1
- package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
- package/lib/esm/appui-react/statusfields/PromptField.d.ts +1 -1
- package/lib/esm/appui-react/statusfields/PromptField.js +1 -1
- package/lib/esm/appui-react/statusfields/PromptField.js.map +1 -1
- package/lib/esm/appui-react/statusfields/StatusFieldProps.d.ts +3 -3
- package/lib/esm/appui-react/statusfields/StatusFieldProps.js.map +1 -1
- package/lib/esm/appui-react/syncui/BooleanListener.d.ts +2 -2
- package/lib/esm/appui-react/syncui/BooleanListener.js +1 -1
- package/lib/esm/appui-react/syncui/BooleanListener.js.map +1 -1
- package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts +5 -5
- package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
- package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js +3 -3
- package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ActionItemButton.d.ts +2 -2
- package/lib/esm/appui-react/toolbar/ActionItemButton.js +1 -1
- package/lib/esm/appui-react/toolbar/ActionItemButton.js.map +1 -1
- package/lib/esm/appui-react/toolbar/GroupItem.d.ts +5 -5
- package/lib/esm/appui-react/toolbar/GroupItem.d.ts.map +1 -1
- package/lib/esm/appui-react/toolbar/GroupItem.js +2 -2
- package/lib/esm/appui-react/toolbar/GroupItem.js.map +1 -1
- package/lib/esm/appui-react/toolbar/PopupButton.d.ts +4 -4
- package/lib/esm/appui-react/toolbar/PopupButton.js +1 -1
- package/lib/esm/appui-react/toolbar/PopupButton.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolButton.d.ts +2 -2
- package/lib/esm/appui-react/toolbar/ToolButton.js +1 -1
- package/lib/esm/appui-react/toolbar/ToolButton.js.map +1 -1
- package/lib/esm/appui-react/tools/CoreToolDefinitions.d.ts +1 -1
- package/lib/esm/appui-react/tools/CoreToolDefinitions.js +1 -1
- package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
- package/lib/esm/appui-react/tools/MarkupToolDefinitions.d.ts +1 -1
- package/lib/esm/appui-react/tools/MarkupToolDefinitions.js +1 -1
- package/lib/esm/appui-react/tools/MarkupToolDefinitions.js.map +1 -1
- package/lib/esm/appui-react/uistate/AppUiSettings.d.ts +2 -2
- package/lib/esm/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
- package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -1
- package/lib/esm/appui-react/uistate/UserSettingsStorage.d.ts +1 -1
- package/lib/esm/appui-react/uistate/UserSettingsStorage.js +1 -1
- package/lib/esm/appui-react/uistate/UserSettingsStorage.js.map +1 -1
- package/lib/esm/appui-react/widgets/DefaultNavigationWidget.d.ts +3 -3
- package/lib/esm/appui-react/widgets/DefaultNavigationWidget.js +2 -2
- package/lib/esm/appui-react/widgets/DefaultNavigationWidget.js.map +1 -1
- package/lib/esm/appui-react/widgets/NavigationWidget.d.ts +3 -3
- package/lib/esm/appui-react/widgets/NavigationWidget.js +2 -2
- package/lib/esm/appui-react/widgets/NavigationWidget.js.map +1 -1
- package/lib/esm/appui-react/widgets/StableWidgetDef.d.ts +1 -1
- package/lib/esm/appui-react/widgets/StableWidgetDef.js +1 -1
- package/lib/esm/appui-react/widgets/StableWidgetDef.js.map +1 -1
- package/lib/esm/appui-react/widgets/ToolWidget.d.ts +3 -3
- package/lib/esm/appui-react/widgets/ToolWidget.js +2 -2
- package/lib/esm/appui-react/widgets/ToolWidget.js.map +1 -1
- package/lib/esm/appui-react/widgets/ToolbarWidgetBase.d.ts +1 -1
- package/lib/esm/appui-react/widgets/ToolbarWidgetBase.js +1 -1
- package/lib/esm/appui-react/widgets/ToolbarWidgetBase.js.map +1 -1
- package/lib/esm/appui-react/widgets/Widget.d.ts +1 -1
- package/lib/esm/appui-react/widgets/Widget.js +1 -1
- package/lib/esm/appui-react/widgets/Widget.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetDef.d.ts +14 -14
- package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetDef.js +10 -10
- package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetProps.d.ts +1 -1
- package/lib/esm/appui-react/widgets/WidgetProps.js.map +1 -1
- package/lib/esm/appui-react/workflow/Task.d.ts +4 -4
- package/lib/esm/appui-react/workflow/Task.js +2 -2
- package/lib/esm/appui-react/workflow/Task.js.map +1 -1
- package/lib/esm/appui-react/workflow/Workflow.d.ts +8 -8
- package/lib/esm/appui-react/workflow/Workflow.js +4 -4
- package/lib/esm/appui-react/workflow/Workflow.js.map +1 -1
- package/lib/esm/appui-react/zones/Zone.d.ts +3 -3
- package/lib/esm/appui-react/zones/Zone.js +2 -2
- package/lib/esm/appui-react/zones/Zone.js.map +1 -1
- package/lib/esm/appui-react/zones/ZoneDef.d.ts +5 -5
- package/lib/esm/appui-react/zones/ZoneDef.d.ts.map +1 -1
- package/lib/esm/appui-react/zones/ZoneDef.js +5 -5
- package/lib/esm/appui-react/zones/ZoneDef.js.map +1 -1
- package/package.json +32 -32
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelsVisibilityHandler.js","sourceRoot":"","sources":["../../../../../src/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module IModelComponents\r\n */\r\n\r\n/* eslint-disable deprecation/deprecation */\r\n\r\nimport { TreeNodeItem } from \"@itwin/components-react\";\r\nimport { BeEvent, Id64String } from \"@itwin/core-bentley\";\r\nimport { QueryBinder, QueryRowFormat } from \"@itwin/core-common\";\r\nimport { IModelConnection, PerModelCategoryVisibility, Viewport } from \"@itwin/core-frontend\";\r\nimport { ECClassGroupingNodeKey, GroupingNodeKey, Keys, KeySet, NodeKey } from \"@itwin/presentation-common\";\r\nimport { IFilteredPresentationTreeDataProvider, IPresentationTreeDataProvider } from \"@itwin/presentation-components\";\r\nimport { Presentation } from \"@itwin/presentation-frontend\";\r\nimport { UiFramework } from \"../../UiFramework\";\r\nimport { IVisibilityHandler, VisibilityChangeListener, VisibilityStatus } from \"../VisibilityTreeEventHandler\";\r\nimport { CachingElementIdsContainer } from \"./Utils\";\r\n\r\n/**\r\n * Visibility tree node types.\r\n * @beta\r\n * @deprecated Was moved to `@itwin/tree-widget-react` package.\r\n */\r\nexport enum ModelsTreeNodeType {\r\n Unknown,\r\n Subject,\r\n Model,\r\n Category,\r\n Element,\r\n Grouping,\r\n}\r\n\r\n/**\r\n * Type definition of predicate used to decide if node can be selected\r\n * @beta\r\n * @deprecated Was moved to `@itwin/tree-widget-react` package.\r\n */\r\nexport type ModelsTreeSelectionPredicate = (key: NodeKey, type: ModelsTreeNodeType) => boolean;\r\n\r\n/**\r\n * Props for [[ModelsVisibilityHandler]]\r\n * @alpha\r\n */\r\nexport interface ModelsVisibilityHandlerProps {\r\n rulesetId: string;\r\n viewport: Viewport;\r\n hierarchyAutoUpdateEnabled?: boolean;\r\n /** @internal */\r\n subjectModelIdsCache?: SubjectModelIdsCache;\r\n}\r\n\r\n/**\r\n * Visibility handler used by [[ModelsTree]] to control visibility of the tree items.\r\n * @alpha\r\n * @deprecated Was moved to `@itwin/tree-widget-react` package.\r\n */\r\nexport class ModelsVisibilityHandler implements IVisibilityHandler {\r\n private _props: ModelsVisibilityHandlerProps;\r\n private _pendingVisibilityChange: any | undefined;\r\n private _subjectModelIdsCache: SubjectModelIdsCache;\r\n private _filteredDataProvider?: IFilteredPresentationTreeDataProvider;\r\n private _elementIdsCache: ElementIdsCache;\r\n private _listeners = new Array<() => void>();\r\n\r\n constructor(props: ModelsVisibilityHandlerProps) {\r\n this._props = props;\r\n this._subjectModelIdsCache = props.subjectModelIdsCache ?? new SubjectModelIdsCache(this._props.viewport.iModel);\r\n this._elementIdsCache = new ElementIdsCache(this._props.viewport.iModel, this._props.rulesetId);\r\n this._listeners.push(this._props.viewport.onViewedCategoriesPerModelChanged.addListener(this.onViewChanged));\r\n this._listeners.push(this._props.viewport.onViewedCategoriesChanged.addListener(this.onViewChanged));\r\n this._listeners.push(this._props.viewport.onViewedModelsChanged.addListener(this.onViewChanged));\r\n this._listeners.push(this._props.viewport.onAlwaysDrawnChanged.addListener(this.onElementAlwaysDrawnChanged));\r\n this._listeners.push(this._props.viewport.onNeverDrawnChanged.addListener(this.onElementNeverDrawnChanged));\r\n if (this._props.hierarchyAutoUpdateEnabled) {\r\n this._listeners.push(Presentation.presentation.onIModelHierarchyChanged.addListener(/* istanbul ignore next */() => this._elementIdsCache.clear()));\r\n }\r\n }\r\n\r\n public dispose() {\r\n this._listeners.forEach((remove) => remove());\r\n clearTimeout(this._pendingVisibilityChange);\r\n }\r\n\r\n public onVisibilityChange = new BeEvent<VisibilityChangeListener>();\r\n\r\n /** Sets data provider that is used to get filtered tree hierarchy. */\r\n public setFilteredDataProvider(provider: IFilteredPresentationTreeDataProvider | undefined) { this._filteredDataProvider = provider; }\r\n\r\n public static getNodeType(item: TreeNodeItem, dataProvider: IPresentationTreeDataProvider) {\r\n if (NodeKey.isClassGroupingNodeKey(dataProvider.getNodeKey(item)))\r\n return ModelsTreeNodeType.Grouping;\r\n\r\n if (!item.extendedData)\r\n return ModelsTreeNodeType.Unknown;\r\n\r\n if (this.isSubjectNode(item))\r\n return ModelsTreeNodeType.Subject;\r\n if (this.isModelNode(item))\r\n return ModelsTreeNodeType.Model;\r\n if (this.isCategoryNode(item))\r\n return ModelsTreeNodeType.Category;\r\n return ModelsTreeNodeType.Element;\r\n }\r\n\r\n public static isSubjectNode(node: TreeNodeItem) {\r\n return node.extendedData && node.extendedData.isSubject;\r\n }\r\n public static isModelNode(node: TreeNodeItem) {\r\n return node.extendedData && node.extendedData.isModel;\r\n }\r\n public static isCategoryNode(node: TreeNodeItem) {\r\n return node.extendedData && node.extendedData.isCategory;\r\n }\r\n\r\n /** Returns visibility status of the tree node. */\r\n public getVisibilityStatus(node: TreeNodeItem, nodeKey: NodeKey): VisibilityStatus | Promise<VisibilityStatus> {\r\n if (NodeKey.isClassGroupingNodeKey(nodeKey))\r\n return this.getElementGroupingNodeDisplayStatus(node.id, nodeKey);\r\n\r\n if (!NodeKey.isInstancesNodeKey(nodeKey))\r\n return { state: \"hidden\", isDisabled: true };\r\n\r\n if (ModelsVisibilityHandler.isSubjectNode(node)) {\r\n // note: subject nodes may be merged to represent multiple subject instances\r\n return this.getSubjectNodeVisibility(nodeKey.instanceKeys.map((key) => key.id), node);\r\n }\r\n if (ModelsVisibilityHandler.isModelNode(node))\r\n return this.getModelDisplayStatus(nodeKey.instanceKeys[0].id);\r\n if (ModelsVisibilityHandler.isCategoryNode(node))\r\n return this.getCategoryDisplayStatus(nodeKey.instanceKeys[0].id, this.getCategoryParentModelId(node));\r\n return this.getElementDisplayStatus(nodeKey.instanceKeys[0].id, this.getElementModelId(node), this.getElementCategoryId(node));\r\n }\r\n\r\n /** Changes visibility of the items represented by the tree node. */\r\n public async changeVisibility(node: TreeNodeItem, nodeKey: NodeKey, on: boolean) {\r\n if (NodeKey.isClassGroupingNodeKey(nodeKey)) {\r\n await this.changeElementGroupingNodeState(nodeKey, on);\r\n return;\r\n }\r\n\r\n if (!NodeKey.isInstancesNodeKey(nodeKey))\r\n return;\r\n\r\n if (ModelsVisibilityHandler.isSubjectNode(node)) {\r\n await this.changeSubjectNodeState(nodeKey.instanceKeys.map((key) => key.id), node, on);\r\n } else if (ModelsVisibilityHandler.isModelNode(node)) {\r\n await this.changeModelState(nodeKey.instanceKeys[0].id, on);\r\n } else if (ModelsVisibilityHandler.isCategoryNode(node)) {\r\n this.changeCategoryState(nodeKey.instanceKeys[0].id, this.getCategoryParentModelId(node), on);\r\n } else {\r\n await this.changeElementState(nodeKey.instanceKeys[0].id, this.getElementModelId(node), this.getElementCategoryId(node), on);\r\n }\r\n }\r\n\r\n protected async getSubjectNodeVisibility(ids: Id64String[], node: TreeNodeItem): Promise<VisibilityStatus> {\r\n if (!this._props.viewport.view.isSpatialView())\r\n return { isDisabled: true, state: \"hidden\", tooltip: createTooltip(\"disabled\", \"subject.nonSpatialView\") };\r\n\r\n if (this._filteredDataProvider)\r\n return this.getFilteredSubjectDisplayStatus(this._filteredDataProvider, ids, node);\r\n\r\n return this.getSubjectDisplayStatus(ids);\r\n }\r\n\r\n private async getSubjectDisplayStatus(ids: Id64String[]): Promise<VisibilityStatus> {\r\n const modelIds = await this.getSubjectModelIds(ids);\r\n const isDisplayed = modelIds.some((modelId) => this.getModelDisplayStatus(modelId).state === \"visible\");\r\n if (isDisplayed)\r\n return { state: \"visible\", tooltip: createTooltip(\"visible\", \"subject.atLeastOneModelVisible\") };\r\n return { state: \"hidden\", tooltip: createTooltip(\"hidden\", \"subject.allModelsHidden\") };\r\n }\r\n\r\n private async getFilteredSubjectDisplayStatus(provider: IFilteredPresentationTreeDataProvider, ids: Id64String[], node: TreeNodeItem): Promise<VisibilityStatus> {\r\n if (provider.nodeMatchesFilter(node))\r\n return this.getSubjectDisplayStatus(ids);\r\n\r\n const children = await provider.getNodes(node);\r\n const childrenDisplayStatuses = await Promise.all(children.map((childNode) => this.getVisibilityStatus(childNode, provider.getNodeKey(childNode))));\r\n if (childrenDisplayStatuses.some((status) => status.state === \"visible\"))\r\n return { state: \"visible\", tooltip: createTooltip(\"visible\", \"subject.atLeastOneModelVisible\") };\r\n return { state: \"hidden\", tooltip: createTooltip(\"hidden\", \"subject.allModelsHidden\") };\r\n }\r\n\r\n protected getModelDisplayStatus(id: Id64String): VisibilityStatus {\r\n if (!this._props.viewport.view.isSpatialView())\r\n return { isDisabled: true, state: \"hidden\", tooltip: createTooltip(\"disabled\", \"model.nonSpatialView\") };\r\n const isDisplayed = this._props.viewport.view.viewsModel(id);\r\n return { state: isDisplayed ? \"visible\" : \"hidden\", tooltip: createTooltip(isDisplayed ? \"visible\" : \"hidden\", undefined) };\r\n }\r\n\r\n protected getCategoryDisplayStatus(id: Id64String, parentModelId: Id64String | undefined): VisibilityStatus {\r\n if (parentModelId) {\r\n if (this.getModelDisplayStatus(parentModelId).state === \"hidden\")\r\n return { state: \"hidden\", isDisabled: true, tooltip: createTooltip(\"disabled\", \"category.modelNotDisplayed\") };\r\n\r\n const override = this._props.viewport.perModelCategoryVisibility.getOverride(parentModelId, id);\r\n switch (override) {\r\n case PerModelCategoryVisibility.Override.Show:\r\n return { state: \"visible\", tooltip: createTooltip(\"visible\", \"category.displayedThroughPerModelOverride\") };\r\n case PerModelCategoryVisibility.Override.Hide:\r\n return { state: \"hidden\", tooltip: createTooltip(\"hidden\", \"category.hiddenThroughPerModelOverride\") };\r\n }\r\n }\r\n const isDisplayed = this._props.viewport.view.viewsCategory(id);\r\n return {\r\n state: isDisplayed ? \"visible\" : \"hidden\",\r\n tooltip: isDisplayed\r\n ? createTooltip(\"visible\", \"category.displayedThroughCategorySelector\")\r\n : createTooltip(\"hidden\", \"category.hiddenThroughCategorySelector\"),\r\n };\r\n }\r\n\r\n protected async getElementGroupingNodeDisplayStatus(_id: string, key: ECClassGroupingNodeKey): Promise<VisibilityStatus> {\r\n const { modelId, categoryId, elementIds } = await this.getGroupedElementIds(key);\r\n\r\n if (!modelId || !this._props.viewport.view.viewsModel(modelId))\r\n return { isDisabled: true, state: \"hidden\", tooltip: createTooltip(\"disabled\", \"element.modelNotDisplayed\") };\r\n\r\n if (this._props.viewport.alwaysDrawn !== undefined && this._props.viewport.alwaysDrawn.size > 0) {\r\n let atLeastOneElementForceDisplayed = false;\r\n for await (const elementId of elementIds.getElementIds()) {\r\n if (this._props.viewport.alwaysDrawn.has(elementId)) {\r\n atLeastOneElementForceDisplayed = true;\r\n break;\r\n }\r\n }\r\n if (atLeastOneElementForceDisplayed)\r\n return { state: \"visible\", tooltip: createTooltip(\"visible\", \"element.displayedThroughAlwaysDrawnList\") };\r\n }\r\n\r\n if (this._props.viewport.alwaysDrawn !== undefined && this._props.viewport.alwaysDrawn.size !== 0 && this._props.viewport.isAlwaysDrawnExclusive)\r\n return { state: \"hidden\", tooltip: createTooltip(\"hidden\", \"element.hiddenDueToOtherElementsExclusivelyAlwaysDrawn\") };\r\n\r\n // istanbul ignore else\r\n if (this._props.viewport.neverDrawn !== undefined && this._props.viewport.neverDrawn.size > 0) {\r\n let allElementsForceHidden = true;\r\n for await (const elementId of elementIds.getElementIds()) {\r\n if (!this._props.viewport.neverDrawn.has(elementId)) {\r\n allElementsForceHidden = false;\r\n break;\r\n }\r\n }\r\n if (allElementsForceHidden)\r\n return { state: \"hidden\", tooltip: createTooltip(\"visible\", \"element.hiddenThroughNeverDrawnList\") };\r\n }\r\n\r\n if (categoryId && this.getCategoryDisplayStatus(categoryId, modelId).state === \"visible\")\r\n return { state: \"visible\", tooltip: createTooltip(\"visible\", undefined) };\r\n\r\n return { state: \"hidden\", tooltip: createTooltip(\"hidden\", \"element.hiddenThroughCategory\") };\r\n }\r\n\r\n protected getElementDisplayStatus(elementId: Id64String, modelId: Id64String | undefined, categoryId: Id64String | undefined): VisibilityStatus {\r\n if (!modelId || !this._props.viewport.view.viewsModel(modelId))\r\n return { isDisabled: true, state: \"hidden\", tooltip: createTooltip(\"disabled\", \"element.modelNotDisplayed\") };\r\n if (this._props.viewport.neverDrawn !== undefined && this._props.viewport.neverDrawn.has(elementId))\r\n return { state: \"hidden\", tooltip: createTooltip(\"hidden\", \"element.hiddenThroughNeverDrawnList\") };\r\n if (this._props.viewport.alwaysDrawn !== undefined) {\r\n if (this._props.viewport.alwaysDrawn.has(elementId))\r\n return { state: \"visible\", tooltip: createTooltip(\"visible\", \"element.displayedThroughAlwaysDrawnList\") };\r\n if (this._props.viewport.alwaysDrawn.size !== 0 && this._props.viewport.isAlwaysDrawnExclusive)\r\n return { state: \"hidden\", tooltip: createTooltip(\"hidden\", \"element.hiddenDueToOtherElementsExclusivelyAlwaysDrawn\") };\r\n }\r\n if (categoryId && this.getCategoryDisplayStatus(categoryId, modelId).state === \"visible\")\r\n return { state: \"visible\", tooltip: createTooltip(\"visible\", undefined) };\r\n return { state: \"hidden\", tooltip: createTooltip(\"hidden\", \"element.hiddenThroughCategory\") };\r\n }\r\n\r\n protected async changeSubjectNodeState(ids: Id64String[], node: TreeNodeItem, on: boolean) {\r\n if (!this._props.viewport.view.isSpatialView())\r\n return;\r\n\r\n if (this._filteredDataProvider)\r\n return this.changeFilteredSubjectState(this._filteredDataProvider, ids, node, on);\r\n\r\n return this.changeSubjectState(ids, on);\r\n }\r\n\r\n private async changeFilteredSubjectState(provider: IFilteredPresentationTreeDataProvider, ids: Id64String[], node: TreeNodeItem, on: boolean) {\r\n if (provider.nodeMatchesFilter(node))\r\n return this.changeSubjectState(ids, on);\r\n\r\n const children = await provider.getNodes(node);\r\n return Promise.all(children.map(async (childNode) => this.changeVisibility(childNode, provider.getNodeKey(childNode), on)));\r\n }\r\n\r\n private async changeSubjectState(ids: Id64String[], on: boolean) {\r\n const modelIds = await this.getSubjectModelIds(ids);\r\n return this.changeModelsVisibility(modelIds, on);\r\n }\r\n\r\n protected async changeModelState(id: Id64String, on: boolean) {\r\n if (!this._props.viewport.view.isSpatialView())\r\n return;\r\n\r\n return this.changeModelsVisibility([id], on);\r\n }\r\n\r\n protected async changeModelsVisibility(ids: Id64String[], visible: boolean) {\r\n if (visible)\r\n return this._props.viewport.addViewedModels(ids);\r\n else\r\n this._props.viewport.changeModelDisplay(ids, false);\r\n }\r\n\r\n protected changeCategoryState(categoryId: Id64String, parentModelId: Id64String | undefined, on: boolean) {\r\n if (parentModelId) {\r\n const isDisplayedInSelector = this._props.viewport.view.viewsCategory(categoryId);\r\n const ovr = (on === isDisplayedInSelector) ? PerModelCategoryVisibility.Override.None\r\n : on ? PerModelCategoryVisibility.Override.Show : PerModelCategoryVisibility.Override.Hide;\r\n this._props.viewport.perModelCategoryVisibility.setOverride(parentModelId, categoryId, ovr);\r\n if (ovr === PerModelCategoryVisibility.Override.None && on) {\r\n // we took off the override which means the category is displayed in selector, but\r\n // doesn't mean all its subcategories are displayed - this call ensures that\r\n this._props.viewport.changeCategoryDisplay([categoryId], true, true);\r\n }\r\n return;\r\n }\r\n this._props.viewport.changeCategoryDisplay([categoryId], on, on ? true : false);\r\n }\r\n\r\n protected async changeElementGroupingNodeState(key: ECClassGroupingNodeKey, on: boolean) {\r\n const { modelId, categoryId, elementIds } = await this.getGroupedElementIds(key);\r\n await this.changeElementsState(modelId, categoryId, elementIds.getElementIds(), on);\r\n }\r\n\r\n protected async changeElementState(id: Id64String, modelId: Id64String | undefined, categoryId: Id64String | undefined, on: boolean) {\r\n const childIdsContainer = this.getAssemblyElementIds(id);\r\n async function* elementIds() {\r\n yield id;\r\n for await (const childId of childIdsContainer.getElementIds())\r\n yield childId;\r\n }\r\n await this.changeElementsState(modelId, categoryId, elementIds(), on);\r\n }\r\n\r\n protected async changeElementsState(modelId: Id64String | undefined, categoryId: Id64String | undefined, elementIds: AsyncGenerator<Id64String>, on: boolean) {\r\n const isDisplayedByDefault = modelId && this.getModelDisplayStatus(modelId).state === \"visible\"\r\n && categoryId && this.getCategoryDisplayStatus(categoryId, modelId).state === \"visible\";\r\n const isHiddenDueToExclusiveAlwaysDrawnElements = this._props.viewport.isAlwaysDrawnExclusive && this._props.viewport.alwaysDrawn && 0 !== this._props.viewport.alwaysDrawn.size;\r\n const currNeverDrawn = new Set(this._props.viewport.neverDrawn ? this._props.viewport.neverDrawn : []);\r\n const currAlwaysDrawn = new Set(this._props.viewport.alwaysDrawn ?\r\n this._props.viewport.alwaysDrawn : /* istanbul ignore next */[],\r\n );\r\n for await (const elementId of elementIds) {\r\n if (on) {\r\n currNeverDrawn.delete(elementId);\r\n if (!isDisplayedByDefault || isHiddenDueToExclusiveAlwaysDrawnElements)\r\n currAlwaysDrawn.add(elementId);\r\n } else {\r\n currAlwaysDrawn.delete(elementId);\r\n if (isDisplayedByDefault && !isHiddenDueToExclusiveAlwaysDrawnElements)\r\n currNeverDrawn.add(elementId);\r\n }\r\n }\r\n this._props.viewport.setNeverDrawn(currNeverDrawn);\r\n this._props.viewport.setAlwaysDrawn(currAlwaysDrawn, this._props.viewport.isAlwaysDrawnExclusive);\r\n }\r\n\r\n private onVisibilityChangeInternal() {\r\n if (this._pendingVisibilityChange)\r\n return;\r\n\r\n this._pendingVisibilityChange = setTimeout(() => {\r\n this.onVisibilityChange.raiseEvent();\r\n this._pendingVisibilityChange = undefined;\r\n }, 0);\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private onViewChanged = (_vp: Viewport) => {\r\n this.onVisibilityChangeInternal();\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private onElementAlwaysDrawnChanged = () => {\r\n this.onVisibilityChangeInternal();\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private onElementNeverDrawnChanged = () => {\r\n this.onVisibilityChangeInternal();\r\n };\r\n\r\n private getCategoryParentModelId(categoryNode: TreeNodeItem): Id64String | undefined {\r\n return categoryNode.extendedData ? categoryNode.extendedData.modelId : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n private getElementModelId(elementNode: TreeNodeItem): Id64String | undefined {\r\n return elementNode.extendedData ? elementNode.extendedData.modelId : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n private getElementCategoryId(elementNode: TreeNodeItem): Id64String | undefined {\r\n return elementNode.extendedData ? elementNode.extendedData.categoryId : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n private async getSubjectModelIds(subjectIds: Id64String[]) {\r\n return (await Promise.all(subjectIds.map(async (id) => this._subjectModelIdsCache.getSubjectModelIds(id))))\r\n .reduce((allModelIds: Id64String[], curr: Id64String[]) => [...allModelIds, ...curr], []);\r\n }\r\n\r\n // istanbul ignore next\r\n private getAssemblyElementIds(assemblyId: Id64String) {\r\n return this._elementIdsCache.getAssemblyElementIds(assemblyId);\r\n }\r\n\r\n // istanbul ignore next\r\n private async getGroupedElementIds(groupingNodeKey: GroupingNodeKey) {\r\n return this._elementIdsCache.getGroupedElementIds(groupingNodeKey);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class SubjectModelIdsCache {\r\n private _imodel: IModelConnection;\r\n private _subjectsHierarchy: Map<Id64String, Id64String[]> | undefined;\r\n private _subjectModels: Map<Id64String, Id64String[]> | undefined;\r\n private _init: Promise<void> | undefined;\r\n\r\n constructor(imodel: IModelConnection) {\r\n this._imodel = imodel;\r\n }\r\n\r\n private async initSubjectModels() {\r\n const querySubjects = (): AsyncIterableIterator<{ id: Id64String, parentId?: Id64String, targetPartitionId?: Id64String }> => {\r\n const subjectsQuery = `\r\n SELECT ECInstanceId id, Parent.Id parentId, json_extract(JsonProperties, '$.Subject.Model.TargetPartition') targetPartitionId\r\n FROM bis.Subject\r\n `;\r\n return this._imodel.query(subjectsQuery, undefined, { rowFormat: QueryRowFormat.UseJsPropertyNames });\r\n };\r\n const queryModels = (): AsyncIterableIterator<{ id: Id64String, parentId: Id64String }> => {\r\n const modelsQuery = `\r\n SELECT p.ECInstanceId id, p.Parent.Id parentId\r\n FROM bis.InformationPartitionElement p\r\n INNER JOIN bis.GeometricModel3d m ON m.ModeledElement.Id = p.ECInstanceId\r\n WHERE NOT m.IsPrivate\r\n `;\r\n return this._imodel.query(modelsQuery, undefined, { rowFormat: QueryRowFormat.UseJsPropertyNames });\r\n };\r\n\r\n function pushToMap<TKey, TValue>(map: Map<TKey, TValue[]>, key: TKey, value: TValue) {\r\n let list = map.get(key);\r\n if (!list) {\r\n list = [];\r\n map.set(key, list);\r\n }\r\n list.push(value);\r\n }\r\n\r\n this._subjectsHierarchy = new Map();\r\n const targetPartitionSubjects = new Map<Id64String, Id64String[]>();\r\n for await (const subject of querySubjects()) {\r\n // istanbul ignore else\r\n if (subject.parentId)\r\n pushToMap(this._subjectsHierarchy, subject.parentId, subject.id);\r\n // istanbul ignore if\r\n if (subject.targetPartitionId)\r\n pushToMap(targetPartitionSubjects, subject.targetPartitionId, subject.id);\r\n }\r\n\r\n this._subjectModels = new Map();\r\n for await (const model of queryModels()) {\r\n // istanbul ignore next\r\n const subjectIds = targetPartitionSubjects.get(model.id) ?? [];\r\n // istanbul ignore else\r\n if (!subjectIds.includes(model.parentId))\r\n subjectIds.push(model.parentId);\r\n\r\n subjectIds.forEach((subjectId) => {\r\n pushToMap(this._subjectModels!, subjectId, model.id);\r\n });\r\n }\r\n }\r\n\r\n private async initCache() {\r\n if (!this._init) {\r\n this._init = this.initSubjectModels().then(() => { });\r\n }\r\n return this._init;\r\n }\r\n\r\n private appendSubjectModelsRecursively(modelIds: Id64String[], subjectId: Id64String) {\r\n const subjectModelIds = this._subjectModels!.get(subjectId);\r\n if (subjectModelIds)\r\n modelIds.push(...subjectModelIds);\r\n\r\n const childSubjectIds = this._subjectsHierarchy!.get(subjectId);\r\n if (childSubjectIds)\r\n childSubjectIds.forEach((cs) => this.appendSubjectModelsRecursively(modelIds, cs));\r\n }\r\n\r\n public async getSubjectModelIds(subjectId: Id64String): Promise<Id64String[]> {\r\n await this.initCache();\r\n const modelIds = new Array<Id64String>();\r\n this.appendSubjectModelsRecursively(modelIds, subjectId);\r\n return modelIds;\r\n }\r\n}\r\n\r\ninterface GroupedElementIds {\r\n modelId?: string;\r\n categoryId?: string;\r\n elementIds: CachingElementIdsContainer;\r\n}\r\n\r\n// istanbul ignore next\r\nclass ElementIdsCache {\r\n private _assemblyElementIdsCache = new Map<string, CachingElementIdsContainer>();\r\n private _groupedElementIdsCache = new Map<string, GroupedElementIds>();\r\n\r\n constructor(private _imodel: IModelConnection, private _rulesetId: string) {\r\n }\r\n\r\n public clear() {\r\n this._assemblyElementIdsCache.clear();\r\n this._groupedElementIdsCache.clear();\r\n }\r\n\r\n public getAssemblyElementIds(assemblyId: Id64String) {\r\n const ids = this._assemblyElementIdsCache.get(assemblyId);\r\n if (ids)\r\n return ids;\r\n\r\n const container = createAssemblyElementIdsContainer(this._imodel, this._rulesetId, assemblyId);\r\n this._assemblyElementIdsCache.set(assemblyId, container);\r\n return container;\r\n }\r\n\r\n public async getGroupedElementIds(groupingNodeKey: GroupingNodeKey): Promise<GroupedElementIds> {\r\n const keyString = JSON.stringify(groupingNodeKey);\r\n const ids = this._groupedElementIdsCache.get(keyString);\r\n if (ids)\r\n return ids;\r\n const info = await createGroupedElementsInfo(this._imodel, this._rulesetId, groupingNodeKey);\r\n this._groupedElementIdsCache.set(keyString, info);\r\n return info;\r\n }\r\n}\r\n\r\n// istanbul ignore next\r\nasync function* createInstanceIdsGenerator(imodel: IModelConnection, rulesetId: string, displayType: string, inputKeys: Keys) {\r\n const res = await Presentation.presentation.getContentInstanceKeys({\r\n imodel,\r\n rulesetOrId: rulesetId,\r\n displayType,\r\n keys: new KeySet(inputKeys),\r\n });\r\n for await (const key of res.items()) {\r\n yield key.id;\r\n }\r\n}\r\n\r\n// istanbul ignore next\r\nfunction createAssemblyElementIdsContainer(imodel: IModelConnection, rulesetId: string, assemblyId: Id64String) {\r\n return new CachingElementIdsContainer(createInstanceIdsGenerator(imodel, rulesetId, \"AssemblyElementsRequest\", [{ className: \"BisCore:Element\", id: assemblyId }]));\r\n}\r\n\r\n// istanbul ignore next\r\nasync function createGroupedElementsInfo(imodel: IModelConnection, rulesetId: string, groupingNodeKey: GroupingNodeKey) {\r\n const groupedElementIdsContainer = new CachingElementIdsContainer(createInstanceIdsGenerator(imodel, rulesetId, \"AssemblyElementsRequest\", [groupingNodeKey]));\r\n const elementId = await groupedElementIdsContainer.getElementIds().next();\r\n if (elementId.done)\r\n throw new Error(\"Invalid grouping node key\");\r\n\r\n let modelId, categoryId;\r\n const query = `SELECT Model.Id AS modelId, Category.Id AS categoryId FROM bis.GeometricElement3d WHERE ECInstanceId = ? LIMIT 1`;\r\n for await (const modelAndCategoryIds of imodel.query(query, QueryBinder.from([elementId.value]), { rowFormat: QueryRowFormat.UseJsPropertyNames })) {\r\n modelId = modelAndCategoryIds.modelId;\r\n categoryId = modelAndCategoryIds.categoryId;\r\n break;\r\n }\r\n return { modelId, categoryId, elementIds: groupedElementIdsContainer };\r\n}\r\n\r\nconst createTooltip = (status: \"visible\" | \"hidden\" | \"disabled\", tooltipStringId: string | undefined): string => {\r\n const statusStringId = `UiFramework:modelTree.status.${status}`;\r\n const statusString = UiFramework.localization.getLocalizedString(statusStringId);\r\n if (!tooltipStringId)\r\n return statusString;\r\n\r\n tooltipStringId = `UiFramework:modelTree.tooltips.${tooltipStringId}`;\r\n const tooltipString = UiFramework.localization.getLocalizedString(tooltipStringId);\r\n return `${statusString}: ${tooltipString}`;\r\n};\r\n"]}
|
|
1
|
+
{"version":3,"file":"ModelsVisibilityHandler.js","sourceRoot":"","sources":["../../../../../src/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module IModelComponents\r\n */\r\n\r\n/* eslint-disable deprecation/deprecation */\r\n\r\nimport { TreeNodeItem } from \"@itwin/components-react\";\r\nimport { BeEvent, Id64String } from \"@itwin/core-bentley\";\r\nimport { QueryBinder, QueryRowFormat } from \"@itwin/core-common\";\r\nimport { IModelConnection, PerModelCategoryVisibility, Viewport } from \"@itwin/core-frontend\";\r\nimport { ECClassGroupingNodeKey, GroupingNodeKey, Keys, KeySet, NodeKey } from \"@itwin/presentation-common\";\r\nimport { IFilteredPresentationTreeDataProvider, IPresentationTreeDataProvider } from \"@itwin/presentation-components\";\r\nimport { Presentation } from \"@itwin/presentation-frontend\";\r\nimport { UiFramework } from \"../../UiFramework\";\r\nimport { IVisibilityHandler, VisibilityChangeListener, VisibilityStatus } from \"../VisibilityTreeEventHandler\";\r\nimport { CachingElementIdsContainer } from \"./Utils\";\r\n\r\n/**\r\n * Visibility tree node types.\r\n * @beta\r\n * @deprecated in 3.6. Was moved to `@itwin/tree-widget-react` package.\r\n */\r\nexport enum ModelsTreeNodeType {\r\n Unknown,\r\n Subject,\r\n Model,\r\n Category,\r\n Element,\r\n Grouping,\r\n}\r\n\r\n/**\r\n * Type definition of predicate used to decide if node can be selected\r\n * @beta\r\n * @deprecated in 3.6. Was moved to `@itwin/tree-widget-react` package.\r\n */\r\nexport type ModelsTreeSelectionPredicate = (key: NodeKey, type: ModelsTreeNodeType) => boolean;\r\n\r\n/**\r\n * Props for [[ModelsVisibilityHandler]]\r\n * @alpha\r\n */\r\nexport interface ModelsVisibilityHandlerProps {\r\n rulesetId: string;\r\n viewport: Viewport;\r\n hierarchyAutoUpdateEnabled?: boolean;\r\n /** @internal */\r\n subjectModelIdsCache?: SubjectModelIdsCache;\r\n}\r\n\r\n/**\r\n * Visibility handler used by [[ModelsTree]] to control visibility of the tree items.\r\n * @alpha\r\n * @deprecated in 3.6. Was moved to `@itwin/tree-widget-react` package.\r\n */\r\nexport class ModelsVisibilityHandler implements IVisibilityHandler {\r\n private _props: ModelsVisibilityHandlerProps;\r\n private _pendingVisibilityChange: any | undefined;\r\n private _subjectModelIdsCache: SubjectModelIdsCache;\r\n private _filteredDataProvider?: IFilteredPresentationTreeDataProvider;\r\n private _elementIdsCache: ElementIdsCache;\r\n private _listeners = new Array<() => void>();\r\n\r\n constructor(props: ModelsVisibilityHandlerProps) {\r\n this._props = props;\r\n this._subjectModelIdsCache = props.subjectModelIdsCache ?? new SubjectModelIdsCache(this._props.viewport.iModel);\r\n this._elementIdsCache = new ElementIdsCache(this._props.viewport.iModel, this._props.rulesetId);\r\n this._listeners.push(this._props.viewport.onViewedCategoriesPerModelChanged.addListener(this.onViewChanged));\r\n this._listeners.push(this._props.viewport.onViewedCategoriesChanged.addListener(this.onViewChanged));\r\n this._listeners.push(this._props.viewport.onViewedModelsChanged.addListener(this.onViewChanged));\r\n this._listeners.push(this._props.viewport.onAlwaysDrawnChanged.addListener(this.onElementAlwaysDrawnChanged));\r\n this._listeners.push(this._props.viewport.onNeverDrawnChanged.addListener(this.onElementNeverDrawnChanged));\r\n if (this._props.hierarchyAutoUpdateEnabled) {\r\n this._listeners.push(Presentation.presentation.onIModelHierarchyChanged.addListener(/* istanbul ignore next */() => this._elementIdsCache.clear()));\r\n }\r\n }\r\n\r\n public dispose() {\r\n this._listeners.forEach((remove) => remove());\r\n clearTimeout(this._pendingVisibilityChange);\r\n }\r\n\r\n public onVisibilityChange = new BeEvent<VisibilityChangeListener>();\r\n\r\n /** Sets data provider that is used to get filtered tree hierarchy. */\r\n public setFilteredDataProvider(provider: IFilteredPresentationTreeDataProvider | undefined) { this._filteredDataProvider = provider; }\r\n\r\n public static getNodeType(item: TreeNodeItem, dataProvider: IPresentationTreeDataProvider) {\r\n if (NodeKey.isClassGroupingNodeKey(dataProvider.getNodeKey(item)))\r\n return ModelsTreeNodeType.Grouping;\r\n\r\n if (!item.extendedData)\r\n return ModelsTreeNodeType.Unknown;\r\n\r\n if (this.isSubjectNode(item))\r\n return ModelsTreeNodeType.Subject;\r\n if (this.isModelNode(item))\r\n return ModelsTreeNodeType.Model;\r\n if (this.isCategoryNode(item))\r\n return ModelsTreeNodeType.Category;\r\n return ModelsTreeNodeType.Element;\r\n }\r\n\r\n public static isSubjectNode(node: TreeNodeItem) {\r\n return node.extendedData && node.extendedData.isSubject;\r\n }\r\n public static isModelNode(node: TreeNodeItem) {\r\n return node.extendedData && node.extendedData.isModel;\r\n }\r\n public static isCategoryNode(node: TreeNodeItem) {\r\n return node.extendedData && node.extendedData.isCategory;\r\n }\r\n\r\n /** Returns visibility status of the tree node. */\r\n public getVisibilityStatus(node: TreeNodeItem, nodeKey: NodeKey): VisibilityStatus | Promise<VisibilityStatus> {\r\n if (NodeKey.isClassGroupingNodeKey(nodeKey))\r\n return this.getElementGroupingNodeDisplayStatus(node.id, nodeKey);\r\n\r\n if (!NodeKey.isInstancesNodeKey(nodeKey))\r\n return { state: \"hidden\", isDisabled: true };\r\n\r\n if (ModelsVisibilityHandler.isSubjectNode(node)) {\r\n // note: subject nodes may be merged to represent multiple subject instances\r\n return this.getSubjectNodeVisibility(nodeKey.instanceKeys.map((key) => key.id), node);\r\n }\r\n if (ModelsVisibilityHandler.isModelNode(node))\r\n return this.getModelDisplayStatus(nodeKey.instanceKeys[0].id);\r\n if (ModelsVisibilityHandler.isCategoryNode(node))\r\n return this.getCategoryDisplayStatus(nodeKey.instanceKeys[0].id, this.getCategoryParentModelId(node));\r\n return this.getElementDisplayStatus(nodeKey.instanceKeys[0].id, this.getElementModelId(node), this.getElementCategoryId(node));\r\n }\r\n\r\n /** Changes visibility of the items represented by the tree node. */\r\n public async changeVisibility(node: TreeNodeItem, nodeKey: NodeKey, on: boolean) {\r\n if (NodeKey.isClassGroupingNodeKey(nodeKey)) {\r\n await this.changeElementGroupingNodeState(nodeKey, on);\r\n return;\r\n }\r\n\r\n if (!NodeKey.isInstancesNodeKey(nodeKey))\r\n return;\r\n\r\n if (ModelsVisibilityHandler.isSubjectNode(node)) {\r\n await this.changeSubjectNodeState(nodeKey.instanceKeys.map((key) => key.id), node, on);\r\n } else if (ModelsVisibilityHandler.isModelNode(node)) {\r\n await this.changeModelState(nodeKey.instanceKeys[0].id, on);\r\n } else if (ModelsVisibilityHandler.isCategoryNode(node)) {\r\n this.changeCategoryState(nodeKey.instanceKeys[0].id, this.getCategoryParentModelId(node), on);\r\n } else {\r\n await this.changeElementState(nodeKey.instanceKeys[0].id, this.getElementModelId(node), this.getElementCategoryId(node), on);\r\n }\r\n }\r\n\r\n protected async getSubjectNodeVisibility(ids: Id64String[], node: TreeNodeItem): Promise<VisibilityStatus> {\r\n if (!this._props.viewport.view.isSpatialView())\r\n return { isDisabled: true, state: \"hidden\", tooltip: createTooltip(\"disabled\", \"subject.nonSpatialView\") };\r\n\r\n if (this._filteredDataProvider)\r\n return this.getFilteredSubjectDisplayStatus(this._filteredDataProvider, ids, node);\r\n\r\n return this.getSubjectDisplayStatus(ids);\r\n }\r\n\r\n private async getSubjectDisplayStatus(ids: Id64String[]): Promise<VisibilityStatus> {\r\n const modelIds = await this.getSubjectModelIds(ids);\r\n const isDisplayed = modelIds.some((modelId) => this.getModelDisplayStatus(modelId).state === \"visible\");\r\n if (isDisplayed)\r\n return { state: \"visible\", tooltip: createTooltip(\"visible\", \"subject.atLeastOneModelVisible\") };\r\n return { state: \"hidden\", tooltip: createTooltip(\"hidden\", \"subject.allModelsHidden\") };\r\n }\r\n\r\n private async getFilteredSubjectDisplayStatus(provider: IFilteredPresentationTreeDataProvider, ids: Id64String[], node: TreeNodeItem): Promise<VisibilityStatus> {\r\n if (provider.nodeMatchesFilter(node))\r\n return this.getSubjectDisplayStatus(ids);\r\n\r\n const children = await provider.getNodes(node);\r\n const childrenDisplayStatuses = await Promise.all(children.map((childNode) => this.getVisibilityStatus(childNode, provider.getNodeKey(childNode))));\r\n if (childrenDisplayStatuses.some((status) => status.state === \"visible\"))\r\n return { state: \"visible\", tooltip: createTooltip(\"visible\", \"subject.atLeastOneModelVisible\") };\r\n return { state: \"hidden\", tooltip: createTooltip(\"hidden\", \"subject.allModelsHidden\") };\r\n }\r\n\r\n protected getModelDisplayStatus(id: Id64String): VisibilityStatus {\r\n if (!this._props.viewport.view.isSpatialView())\r\n return { isDisabled: true, state: \"hidden\", tooltip: createTooltip(\"disabled\", \"model.nonSpatialView\") };\r\n const isDisplayed = this._props.viewport.view.viewsModel(id);\r\n return { state: isDisplayed ? \"visible\" : \"hidden\", tooltip: createTooltip(isDisplayed ? \"visible\" : \"hidden\", undefined) };\r\n }\r\n\r\n protected getCategoryDisplayStatus(id: Id64String, parentModelId: Id64String | undefined): VisibilityStatus {\r\n if (parentModelId) {\r\n if (this.getModelDisplayStatus(parentModelId).state === \"hidden\")\r\n return { state: \"hidden\", isDisabled: true, tooltip: createTooltip(\"disabled\", \"category.modelNotDisplayed\") };\r\n\r\n const override = this._props.viewport.perModelCategoryVisibility.getOverride(parentModelId, id);\r\n switch (override) {\r\n case PerModelCategoryVisibility.Override.Show:\r\n return { state: \"visible\", tooltip: createTooltip(\"visible\", \"category.displayedThroughPerModelOverride\") };\r\n case PerModelCategoryVisibility.Override.Hide:\r\n return { state: \"hidden\", tooltip: createTooltip(\"hidden\", \"category.hiddenThroughPerModelOverride\") };\r\n }\r\n }\r\n const isDisplayed = this._props.viewport.view.viewsCategory(id);\r\n return {\r\n state: isDisplayed ? \"visible\" : \"hidden\",\r\n tooltip: isDisplayed\r\n ? createTooltip(\"visible\", \"category.displayedThroughCategorySelector\")\r\n : createTooltip(\"hidden\", \"category.hiddenThroughCategorySelector\"),\r\n };\r\n }\r\n\r\n protected async getElementGroupingNodeDisplayStatus(_id: string, key: ECClassGroupingNodeKey): Promise<VisibilityStatus> {\r\n const { modelId, categoryId, elementIds } = await this.getGroupedElementIds(key);\r\n\r\n if (!modelId || !this._props.viewport.view.viewsModel(modelId))\r\n return { isDisabled: true, state: \"hidden\", tooltip: createTooltip(\"disabled\", \"element.modelNotDisplayed\") };\r\n\r\n if (this._props.viewport.alwaysDrawn !== undefined && this._props.viewport.alwaysDrawn.size > 0) {\r\n let atLeastOneElementForceDisplayed = false;\r\n for await (const elementId of elementIds.getElementIds()) {\r\n if (this._props.viewport.alwaysDrawn.has(elementId)) {\r\n atLeastOneElementForceDisplayed = true;\r\n break;\r\n }\r\n }\r\n if (atLeastOneElementForceDisplayed)\r\n return { state: \"visible\", tooltip: createTooltip(\"visible\", \"element.displayedThroughAlwaysDrawnList\") };\r\n }\r\n\r\n if (this._props.viewport.alwaysDrawn !== undefined && this._props.viewport.alwaysDrawn.size !== 0 && this._props.viewport.isAlwaysDrawnExclusive)\r\n return { state: \"hidden\", tooltip: createTooltip(\"hidden\", \"element.hiddenDueToOtherElementsExclusivelyAlwaysDrawn\") };\r\n\r\n // istanbul ignore else\r\n if (this._props.viewport.neverDrawn !== undefined && this._props.viewport.neverDrawn.size > 0) {\r\n let allElementsForceHidden = true;\r\n for await (const elementId of elementIds.getElementIds()) {\r\n if (!this._props.viewport.neverDrawn.has(elementId)) {\r\n allElementsForceHidden = false;\r\n break;\r\n }\r\n }\r\n if (allElementsForceHidden)\r\n return { state: \"hidden\", tooltip: createTooltip(\"visible\", \"element.hiddenThroughNeverDrawnList\") };\r\n }\r\n\r\n if (categoryId && this.getCategoryDisplayStatus(categoryId, modelId).state === \"visible\")\r\n return { state: \"visible\", tooltip: createTooltip(\"visible\", undefined) };\r\n\r\n return { state: \"hidden\", tooltip: createTooltip(\"hidden\", \"element.hiddenThroughCategory\") };\r\n }\r\n\r\n protected getElementDisplayStatus(elementId: Id64String, modelId: Id64String | undefined, categoryId: Id64String | undefined): VisibilityStatus {\r\n if (!modelId || !this._props.viewport.view.viewsModel(modelId))\r\n return { isDisabled: true, state: \"hidden\", tooltip: createTooltip(\"disabled\", \"element.modelNotDisplayed\") };\r\n if (this._props.viewport.neverDrawn !== undefined && this._props.viewport.neverDrawn.has(elementId))\r\n return { state: \"hidden\", tooltip: createTooltip(\"hidden\", \"element.hiddenThroughNeverDrawnList\") };\r\n if (this._props.viewport.alwaysDrawn !== undefined) {\r\n if (this._props.viewport.alwaysDrawn.has(elementId))\r\n return { state: \"visible\", tooltip: createTooltip(\"visible\", \"element.displayedThroughAlwaysDrawnList\") };\r\n if (this._props.viewport.alwaysDrawn.size !== 0 && this._props.viewport.isAlwaysDrawnExclusive)\r\n return { state: \"hidden\", tooltip: createTooltip(\"hidden\", \"element.hiddenDueToOtherElementsExclusivelyAlwaysDrawn\") };\r\n }\r\n if (categoryId && this.getCategoryDisplayStatus(categoryId, modelId).state === \"visible\")\r\n return { state: \"visible\", tooltip: createTooltip(\"visible\", undefined) };\r\n return { state: \"hidden\", tooltip: createTooltip(\"hidden\", \"element.hiddenThroughCategory\") };\r\n }\r\n\r\n protected async changeSubjectNodeState(ids: Id64String[], node: TreeNodeItem, on: boolean) {\r\n if (!this._props.viewport.view.isSpatialView())\r\n return;\r\n\r\n if (this._filteredDataProvider)\r\n return this.changeFilteredSubjectState(this._filteredDataProvider, ids, node, on);\r\n\r\n return this.changeSubjectState(ids, on);\r\n }\r\n\r\n private async changeFilteredSubjectState(provider: IFilteredPresentationTreeDataProvider, ids: Id64String[], node: TreeNodeItem, on: boolean) {\r\n if (provider.nodeMatchesFilter(node))\r\n return this.changeSubjectState(ids, on);\r\n\r\n const children = await provider.getNodes(node);\r\n return Promise.all(children.map(async (childNode) => this.changeVisibility(childNode, provider.getNodeKey(childNode), on)));\r\n }\r\n\r\n private async changeSubjectState(ids: Id64String[], on: boolean) {\r\n const modelIds = await this.getSubjectModelIds(ids);\r\n return this.changeModelsVisibility(modelIds, on);\r\n }\r\n\r\n protected async changeModelState(id: Id64String, on: boolean) {\r\n if (!this._props.viewport.view.isSpatialView())\r\n return;\r\n\r\n return this.changeModelsVisibility([id], on);\r\n }\r\n\r\n protected async changeModelsVisibility(ids: Id64String[], visible: boolean) {\r\n if (visible)\r\n return this._props.viewport.addViewedModels(ids);\r\n else\r\n this._props.viewport.changeModelDisplay(ids, false);\r\n }\r\n\r\n protected changeCategoryState(categoryId: Id64String, parentModelId: Id64String | undefined, on: boolean) {\r\n if (parentModelId) {\r\n const isDisplayedInSelector = this._props.viewport.view.viewsCategory(categoryId);\r\n const ovr = (on === isDisplayedInSelector) ? PerModelCategoryVisibility.Override.None\r\n : on ? PerModelCategoryVisibility.Override.Show : PerModelCategoryVisibility.Override.Hide;\r\n this._props.viewport.perModelCategoryVisibility.setOverride(parentModelId, categoryId, ovr);\r\n if (ovr === PerModelCategoryVisibility.Override.None && on) {\r\n // we took off the override which means the category is displayed in selector, but\r\n // doesn't mean all its subcategories are displayed - this call ensures that\r\n this._props.viewport.changeCategoryDisplay([categoryId], true, true);\r\n }\r\n return;\r\n }\r\n this._props.viewport.changeCategoryDisplay([categoryId], on, on ? true : false);\r\n }\r\n\r\n protected async changeElementGroupingNodeState(key: ECClassGroupingNodeKey, on: boolean) {\r\n const { modelId, categoryId, elementIds } = await this.getGroupedElementIds(key);\r\n await this.changeElementsState(modelId, categoryId, elementIds.getElementIds(), on);\r\n }\r\n\r\n protected async changeElementState(id: Id64String, modelId: Id64String | undefined, categoryId: Id64String | undefined, on: boolean) {\r\n const childIdsContainer = this.getAssemblyElementIds(id);\r\n async function* elementIds() {\r\n yield id;\r\n for await (const childId of childIdsContainer.getElementIds())\r\n yield childId;\r\n }\r\n await this.changeElementsState(modelId, categoryId, elementIds(), on);\r\n }\r\n\r\n protected async changeElementsState(modelId: Id64String | undefined, categoryId: Id64String | undefined, elementIds: AsyncGenerator<Id64String>, on: boolean) {\r\n const isDisplayedByDefault = modelId && this.getModelDisplayStatus(modelId).state === \"visible\"\r\n && categoryId && this.getCategoryDisplayStatus(categoryId, modelId).state === \"visible\";\r\n const isHiddenDueToExclusiveAlwaysDrawnElements = this._props.viewport.isAlwaysDrawnExclusive && this._props.viewport.alwaysDrawn && 0 !== this._props.viewport.alwaysDrawn.size;\r\n const currNeverDrawn = new Set(this._props.viewport.neverDrawn ? this._props.viewport.neverDrawn : []);\r\n const currAlwaysDrawn = new Set(this._props.viewport.alwaysDrawn ?\r\n this._props.viewport.alwaysDrawn : /* istanbul ignore next */[],\r\n );\r\n for await (const elementId of elementIds) {\r\n if (on) {\r\n currNeverDrawn.delete(elementId);\r\n if (!isDisplayedByDefault || isHiddenDueToExclusiveAlwaysDrawnElements)\r\n currAlwaysDrawn.add(elementId);\r\n } else {\r\n currAlwaysDrawn.delete(elementId);\r\n if (isDisplayedByDefault && !isHiddenDueToExclusiveAlwaysDrawnElements)\r\n currNeverDrawn.add(elementId);\r\n }\r\n }\r\n this._props.viewport.setNeverDrawn(currNeverDrawn);\r\n this._props.viewport.setAlwaysDrawn(currAlwaysDrawn, this._props.viewport.isAlwaysDrawnExclusive);\r\n }\r\n\r\n private onVisibilityChangeInternal() {\r\n if (this._pendingVisibilityChange)\r\n return;\r\n\r\n this._pendingVisibilityChange = setTimeout(() => {\r\n this.onVisibilityChange.raiseEvent();\r\n this._pendingVisibilityChange = undefined;\r\n }, 0);\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private onViewChanged = (_vp: Viewport) => {\r\n this.onVisibilityChangeInternal();\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private onElementAlwaysDrawnChanged = () => {\r\n this.onVisibilityChangeInternal();\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private onElementNeverDrawnChanged = () => {\r\n this.onVisibilityChangeInternal();\r\n };\r\n\r\n private getCategoryParentModelId(categoryNode: TreeNodeItem): Id64String | undefined {\r\n return categoryNode.extendedData ? categoryNode.extendedData.modelId : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n private getElementModelId(elementNode: TreeNodeItem): Id64String | undefined {\r\n return elementNode.extendedData ? elementNode.extendedData.modelId : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n private getElementCategoryId(elementNode: TreeNodeItem): Id64String | undefined {\r\n return elementNode.extendedData ? elementNode.extendedData.categoryId : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n private async getSubjectModelIds(subjectIds: Id64String[]) {\r\n return (await Promise.all(subjectIds.map(async (id) => this._subjectModelIdsCache.getSubjectModelIds(id))))\r\n .reduce((allModelIds: Id64String[], curr: Id64String[]) => [...allModelIds, ...curr], []);\r\n }\r\n\r\n // istanbul ignore next\r\n private getAssemblyElementIds(assemblyId: Id64String) {\r\n return this._elementIdsCache.getAssemblyElementIds(assemblyId);\r\n }\r\n\r\n // istanbul ignore next\r\n private async getGroupedElementIds(groupingNodeKey: GroupingNodeKey) {\r\n return this._elementIdsCache.getGroupedElementIds(groupingNodeKey);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class SubjectModelIdsCache {\r\n private _imodel: IModelConnection;\r\n private _subjectsHierarchy: Map<Id64String, Id64String[]> | undefined;\r\n private _subjectModels: Map<Id64String, Id64String[]> | undefined;\r\n private _init: Promise<void> | undefined;\r\n\r\n constructor(imodel: IModelConnection) {\r\n this._imodel = imodel;\r\n }\r\n\r\n private async initSubjectModels() {\r\n const querySubjects = (): AsyncIterableIterator<{ id: Id64String, parentId?: Id64String, targetPartitionId?: Id64String }> => {\r\n const subjectsQuery = `\r\n SELECT ECInstanceId id, Parent.Id parentId, json_extract(JsonProperties, '$.Subject.Model.TargetPartition') targetPartitionId\r\n FROM bis.Subject\r\n `;\r\n return this._imodel.query(subjectsQuery, undefined, { rowFormat: QueryRowFormat.UseJsPropertyNames });\r\n };\r\n const queryModels = (): AsyncIterableIterator<{ id: Id64String, parentId: Id64String }> => {\r\n const modelsQuery = `\r\n SELECT p.ECInstanceId id, p.Parent.Id parentId\r\n FROM bis.InformationPartitionElement p\r\n INNER JOIN bis.GeometricModel3d m ON m.ModeledElement.Id = p.ECInstanceId\r\n WHERE NOT m.IsPrivate\r\n `;\r\n return this._imodel.query(modelsQuery, undefined, { rowFormat: QueryRowFormat.UseJsPropertyNames });\r\n };\r\n\r\n function pushToMap<TKey, TValue>(map: Map<TKey, TValue[]>, key: TKey, value: TValue) {\r\n let list = map.get(key);\r\n if (!list) {\r\n list = [];\r\n map.set(key, list);\r\n }\r\n list.push(value);\r\n }\r\n\r\n this._subjectsHierarchy = new Map();\r\n const targetPartitionSubjects = new Map<Id64String, Id64String[]>();\r\n for await (const subject of querySubjects()) {\r\n // istanbul ignore else\r\n if (subject.parentId)\r\n pushToMap(this._subjectsHierarchy, subject.parentId, subject.id);\r\n // istanbul ignore if\r\n if (subject.targetPartitionId)\r\n pushToMap(targetPartitionSubjects, subject.targetPartitionId, subject.id);\r\n }\r\n\r\n this._subjectModels = new Map();\r\n for await (const model of queryModels()) {\r\n // istanbul ignore next\r\n const subjectIds = targetPartitionSubjects.get(model.id) ?? [];\r\n // istanbul ignore else\r\n if (!subjectIds.includes(model.parentId))\r\n subjectIds.push(model.parentId);\r\n\r\n subjectIds.forEach((subjectId) => {\r\n pushToMap(this._subjectModels!, subjectId, model.id);\r\n });\r\n }\r\n }\r\n\r\n private async initCache() {\r\n if (!this._init) {\r\n this._init = this.initSubjectModels().then(() => { });\r\n }\r\n return this._init;\r\n }\r\n\r\n private appendSubjectModelsRecursively(modelIds: Id64String[], subjectId: Id64String) {\r\n const subjectModelIds = this._subjectModels!.get(subjectId);\r\n if (subjectModelIds)\r\n modelIds.push(...subjectModelIds);\r\n\r\n const childSubjectIds = this._subjectsHierarchy!.get(subjectId);\r\n if (childSubjectIds)\r\n childSubjectIds.forEach((cs) => this.appendSubjectModelsRecursively(modelIds, cs));\r\n }\r\n\r\n public async getSubjectModelIds(subjectId: Id64String): Promise<Id64String[]> {\r\n await this.initCache();\r\n const modelIds = new Array<Id64String>();\r\n this.appendSubjectModelsRecursively(modelIds, subjectId);\r\n return modelIds;\r\n }\r\n}\r\n\r\ninterface GroupedElementIds {\r\n modelId?: string;\r\n categoryId?: string;\r\n elementIds: CachingElementIdsContainer;\r\n}\r\n\r\n// istanbul ignore next\r\nclass ElementIdsCache {\r\n private _assemblyElementIdsCache = new Map<string, CachingElementIdsContainer>();\r\n private _groupedElementIdsCache = new Map<string, GroupedElementIds>();\r\n\r\n constructor(private _imodel: IModelConnection, private _rulesetId: string) {\r\n }\r\n\r\n public clear() {\r\n this._assemblyElementIdsCache.clear();\r\n this._groupedElementIdsCache.clear();\r\n }\r\n\r\n public getAssemblyElementIds(assemblyId: Id64String) {\r\n const ids = this._assemblyElementIdsCache.get(assemblyId);\r\n if (ids)\r\n return ids;\r\n\r\n const container = createAssemblyElementIdsContainer(this._imodel, this._rulesetId, assemblyId);\r\n this._assemblyElementIdsCache.set(assemblyId, container);\r\n return container;\r\n }\r\n\r\n public async getGroupedElementIds(groupingNodeKey: GroupingNodeKey): Promise<GroupedElementIds> {\r\n const keyString = JSON.stringify(groupingNodeKey);\r\n const ids = this._groupedElementIdsCache.get(keyString);\r\n if (ids)\r\n return ids;\r\n const info = await createGroupedElementsInfo(this._imodel, this._rulesetId, groupingNodeKey);\r\n this._groupedElementIdsCache.set(keyString, info);\r\n return info;\r\n }\r\n}\r\n\r\n// istanbul ignore next\r\nasync function* createInstanceIdsGenerator(imodel: IModelConnection, rulesetId: string, displayType: string, inputKeys: Keys) {\r\n const res = await Presentation.presentation.getContentInstanceKeys({\r\n imodel,\r\n rulesetOrId: rulesetId,\r\n displayType,\r\n keys: new KeySet(inputKeys),\r\n });\r\n for await (const key of res.items()) {\r\n yield key.id;\r\n }\r\n}\r\n\r\n// istanbul ignore next\r\nfunction createAssemblyElementIdsContainer(imodel: IModelConnection, rulesetId: string, assemblyId: Id64String) {\r\n return new CachingElementIdsContainer(createInstanceIdsGenerator(imodel, rulesetId, \"AssemblyElementsRequest\", [{ className: \"BisCore:Element\", id: assemblyId }]));\r\n}\r\n\r\n// istanbul ignore next\r\nasync function createGroupedElementsInfo(imodel: IModelConnection, rulesetId: string, groupingNodeKey: GroupingNodeKey) {\r\n const groupedElementIdsContainer = new CachingElementIdsContainer(createInstanceIdsGenerator(imodel, rulesetId, \"AssemblyElementsRequest\", [groupingNodeKey]));\r\n const elementId = await groupedElementIdsContainer.getElementIds().next();\r\n if (elementId.done)\r\n throw new Error(\"Invalid grouping node key\");\r\n\r\n let modelId, categoryId;\r\n const query = `SELECT Model.Id AS modelId, Category.Id AS categoryId FROM bis.GeometricElement3d WHERE ECInstanceId = ? LIMIT 1`;\r\n for await (const modelAndCategoryIds of imodel.query(query, QueryBinder.from([elementId.value]), { rowFormat: QueryRowFormat.UseJsPropertyNames })) {\r\n modelId = modelAndCategoryIds.modelId;\r\n categoryId = modelAndCategoryIds.categoryId;\r\n break;\r\n }\r\n return { modelId, categoryId, elementIds: groupedElementIdsContainer };\r\n}\r\n\r\nconst createTooltip = (status: \"visible\" | \"hidden\" | \"disabled\", tooltipStringId: string | undefined): string => {\r\n const statusStringId = `UiFramework:modelTree.status.${status}`;\r\n const statusString = UiFramework.localization.getLocalizedString(statusStringId);\r\n if (!tooltipStringId)\r\n return statusString;\r\n\r\n tooltipStringId = `UiFramework:modelTree.tooltips.${tooltipStringId}`;\r\n const tooltipString = UiFramework.localization.getLocalizedString(tooltipStringId);\r\n return `${statusString}: ${tooltipString}`;\r\n};\r\n"]}
|
|
@@ -13,7 +13,7 @@ export declare const RULESET_SPATIAL_BREAKDOWN_GROUPED_BY_CLASS: Ruleset;
|
|
|
13
13
|
/**
|
|
14
14
|
* Properties for the [[SpatialContainmentTree]] component
|
|
15
15
|
* @public
|
|
16
|
-
* @deprecated Use 'SpatialContainmentTree' from `@itwin/breakdown-trees-react` package.
|
|
16
|
+
* @deprecated in 3.6. Use 'SpatialContainmentTree' from `@itwin/breakdown-trees-react` package.
|
|
17
17
|
*/
|
|
18
18
|
export interface SpatialContainmentTreeProps {
|
|
19
19
|
iModel: IModelConnection;
|
|
@@ -30,7 +30,7 @@ export interface SpatialContainmentTreeProps {
|
|
|
30
30
|
/**
|
|
31
31
|
* Tree which displays and manages models or categories contained in an iModel.
|
|
32
32
|
* @public
|
|
33
|
-
* @deprecated Use 'SpatialContainmentTree' from `@itwin/breakdown-trees-react` package.
|
|
33
|
+
* @deprecated in 3.6. Use 'SpatialContainmentTree' from `@itwin/breakdown-trees-react` package.
|
|
34
34
|
*/
|
|
35
35
|
export declare function SpatialContainmentTree(props: SpatialContainmentTreeProps): JSX.Element;
|
|
36
36
|
//# sourceMappingURL=SpatialContainmentTree.d.ts.map
|
|
@@ -20,7 +20,7 @@ export const RULESET_SPATIAL_BREAKDOWN_GROUPED_BY_CLASS = require("./SpatialBrea
|
|
|
20
20
|
/**
|
|
21
21
|
* Tree which displays and manages models or categories contained in an iModel.
|
|
22
22
|
* @public
|
|
23
|
-
* @deprecated Use 'SpatialContainmentTree' from `@itwin/breakdown-trees-react` package.
|
|
23
|
+
* @deprecated in 3.6. Use 'SpatialContainmentTree' from `@itwin/breakdown-trees-react` package.
|
|
24
24
|
*/
|
|
25
25
|
export function SpatialContainmentTree(props) {
|
|
26
26
|
const { nodeLoader } = usePresentationTreeNodeLoader({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpatialContainmentTree.js","sourceRoot":"","sources":["../../../../../src/appui-react/imodel-components/spatial-tree/SpatialContainmentTree.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,4CAA4C;AAE5C,OAAO,+BAA+B,CAAC;AACvC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,gCAAgC,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AACjH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD,MAAM,WAAW,GAAG,EAAE,CAAC;AAEvB,gBAAgB;AAChB,MAAM,CAAC,MAAM,yBAAyB,GAAY,OAAO,CAAC,yBAAyB,CAAC,CAAC,CAAC,yDAAyD;AAC/I,gBAAgB;AAChB,MAAM,CAAC,MAAM,0CAA0C,GAAY,OAAO,CAAC,wCAAwC,CAAC,CAAC,CAAC,yDAAyD;AAoB/K;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAkC;IACvE,MAAM,EAAE,UAAU,EAAE,GAAG,6BAA6B,CAAC;QACnD,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,0BAA0B,CAAC,0CAA0C;QACjJ,mCAAmC,EAAE,CAAC,KAAK,CAAC,2BAA2B,KAAK,mBAAmB,CAAC,aAAa,CAAC;QAC9G,UAAU,EAAE,WAAW;KACxB,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,gCAAgC,CAAC;QAC9F,UAAU;QACV,gCAAgC,EAAE,IAAI;KACvC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACnB,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAEvD,OAAO,CACL,6BAAK,SAAS,EAAC,oBAAoB;QACjC,oBAAC,cAAc,IACb,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,YAAY,EAC3B,aAAa,EAAE,aAAa,CAAC,QAAQ,EACrC,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,MAAM,EAAE,KAAK,CAAC,MAAM,GACpB,CACE,CACP,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module IModelComponents\r\n */\r\n\r\n/* eslint-disable deprecation/deprecation */\r\n\r\nimport \"./SpatialContainmentTree.scss\";\r\nimport * as React from \"react\";\r\nimport { IModelConnection } from \"@itwin/core-frontend\";\r\nimport { Ruleset } from \"@itwin/presentation-common\";\r\nimport { UnifiedSelectionTreeEventHandler, usePresentationTreeNodeLoader } from \"@itwin/presentation-components\";\r\nimport { ControlledTree, SelectionMode, useTreeModel } from \"@itwin/components-react\";\r\nimport { useDisposable } from \"@itwin/core-react\";\r\nimport { ClassGroupingOption } from \"../Common\";\r\n\r\nconst PAGING_SIZE = 20;\r\n\r\n/** @internal */\r\nexport const RULESET_SPATIAL_BREAKDOWN: Ruleset = require(\"./SpatialBreakdown.json\"); // eslint-disable-line @typescript-eslint/no-var-requires\r\n/** @internal */\r\nexport const RULESET_SPATIAL_BREAKDOWN_GROUPED_BY_CLASS: Ruleset = require(\"./SpatialBreakdown.GroupedByClass.json\"); // eslint-disable-line @typescript-eslint/no-var-requires\r\n\r\n/**\r\n * Properties for the [[SpatialContainmentTree]] component\r\n * @public\r\n * @deprecated Use 'SpatialContainmentTree' from `@itwin/breakdown-trees-react` package.\r\n */\r\nexport interface SpatialContainmentTreeProps {\r\n iModel: IModelConnection;\r\n /** Width of the component */\r\n width: number;\r\n /** Height of the component */\r\n height: number;\r\n /**\r\n * Should the tree group displayed element nodes by class.\r\n * @beta\r\n */\r\n enableElementsClassGrouping?: ClassGroupingOption;\r\n}\r\n\r\n/**\r\n * Tree which displays and manages models or categories contained in an iModel.\r\n * @public\r\n * @deprecated Use 'SpatialContainmentTree' from `@itwin/breakdown-trees-react` package.\r\n */\r\nexport function SpatialContainmentTree(props: SpatialContainmentTreeProps) {\r\n const { nodeLoader } = usePresentationTreeNodeLoader({\r\n imodel: props.iModel,\r\n ruleset: (!props.enableElementsClassGrouping) ? RULESET_SPATIAL_BREAKDOWN : /* istanbul ignore next */ RULESET_SPATIAL_BREAKDOWN_GROUPED_BY_CLASS,\r\n appendChildrenCountForGroupingNodes: (props.enableElementsClassGrouping === ClassGroupingOption.YesWithCounts),\r\n pagingSize: PAGING_SIZE,\r\n });\r\n\r\n const eventHandler = useDisposable(React.useCallback(() => new UnifiedSelectionTreeEventHandler({\r\n nodeLoader,\r\n collapsedChildrenDisposalEnabled: true,\r\n }), [nodeLoader]));\r\n const treeModel = useTreeModel(nodeLoader.modelSource);\r\n\r\n return (\r\n <div className=\"ui-fw-spatial-tree\">\r\n <ControlledTree\r\n model={treeModel}\r\n nodeLoader={nodeLoader}\r\n eventsHandler={eventHandler}\r\n selectionMode={SelectionMode.Extended}\r\n width={props.width}\r\n height={props.height}\r\n />\r\n </div>\r\n );\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"SpatialContainmentTree.js","sourceRoot":"","sources":["../../../../../src/appui-react/imodel-components/spatial-tree/SpatialContainmentTree.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,4CAA4C;AAE5C,OAAO,+BAA+B,CAAC;AACvC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,gCAAgC,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AACjH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD,MAAM,WAAW,GAAG,EAAE,CAAC;AAEvB,gBAAgB;AAChB,MAAM,CAAC,MAAM,yBAAyB,GAAY,OAAO,CAAC,yBAAyB,CAAC,CAAC,CAAC,yDAAyD;AAC/I,gBAAgB;AAChB,MAAM,CAAC,MAAM,0CAA0C,GAAY,OAAO,CAAC,wCAAwC,CAAC,CAAC,CAAC,yDAAyD;AAoB/K;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAkC;IACvE,MAAM,EAAE,UAAU,EAAE,GAAG,6BAA6B,CAAC;QACnD,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,0BAA0B,CAAC,0CAA0C;QACjJ,mCAAmC,EAAE,CAAC,KAAK,CAAC,2BAA2B,KAAK,mBAAmB,CAAC,aAAa,CAAC;QAC9G,UAAU,EAAE,WAAW;KACxB,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,gCAAgC,CAAC;QAC9F,UAAU;QACV,gCAAgC,EAAE,IAAI;KACvC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACnB,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAEvD,OAAO,CACL,6BAAK,SAAS,EAAC,oBAAoB;QACjC,oBAAC,cAAc,IACb,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,YAAY,EAC3B,aAAa,EAAE,aAAa,CAAC,QAAQ,EACrC,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,MAAM,EAAE,KAAK,CAAC,MAAM,GACpB,CACE,CACP,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module IModelComponents\r\n */\r\n\r\n/* eslint-disable deprecation/deprecation */\r\n\r\nimport \"./SpatialContainmentTree.scss\";\r\nimport * as React from \"react\";\r\nimport { IModelConnection } from \"@itwin/core-frontend\";\r\nimport { Ruleset } from \"@itwin/presentation-common\";\r\nimport { UnifiedSelectionTreeEventHandler, usePresentationTreeNodeLoader } from \"@itwin/presentation-components\";\r\nimport { ControlledTree, SelectionMode, useTreeModel } from \"@itwin/components-react\";\r\nimport { useDisposable } from \"@itwin/core-react\";\r\nimport { ClassGroupingOption } from \"../Common\";\r\n\r\nconst PAGING_SIZE = 20;\r\n\r\n/** @internal */\r\nexport const RULESET_SPATIAL_BREAKDOWN: Ruleset = require(\"./SpatialBreakdown.json\"); // eslint-disable-line @typescript-eslint/no-var-requires\r\n/** @internal */\r\nexport const RULESET_SPATIAL_BREAKDOWN_GROUPED_BY_CLASS: Ruleset = require(\"./SpatialBreakdown.GroupedByClass.json\"); // eslint-disable-line @typescript-eslint/no-var-requires\r\n\r\n/**\r\n * Properties for the [[SpatialContainmentTree]] component\r\n * @public\r\n * @deprecated in 3.6. Use 'SpatialContainmentTree' from `@itwin/breakdown-trees-react` package.\r\n */\r\nexport interface SpatialContainmentTreeProps {\r\n iModel: IModelConnection;\r\n /** Width of the component */\r\n width: number;\r\n /** Height of the component */\r\n height: number;\r\n /**\r\n * Should the tree group displayed element nodes by class.\r\n * @beta\r\n */\r\n enableElementsClassGrouping?: ClassGroupingOption;\r\n}\r\n\r\n/**\r\n * Tree which displays and manages models or categories contained in an iModel.\r\n * @public\r\n * @deprecated in 3.6. Use 'SpatialContainmentTree' from `@itwin/breakdown-trees-react` package.\r\n */\r\nexport function SpatialContainmentTree(props: SpatialContainmentTreeProps) {\r\n const { nodeLoader } = usePresentationTreeNodeLoader({\r\n imodel: props.iModel,\r\n ruleset: (!props.enableElementsClassGrouping) ? RULESET_SPATIAL_BREAKDOWN : /* istanbul ignore next */ RULESET_SPATIAL_BREAKDOWN_GROUPED_BY_CLASS,\r\n appendChildrenCountForGroupingNodes: (props.enableElementsClassGrouping === ClassGroupingOption.YesWithCounts),\r\n pagingSize: PAGING_SIZE,\r\n });\r\n\r\n const eventHandler = useDisposable(React.useCallback(() => new UnifiedSelectionTreeEventHandler({\r\n nodeLoader,\r\n collapsedChildrenDisposalEnabled: true,\r\n }), [nodeLoader]));\r\n const treeModel = useTreeModel(nodeLoader.modelSource);\r\n\r\n return (\r\n <div className=\"ui-fw-spatial-tree\">\r\n <ControlledTree\r\n model={treeModel}\r\n nodeLoader={nodeLoader}\r\n eventsHandler={eventHandler}\r\n selectionMode={SelectionMode.Extended}\r\n width={props.width}\r\n height={props.height}\r\n />\r\n </div>\r\n );\r\n}\r\n"]}
|
|
@@ -5,20 +5,20 @@ import "./KeyinBrowser.scss";
|
|
|
5
5
|
import * as React from "react";
|
|
6
6
|
import { AutoSuggestData, CommonProps } from "@itwin/core-react";
|
|
7
7
|
/** Data for each key-in.
|
|
8
|
-
@deprecated */
|
|
8
|
+
@deprecated in 3.0. */
|
|
9
9
|
interface KeyinBrowserData extends AutoSuggestData {
|
|
10
10
|
/** English key-in - Browser supports both English and localized key-ins */
|
|
11
11
|
englishKeyin: string;
|
|
12
12
|
}
|
|
13
13
|
/** State of key-in browser.
|
|
14
|
-
@deprecated */
|
|
14
|
+
@deprecated in 3.0. */
|
|
15
15
|
interface KeyinBrowserState {
|
|
16
16
|
keyins: KeyinBrowserData[];
|
|
17
17
|
currentToolId: string | undefined;
|
|
18
18
|
currentArgs: string;
|
|
19
19
|
}
|
|
20
20
|
/** Arguments for [[KeyinBrowserProps]] onExecute callback.
|
|
21
|
-
* @beta @deprecated
|
|
21
|
+
* @beta @deprecated in 3.0.
|
|
22
22
|
*/
|
|
23
23
|
export interface KeyinBrowserExecuteArgs {
|
|
24
24
|
/** Id of the tool that was run */
|
|
@@ -29,7 +29,7 @@ export interface KeyinBrowserExecuteArgs {
|
|
|
29
29
|
runStatus: boolean;
|
|
30
30
|
}
|
|
31
31
|
/** Properties of the [[KeyinBrowser]] component.
|
|
32
|
-
* @beta @deprecated
|
|
32
|
+
* @beta @deprecated in 3.0.
|
|
33
33
|
*/
|
|
34
34
|
export interface KeyinBrowserProps extends CommonProps {
|
|
35
35
|
/** Function called after the key-in is executed */
|
|
@@ -39,7 +39,7 @@ export interface KeyinBrowserProps extends CommonProps {
|
|
|
39
39
|
}
|
|
40
40
|
/**
|
|
41
41
|
* Component used to allow users to select, provide arguments, and execute a key-in.
|
|
42
|
-
* @beta @deprecated
|
|
42
|
+
* @beta @deprecated in 3.0.
|
|
43
43
|
*/
|
|
44
44
|
export declare class KeyinBrowser extends React.PureComponent<KeyinBrowserProps, KeyinBrowserState> {
|
|
45
45
|
private _toolIdLabel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyinBrowser.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/keyinbrowser/KeyinBrowser.tsx"],"names":[],"mappings":"AAKA;;GAEG;AAEH,OAAO,qBAAqB,CAAC;AAE7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAe,eAAe,EAAE,WAAW,EAAc,MAAM,mBAAmB,CAAC;AAK1F;
|
|
1
|
+
{"version":3,"file":"KeyinBrowser.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/keyinbrowser/KeyinBrowser.tsx"],"names":[],"mappings":"AAKA;;GAEG;AAEH,OAAO,qBAAqB,CAAC;AAE7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAe,eAAe,EAAE,WAAW,EAAc,MAAM,mBAAmB,CAAC;AAK1F;uBACuB;AACvB,UAAU,gBAAiB,SAAQ,eAAe;IAIhD,2EAA2E;IAC3E,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;uBACuB;AACvB,UAAU,iBAAiB;IACzB,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,kCAAkC;IAClC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,mCAAmC;IACnC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,+BAA+B;IAC/B,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD,mDAAmD;IACnD,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,uBAAuB,KAAK,IAAI,CAAC;IACpD,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED;;;GAGG;AACH,qBAAa,YAAa,SAAQ,KAAK,CAAC,aAAa,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IACzF,OAAO,CAAC,YAAY,CAA+C;IACnE,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,QAAQ,CAAiD;IACjE,OAAO,CAAC,aAAa,CAAiD;IACtE,OAAO,CAAC,mBAAmB,CAAqD;IAChF,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,UAAU,CAAS;IAE3B,gBAAgB;gBACJ,KAAK,EAAE,GAAG;IAYtB,gBAAgB;IACA,iBAAiB;IAcjC,gBAAgB;IACA,oBAAoB;IAIpC,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,QAAQ,CAEd;YAEY,QAAQ;IA+CtB,OAAO,CAAC,cAAc,CAGpB;IAGF,OAAO,CAAC,gBAAgB,CAMtB;IAEF,OAAO,CAAC,kBAAkB,CAIxB;IAEF,OAAO,CAAC,UAAU,CAahB;IAEF,OAAO,CAAC,aAAa,CAKnB;IAEF,OAAO,CAAC,mBAAmB,CAUzB;IAEF,OAAO,CAAC,iBAAiB,CAKvB;IAEF,OAAO,CAAC,kBAAkB;IA+B1B,OAAO,CAAC,oBAAoB,CAK1B;IAEF,uDAAuD;IACvD,OAAO,CAAC,eAAe,CAWrB;IAEF,gBAAgB;IACA,MAAM,IAAI,KAAK,CAAC,SAAS;CAiB1C"}
|
|
@@ -16,7 +16,7 @@ import { UiFramework } from "../UiFramework";
|
|
|
16
16
|
import { SpecialKey } from "@itwin/appui-abstract";
|
|
17
17
|
/**
|
|
18
18
|
* Component used to allow users to select, provide arguments, and execute a key-in.
|
|
19
|
-
* @beta @deprecated
|
|
19
|
+
* @beta @deprecated in 3.0.
|
|
20
20
|
*/
|
|
21
21
|
export class KeyinBrowser extends React.PureComponent {
|
|
22
22
|
/** @internal */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyinBrowser.js","sourceRoot":"","sources":["../../../../src/appui-react/keyinbrowser/KeyinBrowser.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable deprecation/deprecation */\r\n/** @packageDocumentation\r\n * @module Item\r\n */\r\n\r\nimport \"./KeyinBrowser.scss\";\r\n// cSpell:ignore Modeless keyins keyinbrowser testid\r\nimport * as React from \"react\";\r\nimport { IModelApp, NotifyMessageDetails, OutputMessagePriority, OutputMessageType, Tool } from \"@itwin/core-frontend\";\r\nimport { AutoSuggest, AutoSuggestData, CommonProps, InputLabel } from \"@itwin/core-react\";\r\nimport { Button, LabeledInput } from \"@itwin/itwinui-react\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { SpecialKey } from \"@itwin/appui-abstract\";\r\n\r\n/** Data for each key-in.\r\n @deprecated */\r\ninterface KeyinBrowserData extends AutoSuggestData {\r\n // AutoSuggestData.value is the toolId\r\n // AutoSuggestData.label is the keyin\r\n\r\n /** English key-in - Browser supports both English and localized key-ins */\r\n englishKeyin: string;\r\n}\r\n\r\n/** State of key-in browser.\r\n @deprecated */\r\ninterface KeyinBrowserState {\r\n keyins: KeyinBrowserData[];\r\n currentToolId: string | undefined;\r\n currentArgs: string;\r\n}\r\n\r\n/** Arguments for [[KeyinBrowserProps]] onExecute callback.\r\n * @beta @deprecated\r\n */\r\nexport interface KeyinBrowserExecuteArgs {\r\n /** Id of the tool that was run */\r\n toolId: string | undefined;\r\n /** Arguments passed to the tool */\r\n args: string[];\r\n /** Status of the key-in run */\r\n runStatus: boolean;\r\n}\r\n\r\n/** Properties of the [[KeyinBrowser]] component.\r\n * @beta @deprecated\r\n */\r\nexport interface KeyinBrowserProps extends CommonProps {\r\n /** Function called after the key-in is executed */\r\n onExecute?: (args: KeyinBrowserExecuteArgs) => void;\r\n /** Function called on Escape or popup close */\r\n onCancel?: () => void;\r\n}\r\n\r\n/**\r\n * Component used to allow users to select, provide arguments, and execute a key-in.\r\n * @beta @deprecated\r\n */\r\nexport class KeyinBrowser extends React.PureComponent<KeyinBrowserProps, KeyinBrowserState> {\r\n private _toolIdLabel = UiFramework.translate(\"keyinbrowser.keyin\");\r\n private _argsLabel = UiFramework.translate(\"keyinbrowser.args\");\r\n private _argsTip = UiFramework.translate(\"keyinbrowser.argsTip\");\r\n private _executeLabel = UiFramework.translate(\"keyinbrowser.execute\");\r\n private _suggestPlaceholder = UiFramework.translate(\"keyinbrowser.placeholder\");\r\n private _toolIdKey = \"keyinbrowser:keyin\";\r\n private _isMounted = false;\r\n\r\n /** @internal */\r\n constructor(props: any) {\r\n super(props);\r\n const currentToolId = this.getSavedToolId();\r\n const currentArgs = this.getToolArgs(currentToolId);\r\n\r\n this.state = {\r\n keyins: [],\r\n currentToolId,\r\n currentArgs,\r\n };\r\n }\r\n\r\n /** @internal */\r\n public override componentDidMount() {\r\n this._isMounted = true;\r\n\r\n let keyins = this.getToolKeyinMap();\r\n this.setState({ keyins });\r\n\r\n setTimeout(() => {\r\n keyins = keyins.sort((a: AutoSuggestData, b: AutoSuggestData) => a.label.localeCompare(b.label));\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({ keyins });\r\n });\r\n }\r\n\r\n /** @internal */\r\n public override componentWillUnmount() {\r\n this._isMounted = false;\r\n }\r\n\r\n private getArgsKey(toolId: string | undefined): string | undefined {\r\n if (toolId && toolId.length > 0)\r\n return `keyinbrowser:${toolId}`;\r\n return undefined;\r\n }\r\n\r\n private getSavedToolId(): string | undefined {\r\n const toolId = window.localStorage.getItem(this._toolIdKey);\r\n return toolId ? toolId : undefined;\r\n }\r\n\r\n private getToolArgs(toolId: string | undefined): string {\r\n const argsKey = this.getArgsKey(toolId);\r\n if (argsKey && argsKey.length > 0) {\r\n const args = window.localStorage.getItem(argsKey);\r\n // istanbul ignore if\r\n if (args && /* istanbul ignore next */ args.length > 0 && /* istanbul ignore next */ args[0] === \"[\") {\r\n return (JSON.parse(args) as string[]).join(\"|\");\r\n }\r\n }\r\n return \"\";\r\n }\r\n\r\n private getToolKeyinMap(): KeyinBrowserData[] {\r\n const keyins: KeyinBrowserData[] = [];\r\n IModelApp.tools.getToolList()\r\n .forEach((tool: typeof Tool) => keyins.push({ value: tool.toolId, label: tool.keyin, englishKeyin: tool.englishKeyin }));\r\n return keyins;\r\n }\r\n\r\n private getArgsArray(): string[] {\r\n // istanbul ignore else\r\n if (this.state.currentArgs.length > 0) {\r\n return this.state.currentArgs.split(\"|\");\r\n }\r\n return [];\r\n }\r\n\r\n private _onClick = async () => {\r\n return this._execute();\r\n };\r\n\r\n private async _execute(): Promise<void> {\r\n let toolId: string | undefined;\r\n let args: string[] = [];\r\n let runStatus = false;\r\n\r\n // istanbul ignore else\r\n if (this.state.currentToolId && this.state.currentToolId.length > 0) {\r\n const foundTool = IModelApp.tools.find(this.state.currentToolId);\r\n // istanbul ignore else\r\n if (foundTool) {\r\n toolId = foundTool.toolId;\r\n args = this.getArgsArray();\r\n const maxArgs = foundTool.maxArgs;\r\n\r\n if (args.length < foundTool.minArgs || (undefined !== maxArgs && args.length > maxArgs)) {\r\n this._outputMessage(UiFramework.translate(\"keyinbrowser.incorrectArgs\"));\r\n return;\r\n }\r\n\r\n let key = \"keyinbrowser:keyin\";\r\n window.localStorage.setItem(key, toolId);\r\n\r\n // istanbul ignore if\r\n if (args && args.length > 0) {\r\n key = `keyinbrowser:${toolId}`;\r\n const objectAsString = JSON.stringify(args);\r\n window.localStorage.setItem(key, objectAsString);\r\n }\r\n\r\n const tool = new foundTool();\r\n runStatus = false;\r\n\r\n try {\r\n runStatus = args.length > 0 ? /* istanbul ignore next */ await tool.parseAndRun(...args) : await tool.run();\r\n !runStatus && this._outputMessage(UiFramework.translate(\"keyinbrowser.failedToRun\"));\r\n } catch (e) {\r\n // istanbul ignore next\r\n this._outputMessage(`${UiFramework.translate(\"keyinbrowser.exceptionOccurred\")}: ${e}`);\r\n }\r\n }\r\n }\r\n\r\n // istanbul ignore else\r\n if (this.props.onExecute)\r\n this.props.onExecute({ toolId, args, runStatus });\r\n }\r\n\r\n private _outputMessage = (msg: string) => {\r\n const details = new NotifyMessageDetails(OutputMessagePriority.Error, msg, undefined, OutputMessageType.Alert);\r\n IModelApp.notifications.outputMessage(details);\r\n };\r\n\r\n // istanbul ignore next\r\n private _onKeyinSelected = (selected: AutoSuggestData): void => {\r\n const currentToolId = selected.value;\r\n const currentArgs = this.getToolArgs(currentToolId);\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({ currentToolId, currentArgs });\r\n };\r\n\r\n private _onArgumentsChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({ currentArgs: event.target.value });\r\n };\r\n\r\n private _onKeyDown = async (event: React.KeyboardEvent<HTMLInputElement>): Promise<void> => {\r\n if (SpecialKey.Enter === event.key) {\r\n event.stopPropagation();\r\n return this._execute();\r\n }\r\n\r\n // istanbul ignore else\r\n if (SpecialKey.Escape === event.key) {\r\n // istanbul ignore else\r\n if (this.props.onCancel)\r\n this.props.onCancel();\r\n return;\r\n }\r\n };\r\n\r\n private _onInputFocus = (event: React.FocusEvent<HTMLInputElement>): void => {\r\n // istanbul ignore else\r\n if (event.target) {\r\n event.target.select();\r\n }\r\n };\r\n\r\n private _onAutoSuggestEnter = (event: React.KeyboardEvent): void => {\r\n event.stopPropagation();\r\n\r\n const inputValue = (event.target as HTMLInputElement).value;\r\n // istanbul ignore else\r\n if (this._processInputValue(inputValue)) {\r\n setTimeout(async () => {\r\n await this._execute();\r\n });\r\n }\r\n };\r\n\r\n private _onAutoSuggestTab = (event: React.KeyboardEvent): void => {\r\n event.stopPropagation();\r\n\r\n const inputValue = (event.target as HTMLInputElement).value;\r\n this._processInputValue(inputValue);\r\n };\r\n\r\n private _processInputValue(inputValue: string): boolean {\r\n let currentKeyin = \"\";\r\n let foundTool: typeof Tool | undefined;\r\n\r\n if (this.state.currentToolId && this.state.currentToolId.length > 0) {\r\n foundTool = IModelApp.tools.find(this.state.currentToolId);\r\n // istanbul ignore else\r\n if (foundTool)\r\n currentKeyin = foundTool.keyin;\r\n }\r\n\r\n // istanbul ignore next\r\n if (inputValue !== currentKeyin) {\r\n const inputValueLower = inputValue.trim().toLowerCase();\r\n foundTool = IModelApp.tools.getToolList()\r\n .find((tool: typeof Tool) => tool.keyin.toLowerCase() === inputValueLower || tool.englishKeyin.toLowerCase() === inputValueLower);\r\n\r\n if (!foundTool) {\r\n this._outputMessage(UiFramework.translate(\"keyinbrowser.couldNotFindTool\"));\r\n return false;\r\n } else {\r\n const currentToolId = foundTool.toolId;\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({ currentToolId });\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private _onAutoSuggestEscape = (event: React.KeyboardEvent): void => {\r\n event.stopPropagation();\r\n // istanbul ignore else\r\n if (this.props.onCancel)\r\n this.props.onCancel();\r\n };\r\n\r\n /** Calculate suggestions for any given input value. */\r\n private _getSuggestions = async (value: string): Promise<AutoSuggestData[]> => {\r\n const inputValue = value.trim().toLowerCase();\r\n const inputLength = inputValue.length;\r\n\r\n return Promise.resolve(\r\n inputLength === 0 ?\r\n /* istanbul ignore next */[] :\r\n this.state.keyins.filter((data: KeyinBrowserData) => {\r\n return data.label.toLowerCase().includes(inputValue) || data.englishKeyin.toLowerCase().includes(inputValue);\r\n })\r\n );\r\n };\r\n\r\n /** @internal */\r\n public override render(): React.ReactNode {\r\n return (\r\n <div className=\"uif-keyinbrowser-div\">\r\n <InputLabel label={this._toolIdLabel}>\r\n <AutoSuggest value={this.state.currentToolId} style={{ width: \"250px\" }}\r\n placeholder={this._suggestPlaceholder} options={this.state.keyins}\r\n onSuggestionSelected={this._onKeyinSelected} onPressEnter={this._onAutoSuggestEnter}\r\n onPressTab={this._onAutoSuggestTab} onPressEscape={this._onAutoSuggestEscape} onInputFocus={this._onInputFocus}\r\n getSuggestions={this._getSuggestions} data-testid=\"uif-keyin-autosuggest\" />\r\n </InputLabel>\r\n <LabeledInput label={this._argsLabel} title={this._argsTip} value={this.state.currentArgs}\r\n data-testid=\"uif-keyin-arguments\" id=\"uif-keyin-arguments\"\r\n onKeyDown={this._onKeyDown} onChange={this._onArgumentsChange} onFocus={this._onInputFocus} size=\"small\" />\r\n <Button styleType=\"cta\" data-testid=\"uif-keyin-browser-execute\" onClick={this._onClick}>{this._executeLabel}</Button>\r\n </div>\r\n );\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"KeyinBrowser.js","sourceRoot":"","sources":["../../../../src/appui-react/keyinbrowser/KeyinBrowser.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable deprecation/deprecation */\r\n/** @packageDocumentation\r\n * @module Item\r\n */\r\n\r\nimport \"./KeyinBrowser.scss\";\r\n// cSpell:ignore Modeless keyins keyinbrowser testid\r\nimport * as React from \"react\";\r\nimport { IModelApp, NotifyMessageDetails, OutputMessagePriority, OutputMessageType, Tool } from \"@itwin/core-frontend\";\r\nimport { AutoSuggest, AutoSuggestData, CommonProps, InputLabel } from \"@itwin/core-react\";\r\nimport { Button, LabeledInput } from \"@itwin/itwinui-react\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { SpecialKey } from \"@itwin/appui-abstract\";\r\n\r\n/** Data for each key-in.\r\n @deprecated in 3.0. */\r\ninterface KeyinBrowserData extends AutoSuggestData {\r\n // AutoSuggestData.value is the toolId\r\n // AutoSuggestData.label is the keyin\r\n\r\n /** English key-in - Browser supports both English and localized key-ins */\r\n englishKeyin: string;\r\n}\r\n\r\n/** State of key-in browser.\r\n @deprecated in 3.0. */\r\ninterface KeyinBrowserState {\r\n keyins: KeyinBrowserData[];\r\n currentToolId: string | undefined;\r\n currentArgs: string;\r\n}\r\n\r\n/** Arguments for [[KeyinBrowserProps]] onExecute callback.\r\n * @beta @deprecated in 3.0.\r\n */\r\nexport interface KeyinBrowserExecuteArgs {\r\n /** Id of the tool that was run */\r\n toolId: string | undefined;\r\n /** Arguments passed to the tool */\r\n args: string[];\r\n /** Status of the key-in run */\r\n runStatus: boolean;\r\n}\r\n\r\n/** Properties of the [[KeyinBrowser]] component.\r\n * @beta @deprecated in 3.0.\r\n */\r\nexport interface KeyinBrowserProps extends CommonProps {\r\n /** Function called after the key-in is executed */\r\n onExecute?: (args: KeyinBrowserExecuteArgs) => void;\r\n /** Function called on Escape or popup close */\r\n onCancel?: () => void;\r\n}\r\n\r\n/**\r\n * Component used to allow users to select, provide arguments, and execute a key-in.\r\n * @beta @deprecated in 3.0.\r\n */\r\nexport class KeyinBrowser extends React.PureComponent<KeyinBrowserProps, KeyinBrowserState> {\r\n private _toolIdLabel = UiFramework.translate(\"keyinbrowser.keyin\");\r\n private _argsLabel = UiFramework.translate(\"keyinbrowser.args\");\r\n private _argsTip = UiFramework.translate(\"keyinbrowser.argsTip\");\r\n private _executeLabel = UiFramework.translate(\"keyinbrowser.execute\");\r\n private _suggestPlaceholder = UiFramework.translate(\"keyinbrowser.placeholder\");\r\n private _toolIdKey = \"keyinbrowser:keyin\";\r\n private _isMounted = false;\r\n\r\n /** @internal */\r\n constructor(props: any) {\r\n super(props);\r\n const currentToolId = this.getSavedToolId();\r\n const currentArgs = this.getToolArgs(currentToolId);\r\n\r\n this.state = {\r\n keyins: [],\r\n currentToolId,\r\n currentArgs,\r\n };\r\n }\r\n\r\n /** @internal */\r\n public override componentDidMount() {\r\n this._isMounted = true;\r\n\r\n let keyins = this.getToolKeyinMap();\r\n this.setState({ keyins });\r\n\r\n setTimeout(() => {\r\n keyins = keyins.sort((a: AutoSuggestData, b: AutoSuggestData) => a.label.localeCompare(b.label));\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({ keyins });\r\n });\r\n }\r\n\r\n /** @internal */\r\n public override componentWillUnmount() {\r\n this._isMounted = false;\r\n }\r\n\r\n private getArgsKey(toolId: string | undefined): string | undefined {\r\n if (toolId && toolId.length > 0)\r\n return `keyinbrowser:${toolId}`;\r\n return undefined;\r\n }\r\n\r\n private getSavedToolId(): string | undefined {\r\n const toolId = window.localStorage.getItem(this._toolIdKey);\r\n return toolId ? toolId : undefined;\r\n }\r\n\r\n private getToolArgs(toolId: string | undefined): string {\r\n const argsKey = this.getArgsKey(toolId);\r\n if (argsKey && argsKey.length > 0) {\r\n const args = window.localStorage.getItem(argsKey);\r\n // istanbul ignore if\r\n if (args && /* istanbul ignore next */ args.length > 0 && /* istanbul ignore next */ args[0] === \"[\") {\r\n return (JSON.parse(args) as string[]).join(\"|\");\r\n }\r\n }\r\n return \"\";\r\n }\r\n\r\n private getToolKeyinMap(): KeyinBrowserData[] {\r\n const keyins: KeyinBrowserData[] = [];\r\n IModelApp.tools.getToolList()\r\n .forEach((tool: typeof Tool) => keyins.push({ value: tool.toolId, label: tool.keyin, englishKeyin: tool.englishKeyin }));\r\n return keyins;\r\n }\r\n\r\n private getArgsArray(): string[] {\r\n // istanbul ignore else\r\n if (this.state.currentArgs.length > 0) {\r\n return this.state.currentArgs.split(\"|\");\r\n }\r\n return [];\r\n }\r\n\r\n private _onClick = async () => {\r\n return this._execute();\r\n };\r\n\r\n private async _execute(): Promise<void> {\r\n let toolId: string | undefined;\r\n let args: string[] = [];\r\n let runStatus = false;\r\n\r\n // istanbul ignore else\r\n if (this.state.currentToolId && this.state.currentToolId.length > 0) {\r\n const foundTool = IModelApp.tools.find(this.state.currentToolId);\r\n // istanbul ignore else\r\n if (foundTool) {\r\n toolId = foundTool.toolId;\r\n args = this.getArgsArray();\r\n const maxArgs = foundTool.maxArgs;\r\n\r\n if (args.length < foundTool.minArgs || (undefined !== maxArgs && args.length > maxArgs)) {\r\n this._outputMessage(UiFramework.translate(\"keyinbrowser.incorrectArgs\"));\r\n return;\r\n }\r\n\r\n let key = \"keyinbrowser:keyin\";\r\n window.localStorage.setItem(key, toolId);\r\n\r\n // istanbul ignore if\r\n if (args && args.length > 0) {\r\n key = `keyinbrowser:${toolId}`;\r\n const objectAsString = JSON.stringify(args);\r\n window.localStorage.setItem(key, objectAsString);\r\n }\r\n\r\n const tool = new foundTool();\r\n runStatus = false;\r\n\r\n try {\r\n runStatus = args.length > 0 ? /* istanbul ignore next */ await tool.parseAndRun(...args) : await tool.run();\r\n !runStatus && this._outputMessage(UiFramework.translate(\"keyinbrowser.failedToRun\"));\r\n } catch (e) {\r\n // istanbul ignore next\r\n this._outputMessage(`${UiFramework.translate(\"keyinbrowser.exceptionOccurred\")}: ${e}`);\r\n }\r\n }\r\n }\r\n\r\n // istanbul ignore else\r\n if (this.props.onExecute)\r\n this.props.onExecute({ toolId, args, runStatus });\r\n }\r\n\r\n private _outputMessage = (msg: string) => {\r\n const details = new NotifyMessageDetails(OutputMessagePriority.Error, msg, undefined, OutputMessageType.Alert);\r\n IModelApp.notifications.outputMessage(details);\r\n };\r\n\r\n // istanbul ignore next\r\n private _onKeyinSelected = (selected: AutoSuggestData): void => {\r\n const currentToolId = selected.value;\r\n const currentArgs = this.getToolArgs(currentToolId);\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({ currentToolId, currentArgs });\r\n };\r\n\r\n private _onArgumentsChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({ currentArgs: event.target.value });\r\n };\r\n\r\n private _onKeyDown = async (event: React.KeyboardEvent<HTMLInputElement>): Promise<void> => {\r\n if (SpecialKey.Enter === event.key) {\r\n event.stopPropagation();\r\n return this._execute();\r\n }\r\n\r\n // istanbul ignore else\r\n if (SpecialKey.Escape === event.key) {\r\n // istanbul ignore else\r\n if (this.props.onCancel)\r\n this.props.onCancel();\r\n return;\r\n }\r\n };\r\n\r\n private _onInputFocus = (event: React.FocusEvent<HTMLInputElement>): void => {\r\n // istanbul ignore else\r\n if (event.target) {\r\n event.target.select();\r\n }\r\n };\r\n\r\n private _onAutoSuggestEnter = (event: React.KeyboardEvent): void => {\r\n event.stopPropagation();\r\n\r\n const inputValue = (event.target as HTMLInputElement).value;\r\n // istanbul ignore else\r\n if (this._processInputValue(inputValue)) {\r\n setTimeout(async () => {\r\n await this._execute();\r\n });\r\n }\r\n };\r\n\r\n private _onAutoSuggestTab = (event: React.KeyboardEvent): void => {\r\n event.stopPropagation();\r\n\r\n const inputValue = (event.target as HTMLInputElement).value;\r\n this._processInputValue(inputValue);\r\n };\r\n\r\n private _processInputValue(inputValue: string): boolean {\r\n let currentKeyin = \"\";\r\n let foundTool: typeof Tool | undefined;\r\n\r\n if (this.state.currentToolId && this.state.currentToolId.length > 0) {\r\n foundTool = IModelApp.tools.find(this.state.currentToolId);\r\n // istanbul ignore else\r\n if (foundTool)\r\n currentKeyin = foundTool.keyin;\r\n }\r\n\r\n // istanbul ignore next\r\n if (inputValue !== currentKeyin) {\r\n const inputValueLower = inputValue.trim().toLowerCase();\r\n foundTool = IModelApp.tools.getToolList()\r\n .find((tool: typeof Tool) => tool.keyin.toLowerCase() === inputValueLower || tool.englishKeyin.toLowerCase() === inputValueLower);\r\n\r\n if (!foundTool) {\r\n this._outputMessage(UiFramework.translate(\"keyinbrowser.couldNotFindTool\"));\r\n return false;\r\n } else {\r\n const currentToolId = foundTool.toolId;\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({ currentToolId });\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private _onAutoSuggestEscape = (event: React.KeyboardEvent): void => {\r\n event.stopPropagation();\r\n // istanbul ignore else\r\n if (this.props.onCancel)\r\n this.props.onCancel();\r\n };\r\n\r\n /** Calculate suggestions for any given input value. */\r\n private _getSuggestions = async (value: string): Promise<AutoSuggestData[]> => {\r\n const inputValue = value.trim().toLowerCase();\r\n const inputLength = inputValue.length;\r\n\r\n return Promise.resolve(\r\n inputLength === 0 ?\r\n /* istanbul ignore next */[] :\r\n this.state.keyins.filter((data: KeyinBrowserData) => {\r\n return data.label.toLowerCase().includes(inputValue) || data.englishKeyin.toLowerCase().includes(inputValue);\r\n })\r\n );\r\n };\r\n\r\n /** @internal */\r\n public override render(): React.ReactNode {\r\n return (\r\n <div className=\"uif-keyinbrowser-div\">\r\n <InputLabel label={this._toolIdLabel}>\r\n <AutoSuggest value={this.state.currentToolId} style={{ width: \"250px\" }}\r\n placeholder={this._suggestPlaceholder} options={this.state.keyins}\r\n onSuggestionSelected={this._onKeyinSelected} onPressEnter={this._onAutoSuggestEnter}\r\n onPressTab={this._onAutoSuggestTab} onPressEscape={this._onAutoSuggestEscape} onInputFocus={this._onInputFocus}\r\n getSuggestions={this._getSuggestions} data-testid=\"uif-keyin-autosuggest\" />\r\n </InputLabel>\r\n <LabeledInput label={this._argsLabel} title={this._argsTip} value={this.state.currentArgs}\r\n data-testid=\"uif-keyin-arguments\" id=\"uif-keyin-arguments\"\r\n onKeyDown={this._onKeyDown} onChange={this._onArgumentsChange} onFocus={this._onInputFocus} size=\"small\" />\r\n <Button styleType=\"cta\" data-testid=\"uif-keyin-browser-execute\" onClick={this._onClick}>{this._executeLabel}</Button>\r\n </div>\r\n );\r\n }\r\n}\r\n"]}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import { ActivityMessageEventArgs } from "../messages/MessageManager";
|
|
6
6
|
import { ToasterSettings } from "@itwin/itwinui-react/cjs/core/Toast/Toaster";
|
|
7
7
|
/** Properties for a [[ActivityMessage]]
|
|
8
|
-
* @deprecated Props of a deprecated component.
|
|
8
|
+
* @deprecated in 3.5. Props of a deprecated component.
|
|
9
9
|
* @public
|
|
10
10
|
*/
|
|
11
11
|
export interface ActivityMessageProps {
|
|
@@ -15,7 +15,7 @@ export interface ActivityMessageProps {
|
|
|
15
15
|
}
|
|
16
16
|
/** Activity Message React component
|
|
17
17
|
* @public
|
|
18
|
-
* @deprecated
|
|
18
|
+
* @deprecated in 3.3.
|
|
19
19
|
*/
|
|
20
20
|
export declare function ActivityMessage(props: ActivityMessageProps): JSX.Element;
|
|
21
21
|
interface CustomActivityMessageProps {
|
|
@@ -15,7 +15,7 @@ import { MessageLabel } from "./MessageLabel";
|
|
|
15
15
|
import { HollowIcon } from "./HollowIcon";
|
|
16
16
|
/** Activity Message React component
|
|
17
17
|
* @public
|
|
18
|
-
* @deprecated
|
|
18
|
+
* @deprecated in 3.3.
|
|
19
19
|
*/
|
|
20
20
|
export function ActivityMessage(props) {
|
|
21
21
|
const messageDetails = props.activityMessageInfo.details;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActivityMessage.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/ActivityMessage.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Notification\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Icon, UiCore } from \"@itwin/core-react\";\r\nimport {\r\n Message,\r\n MessageButton,\r\n MessageHyperlink,\r\n MessageLayout,\r\n MessageProgress,\r\n Status,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { ProgressLinear, Small, Text, toaster } from \"@itwin/itwinui-react\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { ActivityMessageEventArgs, MessageManager } from \"../messages/MessageManager\";\r\nimport { MessageLabel } from \"./MessageLabel\";\r\nimport { HollowIcon } from \"./HollowIcon\";\r\nimport { ToasterSettings } from \"@itwin/itwinui-react/cjs/core/Toast/Toaster\";\r\n\r\n/** Properties for a [[ActivityMessage]]\r\n * @deprecated Props of a deprecated component.\r\n * @public\r\n */\r\nexport interface ActivityMessageProps {\r\n activityMessageInfo: ActivityMessageEventArgs;\r\n cancelActivityMessage: () => void;\r\n dismissActivityMessage: () => void;\r\n}\r\n\r\n/** Activity Message React component\r\n * @public\r\n * @deprecated\r\n */\r\nexport function ActivityMessage(props: ActivityMessageProps) { // eslint-disable-line deprecation/deprecation\r\n const messageDetails = props.activityMessageInfo.details;\r\n const [percentCompleteLabel] = React.useState(UiFramework.translate(\"activityCenter.percentComplete\"));\r\n const [cancelLabel] = React.useState(UiCore.translate(\"dialog.cancel\"));\r\n\r\n return (\r\n <Message // eslint-disable-line deprecation/deprecation\r\n status={Status.Information}\r\n icon={<HollowIcon iconSpec=\"icon-info-hollow\" />}\r\n >\r\n <MessageLayout\r\n buttons={(messageDetails && messageDetails.supportsCancellation) ? (\r\n <div>\r\n <MessageHyperlink onClick={props.cancelActivityMessage}>\r\n {cancelLabel}\r\n </MessageHyperlink>\r\n <span> </span>\r\n <MessageButton onClick={props.dismissActivityMessage}>\r\n <Icon iconSpec=\"icon-close\" />\r\n </MessageButton>\r\n </div>\r\n ) : (\r\n <MessageButton onClick={props.dismissActivityMessage}>\r\n <Icon iconSpec=\"icon-close\" />\r\n </MessageButton>\r\n )}\r\n progress={(messageDetails && messageDetails.showProgressBar) &&\r\n <MessageProgress\r\n status={Status.Information}\r\n progress={props.activityMessageInfo.percentage}\r\n />\r\n }\r\n >\r\n <div>\r\n <MessageLabel message={props.activityMessageInfo.message} className=\"uifw-statusbar-message-brief\" />\r\n {(messageDetails && messageDetails.showPercentInMessage) &&\r\n <Small>{props.activityMessageInfo.percentage + percentCompleteLabel}</Small>\r\n }\r\n </div>\r\n </MessageLayout>\r\n </Message>\r\n );\r\n}\r\n\r\ninterface CustomActivityMessageProps {\r\n cancelActivityMessage?: () => void;\r\n dismissActivityMessage?: () => void;\r\n activityMessageInfo?: ActivityMessageEventArgs;\r\n settings?: ToasterSettings;\r\n}\r\n\r\n/**\r\n * Hook to render an Activity message.\r\n * @internal\r\n */\r\nexport function useActivityMessage({activityMessageInfo, dismissActivityMessage, cancelActivityMessage, settings}: CustomActivityMessageProps) {\r\n const [cancelLabel] = React.useState(UiCore.translate(\"dialog.cancel\"));\r\n const recentToast = React.useRef<{close: () => void} | undefined>();\r\n React.useEffect(() => {\r\n toaster.setSettings(settings ?? {placement: \"top\"});\r\n }, [settings]);\r\n\r\n React.useEffect(() => {\r\n if (activityMessageInfo?.restored) {\r\n recentToast.current = toaster.informational(\r\n <CustomActivityMessageContent initialActivityMessageInfo={activityMessageInfo} />,\r\n { onRemove: dismissActivityMessage, type: \"persisting\", link: activityMessageInfo?.details?.supportsCancellation && cancelActivityMessage ? { title: cancelLabel, onClick: cancelActivityMessage } : undefined}\r\n );\r\n }\r\n if (!activityMessageInfo) {\r\n recentToast.current?.close();\r\n }\r\n }, [activityMessageInfo, cancelActivityMessage, cancelLabel, dismissActivityMessage]);\r\n}\r\n\r\n/**\r\n * Component wrapping the `useActivityMessage` hook to use in class components.\r\n * @internal\r\n */\r\nexport function CustomActivityMessageRenderer({activityMessageInfo, dismissActivityMessage, cancelActivityMessage, settings}: CustomActivityMessageProps) {\r\n useActivityMessage({activityMessageInfo, cancelActivityMessage, dismissActivityMessage, settings});\r\n\r\n return <></>;\r\n}\r\n\r\n/**\r\n * Component used to show and update activity message content.\r\n * @internal\r\n */\r\nexport function CustomActivityMessageContent({initialActivityMessageInfo}: {initialActivityMessageInfo: ActivityMessageEventArgs}) {\r\n const [percentCompleteLabel] = React.useState(UiFramework.translate(\"activityCenter.percentComplete\"));\r\n const [activityMessageInfo, setActivityMessageInfo] = React.useState(initialActivityMessageInfo);\r\n\r\n React.useEffect(() => {\r\n const handleActivityMessageUpdatedEvent = (args: ActivityMessageEventArgs) => {\r\n setActivityMessageInfo(args);\r\n };\r\n\r\n return MessageManager.onActivityMessageUpdatedEvent.addListener(handleActivityMessageUpdatedEvent);\r\n }, []);\r\n\r\n return (\r\n <>\r\n {activityMessageInfo.message && <Text>{activityMessageInfo.message}</Text>}\r\n {!!activityMessageInfo.details?.showPercentInMessage &&\r\n <Small>{`${activityMessageInfo.percentage} ${percentCompleteLabel}`}</Small>\r\n }\r\n {activityMessageInfo.details?.showProgressBar && <ProgressLinear value={activityMessageInfo?.percentage} />}\r\n </>\r\n );\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"ActivityMessage.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/ActivityMessage.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Notification\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Icon, UiCore } from \"@itwin/core-react\";\r\nimport {\r\n Message,\r\n MessageButton,\r\n MessageHyperlink,\r\n MessageLayout,\r\n MessageProgress,\r\n Status,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { ProgressLinear, Small, Text, toaster } from \"@itwin/itwinui-react\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { ActivityMessageEventArgs, MessageManager } from \"../messages/MessageManager\";\r\nimport { MessageLabel } from \"./MessageLabel\";\r\nimport { HollowIcon } from \"./HollowIcon\";\r\nimport { ToasterSettings } from \"@itwin/itwinui-react/cjs/core/Toast/Toaster\";\r\n\r\n/** Properties for a [[ActivityMessage]]\r\n * @deprecated in 3.5. Props of a deprecated component.\r\n * @public\r\n */\r\nexport interface ActivityMessageProps {\r\n activityMessageInfo: ActivityMessageEventArgs;\r\n cancelActivityMessage: () => void;\r\n dismissActivityMessage: () => void;\r\n}\r\n\r\n/** Activity Message React component\r\n * @public\r\n * @deprecated in 3.3.\r\n */\r\nexport function ActivityMessage(props: ActivityMessageProps) { // eslint-disable-line deprecation/deprecation\r\n const messageDetails = props.activityMessageInfo.details;\r\n const [percentCompleteLabel] = React.useState(UiFramework.translate(\"activityCenter.percentComplete\"));\r\n const [cancelLabel] = React.useState(UiCore.translate(\"dialog.cancel\"));\r\n\r\n return (\r\n <Message // eslint-disable-line deprecation/deprecation\r\n status={Status.Information}\r\n icon={<HollowIcon iconSpec=\"icon-info-hollow\" />}\r\n >\r\n <MessageLayout\r\n buttons={(messageDetails && messageDetails.supportsCancellation) ? (\r\n <div>\r\n <MessageHyperlink onClick={props.cancelActivityMessage}>\r\n {cancelLabel}\r\n </MessageHyperlink>\r\n <span> </span>\r\n <MessageButton onClick={props.dismissActivityMessage}>\r\n <Icon iconSpec=\"icon-close\" />\r\n </MessageButton>\r\n </div>\r\n ) : (\r\n <MessageButton onClick={props.dismissActivityMessage}>\r\n <Icon iconSpec=\"icon-close\" />\r\n </MessageButton>\r\n )}\r\n progress={(messageDetails && messageDetails.showProgressBar) &&\r\n <MessageProgress\r\n status={Status.Information}\r\n progress={props.activityMessageInfo.percentage}\r\n />\r\n }\r\n >\r\n <div>\r\n <MessageLabel message={props.activityMessageInfo.message} className=\"uifw-statusbar-message-brief\" />\r\n {(messageDetails && messageDetails.showPercentInMessage) &&\r\n <Small>{props.activityMessageInfo.percentage + percentCompleteLabel}</Small>\r\n }\r\n </div>\r\n </MessageLayout>\r\n </Message>\r\n );\r\n}\r\n\r\ninterface CustomActivityMessageProps {\r\n cancelActivityMessage?: () => void;\r\n dismissActivityMessage?: () => void;\r\n activityMessageInfo?: ActivityMessageEventArgs;\r\n settings?: ToasterSettings;\r\n}\r\n\r\n/**\r\n * Hook to render an Activity message.\r\n * @internal\r\n */\r\nexport function useActivityMessage({activityMessageInfo, dismissActivityMessage, cancelActivityMessage, settings}: CustomActivityMessageProps) {\r\n const [cancelLabel] = React.useState(UiCore.translate(\"dialog.cancel\"));\r\n const recentToast = React.useRef<{close: () => void} | undefined>();\r\n React.useEffect(() => {\r\n toaster.setSettings(settings ?? {placement: \"top\"});\r\n }, [settings]);\r\n\r\n React.useEffect(() => {\r\n if (activityMessageInfo?.restored) {\r\n recentToast.current = toaster.informational(\r\n <CustomActivityMessageContent initialActivityMessageInfo={activityMessageInfo} />,\r\n { onRemove: dismissActivityMessage, type: \"persisting\", link: activityMessageInfo?.details?.supportsCancellation && cancelActivityMessage ? { title: cancelLabel, onClick: cancelActivityMessage } : undefined}\r\n );\r\n }\r\n if (!activityMessageInfo) {\r\n recentToast.current?.close();\r\n }\r\n }, [activityMessageInfo, cancelActivityMessage, cancelLabel, dismissActivityMessage]);\r\n}\r\n\r\n/**\r\n * Component wrapping the `useActivityMessage` hook to use in class components.\r\n * @internal\r\n */\r\nexport function CustomActivityMessageRenderer({activityMessageInfo, dismissActivityMessage, cancelActivityMessage, settings}: CustomActivityMessageProps) {\r\n useActivityMessage({activityMessageInfo, cancelActivityMessage, dismissActivityMessage, settings});\r\n\r\n return <></>;\r\n}\r\n\r\n/**\r\n * Component used to show and update activity message content.\r\n * @internal\r\n */\r\nexport function CustomActivityMessageContent({initialActivityMessageInfo}: {initialActivityMessageInfo: ActivityMessageEventArgs}) {\r\n const [percentCompleteLabel] = React.useState(UiFramework.translate(\"activityCenter.percentComplete\"));\r\n const [activityMessageInfo, setActivityMessageInfo] = React.useState(initialActivityMessageInfo);\r\n\r\n React.useEffect(() => {\r\n const handleActivityMessageUpdatedEvent = (args: ActivityMessageEventArgs) => {\r\n setActivityMessageInfo(args);\r\n };\r\n\r\n return MessageManager.onActivityMessageUpdatedEvent.addListener(handleActivityMessageUpdatedEvent);\r\n }, []);\r\n\r\n return (\r\n <>\r\n {activityMessageInfo.message && <Text>{activityMessageInfo.message}</Text>}\r\n {!!activityMessageInfo.details?.showPercentInMessage &&\r\n <Small>{`${activityMessageInfo.percentage} ${percentCompleteLabel}`}</Small>\r\n }\r\n {activityMessageInfo.details?.showProgressBar && <ProgressLinear value={activityMessageInfo?.percentage} />}\r\n </>\r\n );\r\n}\r\n"]}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import "./ActivityMessagePopup.scss";
|
|
6
6
|
import { CommonProps } from "@itwin/core-react";
|
|
7
7
|
/** Properties for [[ActivityMessagePopup]] component
|
|
8
|
-
* @deprecated Props of a deprecated component.
|
|
8
|
+
* @deprecated in 3.5. Props of a deprecated component.
|
|
9
9
|
* @public
|
|
10
10
|
*/
|
|
11
11
|
export interface ActivityMessagePopupProps extends CommonProps {
|
|
@@ -13,7 +13,7 @@ export interface ActivityMessagePopupProps extends CommonProps {
|
|
|
13
13
|
dismissActivityMessage?: () => void;
|
|
14
14
|
}
|
|
15
15
|
/** Activity Message Popup React component
|
|
16
|
-
* @deprecated Activity messages are set-up automatically in a StatusBar.
|
|
16
|
+
* @deprecated in 3.5. Activity messages are set-up automatically in a StatusBar.
|
|
17
17
|
* @public
|
|
18
18
|
*/
|
|
19
19
|
export declare function ActivityMessagePopup(props: ActivityMessagePopupProps): JSX.Element;
|
|
@@ -10,7 +10,7 @@ import * as React from "react";
|
|
|
10
10
|
import { MessageManager } from "../messages/MessageManager";
|
|
11
11
|
import { useActivityMessage } from "./ActivityMessage";
|
|
12
12
|
/** Activity Message Popup React component
|
|
13
|
-
* @deprecated Activity messages are set-up automatically in a StatusBar.
|
|
13
|
+
* @deprecated in 3.5. Activity messages are set-up automatically in a StatusBar.
|
|
14
14
|
* @public
|
|
15
15
|
*/
|
|
16
16
|
export function ActivityMessagePopup(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActivityMessagePopup.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/ActivityMessagePopup.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,6BAA6B,CAAC;AACrC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAA4B,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAWvD;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAgC;IACnE,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAuC,SAAS,CAAC,CAAC;IAEtH,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,iCAAiC,GAAG,CAAC,IAA8B,EAAE,EAAE;YAC3E,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC;QAEF,OAAO,cAAc,CAAC,6BAA6B,CAAC,WAAW,CAAC,iCAAiC,CAAC,CAAC;IACrG,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,mCAAmC,GAAG,GAAG,EAAE;YAC/C,sBAAsB,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC,CAAC;QAEF,OAAO,cAAc,CAAC,+BAA+B,CAAC,WAAW,CAAC,mCAAmC,CAAC,CAAC;IACzG,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,qBAAqB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACnD,cAAc,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACzC,KAAK,CAAC,qBAAqB,IAAI,KAAK,CAAC,qBAAqB,EAAE,CAAC;IAC/D,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,sBAAsB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACpD,KAAK,CAAC,sBAAsB,IAAI,KAAK,CAAC,sBAAsB,EAAE,CAAC;IACjE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,kBAAkB,CAAC,EAAC,mBAAmB,EAAE,qBAAqB,EAAE,sBAAsB,EAAC,CAAC,CAAC;IAEzF,OAAO,yCAAK,CAAC;AACf,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Notification\r\n */\r\n\r\nimport \"./ActivityMessagePopup.scss\";\r\nimport * as React from \"react\";\r\nimport { ActivityMessageEventArgs, MessageManager } from \"../messages/MessageManager\";\r\nimport { CommonProps } from \"@itwin/core-react\";\r\nimport { useActivityMessage } from \"./ActivityMessage\";\r\n\r\n/** Properties for [[ActivityMessagePopup]] component\r\n * @deprecated Props of a deprecated component.\r\n * @public\r\n */\r\nexport interface ActivityMessagePopupProps extends CommonProps {\r\n cancelActivityMessage?: () => void;\r\n dismissActivityMessage?: () => void;\r\n}\r\n\r\n/** Activity Message Popup React component\r\n * @deprecated Activity messages are set-up automatically in a StatusBar.\r\n * @public\r\n */\r\nexport function ActivityMessagePopup(props: ActivityMessagePopupProps) { // eslint-disable-line deprecation/deprecation\r\n const [activityMessageInfo, setActivityMessageInfo] = React.useState<ActivityMessageEventArgs | undefined>(undefined);\r\n\r\n React.useEffect(() => {\r\n const handleActivityMessageUpdatedEvent = (args: ActivityMessageEventArgs) => {\r\n setActivityMessageInfo(args);\r\n };\r\n\r\n return MessageManager.onActivityMessageUpdatedEvent.addListener(handleActivityMessageUpdatedEvent);\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n const handleActivityMessageCancelledEvent = () => {\r\n setActivityMessageInfo(undefined);\r\n };\r\n\r\n return MessageManager.onActivityMessageCancelledEvent.addListener(handleActivityMessageCancelledEvent);\r\n }, []);\r\n\r\n const cancelActivityMessage = React.useCallback(() => {\r\n MessageManager.endActivityMessage(false);\r\n props.cancelActivityMessage && props.cancelActivityMessage();\r\n }, [props]);\r\n\r\n const dismissActivityMessage = React.useCallback(() => {\r\n props.dismissActivityMessage && props.dismissActivityMessage();\r\n }, [props]);\r\n\r\n useActivityMessage({activityMessageInfo, cancelActivityMessage, dismissActivityMessage});\r\n\r\n return <></>;\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"ActivityMessagePopup.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/ActivityMessagePopup.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,6BAA6B,CAAC;AACrC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAA4B,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAWvD;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAgC;IACnE,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAuC,SAAS,CAAC,CAAC;IAEtH,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,iCAAiC,GAAG,CAAC,IAA8B,EAAE,EAAE;YAC3E,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC;QAEF,OAAO,cAAc,CAAC,6BAA6B,CAAC,WAAW,CAAC,iCAAiC,CAAC,CAAC;IACrG,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,mCAAmC,GAAG,GAAG,EAAE;YAC/C,sBAAsB,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC,CAAC;QAEF,OAAO,cAAc,CAAC,+BAA+B,CAAC,WAAW,CAAC,mCAAmC,CAAC,CAAC;IACzG,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,qBAAqB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACnD,cAAc,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACzC,KAAK,CAAC,qBAAqB,IAAI,KAAK,CAAC,qBAAqB,EAAE,CAAC;IAC/D,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,sBAAsB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACpD,KAAK,CAAC,sBAAsB,IAAI,KAAK,CAAC,sBAAsB,EAAE,CAAC;IACjE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,kBAAkB,CAAC,EAAC,mBAAmB,EAAE,qBAAqB,EAAE,sBAAsB,EAAC,CAAC,CAAC;IAEzF,OAAO,yCAAK,CAAC;AACf,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Notification\r\n */\r\n\r\nimport \"./ActivityMessagePopup.scss\";\r\nimport * as React from \"react\";\r\nimport { ActivityMessageEventArgs, MessageManager } from \"../messages/MessageManager\";\r\nimport { CommonProps } from \"@itwin/core-react\";\r\nimport { useActivityMessage } from \"./ActivityMessage\";\r\n\r\n/** Properties for [[ActivityMessagePopup]] component\r\n * @deprecated in 3.5. Props of a deprecated component.\r\n * @public\r\n */\r\nexport interface ActivityMessagePopupProps extends CommonProps {\r\n cancelActivityMessage?: () => void;\r\n dismissActivityMessage?: () => void;\r\n}\r\n\r\n/** Activity Message Popup React component\r\n * @deprecated in 3.5. Activity messages are set-up automatically in a StatusBar.\r\n * @public\r\n */\r\nexport function ActivityMessagePopup(props: ActivityMessagePopupProps) { // eslint-disable-line deprecation/deprecation\r\n const [activityMessageInfo, setActivityMessageInfo] = React.useState<ActivityMessageEventArgs | undefined>(undefined);\r\n\r\n React.useEffect(() => {\r\n const handleActivityMessageUpdatedEvent = (args: ActivityMessageEventArgs) => {\r\n setActivityMessageInfo(args);\r\n };\r\n\r\n return MessageManager.onActivityMessageUpdatedEvent.addListener(handleActivityMessageUpdatedEvent);\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n const handleActivityMessageCancelledEvent = () => {\r\n setActivityMessageInfo(undefined);\r\n };\r\n\r\n return MessageManager.onActivityMessageCancelledEvent.addListener(handleActivityMessageCancelledEvent);\r\n }, []);\r\n\r\n const cancelActivityMessage = React.useCallback(() => {\r\n MessageManager.endActivityMessage(false);\r\n props.cancelActivityMessage && props.cancelActivityMessage();\r\n }, [props]);\r\n\r\n const dismissActivityMessage = React.useCallback(() => {\r\n props.dismissActivityMessage && props.dismissActivityMessage();\r\n }, [props]);\r\n\r\n useActivityMessage({activityMessageInfo, cancelActivityMessage, dismissActivityMessage});\r\n\r\n return <></>;\r\n}\r\n"]}
|