@itwin/appui-react 5.18.0 → 5.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +27 -0
- package/lib/appui-react/UiFramework.js +20 -13
- package/lib/appui-react/UiFramework.js.map +1 -1
- package/lib/appui-react/accudraw/AccuDrawPopupManager.js +1 -1
- package/lib/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
- package/lib/appui-react/accudraw/AccuDrawWidget.js +1 -1
- package/lib/appui-react/accudraw/AccuDrawWidget.js.map +1 -1
- package/lib/appui-react/accudraw/Calculator.js +92 -98
- package/lib/appui-react/accudraw/Calculator.js.map +1 -1
- package/lib/appui-react/accudraw/CalculatorEngine.js +130 -129
- package/lib/appui-react/accudraw/CalculatorEngine.js.map +1 -1
- package/lib/appui-react/accudraw/CalculatorPopup.js +9 -12
- package/lib/appui-react/accudraw/CalculatorPopup.js.map +1 -1
- package/lib/appui-react/accudraw/FrameworkAccuDraw.js +39 -38
- package/lib/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
- package/lib/appui-react/accudraw/MenuButton.js +20 -20
- package/lib/appui-react/accudraw/MenuButton.js.map +1 -1
- package/lib/appui-react/accudraw/MenuButtonPopup.js +9 -12
- package/lib/appui-react/accudraw/MenuButtonPopup.js.map +1 -1
- package/lib/appui-react/backstage/BackstageItemsManager.js +5 -5
- package/lib/appui-react/backstage/BackstageItemsManager.js.map +1 -1
- package/lib/appui-react/backstage/BackstageManager.js +1 -3
- package/lib/appui-react/backstage/BackstageManager.js.map +1 -1
- package/lib/appui-react/backstage/InternalBackstageManager.js +3 -5
- package/lib/appui-react/backstage/InternalBackstageManager.js.map +1 -1
- package/lib/appui-react/childwindow/InternalChildWindowManager.js +30 -32
- package/lib/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
- package/lib/appui-react/configurableui/ActivityTracker.js +33 -33
- package/lib/appui-react/configurableui/ActivityTracker.js.map +1 -1
- package/lib/appui-react/configurableui/ConfigurableUiContent.scss +0 -1
- package/lib/appui-react/configurableui/ConfigurableUiControl.js +8 -0
- package/lib/appui-react/configurableui/ConfigurableUiControl.js.map +1 -1
- package/lib/appui-react/configurableui/InternalConfigurableUiManager.js +8 -8
- package/lib/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
- package/lib/appui-react/configurableui/TimeTracker.js +25 -27
- package/lib/appui-react/configurableui/TimeTracker.js.map +1 -1
- package/lib/appui-react/content/ContentControl.js +2 -1
- package/lib/appui-react/content/ContentControl.js.map +1 -1
- package/lib/appui-react/content/ContentGroup.js +8 -4
- package/lib/appui-react/content/ContentGroup.js.map +1 -1
- package/lib/appui-react/content/ContentLayout.js +47 -38
- package/lib/appui-react/content/ContentLayout.js.map +1 -1
- package/lib/appui-react/content/IModelViewport.js +28 -23
- package/lib/appui-react/content/IModelViewport.js.map +1 -1
- package/lib/appui-react/content/InternalContentLayoutManager.js +1 -1
- package/lib/appui-react/content/InternalContentLayoutManager.js.map +1 -1
- package/lib/appui-react/content/InternalContentViewManager.js +9 -8
- package/lib/appui-react/content/InternalContentViewManager.js.map +1 -1
- package/lib/appui-react/content/StandardContentLayouts.js +141 -141
- package/lib/appui-react/content/StandardContentLayouts.js.map +1 -1
- package/lib/appui-react/content/ViewportContentControl.js +25 -22
- package/lib/appui-react/content/ViewportContentControl.js.map +1 -1
- package/lib/appui-react/cursor/CursorInformation.js +7 -6
- package/lib/appui-react/cursor/CursorInformation.js.map +1 -1
- package/lib/appui-react/cursor/cursorpopup/CursorPopup.js +9 -9
- package/lib/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
- package/lib/appui-react/cursor/cursorpopup/CursorPopupManager.js +7 -7
- package/lib/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
- package/lib/appui-react/dialog/DialogManagerBase.js +18 -19
- package/lib/appui-react/dialog/DialogManagerBase.js.map +1 -1
- package/lib/appui-react/dialog/InternalContentDialogManager.js +7 -7
- package/lib/appui-react/dialog/InternalContentDialogManager.js.map +1 -1
- package/lib/appui-react/dialog/InternalModalDialogManager.js +4 -4
- package/lib/appui-react/dialog/InternalModalDialogManager.js.map +1 -1
- package/lib/appui-react/dialog/InternalModelessDialogManager.js +6 -6
- package/lib/appui-react/dialog/InternalModelessDialogManager.js.map +1 -1
- package/lib/appui-react/dialog/ModelessDialog.js +3 -3
- package/lib/appui-react/dialog/ModelessDialog.js.map +1 -1
- package/lib/appui-react/feedback/ElementTooltip.js +3 -1
- package/lib/appui-react/feedback/ElementTooltip.js.map +1 -1
- package/lib/appui-react/feedback/ValidationTextbox.js +25 -25
- package/lib/appui-react/feedback/ValidationTextbox.js.map +1 -1
- package/lib/appui-react/frontstage/FrontstageDef.js +28 -10
- package/lib/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/appui-react/frontstage/InternalFrontstageManager.js +96 -96
- package/lib/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
- package/lib/appui-react/frontstage/ModalFrontstage.js +5 -5
- package/lib/appui-react/frontstage/ModalFrontstage.js.map +1 -1
- package/lib/appui-react/frontstage/ModalSettingsStage.js +5 -4
- package/lib/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
- package/lib/appui-react/frontstage/StandardFrontstageProvider.js +1 -0
- package/lib/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
- package/lib/appui-react/keyboardshortcut/InternalKeyboardShortcut.js +22 -22
- package/lib/appui-react/keyboardshortcut/InternalKeyboardShortcut.js.map +1 -1
- package/lib/appui-react/keyboardshortcut/KeyboardShortcut.js +11 -9
- package/lib/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
- package/lib/appui-react/keyboardshortcut/KeyboardShortcutMenu.js +17 -20
- package/lib/appui-react/keyboardshortcut/KeyboardShortcutMenu.js.map +1 -1
- package/lib/appui-react/layout/backstage/Backstage.js +11 -14
- package/lib/appui-react/layout/backstage/Backstage.js.map +1 -1
- package/lib/appui-react/layout/base/DragManager.js +6 -7
- package/lib/appui-react/layout/base/DragManager.js.map +1 -1
- package/lib/appui-react/layout/base/SafeAreaInsets.js +8 -8
- package/lib/appui-react/layout/base/SafeAreaInsets.js.map +1 -1
- package/lib/appui-react/layout/popup/Tooltip.js +8 -11
- package/lib/appui-react/layout/popup/Tooltip.js.map +1 -1
- package/lib/appui-react/layout/state/NineZoneStateReducer.d.ts.map +1 -1
- package/lib/appui-react/layout/state/NineZoneStateReducer.js +8 -4
- package/lib/appui-react/layout/state/NineZoneStateReducer.js.map +1 -1
- package/lib/appui-react/layout/widget/Overflow.d.ts.map +1 -1
- package/lib/appui-react/layout/widget/Overflow.js +11 -17
- package/lib/appui-react/layout/widget/Overflow.js.map +1 -1
- package/lib/appui-react/layout/widget/Overflow.scss +3 -48
- package/lib/appui-react/layout/widget/Tab.d.ts.map +1 -1
- package/lib/appui-react/layout/widget/Tab.js +7 -5
- package/lib/appui-react/layout/widget/Tab.js.map +1 -1
- package/lib/appui-react/messages/InputField.js +21 -24
- package/lib/appui-react/messages/InputField.js.map +1 -1
- package/lib/appui-react/messages/MessageManager.js +39 -38
- package/lib/appui-react/messages/MessageManager.js.map +1 -1
- package/lib/appui-react/messages/Pointer.js +38 -38
- package/lib/appui-react/messages/Pointer.js.map +1 -1
- package/lib/appui-react/messages/ReactNotifyMessageDetails.js +6 -0
- package/lib/appui-react/messages/ReactNotifyMessageDetails.js.map +1 -1
- package/lib/appui-react/messages/StatusMessageManager.js +2 -4
- package/lib/appui-react/messages/StatusMessageManager.js.map +1 -1
- package/lib/appui-react/navigationaids/CubeNavigationAidControl.js +1 -1
- package/lib/appui-react/navigationaids/CubeNavigationAidControl.js.map +1 -1
- package/lib/appui-react/navigationaids/DrawingNavigationAidControl.js +1 -1
- package/lib/appui-react/navigationaids/DrawingNavigationAidControl.js.map +1 -1
- package/lib/appui-react/navigationaids/NavigationAidControl.js +1 -0
- package/lib/appui-react/navigationaids/NavigationAidControl.js.map +1 -1
- package/lib/appui-react/navigationaids/SheetNavigationAid.js +55 -54
- package/lib/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
- package/lib/appui-react/navigationaids/SheetsModalFrontstage.js +22 -20
- package/lib/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
- package/lib/appui-react/navigationaids/StandardRotationNavigationAid.js +15 -14
- package/lib/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
- package/lib/appui-react/pickers/ListPicker.js +28 -28
- package/lib/appui-react/pickers/ListPicker.js.map +1 -1
- package/lib/appui-react/pickers/ViewSelector.js +87 -86
- package/lib/appui-react/pickers/ViewSelector.js.map +1 -1
- package/lib/appui-react/popup/CardPopup.js +18 -21
- package/lib/appui-react/popup/CardPopup.js.map +1 -1
- package/lib/appui-react/popup/HTMLElementPopup.js +9 -12
- package/lib/appui-react/popup/HTMLElementPopup.js.map +1 -1
- package/lib/appui-react/popup/InputEditorPopup.js +18 -20
- package/lib/appui-react/popup/InputEditorPopup.js.map +1 -1
- package/lib/appui-react/popup/PopupManager.js +22 -25
- package/lib/appui-react/popup/PopupManager.js.map +1 -1
- package/lib/appui-react/popup/ToolSettingsPopup.js +17 -17
- package/lib/appui-react/popup/ToolSettingsPopup.js.map +1 -1
- package/lib/appui-react/popup/ToolbarPopup.js +18 -21
- package/lib/appui-react/popup/ToolbarPopup.js.map +1 -1
- package/lib/appui-react/redux/ReducerRegistry.js +2 -0
- package/lib/appui-react/redux/ReducerRegistry.js.map +1 -1
- package/lib/appui-react/redux/StateManager.js +4 -1
- package/lib/appui-react/redux/StateManager.js.map +1 -1
- package/lib/appui-react/selection/HideIsolateEmphasizeManager.js +7 -3
- package/lib/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
- package/lib/appui-react/shared/ActionButtonItemDef.js +13 -6
- package/lib/appui-react/shared/ActionButtonItemDef.js.map +1 -1
- package/lib/appui-react/shared/CommandItemDef.js +3 -3
- package/lib/appui-react/shared/CommandItemDef.js.map +1 -1
- package/lib/appui-react/shared/CustomItemDef.js +4 -2
- package/lib/appui-react/shared/CustomItemDef.js.map +1 -1
- package/lib/appui-react/shared/ItemDefBase.js +13 -5
- package/lib/appui-react/shared/ItemDefBase.js.map +1 -1
- package/lib/appui-react/shared/MenuItem.js +6 -1
- package/lib/appui-react/shared/MenuItem.js.map +1 -1
- package/lib/appui-react/shared/ToolItemDef.js +1 -1
- package/lib/appui-react/shared/ToolItemDef.js.map +1 -1
- package/lib/appui-react/stagepanels/StagePanelDef.js +4 -3
- package/lib/appui-react/stagepanels/StagePanelDef.js.map +1 -1
- package/lib/appui-react/statusbar/StatusBarItemsManager.js +5 -5
- package/lib/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
- package/lib/appui-react/statusfields/ViewAttributes.js +16 -16
- package/lib/appui-react/statusfields/ViewAttributes.js.map +1 -1
- package/lib/appui-react/statusfields/tileloading/TileLoadingIndicator.js +35 -33
- package/lib/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
- package/lib/appui-react/syncui/InternalSyncUiEventDispatcher.js +7 -0
- package/lib/appui-react/syncui/InternalSyncUiEventDispatcher.js.map +1 -1
- package/lib/appui-react/syncui/SyncUiEventDispatcher.js +4 -3
- package/lib/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
- package/lib/appui-react/timeline/AnalysisAnimationProvider.js +9 -8
- package/lib/appui-react/timeline/AnalysisAnimationProvider.js.map +1 -1
- package/lib/appui-react/timeline/ScheduleAnimationProvider.js +13 -12
- package/lib/appui-react/timeline/ScheduleAnimationProvider.js.map +1 -1
- package/lib/appui-react/timeline/SolarTimelineDataProvider.js +6 -5
- package/lib/appui-react/timeline/SolarTimelineDataProvider.js.map +1 -1
- package/lib/appui-react/toolbar/GroupItem.js +11 -5
- package/lib/appui-react/toolbar/GroupItem.js.map +1 -1
- package/lib/appui-react/toolbar/ToolbarItemsManager.js +7 -7
- package/lib/appui-react/toolbar/ToolbarItemsManager.js.map +1 -1
- package/lib/appui-react/tools/FrameworkToolAdmin.js +5 -1
- package/lib/appui-react/tools/FrameworkToolAdmin.js.map +1 -1
- package/lib/appui-react/tools/KeyinPaletteTools.js +2 -2
- package/lib/appui-react/tools/KeyinPaletteTools.js.map +1 -1
- package/lib/appui-react/tools/OpenSettingsTool.js +2 -2
- package/lib/appui-react/tools/OpenSettingsTool.js.map +1 -1
- package/lib/appui-react/tools/RestoreLayoutTool.js +4 -4
- package/lib/appui-react/tools/RestoreLayoutTool.js.map +1 -1
- package/lib/appui-react/tools/ToolSettingsTools.js +2 -2
- package/lib/appui-react/tools/ToolSettingsTools.js.map +1 -1
- package/lib/appui-react/toolsettings/DefaultToolSettingsProvider.js +15 -18
- package/lib/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
- package/lib/appui-react/toolsettings/InternalToolSettingsManager.js +8 -8
- package/lib/appui-react/toolsettings/InternalToolSettingsManager.js.map +1 -1
- package/lib/appui-react/toolsettings/ToolInformation.js +2 -0
- package/lib/appui-react/toolsettings/ToolInformation.js.map +1 -1
- package/lib/appui-react/toolsettings/ToolUiProvider.js +3 -0
- package/lib/appui-react/toolsettings/ToolUiProvider.js.map +1 -1
- package/lib/appui-react/ui-items-provider/AbstractUiItemsManager.js +1 -0
- package/lib/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
- package/lib/appui-react/ui-items-provider/BaseUiItemsProvider.js +2 -0
- package/lib/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -1
- package/lib/appui-react/ui-items-provider/StandardContentToolsProvider.js +1 -0
- package/lib/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
- package/lib/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +1 -0
- package/lib/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
- package/lib/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +1 -0
- package/lib/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
- package/lib/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js +1 -0
- package/lib/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -1
- package/lib/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +1 -0
- package/lib/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
- package/lib/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +1 -0
- package/lib/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
- package/lib/appui-react/ui-items-provider/UiItemsManager.js +3 -3
- package/lib/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
- package/lib/appui-react/uiadmin/FrameworkUiAdmin.js +1 -4
- package/lib/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
- package/lib/appui-react/uiprovider/ComponentGenerator.js +2 -0
- package/lib/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
- package/lib/appui-react/uistate/AppUiSettings.js +41 -33
- package/lib/appui-react/uistate/AppUiSettings.js.map +1 -1
- package/lib/appui-react/utils/InternalUiShowHideManager.js +13 -14
- package/lib/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
- package/lib/appui-react/widgets/StatusBarWidgetComposerControl.js +2 -5
- package/lib/appui-react/widgets/StatusBarWidgetComposerControl.js.map +1 -1
- package/lib/appui-react/widgets/WidgetControl.js +2 -0
- package/lib/appui-react/widgets/WidgetControl.js.map +1 -1
- package/lib/appui-react/widgets/WidgetDef.js +28 -7
- package/lib/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/appui-react/widgets/WidgetHost.js +4 -4
- package/lib/appui-react/widgets/WidgetHost.js.map +1 -1
- package/lib/appui-react/widgets/WidgetManager.js +5 -7
- package/lib/appui-react/widgets/WidgetManager.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.scss +0 -1
- package/lib/cjs/appui-react/layout/widget/Overflow.scss +3 -48
- package/lib/esm/appui-react/configurableui/ConfigurableUiContent.scss +0 -1
- package/lib/esm/appui-react/layout/widget/Overflow.scss +3 -48
- package/package.json +10 -11
- package/lib/appui-react/layout/widget/Menu.d.ts +0 -16
- package/lib/appui-react/layout/widget/Menu.d.ts.map +0 -1
- package/lib/appui-react/layout/widget/Menu.js +0 -21
- package/lib/appui-react/layout/widget/Menu.js.map +0 -1
- package/lib/appui-react/layout/widget/Menu.scss +0 -12
- package/lib/cjs/appui-react/layout/widget/Menu.scss +0 -12
- package/lib/esm/appui-react/layout/widget/Menu.scss +0 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternalContentDialogManager.js","sourceRoot":"","sources":["../../../src/appui-react/dialog/InternalContentDialogManager.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Dialog\n */\n\nimport type * as React from \"react\";\nimport { BeUiEvent, Logger } from \"@itwin/core-bentley\";\nimport { getCssVariableAsNumber } from \"@itwin/core-react\";\nimport { UiFramework } from \"../UiFramework.js\";\nimport type { DialogChangedEventArgs } from \"./DialogManagerBase.js\";\nimport { DialogManagerBase } from \"./DialogManagerBase.js\";\nimport {\n IModelApp,\n NotifyMessageDetails,\n OutputMessagePriority,\n OutputMessageType,\n} from \"@itwin/core-frontend\";\nimport type { ContentDialogInfo } from \"../framework/FrameworkContent.js\";\n\n/** Used if the 'dialog' z-index CSS variable cannot be read */\nconst CONTENT_DIALOG_ZINDEX_DEFAULT = 2000;\n\n/** Content Dialog Manager class displays and manages multiple modeless dialogs\n * @internal\n */\nexport class InternalContentDialogManager {\n /** Content Dialog Changed Event */\n public static readonly onContentDialogChangedEvent =\n new BeUiEvent<DialogChangedEventArgs>(); // eslint-disable-line @typescript-eslint/no-deprecated\n\n /** @internal */\n public static readonly dialogManager: DialogManagerBase =\n new DialogManagerBase(\n InternalContentDialogManager.onContentDialogChangedEvent\n );\n\n /** Get the array of modeless dialogs */\n public static get dialogs() {\n return InternalContentDialogManager.dialogManager.dialogs;\n }\n\n private static _dialogMap = new Map<string, ContentDialogInfo>();\n private static _idArray = new Array<string>();\n\n private static _topZIndex = CONTENT_DIALOG_ZINDEX_DEFAULT;\n\n /** Initialize the modeless dialog manager.\n * @internal\n */\n public static initialize(): void {\n InternalContentDialogManager._topZIndex =\n InternalContentDialogManager.getDialogZIndexDefault();\n }\n\n private static getDialogZIndexDefault(): number {\n const variable = \"--uicore-z-index-view-content-dialog\";\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const value = getCssVariableAsNumber(variable);\n\n if (!isNaN(value)) return value;\n\n Logger.logError(\n UiFramework.loggerCategory(\"InternalContentDialogManager\"),\n `'${variable}' CSS variable not found`\n );\n return CONTENT_DIALOG_ZINDEX_DEFAULT;\n }\n\n /** Open a modeless dialog\n * @param dialog The Dialog to open\n * @param id The id of the Dialog to open\n */\n public static open(\n dialog: React.ReactNode,\n id: string,\n parentDocument = document\n ): void {\n const dialogInfo = InternalContentDialogManager._dialogMap.get(id);\n if (dialogInfo) {\n const message = `Dialog with id of '${id}' already opened`;\n Logger.logInfo(\n UiFramework.loggerCategory(\"InternalContentDialogManager\"),\n `openDialog: ${message}`\n );\n IModelApp.notifications.outputMessage(\n new NotifyMessageDetails(\n OutputMessagePriority.Info,\n message,\n undefined,\n OutputMessageType.Toast\n )\n );\n return;\n }\n InternalContentDialogManager._dialogMap.set(id, {\n reactNode: dialog,\n zIndex: ++InternalContentDialogManager._topZIndex,\n parentDocument,\n });\n InternalContentDialogManager._idArray.push(id);\n InternalContentDialogManager.dialogManager.openDialog(\n dialog,\n id,\n parentDocument\n );\n }\n\n /** Close a modeless dialog\n * @param id The id of the Dialog to close.\n */\n public static close(id: string): void {\n const dialogInfo = InternalContentDialogManager._dialogMap.get(id);\n if (dialogInfo) {\n InternalContentDialogManager.dialogManager.removeDialog(\n dialogInfo.reactNode\n );\n InternalContentDialogManager._dialogMap.delete(id);\n const index = InternalContentDialogManager._idArray.indexOf(id);\n if (index >= 0) InternalContentDialogManager._idArray.splice(index, 1);\n\n if (InternalContentDialogManager.active === undefined)\n InternalContentDialogManager._topZIndex =\n InternalContentDialogManager.getDialogZIndexDefault();\n\n this.update();\n } else {\n Logger.logError(\n UiFramework.loggerCategory(\"InternalContentDialogManager\"),\n `closeDialog: Could not find dialog with id of '${id}'`\n );\n }\n }\n\n /** @internal */\n public static closeAll(): void {\n InternalContentDialogManager.dialogManager.closeAll();\n InternalContentDialogManager._dialogMap.clear();\n InternalContentDialogManager._idArray = [];\n InternalContentDialogManager._topZIndex =\n InternalContentDialogManager.getDialogZIndexDefault();\n }\n\n /** Update the dialogs */\n public static update(): void {\n InternalContentDialogManager.dialogManager.update();\n }\n\n /** Get the active modeless dialog */\n public static get active(): React.ReactNode | undefined {\n if (InternalContentDialogManager._idArray.length > 0) {\n const id =\n InternalContentDialogManager._idArray[\n InternalContentDialogManager._idArray.length - 1\n ];\n const dialogInfo = InternalContentDialogManager._dialogMap.get(id);\n if (dialogInfo) return dialogInfo.reactNode;\n }\n\n return undefined;\n }\n\n /** Get the count of modeless dialogs */\n public static get count(): number {\n return InternalContentDialogManager.dialogManager.dialogCount;\n }\n\n /** Handle a pointer down event on a modeless dialog */\n public static handlePointerDownEvent(\n _event: React.PointerEvent,\n id: string,\n updateFunc: () => void\n ): void {\n const dialogInfo = InternalContentDialogManager._dialogMap.get(id);\n if (\n dialogInfo &&\n dialogInfo.reactNode !== InternalContentDialogManager.active\n ) {\n dialogInfo.zIndex = ++InternalContentDialogManager._topZIndex;\n\n InternalContentDialogManager._idArray.splice(\n InternalContentDialogManager._idArray.indexOf(id),\n 1\n );\n InternalContentDialogManager._idArray.push(id);\n\n updateFunc();\n this.update();\n }\n }\n\n /** Get the z-index for a modeless dialog */\n public static getZIndex(id: string): number {\n let zIndex = InternalContentDialogManager.getDialogZIndexDefault();\n const dialogInfo = InternalContentDialogManager._dialogMap.get(id);\n if (dialogInfo) zIndex = dialogInfo.zIndex;\n return zIndex;\n }\n\n public static getInfo(id: string): ContentDialogInfo | undefined {\n return InternalContentDialogManager._dialogMap.get(id);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"InternalContentDialogManager.js","sourceRoot":"","sources":["../../../src/appui-react/dialog/InternalContentDialogManager.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EACL,SAAS,EACT,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAG9B,+DAA+D;AAC/D,MAAM,6BAA6B,GAAG,IAAI,CAAC;AAE3C;;GAEG;AACH,MAAM,OAAO,4BAA4B;IACvC,mCAAmC;IAC5B,MAAM,CAAU,2BAA2B,GAChD,IAAI,SAAS,EAA0B,CAAC,CAAC,uDAAuD;IAElG,gBAAgB;IACT,MAAM,CAAU,aAAa,GAClC,IAAI,iBAAiB,CACnB,4BAA4B,CAAC,2BAA2B,CACzD,CAAC;IAEJ,wCAAwC;IACjC,MAAM,KAAK,OAAO;QACvB,OAAO,4BAA4B,CAAC,aAAa,CAAC,OAAO,CAAC;IAC5D,CAAC;IAEO,MAAM,CAAC,UAAU,GAAG,IAAI,GAAG,EAA6B,CAAC;IACzD,MAAM,CAAC,QAAQ,GAAG,IAAI,KAAK,EAAU,CAAC;IAEtC,MAAM,CAAC,UAAU,GAAG,6BAA6B,CAAC;IAE1D;;OAEG;IACI,MAAM,CAAC,UAAU;QACtB,4BAA4B,CAAC,UAAU;YACrC,4BAA4B,CAAC,sBAAsB,EAAE,CAAC;IAC1D,CAAC;IAEO,MAAM,CAAC,sBAAsB;QACnC,MAAM,QAAQ,GAAG,sCAAsC,CAAC;QACxD,4DAA4D;QAC5D,MAAM,KAAK,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAE/C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAEhC,MAAM,CAAC,QAAQ,CACb,WAAW,CAAC,cAAc,CAAC,8BAA8B,CAAC,EAC1D,IAAI,QAAQ,0BAA0B,CACvC,CAAC;QACF,OAAO,6BAA6B,CAAC;IACvC,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,IAAI,CAChB,MAAuB,EACvB,EAAU,EACV,cAAc,GAAG,QAAQ;QAEzB,MAAM,UAAU,GAAG,4BAA4B,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnE,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,sBAAsB,EAAE,kBAAkB,CAAC;YAC3D,MAAM,CAAC,OAAO,CACZ,WAAW,CAAC,cAAc,CAAC,8BAA8B,CAAC,EAC1D,eAAe,OAAO,EAAE,CACzB,CAAC;YACF,SAAS,CAAC,aAAa,CAAC,aAAa,CACnC,IAAI,oBAAoB,CACtB,qBAAqB,CAAC,IAAI,EAC1B,OAAO,EACP,SAAS,EACT,iBAAiB,CAAC,KAAK,CACxB,CACF,CAAC;YACF,OAAO;QACT,CAAC;QACD,4BAA4B,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE;YAC9C,SAAS,EAAE,MAAM;YACjB,MAAM,EAAE,EAAE,4BAA4B,CAAC,UAAU;YACjD,cAAc;SACf,CAAC,CAAC;QACH,4BAA4B,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/C,4BAA4B,CAAC,aAAa,CAAC,UAAU,CACnD,MAAM,EACN,EAAE,EACF,cAAc,CACf,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,EAAU;QAC5B,MAAM,UAAU,GAAG,4BAA4B,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnE,IAAI,UAAU,EAAE,CAAC;YACf,4BAA4B,CAAC,aAAa,CAAC,YAAY,CACrD,UAAU,CAAC,SAAS,CACrB,CAAC;YACF,4BAA4B,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACnD,MAAM,KAAK,GAAG,4BAA4B,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAChE,IAAI,KAAK,IAAI,CAAC;gBAAE,4BAA4B,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAEvE,IAAI,4BAA4B,CAAC,MAAM,KAAK,SAAS;gBACnD,4BAA4B,CAAC,UAAU;oBACrC,4BAA4B,CAAC,sBAAsB,EAAE,CAAC;YAE1D,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,QAAQ,CACb,WAAW,CAAC,cAAc,CAAC,8BAA8B,CAAC,EAC1D,kDAAkD,EAAE,GAAG,CACxD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,QAAQ;QACpB,4BAA4B,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;QACtD,4BAA4B,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAChD,4BAA4B,CAAC,QAAQ,GAAG,EAAE,CAAC;QAC3C,4BAA4B,CAAC,UAAU;YACrC,4BAA4B,CAAC,sBAAsB,EAAE,CAAC;IAC1D,CAAC;IAED,yBAAyB;IAClB,MAAM,CAAC,MAAM;QAClB,4BAA4B,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;IACtD,CAAC;IAED,qCAAqC;IAC9B,MAAM,KAAK,MAAM;QACtB,IAAI,4BAA4B,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrD,MAAM,EAAE,GACN,4BAA4B,CAAC,QAAQ,CACnC,4BAA4B,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CACjD,CAAC;YACJ,MAAM,UAAU,GAAG,4BAA4B,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACnE,IAAI,UAAU;gBAAE,OAAO,UAAU,CAAC,SAAS,CAAC;QAC9C,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,wCAAwC;IACjC,MAAM,KAAK,KAAK;QACrB,OAAO,4BAA4B,CAAC,aAAa,CAAC,WAAW,CAAC;IAChE,CAAC;IAED,uDAAuD;IAChD,MAAM,CAAC,sBAAsB,CAClC,MAA0B,EAC1B,EAAU,EACV,UAAsB;QAEtB,MAAM,UAAU,GAAG,4BAA4B,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnE,IACE,UAAU;YACV,UAAU,CAAC,SAAS,KAAK,4BAA4B,CAAC,MAAM,EAC5D,CAAC;YACD,UAAU,CAAC,MAAM,GAAG,EAAE,4BAA4B,CAAC,UAAU,CAAC;YAE9D,4BAA4B,CAAC,QAAQ,CAAC,MAAM,CAC1C,4BAA4B,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EACjD,CAAC,CACF,CAAC;YACF,4BAA4B,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAE/C,UAAU,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED,4CAA4C;IACrC,MAAM,CAAC,SAAS,CAAC,EAAU;QAChC,IAAI,MAAM,GAAG,4BAA4B,CAAC,sBAAsB,EAAE,CAAC;QACnE,MAAM,UAAU,GAAG,4BAA4B,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnE,IAAI,UAAU;YAAE,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QAC3C,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,EAAU;QAC9B,OAAO,4BAA4B,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Dialog\n */\n\nimport type * as React from \"react\";\nimport { BeUiEvent, Logger } from \"@itwin/core-bentley\";\nimport { getCssVariableAsNumber } from \"@itwin/core-react\";\nimport { UiFramework } from \"../UiFramework.js\";\nimport type { DialogChangedEventArgs } from \"./DialogManagerBase.js\";\nimport { DialogManagerBase } from \"./DialogManagerBase.js\";\nimport {\n IModelApp,\n NotifyMessageDetails,\n OutputMessagePriority,\n OutputMessageType,\n} from \"@itwin/core-frontend\";\nimport type { ContentDialogInfo } from \"../framework/FrameworkContent.js\";\n\n/** Used if the 'dialog' z-index CSS variable cannot be read */\nconst CONTENT_DIALOG_ZINDEX_DEFAULT = 2000;\n\n/** Content Dialog Manager class displays and manages multiple modeless dialogs\n * @internal\n */\nexport class InternalContentDialogManager {\n /** Content Dialog Changed Event */\n public static readonly onContentDialogChangedEvent =\n new BeUiEvent<DialogChangedEventArgs>(); // eslint-disable-line @typescript-eslint/no-deprecated\n\n /** @internal */\n public static readonly dialogManager: DialogManagerBase =\n new DialogManagerBase(\n InternalContentDialogManager.onContentDialogChangedEvent\n );\n\n /** Get the array of modeless dialogs */\n public static get dialogs() {\n return InternalContentDialogManager.dialogManager.dialogs;\n }\n\n private static _dialogMap = new Map<string, ContentDialogInfo>();\n private static _idArray = new Array<string>();\n\n private static _topZIndex = CONTENT_DIALOG_ZINDEX_DEFAULT;\n\n /** Initialize the modeless dialog manager.\n * @internal\n */\n public static initialize(): void {\n InternalContentDialogManager._topZIndex =\n InternalContentDialogManager.getDialogZIndexDefault();\n }\n\n private static getDialogZIndexDefault(): number {\n const variable = \"--uicore-z-index-view-content-dialog\";\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const value = getCssVariableAsNumber(variable);\n\n if (!isNaN(value)) return value;\n\n Logger.logError(\n UiFramework.loggerCategory(\"InternalContentDialogManager\"),\n `'${variable}' CSS variable not found`\n );\n return CONTENT_DIALOG_ZINDEX_DEFAULT;\n }\n\n /** Open a modeless dialog\n * @param dialog The Dialog to open\n * @param id The id of the Dialog to open\n */\n public static open(\n dialog: React.ReactNode,\n id: string,\n parentDocument = document\n ): void {\n const dialogInfo = InternalContentDialogManager._dialogMap.get(id);\n if (dialogInfo) {\n const message = `Dialog with id of '${id}' already opened`;\n Logger.logInfo(\n UiFramework.loggerCategory(\"InternalContentDialogManager\"),\n `openDialog: ${message}`\n );\n IModelApp.notifications.outputMessage(\n new NotifyMessageDetails(\n OutputMessagePriority.Info,\n message,\n undefined,\n OutputMessageType.Toast\n )\n );\n return;\n }\n InternalContentDialogManager._dialogMap.set(id, {\n reactNode: dialog,\n zIndex: ++InternalContentDialogManager._topZIndex,\n parentDocument,\n });\n InternalContentDialogManager._idArray.push(id);\n InternalContentDialogManager.dialogManager.openDialog(\n dialog,\n id,\n parentDocument\n );\n }\n\n /** Close a modeless dialog\n * @param id The id of the Dialog to close.\n */\n public static close(id: string): void {\n const dialogInfo = InternalContentDialogManager._dialogMap.get(id);\n if (dialogInfo) {\n InternalContentDialogManager.dialogManager.removeDialog(\n dialogInfo.reactNode\n );\n InternalContentDialogManager._dialogMap.delete(id);\n const index = InternalContentDialogManager._idArray.indexOf(id);\n if (index >= 0) InternalContentDialogManager._idArray.splice(index, 1);\n\n if (InternalContentDialogManager.active === undefined)\n InternalContentDialogManager._topZIndex =\n InternalContentDialogManager.getDialogZIndexDefault();\n\n this.update();\n } else {\n Logger.logError(\n UiFramework.loggerCategory(\"InternalContentDialogManager\"),\n `closeDialog: Could not find dialog with id of '${id}'`\n );\n }\n }\n\n /** @internal */\n public static closeAll(): void {\n InternalContentDialogManager.dialogManager.closeAll();\n InternalContentDialogManager._dialogMap.clear();\n InternalContentDialogManager._idArray = [];\n InternalContentDialogManager._topZIndex =\n InternalContentDialogManager.getDialogZIndexDefault();\n }\n\n /** Update the dialogs */\n public static update(): void {\n InternalContentDialogManager.dialogManager.update();\n }\n\n /** Get the active modeless dialog */\n public static get active(): React.ReactNode | undefined {\n if (InternalContentDialogManager._idArray.length > 0) {\n const id =\n InternalContentDialogManager._idArray[\n InternalContentDialogManager._idArray.length - 1\n ];\n const dialogInfo = InternalContentDialogManager._dialogMap.get(id);\n if (dialogInfo) return dialogInfo.reactNode;\n }\n\n return undefined;\n }\n\n /** Get the count of modeless dialogs */\n public static get count(): number {\n return InternalContentDialogManager.dialogManager.dialogCount;\n }\n\n /** Handle a pointer down event on a modeless dialog */\n public static handlePointerDownEvent(\n _event: React.PointerEvent,\n id: string,\n updateFunc: () => void\n ): void {\n const dialogInfo = InternalContentDialogManager._dialogMap.get(id);\n if (\n dialogInfo &&\n dialogInfo.reactNode !== InternalContentDialogManager.active\n ) {\n dialogInfo.zIndex = ++InternalContentDialogManager._topZIndex;\n\n InternalContentDialogManager._idArray.splice(\n InternalContentDialogManager._idArray.indexOf(id),\n 1\n );\n InternalContentDialogManager._idArray.push(id);\n\n updateFunc();\n this.update();\n }\n }\n\n /** Get the z-index for a modeless dialog */\n public static getZIndex(id: string): number {\n let zIndex = InternalContentDialogManager.getDialogZIndexDefault();\n const dialogInfo = InternalContentDialogManager._dialogMap.get(id);\n if (dialogInfo) zIndex = dialogInfo.zIndex;\n return zIndex;\n }\n\n public static getInfo(id: string): ContentDialogInfo | undefined {\n return InternalContentDialogManager._dialogMap.get(id);\n }\n}\n"]}
|
|
@@ -11,6 +11,10 @@ import { BeUiEvent } from "@itwin/core-bentley";
|
|
|
11
11
|
* @internal
|
|
12
12
|
*/
|
|
13
13
|
export class InternalModalDialogManager {
|
|
14
|
+
/** Modal Dialog Changed Event */
|
|
15
|
+
static onModalDialogChangedEvent = new BeUiEvent(); // eslint-disable-line @typescript-eslint/no-deprecated
|
|
16
|
+
/** @internal */
|
|
17
|
+
static dialogManager = new DialogManagerBase(InternalModalDialogManager.onModalDialogChangedEvent);
|
|
14
18
|
/** Get the array of modal dialogs */
|
|
15
19
|
static get dialogs() {
|
|
16
20
|
return InternalModalDialogManager.dialogManager.dialogs;
|
|
@@ -46,8 +50,4 @@ export class InternalModalDialogManager {
|
|
|
46
50
|
return InternalModalDialogManager.dialogManager.dialogCount;
|
|
47
51
|
}
|
|
48
52
|
}
|
|
49
|
-
/** Modal Dialog Changed Event */
|
|
50
|
-
InternalModalDialogManager.onModalDialogChangedEvent = new BeUiEvent(); // eslint-disable-line @typescript-eslint/no-deprecated
|
|
51
|
-
/** @internal */
|
|
52
|
-
InternalModalDialogManager.dialogManager = new DialogManagerBase(InternalModalDialogManager.onModalDialogChangedEvent);
|
|
53
53
|
//# sourceMappingURL=InternalModalDialogManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternalModalDialogManager.js","sourceRoot":"","sources":["../../../src/appui-react/dialog/InternalModalDialogManager.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD;;GAEG;AACH,MAAM,OAAO,0BAA0B;
|
|
1
|
+
{"version":3,"file":"InternalModalDialogManager.js","sourceRoot":"","sources":["../../../src/appui-react/dialog/InternalModalDialogManager.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD;;GAEG;AACH,MAAM,OAAO,0BAA0B;IACrC,iCAAiC;IAC1B,MAAM,CAAU,yBAAyB,GAC9C,IAAI,SAAS,EAA0B,CAAC,CAAC,uDAAuD;IAElG,gBAAgB;IACT,MAAM,CAAU,aAAa,GAClC,IAAI,iBAAiB,CAAC,0BAA0B,CAAC,yBAAyB,CAAC,CAAC;IAE9E,qCAAqC;IAC9B,MAAM,KAAK,OAAO;QACvB,OAAO,0BAA0B,CAAC,aAAa,CAAC,OAAO,CAAC;IAC1D,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,IAAI,CAChB,MAAuB,EACvB,EAAW,EACX,cAAc,GAAG,QAAQ;QAEzB,0BAA0B,CAAC,aAAa,CAAC,UAAU,CACjD,MAAM,EACN,EAAE,EACF,cAAc,CACf,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,MAAwB;QAC1C,0BAA0B,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/D,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,QAAQ;QACpB,0BAA0B,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;IACtD,CAAC;IAED,yBAAyB;IAClB,MAAM,CAAC,MAAM;QAClB,0BAA0B,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;IACpD,CAAC;IAED,kCAAkC;IAC3B,MAAM,KAAK,MAAM;QACtB,OAAO,0BAA0B,CAAC,aAAa,CAAC,YAAY,CAAC;IAC/D,CAAC;IAED,qCAAqC;IAC9B,MAAM,KAAK,KAAK;QACrB,OAAO,0BAA0B,CAAC,aAAa,CAAC,WAAW,CAAC;IAC9D,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Dialog\n */\n\nimport type * as React from \"react\";\nimport type { DialogChangedEventArgs } from \"./DialogManagerBase.js\";\nimport { DialogManagerBase } from \"./DialogManagerBase.js\";\nimport { BeUiEvent } from \"@itwin/core-bentley\";\n\n/** Modal Dialog Manager class displays and manages multiple modal dialogs\n * @internal\n */\nexport class InternalModalDialogManager {\n /** Modal Dialog Changed Event */\n public static readonly onModalDialogChangedEvent =\n new BeUiEvent<DialogChangedEventArgs>(); // eslint-disable-line @typescript-eslint/no-deprecated\n\n /** @internal */\n public static readonly dialogManager: DialogManagerBase =\n new DialogManagerBase(InternalModalDialogManager.onModalDialogChangedEvent);\n\n /** Get the array of modal dialogs */\n public static get dialogs() {\n return InternalModalDialogManager.dialogManager.dialogs;\n }\n\n /** Open a modal dialog\n * @param dialog The Dialog to open\n * @param id The id of the Dialog. If one is not provided, an id is generated.\n * @param parentDocument The Document used to determine the owning window.\n */\n public static open(\n dialog: React.ReactNode,\n id?: string,\n parentDocument = document\n ): void {\n InternalModalDialogManager.dialogManager.openDialog(\n dialog,\n id,\n parentDocument\n );\n }\n\n /** Close a modal dialog\n * @param dialog The Dialog to open. If one is not specified, the active dialog will be closed.\n */\n public static close(dialog?: React.ReactNode): void {\n InternalModalDialogManager.dialogManager.closeDialog(dialog);\n }\n\n /** @internal */\n public static closeAll(): void {\n InternalModalDialogManager.dialogManager.closeAll();\n }\n\n /** Update the dialogs */\n public static update(): void {\n InternalModalDialogManager.dialogManager.update();\n }\n\n /** Get the active modal dialog */\n public static get active(): React.ReactNode | undefined {\n return InternalModalDialogManager.dialogManager.activeDialog;\n }\n\n /** Get the count of modal dialogs */\n public static get count(): number {\n return InternalModalDialogManager.dialogManager.dialogCount;\n }\n}\n"]}
|
|
@@ -13,10 +13,16 @@ import { IModelApp, NotifyMessageDetails, OutputMessagePriority, OutputMessageTy
|
|
|
13
13
|
* @internal
|
|
14
14
|
*/
|
|
15
15
|
export class InternalModelessDialogManager {
|
|
16
|
+
/** Modeless Dialog Changed Event */
|
|
17
|
+
static onModelessDialogChangedEvent = new BeUiEvent(); // eslint-disable-line @typescript-eslint/no-deprecated
|
|
18
|
+
/** @internal */
|
|
19
|
+
static dialogManager = new DialogManagerBase(InternalModelessDialogManager.onModelessDialogChangedEvent);
|
|
16
20
|
/** Get the array of modeless dialogs */
|
|
17
21
|
static get dialogs() {
|
|
18
22
|
return InternalModelessDialogManager.dialogManager.dialogs;
|
|
19
23
|
}
|
|
24
|
+
static _dialogMap = new Map();
|
|
25
|
+
static _idArray = new Array();
|
|
20
26
|
/** Initialize the modeless dialog manager
|
|
21
27
|
* @internal
|
|
22
28
|
*/
|
|
@@ -112,10 +118,4 @@ export class InternalModelessDialogManager {
|
|
|
112
118
|
return InternalModelessDialogManager._dialogMap.get(id);
|
|
113
119
|
}
|
|
114
120
|
}
|
|
115
|
-
/** Modeless Dialog Changed Event */
|
|
116
|
-
InternalModelessDialogManager.onModelessDialogChangedEvent = new BeUiEvent(); // eslint-disable-line @typescript-eslint/no-deprecated
|
|
117
|
-
/** @internal */
|
|
118
|
-
InternalModelessDialogManager.dialogManager = new DialogManagerBase(InternalModelessDialogManager.onModelessDialogChangedEvent);
|
|
119
|
-
InternalModelessDialogManager._dialogMap = new Map();
|
|
120
|
-
InternalModelessDialogManager._idArray = new Array();
|
|
121
121
|
//# sourceMappingURL=InternalModelessDialogManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternalModelessDialogManager.js","sourceRoot":"","sources":["../../../src/appui-react/dialog/InternalModelessDialogManager.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EACL,SAAS,EACT,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAG9B;;GAEG;AACH,MAAM,OAAO,6BAA6B;
|
|
1
|
+
{"version":3,"file":"InternalModelessDialogManager.js","sourceRoot":"","sources":["../../../src/appui-react/dialog/InternalModelessDialogManager.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Dialog\n */\n\nimport type * as React from \"react\";\nimport { BeUiEvent, Logger } from \"@itwin/core-bentley\";\nimport { UiFramework } from \"../UiFramework.js\";\nimport type { DialogChangedEventArgs } from \"./DialogManagerBase.js\";\nimport { DialogManagerBase } from \"./DialogManagerBase.js\";\nimport {\n IModelApp,\n NotifyMessageDetails,\n OutputMessagePriority,\n OutputMessageType,\n} from \"@itwin/core-frontend\";\nimport type { ModelessDialogInfo } from \"../framework/FrameworkDialogs.js\";\n\n/** Modeless Dialog Manager class displays and manages multiple modeless dialogs\n * @internal\n */\nexport class InternalModelessDialogManager {\n /** Modeless Dialog Changed Event */\n public static readonly onModelessDialogChangedEvent =\n new BeUiEvent<DialogChangedEventArgs>(); // eslint-disable-line @typescript-eslint/no-deprecated\n\n /** @internal */\n public static readonly dialogManager: DialogManagerBase =\n new DialogManagerBase(\n InternalModelessDialogManager.onModelessDialogChangedEvent\n );\n\n /** Get the array of modeless dialogs */\n public static get dialogs() {\n return InternalModelessDialogManager.dialogManager.dialogs;\n }\n\n private static _dialogMap = new Map<string, ModelessDialogInfo>();\n private static _idArray = new Array<string>();\n\n /** Initialize the modeless dialog manager\n * @internal\n */\n public static initialize(): void {\n DialogManagerBase.initialize();\n }\n\n /** Open a modeless dialog\n * @param dialog The Dialog to open\n * @param id The id of the Dialog to open\n */\n public static open(\n dialog: React.ReactNode,\n id: string,\n parentDocument = document\n ): void {\n const dialogInfo = InternalModelessDialogManager._dialogMap.get(id);\n if (dialogInfo) {\n const message = `Dialog with id of '${id}' already opened`;\n Logger.logInfo(\n UiFramework.loggerCategory(\"InternalModelessDialogManager\"),\n `openDialog: ${message}`\n );\n IModelApp.notifications.outputMessage(\n new NotifyMessageDetails(\n OutputMessagePriority.Info,\n message,\n undefined,\n OutputMessageType.Toast\n )\n );\n return;\n }\n InternalModelessDialogManager._dialogMap.set(id, {\n reactNode: dialog,\n zIndex: DialogManagerBase.topZIndex,\n parentDocument,\n });\n InternalModelessDialogManager._idArray.push(id);\n InternalModelessDialogManager.dialogManager.openDialog(\n dialog,\n id,\n parentDocument\n );\n }\n\n /** Close a modeless dialog\n * @param id The id of the Dialog to close.\n */\n public static close(id: string): void {\n const dialogInfo = InternalModelessDialogManager._dialogMap.get(id);\n if (dialogInfo) {\n InternalModelessDialogManager.dialogManager.removeDialog(\n dialogInfo.reactNode\n );\n InternalModelessDialogManager._dialogMap.delete(id);\n const index = InternalModelessDialogManager._idArray.indexOf(id);\n if (index >= 0) InternalModelessDialogManager._idArray.splice(index, 1);\n\n if (InternalModelessDialogManager.active === undefined)\n DialogManagerBase.topZIndex =\n DialogManagerBase.getDialogZIndexDefault();\n\n this.update();\n } else {\n Logger.logError(\n UiFramework.loggerCategory(\"InternalModelessDialogManager\"),\n `closeDialog: Could not find dialog with id of '${id}'`\n );\n }\n }\n\n /** @internal */\n public static closeAll(): void {\n InternalModelessDialogManager.dialogManager.closeAll();\n InternalModelessDialogManager._dialogMap.clear();\n InternalModelessDialogManager._idArray = [];\n }\n\n /** Update the dialogs */\n public static update(): void {\n InternalModelessDialogManager.dialogManager.update();\n }\n\n /** Get the active modeless dialog */\n public static get active(): React.ReactNode | undefined {\n if (InternalModelessDialogManager._idArray.length > 0) {\n const id =\n InternalModelessDialogManager._idArray[\n InternalModelessDialogManager._idArray.length - 1\n ];\n const dialogInfo = InternalModelessDialogManager._dialogMap.get(id);\n if (dialogInfo) return dialogInfo.reactNode;\n }\n\n return undefined;\n }\n\n /** Get the count of modeless dialogs */\n public static get count(): number {\n return InternalModelessDialogManager.dialogManager.dialogCount;\n }\n\n /** Handle a pointer down event on a modeless dialog */\n public static handlePointerDownEvent(\n _event: React.PointerEvent,\n id: string,\n updateFunc: () => void\n ): void {\n const dialogInfo = InternalModelessDialogManager._dialogMap.get(id);\n if (\n dialogInfo &&\n dialogInfo.reactNode !== InternalModelessDialogManager.active\n ) {\n DialogManagerBase.topZIndex += 1;\n dialogInfo.zIndex = DialogManagerBase.topZIndex;\n\n InternalModelessDialogManager._idArray.splice(\n InternalModelessDialogManager._idArray.indexOf(id),\n 1\n );\n InternalModelessDialogManager._idArray.push(id);\n\n updateFunc();\n this.update();\n }\n }\n\n /** Get the z-index for a modeless dialog */\n public static getZIndex(id: string): number {\n let zIndex = DialogManagerBase.getDialogZIndexDefault();\n const dialogInfo = InternalModelessDialogManager._dialogMap.get(id);\n if (dialogInfo) zIndex = dialogInfo.zIndex;\n return zIndex;\n }\n\n public static getInfo(id: string): ModelessDialogInfo | undefined {\n return InternalModelessDialogManager._dialogMap.get(id);\n }\n}\n"]}
|
|
@@ -16,9 +16,6 @@ import { UiFramework } from "../UiFramework.js";
|
|
|
16
16
|
export class ModelessDialog extends React.Component {
|
|
17
17
|
constructor(props) {
|
|
18
18
|
super(props);
|
|
19
|
-
this._updateDialog = () => {
|
|
20
|
-
this.forceUpdate();
|
|
21
|
-
};
|
|
22
19
|
}
|
|
23
20
|
render() {
|
|
24
21
|
const { dialogId, style, modal, modelessId, onModelessPointerDown, ...props } = this.props;
|
|
@@ -29,5 +26,8 @@ export class ModelessDialog extends React.Component {
|
|
|
29
26
|
...style,
|
|
30
27
|
} }, this.props.children));
|
|
31
28
|
}
|
|
29
|
+
_updateDialog = () => {
|
|
30
|
+
this.forceUpdate();
|
|
31
|
+
};
|
|
32
32
|
}
|
|
33
33
|
//# sourceMappingURL=ModelessDialog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelessDialog.js","sourceRoot":"","sources":["../../../src/appui-react/dialog/ModelessDialog.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAahD;;;;GAIG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK,CAAC,SAA8B;IACtE,YAAY,KAA0B;QACpC,KAAK,CAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ModelessDialog.js","sourceRoot":"","sources":["../../../src/appui-react/dialog/ModelessDialog.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAahD;;;;GAIG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK,CAAC,SAA8B;IACtE,YAAY,KAA0B;QACpC,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAEe,MAAM;QACpB,MAAM,EACJ,QAAQ,EACR,KAAK,EACL,KAAK,EACL,UAAU,EACV,qBAAqB,EACrB,GAAG,KAAK,EACT,GAAG,IAAI,CAAC,KAAK,CAAC;QAEf,OAAO;QACL,4DAA4D;QAC5D,oBAAC,MAAM,OACD,KAAK,EACT,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,QAAQ,EACpB,qBAAqB,EAAE,CAAC,KAAK,EAAE,EAAE,CAC/B,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CACjD,KAAK,EACL,QAAQ,EACR,IAAI,CAAC,aAAa,CACnB,EAEH,KAAK,EAAE;gBACL,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC;gBACxD,GAAG,KAAK;aACT,IAEA,IAAI,CAAC,KAAK,CAAC,QAAQ,CACb,CACV,CAAC;IACJ,CAAC;IAEO,aAAa,GAAG,GAAG,EAAE;QAC3B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC,CAAC;CACH","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Dialog\n */\n\nimport * as React from \"react\";\nimport type { DialogProps } from \"@itwin/core-react\";\nimport { Dialog } from \"@itwin/core-react\";\nimport { UiFramework } from \"../UiFramework.js\";\n\n/* eslint-disable @typescript-eslint/no-deprecated */\n\n/** Properties for the [[ModelessDialog]] component\n * @public\n * @deprecated in 4.15.0. Props of deprecated {@link ModelessDialog} component.\n */\nexport interface ModelessDialogProps extends DialogProps {\n dialogId: string;\n movable?: boolean;\n}\n\n/** Modeless Dialog React component uses the Dialog component with a modal={false} prop.\n * It controls the z-index to keep the focused dialog above others.\n * @public\n * @deprecated in 4.15.0. Use {@link https://itwinui.bentley.com/docs/dialog iTwinUI Dialog} instead.\n */\nexport class ModelessDialog extends React.Component<ModelessDialogProps> {\n constructor(props: ModelessDialogProps) {\n super(props);\n }\n\n public override render(): React.ReactElement {\n const {\n dialogId,\n style,\n modal,\n modelessId,\n onModelessPointerDown,\n ...props\n } = this.props;\n\n return (\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n <Dialog\n {...props}\n modal={false}\n modelessId={dialogId}\n onModelessPointerDown={(event) =>\n UiFramework.dialogs.modeless.handlePointerDownEvent(\n event,\n dialogId,\n this._updateDialog\n )\n }\n style={{\n zIndex: UiFramework.dialogs.modeless.getZIndex(dialogId),\n ...style,\n }}\n >\n {this.props.children}\n </Dialog>\n );\n }\n\n private _updateDialog = () => {\n this.forceUpdate();\n };\n}\n"]}
|
|
@@ -24,6 +24,9 @@ export class ElementTooltipChangedEvent extends UiEvent {
|
|
|
24
24
|
* @public
|
|
25
25
|
*/
|
|
26
26
|
export class ElementTooltip extends React.Component {
|
|
27
|
+
static _elementTooltipChangedEvent = new BeUiEvent();
|
|
28
|
+
static _isTooltipVisible;
|
|
29
|
+
static _isTooltipHalted;
|
|
27
30
|
static get onElementTooltipChangedEvent() {
|
|
28
31
|
return ElementTooltip._elementTooltipChangedEvent;
|
|
29
32
|
}
|
|
@@ -61,7 +64,6 @@ export class ElementTooltip extends React.Component {
|
|
|
61
64
|
return React.createElement(ElementTooltipComponent, null);
|
|
62
65
|
}
|
|
63
66
|
}
|
|
64
|
-
ElementTooltip._elementTooltipChangedEvent = new BeUiEvent();
|
|
65
67
|
function ElementTooltipComponent(props) {
|
|
66
68
|
const [visible, setVisible] = React.useState(false);
|
|
67
69
|
const [message, setMessage] = React.useState("");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ElementTooltip.js","sourceRoot":"","sources":["../../../src/appui-react/feedback/ElementTooltip.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Notification\n */\n\nimport \"./ElementTooltip.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { UiEvent } from \"@itwin/appui-abstract\";\nimport { BeUiEvent } from \"@itwin/core-bentley\";\nimport type { ToolTipOptions } from \"@itwin/core-frontend\";\nimport type { XAndY } from \"@itwin/core-geometry\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { MessageRenderer } from \"@itwin/core-react\";\nimport { Rectangle } from \"@itwin/core-react/internal\";\nimport type { NotifyMessageType } from \"../messages/ReactNotifyMessageDetails.js\";\nimport {\n offsetAndContainInContainer,\n Tooltip,\n} from \"../layout/popup/Tooltip.js\";\nimport type { SizeProps } from \"../utils/SizeProps.js\";\n\n/* eslint-disable @typescript-eslint/no-deprecated */\n\n/** [[ElementTooltip]] state. */\ninterface ElementTooltipState {\n isVisible: boolean;\n message: NotifyMessageType;\n position: XAndY;\n options?: ToolTipOptions;\n}\n\n/** [[ElementTooltipChangedEvent]] arguments.\n * @public\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface ElementTooltipChangedEventArgs {\n isTooltipVisible: boolean;\n message: NotifyMessageType;\n el?: HTMLElement;\n pt?: XAndY;\n options?: ToolTipOptions;\n}\n\n/** ElementTooltip Changed Event class.\n * @public\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\nexport class ElementTooltipChangedEvent extends UiEvent<ElementTooltipChangedEventArgs> {}\n\n/** ElementTooltip React component.\n * @public\n */\nexport class ElementTooltip extends React.Component<\n CommonProps, // eslint-disable-line @typescript-eslint/no-deprecated\n ElementTooltipState\n> {\n private static _elementTooltipChangedEvent =\n new BeUiEvent<ElementTooltipChangedEventArgs>();\n private static _isTooltipVisible: boolean;\n private static _isTooltipHalted: boolean;\n\n public static get onElementTooltipChangedEvent(): ElementTooltipChangedEvent {\n return ElementTooltip._elementTooltipChangedEvent;\n }\n\n public static get isTooltipVisible(): boolean {\n return ElementTooltip._isTooltipVisible;\n }\n\n public static showTooltip(\n el: HTMLElement,\n message: NotifyMessageType,\n pt?: XAndY,\n options?: ToolTipOptions\n ): void {\n if (ElementTooltip._isTooltipHalted) return;\n ElementTooltip._isTooltipVisible = true;\n ElementTooltip.onElementTooltipChangedEvent.emit({\n isTooltipVisible: true,\n el,\n message,\n pt,\n options,\n });\n }\n\n public static hideTooltip(): void {\n ElementTooltip._isTooltipVisible = false;\n ElementTooltip.onElementTooltipChangedEvent.emit({\n isTooltipVisible: false,\n message: \"\",\n });\n }\n\n public static get isTooltipHalted(): boolean {\n return ElementTooltip._isTooltipHalted;\n }\n\n public static set isTooltipHalted(halt: boolean) {\n ElementTooltip._isTooltipHalted = halt;\n if (halt && ElementTooltip._isTooltipVisible) ElementTooltip.hideTooltip();\n }\n\n public override render() {\n return <ElementTooltipComponent />;\n }\n}\n\nfunction ElementTooltipComponent(props: CommonProps) {\n const [visible, setVisible] = React.useState(false);\n const [message, setMessage] = React.useState<NotifyMessageType>(\"\");\n const [preferredPosition, setPreferredPosition] = React.useState<\n XAndY | undefined\n >(undefined);\n const [position, setPosition] = React.useState<XAndY>({ x: 0, y: 0 });\n\n // Use a dedicated container for the tooltip to avoid z-index issues in the main window.\n const [mainContainer, setMainContainer] = React.useState<\n HTMLDivElement | undefined\n >(undefined);\n const [container, setContainer] = React.useState<HTMLElement | undefined>(\n undefined\n );\n const [popout, setPopout] = React.useState(false);\n const [size, setSize] = React.useState<SizeProps | undefined>(undefined);\n\n React.useEffect(() => {\n return ElementTooltip.onElementTooltipChangedEvent.addListener((args) => {\n const isPopout = args.el?.ownerDocument.defaultView !== window;\n setPopout(isPopout);\n setVisible(args.isTooltipVisible);\n setMessage(args.message);\n setContainer(args.el);\n setPreferredPosition(args.pt);\n });\n }, []);\n\n const portalContainer = popout ? container : mainContainer;\n\n React.useLayoutEffect(() => {\n if (!preferredPosition) return;\n\n // Use preferred position by default.\n setPosition(preferredPosition);\n\n if (!container) return;\n if (!size) return;\n\n // Contain the tooltip based on the container bounds.\n const containerBounds = Rectangle.create(container.getBoundingClientRect());\n const bounds = Rectangle.createFromSize(size).offset(preferredPosition);\n const adjustedPosition = offsetAndContainInContainer(\n bounds,\n containerBounds.getSize(),\n { x: 8, y: 8 }\n );\n const newPosition = adjustedPosition.offset(containerBounds.topLeft());\n setPosition(newPosition);\n }, [container, size, preferredPosition]);\n\n return (\n <>\n <div\n className={classnames(\n \"uifw-feedback-elementTooltip_container\",\n props.className\n )}\n ref={(el) => setMainContainer(el ?? undefined)}\n />\n {portalContainer &&\n visible &&\n ReactDOM.createPortal(\n <Tooltip\n className={classnames(\n \"uifw-feedback-elementTooltip\",\n props.className\n )}\n style={props.style}\n onSizeChanged={setSize}\n position={position}\n >\n <MessageRenderer message={message} />\n </Tooltip>,\n portalContainer\n )}\n </>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ElementTooltip.js","sourceRoot":"","sources":["../../../src/appui-react/feedback/ElementTooltip.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Notification\n */\n\nimport \"./ElementTooltip.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { UiEvent } from \"@itwin/appui-abstract\";\nimport { BeUiEvent } from \"@itwin/core-bentley\";\nimport type { ToolTipOptions } from \"@itwin/core-frontend\";\nimport type { XAndY } from \"@itwin/core-geometry\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { MessageRenderer } from \"@itwin/core-react\";\nimport { Rectangle } from \"@itwin/core-react/internal\";\nimport type { NotifyMessageType } from \"../messages/ReactNotifyMessageDetails.js\";\nimport {\n offsetAndContainInContainer,\n Tooltip,\n} from \"../layout/popup/Tooltip.js\";\nimport type { SizeProps } from \"../utils/SizeProps.js\";\n\n/* eslint-disable @typescript-eslint/no-deprecated */\n\n/** [[ElementTooltip]] state. */\ninterface ElementTooltipState {\n isVisible: boolean;\n message: NotifyMessageType;\n position: XAndY;\n options?: ToolTipOptions;\n}\n\n/** [[ElementTooltipChangedEvent]] arguments.\n * @public\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface ElementTooltipChangedEventArgs {\n isTooltipVisible: boolean;\n message: NotifyMessageType;\n el?: HTMLElement;\n pt?: XAndY;\n options?: ToolTipOptions;\n}\n\n/** ElementTooltip Changed Event class.\n * @public\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\nexport class ElementTooltipChangedEvent extends UiEvent<ElementTooltipChangedEventArgs> {}\n\n/** ElementTooltip React component.\n * @public\n */\nexport class ElementTooltip extends React.Component<\n CommonProps, // eslint-disable-line @typescript-eslint/no-deprecated\n ElementTooltipState\n> {\n private static _elementTooltipChangedEvent =\n new BeUiEvent<ElementTooltipChangedEventArgs>();\n private static _isTooltipVisible: boolean;\n private static _isTooltipHalted: boolean;\n\n public static get onElementTooltipChangedEvent(): ElementTooltipChangedEvent {\n return ElementTooltip._elementTooltipChangedEvent;\n }\n\n public static get isTooltipVisible(): boolean {\n return ElementTooltip._isTooltipVisible;\n }\n\n public static showTooltip(\n el: HTMLElement,\n message: NotifyMessageType,\n pt?: XAndY,\n options?: ToolTipOptions\n ): void {\n if (ElementTooltip._isTooltipHalted) return;\n ElementTooltip._isTooltipVisible = true;\n ElementTooltip.onElementTooltipChangedEvent.emit({\n isTooltipVisible: true,\n el,\n message,\n pt,\n options,\n });\n }\n\n public static hideTooltip(): void {\n ElementTooltip._isTooltipVisible = false;\n ElementTooltip.onElementTooltipChangedEvent.emit({\n isTooltipVisible: false,\n message: \"\",\n });\n }\n\n public static get isTooltipHalted(): boolean {\n return ElementTooltip._isTooltipHalted;\n }\n\n public static set isTooltipHalted(halt: boolean) {\n ElementTooltip._isTooltipHalted = halt;\n if (halt && ElementTooltip._isTooltipVisible) ElementTooltip.hideTooltip();\n }\n\n public override render() {\n return <ElementTooltipComponent />;\n }\n}\n\nfunction ElementTooltipComponent(props: CommonProps) {\n const [visible, setVisible] = React.useState(false);\n const [message, setMessage] = React.useState<NotifyMessageType>(\"\");\n const [preferredPosition, setPreferredPosition] = React.useState<\n XAndY | undefined\n >(undefined);\n const [position, setPosition] = React.useState<XAndY>({ x: 0, y: 0 });\n\n // Use a dedicated container for the tooltip to avoid z-index issues in the main window.\n const [mainContainer, setMainContainer] = React.useState<\n HTMLDivElement | undefined\n >(undefined);\n const [container, setContainer] = React.useState<HTMLElement | undefined>(\n undefined\n );\n const [popout, setPopout] = React.useState(false);\n const [size, setSize] = React.useState<SizeProps | undefined>(undefined);\n\n React.useEffect(() => {\n return ElementTooltip.onElementTooltipChangedEvent.addListener((args) => {\n const isPopout = args.el?.ownerDocument.defaultView !== window;\n setPopout(isPopout);\n setVisible(args.isTooltipVisible);\n setMessage(args.message);\n setContainer(args.el);\n setPreferredPosition(args.pt);\n });\n }, []);\n\n const portalContainer = popout ? container : mainContainer;\n\n React.useLayoutEffect(() => {\n if (!preferredPosition) return;\n\n // Use preferred position by default.\n setPosition(preferredPosition);\n\n if (!container) return;\n if (!size) return;\n\n // Contain the tooltip based on the container bounds.\n const containerBounds = Rectangle.create(container.getBoundingClientRect());\n const bounds = Rectangle.createFromSize(size).offset(preferredPosition);\n const adjustedPosition = offsetAndContainInContainer(\n bounds,\n containerBounds.getSize(),\n { x: 8, y: 8 }\n );\n const newPosition = adjustedPosition.offset(containerBounds.topLeft());\n setPosition(newPosition);\n }, [container, size, preferredPosition]);\n\n return (\n <>\n <div\n className={classnames(\n \"uifw-feedback-elementTooltip_container\",\n props.className\n )}\n ref={(el) => setMainContainer(el ?? undefined)}\n />\n {portalContainer &&\n visible &&\n ReactDOM.createPortal(\n <Tooltip\n className={classnames(\n \"uifw-feedback-elementTooltip\",\n props.className\n )}\n style={props.style}\n onSizeChanged={setSize}\n position={position}\n >\n <MessageRenderer message={message} />\n </Tooltip>,\n portalContainer\n )}\n </>\n );\n}\n"]}
|
|
@@ -27,31 +27,6 @@ export var InputStatus;
|
|
|
27
27
|
export class ValidationTextbox extends React.PureComponent {
|
|
28
28
|
constructor(props) {
|
|
29
29
|
super(props);
|
|
30
|
-
/**
|
|
31
|
-
* Determines if value is valid and resolves any defined functions.
|
|
32
|
-
* Also will show or hide error message if defined.
|
|
33
|
-
* @param event Button press event that triggers validation
|
|
34
|
-
*/
|
|
35
|
-
this._validateText = (event) => {
|
|
36
|
-
this.processValidateText(event.target);
|
|
37
|
-
};
|
|
38
|
-
/**
|
|
39
|
-
* Manages special key codes by calling user defined functions
|
|
40
|
-
* @param event Keyup event
|
|
41
|
-
*/
|
|
42
|
-
this._handleKeyUp = (event) => {
|
|
43
|
-
this.processValidateText(event.target);
|
|
44
|
-
switch (event.key) {
|
|
45
|
-
case Key.Escape.valueOf():
|
|
46
|
-
if (this.props.onEscPressed)
|
|
47
|
-
this.props.onEscPressed();
|
|
48
|
-
break;
|
|
49
|
-
case Key.Enter.valueOf():
|
|
50
|
-
if (this.props.onEnterPressed)
|
|
51
|
-
this.props.onEnterPressed();
|
|
52
|
-
break;
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
30
|
this.state = { isValid: true };
|
|
56
31
|
}
|
|
57
32
|
render() {
|
|
@@ -83,6 +58,14 @@ export class ValidationTextbox extends React.PureComponent {
|
|
|
83
58
|
}
|
|
84
59
|
});
|
|
85
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Determines if value is valid and resolves any defined functions.
|
|
63
|
+
* Also will show or hide error message if defined.
|
|
64
|
+
* @param event Button press event that triggers validation
|
|
65
|
+
*/
|
|
66
|
+
_validateText = (event) => {
|
|
67
|
+
this.processValidateText(event.target);
|
|
68
|
+
};
|
|
86
69
|
/**
|
|
87
70
|
* Determines if value provided is valid by calling user defined
|
|
88
71
|
* function. If no function is provided, the default criteria for
|
|
@@ -105,5 +88,22 @@ export class ValidationTextbox extends React.PureComponent {
|
|
|
105
88
|
MessageManager.displayInputFieldMessage(target, this.props.errorText, this.props.detailedErrorText);
|
|
106
89
|
return;
|
|
107
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* Manages special key codes by calling user defined functions
|
|
93
|
+
* @param event Keyup event
|
|
94
|
+
*/
|
|
95
|
+
_handleKeyUp = (event) => {
|
|
96
|
+
this.processValidateText(event.target);
|
|
97
|
+
switch (event.key) {
|
|
98
|
+
case Key.Escape.valueOf():
|
|
99
|
+
if (this.props.onEscPressed)
|
|
100
|
+
this.props.onEscPressed();
|
|
101
|
+
break;
|
|
102
|
+
case Key.Enter.valueOf():
|
|
103
|
+
if (this.props.onEnterPressed)
|
|
104
|
+
this.props.onEnterPressed();
|
|
105
|
+
break;
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
108
|
}
|
|
109
109
|
//# sourceMappingURL=ValidationTextbox.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValidationTextbox.js","sourceRoot":"","sources":["../../../src/appui-react/feedback/ValidationTextbox.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,0BAA0B,CAAC;AAClC,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C;;GAEG;AACH,MAAM,CAAN,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,+CAAS,CAAA;IACT,mDAAW,CAAA;AACb,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB;AA+BD;;;;GAIG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK,CAAC,aAG5C;IACC,YAAY,KAA6B;QACvC,KAAK,CAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ValidationTextbox.js","sourceRoot":"","sources":["../../../src/appui-react/feedback/ValidationTextbox.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Notification\n */\n\nimport \"./ValidationTextbox.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { Key } from \"ts-key-enum\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { MessageManager } from \"../messages/MessageManager.js\";\nimport { Input } from \"@itwin/itwinui-react\";\n\n/** Enum for Input Status used in [[ValidationTextbox]]\n * @alpha\n */\nexport enum InputStatus {\n Valid = 0,\n Invalid = 1,\n}\n\n/** Property interface for ValidationTextbox\n * @alpha\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\ninterface ValidationTextboxProps extends CommonProps {\n /** value to set ValidationTextbox to initially */\n initialValue?: string;\n /** placeholder value to show in gray before anything is entered in */\n placeholder?: string;\n /** triggered when the content of ValidationTextbox is changed. Return true if valid */\n onValueChanged?: (value: string) => InputStatus;\n /** listens for <Enter> key presses */\n onEnterPressed?: () => void;\n /** listens for <Esc> key presses */\n onEscPressed?: () => void;\n /** width of ValidationTextbox, measured in em */\n size?: number;\n /** Error message to display */\n errorText?: string;\n /** Detailed error message to display */\n detailedErrorText?: string;\n /** Content */\n children?: React.ReactNode;\n}\n\ninterface ValidationTextboxState {\n isValid: boolean;\n}\n\n/**\n * Input box that validates text based on provided criteria. Defaults to checking\n * for empty if no method for onValueChanged is provided.\n * @alpha\n */\nexport class ValidationTextbox extends React.PureComponent<\n ValidationTextboxProps,\n ValidationTextboxState\n> {\n constructor(props: ValidationTextboxProps) {\n super(props);\n\n this.state = { isValid: true };\n }\n\n public override render(): React.ReactNode {\n const sizeStyle: React.CSSProperties = {\n width: this.props.size ? `${this.props.size.toString()}em` : \"12em\",\n };\n const divStyle: React.CSSProperties = {\n ...sizeStyle,\n ...this.props.style,\n };\n\n const validClassNames = classnames(\"ValidationTextbox-input\");\n\n const invalidClassNames = classnames(\n \"ValidationTextbox-input\",\n \"ValidationTextbox-invalid\"\n );\n\n return (\n <div\n className={classnames(\"uifw-ValidationTextbox\", this.props.className)}\n style={divStyle}\n >\n <Input\n className={this.state.isValid ? validClassNames : invalidClassNames}\n onChange={this._validateText}\n onKeyUp={this._handleKeyUp}\n onPaste={this._validateText}\n onCut={this._validateText}\n onBlur={this._validateText}\n placeholder={this.props.placeholder ? this.props.placeholder : \"\"}\n style={sizeStyle}\n />\n {this.props.children}\n </div>\n );\n }\n\n private processValidateText(target: HTMLInputElement | undefined): void {\n if (undefined === target) return;\n\n const value = target.value;\n const isValid = this._calculateIsValid(value);\n\n this.setState({ isValid }, () => {\n if (this.state.isValid) {\n this._hideErrorMessage();\n } else {\n if (this.props.errorText && !this.state.isValid)\n this._showErrorMessage(target);\n }\n });\n }\n\n /**\n * Determines if value is valid and resolves any defined functions.\n * Also will show or hide error message if defined.\n * @param event Button press event that triggers validation\n */\n private _validateText = (event?: any): void => {\n this.processValidateText(event.target as HTMLInputElement);\n };\n\n /**\n * Determines if value provided is valid by calling user defined\n * function. If no function is provided, the default criteria for\n * validity is if the value has been defined.\n * @param value The value provided in textbox\n */\n private _calculateIsValid(value: string): boolean {\n if (this.props.onValueChanged)\n return this.props.onValueChanged(value) === InputStatus.Valid\n ? true\n : false;\n return value.length > 0;\n }\n\n /** Hides error message */\n private _hideErrorMessage() {\n MessageManager.hideInputFieldMessage();\n }\n\n /** Displays error message. */\n private _showErrorMessage(target: Element) {\n MessageManager.displayInputFieldMessage(\n target as HTMLElement,\n this.props.errorText!,\n this.props.detailedErrorText\n );\n return;\n }\n\n /**\n * Manages special key codes by calling user defined functions\n * @param event Keyup event\n */\n private _handleKeyUp = (event: React.KeyboardEvent<HTMLInputElement>) => {\n this.processValidateText(event.target as HTMLInputElement);\n\n switch (event.key) {\n case Key.Escape.valueOf():\n if (this.props.onEscPressed) this.props.onEscPressed();\n break;\n case Key.Enter.valueOf():\n if (this.props.onEnterPressed) this.props.onEnterPressed();\n break;\n }\n };\n}\n"]}
|
|
@@ -31,16 +31,34 @@ import { FRONTSTAGE_SETTINGS_NAMESPACE, getFrontstageStateSettingName, } from ".
|
|
|
31
31
|
* @public
|
|
32
32
|
*/
|
|
33
33
|
export class FrontstageDef {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
34
|
+
_id = "";
|
|
35
|
+
_initialConfig;
|
|
36
|
+
_isStageClosing = false;
|
|
37
|
+
_isReady = false;
|
|
38
|
+
_isApplicationClosing = false;
|
|
39
|
+
_usage;
|
|
40
|
+
_version = 0;
|
|
41
|
+
_toolSettings;
|
|
42
|
+
_activeToolEmptyNode;
|
|
43
|
+
_statusBar;
|
|
44
|
+
_contentManipulation;
|
|
45
|
+
_viewNavigation;
|
|
46
|
+
_topPanel;
|
|
47
|
+
_leftPanel;
|
|
48
|
+
_rightPanel;
|
|
49
|
+
_bottomPanel;
|
|
50
|
+
_contentLayoutDef;
|
|
51
|
+
_contentGroup;
|
|
52
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
53
|
+
_frontstageProvider;
|
|
54
|
+
_timeTracker = new TimeTracker();
|
|
55
|
+
_nineZoneState;
|
|
56
|
+
_contentGroupProvider;
|
|
57
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
58
|
+
_floatingContentControls;
|
|
59
|
+
_toolAdminDefaultToolId;
|
|
60
|
+
_dispatch;
|
|
61
|
+
_batching = false;
|
|
44
62
|
get id() {
|
|
45
63
|
return this._id;
|
|
46
64
|
}
|