@itwin/appui-react 4.6.0 → 4.6.1
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 +8 -1
- package/lib/cjs/appui-react/UiFramework.js +4 -7
- package/lib/cjs/appui-react/UiFramework.js.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +1 -2
- package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +1 -1
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
- package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/TimeTracker.js +1 -2
- package/lib/cjs/appui-react/configurableui/TimeTracker.js.map +1 -1
- package/lib/cjs/appui-react/content/ContentLayout.js +9 -12
- package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
- package/lib/cjs/appui-react/content/DefaultViewOverlay.js +3 -4
- package/lib/cjs/appui-react/content/DefaultViewOverlay.js.map +1 -1
- package/lib/cjs/appui-react/content/FloatingViewportContent.js +1 -2
- package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
- package/lib/cjs/appui-react/content/IModelViewport.js +3 -6
- package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
- package/lib/cjs/appui-react/content/InternalContentLayoutManager.js +1 -2
- package/lib/cjs/appui-react/content/InternalContentLayoutManager.js.map +1 -1
- package/lib/cjs/appui-react/content/InternalContentViewManager.js +1 -1
- package/lib/cjs/appui-react/content/InternalContentViewManager.js.map +1 -1
- package/lib/cjs/appui-react/content/split-pane/SplitPane.js +10 -12
- package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -1
- package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js +2 -3
- package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
- package/lib/cjs/appui-react/dialog/ContentDialog.js +3 -6
- package/lib/cjs/appui-react/dialog/ContentDialog.js.map +1 -1
- package/lib/cjs/appui-react/dialog/DialogManagerBase.js +2 -3
- package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js +33 -51
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +2 -3
- package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +1 -2
- package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js +7 -11
- package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js +7 -11
- package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useSolarDataProvider.js +8 -13
- package/lib/cjs/appui-react/hooks/useSolarDataProvider.js.map +1 -1
- package/lib/cjs/appui-react/messages/ActivityMessage.js +5 -7
- package/lib/cjs/appui-react/messages/ActivityMessage.js.map +1 -1
- package/lib/cjs/appui-react/pickers/ViewSelector.js +5 -6
- package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
- package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +1 -2
- package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
- package/lib/cjs/appui-react/popup/PopupManager.js +1 -2
- package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
- package/lib/cjs/appui-react/selection/SelectionContextItemDef.js +2 -2
- package/lib/cjs/appui-react/selection/SelectionContextItemDef.js.map +1 -1
- package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js +2 -1
- package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +11 -16
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/Indicator.js +1 -2
- package/lib/cjs/appui-react/statusbar/Indicator.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBar.js +3 -5
- package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +1 -1
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarHelper.js +6 -4
- package/lib/cjs/appui-react/toolbar/ToolbarHelper.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js +3 -4
- package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
- package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +10 -17
- package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
- package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js +3 -2
- package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js +12 -14
- package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +9 -10
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +1 -2
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +8 -14
- package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
- package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
- package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
- package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js +1 -1
- package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
- package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js +3 -3
- package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Content.js +8 -9
- package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Frontstage.js +34 -32
- package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/StatusBar.js +1 -1
- package/lib/cjs/appui-react/widget-panels/StatusBar.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Tab.js +1 -1
- package/lib/cjs/appui-react/widget-panels/Tab.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/ToolSettings.js +13 -19
- package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Toolbars.js +2 -3
- package/lib/cjs/appui-react/widget-panels/Toolbars.js.map +1 -1
- package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +2 -2
- package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.js +5 -6
- package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetHost.js +2 -3
- package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
- package/lib/esm/appui-react/UiFramework.js +4 -7
- package/lib/esm/appui-react/UiFramework.js.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageComposerItem.js +1 -2
- package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +1 -1
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
- package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
- package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
- package/lib/esm/appui-react/configurableui/TimeTracker.js +1 -2
- package/lib/esm/appui-react/configurableui/TimeTracker.js.map +1 -1
- package/lib/esm/appui-react/content/ContentLayout.js +9 -12
- package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
- package/lib/esm/appui-react/content/DefaultViewOverlay.js +3 -4
- package/lib/esm/appui-react/content/DefaultViewOverlay.js.map +1 -1
- package/lib/esm/appui-react/content/FloatingViewportContent.js +1 -2
- package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
- package/lib/esm/appui-react/content/IModelViewport.js +3 -6
- package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
- package/lib/esm/appui-react/content/InternalContentLayoutManager.js +1 -2
- package/lib/esm/appui-react/content/InternalContentLayoutManager.js.map +1 -1
- package/lib/esm/appui-react/content/InternalContentViewManager.js +1 -1
- package/lib/esm/appui-react/content/InternalContentViewManager.js.map +1 -1
- package/lib/esm/appui-react/content/split-pane/SplitPane.js +10 -12
- package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -1
- package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js +2 -3
- package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
- package/lib/esm/appui-react/dialog/ContentDialog.js +3 -6
- package/lib/esm/appui-react/dialog/ContentDialog.js.map +1 -1
- package/lib/esm/appui-react/dialog/DialogManagerBase.js +2 -3
- package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageDef.js +33 -51
- package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +2 -3
- package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
- package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +1 -2
- package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
- package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js +7 -11
- package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
- package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js +7 -11
- package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
- package/lib/esm/appui-react/hooks/useSolarDataProvider.js +8 -13
- package/lib/esm/appui-react/hooks/useSolarDataProvider.js.map +1 -1
- package/lib/esm/appui-react/messages/ActivityMessage.js +5 -7
- package/lib/esm/appui-react/messages/ActivityMessage.js.map +1 -1
- package/lib/esm/appui-react/pickers/ViewSelector.js +5 -6
- package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
- package/lib/esm/appui-react/popup/KeyinPalettePanel.js +1 -2
- package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
- package/lib/esm/appui-react/popup/PopupManager.js +1 -2
- package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
- package/lib/esm/appui-react/selection/SelectionContextItemDef.js +2 -2
- package/lib/esm/appui-react/selection/SelectionContextItemDef.js.map +1 -1
- package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js +2 -1
- package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanelDef.js +11 -16
- package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
- package/lib/esm/appui-react/statusbar/Indicator.js +1 -2
- package/lib/esm/appui-react/statusbar/Indicator.js.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBar.js +3 -5
- package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +1 -1
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarHelper.js +6 -4
- package/lib/esm/appui-react/toolbar/ToolbarHelper.js.map +1 -1
- package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js +3 -4
- package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
- package/lib/esm/appui-react/tools/CoreToolDefinitions.js +10 -17
- package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
- package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js +3 -2
- package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js +12 -14
- package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +9 -10
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +1 -2
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +8 -14
- package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
- package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
- package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
- package/lib/esm/appui-react/uiprovider/ComponentGenerator.js +1 -1
- package/lib/esm/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
- package/lib/esm/appui-react/utils/InternalUiShowHideManager.js +3 -3
- package/lib/esm/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Content.js +8 -9
- package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Frontstage.js +34 -32
- package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/StatusBar.js +1 -1
- package/lib/esm/appui-react/widget-panels/StatusBar.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Tab.js +1 -1
- package/lib/esm/appui-react/widget-panels/Tab.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/ToolSettings.js +13 -19
- package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Toolbars.js +2 -3
- package/lib/esm/appui-react/widget-panels/Toolbars.js.map +1 -1
- package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +2 -2
- package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetDef.js +5 -6
- package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetHost.js +2 -3
- package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
- package/package.json +9 -9
|
@@ -13,7 +13,6 @@ const classnames_1 = require("classnames");
|
|
|
13
13
|
const Pane_1 = require("./Pane");
|
|
14
14
|
const Resizer_1 = require("./Resizer");
|
|
15
15
|
function unFocus(ownerDoc) {
|
|
16
|
-
var _a;
|
|
17
16
|
// istanbul ignore next
|
|
18
17
|
if (!ownerDoc)
|
|
19
18
|
return;
|
|
@@ -25,8 +24,8 @@ function unFocus(ownerDoc) {
|
|
|
25
24
|
else {
|
|
26
25
|
// istanbul ignore next
|
|
27
26
|
try {
|
|
28
|
-
const winSelection =
|
|
29
|
-
winSelection
|
|
27
|
+
const winSelection = ownerDoc.defaultView?.getSelection();
|
|
28
|
+
winSelection?.removeAllRanges();
|
|
30
29
|
}
|
|
31
30
|
catch (_e) { }
|
|
32
31
|
}
|
|
@@ -104,15 +103,14 @@ function SplitPane(props) {
|
|
|
104
103
|
}, [split, style]);
|
|
105
104
|
const pane1DivStyle = { ...paneStyle, ...pane1Style };
|
|
106
105
|
const pane2DivStyle = { ...paneStyle, ...pane2Style };
|
|
107
|
-
const resizerStyle = React.useMemo(() =>
|
|
106
|
+
const resizerStyle = React.useMemo(() => props.resizerStyle ?? {}, [props.resizerStyle]);
|
|
108
107
|
const resizerClasses = React.useMemo(() => (0, classnames_1.default)("Resizer", !allowResize && "disabled"), [allowResize]);
|
|
109
108
|
const splitPaneClasses = React.useMemo(() => (0, classnames_1.default)("SplitPane", className, split, !allowResize && "disabled"), [className, split, allowResize]);
|
|
110
109
|
const pane1Classes = React.useMemo(() => (0, classnames_1.default)("Pane1", paneClassName, pane1ClassName), [paneClassName, pane1ClassName]);
|
|
111
110
|
const pane2Classes = React.useMemo(() => (0, classnames_1.default)("Pane2", paneClassName, pane2ClassName), [paneClassName, pane2ClassName]);
|
|
112
111
|
const initializeDrag = React.useCallback((x, y) => {
|
|
113
|
-
var _a;
|
|
114
112
|
// istanbul ignore next
|
|
115
|
-
unFocus(
|
|
113
|
+
unFocus(splitPane.current?.ownerDocument);
|
|
116
114
|
const newPosition = split === "vertical" ? x : y;
|
|
117
115
|
onDragStarted && onDragStarted();
|
|
118
116
|
setActive(true);
|
|
@@ -125,9 +123,8 @@ function SplitPane(props) {
|
|
|
125
123
|
}
|
|
126
124
|
}, [allowResize, initializeDrag]);
|
|
127
125
|
const processMove = React.useCallback((x, y) => {
|
|
128
|
-
var _a, _b, _c, _d, _f, _g, _h;
|
|
129
126
|
// istanbul ignore next
|
|
130
|
-
unFocus(
|
|
127
|
+
unFocus(splitPane.current?.ownerDocument);
|
|
131
128
|
const isPrimaryFirst = primary === "first";
|
|
132
129
|
const ref = isPrimaryFirst ? pane1.current : pane2.current;
|
|
133
130
|
const ref2 = isPrimaryFirst ? pane2.current : pane1.current;
|
|
@@ -155,9 +152,11 @@ function SplitPane(props) {
|
|
|
155
152
|
}
|
|
156
153
|
let sizeDelta = isPrimaryFirst ? positionDelta : -positionDelta;
|
|
157
154
|
// istanbul ignore next
|
|
158
|
-
const pane1Order = parseInt(
|
|
155
|
+
const pane1Order = parseInt(node.ownerDocument?.defaultView?.getComputedStyle(node).order ??
|
|
156
|
+
"0", 10);
|
|
159
157
|
// istanbul ignore next
|
|
160
|
-
const pane2Order = parseInt(
|
|
158
|
+
const pane2Order = parseInt(node2.ownerDocument?.defaultView?.getComputedStyle(node2).order ??
|
|
159
|
+
"0", 10);
|
|
161
160
|
// istanbul ignore next
|
|
162
161
|
if (pane1Order > pane2Order) {
|
|
163
162
|
sizeDelta = -sizeDelta;
|
|
@@ -225,9 +224,8 @@ function SplitPane(props) {
|
|
|
225
224
|
processResizeFinished();
|
|
226
225
|
}, [processResizeFinished]);
|
|
227
226
|
React.useEffect(() => {
|
|
228
|
-
var _a;
|
|
229
227
|
// istanbul ignore next
|
|
230
|
-
const ownerDoc =
|
|
228
|
+
const ownerDoc = splitPane.current?.ownerDocument;
|
|
231
229
|
// istanbul ignore next
|
|
232
230
|
if (!ownerDoc)
|
|
233
231
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SplitPane.js","sourceRoot":"","sources":["../../../../../src/appui-react/content/split-pane/SplitPane.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 ContentView\n */\n\nimport * as React from \"react\";\nimport classnames from \"classnames\";\nimport { Pane } from \"./Pane\";\nimport { Resizer } from \"./Resizer\";\n\n/**\n * Props for [[SplitPane]] component\n * @public\n */\nexport interface SplitPaneProps {\n /** Pass false to disable resizing */\n allowResize?: boolean;\n /** The array of two react nodes, one for each pane. */\n children: React.ReactNode[];\n /** Determines which pane maintains its size when browser window is resized.*/\n primary?: \"first\" | \"second\";\n\n minSize?: string | number;\n /** You can limit the maximal size of the 'fixed' pane using the maxSize parameter with a positive value\n * (measured in pixels but state just a number). If you wrap the SplitPane into a container component\n * (yes you can, just remember the container has to have the relative or absolute positioning), then you'll need to limit\n * the movement of the splitter (resizer) at the end of the SplitPane (otherwise it can be dragged outside the SplitPane\n * and you don't catch it never more). For this purpose use the maxSize parameter with value 0. When dragged the splitter/resizer\n * will stop at the border of the SplitPane component and think this you'll be able to pick it again and drag it back then.\n * And more: if you set the maxSize to negative value (e.g. -200), then the splitter stops 200px before the border\n * (in other words it sets the minimal size of the 'resizable' pane in this case). This can be useful also in the\n * full-screen case of use. */\n maxSize?: string | number;\n /** Default initial size of primary pane */\n defaultSize?: string | number;\n /** Size of primary pane */\n size?: string | number;\n /** You can use the step prop to only allow resizing in fixed increments. */\n step?: number;\n split?: \"vertical\" | \"horizontal\";\n /** This callback is invoked when a drag start. */\n onDragStarted?: () => void;\n /** This callback is invoked when a drag ends. */\n onDragFinished?: (newSize: number) => void;\n /** Callback is invoked with the current drag during a drag event.*/\n onChange?: (newSize: number) => void;\n /** Callback is invoked if user clicks on Resizer. */\n onResizerClick?: (event: MouseEvent) => void;\n /** Callback is invoked if user double clicks on Resizer. */\n onResizerDoubleClick?: (event: MouseEvent) => void;\n /** Styling to be applied to the main container */\n style?: React.CSSProperties;\n /** Styling to be applied to both panes */\n paneStyle?: React.CSSProperties;\n /** Styling to be applied to the first pane, with precedence over paneStyle */\n pane1Style?: React.CSSProperties;\n /** Styling to be applied to the second pane, with precedence over paneStyle */\n pane2Style?: React.CSSProperties;\n /** Styling to be applied to the resizer bar */\n resizerStyle?: React.CSSProperties;\n /** Class name to be added to the SplitPane div */\n className?: string;\n /** Class name to be added to each Pane's div */\n paneClassName?: string;\n /** Class name to be added to Pane1's div */\n pane1ClassName?: string;\n /** Class name to be added to Pane2's div */\n pane2ClassName?: string;\n}\n\nfunction unFocus(ownerDoc: Document | undefined) {\n // istanbul ignore next\n if (!ownerDoc) return;\n\n const docSelection = ownerDoc.getSelection();\n // istanbul ignore else\n if (docSelection) {\n docSelection.empty();\n } else {\n // istanbul ignore next\n try {\n const winSelection = ownerDoc.defaultView?.getSelection();\n winSelection?.removeAllRanges();\n } catch (_e) {}\n }\n}\n\nfunction getDefaultSize(\n defaultSize?: number | string,\n minSize?: string | number,\n maxSize?: string | number,\n draggedSize?: number\n) {\n // istanbul ignore next\n if (typeof draggedSize === \"number\") {\n const min = typeof minSize === \"number\" ? minSize : 0;\n const max =\n typeof maxSize === \"number\" && maxSize >= 0 ? maxSize : Infinity;\n return Math.max(min, Math.min(max, draggedSize));\n }\n if (defaultSize !== undefined) {\n return defaultSize;\n }\n return minSize;\n}\n\nfunction removeNullChildren(children: React.ReactNode[]) {\n return React.Children.toArray(children).filter((c) => c);\n}\n\n/**\n * Local TypeScript implementation of `SplitPane` from `react-split-pane` package since that\n * package is not regularly maintained.\n * See https://github.com/tomkp/react-split-pane/blob/master/LICENSE.\n * @public\n */\nexport function SplitPane(props: SplitPaneProps) {\n const {\n style,\n size,\n defaultSize,\n maxSize,\n children,\n paneStyle,\n pane1Style,\n pane2Style,\n className,\n paneClassName,\n pane1ClassName,\n pane2ClassName,\n onDragStarted,\n onDragFinished,\n step,\n onChange,\n onResizerClick,\n onResizerDoubleClick,\n } = props;\n\n // honor same defaults as react-split-pane\n const allowResize = React.useMemo(\n () => (undefined !== props.allowResize ? props.allowResize : true),\n [props.allowResize]\n );\n const minSize = React.useMemo(\n () => (undefined !== props.minSize ? props.minSize : 50),\n [props.minSize]\n );\n const primary = React.useMemo(\n () => (undefined !== props.primary ? props.primary : \"first\"),\n [props.primary]\n );\n const split = React.useMemo(\n () => (undefined !== props.split ? props.split : \"vertical\"),\n [props.split]\n );\n const initialSize =\n size !== undefined ? size : getDefaultSize(defaultSize, minSize, maxSize);\n\n const [position, setPosition] = React.useState(0);\n const [draggedSize, setDraggedSize] = React.useState<number | undefined>();\n const [active, setActive] = React.useState(false);\n const [pane1Size, setPane1Size] = React.useState(() =>\n primary === \"first\" ? initialSize : undefined\n );\n const [pane2Size, setPane2Size] = React.useState(() =>\n primary === \"second\" ? initialSize : undefined\n );\n const splitPane = React.useRef<HTMLDivElement>(null);\n const pane1 = React.useRef<HTMLDivElement>(null);\n const pane2 = React.useRef<HTMLDivElement>(null);\n const notNullChildren = React.useMemo(\n () => removeNullChildren(children),\n [children]\n );\n\n React.useEffect(() => {\n primary === \"first\" ? setPane1Size(initialSize) : setPane2Size(initialSize);\n primary === \"first\" ? setPane2Size(undefined) : setPane1Size(undefined);\n }, [initialSize, primary]);\n\n const splitPaneStyle = React.useMemo(() => {\n const directionSpecificParts =\n split === \"vertical\"\n ? {\n flexDirection: \"row\",\n left: 0,\n right: 0,\n }\n : {\n bottom: 0,\n flexDirection: \"column\",\n minHeight: \"100%\",\n top: 0,\n width: \"100%\",\n };\n\n return {\n display: \"flex\",\n flex: 1,\n height: \"100%\",\n position: \"absolute\",\n outline: \"none\",\n overflow: \"hidden\",\n MozUserSelect: \"text\",\n WebkitUserSelect: \"text\",\n msUserSelect: \"text\",\n userSelect: \"text\",\n ...style,\n ...directionSpecificParts,\n } as React.CSSProperties;\n }, [split, style]);\n\n const pane1DivStyle = { ...paneStyle, ...pane1Style };\n const pane2DivStyle = { ...paneStyle, ...pane2Style };\n const resizerStyle = React.useMemo(\n () => props.resizerStyle ?? {},\n [props.resizerStyle]\n );\n const resizerClasses = React.useMemo(\n () => classnames(\"Resizer\", !allowResize && \"disabled\"),\n [allowResize]\n );\n const splitPaneClasses = React.useMemo(\n () => classnames(\"SplitPane\", className, split, !allowResize && \"disabled\"),\n [className, split, allowResize]\n );\n const pane1Classes = React.useMemo(\n () => classnames(\"Pane1\", paneClassName, pane1ClassName),\n [paneClassName, pane1ClassName]\n );\n const pane2Classes = React.useMemo(\n () => classnames(\"Pane2\", paneClassName, pane2ClassName),\n [paneClassName, pane2ClassName]\n );\n\n const initializeDrag = React.useCallback(\n (x: number, y: number) => {\n // istanbul ignore next\n unFocus(splitPane.current?.ownerDocument);\n const newPosition = split === \"vertical\" ? x : y;\n onDragStarted && onDragStarted();\n setActive(true);\n setPosition(newPosition);\n },\n [onDragStarted, split]\n );\n\n const onTouchStart = React.useCallback(\n (event: TouchEvent) => {\n // istanbul ignore else\n if (allowResize) {\n initializeDrag(event.touches[0].clientX, event.touches[0].clientY);\n }\n },\n [allowResize, initializeDrag]\n );\n\n const processMove = React.useCallback(\n (x: number, y: number) => {\n // istanbul ignore next\n unFocus(splitPane.current?.ownerDocument);\n const isPrimaryFirst = primary === \"first\";\n const ref = isPrimaryFirst ? pane1.current : pane2.current;\n const ref2 = isPrimaryFirst ? pane2.current : pane1.current;\n const splitPaneDiv = splitPane.current;\n\n // istanbul ignore else\n if (ref && ref2 && splitPaneDiv) {\n const node = ref;\n const node2 = ref2;\n // istanbul ignore else\n if (node.getBoundingClientRect) {\n const width = node.getBoundingClientRect().width;\n const height = node.getBoundingClientRect().height;\n // istanbul ignore next\n const current = split === \"vertical\" ? x : y;\n // istanbul ignore next\n const oldSize = split === \"vertical\" ? width : height;\n let positionDelta = position - current;\n if (step) {\n // istanbul ignore next\n if (Math.abs(positionDelta) < step) {\n return;\n }\n // Integer division\n positionDelta = ~~(positionDelta / step) * step;\n }\n let sizeDelta = isPrimaryFirst ? positionDelta : -positionDelta;\n\n // istanbul ignore next\n const pane1Order = parseInt(\n node.ownerDocument?.defaultView?.getComputedStyle(node).order ??\n \"0\",\n 10\n );\n // istanbul ignore next\n const pane2Order = parseInt(\n node2.ownerDocument?.defaultView?.getComputedStyle(node2).order ??\n \"0\",\n 10\n );\n // istanbul ignore next\n if (pane1Order > pane2Order) {\n sizeDelta = -sizeDelta;\n }\n\n let newMaxSize = maxSize;\n // istanbul ignore next\n if (\n typeof maxSize === \"number\" &&\n maxSize !== undefined &&\n maxSize <= 0\n ) {\n if (split === \"vertical\") {\n newMaxSize = splitPaneDiv.getBoundingClientRect().width + maxSize;\n } else {\n newMaxSize =\n splitPaneDiv.getBoundingClientRect().height + maxSize;\n }\n }\n\n let newSize = oldSize - sizeDelta;\n const newPosition = position - positionDelta;\n\n // istanbul ignore next\n if (typeof minSize === \"number\" && newSize < minSize) {\n newSize = minSize;\n } else if (\n typeof newMaxSize === \"number\" &&\n newMaxSize !== undefined &&\n newSize > newMaxSize\n ) {\n newSize = newMaxSize;\n } else {\n setPosition(newPosition);\n }\n\n onChange && onChange(newSize);\n setDraggedSize(newSize);\n isPrimaryFirst ? setPane1Size(newSize) : setPane2Size(newSize);\n }\n }\n },\n [maxSize, minSize, onChange, position, primary, split, step]\n );\n\n const onTouchMove = React.useCallback(\n (event: TouchEvent) => {\n // istanbul ignore next\n if (!allowResize || !active) return;\n processMove(event.touches[0].clientX, event.touches[0].clientY);\n },\n [active, allowResize, processMove]\n );\n\n const onMouseMove = React.useCallback(\n (event: MouseEvent) => {\n if (!allowResize || !active) return;\n processMove(event.clientX, event.clientY);\n },\n [active, allowResize, processMove]\n );\n\n const onMouseDown = React.useCallback(\n (event: MouseEvent) => {\n // istanbul ignore else\n if (allowResize) {\n event.preventDefault();\n initializeDrag(event.clientX, event.clientY);\n }\n },\n [allowResize, initializeDrag]\n );\n\n const processResizeFinished = React.useCallback(() => {\n // istanbul ignore else\n if (undefined !== draggedSize && allowResize && active) {\n onDragFinished && onDragFinished(draggedSize);\n }\n setActive(false);\n }, [draggedSize, allowResize, active, onDragFinished]);\n\n const onMouseUp = React.useCallback(\n (event: MouseEvent) => {\n event.preventDefault();\n processResizeFinished();\n },\n [processResizeFinished]\n );\n\n React.useEffect(() => {\n // istanbul ignore next\n const ownerDoc = splitPane.current?.ownerDocument;\n // istanbul ignore next\n if (!ownerDoc) return;\n\n ownerDoc.addEventListener(\"mouseup\", onMouseUp);\n ownerDoc.addEventListener(\"mousemove\", onMouseMove);\n ownerDoc.addEventListener(\"touchmove\", onTouchMove);\n return () => {\n ownerDoc.removeEventListener(\"mouseup\", onMouseUp);\n ownerDoc.removeEventListener(\"mousemove\", onMouseMove);\n ownerDoc.removeEventListener(\"touchmove\", onTouchMove);\n };\n }, [onMouseMove, onMouseUp, onTouchMove]);\n\n return (\n <div className={splitPaneClasses} ref={splitPane} style={splitPaneStyle}>\n <Pane\n className={pane1Classes}\n key=\"pane1\"\n eleRef={pane1}\n size={pane1Size}\n split={split}\n style={pane1DivStyle}\n >\n {notNullChildren[0]}\n </Pane>\n <Resizer\n className={resizerClasses}\n onClick={onResizerClick}\n onDoubleClick={onResizerDoubleClick}\n onMouseDown={onMouseDown}\n onTouchStart={onTouchStart}\n onTouchEnd={processResizeFinished}\n key=\"resizer\"\n split={split}\n style={resizerStyle}\n />\n <Pane\n className={pane2Classes}\n key=\"pane2\"\n eleRef={pane2}\n size={pane2Size}\n split={split}\n style={pane2DivStyle}\n >\n {notNullChildren[1]}\n </Pane>\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SplitPane.js","sourceRoot":"","sources":["../../../../../src/appui-react/content/split-pane/SplitPane.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 ContentView\n */\n\nimport * as React from \"react\";\nimport classnames from \"classnames\";\nimport { Pane } from \"./Pane\";\nimport { Resizer } from \"./Resizer\";\n\n/**\n * Props for [[SplitPane]] component\n * @public\n */\nexport interface SplitPaneProps {\n /** Pass false to disable resizing */\n allowResize?: boolean;\n /** The array of two react nodes, one for each pane. */\n children: React.ReactNode[];\n /** Determines which pane maintains its size when browser window is resized.*/\n primary?: \"first\" | \"second\";\n\n minSize?: string | number;\n /** You can limit the maximal size of the 'fixed' pane using the maxSize parameter with a positive value\n * (measured in pixels but state just a number). If you wrap the SplitPane into a container component\n * (yes you can, just remember the container has to have the relative or absolute positioning), then you'll need to limit\n * the movement of the splitter (resizer) at the end of the SplitPane (otherwise it can be dragged outside the SplitPane\n * and you don't catch it never more). For this purpose use the maxSize parameter with value 0. When dragged the splitter/resizer\n * will stop at the border of the SplitPane component and think this you'll be able to pick it again and drag it back then.\n * And more: if you set the maxSize to negative value (e.g. -200), then the splitter stops 200px before the border\n * (in other words it sets the minimal size of the 'resizable' pane in this case). This can be useful also in the\n * full-screen case of use. */\n maxSize?: string | number;\n /** Default initial size of primary pane */\n defaultSize?: string | number;\n /** Size of primary pane */\n size?: string | number;\n /** You can use the step prop to only allow resizing in fixed increments. */\n step?: number;\n split?: \"vertical\" | \"horizontal\";\n /** This callback is invoked when a drag start. */\n onDragStarted?: () => void;\n /** This callback is invoked when a drag ends. */\n onDragFinished?: (newSize: number) => void;\n /** Callback is invoked with the current drag during a drag event.*/\n onChange?: (newSize: number) => void;\n /** Callback is invoked if user clicks on Resizer. */\n onResizerClick?: (event: MouseEvent) => void;\n /** Callback is invoked if user double clicks on Resizer. */\n onResizerDoubleClick?: (event: MouseEvent) => void;\n /** Styling to be applied to the main container */\n style?: React.CSSProperties;\n /** Styling to be applied to both panes */\n paneStyle?: React.CSSProperties;\n /** Styling to be applied to the first pane, with precedence over paneStyle */\n pane1Style?: React.CSSProperties;\n /** Styling to be applied to the second pane, with precedence over paneStyle */\n pane2Style?: React.CSSProperties;\n /** Styling to be applied to the resizer bar */\n resizerStyle?: React.CSSProperties;\n /** Class name to be added to the SplitPane div */\n className?: string;\n /** Class name to be added to each Pane's div */\n paneClassName?: string;\n /** Class name to be added to Pane1's div */\n pane1ClassName?: string;\n /** Class name to be added to Pane2's div */\n pane2ClassName?: string;\n}\n\nfunction unFocus(ownerDoc: Document | undefined) {\n // istanbul ignore next\n if (!ownerDoc) return;\n\n const docSelection = ownerDoc.getSelection();\n // istanbul ignore else\n if (docSelection) {\n docSelection.empty();\n } else {\n // istanbul ignore next\n try {\n const winSelection = ownerDoc.defaultView?.getSelection();\n winSelection?.removeAllRanges();\n } catch (_e) {}\n }\n}\n\nfunction getDefaultSize(\n defaultSize?: number | string,\n minSize?: string | number,\n maxSize?: string | number,\n draggedSize?: number\n) {\n // istanbul ignore next\n if (typeof draggedSize === \"number\") {\n const min = typeof minSize === \"number\" ? minSize : 0;\n const max =\n typeof maxSize === \"number\" && maxSize >= 0 ? maxSize : Infinity;\n return Math.max(min, Math.min(max, draggedSize));\n }\n if (defaultSize !== undefined) {\n return defaultSize;\n }\n return minSize;\n}\n\nfunction removeNullChildren(children: React.ReactNode[]) {\n return React.Children.toArray(children).filter((c) => c);\n}\n\n/**\n * Local TypeScript implementation of `SplitPane` from `react-split-pane` package since that\n * package is not regularly maintained.\n * See https://github.com/tomkp/react-split-pane/blob/master/LICENSE.\n * @public\n */\nexport function SplitPane(props: SplitPaneProps) {\n const {\n style,\n size,\n defaultSize,\n maxSize,\n children,\n paneStyle,\n pane1Style,\n pane2Style,\n className,\n paneClassName,\n pane1ClassName,\n pane2ClassName,\n onDragStarted,\n onDragFinished,\n step,\n onChange,\n onResizerClick,\n onResizerDoubleClick,\n } = props;\n\n // honor same defaults as react-split-pane\n const allowResize = React.useMemo(\n () => (undefined !== props.allowResize ? props.allowResize : true),\n [props.allowResize]\n );\n const minSize = React.useMemo(\n () => (undefined !== props.minSize ? props.minSize : 50),\n [props.minSize]\n );\n const primary = React.useMemo(\n () => (undefined !== props.primary ? props.primary : \"first\"),\n [props.primary]\n );\n const split = React.useMemo(\n () => (undefined !== props.split ? props.split : \"vertical\"),\n [props.split]\n );\n const initialSize =\n size !== undefined ? size : getDefaultSize(defaultSize, minSize, maxSize);\n\n const [position, setPosition] = React.useState(0);\n const [draggedSize, setDraggedSize] = React.useState<number | undefined>();\n const [active, setActive] = React.useState(false);\n const [pane1Size, setPane1Size] = React.useState(() =>\n primary === \"first\" ? initialSize : undefined\n );\n const [pane2Size, setPane2Size] = React.useState(() =>\n primary === \"second\" ? initialSize : undefined\n );\n const splitPane = React.useRef<HTMLDivElement>(null);\n const pane1 = React.useRef<HTMLDivElement>(null);\n const pane2 = React.useRef<HTMLDivElement>(null);\n const notNullChildren = React.useMemo(\n () => removeNullChildren(children),\n [children]\n );\n\n React.useEffect(() => {\n primary === \"first\" ? setPane1Size(initialSize) : setPane2Size(initialSize);\n primary === \"first\" ? setPane2Size(undefined) : setPane1Size(undefined);\n }, [initialSize, primary]);\n\n const splitPaneStyle = React.useMemo(() => {\n const directionSpecificParts =\n split === \"vertical\"\n ? {\n flexDirection: \"row\",\n left: 0,\n right: 0,\n }\n : {\n bottom: 0,\n flexDirection: \"column\",\n minHeight: \"100%\",\n top: 0,\n width: \"100%\",\n };\n\n return {\n display: \"flex\",\n flex: 1,\n height: \"100%\",\n position: \"absolute\",\n outline: \"none\",\n overflow: \"hidden\",\n MozUserSelect: \"text\",\n WebkitUserSelect: \"text\",\n msUserSelect: \"text\",\n userSelect: \"text\",\n ...style,\n ...directionSpecificParts,\n } as React.CSSProperties;\n }, [split, style]);\n\n const pane1DivStyle = { ...paneStyle, ...pane1Style };\n const pane2DivStyle = { ...paneStyle, ...pane2Style };\n const resizerStyle = React.useMemo(\n () => props.resizerStyle ?? {},\n [props.resizerStyle]\n );\n const resizerClasses = React.useMemo(\n () => classnames(\"Resizer\", !allowResize && \"disabled\"),\n [allowResize]\n );\n const splitPaneClasses = React.useMemo(\n () => classnames(\"SplitPane\", className, split, !allowResize && \"disabled\"),\n [className, split, allowResize]\n );\n const pane1Classes = React.useMemo(\n () => classnames(\"Pane1\", paneClassName, pane1ClassName),\n [paneClassName, pane1ClassName]\n );\n const pane2Classes = React.useMemo(\n () => classnames(\"Pane2\", paneClassName, pane2ClassName),\n [paneClassName, pane2ClassName]\n );\n\n const initializeDrag = React.useCallback(\n (x: number, y: number) => {\n // istanbul ignore next\n unFocus(splitPane.current?.ownerDocument);\n const newPosition = split === \"vertical\" ? x : y;\n onDragStarted && onDragStarted();\n setActive(true);\n setPosition(newPosition);\n },\n [onDragStarted, split]\n );\n\n const onTouchStart = React.useCallback(\n (event: TouchEvent) => {\n // istanbul ignore else\n if (allowResize) {\n initializeDrag(event.touches[0].clientX, event.touches[0].clientY);\n }\n },\n [allowResize, initializeDrag]\n );\n\n const processMove = React.useCallback(\n (x: number, y: number) => {\n // istanbul ignore next\n unFocus(splitPane.current?.ownerDocument);\n const isPrimaryFirst = primary === \"first\";\n const ref = isPrimaryFirst ? pane1.current : pane2.current;\n const ref2 = isPrimaryFirst ? pane2.current : pane1.current;\n const splitPaneDiv = splitPane.current;\n\n // istanbul ignore else\n if (ref && ref2 && splitPaneDiv) {\n const node = ref;\n const node2 = ref2;\n // istanbul ignore else\n if (node.getBoundingClientRect) {\n const width = node.getBoundingClientRect().width;\n const height = node.getBoundingClientRect().height;\n // istanbul ignore next\n const current = split === \"vertical\" ? x : y;\n // istanbul ignore next\n const oldSize = split === \"vertical\" ? width : height;\n let positionDelta = position - current;\n if (step) {\n // istanbul ignore next\n if (Math.abs(positionDelta) < step) {\n return;\n }\n // Integer division\n positionDelta = ~~(positionDelta / step) * step;\n }\n let sizeDelta = isPrimaryFirst ? positionDelta : -positionDelta;\n\n // istanbul ignore next\n const pane1Order = parseInt(\n node.ownerDocument?.defaultView?.getComputedStyle(node).order ??\n \"0\",\n 10\n );\n // istanbul ignore next\n const pane2Order = parseInt(\n node2.ownerDocument?.defaultView?.getComputedStyle(node2).order ??\n \"0\",\n 10\n );\n // istanbul ignore next\n if (pane1Order > pane2Order) {\n sizeDelta = -sizeDelta;\n }\n\n let newMaxSize = maxSize;\n // istanbul ignore next\n if (\n typeof maxSize === \"number\" &&\n maxSize !== undefined &&\n maxSize <= 0\n ) {\n if (split === \"vertical\") {\n newMaxSize = splitPaneDiv.getBoundingClientRect().width + maxSize;\n } else {\n newMaxSize =\n splitPaneDiv.getBoundingClientRect().height + maxSize;\n }\n }\n\n let newSize = oldSize - sizeDelta;\n const newPosition = position - positionDelta;\n\n // istanbul ignore next\n if (typeof minSize === \"number\" && newSize < minSize) {\n newSize = minSize;\n } else if (\n typeof newMaxSize === \"number\" &&\n newMaxSize !== undefined &&\n newSize > newMaxSize\n ) {\n newSize = newMaxSize;\n } else {\n setPosition(newPosition);\n }\n\n onChange && onChange(newSize);\n setDraggedSize(newSize);\n isPrimaryFirst ? setPane1Size(newSize) : setPane2Size(newSize);\n }\n }\n },\n [maxSize, minSize, onChange, position, primary, split, step]\n );\n\n const onTouchMove = React.useCallback(\n (event: TouchEvent) => {\n // istanbul ignore next\n if (!allowResize || !active) return;\n processMove(event.touches[0].clientX, event.touches[0].clientY);\n },\n [active, allowResize, processMove]\n );\n\n const onMouseMove = React.useCallback(\n (event: MouseEvent) => {\n if (!allowResize || !active) return;\n processMove(event.clientX, event.clientY);\n },\n [active, allowResize, processMove]\n );\n\n const onMouseDown = React.useCallback(\n (event: MouseEvent) => {\n // istanbul ignore else\n if (allowResize) {\n event.preventDefault();\n initializeDrag(event.clientX, event.clientY);\n }\n },\n [allowResize, initializeDrag]\n );\n\n const processResizeFinished = React.useCallback(() => {\n // istanbul ignore else\n if (undefined !== draggedSize && allowResize && active) {\n onDragFinished && onDragFinished(draggedSize);\n }\n setActive(false);\n }, [draggedSize, allowResize, active, onDragFinished]);\n\n const onMouseUp = React.useCallback(\n (event: MouseEvent) => {\n event.preventDefault();\n processResizeFinished();\n },\n [processResizeFinished]\n );\n\n React.useEffect(() => {\n // istanbul ignore next\n const ownerDoc = splitPane.current?.ownerDocument;\n // istanbul ignore next\n if (!ownerDoc) return;\n\n ownerDoc.addEventListener(\"mouseup\", onMouseUp);\n ownerDoc.addEventListener(\"mousemove\", onMouseMove);\n ownerDoc.addEventListener(\"touchmove\", onTouchMove);\n return () => {\n ownerDoc.removeEventListener(\"mouseup\", onMouseUp);\n ownerDoc.removeEventListener(\"mousemove\", onMouseMove);\n ownerDoc.removeEventListener(\"touchmove\", onTouchMove);\n };\n }, [onMouseMove, onMouseUp, onTouchMove]);\n\n return (\n <div className={splitPaneClasses} ref={splitPane} style={splitPaneStyle}>\n <Pane\n className={pane1Classes}\n key=\"pane1\"\n eleRef={pane1}\n size={pane1Size}\n split={split}\n style={pane1DivStyle}\n >\n {notNullChildren[0]}\n </Pane>\n <Resizer\n className={resizerClasses}\n onClick={onResizerClick}\n onDoubleClick={onResizerDoubleClick}\n onMouseDown={onMouseDown}\n onTouchStart={onTouchStart}\n onTouchEnd={processResizeFinished}\n key=\"resizer\"\n split={split}\n style={resizerStyle}\n />\n <Pane\n className={pane2Classes}\n key=\"pane2\"\n eleRef={pane2}\n size={pane2Size}\n split={split}\n style={pane2DivStyle}\n >\n {notNullChildren[1]}\n </Pane>\n </div>\n );\n}\n"]}
|
|
@@ -53,11 +53,10 @@ class CursorPopupMenu extends React.PureComponent {
|
|
|
53
53
|
}
|
|
54
54
|
};
|
|
55
55
|
this._handleRefSet = (popupDiv) => {
|
|
56
|
-
|
|
57
|
-
const parentWindow = (_a = popupDiv === null || popupDiv === void 0 ? void 0 : popupDiv.ownerDocument.defaultView) !== null && _a !== void 0 ? _a : undefined;
|
|
56
|
+
const parentWindow = popupDiv?.ownerDocument.defaultView ?? undefined;
|
|
58
57
|
// if the window is not a pop out set to undefined
|
|
59
58
|
this._hostChildWindowId = UiFramework_1.UiFramework.childWindows.findId(parentWindow);
|
|
60
|
-
core_bentley_1.Logger.logInfo(UiFramework_1.UiFramework.loggerCategory(UiFramework_1.UiFramework), `Cursor Menu for ${
|
|
59
|
+
core_bentley_1.Logger.logInfo(UiFramework_1.UiFramework.loggerCategory(UiFramework_1.UiFramework), `Cursor Menu for ${this._hostChildWindowId ?? "main"} window`);
|
|
61
60
|
};
|
|
62
61
|
this._hideContextMenu = () => {
|
|
63
62
|
this.setState({ menuVisible: false });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CursorMenu.js","sourceRoot":"","sources":["../../../../../src/appui-react/cursor/cursormenu/CursorMenu.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAE/B,kDAAsD,CAAC,kBAAkB;AACzE,2DAAgE;AAEhE,oDAAwD;AACxD,8EAA2E;AAC3E,mDAAgD;AAChD,sDAA6C;AAa7C;;GAEG;AACH,uBAAuB;AACvB,MAAa,eAAgB,SAAQ,KAAK,CAAC,aAG1C;IAHD;;QAIU,eAAU,GAAG,KAAK,CAAC,CAAC,mGAAmG;QAG/H,gBAAgB;QACS,UAAK,GAAyB;YACrD,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,CAAC;YACR,WAAW,EAAE,KAAK;YAClB,KAAK,EAAE,SAAS;SACjB,CAAC;QAEM,uBAAkB,GAAG,CAAC,IAAqB,EAAQ,EAAE;YAC3D,0BAA0B;YAC1B,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO;YAE7B,0BAA0B;YAC1B,IACE,6CAAqB,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACtD,mCAAoB,CAAC,gBAAgB;aACtC,CAAC,EACF;gBACA,MAAM,QAAQ,GAAG,yBAAW,CAAC,iBAAiB,EAAE,CAAC;gBACjD,IAAI,QAAQ,IAAI,IAAI,CAAC,kBAAkB,KAAK,QAAQ,CAAC,aAAa,EAAE;oBAClE,IAAI,CAAC,QAAQ,CAAC;wBACZ,WAAW,EAAE,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;wBACxD,KAAK,EAAE,QAAQ,CAAC,KAAK;wBACrB,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;wBAC1B,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;qBAC3B,CAAC,CAAC;iBACJ;qBAAM;oBACL,IAAI,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;iBACzD;aACF;QACH,CAAC,CAAC;QAYM,kBAAa,GAAG,CAAC,QAA4B,EAAE,EAAE
|
|
1
|
+
{"version":3,"file":"CursorMenu.js","sourceRoot":"","sources":["../../../../../src/appui-react/cursor/cursormenu/CursorMenu.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Cursor\n */\n\nimport * as React from \"react\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { GlobalContextMenu } from \"@itwin/core-react\"; // ContextSubMenu,\nimport { SessionStateActionId } from \"../../redux/SessionState\";\nimport type { MenuItemProps } from \"../../shared/MenuItem\";\nimport { MenuItemHelpers } from \"../../shared/MenuItem\";\nimport { SyncUiEventDispatcher } from \"../../syncui/SyncUiEventDispatcher\";\nimport { UiFramework } from \"../../UiFramework\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport type { UiSyncEventArgs } from \"../../syncui/UiSyncEvent\";\n\n/** State for [[CursorPopupMenu]] component\n * @alpha\n */\ninterface CursorPopupMenuState {\n menuX: number;\n menuY: number;\n menuVisible: boolean;\n items?: MenuItemProps[];\n}\n\n/** Popup Menu to show at cursor typically used by tools to provide a right-click context menu.\n * @alpha\n */\n// istanbul ignore next\nexport class CursorPopupMenu extends React.PureComponent<\n CommonProps,\n CursorPopupMenuState\n> {\n private _isMounted = false; // used to ensure _handleSyncUiEvent callback is not processed after componentWillUnmount is called\n private _hostChildWindowId?: string;\n\n /** @internal */\n public override readonly state: CursorPopupMenuState = {\n menuX: 0,\n menuY: 0,\n menuVisible: false,\n items: undefined,\n };\n\n private _handleSyncUiEvent = (args: UiSyncEventArgs): void => {\n /* istanbul ignore next */\n if (!this._isMounted) return;\n\n /* istanbul ignore else */\n if (\n SyncUiEventDispatcher.hasEventOfInterest(args.eventIds, [\n SessionStateActionId.UpdateCursorMenu,\n ])\n ) {\n const menuData = UiFramework.getCursorMenuData();\n if (menuData && this._hostChildWindowId === menuData.childWindowId) {\n this.setState({\n menuVisible: menuData.items && menuData.items.length > 0,\n items: menuData.items,\n menuX: menuData.position.x,\n menuY: menuData.position.y,\n });\n } else {\n this.setState({ menuVisible: false, items: undefined });\n }\n }\n };\n\n public override componentDidMount() {\n this._isMounted = true;\n SyncUiEventDispatcher.onSyncUiEvent.addListener(this._handleSyncUiEvent);\n }\n\n public override componentWillUnmount() {\n this._isMounted = false;\n SyncUiEventDispatcher.onSyncUiEvent.removeListener(this._handleSyncUiEvent);\n }\n\n private _handleRefSet = (popupDiv: HTMLElement | null) => {\n const parentWindow = popupDiv?.ownerDocument.defaultView ?? undefined;\n // if the window is not a pop out set to undefined\n this._hostChildWindowId = UiFramework.childWindows.findId(parentWindow);\n Logger.logInfo(\n UiFramework.loggerCategory(UiFramework),\n `Cursor Menu for ${this._hostChildWindowId ?? \"main\"} window`\n );\n };\n\n public override render(): React.ReactNode {\n const { menuX, menuY, items, menuVisible } = this.state;\n const onClose = this._hideContextMenu;\n\n return (\n <div className=\"uifw-cursor-menu-container-div\" ref={this._handleRefSet}>\n {items && items.length > 0 && menuVisible && (\n <GlobalContextMenu\n className={this.props.className}\n style={this.props.style}\n identifier=\"cursor-popup-menu\"\n x={menuX}\n y={menuY}\n opened={menuVisible}\n onEsc={onClose}\n onOutsideClick={onClose}\n edgeLimit={false}\n autoflip={true}\n >\n {MenuItemHelpers.createMenuItemNodes(\n MenuItemHelpers.createMenuItems(items, this._itemPicked)\n )}\n </GlobalContextMenu>\n )}\n </div>\n );\n }\n\n private _hideContextMenu = () => {\n this.setState({ menuVisible: false });\n };\n\n private _itemPicked = (): void => {\n this._hideContextMenu();\n };\n}\n"]}
|
|
@@ -19,12 +19,10 @@ const classnames_1 = require("classnames");
|
|
|
19
19
|
*@internal
|
|
20
20
|
*/
|
|
21
21
|
function useActiveContentControlId() {
|
|
22
|
-
|
|
23
|
-
const [activeContentId, setActiveContentId] = React.useState((_a = UiFramework_1.UiFramework.content.getActiveContentControl()) === null || _a === void 0 ? void 0 : _a.uniqueId);
|
|
22
|
+
const [activeContentId, setActiveContentId] = React.useState(UiFramework_1.UiFramework.content.getActiveContentControl()?.uniqueId);
|
|
24
23
|
React.useEffect(() => {
|
|
25
24
|
const onActiveContentChanged = (_args) => {
|
|
26
|
-
|
|
27
|
-
setActiveContentId((_a = UiFramework_1.UiFramework.content.getActiveContentControl()) === null || _a === void 0 ? void 0 : _a.uniqueId);
|
|
25
|
+
setActiveContentId(UiFramework_1.UiFramework.content.getActiveContentControl()?.uniqueId);
|
|
28
26
|
};
|
|
29
27
|
// IModelApp.viewManager.onSelectedViewportChanged will often fire before UI components have mounted
|
|
30
28
|
// so use UiFramework.content.onActiveContentChangedEvent which will always trigger once all stage components
|
|
@@ -41,10 +39,9 @@ function useActiveContentControlId() {
|
|
|
41
39
|
SyncUiEventDispatcher_1.SyncUiEventId.FrontstageReady,
|
|
42
40
|
];
|
|
43
41
|
const handleSyncUiEvent = (args) => {
|
|
44
|
-
var _a;
|
|
45
42
|
// istanbul ignore else
|
|
46
43
|
if (syncIdsOfInterest.some((value) => args.eventIds.has(value))) {
|
|
47
|
-
setActiveContentId(
|
|
44
|
+
setActiveContentId(UiFramework_1.UiFramework.content.getActiveContentControl()?.uniqueId);
|
|
48
45
|
}
|
|
49
46
|
};
|
|
50
47
|
return SyncUiEventDispatcher_1.SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentDialog.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/ContentDialog.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,gCAA8B;AAC9B,+BAA+B;AAE/B,kDAA2C;AAE3C,2EAGyC;AACzC,gDAA6C;AAC7C,2CAAoC;AAGpC,uBAAuB;AACvB;;GAEG;AACH,SAAgB,yBAAyB
|
|
1
|
+
{"version":3,"file":"ContentDialog.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/ContentDialog.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Dialog\n */\n\nimport \"./ContentDialog.scss\";\nimport * as React from \"react\";\nimport type { DialogProps } from \"@itwin/core-react\";\nimport { Dialog } from \"@itwin/core-react\";\nimport type { ActiveContentChangedEventArgs } from \"../framework/FrameworkContent\";\nimport {\n SyncUiEventDispatcher,\n SyncUiEventId,\n} from \"../syncui/SyncUiEventDispatcher\";\nimport { UiFramework } from \"../UiFramework\";\nimport classnames from \"classnames\";\nimport type { UiSyncEventArgs } from \"../syncui/UiSyncEvent\";\n\n// istanbul ignore next\n/**\n *@internal\n */\nexport function useActiveContentControlId(): string | undefined {\n const [activeContentId, setActiveContentId] = React.useState(\n UiFramework.content.getActiveContentControl()?.uniqueId\n );\n\n React.useEffect(() => {\n const onActiveContentChanged = (_args: ActiveContentChangedEventArgs) => {\n setActiveContentId(\n UiFramework.content.getActiveContentControl()?.uniqueId\n );\n };\n\n // IModelApp.viewManager.onSelectedViewportChanged will often fire before UI components have mounted\n // so use UiFramework.content.onActiveContentChangedEvent which will always trigger once all stage components\n // are loaded and when the IModelApp.viewManager.selectedView changes.\n UiFramework.content.onActiveContentChangedEvent.addListener(\n onActiveContentChanged\n );\n return () => {\n UiFramework.content.onActiveContentChangedEvent.removeListener(\n onActiveContentChanged\n );\n };\n }, []);\n\n React.useEffect(() => {\n const syncIdsOfInterest = [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ContentControlActivated,\n SyncUiEventId.FrontstageReady,\n ];\n const handleSyncUiEvent = (args: UiSyncEventArgs): void => {\n // istanbul ignore else\n if (\n syncIdsOfInterest.some((value: string): boolean =>\n args.eventIds.has(value)\n )\n ) {\n setActiveContentId(\n UiFramework.content.getActiveContentControl()?.uniqueId\n );\n }\n };\n\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\n }, []);\n\n return activeContentId;\n}\n\n/** Properties for the [[ContentDialog]] component\n * @public\n */\nexport interface ContentDialogProps extends DialogProps {\n dialogId: string;\n movable?: boolean;\n children: React.ReactNode;\n}\n\n/** Content Dialog React component uses the Dialog component with a modal={false} prop.\n * It controls the z-index to keep the focused dialog above content but below widgets.\n * @public\n */\nexport function ContentDialog(props: ContentDialogProps) {\n const {\n className,\n children,\n dialogId,\n style,\n modal,\n modelessId,\n onModelessPointerDown,\n ...otherProps\n } = props;\n const activeContentControlId = useActiveContentControlId();\n // istanbul ignore next\n const dialogClassName = React.useMemo(\n () =>\n classnames(\n activeContentControlId === dialogId\n ? \"active-content-dialog\"\n : \"inactive-content-dialog\",\n className\n ),\n [activeContentControlId, className, dialogId]\n );\n\n const [zIndex, setZIndex] = React.useState(\n UiFramework.content.dialogs.getZIndex(dialogId)\n );\n const updateZIndex = React.useCallback(() => {\n const newZ = UiFramework.content.dialogs.getZIndex(dialogId);\n // istanbul ignore else\n if (newZ !== zIndex) {\n setZIndex(newZ);\n }\n }, [dialogId, zIndex]);\n\n return (\n <Dialog\n className={dialogClassName}\n data-item-type=\"content-dialog\"\n data-item-id={dialogId}\n resizable={true}\n movable={true}\n trapFocus={false}\n modal={false}\n {...otherProps}\n modelessId={dialogId}\n onModelessPointerDown={(event) =>\n UiFramework.content.dialogs.handlePointerDownEvent(\n event,\n dialogId,\n updateZIndex\n )\n }\n style={{ zIndex, ...style }}\n >\n {children}\n </Dialog>\n );\n}\n"]}
|
|
@@ -64,7 +64,7 @@ class DialogManagerBase {
|
|
|
64
64
|
if (!id)
|
|
65
65
|
id = `Dialog-${++DialogManagerBase._sId}`;
|
|
66
66
|
// istanbul ignore next
|
|
67
|
-
const owningDoc = parentDocument
|
|
67
|
+
const owningDoc = parentDocument ?? document;
|
|
68
68
|
this.pushDialog({ reactNode: dialog, id, parentDocument: owningDoc });
|
|
69
69
|
}
|
|
70
70
|
/** @internal */
|
|
@@ -126,8 +126,7 @@ class DialogRendererBase extends React.PureComponent {
|
|
|
126
126
|
parentDocument: null,
|
|
127
127
|
};
|
|
128
128
|
this._handleRefSet = (popupDiv) => {
|
|
129
|
-
|
|
130
|
-
this.setState({ parentDocument: (_a = popupDiv === null || popupDiv === void 0 ? void 0 : popupDiv.ownerDocument) !== null && _a !== void 0 ? _a : null });
|
|
129
|
+
this.setState({ parentDocument: popupDiv?.ownerDocument ?? null });
|
|
131
130
|
};
|
|
132
131
|
this._handleDialogChangedEvent = (_args) => {
|
|
133
132
|
this.forceUpdate();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DialogManagerBase.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/DialogManagerBase.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Dialog\n */\n\nimport * as React from \"react\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport { UiEvent } from \"@itwin/appui-abstract\";\nimport { UiFramework } from \"../UiFramework\";\nimport { getCssVariableAsNumber } from \"@itwin/core-react\";\n\n/** Dialog Stack Changed Event Args class.\n * @public\n */\nexport interface DialogChangedEventArgs {\n dialogCount: number;\n activeDialog: React.ReactNode | undefined;\n}\n\n/** Dialog Changed Event class.\n * @public\n */\nexport class DialogChangedEvent extends UiEvent<DialogChangedEventArgs> {}\n\n/** Information maintained by a Dialog Manager about a dialog\n * @public\n */\nexport interface DialogInfo {\n reactNode: React.ReactNode;\n id: string;\n parentDocument: Document;\n}\n\n/** Used if the 'dialog' z-index CSS variable cannot be read */\nconst ZINDEX_DEFAULT = 12000;\n\n/** Dialog Manager class.\n * @internal\n */\nexport class DialogManagerBase {\n private static _sId = 0;\n private _dialogs: DialogInfo[] = new Array<DialogInfo>();\n private _onDialogChangedEvent: DialogChangedEvent;\n private static _topZIndex = ZINDEX_DEFAULT;\n\n constructor(onDialogChangedEvent: DialogChangedEvent) {\n this._onDialogChangedEvent = onDialogChangedEvent;\n }\n\n /** Initialize the modeless dialog manager */\n public static initialize(): void {\n DialogManagerBase._topZIndex = DialogManagerBase.getDialogZIndexDefault();\n }\n\n public static get topZIndex(): number {\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 public get onDialogChangedEvent(): DialogChangedEvent {\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 // istanbul ignore next\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 // istanbul ignore next\n const owningDoc = parentDocument ?? document;\n this.pushDialog({ reactNode: dialog, id, parentDocument: owningDoc });\n }\n\n /** @internal */\n public pushDialog(dialogInfo: DialogInfo): void {\n this._dialogs.push(dialogInfo);\n this.emitDialogChangedEvent();\n }\n\n public closeDialog(dialog?: React.ReactNode): void {\n let targetDialog = dialog;\n if (!dialog) 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 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 * as React from \"react\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport { UiEvent } from \"@itwin/appui-abstract\";\nimport { UiFramework } from \"../UiFramework\";\nimport { getCssVariableAsNumber } from \"@itwin/core-react\";\n\n/** Dialog Stack Changed Event Args class.\n * @public\n */\nexport interface DialogChangedEventArgs {\n dialogCount: number;\n activeDialog: React.ReactNode | undefined;\n}\n\n/** Dialog Changed Event class.\n * @public\n */\nexport class DialogChangedEvent extends UiEvent<DialogChangedEventArgs> {}\n\n/** Information maintained by a Dialog Manager about a dialog\n * @public\n */\nexport interface DialogInfo {\n reactNode: React.ReactNode;\n id: string;\n parentDocument: Document;\n}\n\n/** Used if the 'dialog' z-index CSS variable cannot be read */\nconst ZINDEX_DEFAULT = 12000;\n\n/** Dialog Manager class.\n * @internal\n */\nexport class DialogManagerBase {\n private static _sId = 0;\n private _dialogs: DialogInfo[] = new Array<DialogInfo>();\n private _onDialogChangedEvent: DialogChangedEvent;\n private static _topZIndex = ZINDEX_DEFAULT;\n\n constructor(onDialogChangedEvent: DialogChangedEvent) {\n this._onDialogChangedEvent = onDialogChangedEvent;\n }\n\n /** Initialize the modeless dialog manager */\n public static initialize(): void {\n DialogManagerBase._topZIndex = DialogManagerBase.getDialogZIndexDefault();\n }\n\n public static get topZIndex(): number {\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 public get onDialogChangedEvent(): DialogChangedEvent {\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 // istanbul ignore next\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 // istanbul ignore next\n const owningDoc = parentDocument ?? document;\n this.pushDialog({ reactNode: dialog, id, parentDocument: owningDoc });\n }\n\n /** @internal */\n public pushDialog(dialogInfo: DialogInfo): void {\n this._dialogs.push(dialogInfo);\n this.emitDialogChangedEvent();\n }\n\n public closeDialog(dialog?: React.ReactNode): void {\n let targetDialog = dialog;\n if (!dialog) 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 private _handleDialogChangedEvent = (_args: DialogChangedEventArgs) => {\n this.forceUpdate();\n };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrontstageDef.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageDef.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EAEd,MAAM,2BAA2B,CAAC;AAYnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAmB,MAAM,8BAA8B,CAAC;AAG9E,OAAO,EAAE,SAAS,EAAc,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAI5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAI3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAIrD,gBAAgB;AAChB,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED,gBAAgB;AAChB,MAAM,WAAW,uCACf,SAAQ,mBAAmB;IAC3B,KAAK,EAAE,aAAa,GAAG,SAAS,CAAC;CAClC;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,cAAc,CAAC,CAAmB;IAC1C,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,aAAa,CAAC,CAAY;IAClC,OAAO,CAAC,UAAU,CAAC,CAAY;IAC/B,OAAO,CAAC,oBAAoB,CAAC,CAAY;IACzC,OAAO,CAAC,eAAe,CAAC,CAAY;IACpC,OAAO,CAAC,SAAS,CAAC,CAAgB;IAClC,OAAO,CAAC,UAAU,CAAC,CAAgB;IACnC,OAAO,CAAC,WAAW,CAAC,CAAgB;IACpC,OAAO,CAAC,YAAY,CAAC,CAAgB;IACrC,OAAO,CAAC,iBAAiB,CAAC,CAAmB;IAC7C,OAAO,CAAC,aAAa,CAAC,CAAe;IACrC,OAAO,CAAC,mBAAmB,CAAC,CAAqB;IACjD,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,OAAO,CAAC,qBAAqB,CAAC,CAAuB;IACrD,OAAO,CAAC,wBAAwB,CAAC,CAAmB;IACpD,OAAO,CAAC,uBAAuB,CAAC,CAAS;IACzC,OAAO,CAAC,SAAS,CAAC,CAAmB;IAErC,IAAW,EAAE,IAAI,MAAM,CAEtB;IACD,IAAW,KAAK,IAAI,MAAM,CAEzB;IACD,IAAW,OAAO,IAAI,MAAM,CAE3B;IACD,IAAW,oBAAoB,IAAI,oBAAoB,GAAG,SAAS,CAElE;IACD,IAAW,uBAAuB,iCAEjC;IAED,IAAW,YAAY,IAAI,SAAS,GAAG,SAAS,CAE/C;IACD,IAAW,SAAS,IAAI,SAAS,GAAG,SAAS,CAE5C;IACD,IAAW,mBAAmB,IAAI,SAAS,GAAG,SAAS,CAEtD;IACD,IAAW,cAAc,IAAI,SAAS,GAAG,SAAS,CAEjD;IAED,IAAW,QAAQ,IAAI,aAAa,GAAG,SAAS,CAE/C;IACD,IAAW,SAAS,IAAI,aAAa,GAAG,SAAS,CAEhD;IACD,IAAW,UAAU,IAAI,aAAa,GAAG,SAAS,CAEjD;IACD,IAAW,WAAW,IAAI,aAAa,GAAG,SAAS,CAElD;IAED,IAAW,gBAAgB,IAAI,gBAAgB,GAAG,SAAS,CAE1D;IACD,IAAW,YAAY,IAAI,YAAY,GAAG,SAAS,CAElD;IACD,IAAW,kBAAkB,IAAI,kBAAkB,GAAG,SAAS,CAE9D;IAED,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,iBAAiB;
|
|
1
|
+
{"version":3,"file":"FrontstageDef.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageDef.tsx"],"names":[],"mappings":"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"}
|
|
@@ -103,51 +103,35 @@ class FrontstageDef {
|
|
|
103
103
|
const panel = nineZone.panels[panelSide];
|
|
104
104
|
const location = this.toStagePanelLocation(panelSide);
|
|
105
105
|
const panelDef = this.getStagePanelDef(location);
|
|
106
|
-
if (panelDef)
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
for (const widgetId of panel.widgets) {
|
|
113
|
-
const widget = nineZone.widgets[widgetId];
|
|
114
|
-
// istanbul ignore else
|
|
115
|
-
if (widget) {
|
|
116
|
-
for (const tabId of widget.tabs) {
|
|
117
|
-
const widgetDef = this.findWidgetDef(tabId);
|
|
118
|
-
if (widgetDef) {
|
|
119
|
-
let widgetState = WidgetState_1.WidgetState.Open;
|
|
120
|
-
if (widget.minimized || tabId !== widget.activeTabId)
|
|
121
|
-
widgetState = WidgetState_1.WidgetState.Closed;
|
|
122
|
-
widgetMap.set(widgetDef, widgetState);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}
|
|
106
|
+
if (!panelDef)
|
|
107
|
+
continue;
|
|
108
|
+
const panelState = panel.collapsed
|
|
109
|
+
? StagePanelDef_1.StagePanelState.Minimized
|
|
110
|
+
: StagePanelDef_1.StagePanelState.Open;
|
|
111
|
+
panelMap.set(panelDef, panelState);
|
|
127
112
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
widgetMap.set(widgetDef, widgetState);
|
|
139
|
-
}
|
|
113
|
+
for (const widgetDef of this.widgetDefs) {
|
|
114
|
+
const widgetId = widgetDef.id;
|
|
115
|
+
if (widgetDef === this.toolSettings) {
|
|
116
|
+
if (!nineZone.toolSettings) {
|
|
117
|
+
widgetMap.set(widgetDef, WidgetState_1.WidgetState.Hidden);
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
else if (nineZone.toolSettings.type === "docked") {
|
|
121
|
+
widgetMap.set(widgetDef, WidgetState_1.WidgetState.Open);
|
|
122
|
+
continue;
|
|
140
123
|
}
|
|
141
124
|
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
widgetMap.set(toolSettingsDef, WidgetState_1.WidgetState.Hidden);
|
|
147
|
-
}
|
|
148
|
-
else if (nineZone.toolSettings.type === "docked") {
|
|
149
|
-
widgetMap.set(toolSettingsDef, WidgetState_1.WidgetState.Open);
|
|
125
|
+
const tabLocation = (0, appui_layout_react_1.getTabLocation)(nineZone, widgetId);
|
|
126
|
+
if (!tabLocation) {
|
|
127
|
+
widgetMap.set(widgetDef, WidgetState_1.WidgetState.Hidden);
|
|
128
|
+
continue;
|
|
150
129
|
}
|
|
130
|
+
const widget = nineZone.widgets[tabLocation.widgetId];
|
|
131
|
+
let widgetState = WidgetState_1.WidgetState.Open;
|
|
132
|
+
if (widget.minimized || widgetId !== widget.activeTabId)
|
|
133
|
+
widgetState = WidgetState_1.WidgetState.Closed;
|
|
134
|
+
widgetMap.set(widgetDef, widgetState);
|
|
151
135
|
}
|
|
152
136
|
}
|
|
153
137
|
triggerStateChangeEvents(oldState) {
|
|
@@ -192,8 +176,8 @@ class FrontstageDef {
|
|
|
192
176
|
}
|
|
193
177
|
handlePopouts(oldState) {
|
|
194
178
|
const newState = this.nineZoneState;
|
|
195
|
-
const oldPopouts =
|
|
196
|
-
const newPopouts =
|
|
179
|
+
const oldPopouts = oldState?.popoutWidgets.allIds || [];
|
|
180
|
+
const newPopouts = newState?.popoutWidgets.allIds || [];
|
|
197
181
|
const popoutsToClose = oldPopouts.filter((p) => !newPopouts.includes(p));
|
|
198
182
|
const popoutsToOpen = newPopouts.filter((p) => !oldPopouts.includes(p));
|
|
199
183
|
for (const popoutId of popoutsToClose) {
|
|
@@ -226,8 +210,7 @@ class FrontstageDef {
|
|
|
226
210
|
}
|
|
227
211
|
/** @internal */
|
|
228
212
|
get dispatch() {
|
|
229
|
-
|
|
230
|
-
return ((_a = this._dispatch) !== null && _a !== void 0 ? _a : (this._dispatch = (action) => {
|
|
213
|
+
return (this._dispatch ??= (action) => {
|
|
231
214
|
if (action.type === "RESIZE") {
|
|
232
215
|
InternalFrontstageManager_1.InternalFrontstageManager.nineZoneSize = core_react_1.Size.create(action.size);
|
|
233
216
|
}
|
|
@@ -235,7 +218,7 @@ class FrontstageDef {
|
|
|
235
218
|
if (!state)
|
|
236
219
|
return;
|
|
237
220
|
this.nineZoneState = (0, appui_layout_react_1.NineZoneStateReducer)(state, action);
|
|
238
|
-
})
|
|
221
|
+
});
|
|
239
222
|
}
|
|
240
223
|
/** @internal */
|
|
241
224
|
get timeTracker() {
|
|
@@ -544,13 +527,12 @@ class FrontstageDef {
|
|
|
544
527
|
* @internal
|
|
545
528
|
*/
|
|
546
529
|
getWidgetCurrentState(widgetDef) {
|
|
547
|
-
var _a, _b;
|
|
548
530
|
const state = this.nineZoneState;
|
|
549
531
|
// istanbul ignore else
|
|
550
532
|
if (state) {
|
|
551
|
-
const toolSettingsTabId =
|
|
533
|
+
const toolSettingsTabId = state.toolSettings?.tabId;
|
|
552
534
|
if (toolSettingsTabId === widgetDef.id &&
|
|
553
|
-
|
|
535
|
+
state.toolSettings?.type === "docked") {
|
|
554
536
|
return WidgetState_1.WidgetState.Open;
|
|
555
537
|
}
|
|
556
538
|
const location = (0, appui_layout_react_1.getTabLocation)(state, widgetDef.id);
|
|
@@ -891,9 +873,9 @@ exports.useActiveFrontstageDef = useActiveFrontstageDef;
|
|
|
891
873
|
*/
|
|
892
874
|
function useSpecificWidgetDef(widgetId) {
|
|
893
875
|
const frontstageDef = useActiveFrontstageDef();
|
|
894
|
-
const [widgetDef, setWidgetDef] = React.useState(() => frontstageDef
|
|
876
|
+
const [widgetDef, setWidgetDef] = React.useState(() => frontstageDef?.findWidgetDef(widgetId));
|
|
895
877
|
React.useEffect(() => {
|
|
896
|
-
setWidgetDef(frontstageDef
|
|
878
|
+
setWidgetDef(frontstageDef?.findWidgetDef(widgetId));
|
|
897
879
|
return InternalFrontstageManager_1.InternalFrontstageManager.onFrontstageWidgetsChangedEvent.addListener((args) => {
|
|
898
880
|
if (args.frontstageDef !== frontstageDef)
|
|
899
881
|
return;
|