@itwin/appui-react 4.9.0 → 4.10.0-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/appui-react/UiFramework.js +4 -7
- package/lib/cjs/appui-react/UiFramework.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts +4 -2
- package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js +17 -29
- package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.scss +10 -17
- package/lib/cjs/appui-react/accudraw/AccuDrawInputField.scss +2 -0
- package/lib/cjs/appui-react/accudraw/SquareButton.d.ts +3 -1
- package/lib/cjs/appui-react/accudraw/SquareButton.d.ts.map +1 -1
- package/lib/cjs/appui-react/accudraw/SquareButton.js +1 -4
- package/lib/cjs/appui-react/accudraw/SquareButton.js.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +1 -2
- package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +2 -2
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts +1 -1
- package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
- package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js +19 -15
- package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/{configurableui.scss → ConfigurableUiContent.scss} +14 -0
- package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
- package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/TimeTracker.js +1 -2
- package/lib/cjs/appui-react/configurableui/TimeTracker.js.map +1 -1
- package/lib/cjs/appui-react/content/ContentLayout.js +9 -12
- package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
- package/lib/cjs/appui-react/content/DefaultViewOverlay.js +3 -4
- package/lib/cjs/appui-react/content/DefaultViewOverlay.js.map +1 -1
- package/lib/cjs/appui-react/content/FloatingViewportContent.js +1 -2
- package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
- package/lib/cjs/appui-react/content/IModelViewport.js +4 -7
- package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
- package/lib/cjs/appui-react/content/InternalContentLayoutManager.js +1 -2
- package/lib/cjs/appui-react/content/InternalContentLayoutManager.js.map +1 -1
- package/lib/cjs/appui-react/content/InternalContentViewManager.js +2 -2
- package/lib/cjs/appui-react/content/InternalContentViewManager.js.map +1 -1
- package/lib/cjs/appui-react/content/split-pane/SplitPane.js +10 -12
- package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -1
- package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js +2 -3
- package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
- package/lib/cjs/appui-react/dialog/ContentDialog.js +3 -6
- package/lib/cjs/appui-react/dialog/ContentDialog.js.map +1 -1
- package/lib/cjs/appui-react/dialog/DialogManagerBase.js +2 -3
- package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
- package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
- package/lib/cjs/appui-react/feedback/ElementTooltip.js +2 -3
- package/lib/cjs/appui-react/feedback/ElementTooltip.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js +10 -14
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/ModalFrontstage.d.ts +2 -4
- package/lib/cjs/appui-react/frontstage/ModalFrontstage.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/ModalFrontstage.js +2 -3
- package/lib/cjs/appui-react/frontstage/ModalFrontstage.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/ModalFrontstage.scss +1 -1
- package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +2 -3
- package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +1 -2
- package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js +7 -11
- package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js +7 -11
- package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useSolarDataProvider.js +8 -13
- package/lib/cjs/appui-react/hooks/useSolarDataProvider.js.map +1 -1
- package/lib/cjs/appui-react/layout/base/DragManager.js +1 -2
- package/lib/cjs/appui-react/layout/base/DragManager.js.map +1 -1
- package/lib/cjs/appui-react/layout/base/NineZone.js +1 -1
- package/lib/cjs/appui-react/layout/base/NineZone.js.map +1 -1
- package/lib/cjs/appui-react/layout/outline/TabOutline.js +1 -1
- package/lib/cjs/appui-react/layout/outline/TabOutline.js.map +1 -1
- package/lib/cjs/appui-react/layout/outline/WidgetOutline.js +1 -1
- package/lib/cjs/appui-react/layout/outline/WidgetOutline.js.map +1 -1
- package/lib/cjs/appui-react/layout/state/NineZoneStateReducer.js +12 -14
- package/lib/cjs/appui-react/layout/state/NineZoneStateReducer.js.map +1 -1
- package/lib/cjs/appui-react/layout/state/internal/NineZoneStateHelpers.js +1 -2
- package/lib/cjs/appui-react/layout/state/internal/NineZoneStateHelpers.js.map +1 -1
- package/lib/cjs/appui-react/layout/state/internal/TabStateHelpers.js +2 -3
- package/lib/cjs/appui-react/layout/state/internal/TabStateHelpers.js.map +1 -1
- package/lib/cjs/appui-react/layout/state/internal/WidgetStateHelpers.js +4 -4
- package/lib/cjs/appui-react/layout/state/internal/WidgetStateHelpers.js.map +1 -1
- package/lib/cjs/appui-react/layout/target/TitleBarTarget.js +1 -1
- package/lib/cjs/appui-react/layout/target/TitleBarTarget.js.map +1 -1
- package/lib/cjs/appui-react/layout/tool-settings/Docked.scss +1 -1
- package/lib/cjs/appui-react/layout/widget/Button.d.ts +2 -9
- package/lib/cjs/appui-react/layout/widget/Button.d.ts.map +1 -1
- package/lib/cjs/appui-react/layout/widget/Button.js.map +1 -1
- package/lib/cjs/appui-react/layout/widget/ContentRenderer.js +2 -2
- package/lib/cjs/appui-react/layout/widget/ContentRenderer.js.map +1 -1
- package/lib/cjs/appui-react/layout/widget/FloatingTab.js +5 -6
- package/lib/cjs/appui-react/layout/widget/FloatingTab.js.map +1 -1
- package/lib/cjs/appui-react/layout/widget/FloatingWidget.js +2 -4
- package/lib/cjs/appui-react/layout/widget/FloatingWidget.js.map +1 -1
- package/lib/cjs/appui-react/layout/widget/PanelWidget.js +1 -1
- package/lib/cjs/appui-react/layout/widget/PanelWidget.js.map +1 -1
- package/lib/cjs/appui-react/layout/widget/PreviewHorizontalPanelAlign.js +1 -1
- package/lib/cjs/appui-react/layout/widget/PreviewHorizontalPanelAlign.js.map +1 -1
- package/lib/cjs/appui-react/layout/widget/Tab.js +4 -4
- package/lib/cjs/appui-react/layout/widget/Tab.js.map +1 -1
- package/lib/cjs/appui-react/layout/widget/Widget.js +2 -2
- package/lib/cjs/appui-react/layout/widget/Widget.js.map +1 -1
- package/lib/cjs/appui-react/layout/widget/useIsToolSettingsTab.js +1 -1
- package/lib/cjs/appui-react/layout/widget/useIsToolSettingsTab.js.map +1 -1
- package/lib/cjs/appui-react/layout/widget-panels/PanelSections.js +5 -8
- package/lib/cjs/appui-react/layout/widget-panels/PanelSections.js.map +1 -1
- package/lib/cjs/appui-react/layout/widget-panels/useAnimatePanel.js +1 -2
- package/lib/cjs/appui-react/layout/widget-panels/useAnimatePanel.js.map +1 -1
- package/lib/cjs/appui-react/messages/InputField.d.ts.map +1 -1
- package/lib/cjs/appui-react/messages/InputField.js +2 -3
- package/lib/cjs/appui-react/messages/InputField.js.map +1 -1
- package/lib/cjs/appui-react/messages/MessageLabel.js +2 -2
- package/lib/cjs/appui-react/messages/MessageLabel.js.map +1 -1
- package/lib/cjs/appui-react/messages/MessageManager.d.ts +15 -5
- package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/messages/MessageManager.js +23 -41
- package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
- package/lib/cjs/appui-react/messages/MessageRenderer.d.ts +8 -0
- package/lib/cjs/appui-react/messages/MessageRenderer.d.ts.map +1 -0
- package/lib/cjs/appui-react/messages/MessageRenderer.js +136 -0
- package/lib/cjs/appui-react/messages/MessageRenderer.js.map +1 -0
- package/lib/cjs/appui-react/messages/Pointer.d.ts +2 -2
- package/lib/cjs/appui-react/messages/Pointer.d.ts.map +1 -1
- package/lib/cjs/appui-react/messages/Pointer.js +5 -6
- package/lib/cjs/appui-react/messages/Pointer.js.map +1 -1
- package/lib/cjs/appui-react/messages/getToastCategory.d.ts +1 -1
- package/lib/cjs/appui-react/pickers/ViewSelector.js +5 -6
- package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
- package/lib/cjs/appui-react/popup/CardPopup.d.ts.map +1 -1
- package/lib/cjs/appui-react/popup/CardPopup.js +1 -2
- package/lib/cjs/appui-react/popup/CardPopup.js.map +1 -1
- package/lib/cjs/appui-react/popup/HTMLElementPopup.d.ts.map +1 -1
- package/lib/cjs/appui-react/popup/HTMLElementPopup.js +1 -2
- package/lib/cjs/appui-react/popup/HTMLElementPopup.js.map +1 -1
- package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +1 -2
- package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
- package/lib/cjs/appui-react/popup/PopupManager.js +1 -2
- package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
- package/lib/cjs/appui-react/preview/PreviewFeatures.js +1 -1
- package/lib/cjs/appui-react/preview/PreviewFeatures.js.map +1 -1
- package/lib/cjs/appui-react/preview/widget-action-dropdown/MoreButton.d.ts.map +1 -1
- package/lib/cjs/appui-react/preview/widget-action-dropdown/MoreButton.js +5 -5
- package/lib/cjs/appui-react/preview/widget-action-dropdown/MoreButton.js.map +1 -1
- package/lib/cjs/appui-react/selection/SelectionContextItemDef.js +2 -2
- package/lib/cjs/appui-react/selection/SelectionContextItemDef.js.map +1 -1
- package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js +2 -1
- package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
- package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.scss +1 -4
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +11 -16
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/Indicator.js +1 -2
- package/lib/cjs/appui-react/statusbar/Indicator.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBar.js +3 -5
- package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts +1 -1
- package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/MessageCenter.js +5 -4
- package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/SelectionScope.scss +1 -3
- package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js +1 -1
- package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.scss +1 -1
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +3 -2
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +3 -12
- package/lib/cjs/appui-react/theme/ThemeManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/theme/ThemeManager.js +3 -1
- package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarHelper.js +6 -4
- package/lib/cjs/appui-react/toolbar/ToolbarHelper.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js +3 -4
- package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
- package/lib/cjs/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
- package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +18 -25
- package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
- package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js +3 -2
- package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js +20 -22
- package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +9 -10
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +1 -2
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +8 -14
- package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
- package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
- package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
- package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js +1 -1
- package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
- package/lib/cjs/appui-react/utils/InternalUiShowHideManager.d.ts +1 -0
- package/lib/cjs/appui-react/utils/InternalUiShowHideManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js +19 -16
- package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Content.js +8 -9
- package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Frontstage.js +10 -14
- package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/StatusBar.js +1 -1
- package/lib/cjs/appui-react/widget-panels/StatusBar.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Tab.js +1 -1
- package/lib/cjs/appui-react/widget-panels/Tab.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/ToolSettings.js +15 -23
- package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/ToolSettings.scss +1 -1
- package/lib/cjs/appui-react/widget-panels/Toolbars.js +2 -3
- package/lib/cjs/appui-react/widget-panels/Toolbars.js.map +1 -1
- package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +2 -2
- package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.js +4 -5
- package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetHost.js +2 -3
- package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
- package/lib/cjs/appui-react/widgets/useWidget.js +1 -1
- package/lib/cjs/appui-react/widgets/useWidget.js.map +1 -1
- package/lib/esm/appui-react/UiFramework.js +4 -7
- package/lib/esm/appui-react/UiFramework.js.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts +4 -2
- package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js +17 -29
- package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.scss +10 -17
- package/lib/esm/appui-react/accudraw/AccuDrawInputField.scss +2 -0
- package/lib/esm/appui-react/accudraw/SquareButton.d.ts +3 -1
- package/lib/esm/appui-react/accudraw/SquareButton.d.ts.map +1 -1
- package/lib/esm/appui-react/accudraw/SquareButton.js +1 -4
- package/lib/esm/appui-react/accudraw/SquareButton.js.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageComposerItem.js +1 -2
- package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +2 -2
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
- package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts +1 -1
- package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
- package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js +19 -15
- package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
- package/lib/esm/appui-react/configurableui/{configurableui.scss → ConfigurableUiContent.scss} +14 -0
- package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
- package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
- package/lib/esm/appui-react/configurableui/TimeTracker.js +1 -2
- package/lib/esm/appui-react/configurableui/TimeTracker.js.map +1 -1
- package/lib/esm/appui-react/content/ContentLayout.js +9 -12
- package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
- package/lib/esm/appui-react/content/DefaultViewOverlay.js +3 -4
- package/lib/esm/appui-react/content/DefaultViewOverlay.js.map +1 -1
- package/lib/esm/appui-react/content/FloatingViewportContent.js +1 -2
- package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
- package/lib/esm/appui-react/content/IModelViewport.js +4 -7
- package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
- package/lib/esm/appui-react/content/InternalContentLayoutManager.js +1 -2
- package/lib/esm/appui-react/content/InternalContentLayoutManager.js.map +1 -1
- package/lib/esm/appui-react/content/InternalContentViewManager.js +2 -2
- package/lib/esm/appui-react/content/InternalContentViewManager.js.map +1 -1
- package/lib/esm/appui-react/content/split-pane/SplitPane.js +10 -12
- package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -1
- package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js +2 -3
- package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
- package/lib/esm/appui-react/dialog/ContentDialog.js +3 -6
- package/lib/esm/appui-react/dialog/ContentDialog.js.map +1 -1
- package/lib/esm/appui-react/dialog/DialogManagerBase.js +2 -3
- package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
- package/lib/esm/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
- package/lib/esm/appui-react/feedback/ElementTooltip.js +3 -4
- package/lib/esm/appui-react/feedback/ElementTooltip.js.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageDef.js +10 -14
- package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/esm/appui-react/frontstage/ModalFrontstage.d.ts +2 -4
- package/lib/esm/appui-react/frontstage/ModalFrontstage.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/ModalFrontstage.js +2 -3
- package/lib/esm/appui-react/frontstage/ModalFrontstage.js.map +1 -1
- package/lib/esm/appui-react/frontstage/ModalFrontstage.scss +1 -1
- package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +2 -3
- package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
- package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +1 -2
- package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
- package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js +7 -11
- package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
- package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js +7 -11
- package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
- package/lib/esm/appui-react/hooks/useSolarDataProvider.js +8 -13
- package/lib/esm/appui-react/hooks/useSolarDataProvider.js.map +1 -1
- package/lib/esm/appui-react/layout/base/DragManager.js +1 -2
- package/lib/esm/appui-react/layout/base/DragManager.js.map +1 -1
- package/lib/esm/appui-react/layout/base/NineZone.js +1 -1
- package/lib/esm/appui-react/layout/base/NineZone.js.map +1 -1
- package/lib/esm/appui-react/layout/outline/TabOutline.js +1 -1
- package/lib/esm/appui-react/layout/outline/TabOutline.js.map +1 -1
- package/lib/esm/appui-react/layout/outline/WidgetOutline.js +1 -1
- package/lib/esm/appui-react/layout/outline/WidgetOutline.js.map +1 -1
- package/lib/esm/appui-react/layout/state/NineZoneStateReducer.js +12 -14
- package/lib/esm/appui-react/layout/state/NineZoneStateReducer.js.map +1 -1
- package/lib/esm/appui-react/layout/state/internal/NineZoneStateHelpers.js +1 -2
- package/lib/esm/appui-react/layout/state/internal/NineZoneStateHelpers.js.map +1 -1
- package/lib/esm/appui-react/layout/state/internal/TabStateHelpers.js +2 -3
- package/lib/esm/appui-react/layout/state/internal/TabStateHelpers.js.map +1 -1
- package/lib/esm/appui-react/layout/state/internal/WidgetStateHelpers.js +4 -4
- package/lib/esm/appui-react/layout/state/internal/WidgetStateHelpers.js.map +1 -1
- package/lib/esm/appui-react/layout/target/TitleBarTarget.js +1 -1
- package/lib/esm/appui-react/layout/target/TitleBarTarget.js.map +1 -1
- package/lib/esm/appui-react/layout/tool-settings/Docked.scss +1 -1
- package/lib/esm/appui-react/layout/widget/Button.d.ts +2 -9
- package/lib/esm/appui-react/layout/widget/Button.d.ts.map +1 -1
- package/lib/esm/appui-react/layout/widget/Button.js.map +1 -1
- package/lib/esm/appui-react/layout/widget/ContentRenderer.js +2 -2
- package/lib/esm/appui-react/layout/widget/ContentRenderer.js.map +1 -1
- package/lib/esm/appui-react/layout/widget/FloatingTab.js +5 -6
- package/lib/esm/appui-react/layout/widget/FloatingTab.js.map +1 -1
- package/lib/esm/appui-react/layout/widget/FloatingWidget.js +2 -4
- package/lib/esm/appui-react/layout/widget/FloatingWidget.js.map +1 -1
- package/lib/esm/appui-react/layout/widget/PanelWidget.js +1 -1
- package/lib/esm/appui-react/layout/widget/PanelWidget.js.map +1 -1
- package/lib/esm/appui-react/layout/widget/PreviewHorizontalPanelAlign.js +1 -1
- package/lib/esm/appui-react/layout/widget/PreviewHorizontalPanelAlign.js.map +1 -1
- package/lib/esm/appui-react/layout/widget/Tab.js +4 -4
- package/lib/esm/appui-react/layout/widget/Tab.js.map +1 -1
- package/lib/esm/appui-react/layout/widget/Widget.js +2 -2
- package/lib/esm/appui-react/layout/widget/Widget.js.map +1 -1
- package/lib/esm/appui-react/layout/widget/useIsToolSettingsTab.js +1 -1
- package/lib/esm/appui-react/layout/widget/useIsToolSettingsTab.js.map +1 -1
- package/lib/esm/appui-react/layout/widget-panels/PanelSections.js +5 -8
- package/lib/esm/appui-react/layout/widget-panels/PanelSections.js.map +1 -1
- package/lib/esm/appui-react/layout/widget-panels/useAnimatePanel.js +1 -2
- package/lib/esm/appui-react/layout/widget-panels/useAnimatePanel.js.map +1 -1
- package/lib/esm/appui-react/messages/InputField.d.ts.map +1 -1
- package/lib/esm/appui-react/messages/InputField.js +3 -4
- package/lib/esm/appui-react/messages/InputField.js.map +1 -1
- package/lib/esm/appui-react/messages/MessageLabel.js +2 -2
- package/lib/esm/appui-react/messages/MessageLabel.js.map +1 -1
- package/lib/esm/appui-react/messages/MessageManager.d.ts +15 -5
- package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
- package/lib/esm/appui-react/messages/MessageManager.js +23 -41
- package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
- package/lib/esm/appui-react/messages/MessageRenderer.d.ts +8 -0
- package/lib/esm/appui-react/messages/MessageRenderer.d.ts.map +1 -0
- package/lib/esm/appui-react/messages/MessageRenderer.js +132 -0
- package/lib/esm/appui-react/messages/MessageRenderer.js.map +1 -0
- package/lib/esm/appui-react/messages/Pointer.d.ts +2 -2
- package/lib/esm/appui-react/messages/Pointer.d.ts.map +1 -1
- package/lib/esm/appui-react/messages/Pointer.js +6 -7
- package/lib/esm/appui-react/messages/Pointer.js.map +1 -1
- package/lib/esm/appui-react/messages/getToastCategory.d.ts +1 -1
- package/lib/esm/appui-react/pickers/ViewSelector.js +5 -6
- package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
- package/lib/esm/appui-react/popup/CardPopup.d.ts.map +1 -1
- package/lib/esm/appui-react/popup/CardPopup.js +2 -3
- package/lib/esm/appui-react/popup/CardPopup.js.map +1 -1
- package/lib/esm/appui-react/popup/HTMLElementPopup.d.ts.map +1 -1
- package/lib/esm/appui-react/popup/HTMLElementPopup.js +2 -3
- package/lib/esm/appui-react/popup/HTMLElementPopup.js.map +1 -1
- package/lib/esm/appui-react/popup/KeyinPalettePanel.js +1 -2
- package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
- package/lib/esm/appui-react/popup/PopupManager.js +1 -2
- package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
- package/lib/esm/appui-react/preview/PreviewFeatures.js +1 -1
- package/lib/esm/appui-react/preview/PreviewFeatures.js.map +1 -1
- package/lib/esm/appui-react/preview/widget-action-dropdown/MoreButton.d.ts.map +1 -1
- package/lib/esm/appui-react/preview/widget-action-dropdown/MoreButton.js +5 -5
- package/lib/esm/appui-react/preview/widget-action-dropdown/MoreButton.js.map +1 -1
- package/lib/esm/appui-react/selection/SelectionContextItemDef.js +2 -2
- package/lib/esm/appui-react/selection/SelectionContextItemDef.js.map +1 -1
- package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js +2 -1
- package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
- package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.scss +1 -4
- package/lib/esm/appui-react/stagepanels/StagePanelDef.js +11 -16
- package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
- package/lib/esm/appui-react/statusbar/Indicator.js +1 -2
- package/lib/esm/appui-react/statusbar/Indicator.js.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBar.js +3 -5
- package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
- package/lib/esm/appui-react/statusfields/MessageCenter.d.ts +1 -1
- package/lib/esm/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/MessageCenter.js +6 -5
- package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
- package/lib/esm/appui-react/statusfields/SelectionScope.scss +1 -3
- package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js +1 -1
- package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
- package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.scss +1 -1
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +3 -2
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +3 -12
- package/lib/esm/appui-react/theme/ThemeManager.d.ts.map +1 -1
- package/lib/esm/appui-react/theme/ThemeManager.js +3 -1
- package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarHelper.js +6 -4
- package/lib/esm/appui-react/toolbar/ToolbarHelper.js.map +1 -1
- package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js +3 -4
- package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
- package/lib/esm/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
- package/lib/esm/appui-react/tools/CoreToolDefinitions.js +15 -22
- package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
- package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js +3 -2
- package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js +20 -22
- package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +9 -10
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +1 -2
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +8 -14
- package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
- package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
- package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
- package/lib/esm/appui-react/uiprovider/ComponentGenerator.js +1 -1
- package/lib/esm/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
- package/lib/esm/appui-react/utils/InternalUiShowHideManager.d.ts +1 -0
- package/lib/esm/appui-react/utils/InternalUiShowHideManager.d.ts.map +1 -1
- package/lib/esm/appui-react/utils/InternalUiShowHideManager.js +19 -16
- package/lib/esm/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Content.js +8 -9
- package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Frontstage.js +10 -14
- package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/StatusBar.js +1 -1
- package/lib/esm/appui-react/widget-panels/StatusBar.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Tab.js +1 -1
- package/lib/esm/appui-react/widget-panels/Tab.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/ToolSettings.js +15 -23
- package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/ToolSettings.scss +1 -1
- package/lib/esm/appui-react/widget-panels/Toolbars.js +2 -3
- package/lib/esm/appui-react/widget-panels/Toolbars.js.map +1 -1
- package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +2 -2
- package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetDef.js +4 -5
- package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetHost.js +2 -3
- package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
- package/lib/esm/appui-react/widgets/useWidget.js +1 -1
- package/lib/esm/appui-react/widgets/useWidget.js.map +1 -1
- package/package.json +12 -14
- package/lib/cjs/appui-react/messages/ActivityMessage.d.ts +0 -10
- package/lib/cjs/appui-react/messages/ActivityMessage.d.ts.map +0 -1
- package/lib/cjs/appui-react/messages/ActivityMessage.js +0 -92
- package/lib/cjs/appui-react/messages/ActivityMessage.js.map +0 -1
- package/lib/cjs/appui-react/messages/MessageSpan.d.ts +0 -15
- package/lib/cjs/appui-react/messages/MessageSpan.d.ts.map +0 -1
- package/lib/cjs/appui-react/messages/MessageSpan.js +0 -23
- package/lib/cjs/appui-react/messages/MessageSpan.js.map +0 -1
- package/lib/esm/appui-react/messages/ActivityMessage.d.ts +0 -10
- package/lib/esm/appui-react/messages/ActivityMessage.d.ts.map +0 -1
- package/lib/esm/appui-react/messages/ActivityMessage.js +0 -88
- package/lib/esm/appui-react/messages/ActivityMessage.js.map +0 -1
- package/lib/esm/appui-react/messages/MessageSpan.d.ts +0 -15
- package/lib/esm/appui-react/messages/MessageSpan.d.ts.map +0 -1
- package/lib/esm/appui-react/messages/MessageSpan.js +0 -18
- package/lib/esm/appui-react/messages/MessageSpan.js.map +0 -1
|
@@ -13,29 +13,25 @@ const ScheduleAnimationProvider_1 = require("../timeline/ScheduleAnimationProvid
|
|
|
13
13
|
/** @internal */
|
|
14
14
|
// istanbul ignore next
|
|
15
15
|
function useSupportsScheduleScript(viewport) {
|
|
16
|
-
|
|
17
|
-
const [supportsScheduleScript, setSupportsScheduleScript] = React.useState(!!((_a = viewport === null || viewport === void 0 ? void 0 : viewport.view) === null || _a === void 0 ? void 0 : _a.scheduleScript));
|
|
16
|
+
const [supportsScheduleScript, setSupportsScheduleScript] = React.useState(!!viewport?.view?.scheduleScript);
|
|
18
17
|
React.useEffect(() => {
|
|
19
|
-
|
|
20
|
-
setSupportsScheduleScript(!!((_a = viewport === null || viewport === void 0 ? void 0 : viewport.view) === null || _a === void 0 ? void 0 : _a.scheduleScript));
|
|
18
|
+
setSupportsScheduleScript(!!viewport?.view?.scheduleScript);
|
|
21
19
|
}, [viewport]);
|
|
22
20
|
React.useEffect(() => {
|
|
23
21
|
const handleViewChanged = (vp) => {
|
|
24
|
-
|
|
25
|
-
const hasScheduleScript = !!((_a = vp === null || vp === void 0 ? void 0 : vp.view) === null || _a === void 0 ? void 0 : _a.scheduleScript);
|
|
22
|
+
const hasScheduleScript = !!vp?.view?.scheduleScript;
|
|
26
23
|
if (hasScheduleScript !== supportsScheduleScript)
|
|
27
24
|
setSupportsScheduleScript(hasScheduleScript);
|
|
28
25
|
};
|
|
29
|
-
return viewport
|
|
26
|
+
return viewport?.onChangeView.addListener(handleViewChanged);
|
|
30
27
|
}, [supportsScheduleScript, viewport]);
|
|
31
28
|
React.useEffect(() => {
|
|
32
29
|
const handleDisplayStyleChange = (vp) => {
|
|
33
|
-
|
|
34
|
-
const hasScheduleScript = !!((_a = vp === null || vp === void 0 ? void 0 : vp.view) === null || _a === void 0 ? void 0 : _a.scheduleScript);
|
|
30
|
+
const hasScheduleScript = !!vp?.view?.scheduleScript;
|
|
35
31
|
if (hasScheduleScript !== supportsScheduleScript)
|
|
36
32
|
setSupportsScheduleScript(hasScheduleScript);
|
|
37
33
|
};
|
|
38
|
-
return viewport
|
|
34
|
+
return viewport?.onDisplayStyleChanged.addListener(handleDisplayStyleChange);
|
|
39
35
|
}, [viewport, supportsScheduleScript]);
|
|
40
36
|
return supportsScheduleScript;
|
|
41
37
|
}
|
|
@@ -56,7 +52,7 @@ function useScheduleAnimationDataProvider(viewport) {
|
|
|
56
52
|
React.useEffect(() => {
|
|
57
53
|
async function fetchNewDataProvider(vp) {
|
|
58
54
|
let newProvider = new ScheduleAnimationProvider_1.ScheduleAnimationTimelineDataProvider(vp.view, vp);
|
|
59
|
-
if (newProvider
|
|
55
|
+
if (newProvider?.supportsTimelineAnimation) {
|
|
60
56
|
const dataLoaded = await newProvider.loadTimelineData();
|
|
61
57
|
if (!dataLoaded)
|
|
62
58
|
newProvider = undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useScheduleAnimationDataProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useScheduleAnimationDataProvider.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAC/B,qFAA8F;AAG9F,gBAAgB;AAChB,uBAAuB;AACvB,SAAS,yBAAyB,CAAC,QAA8B
|
|
1
|
+
{"version":3,"file":"useScheduleAnimationDataProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useScheduleAnimationDataProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Hooks\n */\n\nimport * as React from \"react\";\nimport { ScheduleAnimationTimelineDataProvider } from \"../timeline/ScheduleAnimationProvider\";\nimport type { ScreenViewport, Viewport } from \"@itwin/core-frontend\";\n\n/** @internal */\n// istanbul ignore next\nfunction useSupportsScheduleScript(viewport: Viewport | undefined) {\n const [supportsScheduleScript, setSupportsScheduleScript] = React.useState(\n !!viewport?.view?.scheduleScript\n );\n\n React.useEffect(() => {\n setSupportsScheduleScript(!!viewport?.view?.scheduleScript);\n }, [viewport]);\n\n React.useEffect(() => {\n const handleViewChanged = (vp: Viewport): void => {\n const hasScheduleScript = !!vp?.view?.scheduleScript;\n if (hasScheduleScript !== supportsScheduleScript)\n setSupportsScheduleScript(hasScheduleScript);\n };\n return viewport?.onChangeView.addListener(handleViewChanged);\n }, [supportsScheduleScript, viewport]);\n\n React.useEffect(() => {\n const handleDisplayStyleChange = (vp: Viewport): void => {\n const hasScheduleScript = !!vp?.view?.scheduleScript;\n if (hasScheduleScript !== supportsScheduleScript)\n setSupportsScheduleScript(hasScheduleScript);\n };\n return viewport?.onDisplayStyleChanged.addListener(\n handleDisplayStyleChange\n );\n }, [viewport, supportsScheduleScript]);\n return supportsScheduleScript;\n}\n\n/** Hook that returns either a ScheduleAnimationTimelineDataProvider or undefined based on if the supplied viewport contains schedule script.\n * @public\n **/\n// istanbul ignore next\nexport function useScheduleAnimationDataProvider(\n viewport: ScreenViewport | undefined\n) {\n const supportsScheduleScript = useSupportsScheduleScript(viewport);\n const [\n scheduleAnimationTimelineDataProvider,\n setScheduleAnimationTimelineDataProvider,\n ] = React.useState<ScheduleAnimationTimelineDataProvider | undefined>();\n const isMountedRef = React.useRef(false);\n\n React.useEffect(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n\n React.useEffect(() => {\n async function fetchNewDataProvider(vp: ScreenViewport) {\n let newProvider: ScheduleAnimationTimelineDataProvider | undefined =\n new ScheduleAnimationTimelineDataProvider(vp.view, vp);\n if (newProvider?.supportsTimelineAnimation) {\n const dataLoaded = await newProvider.loadTimelineData();\n if (!dataLoaded) newProvider = undefined;\n }\n isMountedRef.current &&\n setScheduleAnimationTimelineDataProvider(newProvider);\n }\n if (supportsScheduleScript && viewport) void fetchNewDataProvider(viewport);\n else\n isMountedRef.current &&\n setScheduleAnimationTimelineDataProvider(undefined);\n }, [supportsScheduleScript, viewport]);\n\n return scheduleAnimationTimelineDataProvider;\n}\n"]}
|
|
@@ -14,41 +14,36 @@ const SolarTimelineDataProvider_1 = require("../timeline/SolarTimelineDataProvid
|
|
|
14
14
|
/** @internal */
|
|
15
15
|
// istanbul ignore next
|
|
16
16
|
function useSupportsShadowDisplay(viewport) {
|
|
17
|
-
|
|
18
|
-
const [supportsShadows, setSupportsShadows] = React.useState(!!((_a = viewport === null || viewport === void 0 ? void 0 : viewport.displayStyle) === null || _a === void 0 ? void 0 : _a.wantShadows) &&
|
|
17
|
+
const [supportsShadows, setSupportsShadows] = React.useState(!!viewport?.displayStyle?.wantShadows &&
|
|
19
18
|
!!core_frontend_1.IModelApp.renderSystem.options.displaySolarShadows);
|
|
20
19
|
React.useEffect(() => {
|
|
21
|
-
|
|
22
|
-
setSupportsShadows(!!((_a = viewport === null || viewport === void 0 ? void 0 : viewport.displayStyle) === null || _a === void 0 ? void 0 : _a.wantShadows) &&
|
|
20
|
+
setSupportsShadows(!!viewport?.displayStyle?.wantShadows &&
|
|
23
21
|
!!core_frontend_1.IModelApp.renderSystem.options.displaySolarShadows);
|
|
24
22
|
}, [viewport]);
|
|
25
23
|
React.useEffect(() => {
|
|
26
24
|
const handleViewChanged = (vp) => {
|
|
27
|
-
|
|
28
|
-
setSupportsShadows(!!((_a = vp === null || vp === void 0 ? void 0 : vp.displayStyle) === null || _a === void 0 ? void 0 : _a.wantShadows) &&
|
|
25
|
+
setSupportsShadows(!!vp?.displayStyle?.wantShadows &&
|
|
29
26
|
!!core_frontend_1.IModelApp.renderSystem.options.displaySolarShadows);
|
|
30
27
|
};
|
|
31
|
-
return viewport
|
|
28
|
+
return viewport?.onChangeView.addListener(handleViewChanged);
|
|
32
29
|
}, [viewport]);
|
|
33
30
|
React.useEffect(() => {
|
|
34
31
|
const handleViewChanged = (vp) => {
|
|
35
|
-
|
|
36
|
-
const wantShadows = !!((_a = vp.displayStyle) === null || _a === void 0 ? void 0 : _a.wantShadows) &&
|
|
32
|
+
const wantShadows = !!vp.displayStyle?.wantShadows &&
|
|
37
33
|
!!core_frontend_1.IModelApp.renderSystem.options.displaySolarShadows;
|
|
38
34
|
if (wantShadows !== supportsShadows)
|
|
39
35
|
setSupportsShadows(wantShadows);
|
|
40
36
|
};
|
|
41
|
-
return viewport
|
|
37
|
+
return viewport?.onChangeView.addListener(handleViewChanged);
|
|
42
38
|
}, [viewport, supportsShadows]);
|
|
43
39
|
React.useEffect(() => {
|
|
44
40
|
const handleDisplayStyleChange = (vp) => {
|
|
45
|
-
|
|
46
|
-
const wantShadows = !!((_a = vp.displayStyle) === null || _a === void 0 ? void 0 : _a.wantShadows) &&
|
|
41
|
+
const wantShadows = !!vp.displayStyle?.wantShadows &&
|
|
47
42
|
!!core_frontend_1.IModelApp.renderSystem.options.displaySolarShadows;
|
|
48
43
|
if (wantShadows !== supportsShadows)
|
|
49
44
|
setSupportsShadows(wantShadows);
|
|
50
45
|
};
|
|
51
|
-
return viewport
|
|
46
|
+
return viewport?.onDisplayStyleChanged.addListener(handleDisplayStyleChange);
|
|
52
47
|
}, [viewport, supportsShadows]);
|
|
53
48
|
return supportsShadows;
|
|
54
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSolarDataProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useSolarDataProvider.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAG/B,wDAAiD;AACjD,qFAAkF;AAElF,gBAAgB;AAChB,uBAAuB;AACvB,SAAS,wBAAwB,CAAC,QAAoC
|
|
1
|
+
{"version":3,"file":"useSolarDataProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useSolarDataProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Hooks\n */\n\nimport * as React from \"react\";\nimport type { SolarDataProvider } from \"@itwin/imodel-components-react\";\nimport type { ScreenViewport, Viewport } from \"@itwin/core-frontend\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport { SolarTimelineDataProvider } from \"../timeline/SolarTimelineDataProvider\";\n\n/** @internal */\n// istanbul ignore next\nfunction useSupportsShadowDisplay(viewport: ScreenViewport | undefined) {\n const [supportsShadows, setSupportsShadows] = React.useState(\n !!viewport?.displayStyle?.wantShadows &&\n !!IModelApp.renderSystem.options.displaySolarShadows\n );\n\n React.useEffect(() => {\n setSupportsShadows(\n !!viewport?.displayStyle?.wantShadows &&\n !!IModelApp.renderSystem.options.displaySolarShadows\n );\n }, [viewport]);\n\n React.useEffect(() => {\n const handleViewChanged = (vp: Viewport): void => {\n setSupportsShadows(\n !!vp?.displayStyle?.wantShadows &&\n !!IModelApp.renderSystem.options.displaySolarShadows\n );\n };\n return viewport?.onChangeView.addListener(handleViewChanged);\n }, [viewport]);\n\n React.useEffect(() => {\n const handleViewChanged = (vp: Viewport): void => {\n const wantShadows =\n !!vp.displayStyle?.wantShadows &&\n !!IModelApp.renderSystem.options.displaySolarShadows;\n if (wantShadows !== supportsShadows) setSupportsShadows(wantShadows);\n };\n return viewport?.onChangeView.addListener(handleViewChanged);\n }, [viewport, supportsShadows]);\n\n React.useEffect(() => {\n const handleDisplayStyleChange = (vp: Viewport): void => {\n const wantShadows =\n !!vp.displayStyle?.wantShadows &&\n !!IModelApp.renderSystem.options.displaySolarShadows;\n if (wantShadows !== supportsShadows) setSupportsShadows(wantShadows);\n };\n return viewport?.onDisplayStyleChanged.addListener(\n handleDisplayStyleChange\n );\n }, [viewport, supportsShadows]);\n\n return supportsShadows;\n}\n\n/** Hook that returns either a SolarTimelineDataProvider or undefined based on if the supplied viewport's display style is set to display shadows.\n * @beta\n **/\n// istanbul ignore next\nexport function useSolarDataProvider(\n viewport: ScreenViewport | undefined\n): SolarDataProvider | undefined {\n const supportsShadowDisplay = useSupportsShadowDisplay(viewport);\n const [solarDataProvider, setSolarDataProvider] = React.useState(() => {\n return supportsShadowDisplay && viewport\n ? new SolarTimelineDataProvider(viewport.view, viewport)\n : undefined;\n });\n\n React.useEffect(() => {\n const newSolarDataProvider =\n supportsShadowDisplay && viewport\n ? new SolarTimelineDataProvider(viewport.view, viewport)\n : undefined;\n setSolarDataProvider(newSolarDataProvider);\n }, [supportsShadowDisplay, viewport]);\n\n return solarDataProvider;\n}\n"]}
|
|
@@ -310,9 +310,8 @@ function useDragItem(args) {
|
|
|
310
310
|
exports.useDragItem = useDragItem;
|
|
311
311
|
/** @internal */
|
|
312
312
|
function useDraggedItem() {
|
|
313
|
-
var _a;
|
|
314
313
|
const dragManager = React.useContext(exports.DragManagerContext);
|
|
315
|
-
const [draggedItem, setDraggedItem] = React.useState(
|
|
314
|
+
const [draggedItem, setDraggedItem] = React.useState(dragManager.draggedItem?.item);
|
|
316
315
|
React.useEffect(() => {
|
|
317
316
|
return dragManager.onDragStart.addListener((item) => {
|
|
318
317
|
setDraggedItem(item);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DragManager.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/base/DragManager.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Base\n */\nimport * as React from \"react\";\nimport { isEqual } from \"lodash\";\nimport { BeEvent } from \"@itwin/core-bentley\";\nimport type { SizeProps } from \"@itwin/core-react\";\nimport { Point } from \"@itwin/core-react\";\nimport type { PanelSide } from \"../widget-panels/PanelTypes\";\nimport type { FloatingWidgetResizeHandle } from \"../widget/FloatingWidget\";\nimport type { WidgetState } from \"../state/WidgetState\";\nimport type { TabState } from \"../state/TabState\";\nimport { getUniqueId } from \"./NineZone\";\nimport type { XAndY } from \"../state/internal/NineZoneStateHelpers\";\nimport type {\n DropTargetState,\n PanelDropTargetState,\n TabDragDropTargetState,\n TabDropTargetState,\n WidgetDragDropTargetState,\n} from \"../state/DropTargetState\";\nimport {\n isTabDragDropTargetState,\n isWidgetDragDropTargetState,\n} from \"../state/DropTargetState\";\n\n/** @internal */\nexport interface DragStartArgs {\n initialPointerPosition: Point;\n pointerPosition: Point;\n}\n\n/** @internal */\nexport interface TabDragStartArgs extends DragStartArgs {\n widgetSize: SizeProps;\n}\n\n/** @internal */\nexport interface UseDragTabArgs {\n tabId: TabState[\"id\"];\n onDrag?: (dragBy: XAndY) => void;\n onDragEnd?: (target: TabDragDropTargetState) => void;\n}\n\n/** @internal */\nexport function useDragTab(args: UseDragTabArgs) {\n const { tabId, onDrag, onDragEnd } = args;\n const item = React.useMemo<TabDragItem>(() => {\n return {\n type: \"tab\",\n id: tabId,\n };\n }, [tabId]);\n const handleDrag = React.useCallback<DragEventHandler>(\n (_item, info) => {\n const dragBy = info.lastPointerPosition.getOffsetTo(info.pointerPosition);\n onDrag && onDrag(dragBy);\n },\n [onDrag]\n );\n const handleDragEnd = React.useCallback<DragEventHandler>(\n (_item, info, target) => {\n // istanbul ignore next\n if (!onDragEnd) return;\n\n let tabTarget: TabDragDropTargetState;\n if (target && isTabDragDropTargetState(target)) {\n tabTarget = target;\n } else {\n const tabInfo = info as TabDragInfo;\n const newFloatingWidgetId = getUniqueId();\n const size = tabInfo.widgetSize;\n tabTarget = {\n type: \"floatingWidget\",\n newFloatingWidgetId,\n size,\n };\n }\n onDragEnd(tabTarget);\n },\n [onDragEnd]\n );\n const onDragStart = useDragItem({\n item,\n onDrag: handleDrag,\n onDragEnd: handleDragEnd,\n });\n const handleDragStart = React.useCallback(\n ({\n initialPointerPosition,\n pointerPosition,\n widgetSize,\n }: TabDragStartArgs) => {\n onDragStart({\n initialPointerPosition,\n pointerPosition,\n lastPointerPosition: initialPointerPosition,\n widgetSize,\n });\n },\n [onDragStart]\n );\n return handleDragStart;\n}\n\ntype UpdateWidgetDragItemFn = (id: WidgetDragItem[\"id\"]) => void;\n\n/** @internal */\nexport interface UseDragWidgetArgs {\n widgetId: WidgetState[\"id\"];\n onDragStart?: (\n updateWidget: UpdateWidgetDragItemFn,\n initialPointerPosition: Point,\n pointerPosition: Point\n ) => void;\n onDrag?: (dragBy: Point) => void;\n onDragEnd?: (target: WidgetDragDropTargetState) => void;\n}\n\n/** @internal */\nexport function useDragWidget(args: UseDragWidgetArgs) {\n const { widgetId, onDragStart, onDrag, onDragEnd } = args;\n const dragManager = React.useContext(DragManagerContext);\n const widgetItem = React.useMemo<WidgetDragItem>(() => {\n return {\n type: \"widget\",\n id: widgetId,\n };\n }, [widgetId]);\n const handleDragStart = React.useCallback<DragEventHandler>(\n (_item, info) => {\n onDragStart &&\n onDragStart(\n (id) => {\n dragManager.handleDragUpdate({\n type: \"widget\",\n id,\n });\n },\n info.initialPointerPosition,\n info.pointerPosition\n );\n },\n [dragManager, onDragStart]\n );\n const handleDrag = React.useCallback<DragEventHandler>(\n (_item, info) => {\n const dragBy = info.lastPointerPosition.getOffsetTo(info.pointerPosition);\n onDrag && onDrag(dragBy);\n },\n [onDrag]\n );\n const handleDragEnd = React.useCallback<DragEventHandler>(\n (_item, _info, target) => {\n if (!onDragEnd) return;\n\n let widgetTarget: WidgetDragDropTargetState;\n if (target && isWidgetDragDropTargetState(target)) {\n widgetTarget = target;\n } else {\n widgetTarget = {\n type: \"window\",\n };\n }\n onDragEnd(widgetTarget);\n },\n [onDragEnd]\n );\n const isDragItem = React.useCallback<\n NonNullable<UseDragItemArgs<WidgetDragItem>[\"isDragItem\"]>\n >((item, dragged) => {\n return !!item && defaultIsDragItem(item, dragged);\n }, []);\n const onItemDragStart = useDragItem({\n item: widgetItem,\n isDragItem,\n onDragStart: handleDragStart,\n onDrag: handleDrag,\n onDragEnd: handleDragEnd,\n });\n const handleWidgetDragStart = React.useCallback(\n ({ initialPointerPosition, pointerPosition }: DragStartArgs) => {\n onItemDragStart({\n initialPointerPosition,\n pointerPosition,\n lastPointerPosition: initialPointerPosition,\n });\n },\n [onItemDragStart]\n );\n return handleWidgetDragStart;\n}\n\n/** @internal */\nexport interface UseDragPanelGripArgs {\n side: PanelSide;\n onDrag?: (pointerPosition: Point, lastPointerPosition: Point) => void;\n onDragEnd?: () => void;\n}\n\n/** @internal */\nexport function useDragPanelGrip(args: UseDragPanelGripArgs) {\n const { side, onDrag, onDragEnd } = args;\n const gripItem = React.useMemo<PanelGripDragItem>(() => {\n return {\n type: \"panelGrip\",\n id: side,\n };\n }, [side]);\n const handleDrag = React.useCallback<DragEventHandler>(\n (_item, info) => {\n onDrag && onDrag(info.pointerPosition, info.lastPointerPosition);\n },\n [onDrag]\n );\n const handleDragEnd = React.useCallback<DragEventHandler>(() => {\n onDragEnd && onDragEnd();\n }, [onDragEnd]);\n const onItemDragStart = useDragItem({\n item: gripItem,\n onDrag: handleDrag,\n onDragEnd: handleDragEnd,\n });\n const handleDragStart = React.useCallback(\n ({ initialPointerPosition }: DragStartArgs) => {\n onItemDragStart({\n initialPointerPosition,\n pointerPosition: initialPointerPosition,\n lastPointerPosition: initialPointerPosition,\n });\n },\n [onItemDragStart]\n );\n return handleDragStart;\n}\n\n/** @internal */\nexport interface UseDragResizeHandleArgs {\n widgetId: WidgetState[\"id\"];\n handle: FloatingWidgetResizeHandle;\n onDrag?: (pointerPosition: Point) => void;\n}\n\n/** @internal */\nexport function useDragResizeHandle(args: UseDragResizeHandleArgs) {\n const { handle, onDrag, widgetId } = args;\n const resizeHandleItem = React.useMemo<ResizeHandleDragItem>(() => {\n return {\n type: \"resizeHandle\",\n id: handle,\n widgetId,\n };\n }, [handle, widgetId]);\n const isDragItem = React.useCallback<\n NonNullable<UseDragItemArgs<ResizeHandleDragItem>[\"isDragItem\"]>\n >((item, draggedItem) => {\n return (\n !!item &&\n isResizeHandleDragItem(draggedItem) &&\n defaultIsDragItem(item, draggedItem) &&\n item.widgetId === draggedItem.widgetId\n );\n }, []);\n const handleDrag = React.useCallback<DragEventHandler>(\n (_item, info) => {\n onDrag && onDrag(info.pointerPosition);\n },\n [onDrag]\n );\n const onItemDragStart = useDragItem<ResizeHandleDragItem>({\n item: resizeHandleItem,\n isDragItem,\n onDrag: handleDrag,\n });\n const handleDragStart = React.useCallback(\n ({ initialPointerPosition }: DragStartArgs) => {\n onItemDragStart({\n initialPointerPosition,\n pointerPosition: initialPointerPosition,\n lastPointerPosition: initialPointerPosition,\n });\n },\n [onItemDragStart]\n );\n return handleDragStart;\n}\n\n/** @internal */\nexport interface UseDragToolSettingsArgs {\n newFloatingWidgetId: WidgetDragItem[\"id\"];\n}\n\n/** @internal */\nexport function useDragToolSettings(args: UseDragToolSettingsArgs) {\n const { newFloatingWidgetId } = args;\n const item = React.useMemo<WidgetDragItem>(() => {\n return {\n type: \"widget\",\n id: newFloatingWidgetId,\n };\n }, [newFloatingWidgetId]);\n const onDragStart = useDragItem({\n item,\n });\n const handleDragStart = React.useCallback(\n ({ initialPointerPosition }: DragStartArgs) => {\n onDragStart({\n initialPointerPosition,\n pointerPosition: initialPointerPosition,\n lastPointerPosition: initialPointerPosition,\n });\n },\n [onDragStart]\n );\n return handleDragStart;\n}\n\n/** @internal */\nexport function useTarget<T extends Element>(\n target: DropTargetState\n): [\n React.Ref<T>,\n boolean // targeted\n] {\n const dragManager = React.useContext(DragManagerContext);\n const [targeted, setTargeted] = React.useState(false);\n const targetedRef = React.useRef(false);\n const onTargeted = React.useCallback(\n (doTarget: boolean) => {\n const isTargeted = dragManager.isTargeted(target);\n if (doTarget && !isTargeted) {\n dragManager.handleTargetChanged(target);\n } else if (!doTarget && isTargeted) {\n dragManager.handleTargetChanged(undefined);\n }\n setTargeted(doTarget);\n },\n [dragManager, target]\n );\n const ref = React.useRef<T>(null);\n React.useEffect(() => {\n return dragManager.onDrag.addListener((_item, info) => {\n const targetedElement = document.elementFromPoint(\n info.pointerPosition.x,\n info.pointerPosition.y\n );\n const newTargeted = targetedElement === ref.current;\n newTargeted !== targetedRef.current && onTargeted(newTargeted);\n targetedRef.current = newTargeted;\n });\n }, [onTargeted, dragManager]);\n React.useEffect(() => {\n return dragManager.onDragEnd.addListener(() => {\n targetedRef.current && onTargeted(false);\n targetedRef.current = false;\n });\n }, [onTargeted, dragManager]);\n return [ref, targeted];\n}\n\n/** @internal */\nexport interface UseTabTargetArgs {\n widgetId: WidgetState[\"id\"];\n tabIndex: number;\n}\n\n/** @internal */\nexport function useTabTarget<T extends Element>(\n args: UseTabTargetArgs\n): [\n React.Ref<T>,\n boolean // targeted\n] {\n const { tabIndex, widgetId } = args;\n const target = React.useMemo<TabDropTargetState>(\n () => ({\n type: \"tab\",\n tabIndex,\n widgetId,\n }),\n [tabIndex, widgetId]\n );\n return useTarget(target);\n}\n\n/** @internal */\nexport interface UsePanelTargetArgs {\n side: PanelSide;\n newWidgetId: WidgetState[\"id\"];\n}\n\n/** @internal */\nexport function usePanelTarget<T extends Element>(\n args: UsePanelTargetArgs\n): [\n React.Ref<T>,\n boolean // targeted\n] {\n const { side, newWidgetId } = args;\n const target = React.useMemo<PanelDropTargetState>(\n () => ({\n type: \"panel\",\n side,\n newWidgetId,\n }),\n [side, newWidgetId]\n );\n return useTarget(target);\n}\n\n/** @internal */\nexport interface UseDragItemArgs<T extends DragItem> {\n item: T;\n isDragItem?: (item: T | undefined, dragged: DragItem) => boolean;\n onDragStart?: DragEventHandler;\n onDrag?: DragEventHandler;\n onDragEnd?: DragEventHandler;\n}\n\nfunction defaultIsDragItem(item: DragItem, dragged: DragItem) {\n return dragged.type === item.type && dragged.id === item.id;\n}\n\n/** @internal */\nexport function useDragItem<T extends DragItem>(args: UseDragItemArgs<T>) {\n const dragManager = React.useContext(DragManagerContext);\n const { item, isDragItem, onDragStart, onDrag, onDragEnd } = args;\n const handleDragStart = React.useCallback(\n (info: DragInfo) => {\n item &&\n dragManager.handleDragStart({\n item,\n info,\n });\n },\n [dragManager, item]\n );\n React.useEffect(() => {\n return dragManager.onDragStart.addListener((draggedItem, info, target) => {\n const handleEvent = isDragItem\n ? isDragItem(item, draggedItem)\n : defaultIsDragItem(item, draggedItem);\n if (!handleEvent) return;\n onDragStart && onDragStart(draggedItem, info, target);\n });\n }, [dragManager, onDragStart, item, isDragItem]);\n React.useEffect(() => {\n return dragManager.onDrag.addListener((draggedItem, info, target) => {\n const handleEvent = isDragItem\n ? isDragItem(item, draggedItem)\n : defaultIsDragItem(item, draggedItem);\n if (!handleEvent) return;\n onDrag && onDrag(draggedItem, info, target);\n });\n }, [dragManager, onDrag, item, isDragItem]);\n React.useEffect(() => {\n return dragManager.onDragEnd.addListener((draggedItem, info, target) => {\n const handleEvent = isDragItem\n ? isDragItem(item, draggedItem)\n : defaultIsDragItem(item, draggedItem);\n if (!handleEvent) return;\n onDragEnd && onDragEnd(draggedItem, info, target);\n });\n }, [dragManager, onDragEnd, item, isDragItem]);\n return handleDragStart;\n}\n\n/** @internal */\nexport function useDraggedItem() {\n const dragManager = React.useContext(DragManagerContext);\n const [draggedItem, setDraggedItem] = React.useState<DragItem | undefined>(\n dragManager.draggedItem?.item\n );\n React.useEffect(() => {\n return dragManager.onDragStart.addListener((item) => {\n setDraggedItem(item);\n });\n }, [dragManager]);\n React.useEffect(() => {\n return dragManager.onDragUpdate.addListener((item) => {\n setDraggedItem(item);\n });\n }, [dragManager]);\n React.useEffect(() => {\n return dragManager.onDragEnd.addListener(() => {\n setDraggedItem(undefined);\n });\n }, [dragManager]);\n return draggedItem;\n}\n\n/** @internal */\nexport function useIsDraggedItem(item: DragItem) {\n const draggedItem = useDraggedItem();\n return (\n !!draggedItem &&\n draggedItem.id === item.id &&\n draggedItem.type === item.type\n );\n}\n\n/** @internal */\nexport function useIsDraggedType(type: DragItem[\"type\"]) {\n const draggedItem = useDraggedItem();\n return !!draggedItem && draggedItem.type === type;\n}\n\n/** @internal */\nexport function useDraggedItemId<T extends DragItem>(\n type: T[\"type\"]\n): T[\"id\"] | undefined {\n const draggedItem = useDraggedItem();\n\n if (draggedItem && draggedItem.type === type) {\n return draggedItem.id;\n }\n return undefined;\n}\n\n/** @internal */\nexport interface DragProviderProps {\n children?: React.ReactNode;\n}\n\n/** @internal */\nexport function DragProvider(props: DragProviderProps) {\n const dragManager = React.useRef(new DragManager());\n React.useEffect(() => {\n const mouseMove = (e: MouseEvent) => {\n dragManager.current.handleDrag(e.clientX, e.clientY);\n };\n document.addEventListener(\"mousemove\", mouseMove);\n return () => {\n document.removeEventListener(\"mousemove\", mouseMove);\n };\n }, []);\n React.useEffect(() => {\n const mouseUp = () => {\n dragManager.current.handleDragEnd();\n };\n document.addEventListener(\"mouseup\", mouseUp);\n return () => {\n document.removeEventListener(\"mouseup\", mouseUp);\n };\n }, []);\n return (\n <DragManagerContext.Provider value={dragManager.current}>\n <DraggedWidgetIdProvider>\n <DraggedPanelSideProvider>\n <DraggedResizeHandleProvider>\n {props.children}\n </DraggedResizeHandleProvider>\n </DraggedPanelSideProvider>\n </DraggedWidgetIdProvider>\n </DragManagerContext.Provider>\n );\n}\n\nfunction DraggedWidgetIdProvider(props: { children?: React.ReactNode }) {\n const draggedWidgetId = useDraggedItemId<WidgetDragItem>(\"widget\");\n return (\n <DraggedWidgetIdContext.Provider value={draggedWidgetId}>\n {props.children}\n </DraggedWidgetIdContext.Provider>\n );\n}\n\nfunction DraggedPanelSideProvider(props: { children?: React.ReactNode }) {\n const draggedSide = useDraggedItemId<PanelGripDragItem>(\"panelGrip\");\n return (\n <DraggedPanelSideContext.Provider value={draggedSide}>\n {props.children}\n </DraggedPanelSideContext.Provider>\n );\n}\n\nfunction DraggedResizeHandleProvider(props: { children?: React.ReactNode }) {\n const draggedHandle = useDraggedItemId<ResizeHandleDragItem>(\"resizeHandle\");\n return (\n <DraggedResizeHandleContext.Provider value={draggedHandle}>\n {props.children}\n </DraggedResizeHandleContext.Provider>\n );\n}\n\ninterface TabDragItem {\n type: \"tab\";\n id: TabState[\"id\"];\n}\n\ninterface WidgetDragItem {\n type: \"widget\";\n id: WidgetState[\"id\"];\n}\n\ninterface PanelGripDragItem {\n type: \"panelGrip\";\n id: PanelSide;\n}\n\ninterface ResizeHandleDragItem {\n type: \"resizeHandle\";\n id: FloatingWidgetResizeHandle;\n widgetId: WidgetState[\"id\"];\n}\n\n/** @internal */\nexport type DragItem =\n | TabDragItem\n | WidgetDragItem\n | PanelGripDragItem\n | ResizeHandleDragItem;\n\nfunction isResizeHandleDragItem(item: DragItem): item is ResizeHandleDragItem {\n return item.type === \"resizeHandle\";\n}\n\ninterface BaseDragInfo {\n initialPointerPosition: Point;\n lastPointerPosition: Point;\n pointerPosition: Point;\n}\n\ninterface TabDragInfo extends BaseDragInfo {\n widgetSize: SizeProps;\n}\n\ntype DragInfo = BaseDragInfo | TabDragInfo;\n\ninterface HandleDragStartArgs {\n item: DragItem;\n info: DragInfo;\n}\n\ninterface Dragged {\n item: DragItem;\n info: DragInfo;\n target: DropTargetState | undefined;\n}\n\ntype DragEventHandler = (\n item: DragItem,\n info: DragInfo,\n target: DropTargetState | undefined\n) => void;\ntype DropTargetChangedEventHandler = (\n target: DropTargetState | undefined\n) => void;\n\n/** @internal */\nexport class DragManager {\n private _dragged: Dragged | undefined;\n private _onDragStartEmitter = new BeEvent<DragEventHandler>();\n private _onDragUpdateEmitter = new BeEvent<DragEventHandler>();\n private _onDragEmitter = new BeEvent<DragEventHandler>();\n private _onDragEndEmitter = new BeEvent<DragEventHandler>();\n private _onTargetChangedEmitter =\n new BeEvent<DropTargetChangedEventHandler>();\n\n public get draggedItem() {\n return this._dragged;\n }\n\n public isTargeted(target: DropTargetState) {\n if (!this._dragged) return false;\n\n if (!this._dragged.target) return false;\n\n return isEqual(this._dragged.target, target);\n }\n\n public get onDragStart() {\n return this._onDragStartEmitter;\n }\n\n public get onDragUpdate() {\n return this._onDragUpdateEmitter;\n }\n\n public get onDrag() {\n return this._onDragEmitter;\n }\n\n public get onDragEnd() {\n return this._onDragEndEmitter;\n }\n\n public get onTargetChanged() {\n return this._onTargetChangedEmitter;\n }\n\n public handleDragStart({ item, info }: HandleDragStartArgs) {\n this._dragged = {\n item,\n info,\n target: undefined,\n };\n this._onDragStartEmitter.raiseEvent(\n this._dragged.item,\n this._dragged.info,\n this._dragged.target\n );\n }\n\n public handleDragUpdate(item: DragItem) {\n // istanbul ignore next\n if (!this._dragged) return;\n\n this._dragged.item = item;\n this._onDragUpdateEmitter.raiseEvent(\n this._dragged.item,\n this._dragged.info,\n this._dragged.target\n );\n }\n\n public handleDrag(x: number, y: number) {\n if (!this._dragged) return;\n\n this._dragged.info.lastPointerPosition = this._dragged.info.pointerPosition;\n this._dragged.info.pointerPosition = new Point(x, y);\n\n this._onDragEmitter.raiseEvent(\n this._dragged.item,\n this._dragged.info,\n this._dragged.target\n );\n }\n\n public handleDragEnd() {\n if (!this._dragged) return;\n\n const item = this._dragged.item;\n const info = this._dragged.info;\n const target = this._dragged.target;\n this._dragged = undefined;\n this._onDragEndEmitter.raiseEvent(item, info, target);\n target && this._onTargetChangedEmitter.raiseEvent(undefined);\n }\n\n public handleTargetChanged(target: DropTargetState | undefined) {\n if (!this._dragged) return;\n this._dragged.target = target;\n this._onTargetChangedEmitter.raiseEvent(target);\n }\n}\n\n/** @internal */\nexport const DragManagerContext = React.createContext<DragManager>(null!);\nDragManagerContext.displayName = \"nz:DragManagerContext\";\n\n/** @internal */\nexport const DraggedWidgetIdContext = React.createContext<\n WidgetState[\"id\"] | undefined\n>(undefined);\nDraggedWidgetIdContext.displayName = \"nz:DraggedWidgetIdContext\";\n\n/** @internal */\nexport const DraggedPanelSideContext = React.createContext<\n PanelSide | undefined\n>(undefined);\nDraggedPanelSideContext.displayName = \"nz:DraggedPanelSideContext\";\n\n/** @internal */\nexport const DraggedResizeHandleContext = React.createContext<\n FloatingWidgetResizeHandle | undefined\n>(undefined);\nDraggedResizeHandleContext.displayName = \"nz:DraggedResizeHandleContext\";\n\n/** @internal */\nexport function useTargeted() {\n const dragManager = React.useContext(DragManagerContext);\n const [targeted, setTargeted] = React.useState<DropTargetState>();\n React.useEffect(() => {\n return dragManager.onTargetChanged.addListener((t) => {\n setTargeted(t);\n });\n }, [dragManager]);\n return targeted;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"DragManager.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/base/DragManager.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Base\n */\nimport * as React from \"react\";\nimport { isEqual } from \"lodash\";\nimport { BeEvent } from \"@itwin/core-bentley\";\nimport type { SizeProps } from \"@itwin/core-react\";\nimport { Point } from \"@itwin/core-react\";\nimport type { PanelSide } from \"../widget-panels/PanelTypes\";\nimport type { FloatingWidgetResizeHandle } from \"../widget/FloatingWidget\";\nimport type { WidgetState } from \"../state/WidgetState\";\nimport type { TabState } from \"../state/TabState\";\nimport { getUniqueId } from \"./NineZone\";\nimport type { XAndY } from \"../state/internal/NineZoneStateHelpers\";\nimport type {\n DropTargetState,\n PanelDropTargetState,\n TabDragDropTargetState,\n TabDropTargetState,\n WidgetDragDropTargetState,\n} from \"../state/DropTargetState\";\nimport {\n isTabDragDropTargetState,\n isWidgetDragDropTargetState,\n} from \"../state/DropTargetState\";\n\n/** @internal */\nexport interface DragStartArgs {\n initialPointerPosition: Point;\n pointerPosition: Point;\n}\n\n/** @internal */\nexport interface TabDragStartArgs extends DragStartArgs {\n widgetSize: SizeProps;\n}\n\n/** @internal */\nexport interface UseDragTabArgs {\n tabId: TabState[\"id\"];\n onDrag?: (dragBy: XAndY) => void;\n onDragEnd?: (target: TabDragDropTargetState) => void;\n}\n\n/** @internal */\nexport function useDragTab(args: UseDragTabArgs) {\n const { tabId, onDrag, onDragEnd } = args;\n const item = React.useMemo<TabDragItem>(() => {\n return {\n type: \"tab\",\n id: tabId,\n };\n }, [tabId]);\n const handleDrag = React.useCallback<DragEventHandler>(\n (_item, info) => {\n const dragBy = info.lastPointerPosition.getOffsetTo(info.pointerPosition);\n onDrag && onDrag(dragBy);\n },\n [onDrag]\n );\n const handleDragEnd = React.useCallback<DragEventHandler>(\n (_item, info, target) => {\n // istanbul ignore next\n if (!onDragEnd) return;\n\n let tabTarget: TabDragDropTargetState;\n if (target && isTabDragDropTargetState(target)) {\n tabTarget = target;\n } else {\n const tabInfo = info as TabDragInfo;\n const newFloatingWidgetId = getUniqueId();\n const size = tabInfo.widgetSize;\n tabTarget = {\n type: \"floatingWidget\",\n newFloatingWidgetId,\n size,\n };\n }\n onDragEnd(tabTarget);\n },\n [onDragEnd]\n );\n const onDragStart = useDragItem({\n item,\n onDrag: handleDrag,\n onDragEnd: handleDragEnd,\n });\n const handleDragStart = React.useCallback(\n ({\n initialPointerPosition,\n pointerPosition,\n widgetSize,\n }: TabDragStartArgs) => {\n onDragStart({\n initialPointerPosition,\n pointerPosition,\n lastPointerPosition: initialPointerPosition,\n widgetSize,\n });\n },\n [onDragStart]\n );\n return handleDragStart;\n}\n\ntype UpdateWidgetDragItemFn = (id: WidgetDragItem[\"id\"]) => void;\n\n/** @internal */\nexport interface UseDragWidgetArgs {\n widgetId: WidgetState[\"id\"];\n onDragStart?: (\n updateWidget: UpdateWidgetDragItemFn,\n initialPointerPosition: Point,\n pointerPosition: Point\n ) => void;\n onDrag?: (dragBy: Point) => void;\n onDragEnd?: (target: WidgetDragDropTargetState) => void;\n}\n\n/** @internal */\nexport function useDragWidget(args: UseDragWidgetArgs) {\n const { widgetId, onDragStart, onDrag, onDragEnd } = args;\n const dragManager = React.useContext(DragManagerContext);\n const widgetItem = React.useMemo<WidgetDragItem>(() => {\n return {\n type: \"widget\",\n id: widgetId,\n };\n }, [widgetId]);\n const handleDragStart = React.useCallback<DragEventHandler>(\n (_item, info) => {\n onDragStart &&\n onDragStart(\n (id) => {\n dragManager.handleDragUpdate({\n type: \"widget\",\n id,\n });\n },\n info.initialPointerPosition,\n info.pointerPosition\n );\n },\n [dragManager, onDragStart]\n );\n const handleDrag = React.useCallback<DragEventHandler>(\n (_item, info) => {\n const dragBy = info.lastPointerPosition.getOffsetTo(info.pointerPosition);\n onDrag && onDrag(dragBy);\n },\n [onDrag]\n );\n const handleDragEnd = React.useCallback<DragEventHandler>(\n (_item, _info, target) => {\n if (!onDragEnd) return;\n\n let widgetTarget: WidgetDragDropTargetState;\n if (target && isWidgetDragDropTargetState(target)) {\n widgetTarget = target;\n } else {\n widgetTarget = {\n type: \"window\",\n };\n }\n onDragEnd(widgetTarget);\n },\n [onDragEnd]\n );\n const isDragItem = React.useCallback<\n NonNullable<UseDragItemArgs<WidgetDragItem>[\"isDragItem\"]>\n >((item, dragged) => {\n return !!item && defaultIsDragItem(item, dragged);\n }, []);\n const onItemDragStart = useDragItem({\n item: widgetItem,\n isDragItem,\n onDragStart: handleDragStart,\n onDrag: handleDrag,\n onDragEnd: handleDragEnd,\n });\n const handleWidgetDragStart = React.useCallback(\n ({ initialPointerPosition, pointerPosition }: DragStartArgs) => {\n onItemDragStart({\n initialPointerPosition,\n pointerPosition,\n lastPointerPosition: initialPointerPosition,\n });\n },\n [onItemDragStart]\n );\n return handleWidgetDragStart;\n}\n\n/** @internal */\nexport interface UseDragPanelGripArgs {\n side: PanelSide;\n onDrag?: (pointerPosition: Point, lastPointerPosition: Point) => void;\n onDragEnd?: () => void;\n}\n\n/** @internal */\nexport function useDragPanelGrip(args: UseDragPanelGripArgs) {\n const { side, onDrag, onDragEnd } = args;\n const gripItem = React.useMemo<PanelGripDragItem>(() => {\n return {\n type: \"panelGrip\",\n id: side,\n };\n }, [side]);\n const handleDrag = React.useCallback<DragEventHandler>(\n (_item, info) => {\n onDrag && onDrag(info.pointerPosition, info.lastPointerPosition);\n },\n [onDrag]\n );\n const handleDragEnd = React.useCallback<DragEventHandler>(() => {\n onDragEnd && onDragEnd();\n }, [onDragEnd]);\n const onItemDragStart = useDragItem({\n item: gripItem,\n onDrag: handleDrag,\n onDragEnd: handleDragEnd,\n });\n const handleDragStart = React.useCallback(\n ({ initialPointerPosition }: DragStartArgs) => {\n onItemDragStart({\n initialPointerPosition,\n pointerPosition: initialPointerPosition,\n lastPointerPosition: initialPointerPosition,\n });\n },\n [onItemDragStart]\n );\n return handleDragStart;\n}\n\n/** @internal */\nexport interface UseDragResizeHandleArgs {\n widgetId: WidgetState[\"id\"];\n handle: FloatingWidgetResizeHandle;\n onDrag?: (pointerPosition: Point) => void;\n}\n\n/** @internal */\nexport function useDragResizeHandle(args: UseDragResizeHandleArgs) {\n const { handle, onDrag, widgetId } = args;\n const resizeHandleItem = React.useMemo<ResizeHandleDragItem>(() => {\n return {\n type: \"resizeHandle\",\n id: handle,\n widgetId,\n };\n }, [handle, widgetId]);\n const isDragItem = React.useCallback<\n NonNullable<UseDragItemArgs<ResizeHandleDragItem>[\"isDragItem\"]>\n >((item, draggedItem) => {\n return (\n !!item &&\n isResizeHandleDragItem(draggedItem) &&\n defaultIsDragItem(item, draggedItem) &&\n item.widgetId === draggedItem.widgetId\n );\n }, []);\n const handleDrag = React.useCallback<DragEventHandler>(\n (_item, info) => {\n onDrag && onDrag(info.pointerPosition);\n },\n [onDrag]\n );\n const onItemDragStart = useDragItem<ResizeHandleDragItem>({\n item: resizeHandleItem,\n isDragItem,\n onDrag: handleDrag,\n });\n const handleDragStart = React.useCallback(\n ({ initialPointerPosition }: DragStartArgs) => {\n onItemDragStart({\n initialPointerPosition,\n pointerPosition: initialPointerPosition,\n lastPointerPosition: initialPointerPosition,\n });\n },\n [onItemDragStart]\n );\n return handleDragStart;\n}\n\n/** @internal */\nexport interface UseDragToolSettingsArgs {\n newFloatingWidgetId: WidgetDragItem[\"id\"];\n}\n\n/** @internal */\nexport function useDragToolSettings(args: UseDragToolSettingsArgs) {\n const { newFloatingWidgetId } = args;\n const item = React.useMemo<WidgetDragItem>(() => {\n return {\n type: \"widget\",\n id: newFloatingWidgetId,\n };\n }, [newFloatingWidgetId]);\n const onDragStart = useDragItem({\n item,\n });\n const handleDragStart = React.useCallback(\n ({ initialPointerPosition }: DragStartArgs) => {\n onDragStart({\n initialPointerPosition,\n pointerPosition: initialPointerPosition,\n lastPointerPosition: initialPointerPosition,\n });\n },\n [onDragStart]\n );\n return handleDragStart;\n}\n\n/** @internal */\nexport function useTarget<T extends Element>(\n target: DropTargetState\n): [\n React.Ref<T>,\n boolean // targeted\n] {\n const dragManager = React.useContext(DragManagerContext);\n const [targeted, setTargeted] = React.useState(false);\n const targetedRef = React.useRef(false);\n const onTargeted = React.useCallback(\n (doTarget: boolean) => {\n const isTargeted = dragManager.isTargeted(target);\n if (doTarget && !isTargeted) {\n dragManager.handleTargetChanged(target);\n } else if (!doTarget && isTargeted) {\n dragManager.handleTargetChanged(undefined);\n }\n setTargeted(doTarget);\n },\n [dragManager, target]\n );\n const ref = React.useRef<T>(null);\n React.useEffect(() => {\n return dragManager.onDrag.addListener((_item, info) => {\n const targetedElement = document.elementFromPoint(\n info.pointerPosition.x,\n info.pointerPosition.y\n );\n const newTargeted = targetedElement === ref.current;\n newTargeted !== targetedRef.current && onTargeted(newTargeted);\n targetedRef.current = newTargeted;\n });\n }, [onTargeted, dragManager]);\n React.useEffect(() => {\n return dragManager.onDragEnd.addListener(() => {\n targetedRef.current && onTargeted(false);\n targetedRef.current = false;\n });\n }, [onTargeted, dragManager]);\n return [ref, targeted];\n}\n\n/** @internal */\nexport interface UseTabTargetArgs {\n widgetId: WidgetState[\"id\"];\n tabIndex: number;\n}\n\n/** @internal */\nexport function useTabTarget<T extends Element>(\n args: UseTabTargetArgs\n): [\n React.Ref<T>,\n boolean // targeted\n] {\n const { tabIndex, widgetId } = args;\n const target = React.useMemo<TabDropTargetState>(\n () => ({\n type: \"tab\",\n tabIndex,\n widgetId,\n }),\n [tabIndex, widgetId]\n );\n return useTarget(target);\n}\n\n/** @internal */\nexport interface UsePanelTargetArgs {\n side: PanelSide;\n newWidgetId: WidgetState[\"id\"];\n}\n\n/** @internal */\nexport function usePanelTarget<T extends Element>(\n args: UsePanelTargetArgs\n): [\n React.Ref<T>,\n boolean // targeted\n] {\n const { side, newWidgetId } = args;\n const target = React.useMemo<PanelDropTargetState>(\n () => ({\n type: \"panel\",\n side,\n newWidgetId,\n }),\n [side, newWidgetId]\n );\n return useTarget(target);\n}\n\n/** @internal */\nexport interface UseDragItemArgs<T extends DragItem> {\n item: T;\n isDragItem?: (item: T | undefined, dragged: DragItem) => boolean;\n onDragStart?: DragEventHandler;\n onDrag?: DragEventHandler;\n onDragEnd?: DragEventHandler;\n}\n\nfunction defaultIsDragItem(item: DragItem, dragged: DragItem) {\n return dragged.type === item.type && dragged.id === item.id;\n}\n\n/** @internal */\nexport function useDragItem<T extends DragItem>(args: UseDragItemArgs<T>) {\n const dragManager = React.useContext(DragManagerContext);\n const { item, isDragItem, onDragStart, onDrag, onDragEnd } = args;\n const handleDragStart = React.useCallback(\n (info: DragInfo) => {\n item &&\n dragManager.handleDragStart({\n item,\n info,\n });\n },\n [dragManager, item]\n );\n React.useEffect(() => {\n return dragManager.onDragStart.addListener((draggedItem, info, target) => {\n const handleEvent = isDragItem\n ? isDragItem(item, draggedItem)\n : defaultIsDragItem(item, draggedItem);\n if (!handleEvent) return;\n onDragStart && onDragStart(draggedItem, info, target);\n });\n }, [dragManager, onDragStart, item, isDragItem]);\n React.useEffect(() => {\n return dragManager.onDrag.addListener((draggedItem, info, target) => {\n const handleEvent = isDragItem\n ? isDragItem(item, draggedItem)\n : defaultIsDragItem(item, draggedItem);\n if (!handleEvent) return;\n onDrag && onDrag(draggedItem, info, target);\n });\n }, [dragManager, onDrag, item, isDragItem]);\n React.useEffect(() => {\n return dragManager.onDragEnd.addListener((draggedItem, info, target) => {\n const handleEvent = isDragItem\n ? isDragItem(item, draggedItem)\n : defaultIsDragItem(item, draggedItem);\n if (!handleEvent) return;\n onDragEnd && onDragEnd(draggedItem, info, target);\n });\n }, [dragManager, onDragEnd, item, isDragItem]);\n return handleDragStart;\n}\n\n/** @internal */\nexport function useDraggedItem() {\n const dragManager = React.useContext(DragManagerContext);\n const [draggedItem, setDraggedItem] = React.useState<DragItem | undefined>(\n dragManager.draggedItem?.item\n );\n React.useEffect(() => {\n return dragManager.onDragStart.addListener((item) => {\n setDraggedItem(item);\n });\n }, [dragManager]);\n React.useEffect(() => {\n return dragManager.onDragUpdate.addListener((item) => {\n setDraggedItem(item);\n });\n }, [dragManager]);\n React.useEffect(() => {\n return dragManager.onDragEnd.addListener(() => {\n setDraggedItem(undefined);\n });\n }, [dragManager]);\n return draggedItem;\n}\n\n/** @internal */\nexport function useIsDraggedItem(item: DragItem) {\n const draggedItem = useDraggedItem();\n return (\n !!draggedItem &&\n draggedItem.id === item.id &&\n draggedItem.type === item.type\n );\n}\n\n/** @internal */\nexport function useIsDraggedType(type: DragItem[\"type\"]) {\n const draggedItem = useDraggedItem();\n return !!draggedItem && draggedItem.type === type;\n}\n\n/** @internal */\nexport function useDraggedItemId<T extends DragItem>(\n type: T[\"type\"]\n): T[\"id\"] | undefined {\n const draggedItem = useDraggedItem();\n\n if (draggedItem && draggedItem.type === type) {\n return draggedItem.id;\n }\n return undefined;\n}\n\n/** @internal */\nexport interface DragProviderProps {\n children?: React.ReactNode;\n}\n\n/** @internal */\nexport function DragProvider(props: DragProviderProps) {\n const dragManager = React.useRef(new DragManager());\n React.useEffect(() => {\n const mouseMove = (e: MouseEvent) => {\n dragManager.current.handleDrag(e.clientX, e.clientY);\n };\n document.addEventListener(\"mousemove\", mouseMove);\n return () => {\n document.removeEventListener(\"mousemove\", mouseMove);\n };\n }, []);\n React.useEffect(() => {\n const mouseUp = () => {\n dragManager.current.handleDragEnd();\n };\n document.addEventListener(\"mouseup\", mouseUp);\n return () => {\n document.removeEventListener(\"mouseup\", mouseUp);\n };\n }, []);\n return (\n <DragManagerContext.Provider value={dragManager.current}>\n <DraggedWidgetIdProvider>\n <DraggedPanelSideProvider>\n <DraggedResizeHandleProvider>\n {props.children}\n </DraggedResizeHandleProvider>\n </DraggedPanelSideProvider>\n </DraggedWidgetIdProvider>\n </DragManagerContext.Provider>\n );\n}\n\nfunction DraggedWidgetIdProvider(props: { children?: React.ReactNode }) {\n const draggedWidgetId = useDraggedItemId<WidgetDragItem>(\"widget\");\n return (\n <DraggedWidgetIdContext.Provider value={draggedWidgetId}>\n {props.children}\n </DraggedWidgetIdContext.Provider>\n );\n}\n\nfunction DraggedPanelSideProvider(props: { children?: React.ReactNode }) {\n const draggedSide = useDraggedItemId<PanelGripDragItem>(\"panelGrip\");\n return (\n <DraggedPanelSideContext.Provider value={draggedSide}>\n {props.children}\n </DraggedPanelSideContext.Provider>\n );\n}\n\nfunction DraggedResizeHandleProvider(props: { children?: React.ReactNode }) {\n const draggedHandle = useDraggedItemId<ResizeHandleDragItem>(\"resizeHandle\");\n return (\n <DraggedResizeHandleContext.Provider value={draggedHandle}>\n {props.children}\n </DraggedResizeHandleContext.Provider>\n );\n}\n\ninterface TabDragItem {\n type: \"tab\";\n id: TabState[\"id\"];\n}\n\ninterface WidgetDragItem {\n type: \"widget\";\n id: WidgetState[\"id\"];\n}\n\ninterface PanelGripDragItem {\n type: \"panelGrip\";\n id: PanelSide;\n}\n\ninterface ResizeHandleDragItem {\n type: \"resizeHandle\";\n id: FloatingWidgetResizeHandle;\n widgetId: WidgetState[\"id\"];\n}\n\n/** @internal */\nexport type DragItem =\n | TabDragItem\n | WidgetDragItem\n | PanelGripDragItem\n | ResizeHandleDragItem;\n\nfunction isResizeHandleDragItem(item: DragItem): item is ResizeHandleDragItem {\n return item.type === \"resizeHandle\";\n}\n\ninterface BaseDragInfo {\n initialPointerPosition: Point;\n lastPointerPosition: Point;\n pointerPosition: Point;\n}\n\ninterface TabDragInfo extends BaseDragInfo {\n widgetSize: SizeProps;\n}\n\ntype DragInfo = BaseDragInfo | TabDragInfo;\n\ninterface HandleDragStartArgs {\n item: DragItem;\n info: DragInfo;\n}\n\ninterface Dragged {\n item: DragItem;\n info: DragInfo;\n target: DropTargetState | undefined;\n}\n\ntype DragEventHandler = (\n item: DragItem,\n info: DragInfo,\n target: DropTargetState | undefined\n) => void;\ntype DropTargetChangedEventHandler = (\n target: DropTargetState | undefined\n) => void;\n\n/** @internal */\nexport class DragManager {\n private _dragged: Dragged | undefined;\n private _onDragStartEmitter = new BeEvent<DragEventHandler>();\n private _onDragUpdateEmitter = new BeEvent<DragEventHandler>();\n private _onDragEmitter = new BeEvent<DragEventHandler>();\n private _onDragEndEmitter = new BeEvent<DragEventHandler>();\n private _onTargetChangedEmitter =\n new BeEvent<DropTargetChangedEventHandler>();\n\n public get draggedItem() {\n return this._dragged;\n }\n\n public isTargeted(target: DropTargetState) {\n if (!this._dragged) return false;\n\n if (!this._dragged.target) return false;\n\n return isEqual(this._dragged.target, target);\n }\n\n public get onDragStart() {\n return this._onDragStartEmitter;\n }\n\n public get onDragUpdate() {\n return this._onDragUpdateEmitter;\n }\n\n public get onDrag() {\n return this._onDragEmitter;\n }\n\n public get onDragEnd() {\n return this._onDragEndEmitter;\n }\n\n public get onTargetChanged() {\n return this._onTargetChangedEmitter;\n }\n\n public handleDragStart({ item, info }: HandleDragStartArgs) {\n this._dragged = {\n item,\n info,\n target: undefined,\n };\n this._onDragStartEmitter.raiseEvent(\n this._dragged.item,\n this._dragged.info,\n this._dragged.target\n );\n }\n\n public handleDragUpdate(item: DragItem) {\n // istanbul ignore next\n if (!this._dragged) return;\n\n this._dragged.item = item;\n this._onDragUpdateEmitter.raiseEvent(\n this._dragged.item,\n this._dragged.info,\n this._dragged.target\n );\n }\n\n public handleDrag(x: number, y: number) {\n if (!this._dragged) return;\n\n this._dragged.info.lastPointerPosition = this._dragged.info.pointerPosition;\n this._dragged.info.pointerPosition = new Point(x, y);\n\n this._onDragEmitter.raiseEvent(\n this._dragged.item,\n this._dragged.info,\n this._dragged.target\n );\n }\n\n public handleDragEnd() {\n if (!this._dragged) return;\n\n const item = this._dragged.item;\n const info = this._dragged.info;\n const target = this._dragged.target;\n this._dragged = undefined;\n this._onDragEndEmitter.raiseEvent(item, info, target);\n target && this._onTargetChangedEmitter.raiseEvent(undefined);\n }\n\n public handleTargetChanged(target: DropTargetState | undefined) {\n if (!this._dragged) return;\n this._dragged.target = target;\n this._onTargetChangedEmitter.raiseEvent(target);\n }\n}\n\n/** @internal */\nexport const DragManagerContext = React.createContext<DragManager>(null!);\nDragManagerContext.displayName = \"nz:DragManagerContext\";\n\n/** @internal */\nexport const DraggedWidgetIdContext = React.createContext<\n WidgetState[\"id\"] | undefined\n>(undefined);\nDraggedWidgetIdContext.displayName = \"nz:DraggedWidgetIdContext\";\n\n/** @internal */\nexport const DraggedPanelSideContext = React.createContext<\n PanelSide | undefined\n>(undefined);\nDraggedPanelSideContext.displayName = \"nz:DraggedPanelSideContext\";\n\n/** @internal */\nexport const DraggedResizeHandleContext = React.createContext<\n FloatingWidgetResizeHandle | undefined\n>(undefined);\nDraggedResizeHandleContext.displayName = \"nz:DraggedResizeHandleContext\";\n\n/** @internal */\nexport function useTargeted() {\n const dragManager = React.useContext(DragManagerContext);\n const [targeted, setTargeted] = React.useState<DropTargetState>();\n React.useEffect(() => {\n return dragManager.onTargetChanged.addListener((t) => {\n setTargeted(t);\n });\n }, [dragManager]);\n return targeted;\n}\n"]}
|
|
@@ -168,7 +168,7 @@ exports.getUniqueId = getUniqueId;
|
|
|
168
168
|
/** @internal */
|
|
169
169
|
function useLabel(labelKey) {
|
|
170
170
|
const labels = React.useContext(exports.NineZoneLabelsContext);
|
|
171
|
-
return labels
|
|
171
|
+
return labels?.[labelKey];
|
|
172
172
|
}
|
|
173
173
|
exports.useLabel = useLabel;
|
|
174
174
|
//# sourceMappingURL=NineZone.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NineZone.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/base/NineZone.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Base\n */\n\nimport * as React from \"react\";\nimport { assert, Guid } from \"@itwin/core-bentley\";\nimport { Rectangle, useRefs, useResizeObserver } from \"@itwin/core-react\";\nimport type { CursorType } from \"../widget-panels/CursorOverlay\";\nimport type { PanelSide } from \"../widget-panels/PanelTypes\";\nimport { WidgetContentManager } from \"../widget/ContentManager\";\nimport type { FloatingWidgetResizeHandle } from \"../widget/FloatingWidget\";\nimport { FloatingWidget } from \"../widget/FloatingWidget\";\nimport {\n DraggedPanelSideContext,\n DraggedResizeHandleContext,\n DraggedWidgetIdContext,\n DragProvider,\n} from \"./DragManager\";\nimport { WidgetTab } from \"../widget/Tab\";\nimport type { NineZoneAction } from \"../state/NineZoneAction\";\nimport type { LayoutStore } from \"./LayoutStore\";\nimport { LayoutStoreContext, useLayout } from \"./LayoutStore\";\n\n/** @internal */\nexport type NineZoneDispatch = (action: NineZoneAction) => void;\n\n/** @internal */\nexport interface NineZoneProps {\n children?: React.ReactNode;\n dispatch: NineZoneDispatch;\n layout: LayoutStore;\n labels?: NineZoneLabels;\n toolSettingsContent?: React.ReactNode;\n widgetContent?: React.ReactNode;\n tab?: React.ReactNode;\n floatingWidget?: React.ReactNode;\n showWidgetIcon?: boolean;\n autoCollapseUnpinnedPanels?: boolean;\n animateDockedToolSettings?: boolean;\n uiIsVisible?: boolean;\n}\n\n/** @internal */\nexport interface NineZoneLabels {\n dockToolSettingsTitle?: string;\n moreWidgetsTitle?: string;\n moreToolSettingsTitle?: string;\n pinPanelTitle?: string;\n resizeGripTitle?: string;\n sendWidgetHomeTitle?: string;\n toolSettingsHandleTitle?: string;\n unpinPanelTitle?: string;\n popoutActiveTab?: string;\n}\n\n/** @internal */\nexport function NineZone(props: NineZoneProps) {\n const { children, ...providerProps } = props;\n const measurerRef = React.useRef<HTMLDivElement>(null);\n const measure = React.useCallback<() => Rectangle>(() => {\n assert(!!measurerRef.current);\n return Rectangle.create(measurerRef.current.getBoundingClientRect());\n }, []);\n return (\n <NineZoneProvider measure={measure} {...providerProps}>\n <Measurer ref={measurerRef} />\n {children}\n </NineZoneProvider>\n );\n}\n\n/** @internal */\nexport interface NineZoneProviderProps extends NineZoneProps {\n measure: () => Rectangle;\n}\n\nconst tab = <WidgetTab />;\nconst floatingWidget = <FloatingWidget />;\n\n/** @internal */\nexport function NineZoneProvider(props: NineZoneProviderProps) {\n return (\n <LayoutStoreContext.Provider value={props.layout}>\n <NineZoneDispatchContext.Provider value={props.dispatch}>\n <NineZoneLabelsContext.Provider value={props.labels}>\n <UiIsVisibleContext.Provider value={!!props.uiIsVisible}>\n <ShowWidgetIconContext.Provider value={!!props.showWidgetIcon}>\n <AutoCollapseUnpinnedPanelsContext.Provider\n value={!!props.autoCollapseUnpinnedPanels}\n >\n <WidgetContentNodeContext.Provider value={props.widgetContent}>\n <ToolSettingsNodeContext.Provider\n value={props.toolSettingsContent}\n >\n <TabNodeContext.Provider value={props.tab || tab}>\n <FloatingWidgetNodeContext.Provider\n value={props.floatingWidget || floatingWidget}\n >\n <AnimateDockedToolSettingsContext.Provider\n value={!!props.animateDockedToolSettings}\n >\n <DragProvider>\n <CursorTypeProvider>\n <WidgetContentManager>\n <MeasureContext.Provider value={props.measure}>\n {props.children}\n </MeasureContext.Provider>\n </WidgetContentManager>\n </CursorTypeProvider>\n </DragProvider>\n </AnimateDockedToolSettingsContext.Provider>\n </FloatingWidgetNodeContext.Provider>\n </TabNodeContext.Provider>\n </ToolSettingsNodeContext.Provider>\n </WidgetContentNodeContext.Provider>\n </AutoCollapseUnpinnedPanelsContext.Provider>\n </ShowWidgetIconContext.Provider>\n </UiIsVisibleContext.Provider>\n </NineZoneLabelsContext.Provider>\n </NineZoneDispatchContext.Provider>\n </LayoutStoreContext.Provider>\n );\n}\n\n/** @internal */\nexport const NineZoneDispatchContext = React.createContext<NineZoneDispatch>(\n null!\n);\nNineZoneDispatchContext.displayName = \"nz:NineZoneDispatchContext\";\n\n/** @internal */\nexport const NineZoneLabelsContext = React.createContext<\n NineZoneLabels | undefined\n>(undefined);\nNineZoneLabelsContext.displayName = \"nz:NineZoneLabelsContext\";\n\n/** @internal */\nexport const CursorTypeContext = React.createContext<CursorType | undefined>(\n undefined\n);\nCursorTypeContext.displayName = \"nz:CursorTypeContext\";\n\n/** @internal */\nexport const WidgetContentNodeContext =\n React.createContext<React.ReactNode>(undefined);\nWidgetContentNodeContext.displayName = \"nz:WidgetContentNodeContext\";\n\n/** @internal */\nexport const ShowWidgetIconContext = React.createContext<boolean>(false);\nShowWidgetIconContext.displayName = \"nz:ShowWidgetIconContext\";\n\n/** @internal */\nexport const AutoCollapseUnpinnedPanelsContext =\n React.createContext<boolean>(false);\nAutoCollapseUnpinnedPanelsContext.displayName =\n \"nz:AutoCollapseUnpinnedPanelsContext\";\n\n/** @internal */\nexport const AnimateDockedToolSettingsContext =\n React.createContext<boolean>(false);\nAnimateDockedToolSettingsContext.displayName =\n \"nz:AnimateDockedToolSettingsContext\";\n\n/** @internal */\nexport const ToolSettingsNodeContext =\n React.createContext<React.ReactNode>(undefined);\nToolSettingsNodeContext.displayName = \"nz:ToolSettingsNodeContext\";\n\n/** @internal */\nexport const TabNodeContext = React.createContext<React.ReactNode>(undefined);\nTabNodeContext.displayName = \"nz:TabNodeContext\";\n\n/** @internal */\nexport const FloatingWidgetNodeContext =\n React.createContext<React.ReactNode>(undefined);\nFloatingWidgetNodeContext.displayName = \"nz:FloatingWidgetNodeContext\";\n\n/** @internal */\nexport const MeasureContext = React.createContext<() => Rectangle>(null!);\nMeasureContext.displayName = \"nz:MeasureContext\";\n\n/** @internal */\nexport const UiIsVisibleContext = React.createContext<boolean>(false);\nUiIsVisibleContext.displayName = \"nz:UiIsVisibleContext\";\n\nfunction CursorTypeProvider(props: { children?: React.ReactNode }) {\n const draggedTab = useLayout((state) => !!state.draggedTab);\n const draggedWidgetId = React.useContext(DraggedWidgetIdContext);\n const draggedPanelSide = React.useContext(DraggedPanelSideContext);\n const draggedResizeHandle = React.useContext(DraggedResizeHandleContext);\n let type: CursorType | undefined;\n if (draggedTab || draggedWidgetId) type = \"grabbing\";\n else if (draggedPanelSide) type = sideToCursorType(draggedPanelSide);\n else if (draggedResizeHandle) type = handleToCursorType(draggedResizeHandle);\n return (\n <CursorTypeContext.Provider value={type}>\n {props.children}\n </CursorTypeContext.Provider>\n );\n}\n\nconst Measurer = React.forwardRef<HTMLDivElement>(function Measurer(_, ref) {\n const size = React.useRef<{ height?: number; width?: number }>({});\n const dispatch = React.useContext(NineZoneDispatchContext);\n const handleResize = React.useCallback(\n (width: number, height: number) => {\n // istanbul ignore next\n if (size.current.width === width && size.current.height === height)\n return;\n size.current.height = height;\n size.current.width = width;\n dispatch({\n type: \"RESIZE\",\n size: {\n height,\n width,\n },\n });\n },\n [dispatch]\n );\n const roRef = useResizeObserver(handleResize);\n const refs = useRefs(ref, roRef);\n return (\n <div\n ref={refs}\n style={{\n position: \"absolute\",\n width: \"100%\",\n height: \"100%\",\n top: \"0\",\n left: \"0\",\n visibility: \"hidden\",\n }}\n />\n );\n});\n\n/** @internal */\nexport function sideToCursorType(side: PanelSide): CursorType {\n switch (side) {\n case \"bottom\":\n case \"top\":\n return \"ns-resize\";\n case \"left\":\n case \"right\":\n return \"ew-resize\";\n }\n}\n\n/** @internal */\nexport function handleToCursorType(\n handle: FloatingWidgetResizeHandle\n): CursorType {\n switch (handle) {\n case \"bottom\":\n case \"top\":\n return \"ns-resize\";\n case \"left\":\n case \"right\":\n return \"ew-resize\";\n case \"topLeft\":\n case \"bottomRight\":\n return \"nwse-resize\";\n case \"topRight\":\n case \"bottomLeft\":\n return \"nesw-resize\";\n }\n}\n\n/** @internal */\nexport function getUniqueId() {\n return Guid.createValue();\n}\n\n/** @internal */\nexport function useLabel(labelKey: keyof NineZoneLabels) {\n const labels = React.useContext(NineZoneLabelsContext);\n return labels?.[labelKey];\n}\n"]}
|
|
1
|
+
{"version":3,"file":"NineZone.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/base/NineZone.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Base\n */\n\nimport * as React from \"react\";\nimport { assert, Guid } from \"@itwin/core-bentley\";\nimport { Rectangle, useRefs, useResizeObserver } from \"@itwin/core-react\";\nimport type { CursorType } from \"../widget-panels/CursorOverlay\";\nimport type { PanelSide } from \"../widget-panels/PanelTypes\";\nimport { WidgetContentManager } from \"../widget/ContentManager\";\nimport type { FloatingWidgetResizeHandle } from \"../widget/FloatingWidget\";\nimport { FloatingWidget } from \"../widget/FloatingWidget\";\nimport {\n DraggedPanelSideContext,\n DraggedResizeHandleContext,\n DraggedWidgetIdContext,\n DragProvider,\n} from \"./DragManager\";\nimport { WidgetTab } from \"../widget/Tab\";\nimport type { NineZoneAction } from \"../state/NineZoneAction\";\nimport type { LayoutStore } from \"./LayoutStore\";\nimport { LayoutStoreContext, useLayout } from \"./LayoutStore\";\n\n/** @internal */\nexport type NineZoneDispatch = (action: NineZoneAction) => void;\n\n/** @internal */\nexport interface NineZoneProps {\n children?: React.ReactNode;\n dispatch: NineZoneDispatch;\n layout: LayoutStore;\n labels?: NineZoneLabels;\n toolSettingsContent?: React.ReactNode;\n widgetContent?: React.ReactNode;\n tab?: React.ReactNode;\n floatingWidget?: React.ReactNode;\n showWidgetIcon?: boolean;\n autoCollapseUnpinnedPanels?: boolean;\n animateDockedToolSettings?: boolean;\n uiIsVisible?: boolean;\n}\n\n/** @internal */\nexport interface NineZoneLabels {\n dockToolSettingsTitle?: string;\n moreWidgetsTitle?: string;\n moreToolSettingsTitle?: string;\n pinPanelTitle?: string;\n resizeGripTitle?: string;\n sendWidgetHomeTitle?: string;\n toolSettingsHandleTitle?: string;\n unpinPanelTitle?: string;\n popoutActiveTab?: string;\n}\n\n/** @internal */\nexport function NineZone(props: NineZoneProps) {\n const { children, ...providerProps } = props;\n const measurerRef = React.useRef<HTMLDivElement>(null);\n const measure = React.useCallback<() => Rectangle>(() => {\n assert(!!measurerRef.current);\n return Rectangle.create(measurerRef.current.getBoundingClientRect());\n }, []);\n return (\n <NineZoneProvider measure={measure} {...providerProps}>\n <Measurer ref={measurerRef} />\n {children}\n </NineZoneProvider>\n );\n}\n\n/** @internal */\nexport interface NineZoneProviderProps extends NineZoneProps {\n measure: () => Rectangle;\n}\n\nconst tab = <WidgetTab />;\nconst floatingWidget = <FloatingWidget />;\n\n/** @internal */\nexport function NineZoneProvider(props: NineZoneProviderProps) {\n return (\n <LayoutStoreContext.Provider value={props.layout}>\n <NineZoneDispatchContext.Provider value={props.dispatch}>\n <NineZoneLabelsContext.Provider value={props.labels}>\n <UiIsVisibleContext.Provider value={!!props.uiIsVisible}>\n <ShowWidgetIconContext.Provider value={!!props.showWidgetIcon}>\n <AutoCollapseUnpinnedPanelsContext.Provider\n value={!!props.autoCollapseUnpinnedPanels}\n >\n <WidgetContentNodeContext.Provider value={props.widgetContent}>\n <ToolSettingsNodeContext.Provider\n value={props.toolSettingsContent}\n >\n <TabNodeContext.Provider value={props.tab || tab}>\n <FloatingWidgetNodeContext.Provider\n value={props.floatingWidget || floatingWidget}\n >\n <AnimateDockedToolSettingsContext.Provider\n value={!!props.animateDockedToolSettings}\n >\n <DragProvider>\n <CursorTypeProvider>\n <WidgetContentManager>\n <MeasureContext.Provider value={props.measure}>\n {props.children}\n </MeasureContext.Provider>\n </WidgetContentManager>\n </CursorTypeProvider>\n </DragProvider>\n </AnimateDockedToolSettingsContext.Provider>\n </FloatingWidgetNodeContext.Provider>\n </TabNodeContext.Provider>\n </ToolSettingsNodeContext.Provider>\n </WidgetContentNodeContext.Provider>\n </AutoCollapseUnpinnedPanelsContext.Provider>\n </ShowWidgetIconContext.Provider>\n </UiIsVisibleContext.Provider>\n </NineZoneLabelsContext.Provider>\n </NineZoneDispatchContext.Provider>\n </LayoutStoreContext.Provider>\n );\n}\n\n/** @internal */\nexport const NineZoneDispatchContext = React.createContext<NineZoneDispatch>(\n null!\n);\nNineZoneDispatchContext.displayName = \"nz:NineZoneDispatchContext\";\n\n/** @internal */\nexport const NineZoneLabelsContext = React.createContext<\n NineZoneLabels | undefined\n>(undefined);\nNineZoneLabelsContext.displayName = \"nz:NineZoneLabelsContext\";\n\n/** @internal */\nexport const CursorTypeContext = React.createContext<CursorType | undefined>(\n undefined\n);\nCursorTypeContext.displayName = \"nz:CursorTypeContext\";\n\n/** @internal */\nexport const WidgetContentNodeContext =\n React.createContext<React.ReactNode>(undefined);\nWidgetContentNodeContext.displayName = \"nz:WidgetContentNodeContext\";\n\n/** @internal */\nexport const ShowWidgetIconContext = React.createContext<boolean>(false);\nShowWidgetIconContext.displayName = \"nz:ShowWidgetIconContext\";\n\n/** @internal */\nexport const AutoCollapseUnpinnedPanelsContext =\n React.createContext<boolean>(false);\nAutoCollapseUnpinnedPanelsContext.displayName =\n \"nz:AutoCollapseUnpinnedPanelsContext\";\n\n/** @internal */\nexport const AnimateDockedToolSettingsContext =\n React.createContext<boolean>(false);\nAnimateDockedToolSettingsContext.displayName =\n \"nz:AnimateDockedToolSettingsContext\";\n\n/** @internal */\nexport const ToolSettingsNodeContext =\n React.createContext<React.ReactNode>(undefined);\nToolSettingsNodeContext.displayName = \"nz:ToolSettingsNodeContext\";\n\n/** @internal */\nexport const TabNodeContext = React.createContext<React.ReactNode>(undefined);\nTabNodeContext.displayName = \"nz:TabNodeContext\";\n\n/** @internal */\nexport const FloatingWidgetNodeContext =\n React.createContext<React.ReactNode>(undefined);\nFloatingWidgetNodeContext.displayName = \"nz:FloatingWidgetNodeContext\";\n\n/** @internal */\nexport const MeasureContext = React.createContext<() => Rectangle>(null!);\nMeasureContext.displayName = \"nz:MeasureContext\";\n\n/** @internal */\nexport const UiIsVisibleContext = React.createContext<boolean>(false);\nUiIsVisibleContext.displayName = \"nz:UiIsVisibleContext\";\n\nfunction CursorTypeProvider(props: { children?: React.ReactNode }) {\n const draggedTab = useLayout((state) => !!state.draggedTab);\n const draggedWidgetId = React.useContext(DraggedWidgetIdContext);\n const draggedPanelSide = React.useContext(DraggedPanelSideContext);\n const draggedResizeHandle = React.useContext(DraggedResizeHandleContext);\n let type: CursorType | undefined;\n if (draggedTab || draggedWidgetId) type = \"grabbing\";\n else if (draggedPanelSide) type = sideToCursorType(draggedPanelSide);\n else if (draggedResizeHandle) type = handleToCursorType(draggedResizeHandle);\n return (\n <CursorTypeContext.Provider value={type}>\n {props.children}\n </CursorTypeContext.Provider>\n );\n}\n\nconst Measurer = React.forwardRef<HTMLDivElement>(function Measurer(_, ref) {\n const size = React.useRef<{ height?: number; width?: number }>({});\n const dispatch = React.useContext(NineZoneDispatchContext);\n const handleResize = React.useCallback(\n (width: number, height: number) => {\n // istanbul ignore next\n if (size.current.width === width && size.current.height === height)\n return;\n size.current.height = height;\n size.current.width = width;\n dispatch({\n type: \"RESIZE\",\n size: {\n height,\n width,\n },\n });\n },\n [dispatch]\n );\n const roRef = useResizeObserver(handleResize);\n const refs = useRefs(ref, roRef);\n return (\n <div\n ref={refs}\n style={{\n position: \"absolute\",\n width: \"100%\",\n height: \"100%\",\n top: \"0\",\n left: \"0\",\n visibility: \"hidden\",\n }}\n />\n );\n});\n\n/** @internal */\nexport function sideToCursorType(side: PanelSide): CursorType {\n switch (side) {\n case \"bottom\":\n case \"top\":\n return \"ns-resize\";\n case \"left\":\n case \"right\":\n return \"ew-resize\";\n }\n}\n\n/** @internal */\nexport function handleToCursorType(\n handle: FloatingWidgetResizeHandle\n): CursorType {\n switch (handle) {\n case \"bottom\":\n case \"top\":\n return \"ns-resize\";\n case \"left\":\n case \"right\":\n return \"ew-resize\";\n case \"topLeft\":\n case \"bottomRight\":\n return \"nwse-resize\";\n case \"topRight\":\n case \"bottomLeft\":\n return \"nesw-resize\";\n }\n}\n\n/** @internal */\nexport function getUniqueId() {\n return Guid.createValue();\n}\n\n/** @internal */\nexport function useLabel(labelKey: keyof NineZoneLabels) {\n const labels = React.useContext(NineZoneLabelsContext);\n return labels?.[labelKey];\n}\n"]}
|
|
@@ -28,7 +28,7 @@ function useHidden() {
|
|
|
28
28
|
const targeted = (0, DragManager_1.useTargeted)();
|
|
29
29
|
const activeHomeState = (0, SendBack_1.useSendBackHomeState)();
|
|
30
30
|
return React.useMemo(() => {
|
|
31
|
-
if (
|
|
31
|
+
if (activeHomeState?.widgetId === widgetId)
|
|
32
32
|
return false;
|
|
33
33
|
if (!targeted)
|
|
34
34
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabOutline.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/outline/TabOutline.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,6BAA2B;AAC3B,2CAAoC;AACpC,+BAA+B;AAC/B,qDAAkD;AAClD,6CAAmD;AACnD,8DAAmE;AACnE,iDAA0D;AAE1D,gBAAgB;AAChB,SAAgB,UAAU;IACxB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAG,IAAA,oBAAU,EAAC,uBAAuB,EAAE,MAAM,IAAI,WAAW,CAAC,CAAC;IAC7E,OAAO,6BAAK,SAAS,EAAE,SAAS,GAAI,CAAC;AACvC,CAAC;AAJD,gCAIC;AAED,uBAAuB;AACvB,SAAS,SAAS;IAChB,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,wBAAe,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,IAAA,yBAAW,GAAE,CAAC;IAC/B,MAAM,eAAe,GAAG,IAAA,+BAAoB,GAAE,CAAC;IAE/C,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACxB,IAAI,
|
|
1
|
+
{"version":3,"file":"TabOutline.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/outline/TabOutline.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,6BAA2B;AAC3B,2CAAoC;AACpC,+BAA+B;AAC/B,qDAAkD;AAClD,6CAAmD;AACnD,8DAAmE;AACnE,iDAA0D;AAE1D,gBAAgB;AAChB,SAAgB,UAAU;IACxB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAG,IAAA,oBAAU,EAAC,uBAAuB,EAAE,MAAM,IAAI,WAAW,CAAC,CAAC;IAC7E,OAAO,6BAAK,SAAS,EAAE,SAAS,GAAI,CAAC;AACvC,CAAC;AAJD,gCAIC;AAED,uBAAuB;AACvB,SAAS,SAAS;IAChB,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,wBAAe,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,IAAA,yBAAW,GAAE,CAAC;IAC/B,MAAM,eAAe,GAAG,IAAA,+BAAoB,GAAE,CAAC;IAE/C,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACxB,IAAI,eAAe,EAAE,QAAQ,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAEzD,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAE3B,IAAI,CAAC,IAAA,yCAAuB,EAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QAEpD,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAEhD,OAAO,KAAK,CAAC;IACf,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC;AAC5C,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Widget\n */\n\nimport \"./TabOutline.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { useTargeted } from \"../base/DragManager\";\nimport { WidgetIdContext } from \"../widget/Widget\";\nimport { isWidgetDropTargetState } from \"../state/DropTargetState\";\nimport { useSendBackHomeState } from \"../widget/SendBack\";\n\n/** @internal */\nexport function TabOutline() {\n const hidden = useHidden();\n const className = classnames(\"nz-outline-tabOutline\", hidden && \"nz-hidden\");\n return <div className={className} />;\n}\n\n// istanbul ignore next\nfunction useHidden() {\n const widgetId = React.useContext(WidgetIdContext);\n const targeted = useTargeted();\n const activeHomeState = useSendBackHomeState();\n\n return React.useMemo(() => {\n if (activeHomeState?.widgetId === widgetId) return false;\n\n if (!targeted) return true;\n\n if (!isWidgetDropTargetState(targeted)) return true;\n\n if (targeted.widgetId !== widgetId) return true;\n\n return false;\n }, [targeted, widgetId, activeHomeState]);\n}\n"]}
|
|
@@ -28,7 +28,7 @@ function useHidden() {
|
|
|
28
28
|
const targeted = (0, DragManager_1.useTargeted)();
|
|
29
29
|
const activeHomeState = (0, SendBack_1.useSendBackHomeState)();
|
|
30
30
|
return React.useMemo(() => {
|
|
31
|
-
if (
|
|
31
|
+
if (activeHomeState?.widgetId === widgetId)
|
|
32
32
|
return false;
|
|
33
33
|
if (!targeted)
|
|
34
34
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetOutline.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/outline/WidgetOutline.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,gCAA8B;AAC9B,2CAAoC;AACpC,+BAA+B;AAC/B,qDAAkD;AAClD,6CAAmD;AACnD,8DAGkC;AAClC,iDAA0D;AAE1D,gBAAgB;AAChB,SAAgB,aAAa;IAC3B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAG,IAAA,oBAAU,EAC1B,0BAA0B,EAC1B,MAAM,IAAI,WAAW,CACtB,CAAC;IAEF,OAAO,6BAAK,SAAS,EAAE,SAAS,GAAI,CAAC;AACvC,CAAC;AARD,sCAQC;AAED,uBAAuB;AACvB,SAAS,SAAS;IAChB,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,wBAAe,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,IAAA,yBAAW,GAAE,CAAC;IAC/B,MAAM,eAAe,GAAG,IAAA,+BAAoB,GAAE,CAAC;IAE/C,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACxB,IAAI,
|
|
1
|
+
{"version":3,"file":"WidgetOutline.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/outline/WidgetOutline.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,gCAA8B;AAC9B,2CAAoC;AACpC,+BAA+B;AAC/B,qDAAkD;AAClD,6CAAmD;AACnD,8DAGkC;AAClC,iDAA0D;AAE1D,gBAAgB;AAChB,SAAgB,aAAa;IAC3B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAG,IAAA,oBAAU,EAC1B,0BAA0B,EAC1B,MAAM,IAAI,WAAW,CACtB,CAAC;IAEF,OAAO,6BAAK,SAAS,EAAE,SAAS,GAAI,CAAC;AACvC,CAAC;AARD,sCAQC;AAED,uBAAuB;AACvB,SAAS,SAAS;IAChB,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,wBAAe,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,IAAA,yBAAW,GAAE,CAAC;IAC/B,MAAM,eAAe,GAAG,IAAA,+BAAoB,GAAE,CAAC;IAE/C,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACxB,IAAI,eAAe,EAAE,QAAQ,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAEzD,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAE3B,IAAI,IAAA,yCAAuB,EAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ;YACrE,OAAO,KAAK,CAAC;QAEf,IAAI,IAAA,sCAAoB,EAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ;YAClE,OAAO,KAAK,CAAC;QAEf,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC;AAC5C,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Widget\n */\n\nimport \"./WidgetOutline.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { useTargeted } from \"../base/DragManager\";\nimport { WidgetIdContext } from \"../widget/Widget\";\nimport {\n isTabDropTargetState,\n isWidgetDropTargetState,\n} from \"../state/DropTargetState\";\nimport { useSendBackHomeState } from \"../widget/SendBack\";\n\n/** @internal */\nexport function WidgetOutline() {\n const hidden = useHidden();\n const className = classnames(\n \"nz-outline-widgetOutline\",\n hidden && \"nz-hidden\"\n );\n\n return <div className={className} />;\n}\n\n// istanbul ignore next\nfunction useHidden() {\n const widgetId = React.useContext(WidgetIdContext);\n const targeted = useTargeted();\n const activeHomeState = useSendBackHomeState();\n\n return React.useMemo(() => {\n if (activeHomeState?.widgetId === widgetId) return false;\n\n if (!targeted) return true;\n\n if (isWidgetDropTargetState(targeted) && targeted.widgetId === widgetId)\n return false;\n\n if (isTabDropTargetState(targeted) && targeted.widgetId === widgetId)\n return false;\n\n return true;\n }, [targeted, widgetId, activeHomeState]);\n}\n"]}
|