@itwin/appui-react 4.10.0 → 4.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +27 -1
- package/lib/cjs/appui-react/UiFramework.d.ts +181 -10
- package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
- package/lib/cjs/appui-react/UiFramework.js +301 -21
- package/lib/cjs/appui-react/UiFramework.js.map +1 -1
- package/lib/cjs/appui-react/UiFramework.json +345 -0
- package/lib/cjs/appui-react/accudraw/AccuDrawDialog.d.ts.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawDialog.js +3 -2
- package/lib/cjs/appui-react/accudraw/AccuDrawDialog.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js +50 -33
- package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawInputField.d.ts +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawInputField.d.ts.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js +5 -7
- package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.d.ts +7 -6
- package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js +9 -0
- package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
- package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js +10 -10
- package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +4 -3
- package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageItem.d.ts +2 -2
- package/lib/cjs/appui-react/backstage/BackstageItem.d.ts.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageItem.js.map +1 -1
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +1 -1
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts +5 -0
- package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
- package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js +24 -17
- package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.scss +12 -10
- package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.d.ts +2 -0
- package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js +7 -1
- package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/TimeTracker.js +2 -1
- package/lib/cjs/appui-react/configurableui/TimeTracker.js.map +1 -1
- package/lib/cjs/appui-react/content/ContentLayout.js +12 -9
- package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
- package/lib/cjs/appui-react/content/DefaultViewOverlay.js +4 -3
- package/lib/cjs/appui-react/content/DefaultViewOverlay.js.map +1 -1
- package/lib/cjs/appui-react/content/DefaultViewOverlay.scss +14 -19
- package/lib/cjs/appui-react/content/FloatingViewportContent.js +2 -1
- package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
- package/lib/cjs/appui-react/content/IModelViewport.d.ts.map +1 -1
- package/lib/cjs/appui-react/content/IModelViewport.js +8 -9
- package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
- package/lib/cjs/appui-react/content/InternalContentLayoutManager.js +2 -1
- 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 +12 -10
- package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -1
- package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.d.ts +2 -2
- package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
- package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js +3 -2
- package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
- package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.d.ts +8 -4
- package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.d.ts.map +1 -1
- package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.js +102 -50
- package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
- package/lib/cjs/appui-react/dialog/ContentDialog.js +6 -3
- package/lib/cjs/appui-react/dialog/ContentDialog.js.map +1 -1
- package/lib/cjs/appui-react/dialog/DialogManagerBase.js +3 -2
- package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
- package/lib/cjs/appui-react/framework/FrameworkVisibility.d.ts +4 -2
- package/lib/cjs/appui-react/framework/FrameworkVisibility.d.ts.map +1 -1
- package/lib/cjs/appui-react/framework/FrameworkVisibility.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts +0 -5
- package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js +23 -78
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js +1 -3
- package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/ModalFrontstage.d.ts +0 -1
- package/lib/cjs/appui-react/frontstage/ModalFrontstage.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/ModalFrontstage.js +1 -2
- package/lib/cjs/appui-react/frontstage/ModalFrontstage.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/ModalSettingsStage.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +7 -6
- package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts +4 -4
- package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +5 -4
- package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useActiveToolId.d.ts +6 -0
- package/lib/cjs/appui-react/hooks/useActiveToolId.d.ts.map +1 -0
- package/lib/cjs/appui-react/hooks/useActiveToolId.js +24 -0
- package/lib/cjs/appui-react/hooks/useActiveToolId.js.map +1 -0
- package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js +11 -7
- package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useConditionalValue.d.ts +15 -0
- package/lib/cjs/appui-react/hooks/useConditionalValue.d.ts.map +1 -0
- package/lib/cjs/appui-react/hooks/useConditionalValue.js +43 -0
- package/lib/cjs/appui-react/hooks/useConditionalValue.js.map +1 -0
- package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js +11 -7
- package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useSolarDataProvider.js +13 -8
- package/lib/cjs/appui-react/hooks/useSolarDataProvider.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useTranslation.d.ts +7 -0
- package/lib/cjs/appui-react/hooks/useTranslation.d.ts.map +1 -0
- package/lib/cjs/appui-react/hooks/useTranslation.js +29 -0
- package/lib/cjs/appui-react/hooks/useTranslation.js.map +1 -0
- package/lib/cjs/appui-react/keyins/Keyins.d.ts +35 -0
- package/lib/cjs/appui-react/keyins/Keyins.d.ts.map +1 -0
- package/lib/cjs/appui-react/keyins/Keyins.js +54 -0
- package/lib/cjs/appui-react/keyins/Keyins.js.map +1 -0
- package/lib/cjs/appui-react/layers.scss +1 -1
- package/lib/cjs/appui-react/layout/StandardLayout.d.ts.map +1 -1
- package/lib/cjs/appui-react/layout/StandardLayout.js +10 -10
- package/lib/cjs/appui-react/layout/StandardLayout.js.map +1 -1
- package/lib/cjs/appui-react/layout/StandardLayout.scss +1 -1
- package/lib/cjs/appui-react/layout/_widgetopacity.scss +3 -1
- package/lib/cjs/appui-react/layout/base/DragManager.js +2 -1
- 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/base/usePointerCaptor.d.ts.map +1 -1
- package/lib/cjs/appui-react/layout/base/usePointerCaptor.js +3 -0
- package/lib/cjs/appui-react/layout/base/usePointerCaptor.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/NineZoneAction.d.ts +3 -2
- package/lib/cjs/appui-react/layout/state/NineZoneAction.d.ts.map +1 -1
- package/lib/cjs/appui-react/layout/state/NineZoneAction.js.map +1 -1
- package/lib/cjs/appui-react/layout/state/NineZoneStateReducer.d.ts.map +1 -1
- package/lib/cjs/appui-react/layout/state/NineZoneStateReducer.js +16 -13
- package/lib/cjs/appui-react/layout/state/NineZoneStateReducer.js.map +1 -1
- package/lib/cjs/appui-react/layout/state/PanelState.d.ts +2 -5
- package/lib/cjs/appui-react/layout/state/PanelState.d.ts.map +1 -1
- package/lib/cjs/appui-react/layout/state/PanelState.js.map +1 -1
- package/lib/cjs/appui-react/layout/state/internal/NineZoneStateHelpers.js +2 -1
- package/lib/cjs/appui-react/layout/state/internal/NineZoneStateHelpers.js.map +1 -1
- package/lib/cjs/appui-react/layout/state/internal/PanelStateHelpers.d.ts +4 -3
- package/lib/cjs/appui-react/layout/state/internal/PanelStateHelpers.d.ts.map +1 -1
- package/lib/cjs/appui-react/layout/state/internal/PanelStateHelpers.js +12 -10
- package/lib/cjs/appui-react/layout/state/internal/PanelStateHelpers.js.map +1 -1
- package/lib/cjs/appui-react/layout/state/internal/TabStateHelpers.js +3 -2
- 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/widget/Content.d.ts.map +1 -1
- package/lib/cjs/appui-react/layout/widget/Content.js +5 -5
- package/lib/cjs/appui-react/layout/widget/Content.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 +6 -5
- package/lib/cjs/appui-react/layout/widget/FloatingTab.js.map +1 -1
- package/lib/cjs/appui-react/layout/widget/FloatingWidget.js +4 -2
- package/lib/cjs/appui-react/layout/widget/FloatingWidget.js.map +1 -1
- package/lib/cjs/appui-react/layout/widget/NavigationArea.scss +4 -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/Tab.js +4 -4
- package/lib/cjs/appui-react/layout/widget/Tab.js.map +1 -1
- package/lib/cjs/appui-react/layout/widget/ToolsArea.scss +2 -0
- package/lib/cjs/appui-react/layout/widget/Widget.d.ts.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 +8 -5
- package/lib/cjs/appui-react/layout/widget-panels/PanelSections.js.map +1 -1
- package/lib/cjs/appui-react/layout/widget-panels/useAnimatePanel.d.ts +1 -1
- package/lib/cjs/appui-react/layout/widget-panels/useAnimatePanel.js +2 -1
- package/lib/cjs/appui-react/layout/widget-panels/useAnimatePanel.js.map +1 -1
- package/lib/cjs/appui-react/messages/AppNotificationManager.js +1 -1
- package/lib/cjs/appui-react/messages/AppNotificationManager.js.map +1 -1
- package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/messages/MessageManager.js +6 -6
- package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
- package/lib/cjs/appui-react/messages/MessageRenderer.js +16 -10
- package/lib/cjs/appui-react/messages/MessageRenderer.js.map +1 -1
- package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.d.ts.map +1 -1
- package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js +2 -6
- package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
- package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.d.ts.map +1 -1
- package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js +1 -1
- package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
- package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.d.ts +0 -1
- package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.d.ts.map +1 -1
- package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js +1 -2
- package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
- package/lib/cjs/appui-react/pickers/ViewSelector.js +6 -5
- package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
- package/lib/cjs/appui-react/popup/CardPopup.d.ts +21 -9
- package/lib/cjs/appui-react/popup/CardPopup.d.ts.map +1 -1
- package/lib/cjs/appui-react/popup/CardPopup.js +12 -5
- package/lib/cjs/appui-react/popup/CardPopup.js.map +1 -1
- package/lib/cjs/appui-react/popup/ComponentPopup.d.ts +18 -0
- package/lib/cjs/appui-react/popup/ComponentPopup.d.ts.map +1 -0
- package/lib/cjs/appui-react/popup/ComponentPopup.js +35 -0
- package/lib/cjs/appui-react/popup/ComponentPopup.js.map +1 -0
- package/lib/cjs/appui-react/popup/HTMLElementPopup.d.ts +4 -1
- package/lib/cjs/appui-react/popup/HTMLElementPopup.d.ts.map +1 -1
- package/lib/cjs/appui-react/popup/HTMLElementPopup.js +1 -0
- package/lib/cjs/appui-react/popup/HTMLElementPopup.js.map +1 -1
- package/lib/cjs/appui-react/popup/InputEditorPopup.d.ts +4 -4
- package/lib/cjs/appui-react/popup/InputEditorPopup.d.ts.map +1 -1
- package/lib/cjs/appui-react/popup/InputEditorPopup.js.map +1 -1
- package/lib/cjs/appui-react/popup/KeyinPalettePanel.d.ts +1 -1
- package/lib/cjs/appui-react/popup/KeyinPalettePanel.d.ts.map +1 -1
- package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +19 -12
- package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
- package/lib/cjs/appui-react/popup/KeyinPalettePopup.d.ts +4 -2
- package/lib/cjs/appui-react/popup/KeyinPalettePopup.d.ts.map +1 -1
- package/lib/cjs/appui-react/popup/KeyinPalettePopup.js +9 -3
- package/lib/cjs/appui-react/popup/KeyinPalettePopup.js.map +1 -1
- package/lib/cjs/appui-react/popup/PopupManager.d.ts +45 -9
- package/lib/cjs/appui-react/popup/PopupManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/popup/PopupManager.js +85 -13
- package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
- package/lib/cjs/appui-react/popup/ToolbarPopup.d.ts +16 -6
- package/lib/cjs/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
- package/lib/cjs/appui-react/popup/ToolbarPopup.js +7 -2
- package/lib/cjs/appui-react/popup/ToolbarPopup.js.map +1 -1
- package/lib/cjs/appui-react/preview/PreviewFeatures.d.ts +3 -1
- package/lib/cjs/appui-react/preview/PreviewFeatures.d.ts.map +1 -1
- package/lib/cjs/appui-react/preview/PreviewFeatures.js +8 -7
- package/lib/cjs/appui-react/preview/PreviewFeatures.js.map +1 -1
- package/lib/cjs/appui-react/preview/activate-dropped-tab/activateDroppedTab.d.ts +6 -0
- package/lib/cjs/appui-react/preview/activate-dropped-tab/activateDroppedTab.d.ts.map +1 -0
- package/lib/cjs/appui-react/{layout/state → preview/activate-dropped-tab}/activateDroppedTab.js +5 -4
- package/lib/cjs/appui-react/preview/activate-dropped-tab/activateDroppedTab.js.map +1 -0
- package/lib/cjs/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.d.ts +6 -0
- package/lib/cjs/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.d.ts.map +1 -0
- package/lib/cjs/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.js +18 -0
- package/lib/cjs/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.js.map +1 -0
- package/lib/cjs/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.scss +10 -0
- package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.d.ts +7 -7
- package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.d.ts.map +1 -1
- package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.js +7 -7
- package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.js.map +1 -1
- package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.scss +6 -6
- package/lib/cjs/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.js +1 -1
- package/lib/cjs/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.js.map +1 -1
- package/lib/cjs/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.js +1 -1
- package/lib/cjs/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.js.map +1 -1
- package/lib/cjs/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.scss +4 -4
- package/lib/cjs/appui-react/preview/new-toolbars/ActionItem.d.ts +12 -0
- package/lib/cjs/appui-react/preview/new-toolbars/ActionItem.d.ts.map +1 -0
- package/lib/cjs/appui-react/preview/new-toolbars/ActionItem.js +25 -0
- package/lib/cjs/appui-react/preview/new-toolbars/ActionItem.js.map +1 -0
- package/lib/cjs/appui-react/preview/new-toolbars/Badge.d.ts +9 -0
- package/lib/cjs/appui-react/preview/new-toolbars/Badge.d.ts.map +1 -0
- package/lib/cjs/appui-react/{statusbar/Popup.js → preview/new-toolbars/Badge.js} +10 -10
- package/lib/cjs/appui-react/preview/new-toolbars/Badge.js.map +1 -0
- package/lib/cjs/appui-react/preview/new-toolbars/Badge.scss +13 -0
- package/lib/cjs/appui-react/preview/new-toolbars/CustomItem.d.ts +12 -0
- package/lib/cjs/appui-react/preview/new-toolbars/CustomItem.d.ts.map +1 -0
- package/lib/cjs/appui-react/preview/new-toolbars/CustomItem.js +36 -0
- package/lib/cjs/appui-react/preview/new-toolbars/CustomItem.js.map +1 -0
- package/lib/cjs/appui-react/preview/new-toolbars/ExpandIndicator.d.ts +5 -0
- package/lib/cjs/appui-react/preview/new-toolbars/ExpandIndicator.d.ts.map +1 -0
- package/lib/cjs/appui-react/preview/new-toolbars/ExpandIndicator.js +15 -0
- package/lib/cjs/appui-react/preview/new-toolbars/ExpandIndicator.js.map +1 -0
- package/lib/cjs/appui-react/preview/new-toolbars/ExpandIndicator.scss +17 -0
- package/lib/cjs/appui-react/preview/new-toolbars/GroupItem.d.ts +22 -0
- package/lib/cjs/appui-react/preview/new-toolbars/GroupItem.d.ts.map +1 -0
- package/lib/cjs/appui-react/preview/new-toolbars/GroupItem.js +79 -0
- package/lib/cjs/appui-react/preview/new-toolbars/GroupItem.js.map +1 -0
- package/lib/cjs/appui-react/preview/new-toolbars/Item.d.ts +21 -0
- package/lib/cjs/appui-react/preview/new-toolbars/Item.d.ts.map +1 -0
- package/lib/cjs/appui-react/preview/new-toolbars/Item.js +54 -0
- package/lib/cjs/appui-react/preview/new-toolbars/Item.js.map +1 -0
- package/lib/cjs/appui-react/preview/new-toolbars/OverflowButton.d.ts +17 -0
- package/lib/cjs/appui-react/preview/new-toolbars/OverflowButton.d.ts.map +1 -0
- package/lib/cjs/appui-react/preview/new-toolbars/OverflowButton.js +37 -0
- package/lib/cjs/appui-react/preview/new-toolbars/OverflowButton.js.map +1 -0
- package/lib/cjs/appui-react/preview/new-toolbars/ToolGroup.d.ts +18 -0
- package/lib/cjs/appui-react/preview/new-toolbars/ToolGroup.d.ts.map +1 -0
- package/lib/cjs/appui-react/preview/new-toolbars/ToolGroup.js +85 -0
- package/lib/cjs/appui-react/preview/new-toolbars/ToolGroup.js.map +1 -0
- package/lib/cjs/appui-react/preview/new-toolbars/ToolGroup.scss +43 -0
- package/lib/cjs/appui-react/preview/new-toolbars/Toolbar.d.ts +23 -0
- package/lib/cjs/appui-react/preview/new-toolbars/Toolbar.d.ts.map +1 -0
- package/lib/cjs/appui-react/preview/new-toolbars/Toolbar.js +40 -0
- package/lib/cjs/appui-react/preview/new-toolbars/Toolbar.js.map +1 -0
- package/lib/cjs/appui-react/preview/new-toolbars/useOverflow.d.ts +9 -0
- package/lib/cjs/appui-react/preview/new-toolbars/useOverflow.d.ts.map +1 -0
- package/lib/cjs/appui-react/preview/new-toolbars/useOverflow.js +93 -0
- package/lib/cjs/appui-react/preview/new-toolbars/useOverflow.js.map +1 -0
- package/lib/cjs/appui-react/preview/widget-action-dropdown/MoreButton.js +2 -1
- package/lib/cjs/appui-react/preview/widget-action-dropdown/MoreButton.js.map +1 -1
- package/lib/cjs/appui-react/redux/FrameworkState.d.ts +1 -1
- package/lib/cjs/appui-react/redux/SessionState.d.ts +15 -3
- package/lib/cjs/appui-react/redux/SessionState.d.ts.map +1 -1
- package/lib/cjs/appui-react/redux/SessionState.js +8 -1
- package/lib/cjs/appui-react/redux/SessionState.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.d.ts.map +1 -1
- package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js +6 -8
- package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
- package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.d.ts.map +1 -1
- package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.js +7 -7
- package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.js.map +1 -1
- package/lib/cjs/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
- package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js +40 -46
- package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
- package/lib/cjs/appui-react/shared/ConditionalValue.d.ts +17 -0
- package/lib/cjs/appui-react/shared/ConditionalValue.d.ts.map +1 -0
- package/lib/cjs/appui-react/shared/ConditionalValue.js +16 -0
- package/lib/cjs/appui-react/shared/ConditionalValue.js.map +1 -0
- package/lib/cjs/appui-react/shared/ItemDefBase.d.ts +2 -2
- package/lib/cjs/appui-react/shared/ItemDefBase.d.ts.map +1 -1
- package/lib/cjs/appui-react/shared/ItemDefBase.js.map +1 -1
- package/lib/cjs/appui-react/shared/ItemProps.d.ts +13 -2
- package/lib/cjs/appui-react/shared/ItemProps.d.ts.map +1 -1
- package/lib/cjs/appui-react/shared/ItemProps.js.map +1 -1
- package/lib/cjs/appui-react/shared/MenuItem.d.ts +21 -2
- package/lib/cjs/appui-react/shared/MenuItem.d.ts.map +1 -1
- package/lib/cjs/appui-react/shared/MenuItem.js.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelConfig.d.ts +23 -3
- package/lib/cjs/appui-react/stagepanels/StagePanelConfig.d.ts.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelConfig.js.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts +7 -4
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +42 -16
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/Indicator.js +2 -1
- package/lib/cjs/appui-react/statusbar/Indicator.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/Overflow.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusbar/Overflow.js +3 -3
- package/lib/cjs/appui-react/statusbar/Overflow.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBar.d.ts +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBar.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBar.js +6 -4
- package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarItem.d.ts +2 -2
- package/lib/cjs/appui-react/statusbar/StatusBarItem.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarItem.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/{Popup.d.ts → popup/Popup.d.ts} +2 -1
- package/lib/cjs/appui-react/statusbar/popup/Popup.d.ts.map +1 -0
- package/lib/cjs/appui-react/{layout/footer → statusbar/popup}/Popup.js +10 -11
- package/lib/cjs/appui-react/statusbar/popup/Popup.js.map +1 -0
- package/lib/cjs/appui-react/{layout/footer → statusbar/popup}/Popup.scss +1 -7
- package/lib/cjs/appui-react/statusfields/ActivityCenter.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/ActivityCenter.js +4 -4
- package/lib/cjs/appui-react/statusfields/ActivityCenter.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts +0 -1
- package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/MessageCenter.js +4 -4
- package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/SectionsField.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/SectionsField.js +7 -10
- package/lib/cjs/appui-react/statusfields/SectionsField.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/SelectionScope.js +4 -4
- package/lib/cjs/appui-react/statusfields/SelectionScope.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/SnapMode.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/SnapMode.js +14 -12
- package/lib/cjs/appui-react/statusfields/SnapMode.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/ViewAttributes.d.ts +0 -2
- package/lib/cjs/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/ViewAttributes.js +12 -20
- package/lib/cjs/appui-react/statusfields/ViewAttributes.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +2 -2
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
- package/lib/cjs/appui-react/theme/ThemeManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/theme/ThemeManager.js +3 -2
- package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
- package/lib/cjs/appui-react/timeline/SolarTimelineDataProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/timeline/SolarTimelineDataProvider.js +2 -3
- package/lib/cjs/appui-react/timeline/SolarTimelineDataProvider.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/Toolbar.d.ts +4 -3
- package/lib/cjs/appui-react/toolbar/Toolbar.d.ts.map +1 -1
- package/lib/cjs/appui-react/toolbar/Toolbar.js +28 -4
- package/lib/cjs/appui-react/toolbar/Toolbar.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarComposer.d.ts +4 -2
- package/lib/cjs/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarComposer.js +15 -12
- package/lib/cjs/appui-react/toolbar/ToolbarComposer.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarHelper.d.ts.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarHelper.js +5 -6
- package/lib/cjs/appui-react/toolbar/ToolbarHelper.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts +2 -2
- package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarItem.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js +4 -3
- 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 -11
- package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
- package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js +2 -3
- package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js +22 -20
- package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +10 -9
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +2 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +14 -8
- package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
- package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.d.ts +47 -38
- package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.d.ts.map +1 -1
- package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js +102 -143
- 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.js +3 -3
- package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
- package/lib/cjs/appui-react/utils/Placement.d.ts +35 -0
- package/lib/cjs/appui-react/utils/Placement.d.ts.map +1 -0
- package/lib/cjs/appui-react/utils/Placement.js +62 -0
- package/lib/cjs/appui-react/utils/Placement.js.map +1 -0
- package/lib/cjs/appui-react/utils/PropsHelper.js +4 -4
- package/lib/cjs/appui-react/utils/PropsHelper.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Content.d.ts.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Content.js +12 -11
- package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Frontstage.js +32 -24
- 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.d.ts +1 -1
- package/lib/cjs/appui-react/widget-panels/Tab.d.ts.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Tab.js +4 -6
- package/lib/cjs/appui-react/widget-panels/Tab.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts +1 -1
- package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
- package/lib/cjs/appui-react/widget-panels/ToolSettings.js +55 -68
- package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Toolbars.js +3 -2
- package/lib/cjs/appui-react/widget-panels/Toolbars.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Toolbars.scss +3 -1
- package/lib/cjs/appui-react/widgets/BackstageAppButton.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/BackstageAppButton.js +3 -1
- package/lib/cjs/appui-react/widgets/BackstageAppButton.js.map +1 -1
- package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +5 -3
- package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
- package/lib/cjs/appui-react/widgets/Widget.d.ts +2 -2
- package/lib/cjs/appui-react/widgets/Widget.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/Widget.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +8 -3
- package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.js +61 -18
- package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetHost.js +3 -2
- 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/cjs/appui-react.d.ts +3 -1
- package/lib/cjs/appui-react.d.ts.map +1 -1
- package/lib/cjs/appui-react.js +3 -3
- package/lib/cjs/appui-react.js.map +1 -1
- package/lib/esm/appui-react/UiFramework.d.ts +181 -10
- package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
- package/lib/esm/appui-react/UiFramework.js +301 -21
- package/lib/esm/appui-react/UiFramework.js.map +1 -1
- package/lib/esm/appui-react/UiFramework.json +345 -0
- package/lib/esm/appui-react/accudraw/AccuDrawDialog.d.ts.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawDialog.js +3 -2
- package/lib/esm/appui-react/accudraw/AccuDrawDialog.js.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js +50 -33
- package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawInputField.d.ts +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawInputField.d.ts.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawInputField.js +5 -7
- package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.d.ts +7 -6
- package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.d.ts.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js +9 -0
- package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
- package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
- package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js +10 -10
- package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageComposerItem.js +5 -4
- package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageItem.d.ts +2 -2
- package/lib/esm/appui-react/backstage/BackstageItem.d.ts.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageItem.js.map +1 -1
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +1 -1
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
- package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts +5 -0
- package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
- package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js +23 -16
- package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
- package/lib/esm/appui-react/configurableui/ConfigurableUiContent.scss +12 -10
- package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.d.ts +2 -0
- package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.d.ts.map +1 -1
- package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js +7 -1
- package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
- package/lib/esm/appui-react/configurableui/TimeTracker.js +2 -1
- package/lib/esm/appui-react/configurableui/TimeTracker.js.map +1 -1
- package/lib/esm/appui-react/content/ContentLayout.js +12 -9
- package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
- package/lib/esm/appui-react/content/DefaultViewOverlay.js +4 -3
- package/lib/esm/appui-react/content/DefaultViewOverlay.js.map +1 -1
- package/lib/esm/appui-react/content/DefaultViewOverlay.scss +14 -19
- package/lib/esm/appui-react/content/FloatingViewportContent.js +2 -1
- package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
- package/lib/esm/appui-react/content/IModelViewport.d.ts.map +1 -1
- package/lib/esm/appui-react/content/IModelViewport.js +8 -9
- package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
- package/lib/esm/appui-react/content/InternalContentLayoutManager.js +2 -1
- 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 +12 -10
- package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -1
- package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.d.ts +2 -2
- package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
- package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js +3 -2
- package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
- package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.d.ts +8 -4
- package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.d.ts.map +1 -1
- package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.js +102 -50
- package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
- package/lib/esm/appui-react/dialog/ContentDialog.js +6 -3
- package/lib/esm/appui-react/dialog/ContentDialog.js.map +1 -1
- package/lib/esm/appui-react/dialog/DialogManagerBase.js +3 -2
- package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
- package/lib/esm/appui-react/framework/FrameworkVisibility.d.ts +4 -2
- package/lib/esm/appui-react/framework/FrameworkVisibility.d.ts.map +1 -1
- package/lib/esm/appui-react/framework/FrameworkVisibility.js.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts +0 -5
- package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageDef.js +24 -79
- package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/esm/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js +1 -3
- package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
- package/lib/esm/appui-react/frontstage/ModalFrontstage.d.ts +0 -1
- package/lib/esm/appui-react/frontstage/ModalFrontstage.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/ModalFrontstage.js +1 -2
- package/lib/esm/appui-react/frontstage/ModalFrontstage.js.map +1 -1
- package/lib/esm/appui-react/frontstage/ModalSettingsStage.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +7 -6
- package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
- package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts +4 -4
- package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +5 -4
- package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
- package/lib/esm/appui-react/hooks/useActiveToolId.d.ts +6 -0
- package/lib/esm/appui-react/hooks/useActiveToolId.d.ts.map +1 -0
- package/lib/esm/appui-react/hooks/useActiveToolId.js +20 -0
- package/lib/esm/appui-react/hooks/useActiveToolId.js.map +1 -0
- package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js +11 -7
- package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
- package/lib/esm/appui-react/hooks/useConditionalValue.d.ts +15 -0
- package/lib/esm/appui-react/hooks/useConditionalValue.d.ts.map +1 -0
- package/lib/esm/appui-react/hooks/useConditionalValue.js +39 -0
- package/lib/esm/appui-react/hooks/useConditionalValue.js.map +1 -0
- package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js +11 -7
- package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
- package/lib/esm/appui-react/hooks/useSolarDataProvider.js +13 -8
- package/lib/esm/appui-react/hooks/useSolarDataProvider.js.map +1 -1
- package/lib/esm/appui-react/hooks/useTranslation.d.ts +7 -0
- package/lib/esm/appui-react/hooks/useTranslation.d.ts.map +1 -0
- package/lib/esm/appui-react/hooks/useTranslation.js +25 -0
- package/lib/esm/appui-react/hooks/useTranslation.js.map +1 -0
- package/lib/esm/appui-react/keyins/Keyins.d.ts +35 -0
- package/lib/esm/appui-react/keyins/Keyins.d.ts.map +1 -0
- package/lib/esm/appui-react/keyins/Keyins.js +50 -0
- package/lib/esm/appui-react/keyins/Keyins.js.map +1 -0
- package/lib/esm/appui-react/layers.scss +1 -1
- package/lib/esm/appui-react/layout/StandardLayout.d.ts.map +1 -1
- package/lib/esm/appui-react/layout/StandardLayout.js +10 -10
- package/lib/esm/appui-react/layout/StandardLayout.js.map +1 -1
- package/lib/esm/appui-react/layout/StandardLayout.scss +1 -1
- package/lib/esm/appui-react/layout/_widgetopacity.scss +3 -1
- package/lib/esm/appui-react/layout/base/DragManager.js +2 -1
- 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/base/usePointerCaptor.d.ts.map +1 -1
- package/lib/esm/appui-react/layout/base/usePointerCaptor.js +3 -0
- package/lib/esm/appui-react/layout/base/usePointerCaptor.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/NineZoneAction.d.ts +3 -2
- package/lib/esm/appui-react/layout/state/NineZoneAction.d.ts.map +1 -1
- package/lib/esm/appui-react/layout/state/NineZoneAction.js.map +1 -1
- package/lib/esm/appui-react/layout/state/NineZoneStateReducer.d.ts.map +1 -1
- package/lib/esm/appui-react/layout/state/NineZoneStateReducer.js +17 -14
- package/lib/esm/appui-react/layout/state/NineZoneStateReducer.js.map +1 -1
- package/lib/esm/appui-react/layout/state/PanelState.d.ts +2 -5
- package/lib/esm/appui-react/layout/state/PanelState.d.ts.map +1 -1
- package/lib/esm/appui-react/layout/state/PanelState.js.map +1 -1
- package/lib/esm/appui-react/layout/state/internal/NineZoneStateHelpers.js +2 -1
- package/lib/esm/appui-react/layout/state/internal/NineZoneStateHelpers.js.map +1 -1
- package/lib/esm/appui-react/layout/state/internal/PanelStateHelpers.d.ts +4 -3
- package/lib/esm/appui-react/layout/state/internal/PanelStateHelpers.d.ts.map +1 -1
- package/lib/esm/appui-react/layout/state/internal/PanelStateHelpers.js +10 -8
- package/lib/esm/appui-react/layout/state/internal/PanelStateHelpers.js.map +1 -1
- package/lib/esm/appui-react/layout/state/internal/TabStateHelpers.js +3 -2
- 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/widget/Content.d.ts.map +1 -1
- package/lib/esm/appui-react/layout/widget/Content.js +5 -5
- package/lib/esm/appui-react/layout/widget/Content.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 +6 -5
- package/lib/esm/appui-react/layout/widget/FloatingTab.js.map +1 -1
- package/lib/esm/appui-react/layout/widget/FloatingWidget.js +4 -2
- package/lib/esm/appui-react/layout/widget/FloatingWidget.js.map +1 -1
- package/lib/esm/appui-react/layout/widget/NavigationArea.scss +4 -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/Tab.js +4 -4
- package/lib/esm/appui-react/layout/widget/Tab.js.map +1 -1
- package/lib/esm/appui-react/layout/widget/ToolsArea.scss +2 -0
- package/lib/esm/appui-react/layout/widget/Widget.d.ts.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 +8 -5
- package/lib/esm/appui-react/layout/widget-panels/PanelSections.js.map +1 -1
- package/lib/esm/appui-react/layout/widget-panels/useAnimatePanel.d.ts +1 -1
- package/lib/esm/appui-react/layout/widget-panels/useAnimatePanel.js +2 -1
- package/lib/esm/appui-react/layout/widget-panels/useAnimatePanel.js.map +1 -1
- package/lib/esm/appui-react/messages/AppNotificationManager.js +1 -1
- package/lib/esm/appui-react/messages/AppNotificationManager.js.map +1 -1
- package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
- package/lib/esm/appui-react/messages/MessageManager.js +6 -6
- package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
- package/lib/esm/appui-react/messages/MessageRenderer.js +17 -11
- package/lib/esm/appui-react/messages/MessageRenderer.js.map +1 -1
- package/lib/esm/appui-react/navigationaids/SheetNavigationAid.d.ts.map +1 -1
- package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js +2 -6
- package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
- package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.d.ts.map +1 -1
- package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js +2 -2
- package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
- package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.d.ts +0 -1
- package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.d.ts.map +1 -1
- package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js +1 -2
- package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
- package/lib/esm/appui-react/pickers/ViewSelector.js +6 -5
- package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
- package/lib/esm/appui-react/popup/CardPopup.d.ts +21 -9
- package/lib/esm/appui-react/popup/CardPopup.d.ts.map +1 -1
- package/lib/esm/appui-react/popup/CardPopup.js +15 -7
- package/lib/esm/appui-react/popup/CardPopup.js.map +1 -1
- package/lib/esm/appui-react/popup/ComponentPopup.d.ts +18 -0
- package/lib/esm/appui-react/popup/ComponentPopup.d.ts.map +1 -0
- package/lib/esm/appui-react/popup/ComponentPopup.js +31 -0
- package/lib/esm/appui-react/popup/ComponentPopup.js.map +1 -0
- package/lib/esm/appui-react/popup/HTMLElementPopup.d.ts +4 -1
- package/lib/esm/appui-react/popup/HTMLElementPopup.d.ts.map +1 -1
- package/lib/esm/appui-react/popup/HTMLElementPopup.js +1 -0
- package/lib/esm/appui-react/popup/HTMLElementPopup.js.map +1 -1
- package/lib/esm/appui-react/popup/InputEditorPopup.d.ts +4 -4
- package/lib/esm/appui-react/popup/InputEditorPopup.d.ts.map +1 -1
- package/lib/esm/appui-react/popup/InputEditorPopup.js.map +1 -1
- package/lib/esm/appui-react/popup/KeyinPalettePanel.d.ts +1 -1
- package/lib/esm/appui-react/popup/KeyinPalettePanel.d.ts.map +1 -1
- package/lib/esm/appui-react/popup/KeyinPalettePanel.js +19 -12
- package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
- package/lib/esm/appui-react/popup/KeyinPalettePopup.d.ts +4 -2
- package/lib/esm/appui-react/popup/KeyinPalettePopup.d.ts.map +1 -1
- package/lib/esm/appui-react/popup/KeyinPalettePopup.js +9 -3
- package/lib/esm/appui-react/popup/KeyinPalettePopup.js.map +1 -1
- package/lib/esm/appui-react/popup/PopupManager.d.ts +45 -9
- package/lib/esm/appui-react/popup/PopupManager.d.ts.map +1 -1
- package/lib/esm/appui-react/popup/PopupManager.js +87 -14
- package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
- package/lib/esm/appui-react/popup/ToolbarPopup.d.ts +16 -6
- package/lib/esm/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
- package/lib/esm/appui-react/popup/ToolbarPopup.js +9 -3
- package/lib/esm/appui-react/popup/ToolbarPopup.js.map +1 -1
- package/lib/esm/appui-react/preview/PreviewFeatures.d.ts +3 -1
- package/lib/esm/appui-react/preview/PreviewFeatures.d.ts.map +1 -1
- package/lib/esm/appui-react/preview/PreviewFeatures.js +8 -7
- package/lib/esm/appui-react/preview/PreviewFeatures.js.map +1 -1
- package/lib/esm/appui-react/preview/activate-dropped-tab/activateDroppedTab.d.ts +6 -0
- package/lib/esm/appui-react/preview/activate-dropped-tab/activateDroppedTab.d.ts.map +1 -0
- package/lib/esm/appui-react/{layout/state → preview/activate-dropped-tab}/activateDroppedTab.js +5 -4
- package/lib/esm/appui-react/preview/activate-dropped-tab/activateDroppedTab.js.map +1 -0
- package/lib/esm/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.d.ts +6 -0
- package/lib/esm/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.d.ts.map +1 -0
- package/lib/esm/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.js +14 -0
- package/lib/esm/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.js.map +1 -0
- package/lib/esm/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.scss +10 -0
- package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.d.ts +7 -7
- package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.d.ts.map +1 -1
- package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.js +7 -7
- package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.js.map +1 -1
- package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.scss +6 -6
- package/lib/esm/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.js +1 -1
- package/lib/esm/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.js.map +1 -1
- package/lib/esm/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.js +1 -1
- package/lib/esm/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.js.map +1 -1
- package/lib/esm/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.scss +4 -4
- package/lib/esm/appui-react/preview/new-toolbars/ActionItem.d.ts +12 -0
- package/lib/esm/appui-react/preview/new-toolbars/ActionItem.d.ts.map +1 -0
- package/lib/esm/appui-react/preview/new-toolbars/ActionItem.js +22 -0
- package/lib/esm/appui-react/preview/new-toolbars/ActionItem.js.map +1 -0
- package/lib/esm/appui-react/preview/new-toolbars/Badge.d.ts +9 -0
- package/lib/esm/appui-react/preview/new-toolbars/Badge.d.ts.map +1 -0
- package/lib/esm/appui-react/{statusbar/Popup.js → preview/new-toolbars/Badge.js} +8 -8
- package/lib/esm/appui-react/preview/new-toolbars/Badge.js.map +1 -0
- package/lib/esm/appui-react/preview/new-toolbars/Badge.scss +13 -0
- package/lib/esm/appui-react/preview/new-toolbars/CustomItem.d.ts +12 -0
- package/lib/esm/appui-react/preview/new-toolbars/CustomItem.d.ts.map +1 -0
- package/lib/esm/appui-react/preview/new-toolbars/CustomItem.js +33 -0
- package/lib/esm/appui-react/preview/new-toolbars/CustomItem.js.map +1 -0
- package/lib/esm/appui-react/preview/new-toolbars/ExpandIndicator.d.ts +5 -0
- package/lib/esm/appui-react/preview/new-toolbars/ExpandIndicator.d.ts.map +1 -0
- package/lib/esm/appui-react/preview/new-toolbars/ExpandIndicator.js +11 -0
- package/lib/esm/appui-react/preview/new-toolbars/ExpandIndicator.js.map +1 -0
- package/lib/esm/appui-react/preview/new-toolbars/ExpandIndicator.scss +17 -0
- package/lib/esm/appui-react/preview/new-toolbars/GroupItem.d.ts +22 -0
- package/lib/esm/appui-react/preview/new-toolbars/GroupItem.d.ts.map +1 -0
- package/lib/esm/appui-react/preview/new-toolbars/GroupItem.js +74 -0
- package/lib/esm/appui-react/preview/new-toolbars/GroupItem.js.map +1 -0
- package/lib/esm/appui-react/preview/new-toolbars/Item.d.ts +21 -0
- package/lib/esm/appui-react/preview/new-toolbars/Item.d.ts.map +1 -0
- package/lib/esm/appui-react/preview/new-toolbars/Item.js +49 -0
- package/lib/esm/appui-react/preview/new-toolbars/Item.js.map +1 -0
- package/lib/esm/appui-react/preview/new-toolbars/OverflowButton.d.ts +17 -0
- package/lib/esm/appui-react/preview/new-toolbars/OverflowButton.d.ts.map +1 -0
- package/lib/esm/appui-react/preview/new-toolbars/OverflowButton.js +34 -0
- package/lib/esm/appui-react/preview/new-toolbars/OverflowButton.js.map +1 -0
- package/lib/esm/appui-react/preview/new-toolbars/ToolGroup.d.ts +18 -0
- package/lib/esm/appui-react/preview/new-toolbars/ToolGroup.d.ts.map +1 -0
- package/lib/esm/appui-react/preview/new-toolbars/ToolGroup.js +81 -0
- package/lib/esm/appui-react/preview/new-toolbars/ToolGroup.js.map +1 -0
- package/lib/esm/appui-react/preview/new-toolbars/ToolGroup.scss +43 -0
- package/lib/esm/appui-react/preview/new-toolbars/Toolbar.d.ts +23 -0
- package/lib/esm/appui-react/preview/new-toolbars/Toolbar.d.ts.map +1 -0
- package/lib/esm/appui-react/preview/new-toolbars/Toolbar.js +36 -0
- package/lib/esm/appui-react/preview/new-toolbars/Toolbar.js.map +1 -0
- package/lib/esm/appui-react/preview/new-toolbars/useOverflow.d.ts +9 -0
- package/lib/esm/appui-react/preview/new-toolbars/useOverflow.d.ts.map +1 -0
- package/lib/esm/appui-react/preview/new-toolbars/useOverflow.js +89 -0
- package/lib/esm/appui-react/preview/new-toolbars/useOverflow.js.map +1 -0
- package/lib/esm/appui-react/preview/widget-action-dropdown/MoreButton.js +2 -1
- package/lib/esm/appui-react/preview/widget-action-dropdown/MoreButton.js.map +1 -1
- package/lib/esm/appui-react/redux/FrameworkState.d.ts +1 -1
- package/lib/esm/appui-react/redux/SessionState.d.ts +15 -3
- package/lib/esm/appui-react/redux/SessionState.d.ts.map +1 -1
- package/lib/esm/appui-react/redux/SessionState.js +8 -1
- package/lib/esm/appui-react/redux/SessionState.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.d.ts.map +1 -1
- package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js +6 -8
- package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
- package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.d.ts.map +1 -1
- package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.js +7 -7
- package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.js.map +1 -1
- package/lib/esm/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
- package/lib/esm/appui-react/settings/ui/UiSettingsPage.js +40 -46
- package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
- package/lib/esm/appui-react/shared/ConditionalValue.d.ts +17 -0
- package/lib/esm/appui-react/shared/ConditionalValue.d.ts.map +1 -0
- package/lib/esm/appui-react/shared/ConditionalValue.js +13 -0
- package/lib/esm/appui-react/shared/ConditionalValue.js.map +1 -0
- package/lib/esm/appui-react/shared/ItemDefBase.d.ts +2 -2
- package/lib/esm/appui-react/shared/ItemDefBase.d.ts.map +1 -1
- package/lib/esm/appui-react/shared/ItemDefBase.js.map +1 -1
- package/lib/esm/appui-react/shared/ItemProps.d.ts +13 -2
- package/lib/esm/appui-react/shared/ItemProps.d.ts.map +1 -1
- package/lib/esm/appui-react/shared/ItemProps.js.map +1 -1
- package/lib/esm/appui-react/shared/MenuItem.d.ts +21 -2
- package/lib/esm/appui-react/shared/MenuItem.d.ts.map +1 -1
- package/lib/esm/appui-react/shared/MenuItem.js.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanelConfig.d.ts +23 -3
- package/lib/esm/appui-react/stagepanels/StagePanelConfig.d.ts.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanelConfig.js.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts +7 -4
- package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanelDef.js +42 -16
- package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
- package/lib/esm/appui-react/statusbar/Indicator.js +2 -1
- package/lib/esm/appui-react/statusbar/Indicator.js.map +1 -1
- package/lib/esm/appui-react/statusbar/Overflow.d.ts.map +1 -1
- package/lib/esm/appui-react/statusbar/Overflow.js +3 -3
- package/lib/esm/appui-react/statusbar/Overflow.js.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBar.d.ts +1 -1
- package/lib/esm/appui-react/statusbar/StatusBar.d.ts.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBar.js +6 -4
- package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarItem.d.ts +2 -2
- package/lib/esm/appui-react/statusbar/StatusBarItem.d.ts.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarItem.js.map +1 -1
- package/lib/esm/appui-react/statusbar/{Popup.d.ts → popup/Popup.d.ts} +2 -1
- package/lib/esm/appui-react/statusbar/popup/Popup.d.ts.map +1 -0
- package/lib/esm/appui-react/{layout/footer → statusbar/popup}/Popup.js +8 -9
- package/lib/esm/appui-react/statusbar/popup/Popup.js.map +1 -0
- package/lib/esm/appui-react/{layout/footer → statusbar/popup}/Popup.scss +1 -7
- package/lib/esm/appui-react/statusfields/ActivityCenter.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/ActivityCenter.js +4 -4
- package/lib/esm/appui-react/statusfields/ActivityCenter.js.map +1 -1
- package/lib/esm/appui-react/statusfields/MessageCenter.d.ts +0 -1
- package/lib/esm/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/MessageCenter.js +4 -4
- package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
- package/lib/esm/appui-react/statusfields/SectionsField.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/SectionsField.js +7 -10
- package/lib/esm/appui-react/statusfields/SectionsField.js.map +1 -1
- package/lib/esm/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/SelectionScope.js +4 -4
- package/lib/esm/appui-react/statusfields/SelectionScope.js.map +1 -1
- package/lib/esm/appui-react/statusfields/SnapMode.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/SnapMode.js +14 -12
- package/lib/esm/appui-react/statusfields/SnapMode.js.map +1 -1
- package/lib/esm/appui-react/statusfields/ViewAttributes.d.ts +0 -2
- package/lib/esm/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/ViewAttributes.js +12 -20
- package/lib/esm/appui-react/statusfields/ViewAttributes.js.map +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 -3
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
- package/lib/esm/appui-react/theme/ThemeManager.d.ts.map +1 -1
- package/lib/esm/appui-react/theme/ThemeManager.js +3 -2
- package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
- package/lib/esm/appui-react/timeline/SolarTimelineDataProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/timeline/SolarTimelineDataProvider.js +2 -3
- package/lib/esm/appui-react/timeline/SolarTimelineDataProvider.js.map +1 -1
- package/lib/esm/appui-react/toolbar/Toolbar.d.ts +4 -3
- package/lib/esm/appui-react/toolbar/Toolbar.d.ts.map +1 -1
- package/lib/esm/appui-react/toolbar/Toolbar.js +29 -5
- package/lib/esm/appui-react/toolbar/Toolbar.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarComposer.d.ts +4 -2
- package/lib/esm/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarComposer.js +15 -12
- package/lib/esm/appui-react/toolbar/ToolbarComposer.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarHelper.d.ts.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarHelper.js +5 -6
- package/lib/esm/appui-react/toolbar/ToolbarHelper.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts +2 -2
- package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarItem.js.map +1 -1
- package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js +4 -3
- 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 +18 -11
- package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
- package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js +2 -3
- package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js +22 -20
- package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +10 -9
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +2 -1
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +14 -8
- package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
- package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.d.ts +47 -38
- package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.d.ts.map +1 -1
- package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js +100 -141
- 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.js +3 -3
- package/lib/esm/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
- package/lib/esm/appui-react/utils/Placement.d.ts +35 -0
- package/lib/esm/appui-react/utils/Placement.d.ts.map +1 -0
- package/lib/esm/appui-react/utils/Placement.js +57 -0
- package/lib/esm/appui-react/utils/Placement.js.map +1 -0
- package/lib/esm/appui-react/utils/PropsHelper.js +4 -4
- package/lib/esm/appui-react/utils/PropsHelper.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Content.d.ts.map +1 -1
- package/lib/esm/appui-react/widget-panels/Content.js +12 -11
- package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
- package/lib/esm/appui-react/widget-panels/Frontstage.js +32 -24
- 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.d.ts +1 -1
- package/lib/esm/appui-react/widget-panels/Tab.d.ts.map +1 -1
- package/lib/esm/appui-react/widget-panels/Tab.js +3 -5
- package/lib/esm/appui-react/widget-panels/Tab.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts +1 -1
- package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
- package/lib/esm/appui-react/widget-panels/ToolSettings.js +53 -66
- package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Toolbars.js +3 -2
- package/lib/esm/appui-react/widget-panels/Toolbars.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Toolbars.scss +3 -1
- package/lib/esm/appui-react/widgets/BackstageAppButton.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/BackstageAppButton.js +3 -1
- package/lib/esm/appui-react/widgets/BackstageAppButton.js.map +1 -1
- package/lib/esm/appui-react/widgets/NavigationWidgetComposer.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +5 -3
- package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
- package/lib/esm/appui-react/widgets/Widget.d.ts +2 -2
- package/lib/esm/appui-react/widgets/Widget.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/Widget.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetDef.d.ts +8 -3
- package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetDef.js +59 -17
- package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetHost.js +3 -2
- 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/lib/esm/appui-react.d.ts +3 -1
- package/lib/esm/appui-react.d.ts.map +1 -1
- package/lib/esm/appui-react.js +3 -1
- package/lib/esm/appui-react.js.map +1 -1
- package/lib/public/locales/en/UiFramework.json +7 -1
- package/package.json +11 -10
- package/lib/cjs/appui-react/layout/footer/Popup.d.ts +0 -12
- package/lib/cjs/appui-react/layout/footer/Popup.d.ts.map +0 -1
- package/lib/cjs/appui-react/layout/footer/Popup.js.map +0 -1
- package/lib/cjs/appui-react/layout/state/activateDroppedTab.d.ts +0 -5
- package/lib/cjs/appui-react/layout/state/activateDroppedTab.d.ts.map +0 -1
- package/lib/cjs/appui-react/layout/state/activateDroppedTab.js.map +0 -1
- package/lib/cjs/appui-react/statusbar/Popup.d.ts.map +0 -1
- package/lib/cjs/appui-react/statusbar/Popup.js.map +0 -1
- package/lib/esm/appui-react/layout/footer/Popup.d.ts +0 -12
- package/lib/esm/appui-react/layout/footer/Popup.d.ts.map +0 -1
- package/lib/esm/appui-react/layout/footer/Popup.js.map +0 -1
- package/lib/esm/appui-react/layout/state/activateDroppedTab.d.ts +0 -5
- package/lib/esm/appui-react/layout/state/activateDroppedTab.d.ts.map +0 -1
- package/lib/esm/appui-react/layout/state/activateDroppedTab.js.map +0 -1
- package/lib/esm/appui-react/statusbar/Popup.d.ts.map +0 -1
- package/lib/esm/appui-react/statusbar/Popup.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FloatingWidget.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/widget/FloatingWidget.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 Widget\n */\n\nimport \"./FloatingWidget.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { assert } from \"@itwin/core-bentley\";\nimport {\n Point,\n Rectangle,\n useRefs,\n useResizeObserver,\n} from \"@itwin/core-react\";\nimport type { UseDragResizeHandleArgs } from \"../base/DragManager\";\nimport {\n DragManagerContext,\n useDragResizeHandle,\n useIsDraggedItem,\n} from \"../base/DragManager\";\nimport {\n FloatingWidgetNodeContext,\n MeasureContext,\n NineZoneDispatchContext,\n UiIsVisibleContext,\n} from \"../base/NineZone\";\nimport type { FloatingWidgetState } from \"../state/WidgetState\";\nimport { WidgetContentContainer } from \"./ContentContainer\";\nimport { WidgetTabBar } from \"./TabBar\";\nimport { Widget, WidgetIdContext, WidgetProvider } from \"./Widget\";\nimport type { PointerCaptorArgs } from \"../base/usePointerCaptor\";\nimport { usePointerCaptor } from \"../base/usePointerCaptor\";\nimport { WidgetTarget } from \"../target/WidgetTarget\";\nimport { WidgetOutline } from \"../outline/WidgetOutline\";\nimport { useLayout } from \"../base/LayoutStore\";\nimport { getWidgetState } from \"../state/internal/WidgetStateHelpers\";\nimport type { XAndY } from \"../state/internal/NineZoneStateHelpers\";\nimport {\n useIsMaximizedWidget,\n useMaximizedFloatingWidget,\n} from \"../../preview/enable-maximized-widget/useMaximizedWidget\";\n\ntype FloatingWidgetEdgeHandle = \"left\" | \"right\" | \"top\" | \"bottom\";\ntype FloatingWidgetCornerHandle =\n | \"topLeft\"\n | \"topRight\"\n | \"bottomLeft\"\n | \"bottomRight\";\n\n/** @internal */\nexport type FloatingWidgetResizeHandle =\n | FloatingWidgetEdgeHandle\n | FloatingWidgetCornerHandle;\n\n/** @internal */\nexport interface FloatingWidgetProviderProps {\n id: FloatingWidgetState[\"id\"];\n}\n\n/** @internal */\nexport function FloatingWidgetProvider(props: FloatingWidgetProviderProps) {\n const floatingWidget = React.useContext(FloatingWidgetNodeContext);\n return <WidgetProvider id={props.id}>{floatingWidget}</WidgetProvider>;\n}\n\n/** @internal */\nexport interface FloatingWidgetProps {\n onMouseEnter?: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void;\n onMouseLeave?: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void;\n}\n\n/** @internal */\nexport function FloatingWidget(props: FloatingWidgetProps) {\n const uiIsVisible = React.useContext(UiIsVisibleContext);\n const id = useFloatingWidgetId();\n assert(!!id);\n const {\n autoSized,\n bounds,\n hideWithUiWhenFloating,\n isToolSettingsTab,\n minimized,\n resizable,\n } = useFloatingWidgetState();\n const hideFloatingWidget = !uiIsVisible && hideWithUiWhenFloating;\n\n const item = React.useMemo(\n () => ({\n id,\n type: \"widget\" as const,\n }),\n [id]\n );\n const dragged = useIsDraggedItem(item);\n const ref = useHandleAutoSize(dragged);\n const maximizedWidget = useMaximizedFloatingWidget();\n\n const className = classnames(\n \"nz-widget-floatingWidget\",\n dragged && \"nz-dragged\",\n isToolSettingsTab && \"nz-floating-toolSettings\",\n minimized && \"nz-minimized\",\n hideFloatingWidget && \"nz-hidden\",\n maximizedWidget.classNames\n );\n const style = React.useMemo(() => {\n const boundsRect = Rectangle.create(bounds);\n const { height, width } = boundsRect.getSize();\n const position = boundsRect.topLeft();\n return {\n transform: `translate(${position.x}px, ${position.y}px)`,\n height: minimized || autoSized ? undefined : height,\n width: autoSized ? undefined : width,\n maxHeight: autoSized ? \"60%\" : undefined,\n maxWidth: autoSized ? \"60%\" : undefined,\n };\n }, [autoSized, bounds, minimized]);\n\n const content = React.useMemo(\n () => (\n <WidgetContentContainer>\n <WidgetTarget />\n <WidgetOutline />\n </WidgetContentContainer>\n ),\n []\n );\n const handles = React.useMemo(\n () =>\n resizable && (\n <>\n <FloatingWidgetHandle handle=\"left\" />\n <FloatingWidgetHandle handle=\"top\" />\n <FloatingWidgetHandle handle=\"right\" />\n <FloatingWidgetHandle handle=\"bottom\" />\n <FloatingWidgetHandle handle=\"topLeft\" />\n <FloatingWidgetHandle handle=\"topRight\" />\n <FloatingWidgetHandle handle=\"bottomLeft\" />\n <FloatingWidgetHandle handle=\"bottomRight\" />\n </>\n ),\n [resizable]\n );\n return (\n <Widget\n className={className}\n widgetId={id}\n style={{\n ...style,\n ...maximizedWidget.style,\n }}\n ref={ref}\n onMouseEnter={props.onMouseEnter}\n onMouseLeave={props.onMouseLeave}\n >\n <WidgetTabBar separator={!minimized} />\n {content}\n {handles}\n </Widget>\n );\n}\n\nfunction useFloatingWidgetState() {\n const id = useFloatingWidgetId();\n assert(!!id);\n return useLayout((state) => {\n const widget = getWidgetState(state, id);\n const floatingWidget = state.floatingWidgets.byId[id];\n const tabs = widget.tabs;\n const activeTabId = widget.activeTabId;\n const activeTab = state.tabs[activeTabId];\n const userSized = floatingWidget.userSized;\n const singleTab = 1 === tabs.length;\n\n const toolSettingsTabId = state.toolSettings?.tabId;\n const isToolSettingsTab = widget.tabs[0] === toolSettingsTabId;\n const resizable = !!floatingWidget.resizable && !isToolSettingsTab;\n const autoSized = singleTab && !userSized;\n return {\n autoSized,\n bounds: floatingWidget.bounds,\n hideWithUiWhenFloating: activeTab.hideWithUiWhenFloating,\n isToolSettingsTab,\n minimized: widget.minimized,\n resizable,\n };\n }, true);\n}\n\n// Re-adjust bounds so that widget is behind pointer when auto-sized.\n// istanbul ignore next\nfunction useHandleAutoSize(dragged: boolean) {\n const dragManager = React.useContext(DragManagerContext);\n const dispatch = React.useContext(NineZoneDispatchContext);\n const measureNz = React.useContext(MeasureContext);\n const id = useFloatingWidgetId();\n assert(!!id);\n const userSized = useLayout(\n (state) => state.floatingWidgets.byId[id].userSized\n );\n const maximizedWidget = useIsMaximizedWidget();\n\n const updatePosition = React.useRef(true);\n const ref = React.useRef<HTMLDivElement>(null);\n\n React.useLayoutEffect(() => {\n if (!updatePosition.current) return;\n if (!dragged) return;\n if (maximizedWidget) return;\n if (!dragManager.draggedItem) return;\n if (!ref.current) return;\n\n let bounds = Rectangle.create(ref.current.getBoundingClientRect());\n const nzBounds = measureNz();\n const pointerPosition = dragManager.draggedItem.info.pointerPosition;\n\n if (bounds.containsPoint(pointerPosition)) return;\n\n // Pointer is outside of tab area. Need to re-adjust widget bounds so that tab is behind pointer\n if (pointerPosition.x > bounds.right) {\n const offset = pointerPosition.x - bounds.right + 20;\n bounds = bounds.offsetX(offset);\n }\n\n // Adjust bounds to be relative to 9z origin\n bounds = bounds.offset({ x: -nzBounds.left, y: -nzBounds.top });\n\n dispatch({\n type: \"FLOATING_WIDGET_SET_BOUNDS\",\n id,\n bounds: bounds.toProps(),\n });\n dispatch({\n type: \"FLOATING_WIDGET_SET_USER_SIZED\",\n id,\n userSized: true,\n });\n updatePosition.current = false;\n }, [dragged, dragManager, dispatch, id, measureNz, maximizedWidget]);\n const handleResize = React.useCallback(() => {\n if (!ref.current) return;\n if (dragged) return;\n if (maximizedWidget) return;\n if (userSized) return;\n\n let bounds = Rectangle.create(ref.current.getBoundingClientRect());\n\n // Adjust bounds to be relative to 9z origin\n const nzBounds = measureNz();\n bounds = bounds.offset({ x: -nzBounds.left, y: -nzBounds.top });\n\n dispatch({\n type: \"FLOATING_WIDGET_SET_BOUNDS\",\n id,\n bounds,\n });\n }, [dispatch, dragged, id, userSized, measureNz, maximizedWidget]);\n const roRef = useResizeObserver(handleResize);\n const refs = useRefs(ref, roRef);\n return refs;\n}\n\ninterface FloatingWidgetHandleProps {\n handle: FloatingWidgetResizeHandle;\n}\n\nfunction FloatingWidgetHandle(props: FloatingWidgetHandleProps) {\n const dispatch = React.useContext(NineZoneDispatchContext);\n const id = useFloatingWidgetId();\n const { handle } = props;\n const relativePosition = React.useRef<Point>(new Point());\n assert(id !== undefined);\n const onDrag = React.useCallback<\n NonNullable<UseDragResizeHandleArgs[\"onDrag\"]>\n >(\n (pointerPosition) => {\n assert(!!ref.current);\n const bounds = Rectangle.create(ref.current.getBoundingClientRect());\n const newRelativePosition = bounds.topLeft().getOffsetTo(pointerPosition);\n const offset = relativePosition.current.getOffsetTo(newRelativePosition);\n const resizeBy = getResizeBy(handle, offset);\n dispatch({\n type: \"FLOATING_WIDGET_RESIZE\",\n id,\n resizeBy,\n });\n },\n [dispatch, handle, id]\n );\n const handleDragStart = useDragResizeHandle({\n handle,\n widgetId: id,\n onDrag,\n });\n const handlePointerDown = React.useCallback(\n (args: PointerCaptorArgs) => {\n assert(!!ref.current);\n const bounds = Rectangle.create(ref.current.getBoundingClientRect());\n const initialPointerPosition = new Point(args.clientX, args.clientY);\n relativePosition.current = bounds\n .topLeft()\n .getOffsetTo(initialPointerPosition);\n handleDragStart({\n initialPointerPosition,\n pointerPosition: initialPointerPosition,\n });\n dispatch({\n type: \"FLOATING_WIDGET_BRING_TO_FRONT\",\n id,\n });\n },\n [dispatch, handleDragStart, id]\n );\n const pointerCaptorRef = usePointerCaptor(handlePointerDown);\n const ref = React.useRef<HTMLDivElement>(null);\n const refs = useRefs(ref, pointerCaptorRef);\n const isMaximized = useIsMaximizedWidget();\n const className = classnames(\n \"nz-widget-floatingWidget_handle\",\n `nz-${handle}`\n );\n if (isMaximized) return null;\n return <div className={className} ref={refs} />;\n}\n\n/** @internal */\nexport function getResizeBy(handle: FloatingWidgetResizeHandle, offset: XAndY) {\n switch (handle) {\n case \"left\":\n return new Rectangle(-offset.x);\n case \"top\":\n return new Rectangle(0, -offset.y);\n case \"right\":\n return new Rectangle(0, 0, offset.x);\n case \"bottom\":\n return new Rectangle(0, 0, 0, offset.y);\n case \"topLeft\":\n return new Rectangle(-offset.x, -offset.y);\n case \"topRight\":\n return new Rectangle(0, -offset.y, offset.x);\n case \"bottomLeft\":\n return new Rectangle(-offset.x, 0, 0, offset.y);\n case \"bottomRight\":\n return new Rectangle(0, 0, offset.x, offset.y);\n }\n}\n\n/** @internal */\nexport function useFloatingWidgetId(): FloatingWidgetState[\"id\"] | undefined {\n const widgetId = React.useContext(WidgetIdContext);\n return useLayout((state) => {\n if (!widgetId) return undefined;\n const floatingWidget = state.floatingWidgets.byId[widgetId];\n if (!floatingWidget) return undefined;\n\n return widgetId;\n });\n}\n\n/** @internal */\nexport function useWidgetAllowedToDock(): boolean {\n const id = useFloatingWidgetId();\n return useLayout((state) => {\n if (id) {\n const widget = getWidgetState(state, id);\n const activeTab = state.tabs[widget.activeTabId];\n if (activeTab.allowedPanelTargets?.length === 0) {\n return false;\n }\n }\n return true;\n });\n}\n"]}
|
|
1
|
+
{"version":3,"file":"FloatingWidget.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/widget/FloatingWidget.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 Widget\n */\n\nimport \"./FloatingWidget.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { assert } from \"@itwin/core-bentley\";\nimport {\n Point,\n Rectangle,\n useRefs,\n useResizeObserver,\n} from \"@itwin/core-react\";\nimport type { UseDragResizeHandleArgs } from \"../base/DragManager\";\nimport {\n DragManagerContext,\n useDragResizeHandle,\n useIsDraggedItem,\n} from \"../base/DragManager\";\nimport {\n FloatingWidgetNodeContext,\n MeasureContext,\n NineZoneDispatchContext,\n UiIsVisibleContext,\n} from \"../base/NineZone\";\nimport type { FloatingWidgetState } from \"../state/WidgetState\";\nimport { WidgetContentContainer } from \"./ContentContainer\";\nimport { WidgetTabBar } from \"./TabBar\";\nimport { Widget, WidgetIdContext, WidgetProvider } from \"./Widget\";\nimport type { PointerCaptorArgs } from \"../base/usePointerCaptor\";\nimport { usePointerCaptor } from \"../base/usePointerCaptor\";\nimport { WidgetTarget } from \"../target/WidgetTarget\";\nimport { WidgetOutline } from \"../outline/WidgetOutline\";\nimport { useLayout } from \"../base/LayoutStore\";\nimport { getWidgetState } from \"../state/internal/WidgetStateHelpers\";\nimport type { XAndY } from \"../state/internal/NineZoneStateHelpers\";\nimport {\n useIsMaximizedWidget,\n useMaximizedFloatingWidget,\n} from \"../../preview/enable-maximized-widget/useMaximizedWidget\";\n\ntype FloatingWidgetEdgeHandle = \"left\" | \"right\" | \"top\" | \"bottom\";\ntype FloatingWidgetCornerHandle =\n | \"topLeft\"\n | \"topRight\"\n | \"bottomLeft\"\n | \"bottomRight\";\n\n/** @internal */\nexport type FloatingWidgetResizeHandle =\n | FloatingWidgetEdgeHandle\n | FloatingWidgetCornerHandle;\n\n/** @internal */\nexport interface FloatingWidgetProviderProps {\n id: FloatingWidgetState[\"id\"];\n}\n\n/** @internal */\nexport function FloatingWidgetProvider(props: FloatingWidgetProviderProps) {\n const floatingWidget = React.useContext(FloatingWidgetNodeContext);\n return <WidgetProvider id={props.id}>{floatingWidget}</WidgetProvider>;\n}\n\n/** @internal */\nexport interface FloatingWidgetProps {\n onMouseEnter?: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void;\n onMouseLeave?: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void;\n}\n\n/** @internal */\nexport function FloatingWidget(props: FloatingWidgetProps) {\n const uiIsVisible = React.useContext(UiIsVisibleContext);\n const id = useFloatingWidgetId();\n assert(!!id);\n const {\n autoSized,\n bounds,\n hideWithUiWhenFloating,\n isToolSettingsTab,\n minimized,\n resizable,\n } = useFloatingWidgetState();\n const hideFloatingWidget = !uiIsVisible && hideWithUiWhenFloating;\n\n const item = React.useMemo(\n () => ({\n id,\n type: \"widget\" as const,\n }),\n [id]\n );\n const dragged = useIsDraggedItem(item);\n const ref = useHandleAutoSize(dragged);\n const maximizedWidget = useMaximizedFloatingWidget();\n\n const className = classnames(\n \"nz-widget-floatingWidget\",\n dragged && \"nz-dragged\",\n isToolSettingsTab && \"nz-floating-toolSettings\",\n minimized && \"nz-minimized\",\n hideFloatingWidget && \"nz-hidden\",\n maximizedWidget.classNames\n );\n const style = React.useMemo(() => {\n const boundsRect = Rectangle.create(bounds);\n const { height, width } = boundsRect.getSize();\n const position = boundsRect.topLeft();\n return {\n transform: `translate(${position.x}px, ${position.y}px)`,\n height: minimized || autoSized ? undefined : height,\n width: autoSized ? undefined : width,\n maxHeight: autoSized ? \"60%\" : undefined,\n maxWidth: autoSized ? \"60%\" : undefined,\n };\n }, [autoSized, bounds, minimized]);\n\n const content = React.useMemo(\n () => (\n <WidgetContentContainer>\n <WidgetTarget />\n <WidgetOutline />\n </WidgetContentContainer>\n ),\n []\n );\n const handles = React.useMemo(\n () =>\n resizable && (\n <>\n <FloatingWidgetHandle handle=\"left\" />\n <FloatingWidgetHandle handle=\"top\" />\n <FloatingWidgetHandle handle=\"right\" />\n <FloatingWidgetHandle handle=\"bottom\" />\n <FloatingWidgetHandle handle=\"topLeft\" />\n <FloatingWidgetHandle handle=\"topRight\" />\n <FloatingWidgetHandle handle=\"bottomLeft\" />\n <FloatingWidgetHandle handle=\"bottomRight\" />\n </>\n ),\n [resizable]\n );\n return (\n <Widget\n className={className}\n widgetId={id}\n style={{\n ...style,\n ...maximizedWidget.style,\n }}\n ref={ref}\n onMouseEnter={props.onMouseEnter}\n onMouseLeave={props.onMouseLeave}\n >\n <WidgetTabBar separator={!minimized} />\n {content}\n {handles}\n </Widget>\n );\n}\n\nfunction useFloatingWidgetState() {\n const id = useFloatingWidgetId();\n assert(!!id);\n return useLayout((state) => {\n const widget = getWidgetState(state, id);\n const floatingWidget = state.floatingWidgets.byId[id];\n const tabs = widget.tabs;\n const activeTabId = widget.activeTabId;\n const activeTab = state.tabs[activeTabId];\n const userSized = floatingWidget.userSized;\n const singleTab = 1 === tabs.length;\n\n const toolSettingsTabId = state.toolSettings?.tabId;\n const isToolSettingsTab = widget.tabs[0] === toolSettingsTabId;\n const resizable = !!floatingWidget.resizable && !isToolSettingsTab;\n const autoSized = singleTab && !userSized;\n return {\n autoSized,\n bounds: floatingWidget.bounds,\n hideWithUiWhenFloating: activeTab.hideWithUiWhenFloating,\n isToolSettingsTab,\n minimized: widget.minimized,\n resizable,\n };\n }, true);\n}\n\n// Re-adjust bounds so that widget is behind pointer when auto-sized.\n// istanbul ignore next\nfunction useHandleAutoSize(dragged: boolean) {\n const dragManager = React.useContext(DragManagerContext);\n const dispatch = React.useContext(NineZoneDispatchContext);\n const measureNz = React.useContext(MeasureContext);\n const id = useFloatingWidgetId();\n assert(!!id);\n const userSized = useLayout(\n (state) => state.floatingWidgets.byId[id].userSized\n );\n const maximizedWidget = useIsMaximizedWidget();\n\n const updatePosition = React.useRef(true);\n const ref = React.useRef<HTMLDivElement>(null);\n\n React.useLayoutEffect(() => {\n if (!updatePosition.current) return;\n if (!dragged) return;\n if (maximizedWidget) return;\n if (!dragManager.draggedItem) return;\n if (!ref.current) return;\n\n let bounds = Rectangle.create(ref.current.getBoundingClientRect());\n const nzBounds = measureNz();\n const pointerPosition = dragManager.draggedItem.info.pointerPosition;\n\n if (bounds.containsPoint(pointerPosition)) return;\n\n // Pointer is outside of tab area. Need to re-adjust widget bounds so that tab is behind pointer\n if (pointerPosition.x > bounds.right) {\n const offset = pointerPosition.x - bounds.right + 20;\n bounds = bounds.offsetX(offset);\n }\n\n // Adjust bounds to be relative to 9z origin\n bounds = bounds.offset({ x: -nzBounds.left, y: -nzBounds.top });\n\n dispatch({\n type: \"FLOATING_WIDGET_SET_BOUNDS\",\n id,\n bounds: bounds.toProps(),\n });\n dispatch({\n type: \"FLOATING_WIDGET_SET_USER_SIZED\",\n id,\n userSized: true,\n });\n updatePosition.current = false;\n }, [dragged, dragManager, dispatch, id, measureNz, maximizedWidget]);\n const handleResize = React.useCallback(() => {\n if (!ref.current) return;\n if (dragged) return;\n if (maximizedWidget) return;\n if (userSized) return;\n\n let bounds = Rectangle.create(ref.current.getBoundingClientRect());\n\n // Adjust bounds to be relative to 9z origin\n const nzBounds = measureNz();\n bounds = bounds.offset({ x: -nzBounds.left, y: -nzBounds.top });\n\n dispatch({\n type: \"FLOATING_WIDGET_SET_BOUNDS\",\n id,\n bounds,\n });\n }, [dispatch, dragged, id, userSized, measureNz, maximizedWidget]);\n const roRef = useResizeObserver(handleResize);\n const refs = useRefs(ref, roRef);\n return refs;\n}\n\ninterface FloatingWidgetHandleProps {\n handle: FloatingWidgetResizeHandle;\n}\n\nfunction FloatingWidgetHandle(props: FloatingWidgetHandleProps) {\n const dispatch = React.useContext(NineZoneDispatchContext);\n const id = useFloatingWidgetId();\n const { handle } = props;\n const relativePosition = React.useRef<Point>(new Point());\n assert(id !== undefined);\n const onDrag = React.useCallback<\n NonNullable<UseDragResizeHandleArgs[\"onDrag\"]>\n >(\n (pointerPosition) => {\n assert(!!ref.current);\n const bounds = Rectangle.create(ref.current.getBoundingClientRect());\n const newRelativePosition = bounds.topLeft().getOffsetTo(pointerPosition);\n const offset = relativePosition.current.getOffsetTo(newRelativePosition);\n const resizeBy = getResizeBy(handle, offset);\n dispatch({\n type: \"FLOATING_WIDGET_RESIZE\",\n id,\n resizeBy,\n });\n },\n [dispatch, handle, id]\n );\n const handleDragStart = useDragResizeHandle({\n handle,\n widgetId: id,\n onDrag,\n });\n const handlePointerDown = React.useCallback(\n (args: PointerCaptorArgs) => {\n assert(!!ref.current);\n const bounds = Rectangle.create(ref.current.getBoundingClientRect());\n const initialPointerPosition = new Point(args.clientX, args.clientY);\n relativePosition.current = bounds\n .topLeft()\n .getOffsetTo(initialPointerPosition);\n handleDragStart({\n initialPointerPosition,\n pointerPosition: initialPointerPosition,\n });\n dispatch({\n type: \"FLOATING_WIDGET_BRING_TO_FRONT\",\n id,\n });\n },\n [dispatch, handleDragStart, id]\n );\n const pointerCaptorRef = usePointerCaptor(handlePointerDown);\n const ref = React.useRef<HTMLDivElement>(null);\n const refs = useRefs(ref, pointerCaptorRef);\n const isMaximized = useIsMaximizedWidget();\n const className = classnames(\n \"nz-widget-floatingWidget_handle\",\n `nz-${handle}`\n );\n if (isMaximized) return null;\n return <div className={className} ref={refs} />;\n}\n\n/** @internal */\nexport function getResizeBy(handle: FloatingWidgetResizeHandle, offset: XAndY) {\n switch (handle) {\n case \"left\":\n return new Rectangle(-offset.x);\n case \"top\":\n return new Rectangle(0, -offset.y);\n case \"right\":\n return new Rectangle(0, 0, offset.x);\n case \"bottom\":\n return new Rectangle(0, 0, 0, offset.y);\n case \"topLeft\":\n return new Rectangle(-offset.x, -offset.y);\n case \"topRight\":\n return new Rectangle(0, -offset.y, offset.x);\n case \"bottomLeft\":\n return new Rectangle(-offset.x, 0, 0, offset.y);\n case \"bottomRight\":\n return new Rectangle(0, 0, offset.x, offset.y);\n }\n}\n\n/** @internal */\nexport function useFloatingWidgetId(): FloatingWidgetState[\"id\"] | undefined {\n const widgetId = React.useContext(WidgetIdContext);\n return useLayout((state) => {\n if (!widgetId) return undefined;\n const floatingWidget = state.floatingWidgets.byId[widgetId];\n if (!floatingWidget) return undefined;\n\n return widgetId;\n });\n}\n\n/** @internal */\nexport function useWidgetAllowedToDock(): boolean {\n const id = useFloatingWidgetId();\n return useLayout((state) => {\n if (id) {\n const widget = getWidgetState(state, id);\n const activeTab = state.tabs[widget.activeTabId];\n if (activeTab.allowedPanelTargets?.length === 0) {\n return false;\n }\n }\n return true;\n });\n}\n"]}
|
|
@@ -109,7 +109,7 @@ export function useBorders(widgetId) {
|
|
|
109
109
|
if (isVertical && isLast) {
|
|
110
110
|
bottom = false;
|
|
111
111
|
}
|
|
112
|
-
if (isTopMostPanelBorder && toolSettings
|
|
112
|
+
if (isTopMostPanelBorder && (toolSettings === null || toolSettings === void 0 ? void 0 : toolSettings.type) === "docked") {
|
|
113
113
|
top = false;
|
|
114
114
|
}
|
|
115
115
|
if (isVertical && !isFirst) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PanelWidget.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/widget/PanelWidget.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 Widget\n */\n\nimport \"./PanelWidget.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { assert } from \"@itwin/core-bentley\";\nimport type { WidgetState } from \"../state/WidgetState\";\nimport type { PanelSide } from \"../widget-panels/PanelTypes\";\nimport {\n isHorizontalPanelSide,\n PanelSideContext,\n} from \"../widget-panels/Panel\";\nimport { WidgetContentContainer } from \"./ContentContainer\";\nimport { WidgetTabBar } from \"./TabBar\";\nimport { Widget, WidgetProvider } from \"./Widget\";\nimport { WidgetOutline } from \"../outline/WidgetOutline\";\nimport { WidgetTarget } from \"../target/WidgetTarget\";\nimport { isHorizontalPanelState } from \"../state/PanelState\";\nimport { useLayout } from \"../base/LayoutStore\";\nimport { getWidgetState } from \"../state/internal/WidgetStateHelpers\";\nimport type { NineZoneState } from \"../state/NineZoneState\";\n\n/** @internal */\nexport interface PanelWidgetProps {\n widgetId: WidgetState[\"id\"];\n}\n\n/** @internal */\nexport const PanelWidget = React.forwardRef<HTMLDivElement, PanelWidgetProps>(\n function PanelWidget({ widgetId }, ref) {\n const side = React.useContext(PanelSideContext);\n assert(!!side);\n const widgetsLength = useLayout((state) => {\n const panel = state.panels[side];\n return panel.widgets.length;\n });\n const minimized = useLayout((state) => {\n const widget = getWidgetState(state, widgetId);\n return widget.minimized;\n });\n const horizontal = isHorizontalPanelSide(side);\n const mode = useMode(widgetId);\n const borders = useBorders(widgetId);\n const showTarget = widgetsLength !== 1;\n const className = classnames(\n \"nz-widget-panelWidget\",\n horizontal && \"nz-horizontal\",\n `nz-${mode}`,\n borders\n );\n const content = React.useMemo(\n () => (\n <WidgetContentContainer>\n {showTarget && <WidgetTarget />}\n <WidgetOutline />\n </WidgetContentContainer>\n ),\n [showTarget]\n );\n return (\n <WidgetProvider id={widgetId}>\n <Widget className={className} ref={ref}>\n <WidgetTabBar\n separator={isHorizontalPanelSide(side) ? true : !minimized}\n />\n {content}\n </Widget>\n </WidgetProvider>\n );\n }\n);\n\nfunction findFillWidget(state: NineZoneState, side: PanelSide) {\n const panelWidgets = state.panels[side].widgets;\n return panelWidgets.find((widgetId) => {\n const widget = getWidgetState(state, widgetId);\n if (widget.minimized) return false;\n const tabId = widget.activeTabId;\n const tab = state.tabs[tabId];\n if (!tab.preferredPanelWidgetSize) return true;\n return false;\n });\n}\n\n/** @internal */\nexport function useMode(widgetId: string): \"fit\" | \"fill\" | \"minimized\" {\n const side = React.useContext(PanelSideContext);\n assert(!!side);\n return useLayout((state) => {\n const fillWidget = findFillWidget(state, side);\n\n // Force `fill` for last panel widget that is not minimized.\n if (!fillWidget) {\n const panel = state.panels[side];\n for (let i = panel.widgets.length - 1; i >= 0; i--) {\n const wId = panel.widgets[i];\n const w = getWidgetState(state, wId);\n if (w.minimized) continue;\n if (wId === widgetId) return \"fill\";\n break;\n }\n }\n\n const widget = getWidgetState(state, widgetId);\n if (widget.minimized) return \"minimized\";\n const tabId = widget.activeTabId;\n const tab = state.tabs[tabId];\n return tab.preferredPanelWidgetSize ? \"fit\" : \"fill\";\n });\n}\n\n/** @internal */\nexport function useBorders(widgetId: WidgetState[\"id\"]) {\n const side = React.useContext(PanelSideContext);\n assert(!!side);\n return useLayout((state) => {\n const panels = state.panels;\n const panel = panels[side];\n const toolSettings = state.toolSettings;\n const isHorizontal = isHorizontalPanelSide(panel.side);\n const isVertical = !isHorizontal;\n const isFirst = panel.widgets[0] === widgetId;\n const isLast = panel.widgets[panel.widgets.length - 1] === widgetId;\n const isTopMostPanelBorder =\n panel.side === \"top\" ||\n (isVertical && !panels.top.span) ||\n (isVertical && panels.top.span && panels.top.collapsed) ||\n (isVertical && panels.top.widgets.length === 0);\n\n let top = true;\n let bottom = true;\n let left = true;\n let right = true;\n if (panel.side === \"bottom\") {\n bottom = false;\n }\n if (isVertical && isLast) {\n bottom = false;\n }\n if (isTopMostPanelBorder && toolSettings?.type === \"docked\") {\n top = false;\n }\n if (isVertical && !isFirst) {\n top = false;\n }\n if (\n isVertical &&\n panels.top.span &&\n !panels.top.collapsed &&\n panels.top.widgets.length > 0\n ) {\n top = false;\n }\n if (isHorizontal && !isFirst) {\n left = false;\n }\n if (\n isHorizontalPanelState(panel) &&\n !panel.span &&\n isFirst &&\n !panels.left.collapsed &&\n panels.left.widgets.length > 0\n ) {\n left = false;\n }\n if (\n isHorizontalPanelState(panel) &&\n !panel.span &&\n isLast &&\n !panels.right.collapsed &&\n panels.right.widgets.length > 0\n ) {\n right = false;\n }\n return {\n \"nz-border-top\": top,\n \"nz-border-bottom\": bottom,\n \"nz-border-left\": left,\n \"nz-border-right\": right,\n };\n }, true);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"PanelWidget.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/widget/PanelWidget.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 Widget\n */\n\nimport \"./PanelWidget.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { assert } from \"@itwin/core-bentley\";\nimport type { WidgetState } from \"../state/WidgetState\";\nimport type { PanelSide } from \"../widget-panels/PanelTypes\";\nimport {\n isHorizontalPanelSide,\n PanelSideContext,\n} from \"../widget-panels/Panel\";\nimport { WidgetContentContainer } from \"./ContentContainer\";\nimport { WidgetTabBar } from \"./TabBar\";\nimport { Widget, WidgetProvider } from \"./Widget\";\nimport { WidgetOutline } from \"../outline/WidgetOutline\";\nimport { WidgetTarget } from \"../target/WidgetTarget\";\nimport { isHorizontalPanelState } from \"../state/PanelState\";\nimport { useLayout } from \"../base/LayoutStore\";\nimport { getWidgetState } from \"../state/internal/WidgetStateHelpers\";\nimport type { NineZoneState } from \"../state/NineZoneState\";\n\n/** @internal */\nexport interface PanelWidgetProps {\n widgetId: WidgetState[\"id\"];\n}\n\n/** @internal */\nexport const PanelWidget = React.forwardRef<HTMLDivElement, PanelWidgetProps>(\n function PanelWidget({ widgetId }, ref) {\n const side = React.useContext(PanelSideContext);\n assert(!!side);\n const widgetsLength = useLayout((state) => {\n const panel = state.panels[side];\n return panel.widgets.length;\n });\n const minimized = useLayout((state) => {\n const widget = getWidgetState(state, widgetId);\n return widget.minimized;\n });\n const horizontal = isHorizontalPanelSide(side);\n const mode = useMode(widgetId);\n const borders = useBorders(widgetId);\n const showTarget = widgetsLength !== 1;\n const className = classnames(\n \"nz-widget-panelWidget\",\n horizontal && \"nz-horizontal\",\n `nz-${mode}`,\n borders\n );\n const content = React.useMemo(\n () => (\n <WidgetContentContainer>\n {showTarget && <WidgetTarget />}\n <WidgetOutline />\n </WidgetContentContainer>\n ),\n [showTarget]\n );\n return (\n <WidgetProvider id={widgetId}>\n <Widget className={className} ref={ref}>\n <WidgetTabBar\n separator={isHorizontalPanelSide(side) ? true : !minimized}\n />\n {content}\n </Widget>\n </WidgetProvider>\n );\n }\n);\n\nfunction findFillWidget(state: NineZoneState, side: PanelSide) {\n const panelWidgets = state.panels[side].widgets;\n return panelWidgets.find((widgetId) => {\n const widget = getWidgetState(state, widgetId);\n if (widget.minimized) return false;\n const tabId = widget.activeTabId;\n const tab = state.tabs[tabId];\n if (!tab.preferredPanelWidgetSize) return true;\n return false;\n });\n}\n\n/** @internal */\nexport function useMode(widgetId: string): \"fit\" | \"fill\" | \"minimized\" {\n const side = React.useContext(PanelSideContext);\n assert(!!side);\n return useLayout((state) => {\n const fillWidget = findFillWidget(state, side);\n\n // Force `fill` for last panel widget that is not minimized.\n if (!fillWidget) {\n const panel = state.panels[side];\n for (let i = panel.widgets.length - 1; i >= 0; i--) {\n const wId = panel.widgets[i];\n const w = getWidgetState(state, wId);\n if (w.minimized) continue;\n if (wId === widgetId) return \"fill\";\n break;\n }\n }\n\n const widget = getWidgetState(state, widgetId);\n if (widget.minimized) return \"minimized\";\n const tabId = widget.activeTabId;\n const tab = state.tabs[tabId];\n return tab.preferredPanelWidgetSize ? \"fit\" : \"fill\";\n });\n}\n\n/** @internal */\nexport function useBorders(widgetId: WidgetState[\"id\"]) {\n const side = React.useContext(PanelSideContext);\n assert(!!side);\n return useLayout((state) => {\n const panels = state.panels;\n const panel = panels[side];\n const toolSettings = state.toolSettings;\n const isHorizontal = isHorizontalPanelSide(panel.side);\n const isVertical = !isHorizontal;\n const isFirst = panel.widgets[0] === widgetId;\n const isLast = panel.widgets[panel.widgets.length - 1] === widgetId;\n const isTopMostPanelBorder =\n panel.side === \"top\" ||\n (isVertical && !panels.top.span) ||\n (isVertical && panels.top.span && panels.top.collapsed) ||\n (isVertical && panels.top.widgets.length === 0);\n\n let top = true;\n let bottom = true;\n let left = true;\n let right = true;\n if (panel.side === \"bottom\") {\n bottom = false;\n }\n if (isVertical && isLast) {\n bottom = false;\n }\n if (isTopMostPanelBorder && toolSettings?.type === \"docked\") {\n top = false;\n }\n if (isVertical && !isFirst) {\n top = false;\n }\n if (\n isVertical &&\n panels.top.span &&\n !panels.top.collapsed &&\n panels.top.widgets.length > 0\n ) {\n top = false;\n }\n if (isHorizontal && !isFirst) {\n left = false;\n }\n if (\n isHorizontalPanelState(panel) &&\n !panel.span &&\n isFirst &&\n !panels.left.collapsed &&\n panels.left.widgets.length > 0\n ) {\n left = false;\n }\n if (\n isHorizontalPanelState(panel) &&\n !panel.span &&\n isLast &&\n !panels.right.collapsed &&\n panels.right.widgets.length > 0\n ) {\n right = false;\n }\n return {\n \"nz-border-top\": top,\n \"nz-border-bottom\": bottom,\n \"nz-border-left\": left,\n \"nz-border-right\": right,\n };\n }, true);\n}\n"]}
|
|
@@ -62,7 +62,7 @@ function WidgetTabComponent(props) {
|
|
|
62
62
|
const activeTabId = useLayout((state) => getWidgetState(state, widgetId).activeTabId);
|
|
63
63
|
const minimized = useLayout((state) => getWidgetState(state, widgetId).minimized);
|
|
64
64
|
const maximizedWidget = useIsMaximizedWidget();
|
|
65
|
-
const resizeObserverRef = useResizeObserver(widgetTabsEntryContext
|
|
65
|
+
const resizeObserverRef = useResizeObserver(widgetTabsEntryContext === null || widgetTabsEntryContext === void 0 ? void 0 : widgetTabsEntryContext.onResize);
|
|
66
66
|
const pointerCaptorRef = useTabInteractions({ clickOnly: maximizedWidget });
|
|
67
67
|
const refs = useRefs(resizeObserverRef, pointerCaptorRef);
|
|
68
68
|
const active = activeTabId === id;
|
|
@@ -104,7 +104,7 @@ export function useTabInteractions({ onClick, onDoubleClick, onDragStart, clickO
|
|
|
104
104
|
widgetId,
|
|
105
105
|
id,
|
|
106
106
|
});
|
|
107
|
-
onClick
|
|
107
|
+
onClick === null || onClick === void 0 ? void 0 : onClick();
|
|
108
108
|
}, [dispatch, widgetId, id, side, onClick]);
|
|
109
109
|
const handleDoubleClick = React.useCallback(() => {
|
|
110
110
|
// istanbul ignore next (preview)
|
|
@@ -117,7 +117,7 @@ export function useTabInteractions({ onClick, onDoubleClick, onDragStart, clickO
|
|
|
117
117
|
floatingWidgetId,
|
|
118
118
|
id,
|
|
119
119
|
});
|
|
120
|
-
onDoubleClick
|
|
120
|
+
onDoubleClick === null || onDoubleClick === void 0 ? void 0 : onDoubleClick();
|
|
121
121
|
}, [
|
|
122
122
|
clickOnly,
|
|
123
123
|
dispatch,
|
|
@@ -167,7 +167,7 @@ export function useTabInteractions({ onClick, onDoubleClick, onDragStart, clickO
|
|
|
167
167
|
position,
|
|
168
168
|
userSized,
|
|
169
169
|
});
|
|
170
|
-
onDragStart
|
|
170
|
+
onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart();
|
|
171
171
|
initialPointerPosition.current = undefined;
|
|
172
172
|
}, [
|
|
173
173
|
clickOnly,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tab.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/widget/Tab.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 Widget\n */\n\nimport \"./Tab.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { Key } from \"ts-key-enum\";\nimport { assert } from \"@itwin/core-bentley\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport {\n Icon,\n Point,\n Rectangle,\n Timer,\n useRefs,\n useResizeObserver,\n} from \"@itwin/core-react\";\nimport { useDragTab } from \"../base/DragManager\";\nimport {\n MeasureContext,\n NineZoneDispatchContext,\n ShowWidgetIconContext,\n TabNodeContext,\n} from \"../base/NineZone\";\nimport type { TabState } from \"../state/TabState\";\nimport type {\n PointerCaptorArgs,\n PointerCaptorEvent,\n} from \"../base/usePointerCaptor\";\nimport { usePointerCaptor } from \"../base/usePointerCaptor\";\nimport { PanelSideContext } from \"../widget-panels/Panel\";\nimport { WidgetTabsEntryContext } from \"./Tabs\";\nimport {\n restrainInitialWidgetSize,\n WidgetContext,\n WidgetIdContext,\n} from \"./Widget\";\nimport { TabIdContext } from \"./ContentRenderer\";\nimport { TabTarget } from \"../target/TabTarget\";\nimport { WidgetMenuTab } from \"./MenuTab\";\nimport { WidgetOverflowContext } from \"./Overflow\";\nimport { useLayout, useLayoutStore } from \"../base/LayoutStore\";\nimport { useFloatingWidgetId } from \"./FloatingWidget\";\nimport { getWidgetState } from \"../state/internal/WidgetStateHelpers\";\nimport { useIsMaximizedWidget } from \"../../preview/enable-maximized-widget/useMaximizedWidget\";\n\n/** @internal */\nexport interface WidgetTabProviderProps extends TabPositionContextArgs {\n id: TabState[\"id\"];\n showOnlyTabIcon?: boolean;\n}\n\n/** @internal */\nexport function WidgetTabProvider({\n id,\n first,\n firstInactive,\n last,\n showOnlyTabIcon,\n}: WidgetTabProviderProps) {\n const tabNode = React.useContext(TabNodeContext);\n const position = React.useMemo<TabPositionContextArgs>(\n () => ({\n first,\n firstInactive,\n last,\n }),\n [first, firstInactive, last]\n );\n return (\n <TabIdContext.Provider value={id}>\n <TabPositionContext.Provider value={position}>\n <IconOnlyOnWidgetTabContext.Provider value={!!showOnlyTabIcon}>\n {tabNode}\n </IconOnlyOnWidgetTabContext.Provider>\n </TabPositionContext.Provider>\n </TabIdContext.Provider>\n );\n}\n\n/** Properties of [[WidgetTab]] component.\n * @internal\n */\nexport interface WidgetTabProps extends CommonProps {\n badge?: React.ReactNode;\n}\n\n/** Component that displays a tab in a side panel widget.\n * @internal\n */\nexport function WidgetTab(props: WidgetTabProps) {\n const widgetOverflow = React.useContext(WidgetOverflowContext);\n const overflown = !!widgetOverflow;\n if (overflown) return <WidgetMenuTab {...props} />;\n return <WidgetTabComponent {...props} />;\n}\n\nfunction WidgetTabComponent(props: WidgetTabProps) {\n const id = React.useContext(TabIdContext);\n const { first, firstInactive, last } = React.useContext(TabPositionContext);\n const widgetTabsEntryContext = React.useContext(WidgetTabsEntryContext);\n const side = React.useContext(PanelSideContext);\n const widgetId = React.useContext(WidgetIdContext);\n const showIconOnly = React.useContext(IconOnlyOnWidgetTabContext);\n const showWidgetIcon = React.useContext(ShowWidgetIconContext);\n assert(!!id);\n assert(!!widgetId);\n\n const iconSpec = useLayout((state) => state.tabs[id].iconSpec);\n const label = useLayout((state) => state.tabs[id].label);\n const activeTabId = useLayout(\n (state) => getWidgetState(state, widgetId).activeTabId\n );\n const minimized = useLayout(\n (state) => getWidgetState(state, widgetId).minimized\n );\n\n const maximizedWidget = useIsMaximizedWidget();\n\n const resizeObserverRef = useResizeObserver<HTMLDivElement>(\n widgetTabsEntryContext?.onResize\n );\n const pointerCaptorRef = useTabInteractions({ clickOnly: maximizedWidget });\n const refs = useRefs<HTMLDivElement>(resizeObserverRef, pointerCaptorRef);\n\n const active = activeTabId === id;\n const className = classnames(\n \"nz-widget-tab\",\n active && \"nz-active\",\n undefined === side && minimized && \"nz-minimized\",\n first && \"nz-first\",\n last && \"nz-last\",\n firstInactive && \"nz-first-inactive\",\n props.className\n );\n\n const showLabel =\n (showIconOnly && !iconSpec) ||\n (showWidgetIcon && !showIconOnly) ||\n !showWidgetIcon;\n return (\n <div\n data-item-id={id}\n data-item-type=\"widget-tab\"\n className={className}\n ref={refs}\n role=\"tab\"\n style={props.style}\n title={label}\n tabIndex={0}\n >\n {(showWidgetIcon || showIconOnly) && iconSpec && (\n <Icon iconSpec={iconSpec} />\n )}\n {showLabel && <span>{label}</span>}\n {props.badge && <div className=\"nz-badge\">{props.badge}</div>}\n <TabTarget />\n </div>\n );\n}\n\n/** @internal */\nexport interface UseTabInteractionsArgs {\n onClick?: () => void;\n onDoubleClick?: () => void;\n onDragStart?: () => void;\n clickOnly?: boolean;\n}\n\n/** @internal */\nexport function useTabInteractions<T extends HTMLElement>({\n onClick,\n onDoubleClick,\n onDragStart,\n clickOnly,\n}: UseTabInteractionsArgs) {\n const id = React.useContext(TabIdContext);\n const widgetContext = React.useContext(WidgetContext);\n const measure = React.useContext(MeasureContext);\n const dispatch = React.useContext(NineZoneDispatchContext);\n const side = React.useContext(PanelSideContext);\n const widgetId = React.useContext(WidgetIdContext);\n const widgetTabsEntryContext = React.useContext(WidgetTabsEntryContext);\n const floatingWidgetId = useFloatingWidgetId();\n assert(!!id);\n assert(!!widgetId);\n\n const layoutStore = useLayoutStore();\n const tabRef = React.useRef(layoutStore.getState().tabs[id]);\n const clickCount = React.useRef(0);\n const doubleClickTimer = React.useRef(new Timer(300));\n const initialPointerPosition = React.useRef<Point>();\n\n const overflown = !widgetTabsEntryContext;\n\n React.useEffect(\n () =>\n layoutStore.subscribe((state) => {\n tabRef.current = state.tabs[id];\n }),\n [layoutStore, id]\n );\n\n const handleClick = React.useCallback(() => {\n dispatch({\n type: \"WIDGET_TAB_CLICK\",\n side,\n widgetId,\n id,\n });\n onClick?.();\n }, [dispatch, widgetId, id, side, onClick]);\n const handleDoubleClick = React.useCallback(() => {\n // istanbul ignore next (preview)\n if (clickOnly) return;\n dispatch({\n type: \"WIDGET_TAB_DOUBLE_CLICK\",\n side,\n widgetId,\n floatingWidgetId,\n id,\n });\n onDoubleClick?.();\n }, [\n clickOnly,\n dispatch,\n floatingWidgetId,\n widgetId,\n id,\n side,\n onDoubleClick,\n ]);\n\n const handleDragTabStart = useDragTab({\n tabId: id,\n });\n const handleDragStart = React.useCallback(\n (pointerPosition: Point) => {\n // istanbul ignore next (preview)\n if (clickOnly) return;\n assert(!!ref.current);\n assert(!!initialPointerPosition.current);\n const nzBounds = measure();\n const nzOffset = new Point(-nzBounds.left, -nzBounds.top);\n let bounds = Rectangle.create(ref.current.getBoundingClientRect());\n bounds = bounds.offset(nzOffset);\n\n const tab = tabRef.current;\n const userSized =\n tab.userSized ||\n (tab.isFloatingWidgetResizable &&\n /* istanbul ignore next */ !!tab.preferredFloatingWidgetSize);\n let position = bounds.topLeft();\n const widgetBounds = widgetContext.measure();\n const widgetSize = restrainInitialWidgetSize(\n widgetBounds.getSize(),\n nzBounds.getSize()\n );\n if (overflown) {\n position = initialPointerPosition.current.offset(nzOffset);\n position = position.offset({ x: -7, y: -7 });\n }\n\n const dragOffset =\n initialPointerPosition.current.getOffsetTo(pointerPosition);\n position = position.offset(dragOffset);\n\n handleDragTabStart({\n initialPointerPosition: Point.create(initialPointerPosition.current),\n pointerPosition,\n widgetSize,\n });\n dispatch({\n type: \"WIDGET_TAB_DRAG_START\",\n floatingWidgetId,\n side,\n widgetId,\n id,\n position,\n userSized,\n });\n onDragStart?.();\n\n initialPointerPosition.current = undefined;\n },\n [\n clickOnly,\n measure,\n widgetContext,\n handleDragTabStart,\n dispatch,\n floatingWidgetId,\n side,\n widgetId,\n id,\n onDragStart,\n overflown,\n ]\n );\n const handlePointerDown = React.useCallback(\n (args: PointerCaptorArgs, e: PointerCaptorEvent) => {\n e.type === \"touchstart\" &&\n floatingWidgetId &&\n dispatch({\n type: \"FLOATING_WIDGET_BRING_TO_FRONT\",\n id: floatingWidgetId,\n });\n\n initialPointerPosition.current = new Point(args.clientX, args.clientY);\n },\n [dispatch, floatingWidgetId]\n );\n const handlePointerMove = React.useCallback(\n (args: PointerCaptorArgs) => {\n // istanbul ignore next\n if (!initialPointerPosition.current) return;\n\n const pointerPosition = new Point(args.clientX, args.clientY);\n const distance =\n initialPointerPosition.current.getDistanceTo(pointerPosition);\n if (distance < 10) return;\n handleDragStart(pointerPosition);\n },\n [handleDragStart]\n );\n const handlePointerUp = React.useCallback(() => {\n clickCount.current++;\n initialPointerPosition.current = undefined;\n doubleClickTimer.current.start();\n }, []);\n\n const pointerCaptorRef = usePointerCaptor<T>(\n handlePointerDown,\n handlePointerMove,\n handlePointerUp\n );\n const ref = React.useRef<T>();\n const refs = useRefs(pointerCaptorRef, ref);\n\n React.useEffect(() => {\n const timer = doubleClickTimer.current;\n timer.setOnExecute(() => {\n if (clickCount.current === 1) handleClick();\n else handleDoubleClick();\n clickCount.current = 0;\n });\n const keydown = (e: KeyboardEvent) => {\n if (e.key === \" \" || e.key === Key.Enter.valueOf()) {\n handleClick();\n }\n };\n const instance = ref.current;\n instance && instance.addEventListener(\"keydown\", keydown);\n return () => {\n timer.setOnExecute(undefined);\n instance && instance.removeEventListener(\"keydown\", keydown);\n };\n }, [handleClick, handleDoubleClick]);\n return refs;\n}\n\n/** @internal */\nexport interface TabPositionContextArgs {\n first?: boolean;\n last?: boolean;\n firstInactive?: boolean;\n}\n\n/** @internal */\nexport const TabPositionContext = React.createContext<TabPositionContextArgs>(\n undefined!\n);\nTabPositionContext.displayName = \"nz:TabPositionContext\";\n\n/** @internal */\nexport const IconOnlyOnWidgetTabContext = React.createContext<boolean>(false);\nIconOnlyOnWidgetTabContext.displayName = \"nz:IconOnlyOnWidgetTabContext\";\n"]}
|
|
1
|
+
{"version":3,"file":"Tab.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/widget/Tab.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 Widget\n */\n\nimport \"./Tab.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { Key } from \"ts-key-enum\";\nimport { assert } from \"@itwin/core-bentley\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport {\n Icon,\n Point,\n Rectangle,\n Timer,\n useRefs,\n useResizeObserver,\n} from \"@itwin/core-react\";\nimport { useDragTab } from \"../base/DragManager\";\nimport {\n MeasureContext,\n NineZoneDispatchContext,\n ShowWidgetIconContext,\n TabNodeContext,\n} from \"../base/NineZone\";\nimport type { TabState } from \"../state/TabState\";\nimport type {\n PointerCaptorArgs,\n PointerCaptorEvent,\n} from \"../base/usePointerCaptor\";\nimport { usePointerCaptor } from \"../base/usePointerCaptor\";\nimport { PanelSideContext } from \"../widget-panels/Panel\";\nimport { WidgetTabsEntryContext } from \"./Tabs\";\nimport {\n restrainInitialWidgetSize,\n WidgetContext,\n WidgetIdContext,\n} from \"./Widget\";\nimport { TabIdContext } from \"./ContentRenderer\";\nimport { TabTarget } from \"../target/TabTarget\";\nimport { WidgetMenuTab } from \"./MenuTab\";\nimport { WidgetOverflowContext } from \"./Overflow\";\nimport { useLayout, useLayoutStore } from \"../base/LayoutStore\";\nimport { useFloatingWidgetId } from \"./FloatingWidget\";\nimport { getWidgetState } from \"../state/internal/WidgetStateHelpers\";\nimport { useIsMaximizedWidget } from \"../../preview/enable-maximized-widget/useMaximizedWidget\";\n\n/** @internal */\nexport interface WidgetTabProviderProps extends TabPositionContextArgs {\n id: TabState[\"id\"];\n showOnlyTabIcon?: boolean;\n}\n\n/** @internal */\nexport function WidgetTabProvider({\n id,\n first,\n firstInactive,\n last,\n showOnlyTabIcon,\n}: WidgetTabProviderProps) {\n const tabNode = React.useContext(TabNodeContext);\n const position = React.useMemo<TabPositionContextArgs>(\n () => ({\n first,\n firstInactive,\n last,\n }),\n [first, firstInactive, last]\n );\n return (\n <TabIdContext.Provider value={id}>\n <TabPositionContext.Provider value={position}>\n <IconOnlyOnWidgetTabContext.Provider value={!!showOnlyTabIcon}>\n {tabNode}\n </IconOnlyOnWidgetTabContext.Provider>\n </TabPositionContext.Provider>\n </TabIdContext.Provider>\n );\n}\n\n/** Properties of [[WidgetTab]] component.\n * @internal\n */\nexport interface WidgetTabProps extends CommonProps {\n badge?: React.ReactNode;\n}\n\n/** Component that displays a tab in a side panel widget.\n * @internal\n */\nexport function WidgetTab(props: WidgetTabProps) {\n const widgetOverflow = React.useContext(WidgetOverflowContext);\n const overflown = !!widgetOverflow;\n if (overflown) return <WidgetMenuTab {...props} />;\n return <WidgetTabComponent {...props} />;\n}\n\nfunction WidgetTabComponent(props: WidgetTabProps) {\n const id = React.useContext(TabIdContext);\n const { first, firstInactive, last } = React.useContext(TabPositionContext);\n const widgetTabsEntryContext = React.useContext(WidgetTabsEntryContext);\n const side = React.useContext(PanelSideContext);\n const widgetId = React.useContext(WidgetIdContext);\n const showIconOnly = React.useContext(IconOnlyOnWidgetTabContext);\n const showWidgetIcon = React.useContext(ShowWidgetIconContext);\n assert(!!id);\n assert(!!widgetId);\n\n const iconSpec = useLayout((state) => state.tabs[id].iconSpec);\n const label = useLayout((state) => state.tabs[id].label);\n const activeTabId = useLayout(\n (state) => getWidgetState(state, widgetId).activeTabId\n );\n const minimized = useLayout(\n (state) => getWidgetState(state, widgetId).minimized\n );\n\n const maximizedWidget = useIsMaximizedWidget();\n\n const resizeObserverRef = useResizeObserver<HTMLDivElement>(\n widgetTabsEntryContext?.onResize\n );\n const pointerCaptorRef = useTabInteractions({ clickOnly: maximizedWidget });\n const refs = useRefs<HTMLDivElement>(resizeObserverRef, pointerCaptorRef);\n\n const active = activeTabId === id;\n const className = classnames(\n \"nz-widget-tab\",\n active && \"nz-active\",\n undefined === side && minimized && \"nz-minimized\",\n first && \"nz-first\",\n last && \"nz-last\",\n firstInactive && \"nz-first-inactive\",\n props.className\n );\n\n const showLabel =\n (showIconOnly && !iconSpec) ||\n (showWidgetIcon && !showIconOnly) ||\n !showWidgetIcon;\n return (\n <div\n data-item-id={id}\n data-item-type=\"widget-tab\"\n className={className}\n ref={refs}\n role=\"tab\"\n style={props.style}\n title={label}\n tabIndex={0}\n >\n {(showWidgetIcon || showIconOnly) && iconSpec && (\n <Icon iconSpec={iconSpec} />\n )}\n {showLabel && <span>{label}</span>}\n {props.badge && <div className=\"nz-badge\">{props.badge}</div>}\n <TabTarget />\n </div>\n );\n}\n\n/** @internal */\nexport interface UseTabInteractionsArgs {\n onClick?: () => void;\n onDoubleClick?: () => void;\n onDragStart?: () => void;\n clickOnly?: boolean;\n}\n\n/** @internal */\nexport function useTabInteractions<T extends HTMLElement>({\n onClick,\n onDoubleClick,\n onDragStart,\n clickOnly,\n}: UseTabInteractionsArgs) {\n const id = React.useContext(TabIdContext);\n const widgetContext = React.useContext(WidgetContext);\n const measure = React.useContext(MeasureContext);\n const dispatch = React.useContext(NineZoneDispatchContext);\n const side = React.useContext(PanelSideContext);\n const widgetId = React.useContext(WidgetIdContext);\n const widgetTabsEntryContext = React.useContext(WidgetTabsEntryContext);\n const floatingWidgetId = useFloatingWidgetId();\n assert(!!id);\n assert(!!widgetId);\n\n const layoutStore = useLayoutStore();\n const tabRef = React.useRef(layoutStore.getState().tabs[id]);\n const clickCount = React.useRef(0);\n const doubleClickTimer = React.useRef(new Timer(300));\n const initialPointerPosition = React.useRef<Point>();\n\n const overflown = !widgetTabsEntryContext;\n\n React.useEffect(\n () =>\n layoutStore.subscribe((state) => {\n tabRef.current = state.tabs[id];\n }),\n [layoutStore, id]\n );\n\n const handleClick = React.useCallback(() => {\n dispatch({\n type: \"WIDGET_TAB_CLICK\",\n side,\n widgetId,\n id,\n });\n onClick?.();\n }, [dispatch, widgetId, id, side, onClick]);\n const handleDoubleClick = React.useCallback(() => {\n // istanbul ignore next (preview)\n if (clickOnly) return;\n dispatch({\n type: \"WIDGET_TAB_DOUBLE_CLICK\",\n side,\n widgetId,\n floatingWidgetId,\n id,\n });\n onDoubleClick?.();\n }, [\n clickOnly,\n dispatch,\n floatingWidgetId,\n widgetId,\n id,\n side,\n onDoubleClick,\n ]);\n\n const handleDragTabStart = useDragTab({\n tabId: id,\n });\n const handleDragStart = React.useCallback(\n (pointerPosition: Point) => {\n // istanbul ignore next (preview)\n if (clickOnly) return;\n assert(!!ref.current);\n assert(!!initialPointerPosition.current);\n const nzBounds = measure();\n const nzOffset = new Point(-nzBounds.left, -nzBounds.top);\n let bounds = Rectangle.create(ref.current.getBoundingClientRect());\n bounds = bounds.offset(nzOffset);\n\n const tab = tabRef.current;\n const userSized =\n tab.userSized ||\n (tab.isFloatingWidgetResizable &&\n /* istanbul ignore next */ !!tab.preferredFloatingWidgetSize);\n let position = bounds.topLeft();\n const widgetBounds = widgetContext.measure();\n const widgetSize = restrainInitialWidgetSize(\n widgetBounds.getSize(),\n nzBounds.getSize()\n );\n if (overflown) {\n position = initialPointerPosition.current.offset(nzOffset);\n position = position.offset({ x: -7, y: -7 });\n }\n\n const dragOffset =\n initialPointerPosition.current.getOffsetTo(pointerPosition);\n position = position.offset(dragOffset);\n\n handleDragTabStart({\n initialPointerPosition: Point.create(initialPointerPosition.current),\n pointerPosition,\n widgetSize,\n });\n dispatch({\n type: \"WIDGET_TAB_DRAG_START\",\n floatingWidgetId,\n side,\n widgetId,\n id,\n position,\n userSized,\n });\n onDragStart?.();\n\n initialPointerPosition.current = undefined;\n },\n [\n clickOnly,\n measure,\n widgetContext,\n handleDragTabStart,\n dispatch,\n floatingWidgetId,\n side,\n widgetId,\n id,\n onDragStart,\n overflown,\n ]\n );\n const handlePointerDown = React.useCallback(\n (args: PointerCaptorArgs, e: PointerCaptorEvent) => {\n e.type === \"touchstart\" &&\n floatingWidgetId &&\n dispatch({\n type: \"FLOATING_WIDGET_BRING_TO_FRONT\",\n id: floatingWidgetId,\n });\n\n initialPointerPosition.current = new Point(args.clientX, args.clientY);\n },\n [dispatch, floatingWidgetId]\n );\n const handlePointerMove = React.useCallback(\n (args: PointerCaptorArgs) => {\n // istanbul ignore next\n if (!initialPointerPosition.current) return;\n\n const pointerPosition = new Point(args.clientX, args.clientY);\n const distance =\n initialPointerPosition.current.getDistanceTo(pointerPosition);\n if (distance < 10) return;\n handleDragStart(pointerPosition);\n },\n [handleDragStart]\n );\n const handlePointerUp = React.useCallback(() => {\n clickCount.current++;\n initialPointerPosition.current = undefined;\n doubleClickTimer.current.start();\n }, []);\n\n const pointerCaptorRef = usePointerCaptor<T>(\n handlePointerDown,\n handlePointerMove,\n handlePointerUp\n );\n const ref = React.useRef<T>();\n const refs = useRefs(pointerCaptorRef, ref);\n\n React.useEffect(() => {\n const timer = doubleClickTimer.current;\n timer.setOnExecute(() => {\n if (clickCount.current === 1) handleClick();\n else handleDoubleClick();\n clickCount.current = 0;\n });\n const keydown = (e: KeyboardEvent) => {\n if (e.key === \" \" || e.key === Key.Enter.valueOf()) {\n handleClick();\n }\n };\n const instance = ref.current;\n instance && instance.addEventListener(\"keydown\", keydown);\n return () => {\n timer.setOnExecute(undefined);\n instance && instance.removeEventListener(\"keydown\", keydown);\n };\n }, [handleClick, handleDoubleClick]);\n return refs;\n}\n\n/** @internal */\nexport interface TabPositionContextArgs {\n first?: boolean;\n last?: boolean;\n firstInactive?: boolean;\n}\n\n/** @internal */\nexport const TabPositionContext = React.createContext<TabPositionContextArgs>(\n undefined!\n);\nTabPositionContext.displayName = \"nz:TabPositionContext\";\n\n/** @internal */\nexport const IconOnlyOnWidgetTabContext = React.createContext<boolean>(false);\nIconOnlyOnWidgetTabContext.displayName = \"nz:IconOnlyOnWidgetTabContext\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Widget.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/layout/widget/Widget.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,eAAe,CAAC;AAEvB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAW,MAAM,mBAAmB,CAAC;AAQvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAMxD,gBAAgB;AAChB,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IACtB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,gBAAgB;AAChB,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,qBAMxD;AAED,gBAAgB;AAChB,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC9C,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;IAC1E,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;IAC1E,eAAe,CAAC,IAAI,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,gBAAgB;AAChB,eAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"Widget.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/layout/widget/Widget.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,eAAe,CAAC;AAEvB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAW,MAAM,mBAAmB,CAAC;AAQvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAMxD,gBAAgB;AAChB,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IACtB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,gBAAgB;AAChB,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,qBAMxD;AAED,gBAAgB;AAChB,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC9C,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;IAC1E,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;IAC1E,eAAe,CAAC,IAAI,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,gBAAgB;AAChB,eAAO,MAAM,MAAM,oFAgIlB,CAAC;AAEF,gBAAgB;AAChB,eAAO,MAAM,eAAe,mCAEhB,CAAC;AAGb,gBAAgB;AAChB,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,SAAS,CAAC;CAC1B;AAED,gBAAgB;AAChB,eAAO,MAAM,aAAa,kCAAgD,CAAC;AAM3E,gBAAgB;AAChB,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,SAAS,GAChB,SAAS,CAOX;AAED,gBAAgB;AAChB,wBAAgB,cAAc,WAO7B"}
|
|
@@ -94,10 +94,10 @@ export const Widget = React.forwardRef(function Widget(props, forwardedRef) {
|
|
|
94
94
|
};
|
|
95
95
|
const element = elementRef.current;
|
|
96
96
|
// istanbul ignore next
|
|
97
|
-
element
|
|
97
|
+
element === null || element === void 0 ? void 0 : element.addEventListener("click", listener);
|
|
98
98
|
return () => {
|
|
99
99
|
// istanbul ignore next
|
|
100
|
-
element
|
|
100
|
+
element === null || element === void 0 ? void 0 : element.removeEventListener("click", listener);
|
|
101
101
|
};
|
|
102
102
|
}, [dispatch, floatingWidgetId]);
|
|
103
103
|
const measure = React.useCallback(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Widget.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/widget/Widget.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 Widget\n */\n\nimport \"./Widget.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { assert } from \"@itwin/core-bentley\";\nimport type { CommonProps, SizeProps } from \"@itwin/core-react\";\nimport { Rectangle, useRefs } from \"@itwin/core-react\";\nimport type { UseDragWidgetArgs } from \"../base/DragManager\";\nimport { useDragWidget } from \"../base/DragManager\";\nimport {\n getUniqueId,\n MeasureContext,\n NineZoneDispatchContext,\n} from \"../base/NineZone\";\nimport type { WidgetState } from \"../state/WidgetState\";\nimport { PanelSideContext } from \"../widget-panels/Panel\";\nimport { useLayout } from \"../base/LayoutStore\";\nimport { getWidgetState } from \"../state/internal/WidgetStateHelpers\";\nimport { useFloatingWidgetId } from \"./FloatingWidget\";\n\n/** @internal */\nexport interface WidgetProviderProps {\n id: WidgetState[\"id\"];\n children?: React.ReactNode;\n}\n\n/** @internal */\nexport function WidgetProvider(props: WidgetProviderProps) {\n return (\n <WidgetIdContext.Provider value={props.id}>\n {props.children}\n </WidgetIdContext.Provider>\n );\n}\n\n/** @internal */\nexport interface WidgetProps extends CommonProps {\n children?: React.ReactNode;\n onMouseEnter?: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void;\n onMouseLeave?: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void;\n onTransitionEnd?(): void;\n widgetId?: string;\n}\n\n/** @internal */\nexport const Widget = React.forwardRef<HTMLDivElement, WidgetProps>(\n function Widget(props, forwardedRef) {\n const dispatch = React.useContext(NineZoneDispatchContext);\n const side = React.useContext(PanelSideContext);\n const id = React.useContext(WidgetIdContext);\n const measureNz = React.useContext(MeasureContext);\n const floatingWidgetId = useFloatingWidgetId();\n assert(!!id);\n const { preferredFloatingWidgetSize, userSized } = useLayout((state) => {\n const widget = getWidgetState(state, id);\n const tab = state.tabs[widget.activeTabId];\n // istanbul ignore next\n return {\n preferredFloatingWidgetSize: tab.preferredFloatingWidgetSize,\n userSized:\n tab.userSized ||\n (tab.isFloatingWidgetResizable && !!tab.preferredFloatingWidgetSize),\n };\n }, true);\n const elementRef = React.useRef<HTMLDivElement>(null);\n const widgetId = floatingWidgetId === undefined ? id : floatingWidgetId;\n const onDragStart = React.useCallback<\n NonNullable<UseDragWidgetArgs[\"onDragStart\"]>\n >(\n (updateId, initialPointerPosition, pointerPosition) => {\n assert(!!elementRef.current);\n if (floatingWidgetId !== undefined) return;\n const nzBounds = measureNz();\n let bounds = Rectangle.create(\n elementRef.current.getBoundingClientRect()\n );\n\n const size = restrainInitialWidgetSize(\n bounds.getSize(),\n nzBounds.getSize()\n );\n bounds = bounds.setSize(size);\n\n if (preferredFloatingWidgetSize) {\n bounds = bounds.setSize(preferredFloatingWidgetSize);\n }\n\n // Pointer is outside of tab area. Need to re-adjust widget bounds so that tab is behind pointer\n if (initialPointerPosition.x > bounds.right) {\n const offset = initialPointerPosition.x - bounds.right + 20;\n bounds = bounds.offsetX(offset);\n }\n\n const dragOffset = initialPointerPosition.getOffsetTo(pointerPosition);\n bounds = bounds.offset(dragOffset);\n\n // Adjust bounds to be relative to 9z origin\n bounds = bounds.offset({ x: -nzBounds.left, y: -nzBounds.top });\n\n const newFloatingWidgetId = getUniqueId();\n updateId(newFloatingWidgetId);\n\n assert(!!side);\n dispatch({\n type: \"PANEL_WIDGET_DRAG_START\",\n newFloatingWidgetId,\n id,\n bounds,\n side,\n userSized,\n });\n },\n [\n dispatch,\n floatingWidgetId,\n id,\n side,\n measureNz,\n preferredFloatingWidgetSize,\n userSized,\n ]\n );\n useDragWidget({\n widgetId,\n onDragStart,\n });\n React.useEffect(() => {\n const listener = () => {\n floatingWidgetId &&\n dispatch({\n type: \"FLOATING_WIDGET_BRING_TO_FRONT\",\n id: floatingWidgetId,\n });\n };\n const element = elementRef.current;\n // istanbul ignore next\n element?.addEventListener(\"click\", listener);\n return () => {\n // istanbul ignore next\n element?.removeEventListener(\"click\", listener);\n };\n }, [dispatch, floatingWidgetId]);\n const measure = React.useCallback<WidgetContextArgs[\"measure\"]>(() => {\n // istanbul ignore next\n if (!elementRef.current) return new Rectangle();\n const bounds = elementRef.current.getBoundingClientRect();\n return Rectangle.create(bounds);\n }, []);\n const widgetContextValue = React.useMemo<WidgetContextArgs>(\n () => ({\n measure,\n }),\n [measure]\n );\n const ref = useRefs(forwardedRef, elementRef);\n const className = classnames(\"nz-widget-widget\", props.className);\n return (\n <WidgetContext.Provider value={widgetContextValue}>\n <div\n className={className}\n onMouseEnter={props.onMouseEnter}\n onMouseLeave={props.onMouseLeave}\n onTransitionEnd={props.onTransitionEnd}\n ref={ref}\n style={props.style}\n data-widget-id={props.widgetId}\n >\n {props.children}\n </div>\n </WidgetContext.Provider>\n );\n }\n);\n\n/** @internal */\nexport const WidgetIdContext = React.createContext<\n WidgetState[\"id\"] | undefined\n>(undefined);\nWidgetIdContext.displayName = \"nz:WidgetIdContext\";\n\n/** @internal */\nexport interface WidgetContextArgs {\n measure: () => Rectangle;\n}\n\n/** @internal */\nexport const WidgetContext = React.createContext<WidgetContextArgs>(null!);\nWidgetContext.displayName = \"nz:WidgetContext\";\n\nconst minWidth = 200;\nconst minHeight = 200;\n\n/** @internal */\nexport function restrainInitialWidgetSize(\n size: SizeProps,\n nzSize: SizeProps\n): SizeProps {\n const width = Math.max(Math.min(nzSize.width / 3, size.width), minWidth);\n const height = Math.max(Math.min(nzSize.height / 3, size.height), minHeight);\n return {\n width,\n height,\n };\n}\n\n/** @internal */\nexport function useActiveTabId() {\n const id = React.useContext(WidgetIdContext);\n assert(!!id);\n return useLayout((state) => {\n const widget = getWidgetState(state, id);\n return widget.activeTabId;\n });\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Widget.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/widget/Widget.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 Widget\n */\n\nimport \"./Widget.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { assert } from \"@itwin/core-bentley\";\nimport type { CommonProps, SizeProps } from \"@itwin/core-react\";\nimport { Rectangle, useRefs } from \"@itwin/core-react\";\nimport type { UseDragWidgetArgs } from \"../base/DragManager\";\nimport { useDragWidget } from \"../base/DragManager\";\nimport {\n getUniqueId,\n MeasureContext,\n NineZoneDispatchContext,\n} from \"../base/NineZone\";\nimport type { WidgetState } from \"../state/WidgetState\";\nimport { PanelSideContext } from \"../widget-panels/Panel\";\nimport { useLayout } from \"../base/LayoutStore\";\nimport { getWidgetState } from \"../state/internal/WidgetStateHelpers\";\nimport { useFloatingWidgetId } from \"./FloatingWidget\";\n\n/** @internal */\nexport interface WidgetProviderProps {\n id: WidgetState[\"id\"];\n children?: React.ReactNode;\n}\n\n/** @internal */\nexport function WidgetProvider(props: WidgetProviderProps) {\n return (\n <WidgetIdContext.Provider value={props.id}>\n {props.children}\n </WidgetIdContext.Provider>\n );\n}\n\n/** @internal */\nexport interface WidgetProps extends CommonProps {\n children?: React.ReactNode;\n onMouseEnter?: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void;\n onMouseLeave?: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void;\n onTransitionEnd?(): void;\n widgetId?: string;\n}\n\n/** @internal */\nexport const Widget = React.forwardRef<HTMLDivElement, WidgetProps>(\n function Widget(props, forwardedRef) {\n const dispatch = React.useContext(NineZoneDispatchContext);\n const side = React.useContext(PanelSideContext);\n const id = React.useContext(WidgetIdContext);\n const measureNz = React.useContext(MeasureContext);\n const floatingWidgetId = useFloatingWidgetId();\n assert(!!id);\n const { preferredFloatingWidgetSize, userSized } = useLayout((state) => {\n const widget = getWidgetState(state, id);\n const tab = state.tabs[widget.activeTabId];\n // istanbul ignore next\n return {\n preferredFloatingWidgetSize: tab.preferredFloatingWidgetSize,\n userSized:\n tab.userSized ||\n (tab.isFloatingWidgetResizable && !!tab.preferredFloatingWidgetSize),\n };\n }, true);\n const elementRef = React.useRef<HTMLDivElement>(null);\n const widgetId = floatingWidgetId === undefined ? id : floatingWidgetId;\n const onDragStart = React.useCallback<\n NonNullable<UseDragWidgetArgs[\"onDragStart\"]>\n >(\n (updateId, initialPointerPosition, pointerPosition) => {\n assert(!!elementRef.current);\n if (floatingWidgetId !== undefined) return;\n const nzBounds = measureNz();\n let bounds = Rectangle.create(\n elementRef.current.getBoundingClientRect()\n );\n\n const size = restrainInitialWidgetSize(\n bounds.getSize(),\n nzBounds.getSize()\n );\n bounds = bounds.setSize(size);\n\n if (preferredFloatingWidgetSize) {\n bounds = bounds.setSize(preferredFloatingWidgetSize);\n }\n\n // Pointer is outside of tab area. Need to re-adjust widget bounds so that tab is behind pointer\n if (initialPointerPosition.x > bounds.right) {\n const offset = initialPointerPosition.x - bounds.right + 20;\n bounds = bounds.offsetX(offset);\n }\n\n const dragOffset = initialPointerPosition.getOffsetTo(pointerPosition);\n bounds = bounds.offset(dragOffset);\n\n // Adjust bounds to be relative to 9z origin\n bounds = bounds.offset({ x: -nzBounds.left, y: -nzBounds.top });\n\n const newFloatingWidgetId = getUniqueId();\n updateId(newFloatingWidgetId);\n\n assert(!!side);\n dispatch({\n type: \"PANEL_WIDGET_DRAG_START\",\n newFloatingWidgetId,\n id,\n bounds,\n side,\n userSized,\n });\n },\n [\n dispatch,\n floatingWidgetId,\n id,\n side,\n measureNz,\n preferredFloatingWidgetSize,\n userSized,\n ]\n );\n useDragWidget({\n widgetId,\n onDragStart,\n });\n React.useEffect(() => {\n const listener = () => {\n floatingWidgetId &&\n dispatch({\n type: \"FLOATING_WIDGET_BRING_TO_FRONT\",\n id: floatingWidgetId,\n });\n };\n const element = elementRef.current;\n // istanbul ignore next\n element?.addEventListener(\"click\", listener);\n return () => {\n // istanbul ignore next\n element?.removeEventListener(\"click\", listener);\n };\n }, [dispatch, floatingWidgetId]);\n const measure = React.useCallback<WidgetContextArgs[\"measure\"]>(() => {\n // istanbul ignore next\n if (!elementRef.current) return new Rectangle();\n const bounds = elementRef.current.getBoundingClientRect();\n return Rectangle.create(bounds);\n }, []);\n const widgetContextValue = React.useMemo<WidgetContextArgs>(\n () => ({\n measure,\n }),\n [measure]\n );\n\n const ref = useRefs(forwardedRef, elementRef);\n const className = classnames(\"nz-widget-widget\", props.className);\n return (\n <WidgetContext.Provider value={widgetContextValue}>\n <div\n className={className}\n onMouseEnter={props.onMouseEnter}\n onMouseLeave={props.onMouseLeave}\n onTransitionEnd={props.onTransitionEnd}\n ref={ref}\n style={props.style}\n data-widget-id={props.widgetId}\n >\n {props.children}\n </div>\n </WidgetContext.Provider>\n );\n }\n);\n\n/** @internal */\nexport const WidgetIdContext = React.createContext<\n WidgetState[\"id\"] | undefined\n>(undefined);\nWidgetIdContext.displayName = \"nz:WidgetIdContext\";\n\n/** @internal */\nexport interface WidgetContextArgs {\n measure: () => Rectangle;\n}\n\n/** @internal */\nexport const WidgetContext = React.createContext<WidgetContextArgs>(null!);\nWidgetContext.displayName = \"nz:WidgetContext\";\n\nconst minWidth = 200;\nconst minHeight = 200;\n\n/** @internal */\nexport function restrainInitialWidgetSize(\n size: SizeProps,\n nzSize: SizeProps\n): SizeProps {\n const width = Math.max(Math.min(nzSize.width / 3, size.width), minWidth);\n const height = Math.max(Math.min(nzSize.height / 3, size.height), minHeight);\n return {\n width,\n height,\n };\n}\n\n/** @internal */\nexport function useActiveTabId() {\n const id = React.useContext(WidgetIdContext);\n assert(!!id);\n return useLayout((state) => {\n const widget = getWidgetState(state, id);\n return widget.activeTabId;\n });\n}\n"]}
|
|
@@ -10,7 +10,7 @@ import { useActiveTabId } from "./Widget";
|
|
|
10
10
|
/** @internal */
|
|
11
11
|
export function useIsToolSettingsTab() {
|
|
12
12
|
const activeTabId = useActiveTabId();
|
|
13
|
-
const toolSettingsTabId = useLayout((state) => state.toolSettings
|
|
13
|
+
const toolSettingsTabId = useLayout((state) => { var _a; return (_a = state.toolSettings) === null || _a === void 0 ? void 0 : _a.tabId; });
|
|
14
14
|
return activeTabId === toolSettingsTabId;
|
|
15
15
|
}
|
|
16
16
|
//# sourceMappingURL=useIsToolSettingsTab.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIsToolSettingsTab.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/widget/useIsToolSettingsTab.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,gBAAgB;AAChB,MAAM,UAAU,oBAAoB;IAClC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,iBAAiB,GAAG,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"useIsToolSettingsTab.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/widget/useIsToolSettingsTab.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,gBAAgB;AAChB,MAAM,UAAU,oBAAoB;IAClC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,iBAAiB,GAAG,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,WAAC,OAAA,MAAA,KAAK,CAAC,YAAY,0CAAE,KAAK,CAAA,EAAA,CAAC,CAAC;IAC1E,OAAO,WAAW,KAAK,iBAAiB,CAAC;AAC3C,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 { useLayout } from \"../base/LayoutStore\";\nimport { useActiveTabId } from \"./Widget\";\n\n/** @internal */\nexport function useIsToolSettingsTab() {\n const activeTabId = useActiveTabId();\n const toolSettingsTabId = useLayout((state) => state.toolSettings?.tabId);\n return activeTabId === toolSettingsTabId;\n}\n"]}
|
|
@@ -55,16 +55,18 @@ function PanelSplitter() {
|
|
|
55
55
|
}
|
|
56
56
|
}, [updatePanelSize]);
|
|
57
57
|
const handlePointerUp = React.useCallback((event) => {
|
|
58
|
+
var _a, _b;
|
|
58
59
|
updatePanelSize(event);
|
|
59
60
|
event.preventDefault();
|
|
60
61
|
event.stopPropagation();
|
|
61
|
-
containerRef.current
|
|
62
|
-
containerRef.current
|
|
62
|
+
(_a = containerRef.current) === null || _a === void 0 ? void 0 : _a.ownerDocument.removeEventListener("pointermove", handlePointerMove);
|
|
63
|
+
(_b = containerRef.current) === null || _b === void 0 ? void 0 : _b.ownerDocument.removeEventListener("pointerup", handlePointerUp);
|
|
63
64
|
}, [handlePointerMove, updatePanelSize]);
|
|
64
65
|
const handlePointerDownOnSplitter = React.useCallback((event) => {
|
|
66
|
+
var _a, _b;
|
|
65
67
|
if (containerRef.current) {
|
|
66
|
-
containerRef.current
|
|
67
|
-
containerRef.current
|
|
68
|
+
(_a = containerRef.current) === null || _a === void 0 ? void 0 : _a.ownerDocument.addEventListener("pointermove", handlePointerMove);
|
|
69
|
+
(_b = containerRef.current) === null || _b === void 0 ? void 0 : _b.ownerDocument.addEventListener("pointerup", handlePointerUp);
|
|
68
70
|
splitterProcessingActiveRef.current = true;
|
|
69
71
|
event.preventDefault();
|
|
70
72
|
event.stopPropagation();
|
|
@@ -90,7 +92,8 @@ function PanelSection({ widgetId, index, sectionLength }) {
|
|
|
90
92
|
const side = React.useContext(PanelSideContext);
|
|
91
93
|
assert(!!side);
|
|
92
94
|
const splitterPercent = useLayout((state) => {
|
|
93
|
-
|
|
95
|
+
var _a;
|
|
96
|
+
return (_a = state.panels[side].splitterPercent) !== null && _a !== void 0 ? _a : 50;
|
|
94
97
|
});
|
|
95
98
|
const maximizedSection = useMaximizedSection(widgetId);
|
|
96
99
|
const isMaximizedPanel = !!useMaximizedPanel(side);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PanelSections.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/widget-panels/PanelSections.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 WidgetPanels\n */\n\nimport \"./PanelSections.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { assert } from \"@itwin/core-bentley\";\nimport { NineZoneDispatchContext } from \"../base/NineZone\";\nimport { PanelWidget } from \"../widget/PanelWidget\";\nimport { useLayout } from \"../base/LayoutStore\";\nimport { isHorizontalPanelSide, PanelSideContext } from \"./Panel\";\nimport type { WidgetState } from \"../state/WidgetState\";\nimport {\n useMaximizedPanel,\n useMaximizedSection,\n} from \"../../preview/enable-maximized-widget/useMaximizedWidget\";\n\n// istanbul ignore next\nfunction PanelSplitter() {\n const dispatch = React.useContext(NineZoneDispatchContext);\n const side = React.useContext(PanelSideContext);\n assert(!!side);\n const containerRef = React.useRef<HTMLDivElement>(null);\n const splitterProcessingActiveRef = React.useRef<boolean>(false);\n\n const isHorizontal = isHorizontalPanelSide(side);\n\n const getPercentage = React.useCallback(\n (min: number, max: number, current: number) => {\n const range = max - min;\n const adjusted = Math.max(min, Math.min(max, current));\n if (adjusted === min) return 0;\n if (adjusted === max) return 100;\n const percent = ((adjusted - min) * 100) / range;\n return percent;\n },\n []\n );\n\n const updatePanelSize = React.useCallback(\n (event: PointerEvent) => {\n if (!containerRef.current) return;\n\n const parentPanel = containerRef.current.closest(\n \".nz-widgetPanels-panel\"\n );\n const sectionToResize = containerRef.current.parentElement as HTMLElement;\n if (parentPanel && sectionToResize) {\n const rect = parentPanel.getBoundingClientRect();\n const percent = getPercentage(\n isHorizontal ? rect.left : rect.top,\n isHorizontal ? rect.right : rect.bottom,\n isHorizontal ? event.clientX : event.clientY\n );\n\n dispatch({\n type: \"PANEL_SET_SPLITTER_VALUE\",\n side,\n percent,\n });\n }\n },\n [getPercentage, isHorizontal, side, dispatch]\n );\n\n const handlePointerMove = React.useCallback(\n (event: Event): void => {\n if (splitterProcessingActiveRef.current) {\n event.preventDefault();\n event.stopPropagation();\n updatePanelSize(event as PointerEvent);\n }\n },\n [updatePanelSize]\n );\n\n const handlePointerUp = React.useCallback(\n (event: Event) => {\n updatePanelSize(event as PointerEvent);\n event.preventDefault();\n event.stopPropagation();\n containerRef.current?.ownerDocument.removeEventListener(\n \"pointermove\",\n handlePointerMove\n );\n containerRef.current?.ownerDocument.removeEventListener(\n \"pointerup\",\n handlePointerUp\n );\n },\n [handlePointerMove, updatePanelSize]\n );\n\n const handlePointerDownOnSplitter = React.useCallback(\n (event: React.PointerEvent) => {\n if (containerRef.current) {\n containerRef.current?.ownerDocument.addEventListener(\n \"pointermove\",\n handlePointerMove\n );\n containerRef.current?.ownerDocument.addEventListener(\n \"pointerup\",\n handlePointerUp\n );\n splitterProcessingActiveRef.current = true;\n event.preventDefault();\n event.stopPropagation();\n }\n },\n [handlePointerMove, handlePointerUp]\n );\n\n const className = isHorizontal\n ? \"nz-horizontal-panel-splitter\"\n : \"nz-vertical-panel-splitter\";\n return (\n <div\n ref={containerRef}\n className={className}\n onPointerDown={handlePointerDownOnSplitter}\n />\n );\n}\n\n/** @internal */\nexport function PanelSections() {\n const side = React.useContext(PanelSideContext);\n assert(!!side);\n\n const widgets = useLayout((state) => {\n return state.panels[side].widgets;\n });\n\n return (\n <>\n {widgets.map((widgetId, index, array) => {\n return (\n <PanelSection\n key={widgetId}\n widgetId={widgetId}\n index={index}\n sectionLength={array.length}\n />\n );\n })}\n </>\n );\n}\n\ninterface PanelSectionProps {\n widgetId: WidgetState[\"id\"];\n index: number;\n sectionLength: number;\n}\n\nfunction PanelSection({ widgetId, index, sectionLength }: PanelSectionProps) {\n const side = React.useContext(PanelSideContext);\n assert(!!side);\n\n const splitterPercent = useLayout((state) => {\n return state.panels[side].splitterPercent ?? 50;\n });\n\n const maximizedSection = useMaximizedSection(widgetId);\n const isMaximizedPanel = !!useMaximizedPanel(side);\n\n const isHorizontal = isHorizontalPanelSide(side);\n\n const last = index === sectionLength - 1;\n const className = classnames(\n \"nz-widgetPanels-panelSections_section\",\n `nz-panel-section-${index}`,\n isHorizontal ? \"nz-widgetPanels-horizontal\" : \"nz-widgetPanels-vertical\",\n last && 0 === index && \"nz-panel-section-full-size\",\n maximizedSection\n );\n\n const hasSplitter = !last && 0 === index && !isMaximizedPanel;\n const panelStyle = hasSplitter\n ? getSplitterStyle(isHorizontal, splitterPercent)\n : undefined;\n return (\n <div className={className} style={panelStyle}>\n <PanelWidget widgetId={widgetId} />\n {hasSplitter && <PanelSplitter />}\n </div>\n );\n}\n\nfunction getSplitterStyle(isHorizontal: boolean, splitterPercent: number) {\n if (isHorizontal) {\n return {\n width: `${splitterPercent}%`,\n } as const;\n }\n return {\n height: `${splitterPercent}%`,\n } as const;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"PanelSections.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/widget-panels/PanelSections.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 WidgetPanels\n */\n\nimport \"./PanelSections.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { assert } from \"@itwin/core-bentley\";\nimport { NineZoneDispatchContext } from \"../base/NineZone\";\nimport { PanelWidget } from \"../widget/PanelWidget\";\nimport { useLayout } from \"../base/LayoutStore\";\nimport { isHorizontalPanelSide, PanelSideContext } from \"./Panel\";\nimport type { WidgetState } from \"../state/WidgetState\";\nimport {\n useMaximizedPanel,\n useMaximizedSection,\n} from \"../../preview/enable-maximized-widget/useMaximizedWidget\";\n\n// istanbul ignore next\nfunction PanelSplitter() {\n const dispatch = React.useContext(NineZoneDispatchContext);\n const side = React.useContext(PanelSideContext);\n assert(!!side);\n const containerRef = React.useRef<HTMLDivElement>(null);\n const splitterProcessingActiveRef = React.useRef<boolean>(false);\n\n const isHorizontal = isHorizontalPanelSide(side);\n\n const getPercentage = React.useCallback(\n (min: number, max: number, current: number) => {\n const range = max - min;\n const adjusted = Math.max(min, Math.min(max, current));\n if (adjusted === min) return 0;\n if (adjusted === max) return 100;\n const percent = ((adjusted - min) * 100) / range;\n return percent;\n },\n []\n );\n\n const updatePanelSize = React.useCallback(\n (event: PointerEvent) => {\n if (!containerRef.current) return;\n\n const parentPanel = containerRef.current.closest(\n \".nz-widgetPanels-panel\"\n );\n const sectionToResize = containerRef.current.parentElement as HTMLElement;\n if (parentPanel && sectionToResize) {\n const rect = parentPanel.getBoundingClientRect();\n const percent = getPercentage(\n isHorizontal ? rect.left : rect.top,\n isHorizontal ? rect.right : rect.bottom,\n isHorizontal ? event.clientX : event.clientY\n );\n\n dispatch({\n type: \"PANEL_SET_SPLITTER_VALUE\",\n side,\n percent,\n });\n }\n },\n [getPercentage, isHorizontal, side, dispatch]\n );\n\n const handlePointerMove = React.useCallback(\n (event: Event): void => {\n if (splitterProcessingActiveRef.current) {\n event.preventDefault();\n event.stopPropagation();\n updatePanelSize(event as PointerEvent);\n }\n },\n [updatePanelSize]\n );\n\n const handlePointerUp = React.useCallback(\n (event: Event) => {\n updatePanelSize(event as PointerEvent);\n event.preventDefault();\n event.stopPropagation();\n containerRef.current?.ownerDocument.removeEventListener(\n \"pointermove\",\n handlePointerMove\n );\n containerRef.current?.ownerDocument.removeEventListener(\n \"pointerup\",\n handlePointerUp\n );\n },\n [handlePointerMove, updatePanelSize]\n );\n\n const handlePointerDownOnSplitter = React.useCallback(\n (event: React.PointerEvent) => {\n if (containerRef.current) {\n containerRef.current?.ownerDocument.addEventListener(\n \"pointermove\",\n handlePointerMove\n );\n containerRef.current?.ownerDocument.addEventListener(\n \"pointerup\",\n handlePointerUp\n );\n splitterProcessingActiveRef.current = true;\n event.preventDefault();\n event.stopPropagation();\n }\n },\n [handlePointerMove, handlePointerUp]\n );\n\n const className = isHorizontal\n ? \"nz-horizontal-panel-splitter\"\n : \"nz-vertical-panel-splitter\";\n return (\n <div\n ref={containerRef}\n className={className}\n onPointerDown={handlePointerDownOnSplitter}\n />\n );\n}\n\n/** @internal */\nexport function PanelSections() {\n const side = React.useContext(PanelSideContext);\n assert(!!side);\n\n const widgets = useLayout((state) => {\n return state.panels[side].widgets;\n });\n\n return (\n <>\n {widgets.map((widgetId, index, array) => {\n return (\n <PanelSection\n key={widgetId}\n widgetId={widgetId}\n index={index}\n sectionLength={array.length}\n />\n );\n })}\n </>\n );\n}\n\ninterface PanelSectionProps {\n widgetId: WidgetState[\"id\"];\n index: number;\n sectionLength: number;\n}\n\nfunction PanelSection({ widgetId, index, sectionLength }: PanelSectionProps) {\n const side = React.useContext(PanelSideContext);\n assert(!!side);\n\n const splitterPercent = useLayout((state) => {\n return state.panels[side].splitterPercent ?? 50;\n });\n\n const maximizedSection = useMaximizedSection(widgetId);\n const isMaximizedPanel = !!useMaximizedPanel(side);\n\n const isHorizontal = isHorizontalPanelSide(side);\n\n const last = index === sectionLength - 1;\n const className = classnames(\n \"nz-widgetPanels-panelSections_section\",\n `nz-panel-section-${index}`,\n isHorizontal ? \"nz-widgetPanels-horizontal\" : \"nz-widgetPanels-vertical\",\n last && 0 === index && \"nz-panel-section-full-size\",\n maximizedSection\n );\n\n const hasSplitter = !last && 0 === index && !isMaximizedPanel;\n const panelStyle = hasSplitter\n ? getSplitterStyle(isHorizontal, splitterPercent)\n : undefined;\n return (\n <div className={className} style={panelStyle}>\n <PanelWidget widgetId={widgetId} />\n {hasSplitter && <PanelSplitter />}\n </div>\n );\n}\n\nfunction getSplitterStyle(isHorizontal: boolean, splitterPercent: number) {\n if (isHorizontal) {\n return {\n width: `${splitterPercent}%`,\n } as const;\n }\n return {\n height: `${splitterPercent}%`,\n } as const;\n}\n"]}
|
|
@@ -8,6 +8,6 @@ export declare function useAnimatePanel(): {
|
|
|
8
8
|
size: number;
|
|
9
9
|
handleTransitionEnd: (e: React.TransitionEvent<HTMLDivElement>) => void;
|
|
10
10
|
contentSize: number | undefined;
|
|
11
|
-
transition: "
|
|
11
|
+
transition: "transition" | "init" | undefined;
|
|
12
12
|
};
|
|
13
13
|
//# sourceMappingURL=useAnimatePanel.d.ts.map
|
|
@@ -155,9 +155,10 @@ export function useAnimatePanel() {
|
|
|
155
155
|
setTransition(undefined);
|
|
156
156
|
}, []);
|
|
157
157
|
const size = React.useMemo(() => {
|
|
158
|
+
var _a;
|
|
158
159
|
if (panelSize !== undefined)
|
|
159
160
|
return panelSize;
|
|
160
|
-
return panel.collapsed ? 0 : panel.size
|
|
161
|
+
return panel.collapsed ? 0 : (_a = panel.size) !== null && _a !== void 0 ? _a : panel.minSize;
|
|
161
162
|
}, [panel.size, panel.collapsed, panel.minSize, panelSize]);
|
|
162
163
|
return { ref, size, handleTransitionEnd, contentSize, transition };
|
|
163
164
|
}
|