@itwin/appui-react 4.14.1 → 4.14.2
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 +10 -1
- package/lib/cjs/appui-react/childwindow/ChildWindowConfig.d.ts +4 -0
- package/lib/cjs/appui-react/childwindow/ChildWindowConfig.d.ts.map +1 -1
- package/lib/cjs/appui-react/childwindow/ChildWindowConfig.js.map +1 -1
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +8 -2
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
- package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js +8 -8
- package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
- package/lib/cjs/appui-react/dialog/DialogManagerBase.d.ts +3 -2
- package/lib/cjs/appui-react/dialog/DialogManagerBase.d.ts.map +1 -1
- package/lib/cjs/appui-react/dialog/DialogManagerBase.js +16 -9
- package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
- package/lib/cjs/appui-react/dialog/DialogManagerBase.scss +11 -0
- package/lib/cjs/appui-react/statusbar/popup/StatusBarPopover.d.ts +2 -2
- package/lib/cjs/appui-react/statusbar/popup/StatusBarPopover.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusbar/popup/StatusBarPopover.js +6 -2
- package/lib/cjs/appui-react/statusbar/popup/StatusBarPopover.js.map +1 -1
- package/lib/cjs/appui-react.d.ts +2 -2
- package/lib/cjs/appui-react.js +2 -2
- package/lib/cjs/appui-react.js.map +1 -1
- package/lib/esm/appui-react/childwindow/ChildWindowConfig.d.ts +4 -0
- package/lib/esm/appui-react/childwindow/ChildWindowConfig.d.ts.map +1 -1
- package/lib/esm/appui-react/childwindow/ChildWindowConfig.js.map +1 -1
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +8 -2
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
- package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
- package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js +8 -8
- package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
- package/lib/esm/appui-react/dialog/DialogManagerBase.d.ts +3 -2
- package/lib/esm/appui-react/dialog/DialogManagerBase.d.ts.map +1 -1
- package/lib/esm/appui-react/dialog/DialogManagerBase.js +16 -9
- package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
- package/lib/esm/appui-react/dialog/DialogManagerBase.scss +11 -0
- package/lib/esm/appui-react/statusbar/popup/StatusBarPopover.d.ts +2 -2
- package/lib/esm/appui-react/statusbar/popup/StatusBarPopover.d.ts.map +1 -1
- package/lib/esm/appui-react/statusbar/popup/StatusBarPopover.js +6 -2
- package/lib/esm/appui-react/statusbar/popup/StatusBarPopover.js.map +1 -1
- package/lib/esm/appui-react.d.ts +2 -2
- package/lib/esm/appui-react.js +2 -2
- package/lib/esm/appui-react.js.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appui-react.js","sourceRoot":"","sources":["../../src/appui-react.ts"],"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\n// cSpell:ignore safearea cursormenu clientservices oidc Textbox Modeless configurableui stagepanels dragdrop uiadmin itemsarbiter Popout\n\nimport \"./appui-react/layers.scss\";\nexport * from \"./appui-react/UiFramework\"; // Please ensure that this line comes before all other exports.\n\nexport * from \"./appui-react/accudraw/AccuDrawCommandItems\";\nexport * from \"./appui-react/accudraw/AccuDrawDialog\";\nexport * from \"./appui-react/accudraw/AccuDrawKeyboardShortcuts\";\nexport * from \"./appui-react/accudraw/AccuDrawPopupManager\";\nexport * from \"./appui-react/accudraw/AccuDrawUiSettings\";\nexport * from \"./appui-react/accudraw/AccuDrawWidget\";\nexport * from \"./appui-react/accudraw/Calculator\";\nexport * from \"./appui-react/accudraw/CalculatorEngine\";\nexport * from \"./appui-react/accudraw/CalculatorPopup\";\nexport * from \"./appui-react/accudraw/FrameworkAccuDraw\";\nexport * from \"./appui-react/accudraw/MenuButton\";\nexport * from \"./appui-react/accudraw/MenuButtonPopup\";\n\nexport * from \"./appui-react/backstage/BackstageComposer\";\nexport * from \"./appui-react/backstage/BackstageComposerItem\";\nexport * from \"./appui-react/backstage/BackstageItem\";\nexport * from \"./appui-react/backstage/BackstageItemUtilities\";\nexport * from \"./appui-react/backstage/BackstageManager\";\nexport * from \"./appui-react/backstage/useDefaultBackstageItems\";\nexport * from \"./appui-react/backstage/useUiItemsProviderBackstageItems\";\n\nexport * from \"./appui-react/configurableui/ConfigurableUiContent\";\nexport * from \"./appui-react/configurableui/ConfigurableUiControl\";\nexport * from \"./appui-react/configurableui/state\";\n\nexport * from \"./appui-react/content/ContentControl\";\nexport * from \"./appui-react/content/ContentGroup\";\nexport * from \"./appui-react/content/ContentLayout\";\nexport * from \"./appui-react/content/FloatingViewportContent\";\nexport * from \"./appui-react/content/ViewStateHelper\";\nexport * from \"./appui-react/content/StageContentLayout\";\nexport * from \"./appui-react/content/ViewportContentControl\";\nexport * from \"./appui-react/content/IModelViewport\";\nexport * from \"./appui-react/content/DefaultViewOverlay\";\nexport * from \"./appui-react/content/split-pane/SplitPane\";\n\nexport * from \"./appui-react/cursor/CursorInformation\";\nexport * from \"./appui-react/cursor/cursorprompt/CursorPrompt\";\nexport * from \"./appui-react/cursor/cursorpopup/CursorPopup\";\nexport * from \"./appui-react/cursor/cursorpopup/CursorPopupManager\";\nexport * from \"./appui-react/cursor/cursormenu/CursorMenu\";\n\nexport * from \"./appui-react/dialog/DialogManagerBase\";\nexport * from \"./appui-react/dialog/ModalDialogManager\";\nexport * from \"./appui-react/dialog/ContentDialogManager\";\nexport * from \"./appui-react/dialog/ContentDialog\";\nexport * from \"./appui-react/dialog/ModelessDialog\";\nexport * from \"./appui-react/dialog/ModelessDialogManager\";\nexport * from \"./appui-react/dialog/StandardMessageBox\";\nexport * from \"./appui-react/dialog/UiDataProvidedDialog\";\n\nexport * from \"./appui-react/feedback/ValidationTextbox\";\nexport * from \"./appui-react/feedback/ElementTooltip\";\n\nexport * from \"./appui-react/framework/FrameworkBackstage\";\nexport * from \"./appui-react/framework/FrameworkChildWindows\";\nexport * from \"./appui-react/framework/FrameworkContent\";\nexport * from \"./appui-react/framework/FrameworkControls\";\nexport * from \"./appui-react/framework/FrameworkDialogs\";\nexport * from \"./appui-react/framework/FrameworkFrontstages\";\nexport * from \"./appui-react/framework/FrameworkKeyboardShortcuts\";\nexport * from \"./appui-react/framework/FrameworkToolSettings\";\nexport * from \"./appui-react/framework/FrameworkVisibility\";\n\nexport * from \"./appui-react/frontstage/FrontstageConfig\";\nexport * from \"./appui-react/frontstage/FrontstageDef\";\nexport * from \"./appui-react/frontstage/FrontstageProvider\";\nexport * from \"./appui-react/frontstage/ModalFrontstage\";\nexport * from \"./appui-react/frontstage/ModalSettingsStage\";\nexport * from \"./appui-react/frontstage/NestedFrontstage\";\nexport * from \"./appui-react/frontstage/StageUsage\";\nexport * from \"./appui-react/frontstage/StandardFrontstageProvider\";\n\nexport * from \"./appui-react/hooks/useActiveIModelConnection\";\nexport * from \"./appui-react/hooks/useActiveStageId\";\nexport * from \"./appui-react/hooks/useActiveViewport\";\nexport * from \"./appui-react/hooks/useAvailableUiItemsProviders\";\nexport * from \"./appui-react/hooks/useAnalysisAnimationDataProvider\";\nexport * from \"./appui-react/hooks/useScheduleAnimationDataProvider\";\nexport * from \"./appui-react/hooks/useSolarDataProvider\";\nexport * from \"./appui-react/hooks/useUiVisibility\";\n\nexport * from \"./appui-react/keyboardshortcut/KeyboardShortcut\";\nexport * from \"./appui-react/keyboardshortcut/KeyboardShortcutMenu\";\n\nexport * from \"./appui-react/keyins/Keyins\";\n\nexport * from \"./appui-react/messages/AppNotificationManager\";\nexport * from \"./appui-react/messages/InputField\";\nexport * from \"./appui-react/messages/MessageManager\";\nexport * from \"./appui-react/messages/Pointer\";\nexport * from \"./appui-react/messages/ReactNotifyMessageDetails\";\n\nexport * from \"./appui-react/navigationaids/CubeNavigationAidControl\";\nexport * from \"./appui-react/navigationaids/DrawingNavigationAidControl\";\nexport * from \"./appui-react/navigationaids/NavigationAidControl\";\nexport * from \"./appui-react/navigationaids/SheetNavigationAid\";\nexport * from \"./appui-react/navigationaids/SheetsModalFrontstage\";\nexport * from \"./appui-react/navigationaids/StandardRotationNavigationAid\";\n\nexport * from \"./appui-react/pickers/ListPicker\";\nexport * from \"./appui-react/pickers/ViewSelector\";\n\nexport * from \"./appui-react/utils/Placement\";\n\nexport * from \"./appui-react/popup/KeyinPalettePanel\";\nexport * from \"./appui-react/popup/KeyinPalettePopup\";\nexport * from \"./appui-react/popup/HTMLElementPopup\";\nexport * from \"./appui-react/popup/InputEditorPopup\";\nexport * from \"./appui-react/popup/PopupManager\";\nexport * from \"./appui-react/popup/PositionPopup\";\nexport * from \"./appui-react/popup/ToolbarPopup\";\n\nexport * from \"./appui-react/preview/PreviewFeatures\";\n\nexport * from \"./appui-react/redux/SessionState\";\nexport * from \"./appui-react/redux/StateManager\";\nexport * from \"./appui-react/redux/FrameworkState\";\nexport * from \"./appui-react/redux/connectIModel\";\nexport * from \"./appui-react/redux/ReducerRegistry\";\nexport * from \"./appui-react/redux/redux-ts\";\n\nexport * from \"./appui-react/safearea/SafeAreaContext\";\nexport * from \"./appui-react/safearea/SafeAreaInsets\";\n\nexport * from \"./appui-react/selection/SelectionContextItemDef\";\nexport * from \"./appui-react/selection/HideIsolateEmphasizeManager\";\n\nexport * from \"./appui-react/settings/ui/UiSettingsPage\";\nexport * from \"./appui-react/settings/quantityformatting/QuantityFormat\";\nexport * from \"./appui-react/settings/quantityformatting/UnitSystemSelector\";\n\nexport * from \"./appui-react/shared/ActionButtonItemDef\";\nexport * from \"./appui-react/shared/AnyItemDef\";\nexport * from \"./appui-react/shared/AnyToolbarItemDef\";\nexport * from \"./appui-react/shared/CommandItemDef\";\nexport * from \"./appui-react/shared/CustomItemDef\";\nexport * from \"./appui-react/shared/CustomItemProps\";\nexport * from \"./appui-react/shared/GroupItemProps\";\nexport * from \"./appui-react/shared/ItemDefBase\";\nexport * from \"./appui-react/shared/ItemMap\";\nexport * from \"./appui-react/shared/ItemProps\";\nexport * from \"./appui-react/shared/MenuItem\";\nexport * from \"./appui-react/shared/SelectionScope\";\nexport * from \"./appui-react/shared/ToolItemDef\";\n\nexport * from \"./appui-react/stagepanels/StagePanelConfig\";\nexport * from \"./appui-react/stagepanels/StagePanelDef\";\nexport * from \"./appui-react/stagepanels/StagePanelLocation\";\nexport * from \"./appui-react/stagepanels/StagePanelSection\";\nexport * from \"./appui-react/stagepanels/StagePanelState\";\n\nexport * from \"./appui-react/statusbar/dialog/Dialog\";\nexport * from \"./appui-react/statusbar/Indicator\";\nexport * from \"./appui-react/statusbar/LabelIndicator\";\nexport * from \"./appui-react/statusbar/Separator\";\nexport * from \"./appui-react/statusbar/StatusBar\";\nexport * from \"./appui-react/statusbar/StatusBarWidgetControl\";\nexport * from \"./appui-react/statusbar/StatusBarComposer\";\nexport * from \"./appui-react/statusbar/StatusBarItem\";\nexport * from \"./appui-react/statusbar/StatusBarItemUtilities\";\nexport * from \"./appui-react/statusbar/StatusBarComposer\";\nexport * from \"./appui-react/statusbar/popup/StatusBarPopover\";\nexport * from \"./appui-react/statusbar/useUiItemsProviderStatusBarItems\";\nexport * from \"./appui-react/statusbar/useDefaultStatusBarItems\";\n\nexport * from \"./appui-react/statusfields/tileloading/TileLoadingIndicator\";\nexport * from \"./appui-react/statusfields/ActivityCenter\";\nexport * from \"./appui-react/statusfields/message-center/MessageCenterField\";\nexport * from \"./appui-react/statusfields/SectionsField\";\nexport * from \"./appui-react/statusfields/SelectionCount\";\nexport * from \"./appui-react/statusfields/SelectionInfo\";\nexport * from \"./appui-react/statusfields/SelectionScope\";\nexport * from \"./appui-react/statusfields/SnapMode\";\nexport * from \"./appui-react/statusfields/ViewAttributes\";\nexport * from \"./appui-react/statusfields/toolassistance/ToolAssistanceField\";\n\nexport * from \"./appui-react/syncui/SyncUiEventDispatcher\";\nexport * from \"./appui-react/syncui/UiSyncEvent\";\n\nexport * from \"./appui-react/theme/ThemeManager\";\n\nexport * from \"./appui-react/timeline/ScheduleAnimationProvider\";\nexport * from \"./appui-react/timeline/AnalysisAnimationProvider\";\nexport * from \"./appui-react/timeline/SolarTimelineDataProvider\";\n\nexport * from \"./appui-react/toolbar/DragInteraction\";\nexport * from \"./appui-react/toolbar/GroupItem\";\nexport * from \"./appui-react/toolbar/Toolbar\";\nexport * from \"./appui-react/toolbar/ToolbarComposer\";\nexport * from \"./appui-react/toolbar/ToolbarHelper\";\nexport * from \"./appui-react/toolbar/ToolbarItem\";\nexport * from \"./appui-react/toolbar/ToolbarItemUtilities\";\nexport * from \"./appui-react/toolbar/ToolbarWithOverflow\";\nexport * from \"./appui-react/toolbar/useDefaultToolbarItems\";\nexport * from \"./appui-react/toolbar/useUiItemsProviderToolbarItems\";\n\nexport * from \"./appui-react/tools/CoreToolDefinitions\";\nexport * from \"./appui-react/tools/FrameworkToolAdmin\";\nexport * from \"./appui-react/tools/RestoreLayoutTool\";\nexport * from \"./appui-react/tools/ToolSettingsTools\";\n\nexport * from \"./appui-react/ui-items-provider/BaseUiItemsProvider\";\nexport * from \"./appui-react/ui-items-provider/ProviderItem\";\nexport * from \"./appui-react/ui-items-provider/StandardContentToolsProvider\";\nexport * from \"./appui-react/ui-items-provider/StandardContentToolsUiItemsProvider\";\nexport * from \"./appui-react/ui-items-provider/StandardNavigationToolsProvider\";\nexport * from \"./appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider\";\nexport * from \"./appui-react/ui-items-provider/StandardStatusbarItemsProvider\";\nexport * from \"./appui-react/ui-items-provider/StandardStatusbarUiItemsProvider\";\nexport * from \"./appui-react/ui-items-provider/UiItemsManager\";\nexport * from \"./appui-react/ui-items-provider/UiItemsProvider\";\n\nexport * from \"./appui-react/uiadmin/FrameworkUiAdmin\";\n\nexport * from \"./appui-react/uiprovider/DefaultDialogGridContainer\";\n\nexport * from \"./appui-react/uistate/AppUiSettings\";\nexport * from \"./appui-react/uistate/useUiStateStorage\";\n\nexport * from \"./appui-react/utils/ViewUtilities\";\nexport * from \"./appui-react/utils/PropsHelper\";\nexport * from \"./appui-react/utils/ToolbarButtonHelper\";\n\nexport * from \"./appui-react/widget-panels/Content\";\nexport * from \"./appui-react/widget-panels/Frontstage\";\nexport * from \"./appui-react/widget-panels/FrontstageContent\";\nexport * from \"./appui-react/widget-panels/ModalFrontstageComposer\";\nexport * from \"./appui-react/widget-panels/StatusBar\";\nexport * from \"./appui-react/widget-panels/Tab\";\nexport * from \"./appui-react/widget-panels/Toolbars\";\nexport * from \"./appui-react/widget-panels/ToolSettings\";\nexport * from \"./appui-react/widget-panels/useWidgetDirection\";\nexport * from \"./appui-react/widget-panels/useTransientState\";\n\nexport * from \"./appui-react/widgets/BackstageAppButton\";\nexport * from \"./appui-react/widgets/BasicNavigationWidget\";\nexport * from \"./appui-react/widgets/BasicToolWidget\";\nexport * from \"./appui-react/widgets/ContentToolWidgetComposer\";\nexport * from \"./appui-react/widgets/NavigationWidgetComposer\";\nexport * from \"./appui-react/widgets/StableWidgetDef\";\nexport * from \"./appui-react/widgets/StatusBarWidgetComposerControl\";\nexport * from \"./appui-react/widgets/ToolWidgetComposer\";\nexport * from \"./appui-react/widgets/ViewToolWidgetComposer\";\nexport * from \"./appui-react/widgets/Widget\";\nexport * from \"./appui-react/widgets/WidgetConfig\";\nexport * from \"./appui-react/widgets/WidgetControl\";\nexport * from \"./appui-react/widgets/WidgetDef\";\nexport * from \"./appui-react/widgets/WidgetHost\";\nexport * from \"./appui-react/widgets/WidgetManager\";\nexport * from \"./appui-react/widgets/WidgetState\";\nexport * from \"./appui-react/widgets/useWidget\";\n\nexport * from \"./appui-react/toolsettings/ToolInformation\";\nexport * from \"./appui-react/toolsettings/ToolUiProvider\";\nexport * from \"./appui-react/toolsettings/DefaultToolSettingsProvider\";\n\n/** @docs-package-description\n * The ui-framework package contains classes and components for specifying the application UI consisting of the\n * Backstage, Frontstages, Content Views, Tool Bars, Status Bars, Widgets and Panels.\n * For more information, see [learning about appui-react]($docs/learning/ui/appui-react/index.md).\n */\n/**\n * @docs-group-description AccuDraw\n * Classes and components providing a UI for AccuDraw, an aide for entering coordinate data.\n */\n/**\n * @docs-group-description Admin\n * APIs for various UI components, such as toolbars, buttons and menus.\n */\n/**\n * @docs-group-description Backstage\n * Classes for working with a Backstage\n */\n/**\n * @docs-group-description ConfigurableUi\n * Classes for working with the Application UI Configuration\n */\n/**\n * @docs-group-description ContentView\n * Classes for working with a Content View, Group, Layout or Control\n */\n/**\n * @docs-group-description Cursor\n * Cursor related information, components and events\n */\n/**\n * @docs-group-description Dialog\n * Classes for working with a dialog\n */\n/**\n * @docs-group-description Frontstage\n * Classes for working with a Frontstage\n */\n/**\n * @docs-group-description Hooks\n * Hook functions for use in Functional React Components.\n */\n/**\n * @docs-group-description IModelComponents\n * Classes for displaying information about an iModel\n */\n/**\n * @docs-group-description Item\n * Classes for working with an Item in a Tool Widget, Navigation Widget or Backstage\n */\n/**\n * @docs-group-description KeyboardShortcut\n * Classes for working with Keyboard Shortcuts\n */\n/**\n * @docs-group-description NavigationAids\n * Classes for working with Navigation Aids\n */\n/**\n * @docs-group-description Notification\n * Classes for working with a Notification or Message\n */\n/**\n * @docs-group-description ChildWindowManager\n * Classes for working with child windows.\n */\n/**\n * @docs-group-description Picker\n * Classes for working with various pickers\n */\n/**\n * @docs-group-description Popup\n * Classes for working with popup components\n */\n/**\n * @docs-group-description State\n * Classes for maintaining state\n */\n/**\n * @docs-group-description Settings\n * Classes and components used by settings pages displayed in the modal settings stage\n */\n/**\n * @docs-group-description StandardUiItemsProvider\n * Standard UiItemsProvider classes.\n */\n/**\n * @docs-group-description StatusBar\n * Classes for defining a StatusBar\n */\n/**\n * @docs-group-description SyncUi\n * Classes for informing UI components to sync/refresh their display\n */\n/**\n * @docs-group-description Timeline\n * Classes for working with a TimelineComponent\n */\n/**\n * @docs-group-description Toolbar\n * Classes used to construct a Toolbar\n */\n/**\n * @docs-group-description Tools\n * Core Tool definitions\n */\n/**\n * @docs-group-description ToolSettings\n * Classes for working Tool Settings. See learning documentation [Tool Settings]($docs/learning/ui/appui-react/toolsettings.md).\n */\n/**\n * @docs-group-description UiProvider\n * Interfaces and classes for specifying UI items to be inserted at runtime.\n */\n/**\n * @docs-group-description UiStateStorage\n * Interfaces and classes for persisting UI settings.\n */\n/**\n * @docs-group-description Utilities\n * Various utility classes for working with a UI and Redux.\n */\n/**\n * @docs-group-description Widget\n * Classes for working with a Widget\n */\n"]}
|
|
1
|
+
{"version":3,"file":"appui-react.js","sourceRoot":"","sources":["../../src/appui-react.ts"],"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\n// cSpell:ignore safearea cursormenu clientservices oidc Textbox Modeless configurableui stagepanels dragdrop uiadmin itemsarbiter Popout\n\nimport \"./appui-react/layers.scss\";\nexport * from \"./appui-react/UiFramework\"; // Please ensure that this line comes before all other exports.\n\nexport * from \"./appui-react/accudraw/AccuDrawCommandItems\";\nexport * from \"./appui-react/accudraw/AccuDrawDialog\";\nexport * from \"./appui-react/accudraw/AccuDrawKeyboardShortcuts\";\nexport * from \"./appui-react/accudraw/AccuDrawPopupManager\";\nexport * from \"./appui-react/accudraw/AccuDrawUiSettings\";\nexport * from \"./appui-react/accudraw/AccuDrawWidget\";\nexport * from \"./appui-react/accudraw/Calculator\";\nexport * from \"./appui-react/accudraw/CalculatorEngine\";\nexport * from \"./appui-react/accudraw/CalculatorPopup\";\nexport * from \"./appui-react/accudraw/FrameworkAccuDraw\";\nexport * from \"./appui-react/accudraw/MenuButton\";\nexport * from \"./appui-react/accudraw/MenuButtonPopup\";\n\nexport * from \"./appui-react/backstage/BackstageComposer\";\nexport * from \"./appui-react/backstage/BackstageComposerItem\";\nexport * from \"./appui-react/backstage/BackstageItem\";\nexport * from \"./appui-react/backstage/BackstageItemUtilities\";\nexport * from \"./appui-react/backstage/BackstageManager\";\nexport * from \"./appui-react/backstage/useDefaultBackstageItems\";\nexport * from \"./appui-react/backstage/useUiItemsProviderBackstageItems\";\n\nexport * from \"./appui-react/configurableui/ConfigurableUiContent\";\nexport * from \"./appui-react/configurableui/ConfigurableUiControl\";\nexport * from \"./appui-react/configurableui/state\";\n\nexport * from \"./appui-react/content/ContentControl\";\nexport * from \"./appui-react/content/ContentGroup\";\nexport * from \"./appui-react/content/ContentLayout\";\nexport * from \"./appui-react/content/FloatingViewportContent\";\nexport * from \"./appui-react/content/ViewStateHelper\";\nexport * from \"./appui-react/content/StageContentLayout\";\nexport * from \"./appui-react/content/ViewportContentControl\";\nexport * from \"./appui-react/content/IModelViewport\";\nexport * from \"./appui-react/content/DefaultViewOverlay\";\nexport * from \"./appui-react/content/split-pane/SplitPane\";\n\nexport * from \"./appui-react/cursor/CursorInformation\";\nexport * from \"./appui-react/cursor/cursorprompt/CursorPrompt\";\nexport * from \"./appui-react/cursor/cursorpopup/CursorPopup\";\nexport * from \"./appui-react/cursor/cursorpopup/CursorPopupManager\";\nexport * from \"./appui-react/cursor/cursormenu/CursorMenu\";\n\nexport * from \"./appui-react/dialog/DialogManagerBase\";\nexport * from \"./appui-react/dialog/ModalDialogManager\";\nexport * from \"./appui-react/dialog/ContentDialogManager\";\nexport * from \"./appui-react/dialog/ContentDialog\";\nexport * from \"./appui-react/dialog/ModelessDialog\";\nexport * from \"./appui-react/dialog/ModelessDialogManager\";\nexport * from \"./appui-react/dialog/StandardMessageBox\";\nexport * from \"./appui-react/dialog/UiDataProvidedDialog\";\n\nexport * from \"./appui-react/feedback/ValidationTextbox\";\nexport * from \"./appui-react/feedback/ElementTooltip\";\n\nexport * from \"./appui-react/framework/FrameworkBackstage\";\nexport * from \"./appui-react/framework/FrameworkChildWindows\";\nexport * from \"./appui-react/framework/FrameworkContent\";\nexport * from \"./appui-react/framework/FrameworkControls\";\nexport * from \"./appui-react/framework/FrameworkDialogs\";\nexport * from \"./appui-react/framework/FrameworkFrontstages\";\nexport * from \"./appui-react/framework/FrameworkKeyboardShortcuts\";\nexport * from \"./appui-react/framework/FrameworkToolSettings\";\nexport * from \"./appui-react/framework/FrameworkVisibility\";\n\nexport * from \"./appui-react/frontstage/FrontstageConfig\";\nexport * from \"./appui-react/frontstage/FrontstageDef\";\nexport * from \"./appui-react/frontstage/FrontstageProvider\";\nexport * from \"./appui-react/frontstage/ModalFrontstage\";\nexport * from \"./appui-react/frontstage/ModalSettingsStage\";\nexport * from \"./appui-react/frontstage/NestedFrontstage\";\nexport * from \"./appui-react/frontstage/StageUsage\";\nexport * from \"./appui-react/frontstage/StandardFrontstageProvider\";\n\nexport * from \"./appui-react/hooks/useActiveIModelConnection\";\nexport * from \"./appui-react/hooks/useActiveStageId\";\nexport * from \"./appui-react/hooks/useActiveViewport\";\nexport * from \"./appui-react/hooks/useAvailableUiItemsProviders\";\nexport * from \"./appui-react/hooks/useAnalysisAnimationDataProvider\";\nexport * from \"./appui-react/hooks/useScheduleAnimationDataProvider\";\nexport * from \"./appui-react/hooks/useSolarDataProvider\";\nexport * from \"./appui-react/hooks/useUiVisibility\";\n\nexport * from \"./appui-react/keyboardshortcut/KeyboardShortcut\";\nexport * from \"./appui-react/keyboardshortcut/KeyboardShortcutMenu\";\n\nexport * from \"./appui-react/keyins/Keyins\";\n\nexport * from \"./appui-react/messages/AppNotificationManager\";\nexport * from \"./appui-react/messages/InputField\";\nexport * from \"./appui-react/messages/MessageManager\";\nexport * from \"./appui-react/messages/Pointer\";\nexport * from \"./appui-react/messages/ReactNotifyMessageDetails\";\n\nexport * from \"./appui-react/navigationaids/CubeNavigationAidControl\";\nexport * from \"./appui-react/navigationaids/DrawingNavigationAidControl\";\nexport * from \"./appui-react/navigationaids/NavigationAidControl\";\nexport * from \"./appui-react/navigationaids/SheetNavigationAid\";\nexport * from \"./appui-react/navigationaids/SheetsModalFrontstage\";\nexport * from \"./appui-react/navigationaids/StandardRotationNavigationAid\";\n\nexport * from \"./appui-react/pickers/ListPicker\";\nexport * from \"./appui-react/pickers/ViewSelector\";\n\nexport * from \"./appui-react/utils/Placement\";\n\nexport * from \"./appui-react/popup/KeyinPalettePanel\";\nexport * from \"./appui-react/popup/KeyinPalettePopup\";\nexport * from \"./appui-react/popup/HTMLElementPopup\";\nexport * from \"./appui-react/popup/InputEditorPopup\";\nexport * from \"./appui-react/popup/PopupManager\";\nexport * from \"./appui-react/popup/PositionPopup\";\nexport * from \"./appui-react/popup/ToolbarPopup\";\n\nexport * from \"./appui-react/preview/PreviewFeatures\";\n\nexport * from \"./appui-react/redux/SessionState\";\nexport * from \"./appui-react/redux/StateManager\";\nexport * from \"./appui-react/redux/FrameworkState\";\nexport * from \"./appui-react/redux/connectIModel\";\nexport * from \"./appui-react/redux/ReducerRegistry\";\nexport * from \"./appui-react/redux/redux-ts\";\n\nexport * from \"./appui-react/safearea/SafeAreaContext\";\nexport * from \"./appui-react/safearea/SafeAreaInsets\";\n\nexport * from \"./appui-react/selection/SelectionContextItemDef\";\nexport * from \"./appui-react/selection/HideIsolateEmphasizeManager\";\n\nexport * from \"./appui-react/settings/ui/UiSettingsPage\";\nexport * from \"./appui-react/settings/quantityformatting/QuantityFormat\";\nexport * from \"./appui-react/settings/quantityformatting/UnitSystemSelector\";\n\nexport * from \"./appui-react/shared/ActionButtonItemDef\";\nexport * from \"./appui-react/shared/AnyItemDef\";\nexport * from \"./appui-react/shared/AnyToolbarItemDef\";\nexport * from \"./appui-react/shared/CommandItemDef\";\nexport * from \"./appui-react/shared/CustomItemDef\";\nexport * from \"./appui-react/shared/CustomItemProps\";\nexport * from \"./appui-react/shared/GroupItemProps\";\nexport * from \"./appui-react/shared/ItemDefBase\";\nexport * from \"./appui-react/shared/ItemMap\";\nexport * from \"./appui-react/shared/ItemProps\";\nexport * from \"./appui-react/shared/MenuItem\";\nexport * from \"./appui-react/shared/SelectionScope\";\nexport * from \"./appui-react/shared/ToolItemDef\";\n\nexport * from \"./appui-react/stagepanels/StagePanelConfig\";\nexport * from \"./appui-react/stagepanels/StagePanelDef\";\nexport * from \"./appui-react/stagepanels/StagePanelLocation\";\nexport * from \"./appui-react/stagepanels/StagePanelSection\";\nexport * from \"./appui-react/stagepanels/StagePanelState\";\n\nexport * from \"./appui-react/statusbar/dialog/Dialog\";\nexport * from \"./appui-react/statusbar/Indicator\";\nexport * from \"./appui-react/statusbar/LabelIndicator\";\nexport * from \"./appui-react/statusbar/Separator\";\nexport * from \"./appui-react/statusbar/StatusBar\";\nexport * from \"./appui-react/statusbar/StatusBarWidgetControl\";\nexport * from \"./appui-react/statusbar/StatusBarComposer\";\nexport * from \"./appui-react/statusbar/StatusBarItem\";\nexport * from \"./appui-react/statusbar/StatusBarItemUtilities\";\nexport * from \"./appui-react/statusbar/StatusBarComposer\";\nexport * from \"./appui-react/statusbar/popup/StatusBarPopover\";\nexport * from \"./appui-react/statusbar/useUiItemsProviderStatusBarItems\";\nexport * from \"./appui-react/statusbar/useDefaultStatusBarItems\";\n\nexport * from \"./appui-react/statusfields/tileloading/TileLoadingIndicator\";\nexport * from \"./appui-react/statusfields/ActivityCenter\";\nexport * from \"./appui-react/statusfields/message-center/MessageCenterField\";\nexport * from \"./appui-react/statusfields/SectionsField\";\nexport * from \"./appui-react/statusfields/SelectionCount\";\nexport * from \"./appui-react/statusfields/SelectionInfo\";\nexport * from \"./appui-react/statusfields/SelectionScope\";\nexport * from \"./appui-react/statusfields/SnapMode\";\nexport * from \"./appui-react/statusfields/ViewAttributes\";\nexport * from \"./appui-react/statusfields/toolassistance/ToolAssistanceField\";\n\nexport * from \"./appui-react/syncui/SyncUiEventDispatcher\";\nexport * from \"./appui-react/syncui/UiSyncEvent\";\n\nexport * from \"./appui-react/theme/ThemeManager\";\n\nexport * from \"./appui-react/timeline/ScheduleAnimationProvider\";\nexport * from \"./appui-react/timeline/AnalysisAnimationProvider\";\nexport * from \"./appui-react/timeline/SolarTimelineDataProvider\";\n\nexport * from \"./appui-react/toolbar/DragInteraction\";\nexport * from \"./appui-react/toolbar/GroupItem\";\nexport * from \"./appui-react/toolbar/Toolbar\";\nexport * from \"./appui-react/toolbar/ToolbarComposer\";\nexport * from \"./appui-react/toolbar/ToolbarHelper\";\nexport * from \"./appui-react/toolbar/ToolbarItem\";\nexport * from \"./appui-react/toolbar/ToolbarItemUtilities\";\nexport * from \"./appui-react/toolbar/ToolbarWithOverflow\";\nexport * from \"./appui-react/toolbar/useDefaultToolbarItems\";\nexport * from \"./appui-react/toolbar/useUiItemsProviderToolbarItems\";\n\nexport * from \"./appui-react/tools/CoreToolDefinitions\";\nexport * from \"./appui-react/tools/FrameworkToolAdmin\";\nexport * from \"./appui-react/tools/RestoreLayoutTool\";\nexport * from \"./appui-react/tools/ToolSettingsTools\";\n\nexport * from \"./appui-react/ui-items-provider/BaseUiItemsProvider\";\nexport * from \"./appui-react/ui-items-provider/ProviderItem\";\nexport * from \"./appui-react/ui-items-provider/StandardContentToolsProvider\";\nexport * from \"./appui-react/ui-items-provider/StandardContentToolsUiItemsProvider\";\nexport * from \"./appui-react/ui-items-provider/StandardNavigationToolsProvider\";\nexport * from \"./appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider\";\nexport * from \"./appui-react/ui-items-provider/StandardStatusbarItemsProvider\";\nexport * from \"./appui-react/ui-items-provider/StandardStatusbarUiItemsProvider\";\nexport * from \"./appui-react/ui-items-provider/UiItemsManager\";\nexport * from \"./appui-react/ui-items-provider/UiItemsProvider\";\n\nexport * from \"./appui-react/uiadmin/FrameworkUiAdmin\";\n\nexport * from \"./appui-react/uiprovider/DefaultDialogGridContainer\";\n\nexport * from \"./appui-react/uistate/AppUiSettings\";\nexport * from \"./appui-react/uistate/useUiStateStorage\";\n\nexport * from \"./appui-react/utils/ViewUtilities\";\nexport * from \"./appui-react/utils/PropsHelper\";\nexport * from \"./appui-react/utils/ToolbarButtonHelper\";\n\nexport * from \"./appui-react/widget-panels/Content\";\nexport * from \"./appui-react/widget-panels/Frontstage\";\nexport * from \"./appui-react/widget-panels/FrontstageContent\";\nexport * from \"./appui-react/widget-panels/ModalFrontstageComposer\";\nexport * from \"./appui-react/widget-panels/StatusBar\";\nexport * from \"./appui-react/widget-panels/Tab\";\nexport * from \"./appui-react/widget-panels/Toolbars\";\nexport * from \"./appui-react/widget-panels/ToolSettings\";\nexport * from \"./appui-react/widget-panels/useWidgetDirection\";\nexport * from \"./appui-react/widget-panels/useTransientState\";\n\nexport * from \"./appui-react/widgets/BackstageAppButton\";\nexport * from \"./appui-react/widgets/BasicNavigationWidget\";\nexport * from \"./appui-react/widgets/BasicToolWidget\";\nexport * from \"./appui-react/widgets/ContentToolWidgetComposer\";\nexport * from \"./appui-react/widgets/NavigationWidgetComposer\";\nexport * from \"./appui-react/widgets/StableWidgetDef\";\nexport * from \"./appui-react/widgets/StatusBarWidgetComposerControl\";\nexport * from \"./appui-react/widgets/ToolWidgetComposer\";\nexport * from \"./appui-react/widgets/ViewToolWidgetComposer\";\nexport * from \"./appui-react/widgets/Widget\";\nexport * from \"./appui-react/widgets/WidgetConfig\";\nexport * from \"./appui-react/widgets/WidgetControl\";\nexport * from \"./appui-react/widgets/WidgetDef\";\nexport * from \"./appui-react/widgets/WidgetHost\";\nexport * from \"./appui-react/widgets/WidgetManager\";\nexport * from \"./appui-react/widgets/WidgetState\";\nexport * from \"./appui-react/widgets/useWidget\";\n\nexport * from \"./appui-react/toolsettings/ToolInformation\";\nexport * from \"./appui-react/toolsettings/ToolUiProvider\";\nexport * from \"./appui-react/toolsettings/DefaultToolSettingsProvider\";\n\n/** @docs-package-description\n * The ui-framework package contains classes and components for specifying the application UI consisting of the\n * Backstage, Frontstages, Content Views, Tool Bars, Status Bars, Widgets and Panels.\n * For more information, see [the AppUI learning docs]($docs/ui/appui/get-started.md).\n */\n/**\n * @docs-group-description AccuDraw\n * Classes and components providing a UI for AccuDraw, an aide for entering coordinate data.\n */\n/**\n * @docs-group-description Admin\n * APIs for various UI components, such as toolbars, buttons and menus.\n */\n/**\n * @docs-group-description Backstage\n * Classes for working with a Backstage\n */\n/**\n * @docs-group-description ConfigurableUi\n * Classes for working with the Application UI Configuration\n */\n/**\n * @docs-group-description ContentView\n * Classes for working with a Content View, Group, Layout or Control\n */\n/**\n * @docs-group-description Cursor\n * Cursor related information, components and events\n */\n/**\n * @docs-group-description Dialog\n * Classes for working with a dialog\n */\n/**\n * @docs-group-description Frontstage\n * Classes for working with a Frontstage\n */\n/**\n * @docs-group-description Hooks\n * Hook functions for use in Functional React Components.\n */\n/**\n * @docs-group-description IModelComponents\n * Classes for displaying information about an iModel\n */\n/**\n * @docs-group-description Item\n * Classes for working with an Item in a Tool Widget, Navigation Widget or Backstage\n */\n/**\n * @docs-group-description KeyboardShortcut\n * Classes for working with Keyboard Shortcuts\n */\n/**\n * @docs-group-description NavigationAids\n * Classes for working with Navigation Aids\n */\n/**\n * @docs-group-description Notification\n * Classes for working with a Notification or Message\n */\n/**\n * @docs-group-description ChildWindowManager\n * Classes for working with child windows.\n */\n/**\n * @docs-group-description Picker\n * Classes for working with various pickers\n */\n/**\n * @docs-group-description Popup\n * Classes for working with popup components\n */\n/**\n * @docs-group-description State\n * Classes for maintaining state\n */\n/**\n * @docs-group-description Settings\n * Classes and components used by settings pages displayed in the modal settings stage\n */\n/**\n * @docs-group-description StandardUiItemsProvider\n * Standard UiItemsProvider classes.\n */\n/**\n * @docs-group-description StatusBar\n * Classes for defining a StatusBar\n */\n/**\n * @docs-group-description SyncUi\n * Classes for informing UI components to sync/refresh their display\n */\n/**\n * @docs-group-description Timeline\n * Classes for working with a TimelineComponent\n */\n/**\n * @docs-group-description Toolbar\n * Classes used to construct a Toolbar\n */\n/**\n * @docs-group-description Tools\n * Core Tool definitions\n */\n/**\n * @docs-group-description ToolSettings\n * Classes for working Tool Settings. See learning documentation [Tool Settings]($docs/ui/appui/configure-frontstage.md#tool-settings).\n */\n/**\n * @docs-group-description UiProvider\n * Interfaces and classes for specifying UI items to be inserted at runtime.\n */\n/**\n * @docs-group-description UiStateStorage\n * Interfaces and classes for persisting UI settings.\n */\n/**\n * @docs-group-description Utilities\n * Various utility classes for working with a UI and Redux.\n */\n/**\n * @docs-group-description Widget\n * Classes for working with a Widget\n */\n"]}
|
|
@@ -7,6 +7,10 @@ export interface ChildWindow extends Window {
|
|
|
7
7
|
expectedWidth?: number;
|
|
8
8
|
/** Expected height of the child window. */
|
|
9
9
|
expectedHeight?: number;
|
|
10
|
+
/** Expected top value of the child window. */
|
|
11
|
+
expectedTop?: number;
|
|
12
|
+
/** Expected left value of the child window. */
|
|
13
|
+
expectedLeft?: number;
|
|
10
14
|
/** Difference between expected child window width and actual value when opened. */
|
|
11
15
|
deltaWidth?: number;
|
|
12
16
|
/** Difference between expected child window height and actual value when opened. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChildWindowConfig.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/childwindow/ChildWindowConfig.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,MAAM;IACzC,0CAA0C;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mFAAmF;IACnF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wFAAwF;IACxF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
|
|
1
|
+
{"version":3,"file":"ChildWindowConfig.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/childwindow/ChildWindowConfig.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,MAAM;IACzC,0CAA0C;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mFAAmF;IACnF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wFAAwF;IACxF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChildWindowConfig.js","sourceRoot":"","sources":["../../../../src/appui-react/childwindow/ChildWindowConfig.ts"],"names":[],"mappings":"","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/**\n * An extension of a Window to be used for Popout Widgets.\n * @internal\n */\nexport interface ChildWindow extends Window {\n /** Expected width of the child window. */\n expectedWidth?: number;\n /** Expected height of the child window. */\n expectedHeight?: number;\n /** Difference between expected child window width and actual value when opened. */\n deltaWidth?: number;\n /** Difference between expected child window height and actual value when opened. */\n deltaHeight?: number;\n /** Difference between expected child window left value and actual value when opened. */\n deltaLeft?: number;\n /** Difference between expected child window top value and actual value when opened. */\n deltaTop?: number;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ChildWindowConfig.js","sourceRoot":"","sources":["../../../../src/appui-react/childwindow/ChildWindowConfig.ts"],"names":[],"mappings":"","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/**\n * An extension of a Window to be used for Popout Widgets.\n * @internal\n */\nexport interface ChildWindow extends Window {\n /** Expected width of the child window. */\n expectedWidth?: number;\n /** Expected height of the child window. */\n expectedHeight?: number;\n /** Expected top value of the child window. */\n expectedTop?: number;\n /** Expected left value of the child window. */\n expectedLeft?: number;\n /** Difference between expected child window width and actual value when opened. */\n deltaWidth?: number;\n /** Difference between expected child window height and actual value when opened. */\n deltaHeight?: number;\n /** Difference between expected child window left value and actual value when opened. */\n deltaLeft?: number;\n /** Difference between expected child window top value and actual value when opened. */\n deltaTop?: number;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternalChildWindowManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/childwindow/InternalChildWindowManager.tsx"],"names":[],"mappings":"AAKA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,KAAK,EACV,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,oCAAoC,CAAC;AAO5C,OAAO,mCAAmC,CAAC;AA0B3C;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE/E;;;;KAIK;AACL,qBAAa,0BAA2B,YAAW,qBAAqB;IACtE,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,MAAM,CAAwC;IAEtD,IAAW,gBAAgB,0BAE1B;IAED;;;;;;;;OAQG;IACI,aAAa,CAAC,YAAY,EAAE,UAAU,GAAG,IAAI;IAIpD;;;;OAIG;IACH,OAAO,CAAC,MAAM;IAqBd;;;;OAIG;IACI,IAAI,CACT,aAAa,EAAE,MAAM,GAAG,SAAS,GAChC,mBAAmB,GAAG,SAAS;IAQlC;;;;OAIG;IACI,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS;IAS3E,OAAO,CAAC,yBAAyB;
|
|
1
|
+
{"version":3,"file":"InternalChildWindowManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/childwindow/InternalChildWindowManager.tsx"],"names":[],"mappings":"AAKA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,KAAK,EACV,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,oCAAoC,CAAC;AAO5C,OAAO,mCAAmC,CAAC;AA0B3C;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE/E;;;;KAIK;AACL,qBAAa,0BAA2B,YAAW,qBAAqB;IACtE,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,MAAM,CAAwC;IAEtD,IAAW,gBAAgB,0BAE1B;IAED;;;;;;;;OAQG;IACI,aAAa,CAAC,YAAY,EAAE,UAAU,GAAG,IAAI;IAIpD;;;;OAIG;IACH,OAAO,CAAC,MAAM;IAqBd;;;;OAIG;IACI,IAAI,CACT,aAAa,EAAE,MAAM,GAAG,SAAS,GAChC,mBAAmB,GAAG,SAAS;IAQlC;;;;OAIG;IACI,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS;IAS3E,OAAO,CAAC,yBAAyB;IAqGjC,gGAAgG;IACzF,QAAQ;IAOf;;;;;OAKG;IACI,KAAK,kBAAmB,MAAM,2CAkBnC;IAEF,OAAO,CAAC,oBAAoB;IAU5B;;;;;;;;OAQG;IACI,IAAI,CACT,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,KAAK,CAAC,SAAS,EACxB,QAAQ,EAAE,wBAAwB,EAClC,mBAAmB,CAAC,EAAE,OAAO;CA2DhC"}
|
|
@@ -177,6 +177,12 @@ export class InternalChildWindowManager {
|
|
|
177
177
|
childWindow.deltaHeight =
|
|
178
178
|
childWindow.expectedHeight - childWindow.innerHeight;
|
|
179
179
|
}
|
|
180
|
+
if (childWindow.expectedLeft && childWindow.expectedTop) {
|
|
181
|
+
childWindow.deltaLeft =
|
|
182
|
+
childWindow.expectedLeft - childWindow.screenLeft;
|
|
183
|
+
childWindow.deltaTop =
|
|
184
|
+
childWindow.expectedTop - childWindow.screenTop;
|
|
185
|
+
}
|
|
180
186
|
});
|
|
181
187
|
});
|
|
182
188
|
childWindow.addEventListener("pagehide", () => {
|
|
@@ -232,8 +238,8 @@ export class InternalChildWindowManager {
|
|
|
232
238
|
return false;
|
|
233
239
|
childWindow.expectedHeight = location.height;
|
|
234
240
|
childWindow.expectedWidth = location.width;
|
|
235
|
-
childWindow.
|
|
236
|
-
childWindow.
|
|
241
|
+
childWindow.expectedLeft = location.left;
|
|
242
|
+
childWindow.expectedTop = location.top;
|
|
237
243
|
if (url.length === 0) {
|
|
238
244
|
childWindow.document.write(childHtml);
|
|
239
245
|
this.renderChildWindowContents(childWindow, childWindowId, content, title);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternalChildWindowManager.js","sourceRoot":"","sources":["../../../../src/appui-react/childwindow/InternalChildWindowManager.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAMzE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,mCAAmC,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,oDAAoD,CAAC;AAErF,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;QAqBV,CAAC;AAST;;;;KAIK;AACL,MAAM,OAAO,0BAA0B;IAAvC;QACU,sBAAiB,GAA0B,EAAE,CAAC;QAE9C,WAAM,GAAqC,EAAE,CAAC;QAgLtD;;;;;WAKG;QACI,UAAK,GAAG,CAAC,aAAqB,EAAE,kBAAkB,GAAG,IAAI,EAAE,EAAE;YAClE,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CACjD,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,aAAa,KAAK,aAAa,CAC3D,CAAC;YACF,IAAI,WAAW,KAAK,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;YACrC,MAAM,EAAE,mBAAmB,EAAE,GAAG,eAAe,CAAC,QAAQ,EAAE,CAAC;YAC3D,mBAAmB,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;YAE5D,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;YACvD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAC7C,IAAI,kBAAkB,EAAE,CAAC;gBACvB,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,wDAAwD;gBACxD,MAAM,aAAa,GAAG,WAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC;gBAClE,aAAa,EAAE,gCAAgC,CAAC,aAAa,CAAC,CAAC;YACjE,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;IAqFJ,CAAC;IA3RC,IAAW,gBAAgB;QACzB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED;;;;;;;;OAQG;IACI,aAAa,CAAC,YAAwB;QAC3C,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACK,MAAM,CACZ,OAA4C,EAC5C,SAAqC;QAErC,wEAAwE;QACxE,qEAAqE;QACrE,cAAc;QACd,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,aAAa,GAAG,WAAW,CAAC,YAAY,CAAC,MAAM,CACnD,SAAS,CAAC,aAAa,CAAC,WAAW,CACpC,CAAC;YACF,IAAI,aAAa,EAAE,CAAC;gBAClB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBACzD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,wEAAwE;YACxE,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,IAAI,CACT,aAAiC;QAEjC,IAAI,SAAS,KAAK,aAAa;YAAE,OAAO,SAAS,CAAC;QAElD,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAC/B,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,aAAa,KAAK,aAAa,CAC3D,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,aAAwC;QACpD,IAAI,CAAC,aAAa;YAAE,OAAO,SAAS,CAAC;QAErC,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAC5C,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,KAAK,aAAa,CACpD,CAAC;QACF,OAAO,WAAW,EAAE,aAAa,CAAC;IACpC,CAAC;IAEO,yBAAyB,CAC/B,WAAwB,EACxB,aAAqB,EACrB,OAAwB,EACxB,KAAa;QAEb,WAAW,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnC,MAAM,kBAAkB,GAAG,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACvE,IAAI,kBAAkB,IAAI,OAAO,IAAI,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YACnE,oEAAoE;YACpE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;gBAC1B,aAAa;gBACb,MAAM,EAAE,WAAW;gBACnB,YAAY,EAAE,MAAM;aACrB,CAAC,CAAC;YACH,IAAI,OAA4C,CAAC;YACjD,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAY,CAAC;gBACnD,OAAO,GAAG,CACR,oBAAC,QAAQ,IAAC,KAAK,EAAE,WAAW,CAAC,KAAK;oBAChC,oBAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK;wBACjC,oBAAC,qBAAqB;4BACpB,oBAAC,YAAY;gCACX,6BAAK,SAAS,EAAC,kCAAkC;oCAC/C,oBAAC,aAAa,OAAG;oCACjB,oBAAC,mBAAmB,OAAG;oCACvB,oBAAC,sBAAsB,OAAG;oCAC1B,oBAAC,eAAe,OAAG;oCACnB,6BAAK,SAAS,EAAC,8CAA8C,IAC1D,OAAO,CACJ,CACF,CACO,CACO,CACF,CACf,CACZ,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,CACR,oBAAC,QAAQ,IAAC,KAAK,EAAE,WAAW,CAAC,KAAK;oBAChC,oBAAC,qBAAqB;wBACpB,oBAAC,YAAY;4BACX,6BAAK,SAAS,EAAC,kCAAkC;gCAC/C,oBAAC,aAAa,OAAG;gCACjB,oBAAC,mBAAmB,OAAG;gCACvB,oBAAC,sBAAsB,OAAG;gCAC1B,oBAAC,eAAe,OAAG;gCACnB,6BAAK,SAAS,EAAC,8CAA8C,IAC1D,OAAO,CACJ,CACF,CACO,CACO,CACf,CACZ,CAAC;YACJ,CAAC;YAED,UAAU,CAAC,GAAG,EAAE;gBACd,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBACjC,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;oBAEzC,IAAI,WAAW,CAAC,cAAc,IAAI,WAAW,CAAC,aAAa,EAAE,CAAC;wBAC5D,WAAW,CAAC,UAAU;4BACpB,WAAW,CAAC,aAAa,GAAG,WAAW,CAAC,UAAU,CAAC;wBACrD,WAAW,CAAC,WAAW;4BACrB,WAAW,CAAC,cAAc,GAAG,WAAW,CAAC,WAAW,CAAC;oBACzD,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,WAAW,CAAC,gBAAgB,CAAC,UAAU,EAAE,GAAG,EAAE;gBAC5C,MAAM,aAAa,GAAG,WAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC;gBAClE,IAAI,CAAC,aAAa;oBAAE,OAAO;gBAC3B,aAAa,CAAC,8BAA8B,CAC1C,aAAa,EACb,WAAW,CACZ,CAAC;gBAEF,sEAAsE;gBACtE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;gBAEjC,mEAAmE;gBACnE,iEAAiE;gBACjE,eAAe;gBACf,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;oBAC/B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC;oBACrC,wEAAwE;gBAC1E,CAAC;;oBAAM,QAAQ,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,gGAAgG;IACzF,QAAQ;QACb,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,EAAE,CAChD,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,CAC/B,CAAC;QACF,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;IAC9B,CAAC;IA4BO,oBAAoB,CAAC,QAAkC;QAC7D,0FAA0F;QAC1F,IAAI,QAAQ,CAAC,GAAG,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC9C,QAAQ,CAAC,IAAI;gBACX,MAAM,CAAC,UAAU,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;YAC9D,QAAQ,CAAC,GAAG;gBACV,MAAM,CAAC,WAAW,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACI,IAAI,CACT,aAAqB,EACrB,KAAa,EACb,OAAwB,EACxB,QAAkC,EAClC,mBAA6B;QAE7B,IACE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CACxB,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,aAAa,KAAK,aAAa,CAC3D,EACD,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QACpC,MAAM,GAAG,GAAG,mBAAmB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,MAAM,WAAW,GAAuB,MAAM,CAAC,IAAI,CACjD,GAAG,EACH,EAAE,EACF,SAAS,QAAQ,CAAC,KAAK,WAAW,QAAQ,CAAC,MAAM,SAAS,QAAQ,CAAC,IAAI,QAAQ,QAAQ,CAAC,GAAG,+DAA+D,CAC3J,CAAC;QACF,IAAI,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC;QAC/B,WAAW,CAAC,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC7C,WAAW,CAAC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC3C,WAAW,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC,UAAU,CAAC;QAC/D,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,GAAG,WAAW,CAAC,SAAS,CAAC;QAE5D,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,CAAC,yBAAyB,CAC5B,WAAW,EACX,aAAa,EACb,OAAO,EACP,KAAK,CACN,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,gBAAgB,CAC1B,kBAAkB,EAClB,GAAG,EAAE;gBACH,IAAI,CAAC,yBAAyB,CAC5B,WAAW,EACX,aAAa,EACb,OAAO,EACP,KAAK,CACN,CAAC;YACJ,CAAC,EACD,KAAK,CACN,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,gBAAgB,CACrB,QAAQ,EACR,GAAG,EAAE;YACH,MAAM,aAAa,GAAG,WAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC;YAClE,IAAI,aAAa,EAAE,CAAC;gBAClB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YAClC,CAAC;QACH,CAAC,EACD,KAAK,CACN,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;CACF","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\n/** @packageDocumentation\n * @module ChildWindowManager\n */\n\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Provider } from \"react-redux\";\nimport { UiFramework } from \"../UiFramework\";\nimport { CursorPopupMenu } from \"../cursor/cursormenu/CursorMenu\";\nimport { ModalDialogRenderer } from \"../dialog/ModalDialogManager\";\nimport { ModelessDialogRenderer } from \"../dialog/ModelessDialogManager\";\nimport type {\n ChildWindowLocationProps,\n FrameworkChildWindows,\n OpenChildWindowInfo,\n} from \"../framework/FrameworkChildWindows\";\nimport { TabIdContext } from \"../layout/widget/ContentRenderer\";\nimport { PopupRenderer } from \"../popup/PopupManager\";\nimport { ThemeManager } from \"../theme/ThemeManager\";\nimport { UiStateStorageHandler } from \"../uistate/useUiStateStorage\";\nimport type { ChildWindow } from \"./ChildWindowConfig\";\nimport { copyStyles } from \"./CopyStyles\";\nimport \"./InternalChildWindowManager.scss\";\nimport { usePopoutsStore } from \"../preview/reparent-popout-widgets/usePopoutsStore\";\n\nconst childHtml = `<!DOCTYPE html>\n<html>\n<head>\n <meta charset=\"utf-8\" />\n <style>\n html,\n body {\n height: 100%;\n width: 100%;\n margin: 0;\n overflow: hidden;\n }\n #root {\n height: 100%;\n }\n </style>\n</head>\n<body>\n <noscript>You need to enable JavaScript to run this app.</noscript>\n <div id=\"root\"></div>\n</body>\n</html>`;\n\n/**\n * Simplification of non exported CreateRoot parameter, only to be used\n * in InternalChildWindowManager and ChildWindowManager\n * @internal\n */\nexport type CreateRoot = Parameters<FrameworkChildWindows[\"useCreateRoot\"]>[0];\n\n/** Supports opening a child browser window from the main application window. The child window is managed by the main application\n * and is running in the same security context. The application must deliver the html file iTwinPopup.html along side its index.html.\n * See also: [Child Window Manager]($docs/learning/ui/appui-react/ChildWindows.md)\n * @internal\n * */\nexport class InternalChildWindowManager implements FrameworkChildWindows {\n private _openChildWindows: OpenChildWindowInfo[] = [];\n private _createRoot?: CreateRoot;\n private _roots: { [childwindowId: string]: any } = {};\n\n public get openChildWindows() {\n return this._openChildWindows;\n }\n\n /**\n * When using React 18, the `createRoot` function must be provided in order to render Popout content with React 18.\n * Do not call if using React 17 or before.\n *\n * Note: The type of the function is intentionally simplified here.\n *\n * @param createRootFn Function imported from `import { createRoot } from \"react-dom/client\";`\n * @beta Will be removed once the transition to React 18 is complete.\n */\n public useCreateRoot(createRootFn: CreateRoot): void {\n this._createRoot = createRootFn;\n }\n\n /**\n * Abstracts ReactDOM.render to use either the _createRoot method or the default ReactDOM.render.\n * @param element Element to render.\n * @param container Container to render to.\n */\n private render(\n element: React.FunctionComponentElement<any>,\n container: Element | DocumentFragment\n ) {\n // If createRoot is passed in for React 18 we have to render differently\n // than without it. React 17 vs React 18. We need to save the root to\n // unmount it.\n if (this._createRoot) {\n const childWindowId = UiFramework.childWindows.findId(\n container.ownerDocument.defaultView\n );\n if (childWindowId) {\n this._roots[childWindowId] = this._createRoot(container);\n this._roots[childWindowId].render(element);\n }\n } else {\n // eslint-disable-next-line react/no-deprecated, deprecation/deprecation\n ReactDOM.render(element, container);\n }\n }\n\n /**\n * Returns the OpenChildWindowInfo for the related id.\n * @param childWindowId Id of the window to retrieve.\n * @returns undefined if not found.\n */\n public find(\n childWindowId: string | undefined\n ): OpenChildWindowInfo | undefined {\n if (undefined === childWindowId) return undefined;\n\n return this.openChildWindows.find(\n (openWindow) => openWindow.childWindowId === childWindowId\n );\n }\n\n /**\n * Return the childWindowId of the provided window.\n * @param contentWindow Window element to identify\n * @returns undefined if not found\n */\n public findId(contentWindow: Window | undefined | null): string | undefined {\n if (!contentWindow) return undefined;\n\n const childWindow = this.openChildWindows.find(\n (openWindow) => openWindow.window === contentWindow\n );\n return childWindow?.childWindowId;\n }\n\n private renderChildWindowContents(\n childWindow: ChildWindow,\n childWindowId: string,\n content: React.ReactNode,\n title: string\n ) {\n childWindow.document.title = title;\n\n const reactConnectionDiv = childWindow.document.getElementById(\"root\");\n if (reactConnectionDiv && content && React.isValidElement(content)) {\n // set openChildWindows now so components can use it when they mount\n this._openChildWindows.push({\n childWindowId,\n window: childWindow,\n parentWindow: window,\n });\n let element: React.FunctionComponentElement<any>;\n if (content.props.widgetDef) {\n const tabId = content.props.widgetDef.id as string;\n element = (\n <Provider store={UiFramework.store}>\n <TabIdContext.Provider value={tabId}>\n <UiStateStorageHandler>\n <ThemeManager>\n <div className=\"uifw-child-window-container-host\">\n <PopupRenderer />\n <ModalDialogRenderer />\n <ModelessDialogRenderer />\n <CursorPopupMenu />\n <div className=\"uifw-child-window-container nz-widget-widget\">\n {content}\n </div>\n </div>\n </ThemeManager>\n </UiStateStorageHandler>\n </TabIdContext.Provider>\n </Provider>\n );\n } else {\n element = (\n <Provider store={UiFramework.store}>\n <UiStateStorageHandler>\n <ThemeManager>\n <div className=\"uifw-child-window-container-host\">\n <PopupRenderer />\n <ModalDialogRenderer />\n <ModelessDialogRenderer />\n <CursorPopupMenu />\n <div className=\"uifw-child-window-container nz-widget-widget\">\n {content}\n </div>\n </div>\n </ThemeManager>\n </UiStateStorageHandler>\n </Provider>\n );\n }\n\n setTimeout(() => {\n copyStyles(childWindow.document);\n setTimeout(() => {\n this.render(element, reactConnectionDiv);\n\n if (childWindow.expectedHeight && childWindow.expectedWidth) {\n childWindow.deltaWidth =\n childWindow.expectedWidth - childWindow.innerWidth;\n childWindow.deltaHeight =\n childWindow.expectedHeight - childWindow.innerHeight;\n }\n });\n });\n\n childWindow.addEventListener(\"pagehide\", () => {\n const frontStageDef = UiFramework.frontstages.activeFrontstageDef;\n if (!frontStageDef) return;\n frontStageDef.saveChildWindowSizeAndPosition(\n childWindowId,\n childWindow\n );\n\n // Trigger first so popout can be converted back to main window widget\n this.close(childWindowId, false);\n\n // UnmountComponentAtNode is deprecated in React 18, so if they are\n // using React 18 and passing in a createRoot function, unmount()\n // will be used\n if (this._roots[childWindowId]) {\n this._roots[childWindowId].unmount();\n // eslint-disable-next-line react/no-deprecated, deprecation/deprecation\n } else ReactDOM.unmountComponentAtNode(reactConnectionDiv);\n });\n }\n }\n\n /** Close all child/pop-out windows. This typically is called when the frontstage is changed. */\n public closeAll() {\n this.openChildWindows.forEach((openChildWindow) =>\n openChildWindow.window.close()\n );\n this._openChildWindows = [];\n }\n\n /**\n * Close a specific child window.\n * @param childWindowId Id of the window to close.\n * @param processWindowClose should the `close` method be called on the closing window. (defaults to true).\n * @returns false if the window could not be found.\n */\n public close = (childWindowId: string, processWindowClose = true) => {\n const windowIndex = this.openChildWindows.findIndex(\n (openWindow) => openWindow.childWindowId === childWindowId\n );\n if (windowIndex === -1) return false;\n const { onClosePopoutWidget } = usePopoutsStore.getState();\n onClosePopoutWidget.raiseEvent({ windowId: childWindowId });\n\n const childWindow = this.openChildWindows[windowIndex];\n this.openChildWindows.splice(windowIndex, 1);\n if (processWindowClose) {\n childWindow.window.close();\n } else {\n // call the following to convert popout to docked widget\n const frontStageDef = UiFramework.frontstages.activeFrontstageDef;\n frontStageDef?.dockWidgetContainerByContainerId(childWindowId);\n }\n return true;\n };\n\n private adjustWindowLocation(location: ChildWindowLocationProps) {\n // If no location is provided, child window will open in the center of the current window.\n if (location.top === 0 && location.left === 0) {\n location.left =\n window.outerWidth / 2 + window.screenX - location.width / 2;\n location.top =\n window.outerHeight / 2 + window.screenY - location.height / 2;\n }\n }\n\n /**\n * Open a new child window.\n * @param childWindowId Id to assign to the newly created window.\n * @param title Title to display on the window.\n * @param content ReactNode to be rendered in the window.\n * @param location Position and size information\n * @param useDefaultPopoutUrl use \"/iTwinPopup.html\" as the window Url, \"\" otherwise.\n * @returns true if the window is opened successfully.\n */\n public open(\n childWindowId: string,\n title: string,\n content: React.ReactNode,\n location: ChildWindowLocationProps,\n useDefaultPopoutUrl?: boolean\n ) {\n if (\n this.openChildWindows.some(\n (openWindow) => openWindow.childWindowId === childWindowId\n )\n ) {\n return false;\n }\n\n this.adjustWindowLocation(location);\n const url = useDefaultPopoutUrl ? \"/iTwinPopup.html\" : \"\";\n const childWindow: ChildWindow | null = window.open(\n url,\n \"\",\n `width=${location.width},height=${location.height},left=${location.left},top=${location.top},menubar=no,resizable=yes,scrollbars=no,status=no,location=no`\n );\n if (!childWindow) return false;\n childWindow.expectedHeight = location.height;\n childWindow.expectedWidth = location.width;\n childWindow.deltaLeft = location.left - childWindow.screenLeft;\n childWindow.deltaTop = location.top - childWindow.screenTop;\n\n if (url.length === 0) {\n childWindow.document.write(childHtml);\n this.renderChildWindowContents(\n childWindow,\n childWindowId,\n content,\n title\n );\n } else {\n childWindow.addEventListener(\n \"DOMContentLoaded\",\n () => {\n this.renderChildWindowContents(\n childWindow,\n childWindowId,\n content,\n title\n );\n },\n false\n );\n }\n\n window.addEventListener(\n \"unload\",\n () => {\n const frontStageDef = UiFramework.frontstages.activeFrontstageDef;\n if (frontStageDef) {\n this.close(childWindowId, true);\n }\n },\n false\n );\n\n return true;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"InternalChildWindowManager.js","sourceRoot":"","sources":["../../../../src/appui-react/childwindow/InternalChildWindowManager.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\n/** @packageDocumentation\n * @module ChildWindowManager\n */\n\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Provider } from \"react-redux\";\nimport { UiFramework } from \"../UiFramework\";\nimport { CursorPopupMenu } from \"../cursor/cursormenu/CursorMenu\";\nimport { ModalDialogRenderer } from \"../dialog/ModalDialogManager\";\nimport { ModelessDialogRenderer } from \"../dialog/ModelessDialogManager\";\nimport type {\n ChildWindowLocationProps,\n FrameworkChildWindows,\n OpenChildWindowInfo,\n} from \"../framework/FrameworkChildWindows\";\nimport { TabIdContext } from \"../layout/widget/ContentRenderer\";\nimport { PopupRenderer } from \"../popup/PopupManager\";\nimport { ThemeManager } from \"../theme/ThemeManager\";\nimport { UiStateStorageHandler } from \"../uistate/useUiStateStorage\";\nimport type { ChildWindow } from \"./ChildWindowConfig\";\nimport { copyStyles } from \"./CopyStyles\";\nimport \"./InternalChildWindowManager.scss\";\nimport { usePopoutsStore } from \"../preview/reparent-popout-widgets/usePopoutsStore\";\n\nconst childHtml = `<!DOCTYPE html>\n<html>\n<head>\n <meta charset=\"utf-8\" />\n <style>\n html,\n body {\n height: 100%;\n width: 100%;\n margin: 0;\n overflow: hidden;\n }\n #root {\n height: 100%;\n }\n </style>\n</head>\n<body>\n <noscript>You need to enable JavaScript to run this app.</noscript>\n <div id=\"root\"></div>\n</body>\n</html>`;\n\n/**\n * Simplification of non exported CreateRoot parameter, only to be used\n * in InternalChildWindowManager and ChildWindowManager\n * @internal\n */\nexport type CreateRoot = Parameters<FrameworkChildWindows[\"useCreateRoot\"]>[0];\n\n/** Supports opening a child browser window from the main application window. The child window is managed by the main application\n * and is running in the same security context. The application must deliver the html file iTwinPopup.html along side its index.html.\n * See also: [Child Window Manager]($docs/learning/ui/appui-react/ChildWindows.md)\n * @internal\n * */\nexport class InternalChildWindowManager implements FrameworkChildWindows {\n private _openChildWindows: OpenChildWindowInfo[] = [];\n private _createRoot?: CreateRoot;\n private _roots: { [childwindowId: string]: any } = {};\n\n public get openChildWindows() {\n return this._openChildWindows;\n }\n\n /**\n * When using React 18, the `createRoot` function must be provided in order to render Popout content with React 18.\n * Do not call if using React 17 or before.\n *\n * Note: The type of the function is intentionally simplified here.\n *\n * @param createRootFn Function imported from `import { createRoot } from \"react-dom/client\";`\n * @beta Will be removed once the transition to React 18 is complete.\n */\n public useCreateRoot(createRootFn: CreateRoot): void {\n this._createRoot = createRootFn;\n }\n\n /**\n * Abstracts ReactDOM.render to use either the _createRoot method or the default ReactDOM.render.\n * @param element Element to render.\n * @param container Container to render to.\n */\n private render(\n element: React.FunctionComponentElement<any>,\n container: Element | DocumentFragment\n ) {\n // If createRoot is passed in for React 18 we have to render differently\n // than without it. React 17 vs React 18. We need to save the root to\n // unmount it.\n if (this._createRoot) {\n const childWindowId = UiFramework.childWindows.findId(\n container.ownerDocument.defaultView\n );\n if (childWindowId) {\n this._roots[childWindowId] = this._createRoot(container);\n this._roots[childWindowId].render(element);\n }\n } else {\n // eslint-disable-next-line react/no-deprecated, deprecation/deprecation\n ReactDOM.render(element, container);\n }\n }\n\n /**\n * Returns the OpenChildWindowInfo for the related id.\n * @param childWindowId Id of the window to retrieve.\n * @returns undefined if not found.\n */\n public find(\n childWindowId: string | undefined\n ): OpenChildWindowInfo | undefined {\n if (undefined === childWindowId) return undefined;\n\n return this.openChildWindows.find(\n (openWindow) => openWindow.childWindowId === childWindowId\n );\n }\n\n /**\n * Return the childWindowId of the provided window.\n * @param contentWindow Window element to identify\n * @returns undefined if not found\n */\n public findId(contentWindow: Window | undefined | null): string | undefined {\n if (!contentWindow) return undefined;\n\n const childWindow = this.openChildWindows.find(\n (openWindow) => openWindow.window === contentWindow\n );\n return childWindow?.childWindowId;\n }\n\n private renderChildWindowContents(\n childWindow: ChildWindow,\n childWindowId: string,\n content: React.ReactNode,\n title: string\n ) {\n childWindow.document.title = title;\n\n const reactConnectionDiv = childWindow.document.getElementById(\"root\");\n if (reactConnectionDiv && content && React.isValidElement(content)) {\n // set openChildWindows now so components can use it when they mount\n this._openChildWindows.push({\n childWindowId,\n window: childWindow,\n parentWindow: window,\n });\n let element: React.FunctionComponentElement<any>;\n if (content.props.widgetDef) {\n const tabId = content.props.widgetDef.id as string;\n element = (\n <Provider store={UiFramework.store}>\n <TabIdContext.Provider value={tabId}>\n <UiStateStorageHandler>\n <ThemeManager>\n <div className=\"uifw-child-window-container-host\">\n <PopupRenderer />\n <ModalDialogRenderer />\n <ModelessDialogRenderer />\n <CursorPopupMenu />\n <div className=\"uifw-child-window-container nz-widget-widget\">\n {content}\n </div>\n </div>\n </ThemeManager>\n </UiStateStorageHandler>\n </TabIdContext.Provider>\n </Provider>\n );\n } else {\n element = (\n <Provider store={UiFramework.store}>\n <UiStateStorageHandler>\n <ThemeManager>\n <div className=\"uifw-child-window-container-host\">\n <PopupRenderer />\n <ModalDialogRenderer />\n <ModelessDialogRenderer />\n <CursorPopupMenu />\n <div className=\"uifw-child-window-container nz-widget-widget\">\n {content}\n </div>\n </div>\n </ThemeManager>\n </UiStateStorageHandler>\n </Provider>\n );\n }\n\n setTimeout(() => {\n copyStyles(childWindow.document);\n setTimeout(() => {\n this.render(element, reactConnectionDiv);\n\n if (childWindow.expectedHeight && childWindow.expectedWidth) {\n childWindow.deltaWidth =\n childWindow.expectedWidth - childWindow.innerWidth;\n childWindow.deltaHeight =\n childWindow.expectedHeight - childWindow.innerHeight;\n }\n\n if (childWindow.expectedLeft && childWindow.expectedTop) {\n childWindow.deltaLeft =\n childWindow.expectedLeft - childWindow.screenLeft;\n childWindow.deltaTop =\n childWindow.expectedTop - childWindow.screenTop;\n }\n });\n });\n\n childWindow.addEventListener(\"pagehide\", () => {\n const frontStageDef = UiFramework.frontstages.activeFrontstageDef;\n if (!frontStageDef) return;\n frontStageDef.saveChildWindowSizeAndPosition(\n childWindowId,\n childWindow\n );\n\n // Trigger first so popout can be converted back to main window widget\n this.close(childWindowId, false);\n\n // UnmountComponentAtNode is deprecated in React 18, so if they are\n // using React 18 and passing in a createRoot function, unmount()\n // will be used\n if (this._roots[childWindowId]) {\n this._roots[childWindowId].unmount();\n // eslint-disable-next-line react/no-deprecated, deprecation/deprecation\n } else ReactDOM.unmountComponentAtNode(reactConnectionDiv);\n });\n }\n }\n\n /** Close all child/pop-out windows. This typically is called when the frontstage is changed. */\n public closeAll() {\n this.openChildWindows.forEach((openChildWindow) =>\n openChildWindow.window.close()\n );\n this._openChildWindows = [];\n }\n\n /**\n * Close a specific child window.\n * @param childWindowId Id of the window to close.\n * @param processWindowClose should the `close` method be called on the closing window. (defaults to true).\n * @returns false if the window could not be found.\n */\n public close = (childWindowId: string, processWindowClose = true) => {\n const windowIndex = this.openChildWindows.findIndex(\n (openWindow) => openWindow.childWindowId === childWindowId\n );\n if (windowIndex === -1) return false;\n const { onClosePopoutWidget } = usePopoutsStore.getState();\n onClosePopoutWidget.raiseEvent({ windowId: childWindowId });\n\n const childWindow = this.openChildWindows[windowIndex];\n this.openChildWindows.splice(windowIndex, 1);\n if (processWindowClose) {\n childWindow.window.close();\n } else {\n // call the following to convert popout to docked widget\n const frontStageDef = UiFramework.frontstages.activeFrontstageDef;\n frontStageDef?.dockWidgetContainerByContainerId(childWindowId);\n }\n return true;\n };\n\n private adjustWindowLocation(location: ChildWindowLocationProps) {\n // If no location is provided, child window will open in the center of the current window.\n if (location.top === 0 && location.left === 0) {\n location.left =\n window.outerWidth / 2 + window.screenX - location.width / 2;\n location.top =\n window.outerHeight / 2 + window.screenY - location.height / 2;\n }\n }\n\n /**\n * Open a new child window.\n * @param childWindowId Id to assign to the newly created window.\n * @param title Title to display on the window.\n * @param content ReactNode to be rendered in the window.\n * @param location Position and size information\n * @param useDefaultPopoutUrl use \"/iTwinPopup.html\" as the window Url, \"\" otherwise.\n * @returns true if the window is opened successfully.\n */\n public open(\n childWindowId: string,\n title: string,\n content: React.ReactNode,\n location: ChildWindowLocationProps,\n useDefaultPopoutUrl?: boolean\n ) {\n if (\n this.openChildWindows.some(\n (openWindow) => openWindow.childWindowId === childWindowId\n )\n ) {\n return false;\n }\n\n this.adjustWindowLocation(location);\n const url = useDefaultPopoutUrl ? \"/iTwinPopup.html\" : \"\";\n const childWindow: ChildWindow | null = window.open(\n url,\n \"\",\n `width=${location.width},height=${location.height},left=${location.left},top=${location.top},menubar=no,resizable=yes,scrollbars=no,status=no,location=no`\n );\n if (!childWindow) return false;\n childWindow.expectedHeight = location.height;\n childWindow.expectedWidth = location.width;\n childWindow.expectedLeft = location.left;\n childWindow.expectedTop = location.top;\n\n if (url.length === 0) {\n childWindow.document.write(childHtml);\n this.renderChildWindowContents(\n childWindow,\n childWindowId,\n content,\n title\n );\n } else {\n childWindow.addEventListener(\n \"DOMContentLoaded\",\n () => {\n this.renderChildWindowContents(\n childWindow,\n childWindowId,\n content,\n title\n );\n },\n false\n );\n }\n\n window.addEventListener(\n \"unload\",\n () => {\n const frontStageDef = UiFramework.frontstages.activeFrontstageDef;\n if (frontStageDef) {\n this.close(childWindowId, true);\n }\n },\n false\n );\n\n return true;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigurableUiContent.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/configurableui/ConfigurableUiContent.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,8BAA8B,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAqBrD;;GAEG;AACH,MAAM,WAAW,0BAA2B,SAAQ,WAAW;IAC7D,kCAAkC;IAClC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE/B,gBAAgB;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,4BAAkD,CAAC;AAE9E;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,
|
|
1
|
+
{"version":3,"file":"ConfigurableUiContent.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/configurableui/ConfigurableUiContent.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,8BAA8B,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAqBrD;;GAEG;AACH,MAAM,WAAW,0BAA2B,SAAQ,WAAW;IAC7D,kCAAkC;IAClC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE/B,gBAAgB;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,4BAAkD,CAAC;AAE9E;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,qBA0DtE"}
|
|
@@ -33,7 +33,7 @@ export const WrapperContext = React.createContext(document.body);
|
|
|
33
33
|
* @public
|
|
34
34
|
*/
|
|
35
35
|
export function ConfigurableUiContent(props) {
|
|
36
|
-
const [mainElement, setMainElement] = React.useState(
|
|
36
|
+
const [mainElement, setMainElement] = React.useState();
|
|
37
37
|
const [portalContainer, setPortalContainer] = React.useState();
|
|
38
38
|
React.useEffect(() => {
|
|
39
39
|
UiFramework.keyboardShortcuts.setFocusToHome();
|
|
@@ -51,14 +51,11 @@ export function ConfigurableUiContent(props) {
|
|
|
51
51
|
const point = new Point(e.pageX, e.pageY);
|
|
52
52
|
CursorInformation.handleMouseMove(point);
|
|
53
53
|
}, []);
|
|
54
|
-
return (React.createElement("main", { role: "main", id: "uifw-configurableui-wrapper", className: props.className, style: props.style, onMouseMove: handleMouseMove, ref: setMainElement },
|
|
55
|
-
React.createElement(WrapperContext.Provider, { value: mainElement },
|
|
54
|
+
return (React.createElement("main", { role: "main", id: "uifw-configurableui-wrapper", className: props.className, style: props.style, onMouseMove: handleMouseMove, ref: (el) => setMainElement(el ?? undefined) },
|
|
55
|
+
React.createElement(WrapperContext.Provider, { value: mainElement ?? document.body },
|
|
56
56
|
React.createElement(ThemeProvider, { style: { height: "100%" }, portalContainer: portalContainer },
|
|
57
57
|
props.appBackstage,
|
|
58
58
|
React.createElement(WidgetPanelsFrontstage, null),
|
|
59
|
-
React.createElement(ContentDialogRenderer, null),
|
|
60
|
-
React.createElement(ModelessDialogRenderer, null),
|
|
61
|
-
React.createElement(ModalDialogRenderer, null),
|
|
62
59
|
React.createElement(ElementTooltip, null),
|
|
63
60
|
React.createElement(PointerMessage, null),
|
|
64
61
|
React.createElement(KeyboardShortcutMenu, null),
|
|
@@ -66,7 +63,10 @@ export function ConfigurableUiContent(props) {
|
|
|
66
63
|
React.createElement(CursorPopupMenu, null),
|
|
67
64
|
React.createElement(CursorPopupRenderer, null),
|
|
68
65
|
React.createElement(PopupRenderer, null),
|
|
69
|
-
React.createElement(MessageRenderer, null)
|
|
70
|
-
|
|
66
|
+
React.createElement(MessageRenderer, null),
|
|
67
|
+
React.createElement("div", { className: "uifw-configurableui-portalContainer", ref: (instance) => setPortalContainer(instance ?? undefined) },
|
|
68
|
+
React.createElement(ContentDialogRenderer, null),
|
|
69
|
+
React.createElement(ModelessDialogRenderer, null),
|
|
70
|
+
React.createElement(ModalDialogRenderer, null))))));
|
|
71
71
|
}
|
|
72
72
|
//# sourceMappingURL=ConfigurableUiContent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigurableUiContent.js","sourceRoot":"","sources":["../../../../src/appui-react/configurableui/ConfigurableUiContent.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,8BAA8B,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAiB9D;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,aAAa,CAAc,QAAQ,CAAC,IAAI,CAAC,CAAC;AAE9E;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAiC;IACrE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"ConfigurableUiContent.js","sourceRoot":"","sources":["../../../../src/appui-react/configurableui/ConfigurableUiContent.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 ConfigurableUi\n */\n\nimport \"./ConfigurableUiContent.scss\";\nimport * as React from \"react\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { Point } from \"@itwin/core-react\";\nimport { ThemeProvider } from \"@itwin/itwinui-react\";\nimport { CursorInformation } from \"../cursor/CursorInformation\";\nimport { CursorPopupMenu } from \"../cursor/cursormenu/CursorMenu\";\nimport { CursorPopupRenderer } from \"../cursor/cursorpopup/CursorPopupManager\";\nimport { ModalDialogRenderer } from \"../dialog/ModalDialogManager\";\nimport { ModelessDialogRenderer } from \"../dialog/ModelessDialogManager\";\nimport { ElementTooltip } from \"../feedback/ElementTooltip\";\nimport { KeyboardShortcutMenu } from \"../keyboardshortcut/KeyboardShortcutMenu\";\nimport { InputFieldMessage } from \"../messages/InputField\";\nimport { PointerMessage } from \"../messages/Pointer\";\nimport { PopupRenderer } from \"../popup/PopupManager\";\nimport { WidgetPanelsFrontstage } from \"../widget-panels/Frontstage\";\nimport { ContentDialogRenderer } from \"../dialog/ContentDialogManager\";\nimport { UiFramework } from \"../UiFramework\";\nimport { InternalConfigurableUiManager } from \"./InternalConfigurableUiManager\";\nimport { MessageRenderer } from \"../messages/MessageRenderer\";\n\n// cSpell:ignore cursormenu cursorpopup\n\n/** Properties for [[ConfigurableUiContent]]\n * @public\n */\nexport interface ConfigurableUiContentProps extends CommonProps {\n /** React node of the Backstage */\n appBackstage?: React.ReactNode;\n\n /** @internal */\n idleTimeout?: number;\n /** @internal */\n intervalTimeout?: number;\n}\n\n/**\n * Allows children to get the bounds or other properties of the wrapper element.\n * @internal\n */\nexport const WrapperContext = React.createContext<HTMLElement>(document.body);\n\n/** The ConfigurableUiContent component is the component the pages specified using ConfigurableUi\n * @public\n */\nexport function ConfigurableUiContent(props: ConfigurableUiContentProps) {\n const [mainElement, setMainElement] = React.useState<HTMLElement>();\n const [portalContainer, setPortalContainer] = React.useState<HTMLElement>();\n React.useEffect(() => {\n UiFramework.keyboardShortcuts.setFocusToHome();\n }, []);\n\n React.useEffect(() => {\n InternalConfigurableUiManager.activityTracker.initialize({\n idleTimeout: props.idleTimeout,\n intervalTimeout: props.intervalTimeout,\n });\n return () => {\n InternalConfigurableUiManager.activityTracker.terminate();\n };\n }, [props.idleTimeout, props.intervalTimeout]);\n\n const handleMouseMove = React.useCallback((e: React.MouseEvent) => {\n const point = new Point(e.pageX, e.pageY);\n CursorInformation.handleMouseMove(point);\n }, []);\n\n return (\n <main\n role=\"main\"\n id=\"uifw-configurableui-wrapper\"\n className={props.className}\n style={props.style}\n onMouseMove={handleMouseMove}\n ref={(el) => setMainElement(el ?? undefined)}\n >\n <WrapperContext.Provider value={mainElement ?? document.body}>\n <ThemeProvider\n style={{ height: \"100%\" }}\n portalContainer={portalContainer}\n >\n {props.appBackstage}\n <WidgetPanelsFrontstage />\n <ElementTooltip />\n <PointerMessage />\n <KeyboardShortcutMenu />\n <InputFieldMessage />\n <CursorPopupMenu />\n <CursorPopupRenderer />\n <PopupRenderer />\n <MessageRenderer />\n <div\n className=\"uifw-configurableui-portalContainer\"\n ref={(instance) => setPortalContainer(instance ?? undefined)}\n >\n <ContentDialogRenderer />\n <ModelessDialogRenderer />\n <ModalDialogRenderer />\n </div>\n </ThemeProvider>\n </WrapperContext.Provider>\n </main>\n );\n}\n"]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/** @packageDocumentation
|
|
2
2
|
* @module Dialog
|
|
3
3
|
*/
|
|
4
|
+
import "./DialogManagerBase.scss";
|
|
4
5
|
import * as React from "react";
|
|
5
6
|
import type { BeUiEvent } from "@itwin/core-bentley";
|
|
6
7
|
import { UiEvent } from "@itwin/appui-abstract";
|
|
@@ -68,9 +69,9 @@ export interface DialogRendererProps {
|
|
|
68
69
|
dialogManager: DialogManagerBase;
|
|
69
70
|
style?: React.CSSProperties;
|
|
70
71
|
}
|
|
71
|
-
/** @internal */
|
|
72
72
|
interface DialogRendererState {
|
|
73
|
-
parentDocument: Document |
|
|
73
|
+
parentDocument: Document | undefined;
|
|
74
|
+
renderer: HTMLElement | undefined;
|
|
74
75
|
}
|
|
75
76
|
/** DialogRenderer React component.
|
|
76
77
|
* @internal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DialogManagerBase.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/dialog/DialogManagerBase.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"DialogManagerBase.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/dialog/DialogManagerBase.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,0BAA0B,CAAC;AAClC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAKhD;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;CAC3C;AAED;;;GAGG;AAEH,qBAAa,kBAAmB,SAAQ,OAAO,CAAC,sBAAsB,CAAC;CAAG;AAE1E;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,QAAQ,CAAC;CAC1B;AAKD;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAC,IAAI,CAAK;IACxB,OAAO,CAAC,QAAQ,CAAyC;IAEzD,OAAO,CAAC,qBAAqB,CAAoC;IACjE,OAAO,CAAC,MAAM,CAAC,UAAU,CAAkB;gBAG/B,oBAAoB,EAAE,SAAS,CAAC,sBAAsB,CAAC;IAInE,6CAA6C;WAC/B,UAAU,IAAI,IAAI;IAIhC,WAAkB,SAAS,IAAI,MAAM,CAEpC;IAED,WAAkB,SAAS,CAAC,MAAM,EAAE,MAAM,EAEzC;IACD,IAAW,OAAO,iBAEjB;IAGD,IAAW,oBAAoB,IAAI,SAAS,CAAC,sBAAsB,CAAC,CAEnE;WAEa,sBAAsB,IAAI,MAAM;IAa9C;;;;;OAKG;IACI,UAAU,CACf,MAAM,EAAE,KAAK,CAAC,SAAS,EACvB,EAAE,CAAC,EAAE,MAAM,EACX,cAAc,CAAC,EAAE,QAAQ,GACxB,IAAI;IAOP,gBAAgB;IACT,UAAU,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAKxC,WAAW,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI;IAQlD,gBAAgB;IACT,QAAQ,IAAI,IAAI;IAKvB,gBAAgB;IACT,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI;IAS3C,sBAAsB,IAAI,IAAI;IAO9B,MAAM,IAAI,IAAI;IAIrB,IAAW,YAAY,IAAI,KAAK,CAAC,SAAS,GAAG,SAAS,CAKrD;IAED,IAAW,WAAW,IAAI,MAAM,CAE/B;CACF;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,iBAAiB,CAAC;IACjC,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,UAAU,mBAAmB;IAC3B,cAAc,EAAE,QAAQ,GAAG,SAAS,CAAC;IACrC,QAAQ,EAAE,WAAW,GAAG,SAAS,CAAC;CACnC;AACD;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK,CAAC,aAAa,CACzD,mBAAmB,EACnB,mBAAmB,CACpB;IACC,gBAAgB;IAChB,SAAyB,KAAK,EAAE,mBAAmB,CAGjD;IAEF,OAAO,CAAC,aAAa,CAKnB;IAEc,MAAM,IAAI,KAAK,CAAC,SAAS;IA0BzB,iBAAiB,IAAI,IAAI;IAMzB,oBAAoB,IAAI,IAAI;IAO5C,OAAO,CAAC,yBAAyB,CAE/B;CACH"}
|
|
@@ -5,11 +5,13 @@
|
|
|
5
5
|
/** @packageDocumentation
|
|
6
6
|
* @module Dialog
|
|
7
7
|
*/
|
|
8
|
+
import "./DialogManagerBase.scss";
|
|
8
9
|
import * as React from "react";
|
|
9
10
|
import { Logger } from "@itwin/core-bentley";
|
|
10
11
|
import { UiEvent } from "@itwin/appui-abstract";
|
|
11
12
|
import { UiFramework } from "../UiFramework";
|
|
12
13
|
import { getCssVariableAsNumber } from "@itwin/core-react";
|
|
14
|
+
import { ThemeProvider } from "@itwin/itwinui-react";
|
|
13
15
|
/** Dialog Changed Event class.
|
|
14
16
|
* @public
|
|
15
17
|
* @deprecated in 4.13.x. This class should not be used by applications to instantiate objects.
|
|
@@ -120,10 +122,14 @@ export class DialogRendererBase extends React.PureComponent {
|
|
|
120
122
|
super(...arguments);
|
|
121
123
|
/** @internal */
|
|
122
124
|
this.state = {
|
|
123
|
-
parentDocument:
|
|
125
|
+
parentDocument: undefined,
|
|
126
|
+
renderer: undefined,
|
|
124
127
|
};
|
|
125
|
-
this._handleRefSet = (
|
|
126
|
-
this.setState({
|
|
128
|
+
this._handleRefSet = (el) => {
|
|
129
|
+
this.setState({
|
|
130
|
+
parentDocument: el?.ownerDocument ?? undefined,
|
|
131
|
+
renderer: el ?? undefined,
|
|
132
|
+
});
|
|
127
133
|
};
|
|
128
134
|
// eslint-disable-next-line deprecation/deprecation
|
|
129
135
|
this._handleDialogChangedEvent = (_args) => {
|
|
@@ -133,12 +139,13 @@ export class DialogRendererBase extends React.PureComponent {
|
|
|
133
139
|
render() {
|
|
134
140
|
if (this.props.dialogManager.dialogCount <= 0)
|
|
135
141
|
return null;
|
|
136
|
-
return (React.createElement("div", { className: "
|
|
137
|
-
this.
|
|
138
|
-
.
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
+
return (React.createElement("div", { className: "uifw-dialog-dialogManagerBase_renderer", ref: this._handleRefSet },
|
|
143
|
+
React.createElement(ThemeProvider, { portalContainer: this.state.renderer }, this.state.parentDocument &&
|
|
144
|
+
this.props.dialogManager.dialogs
|
|
145
|
+
.filter((info) => info.parentDocument === this.state.parentDocument)
|
|
146
|
+
.map((info) => {
|
|
147
|
+
return (React.createElement(React.Fragment, { key: info.id }, info.reactNode));
|
|
148
|
+
}))));
|
|
142
149
|
}
|
|
143
150
|
componentDidMount() {
|
|
144
151
|
this.props.dialogManager.onDialogChangedEvent.addListener(this._handleDialogChangedEvent);
|
|
@@ -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 type { BeUiEvent } from \"@itwin/core-bentley\";\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 * @deprecated in 4.13.x. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface DialogChangedEventArgs {\n dialogCount: number;\n activeDialog: React.ReactNode | undefined;\n}\n\n/** Dialog Changed Event class.\n * @public\n * @deprecated in 4.13.x. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line deprecation/deprecation\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 // eslint-disable-next-line deprecation/deprecation\n private _onDialogChangedEvent: BeUiEvent<DialogChangedEventArgs>;\n private static _topZIndex = ZINDEX_DEFAULT;\n\n // eslint-disable-next-line deprecation/deprecation\n constructor(onDialogChangedEvent: BeUiEvent<DialogChangedEventArgs>) {\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 {\n return DialogManagerBase._topZIndex;\n }\n\n public static set topZIndex(zIndex: number) {\n DialogManagerBase._topZIndex = zIndex;\n }\n public get dialogs() {\n return this._dialogs;\n }\n\n // eslint-disable-next-line deprecation/deprecation\n public get onDialogChangedEvent(): BeUiEvent<DialogChangedEventArgs> {\n return this._onDialogChangedEvent;\n }\n\n public static getDialogZIndexDefault(): number {\n const variable = \"--uicore-z-index-dialog\";\n const value = getCssVariableAsNumber(variable);\n\n if (!isNaN(value)) return value;\n\n Logger.logError(\n UiFramework.loggerCategory(this),\n `'${variable}' CSS variable not found`\n );\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(\n dialog: React.ReactNode,\n id?: string,\n parentDocument?: Document\n ): void {\n if (!id) id = `Dialog-${++DialogManagerBase._sId}`;\n\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) 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) 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({\n dialogCount: this.dialogCount,\n activeDialog: this.activeDialog,\n });\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<\n DialogRendererProps,\n DialogRendererState\n> {\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) return null;\n\n return (\n <div\n className=\"appui-react-dialog-render-container\"\n ref={this._handleRefSet}\n >\n {this.state.parentDocument &&\n this.props.dialogManager.dialogs\n .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 </div>\n );\n }\n\n public override componentDidMount(): void {\n this.props.dialogManager.onDialogChangedEvent.addListener(\n this._handleDialogChangedEvent\n );\n }\n\n public override componentWillUnmount(): void {\n this.props.dialogManager.onDialogChangedEvent.removeListener(\n this._handleDialogChangedEvent\n );\n }\n\n // eslint-disable-next-line deprecation/deprecation\n private _handleDialogChangedEvent = (_args: DialogChangedEventArgs) => {\n this.forceUpdate();\n };\n}\n"]}
|
|
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 \"./DialogManagerBase.scss\";\nimport * as React from \"react\";\nimport type { BeUiEvent } from \"@itwin/core-bentley\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport { UiEvent } from \"@itwin/appui-abstract\";\nimport { UiFramework } from \"../UiFramework\";\nimport { getCssVariableAsNumber } from \"@itwin/core-react\";\nimport { ThemeProvider } from \"@itwin/itwinui-react\";\n\n/** Dialog Stack Changed Event Args class.\n * @public\n * @deprecated in 4.13.x. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface DialogChangedEventArgs {\n dialogCount: number;\n activeDialog: React.ReactNode | undefined;\n}\n\n/** Dialog Changed Event class.\n * @public\n * @deprecated in 4.13.x. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line deprecation/deprecation\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 // eslint-disable-next-line deprecation/deprecation\n private _onDialogChangedEvent: BeUiEvent<DialogChangedEventArgs>;\n private static _topZIndex = ZINDEX_DEFAULT;\n\n // eslint-disable-next-line deprecation/deprecation\n constructor(onDialogChangedEvent: BeUiEvent<DialogChangedEventArgs>) {\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 {\n return DialogManagerBase._topZIndex;\n }\n\n public static set topZIndex(zIndex: number) {\n DialogManagerBase._topZIndex = zIndex;\n }\n public get dialogs() {\n return this._dialogs;\n }\n\n // eslint-disable-next-line deprecation/deprecation\n public get onDialogChangedEvent(): BeUiEvent<DialogChangedEventArgs> {\n return this._onDialogChangedEvent;\n }\n\n public static getDialogZIndexDefault(): number {\n const variable = \"--uicore-z-index-dialog\";\n const value = getCssVariableAsNumber(variable);\n\n if (!isNaN(value)) return value;\n\n Logger.logError(\n UiFramework.loggerCategory(this),\n `'${variable}' CSS variable not found`\n );\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(\n dialog: React.ReactNode,\n id?: string,\n parentDocument?: Document\n ): void {\n if (!id) id = `Dialog-${++DialogManagerBase._sId}`;\n\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) 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) 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({\n dialogCount: this.dialogCount,\n activeDialog: this.activeDialog,\n });\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\ninterface DialogRendererState {\n parentDocument: Document | undefined;\n renderer: HTMLElement | undefined;\n}\n/** DialogRenderer React component.\n * @internal\n */\nexport class DialogRendererBase extends React.PureComponent<\n DialogRendererProps,\n DialogRendererState\n> {\n /** @internal */\n public override readonly state: DialogRendererState = {\n parentDocument: undefined,\n renderer: undefined,\n };\n\n private _handleRefSet = (el: HTMLElement | null) => {\n this.setState({\n parentDocument: el?.ownerDocument ?? undefined,\n renderer: el ?? undefined,\n });\n };\n\n public override render(): React.ReactNode {\n if (this.props.dialogManager.dialogCount <= 0) return null;\n\n return (\n <div\n className=\"uifw-dialog-dialogManagerBase_renderer\"\n ref={this._handleRefSet}\n >\n <ThemeProvider portalContainer={this.state.renderer}>\n {this.state.parentDocument &&\n this.props.dialogManager.dialogs\n .filter(\n (info) => info.parentDocument === this.state.parentDocument\n )\n .map((info) => {\n return (\n <React.Fragment key={info.id}>\n {info.reactNode}\n </React.Fragment>\n );\n })}\n </ThemeProvider>\n </div>\n );\n }\n\n public override componentDidMount(): void {\n this.props.dialogManager.onDialogChangedEvent.addListener(\n this._handleDialogChangedEvent\n );\n }\n\n public override componentWillUnmount(): void {\n this.props.dialogManager.onDialogChangedEvent.removeListener(\n this._handleDialogChangedEvent\n );\n }\n\n // eslint-disable-next-line deprecation/deprecation\n private _handleDialogChangedEvent = (_args: DialogChangedEventArgs) => {\n this.forceUpdate();\n };\n}\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
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/z-index";
|
|
6
|
+
|
|
7
|
+
.uifw-dialog-dialogManagerBase_renderer {
|
|
8
|
+
position: relative;
|
|
9
|
+
|
|
10
|
+
@include uicore-z-index(dialog);
|
|
11
|
+
}
|
|
@@ -4,14 +4,14 @@
|
|
|
4
4
|
import * as React from "react";
|
|
5
5
|
import { Popover } from "@itwin/itwinui-react";
|
|
6
6
|
import { ButtonExpandIndicator } from "./ExpandIndicator";
|
|
7
|
-
import type
|
|
7
|
+
import { type CommonProps } from "@itwin/core-react";
|
|
8
8
|
type StatusBarPopoverProps = CommonProps & Pick<React.ComponentProps<typeof Popover>, "content" | "children" | "visible" | "onVisibleChange" | "closeOnOutsideClick">;
|
|
9
9
|
/** Popover component used in `StatusBar` component.
|
|
10
10
|
* This component should wrap the element that triggers the popover.
|
|
11
11
|
* @note Add the `StatusBarPopover.ExpandIndicator` to popover trigger buttons.
|
|
12
12
|
* @public
|
|
13
13
|
*/
|
|
14
|
-
export declare function StatusBarPopover(props: StatusBarPopoverProps): React.JSX.Element;
|
|
14
|
+
export declare function StatusBarPopover({ content, ...props }: StatusBarPopoverProps): React.JSX.Element;
|
|
15
15
|
/** Components used in `StatusBarPopover`.
|
|
16
16
|
* @public
|
|
17
17
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusBarPopover.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/statusbar/popup/StatusBarPopover.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"StatusBarPopover.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/statusbar/popup/StatusBarPopover.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,KAAK,WAAW,EAAgB,MAAM,mBAAmB,CAAC;AAEnE,KAAK,qBAAqB,GAAG,WAAW,GACtC,IAAI,CACF,KAAK,CAAC,cAAc,CAAC,OAAO,OAAO,CAAC,EAClC,SAAS,GACT,UAAU,GACV,SAAS,GACT,iBAAiB,GACjB,qBAAqB,CACxB,CAAC;AAEJ;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,qBAAqB,qBAsB5E;AAED;;GAEG;AACH,yBAAiB,gBAAgB,CAAC;IAChC;;OAEG;IACI,MAAM,eAAe,8BAAwB,CAAC;CACtD"}
|
|
@@ -8,14 +8,18 @@
|
|
|
8
8
|
import * as React from "react";
|
|
9
9
|
import { Popover } from "@itwin/itwinui-react";
|
|
10
10
|
import { ButtonExpandIndicator } from "./ExpandIndicator";
|
|
11
|
+
import { PopupContext } from "@itwin/core-react";
|
|
11
12
|
/** Popover component used in `StatusBar` component.
|
|
12
13
|
* This component should wrap the element that triggers the popover.
|
|
13
14
|
* @note Add the `StatusBarPopover.ExpandIndicator` to popover trigger buttons.
|
|
14
15
|
* @public
|
|
15
16
|
*/
|
|
16
|
-
export function StatusBarPopover(props) {
|
|
17
|
-
|
|
17
|
+
export function StatusBarPopover({ content, ...props }) {
|
|
18
|
+
const [portalTarget, setPortalTarget] = React.useState(undefined);
|
|
19
|
+
return (React.createElement(Popover, { ...props, content: React.createElement(PopupContext.Provider, { value: portalTarget }, content), placement: "top", applyBackground: true, middleware: {
|
|
18
20
|
offset: 4,
|
|
21
|
+
}, ref: (el) => {
|
|
22
|
+
setPortalTarget(el ?? undefined);
|
|
19
23
|
} }));
|
|
20
24
|
}
|
|
21
25
|
/** Components used in `StatusBarPopover`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusBarPopover.js","sourceRoot":"","sources":["../../../../../src/appui-react/statusbar/popup/StatusBarPopover.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"StatusBarPopover.js","sourceRoot":"","sources":["../../../../../src/appui-react/statusbar/popup/StatusBarPopover.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAoB,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAYnE;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAAE,OAAO,EAAE,GAAG,KAAK,EAAyB;IAC3E,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAEpD,SAAS,CAAC,CAAC;IACb,OAAO,CACL,oBAAC,OAAO,OACF,KAAK,EACT,OAAO,EACL,oBAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,IACvC,OAAO,CACc,EAE1B,SAAS,EAAC,KAAK,EACf,eAAe,QACf,UAAU,EAAE;YACV,MAAM,EAAE,CAAC;SACV,EACD,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE;YACV,eAAe,CAAC,EAAE,IAAI,SAAS,CAAC,CAAC;QACnC,CAAC,GACD,CACH,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,WAAiB,gBAAgB;IAC/B;;OAEG;IACU,gCAAe,GAAG,qBAAqB,CAAC;AACvD,CAAC,EALgB,gBAAgB,KAAhB,gBAAgB,QAKhC","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 StatusBar\n */\n\nimport * as React from \"react\";\nimport { Popover } from \"@itwin/itwinui-react\";\nimport { ButtonExpandIndicator } from \"./ExpandIndicator\";\nimport { type CommonProps, PopupContext } from \"@itwin/core-react\";\n\ntype StatusBarPopoverProps = CommonProps &\n Pick<\n React.ComponentProps<typeof Popover>,\n | \"content\"\n | \"children\"\n | \"visible\"\n | \"onVisibleChange\"\n | \"closeOnOutsideClick\"\n >;\n\n/** Popover component used in `StatusBar` component.\n * This component should wrap the element that triggers the popover.\n * @note Add the `StatusBarPopover.ExpandIndicator` to popover trigger buttons.\n * @public\n */\nexport function StatusBarPopover({ content, ...props }: StatusBarPopoverProps) {\n const [portalTarget, setPortalTarget] = React.useState<\n HTMLElement | undefined\n >(undefined);\n return (\n <Popover\n {...props}\n content={\n <PopupContext.Provider value={portalTarget}>\n {content}\n </PopupContext.Provider>\n }\n placement=\"top\"\n applyBackground\n middleware={{\n offset: 4,\n }}\n ref={(el) => {\n setPortalTarget(el ?? undefined);\n }}\n />\n );\n}\n\n/** Components used in `StatusBarPopover`.\n * @public\n */\nexport namespace StatusBarPopover {\n /** Indicator to be used in popover trigger buttons to show expandable content.\n * @public\n */\n export const ExpandIndicator = ButtonExpandIndicator;\n}\n"]}
|