@itwin/appui-react 4.1.0-dev.1 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -1
- 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/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/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 +127 -127
- 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/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.js.map +1 -1
- package/lib/cjs/appui-react/pickers/ListPicker.scss +305 -305
- 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/SelectionCount.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/SelectionCount.scss +12 -12
- package/lib/cjs/appui-react/statusfields/SelectionInfo.js.map +1 -1
- 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/Toolbar.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/ToolbarWithOverflow.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/ToolUiProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.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/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/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/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 +127 -127
- 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/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.js.map +1 -1
- package/lib/esm/appui-react/pickers/ListPicker.scss +305 -305
- 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/SelectionCount.js.map +1 -1
- package/lib/esm/appui-react/statusfields/SelectionCount.scss +12 -12
- package/lib/esm/appui-react/statusfields/SelectionInfo.js.map +1 -1
- 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/Toolbar.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/ToolbarWithOverflow.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/ToolUiProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.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/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 +333 -333
- package/package.json +9 -9
|
@@ -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 type { DialogProps } from \"@itwin/core-react\";\nimport { Dialog } from \"@itwin/core-react\";\nimport type { ActiveContentChangedEventArgs } from \"../framework/FrameworkContent\";\nimport { SyncUiEventDispatcher, SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\nimport { UiFramework } from \"../UiFramework\";\nimport type { 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 type { DialogProps } from \"@itwin/core-react\";\r\nimport { Dialog } from \"@itwin/core-react\";\r\nimport type { ActiveContentChangedEventArgs } from \"../framework/FrameworkContent\";\r\nimport { SyncUiEventDispatcher, SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport type { 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;AAC/B,2DAAyD;AACzD,iFAA0F;AAE1F;;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 type { CommonProps } from \"@itwin/core-react\";\nimport * as React from \"react\";\nimport { DialogRendererBase } from \"./DialogManagerBase\";\nimport { InternalContentDialogManager as internal } from \"./InternalContentDialogManager\";\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;AAC/B,2DAAyD;AACzD,iFAA0F;AAE1F;;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 type { CommonProps } from \"@itwin/core-react\";\r\nimport * as React from \"react\";\r\nimport { DialogRendererBase } from \"./DialogManagerBase\";\r\nimport { InternalContentDialogManager as internal } from \"./InternalContentDialogManager\";\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 type * 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 type { ContentDialogInfo } from \"../framework/FrameworkContent\";\nimport { ContentDialogChangedEvent } 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":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,sDAA6C;AAC7C,kDAA2D;AAC3D,gDAA6C;AAC7C,2DAAwD;AACxD,wDAAiH;AAEjH,oEAA0E;AAE1E,gCAAgC;AAEhC,+DAA+D;AAC/D,MAAM,6BAA6B,GAAG,IAAI,CAAC;AAE3C;;GAEG;AACH,MAAa,4BAA4B;IAOvC,wCAAwC;IACjC,MAAM,KAAK,OAAO,KAAK,OAAO,4BAA4B,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IAO1F;;MAEE;IACK,MAAM,CAAC,UAAU;QACtB,4BAA4B,CAAC,UAAU,GAAG,4BAA4B,CAAC,sBAAsB,EAAE,CAAC;IAClG,CAAC;IAEO,MAAM,CAAC,sBAAsB;QACnC,MAAM,QAAQ,GAAG,sCAAsC,CAAC;QACxD,MAAM,KAAK,GAAG,IAAA,mCAAsB,EAAC,QAAQ,CAAC,CAAC;QAE/C,uBAAuB;QACvB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YACf,OAAO,KAAK,CAAC;QAEf,qBAAM,CAAC,QAAQ,CAAC,yBAAW,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,QAAQ,0BAA0B,CAAC,CAAC;QAC1F,OAAO,6BAA6B,CAAC;IACvC,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,IAAI,CAAC,MAAuB,EAAE,EAAU,EAAE,cAAc,GAAG,QAAQ;QAC/E,MAAM,UAAU,GAAG,4BAA4B,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnE,IAAI,UAAU,EAAE;YACd,MAAM,OAAO,GAAG,sBAAsB,EAAE,kBAAkB,CAAC;YAC3D,qBAAM,CAAC,OAAO,CAAC,yBAAW,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,eAAe,OAAO,EAAE,CAAC,CAAC;YAC3E,yBAAS,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,oCAAoB,CAAC,qCAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,iCAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;YACzI,OAAO;SACR;QACD,4BAA4B,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,4BAA4B,CAAC,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC;QAC1I,4BAA4B,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/C,4BAA4B,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;IACpF,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,EAAU;QAC5B,MAAM,UAAU,GAAG,4BAA4B,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnE,IAAI,UAAU,EAAE;YACd,4BAA4B,CAAC,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAC9E,4BAA4B,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACnD,MAAM,KAAK,GAAG,4BAA4B,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAChE,uBAAuB;YACvB,IAAI,KAAK,IAAI,CAAC;gBACZ,4BAA4B,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAEzD,IAAI,4BAA4B,CAAC,MAAM,KAAK,SAAS;gBACnD,4BAA4B,CAAC,UAAU,GAAG,4BAA4B,CAAC,sBAAsB,EAAE,CAAC;YAElG,IAAI,CAAC,MAAM,EAAE,CAAC;SACf;aAAM;YACL,qBAAM,CAAC,QAAQ,CAAC,yBAAW,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,kDAAkD,EAAE,GAAG,CAAC,CAAC;SAC5G;IACH,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,QAAQ;QACpB,4BAA4B,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;IACxD,CAAC;IAED,yBAAyB;IAClB,MAAM,CAAC,MAAM;QAClB,4BAA4B,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;IACtD,CAAC;IAED,qCAAqC;IAC9B,MAAM,KAAK,MAAM;QACtB,IAAI,4BAA4B,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACpD,MAAM,EAAE,GAAG,4BAA4B,CAAC,QAAQ,CAAC,4BAA4B,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACnG,MAAM,UAAU,GAAG,4BAA4B,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACnE,uBAAuB;YACvB,IAAI,UAAU;gBACZ,OAAO,UAAU,CAAC,SAAS,CAAC;SAC/B;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,wCAAwC;IACjC,MAAM,KAAK,KAAK;QACrB,OAAO,4BAA4B,CAAC,aAAa,CAAC,WAAW,CAAC;IAChE,CAAC;IAED,uDAAuD;IAChD,MAAM,CAAC,sBAAsB,CAAC,MAA0B,EAAE,EAAU,EAAE,UAAsB;QACjG,MAAM,UAAU,GAAG,4BAA4B,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnE,IAAI,UAAU,IAAI,UAAU,CAAC,SAAS,KAAK,4BAA4B,CAAC,MAAM,EAAE;YAC9E,UAAU,CAAC,MAAM,GAAG,EAAE,4BAA4B,CAAC,UAAU,CAAC;YAE9D,4BAA4B,CAAC,QAAQ,CAAC,MAAM,CAAC,4BAA4B,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACnG,4BAA4B,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAE/C,UAAU,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,EAAE,CAAC;SACf;IACH,CAAC;IAED,4CAA4C;IACrC,MAAM,CAAC,SAAS,CAAC,EAAU;QAChC,IAAI,MAAM,GAAG,4BAA4B,CAAC,sBAAsB,EAAE,CAAC;QACnE,MAAM,UAAU,GAAG,4BAA4B,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnE,uBAAuB;QACvB,IAAI,UAAU;YACZ,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QAC7B,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,EAAU;QAC9B,OAAO,4BAA4B,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;;AA9HD,mCAAmC;AACZ,wDAA2B,GAAG,IAAI,4CAAyB,EAAE,CAAC;AAErF,gBAAgB;AACO,0CAAa,GAAsB,IAAI,qCAAiB,CAAC,4BAA4B,CAAC,2BAA2B,CAAC,CAAC;AAK3H,uCAAU,GAAG,IAAI,GAAG,EAA6B,CAAC;AAClD,qCAAQ,GAAG,IAAI,KAAK,EAAU,CAAC;AAE/B,uCAAU,GAAG,6BAA6B,CAAC;AAb/C,oEAA4B","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 type * 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 type { ContentDialogInfo } from \"../framework/FrameworkContent\";\r\nimport { ContentDialogChangedEvent } 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 type * 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 type * 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"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternalModelessDialogManager.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/InternalModelessDialogManager.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 type * as React from \"react\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport { UiFramework } from \"../UiFramework\";\nimport { DialogManagerBase } from \"./DialogManagerBase\";\nimport { IModelApp, NotifyMessageDetails, OutputMessagePriority, OutputMessageType } from \"@itwin/core-frontend\";\nimport type { ModelessDialogInfo } from \"../framework/FrameworkDialogs\";\nimport { ModelessDialogChangedEvent } from \"../framework/FrameworkDialogs\";\n\n// cSpell:ignore ZINDEX modeless\n\n/** Modeless Dialog Manager class displays and manages multiple modeless dialogs\n * @internal\n */\nexport class InternalModelessDialogManager {\n /** Modeless Dialog Changed Event */\n public static readonly onModelessDialogChangedEvent = new ModelessDialogChangedEvent();\n\n /** @internal */\n public static readonly dialogManager: DialogManagerBase = new DialogManagerBase(InternalModelessDialogManager.onModelessDialogChangedEvent);\n\n /** Get the array of modeless dialogs */\n public static get dialogs() { return InternalModelessDialogManager.dialogManager.dialogs; }\n\n private static _dialogMap = new Map<string, ModelessDialogInfo>();\n private static _idArray = new Array<string>();\n\n /** Initialize the modeless dialog manager\n * @internal\n */\n public static initialize(): void {\n DialogManagerBase.initialize();\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 = InternalModelessDialogManager._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 InternalModelessDialogManager._dialogMap.set(id, { reactNode: dialog, zIndex: DialogManagerBase.topZIndex, parentDocument });\n InternalModelessDialogManager._idArray.push(id);\n InternalModelessDialogManager.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 = InternalModelessDialogManager._dialogMap.get(id);\n if (dialogInfo) {\n InternalModelessDialogManager.dialogManager.removeDialog(dialogInfo.reactNode);\n InternalModelessDialogManager._dialogMap.delete(id);\n const index = InternalModelessDialogManager._idArray.indexOf(id);\n // istanbul ignore else\n if (index >= 0)\n InternalModelessDialogManager._idArray.splice(index, 1);\n\n if (InternalModelessDialogManager.active === undefined)\n DialogManagerBase.topZIndex = DialogManagerBase.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 InternalModelessDialogManager.dialogManager.closeAll();\n }\n\n /** Update the dialogs */\n public static update(): void {\n InternalModelessDialogManager.dialogManager.update();\n }\n\n /** Get the active modeless dialog */\n public static get active(): React.ReactNode | undefined {\n if (InternalModelessDialogManager._idArray.length > 0) {\n const id = InternalModelessDialogManager._idArray[InternalModelessDialogManager._idArray.length - 1];\n const dialogInfo = InternalModelessDialogManager._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 InternalModelessDialogManager.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 = InternalModelessDialogManager._dialogMap.get(id);\n if (dialogInfo && dialogInfo.reactNode !== InternalModelessDialogManager.active) {\n DialogManagerBase.topZIndex += 1;\n dialogInfo.zIndex = DialogManagerBase.topZIndex;\n\n InternalModelessDialogManager._idArray.splice(InternalModelessDialogManager._idArray.indexOf(id), 1);\n InternalModelessDialogManager._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 = DialogManagerBase.getDialogZIndexDefault();\n const dialogInfo = InternalModelessDialogManager._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): ModelessDialogInfo | undefined {\n return InternalModelessDialogManager._dialogMap.get(id);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"InternalModelessDialogManager.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/InternalModelessDialogManager.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 type * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { DialogManagerBase } from \"./DialogManagerBase\";\r\nimport { IModelApp, NotifyMessageDetails, OutputMessagePriority, OutputMessageType } from \"@itwin/core-frontend\";\r\nimport type { ModelessDialogInfo } from \"../framework/FrameworkDialogs\";\r\nimport { ModelessDialogChangedEvent } from \"../framework/FrameworkDialogs\";\r\n\r\n// cSpell:ignore ZINDEX modeless\r\n\r\n/** Modeless Dialog Manager class displays and manages multiple modeless dialogs\r\n * @internal\r\n */\r\nexport class InternalModelessDialogManager {\r\n /** Modeless Dialog Changed Event */\r\n public static readonly onModelessDialogChangedEvent = new ModelessDialogChangedEvent();\r\n\r\n /** @internal */\r\n public static readonly dialogManager: DialogManagerBase = new DialogManagerBase(InternalModelessDialogManager.onModelessDialogChangedEvent);\r\n\r\n /** Get the array of modeless dialogs */\r\n public static get dialogs() { return InternalModelessDialogManager.dialogManager.dialogs; }\r\n\r\n private static _dialogMap = new Map<string, ModelessDialogInfo>();\r\n private static _idArray = new Array<string>();\r\n\r\n /** Initialize the modeless dialog manager\r\n * @internal\r\n */\r\n public static initialize(): void {\r\n DialogManagerBase.initialize();\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 = InternalModelessDialogManager._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 InternalModelessDialogManager._dialogMap.set(id, { reactNode: dialog, zIndex: DialogManagerBase.topZIndex, parentDocument });\r\n InternalModelessDialogManager._idArray.push(id);\r\n InternalModelessDialogManager.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 = InternalModelessDialogManager._dialogMap.get(id);\r\n if (dialogInfo) {\r\n InternalModelessDialogManager.dialogManager.removeDialog(dialogInfo.reactNode);\r\n InternalModelessDialogManager._dialogMap.delete(id);\r\n const index = InternalModelessDialogManager._idArray.indexOf(id);\r\n // istanbul ignore else\r\n if (index >= 0)\r\n InternalModelessDialogManager._idArray.splice(index, 1);\r\n\r\n if (InternalModelessDialogManager.active === undefined)\r\n DialogManagerBase.topZIndex = DialogManagerBase.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 InternalModelessDialogManager.dialogManager.closeAll();\r\n }\r\n\r\n /** Update the dialogs */\r\n public static update(): void {\r\n InternalModelessDialogManager.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 (InternalModelessDialogManager._idArray.length > 0) {\r\n const id = InternalModelessDialogManager._idArray[InternalModelessDialogManager._idArray.length - 1];\r\n const dialogInfo = InternalModelessDialogManager._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 InternalModelessDialogManager.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 = InternalModelessDialogManager._dialogMap.get(id);\r\n if (dialogInfo && dialogInfo.reactNode !== InternalModelessDialogManager.active) {\r\n DialogManagerBase.topZIndex += 1;\r\n dialogInfo.zIndex = DialogManagerBase.topZIndex;\r\n\r\n InternalModelessDialogManager._idArray.splice(InternalModelessDialogManager._idArray.indexOf(id), 1);\r\n InternalModelessDialogManager._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 = DialogManagerBase.getDialogZIndexDefault();\r\n const dialogInfo = InternalModelessDialogManager._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): ModelessDialogInfo | undefined {\r\n return InternalModelessDialogManager._dialogMap.get(id);\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalDialogManager.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/ModalDialogManager.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,+BAA+B;AAE/B,2DAAyD;AACzD,6EAAsF;AAEtF;;GAEG;AACH,MAAa,mBAAoB,SAAQ,KAAK,CAAC,aAA0B;IAEvE,YAAY,KAAkB;QAC5B,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAEe,MAAM;QACpB,OAAO,CACL,oBAAC,sCAAkB,OAAK,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,uDAAQ,CAAC,aAAa,GAAI,CAC9E,CAAC;IACJ,CAAC;CACF;AAXD,kDAWC","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 type { CommonProps } from \"@itwin/core-react\";\nimport { DialogRendererBase } from \"./DialogManagerBase\";\nimport { InternalModalDialogManager as internal } from \"./InternalModalDialogManager\";\n\n/** ModalDialogRenderer React component renders modal dialogs\n * @public\n */\nexport class ModalDialogRenderer 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":"ModalDialogManager.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/ModalDialogManager.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,+BAA+B;AAE/B,2DAAyD;AACzD,6EAAsF;AAEtF;;GAEG;AACH,MAAa,mBAAoB,SAAQ,KAAK,CAAC,aAA0B;IAEvE,YAAY,KAAkB;QAC5B,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAEe,MAAM;QACpB,OAAO,CACL,oBAAC,sCAAkB,OAAK,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,uDAAQ,CAAC,aAAa,GAAI,CAC9E,CAAC;IACJ,CAAC;CACF;AAXD,kDAWC","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 type { CommonProps } from \"@itwin/core-react\";\r\nimport { DialogRendererBase } from \"./DialogManagerBase\";\r\nimport { InternalModalDialogManager as internal } from \"./InternalModalDialogManager\";\r\n\r\n/** ModalDialogRenderer React component renders modal dialogs\r\n * @public\r\n */\r\nexport class ModalDialogRenderer 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":"ModelessDialog.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/ModelessDialog.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,+BAA+B;AAE/B,kDAA2C;AAC3C,gDAA6C;AAU7C;;;GAGG;AACH,MAAa,cAAe,SAAQ,KAAK,CAAC,SAA8B;IACtE,YAAY,KAA0B;QACpC,KAAK,CAAC,KAAK,CAAC,CAAC;QAmBP,kBAAa,GAAG,GAAG,EAAE;YAC3B,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC,CAAC;IApBF,CAAC;IAEe,MAAM;QACpB,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,qBAAqB,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,wDAAwD;QAEpJ,OAAO,CACL,oBAAC,mBAAM,OACD,KAAK,EACT,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,QAAQ,EACpB,qBAAqB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,yBAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,EAC1H,KAAK,EAAE,EAAE,MAAM,EAAE,yBAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,EAAE,IAE5E,IAAI,CAAC,KAAK,CAAC,QAAQ,CACZ,CACX,CAAC;IACJ,CAAC;CAKF;AAxBD,wCAwBC","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 type { DialogProps } from \"@itwin/core-react\";\nimport { Dialog } from \"@itwin/core-react\";\nimport { UiFramework } from \"../UiFramework\";\n\n/** Properties for the [[ModelessDialog]] component\n * @public\n */\nexport interface ModelessDialogProps extends DialogProps {\n dialogId: string;\n movable?: boolean;\n}\n\n/** Modeless Dialog React component uses the Dialog component with a modal={false} prop.\n * It controls the z-index to keep the focused dialog above others.\n * @public\n */\nexport class ModelessDialog extends React.Component<ModelessDialogProps> {\n constructor(props: ModelessDialogProps) {\n super(props);\n }\n\n public override render(): JSX.Element {\n const { dialogId, style, modal, modelessId, onModelessPointerDown, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\n\n return (\n <Dialog\n {...props}\n modal={false}\n modelessId={dialogId}\n onModelessPointerDown={(event) => UiFramework.dialogs.modeless.handlePointerDownEvent(event, dialogId, this._updateDialog)}\n style={{ zIndex: UiFramework.dialogs.modeless.getZIndex(dialogId), ...style }}\n >\n {this.props.children}\n </Dialog >\n );\n }\n\n private _updateDialog = () => {\n this.forceUpdate();\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ModelessDialog.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/ModelessDialog.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,+BAA+B;AAE/B,kDAA2C;AAC3C,gDAA6C;AAU7C;;;GAGG;AACH,MAAa,cAAe,SAAQ,KAAK,CAAC,SAA8B;IACtE,YAAY,KAA0B;QACpC,KAAK,CAAC,KAAK,CAAC,CAAC;QAmBP,kBAAa,GAAG,GAAG,EAAE;YAC3B,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC,CAAC;IApBF,CAAC;IAEe,MAAM;QACpB,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,qBAAqB,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,wDAAwD;QAEpJ,OAAO,CACL,oBAAC,mBAAM,OACD,KAAK,EACT,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,QAAQ,EACpB,qBAAqB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,yBAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,EAC1H,KAAK,EAAE,EAAE,MAAM,EAAE,yBAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,EAAE,IAE5E,IAAI,CAAC,KAAK,CAAC,QAAQ,CACZ,CACX,CAAC;IACJ,CAAC;CAKF;AAxBD,wCAwBC","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 type { DialogProps } from \"@itwin/core-react\";\r\nimport { Dialog } from \"@itwin/core-react\";\r\nimport { UiFramework } from \"../UiFramework\";\r\n\r\n/** Properties for the [[ModelessDialog]] component\r\n * @public\r\n */\r\nexport interface ModelessDialogProps extends DialogProps {\r\n dialogId: string;\r\n movable?: boolean;\r\n}\r\n\r\n/** Modeless 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 others.\r\n * @public\r\n */\r\nexport class ModelessDialog extends React.Component<ModelessDialogProps> {\r\n constructor(props: ModelessDialogProps) {\r\n super(props);\r\n }\r\n\r\n public override render(): JSX.Element {\r\n const { dialogId, style, modal, modelessId, onModelessPointerDown, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n\r\n return (\r\n <Dialog\r\n {...props}\r\n modal={false}\r\n modelessId={dialogId}\r\n onModelessPointerDown={(event) => UiFramework.dialogs.modeless.handlePointerDownEvent(event, dialogId, this._updateDialog)}\r\n style={{ zIndex: UiFramework.dialogs.modeless.getZIndex(dialogId), ...style }}\r\n >\r\n {this.props.children}\r\n </Dialog >\r\n );\r\n }\r\n\r\n private _updateDialog = () => {\r\n this.forceUpdate();\r\n };\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelessDialogManager.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/ModelessDialogManager.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,+BAA+B;AAE/B,2DAAyD;AACzD,mFAA4F;AAE5F,gCAAgC;AAEhC;;GAEG;AACH,MAAa,sBAAuB,SAAQ,KAAK,CAAC,aAA0B;IAE1E,YAAY,KAAkB;QAC5B,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAEe,MAAM;QACpB,OAAO,CACL,oBAAC,sCAAkB,OAAK,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,6DAAQ,CAAC,aAAa,GAAI,CAC9E,CAAC;IACJ,CAAC;CACF;AAXD,wDAWC","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 type { CommonProps } from \"@itwin/core-react\";\nimport { DialogRendererBase } from \"./DialogManagerBase\";\nimport { InternalModelessDialogManager as internal } from \"./InternalModelessDialogManager\";\n\n// cSpell:ignore ZINDEX modeless\n\n/** ModelessDialogRenderer React component renders modeless dialogs.\n * @public\n */\nexport class ModelessDialogRenderer 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\n"]}
|
|
1
|
+
{"version":3,"file":"ModelessDialogManager.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/ModelessDialogManager.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,+BAA+B;AAE/B,2DAAyD;AACzD,mFAA4F;AAE5F,gCAAgC;AAEhC;;GAEG;AACH,MAAa,sBAAuB,SAAQ,KAAK,CAAC,aAA0B;IAE1E,YAAY,KAAkB;QAC5B,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAEe,MAAM;QACpB,OAAO,CACL,oBAAC,sCAAkB,OAAK,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,6DAAQ,CAAC,aAAa,GAAI,CAC9E,CAAC;IACJ,CAAC;CACF;AAXD,wDAWC","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 type { CommonProps } from \"@itwin/core-react\";\r\nimport { DialogRendererBase } from \"./DialogManagerBase\";\r\nimport { InternalModelessDialogManager as internal } from \"./InternalModelessDialogManager\";\r\n\r\n// cSpell:ignore ZINDEX modeless\r\n\r\n/** ModelessDialogRenderer React component renders modeless dialogs.\r\n * @public\r\n */\r\nexport class ModelessDialogRenderer 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\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StandardMessageBox.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/StandardMessageBox.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 { MessageBoxIconType, MessageBoxType, MessageBoxValue } from \"@itwin/core-frontend\";\nimport type { DialogButtonDef} from \"@itwin/appui-abstract\";\nimport { DialogButtonType, MessageSeverity } from \"@itwin/appui-abstract\";\nimport type { CommonProps} from \"@itwin/core-react\";\nimport { MessageBox } from \"@itwin/core-react\";\nimport { DialogManagerBase } from \"./DialogManagerBase\";\nimport { UiFramework } from \"../UiFramework\";\n\n/** Properties for [[StandardMessageBox]] React component\n * @public\n */\nexport interface StandardMessageBoxProps extends CommonProps {\n /** Indicates whether the message box is open */\n opened: boolean;\n /** The standard icon to display in the message box */\n iconType: MessageBoxIconType;\n /** Title to display in the message box */\n title: string;\n /** Controls the button set displayed */\n messageBoxType: MessageBoxType;\n /** Callback function for processing the message box result */\n onResult?: (result: MessageBoxValue) => void;\n /** Content */\n children?: React.ReactNode;\n}\n\n/** State for [[StandardMessageBox]] React component\n * @internal\n */\ninterface StandardMessageBoxState {\n opened: boolean;\n}\n\n/** StandardMessageBox React component displays a standard icon, message text and a standard button set in the lower right.\n * @public\n */\nexport class StandardMessageBox extends React.PureComponent<StandardMessageBoxProps, StandardMessageBoxState> {\n\n /** @internal */\n public override readonly state: Readonly<StandardMessageBoxState>;\n\n constructor(props: StandardMessageBoxProps) {\n super(props);\n this.state = {\n opened: this.props.opened,\n };\n }\n\n public override render(): JSX.Element {\n const buttonCluster: DialogButtonDef[] = new Array<DialogButtonDef>();\n\n switch (this.props.messageBoxType) {\n case MessageBoxType.Ok:\n case MessageBoxType.LargeOk:\n buttonCluster.push({ type: DialogButtonType.OK, onClick: () => { this._handleButton(MessageBoxValue.Ok); } });\n break;\n case MessageBoxType.OkCancel:\n case MessageBoxType.MediumAlert:\n buttonCluster.push({ type: DialogButtonType.OK, onClick: () => { this._handleButton(MessageBoxValue.Ok); } });\n buttonCluster.push({ type: DialogButtonType.Cancel, onClick: () => { this._handleButton(MessageBoxValue.Cancel); } });\n break;\n case MessageBoxType.YesNo:\n case MessageBoxType.YesNoCancel:\n buttonCluster.push({ type: DialogButtonType.Yes, onClick: () => { this._handleButton(MessageBoxValue.Yes); } });\n buttonCluster.push({ type: DialogButtonType.No, onClick: () => { this._handleButton(MessageBoxValue.No); } });\n if (MessageBoxType.YesNoCancel === this.props.messageBoxType)\n buttonCluster.push({ type: DialogButtonType.Cancel, onClick: () => { this._handleButton(MessageBoxValue.Cancel); } });\n break;\n }\n\n let severity = MessageSeverity.None;\n switch (this.props.iconType) {\n case MessageBoxIconType.NoSymbol:\n severity = MessageSeverity.None;\n break;\n case MessageBoxIconType.Information:\n severity = MessageSeverity.Information;\n break;\n case MessageBoxIconType.Question:\n severity = MessageSeverity.Question;\n break;\n case MessageBoxIconType.Warning:\n severity = MessageSeverity.Warning;\n break;\n case MessageBoxIconType.Critical:\n severity = MessageSeverity.Error;\n break;\n case MessageBoxIconType.Success:\n severity = MessageSeverity.Success;\n break;\n }\n\n return (\n <MessageBox\n className={this.props.className}\n style={{ zIndex: DialogManagerBase.topZIndex, ...this.props.style }}\n opened={this.state.opened}\n title={this.props.title}\n severity={severity}\n buttonCluster={buttonCluster}\n onClose={this._handleCancel}\n onEscape={this._handleCancel}\n >\n {this.props.children}\n </MessageBox>\n );\n }\n\n private _handleButton = (buttonType: MessageBoxValue) => {\n this._closeDialog(() => {\n // istanbul ignore else\n if (this.props.onResult)\n this.props.onResult(buttonType);\n });\n };\n\n private _handleCancel = () => {\n this._closeDialog(() => {\n // istanbul ignore else\n if (this.props.onResult)\n this.props.onResult(MessageBoxValue.Cancel);\n });\n };\n\n private _closeDialog = (followUp: () => void) => {\n this.setState((_prevState) => ({\n opened: false,\n }), () => {\n UiFramework.dialogs.modal.close();\n followUp();\n });\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"StandardMessageBox.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/StandardMessageBox.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 { MessageBoxIconType, MessageBoxType, MessageBoxValue } from \"@itwin/core-frontend\";\r\nimport type { DialogButtonDef} from \"@itwin/appui-abstract\";\r\nimport { DialogButtonType, MessageSeverity } from \"@itwin/appui-abstract\";\r\nimport type { CommonProps} from \"@itwin/core-react\";\r\nimport { MessageBox } from \"@itwin/core-react\";\r\nimport { DialogManagerBase } from \"./DialogManagerBase\";\r\nimport { UiFramework } from \"../UiFramework\";\r\n\r\n/** Properties for [[StandardMessageBox]] React component\r\n * @public\r\n */\r\nexport interface StandardMessageBoxProps extends CommonProps {\r\n /** Indicates whether the message box is open */\r\n opened: boolean;\r\n /** The standard icon to display in the message box */\r\n iconType: MessageBoxIconType;\r\n /** Title to display in the message box */\r\n title: string;\r\n /** Controls the button set displayed */\r\n messageBoxType: MessageBoxType;\r\n /** Callback function for processing the message box result */\r\n onResult?: (result: MessageBoxValue) => void;\r\n /** Content */\r\n children?: React.ReactNode;\r\n}\r\n\r\n/** State for [[StandardMessageBox]] React component\r\n * @internal\r\n */\r\ninterface StandardMessageBoxState {\r\n opened: boolean;\r\n}\r\n\r\n/** StandardMessageBox React component displays a standard icon, message text and a standard button set in the lower right.\r\n * @public\r\n */\r\nexport class StandardMessageBox extends React.PureComponent<StandardMessageBoxProps, StandardMessageBoxState> {\r\n\r\n /** @internal */\r\n public override readonly state: Readonly<StandardMessageBoxState>;\r\n\r\n constructor(props: StandardMessageBoxProps) {\r\n super(props);\r\n this.state = {\r\n opened: this.props.opened,\r\n };\r\n }\r\n\r\n public override render(): JSX.Element {\r\n const buttonCluster: DialogButtonDef[] = new Array<DialogButtonDef>();\r\n\r\n switch (this.props.messageBoxType) {\r\n case MessageBoxType.Ok:\r\n case MessageBoxType.LargeOk:\r\n buttonCluster.push({ type: DialogButtonType.OK, onClick: () => { this._handleButton(MessageBoxValue.Ok); } });\r\n break;\r\n case MessageBoxType.OkCancel:\r\n case MessageBoxType.MediumAlert:\r\n buttonCluster.push({ type: DialogButtonType.OK, onClick: () => { this._handleButton(MessageBoxValue.Ok); } });\r\n buttonCluster.push({ type: DialogButtonType.Cancel, onClick: () => { this._handleButton(MessageBoxValue.Cancel); } });\r\n break;\r\n case MessageBoxType.YesNo:\r\n case MessageBoxType.YesNoCancel:\r\n buttonCluster.push({ type: DialogButtonType.Yes, onClick: () => { this._handleButton(MessageBoxValue.Yes); } });\r\n buttonCluster.push({ type: DialogButtonType.No, onClick: () => { this._handleButton(MessageBoxValue.No); } });\r\n if (MessageBoxType.YesNoCancel === this.props.messageBoxType)\r\n buttonCluster.push({ type: DialogButtonType.Cancel, onClick: () => { this._handleButton(MessageBoxValue.Cancel); } });\r\n break;\r\n }\r\n\r\n let severity = MessageSeverity.None;\r\n switch (this.props.iconType) {\r\n case MessageBoxIconType.NoSymbol:\r\n severity = MessageSeverity.None;\r\n break;\r\n case MessageBoxIconType.Information:\r\n severity = MessageSeverity.Information;\r\n break;\r\n case MessageBoxIconType.Question:\r\n severity = MessageSeverity.Question;\r\n break;\r\n case MessageBoxIconType.Warning:\r\n severity = MessageSeverity.Warning;\r\n break;\r\n case MessageBoxIconType.Critical:\r\n severity = MessageSeverity.Error;\r\n break;\r\n case MessageBoxIconType.Success:\r\n severity = MessageSeverity.Success;\r\n break;\r\n }\r\n\r\n return (\r\n <MessageBox\r\n className={this.props.className}\r\n style={{ zIndex: DialogManagerBase.topZIndex, ...this.props.style }}\r\n opened={this.state.opened}\r\n title={this.props.title}\r\n severity={severity}\r\n buttonCluster={buttonCluster}\r\n onClose={this._handleCancel}\r\n onEscape={this._handleCancel}\r\n >\r\n {this.props.children}\r\n </MessageBox>\r\n );\r\n }\r\n\r\n private _handleButton = (buttonType: MessageBoxValue) => {\r\n this._closeDialog(() => {\r\n // istanbul ignore else\r\n if (this.props.onResult)\r\n this.props.onResult(buttonType);\r\n });\r\n };\r\n\r\n private _handleCancel = () => {\r\n this._closeDialog(() => {\r\n // istanbul ignore else\r\n if (this.props.onResult)\r\n this.props.onResult(MessageBoxValue.Cancel);\r\n });\r\n };\r\n\r\n private _closeDialog = (followUp: () => void) => {\r\n this.setState((_prevState) => ({\r\n opened: false,\r\n }), () => {\r\n UiFramework.dialogs.modal.close();\r\n followUp();\r\n });\r\n };\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UiDataProvidedDialog.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/UiDataProvidedDialog.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 { Dialog } from \"@itwin/core-react\";\nimport type { DialogButtonDef, DialogLayoutDataProvider } from \"@itwin/appui-abstract\";\nimport { DialogButtonType } from \"@itwin/appui-abstract\";\nimport { getUniqueId } from \"@itwin/appui-layout-react\";\nimport { DefaultDialogGridContainer } from \"../uiprovider/DefaultDialogGridContainer\";\nimport { ComponentGenerator } from \"../uiprovider/ComponentGenerator\";\nimport { UiFramework } from \"../UiFramework\";\n\n/** Props for [[UiDataProvidedDialog]] component.\n * @public\n */\nexport interface UiDataProvidedDialogProps {\n /** Dialog title */\n title: string;\n /** Provider that provides and lays out DialogItems */\n uiDataProvider: DialogLayoutDataProvider;\n /** Indicates if Dialog is Modal */\n isModal: boolean;\n /** Id used to specify dialog. */\n id?: string;\n /** Indicates whether the user can resize dialog with cursor. Default: false */\n resizable?: boolean;\n /** Indicates whether the user can move dialog with cursor. Default: false */\n movable?: boolean;\n /** Initial width of dialog. Displayed in px if value is a number; otherwise, displayed in specified CSS unit. Default: \"50%\" */\n width?: string | number;\n /** Initial height of dialog. Displayed in px if value is a number; otherwise, displayed in specified CSS unit. */\n height?: string | number;\n /** Minimum width that the dialog may be resized to. Displayed in px if value is a number; otherwise, displayed in specified CSS unit. Default: 300px */\n minWidth?: string | number;\n /** Minimum height that the dialog may be resized to. Displayed in px if value is a number; otherwise, displayed in specified CSS unit. Default: 100px */\n minHeight?: string | number;\n /** Maximum width that the dialog may be resized to. Displayed in px if value is a number; otherwise, displayed in specified CSS unit. */\n maxWidth?: string | number;\n /** Maximum height that the dialog may be resized to. Displayed in px if value is a number; otherwise, displayed in specified CSS unit. */\n maxHeight?: string | number;\n}\n\n/** Component to show dialog populated from properties supplied via uiDataProvider\n * @public\n */\nexport function UiDataProvidedDialog({ uiDataProvider, id, isModal, ...dialogProps }: UiDataProvidedDialogProps) {\n const dialogId = React.useRef(id ? id : getUniqueId());\n const dialogIsModal = React.useRef(isModal);\n const onOK = React.useRef<() => void>();\n const onCancel = React.useRef<() => void>();\n const closeDialog = () => {\n if (dialogIsModal.current)\n UiFramework.dialogs.modal.close();\n else\n UiFramework.dialogs.modeless.close(dialogId.current);\n };\n\n const handleOk = React.useCallback(() => {\n onOK.current && onOK.current();\n closeDialog();\n }, []);\n\n const handleCancel = React.useCallback(() => {\n onCancel.current && onCancel.current();\n closeDialog();\n }, []);\n\n const generateButtonCluster = React.useCallback((buttons: DialogButtonDef[] | undefined) => {\n // istanbul ignore else\n if (buttons) {\n for (const button of buttons) {\n if (DialogButtonType.Cancel === button.type) {\n onCancel.current = button.onClick;\n button.onClick = handleCancel;\n continue;\n }\n if (DialogButtonType.OK === button.type) {\n onOK.current = button.onClick;\n button.onClick = handleOk;\n continue;\n }\n }\n }\n return buttons;\n }, [handleCancel, handleOk]);\n const [buttonCluster, setButtonCluster] = React.useState(() => generateButtonCluster(uiDataProvider.supplyButtonData()));\n\n React.useEffect(() => {\n const handleReloaded = () => {\n setButtonCluster(generateButtonCluster(uiDataProvider.supplyButtonData()));\n };\n uiDataProvider.onItemsReloadedEvent.addListener(handleReloaded);\n return () => {\n uiDataProvider.onItemsReloadedEvent.removeListener(handleReloaded);\n };\n }, [generateButtonCluster, uiDataProvider]);\n\n React.useEffect(() => {\n const handleButtonReloaded = () => {\n setButtonCluster(generateButtonCluster(uiDataProvider.supplyButtonData()));\n };\n uiDataProvider.onButtonsReloadedEvent.addListener(handleButtonReloaded);\n return () => {\n uiDataProvider.onButtonsReloadedEvent.removeListener(handleButtonReloaded);\n };\n }, [generateButtonCluster, uiDataProvider]);\n\n const handleClose = React.useCallback(() => closeDialog(), []);\n\n return (<Dialog {...dialogProps}\n opened={true}\n modal={isModal}\n buttonCluster={buttonCluster}\n onClose={handleClose}\n onEscape={handleClose}\n >\n <DefaultDialogGridContainer componentGenerator={new ComponentGenerator(uiDataProvider)} />\n </Dialog>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"UiDataProvidedDialog.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/UiDataProvidedDialog.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 { Dialog } from \"@itwin/core-react\";\r\nimport type { DialogButtonDef, DialogLayoutDataProvider } from \"@itwin/appui-abstract\";\r\nimport { DialogButtonType } from \"@itwin/appui-abstract\";\r\nimport { getUniqueId } from \"@itwin/appui-layout-react\";\r\nimport { DefaultDialogGridContainer } from \"../uiprovider/DefaultDialogGridContainer\";\r\nimport { ComponentGenerator } from \"../uiprovider/ComponentGenerator\";\r\nimport { UiFramework } from \"../UiFramework\";\r\n\r\n/** Props for [[UiDataProvidedDialog]] component.\r\n * @public\r\n */\r\nexport interface UiDataProvidedDialogProps {\r\n /** Dialog title */\r\n title: string;\r\n /** Provider that provides and lays out DialogItems */\r\n uiDataProvider: DialogLayoutDataProvider;\r\n /** Indicates if Dialog is Modal */\r\n isModal: boolean;\r\n /** Id used to specify dialog. */\r\n id?: string;\r\n /** Indicates whether the user can resize dialog with cursor. Default: false */\r\n resizable?: boolean;\r\n /** Indicates whether the user can move dialog with cursor. Default: false */\r\n movable?: boolean;\r\n /** Initial width of dialog. Displayed in px if value is a number; otherwise, displayed in specified CSS unit. Default: \"50%\" */\r\n width?: string | number;\r\n /** Initial height of dialog. Displayed in px if value is a number; otherwise, displayed in specified CSS unit. */\r\n height?: string | number;\r\n /** Minimum width that the dialog may be resized to. Displayed in px if value is a number; otherwise, displayed in specified CSS unit. Default: 300px */\r\n minWidth?: string | number;\r\n /** Minimum height that the dialog may be resized to. Displayed in px if value is a number; otherwise, displayed in specified CSS unit. Default: 100px */\r\n minHeight?: string | number;\r\n /** Maximum width that the dialog may be resized to. Displayed in px if value is a number; otherwise, displayed in specified CSS unit. */\r\n maxWidth?: string | number;\r\n /** Maximum height that the dialog may be resized to. Displayed in px if value is a number; otherwise, displayed in specified CSS unit. */\r\n maxHeight?: string | number;\r\n}\r\n\r\n/** Component to show dialog populated from properties supplied via uiDataProvider\r\n * @public\r\n */\r\nexport function UiDataProvidedDialog({ uiDataProvider, id, isModal, ...dialogProps }: UiDataProvidedDialogProps) {\r\n const dialogId = React.useRef(id ? id : getUniqueId());\r\n const dialogIsModal = React.useRef(isModal);\r\n const onOK = React.useRef<() => void>();\r\n const onCancel = React.useRef<() => void>();\r\n const closeDialog = () => {\r\n if (dialogIsModal.current)\r\n UiFramework.dialogs.modal.close();\r\n else\r\n UiFramework.dialogs.modeless.close(dialogId.current);\r\n };\r\n\r\n const handleOk = React.useCallback(() => {\r\n onOK.current && onOK.current();\r\n closeDialog();\r\n }, []);\r\n\r\n const handleCancel = React.useCallback(() => {\r\n onCancel.current && onCancel.current();\r\n closeDialog();\r\n }, []);\r\n\r\n const generateButtonCluster = React.useCallback((buttons: DialogButtonDef[] | undefined) => {\r\n // istanbul ignore else\r\n if (buttons) {\r\n for (const button of buttons) {\r\n if (DialogButtonType.Cancel === button.type) {\r\n onCancel.current = button.onClick;\r\n button.onClick = handleCancel;\r\n continue;\r\n }\r\n if (DialogButtonType.OK === button.type) {\r\n onOK.current = button.onClick;\r\n button.onClick = handleOk;\r\n continue;\r\n }\r\n }\r\n }\r\n return buttons;\r\n }, [handleCancel, handleOk]);\r\n const [buttonCluster, setButtonCluster] = React.useState(() => generateButtonCluster(uiDataProvider.supplyButtonData()));\r\n\r\n React.useEffect(() => {\r\n const handleReloaded = () => {\r\n setButtonCluster(generateButtonCluster(uiDataProvider.supplyButtonData()));\r\n };\r\n uiDataProvider.onItemsReloadedEvent.addListener(handleReloaded);\r\n return () => {\r\n uiDataProvider.onItemsReloadedEvent.removeListener(handleReloaded);\r\n };\r\n }, [generateButtonCluster, uiDataProvider]);\r\n\r\n React.useEffect(() => {\r\n const handleButtonReloaded = () => {\r\n setButtonCluster(generateButtonCluster(uiDataProvider.supplyButtonData()));\r\n };\r\n uiDataProvider.onButtonsReloadedEvent.addListener(handleButtonReloaded);\r\n return () => {\r\n uiDataProvider.onButtonsReloadedEvent.removeListener(handleButtonReloaded);\r\n };\r\n }, [generateButtonCluster, uiDataProvider]);\r\n\r\n const handleClose = React.useCallback(() => closeDialog(), []);\r\n\r\n return (<Dialog {...dialogProps}\r\n opened={true}\r\n modal={isModal}\r\n buttonCluster={buttonCluster}\r\n onClose={handleClose}\r\n onEscape={handleClose}\r\n >\r\n <DefaultDialogGridContainer componentGenerator={new ComponentGenerator(uiDataProvider)} />\r\n </Dialog>\r\n );\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ElementTooltip.js","sourceRoot":"","sources":["../../../../src/appui-react/feedback/ElementTooltip.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 classnames from \"classnames\";\nimport * as React from \"react\";\nimport type { XAndY } from \"@itwin/core-geometry\";\nimport type { ToolTipOptions } from \"@itwin/core-frontend\";\nimport type { PointProps} from \"@itwin/appui-abstract\";\nimport { UiEvent } from \"@itwin/appui-abstract\";\nimport type { CommonProps, Point, SizeProps } from \"@itwin/core-react\";\nimport { Rectangle } from \"@itwin/core-react\";\nimport { offsetAndContainInContainer, Tooltip } from \"@itwin/appui-layout-react\";\nimport { MessageDiv } from \"../messages/MessageSpan\";\nimport type { NotifyMessageType } from \"../messages/ReactNotifyMessageDetails\";\n\n/** [[ElementTooltip]] State.\n * @internal\n */\ninterface ElementTooltipState {\n isVisible: boolean;\n message: NotifyMessageType;\n position: PointProps;\n options?: ToolTipOptions;\n}\n\n/** [[ElementTooltipChangedEvent]] arguments.\n * @public\n */\nexport interface ElementTooltipChangedEventArgs {\n isTooltipVisible: boolean;\n message: NotifyMessageType;\n el?: HTMLElement;\n pt?: XAndY;\n options?: ToolTipOptions;\n}\n\n/** ElementTooltip Changed Event class.\n * @public\n */\nexport class ElementTooltipChangedEvent extends UiEvent<ElementTooltipChangedEventArgs> { }\n\n/** ElementTooltip React component.\n * @public\n */\nexport class ElementTooltip extends React.Component<CommonProps, ElementTooltipState> {\n private static _elementTooltipChangedEvent: ElementTooltipChangedEvent = new ElementTooltipChangedEvent();\n private static _isTooltipVisible: boolean;\n private static _isTooltipHalted: boolean;\n\n public static get onElementTooltipChangedEvent(): ElementTooltipChangedEvent { return ElementTooltip._elementTooltipChangedEvent; }\n public static get isTooltipVisible(): boolean { return ElementTooltip._isTooltipVisible; }\n\n public static showTooltip(el: HTMLElement, message: NotifyMessageType, pt?: XAndY, options?: ToolTipOptions): void {\n // istanbul ignore if\n if (ElementTooltip._isTooltipHalted)\n return;\n ElementTooltip._isTooltipVisible = true;\n ElementTooltip.onElementTooltipChangedEvent.emit({ isTooltipVisible: true, el, message, pt, options });\n el.ownerDocument.addEventListener(\"mousemove\", ElementTooltip._handleMouseMove);\n }\n\n public static hideTooltip(): void {\n ElementTooltip._isTooltipVisible = false;\n ElementTooltip.onElementTooltipChangedEvent.emit({ isTooltipVisible: false, message: \"\" });\n }\n\n // istanbul ignore next\n public static get isTooltipHalted(): boolean { return ElementTooltip._isTooltipHalted; }\n // istanbul ignore next\n public static set isTooltipHalted(halt: boolean) {\n ElementTooltip._isTooltipHalted = halt;\n if (halt && ElementTooltip._isTooltipVisible)\n ElementTooltip.hideTooltip();\n }\n\n private _size: SizeProps = {\n height: 0,\n width: 0,\n };\n private _element?: HTMLElement;\n private _position?: PointProps;\n\n /** @internal */\n public override readonly state: Readonly<ElementTooltipState> = {\n message: \"\",\n isVisible: false,\n position: {\n x: 0,\n y: 0,\n },\n };\n\n constructor(props: CommonProps) {\n super(props);\n }\n\n public override render() {\n if (!this.state.isVisible)\n return null;\n\n const className = classnames(\n \"uifw-element-tooltip\",\n this.props.className);\n\n const messageNode = <MessageDiv message={this.state.message} />;\n\n return (\n <div className=\"uifw-element-tooltip-container\">\n <Tooltip\n className={className}\n style={this.props.style}\n position={this.state.position}\n onSizeChanged={this._handleSizeChanged}\n >\n {messageNode}\n </Tooltip>\n </div>\n );\n }\n\n public override componentDidMount(): void {\n ElementTooltip.onElementTooltipChangedEvent.addListener(this._handleElementTooltipChangedEvent);\n }\n\n public override componentWillUnmount(): void {\n ElementTooltip.onElementTooltipChangedEvent.removeListener(this._handleElementTooltipChangedEvent);\n }\n\n private static _handleMouseMove(event: MouseEvent) {\n const el = event.currentTarget as Document;\n /* Only monitor mouse movement when an ElementTooltip is open. */\n if (el && ElementTooltip._isTooltipHalted || !ElementTooltip._isTooltipVisible) {\n el.removeEventListener(\"mousemove\", ElementTooltip._handleMouseMove);\n return;\n }\n const hoveredElement = el ? el.elementFromPoint(event.clientX, event.clientY) : undefined;\n /* If the mouse has moved to an element that is not the view canvas, close the ElementTooltip. */\n // istanbul ignore next.\n if (hoveredElement && hoveredElement.localName !== \"canvas\") {\n ElementTooltip.onElementTooltipChangedEvent.emit({ isTooltipVisible: false, message: \"\" });\n el.removeEventListener(\"mousemove\", ElementTooltip._handleMouseMove);\n return;\n }\n }\n private _handleElementTooltipChangedEvent = (args: ElementTooltipChangedEventArgs) => {\n this._element = args.el;\n this._position = args.pt;\n this.setState({\n isVisible: args.isTooltipVisible,\n message: args.message,\n });\n this.updatePosition();\n };\n\n // istanbul ignore next\n private _handleSizeChanged = (size: SizeProps) => {\n this._size = size;\n this.updatePosition();\n };\n\n private updatePosition() {\n this.setState((prevState) => {\n if (!this._element)\n return null;\n // istanbul ignore next\n if (!this._position)\n return null;\n\n const containerBounds = Rectangle.create(this._element.getBoundingClientRect());\n const relativeBounds = Rectangle.createFromSize(this._size).offset(this._position);\n const adjustedPosition: Point = offsetAndContainInContainer(relativeBounds, containerBounds.getSize(), { x: 8, y: 8 });\n const position = adjustedPosition.offset(containerBounds.topLeft());\n\n // istanbul ignore else\n if (position.equals(prevState.position))\n return null;\n\n // istanbul ignore next\n return {\n position,\n };\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ElementTooltip.js","sourceRoot":"","sources":["../../../../src/appui-react/feedback/ElementTooltip.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Notification\r\n */\r\n\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport type { XAndY } from \"@itwin/core-geometry\";\r\nimport type { ToolTipOptions } from \"@itwin/core-frontend\";\r\nimport type { PointProps} from \"@itwin/appui-abstract\";\r\nimport { UiEvent } from \"@itwin/appui-abstract\";\r\nimport type { CommonProps, Point, SizeProps } from \"@itwin/core-react\";\r\nimport { Rectangle } from \"@itwin/core-react\";\r\nimport { offsetAndContainInContainer, Tooltip } from \"@itwin/appui-layout-react\";\r\nimport { MessageDiv } from \"../messages/MessageSpan\";\r\nimport type { NotifyMessageType } from \"../messages/ReactNotifyMessageDetails\";\r\n\r\n/** [[ElementTooltip]] State.\r\n * @internal\r\n */\r\ninterface ElementTooltipState {\r\n isVisible: boolean;\r\n message: NotifyMessageType;\r\n position: PointProps;\r\n options?: ToolTipOptions;\r\n}\r\n\r\n/** [[ElementTooltipChangedEvent]] arguments.\r\n * @public\r\n */\r\nexport interface ElementTooltipChangedEventArgs {\r\n isTooltipVisible: boolean;\r\n message: NotifyMessageType;\r\n el?: HTMLElement;\r\n pt?: XAndY;\r\n options?: ToolTipOptions;\r\n}\r\n\r\n/** ElementTooltip Changed Event class.\r\n * @public\r\n */\r\nexport class ElementTooltipChangedEvent extends UiEvent<ElementTooltipChangedEventArgs> { }\r\n\r\n/** ElementTooltip React component.\r\n * @public\r\n */\r\nexport class ElementTooltip extends React.Component<CommonProps, ElementTooltipState> {\r\n private static _elementTooltipChangedEvent: ElementTooltipChangedEvent = new ElementTooltipChangedEvent();\r\n private static _isTooltipVisible: boolean;\r\n private static _isTooltipHalted: boolean;\r\n\r\n public static get onElementTooltipChangedEvent(): ElementTooltipChangedEvent { return ElementTooltip._elementTooltipChangedEvent; }\r\n public static get isTooltipVisible(): boolean { return ElementTooltip._isTooltipVisible; }\r\n\r\n public static showTooltip(el: HTMLElement, message: NotifyMessageType, pt?: XAndY, options?: ToolTipOptions): void {\r\n // istanbul ignore if\r\n if (ElementTooltip._isTooltipHalted)\r\n return;\r\n ElementTooltip._isTooltipVisible = true;\r\n ElementTooltip.onElementTooltipChangedEvent.emit({ isTooltipVisible: true, el, message, pt, options });\r\n el.ownerDocument.addEventListener(\"mousemove\", ElementTooltip._handleMouseMove);\r\n }\r\n\r\n public static hideTooltip(): void {\r\n ElementTooltip._isTooltipVisible = false;\r\n ElementTooltip.onElementTooltipChangedEvent.emit({ isTooltipVisible: false, message: \"\" });\r\n }\r\n\r\n // istanbul ignore next\r\n public static get isTooltipHalted(): boolean { return ElementTooltip._isTooltipHalted; }\r\n // istanbul ignore next\r\n public static set isTooltipHalted(halt: boolean) {\r\n ElementTooltip._isTooltipHalted = halt;\r\n if (halt && ElementTooltip._isTooltipVisible)\r\n ElementTooltip.hideTooltip();\r\n }\r\n\r\n private _size: SizeProps = {\r\n height: 0,\r\n width: 0,\r\n };\r\n private _element?: HTMLElement;\r\n private _position?: PointProps;\r\n\r\n /** @internal */\r\n public override readonly state: Readonly<ElementTooltipState> = {\r\n message: \"\",\r\n isVisible: false,\r\n position: {\r\n x: 0,\r\n y: 0,\r\n },\r\n };\r\n\r\n constructor(props: CommonProps) {\r\n super(props);\r\n }\r\n\r\n public override render() {\r\n if (!this.state.isVisible)\r\n return null;\r\n\r\n const className = classnames(\r\n \"uifw-element-tooltip\",\r\n this.props.className);\r\n\r\n const messageNode = <MessageDiv message={this.state.message} />;\r\n\r\n return (\r\n <div className=\"uifw-element-tooltip-container\">\r\n <Tooltip\r\n className={className}\r\n style={this.props.style}\r\n position={this.state.position}\r\n onSizeChanged={this._handleSizeChanged}\r\n >\r\n {messageNode}\r\n </Tooltip>\r\n </div>\r\n );\r\n }\r\n\r\n public override componentDidMount(): void {\r\n ElementTooltip.onElementTooltipChangedEvent.addListener(this._handleElementTooltipChangedEvent);\r\n }\r\n\r\n public override componentWillUnmount(): void {\r\n ElementTooltip.onElementTooltipChangedEvent.removeListener(this._handleElementTooltipChangedEvent);\r\n }\r\n\r\n private static _handleMouseMove(event: MouseEvent) {\r\n const el = event.currentTarget as Document;\r\n /* Only monitor mouse movement when an ElementTooltip is open. */\r\n if (el && ElementTooltip._isTooltipHalted || !ElementTooltip._isTooltipVisible) {\r\n el.removeEventListener(\"mousemove\", ElementTooltip._handleMouseMove);\r\n return;\r\n }\r\n const hoveredElement = el ? el.elementFromPoint(event.clientX, event.clientY) : undefined;\r\n /* If the mouse has moved to an element that is not the view canvas, close the ElementTooltip. */\r\n // istanbul ignore next.\r\n if (hoveredElement && hoveredElement.localName !== \"canvas\") {\r\n ElementTooltip.onElementTooltipChangedEvent.emit({ isTooltipVisible: false, message: \"\" });\r\n el.removeEventListener(\"mousemove\", ElementTooltip._handleMouseMove);\r\n return;\r\n }\r\n }\r\n private _handleElementTooltipChangedEvent = (args: ElementTooltipChangedEventArgs) => {\r\n this._element = args.el;\r\n this._position = args.pt;\r\n this.setState({\r\n isVisible: args.isTooltipVisible,\r\n message: args.message,\r\n });\r\n this.updatePosition();\r\n };\r\n\r\n // istanbul ignore next\r\n private _handleSizeChanged = (size: SizeProps) => {\r\n this._size = size;\r\n this.updatePosition();\r\n };\r\n\r\n private updatePosition() {\r\n this.setState((prevState) => {\r\n if (!this._element)\r\n return null;\r\n // istanbul ignore next\r\n if (!this._position)\r\n return null;\r\n\r\n const containerBounds = Rectangle.create(this._element.getBoundingClientRect());\r\n const relativeBounds = Rectangle.createFromSize(this._size).offset(this._position);\r\n const adjustedPosition: Point = offsetAndContainInContainer(relativeBounds, containerBounds.getSize(), { x: 8, y: 8 });\r\n const position = adjustedPosition.offset(containerBounds.topLeft());\r\n\r\n // istanbul ignore else\r\n if (position.equals(prevState.position))\r\n return null;\r\n\r\n // istanbul ignore next\r\n return {\r\n position,\r\n };\r\n });\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValidationTextbox.js","sourceRoot":"","sources":["../../../../src/appui-react/feedback/ValidationTextbox.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 \"./ValidationTextbox.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { SpecialKey } from \"@itwin/appui-abstract\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { MessageManager } from \"../messages/MessageManager\";\nimport { Input } from \"@itwin/itwinui-react\";\n\n/** Enum for Input Status used in [[ValidationTextbox]]\n * @alpha\n */\nexport enum InputStatus {\n Valid = 0,\n Invalid = 1,\n}\n\n/** Property interface for ValidationTextbox\n * @alpha\n */\ninterface ValidationTextboxProps extends CommonProps {\n /** value to set ValidationTextbox to initially */\n initialValue?: string;\n /** placeholder value to show in gray before anything is entered in */\n placeholder?: string;\n /** triggered when the content of ValidationTextbox is changed. Return true if valid */\n onValueChanged?: (value: string) => InputStatus;\n /** listens for <Enter> key presses */\n onEnterPressed?: () => void;\n /** listens for <Esc> key presses */\n onEscPressed?: () => void;\n /** width of ValidationTextbox, measured in em */\n size?: number;\n /** Error message to display */\n errorText?: string;\n /** Detailed error message to display */\n detailedErrorText?: string;\n /** Content */\n children?: React.ReactNode;\n}\n\ninterface ValidationTextboxState {\n isValid: boolean;\n}\n\n/**\n * Input box that validates text based on provided criteria. Defaults to checking\n * for empty if no method for onValueChanged is provided.\n * @alpha\n */\nexport class ValidationTextbox extends React.PureComponent<ValidationTextboxProps, ValidationTextboxState> {\n constructor(props: ValidationTextboxProps) {\n super(props);\n\n this.state = { isValid: true };\n }\n\n /** @internal */\n public override render(): React.ReactNode {\n const sizeStyle: React.CSSProperties = {\n width: this.props.size ? `${this.props.size.toString()}em` : \"12em\",\n };\n const divStyle: React.CSSProperties = {\n ...sizeStyle,\n ...this.props.style,\n };\n\n const validClassNames = classnames(\n \"ValidationTextbox-input\",\n );\n\n const invalidClassNames = classnames(\n \"ValidationTextbox-input\",\n \"ValidationTextbox-invalid\",\n );\n\n return (\n <div\n className={classnames(\"uifw-ValidationTextbox\", this.props.className)}\n style={divStyle}>\n <Input\n className={this.state.isValid ? validClassNames : invalidClassNames}\n onChange={this._validateText}\n onKeyUp={this._handleKeyUp}\n onPaste={this._validateText}\n onCut={this._validateText}\n onBlur={this._validateText}\n placeholder={this.props.placeholder ? this.props.placeholder : \"\"}\n style={sizeStyle}\n />\n {this.props.children}\n </div>\n );\n }\n\n private processValidateText(target: HTMLInputElement | undefined): void {\n // istanbul ignore next\n if (undefined === target)\n return;\n\n const value = target.value;\n const isValid = this._calculateIsValid(value);\n\n this.setState({ isValid }, () => {\n if (this.state.isValid) {\n this._hideErrorMessage();\n } else {\n // istanbul ignore else\n if (this.props.errorText && !this.state.isValid)\n this._showErrorMessage(target);\n }\n });\n }\n\n /**\n * Determines if value is valid and resolves any defined functions.\n * Also will show or hide error message if defined.\n * @param event Button press event that triggers validation\n */\n private _validateText = (event?: any): void => {\n this.processValidateText(event.target as HTMLInputElement);\n };\n\n /**\n * Determines if value provided is valid by calling user defined\n * function. If no function is provided, the default criteria for\n * validity is if the value has been defined.\n * @param value The value provided in textbox\n */\n private _calculateIsValid(value: string): boolean {\n if (this.props.onValueChanged)\n return (this.props.onValueChanged(value) === InputStatus.Valid) ? /* istanbul ignore next */ true : false;\n return value.length > 0;\n }\n\n /** Hides error message */\n private _hideErrorMessage() {\n MessageManager.hideInputFieldMessage();\n }\n\n /** Displays error message. */\n private _showErrorMessage(target: Element) {\n MessageManager.displayInputFieldMessage(target as HTMLElement, this.props.errorText!, this.props.detailedErrorText);\n return;\n }\n\n /**\n * Manages special key codes by calling user defined functions\n * @param event Keyup event\n */\n private _handleKeyUp = (event: React.KeyboardEvent<HTMLInputElement>) => {\n this.processValidateText(event.target as HTMLInputElement);\n\n switch (event.key) {\n case SpecialKey.Escape:\n // istanbul ignore else\n if (this.props.onEscPressed)\n this.props.onEscPressed();\n break;\n case SpecialKey.Enter:\n // istanbul ignore else\n if (this.props.onEnterPressed)\n this.props.onEnterPressed();\n break;\n }\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ValidationTextbox.js","sourceRoot":"","sources":["../../../../src/appui-react/feedback/ValidationTextbox.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Notification\r\n */\r\n\r\nimport \"./ValidationTextbox.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { SpecialKey } from \"@itwin/appui-abstract\";\r\nimport type { CommonProps } from \"@itwin/core-react\";\r\nimport { MessageManager } from \"../messages/MessageManager\";\r\nimport { Input } from \"@itwin/itwinui-react\";\r\n\r\n/** Enum for Input Status used in [[ValidationTextbox]]\r\n * @alpha\r\n */\r\nexport enum InputStatus {\r\n Valid = 0,\r\n Invalid = 1,\r\n}\r\n\r\n/** Property interface for ValidationTextbox\r\n * @alpha\r\n */\r\ninterface ValidationTextboxProps extends CommonProps {\r\n /** value to set ValidationTextbox to initially */\r\n initialValue?: string;\r\n /** placeholder value to show in gray before anything is entered in */\r\n placeholder?: string;\r\n /** triggered when the content of ValidationTextbox is changed. Return true if valid */\r\n onValueChanged?: (value: string) => InputStatus;\r\n /** listens for <Enter> key presses */\r\n onEnterPressed?: () => void;\r\n /** listens for <Esc> key presses */\r\n onEscPressed?: () => void;\r\n /** width of ValidationTextbox, measured in em */\r\n size?: number;\r\n /** Error message to display */\r\n errorText?: string;\r\n /** Detailed error message to display */\r\n detailedErrorText?: string;\r\n /** Content */\r\n children?: React.ReactNode;\r\n}\r\n\r\ninterface ValidationTextboxState {\r\n isValid: boolean;\r\n}\r\n\r\n/**\r\n * Input box that validates text based on provided criteria. Defaults to checking\r\n * for empty if no method for onValueChanged is provided.\r\n * @alpha\r\n */\r\nexport class ValidationTextbox extends React.PureComponent<ValidationTextboxProps, ValidationTextboxState> {\r\n constructor(props: ValidationTextboxProps) {\r\n super(props);\r\n\r\n this.state = { isValid: true };\r\n }\r\n\r\n /** @internal */\r\n public override render(): React.ReactNode {\r\n const sizeStyle: React.CSSProperties = {\r\n width: this.props.size ? `${this.props.size.toString()}em` : \"12em\",\r\n };\r\n const divStyle: React.CSSProperties = {\r\n ...sizeStyle,\r\n ...this.props.style,\r\n };\r\n\r\n const validClassNames = classnames(\r\n \"ValidationTextbox-input\",\r\n );\r\n\r\n const invalidClassNames = classnames(\r\n \"ValidationTextbox-input\",\r\n \"ValidationTextbox-invalid\",\r\n );\r\n\r\n return (\r\n <div\r\n className={classnames(\"uifw-ValidationTextbox\", this.props.className)}\r\n style={divStyle}>\r\n <Input\r\n className={this.state.isValid ? validClassNames : invalidClassNames}\r\n onChange={this._validateText}\r\n onKeyUp={this._handleKeyUp}\r\n onPaste={this._validateText}\r\n onCut={this._validateText}\r\n onBlur={this._validateText}\r\n placeholder={this.props.placeholder ? this.props.placeholder : \"\"}\r\n style={sizeStyle}\r\n />\r\n {this.props.children}\r\n </div>\r\n );\r\n }\r\n\r\n private processValidateText(target: HTMLInputElement | undefined): void {\r\n // istanbul ignore next\r\n if (undefined === target)\r\n return;\r\n\r\n const value = target.value;\r\n const isValid = this._calculateIsValid(value);\r\n\r\n this.setState({ isValid }, () => {\r\n if (this.state.isValid) {\r\n this._hideErrorMessage();\r\n } else {\r\n // istanbul ignore else\r\n if (this.props.errorText && !this.state.isValid)\r\n this._showErrorMessage(target);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Determines if value is valid and resolves any defined functions.\r\n * Also will show or hide error message if defined.\r\n * @param event Button press event that triggers validation\r\n */\r\n private _validateText = (event?: any): void => {\r\n this.processValidateText(event.target as HTMLInputElement);\r\n };\r\n\r\n /**\r\n * Determines if value provided is valid by calling user defined\r\n * function. If no function is provided, the default criteria for\r\n * validity is if the value has been defined.\r\n * @param value The value provided in textbox\r\n */\r\n private _calculateIsValid(value: string): boolean {\r\n if (this.props.onValueChanged)\r\n return (this.props.onValueChanged(value) === InputStatus.Valid) ? /* istanbul ignore next */ true : false;\r\n return value.length > 0;\r\n }\r\n\r\n /** Hides error message */\r\n private _hideErrorMessage() {\r\n MessageManager.hideInputFieldMessage();\r\n }\r\n\r\n /** Displays error message. */\r\n private _showErrorMessage(target: Element) {\r\n MessageManager.displayInputFieldMessage(target as HTMLElement, this.props.errorText!, this.props.detailedErrorText);\r\n return;\r\n }\r\n\r\n /**\r\n * Manages special key codes by calling user defined functions\r\n * @param event Keyup event\r\n */\r\n private _handleKeyUp = (event: React.KeyboardEvent<HTMLInputElement>) => {\r\n this.processValidateText(event.target as HTMLInputElement);\r\n\r\n switch (event.key) {\r\n case SpecialKey.Escape:\r\n // istanbul ignore else\r\n if (this.props.onEscPressed)\r\n this.props.onEscPressed();\r\n break;\r\n case SpecialKey.Enter:\r\n // istanbul ignore else\r\n if (this.props.onEnterPressed)\r\n this.props.onEnterPressed();\r\n break;\r\n }\r\n };\r\n}\r\n"]}
|