@itwin/appui-react 4.0.0-dev.13 → 4.0.0-dev.14
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 +154 -1
- package/README.md +2 -2
- package/lib/cjs/appui-react/UiFramework.js.map +1 -1
- package/lib/cjs/appui-react/_variables.scss +11 -11
- package/lib/cjs/appui-react/accudraw/AccuDrawCommandItems.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawDialog.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawDialog.scss +14 -14
- package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.scss +27 -27
- package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawInputField.scss +55 -55
- package/lib/cjs/appui-react/accudraw/AccuDrawKeyboardShortcuts.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawUiSettings.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawWidget.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/Calculator.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/Calculator.scss +84 -84
- package/lib/cjs/appui-react/accudraw/CalculatorEngine.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/CalculatorPopup.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/MenuButton.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/MenuButton.scss +18 -18
- package/lib/cjs/appui-react/accudraw/MenuButtonPopup.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/SquareButton.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/SquareButton.scss +29 -29
- package/lib/cjs/appui-react/accudraw/backspace.svg +9 -9
- package/lib/cjs/appui-react/accudraw/constraint-2d.svg +11 -11
- package/lib/cjs/appui-react/accudraw/height-2.svg +10 -10
- package/lib/cjs/appui-react/accudraw/height.svg +11 -11
- package/lib/cjs/appui-react/backstage/BackstageComposer.js.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageItem.js.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageItemsManager.js.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageManager.js.map +1 -1
- package/lib/cjs/appui-react/backstage/InternalBackstageManager.js.map +1 -1
- package/lib/cjs/appui-react/backstage/useDefaultBackstageItems.js.map +1 -1
- package/lib/cjs/appui-react/backstage/useUiItemsProviderBackstageItems.js.map +1 -1
- package/lib/cjs/appui-react/childwindow/ChildWindowManager.js.map +1 -1
- package/lib/cjs/appui-react/childwindow/CopyStyles.js.map +1 -1
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +21 -21
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.scss +14 -14
- package/lib/cjs/appui-react/childwindow/PopoutWidget.js.map +1 -1
- package/lib/cjs/appui-react/childwindow/PopoutWidget.scss +10 -10
- package/lib/cjs/appui-react/configurableui/ActivityTracker.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/ConfigurableUiControl.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/ConfigurableUiManager.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/TimeTracker.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/configurableui.scss +74 -74
- package/lib/cjs/appui-react/configurableui/state.js.map +1 -1
- package/lib/cjs/appui-react/content/ContentControl.js.map +1 -1
- package/lib/cjs/appui-react/content/ContentGroup.js.map +1 -1
- package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
- package/lib/cjs/appui-react/content/ContentLayout.scss +99 -99
- package/lib/cjs/appui-react/content/ContentLayoutManager.js.map +1 -1
- package/lib/cjs/appui-react/content/ContentViewManager.js.map +1 -1
- package/lib/cjs/appui-react/content/DefaultViewOverlay.js.map +1 -1
- package/lib/cjs/appui-react/content/DefaultViewOverlay.scss +46 -46
- package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
- package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
- package/lib/cjs/appui-react/content/InternalContentLayoutManager.js.map +1 -1
- package/lib/cjs/appui-react/content/InternalContentViewManager.js.map +1 -1
- package/lib/cjs/appui-react/content/StageContentLayout.js.map +1 -1
- package/lib/cjs/appui-react/content/ViewStateHelper.js.map +1 -1
- package/lib/cjs/appui-react/content/ViewportContentControl.js.map +1 -1
- package/lib/cjs/appui-react/content/split-pane/Pane.js.map +1 -1
- package/lib/cjs/appui-react/content/split-pane/Resizer.js.map +1 -1
- package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -1
- package/lib/cjs/appui-react/cursor/CursorInformation.js.map +1 -1
- package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
- package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
- package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.scss +34 -34
- package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
- package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.js.map +1 -1
- package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.scss +30 -30
- package/lib/cjs/appui-react/dialog/ContentDialog.js.map +1 -1
- package/lib/cjs/appui-react/dialog/ContentDialog.scss +25 -25
- package/lib/cjs/appui-react/dialog/ContentDialogManager.js.map +1 -1
- package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
- package/lib/cjs/appui-react/dialog/InternalContentDialogManager.js.map +1 -1
- package/lib/cjs/appui-react/dialog/InternalModalDialogManager.js.map +1 -1
- package/lib/cjs/appui-react/dialog/InternalModelessDialogManager.js.map +1 -1
- package/lib/cjs/appui-react/dialog/ModalDialogManager.js.map +1 -1
- package/lib/cjs/appui-react/dialog/ModelessDialog.js.map +1 -1
- package/lib/cjs/appui-react/dialog/ModelessDialogManager.js.map +1 -1
- package/lib/cjs/appui-react/dialog/StandardMessageBox.js.map +1 -1
- package/lib/cjs/appui-react/dialog/UiDataProvidedDialog.js.map +1 -1
- package/lib/cjs/appui-react/feedback/ElementTooltip.js.map +1 -1
- package/lib/cjs/appui-react/feedback/ValidationTextbox.js.map +1 -1
- package/lib/cjs/appui-react/feedback/ValidationTextbox.scss +50 -50
- package/lib/cjs/appui-react/framework/FrameworkBackstage.js.map +1 -1
- package/lib/cjs/appui-react/framework/FrameworkChildWindows.js.map +1 -1
- package/lib/cjs/appui-react/framework/FrameworkContent.js.map +1 -1
- package/lib/cjs/appui-react/framework/FrameworkControls.js.map +1 -1
- package/lib/cjs/appui-react/framework/FrameworkDialogs.js.map +1 -1
- package/lib/cjs/appui-react/framework/FrameworkFrontstages.js.map +1 -1
- package/lib/cjs/appui-react/framework/FrameworkKeyboardShortcuts.js.map +1 -1
- package/lib/cjs/appui-react/framework/FrameworkToolSettings.js.map +1 -1
- package/lib/cjs/appui-react/framework/FrameworkVisibility.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageConfig.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageManager.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageProvider.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/ModalFrontstage.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/ModalFrontstage.scss +80 -80
- package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/ModalSettingsStage.scss +11 -11
- package/lib/cjs/appui-react/frontstage/NestedFrontstage.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/StageUsage.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useActiveStageId.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useActiveViewport.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useAvailableUiItemsProviders.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useEscapeSetFocusToHome.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useSolarDataProvider.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useUiVisibility.js.map +1 -1
- package/lib/cjs/appui-react/keyboardshortcut/InternalKeyboardShortcut.js.map +1 -1
- package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
- package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.js.map +1 -1
- package/lib/cjs/appui-react/messages/ActivityMessage.js.map +1 -1
- package/lib/cjs/appui-react/messages/AppNotificationManager.js.map +1 -1
- package/lib/cjs/appui-react/messages/HollowIcon.js.map +1 -1
- package/lib/cjs/appui-react/messages/InputField.js.map +1 -1
- package/lib/cjs/appui-react/messages/InputField.scss +82 -82
- package/lib/cjs/appui-react/messages/MessageLabel.js.map +1 -1
- package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
- package/lib/cjs/appui-react/messages/MessageSpan.js.map +1 -1
- package/lib/cjs/appui-react/messages/Pointer.js.map +1 -1
- package/lib/cjs/appui-react/messages/Pointer.scss +42 -42
- package/lib/cjs/appui-react/messages/ReactNotifyMessageDetails.js.map +1 -1
- package/lib/cjs/appui-react/messages/StatusMessageManager.js.map +1 -1
- package/lib/cjs/appui-react/messages/getToastCategory.js.map +1 -1
- package/lib/cjs/appui-react/navigationaids/CubeNavigationAidControl.js.map +1 -1
- package/lib/cjs/appui-react/navigationaids/DrawingNavigationAidControl.js.map +1 -1
- package/lib/cjs/appui-react/navigationaids/NavigationAidControl.js.map +1 -1
- package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
- package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.scss +67 -67
- package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
- package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.scss +72 -72
- package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
- package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.scss +13 -13
- package/lib/cjs/appui-react/pickers/ListPicker.d.ts +3 -0
- package/lib/cjs/appui-react/pickers/ListPicker.d.ts.map +1 -1
- package/lib/cjs/appui-react/pickers/ListPicker.js +3 -1
- package/lib/cjs/appui-react/pickers/ListPicker.js.map +1 -1
- package/lib/cjs/appui-react/pickers/ListPicker.scss +306 -299
- package/lib/cjs/appui-react/pickers/ViewSelector.d.ts +6 -1
- package/lib/cjs/appui-react/pickers/ViewSelector.d.ts.map +1 -1
- package/lib/cjs/appui-react/pickers/ViewSelector.js +24 -9
- package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
- package/lib/cjs/appui-react/popup/CardPopup.js.map +1 -1
- package/lib/cjs/appui-react/popup/CardPopup.scss +25 -25
- package/lib/cjs/appui-react/popup/HTMLElementPopup.js.map +1 -1
- package/lib/cjs/appui-react/popup/InputEditorPopup.js.map +1 -1
- package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
- package/lib/cjs/appui-react/popup/KeyinPalettePanel.scss +30 -30
- package/lib/cjs/appui-react/popup/KeyinPalettePopup.js.map +1 -1
- package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
- package/lib/cjs/appui-react/popup/PositionPopup.js.map +1 -1
- package/lib/cjs/appui-react/popup/PositionPopup.scss +28 -28
- package/lib/cjs/appui-react/popup/ToolSettingsPopup.js.map +1 -1
- package/lib/cjs/appui-react/popup/ToolbarPopup.js.map +1 -1
- package/lib/cjs/appui-react/redux/FrameworkState.js.map +1 -1
- package/lib/cjs/appui-react/redux/ReducerRegistry.js.map +1 -1
- package/lib/cjs/appui-react/redux/SessionState.js.map +1 -1
- package/lib/cjs/appui-react/redux/StateManager.js.map +1 -1
- package/lib/cjs/appui-react/redux/connectIModel.js.map +1 -1
- package/lib/cjs/appui-react/redux/redux-ts.js.map +1 -1
- package/lib/cjs/appui-react/safearea/SafeAreaContext.js.map +1 -1
- package/lib/cjs/appui-react/safearea/SafeAreaHelpers.js.map +1 -1
- package/lib/cjs/appui-react/safearea/SafeAreaInsets.js.map +1 -1
- package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
- package/lib/cjs/appui-react/selection/SelectionContextItemDef.js.map +1 -1
- package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
- package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.scss +119 -119
- package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.js.map +1 -1
- package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
- package/lib/cjs/appui-react/settings/ui/UiSettingsPage.scss +65 -65
- package/lib/cjs/appui-react/shared/ActionButtonItemDef.js.map +1 -1
- package/lib/cjs/appui-react/shared/AnyItemDef.js.map +1 -1
- package/lib/cjs/appui-react/shared/AnyToolbarItemDef.js.map +1 -1
- package/lib/cjs/appui-react/shared/CommandItemDef.js.map +1 -1
- package/lib/cjs/appui-react/shared/CustomItemDef.js.map +1 -1
- package/lib/cjs/appui-react/shared/CustomItemProps.js.map +1 -1
- package/lib/cjs/appui-react/shared/GroupItemProps.js.map +1 -1
- package/lib/cjs/appui-react/shared/ItemDefBase.js.map +1 -1
- package/lib/cjs/appui-react/shared/ItemMap.js.map +1 -1
- package/lib/cjs/appui-react/shared/ItemProps.js.map +1 -1
- package/lib/cjs/appui-react/shared/MenuItem.js.map +1 -1
- package/lib/cjs/appui-react/shared/SelectionScope.js.map +1 -1
- package/lib/cjs/appui-react/shared/ToolItemDef.js.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelConfig.js.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelLocation.js.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelSection.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/Field.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/Field.scss +109 -109
- package/lib/cjs/appui-react/statusbar/Indicator.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/LabelIndicator.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/LabelIndicator.scss +43 -43
- package/lib/cjs/appui-react/statusbar/Overflow.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/Overflow.scss +27 -27
- package/lib/cjs/appui-react/statusbar/OverflowPanel.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/OverflowPanel.scss +22 -22
- package/lib/cjs/appui-react/statusbar/Popup.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/Separator.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/Separator.scss +12 -12
- package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBar.scss +41 -41
- package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarItem.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarWidgetControl.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/dialog/Button.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/dialog/Dialog.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/dialog/TitleBar.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/useUiItemsProviderStatusBarItems.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/ActivityCenter.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/SectionsField.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/SectionsField.scss +35 -35
- package/lib/cjs/appui-react/statusfields/SelectionInfo.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/SelectionInfo.scss +14 -14
- package/lib/cjs/appui-react/statusfields/SelectionScope.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/SelectionScope.scss +46 -46
- package/lib/cjs/appui-react/statusfields/SnapMode.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/ViewAttributes.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/ViewAttributes.scss +10 -10
- package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.scss +45 -45
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +194 -194
- package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
- package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
- package/lib/cjs/appui-react/timeline/AnalysisAnimationProvider.js.map +1 -1
- package/lib/cjs/appui-react/timeline/ScheduleAnimationProvider.js.map +1 -1
- package/lib/cjs/appui-react/timeline/SolarTimelineDataProvider.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/DragInteraction.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/GroupItem.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarComposer.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarHelper.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarItem.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarItemUtilities.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/toUIAToolbarItem.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/useDefaultToolbarItems.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
- package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
- package/lib/cjs/appui-react/tools/FrameworkToolAdmin.js.map +1 -1
- package/lib/cjs/appui-react/tools/KeyinPaletteTools.js.map +1 -1
- package/lib/cjs/appui-react/tools/OpenSettingsTool.js.map +1 -1
- package/lib/cjs/appui-react/tools/RestoreLayoutTool.js.map +1 -1
- package/lib/cjs/appui-react/tools/ToolSettingsTools.js.map +1 -1
- package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
- package/lib/cjs/appui-react/toolsettings/InternalToolSettingsManager.js.map +1 -1
- package/lib/cjs/appui-react/toolsettings/ToolInformation.js.map +1 -1
- package/lib/cjs/appui-react/toolsettings/ToolSettingsManager.js.map +1 -1
- package/lib/cjs/appui-react/toolsettings/ToolUiProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/ProviderItem.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/isProviderItem.js.map +1 -1
- package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
- package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
- package/lib/cjs/appui-react/uiprovider/DefaultDialogGridContainer.js.map +1 -1
- package/lib/cjs/appui-react/uiprovider/DefaultDialogGridContainer.scss +212 -212
- package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -1
- package/lib/cjs/appui-react/uistate/useUiStateStorage.js.map +1 -1
- package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
- package/lib/cjs/appui-react/utils/PropsHelper.js.map +1 -1
- package/lib/cjs/appui-react/utils/ToolbarButtonHelper.js.map +1 -1
- package/lib/cjs/appui-react/utils/UiShowHideManager.js.map +1 -1
- package/lib/cjs/appui-react/utils/ViewUtilities.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/FloatingWidget.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Frontstage.scss +19 -19
- package/lib/cjs/appui-react/widget-panels/FrontstageContent.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/ModalFrontstageComposer.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/StatusBar.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/StatusBar.scss +10 -10
- package/lib/cjs/appui-react/widget-panels/Tab.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Tab.scss +14 -14
- package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/ToolSettings.scss +41 -41
- package/lib/cjs/appui-react/widget-panels/Toolbars.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Toolbars.scss +20 -20
- package/lib/cjs/appui-react/widget-panels/useTransientState.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/useWidgetDirection.js.map +1 -1
- package/lib/cjs/appui-react/widgets/BackstageAppButton.js.map +1 -1
- package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
- package/lib/cjs/appui-react/widgets/BasicToolWidget.js.map +1 -1
- package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
- package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
- package/lib/cjs/appui-react/widgets/StableWidgetDef.js.map +1 -1
- package/lib/cjs/appui-react/widgets/StatusBarWidgetComposerControl.js.map +1 -1
- package/lib/cjs/appui-react/widgets/ToolSettingsContent.js.map +1 -1
- package/lib/cjs/appui-react/widgets/ToolWidgetComposer.js.map +1 -1
- package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
- package/lib/cjs/appui-react/widgets/Widget.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetConfig.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetControl.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetManager.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetState.js.map +1 -1
- package/lib/cjs/appui-react.js.map +1 -1
- package/lib/esm/appui-react/UiFramework.js.map +1 -1
- package/lib/esm/appui-react/_variables.scss +11 -11
- package/lib/esm/appui-react/accudraw/AccuDrawCommandItems.js.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawDialog.js.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawDialog.scss +14 -14
- package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.scss +27 -27
- package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawInputField.scss +55 -55
- package/lib/esm/appui-react/accudraw/AccuDrawKeyboardShortcuts.js.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawUiSettings.js.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawWidget.js.map +1 -1
- package/lib/esm/appui-react/accudraw/Calculator.js.map +1 -1
- package/lib/esm/appui-react/accudraw/Calculator.scss +84 -84
- package/lib/esm/appui-react/accudraw/CalculatorEngine.js.map +1 -1
- package/lib/esm/appui-react/accudraw/CalculatorPopup.js.map +1 -1
- package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
- package/lib/esm/appui-react/accudraw/MenuButton.js.map +1 -1
- package/lib/esm/appui-react/accudraw/MenuButton.scss +18 -18
- package/lib/esm/appui-react/accudraw/MenuButtonPopup.js.map +1 -1
- package/lib/esm/appui-react/accudraw/SquareButton.js.map +1 -1
- package/lib/esm/appui-react/accudraw/SquareButton.scss +29 -29
- package/lib/esm/appui-react/accudraw/backspace.svg +9 -9
- package/lib/esm/appui-react/accudraw/constraint-2d.svg +11 -11
- package/lib/esm/appui-react/accudraw/height-2.svg +10 -10
- package/lib/esm/appui-react/accudraw/height.svg +11 -11
- package/lib/esm/appui-react/backstage/BackstageComposer.js.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageItem.js.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageItemsManager.js.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageManager.js.map +1 -1
- package/lib/esm/appui-react/backstage/InternalBackstageManager.js.map +1 -1
- package/lib/esm/appui-react/backstage/useDefaultBackstageItems.js.map +1 -1
- package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.js.map +1 -1
- package/lib/esm/appui-react/childwindow/ChildWindowManager.js.map +1 -1
- package/lib/esm/appui-react/childwindow/CopyStyles.js.map +1 -1
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +21 -21
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.scss +14 -14
- package/lib/esm/appui-react/childwindow/PopoutWidget.js.map +1 -1
- package/lib/esm/appui-react/childwindow/PopoutWidget.scss +10 -10
- package/lib/esm/appui-react/configurableui/ActivityTracker.js.map +1 -1
- package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
- package/lib/esm/appui-react/configurableui/ConfigurableUiControl.js.map +1 -1
- package/lib/esm/appui-react/configurableui/ConfigurableUiManager.js.map +1 -1
- package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
- package/lib/esm/appui-react/configurableui/TimeTracker.js.map +1 -1
- package/lib/esm/appui-react/configurableui/configurableui.scss +74 -74
- package/lib/esm/appui-react/configurableui/state.js.map +1 -1
- package/lib/esm/appui-react/content/ContentControl.js.map +1 -1
- package/lib/esm/appui-react/content/ContentGroup.js.map +1 -1
- package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
- package/lib/esm/appui-react/content/ContentLayout.scss +99 -99
- package/lib/esm/appui-react/content/ContentLayoutManager.js.map +1 -1
- package/lib/esm/appui-react/content/ContentViewManager.js.map +1 -1
- package/lib/esm/appui-react/content/DefaultViewOverlay.js.map +1 -1
- package/lib/esm/appui-react/content/DefaultViewOverlay.scss +46 -46
- package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
- package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
- package/lib/esm/appui-react/content/InternalContentLayoutManager.js.map +1 -1
- package/lib/esm/appui-react/content/InternalContentViewManager.js.map +1 -1
- package/lib/esm/appui-react/content/StageContentLayout.js.map +1 -1
- package/lib/esm/appui-react/content/ViewStateHelper.js.map +1 -1
- package/lib/esm/appui-react/content/ViewportContentControl.js.map +1 -1
- package/lib/esm/appui-react/content/split-pane/Pane.js.map +1 -1
- package/lib/esm/appui-react/content/split-pane/Resizer.js.map +1 -1
- package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -1
- package/lib/esm/appui-react/cursor/CursorInformation.js.map +1 -1
- package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
- package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
- package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.scss +34 -34
- package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
- package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.js.map +1 -1
- package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.scss +30 -30
- package/lib/esm/appui-react/dialog/ContentDialog.js.map +1 -1
- package/lib/esm/appui-react/dialog/ContentDialog.scss +25 -25
- package/lib/esm/appui-react/dialog/ContentDialogManager.js.map +1 -1
- package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
- package/lib/esm/appui-react/dialog/InternalContentDialogManager.js.map +1 -1
- package/lib/esm/appui-react/dialog/InternalModalDialogManager.js.map +1 -1
- package/lib/esm/appui-react/dialog/InternalModelessDialogManager.js.map +1 -1
- package/lib/esm/appui-react/dialog/ModalDialogManager.js.map +1 -1
- package/lib/esm/appui-react/dialog/ModelessDialog.js.map +1 -1
- package/lib/esm/appui-react/dialog/ModelessDialogManager.js.map +1 -1
- package/lib/esm/appui-react/dialog/StandardMessageBox.js.map +1 -1
- package/lib/esm/appui-react/dialog/UiDataProvidedDialog.js.map +1 -1
- package/lib/esm/appui-react/feedback/ElementTooltip.js.map +1 -1
- package/lib/esm/appui-react/feedback/ValidationTextbox.js.map +1 -1
- package/lib/esm/appui-react/feedback/ValidationTextbox.scss +50 -50
- package/lib/esm/appui-react/framework/FrameworkBackstage.js.map +1 -1
- package/lib/esm/appui-react/framework/FrameworkChildWindows.js.map +1 -1
- package/lib/esm/appui-react/framework/FrameworkContent.js.map +1 -1
- package/lib/esm/appui-react/framework/FrameworkControls.js.map +1 -1
- package/lib/esm/appui-react/framework/FrameworkDialogs.js.map +1 -1
- package/lib/esm/appui-react/framework/FrameworkFrontstages.js.map +1 -1
- package/lib/esm/appui-react/framework/FrameworkKeyboardShortcuts.js.map +1 -1
- package/lib/esm/appui-react/framework/FrameworkToolSettings.js.map +1 -1
- package/lib/esm/appui-react/framework/FrameworkVisibility.js.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageConfig.js.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageManager.js.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageProvider.js.map +1 -1
- package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
- package/lib/esm/appui-react/frontstage/ModalFrontstage.js.map +1 -1
- package/lib/esm/appui-react/frontstage/ModalFrontstage.scss +80 -80
- package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
- package/lib/esm/appui-react/frontstage/ModalSettingsStage.scss +11 -11
- package/lib/esm/appui-react/frontstage/NestedFrontstage.js.map +1 -1
- package/lib/esm/appui-react/frontstage/StageUsage.js.map +1 -1
- package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
- package/lib/esm/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
- package/lib/esm/appui-react/hooks/useActiveStageId.js.map +1 -1
- package/lib/esm/appui-react/hooks/useActiveViewport.js.map +1 -1
- package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
- package/lib/esm/appui-react/hooks/useAvailableUiItemsProviders.js.map +1 -1
- package/lib/esm/appui-react/hooks/useEscapeSetFocusToHome.js.map +1 -1
- package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
- package/lib/esm/appui-react/hooks/useSolarDataProvider.js.map +1 -1
- package/lib/esm/appui-react/hooks/useUiVisibility.js.map +1 -1
- package/lib/esm/appui-react/keyboardshortcut/InternalKeyboardShortcut.js.map +1 -1
- package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
- package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.js.map +1 -1
- package/lib/esm/appui-react/messages/ActivityMessage.js.map +1 -1
- package/lib/esm/appui-react/messages/AppNotificationManager.js.map +1 -1
- package/lib/esm/appui-react/messages/HollowIcon.js.map +1 -1
- package/lib/esm/appui-react/messages/InputField.js.map +1 -1
- package/lib/esm/appui-react/messages/InputField.scss +82 -82
- package/lib/esm/appui-react/messages/MessageLabel.js.map +1 -1
- package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
- package/lib/esm/appui-react/messages/MessageSpan.js.map +1 -1
- package/lib/esm/appui-react/messages/Pointer.js.map +1 -1
- package/lib/esm/appui-react/messages/Pointer.scss +42 -42
- package/lib/esm/appui-react/messages/ReactNotifyMessageDetails.js.map +1 -1
- package/lib/esm/appui-react/messages/StatusMessageManager.js.map +1 -1
- package/lib/esm/appui-react/messages/getToastCategory.js.map +1 -1
- package/lib/esm/appui-react/navigationaids/CubeNavigationAidControl.js.map +1 -1
- package/lib/esm/appui-react/navigationaids/DrawingNavigationAidControl.js.map +1 -1
- package/lib/esm/appui-react/navigationaids/NavigationAidControl.js.map +1 -1
- package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
- package/lib/esm/appui-react/navigationaids/SheetNavigationAid.scss +67 -67
- package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
- package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.scss +72 -72
- package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
- package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.scss +13 -13
- package/lib/esm/appui-react/pickers/ListPicker.d.ts +3 -0
- package/lib/esm/appui-react/pickers/ListPicker.d.ts.map +1 -1
- package/lib/esm/appui-react/pickers/ListPicker.js +4 -2
- package/lib/esm/appui-react/pickers/ListPicker.js.map +1 -1
- package/lib/esm/appui-react/pickers/ListPicker.scss +306 -299
- package/lib/esm/appui-react/pickers/ViewSelector.d.ts +6 -1
- package/lib/esm/appui-react/pickers/ViewSelector.d.ts.map +1 -1
- package/lib/esm/appui-react/pickers/ViewSelector.js +24 -9
- package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
- package/lib/esm/appui-react/popup/CardPopup.js.map +1 -1
- package/lib/esm/appui-react/popup/CardPopup.scss +25 -25
- package/lib/esm/appui-react/popup/HTMLElementPopup.js.map +1 -1
- package/lib/esm/appui-react/popup/InputEditorPopup.js.map +1 -1
- package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
- package/lib/esm/appui-react/popup/KeyinPalettePanel.scss +30 -30
- package/lib/esm/appui-react/popup/KeyinPalettePopup.js.map +1 -1
- package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
- package/lib/esm/appui-react/popup/PositionPopup.js.map +1 -1
- package/lib/esm/appui-react/popup/PositionPopup.scss +28 -28
- package/lib/esm/appui-react/popup/ToolSettingsPopup.js.map +1 -1
- package/lib/esm/appui-react/popup/ToolbarPopup.js.map +1 -1
- package/lib/esm/appui-react/redux/FrameworkState.js.map +1 -1
- package/lib/esm/appui-react/redux/ReducerRegistry.js.map +1 -1
- package/lib/esm/appui-react/redux/SessionState.js.map +1 -1
- package/lib/esm/appui-react/redux/StateManager.js.map +1 -1
- package/lib/esm/appui-react/redux/connectIModel.js.map +1 -1
- package/lib/esm/appui-react/redux/redux-ts.js.map +1 -1
- package/lib/esm/appui-react/safearea/SafeAreaContext.js.map +1 -1
- package/lib/esm/appui-react/safearea/SafeAreaHelpers.js.map +1 -1
- package/lib/esm/appui-react/safearea/SafeAreaInsets.js.map +1 -1
- package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
- package/lib/esm/appui-react/selection/SelectionContextItemDef.js.map +1 -1
- package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
- package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.scss +119 -119
- package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.js.map +1 -1
- package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
- package/lib/esm/appui-react/settings/ui/UiSettingsPage.scss +65 -65
- package/lib/esm/appui-react/shared/ActionButtonItemDef.js.map +1 -1
- package/lib/esm/appui-react/shared/AnyItemDef.js.map +1 -1
- package/lib/esm/appui-react/shared/AnyToolbarItemDef.js.map +1 -1
- package/lib/esm/appui-react/shared/CommandItemDef.js.map +1 -1
- package/lib/esm/appui-react/shared/CustomItemDef.js.map +1 -1
- package/lib/esm/appui-react/shared/CustomItemProps.js.map +1 -1
- package/lib/esm/appui-react/shared/GroupItemProps.js.map +1 -1
- package/lib/esm/appui-react/shared/ItemDefBase.js.map +1 -1
- package/lib/esm/appui-react/shared/ItemMap.js.map +1 -1
- package/lib/esm/appui-react/shared/ItemProps.js.map +1 -1
- package/lib/esm/appui-react/shared/MenuItem.js.map +1 -1
- package/lib/esm/appui-react/shared/SelectionScope.js.map +1 -1
- package/lib/esm/appui-react/shared/ToolItemDef.js.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanelConfig.js.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanelLocation.js.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanelSection.js.map +1 -1
- package/lib/esm/appui-react/statusbar/Field.js.map +1 -1
- package/lib/esm/appui-react/statusbar/Field.scss +109 -109
- package/lib/esm/appui-react/statusbar/Indicator.js.map +1 -1
- package/lib/esm/appui-react/statusbar/LabelIndicator.js.map +1 -1
- package/lib/esm/appui-react/statusbar/LabelIndicator.scss +43 -43
- package/lib/esm/appui-react/statusbar/Overflow.js.map +1 -1
- package/lib/esm/appui-react/statusbar/Overflow.scss +27 -27
- package/lib/esm/appui-react/statusbar/OverflowPanel.js.map +1 -1
- package/lib/esm/appui-react/statusbar/OverflowPanel.scss +22 -22
- package/lib/esm/appui-react/statusbar/Popup.js.map +1 -1
- package/lib/esm/appui-react/statusbar/Separator.js.map +1 -1
- package/lib/esm/appui-react/statusbar/Separator.scss +12 -12
- package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBar.scss +41 -41
- package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarItem.js.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.js.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarWidgetControl.js.map +1 -1
- package/lib/esm/appui-react/statusbar/dialog/Button.js.map +1 -1
- package/lib/esm/appui-react/statusbar/dialog/Dialog.js.map +1 -1
- package/lib/esm/appui-react/statusbar/dialog/TitleBar.js.map +1 -1
- package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.js.map +1 -1
- package/lib/esm/appui-react/statusbar/useUiItemsProviderStatusBarItems.js.map +1 -1
- package/lib/esm/appui-react/statusfields/ActivityCenter.js.map +1 -1
- package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
- package/lib/esm/appui-react/statusfields/SectionsField.js.map +1 -1
- package/lib/esm/appui-react/statusfields/SectionsField.scss +35 -35
- package/lib/esm/appui-react/statusfields/SelectionInfo.js.map +1 -1
- package/lib/esm/appui-react/statusfields/SelectionInfo.scss +14 -14
- package/lib/esm/appui-react/statusfields/SelectionScope.js.map +1 -1
- package/lib/esm/appui-react/statusfields/SelectionScope.scss +46 -46
- package/lib/esm/appui-react/statusfields/SnapMode.js.map +1 -1
- package/lib/esm/appui-react/statusfields/ViewAttributes.js.map +1 -1
- package/lib/esm/appui-react/statusfields/ViewAttributes.scss +10 -10
- package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
- package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.scss +45 -45
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +194 -194
- package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
- package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
- package/lib/esm/appui-react/timeline/AnalysisAnimationProvider.js.map +1 -1
- package/lib/esm/appui-react/timeline/ScheduleAnimationProvider.js.map +1 -1
- package/lib/esm/appui-react/timeline/SolarTimelineDataProvider.js.map +1 -1
- package/lib/esm/appui-react/toolbar/DragInteraction.js.map +1 -1
- package/lib/esm/appui-react/toolbar/GroupItem.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarComposer.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarHelper.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarItem.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarItemUtilities.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarItemsManager.js.map +1 -1
- package/lib/esm/appui-react/toolbar/toUIAToolbarItem.js.map +1 -1
- package/lib/esm/appui-react/toolbar/useDefaultToolbarItems.js.map +1 -1
- package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
- package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
- package/lib/esm/appui-react/tools/FrameworkToolAdmin.js.map +1 -1
- package/lib/esm/appui-react/tools/KeyinPaletteTools.js.map +1 -1
- package/lib/esm/appui-react/tools/OpenSettingsTool.js.map +1 -1
- package/lib/esm/appui-react/tools/RestoreLayoutTool.js.map +1 -1
- package/lib/esm/appui-react/tools/ToolSettingsTools.js.map +1 -1
- package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
- package/lib/esm/appui-react/toolsettings/InternalToolSettingsManager.js.map +1 -1
- package/lib/esm/appui-react/toolsettings/ToolInformation.js.map +1 -1
- package/lib/esm/appui-react/toolsettings/ToolSettingsManager.js.map +1 -1
- package/lib/esm/appui-react/toolsettings/ToolUiProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/ProviderItem.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/isProviderItem.js.map +1 -1
- package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
- package/lib/esm/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
- package/lib/esm/appui-react/uiprovider/DefaultDialogGridContainer.js.map +1 -1
- package/lib/esm/appui-react/uiprovider/DefaultDialogGridContainer.scss +212 -212
- package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -1
- package/lib/esm/appui-react/uistate/useUiStateStorage.js.map +1 -1
- package/lib/esm/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
- package/lib/esm/appui-react/utils/PropsHelper.js.map +1 -1
- package/lib/esm/appui-react/utils/ToolbarButtonHelper.js.map +1 -1
- package/lib/esm/appui-react/utils/UiShowHideManager.js.map +1 -1
- package/lib/esm/appui-react/utils/ViewUtilities.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/FloatingWidget.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Frontstage.scss +19 -19
- package/lib/esm/appui-react/widget-panels/FrontstageContent.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/ModalFrontstageComposer.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/StatusBar.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/StatusBar.scss +10 -10
- package/lib/esm/appui-react/widget-panels/Tab.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Tab.scss +14 -14
- package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/ToolSettings.scss +41 -41
- package/lib/esm/appui-react/widget-panels/Toolbars.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Toolbars.scss +20 -20
- package/lib/esm/appui-react/widget-panels/useTransientState.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/useWidgetDirection.js.map +1 -1
- package/lib/esm/appui-react/widgets/BackstageAppButton.js.map +1 -1
- package/lib/esm/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
- package/lib/esm/appui-react/widgets/BasicToolWidget.js.map +1 -1
- package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
- package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
- package/lib/esm/appui-react/widgets/StableWidgetDef.js.map +1 -1
- package/lib/esm/appui-react/widgets/StatusBarWidgetComposerControl.js.map +1 -1
- package/lib/esm/appui-react/widgets/ToolSettingsContent.js.map +1 -1
- package/lib/esm/appui-react/widgets/ToolWidgetComposer.js.map +1 -1
- package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
- package/lib/esm/appui-react/widgets/Widget.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetConfig.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetControl.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetManager.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetState.js.map +1 -1
- package/lib/esm/appui-react.js.map +1 -1
- package/lib/public/locales/en/UiFramework.json +381 -381
- package/package.json +31 -29
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CursorPopup.js","sourceRoot":"","sources":["../../../../../src/appui-react/cursor/cursorpopup/CursorPopup.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 Cursor\n */\n\nimport \"./CursorPopup.scss\";\nimport * as React from \"react\";\nimport classnames from \"classnames\";\nimport { PointProps, RelativePosition } from \"@itwin/appui-abstract\";\nimport { CommonDivProps, CommonProps, Div, RectangleProps, Size, SizeProps } from \"@itwin/core-react\";\nimport { TitleBar } from \"@itwin/appui-layout-react\";\nimport { CursorPopupFadeOutEventArgs, CursorPopupManager } from \"./CursorPopupManager\";\n\n/** Properties for the [[CursorPopup]] React component\n * @public\n */\nexport interface CursorPopupProps extends CommonProps {\n id: string;\n content: React.ReactNode;\n pt: PointProps;\n offset: PointProps;\n relativePosition: RelativePosition;\n title?: string;\n shadow?: boolean;\n /** Function called when size is known. */\n onSizeKnown?: (size: SizeProps) => void;\n}\n\n/** Enum for showing CursorPopup\n * @internal - unit testing\n */\nexport enum CursorPopupShow {\n Open,\n FadeOut,\n}\n\n/** State for the [[CursorPopup]] React component\n * @internal\n */\ninterface CursorPopupState {\n showPopup: CursorPopupShow;\n size: Size;\n}\n\n/** CursorPopup React component\n * @public\n */\nexport class CursorPopup extends React.Component<CursorPopupProps, CursorPopupState> {\n\n private _isMounted: boolean = false;\n\n /** @internal */\n public static fadeOutTime = 500;\n\n /** @internal */\n constructor(props: CursorPopupProps) {\n super(props);\n\n this.state = {\n showPopup: CursorPopupShow.Open,\n size: new Size(-1, -1),\n };\n }\n\n public override componentDidMount() {\n this._isMounted = true;\n CursorPopupManager.onCursorPopupFadeOutEvent.addListener(this._handleCursorPopupFadeOutEvent);\n }\n\n public override componentWillUnmount() {\n this._isMounted = false;\n CursorPopupManager.onCursorPopupFadeOutEvent.removeListener(this._handleCursorPopupFadeOutEvent);\n }\n\n private _handleCursorPopupFadeOutEvent = (args: CursorPopupFadeOutEventArgs) => {\n if (this.props.id === args.id) {\n // istanbul ignore else\n if (this._isMounted)\n this.setState({ showPopup: CursorPopupShow.FadeOut });\n }\n };\n\n /** @internal */\n public static getPopupRect(pt: PointProps, offset: PointProps, popupSize: SizeProps | undefined, relativePosition: RelativePosition): RectangleProps {\n const popupRect = { top: 0, left: 0, right: 0, bottom: 0 };\n\n if (popupSize === undefined)\n return popupRect;\n\n switch (relativePosition) {\n case RelativePosition.Top:\n popupRect.bottom = pt.y - offset.y;\n popupRect.left = pt.x - (popupSize.width / 2);\n popupRect.top = popupRect.bottom - popupSize.height;\n popupRect.right = popupRect.left + popupSize.width;\n break;\n case RelativePosition.Left:\n popupRect.right = pt.x - offset.x;\n popupRect.top = pt.y - (popupSize.height / 2);\n popupRect.left = popupRect.right - popupSize.width;\n popupRect.bottom = popupRect.top + popupSize.height;\n break;\n case RelativePosition.Right:\n popupRect.left = pt.x + offset.x;\n popupRect.top = pt.y - (popupSize.height / 2);\n popupRect.right = popupRect.left + popupSize.width;\n popupRect.bottom = popupRect.top + popupSize.height;\n break;\n case RelativePosition.Bottom:\n popupRect.top = pt.y + offset.y;\n popupRect.left = pt.x - (popupSize.width / 2);\n popupRect.bottom = popupRect.top + popupSize.height;\n popupRect.right = popupRect.left + popupSize.width;\n break;\n case RelativePosition.TopLeft:\n popupRect.bottom = pt.y - offset.y;\n popupRect.right = pt.x - offset.x;\n popupRect.top = popupRect.bottom - popupSize.height;\n popupRect.left = popupRect.right - popupSize.width;\n break;\n case RelativePosition.TopRight:\n popupRect.bottom = pt.y - offset.y;\n popupRect.left = pt.x + offset.x;\n popupRect.top = popupRect.bottom - popupSize.height;\n popupRect.right = popupRect.left + popupSize.width;\n break;\n case RelativePosition.BottomLeft:\n popupRect.top = pt.y + offset.y;\n popupRect.right = pt.x - offset.x;\n popupRect.bottom = popupRect.top + popupSize.height;\n popupRect.left = popupRect.right - popupSize.width;\n break;\n case RelativePosition.BottomRight:\n popupRect.top = pt.y + offset.y;\n popupRect.left = pt.x + offset.x;\n popupRect.bottom = popupRect.top + popupSize.height;\n popupRect.right = popupRect.left + popupSize.width;\n break;\n }\n\n return popupRect;\n }\n\n private setDivRef(div: HTMLDivElement | null) {\n // istanbul ignore else\n if (div) {\n const rect = div.getBoundingClientRect();\n const newSize = new Size(rect.width, rect.height);\n\n // istanbul ignore else\n if (!this.state.size.equals(newSize)) {\n // istanbul ignore else\n if (this.props.onSizeKnown)\n this.props.onSizeKnown(newSize);\n\n // istanbul ignore else\n if (this._isMounted)\n this.setState({ size: newSize });\n }\n }\n }\n\n /** @internal */\n public override render() {\n const popupRect = CursorPopup.getPopupRect(this.props.pt, this.props.offset, this.state.size, this.props.relativePosition);\n\n const positioningStyle: React.CSSProperties = {\n left: popupRect.left,\n top: popupRect.top,\n };\n\n const classNames = classnames(\n \"uifw-cursorpopup\",\n this.props.shadow && \"core-popup-shadow\",\n this.state.showPopup === CursorPopupShow.FadeOut && \"uifw-cursorpopup-fadeOut\",\n );\n\n return (\n <div className={classNames} ref={(e) => this.setDivRef(e)} style={positioningStyle}>\n {this.props.title &&\n <TitleBar\n title={this.props.title}\n className=\"uifw-cursorpopup-title\" />\n }\n {this.props.content}\n </div>\n );\n }\n}\n\n/** CursorPopup content with padding\n * @public\n */\nexport function CursorPopupContent(props: CommonDivProps) {\n return <Div {...props} mainClassName=\"uifw-cursorpopup-content\" />;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"CursorPopup.js","sourceRoot":"","sources":["../../../../../src/appui-react/cursor/cursorpopup/CursorPopup.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Cursor\r\n */\r\n\r\nimport \"./CursorPopup.scss\";\r\nimport * as React from \"react\";\r\nimport classnames from \"classnames\";\r\nimport { PointProps, RelativePosition } from \"@itwin/appui-abstract\";\r\nimport { CommonDivProps, CommonProps, Div, RectangleProps, Size, SizeProps } from \"@itwin/core-react\";\r\nimport { TitleBar } from \"@itwin/appui-layout-react\";\r\nimport { CursorPopupFadeOutEventArgs, CursorPopupManager } from \"./CursorPopupManager\";\r\n\r\n/** Properties for the [[CursorPopup]] React component\r\n * @public\r\n */\r\nexport interface CursorPopupProps extends CommonProps {\r\n id: string;\r\n content: React.ReactNode;\r\n pt: PointProps;\r\n offset: PointProps;\r\n relativePosition: RelativePosition;\r\n title?: string;\r\n shadow?: boolean;\r\n /** Function called when size is known. */\r\n onSizeKnown?: (size: SizeProps) => void;\r\n}\r\n\r\n/** Enum for showing CursorPopup\r\n * @internal - unit testing\r\n */\r\nexport enum CursorPopupShow {\r\n Open,\r\n FadeOut,\r\n}\r\n\r\n/** State for the [[CursorPopup]] React component\r\n * @internal\r\n */\r\ninterface CursorPopupState {\r\n showPopup: CursorPopupShow;\r\n size: Size;\r\n}\r\n\r\n/** CursorPopup React component\r\n * @public\r\n */\r\nexport class CursorPopup extends React.Component<CursorPopupProps, CursorPopupState> {\r\n\r\n private _isMounted: boolean = false;\r\n\r\n /** @internal */\r\n public static fadeOutTime = 500;\r\n\r\n /** @internal */\r\n constructor(props: CursorPopupProps) {\r\n super(props);\r\n\r\n this.state = {\r\n showPopup: CursorPopupShow.Open,\r\n size: new Size(-1, -1),\r\n };\r\n }\r\n\r\n public override componentDidMount() {\r\n this._isMounted = true;\r\n CursorPopupManager.onCursorPopupFadeOutEvent.addListener(this._handleCursorPopupFadeOutEvent);\r\n }\r\n\r\n public override componentWillUnmount() {\r\n this._isMounted = false;\r\n CursorPopupManager.onCursorPopupFadeOutEvent.removeListener(this._handleCursorPopupFadeOutEvent);\r\n }\r\n\r\n private _handleCursorPopupFadeOutEvent = (args: CursorPopupFadeOutEventArgs) => {\r\n if (this.props.id === args.id) {\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({ showPopup: CursorPopupShow.FadeOut });\r\n }\r\n };\r\n\r\n /** @internal */\r\n public static getPopupRect(pt: PointProps, offset: PointProps, popupSize: SizeProps | undefined, relativePosition: RelativePosition): RectangleProps {\r\n const popupRect = { top: 0, left: 0, right: 0, bottom: 0 };\r\n\r\n if (popupSize === undefined)\r\n return popupRect;\r\n\r\n switch (relativePosition) {\r\n case RelativePosition.Top:\r\n popupRect.bottom = pt.y - offset.y;\r\n popupRect.left = pt.x - (popupSize.width / 2);\r\n popupRect.top = popupRect.bottom - popupSize.height;\r\n popupRect.right = popupRect.left + popupSize.width;\r\n break;\r\n case RelativePosition.Left:\r\n popupRect.right = pt.x - offset.x;\r\n popupRect.top = pt.y - (popupSize.height / 2);\r\n popupRect.left = popupRect.right - popupSize.width;\r\n popupRect.bottom = popupRect.top + popupSize.height;\r\n break;\r\n case RelativePosition.Right:\r\n popupRect.left = pt.x + offset.x;\r\n popupRect.top = pt.y - (popupSize.height / 2);\r\n popupRect.right = popupRect.left + popupSize.width;\r\n popupRect.bottom = popupRect.top + popupSize.height;\r\n break;\r\n case RelativePosition.Bottom:\r\n popupRect.top = pt.y + offset.y;\r\n popupRect.left = pt.x - (popupSize.width / 2);\r\n popupRect.bottom = popupRect.top + popupSize.height;\r\n popupRect.right = popupRect.left + popupSize.width;\r\n break;\r\n case RelativePosition.TopLeft:\r\n popupRect.bottom = pt.y - offset.y;\r\n popupRect.right = pt.x - offset.x;\r\n popupRect.top = popupRect.bottom - popupSize.height;\r\n popupRect.left = popupRect.right - popupSize.width;\r\n break;\r\n case RelativePosition.TopRight:\r\n popupRect.bottom = pt.y - offset.y;\r\n popupRect.left = pt.x + offset.x;\r\n popupRect.top = popupRect.bottom - popupSize.height;\r\n popupRect.right = popupRect.left + popupSize.width;\r\n break;\r\n case RelativePosition.BottomLeft:\r\n popupRect.top = pt.y + offset.y;\r\n popupRect.right = pt.x - offset.x;\r\n popupRect.bottom = popupRect.top + popupSize.height;\r\n popupRect.left = popupRect.right - popupSize.width;\r\n break;\r\n case RelativePosition.BottomRight:\r\n popupRect.top = pt.y + offset.y;\r\n popupRect.left = pt.x + offset.x;\r\n popupRect.bottom = popupRect.top + popupSize.height;\r\n popupRect.right = popupRect.left + popupSize.width;\r\n break;\r\n }\r\n\r\n return popupRect;\r\n }\r\n\r\n private setDivRef(div: HTMLDivElement | null) {\r\n // istanbul ignore else\r\n if (div) {\r\n const rect = div.getBoundingClientRect();\r\n const newSize = new Size(rect.width, rect.height);\r\n\r\n // istanbul ignore else\r\n if (!this.state.size.equals(newSize)) {\r\n // istanbul ignore else\r\n if (this.props.onSizeKnown)\r\n this.props.onSizeKnown(newSize);\r\n\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({ size: newSize });\r\n }\r\n }\r\n }\r\n\r\n /** @internal */\r\n public override render() {\r\n const popupRect = CursorPopup.getPopupRect(this.props.pt, this.props.offset, this.state.size, this.props.relativePosition);\r\n\r\n const positioningStyle: React.CSSProperties = {\r\n left: popupRect.left,\r\n top: popupRect.top,\r\n };\r\n\r\n const classNames = classnames(\r\n \"uifw-cursorpopup\",\r\n this.props.shadow && \"core-popup-shadow\",\r\n this.state.showPopup === CursorPopupShow.FadeOut && \"uifw-cursorpopup-fadeOut\",\r\n );\r\n\r\n return (\r\n <div className={classNames} ref={(e) => this.setDivRef(e)} style={positioningStyle}>\r\n {this.props.title &&\r\n <TitleBar\r\n title={this.props.title}\r\n className=\"uifw-cursorpopup-title\" />\r\n }\r\n {this.props.content}\r\n </div>\r\n );\r\n }\r\n}\r\n\r\n/** CursorPopup content with padding\r\n * @public\r\n */\r\nexport function CursorPopupContent(props: CommonDivProps) {\r\n return <Div {...props} mainClassName=\"uifw-cursorpopup-content\" />;\r\n}\r\n"]}
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
@import "../../variables";
|
|
6
|
-
|
|
7
|
-
.uifw-cursorpopup {
|
|
8
|
-
border: {
|
|
9
|
-
color: $uifw-popup-border-color;
|
|
10
|
-
radius: $uifw-popup-border-radius;
|
|
11
|
-
style: solid;
|
|
12
|
-
width: $uifw-popup-border-width;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
background-color: hsl(var(--iui-color-background-hsl) / $uifw-popup-opacity);
|
|
16
|
-
position: fixed;
|
|
17
|
-
height: fit-content;
|
|
18
|
-
width: fit-content;
|
|
19
|
-
transition: opacity 500ms;
|
|
20
|
-
|
|
21
|
-
> .uifw-cursorpopup-title {
|
|
22
|
-
min-height: $uifw-popup-title-bar-min-height;
|
|
23
|
-
opacity: $uifw-popup-opacity;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
> .uifw-cursorpopup-content {
|
|
27
|
-
padding: $uifw-popup-content-padding;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
&.uifw-cursorpopup-fadeOut {
|
|
31
|
-
opacity: 0;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
}
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
@import "../../variables";
|
|
6
|
+
|
|
7
|
+
.uifw-cursorpopup {
|
|
8
|
+
border: {
|
|
9
|
+
color: $uifw-popup-border-color;
|
|
10
|
+
radius: $uifw-popup-border-radius;
|
|
11
|
+
style: solid;
|
|
12
|
+
width: $uifw-popup-border-width;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
background-color: hsl(var(--iui-color-background-hsl) / $uifw-popup-opacity);
|
|
16
|
+
position: fixed;
|
|
17
|
+
height: fit-content;
|
|
18
|
+
width: fit-content;
|
|
19
|
+
transition: opacity 500ms;
|
|
20
|
+
|
|
21
|
+
> .uifw-cursorpopup-title {
|
|
22
|
+
min-height: $uifw-popup-title-bar-min-height;
|
|
23
|
+
opacity: $uifw-popup-opacity;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
> .uifw-cursorpopup-content {
|
|
27
|
+
padding: $uifw-popup-content-padding;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
&.uifw-cursorpopup-fadeOut {
|
|
31
|
+
opacity: 0;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CursorPopupManager.js","sourceRoot":"","sources":["../../../../../src/appui-react/cursor/cursorpopup/CursorPopupManager.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 Cursor\n */\n\nimport * as React from \"react\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport { PointProps, RelativePosition, UiEvent } from \"@itwin/appui-abstract\";\nimport { Point, RectangleProps, Size, SizeProps } from \"@itwin/core-react\";\nimport { UiFramework } from \"../../UiFramework\";\nimport { CursorPopup } from \"./CursorPopup\";\n\n/** Options for the [[CursorPopupManager]] open method\n * @public\n */\nexport interface CursorPopupOptions {\n /** Title of the popup */\n title?: string;\n /** Called on popup close */\n onClose?: () => void;\n /** Callback to apply changes */\n onApply?: () => void;\n /** Draw shadow */\n shadow?: boolean;\n}\n\n/** CursorPopup Update Position Event Args interface.\n * @internal\n */\nexport interface CursorPopupUpdatePositionEventArgs {\n pt: PointProps;\n}\n\n/** CursorPopup Update Position Event class.\n * @internal\n */\nexport class CursorPopupUpdatePositionEvent extends UiEvent<CursorPopupUpdatePositionEventArgs> { }\n\n/** CursorPopup FadeOut Event Args interface.\n * @internal\n */\nexport interface CursorPopupFadeOutEventArgs {\n id: string;\n}\n\n/** CursorPopup FadeOut Event class.\n * @internal\n */\nexport class CursorPopupFadeOutEvent extends UiEvent<CursorPopupFadeOutEventArgs> { }\n\n/** Information maintained by CursorPopupManager about a CursorPopup\n * @internal\n */\ninterface CursorPopupInfo {\n id: string;\n content: React.ReactNode;\n relativePosition: RelativePosition;\n offset: Point;\n priority: number;\n options?: CursorPopupOptions;\n\n renderRelativePosition: RelativePosition;\n popupSize?: Size;\n}\n\n/** Cursor Popups Changed Event class.\n * @internal\n */\nclass CursorPopupsChangedEvent extends UiEvent<{}> { }\n\n/** CursorPopup component\n * @public\n */\nexport class CursorPopupManager {\n private static _popups: CursorPopupInfo[] = new Array<CursorPopupInfo>();\n\n /** @internal */\n public static readonly onCursorPopupUpdatePositionEvent = new CursorPopupUpdatePositionEvent();\n /** @internal */\n public static readonly onCursorPopupFadeOutEvent = new CursorPopupFadeOutEvent();\n /** @internal */\n public static readonly onCursorPopupsChangedEvent = new CursorPopupsChangedEvent();\n /** @internal */\n public static clearPopups() {\n this._popups.length = 0;\n CursorPopupManager._emitPopupsChangedEvent();\n }\n\n public static get popups() { return this._popups; }\n\n public static get popupCount() { return this._popups.length; }\n\n private static _emitPopupsChangedEvent(): void {\n CursorPopupManager.onCursorPopupsChangedEvent.emit({});\n }\n\n private static pushPopup(popupInfo: CursorPopupInfo): void {\n CursorPopupManager._popups.push(popupInfo);\n CursorPopupManager._emitPopupsChangedEvent();\n }\n\n /** Called to open popup with a new set of properties\n */\n public static open(id: string, content: React.ReactNode, pt: PointProps, offset: PointProps, relativePosition: RelativePosition, priority: number = 0, options?: CursorPopupOptions) {\n const popupInfo = CursorPopupManager._popups.find((info: CursorPopupInfo) => id === info.id);\n if (popupInfo) {\n popupInfo.content = content;\n popupInfo.offset = Point.create(offset);\n popupInfo.relativePosition = relativePosition;\n popupInfo.renderRelativePosition = relativePosition;\n popupInfo.priority = priority;\n popupInfo.options = options;\n } else {\n const newPopupInfo: CursorPopupInfo = { id, content, offset: Point.create(offset), relativePosition, options, renderRelativePosition: relativePosition, priority };\n CursorPopupManager.pushPopup(newPopupInfo);\n }\n\n CursorPopupManager.updatePosition(pt);\n }\n\n /** Called to update popup with a new set of properties\n */\n public static update(id: string, content: React.ReactNode, pt: PointProps, offset: PointProps, relativePosition: RelativePosition, priority: number = 0) {\n const popupInfo = CursorPopupManager._popups.find((info: CursorPopupInfo) => id === info.id);\n if (popupInfo) {\n popupInfo.content = content;\n popupInfo.offset = Point.create(offset);\n popupInfo.relativePosition = relativePosition;\n popupInfo.renderRelativePosition = relativePosition;\n popupInfo.priority = priority;\n } else {\n Logger.logError(UiFramework.loggerCategory(this), `update: Could not find popup with id of '${id}'`);\n }\n\n CursorPopupManager.updatePosition(pt);\n }\n\n /** Called to move the open popup to new location\n */\n public static updatePosition(pt: PointProps) {\n CursorPopupManager.resetPopupsRenderRelativePosition(Point.create(pt));\n CursorPopupManager.onCursorPopupUpdatePositionEvent.emit({ pt });\n }\n\n /** Called when tool wants to close the popup\n */\n public static close(id: string, apply: boolean, fadeOut?: boolean) {\n const popupInfo = CursorPopupManager._popups.find((info: CursorPopupInfo) => id === info.id);\n\n if (popupInfo) {\n if (popupInfo.options) {\n if (apply && popupInfo.options.onApply)\n popupInfo.options.onApply();\n\n if (popupInfo.options.onClose)\n popupInfo.options.onClose();\n }\n\n if (fadeOut) {\n CursorPopupManager.onCursorPopupFadeOutEvent.emit({ id });\n setTimeout(() => {\n CursorPopupManager.removePopup(id);\n }, CursorPopup.fadeOutTime);\n\n } else {\n CursorPopupManager.removePopup(id);\n }\n } else {\n Logger.logError(UiFramework.loggerCategory(this), `close: Could not find popup with id of '${id}'`);\n }\n }\n\n private static removePopup(id: string): void {\n const index = CursorPopupManager._popups.findIndex((popupInfo: CursorPopupInfo) => id === popupInfo.id);\n // istanbul ignore else\n if (index >= 0) {\n CursorPopupManager._popups.splice(index, 1);\n CursorPopupManager._emitPopupsChangedEvent();\n }\n }\n\n private static resetPopupsRenderRelativePosition(pt: Point) {\n CursorPopupManager.popups.forEach((popupInfo: CursorPopupInfo) => {\n popupInfo.renderRelativePosition = popupInfo.relativePosition;\n\n const flipped = CursorPopupManager.validateRenderRelativePosition(pt, popupInfo);\n\n // If flipped, call again to validate again.\n if (flipped) {\n CursorPopupManager.validateRenderRelativePosition(pt, popupInfo);\n }\n });\n }\n\n private static validateRenderRelativePosition(pt: Point, popupInfo: CursorPopupInfo): boolean {\n const popupRect = CursorPopup.getPopupRect(pt, Point.create(popupInfo.offset), popupInfo.popupSize, popupInfo.renderRelativePosition);\n const { outPos, flipped } = CursorPopupManager.autoFlip(popupInfo.renderRelativePosition, popupRect, window.innerWidth, window.innerHeight);\n\n if (flipped)\n popupInfo.renderRelativePosition = outPos;\n\n return flipped;\n }\n\n private static autoFlip(inPos: RelativePosition, rect: RectangleProps, windowWidth: number, windowHeight: number): { outPos: RelativePosition, flipped: boolean } {\n let flipped = false;\n let outPos = inPos;\n\n if (rect.right > windowWidth) {\n flipped = true;\n switch (inPos) {\n case RelativePosition.Top:\n case RelativePosition.TopRight:\n outPos = RelativePosition.TopLeft;\n break;\n case RelativePosition.Right:\n outPos = RelativePosition.Left;\n break;\n case RelativePosition.Bottom:\n case RelativePosition.BottomRight:\n outPos = RelativePosition.BottomLeft;\n break;\n }\n }\n\n if (rect.left < 0) {\n flipped = true;\n switch (inPos) {\n case RelativePosition.Top:\n case RelativePosition.TopLeft:\n outPos = RelativePosition.TopRight;\n break;\n case RelativePosition.Left:\n outPos = RelativePosition.Right;\n break;\n case RelativePosition.Bottom:\n case RelativePosition.BottomLeft:\n outPos = RelativePosition.BottomRight;\n break;\n }\n }\n\n if (rect.bottom > windowHeight) {\n flipped = true;\n switch (inPos) {\n case RelativePosition.Left:\n case RelativePosition.BottomLeft:\n outPos = RelativePosition.TopLeft;\n break;\n case RelativePosition.Bottom:\n outPos = RelativePosition.Top;\n break;\n case RelativePosition.Right:\n case RelativePosition.BottomRight:\n outPos = RelativePosition.TopRight;\n break;\n }\n }\n\n if (rect.top < 0) {\n flipped = true;\n switch (inPos) {\n case RelativePosition.Left:\n case RelativePosition.TopLeft:\n outPos = RelativePosition.BottomLeft;\n break;\n case RelativePosition.Top:\n outPos = RelativePosition.Bottom;\n break;\n case RelativePosition.Right:\n case RelativePosition.TopRight:\n outPos = RelativePosition.BottomRight;\n break;\n }\n }\n\n return { outPos, flipped };\n }\n\n}\n\n/** State for the [[CursorPopupRenderer]] React component */\ninterface CursorPopupRendererState {\n pt: Point;\n}\n\n/** CursorPopupRenderer React component.\n * @public\n */\nexport class CursorPopupRenderer extends React.Component<any, CursorPopupRendererState> {\n\n constructor(props: any) {\n super(props);\n\n this.state = {\n pt: new Point(),\n };\n }\n\n public override render(): React.ReactNode {\n if (CursorPopupManager.popupCount <= 0)\n return null;\n\n return (\n <>\n {this.renderPositions()}\n </>\n );\n }\n\n private _handleSizeKnown(popupInfo: CursorPopupInfo, size: SizeProps) {\n popupInfo.popupSize = Size.create(size);\n }\n\n private renderPositions(): React.ReactNode[] {\n const positions = new Array<React.ReactNode>();\n let renderedPosition: React.ReactNode;\n const begin = RelativePosition.Left;\n const end = RelativePosition.BottomRight;\n\n for (let position = begin; position <= end; position++) {\n renderedPosition = this.renderRelativePosition(position);\n if (renderedPosition)\n positions.push(renderedPosition);\n }\n\n return positions;\n }\n\n private renderRelativePosition(relativePosition: RelativePosition): React.ReactNode {\n const filteredInfo = CursorPopupManager.popups.filter((popupInfo: CursorPopupInfo) => popupInfo.renderRelativePosition === relativePosition);\n\n if (filteredInfo.length > 0) {\n let totalDimension = 0;\n const ascending =\n relativePosition === RelativePosition.Right ||\n relativePosition === RelativePosition.BottomRight ||\n relativePosition === RelativePosition.Bottom ||\n relativePosition === RelativePosition.BottomLeft;\n\n const positionPopups = filteredInfo\n .sort((a: CursorPopupInfo, b: CursorPopupInfo): number => ascending ? a.priority - b.priority : b.priority - a.priority)\n .map((popupInfo: CursorPopupInfo, index: number) => {\n\n const title = (popupInfo.options !== undefined) ? popupInfo.options.title : \"\";\n const shadow = (popupInfo.options !== undefined) ? popupInfo.options.shadow : false;\n let offset = popupInfo.offset;\n\n if (index > 0)\n offset = this.adjustOffset(offset, popupInfo.renderRelativePosition, totalDimension);\n\n if (popupInfo.popupSize)\n totalDimension += this.getDimension(popupInfo.popupSize, relativePosition);\n\n return (\n <CursorPopup key={popupInfo.id}\n id={popupInfo.id}\n content={popupInfo.content}\n pt={this.state.pt}\n offset={offset}\n relativePosition={popupInfo.renderRelativePosition}\n title={title}\n shadow={shadow}\n onSizeKnown={(size: SizeProps) => this._handleSizeKnown(popupInfo, size)} />\n );\n });\n\n return (\n <React.Fragment key={relativePosition.toString()}>\n {positionPopups}\n </React.Fragment>\n );\n }\n\n return null;\n }\n\n private getDimension(popupSize: Size, relativePosition: RelativePosition): number {\n let dimension = 0;\n\n switch (relativePosition) {\n case RelativePosition.Top:\n case RelativePosition.Bottom:\n case RelativePosition.TopLeft:\n case RelativePosition.TopRight:\n case RelativePosition.BottomLeft:\n case RelativePosition.BottomRight:\n dimension = popupSize.height;\n break;\n case RelativePosition.Left:\n case RelativePosition.Right:\n dimension = popupSize.width;\n break;\n }\n\n return dimension;\n }\n\n private adjustOffset(offset: Point, relativePosition: RelativePosition, dimension: number): Point {\n let outOffset = Point.create(offset.toProps());\n\n switch (relativePosition) {\n case RelativePosition.Top:\n case RelativePosition.Bottom:\n case RelativePosition.TopLeft:\n case RelativePosition.TopRight:\n case RelativePosition.BottomLeft:\n case RelativePosition.BottomRight:\n outOffset = Point.create({ x: offset.x, y: offset.y + dimension });\n break;\n case RelativePosition.Left:\n case RelativePosition.Right:\n outOffset = Point.create({ x: offset.x + dimension, y: offset.y });\n break;\n }\n\n return outOffset;\n }\n\n public override componentDidMount(): void {\n CursorPopupManager.onCursorPopupsChangedEvent.addListener(this._handlePopupChangedEvent);\n CursorPopupManager.onCursorPopupUpdatePositionEvent.addListener(this._handleCursorPopupUpdatePositionEvent);\n }\n\n public override componentWillUnmount(): void {\n CursorPopupManager.onCursorPopupsChangedEvent.removeListener(this._handlePopupChangedEvent);\n CursorPopupManager.onCursorPopupUpdatePositionEvent.removeListener(this._handleCursorPopupUpdatePositionEvent);\n }\n\n private _handlePopupChangedEvent = (_args: any) => {\n this.forceUpdate();\n };\n\n private _handleCursorPopupUpdatePositionEvent = (args: CursorPopupUpdatePositionEventArgs) => {\n this.setState({ pt: Point.create(args.pt) });\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"CursorPopupManager.js","sourceRoot":"","sources":["../../../../../src/appui-react/cursor/cursorpopup/CursorPopupManager.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Cursor\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { PointProps, RelativePosition, UiEvent } from \"@itwin/appui-abstract\";\r\nimport { Point, RectangleProps, Size, SizeProps } from \"@itwin/core-react\";\r\nimport { UiFramework } from \"../../UiFramework\";\r\nimport { CursorPopup } from \"./CursorPopup\";\r\n\r\n/** Options for the [[CursorPopupManager]] open method\r\n * @public\r\n */\r\nexport interface CursorPopupOptions {\r\n /** Title of the popup */\r\n title?: string;\r\n /** Called on popup close */\r\n onClose?: () => void;\r\n /** Callback to apply changes */\r\n onApply?: () => void;\r\n /** Draw shadow */\r\n shadow?: boolean;\r\n}\r\n\r\n/** CursorPopup Update Position Event Args interface.\r\n * @internal\r\n */\r\nexport interface CursorPopupUpdatePositionEventArgs {\r\n pt: PointProps;\r\n}\r\n\r\n/** CursorPopup Update Position Event class.\r\n * @internal\r\n */\r\nexport class CursorPopupUpdatePositionEvent extends UiEvent<CursorPopupUpdatePositionEventArgs> { }\r\n\r\n/** CursorPopup FadeOut Event Args interface.\r\n * @internal\r\n */\r\nexport interface CursorPopupFadeOutEventArgs {\r\n id: string;\r\n}\r\n\r\n/** CursorPopup FadeOut Event class.\r\n * @internal\r\n */\r\nexport class CursorPopupFadeOutEvent extends UiEvent<CursorPopupFadeOutEventArgs> { }\r\n\r\n/** Information maintained by CursorPopupManager about a CursorPopup\r\n * @internal\r\n */\r\ninterface CursorPopupInfo {\r\n id: string;\r\n content: React.ReactNode;\r\n relativePosition: RelativePosition;\r\n offset: Point;\r\n priority: number;\r\n options?: CursorPopupOptions;\r\n\r\n renderRelativePosition: RelativePosition;\r\n popupSize?: Size;\r\n}\r\n\r\n/** Cursor Popups Changed Event class.\r\n * @internal\r\n */\r\nclass CursorPopupsChangedEvent extends UiEvent<{}> { }\r\n\r\n/** CursorPopup component\r\n * @public\r\n */\r\nexport class CursorPopupManager {\r\n private static _popups: CursorPopupInfo[] = new Array<CursorPopupInfo>();\r\n\r\n /** @internal */\r\n public static readonly onCursorPopupUpdatePositionEvent = new CursorPopupUpdatePositionEvent();\r\n /** @internal */\r\n public static readonly onCursorPopupFadeOutEvent = new CursorPopupFadeOutEvent();\r\n /** @internal */\r\n public static readonly onCursorPopupsChangedEvent = new CursorPopupsChangedEvent();\r\n /** @internal */\r\n public static clearPopups() {\r\n this._popups.length = 0;\r\n CursorPopupManager._emitPopupsChangedEvent();\r\n }\r\n\r\n public static get popups() { return this._popups; }\r\n\r\n public static get popupCount() { return this._popups.length; }\r\n\r\n private static _emitPopupsChangedEvent(): void {\r\n CursorPopupManager.onCursorPopupsChangedEvent.emit({});\r\n }\r\n\r\n private static pushPopup(popupInfo: CursorPopupInfo): void {\r\n CursorPopupManager._popups.push(popupInfo);\r\n CursorPopupManager._emitPopupsChangedEvent();\r\n }\r\n\r\n /** Called to open popup with a new set of properties\r\n */\r\n public static open(id: string, content: React.ReactNode, pt: PointProps, offset: PointProps, relativePosition: RelativePosition, priority: number = 0, options?: CursorPopupOptions) {\r\n const popupInfo = CursorPopupManager._popups.find((info: CursorPopupInfo) => id === info.id);\r\n if (popupInfo) {\r\n popupInfo.content = content;\r\n popupInfo.offset = Point.create(offset);\r\n popupInfo.relativePosition = relativePosition;\r\n popupInfo.renderRelativePosition = relativePosition;\r\n popupInfo.priority = priority;\r\n popupInfo.options = options;\r\n } else {\r\n const newPopupInfo: CursorPopupInfo = { id, content, offset: Point.create(offset), relativePosition, options, renderRelativePosition: relativePosition, priority };\r\n CursorPopupManager.pushPopup(newPopupInfo);\r\n }\r\n\r\n CursorPopupManager.updatePosition(pt);\r\n }\r\n\r\n /** Called to update popup with a new set of properties\r\n */\r\n public static update(id: string, content: React.ReactNode, pt: PointProps, offset: PointProps, relativePosition: RelativePosition, priority: number = 0) {\r\n const popupInfo = CursorPopupManager._popups.find((info: CursorPopupInfo) => id === info.id);\r\n if (popupInfo) {\r\n popupInfo.content = content;\r\n popupInfo.offset = Point.create(offset);\r\n popupInfo.relativePosition = relativePosition;\r\n popupInfo.renderRelativePosition = relativePosition;\r\n popupInfo.priority = priority;\r\n } else {\r\n Logger.logError(UiFramework.loggerCategory(this), `update: Could not find popup with id of '${id}'`);\r\n }\r\n\r\n CursorPopupManager.updatePosition(pt);\r\n }\r\n\r\n /** Called to move the open popup to new location\r\n */\r\n public static updatePosition(pt: PointProps) {\r\n CursorPopupManager.resetPopupsRenderRelativePosition(Point.create(pt));\r\n CursorPopupManager.onCursorPopupUpdatePositionEvent.emit({ pt });\r\n }\r\n\r\n /** Called when tool wants to close the popup\r\n */\r\n public static close(id: string, apply: boolean, fadeOut?: boolean) {\r\n const popupInfo = CursorPopupManager._popups.find((info: CursorPopupInfo) => id === info.id);\r\n\r\n if (popupInfo) {\r\n if (popupInfo.options) {\r\n if (apply && popupInfo.options.onApply)\r\n popupInfo.options.onApply();\r\n\r\n if (popupInfo.options.onClose)\r\n popupInfo.options.onClose();\r\n }\r\n\r\n if (fadeOut) {\r\n CursorPopupManager.onCursorPopupFadeOutEvent.emit({ id });\r\n setTimeout(() => {\r\n CursorPopupManager.removePopup(id);\r\n }, CursorPopup.fadeOutTime);\r\n\r\n } else {\r\n CursorPopupManager.removePopup(id);\r\n }\r\n } else {\r\n Logger.logError(UiFramework.loggerCategory(this), `close: Could not find popup with id of '${id}'`);\r\n }\r\n }\r\n\r\n private static removePopup(id: string): void {\r\n const index = CursorPopupManager._popups.findIndex((popupInfo: CursorPopupInfo) => id === popupInfo.id);\r\n // istanbul ignore else\r\n if (index >= 0) {\r\n CursorPopupManager._popups.splice(index, 1);\r\n CursorPopupManager._emitPopupsChangedEvent();\r\n }\r\n }\r\n\r\n private static resetPopupsRenderRelativePosition(pt: Point) {\r\n CursorPopupManager.popups.forEach((popupInfo: CursorPopupInfo) => {\r\n popupInfo.renderRelativePosition = popupInfo.relativePosition;\r\n\r\n const flipped = CursorPopupManager.validateRenderRelativePosition(pt, popupInfo);\r\n\r\n // If flipped, call again to validate again.\r\n if (flipped) {\r\n CursorPopupManager.validateRenderRelativePosition(pt, popupInfo);\r\n }\r\n });\r\n }\r\n\r\n private static validateRenderRelativePosition(pt: Point, popupInfo: CursorPopupInfo): boolean {\r\n const popupRect = CursorPopup.getPopupRect(pt, Point.create(popupInfo.offset), popupInfo.popupSize, popupInfo.renderRelativePosition);\r\n const { outPos, flipped } = CursorPopupManager.autoFlip(popupInfo.renderRelativePosition, popupRect, window.innerWidth, window.innerHeight);\r\n\r\n if (flipped)\r\n popupInfo.renderRelativePosition = outPos;\r\n\r\n return flipped;\r\n }\r\n\r\n private static autoFlip(inPos: RelativePosition, rect: RectangleProps, windowWidth: number, windowHeight: number): { outPos: RelativePosition, flipped: boolean } {\r\n let flipped = false;\r\n let outPos = inPos;\r\n\r\n if (rect.right > windowWidth) {\r\n flipped = true;\r\n switch (inPos) {\r\n case RelativePosition.Top:\r\n case RelativePosition.TopRight:\r\n outPos = RelativePosition.TopLeft;\r\n break;\r\n case RelativePosition.Right:\r\n outPos = RelativePosition.Left;\r\n break;\r\n case RelativePosition.Bottom:\r\n case RelativePosition.BottomRight:\r\n outPos = RelativePosition.BottomLeft;\r\n break;\r\n }\r\n }\r\n\r\n if (rect.left < 0) {\r\n flipped = true;\r\n switch (inPos) {\r\n case RelativePosition.Top:\r\n case RelativePosition.TopLeft:\r\n outPos = RelativePosition.TopRight;\r\n break;\r\n case RelativePosition.Left:\r\n outPos = RelativePosition.Right;\r\n break;\r\n case RelativePosition.Bottom:\r\n case RelativePosition.BottomLeft:\r\n outPos = RelativePosition.BottomRight;\r\n break;\r\n }\r\n }\r\n\r\n if (rect.bottom > windowHeight) {\r\n flipped = true;\r\n switch (inPos) {\r\n case RelativePosition.Left:\r\n case RelativePosition.BottomLeft:\r\n outPos = RelativePosition.TopLeft;\r\n break;\r\n case RelativePosition.Bottom:\r\n outPos = RelativePosition.Top;\r\n break;\r\n case RelativePosition.Right:\r\n case RelativePosition.BottomRight:\r\n outPos = RelativePosition.TopRight;\r\n break;\r\n }\r\n }\r\n\r\n if (rect.top < 0) {\r\n flipped = true;\r\n switch (inPos) {\r\n case RelativePosition.Left:\r\n case RelativePosition.TopLeft:\r\n outPos = RelativePosition.BottomLeft;\r\n break;\r\n case RelativePosition.Top:\r\n outPos = RelativePosition.Bottom;\r\n break;\r\n case RelativePosition.Right:\r\n case RelativePosition.TopRight:\r\n outPos = RelativePosition.BottomRight;\r\n break;\r\n }\r\n }\r\n\r\n return { outPos, flipped };\r\n }\r\n\r\n}\r\n\r\n/** State for the [[CursorPopupRenderer]] React component */\r\ninterface CursorPopupRendererState {\r\n pt: Point;\r\n}\r\n\r\n/** CursorPopupRenderer React component.\r\n * @public\r\n */\r\nexport class CursorPopupRenderer extends React.Component<any, CursorPopupRendererState> {\r\n\r\n constructor(props: any) {\r\n super(props);\r\n\r\n this.state = {\r\n pt: new Point(),\r\n };\r\n }\r\n\r\n public override render(): React.ReactNode {\r\n if (CursorPopupManager.popupCount <= 0)\r\n return null;\r\n\r\n return (\r\n <>\r\n {this.renderPositions()}\r\n </>\r\n );\r\n }\r\n\r\n private _handleSizeKnown(popupInfo: CursorPopupInfo, size: SizeProps) {\r\n popupInfo.popupSize = Size.create(size);\r\n }\r\n\r\n private renderPositions(): React.ReactNode[] {\r\n const positions = new Array<React.ReactNode>();\r\n let renderedPosition: React.ReactNode;\r\n const begin = RelativePosition.Left;\r\n const end = RelativePosition.BottomRight;\r\n\r\n for (let position = begin; position <= end; position++) {\r\n renderedPosition = this.renderRelativePosition(position);\r\n if (renderedPosition)\r\n positions.push(renderedPosition);\r\n }\r\n\r\n return positions;\r\n }\r\n\r\n private renderRelativePosition(relativePosition: RelativePosition): React.ReactNode {\r\n const filteredInfo = CursorPopupManager.popups.filter((popupInfo: CursorPopupInfo) => popupInfo.renderRelativePosition === relativePosition);\r\n\r\n if (filteredInfo.length > 0) {\r\n let totalDimension = 0;\r\n const ascending =\r\n relativePosition === RelativePosition.Right ||\r\n relativePosition === RelativePosition.BottomRight ||\r\n relativePosition === RelativePosition.Bottom ||\r\n relativePosition === RelativePosition.BottomLeft;\r\n\r\n const positionPopups = filteredInfo\r\n .sort((a: CursorPopupInfo, b: CursorPopupInfo): number => ascending ? a.priority - b.priority : b.priority - a.priority)\r\n .map((popupInfo: CursorPopupInfo, index: number) => {\r\n\r\n const title = (popupInfo.options !== undefined) ? popupInfo.options.title : \"\";\r\n const shadow = (popupInfo.options !== undefined) ? popupInfo.options.shadow : false;\r\n let offset = popupInfo.offset;\r\n\r\n if (index > 0)\r\n offset = this.adjustOffset(offset, popupInfo.renderRelativePosition, totalDimension);\r\n\r\n if (popupInfo.popupSize)\r\n totalDimension += this.getDimension(popupInfo.popupSize, relativePosition);\r\n\r\n return (\r\n <CursorPopup key={popupInfo.id}\r\n id={popupInfo.id}\r\n content={popupInfo.content}\r\n pt={this.state.pt}\r\n offset={offset}\r\n relativePosition={popupInfo.renderRelativePosition}\r\n title={title}\r\n shadow={shadow}\r\n onSizeKnown={(size: SizeProps) => this._handleSizeKnown(popupInfo, size)} />\r\n );\r\n });\r\n\r\n return (\r\n <React.Fragment key={relativePosition.toString()}>\r\n {positionPopups}\r\n </React.Fragment>\r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private getDimension(popupSize: Size, relativePosition: RelativePosition): number {\r\n let dimension = 0;\r\n\r\n switch (relativePosition) {\r\n case RelativePosition.Top:\r\n case RelativePosition.Bottom:\r\n case RelativePosition.TopLeft:\r\n case RelativePosition.TopRight:\r\n case RelativePosition.BottomLeft:\r\n case RelativePosition.BottomRight:\r\n dimension = popupSize.height;\r\n break;\r\n case RelativePosition.Left:\r\n case RelativePosition.Right:\r\n dimension = popupSize.width;\r\n break;\r\n }\r\n\r\n return dimension;\r\n }\r\n\r\n private adjustOffset(offset: Point, relativePosition: RelativePosition, dimension: number): Point {\r\n let outOffset = Point.create(offset.toProps());\r\n\r\n switch (relativePosition) {\r\n case RelativePosition.Top:\r\n case RelativePosition.Bottom:\r\n case RelativePosition.TopLeft:\r\n case RelativePosition.TopRight:\r\n case RelativePosition.BottomLeft:\r\n case RelativePosition.BottomRight:\r\n outOffset = Point.create({ x: offset.x, y: offset.y + dimension });\r\n break;\r\n case RelativePosition.Left:\r\n case RelativePosition.Right:\r\n outOffset = Point.create({ x: offset.x + dimension, y: offset.y });\r\n break;\r\n }\r\n\r\n return outOffset;\r\n }\r\n\r\n public override componentDidMount(): void {\r\n CursorPopupManager.onCursorPopupsChangedEvent.addListener(this._handlePopupChangedEvent);\r\n CursorPopupManager.onCursorPopupUpdatePositionEvent.addListener(this._handleCursorPopupUpdatePositionEvent);\r\n }\r\n\r\n public override componentWillUnmount(): void {\r\n CursorPopupManager.onCursorPopupsChangedEvent.removeListener(this._handlePopupChangedEvent);\r\n CursorPopupManager.onCursorPopupUpdatePositionEvent.removeListener(this._handleCursorPopupUpdatePositionEvent);\r\n }\r\n\r\n private _handlePopupChangedEvent = (_args: any) => {\r\n this.forceUpdate();\r\n };\r\n\r\n private _handleCursorPopupUpdatePositionEvent = (args: CursorPopupUpdatePositionEventArgs) => {\r\n this.setState({ pt: Point.create(args.pt) });\r\n };\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CursorPrompt.js","sourceRoot":"","sources":["../../../../../src/appui-react/cursor/cursorprompt/CursorPrompt.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 Notification\n */\n\nimport \"./CursorPrompt.scss\";\nimport * as React from \"react\";\nimport { ToolAssistanceInstruction } from \"@itwin/core-frontend\";\nimport { PointProps, RelativePosition } from \"@itwin/appui-abstract\";\nimport { Icon, Point, Timer } from \"@itwin/core-react\";\nimport { Text } from \"@itwin/itwinui-react\";\nimport { CursorInformation, CursorUpdatedEventArgs } from \"../CursorInformation\";\nimport { CursorPopupManager } from \"../cursorpopup/CursorPopupManager\";\n\n/** @internal */\nexport class CursorPrompt {\n private _timeOut: number;\n private _fadeOut: boolean;\n private _timer: Timer;\n private _relativePosition = RelativePosition.BottomRight;\n private _offset: Point = new Point(20, 20);\n private _popupId = \"cursor-prompt\";\n\n constructor(timeOut: number, fadeOut: boolean) {\n this._timeOut = timeOut;\n this._fadeOut = fadeOut;\n this._timer = new Timer(timeOut);\n }\n\n public display(toolIconSpec: string, instruction: ToolAssistanceInstruction, offset: PointProps = { x: 20, y: 20 }, relativePosition: RelativePosition = RelativePosition.BottomRight) {\n if (!instruction.text) {\n // istanbul ignore else\n if (this._timer.isRunning)\n this.close(false);\n return;\n }\n\n this._relativePosition = relativePosition;\n this._offset = Point.create(offset);\n\n const promptElement = (\n <div className=\"uifw-cursor-prompt\">\n {toolIconSpec && <span className=\"uifw-cursor-prompt-icon\"><Icon iconSpec={toolIconSpec} /></span>}\n <Text variant=\"body\" className=\"uifw-cursor-prompt-text\">{instruction.text}</Text>\n </div >\n );\n\n this._startCursorPopup(promptElement);\n\n this._timer.setOnExecute(() => this._endCursorPopup(this._fadeOut));\n this._timer.delay = this._timeOut;\n this._timer.start();\n }\n\n /** @internal - unit testing */\n public close(fadeOut: boolean) {\n this._timer.stop();\n this._endCursorPopup(fadeOut);\n }\n\n private _startCursorPopup = (promptElement: React.ReactElement) => {\n CursorPopupManager.open(this._popupId, promptElement, CursorInformation.cursorPosition, this._offset, this._relativePosition, 0, { shadow: true });\n\n if (!CursorInformation.onCursorUpdatedEvent.has(this._handleCursorUpdated))\n CursorInformation.onCursorUpdatedEvent.addListener(this._handleCursorUpdated);\n };\n\n private _endCursorPopup = (fadeOut?: boolean) => {\n CursorPopupManager.close(this._popupId, false, fadeOut);\n CursorInformation.onCursorUpdatedEvent.removeListener(this._handleCursorUpdated);\n };\n\n private _handleCursorUpdated = (args: CursorUpdatedEventArgs) => {\n CursorPopupManager.updatePosition(args.newPt);\n };\n\n}\n"]}
|
|
1
|
+
{"version":3,"file":"CursorPrompt.js","sourceRoot":"","sources":["../../../../../src/appui-react/cursor/cursorprompt/CursorPrompt.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,+BAA6B;AAC7B,+BAA+B;AAE/B,0DAAqE;AACrE,kDAAuD;AACvD,wDAA4C;AAC5C,4DAAiF;AACjF,0EAAuE;AAEvE,gBAAgB;AAChB,MAAa,YAAY;IAQvB,YAAY,OAAe,EAAE,OAAgB;QAJrC,sBAAiB,GAAG,iCAAgB,CAAC,WAAW,CAAC;QACjD,YAAO,GAAU,IAAI,kBAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACnC,aAAQ,GAAG,eAAe,CAAC;QAuC3B,sBAAiB,GAAG,CAAC,aAAiC,EAAE,EAAE;YAChE,uCAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,qCAAiB,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAEnJ,IAAI,CAAC,qCAAiB,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC;gBACxE,qCAAiB,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAClF,CAAC,CAAC;QAEM,oBAAe,GAAG,CAAC,OAAiB,EAAE,EAAE;YAC9C,uCAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YACxD,qCAAiB,CAAC,oBAAoB,CAAC,cAAc,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACnF,CAAC,CAAC;QAEM,yBAAoB,GAAG,CAAC,IAA4B,EAAE,EAAE;YAC9D,uCAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC,CAAC;QAlDA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,kBAAK,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAEM,OAAO,CAAC,YAAoB,EAAE,WAAsC,EAAE,SAAqB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,mBAAqC,iCAAgB,CAAC,WAAW;QACnL,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;YACrB,uBAAuB;YACvB,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS;gBACvB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO;SACR;QAED,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,kBAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEpC,MAAM,aAAa,GAAG,CACpB,6BAAK,SAAS,EAAC,oBAAoB;YAChC,YAAY,IAAI,8BAAM,SAAS,EAAC,yBAAyB;gBAAC,oBAAC,iBAAI,IAAC,QAAQ,EAAE,YAAY,GAAI,CAAO;YAClG,oBAAC,oBAAI,IAAC,OAAO,EAAC,MAAM,EAAC,SAAS,EAAC,yBAAyB,IAAE,WAAW,CAAC,IAAI,CAAQ,CAC7E,CACR,CAAC;QAEF,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAEtC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,+BAA+B;IACxB,KAAK,CAAC,OAAgB;QAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;CAkBF;AA7DD,oCA6DC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Notification\r\n */\r\n\r\nimport \"./CursorPrompt.scss\";\r\nimport * as React from \"react\";\r\nimport { ToolAssistanceInstruction } from \"@itwin/core-frontend\";\r\nimport { PointProps, RelativePosition } from \"@itwin/appui-abstract\";\r\nimport { Icon, Point, Timer } from \"@itwin/core-react\";\r\nimport { Text } from \"@itwin/itwinui-react\";\r\nimport { CursorInformation, CursorUpdatedEventArgs } from \"../CursorInformation\";\r\nimport { CursorPopupManager } from \"../cursorpopup/CursorPopupManager\";\r\n\r\n/** @internal */\r\nexport class CursorPrompt {\r\n private _timeOut: number;\r\n private _fadeOut: boolean;\r\n private _timer: Timer;\r\n private _relativePosition = RelativePosition.BottomRight;\r\n private _offset: Point = new Point(20, 20);\r\n private _popupId = \"cursor-prompt\";\r\n\r\n constructor(timeOut: number, fadeOut: boolean) {\r\n this._timeOut = timeOut;\r\n this._fadeOut = fadeOut;\r\n this._timer = new Timer(timeOut);\r\n }\r\n\r\n public display(toolIconSpec: string, instruction: ToolAssistanceInstruction, offset: PointProps = { x: 20, y: 20 }, relativePosition: RelativePosition = RelativePosition.BottomRight) {\r\n if (!instruction.text) {\r\n // istanbul ignore else\r\n if (this._timer.isRunning)\r\n this.close(false);\r\n return;\r\n }\r\n\r\n this._relativePosition = relativePosition;\r\n this._offset = Point.create(offset);\r\n\r\n const promptElement = (\r\n <div className=\"uifw-cursor-prompt\">\r\n {toolIconSpec && <span className=\"uifw-cursor-prompt-icon\"><Icon iconSpec={toolIconSpec} /></span>}\r\n <Text variant=\"body\" className=\"uifw-cursor-prompt-text\">{instruction.text}</Text>\r\n </div >\r\n );\r\n\r\n this._startCursorPopup(promptElement);\r\n\r\n this._timer.setOnExecute(() => this._endCursorPopup(this._fadeOut));\r\n this._timer.delay = this._timeOut;\r\n this._timer.start();\r\n }\r\n\r\n /** @internal - unit testing */\r\n public close(fadeOut: boolean) {\r\n this._timer.stop();\r\n this._endCursorPopup(fadeOut);\r\n }\r\n\r\n private _startCursorPopup = (promptElement: React.ReactElement) => {\r\n CursorPopupManager.open(this._popupId, promptElement, CursorInformation.cursorPosition, this._offset, this._relativePosition, 0, { shadow: true });\r\n\r\n if (!CursorInformation.onCursorUpdatedEvent.has(this._handleCursorUpdated))\r\n CursorInformation.onCursorUpdatedEvent.addListener(this._handleCursorUpdated);\r\n };\r\n\r\n private _endCursorPopup = (fadeOut?: boolean) => {\r\n CursorPopupManager.close(this._popupId, false, fadeOut);\r\n CursorInformation.onCursorUpdatedEvent.removeListener(this._handleCursorUpdated);\r\n };\r\n\r\n private _handleCursorUpdated = (args: CursorUpdatedEventArgs) => {\r\n CursorPopupManager.updatePosition(args.newPt);\r\n };\r\n\r\n}\r\n"]}
|
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
@import "~@itwin/core-react/lib/cjs/core-react/icons/variables";
|
|
6
|
-
@import "~@itwin/core-react/lib/cjs/core-react/style/themecolors";
|
|
7
|
-
|
|
8
|
-
.uifw-cursor-prompt {
|
|
9
|
-
padding: 5px;
|
|
10
|
-
|
|
11
|
-
color: var(--iui-color-text);
|
|
12
|
-
min-width: 100px;
|
|
13
|
-
max-width: 340px;
|
|
14
|
-
|
|
15
|
-
display: flex;
|
|
16
|
-
flex-direction: row;
|
|
17
|
-
align-items: center;
|
|
18
|
-
|
|
19
|
-
>.uifw-cursor-prompt-icon {
|
|
20
|
-
padding-left: 3px;
|
|
21
|
-
padding-right: 3px;
|
|
22
|
-
|
|
23
|
-
width: $uicore-icons-small;
|
|
24
|
-
height: $uicore-icons-small;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
>.uifw-cursor-prompt-text {
|
|
28
|
-
padding-left: 3px;
|
|
29
|
-
padding-right: 3px;
|
|
30
|
-
}
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
@import "~@itwin/core-react/lib/cjs/core-react/icons/variables";
|
|
6
|
+
@import "~@itwin/core-react/lib/cjs/core-react/style/themecolors";
|
|
7
|
+
|
|
8
|
+
.uifw-cursor-prompt {
|
|
9
|
+
padding: 5px;
|
|
10
|
+
|
|
11
|
+
color: var(--iui-color-text);
|
|
12
|
+
min-width: 100px;
|
|
13
|
+
max-width: 340px;
|
|
14
|
+
|
|
15
|
+
display: flex;
|
|
16
|
+
flex-direction: row;
|
|
17
|
+
align-items: center;
|
|
18
|
+
|
|
19
|
+
>.uifw-cursor-prompt-icon {
|
|
20
|
+
padding-left: 3px;
|
|
21
|
+
padding-right: 3px;
|
|
22
|
+
|
|
23
|
+
width: $uicore-icons-small;
|
|
24
|
+
height: $uicore-icons-small;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
>.uifw-cursor-prompt-text {
|
|
28
|
+
padding-left: 3px;
|
|
29
|
+
padding-right: 3px;
|
|
30
|
+
}
|
|
31
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentDialog.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/ContentDialog.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 Dialog\n */\n\nimport \"./ContentDialog.scss\";\nimport * as React from \"react\";\nimport { Dialog, DialogProps } from \"@itwin/core-react\";\nimport { ActiveContentChangedEventArgs } from \"../framework/FrameworkContent\";\nimport { SyncUiEventDispatcher, SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\nimport { UiFramework } from \"../UiFramework\";\nimport { UiSyncEventArgs } from \"@itwin/appui-abstract\";\nimport classnames from \"classnames\";\n\n// istanbul ignore next\n/**\n *@internal\n */\nexport function useActiveContentControlId(): string | undefined {\n const [activeContentId, setActiveContentId] = React.useState(UiFramework.content.getActiveContentControl()?.uniqueId);\n\n React.useEffect(() => {\n const onActiveContentChanged = (_args: ActiveContentChangedEventArgs) => {\n setActiveContentId(UiFramework.content.getActiveContentControl()?.uniqueId);\n };\n\n // IModelApp.viewManager.onSelectedViewportChanged will often fire before UI components have mounted\n // so use UiFramework.content.onActiveContentChangedEvent which will always trigger once all stage components\n // are loaded and when the IModelApp.viewManager.selectedView changes.\n UiFramework.content.onActiveContentChangedEvent.addListener(onActiveContentChanged);\n return () => {\n UiFramework.content.onActiveContentChangedEvent.removeListener(onActiveContentChanged);\n };\n }, []);\n\n React.useEffect(() => {\n const syncIdsOfInterest = [SyncUiEventId.ActiveContentChanged, SyncUiEventId.ContentControlActivated, SyncUiEventId.FrontstageReady];\n const handleSyncUiEvent = (args: UiSyncEventArgs): void => {\n // istanbul ignore else\n if (syncIdsOfInterest.some((value: string): boolean => args.eventIds.has(value))) {\n setActiveContentId(UiFramework.content.getActiveContentControl()?.uniqueId);\n }\n };\n\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\n }, []);\n\n return activeContentId;\n}\n\n/** Properties for the [[ContentDialog]] component\n * @public\n */\nexport interface ContentDialogProps extends DialogProps {\n dialogId: string;\n movable?: boolean;\n children: React.ReactNode;\n}\n\n/** Content Dialog React component uses the Dialog component with a modal={false} prop.\n * It controls the z-index to keep the focused dialog above content but below widgets.\n * @public\n */\nexport function ContentDialog(props: ContentDialogProps) {\n const { className, children, dialogId, style, modal, modelessId, onModelessPointerDown, ...otherProps } = props; // eslint-disable-line @typescript-eslint/no-unused-vars\n const activeContentControlId = useActiveContentControlId();\n // istanbul ignore next\n const dialogClassName = React.useMemo(() => classnames(activeContentControlId === dialogId ? \"active-content-dialog\" : \"inactive-content-dialog\", className),\n [activeContentControlId, className, dialogId]);\n\n const [zIndex, setZIndex] = React.useState(UiFramework.content.dialogs.getZIndex(dialogId));\n const updateZIndex = React.useCallback(() => {\n const newZ = UiFramework.content.dialogs.getZIndex(dialogId);\n // istanbul ignore else\n if (newZ !== zIndex) {\n setZIndex(newZ);\n }\n }, [dialogId, zIndex]);\n\n return (\n <Dialog\n className={dialogClassName}\n data-item-type=\"content-dialog\"\n data-item-id={dialogId}\n resizable={true}\n movable={true}\n trapFocus={false}\n modal={false}\n {...otherProps}\n modelessId={dialogId}\n onModelessPointerDown={(event) => UiFramework.content.dialogs.handlePointerDownEvent(event, dialogId, updateZIndex)}\n style={{ zIndex, ...style }}\n >\n {children}\n </Dialog >\n );\n}\n\n"]}
|
|
1
|
+
{"version":3,"file":"ContentDialog.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/ContentDialog.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Dialog\r\n */\r\n\r\nimport \"./ContentDialog.scss\";\r\nimport * as React from \"react\";\r\nimport { Dialog, DialogProps } from \"@itwin/core-react\";\r\nimport { ActiveContentChangedEventArgs } from \"../framework/FrameworkContent\";\r\nimport { SyncUiEventDispatcher, SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { UiSyncEventArgs } from \"@itwin/appui-abstract\";\r\nimport classnames from \"classnames\";\r\n\r\n// istanbul ignore next\r\n/**\r\n *@internal\r\n */\r\nexport function useActiveContentControlId(): string | undefined {\r\n const [activeContentId, setActiveContentId] = React.useState(UiFramework.content.getActiveContentControl()?.uniqueId);\r\n\r\n React.useEffect(() => {\r\n const onActiveContentChanged = (_args: ActiveContentChangedEventArgs) => {\r\n setActiveContentId(UiFramework.content.getActiveContentControl()?.uniqueId);\r\n };\r\n\r\n // IModelApp.viewManager.onSelectedViewportChanged will often fire before UI components have mounted\r\n // so use UiFramework.content.onActiveContentChangedEvent which will always trigger once all stage components\r\n // are loaded and when the IModelApp.viewManager.selectedView changes.\r\n UiFramework.content.onActiveContentChangedEvent.addListener(onActiveContentChanged);\r\n return () => {\r\n UiFramework.content.onActiveContentChangedEvent.removeListener(onActiveContentChanged);\r\n };\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n const syncIdsOfInterest = [SyncUiEventId.ActiveContentChanged, SyncUiEventId.ContentControlActivated, SyncUiEventId.FrontstageReady];\r\n const handleSyncUiEvent = (args: UiSyncEventArgs): void => {\r\n // istanbul ignore else\r\n if (syncIdsOfInterest.some((value: string): boolean => args.eventIds.has(value))) {\r\n setActiveContentId(UiFramework.content.getActiveContentControl()?.uniqueId);\r\n }\r\n };\r\n\r\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\r\n }, []);\r\n\r\n return activeContentId;\r\n}\r\n\r\n/** Properties for the [[ContentDialog]] component\r\n * @public\r\n */\r\nexport interface ContentDialogProps extends DialogProps {\r\n dialogId: string;\r\n movable?: boolean;\r\n children: React.ReactNode;\r\n}\r\n\r\n/** Content Dialog React component uses the Dialog component with a modal={false} prop.\r\n * It controls the z-index to keep the focused dialog above content but below widgets.\r\n * @public\r\n */\r\nexport function ContentDialog(props: ContentDialogProps) {\r\n const { className, children, dialogId, style, modal, modelessId, onModelessPointerDown, ...otherProps } = props; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n const activeContentControlId = useActiveContentControlId();\r\n // istanbul ignore next\r\n const dialogClassName = React.useMemo(() => classnames(activeContentControlId === dialogId ? \"active-content-dialog\" : \"inactive-content-dialog\", className),\r\n [activeContentControlId, className, dialogId]);\r\n\r\n const [zIndex, setZIndex] = React.useState(UiFramework.content.dialogs.getZIndex(dialogId));\r\n const updateZIndex = React.useCallback(() => {\r\n const newZ = UiFramework.content.dialogs.getZIndex(dialogId);\r\n // istanbul ignore else\r\n if (newZ !== zIndex) {\r\n setZIndex(newZ);\r\n }\r\n }, [dialogId, zIndex]);\r\n\r\n return (\r\n <Dialog\r\n className={dialogClassName}\r\n data-item-type=\"content-dialog\"\r\n data-item-id={dialogId}\r\n resizable={true}\r\n movable={true}\r\n trapFocus={false}\r\n modal={false}\r\n {...otherProps}\r\n modelessId={dialogId}\r\n onModelessPointerDown={(event) => UiFramework.content.dialogs.handlePointerDownEvent(event, dialogId, updateZIndex)}\r\n style={{ zIndex, ...style }}\r\n >\r\n {children}\r\n </Dialog >\r\n );\r\n}\r\n\r\n"]}
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
@import "~@itwin/core-react/lib/cjs/core-react/style/themecolors";
|
|
6
|
-
|
|
7
|
-
.core-dialog.active-content-dialog {
|
|
8
|
-
.core-dialog-area {
|
|
9
|
-
> .core-dialog-head {
|
|
10
|
-
color: $buic-text-color-highlight;
|
|
11
|
-
background-color: $buic-background-titlebar;
|
|
12
|
-
> .core-dialog-title {
|
|
13
|
-
font-weight: 800;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
.core-dialog.inactive-content-dialog {
|
|
19
|
-
.core-dialog-area {
|
|
20
|
-
> .core-dialog-head {
|
|
21
|
-
background-color: $buic-background-titlebar-outoffocus;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
@import "~@itwin/core-react/lib/cjs/core-react/style/themecolors";
|
|
6
|
+
|
|
7
|
+
.core-dialog.active-content-dialog {
|
|
8
|
+
.core-dialog-area {
|
|
9
|
+
> .core-dialog-head {
|
|
10
|
+
color: $buic-text-color-highlight;
|
|
11
|
+
background-color: $buic-background-titlebar;
|
|
12
|
+
> .core-dialog-title {
|
|
13
|
+
font-weight: 800;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.core-dialog.inactive-content-dialog {
|
|
19
|
+
.core-dialog-area {
|
|
20
|
+
> .core-dialog-head {
|
|
21
|
+
background-color: $buic-background-titlebar-outoffocus;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentDialogManager.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/ContentDialogManager.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,+BAA+B;AAE/B,2DAAyD;AACzD,iFAA0F;AAE1F,gCAAgC;AAEhC;;;GAGG;AACH,MAAa,oBAAoB;IAC/B;;MAEE;IACK,MAAM,CAAC,UAAU;QACtB,OAAO,2DAAQ,CAAC,UAAU,EAAE,CAAC;IAC/B,CAAC;IAED,mCAAmC;IAC5B,MAAM,KAAK,2BAA2B,KAAK,OAAO,2DAAQ,CAAC,2BAA2B,CAAC,CAAC,CAAC;IAEhG,gBAAgB;IACT,MAAM,KAAK,aAAa,KAAK,OAAO,2DAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpE,wCAAwC;IACjC,MAAM,KAAK,OAAO,KAAK,OAAO,2DAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAExD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,MAAuB,EAAE,EAAU,EAAE,cAAc,GAAG,QAAQ;QACrF,OAAO,2DAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,WAAW,CAAC,EAAU;QAClC,OAAO,2DAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,QAAQ;QACpB,OAAO,2DAAQ,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;IAED,yBAAyB;IAClB,MAAM,CAAC,MAAM;QAClB,OAAO,2DAAQ,CAAC,MAAM,EAAE,CAAC;IAC3B,CAAC;IAED,qCAAqC;IAC9B,MAAM,KAAK,YAAY;QAC5B,OAAO,2DAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;IAED,wCAAwC;IACjC,MAAM,KAAK,WAAW;QAC3B,OAAO,2DAAQ,CAAC,KAAK,CAAC;IACxB,CAAC;IAED,uDAAuD;IAChD,MAAM,CAAC,sBAAsB,CAAC,MAA0B,EAAE,EAAU,EAAE,UAAsB;QACjG,OAAO,2DAAQ,CAAC,sBAAsB,CAAC,MAAM,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC;IACjE,CAAC;IAED,4CAA4C;IACrC,MAAM,CAAC,eAAe,CAAC,EAAU;QACtC,OAAO,2DAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,EAAU;QACpC,OAAO,2DAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;CACF;AAjED,oDAiEC;AAED;;GAEG;AACH,MAAa,qBAAsB,SAAQ,KAAK,CAAC,aAA0B;IAEzE,YAAY,KAAkB;QAC5B,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAEe,MAAM;QACpB,OAAO,CACL,oBAAC,sCAAkB,OAAK,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,2DAAQ,CAAC,aAAa,GAAI,CAC9E,CAAC;IACJ,CAAC;CACF;AAXD,sDAWC","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 Dialog\n */\n\nimport { CommonProps } from \"@itwin/core-react\";\nimport * as React from \"react\";\nimport { ContentDialogInfo } from \"../framework/FrameworkContent\";\nimport { DialogRendererBase } from \"./DialogManagerBase\";\nimport { InternalContentDialogManager as internal } from \"./InternalContentDialogManager\";\n\n// cSpell:ignore ZINDEX modeless\n\n/** Content Dialog Manager class displays and manages multiple modeless dialogs\n * @public\n * @deprecated in 3.7. Use `UiFramework.content.dialog` property.\n */\nexport class ContentDialogManager {\n /** Initialize the modeless dialog manager.\n * @deprecated in 3.7. This is called internally.\n */\n public static initialize(): void {\n return internal.initialize();\n }\n\n /** Content Dialog Changed Event */\n public static get onContentDialogChangedEvent() { return internal.onContentDialogChangedEvent; }\n\n /** @internal */\n public static get dialogManager() { return internal.dialogManager; }\n\n /** Get the array of modeless dialogs */\n public static get dialogs() { return internal.dialogs; }\n\n /** Open a modeless dialog\n * @param dialog The Dialog to open\n * @param id The id of the Dialog to open\n */\n public static openDialog(dialog: React.ReactNode, id: string, parentDocument = document): void {\n return internal.open(dialog, id, parentDocument);\n }\n\n /** Close a modeless dialog\n * @param id The id of the Dialog to close.\n */\n public static closeDialog(id: string): void {\n return internal.close(id);\n }\n\n /** @internal */\n public static closeAll(): void {\n return internal.closeAll();\n }\n\n /** Update the dialogs */\n public static update(): void {\n return internal.update();\n }\n\n /** Get the active modeless dialog */\n public static get activeDialog(): React.ReactNode | undefined {\n return internal.active;\n }\n\n /** Get the count of modeless dialogs */\n public static get dialogCount(): number {\n return internal.count;\n }\n\n /** Handle a pointer down event on a modeless dialog */\n public static handlePointerDownEvent(_event: React.PointerEvent, id: string, updateFunc: () => void): void {\n return internal.handlePointerDownEvent(_event, id, updateFunc);\n }\n\n /** Get the z-index for a modeless dialog */\n public static getDialogZIndex(id: string): number {\n return internal.getZIndex(id);\n }\n\n public static getDialogInfo(id: string): ContentDialogInfo | undefined {\n return internal.getInfo(id);\n }\n}\n\n/** ContentDialogRenderer React component renders modeless dialogs.\n * @public\n */\nexport class ContentDialogRenderer extends React.PureComponent<CommonProps> {\n\n constructor(props: CommonProps) {\n super(props);\n }\n\n public override render(): React.ReactNode {\n return (\n <DialogRendererBase {...this.props} dialogManager={internal.dialogManager} />\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ContentDialogManager.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/ContentDialogManager.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,+BAA+B;AAE/B,2DAAyD;AACzD,iFAA0F;AAE1F,gCAAgC;AAEhC;;;GAGG;AACH,MAAa,oBAAoB;IAC/B;;MAEE;IACK,MAAM,CAAC,UAAU;QACtB,OAAO,2DAAQ,CAAC,UAAU,EAAE,CAAC;IAC/B,CAAC;IAED,mCAAmC;IAC5B,MAAM,KAAK,2BAA2B,KAAK,OAAO,2DAAQ,CAAC,2BAA2B,CAAC,CAAC,CAAC;IAEhG,gBAAgB;IACT,MAAM,KAAK,aAAa,KAAK,OAAO,2DAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpE,wCAAwC;IACjC,MAAM,KAAK,OAAO,KAAK,OAAO,2DAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAExD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,MAAuB,EAAE,EAAU,EAAE,cAAc,GAAG,QAAQ;QACrF,OAAO,2DAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,WAAW,CAAC,EAAU;QAClC,OAAO,2DAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,QAAQ;QACpB,OAAO,2DAAQ,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;IAED,yBAAyB;IAClB,MAAM,CAAC,MAAM;QAClB,OAAO,2DAAQ,CAAC,MAAM,EAAE,CAAC;IAC3B,CAAC;IAED,qCAAqC;IAC9B,MAAM,KAAK,YAAY;QAC5B,OAAO,2DAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;IAED,wCAAwC;IACjC,MAAM,KAAK,WAAW;QAC3B,OAAO,2DAAQ,CAAC,KAAK,CAAC;IACxB,CAAC;IAED,uDAAuD;IAChD,MAAM,CAAC,sBAAsB,CAAC,MAA0B,EAAE,EAAU,EAAE,UAAsB;QACjG,OAAO,2DAAQ,CAAC,sBAAsB,CAAC,MAAM,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC;IACjE,CAAC;IAED,4CAA4C;IACrC,MAAM,CAAC,eAAe,CAAC,EAAU;QACtC,OAAO,2DAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,EAAU;QACpC,OAAO,2DAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;CACF;AAjED,oDAiEC;AAED;;GAEG;AACH,MAAa,qBAAsB,SAAQ,KAAK,CAAC,aAA0B;IAEzE,YAAY,KAAkB;QAC5B,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAEe,MAAM;QACpB,OAAO,CACL,oBAAC,sCAAkB,OAAK,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,2DAAQ,CAAC,aAAa,GAAI,CAC9E,CAAC;IACJ,CAAC;CACF;AAXD,sDAWC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Dialog\r\n */\r\n\r\nimport { CommonProps } from \"@itwin/core-react\";\r\nimport * as React from \"react\";\r\nimport { ContentDialogInfo } from \"../framework/FrameworkContent\";\r\nimport { DialogRendererBase } from \"./DialogManagerBase\";\r\nimport { InternalContentDialogManager as internal } from \"./InternalContentDialogManager\";\r\n\r\n// cSpell:ignore ZINDEX modeless\r\n\r\n/** Content Dialog Manager class displays and manages multiple modeless dialogs\r\n * @public\r\n * @deprecated in 3.7. Use `UiFramework.content.dialog` property.\r\n */\r\nexport class ContentDialogManager {\r\n /** Initialize the modeless dialog manager.\r\n * @deprecated in 3.7. This is called internally.\r\n */\r\n public static initialize(): void {\r\n return internal.initialize();\r\n }\r\n\r\n /** Content Dialog Changed Event */\r\n public static get onContentDialogChangedEvent() { return internal.onContentDialogChangedEvent; }\r\n\r\n /** @internal */\r\n public static get dialogManager() { return internal.dialogManager; }\r\n\r\n /** Get the array of modeless dialogs */\r\n public static get dialogs() { return internal.dialogs; }\r\n\r\n /** Open a modeless dialog\r\n * @param dialog The Dialog to open\r\n * @param id The id of the Dialog to open\r\n */\r\n public static openDialog(dialog: React.ReactNode, id: string, parentDocument = document): void {\r\n return internal.open(dialog, id, parentDocument);\r\n }\r\n\r\n /** Close a modeless dialog\r\n * @param id The id of the Dialog to close.\r\n */\r\n public static closeDialog(id: string): void {\r\n return internal.close(id);\r\n }\r\n\r\n /** @internal */\r\n public static closeAll(): void {\r\n return internal.closeAll();\r\n }\r\n\r\n /** Update the dialogs */\r\n public static update(): void {\r\n return internal.update();\r\n }\r\n\r\n /** Get the active modeless dialog */\r\n public static get activeDialog(): React.ReactNode | undefined {\r\n return internal.active;\r\n }\r\n\r\n /** Get the count of modeless dialogs */\r\n public static get dialogCount(): number {\r\n return internal.count;\r\n }\r\n\r\n /** Handle a pointer down event on a modeless dialog */\r\n public static handlePointerDownEvent(_event: React.PointerEvent, id: string, updateFunc: () => void): void {\r\n return internal.handlePointerDownEvent(_event, id, updateFunc);\r\n }\r\n\r\n /** Get the z-index for a modeless dialog */\r\n public static getDialogZIndex(id: string): number {\r\n return internal.getZIndex(id);\r\n }\r\n\r\n public static getDialogInfo(id: string): ContentDialogInfo | undefined {\r\n return internal.getInfo(id);\r\n }\r\n}\r\n\r\n/** ContentDialogRenderer React component renders modeless dialogs.\r\n * @public\r\n */\r\nexport class ContentDialogRenderer extends React.PureComponent<CommonProps> {\r\n\r\n constructor(props: CommonProps) {\r\n super(props);\r\n }\r\n\r\n public override render(): React.ReactNode {\r\n return (\r\n <DialogRendererBase {...this.props} dialogManager={internal.dialogManager} />\r\n );\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DialogManagerBase.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/DialogManagerBase.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 Dialog\n */\n\nimport * as React from \"react\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport { UiEvent } from \"@itwin/appui-abstract\";\nimport { UiFramework } from \"../UiFramework\";\nimport { getCssVariableAsNumber } from \"@itwin/core-react\";\n\n/** Dialog Stack Changed Event Args class.\n * @public\n */\nexport interface DialogChangedEventArgs {\n dialogCount: number;\n activeDialog: React.ReactNode | undefined;\n}\n\n/** Dialog Changed Event class.\n * @public\n */\nexport class DialogChangedEvent extends UiEvent<DialogChangedEventArgs> { }\n\n/** Information maintained by a Dialog Manager about a dialog\n * @public\n */\nexport interface DialogInfo {\n reactNode: React.ReactNode;\n id: string;\n parentDocument: Document;\n}\n\n/** Used if the 'dialog' z-index CSS variable cannot be read */\nconst ZINDEX_DEFAULT = 12000;\n\n/** Dialog Manager class.\n * @internal\n */\nexport class DialogManagerBase {\n private static _sId = 0;\n private _dialogs: DialogInfo[] = new Array<DialogInfo>();\n private _onDialogChangedEvent: DialogChangedEvent;\n private static _topZIndex = ZINDEX_DEFAULT;\n\n constructor(onDialogChangedEvent: DialogChangedEvent) {\n this._onDialogChangedEvent = onDialogChangedEvent;\n }\n\n /** Initialize the modeless dialog manager */\n public static initialize(): void {\n DialogManagerBase._topZIndex = DialogManagerBase.getDialogZIndexDefault();\n }\n\n public static get topZIndex(): number { return DialogManagerBase._topZIndex; }\n\n public static set topZIndex(zIndex: number) { DialogManagerBase._topZIndex = zIndex; }\n public get dialogs() { return this._dialogs; }\n\n public get onDialogChangedEvent(): DialogChangedEvent { return this._onDialogChangedEvent; }\n\n public static getDialogZIndexDefault(): number {\n const variable = \"--uicore-z-index-dialog\";\n const value = getCssVariableAsNumber(variable);\n\n // istanbul ignore next\n if (!isNaN(value))\n return value;\n\n Logger.logError(UiFramework.loggerCategory(this), `'${variable}' CSS variable not found`);\n return ZINDEX_DEFAULT;\n }\n\n /**\n * Triggers opening a dialog.\n * @param dialog Dialog React component.\n * @param id The unique Id the identifies the dialog.\n * @param parentDocument Optional document required when displaying a dialog in a child popup window.\n */\n public openDialog(dialog: React.ReactNode, id?: string, parentDocument?: Document): void {\n if (!id)\n id = `Dialog-${++DialogManagerBase._sId}`;\n\n // istanbul ignore next\n const owningDoc = parentDocument ?? document;\n this.pushDialog({ reactNode: dialog, id, parentDocument: owningDoc });\n }\n\n /** @internal */\n public pushDialog(dialogInfo: DialogInfo): void {\n this._dialogs.push(dialogInfo);\n this.emitDialogChangedEvent();\n }\n\n public closeDialog(dialog?: React.ReactNode): void {\n let targetDialog = dialog;\n if (!dialog)\n targetDialog = this.activeDialog;\n\n this.removeDialog(targetDialog);\n this.emitDialogChangedEvent();\n }\n\n /** @internal */\n public closeAll(): void {\n this._dialogs = [];\n this.emitDialogChangedEvent();\n }\n\n /** @internal */\n public removeDialog(dialog: React.ReactNode): void {\n const index = this._dialogs.findIndex((dialogInfo: DialogInfo) => {\n return dialog === dialogInfo.reactNode;\n });\n if (index >= 0)\n this._dialogs.splice(index, 1);\n if (this._dialogs.length < 1)\n DialogManagerBase.topZIndex = DialogManagerBase.getDialogZIndexDefault();\n }\n\n public emitDialogChangedEvent(): void {\n this._onDialogChangedEvent.emit({ dialogCount: this.dialogCount, activeDialog: this.activeDialog });\n }\n\n public update(): void {\n this.emitDialogChangedEvent();\n }\n\n public get activeDialog(): React.ReactNode | undefined {\n if (this._dialogs.length > 0)\n return this._dialogs[this._dialogs.length - 1].reactNode;\n\n return undefined;\n }\n\n public get dialogCount(): number {\n return this._dialogs.length;\n }\n}\n\n/** Properties for the [[DialogRendererBase]] component\n * @internal\n */\nexport interface DialogRendererProps {\n dialogManager: DialogManagerBase;\n style?: React.CSSProperties;\n}\n\n/** @internal */\ninterface DialogRendererState {\n parentDocument: Document | null;\n}\n/** DialogRenderer React component.\n * @internal\n */\nexport class DialogRendererBase extends React.PureComponent<DialogRendererProps, DialogRendererState> {\n /** @internal */\n public override readonly state: DialogRendererState = {\n parentDocument: null,\n };\n\n private _handleRefSet = (popupDiv: HTMLElement | null) => {\n this.setState({ parentDocument: popupDiv?.ownerDocument ?? null });\n };\n\n public override render(): React.ReactNode {\n if (this.props.dialogManager.dialogCount <= 0)\n return null;\n\n return (\n <div className=\"appui-react-dialog-render-container\" ref={this._handleRefSet}>\n {this.state.parentDocument &&\n this.props.dialogManager.dialogs.filter((info) => info.parentDocument === this.state.parentDocument)\n .map((dialogInfo: DialogInfo) => {\n return (\n <React.Fragment key={dialogInfo.id} >\n {dialogInfo.reactNode}\n </React.Fragment>\n );\n })\n }\n </div>\n );\n }\n\n public override componentDidMount(): void {\n this.props.dialogManager.onDialogChangedEvent.addListener(this._handleDialogChangedEvent);\n }\n\n public override componentWillUnmount(): void {\n this.props.dialogManager.onDialogChangedEvent.removeListener(this._handleDialogChangedEvent);\n }\n\n private _handleDialogChangedEvent = (_args: DialogChangedEventArgs) => {\n this.forceUpdate();\n };\n\n}\n"]}
|
|
1
|
+
{"version":3,"file":"DialogManagerBase.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/DialogManagerBase.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Dialog\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { UiEvent } from \"@itwin/appui-abstract\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { getCssVariableAsNumber } from \"@itwin/core-react\";\r\n\r\n/** Dialog Stack Changed Event Args class.\r\n * @public\r\n */\r\nexport interface DialogChangedEventArgs {\r\n dialogCount: number;\r\n activeDialog: React.ReactNode | undefined;\r\n}\r\n\r\n/** Dialog Changed Event class.\r\n * @public\r\n */\r\nexport class DialogChangedEvent extends UiEvent<DialogChangedEventArgs> { }\r\n\r\n/** Information maintained by a Dialog Manager about a dialog\r\n * @public\r\n */\r\nexport interface DialogInfo {\r\n reactNode: React.ReactNode;\r\n id: string;\r\n parentDocument: Document;\r\n}\r\n\r\n/** Used if the 'dialog' z-index CSS variable cannot be read */\r\nconst ZINDEX_DEFAULT = 12000;\r\n\r\n/** Dialog Manager class.\r\n * @internal\r\n */\r\nexport class DialogManagerBase {\r\n private static _sId = 0;\r\n private _dialogs: DialogInfo[] = new Array<DialogInfo>();\r\n private _onDialogChangedEvent: DialogChangedEvent;\r\n private static _topZIndex = ZINDEX_DEFAULT;\r\n\r\n constructor(onDialogChangedEvent: DialogChangedEvent) {\r\n this._onDialogChangedEvent = onDialogChangedEvent;\r\n }\r\n\r\n /** Initialize the modeless dialog manager */\r\n public static initialize(): void {\r\n DialogManagerBase._topZIndex = DialogManagerBase.getDialogZIndexDefault();\r\n }\r\n\r\n public static get topZIndex(): number { return DialogManagerBase._topZIndex; }\r\n\r\n public static set topZIndex(zIndex: number) { DialogManagerBase._topZIndex = zIndex; }\r\n public get dialogs() { return this._dialogs; }\r\n\r\n public get onDialogChangedEvent(): DialogChangedEvent { return this._onDialogChangedEvent; }\r\n\r\n public static getDialogZIndexDefault(): number {\r\n const variable = \"--uicore-z-index-dialog\";\r\n const value = getCssVariableAsNumber(variable);\r\n\r\n // istanbul ignore next\r\n if (!isNaN(value))\r\n return value;\r\n\r\n Logger.logError(UiFramework.loggerCategory(this), `'${variable}' CSS variable not found`);\r\n return ZINDEX_DEFAULT;\r\n }\r\n\r\n /**\r\n * Triggers opening a dialog.\r\n * @param dialog Dialog React component.\r\n * @param id The unique Id the identifies the dialog.\r\n * @param parentDocument Optional document required when displaying a dialog in a child popup window.\r\n */\r\n public openDialog(dialog: React.ReactNode, id?: string, parentDocument?: Document): void {\r\n if (!id)\r\n id = `Dialog-${++DialogManagerBase._sId}`;\r\n\r\n // istanbul ignore next\r\n const owningDoc = parentDocument ?? document;\r\n this.pushDialog({ reactNode: dialog, id, parentDocument: owningDoc });\r\n }\r\n\r\n /** @internal */\r\n public pushDialog(dialogInfo: DialogInfo): void {\r\n this._dialogs.push(dialogInfo);\r\n this.emitDialogChangedEvent();\r\n }\r\n\r\n public closeDialog(dialog?: React.ReactNode): void {\r\n let targetDialog = dialog;\r\n if (!dialog)\r\n targetDialog = this.activeDialog;\r\n\r\n this.removeDialog(targetDialog);\r\n this.emitDialogChangedEvent();\r\n }\r\n\r\n /** @internal */\r\n public closeAll(): void {\r\n this._dialogs = [];\r\n this.emitDialogChangedEvent();\r\n }\r\n\r\n /** @internal */\r\n public removeDialog(dialog: React.ReactNode): void {\r\n const index = this._dialogs.findIndex((dialogInfo: DialogInfo) => {\r\n return dialog === dialogInfo.reactNode;\r\n });\r\n if (index >= 0)\r\n this._dialogs.splice(index, 1);\r\n if (this._dialogs.length < 1)\r\n DialogManagerBase.topZIndex = DialogManagerBase.getDialogZIndexDefault();\r\n }\r\n\r\n public emitDialogChangedEvent(): void {\r\n this._onDialogChangedEvent.emit({ dialogCount: this.dialogCount, activeDialog: this.activeDialog });\r\n }\r\n\r\n public update(): void {\r\n this.emitDialogChangedEvent();\r\n }\r\n\r\n public get activeDialog(): React.ReactNode | undefined {\r\n if (this._dialogs.length > 0)\r\n return this._dialogs[this._dialogs.length - 1].reactNode;\r\n\r\n return undefined;\r\n }\r\n\r\n public get dialogCount(): number {\r\n return this._dialogs.length;\r\n }\r\n}\r\n\r\n/** Properties for the [[DialogRendererBase]] component\r\n * @internal\r\n */\r\nexport interface DialogRendererProps {\r\n dialogManager: DialogManagerBase;\r\n style?: React.CSSProperties;\r\n}\r\n\r\n/** @internal */\r\ninterface DialogRendererState {\r\n parentDocument: Document | null;\r\n}\r\n/** DialogRenderer React component.\r\n * @internal\r\n */\r\nexport class DialogRendererBase extends React.PureComponent<DialogRendererProps, DialogRendererState> {\r\n /** @internal */\r\n public override readonly state: DialogRendererState = {\r\n parentDocument: null,\r\n };\r\n\r\n private _handleRefSet = (popupDiv: HTMLElement | null) => {\r\n this.setState({ parentDocument: popupDiv?.ownerDocument ?? null });\r\n };\r\n\r\n public override render(): React.ReactNode {\r\n if (this.props.dialogManager.dialogCount <= 0)\r\n return null;\r\n\r\n return (\r\n <div className=\"appui-react-dialog-render-container\" ref={this._handleRefSet}>\r\n {this.state.parentDocument &&\r\n this.props.dialogManager.dialogs.filter((info) => info.parentDocument === this.state.parentDocument)\r\n .map((dialogInfo: DialogInfo) => {\r\n return (\r\n <React.Fragment key={dialogInfo.id} >\r\n {dialogInfo.reactNode}\r\n </React.Fragment>\r\n );\r\n })\r\n }\r\n </div>\r\n );\r\n }\r\n\r\n public override componentDidMount(): void {\r\n this.props.dialogManager.onDialogChangedEvent.addListener(this._handleDialogChangedEvent);\r\n }\r\n\r\n public override componentWillUnmount(): void {\r\n this.props.dialogManager.onDialogChangedEvent.removeListener(this._handleDialogChangedEvent);\r\n }\r\n\r\n private _handleDialogChangedEvent = (_args: DialogChangedEventArgs) => {\r\n this.forceUpdate();\r\n };\r\n\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternalContentDialogManager.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/InternalContentDialogManager.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 Dialog\n */\n\nimport * as React from \"react\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport { getCssVariableAsNumber } from \"@itwin/core-react\";\nimport { UiFramework } from \"../UiFramework\";\nimport { DialogManagerBase } from \"./DialogManagerBase\";\nimport { IModelApp, NotifyMessageDetails, OutputMessagePriority, OutputMessageType } from \"@itwin/core-frontend\";\nimport { ContentDialogChangedEvent, ContentDialogInfo } from \"../framework/FrameworkContent\";\n\n// cSpell:ignore ZINDEX modeless\n\n/** Used if the 'dialog' z-index CSS variable cannot be read */\nconst CONTENT_DIALOG_ZINDEX_DEFAULT = 2000;\n\n/** Content Dialog Manager class displays and manages multiple modeless dialogs\n * @internal\n */\nexport class InternalContentDialogManager {\n /** Content Dialog Changed Event */\n public static readonly onContentDialogChangedEvent = new ContentDialogChangedEvent();\n\n /** @internal */\n public static readonly dialogManager: DialogManagerBase = new DialogManagerBase(InternalContentDialogManager.onContentDialogChangedEvent);\n\n /** Get the array of modeless dialogs */\n public static get dialogs() { return InternalContentDialogManager.dialogManager.dialogs; }\n\n private static _dialogMap = new Map<string, ContentDialogInfo>();\n private static _idArray = new Array<string>();\n\n private static _topZIndex = CONTENT_DIALOG_ZINDEX_DEFAULT;\n\n /** Initialize the modeless dialog manager.\n * @internal\n */\n public static initialize(): void {\n InternalContentDialogManager._topZIndex = InternalContentDialogManager.getDialogZIndexDefault();\n }\n\n private static getDialogZIndexDefault(): number {\n const variable = \"--uicore-z-index-view-content-dialog\";\n const value = getCssVariableAsNumber(variable);\n\n // istanbul ignore next\n if (!isNaN(value))\n return value;\n\n Logger.logError(UiFramework.loggerCategory(this), `'${variable}' CSS variable not found`);\n return CONTENT_DIALOG_ZINDEX_DEFAULT;\n }\n\n /** Open a modeless dialog\n * @param dialog The Dialog to open\n * @param id The id of the Dialog to open\n */\n public static open(dialog: React.ReactNode, id: string, parentDocument = document): void {\n const dialogInfo = InternalContentDialogManager._dialogMap.get(id);\n if (dialogInfo) {\n const message = `Dialog with id of '${id}' already opened`;\n Logger.logInfo(UiFramework.loggerCategory(this), `openDialog: ${message}`);\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, message, undefined, OutputMessageType.Toast));\n return;\n }\n InternalContentDialogManager._dialogMap.set(id, { reactNode: dialog, zIndex: ++InternalContentDialogManager._topZIndex, parentDocument });\n InternalContentDialogManager._idArray.push(id);\n InternalContentDialogManager.dialogManager.openDialog(dialog, id, parentDocument);\n }\n\n /** Close a modeless dialog\n * @param id The id of the Dialog to close.\n */\n public static close(id: string): void {\n const dialogInfo = InternalContentDialogManager._dialogMap.get(id);\n if (dialogInfo) {\n InternalContentDialogManager.dialogManager.removeDialog(dialogInfo.reactNode);\n InternalContentDialogManager._dialogMap.delete(id);\n const index = InternalContentDialogManager._idArray.indexOf(id);\n // istanbul ignore else\n if (index >= 0)\n InternalContentDialogManager._idArray.splice(index, 1);\n\n if (InternalContentDialogManager.active === undefined)\n InternalContentDialogManager._topZIndex = InternalContentDialogManager.getDialogZIndexDefault();\n\n this.update();\n } else {\n Logger.logError(UiFramework.loggerCategory(this), `closeDialog: Could not find dialog with id of '${id}'`);\n }\n }\n\n /** @internal */\n public static closeAll(): void {\n InternalContentDialogManager.dialogManager.closeAll();\n }\n\n /** Update the dialogs */\n public static update(): void {\n InternalContentDialogManager.dialogManager.update();\n }\n\n /** Get the active modeless dialog */\n public static get active(): React.ReactNode | undefined {\n if (InternalContentDialogManager._idArray.length > 0) {\n const id = InternalContentDialogManager._idArray[InternalContentDialogManager._idArray.length - 1];\n const dialogInfo = InternalContentDialogManager._dialogMap.get(id);\n // istanbul ignore else\n if (dialogInfo)\n return dialogInfo.reactNode;\n }\n\n return undefined;\n }\n\n /** Get the count of modeless dialogs */\n public static get count(): number {\n return InternalContentDialogManager.dialogManager.dialogCount;\n }\n\n /** Handle a pointer down event on a modeless dialog */\n public static handlePointerDownEvent(_event: React.PointerEvent, id: string, updateFunc: () => void): void {\n const dialogInfo = InternalContentDialogManager._dialogMap.get(id);\n if (dialogInfo && dialogInfo.reactNode !== InternalContentDialogManager.active) {\n dialogInfo.zIndex = ++InternalContentDialogManager._topZIndex;\n\n InternalContentDialogManager._idArray.splice(InternalContentDialogManager._idArray.indexOf(id), 1);\n InternalContentDialogManager._idArray.push(id);\n\n updateFunc();\n this.update();\n }\n }\n\n /** Get the z-index for a modeless dialog */\n public static getZIndex(id: string): number {\n let zIndex = InternalContentDialogManager.getDialogZIndexDefault();\n const dialogInfo = InternalContentDialogManager._dialogMap.get(id);\n // istanbul ignore else\n if (dialogInfo)\n zIndex = dialogInfo.zIndex;\n return zIndex;\n }\n\n public static getInfo(id: string): ContentDialogInfo | undefined {\n return InternalContentDialogManager._dialogMap.get(id);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"InternalContentDialogManager.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/InternalContentDialogManager.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Dialog\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { getCssVariableAsNumber } from \"@itwin/core-react\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { DialogManagerBase } from \"./DialogManagerBase\";\r\nimport { IModelApp, NotifyMessageDetails, OutputMessagePriority, OutputMessageType } from \"@itwin/core-frontend\";\r\nimport { ContentDialogChangedEvent, ContentDialogInfo } from \"../framework/FrameworkContent\";\r\n\r\n// cSpell:ignore ZINDEX modeless\r\n\r\n/** Used if the 'dialog' z-index CSS variable cannot be read */\r\nconst CONTENT_DIALOG_ZINDEX_DEFAULT = 2000;\r\n\r\n/** Content Dialog Manager class displays and manages multiple modeless dialogs\r\n * @internal\r\n */\r\nexport class InternalContentDialogManager {\r\n /** Content Dialog Changed Event */\r\n public static readonly onContentDialogChangedEvent = new ContentDialogChangedEvent();\r\n\r\n /** @internal */\r\n public static readonly dialogManager: DialogManagerBase = new DialogManagerBase(InternalContentDialogManager.onContentDialogChangedEvent);\r\n\r\n /** Get the array of modeless dialogs */\r\n public static get dialogs() { return InternalContentDialogManager.dialogManager.dialogs; }\r\n\r\n private static _dialogMap = new Map<string, ContentDialogInfo>();\r\n private static _idArray = new Array<string>();\r\n\r\n private static _topZIndex = CONTENT_DIALOG_ZINDEX_DEFAULT;\r\n\r\n /** Initialize the modeless dialog manager.\r\n * @internal\r\n */\r\n public static initialize(): void {\r\n InternalContentDialogManager._topZIndex = InternalContentDialogManager.getDialogZIndexDefault();\r\n }\r\n\r\n private static getDialogZIndexDefault(): number {\r\n const variable = \"--uicore-z-index-view-content-dialog\";\r\n const value = getCssVariableAsNumber(variable);\r\n\r\n // istanbul ignore next\r\n if (!isNaN(value))\r\n return value;\r\n\r\n Logger.logError(UiFramework.loggerCategory(this), `'${variable}' CSS variable not found`);\r\n return CONTENT_DIALOG_ZINDEX_DEFAULT;\r\n }\r\n\r\n /** Open a modeless dialog\r\n * @param dialog The Dialog to open\r\n * @param id The id of the Dialog to open\r\n */\r\n public static open(dialog: React.ReactNode, id: string, parentDocument = document): void {\r\n const dialogInfo = InternalContentDialogManager._dialogMap.get(id);\r\n if (dialogInfo) {\r\n const message = `Dialog with id of '${id}' already opened`;\r\n Logger.logInfo(UiFramework.loggerCategory(this), `openDialog: ${message}`);\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, message, undefined, OutputMessageType.Toast));\r\n return;\r\n }\r\n InternalContentDialogManager._dialogMap.set(id, { reactNode: dialog, zIndex: ++InternalContentDialogManager._topZIndex, parentDocument });\r\n InternalContentDialogManager._idArray.push(id);\r\n InternalContentDialogManager.dialogManager.openDialog(dialog, id, parentDocument);\r\n }\r\n\r\n /** Close a modeless dialog\r\n * @param id The id of the Dialog to close.\r\n */\r\n public static close(id: string): void {\r\n const dialogInfo = InternalContentDialogManager._dialogMap.get(id);\r\n if (dialogInfo) {\r\n InternalContentDialogManager.dialogManager.removeDialog(dialogInfo.reactNode);\r\n InternalContentDialogManager._dialogMap.delete(id);\r\n const index = InternalContentDialogManager._idArray.indexOf(id);\r\n // istanbul ignore else\r\n if (index >= 0)\r\n InternalContentDialogManager._idArray.splice(index, 1);\r\n\r\n if (InternalContentDialogManager.active === undefined)\r\n InternalContentDialogManager._topZIndex = InternalContentDialogManager.getDialogZIndexDefault();\r\n\r\n this.update();\r\n } else {\r\n Logger.logError(UiFramework.loggerCategory(this), `closeDialog: Could not find dialog with id of '${id}'`);\r\n }\r\n }\r\n\r\n /** @internal */\r\n public static closeAll(): void {\r\n InternalContentDialogManager.dialogManager.closeAll();\r\n }\r\n\r\n /** Update the dialogs */\r\n public static update(): void {\r\n InternalContentDialogManager.dialogManager.update();\r\n }\r\n\r\n /** Get the active modeless dialog */\r\n public static get active(): React.ReactNode | undefined {\r\n if (InternalContentDialogManager._idArray.length > 0) {\r\n const id = InternalContentDialogManager._idArray[InternalContentDialogManager._idArray.length - 1];\r\n const dialogInfo = InternalContentDialogManager._dialogMap.get(id);\r\n // istanbul ignore else\r\n if (dialogInfo)\r\n return dialogInfo.reactNode;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /** Get the count of modeless dialogs */\r\n public static get count(): number {\r\n return InternalContentDialogManager.dialogManager.dialogCount;\r\n }\r\n\r\n /** Handle a pointer down event on a modeless dialog */\r\n public static handlePointerDownEvent(_event: React.PointerEvent, id: string, updateFunc: () => void): void {\r\n const dialogInfo = InternalContentDialogManager._dialogMap.get(id);\r\n if (dialogInfo && dialogInfo.reactNode !== InternalContentDialogManager.active) {\r\n dialogInfo.zIndex = ++InternalContentDialogManager._topZIndex;\r\n\r\n InternalContentDialogManager._idArray.splice(InternalContentDialogManager._idArray.indexOf(id), 1);\r\n InternalContentDialogManager._idArray.push(id);\r\n\r\n updateFunc();\r\n this.update();\r\n }\r\n }\r\n\r\n /** Get the z-index for a modeless dialog */\r\n public static getZIndex(id: string): number {\r\n let zIndex = InternalContentDialogManager.getDialogZIndexDefault();\r\n const dialogInfo = InternalContentDialogManager._dialogMap.get(id);\r\n // istanbul ignore else\r\n if (dialogInfo)\r\n zIndex = dialogInfo.zIndex;\r\n return zIndex;\r\n }\r\n\r\n public static getInfo(id: string): ContentDialogInfo | undefined {\r\n return InternalContentDialogManager._dialogMap.get(id);\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternalModalDialogManager.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/InternalModalDialogManager.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,2DAAwD;AACxD,oEAAwE;AAExE;;GAEG;AACH,MAAa,0BAA0B;IAOrC,qCAAqC;IAC9B,MAAM,KAAK,OAAO,KAAK,OAAO,0BAA0B,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IAExF;;;;OAIG;IACI,MAAM,CAAC,IAAI,CAAC,MAAuB,EAAE,EAAW,EAAE,cAAc,GAAG,QAAQ;QAChF,0BAA0B,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;IAClF,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,MAAwB;QAC1C,0BAA0B,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/D,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,QAAQ;QACpB,0BAA0B,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;IACtD,CAAC;IAED,yBAAyB;IAClB,MAAM,CAAC,MAAM;QAClB,0BAA0B,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;IACpD,CAAC;IAED,kCAAkC;IAC3B,MAAM,KAAK,MAAM;QACtB,OAAO,0BAA0B,CAAC,aAAa,CAAC,YAAY,CAAC;IAC/D,CAAC;IAED,qCAAqC;IAC9B,MAAM,KAAK,KAAK;QACrB,OAAO,0BAA0B,CAAC,aAAa,CAAC,WAAW,CAAC;IAC9D,CAAC;;AA3CD,iCAAiC;AACV,oDAAyB,GAAG,IAAI,0CAAuB,EAAE,CAAC;AAEjF,gBAAgB;AACO,wCAAa,GAAsB,IAAI,qCAAiB,CAAC,0BAA0B,CAAC,yBAAyB,CAAC,CAAC;AAL3H,gEAA0B","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 Dialog\n */\n\nimport * as React from \"react\";\nimport { DialogManagerBase } from \"./DialogManagerBase\";\nimport { ModalDialogChangedEvent } from \"../framework/FrameworkDialogs\";\n\n/** Modal Dialog Manager class displays and manages multiple modal dialogs\n * @internal\n */\nexport class InternalModalDialogManager {\n /** Modal Dialog Changed Event */\n public static readonly onModalDialogChangedEvent = new ModalDialogChangedEvent();\n\n /** @internal */\n public static readonly dialogManager: DialogManagerBase = new DialogManagerBase(InternalModalDialogManager.onModalDialogChangedEvent);\n\n /** Get the array of modal dialogs */\n public static get dialogs() { return InternalModalDialogManager.dialogManager.dialogs; }\n\n /** Open a modal dialog\n * @param dialog The Dialog to open\n * @param id The id of the Dialog. If one is not provided, an id is generated.\n * @param parentDocument The Document used to determine the owning window.\n */\n public static open(dialog: React.ReactNode, id?: string, parentDocument = document): void {\n InternalModalDialogManager.dialogManager.openDialog(dialog, id, parentDocument);\n }\n\n /** Close a modal dialog\n * @param dialog The Dialog to open. If one is not specified, the active dialog will be closed.\n */\n public static close(dialog?: React.ReactNode): void {\n InternalModalDialogManager.dialogManager.closeDialog(dialog);\n }\n\n /** @internal */\n public static closeAll(): void {\n InternalModalDialogManager.dialogManager.closeAll();\n }\n\n /** Update the dialogs */\n public static update(): void {\n InternalModalDialogManager.dialogManager.update();\n }\n\n /** Get the active modal dialog */\n public static get active(): React.ReactNode | undefined {\n return InternalModalDialogManager.dialogManager.activeDialog;\n }\n\n /** Get the count of modal dialogs */\n public static get count(): number {\n return InternalModalDialogManager.dialogManager.dialogCount;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"InternalModalDialogManager.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/InternalModalDialogManager.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,2DAAwD;AACxD,oEAAwE;AAExE;;GAEG;AACH,MAAa,0BAA0B;IAOrC,qCAAqC;IAC9B,MAAM,KAAK,OAAO,KAAK,OAAO,0BAA0B,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IAExF;;;;OAIG;IACI,MAAM,CAAC,IAAI,CAAC,MAAuB,EAAE,EAAW,EAAE,cAAc,GAAG,QAAQ;QAChF,0BAA0B,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;IAClF,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,MAAwB;QAC1C,0BAA0B,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/D,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,QAAQ;QACpB,0BAA0B,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;IACtD,CAAC;IAED,yBAAyB;IAClB,MAAM,CAAC,MAAM;QAClB,0BAA0B,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;IACpD,CAAC;IAED,kCAAkC;IAC3B,MAAM,KAAK,MAAM;QACtB,OAAO,0BAA0B,CAAC,aAAa,CAAC,YAAY,CAAC;IAC/D,CAAC;IAED,qCAAqC;IAC9B,MAAM,KAAK,KAAK;QACrB,OAAO,0BAA0B,CAAC,aAAa,CAAC,WAAW,CAAC;IAC9D,CAAC;;AA3CD,iCAAiC;AACV,oDAAyB,GAAG,IAAI,0CAAuB,EAAE,CAAC;AAEjF,gBAAgB;AACO,wCAAa,GAAsB,IAAI,qCAAiB,CAAC,0BAA0B,CAAC,yBAAyB,CAAC,CAAC;AAL3H,gEAA0B","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Dialog\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { DialogManagerBase } from \"./DialogManagerBase\";\r\nimport { ModalDialogChangedEvent } from \"../framework/FrameworkDialogs\";\r\n\r\n/** Modal Dialog Manager class displays and manages multiple modal dialogs\r\n * @internal\r\n */\r\nexport class InternalModalDialogManager {\r\n /** Modal Dialog Changed Event */\r\n public static readonly onModalDialogChangedEvent = new ModalDialogChangedEvent();\r\n\r\n /** @internal */\r\n public static readonly dialogManager: DialogManagerBase = new DialogManagerBase(InternalModalDialogManager.onModalDialogChangedEvent);\r\n\r\n /** Get the array of modal dialogs */\r\n public static get dialogs() { return InternalModalDialogManager.dialogManager.dialogs; }\r\n\r\n /** Open a modal dialog\r\n * @param dialog The Dialog to open\r\n * @param id The id of the Dialog. If one is not provided, an id is generated.\r\n * @param parentDocument The Document used to determine the owning window.\r\n */\r\n public static open(dialog: React.ReactNode, id?: string, parentDocument = document): void {\r\n InternalModalDialogManager.dialogManager.openDialog(dialog, id, parentDocument);\r\n }\r\n\r\n /** Close a modal dialog\r\n * @param dialog The Dialog to open. If one is not specified, the active dialog will be closed.\r\n */\r\n public static close(dialog?: React.ReactNode): void {\r\n InternalModalDialogManager.dialogManager.closeDialog(dialog);\r\n }\r\n\r\n /** @internal */\r\n public static closeAll(): void {\r\n InternalModalDialogManager.dialogManager.closeAll();\r\n }\r\n\r\n /** Update the dialogs */\r\n public static update(): void {\r\n InternalModalDialogManager.dialogManager.update();\r\n }\r\n\r\n /** Get the active modal dialog */\r\n public static get active(): React.ReactNode | undefined {\r\n return InternalModalDialogManager.dialogManager.activeDialog;\r\n }\r\n\r\n /** Get the count of modal dialogs */\r\n public static get count(): number {\r\n return InternalModalDialogManager.dialogManager.dialogCount;\r\n }\r\n}\r\n"]}
|