@itwin/appui-react 4.14.0 → 4.14.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -1
- package/lib/cjs/appui-react/childwindow/ChildWindowConfig.d.ts +4 -0
- package/lib/cjs/appui-react/childwindow/ChildWindowConfig.d.ts.map +1 -1
- package/lib/cjs/appui-react/childwindow/ChildWindowConfig.js.map +1 -1
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +8 -2
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
- package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js +8 -8
- package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.scss +0 -25
- package/lib/cjs/appui-react/dialog/DialogManagerBase.d.ts +3 -2
- package/lib/cjs/appui-react/dialog/DialogManagerBase.d.ts.map +1 -1
- package/lib/cjs/appui-react/dialog/DialogManagerBase.js +16 -9
- package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
- package/lib/cjs/appui-react/dialog/DialogManagerBase.scss +11 -0
- package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts +4 -17
- package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
- package/lib/cjs/appui-react/feedback/ElementTooltip.js +50 -86
- package/lib/cjs/appui-react/feedback/ElementTooltip.js.map +1 -1
- package/lib/cjs/appui-react/feedback/ElementTooltip.scss +29 -0
- package/lib/cjs/appui-react/statusbar/popup/StatusBarPopover.d.ts +2 -2
- package/lib/cjs/appui-react/statusbar/popup/StatusBarPopover.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusbar/popup/StatusBarPopover.js +6 -2
- package/lib/cjs/appui-react/statusbar/popup/StatusBarPopover.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Frontstage.js +14 -3
- package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/lib/cjs/appui-react.d.ts +2 -2
- package/lib/cjs/appui-react.js +2 -2
- package/lib/cjs/appui-react.js.map +1 -1
- package/lib/esm/appui-react/childwindow/ChildWindowConfig.d.ts +4 -0
- package/lib/esm/appui-react/childwindow/ChildWindowConfig.d.ts.map +1 -1
- package/lib/esm/appui-react/childwindow/ChildWindowConfig.js.map +1 -1
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +8 -2
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
- package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
- package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js +8 -8
- package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
- package/lib/esm/appui-react/configurableui/ConfigurableUiContent.scss +0 -25
- package/lib/esm/appui-react/dialog/DialogManagerBase.d.ts +3 -2
- package/lib/esm/appui-react/dialog/DialogManagerBase.d.ts.map +1 -1
- package/lib/esm/appui-react/dialog/DialogManagerBase.js +16 -9
- package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
- package/lib/esm/appui-react/dialog/DialogManagerBase.scss +11 -0
- package/lib/esm/appui-react/feedback/ElementTooltip.d.ts +4 -17
- package/lib/esm/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
- package/lib/esm/appui-react/feedback/ElementTooltip.js +49 -85
- package/lib/esm/appui-react/feedback/ElementTooltip.js.map +1 -1
- package/lib/esm/appui-react/feedback/ElementTooltip.scss +29 -0
- package/lib/esm/appui-react/statusbar/popup/StatusBarPopover.d.ts +2 -2
- package/lib/esm/appui-react/statusbar/popup/StatusBarPopover.d.ts.map +1 -1
- package/lib/esm/appui-react/statusbar/popup/StatusBarPopover.js +6 -2
- package/lib/esm/appui-react/statusbar/popup/StatusBarPopover.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
- package/lib/esm/appui-react/widget-panels/Frontstage.js +14 -3
- package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/lib/esm/appui-react.d.ts +2 -2
- package/lib/esm/appui-react.js +2 -2
- package/lib/esm/appui-react.js.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Frontstage.js","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/Frontstage.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 Frontstage\n */\n\nimport { ToolbarPopupAutoHideContext } from \"@itwin/components-react\";\nimport { assert, Logger, ProcessDetector } from \"@itwin/core-bentley\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport type { UiStateStorageResult } from \"@itwin/core-react\";\nimport { Size, UiStateStorageStatus } from \"@itwin/core-react\";\nimport produce from \"immer\";\nimport * as React from \"react\";\nimport { unstable_batchedUpdates } from \"react-dom\";\nimport { useSelector } from \"react-redux\";\nimport type { FrontstageDef } from \"../frontstage/FrontstageDef\";\nimport { useActiveFrontstageDef } from \"../frontstage/FrontstageDef\";\nimport { InternalFrontstageManager } from \"../frontstage/InternalFrontstageManager\";\nimport { useEscapeSetFocusToHome } from \"../hooks/useEscapeSetFocusToHome\";\nimport { useUiVisibility } from \"../hooks/useUiVisibility\";\nimport { createLayoutStore } from \"../layout/base/LayoutStore\";\nimport type { NineZoneDispatch, NineZoneLabels } from \"../layout/base/NineZone\";\nimport { getUniqueId, NineZone } from \"../layout/base/NineZone\";\nimport { activateDroppedTab } from \"../preview/activate-dropped-tab/activateDroppedTab\";\nimport type { NineZoneState } from \"../layout/state/NineZoneState\";\nimport { createNineZoneState } from \"../layout/state/NineZoneState\";\nimport { NineZoneStateReducer } from \"../layout/state/NineZoneStateReducer\";\nimport { getWidgetPanelSectionId } from \"../layout/state/PanelState\";\nimport type { TabState } from \"../layout/state/TabState\";\nimport { FloatingWidgets } from \"../layout/widget/FloatingWidgets\";\nimport { PreviewHorizontalPanelAlignFeatureProvider } from \"../preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign\";\nimport { usePreviewFeatures } from \"../preview/PreviewFeatures\";\nimport type { FrameworkState } from \"../redux/FrameworkState\";\nimport type { FrameworkRootState } from \"../redux/StateManager\";\nimport { toPanelSide } from \"../stagepanels/StagePanelDef\";\nimport { StagePanelLocation } from \"../stagepanels/StagePanelLocation\";\nimport { StagePanelSection } from \"../stagepanels/StagePanelSection\";\nimport { StagePanelState } from \"../stagepanels/StagePanelState\";\nimport { UiItemsManager } from \"../ui-items-provider/UiItemsManager\";\nimport { UiFramework } from \"../UiFramework\";\nimport { useUiStateStorageHandler } from \"../uistate/useUiStateStorage\";\nimport type { WidgetDef } from \"../widgets/WidgetDef\";\nimport { WidgetState } from \"../widgets/WidgetState\";\nimport { WidgetContent } from \"./Content\";\nimport { FloatingWidget } from \"./FloatingWidget\";\nimport \"./Frontstage.scss\";\nimport { WidgetPanelsFrontstageContent } from \"./FrontstageContent\";\nimport {\n ModalFrontstageComposer,\n useActiveModalFrontstageInfo,\n} from \"./ModalFrontstageComposer\";\nimport { WidgetPanelsStatusBar } from \"./StatusBar\";\nimport { WidgetPanelsTab } from \"./Tab\";\nimport { WidgetPanelsToolbars } from \"./Toolbars\";\nimport { ToolSettingsContent, WidgetPanelsToolSettings } from \"./ToolSettings\";\nimport { MaximizedWidgetProvider } from \"../preview/enable-maximized-widget/MaximizedWidget\";\nimport { StandardLayout } from \"../layout/StandardLayout\";\nimport { WidgetPanelProvider } from \"../layout/widget-panels/Panel\";\nimport { WidgetContentRenderers } from \"../layout/widget/ContentRenderer\";\nimport { useCursor } from \"../layout/widget-panels/CursorOverlay\";\nimport { WidgetPanelExpanders } from \"../layout/widget-panels/Expander\";\nimport { useTranslation } from \"../hooks/useTranslation\";\nimport { PopoutWidgets } from \"../preview/reparent-popout-widgets/PopoutWidgets\";\nimport { useSaveFrontstageSettings } from \"./useSaveFrontstageSettings\";\n\nfunction WidgetPanelsFrontstageComponent() {\n const activeModalFrontstageInfo = useActiveModalFrontstageInfo();\n const uiIsVisible = useUiVisibility();\n const previewFeatures = usePreviewFeatures();\n useCursor();\n\n return (\n <MaximizedWidgetProvider>\n <PreviewHorizontalPanelAlignFeatureProvider\n enabled={previewFeatures.horizontalPanelAlignment}\n >\n <ToolbarPopupAutoHideContext.Provider value={!uiIsVisible}>\n <ModalFrontstageComposer stageInfo={activeModalFrontstageInfo} />\n <StandardLayout\n centerContent={\n <>\n <WidgetPanelsToolbars />\n <WidgetPanelExpanders />\n </>\n }\n toolSettings={<WidgetPanelsToolSettings />}\n statusBar={<WidgetPanelsStatusBar />}\n topPanel={<WidgetPanelProvider side=\"top\" />}\n leftPanel={<WidgetPanelProvider side=\"left\" />}\n rightPanel={<WidgetPanelProvider side=\"right\" />}\n bottomPanel={<WidgetPanelProvider side=\"bottom\" />}\n >\n <WidgetPanelsFrontstageContent />\n </StandardLayout>\n <WidgetContentRenderers />\n <FloatingWidgets />\n <PopoutWidgets />\n </ToolbarPopupAutoHideContext.Provider>\n </PreviewHorizontalPanelAlignFeatureProvider>\n </MaximizedWidgetProvider>\n );\n}\n\nconst widgetContent = <WidgetContent />;\nconst toolSettingsContent = <ToolSettingsContent />;\nconst widgetPanelsFrontstage = <WidgetPanelsFrontstageComponent />;\n\n/** @internal */\nexport function useLayoutStore(frontstageDef: FrontstageDef | undefined) {\n const layoutStore = React.useMemo(\n () => createLayoutStore(frontstageDef?.nineZoneState),\n [frontstageDef]\n );\n React.useEffect(() => {\n return InternalFrontstageManager.onFrontstageNineZoneStateChangedEvent.addListener(\n (args) => {\n if (args.frontstageDef !== frontstageDef) return;\n unstable_batchedUpdates(() => {\n // https://github.com/pmndrs/zustand/blob/main/docs/guides/event-handler-in-pre-react-18.md\n layoutStore.setState(args.state || defaultNineZone);\n });\n }\n );\n }, [frontstageDef, layoutStore]);\n return layoutStore;\n}\n\n/** Update in-memory NineZoneState of newly activated frontstage with up to date size.\n * @internal\n */\nexport function useUpdateNineZoneSize(frontstageDef: FrontstageDef) {\n React.useEffect(() => {\n const size = InternalFrontstageManager.nineZoneSize;\n if (!size) return;\n frontstageDef.dispatch({\n type: \"RESIZE\",\n size: {\n height: size.height,\n width: size.width,\n },\n });\n }, [frontstageDef]);\n}\n\nconst log =\n (reducer: typeof NineZoneStateReducer): typeof NineZoneStateReducer =>\n (state, action) => {\n Logger.logTrace(\"appui-react:reducer\", `action ${action.type}`, () => ({\n action,\n state,\n }));\n return reducer(state, action);\n };\n\n/** @internal */\nexport function useNineZoneDispatch(frontstageDef: FrontstageDef) {\n const features = usePreviewFeatures();\n\n const reducer = React.useMemo(() => {\n let nineZoneStateReducer = log(NineZoneStateReducer);\n\n nineZoneStateReducer = features.activateDroppedTab\n ? activateDroppedTab(nineZoneStateReducer)\n : nineZoneStateReducer;\n return nineZoneStateReducer;\n }, [features.activateDroppedTab]);\n\n return React.useCallback<NineZoneDispatch>(\n (action) => {\n if (action.type === \"RESIZE\") {\n InternalFrontstageManager.nineZoneSize = Size.create(action.size);\n }\n\n const state = frontstageDef.nineZoneState;\n if (!state) return;\n frontstageDef.nineZoneState = reducer(state, action);\n },\n [frontstageDef, reducer]\n );\n}\n\n/** @internal */\nexport function WidgetPanelsFrontstage() {\n const frontstageDef = useActiveFrontstageDef();\n\n React.useEffect(() => {\n const triggerWidowCloseProcessing = () => {\n frontstageDef && frontstageDef.setIsApplicationClosing(true);\n };\n window.addEventListener(\"unload\", triggerWidowCloseProcessing);\n return () => {\n window.removeEventListener(\"unload\", triggerWidowCloseProcessing);\n };\n }, [frontstageDef]);\n\n if (!frontstageDef) return null;\n return <ActiveFrontstageDefProvider frontstageDef={frontstageDef} />;\n}\n\nconst defaultNineZone = createNineZoneState();\nconst tabElement = <WidgetPanelsTab />;\nconst floatingWidgetElement = <FloatingWidget />;\n\ninterface ActiveFrontstageDefProviderProps {\n frontstageDef: FrontstageDef;\n}\n\n/** @internal */\nexport function ActiveFrontstageDefProvider({\n frontstageDef,\n}: ActiveFrontstageDefProviderProps) {\n const dispatch = useNineZoneDispatch(frontstageDef);\n frontstageDef.dispatch = dispatch;\n const layout = useLayoutStore(frontstageDef);\n useUpdateNineZoneSize(frontstageDef);\n useSavedFrontstageState(frontstageDef);\n useSaveFrontstageSettings(frontstageDef, layout);\n useItemsManager(frontstageDef);\n const labels = useLabels();\n const uiIsVisible = useUiVisibility();\n const showWidgetIcon = useSelector((state: FrameworkRootState) => {\n const frameworkState: FrameworkState = (state as any)[\n UiFramework.frameworkStateKey\n ];\n return !!frameworkState.configurableUiState.showWidgetIcon;\n });\n const autoCollapseUnpinnedPanels = useSelector(\n (state: FrameworkRootState) => {\n const frameworkState: FrameworkState = (state as any)[\n UiFramework.frameworkStateKey\n ];\n return !!frameworkState.configurableUiState.autoCollapseUnpinnedPanels;\n }\n );\n const animateToolSettings = useSelector((state: FrameworkRootState) => {\n const frameworkState: FrameworkState = (state as any)[\n UiFramework.frameworkStateKey\n ];\n return !!frameworkState.configurableUiState.animateToolSettings;\n });\n const useToolAsToolSettingsLabel = useSelector(\n (state: FrameworkRootState) => {\n const frameworkState: FrameworkState = (state as any)[\n UiFramework.frameworkStateKey\n ];\n return !!frameworkState.configurableUiState.useToolAsToolSettingsLabel;\n }\n );\n useFrontstageManager(frontstageDef, useToolAsToolSettingsLabel);\n\n const handleKeyDown = useEscapeSetFocusToHome();\n\n return (\n <div\n className=\"uifw-widgetPanels-frontstage\"\n onKeyDown={handleKeyDown}\n role=\"presentation\"\n >\n <NineZone\n dispatch={dispatch}\n labels={labels}\n layout={layout}\n tab={tabElement}\n floatingWidget={floatingWidgetElement}\n showWidgetIcon={showWidgetIcon}\n autoCollapseUnpinnedPanels={autoCollapseUnpinnedPanels}\n toolSettingsContent={toolSettingsContent}\n widgetContent={widgetContent}\n animateDockedToolSettings={animateToolSettings}\n uiIsVisible={uiIsVisible}\n >\n {widgetPanelsFrontstage}\n </NineZone>\n </div>\n );\n}\n\n/** @internal */\nexport function useLabels(): NineZoneLabels {\n const { translate } = useTranslation();\n\n return {\n dockToolSettingsTitle: translate(\"widget.tooltips.dockToolSettings\"),\n moreWidgetsTitle: translate(\"widget.tooltips.moreWidgets\"),\n moreToolSettingsTitle: translate(\"widget.tooltips.moreToolSettings\"),\n pinPanelTitle: translate(\"widget.tooltips.pinPanel\"),\n resizeGripTitle: translate(\"widget.tooltips.resizeGrip\"),\n sendWidgetHomeTitle: translate(\"widget.tooltips.sendHome\"),\n toolSettingsHandleTitle: translate(\"widget.tooltips.toolSettingsHandle\"),\n unpinPanelTitle: translate(\"widget.tooltips.unpinPanel\"),\n popoutActiveTab: translate(\"widget.tooltips.popoutActiveTab\"),\n };\n}\n\nfunction toTabArgs(widget: WidgetDef) {\n const label = getWidgetLabel(widget.label);\n const args = {\n allowedPanelTargets: widget.allowedPanelTargets?.map((location) =>\n toPanelSide(location)\n ),\n hideWithUiWhenFloating: !!widget.hideWithUiWhenFloating,\n canPopout: widget.canPopout,\n iconSpec: widget.iconSpec,\n isFloatingWidgetResizable: widget.isFloatingStateWindowResizable,\n label,\n preferredFloatingWidgetSize: widget.defaultFloatingSize,\n preferredPanelWidgetSize: widget.preferredPanelSize,\n };\n return args satisfies Pick<TabState, keyof typeof args>;\n}\n\nfunction addWidgetDef(\n frontstageDef: FrontstageDef,\n widgetDef: WidgetDef,\n location: StagePanelLocation,\n section: StagePanelSection\n) {\n const side = toPanelSide(location);\n\n const isFloatingWidget =\n widgetDef.isFloatingStateSupported &&\n widgetDef.defaultState === WidgetState.Floating;\n const floatingWidgetId = widgetDef.floatingContainerId\n ? widgetDef.floatingContainerId\n : getUniqueId();\n const userSized = !!widgetDef.defaultFloatingSize;\n\n frontstageDef.dispatch({\n type: \"WIDGET_DEF_ADD\",\n id: widgetDef.id,\n overrides: {\n ...toTabArgs(widgetDef),\n userSized,\n },\n location: isFloatingWidget ? \"floating\" : \"panel\",\n floatingWidget: {\n id: floatingWidgetId,\n preferredPosition: widgetDef.defaultFloatingPosition,\n },\n panelSection: {\n id: getWidgetPanelSectionId(side, section),\n side,\n index: section,\n },\n });\n\n // Hide widget if `defaultState` is `Hidden` or `Unloaded`.\n hideWidgetDef(frontstageDef, widgetDef);\n}\n\n/** Adds missing widgets to the layout.\n * @internal\n */\nexport function addPanelSectionWidgetDefs(\n frontstageDef: FrontstageDef,\n location: StagePanelLocation,\n section: StagePanelSection\n) {\n const panelDef = frontstageDef.getStagePanelDef(location);\n if (!panelDef) return;\n const sectionDef = panelDef.getPanelSectionDef(section);\n const widgetDefs = determineNewWidgets(frontstageDef, sectionDef.widgetDefs);\n for (const widgetDef of widgetDefs) {\n addWidgetDef(frontstageDef, widgetDef, location, section);\n }\n}\n\nfunction processPopoutWidgets(frontstageDef: FrontstageDef) {\n // Electron reopens popout windows w/o user interaction.\n if (ProcessDetector.isElectronAppFrontend) {\n return;\n }\n\n assert(!!frontstageDef.nineZoneState);\n const state = frontstageDef.nineZoneState;\n for (const id of state.popoutWidgets.allIds) {\n frontstageDef.dispatch({\n type: \"POPOUT_WIDGET_SEND_BACK\",\n id,\n });\n }\n}\n\n/** Adds frontstageDef widgets that are missing in NineZoneState.\n * @internal\n */\nexport function addFrontstageWidgetDefs(frontstageDef: FrontstageDef) {\n [\n StagePanelLocation.Left,\n StagePanelLocation.Right,\n StagePanelLocation.Top,\n StagePanelLocation.Bottom,\n ].forEach((location) =>\n [StagePanelSection.Start, StagePanelSection.End].forEach((section) =>\n addPanelSectionWidgetDefs(frontstageDef, location, section)\n )\n );\n\n const toolSettingsWidgetDefs = determineNewWidgets(\n frontstageDef,\n frontstageDef.toolSettings ? [frontstageDef.toolSettings] : undefined\n );\n for (const toolSettingsWidgetDef of toolSettingsWidgetDefs) {\n frontstageDef.dispatch({\n type: \"WIDGET_DEF_ADD_TOOL_SETTINGS\",\n id: toolSettingsWidgetDef.id,\n overrides: toTabArgs(toolSettingsWidgetDef),\n });\n }\n}\n\n/** Hide widgets with `Hidden` or `Unloaded` defaultState. */\nfunction hideWidgetDefs(frontstageDef: FrontstageDef) {\n assert(!!frontstageDef.nineZoneState);\n const state = frontstageDef.nineZoneState;\n const tabs = Object.values(state.tabs);\n for (const tab of tabs) {\n const widgetDef = frontstageDef.findWidgetDef(tab.id);\n if (!widgetDef) continue;\n\n hideWidgetDef(frontstageDef, widgetDef);\n }\n}\n\n/** Hide widget with `Hidden` or `Unloaded` defaultState. */\nfunction hideWidgetDef(frontstageDef: FrontstageDef, widgetDef: WidgetDef) {\n if (widgetDef.defaultState === WidgetState.Hidden) {\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_HIDE\",\n id: widgetDef.id,\n });\n }\n\n if (widgetDef.defaultState === WidgetState.Unloaded) {\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_UNLOAD\",\n id: widgetDef.id,\n });\n }\n}\n\n/** Removes NineZoneState widgets that are missing in frontstageDef.\n * @internal\n */\nfunction removeMissingWidgets(frontstageDef: FrontstageDef) {\n const state = frontstageDef.nineZoneState;\n if (!state) return;\n const toolSettingsTabId = state.toolSettings?.tabId;\n for (const [, tab] of Object.entries(state.tabs)) {\n if (tab.id === toolSettingsTabId) continue;\n const widgetDef = frontstageDef.findWidgetDef(tab.id);\n if (widgetDef) continue;\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_REMOVE\",\n id: tab.id,\n });\n }\n}\n\nfunction getWidgetLabel(label: string) {\n return label === \"\" ? \"Widget\" : label;\n}\n\ntype PanelSectionId = `${Lowercase<\n keyof typeof StagePanelLocation\n>}${keyof typeof StagePanelSection}`;\n\n/** @internal */\nexport function getPanelSectionId(\n location: StagePanelLocation,\n section: StagePanelSection\n): PanelSectionId {\n return `${StagePanelLocation[location].toLowerCase()}${\n StagePanelSection[section]\n }` as PanelSectionId;\n}\n\n/** @internal */\nexport function getPanelSectionWidgets(\n frontstageDef: FrontstageDef,\n location: StagePanelLocation,\n section: StagePanelSection\n): ReadonlyArray<WidgetDef> {\n const stagePanel = frontstageDef.getStagePanelDef(location);\n const panelSection = stagePanel?.getPanelSectionDef(section);\n return panelSection?.widgetDefs || [];\n}\n\n/** @internal */\nexport function isFrontstageStateSettingResult(\n settingsResult: UiStateStorageResult\n): settingsResult is {\n status: UiStateStorageStatus.Success;\n setting: WidgetPanelsFrontstageState;\n} {\n if (settingsResult.status === UiStateStorageStatus.Success) return true;\n return false;\n}\n\n/** @internal */\nexport function initializePanel(\n frontstageDef: FrontstageDef,\n location: StagePanelLocation\n) {\n const side = toPanelSide(location);\n\n const panelDef = frontstageDef.getStagePanelDef(location);\n if (!panelDef) return;\n\n // eslint-disable-next-line deprecation/deprecation\n const size = panelDef.initialConfig?.sizeSpec ?? panelDef.initialConfig?.size;\n size !== undefined &&\n frontstageDef.dispatch({\n type: \"PANEL_SET_SIZE\",\n side,\n size,\n });\n\n frontstageDef.dispatch({\n type: \"PANEL_SET_PINNED\",\n side,\n pinned: panelDef.defaultPinned,\n });\n\n frontstageDef.dispatch({\n type: \"PANEL_SET_RESIZABLE\",\n side,\n resizable: panelDef.defaultResizable,\n });\n\n const minSize =\n panelDef.initialConfig?.minSizeSpec ?? panelDef.initialConfig?.minSize; // eslint-disable-line deprecation/deprecation\n minSize !== undefined &&\n frontstageDef.dispatch({\n type: \"PANEL_SET_MIN_SIZE\",\n side,\n minSize,\n });\n\n const maxSize =\n panelDef.initialConfig?.maxSizeSpec ?? panelDef.initialConfig?.maxSize; // eslint-disable-line deprecation/deprecation\n maxSize !== undefined &&\n frontstageDef.dispatch({\n type: \"PANEL_SET_MAX_SIZE\",\n side,\n maxSize,\n });\n\n const collapsed = panelDef.defaultState !== StagePanelState.Open;\n frontstageDef.dispatch({\n type: \"PANEL_SET_COLLAPSED\",\n side,\n collapsed,\n });\n}\n\n/** @internal */\nexport const stateVersion = 17; // this needs to be bumped when NineZoneState is changed (to recreate the layout).\n\n/** @internal */\nexport function initializeNineZoneState(frontstageDef: FrontstageDef) {\n frontstageDef.batch(() => {\n frontstageDef.nineZoneState = defaultNineZone;\n\n const size = InternalFrontstageManager.nineZoneSize;\n size &&\n frontstageDef.dispatch({\n type: \"RESIZE\",\n size,\n });\n\n addFrontstageWidgetDefs(frontstageDef);\n\n initializePanel(frontstageDef, StagePanelLocation.Left);\n initializePanel(frontstageDef, StagePanelLocation.Right);\n initializePanel(frontstageDef, StagePanelLocation.Top);\n initializePanel(frontstageDef, StagePanelLocation.Bottom);\n });\n}\n\n/** Converts from saved NineZoneState to NineZoneState.\n * @note Restores toolSettings tab.\n * @note Restores tab labels.\n * @internal\n */\nexport function restoreNineZoneState(\n frontstageDef: FrontstageDef,\n packed: NineZoneState\n) {\n frontstageDef.batch(() => {\n frontstageDef.nineZoneState = packed;\n\n for (const [, tab] of Object.entries(packed.tabs)) {\n const widgetDef = frontstageDef.findWidgetDef(tab.id);\n if (!widgetDef) {\n Logger.logInfo(\n UiFramework.loggerCategory(restoreNineZoneState),\n \"WidgetDef is not found for saved tab.\",\n {\n frontstageId: frontstageDef.id,\n tabId: tab.id,\n }\n );\n frontstageDef.dispatch({ type: \"WIDGET_TAB_REMOVE\", id: tab.id });\n continue;\n }\n\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_UPDATE\",\n id: tab.id,\n overrides: toTabArgs(widgetDef),\n });\n }\n\n frontstageDef.nineZoneState = produce(\n frontstageDef.nineZoneState,\n (draft) => {\n // remove center panel section if one is found in left or right panels\n const oldLeftMiddleIndex = packed.panels.left.widgets.findIndex(\n (value) => value === \"leftMiddle\"\n );\n if (-1 !== oldLeftMiddleIndex) {\n draft.panels.left.widgets = packed.panels.left.widgets.filter(\n (value) => value !== \"leftMiddle\"\n );\n if (\"leftEnd\" in draft.widgets) {\n draft.widgets.leftMiddle.tabs.forEach((tab) =>\n draft.widgets.leftEnd.tabs.push(tab)\n );\n } else {\n draft.widgets.leftEnd = { ...draft.widgets.leftMiddle };\n delete draft.widgets.leftMiddle;\n }\n }\n\n const oldRightMiddleIndex = packed.panels.right.widgets.findIndex(\n (value) => value === \"rightMiddle\"\n );\n if (-1 !== oldRightMiddleIndex) {\n draft.panels.right.widgets = packed.panels.right.widgets.filter(\n (value) => value !== \"rightMiddle\"\n );\n if (\"rightEnd\" in draft.widgets) {\n draft.widgets.rightMiddle.tabs.forEach((tab) =>\n draft.widgets.rightEnd.tabs.push(tab)\n );\n } else {\n draft.widgets.rightEnd = { ...draft.widgets.rightMiddle };\n delete draft.widgets.rightMiddle;\n }\n }\n\n return;\n }\n );\n\n if (\n InternalFrontstageManager.nineZoneSize &&\n (0 !== InternalFrontstageManager.nineZoneSize.height ||\n 0 !== InternalFrontstageManager.nineZoneSize.width)\n ) {\n frontstageDef.dispatch({\n type: \"RESIZE\",\n size: {\n height: InternalFrontstageManager.nineZoneSize.height,\n width: InternalFrontstageManager.nineZoneSize.width,\n },\n });\n }\n\n addFrontstageWidgetDefs(frontstageDef);\n hideWidgetDefs(frontstageDef);\n processPopoutWidgets(frontstageDef);\n });\n}\n\n/** Prepares NineZoneState to be saved.\n * @note Removes toolSettings tab.\n * @note Removes tab labels and iconSpec.\n * @internal\n */\nexport function packNineZoneState(state: NineZoneState): NineZoneState {\n let packed = state;\n packed = produce(packed, (draft) => {\n for (const [, tab] of Object.entries(draft.tabs)) {\n tab.label = \"\";\n delete tab.iconSpec;\n }\n });\n return packed;\n}\n\n/** FrontstageState is saved in UiStateStorage.\n * @internal\n */\nexport interface WidgetPanelsFrontstageState {\n nineZone: NineZoneState;\n id: FrontstageDef[\"id\"];\n /** Frontstage version used to create the frontstage state. Allows to invalidate the layout from the frontstage. */\n version: number;\n /** Platform provided frontstage version. Allows to invalidate the layout from the platform. */\n stateVersion: number;\n}\n\n/** @internal */\nexport function useSavedFrontstageState(frontstageDef: FrontstageDef) {\n const uiStateStorage = useUiStateStorageHandler();\n const uiStateStorageRef = React.useRef(uiStateStorage);\n const isMountedRef = React.useRef(false);\n React.useEffect(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n React.useEffect(() => {\n uiStateStorageRef.current = uiStateStorage;\n }, [uiStateStorage]);\n React.useEffect(() => {\n async function fetchFrontstageState() {\n // Switching to previously initialized frontstage.\n if (frontstageDef.nineZoneState) {\n processPopoutWidgets(frontstageDef);\n return;\n }\n\n const id = frontstageDef.id;\n const version = frontstageDef.version;\n const settingResult = await uiStateStorageRef.current.getSetting(\n FRONTSTAGE_SETTINGS_NAMESPACE,\n getFrontstageStateSettingName(id)\n );\n if (!isMountedRef.current) return;\n\n if (isFrontstageStateSettingResult(settingResult)) {\n const setting = settingResult.setting;\n if (\n setting.version === version &&\n setting.stateVersion === stateVersion\n ) {\n restoreNineZoneState(frontstageDef, setting.nineZone);\n return;\n }\n }\n initializeNineZoneState(frontstageDef);\n }\n void fetchFrontstageState();\n }, [frontstageDef]);\n}\n\n/** @internal */\nexport const FRONTSTAGE_SETTINGS_NAMESPACE = \"uifw-frontstageSettings\";\n\n/** @internal */\nexport function getFrontstageStateSettingName(\n frontstageId: WidgetPanelsFrontstageState[\"id\"]\n) {\n return `frontstageState[${frontstageId}]`;\n}\n\n/** @internal */\nexport function useFrontstageManager(\n frontstageDef: FrontstageDef,\n useToolAsToolSettingsLabel?: boolean\n) {\n const { translate } = useTranslation();\n const uiSettingsStorage = useUiStateStorageHandler();\n React.useEffect(() => {\n return InternalFrontstageManager.onFrontstageRestoreLayoutEvent.addListener(\n (args) => {\n // TODO: track restoring frontstages to support workflows: i.e. prevent loading frontstage OR saving layout when delete is pending\n void uiSettingsStorage.deleteSetting(\n FRONTSTAGE_SETTINGS_NAMESPACE,\n getFrontstageStateSettingName(args.frontstageDef.id)\n );\n if (frontstageDef.id === args.frontstageDef.id) {\n initializeNineZoneState(frontstageDef);\n return;\n }\n\n args.frontstageDef.nineZoneState = undefined;\n }\n );\n }, [uiSettingsStorage, frontstageDef]);\n\n const defaultLabel = translate(\"widget.labels.toolSettings\");\n\n React.useEffect(() => {\n const updateLabel = () => {\n const state = frontstageDef.nineZoneState;\n if (!state) return;\n const toolSettingsTabId = state.toolSettings?.tabId;\n if (!toolSettingsTabId) return;\n\n const toolId = UiFramework.frontstages.activeToolId;\n const label = useToolAsToolSettingsLabel\n ? IModelApp.tools.find(toolId)?.flyover || defaultLabel\n : defaultLabel;\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_SET_LABEL\",\n id: toolSettingsTabId,\n label,\n });\n };\n // Whenever the frontstageDef or the useTool... changes, keep the label up to date.\n updateLabel();\n\n const removeListenerFuncs: (() => void)[] = [];\n // If useTool... is true, listen for events to keep up the label up to date.\n if (useToolAsToolSettingsLabel) {\n removeListenerFuncs.push(\n UiFramework.frontstages.onFrontstageReadyEvent.addListener(updateLabel),\n InternalFrontstageManager.onFrontstageRestoreLayoutEvent.addListener(\n updateLabel\n ),\n UiFramework.frontstages.onToolActivatedEvent.addListener(updateLabel),\n UiFramework.frontstages.onToolSettingsReloadEvent.addListener(\n updateLabel\n )\n );\n }\n return () => {\n removeListenerFuncs.forEach((removeListener) => removeListener());\n };\n }, [frontstageDef, useToolAsToolSettingsLabel, defaultLabel]);\n}\n\nfunction refreshNineZoneState(frontstageDef: FrontstageDef) {\n // Fired for both registered/unregistered. Update definitions and remove/add missing widgets.\n frontstageDef.updateWidgetDefs();\n frontstageDef.batch(() => {\n addFrontstageWidgetDefs(frontstageDef);\n removeMissingWidgets(frontstageDef);\n });\n}\n\n/** @internal */\nexport function useItemsManager(frontstageDef: FrontstageDef) {\n React.useEffect(() => {\n // Not initialized yet.\n if (!frontstageDef.nineZoneState) return;\n\n // Need to refresh because UiItemsProvider may have added something while another frontstage was active.\n refreshNineZoneState(frontstageDef);\n }, [frontstageDef]);\n React.useEffect(() => {\n return UiItemsManager.onUiProviderRegisteredEvent.addListener(() => {\n refreshNineZoneState(frontstageDef);\n });\n }, [frontstageDef]);\n}\n\nfunction determineNewWidgets(\n frontstageDef: FrontstageDef,\n defs: readonly WidgetDef[] | undefined\n) {\n const state = frontstageDef.nineZoneState;\n assert(!!state);\n defs = defs || [];\n const uniqueDefs = defs.filter((def, index, array) => {\n return index === array.findIndex((def1) => def.id === def1.id);\n });\n return uniqueDefs.filter((def) => !(def.id in state.tabs));\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Frontstage.js","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/Frontstage.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 Frontstage\n */\n\nimport { ToolbarPopupAutoHideContext } from \"@itwin/components-react\";\nimport { assert, Logger, ProcessDetector } from \"@itwin/core-bentley\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport type { UiStateStorageResult } from \"@itwin/core-react\";\nimport { Size, UiStateStorageStatus } from \"@itwin/core-react\";\nimport produce from \"immer\";\nimport * as React from \"react\";\nimport { unstable_batchedUpdates } from \"react-dom\";\nimport { useSelector } from \"react-redux\";\nimport type { FrontstageDef } from \"../frontstage/FrontstageDef\";\nimport { useActiveFrontstageDef } from \"../frontstage/FrontstageDef\";\nimport { InternalFrontstageManager } from \"../frontstage/InternalFrontstageManager\";\nimport { useEscapeSetFocusToHome } from \"../hooks/useEscapeSetFocusToHome\";\nimport { useUiVisibility } from \"../hooks/useUiVisibility\";\nimport { createLayoutStore } from \"../layout/base/LayoutStore\";\nimport type { NineZoneDispatch, NineZoneLabels } from \"../layout/base/NineZone\";\nimport { getUniqueId, NineZone } from \"../layout/base/NineZone\";\nimport { activateDroppedTab } from \"../preview/activate-dropped-tab/activateDroppedTab\";\nimport type { NineZoneState } from \"../layout/state/NineZoneState\";\nimport { createNineZoneState } from \"../layout/state/NineZoneState\";\nimport { NineZoneStateReducer } from \"../layout/state/NineZoneStateReducer\";\nimport { getWidgetPanelSectionId } from \"../layout/state/PanelState\";\nimport type { TabState } from \"../layout/state/TabState\";\nimport { FloatingWidgets } from \"../layout/widget/FloatingWidgets\";\nimport { PreviewHorizontalPanelAlignFeatureProvider } from \"../preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign\";\nimport { usePreviewFeatures } from \"../preview/PreviewFeatures\";\nimport type { FrameworkState } from \"../redux/FrameworkState\";\nimport type { FrameworkRootState } from \"../redux/StateManager\";\nimport { toPanelSide } from \"../stagepanels/StagePanelDef\";\nimport { StagePanelLocation } from \"../stagepanels/StagePanelLocation\";\nimport { StagePanelSection } from \"../stagepanels/StagePanelSection\";\nimport { StagePanelState } from \"../stagepanels/StagePanelState\";\nimport { UiItemsManager } from \"../ui-items-provider/UiItemsManager\";\nimport { UiFramework } from \"../UiFramework\";\nimport { useUiStateStorageHandler } from \"../uistate/useUiStateStorage\";\nimport type { WidgetDef } from \"../widgets/WidgetDef\";\nimport { WidgetState } from \"../widgets/WidgetState\";\nimport { WidgetContent } from \"./Content\";\nimport { FloatingWidget } from \"./FloatingWidget\";\nimport \"./Frontstage.scss\";\nimport { WidgetPanelsFrontstageContent } from \"./FrontstageContent\";\nimport {\n ModalFrontstageComposer,\n useActiveModalFrontstageInfo,\n} from \"./ModalFrontstageComposer\";\nimport { WidgetPanelsStatusBar } from \"./StatusBar\";\nimport { WidgetPanelsTab } from \"./Tab\";\nimport { WidgetPanelsToolbars } from \"./Toolbars\";\nimport { ToolSettingsContent, WidgetPanelsToolSettings } from \"./ToolSettings\";\nimport { MaximizedWidgetProvider } from \"../preview/enable-maximized-widget/MaximizedWidget\";\nimport { StandardLayout } from \"../layout/StandardLayout\";\nimport { WidgetPanelProvider } from \"../layout/widget-panels/Panel\";\nimport { WidgetContentRenderers } from \"../layout/widget/ContentRenderer\";\nimport { useCursor } from \"../layout/widget-panels/CursorOverlay\";\nimport { WidgetPanelExpanders } from \"../layout/widget-panels/Expander\";\nimport { useTranslation } from \"../hooks/useTranslation\";\nimport { PopoutWidgets } from \"../preview/reparent-popout-widgets/PopoutWidgets\";\nimport { useSaveFrontstageSettings } from \"./useSaveFrontstageSettings\";\n\nfunction WidgetPanelsFrontstageComponent() {\n const activeModalFrontstageInfo = useActiveModalFrontstageInfo();\n const uiIsVisible = useUiVisibility();\n const previewFeatures = usePreviewFeatures();\n useCursor();\n\n return (\n <MaximizedWidgetProvider>\n <PreviewHorizontalPanelAlignFeatureProvider\n enabled={previewFeatures.horizontalPanelAlignment}\n >\n <ToolbarPopupAutoHideContext.Provider value={!uiIsVisible}>\n <ModalFrontstageComposer stageInfo={activeModalFrontstageInfo} />\n <StandardLayout\n centerContent={\n <>\n <WidgetPanelsToolbars />\n <WidgetPanelExpanders />\n </>\n }\n toolSettings={<WidgetPanelsToolSettings />}\n statusBar={<WidgetPanelsStatusBar />}\n topPanel={<WidgetPanelProvider side=\"top\" />}\n leftPanel={<WidgetPanelProvider side=\"left\" />}\n rightPanel={<WidgetPanelProvider side=\"right\" />}\n bottomPanel={<WidgetPanelProvider side=\"bottom\" />}\n >\n <WidgetPanelsFrontstageContent />\n </StandardLayout>\n <WidgetContentRenderers />\n <FloatingWidgets />\n <PopoutWidgets />\n </ToolbarPopupAutoHideContext.Provider>\n </PreviewHorizontalPanelAlignFeatureProvider>\n </MaximizedWidgetProvider>\n );\n}\n\nconst widgetContent = <WidgetContent />;\nconst toolSettingsContent = <ToolSettingsContent />;\nconst widgetPanelsFrontstage = <WidgetPanelsFrontstageComponent />;\n\n/** @internal */\nexport function useLayoutStore(frontstageDef: FrontstageDef | undefined) {\n const layoutStore = React.useMemo(\n () => createLayoutStore(frontstageDef?.nineZoneState),\n [frontstageDef]\n );\n React.useEffect(() => {\n return InternalFrontstageManager.onFrontstageNineZoneStateChangedEvent.addListener(\n (args) => {\n if (args.frontstageDef !== frontstageDef) return;\n unstable_batchedUpdates(() => {\n // https://github.com/pmndrs/zustand/blob/main/docs/guides/event-handler-in-pre-react-18.md\n layoutStore.setState(args.state || defaultNineZone);\n });\n }\n );\n }, [frontstageDef, layoutStore]);\n return layoutStore;\n}\n\n/** Update in-memory NineZoneState of newly activated frontstage with up to date size.\n * @internal\n */\nexport function useUpdateNineZoneSize(frontstageDef: FrontstageDef) {\n React.useEffect(() => {\n const size = InternalFrontstageManager.nineZoneSize;\n if (!size) return;\n frontstageDef.dispatch({\n type: \"RESIZE\",\n size: {\n height: size.height,\n width: size.width,\n },\n });\n }, [frontstageDef]);\n}\n\nconst log =\n (reducer: typeof NineZoneStateReducer): typeof NineZoneStateReducer =>\n (state, action) => {\n Logger.logTrace(\"appui-react:reducer\", `action ${action.type}`, () => ({\n action,\n state,\n }));\n return reducer(state, action);\n };\n\n/** @internal */\nexport function useNineZoneDispatch(frontstageDef: FrontstageDef) {\n const features = usePreviewFeatures();\n\n const reducer = React.useMemo(() => {\n let nineZoneStateReducer = log(NineZoneStateReducer);\n\n nineZoneStateReducer = features.activateDroppedTab\n ? activateDroppedTab(nineZoneStateReducer)\n : nineZoneStateReducer;\n return nineZoneStateReducer;\n }, [features.activateDroppedTab]);\n\n return React.useCallback<NineZoneDispatch>(\n (action) => {\n if (action.type === \"RESIZE\") {\n InternalFrontstageManager.nineZoneSize = Size.create(action.size);\n }\n\n const state = frontstageDef.nineZoneState;\n if (!state) return;\n frontstageDef.nineZoneState = reducer(state, action);\n },\n [frontstageDef, reducer]\n );\n}\n\n/** @internal */\nexport function WidgetPanelsFrontstage() {\n const frontstageDef = useActiveFrontstageDef();\n\n React.useEffect(() => {\n const triggerWidowCloseProcessing = () => {\n frontstageDef && frontstageDef.setIsApplicationClosing(true);\n };\n window.addEventListener(\"unload\", triggerWidowCloseProcessing);\n return () => {\n window.removeEventListener(\"unload\", triggerWidowCloseProcessing);\n };\n }, [frontstageDef]);\n\n if (!frontstageDef) return null;\n return <ActiveFrontstageDefProvider frontstageDef={frontstageDef} />;\n}\n\nconst defaultNineZone = createNineZoneState();\nconst tabElement = <WidgetPanelsTab />;\nconst floatingWidgetElement = <FloatingWidget />;\n\ninterface ActiveFrontstageDefProviderProps {\n frontstageDef: FrontstageDef;\n}\n\n/** @internal */\nexport function ActiveFrontstageDefProvider({\n frontstageDef,\n}: ActiveFrontstageDefProviderProps) {\n const dispatch = useNineZoneDispatch(frontstageDef);\n frontstageDef.dispatch = dispatch;\n const layout = useLayoutStore(frontstageDef);\n useUpdateNineZoneSize(frontstageDef);\n useSavedFrontstageState(frontstageDef);\n useSaveFrontstageSettings(frontstageDef, layout);\n useItemsManager(frontstageDef);\n const labels = useLabels();\n const uiIsVisible = useUiVisibility();\n const showWidgetIcon = useSelector((state: FrameworkRootState) => {\n const frameworkState: FrameworkState = (state as any)[\n UiFramework.frameworkStateKey\n ];\n return !!frameworkState.configurableUiState.showWidgetIcon;\n });\n const autoCollapseUnpinnedPanels = useSelector(\n (state: FrameworkRootState) => {\n const frameworkState: FrameworkState = (state as any)[\n UiFramework.frameworkStateKey\n ];\n return !!frameworkState.configurableUiState.autoCollapseUnpinnedPanels;\n }\n );\n const animateToolSettings = useSelector((state: FrameworkRootState) => {\n const frameworkState: FrameworkState = (state as any)[\n UiFramework.frameworkStateKey\n ];\n return !!frameworkState.configurableUiState.animateToolSettings;\n });\n const useToolAsToolSettingsLabel = useSelector(\n (state: FrameworkRootState) => {\n const frameworkState: FrameworkState = (state as any)[\n UiFramework.frameworkStateKey\n ];\n return !!frameworkState.configurableUiState.useToolAsToolSettingsLabel;\n }\n );\n useFrontstageManager(frontstageDef, useToolAsToolSettingsLabel);\n\n const handleKeyDown = useEscapeSetFocusToHome();\n\n return (\n <div\n className=\"uifw-widgetPanels-frontstage\"\n onKeyDown={handleKeyDown}\n role=\"presentation\"\n >\n <NineZone\n dispatch={dispatch}\n labels={labels}\n layout={layout}\n tab={tabElement}\n floatingWidget={floatingWidgetElement}\n showWidgetIcon={showWidgetIcon}\n autoCollapseUnpinnedPanels={autoCollapseUnpinnedPanels}\n toolSettingsContent={toolSettingsContent}\n widgetContent={widgetContent}\n animateDockedToolSettings={animateToolSettings}\n uiIsVisible={uiIsVisible}\n >\n {widgetPanelsFrontstage}\n </NineZone>\n </div>\n );\n}\n\n/** @internal */\nexport function useLabels(): NineZoneLabels {\n const { translate } = useTranslation();\n\n return {\n dockToolSettingsTitle: translate(\"widget.tooltips.dockToolSettings\"),\n moreWidgetsTitle: translate(\"widget.tooltips.moreWidgets\"),\n moreToolSettingsTitle: translate(\"widget.tooltips.moreToolSettings\"),\n pinPanelTitle: translate(\"widget.tooltips.pinPanel\"),\n resizeGripTitle: translate(\"widget.tooltips.resizeGrip\"),\n sendWidgetHomeTitle: translate(\"widget.tooltips.sendHome\"),\n toolSettingsHandleTitle: translate(\"widget.tooltips.toolSettingsHandle\"),\n unpinPanelTitle: translate(\"widget.tooltips.unpinPanel\"),\n popoutActiveTab: translate(\"widget.tooltips.popoutActiveTab\"),\n };\n}\n\nfunction toTabArgs(widget: WidgetDef) {\n const label = getWidgetLabel(widget.label);\n const args = {\n allowedPanelTargets: widget.allowedPanelTargets?.map((location) =>\n toPanelSide(location)\n ),\n hideWithUiWhenFloating: !!widget.hideWithUiWhenFloating,\n canPopout: widget.canPopout,\n iconSpec: widget.iconSpec,\n isFloatingWidgetResizable: widget.isFloatingStateWindowResizable,\n label,\n preferredFloatingWidgetSize: widget.defaultFloatingSize,\n preferredPanelWidgetSize: widget.preferredPanelSize,\n };\n return args satisfies Pick<TabState, keyof typeof args>;\n}\n\nfunction addWidgetDef(\n frontstageDef: FrontstageDef,\n widgetDef: WidgetDef,\n location: StagePanelLocation,\n section: StagePanelSection\n) {\n const side = toPanelSide(location);\n\n const isFloatingWidget =\n widgetDef.isFloatingStateSupported &&\n widgetDef.defaultState === WidgetState.Floating;\n const floatingWidgetId = widgetDef.floatingContainerId\n ? widgetDef.floatingContainerId\n : getUniqueId();\n const userSized = !!widgetDef.defaultFloatingSize;\n\n frontstageDef.dispatch({\n type: \"WIDGET_DEF_ADD\",\n id: widgetDef.id,\n overrides: {\n ...toTabArgs(widgetDef),\n userSized,\n },\n location: isFloatingWidget ? \"floating\" : \"panel\",\n floatingWidget: {\n id: floatingWidgetId,\n preferredPosition: widgetDef.defaultFloatingPosition,\n },\n panelSection: {\n id: getWidgetPanelSectionId(side, section),\n side,\n index: section,\n },\n });\n\n // Hide widget if `defaultState` is `Hidden` or `Unloaded`.\n hideWidgetDef(frontstageDef, widgetDef);\n}\n\n/** Adds missing widgets to the layout.\n * @internal\n */\nexport function addPanelSectionWidgetDefs(\n frontstageDef: FrontstageDef,\n location: StagePanelLocation,\n section: StagePanelSection\n) {\n const panelDef = frontstageDef.getStagePanelDef(location);\n if (!panelDef) return;\n const sectionDef = panelDef.getPanelSectionDef(section);\n const widgetDefs = determineNewWidgets(frontstageDef, sectionDef.widgetDefs);\n for (const widgetDef of widgetDefs) {\n addWidgetDef(frontstageDef, widgetDef, location, section);\n }\n}\n\n/** Sends back popout widgets if app is not an electron app. */\nfunction processPopoutWidgets(frontstageDef: FrontstageDef) {\n if (ProcessDetector.isElectronAppFrontend) return;\n\n assert(!!frontstageDef.nineZoneState);\n const state = frontstageDef.nineZoneState;\n for (const id of state.popoutWidgets.allIds) {\n frontstageDef.dispatch({\n type: \"POPOUT_WIDGET_SEND_BACK\",\n id,\n });\n }\n}\n\n/** Opens popout widgets if app is an electron app. */\nfunction openPopoutWidgets(frontstageDef: FrontstageDef) {\n // Only electron can reopen popout windows w/o user interaction.\n if (!ProcessDetector.isElectronAppFrontend) return;\n\n assert(!!frontstageDef.nineZoneState);\n const state = frontstageDef.nineZoneState;\n for (const id of state.popoutWidgets.allIds) {\n frontstageDef.openPopoutWidgetContainer(id, undefined);\n }\n}\n\n/** Adds frontstageDef widgets that are missing in NineZoneState.\n * @internal\n */\nexport function addFrontstageWidgetDefs(frontstageDef: FrontstageDef) {\n [\n StagePanelLocation.Left,\n StagePanelLocation.Right,\n StagePanelLocation.Top,\n StagePanelLocation.Bottom,\n ].forEach((location) =>\n [StagePanelSection.Start, StagePanelSection.End].forEach((section) =>\n addPanelSectionWidgetDefs(frontstageDef, location, section)\n )\n );\n\n const toolSettingsWidgetDefs = determineNewWidgets(\n frontstageDef,\n frontstageDef.toolSettings ? [frontstageDef.toolSettings] : undefined\n );\n for (const toolSettingsWidgetDef of toolSettingsWidgetDefs) {\n frontstageDef.dispatch({\n type: \"WIDGET_DEF_ADD_TOOL_SETTINGS\",\n id: toolSettingsWidgetDef.id,\n overrides: toTabArgs(toolSettingsWidgetDef),\n });\n }\n}\n\n/** Hide widgets with `Hidden` or `Unloaded` defaultState. */\nfunction hideWidgetDefs(frontstageDef: FrontstageDef) {\n assert(!!frontstageDef.nineZoneState);\n const state = frontstageDef.nineZoneState;\n const tabs = Object.values(state.tabs);\n for (const tab of tabs) {\n const widgetDef = frontstageDef.findWidgetDef(tab.id);\n if (!widgetDef) continue;\n\n hideWidgetDef(frontstageDef, widgetDef);\n }\n}\n\n/** Hide widget with `Hidden` or `Unloaded` defaultState. */\nfunction hideWidgetDef(frontstageDef: FrontstageDef, widgetDef: WidgetDef) {\n if (widgetDef.defaultState === WidgetState.Hidden) {\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_HIDE\",\n id: widgetDef.id,\n });\n }\n\n if (widgetDef.defaultState === WidgetState.Unloaded) {\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_UNLOAD\",\n id: widgetDef.id,\n });\n }\n}\n\n/** Removes NineZoneState widgets that are missing in frontstageDef.\n * @internal\n */\nfunction removeMissingWidgets(frontstageDef: FrontstageDef) {\n const state = frontstageDef.nineZoneState;\n if (!state) return;\n const toolSettingsTabId = state.toolSettings?.tabId;\n for (const [, tab] of Object.entries(state.tabs)) {\n if (tab.id === toolSettingsTabId) continue;\n const widgetDef = frontstageDef.findWidgetDef(tab.id);\n if (widgetDef) continue;\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_REMOVE\",\n id: tab.id,\n });\n }\n}\n\nfunction getWidgetLabel(label: string) {\n return label === \"\" ? \"Widget\" : label;\n}\n\ntype PanelSectionId = `${Lowercase<\n keyof typeof StagePanelLocation\n>}${keyof typeof StagePanelSection}`;\n\n/** @internal */\nexport function getPanelSectionId(\n location: StagePanelLocation,\n section: StagePanelSection\n): PanelSectionId {\n return `${StagePanelLocation[location].toLowerCase()}${\n StagePanelSection[section]\n }` as PanelSectionId;\n}\n\n/** @internal */\nexport function getPanelSectionWidgets(\n frontstageDef: FrontstageDef,\n location: StagePanelLocation,\n section: StagePanelSection\n): ReadonlyArray<WidgetDef> {\n const stagePanel = frontstageDef.getStagePanelDef(location);\n const panelSection = stagePanel?.getPanelSectionDef(section);\n return panelSection?.widgetDefs || [];\n}\n\n/** @internal */\nexport function isFrontstageStateSettingResult(\n settingsResult: UiStateStorageResult\n): settingsResult is {\n status: UiStateStorageStatus.Success;\n setting: WidgetPanelsFrontstageState;\n} {\n if (settingsResult.status === UiStateStorageStatus.Success) return true;\n return false;\n}\n\n/** @internal */\nexport function initializePanel(\n frontstageDef: FrontstageDef,\n location: StagePanelLocation\n) {\n const side = toPanelSide(location);\n\n const panelDef = frontstageDef.getStagePanelDef(location);\n if (!panelDef) return;\n\n // eslint-disable-next-line deprecation/deprecation\n const size = panelDef.initialConfig?.sizeSpec ?? panelDef.initialConfig?.size;\n size !== undefined &&\n frontstageDef.dispatch({\n type: \"PANEL_SET_SIZE\",\n side,\n size,\n });\n\n frontstageDef.dispatch({\n type: \"PANEL_SET_PINNED\",\n side,\n pinned: panelDef.defaultPinned,\n });\n\n frontstageDef.dispatch({\n type: \"PANEL_SET_RESIZABLE\",\n side,\n resizable: panelDef.defaultResizable,\n });\n\n const minSize =\n panelDef.initialConfig?.minSizeSpec ?? panelDef.initialConfig?.minSize; // eslint-disable-line deprecation/deprecation\n minSize !== undefined &&\n frontstageDef.dispatch({\n type: \"PANEL_SET_MIN_SIZE\",\n side,\n minSize,\n });\n\n const maxSize =\n panelDef.initialConfig?.maxSizeSpec ?? panelDef.initialConfig?.maxSize; // eslint-disable-line deprecation/deprecation\n maxSize !== undefined &&\n frontstageDef.dispatch({\n type: \"PANEL_SET_MAX_SIZE\",\n side,\n maxSize,\n });\n\n const collapsed = panelDef.defaultState !== StagePanelState.Open;\n frontstageDef.dispatch({\n type: \"PANEL_SET_COLLAPSED\",\n side,\n collapsed,\n });\n}\n\n/** @internal */\nexport const stateVersion = 17; // this needs to be bumped when NineZoneState is changed (to recreate the layout).\n\n/** @internal */\nexport function initializeNineZoneState(frontstageDef: FrontstageDef) {\n frontstageDef.batch(() => {\n frontstageDef.nineZoneState = defaultNineZone;\n\n const size = InternalFrontstageManager.nineZoneSize;\n size &&\n frontstageDef.dispatch({\n type: \"RESIZE\",\n size,\n });\n\n addFrontstageWidgetDefs(frontstageDef);\n\n initializePanel(frontstageDef, StagePanelLocation.Left);\n initializePanel(frontstageDef, StagePanelLocation.Right);\n initializePanel(frontstageDef, StagePanelLocation.Top);\n initializePanel(frontstageDef, StagePanelLocation.Bottom);\n });\n}\n\n/** Converts from saved NineZoneState to NineZoneState.\n * @note Restores toolSettings tab.\n * @note Restores tab labels.\n * @internal\n */\nexport function restoreNineZoneState(\n frontstageDef: FrontstageDef,\n packed: NineZoneState\n) {\n frontstageDef.batch(() => {\n frontstageDef.nineZoneState = packed;\n\n for (const [, tab] of Object.entries(packed.tabs)) {\n const widgetDef = frontstageDef.findWidgetDef(tab.id);\n if (!widgetDef) {\n Logger.logInfo(\n UiFramework.loggerCategory(restoreNineZoneState),\n \"WidgetDef is not found for saved tab.\",\n {\n frontstageId: frontstageDef.id,\n tabId: tab.id,\n }\n );\n frontstageDef.dispatch({ type: \"WIDGET_TAB_REMOVE\", id: tab.id });\n continue;\n }\n\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_UPDATE\",\n id: tab.id,\n overrides: toTabArgs(widgetDef),\n });\n }\n\n frontstageDef.nineZoneState = produce(\n frontstageDef.nineZoneState,\n (draft) => {\n // remove center panel section if one is found in left or right panels\n const oldLeftMiddleIndex = packed.panels.left.widgets.findIndex(\n (value) => value === \"leftMiddle\"\n );\n if (-1 !== oldLeftMiddleIndex) {\n draft.panels.left.widgets = packed.panels.left.widgets.filter(\n (value) => value !== \"leftMiddle\"\n );\n if (\"leftEnd\" in draft.widgets) {\n draft.widgets.leftMiddle.tabs.forEach((tab) =>\n draft.widgets.leftEnd.tabs.push(tab)\n );\n } else {\n draft.widgets.leftEnd = { ...draft.widgets.leftMiddle };\n delete draft.widgets.leftMiddle;\n }\n }\n\n const oldRightMiddleIndex = packed.panels.right.widgets.findIndex(\n (value) => value === \"rightMiddle\"\n );\n if (-1 !== oldRightMiddleIndex) {\n draft.panels.right.widgets = packed.panels.right.widgets.filter(\n (value) => value !== \"rightMiddle\"\n );\n if (\"rightEnd\" in draft.widgets) {\n draft.widgets.rightMiddle.tabs.forEach((tab) =>\n draft.widgets.rightEnd.tabs.push(tab)\n );\n } else {\n draft.widgets.rightEnd = { ...draft.widgets.rightMiddle };\n delete draft.widgets.rightMiddle;\n }\n }\n\n return;\n }\n );\n\n if (\n InternalFrontstageManager.nineZoneSize &&\n (0 !== InternalFrontstageManager.nineZoneSize.height ||\n 0 !== InternalFrontstageManager.nineZoneSize.width)\n ) {\n frontstageDef.dispatch({\n type: \"RESIZE\",\n size: {\n height: InternalFrontstageManager.nineZoneSize.height,\n width: InternalFrontstageManager.nineZoneSize.width,\n },\n });\n }\n\n addFrontstageWidgetDefs(frontstageDef);\n hideWidgetDefs(frontstageDef);\n processPopoutWidgets(frontstageDef);\n });\n}\n\n/** Prepares NineZoneState to be saved.\n * @note Removes toolSettings tab.\n * @note Removes tab labels and iconSpec.\n * @internal\n */\nexport function packNineZoneState(state: NineZoneState): NineZoneState {\n let packed = state;\n packed = produce(packed, (draft) => {\n for (const [, tab] of Object.entries(draft.tabs)) {\n tab.label = \"\";\n delete tab.iconSpec;\n }\n });\n return packed;\n}\n\n/** FrontstageState is saved in UiStateStorage.\n * @internal\n */\nexport interface WidgetPanelsFrontstageState {\n nineZone: NineZoneState;\n id: FrontstageDef[\"id\"];\n /** Frontstage version used to create the frontstage state. Allows to invalidate the layout from the frontstage. */\n version: number;\n /** Platform provided frontstage version. Allows to invalidate the layout from the platform. */\n stateVersion: number;\n}\n\n/** @internal */\nexport function useSavedFrontstageState(frontstageDef: FrontstageDef) {\n const uiStateStorage = useUiStateStorageHandler();\n const uiStateStorageRef = React.useRef(uiStateStorage);\n const isMountedRef = React.useRef(false);\n React.useEffect(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n React.useEffect(() => {\n uiStateStorageRef.current = uiStateStorage;\n }, [uiStateStorage]);\n React.useEffect(() => {\n async function fetchFrontstageState() {\n // Switching to previously initialized frontstage.\n if (frontstageDef.nineZoneState) {\n processPopoutWidgets(frontstageDef);\n openPopoutWidgets(frontstageDef);\n return;\n }\n\n const id = frontstageDef.id;\n const version = frontstageDef.version;\n const settingResult = await uiStateStorageRef.current.getSetting(\n FRONTSTAGE_SETTINGS_NAMESPACE,\n getFrontstageStateSettingName(id)\n );\n if (!isMountedRef.current) return;\n\n if (isFrontstageStateSettingResult(settingResult)) {\n const setting = settingResult.setting;\n if (\n setting.version === version &&\n setting.stateVersion === stateVersion\n ) {\n restoreNineZoneState(frontstageDef, setting.nineZone);\n return;\n }\n }\n initializeNineZoneState(frontstageDef);\n }\n void fetchFrontstageState();\n }, [frontstageDef]);\n}\n\n/** @internal */\nexport const FRONTSTAGE_SETTINGS_NAMESPACE = \"uifw-frontstageSettings\";\n\n/** @internal */\nexport function getFrontstageStateSettingName(\n frontstageId: WidgetPanelsFrontstageState[\"id\"]\n) {\n return `frontstageState[${frontstageId}]`;\n}\n\n/** @internal */\nexport function useFrontstageManager(\n frontstageDef: FrontstageDef,\n useToolAsToolSettingsLabel?: boolean\n) {\n const { translate } = useTranslation();\n const uiSettingsStorage = useUiStateStorageHandler();\n React.useEffect(() => {\n return InternalFrontstageManager.onFrontstageRestoreLayoutEvent.addListener(\n (args) => {\n // TODO: track restoring frontstages to support workflows: i.e. prevent loading frontstage OR saving layout when delete is pending\n void uiSettingsStorage.deleteSetting(\n FRONTSTAGE_SETTINGS_NAMESPACE,\n getFrontstageStateSettingName(args.frontstageDef.id)\n );\n if (frontstageDef.id === args.frontstageDef.id) {\n initializeNineZoneState(frontstageDef);\n return;\n }\n\n args.frontstageDef.nineZoneState = undefined;\n }\n );\n }, [uiSettingsStorage, frontstageDef]);\n\n const defaultLabel = translate(\"widget.labels.toolSettings\");\n\n React.useEffect(() => {\n const updateLabel = () => {\n const state = frontstageDef.nineZoneState;\n if (!state) return;\n const toolSettingsTabId = state.toolSettings?.tabId;\n if (!toolSettingsTabId) return;\n\n const toolId = UiFramework.frontstages.activeToolId;\n const label = useToolAsToolSettingsLabel\n ? IModelApp.tools.find(toolId)?.flyover || defaultLabel\n : defaultLabel;\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_SET_LABEL\",\n id: toolSettingsTabId,\n label,\n });\n };\n // Whenever the frontstageDef or the useTool... changes, keep the label up to date.\n updateLabel();\n\n const removeListenerFuncs: (() => void)[] = [];\n // If useTool... is true, listen for events to keep up the label up to date.\n if (useToolAsToolSettingsLabel) {\n removeListenerFuncs.push(\n UiFramework.frontstages.onFrontstageReadyEvent.addListener(updateLabel),\n InternalFrontstageManager.onFrontstageRestoreLayoutEvent.addListener(\n updateLabel\n ),\n UiFramework.frontstages.onToolActivatedEvent.addListener(updateLabel),\n UiFramework.frontstages.onToolSettingsReloadEvent.addListener(\n updateLabel\n )\n );\n }\n return () => {\n removeListenerFuncs.forEach((removeListener) => removeListener());\n };\n }, [frontstageDef, useToolAsToolSettingsLabel, defaultLabel]);\n}\n\nfunction refreshNineZoneState(frontstageDef: FrontstageDef) {\n // Fired for both registered/unregistered. Update definitions and remove/add missing widgets.\n frontstageDef.updateWidgetDefs();\n frontstageDef.batch(() => {\n addFrontstageWidgetDefs(frontstageDef);\n removeMissingWidgets(frontstageDef);\n });\n}\n\n/** @internal */\nexport function useItemsManager(frontstageDef: FrontstageDef) {\n React.useEffect(() => {\n // Not initialized yet.\n if (!frontstageDef.nineZoneState) return;\n\n // Need to refresh because UiItemsProvider may have added something while another frontstage was active.\n refreshNineZoneState(frontstageDef);\n }, [frontstageDef]);\n React.useEffect(() => {\n return UiItemsManager.onUiProviderRegisteredEvent.addListener(() => {\n refreshNineZoneState(frontstageDef);\n });\n }, [frontstageDef]);\n}\n\nfunction determineNewWidgets(\n frontstageDef: FrontstageDef,\n defs: readonly WidgetDef[] | undefined\n) {\n const state = frontstageDef.nineZoneState;\n assert(!!state);\n defs = defs || [];\n const uniqueDefs = defs.filter((def, index, array) => {\n return index === array.findIndex((def1) => def.id === def1.id);\n });\n return uniqueDefs.filter((def) => !(def.id in state.tabs));\n}\n"]}
|
package/lib/cjs/appui-react.d.ts
CHANGED
|
@@ -221,7 +221,7 @@ export * from "./appui-react/toolsettings/DefaultToolSettingsProvider";
|
|
|
221
221
|
/** @docs-package-description
|
|
222
222
|
* The ui-framework package contains classes and components for specifying the application UI consisting of the
|
|
223
223
|
* Backstage, Frontstages, Content Views, Tool Bars, Status Bars, Widgets and Panels.
|
|
224
|
-
* For more information, see [learning
|
|
224
|
+
* For more information, see [the AppUI learning docs]($docs/ui/appui/get-started.md).
|
|
225
225
|
*/
|
|
226
226
|
/**
|
|
227
227
|
* @docs-group-description AccuDraw
|
|
@@ -325,7 +325,7 @@ export * from "./appui-react/toolsettings/DefaultToolSettingsProvider";
|
|
|
325
325
|
*/
|
|
326
326
|
/**
|
|
327
327
|
* @docs-group-description ToolSettings
|
|
328
|
-
* Classes for working Tool Settings. See learning documentation [Tool Settings]($docs/
|
|
328
|
+
* Classes for working Tool Settings. See learning documentation [Tool Settings]($docs/ui/appui/configure-frontstage.md#tool-settings).
|
|
329
329
|
*/
|
|
330
330
|
/**
|
|
331
331
|
* @docs-group-description UiProvider
|
package/lib/cjs/appui-react.js
CHANGED
|
@@ -242,7 +242,7 @@ __exportStar(require("./appui-react/toolsettings/DefaultToolSettingsProvider"),
|
|
|
242
242
|
/** @docs-package-description
|
|
243
243
|
* The ui-framework package contains classes and components for specifying the application UI consisting of the
|
|
244
244
|
* Backstage, Frontstages, Content Views, Tool Bars, Status Bars, Widgets and Panels.
|
|
245
|
-
* For more information, see [learning
|
|
245
|
+
* For more information, see [the AppUI learning docs]($docs/ui/appui/get-started.md).
|
|
246
246
|
*/
|
|
247
247
|
/**
|
|
248
248
|
* @docs-group-description AccuDraw
|
|
@@ -346,7 +346,7 @@ __exportStar(require("./appui-react/toolsettings/DefaultToolSettingsProvider"),
|
|
|
346
346
|
*/
|
|
347
347
|
/**
|
|
348
348
|
* @docs-group-description ToolSettings
|
|
349
|
-
* Classes for working Tool Settings. See learning documentation [Tool Settings]($docs/
|
|
349
|
+
* Classes for working Tool Settings. See learning documentation [Tool Settings]($docs/ui/appui/configure-frontstage.md#tool-settings).
|
|
350
350
|
*/
|
|
351
351
|
/**
|
|
352
352
|
* @docs-group-description UiProvider
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appui-react.js","sourceRoot":"","sources":["../../src/appui-react.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\n// cSpell:ignore safearea cursormenu clientservices oidc Textbox Modeless configurableui stagepanels dragdrop uiadmin itemsarbiter Popout\n\nimport \"./appui-react/layers.scss\";\nexport * from \"./appui-react/UiFramework\"; // Please ensure that this line comes before all other exports.\n\nexport * from \"./appui-react/accudraw/AccuDrawCommandItems\";\nexport * from \"./appui-react/accudraw/AccuDrawDialog\";\nexport * from \"./appui-react/accudraw/AccuDrawKeyboardShortcuts\";\nexport * from \"./appui-react/accudraw/AccuDrawPopupManager\";\nexport * from \"./appui-react/accudraw/AccuDrawUiSettings\";\nexport * from \"./appui-react/accudraw/AccuDrawWidget\";\nexport * from \"./appui-react/accudraw/Calculator\";\nexport * from \"./appui-react/accudraw/CalculatorEngine\";\nexport * from \"./appui-react/accudraw/CalculatorPopup\";\nexport * from \"./appui-react/accudraw/FrameworkAccuDraw\";\nexport * from \"./appui-react/accudraw/MenuButton\";\nexport * from \"./appui-react/accudraw/MenuButtonPopup\";\n\nexport * from \"./appui-react/backstage/BackstageComposer\";\nexport * from \"./appui-react/backstage/BackstageComposerItem\";\nexport * from \"./appui-react/backstage/BackstageItem\";\nexport * from \"./appui-react/backstage/BackstageItemUtilities\";\nexport * from \"./appui-react/backstage/BackstageManager\";\nexport * from \"./appui-react/backstage/useDefaultBackstageItems\";\nexport * from \"./appui-react/backstage/useUiItemsProviderBackstageItems\";\n\nexport * from \"./appui-react/configurableui/ConfigurableUiContent\";\nexport * from \"./appui-react/configurableui/ConfigurableUiControl\";\nexport * from \"./appui-react/configurableui/state\";\n\nexport * from \"./appui-react/content/ContentControl\";\nexport * from \"./appui-react/content/ContentGroup\";\nexport * from \"./appui-react/content/ContentLayout\";\nexport * from \"./appui-react/content/FloatingViewportContent\";\nexport * from \"./appui-react/content/ViewStateHelper\";\nexport * from \"./appui-react/content/StageContentLayout\";\nexport * from \"./appui-react/content/ViewportContentControl\";\nexport * from \"./appui-react/content/IModelViewport\";\nexport * from \"./appui-react/content/DefaultViewOverlay\";\nexport * from \"./appui-react/content/split-pane/SplitPane\";\n\nexport * from \"./appui-react/cursor/CursorInformation\";\nexport * from \"./appui-react/cursor/cursorprompt/CursorPrompt\";\nexport * from \"./appui-react/cursor/cursorpopup/CursorPopup\";\nexport * from \"./appui-react/cursor/cursorpopup/CursorPopupManager\";\nexport * from \"./appui-react/cursor/cursormenu/CursorMenu\";\n\nexport * from \"./appui-react/dialog/DialogManagerBase\";\nexport * from \"./appui-react/dialog/ModalDialogManager\";\nexport * from \"./appui-react/dialog/ContentDialogManager\";\nexport * from \"./appui-react/dialog/ContentDialog\";\nexport * from \"./appui-react/dialog/ModelessDialog\";\nexport * from \"./appui-react/dialog/ModelessDialogManager\";\nexport * from \"./appui-react/dialog/StandardMessageBox\";\nexport * from \"./appui-react/dialog/UiDataProvidedDialog\";\n\nexport * from \"./appui-react/feedback/ValidationTextbox\";\nexport * from \"./appui-react/feedback/ElementTooltip\";\n\nexport * from \"./appui-react/framework/FrameworkBackstage\";\nexport * from \"./appui-react/framework/FrameworkChildWindows\";\nexport * from \"./appui-react/framework/FrameworkContent\";\nexport * from \"./appui-react/framework/FrameworkControls\";\nexport * from \"./appui-react/framework/FrameworkDialogs\";\nexport * from \"./appui-react/framework/FrameworkFrontstages\";\nexport * from \"./appui-react/framework/FrameworkKeyboardShortcuts\";\nexport * from \"./appui-react/framework/FrameworkToolSettings\";\nexport * from \"./appui-react/framework/FrameworkVisibility\";\n\nexport * from \"./appui-react/frontstage/FrontstageConfig\";\nexport * from \"./appui-react/frontstage/FrontstageDef\";\nexport * from \"./appui-react/frontstage/FrontstageProvider\";\nexport * from \"./appui-react/frontstage/ModalFrontstage\";\nexport * from \"./appui-react/frontstage/ModalSettingsStage\";\nexport * from \"./appui-react/frontstage/NestedFrontstage\";\nexport * from \"./appui-react/frontstage/StageUsage\";\nexport * from \"./appui-react/frontstage/StandardFrontstageProvider\";\n\nexport * from \"./appui-react/hooks/useActiveIModelConnection\";\nexport * from \"./appui-react/hooks/useActiveStageId\";\nexport * from \"./appui-react/hooks/useActiveViewport\";\nexport * from \"./appui-react/hooks/useAvailableUiItemsProviders\";\nexport * from \"./appui-react/hooks/useAnalysisAnimationDataProvider\";\nexport * from \"./appui-react/hooks/useScheduleAnimationDataProvider\";\nexport * from \"./appui-react/hooks/useSolarDataProvider\";\nexport * from \"./appui-react/hooks/useUiVisibility\";\n\nexport * from \"./appui-react/keyboardshortcut/KeyboardShortcut\";\nexport * from \"./appui-react/keyboardshortcut/KeyboardShortcutMenu\";\n\nexport * from \"./appui-react/keyins/Keyins\";\n\nexport * from \"./appui-react/messages/AppNotificationManager\";\nexport * from \"./appui-react/messages/InputField\";\nexport * from \"./appui-react/messages/MessageManager\";\nexport * from \"./appui-react/messages/Pointer\";\nexport * from \"./appui-react/messages/ReactNotifyMessageDetails\";\n\nexport * from \"./appui-react/navigationaids/CubeNavigationAidControl\";\nexport * from \"./appui-react/navigationaids/DrawingNavigationAidControl\";\nexport * from \"./appui-react/navigationaids/NavigationAidControl\";\nexport * from \"./appui-react/navigationaids/SheetNavigationAid\";\nexport * from \"./appui-react/navigationaids/SheetsModalFrontstage\";\nexport * from \"./appui-react/navigationaids/StandardRotationNavigationAid\";\n\nexport * from \"./appui-react/pickers/ListPicker\";\nexport * from \"./appui-react/pickers/ViewSelector\";\n\nexport * from \"./appui-react/utils/Placement\";\n\nexport * from \"./appui-react/popup/KeyinPalettePanel\";\nexport * from \"./appui-react/popup/KeyinPalettePopup\";\nexport * from \"./appui-react/popup/HTMLElementPopup\";\nexport * from \"./appui-react/popup/InputEditorPopup\";\nexport * from \"./appui-react/popup/PopupManager\";\nexport * from \"./appui-react/popup/PositionPopup\";\nexport * from \"./appui-react/popup/ToolbarPopup\";\n\nexport * from \"./appui-react/preview/PreviewFeatures\";\n\nexport * from \"./appui-react/redux/SessionState\";\nexport * from \"./appui-react/redux/StateManager\";\nexport * from \"./appui-react/redux/FrameworkState\";\nexport * from \"./appui-react/redux/connectIModel\";\nexport * from \"./appui-react/redux/ReducerRegistry\";\nexport * from \"./appui-react/redux/redux-ts\";\n\nexport * from \"./appui-react/safearea/SafeAreaContext\";\nexport * from \"./appui-react/safearea/SafeAreaInsets\";\n\nexport * from \"./appui-react/selection/SelectionContextItemDef\";\nexport * from \"./appui-react/selection/HideIsolateEmphasizeManager\";\n\nexport * from \"./appui-react/settings/ui/UiSettingsPage\";\nexport * from \"./appui-react/settings/quantityformatting/QuantityFormat\";\nexport * from \"./appui-react/settings/quantityformatting/UnitSystemSelector\";\n\nexport * from \"./appui-react/shared/ActionButtonItemDef\";\nexport * from \"./appui-react/shared/AnyItemDef\";\nexport * from \"./appui-react/shared/AnyToolbarItemDef\";\nexport * from \"./appui-react/shared/CommandItemDef\";\nexport * from \"./appui-react/shared/CustomItemDef\";\nexport * from \"./appui-react/shared/CustomItemProps\";\nexport * from \"./appui-react/shared/GroupItemProps\";\nexport * from \"./appui-react/shared/ItemDefBase\";\nexport * from \"./appui-react/shared/ItemMap\";\nexport * from \"./appui-react/shared/ItemProps\";\nexport * from \"./appui-react/shared/MenuItem\";\nexport * from \"./appui-react/shared/SelectionScope\";\nexport * from \"./appui-react/shared/ToolItemDef\";\n\nexport * from \"./appui-react/stagepanels/StagePanelConfig\";\nexport * from \"./appui-react/stagepanels/StagePanelDef\";\nexport * from \"./appui-react/stagepanels/StagePanelLocation\";\nexport * from \"./appui-react/stagepanels/StagePanelSection\";\nexport * from \"./appui-react/stagepanels/StagePanelState\";\n\nexport * from \"./appui-react/statusbar/dialog/Dialog\";\nexport * from \"./appui-react/statusbar/Indicator\";\nexport * from \"./appui-react/statusbar/LabelIndicator\";\nexport * from \"./appui-react/statusbar/Separator\";\nexport * from \"./appui-react/statusbar/StatusBar\";\nexport * from \"./appui-react/statusbar/StatusBarWidgetControl\";\nexport * from \"./appui-react/statusbar/StatusBarComposer\";\nexport * from \"./appui-react/statusbar/StatusBarItem\";\nexport * from \"./appui-react/statusbar/StatusBarItemUtilities\";\nexport * from \"./appui-react/statusbar/StatusBarComposer\";\nexport * from \"./appui-react/statusbar/popup/StatusBarPopover\";\nexport * from \"./appui-react/statusbar/useUiItemsProviderStatusBarItems\";\nexport * from \"./appui-react/statusbar/useDefaultStatusBarItems\";\n\nexport * from \"./appui-react/statusfields/tileloading/TileLoadingIndicator\";\nexport * from \"./appui-react/statusfields/ActivityCenter\";\nexport * from \"./appui-react/statusfields/message-center/MessageCenterField\";\nexport * from \"./appui-react/statusfields/SectionsField\";\nexport * from \"./appui-react/statusfields/SelectionCount\";\nexport * from \"./appui-react/statusfields/SelectionInfo\";\nexport * from \"./appui-react/statusfields/SelectionScope\";\nexport * from \"./appui-react/statusfields/SnapMode\";\nexport * from \"./appui-react/statusfields/ViewAttributes\";\nexport * from \"./appui-react/statusfields/toolassistance/ToolAssistanceField\";\n\nexport * from \"./appui-react/syncui/SyncUiEventDispatcher\";\nexport * from \"./appui-react/syncui/UiSyncEvent\";\n\nexport * from \"./appui-react/theme/ThemeManager\";\n\nexport * from \"./appui-react/timeline/ScheduleAnimationProvider\";\nexport * from \"./appui-react/timeline/AnalysisAnimationProvider\";\nexport * from \"./appui-react/timeline/SolarTimelineDataProvider\";\n\nexport * from \"./appui-react/toolbar/DragInteraction\";\nexport * from \"./appui-react/toolbar/GroupItem\";\nexport * from \"./appui-react/toolbar/Toolbar\";\nexport * from \"./appui-react/toolbar/ToolbarComposer\";\nexport * from \"./appui-react/toolbar/ToolbarHelper\";\nexport * from \"./appui-react/toolbar/ToolbarItem\";\nexport * from \"./appui-react/toolbar/ToolbarItemUtilities\";\nexport * from \"./appui-react/toolbar/ToolbarWithOverflow\";\nexport * from \"./appui-react/toolbar/useDefaultToolbarItems\";\nexport * from \"./appui-react/toolbar/useUiItemsProviderToolbarItems\";\n\nexport * from \"./appui-react/tools/CoreToolDefinitions\";\nexport * from \"./appui-react/tools/FrameworkToolAdmin\";\nexport * from \"./appui-react/tools/RestoreLayoutTool\";\nexport * from \"./appui-react/tools/ToolSettingsTools\";\n\nexport * from \"./appui-react/ui-items-provider/BaseUiItemsProvider\";\nexport * from \"./appui-react/ui-items-provider/ProviderItem\";\nexport * from \"./appui-react/ui-items-provider/StandardContentToolsProvider\";\nexport * from \"./appui-react/ui-items-provider/StandardContentToolsUiItemsProvider\";\nexport * from \"./appui-react/ui-items-provider/StandardNavigationToolsProvider\";\nexport * from \"./appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider\";\nexport * from \"./appui-react/ui-items-provider/StandardStatusbarItemsProvider\";\nexport * from \"./appui-react/ui-items-provider/StandardStatusbarUiItemsProvider\";\nexport * from \"./appui-react/ui-items-provider/UiItemsManager\";\nexport * from \"./appui-react/ui-items-provider/UiItemsProvider\";\n\nexport * from \"./appui-react/uiadmin/FrameworkUiAdmin\";\n\nexport * from \"./appui-react/uiprovider/DefaultDialogGridContainer\";\n\nexport * from \"./appui-react/uistate/AppUiSettings\";\nexport * from \"./appui-react/uistate/useUiStateStorage\";\n\nexport * from \"./appui-react/utils/ViewUtilities\";\nexport * from \"./appui-react/utils/PropsHelper\";\nexport * from \"./appui-react/utils/ToolbarButtonHelper\";\n\nexport * from \"./appui-react/widget-panels/Content\";\nexport * from \"./appui-react/widget-panels/Frontstage\";\nexport * from \"./appui-react/widget-panels/FrontstageContent\";\nexport * from \"./appui-react/widget-panels/ModalFrontstageComposer\";\nexport * from \"./appui-react/widget-panels/StatusBar\";\nexport * from \"./appui-react/widget-panels/Tab\";\nexport * from \"./appui-react/widget-panels/Toolbars\";\nexport * from \"./appui-react/widget-panels/ToolSettings\";\nexport * from \"./appui-react/widget-panels/useWidgetDirection\";\nexport * from \"./appui-react/widget-panels/useTransientState\";\n\nexport * from \"./appui-react/widgets/BackstageAppButton\";\nexport * from \"./appui-react/widgets/BasicNavigationWidget\";\nexport * from \"./appui-react/widgets/BasicToolWidget\";\nexport * from \"./appui-react/widgets/ContentToolWidgetComposer\";\nexport * from \"./appui-react/widgets/NavigationWidgetComposer\";\nexport * from \"./appui-react/widgets/StableWidgetDef\";\nexport * from \"./appui-react/widgets/StatusBarWidgetComposerControl\";\nexport * from \"./appui-react/widgets/ToolWidgetComposer\";\nexport * from \"./appui-react/widgets/ViewToolWidgetComposer\";\nexport * from \"./appui-react/widgets/Widget\";\nexport * from \"./appui-react/widgets/WidgetConfig\";\nexport * from \"./appui-react/widgets/WidgetControl\";\nexport * from \"./appui-react/widgets/WidgetDef\";\nexport * from \"./appui-react/widgets/WidgetHost\";\nexport * from \"./appui-react/widgets/WidgetManager\";\nexport * from \"./appui-react/widgets/WidgetState\";\nexport * from \"./appui-react/widgets/useWidget\";\n\nexport * from \"./appui-react/toolsettings/ToolInformation\";\nexport * from \"./appui-react/toolsettings/ToolUiProvider\";\nexport * from \"./appui-react/toolsettings/DefaultToolSettingsProvider\";\n\n/** @docs-package-description\n * The ui-framework package contains classes and components for specifying the application UI consisting of the\n * Backstage, Frontstages, Content Views, Tool Bars, Status Bars, Widgets and Panels.\n * For more information, see [learning about appui-react]($docs/learning/ui/appui-react/index.md).\n */\n/**\n * @docs-group-description AccuDraw\n * Classes and components providing a UI for AccuDraw, an aide for entering coordinate data.\n */\n/**\n * @docs-group-description Admin\n * APIs for various UI components, such as toolbars, buttons and menus.\n */\n/**\n * @docs-group-description Backstage\n * Classes for working with a Backstage\n */\n/**\n * @docs-group-description ConfigurableUi\n * Classes for working with the Application UI Configuration\n */\n/**\n * @docs-group-description ContentView\n * Classes for working with a Content View, Group, Layout or Control\n */\n/**\n * @docs-group-description Cursor\n * Cursor related information, components and events\n */\n/**\n * @docs-group-description Dialog\n * Classes for working with a dialog\n */\n/**\n * @docs-group-description Frontstage\n * Classes for working with a Frontstage\n */\n/**\n * @docs-group-description Hooks\n * Hook functions for use in Functional React Components.\n */\n/**\n * @docs-group-description IModelComponents\n * Classes for displaying information about an iModel\n */\n/**\n * @docs-group-description Item\n * Classes for working with an Item in a Tool Widget, Navigation Widget or Backstage\n */\n/**\n * @docs-group-description KeyboardShortcut\n * Classes for working with Keyboard Shortcuts\n */\n/**\n * @docs-group-description NavigationAids\n * Classes for working with Navigation Aids\n */\n/**\n * @docs-group-description Notification\n * Classes for working with a Notification or Message\n */\n/**\n * @docs-group-description ChildWindowManager\n * Classes for working with child windows.\n */\n/**\n * @docs-group-description Picker\n * Classes for working with various pickers\n */\n/**\n * @docs-group-description Popup\n * Classes for working with popup components\n */\n/**\n * @docs-group-description State\n * Classes for maintaining state\n */\n/**\n * @docs-group-description Settings\n * Classes and components used by settings pages displayed in the modal settings stage\n */\n/**\n * @docs-group-description StandardUiItemsProvider\n * Standard UiItemsProvider classes.\n */\n/**\n * @docs-group-description StatusBar\n * Classes for defining a StatusBar\n */\n/**\n * @docs-group-description SyncUi\n * Classes for informing UI components to sync/refresh their display\n */\n/**\n * @docs-group-description Timeline\n * Classes for working with a TimelineComponent\n */\n/**\n * @docs-group-description Toolbar\n * Classes used to construct a Toolbar\n */\n/**\n * @docs-group-description Tools\n * Core Tool definitions\n */\n/**\n * @docs-group-description ToolSettings\n * Classes for working Tool Settings. See learning documentation [Tool Settings]($docs/learning/ui/appui-react/toolsettings.md).\n */\n/**\n * @docs-group-description UiProvider\n * Interfaces and classes for specifying UI items to be inserted at runtime.\n */\n/**\n * @docs-group-description UiStateStorage\n * Interfaces and classes for persisting UI settings.\n */\n/**\n * @docs-group-description Utilities\n * Various utility classes for working with a UI and Redux.\n */\n/**\n * @docs-group-description Widget\n * Classes for working with a Widget\n */\n"]}
|
|
1
|
+
{"version":3,"file":"appui-react.js","sourceRoot":"","sources":["../../src/appui-react.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\n// cSpell:ignore safearea cursormenu clientservices oidc Textbox Modeless configurableui stagepanels dragdrop uiadmin itemsarbiter Popout\n\nimport \"./appui-react/layers.scss\";\nexport * from \"./appui-react/UiFramework\"; // Please ensure that this line comes before all other exports.\n\nexport * from \"./appui-react/accudraw/AccuDrawCommandItems\";\nexport * from \"./appui-react/accudraw/AccuDrawDialog\";\nexport * from \"./appui-react/accudraw/AccuDrawKeyboardShortcuts\";\nexport * from \"./appui-react/accudraw/AccuDrawPopupManager\";\nexport * from \"./appui-react/accudraw/AccuDrawUiSettings\";\nexport * from \"./appui-react/accudraw/AccuDrawWidget\";\nexport * from \"./appui-react/accudraw/Calculator\";\nexport * from \"./appui-react/accudraw/CalculatorEngine\";\nexport * from \"./appui-react/accudraw/CalculatorPopup\";\nexport * from \"./appui-react/accudraw/FrameworkAccuDraw\";\nexport * from \"./appui-react/accudraw/MenuButton\";\nexport * from \"./appui-react/accudraw/MenuButtonPopup\";\n\nexport * from \"./appui-react/backstage/BackstageComposer\";\nexport * from \"./appui-react/backstage/BackstageComposerItem\";\nexport * from \"./appui-react/backstage/BackstageItem\";\nexport * from \"./appui-react/backstage/BackstageItemUtilities\";\nexport * from \"./appui-react/backstage/BackstageManager\";\nexport * from \"./appui-react/backstage/useDefaultBackstageItems\";\nexport * from \"./appui-react/backstage/useUiItemsProviderBackstageItems\";\n\nexport * from \"./appui-react/configurableui/ConfigurableUiContent\";\nexport * from \"./appui-react/configurableui/ConfigurableUiControl\";\nexport * from \"./appui-react/configurableui/state\";\n\nexport * from \"./appui-react/content/ContentControl\";\nexport * from \"./appui-react/content/ContentGroup\";\nexport * from \"./appui-react/content/ContentLayout\";\nexport * from \"./appui-react/content/FloatingViewportContent\";\nexport * from \"./appui-react/content/ViewStateHelper\";\nexport * from \"./appui-react/content/StageContentLayout\";\nexport * from \"./appui-react/content/ViewportContentControl\";\nexport * from \"./appui-react/content/IModelViewport\";\nexport * from \"./appui-react/content/DefaultViewOverlay\";\nexport * from \"./appui-react/content/split-pane/SplitPane\";\n\nexport * from \"./appui-react/cursor/CursorInformation\";\nexport * from \"./appui-react/cursor/cursorprompt/CursorPrompt\";\nexport * from \"./appui-react/cursor/cursorpopup/CursorPopup\";\nexport * from \"./appui-react/cursor/cursorpopup/CursorPopupManager\";\nexport * from \"./appui-react/cursor/cursormenu/CursorMenu\";\n\nexport * from \"./appui-react/dialog/DialogManagerBase\";\nexport * from \"./appui-react/dialog/ModalDialogManager\";\nexport * from \"./appui-react/dialog/ContentDialogManager\";\nexport * from \"./appui-react/dialog/ContentDialog\";\nexport * from \"./appui-react/dialog/ModelessDialog\";\nexport * from \"./appui-react/dialog/ModelessDialogManager\";\nexport * from \"./appui-react/dialog/StandardMessageBox\";\nexport * from \"./appui-react/dialog/UiDataProvidedDialog\";\n\nexport * from \"./appui-react/feedback/ValidationTextbox\";\nexport * from \"./appui-react/feedback/ElementTooltip\";\n\nexport * from \"./appui-react/framework/FrameworkBackstage\";\nexport * from \"./appui-react/framework/FrameworkChildWindows\";\nexport * from \"./appui-react/framework/FrameworkContent\";\nexport * from \"./appui-react/framework/FrameworkControls\";\nexport * from \"./appui-react/framework/FrameworkDialogs\";\nexport * from \"./appui-react/framework/FrameworkFrontstages\";\nexport * from \"./appui-react/framework/FrameworkKeyboardShortcuts\";\nexport * from \"./appui-react/framework/FrameworkToolSettings\";\nexport * from \"./appui-react/framework/FrameworkVisibility\";\n\nexport * from \"./appui-react/frontstage/FrontstageConfig\";\nexport * from \"./appui-react/frontstage/FrontstageDef\";\nexport * from \"./appui-react/frontstage/FrontstageProvider\";\nexport * from \"./appui-react/frontstage/ModalFrontstage\";\nexport * from \"./appui-react/frontstage/ModalSettingsStage\";\nexport * from \"./appui-react/frontstage/NestedFrontstage\";\nexport * from \"./appui-react/frontstage/StageUsage\";\nexport * from \"./appui-react/frontstage/StandardFrontstageProvider\";\n\nexport * from \"./appui-react/hooks/useActiveIModelConnection\";\nexport * from \"./appui-react/hooks/useActiveStageId\";\nexport * from \"./appui-react/hooks/useActiveViewport\";\nexport * from \"./appui-react/hooks/useAvailableUiItemsProviders\";\nexport * from \"./appui-react/hooks/useAnalysisAnimationDataProvider\";\nexport * from \"./appui-react/hooks/useScheduleAnimationDataProvider\";\nexport * from \"./appui-react/hooks/useSolarDataProvider\";\nexport * from \"./appui-react/hooks/useUiVisibility\";\n\nexport * from \"./appui-react/keyboardshortcut/KeyboardShortcut\";\nexport * from \"./appui-react/keyboardshortcut/KeyboardShortcutMenu\";\n\nexport * from \"./appui-react/keyins/Keyins\";\n\nexport * from \"./appui-react/messages/AppNotificationManager\";\nexport * from \"./appui-react/messages/InputField\";\nexport * from \"./appui-react/messages/MessageManager\";\nexport * from \"./appui-react/messages/Pointer\";\nexport * from \"./appui-react/messages/ReactNotifyMessageDetails\";\n\nexport * from \"./appui-react/navigationaids/CubeNavigationAidControl\";\nexport * from \"./appui-react/navigationaids/DrawingNavigationAidControl\";\nexport * from \"./appui-react/navigationaids/NavigationAidControl\";\nexport * from \"./appui-react/navigationaids/SheetNavigationAid\";\nexport * from \"./appui-react/navigationaids/SheetsModalFrontstage\";\nexport * from \"./appui-react/navigationaids/StandardRotationNavigationAid\";\n\nexport * from \"./appui-react/pickers/ListPicker\";\nexport * from \"./appui-react/pickers/ViewSelector\";\n\nexport * from \"./appui-react/utils/Placement\";\n\nexport * from \"./appui-react/popup/KeyinPalettePanel\";\nexport * from \"./appui-react/popup/KeyinPalettePopup\";\nexport * from \"./appui-react/popup/HTMLElementPopup\";\nexport * from \"./appui-react/popup/InputEditorPopup\";\nexport * from \"./appui-react/popup/PopupManager\";\nexport * from \"./appui-react/popup/PositionPopup\";\nexport * from \"./appui-react/popup/ToolbarPopup\";\n\nexport * from \"./appui-react/preview/PreviewFeatures\";\n\nexport * from \"./appui-react/redux/SessionState\";\nexport * from \"./appui-react/redux/StateManager\";\nexport * from \"./appui-react/redux/FrameworkState\";\nexport * from \"./appui-react/redux/connectIModel\";\nexport * from \"./appui-react/redux/ReducerRegistry\";\nexport * from \"./appui-react/redux/redux-ts\";\n\nexport * from \"./appui-react/safearea/SafeAreaContext\";\nexport * from \"./appui-react/safearea/SafeAreaInsets\";\n\nexport * from \"./appui-react/selection/SelectionContextItemDef\";\nexport * from \"./appui-react/selection/HideIsolateEmphasizeManager\";\n\nexport * from \"./appui-react/settings/ui/UiSettingsPage\";\nexport * from \"./appui-react/settings/quantityformatting/QuantityFormat\";\nexport * from \"./appui-react/settings/quantityformatting/UnitSystemSelector\";\n\nexport * from \"./appui-react/shared/ActionButtonItemDef\";\nexport * from \"./appui-react/shared/AnyItemDef\";\nexport * from \"./appui-react/shared/AnyToolbarItemDef\";\nexport * from \"./appui-react/shared/CommandItemDef\";\nexport * from \"./appui-react/shared/CustomItemDef\";\nexport * from \"./appui-react/shared/CustomItemProps\";\nexport * from \"./appui-react/shared/GroupItemProps\";\nexport * from \"./appui-react/shared/ItemDefBase\";\nexport * from \"./appui-react/shared/ItemMap\";\nexport * from \"./appui-react/shared/ItemProps\";\nexport * from \"./appui-react/shared/MenuItem\";\nexport * from \"./appui-react/shared/SelectionScope\";\nexport * from \"./appui-react/shared/ToolItemDef\";\n\nexport * from \"./appui-react/stagepanels/StagePanelConfig\";\nexport * from \"./appui-react/stagepanels/StagePanelDef\";\nexport * from \"./appui-react/stagepanels/StagePanelLocation\";\nexport * from \"./appui-react/stagepanels/StagePanelSection\";\nexport * from \"./appui-react/stagepanels/StagePanelState\";\n\nexport * from \"./appui-react/statusbar/dialog/Dialog\";\nexport * from \"./appui-react/statusbar/Indicator\";\nexport * from \"./appui-react/statusbar/LabelIndicator\";\nexport * from \"./appui-react/statusbar/Separator\";\nexport * from \"./appui-react/statusbar/StatusBar\";\nexport * from \"./appui-react/statusbar/StatusBarWidgetControl\";\nexport * from \"./appui-react/statusbar/StatusBarComposer\";\nexport * from \"./appui-react/statusbar/StatusBarItem\";\nexport * from \"./appui-react/statusbar/StatusBarItemUtilities\";\nexport * from \"./appui-react/statusbar/StatusBarComposer\";\nexport * from \"./appui-react/statusbar/popup/StatusBarPopover\";\nexport * from \"./appui-react/statusbar/useUiItemsProviderStatusBarItems\";\nexport * from \"./appui-react/statusbar/useDefaultStatusBarItems\";\n\nexport * from \"./appui-react/statusfields/tileloading/TileLoadingIndicator\";\nexport * from \"./appui-react/statusfields/ActivityCenter\";\nexport * from \"./appui-react/statusfields/message-center/MessageCenterField\";\nexport * from \"./appui-react/statusfields/SectionsField\";\nexport * from \"./appui-react/statusfields/SelectionCount\";\nexport * from \"./appui-react/statusfields/SelectionInfo\";\nexport * from \"./appui-react/statusfields/SelectionScope\";\nexport * from \"./appui-react/statusfields/SnapMode\";\nexport * from \"./appui-react/statusfields/ViewAttributes\";\nexport * from \"./appui-react/statusfields/toolassistance/ToolAssistanceField\";\n\nexport * from \"./appui-react/syncui/SyncUiEventDispatcher\";\nexport * from \"./appui-react/syncui/UiSyncEvent\";\n\nexport * from \"./appui-react/theme/ThemeManager\";\n\nexport * from \"./appui-react/timeline/ScheduleAnimationProvider\";\nexport * from \"./appui-react/timeline/AnalysisAnimationProvider\";\nexport * from \"./appui-react/timeline/SolarTimelineDataProvider\";\n\nexport * from \"./appui-react/toolbar/DragInteraction\";\nexport * from \"./appui-react/toolbar/GroupItem\";\nexport * from \"./appui-react/toolbar/Toolbar\";\nexport * from \"./appui-react/toolbar/ToolbarComposer\";\nexport * from \"./appui-react/toolbar/ToolbarHelper\";\nexport * from \"./appui-react/toolbar/ToolbarItem\";\nexport * from \"./appui-react/toolbar/ToolbarItemUtilities\";\nexport * from \"./appui-react/toolbar/ToolbarWithOverflow\";\nexport * from \"./appui-react/toolbar/useDefaultToolbarItems\";\nexport * from \"./appui-react/toolbar/useUiItemsProviderToolbarItems\";\n\nexport * from \"./appui-react/tools/CoreToolDefinitions\";\nexport * from \"./appui-react/tools/FrameworkToolAdmin\";\nexport * from \"./appui-react/tools/RestoreLayoutTool\";\nexport * from \"./appui-react/tools/ToolSettingsTools\";\n\nexport * from \"./appui-react/ui-items-provider/BaseUiItemsProvider\";\nexport * from \"./appui-react/ui-items-provider/ProviderItem\";\nexport * from \"./appui-react/ui-items-provider/StandardContentToolsProvider\";\nexport * from \"./appui-react/ui-items-provider/StandardContentToolsUiItemsProvider\";\nexport * from \"./appui-react/ui-items-provider/StandardNavigationToolsProvider\";\nexport * from \"./appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider\";\nexport * from \"./appui-react/ui-items-provider/StandardStatusbarItemsProvider\";\nexport * from \"./appui-react/ui-items-provider/StandardStatusbarUiItemsProvider\";\nexport * from \"./appui-react/ui-items-provider/UiItemsManager\";\nexport * from \"./appui-react/ui-items-provider/UiItemsProvider\";\n\nexport * from \"./appui-react/uiadmin/FrameworkUiAdmin\";\n\nexport * from \"./appui-react/uiprovider/DefaultDialogGridContainer\";\n\nexport * from \"./appui-react/uistate/AppUiSettings\";\nexport * from \"./appui-react/uistate/useUiStateStorage\";\n\nexport * from \"./appui-react/utils/ViewUtilities\";\nexport * from \"./appui-react/utils/PropsHelper\";\nexport * from \"./appui-react/utils/ToolbarButtonHelper\";\n\nexport * from \"./appui-react/widget-panels/Content\";\nexport * from \"./appui-react/widget-panels/Frontstage\";\nexport * from \"./appui-react/widget-panels/FrontstageContent\";\nexport * from \"./appui-react/widget-panels/ModalFrontstageComposer\";\nexport * from \"./appui-react/widget-panels/StatusBar\";\nexport * from \"./appui-react/widget-panels/Tab\";\nexport * from \"./appui-react/widget-panels/Toolbars\";\nexport * from \"./appui-react/widget-panels/ToolSettings\";\nexport * from \"./appui-react/widget-panels/useWidgetDirection\";\nexport * from \"./appui-react/widget-panels/useTransientState\";\n\nexport * from \"./appui-react/widgets/BackstageAppButton\";\nexport * from \"./appui-react/widgets/BasicNavigationWidget\";\nexport * from \"./appui-react/widgets/BasicToolWidget\";\nexport * from \"./appui-react/widgets/ContentToolWidgetComposer\";\nexport * from \"./appui-react/widgets/NavigationWidgetComposer\";\nexport * from \"./appui-react/widgets/StableWidgetDef\";\nexport * from \"./appui-react/widgets/StatusBarWidgetComposerControl\";\nexport * from \"./appui-react/widgets/ToolWidgetComposer\";\nexport * from \"./appui-react/widgets/ViewToolWidgetComposer\";\nexport * from \"./appui-react/widgets/Widget\";\nexport * from \"./appui-react/widgets/WidgetConfig\";\nexport * from \"./appui-react/widgets/WidgetControl\";\nexport * from \"./appui-react/widgets/WidgetDef\";\nexport * from \"./appui-react/widgets/WidgetHost\";\nexport * from \"./appui-react/widgets/WidgetManager\";\nexport * from \"./appui-react/widgets/WidgetState\";\nexport * from \"./appui-react/widgets/useWidget\";\n\nexport * from \"./appui-react/toolsettings/ToolInformation\";\nexport * from \"./appui-react/toolsettings/ToolUiProvider\";\nexport * from \"./appui-react/toolsettings/DefaultToolSettingsProvider\";\n\n/** @docs-package-description\n * The ui-framework package contains classes and components for specifying the application UI consisting of the\n * Backstage, Frontstages, Content Views, Tool Bars, Status Bars, Widgets and Panels.\n * For more information, see [the AppUI learning docs]($docs/ui/appui/get-started.md).\n */\n/**\n * @docs-group-description AccuDraw\n * Classes and components providing a UI for AccuDraw, an aide for entering coordinate data.\n */\n/**\n * @docs-group-description Admin\n * APIs for various UI components, such as toolbars, buttons and menus.\n */\n/**\n * @docs-group-description Backstage\n * Classes for working with a Backstage\n */\n/**\n * @docs-group-description ConfigurableUi\n * Classes for working with the Application UI Configuration\n */\n/**\n * @docs-group-description ContentView\n * Classes for working with a Content View, Group, Layout or Control\n */\n/**\n * @docs-group-description Cursor\n * Cursor related information, components and events\n */\n/**\n * @docs-group-description Dialog\n * Classes for working with a dialog\n */\n/**\n * @docs-group-description Frontstage\n * Classes for working with a Frontstage\n */\n/**\n * @docs-group-description Hooks\n * Hook functions for use in Functional React Components.\n */\n/**\n * @docs-group-description IModelComponents\n * Classes for displaying information about an iModel\n */\n/**\n * @docs-group-description Item\n * Classes for working with an Item in a Tool Widget, Navigation Widget or Backstage\n */\n/**\n * @docs-group-description KeyboardShortcut\n * Classes for working with Keyboard Shortcuts\n */\n/**\n * @docs-group-description NavigationAids\n * Classes for working with Navigation Aids\n */\n/**\n * @docs-group-description Notification\n * Classes for working with a Notification or Message\n */\n/**\n * @docs-group-description ChildWindowManager\n * Classes for working with child windows.\n */\n/**\n * @docs-group-description Picker\n * Classes for working with various pickers\n */\n/**\n * @docs-group-description Popup\n * Classes for working with popup components\n */\n/**\n * @docs-group-description State\n * Classes for maintaining state\n */\n/**\n * @docs-group-description Settings\n * Classes and components used by settings pages displayed in the modal settings stage\n */\n/**\n * @docs-group-description StandardUiItemsProvider\n * Standard UiItemsProvider classes.\n */\n/**\n * @docs-group-description StatusBar\n * Classes for defining a StatusBar\n */\n/**\n * @docs-group-description SyncUi\n * Classes for informing UI components to sync/refresh their display\n */\n/**\n * @docs-group-description Timeline\n * Classes for working with a TimelineComponent\n */\n/**\n * @docs-group-description Toolbar\n * Classes used to construct a Toolbar\n */\n/**\n * @docs-group-description Tools\n * Core Tool definitions\n */\n/**\n * @docs-group-description ToolSettings\n * Classes for working Tool Settings. See learning documentation [Tool Settings]($docs/ui/appui/configure-frontstage.md#tool-settings).\n */\n/**\n * @docs-group-description UiProvider\n * Interfaces and classes for specifying UI items to be inserted at runtime.\n */\n/**\n * @docs-group-description UiStateStorage\n * Interfaces and classes for persisting UI settings.\n */\n/**\n * @docs-group-description Utilities\n * Various utility classes for working with a UI and Redux.\n */\n/**\n * @docs-group-description Widget\n * Classes for working with a Widget\n */\n"]}
|
|
@@ -7,6 +7,10 @@ export interface ChildWindow extends Window {
|
|
|
7
7
|
expectedWidth?: number;
|
|
8
8
|
/** Expected height of the child window. */
|
|
9
9
|
expectedHeight?: number;
|
|
10
|
+
/** Expected top value of the child window. */
|
|
11
|
+
expectedTop?: number;
|
|
12
|
+
/** Expected left value of the child window. */
|
|
13
|
+
expectedLeft?: number;
|
|
10
14
|
/** Difference between expected child window width and actual value when opened. */
|
|
11
15
|
deltaWidth?: number;
|
|
12
16
|
/** Difference between expected child window height and actual value when opened. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChildWindowConfig.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/childwindow/ChildWindowConfig.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,MAAM;IACzC,0CAA0C;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mFAAmF;IACnF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wFAAwF;IACxF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
|
|
1
|
+
{"version":3,"file":"ChildWindowConfig.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/childwindow/ChildWindowConfig.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,MAAM;IACzC,0CAA0C;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mFAAmF;IACnF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wFAAwF;IACxF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChildWindowConfig.js","sourceRoot":"","sources":["../../../../src/appui-react/childwindow/ChildWindowConfig.ts"],"names":[],"mappings":"","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/**\n * An extension of a Window to be used for Popout Widgets.\n * @internal\n */\nexport interface ChildWindow extends Window {\n /** Expected width of the child window. */\n expectedWidth?: number;\n /** Expected height of the child window. */\n expectedHeight?: number;\n /** Difference between expected child window width and actual value when opened. */\n deltaWidth?: number;\n /** Difference between expected child window height and actual value when opened. */\n deltaHeight?: number;\n /** Difference between expected child window left value and actual value when opened. */\n deltaLeft?: number;\n /** Difference between expected child window top value and actual value when opened. */\n deltaTop?: number;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ChildWindowConfig.js","sourceRoot":"","sources":["../../../../src/appui-react/childwindow/ChildWindowConfig.ts"],"names":[],"mappings":"","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/**\n * An extension of a Window to be used for Popout Widgets.\n * @internal\n */\nexport interface ChildWindow extends Window {\n /** Expected width of the child window. */\n expectedWidth?: number;\n /** Expected height of the child window. */\n expectedHeight?: number;\n /** Expected top value of the child window. */\n expectedTop?: number;\n /** Expected left value of the child window. */\n expectedLeft?: number;\n /** Difference between expected child window width and actual value when opened. */\n deltaWidth?: number;\n /** Difference between expected child window height and actual value when opened. */\n deltaHeight?: number;\n /** Difference between expected child window left value and actual value when opened. */\n deltaLeft?: number;\n /** Difference between expected child window top value and actual value when opened. */\n deltaTop?: number;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternalChildWindowManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/childwindow/InternalChildWindowManager.tsx"],"names":[],"mappings":"AAKA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,KAAK,EACV,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,oCAAoC,CAAC;AAO5C,OAAO,mCAAmC,CAAC;AA0B3C;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE/E;;;;KAIK;AACL,qBAAa,0BAA2B,YAAW,qBAAqB;IACtE,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,MAAM,CAAwC;IAEtD,IAAW,gBAAgB,0BAE1B;IAED;;;;;;;;OAQG;IACI,aAAa,CAAC,YAAY,EAAE,UAAU,GAAG,IAAI;IAIpD;;;;OAIG;IACH,OAAO,CAAC,MAAM;IAqBd;;;;OAIG;IACI,IAAI,CACT,aAAa,EAAE,MAAM,GAAG,SAAS,GAChC,mBAAmB,GAAG,SAAS;IAQlC;;;;OAIG;IACI,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS;IAS3E,OAAO,CAAC,yBAAyB;
|
|
1
|
+
{"version":3,"file":"InternalChildWindowManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/childwindow/InternalChildWindowManager.tsx"],"names":[],"mappings":"AAKA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,KAAK,EACV,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,oCAAoC,CAAC;AAO5C,OAAO,mCAAmC,CAAC;AA0B3C;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE/E;;;;KAIK;AACL,qBAAa,0BAA2B,YAAW,qBAAqB;IACtE,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,MAAM,CAAwC;IAEtD,IAAW,gBAAgB,0BAE1B;IAED;;;;;;;;OAQG;IACI,aAAa,CAAC,YAAY,EAAE,UAAU,GAAG,IAAI;IAIpD;;;;OAIG;IACH,OAAO,CAAC,MAAM;IAqBd;;;;OAIG;IACI,IAAI,CACT,aAAa,EAAE,MAAM,GAAG,SAAS,GAChC,mBAAmB,GAAG,SAAS;IAQlC;;;;OAIG;IACI,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS;IAS3E,OAAO,CAAC,yBAAyB;IAqGjC,gGAAgG;IACzF,QAAQ;IAOf;;;;;OAKG;IACI,KAAK,kBAAmB,MAAM,2CAkBnC;IAEF,OAAO,CAAC,oBAAoB;IAU5B;;;;;;;;OAQG;IACI,IAAI,CACT,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,KAAK,CAAC,SAAS,EACxB,QAAQ,EAAE,wBAAwB,EAClC,mBAAmB,CAAC,EAAE,OAAO;CA2DhC"}
|
|
@@ -177,6 +177,12 @@ export class InternalChildWindowManager {
|
|
|
177
177
|
childWindow.deltaHeight =
|
|
178
178
|
childWindow.expectedHeight - childWindow.innerHeight;
|
|
179
179
|
}
|
|
180
|
+
if (childWindow.expectedLeft && childWindow.expectedTop) {
|
|
181
|
+
childWindow.deltaLeft =
|
|
182
|
+
childWindow.expectedLeft - childWindow.screenLeft;
|
|
183
|
+
childWindow.deltaTop =
|
|
184
|
+
childWindow.expectedTop - childWindow.screenTop;
|
|
185
|
+
}
|
|
180
186
|
});
|
|
181
187
|
});
|
|
182
188
|
childWindow.addEventListener("pagehide", () => {
|
|
@@ -232,8 +238,8 @@ export class InternalChildWindowManager {
|
|
|
232
238
|
return false;
|
|
233
239
|
childWindow.expectedHeight = location.height;
|
|
234
240
|
childWindow.expectedWidth = location.width;
|
|
235
|
-
childWindow.
|
|
236
|
-
childWindow.
|
|
241
|
+
childWindow.expectedLeft = location.left;
|
|
242
|
+
childWindow.expectedTop = location.top;
|
|
237
243
|
if (url.length === 0) {
|
|
238
244
|
childWindow.document.write(childHtml);
|
|
239
245
|
this.renderChildWindowContents(childWindow, childWindowId, content, title);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternalChildWindowManager.js","sourceRoot":"","sources":["../../../../src/appui-react/childwindow/InternalChildWindowManager.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module ChildWindowManager\n */\n\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Provider } from \"react-redux\";\nimport { UiFramework } from \"../UiFramework\";\nimport { CursorPopupMenu } from \"../cursor/cursormenu/CursorMenu\";\nimport { ModalDialogRenderer } from \"../dialog/ModalDialogManager\";\nimport { ModelessDialogRenderer } from \"../dialog/ModelessDialogManager\";\nimport type {\n ChildWindowLocationProps,\n FrameworkChildWindows,\n OpenChildWindowInfo,\n} from \"../framework/FrameworkChildWindows\";\nimport { TabIdContext } from \"../layout/widget/ContentRenderer\";\nimport { PopupRenderer } from \"../popup/PopupManager\";\nimport { ThemeManager } from \"../theme/ThemeManager\";\nimport { UiStateStorageHandler } from \"../uistate/useUiStateStorage\";\nimport type { ChildWindow } from \"./ChildWindowConfig\";\nimport { copyStyles } from \"./CopyStyles\";\nimport \"./InternalChildWindowManager.scss\";\nimport { usePopoutsStore } from \"../preview/reparent-popout-widgets/usePopoutsStore\";\n\nconst childHtml = `<!DOCTYPE html>\n<html>\n<head>\n <meta charset=\"utf-8\" />\n <style>\n html,\n body {\n height: 100%;\n width: 100%;\n margin: 0;\n overflow: hidden;\n }\n #root {\n height: 100%;\n }\n </style>\n</head>\n<body>\n <noscript>You need to enable JavaScript to run this app.</noscript>\n <div id=\"root\"></div>\n</body>\n</html>`;\n\n/**\n * Simplification of non exported CreateRoot parameter, only to be used\n * in InternalChildWindowManager and ChildWindowManager\n * @internal\n */\nexport type CreateRoot = Parameters<FrameworkChildWindows[\"useCreateRoot\"]>[0];\n\n/** Supports opening a child browser window from the main application window. The child window is managed by the main application\n * and is running in the same security context. The application must deliver the html file iTwinPopup.html along side its index.html.\n * See also: [Child Window Manager]($docs/learning/ui/appui-react/ChildWindows.md)\n * @internal\n * */\nexport class InternalChildWindowManager implements FrameworkChildWindows {\n private _openChildWindows: OpenChildWindowInfo[] = [];\n private _createRoot?: CreateRoot;\n private _roots: { [childwindowId: string]: any } = {};\n\n public get openChildWindows() {\n return this._openChildWindows;\n }\n\n /**\n * When using React 18, the `createRoot` function must be provided in order to render Popout content with React 18.\n * Do not call if using React 17 or before.\n *\n * Note: The type of the function is intentionally simplified here.\n *\n * @param createRootFn Function imported from `import { createRoot } from \"react-dom/client\";`\n * @beta Will be removed once the transition to React 18 is complete.\n */\n public useCreateRoot(createRootFn: CreateRoot): void {\n this._createRoot = createRootFn;\n }\n\n /**\n * Abstracts ReactDOM.render to use either the _createRoot method or the default ReactDOM.render.\n * @param element Element to render.\n * @param container Container to render to.\n */\n private render(\n element: React.FunctionComponentElement<any>,\n container: Element | DocumentFragment\n ) {\n // If createRoot is passed in for React 18 we have to render differently\n // than without it. React 17 vs React 18. We need to save the root to\n // unmount it.\n if (this._createRoot) {\n const childWindowId = UiFramework.childWindows.findId(\n container.ownerDocument.defaultView\n );\n if (childWindowId) {\n this._roots[childWindowId] = this._createRoot(container);\n this._roots[childWindowId].render(element);\n }\n } else {\n // eslint-disable-next-line react/no-deprecated, deprecation/deprecation\n ReactDOM.render(element, container);\n }\n }\n\n /**\n * Returns the OpenChildWindowInfo for the related id.\n * @param childWindowId Id of the window to retrieve.\n * @returns undefined if not found.\n */\n public find(\n childWindowId: string | undefined\n ): OpenChildWindowInfo | undefined {\n if (undefined === childWindowId) return undefined;\n\n return this.openChildWindows.find(\n (openWindow) => openWindow.childWindowId === childWindowId\n );\n }\n\n /**\n * Return the childWindowId of the provided window.\n * @param contentWindow Window element to identify\n * @returns undefined if not found\n */\n public findId(contentWindow: Window | undefined | null): string | undefined {\n if (!contentWindow) return undefined;\n\n const childWindow = this.openChildWindows.find(\n (openWindow) => openWindow.window === contentWindow\n );\n return childWindow?.childWindowId;\n }\n\n private renderChildWindowContents(\n childWindow: ChildWindow,\n childWindowId: string,\n content: React.ReactNode,\n title: string\n ) {\n childWindow.document.title = title;\n\n const reactConnectionDiv = childWindow.document.getElementById(\"root\");\n if (reactConnectionDiv && content && React.isValidElement(content)) {\n // set openChildWindows now so components can use it when they mount\n this._openChildWindows.push({\n childWindowId,\n window: childWindow,\n parentWindow: window,\n });\n let element: React.FunctionComponentElement<any>;\n if (content.props.widgetDef) {\n const tabId = content.props.widgetDef.id as string;\n element = (\n <Provider store={UiFramework.store}>\n <TabIdContext.Provider value={tabId}>\n <UiStateStorageHandler>\n <ThemeManager>\n <div className=\"uifw-child-window-container-host\">\n <PopupRenderer />\n <ModalDialogRenderer />\n <ModelessDialogRenderer />\n <CursorPopupMenu />\n <div className=\"uifw-child-window-container nz-widget-widget\">\n {content}\n </div>\n </div>\n </ThemeManager>\n </UiStateStorageHandler>\n </TabIdContext.Provider>\n </Provider>\n );\n } else {\n element = (\n <Provider store={UiFramework.store}>\n <UiStateStorageHandler>\n <ThemeManager>\n <div className=\"uifw-child-window-container-host\">\n <PopupRenderer />\n <ModalDialogRenderer />\n <ModelessDialogRenderer />\n <CursorPopupMenu />\n <div className=\"uifw-child-window-container nz-widget-widget\">\n {content}\n </div>\n </div>\n </ThemeManager>\n </UiStateStorageHandler>\n </Provider>\n );\n }\n\n setTimeout(() => {\n copyStyles(childWindow.document);\n setTimeout(() => {\n this.render(element, reactConnectionDiv);\n\n if (childWindow.expectedHeight && childWindow.expectedWidth) {\n childWindow.deltaWidth =\n childWindow.expectedWidth - childWindow.innerWidth;\n childWindow.deltaHeight =\n childWindow.expectedHeight - childWindow.innerHeight;\n }\n });\n });\n\n childWindow.addEventListener(\"pagehide\", () => {\n const frontStageDef = UiFramework.frontstages.activeFrontstageDef;\n if (!frontStageDef) return;\n frontStageDef.saveChildWindowSizeAndPosition(\n childWindowId,\n childWindow\n );\n\n // Trigger first so popout can be converted back to main window widget\n this.close(childWindowId, false);\n\n // UnmountComponentAtNode is deprecated in React 18, so if they are\n // using React 18 and passing in a createRoot function, unmount()\n // will be used\n if (this._roots[childWindowId]) {\n this._roots[childWindowId].unmount();\n // eslint-disable-next-line react/no-deprecated, deprecation/deprecation\n } else ReactDOM.unmountComponentAtNode(reactConnectionDiv);\n });\n }\n }\n\n /** Close all child/pop-out windows. This typically is called when the frontstage is changed. */\n public closeAll() {\n this.openChildWindows.forEach((openChildWindow) =>\n openChildWindow.window.close()\n );\n this._openChildWindows = [];\n }\n\n /**\n * Close a specific child window.\n * @param childWindowId Id of the window to close.\n * @param processWindowClose should the `close` method be called on the closing window. (defaults to true).\n * @returns false if the window could not be found.\n */\n public close = (childWindowId: string, processWindowClose = true) => {\n const windowIndex = this.openChildWindows.findIndex(\n (openWindow) => openWindow.childWindowId === childWindowId\n );\n if (windowIndex === -1) return false;\n const { onClosePopoutWidget } = usePopoutsStore.getState();\n onClosePopoutWidget.raiseEvent({ windowId: childWindowId });\n\n const childWindow = this.openChildWindows[windowIndex];\n this.openChildWindows.splice(windowIndex, 1);\n if (processWindowClose) {\n childWindow.window.close();\n } else {\n // call the following to convert popout to docked widget\n const frontStageDef = UiFramework.frontstages.activeFrontstageDef;\n frontStageDef?.dockWidgetContainerByContainerId(childWindowId);\n }\n return true;\n };\n\n private adjustWindowLocation(location: ChildWindowLocationProps) {\n // If no location is provided, child window will open in the center of the current window.\n if (location.top === 0 && location.left === 0) {\n location.left =\n window.outerWidth / 2 + window.screenX - location.width / 2;\n location.top =\n window.outerHeight / 2 + window.screenY - location.height / 2;\n }\n }\n\n /**\n * Open a new child window.\n * @param childWindowId Id to assign to the newly created window.\n * @param title Title to display on the window.\n * @param content ReactNode to be rendered in the window.\n * @param location Position and size information\n * @param useDefaultPopoutUrl use \"/iTwinPopup.html\" as the window Url, \"\" otherwise.\n * @returns true if the window is opened successfully.\n */\n public open(\n childWindowId: string,\n title: string,\n content: React.ReactNode,\n location: ChildWindowLocationProps,\n useDefaultPopoutUrl?: boolean\n ) {\n if (\n this.openChildWindows.some(\n (openWindow) => openWindow.childWindowId === childWindowId\n )\n ) {\n return false;\n }\n\n this.adjustWindowLocation(location);\n const url = useDefaultPopoutUrl ? \"/iTwinPopup.html\" : \"\";\n const childWindow: ChildWindow | null = window.open(\n url,\n \"\",\n `width=${location.width},height=${location.height},left=${location.left},top=${location.top},menubar=no,resizable=yes,scrollbars=no,status=no,location=no`\n );\n if (!childWindow) return false;\n childWindow.expectedHeight = location.height;\n childWindow.expectedWidth = location.width;\n childWindow.deltaLeft = location.left - childWindow.screenLeft;\n childWindow.deltaTop = location.top - childWindow.screenTop;\n\n if (url.length === 0) {\n childWindow.document.write(childHtml);\n this.renderChildWindowContents(\n childWindow,\n childWindowId,\n content,\n title\n );\n } else {\n childWindow.addEventListener(\n \"DOMContentLoaded\",\n () => {\n this.renderChildWindowContents(\n childWindow,\n childWindowId,\n content,\n title\n );\n },\n false\n );\n }\n\n window.addEventListener(\n \"unload\",\n () => {\n const frontStageDef = UiFramework.frontstages.activeFrontstageDef;\n if (frontStageDef) {\n this.close(childWindowId, true);\n }\n },\n false\n );\n\n return true;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"InternalChildWindowManager.js","sourceRoot":"","sources":["../../../../src/appui-react/childwindow/InternalChildWindowManager.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAMzE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,mCAAmC,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,oDAAoD,CAAC;AAErF,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;QAqBV,CAAC;AAST;;;;KAIK;AACL,MAAM,OAAO,0BAA0B;IAAvC;QACU,sBAAiB,GAA0B,EAAE,CAAC;QAE9C,WAAM,GAAqC,EAAE,CAAC;QAuLtD;;;;;WAKG;QACI,UAAK,GAAG,CAAC,aAAqB,EAAE,kBAAkB,GAAG,IAAI,EAAE,EAAE;YAClE,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CACjD,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,aAAa,KAAK,aAAa,CAC3D,CAAC;YACF,IAAI,WAAW,KAAK,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;YACrC,MAAM,EAAE,mBAAmB,EAAE,GAAG,eAAe,CAAC,QAAQ,EAAE,CAAC;YAC3D,mBAAmB,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;YAE5D,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;YACvD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAC7C,IAAI,kBAAkB,EAAE,CAAC;gBACvB,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,wDAAwD;gBACxD,MAAM,aAAa,GAAG,WAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC;gBAClE,aAAa,EAAE,gCAAgC,CAAC,aAAa,CAAC,CAAC;YACjE,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;IAqFJ,CAAC;IAlSC,IAAW,gBAAgB;QACzB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED;;;;;;;;OAQG;IACI,aAAa,CAAC,YAAwB;QAC3C,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACK,MAAM,CACZ,OAA4C,EAC5C,SAAqC;QAErC,wEAAwE;QACxE,qEAAqE;QACrE,cAAc;QACd,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,aAAa,GAAG,WAAW,CAAC,YAAY,CAAC,MAAM,CACnD,SAAS,CAAC,aAAa,CAAC,WAAW,CACpC,CAAC;YACF,IAAI,aAAa,EAAE,CAAC;gBAClB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBACzD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,wEAAwE;YACxE,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,IAAI,CACT,aAAiC;QAEjC,IAAI,SAAS,KAAK,aAAa;YAAE,OAAO,SAAS,CAAC;QAElD,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAC/B,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,aAAa,KAAK,aAAa,CAC3D,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,aAAwC;QACpD,IAAI,CAAC,aAAa;YAAE,OAAO,SAAS,CAAC;QAErC,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAC5C,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,KAAK,aAAa,CACpD,CAAC;QACF,OAAO,WAAW,EAAE,aAAa,CAAC;IACpC,CAAC;IAEO,yBAAyB,CAC/B,WAAwB,EACxB,aAAqB,EACrB,OAAwB,EACxB,KAAa;QAEb,WAAW,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnC,MAAM,kBAAkB,GAAG,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACvE,IAAI,kBAAkB,IAAI,OAAO,IAAI,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YACnE,oEAAoE;YACpE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;gBAC1B,aAAa;gBACb,MAAM,EAAE,WAAW;gBACnB,YAAY,EAAE,MAAM;aACrB,CAAC,CAAC;YACH,IAAI,OAA4C,CAAC;YACjD,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAY,CAAC;gBACnD,OAAO,GAAG,CACR,oBAAC,QAAQ,IAAC,KAAK,EAAE,WAAW,CAAC,KAAK;oBAChC,oBAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK;wBACjC,oBAAC,qBAAqB;4BACpB,oBAAC,YAAY;gCACX,6BAAK,SAAS,EAAC,kCAAkC;oCAC/C,oBAAC,aAAa,OAAG;oCACjB,oBAAC,mBAAmB,OAAG;oCACvB,oBAAC,sBAAsB,OAAG;oCAC1B,oBAAC,eAAe,OAAG;oCACnB,6BAAK,SAAS,EAAC,8CAA8C,IAC1D,OAAO,CACJ,CACF,CACO,CACO,CACF,CACf,CACZ,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,CACR,oBAAC,QAAQ,IAAC,KAAK,EAAE,WAAW,CAAC,KAAK;oBAChC,oBAAC,qBAAqB;wBACpB,oBAAC,YAAY;4BACX,6BAAK,SAAS,EAAC,kCAAkC;gCAC/C,oBAAC,aAAa,OAAG;gCACjB,oBAAC,mBAAmB,OAAG;gCACvB,oBAAC,sBAAsB,OAAG;gCAC1B,oBAAC,eAAe,OAAG;gCACnB,6BAAK,SAAS,EAAC,8CAA8C,IAC1D,OAAO,CACJ,CACF,CACO,CACO,CACf,CACZ,CAAC;YACJ,CAAC;YAED,UAAU,CAAC,GAAG,EAAE;gBACd,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBACjC,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;oBAEzC,IAAI,WAAW,CAAC,cAAc,IAAI,WAAW,CAAC,aAAa,EAAE,CAAC;wBAC5D,WAAW,CAAC,UAAU;4BACpB,WAAW,CAAC,aAAa,GAAG,WAAW,CAAC,UAAU,CAAC;wBACrD,WAAW,CAAC,WAAW;4BACrB,WAAW,CAAC,cAAc,GAAG,WAAW,CAAC,WAAW,CAAC;oBACzD,CAAC;oBAED,IAAI,WAAW,CAAC,YAAY,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;wBACxD,WAAW,CAAC,SAAS;4BACnB,WAAW,CAAC,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC;wBACpD,WAAW,CAAC,QAAQ;4BAClB,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC;oBACpD,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,WAAW,CAAC,gBAAgB,CAAC,UAAU,EAAE,GAAG,EAAE;gBAC5C,MAAM,aAAa,GAAG,WAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC;gBAClE,IAAI,CAAC,aAAa;oBAAE,OAAO;gBAC3B,aAAa,CAAC,8BAA8B,CAC1C,aAAa,EACb,WAAW,CACZ,CAAC;gBAEF,sEAAsE;gBACtE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;gBAEjC,mEAAmE;gBACnE,iEAAiE;gBACjE,eAAe;gBACf,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;oBAC/B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC;oBACrC,wEAAwE;gBAC1E,CAAC;;oBAAM,QAAQ,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,gGAAgG;IACzF,QAAQ;QACb,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,EAAE,CAChD,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,CAC/B,CAAC;QACF,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;IAC9B,CAAC;IA4BO,oBAAoB,CAAC,QAAkC;QAC7D,0FAA0F;QAC1F,IAAI,QAAQ,CAAC,GAAG,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC9C,QAAQ,CAAC,IAAI;gBACX,MAAM,CAAC,UAAU,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;YAC9D,QAAQ,CAAC,GAAG;gBACV,MAAM,CAAC,WAAW,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACI,IAAI,CACT,aAAqB,EACrB,KAAa,EACb,OAAwB,EACxB,QAAkC,EAClC,mBAA6B;QAE7B,IACE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CACxB,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,aAAa,KAAK,aAAa,CAC3D,EACD,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QACpC,MAAM,GAAG,GAAG,mBAAmB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,MAAM,WAAW,GAAuB,MAAM,CAAC,IAAI,CACjD,GAAG,EACH,EAAE,EACF,SAAS,QAAQ,CAAC,KAAK,WAAW,QAAQ,CAAC,MAAM,SAAS,QAAQ,CAAC,IAAI,QAAQ,QAAQ,CAAC,GAAG,+DAA+D,CAC3J,CAAC;QACF,IAAI,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC;QAC/B,WAAW,CAAC,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC7C,WAAW,CAAC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC3C,WAAW,CAAC,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC;QACzC,WAAW,CAAC,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC;QAEvC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,CAAC,yBAAyB,CAC5B,WAAW,EACX,aAAa,EACb,OAAO,EACP,KAAK,CACN,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,gBAAgB,CAC1B,kBAAkB,EAClB,GAAG,EAAE;gBACH,IAAI,CAAC,yBAAyB,CAC5B,WAAW,EACX,aAAa,EACb,OAAO,EACP,KAAK,CACN,CAAC;YACJ,CAAC,EACD,KAAK,CACN,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,gBAAgB,CACrB,QAAQ,EACR,GAAG,EAAE;YACH,MAAM,aAAa,GAAG,WAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC;YAClE,IAAI,aAAa,EAAE,CAAC;gBAClB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YAClC,CAAC;QACH,CAAC,EACD,KAAK,CACN,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module ChildWindowManager\n */\n\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Provider } from \"react-redux\";\nimport { UiFramework } from \"../UiFramework\";\nimport { CursorPopupMenu } from \"../cursor/cursormenu/CursorMenu\";\nimport { ModalDialogRenderer } from \"../dialog/ModalDialogManager\";\nimport { ModelessDialogRenderer } from \"../dialog/ModelessDialogManager\";\nimport type {\n ChildWindowLocationProps,\n FrameworkChildWindows,\n OpenChildWindowInfo,\n} from \"../framework/FrameworkChildWindows\";\nimport { TabIdContext } from \"../layout/widget/ContentRenderer\";\nimport { PopupRenderer } from \"../popup/PopupManager\";\nimport { ThemeManager } from \"../theme/ThemeManager\";\nimport { UiStateStorageHandler } from \"../uistate/useUiStateStorage\";\nimport type { ChildWindow } from \"./ChildWindowConfig\";\nimport { copyStyles } from \"./CopyStyles\";\nimport \"./InternalChildWindowManager.scss\";\nimport { usePopoutsStore } from \"../preview/reparent-popout-widgets/usePopoutsStore\";\n\nconst childHtml = `<!DOCTYPE html>\n<html>\n<head>\n <meta charset=\"utf-8\" />\n <style>\n html,\n body {\n height: 100%;\n width: 100%;\n margin: 0;\n overflow: hidden;\n }\n #root {\n height: 100%;\n }\n </style>\n</head>\n<body>\n <noscript>You need to enable JavaScript to run this app.</noscript>\n <div id=\"root\"></div>\n</body>\n</html>`;\n\n/**\n * Simplification of non exported CreateRoot parameter, only to be used\n * in InternalChildWindowManager and ChildWindowManager\n * @internal\n */\nexport type CreateRoot = Parameters<FrameworkChildWindows[\"useCreateRoot\"]>[0];\n\n/** Supports opening a child browser window from the main application window. The child window is managed by the main application\n * and is running in the same security context. The application must deliver the html file iTwinPopup.html along side its index.html.\n * See also: [Child Window Manager]($docs/learning/ui/appui-react/ChildWindows.md)\n * @internal\n * */\nexport class InternalChildWindowManager implements FrameworkChildWindows {\n private _openChildWindows: OpenChildWindowInfo[] = [];\n private _createRoot?: CreateRoot;\n private _roots: { [childwindowId: string]: any } = {};\n\n public get openChildWindows() {\n return this._openChildWindows;\n }\n\n /**\n * When using React 18, the `createRoot` function must be provided in order to render Popout content with React 18.\n * Do not call if using React 17 or before.\n *\n * Note: The type of the function is intentionally simplified here.\n *\n * @param createRootFn Function imported from `import { createRoot } from \"react-dom/client\";`\n * @beta Will be removed once the transition to React 18 is complete.\n */\n public useCreateRoot(createRootFn: CreateRoot): void {\n this._createRoot = createRootFn;\n }\n\n /**\n * Abstracts ReactDOM.render to use either the _createRoot method or the default ReactDOM.render.\n * @param element Element to render.\n * @param container Container to render to.\n */\n private render(\n element: React.FunctionComponentElement<any>,\n container: Element | DocumentFragment\n ) {\n // If createRoot is passed in for React 18 we have to render differently\n // than without it. React 17 vs React 18. We need to save the root to\n // unmount it.\n if (this._createRoot) {\n const childWindowId = UiFramework.childWindows.findId(\n container.ownerDocument.defaultView\n );\n if (childWindowId) {\n this._roots[childWindowId] = this._createRoot(container);\n this._roots[childWindowId].render(element);\n }\n } else {\n // eslint-disable-next-line react/no-deprecated, deprecation/deprecation\n ReactDOM.render(element, container);\n }\n }\n\n /**\n * Returns the OpenChildWindowInfo for the related id.\n * @param childWindowId Id of the window to retrieve.\n * @returns undefined if not found.\n */\n public find(\n childWindowId: string | undefined\n ): OpenChildWindowInfo | undefined {\n if (undefined === childWindowId) return undefined;\n\n return this.openChildWindows.find(\n (openWindow) => openWindow.childWindowId === childWindowId\n );\n }\n\n /**\n * Return the childWindowId of the provided window.\n * @param contentWindow Window element to identify\n * @returns undefined if not found\n */\n public findId(contentWindow: Window | undefined | null): string | undefined {\n if (!contentWindow) return undefined;\n\n const childWindow = this.openChildWindows.find(\n (openWindow) => openWindow.window === contentWindow\n );\n return childWindow?.childWindowId;\n }\n\n private renderChildWindowContents(\n childWindow: ChildWindow,\n childWindowId: string,\n content: React.ReactNode,\n title: string\n ) {\n childWindow.document.title = title;\n\n const reactConnectionDiv = childWindow.document.getElementById(\"root\");\n if (reactConnectionDiv && content && React.isValidElement(content)) {\n // set openChildWindows now so components can use it when they mount\n this._openChildWindows.push({\n childWindowId,\n window: childWindow,\n parentWindow: window,\n });\n let element: React.FunctionComponentElement<any>;\n if (content.props.widgetDef) {\n const tabId = content.props.widgetDef.id as string;\n element = (\n <Provider store={UiFramework.store}>\n <TabIdContext.Provider value={tabId}>\n <UiStateStorageHandler>\n <ThemeManager>\n <div className=\"uifw-child-window-container-host\">\n <PopupRenderer />\n <ModalDialogRenderer />\n <ModelessDialogRenderer />\n <CursorPopupMenu />\n <div className=\"uifw-child-window-container nz-widget-widget\">\n {content}\n </div>\n </div>\n </ThemeManager>\n </UiStateStorageHandler>\n </TabIdContext.Provider>\n </Provider>\n );\n } else {\n element = (\n <Provider store={UiFramework.store}>\n <UiStateStorageHandler>\n <ThemeManager>\n <div className=\"uifw-child-window-container-host\">\n <PopupRenderer />\n <ModalDialogRenderer />\n <ModelessDialogRenderer />\n <CursorPopupMenu />\n <div className=\"uifw-child-window-container nz-widget-widget\">\n {content}\n </div>\n </div>\n </ThemeManager>\n </UiStateStorageHandler>\n </Provider>\n );\n }\n\n setTimeout(() => {\n copyStyles(childWindow.document);\n setTimeout(() => {\n this.render(element, reactConnectionDiv);\n\n if (childWindow.expectedHeight && childWindow.expectedWidth) {\n childWindow.deltaWidth =\n childWindow.expectedWidth - childWindow.innerWidth;\n childWindow.deltaHeight =\n childWindow.expectedHeight - childWindow.innerHeight;\n }\n\n if (childWindow.expectedLeft && childWindow.expectedTop) {\n childWindow.deltaLeft =\n childWindow.expectedLeft - childWindow.screenLeft;\n childWindow.deltaTop =\n childWindow.expectedTop - childWindow.screenTop;\n }\n });\n });\n\n childWindow.addEventListener(\"pagehide\", () => {\n const frontStageDef = UiFramework.frontstages.activeFrontstageDef;\n if (!frontStageDef) return;\n frontStageDef.saveChildWindowSizeAndPosition(\n childWindowId,\n childWindow\n );\n\n // Trigger first so popout can be converted back to main window widget\n this.close(childWindowId, false);\n\n // UnmountComponentAtNode is deprecated in React 18, so if they are\n // using React 18 and passing in a createRoot function, unmount()\n // will be used\n if (this._roots[childWindowId]) {\n this._roots[childWindowId].unmount();\n // eslint-disable-next-line react/no-deprecated, deprecation/deprecation\n } else ReactDOM.unmountComponentAtNode(reactConnectionDiv);\n });\n }\n }\n\n /** Close all child/pop-out windows. This typically is called when the frontstage is changed. */\n public closeAll() {\n this.openChildWindows.forEach((openChildWindow) =>\n openChildWindow.window.close()\n );\n this._openChildWindows = [];\n }\n\n /**\n * Close a specific child window.\n * @param childWindowId Id of the window to close.\n * @param processWindowClose should the `close` method be called on the closing window. (defaults to true).\n * @returns false if the window could not be found.\n */\n public close = (childWindowId: string, processWindowClose = true) => {\n const windowIndex = this.openChildWindows.findIndex(\n (openWindow) => openWindow.childWindowId === childWindowId\n );\n if (windowIndex === -1) return false;\n const { onClosePopoutWidget } = usePopoutsStore.getState();\n onClosePopoutWidget.raiseEvent({ windowId: childWindowId });\n\n const childWindow = this.openChildWindows[windowIndex];\n this.openChildWindows.splice(windowIndex, 1);\n if (processWindowClose) {\n childWindow.window.close();\n } else {\n // call the following to convert popout to docked widget\n const frontStageDef = UiFramework.frontstages.activeFrontstageDef;\n frontStageDef?.dockWidgetContainerByContainerId(childWindowId);\n }\n return true;\n };\n\n private adjustWindowLocation(location: ChildWindowLocationProps) {\n // If no location is provided, child window will open in the center of the current window.\n if (location.top === 0 && location.left === 0) {\n location.left =\n window.outerWidth / 2 + window.screenX - location.width / 2;\n location.top =\n window.outerHeight / 2 + window.screenY - location.height / 2;\n }\n }\n\n /**\n * Open a new child window.\n * @param childWindowId Id to assign to the newly created window.\n * @param title Title to display on the window.\n * @param content ReactNode to be rendered in the window.\n * @param location Position and size information\n * @param useDefaultPopoutUrl use \"/iTwinPopup.html\" as the window Url, \"\" otherwise.\n * @returns true if the window is opened successfully.\n */\n public open(\n childWindowId: string,\n title: string,\n content: React.ReactNode,\n location: ChildWindowLocationProps,\n useDefaultPopoutUrl?: boolean\n ) {\n if (\n this.openChildWindows.some(\n (openWindow) => openWindow.childWindowId === childWindowId\n )\n ) {\n return false;\n }\n\n this.adjustWindowLocation(location);\n const url = useDefaultPopoutUrl ? \"/iTwinPopup.html\" : \"\";\n const childWindow: ChildWindow | null = window.open(\n url,\n \"\",\n `width=${location.width},height=${location.height},left=${location.left},top=${location.top},menubar=no,resizable=yes,scrollbars=no,status=no,location=no`\n );\n if (!childWindow) return false;\n childWindow.expectedHeight = location.height;\n childWindow.expectedWidth = location.width;\n childWindow.expectedLeft = location.left;\n childWindow.expectedTop = location.top;\n\n if (url.length === 0) {\n childWindow.document.write(childHtml);\n this.renderChildWindowContents(\n childWindow,\n childWindowId,\n content,\n title\n );\n } else {\n childWindow.addEventListener(\n \"DOMContentLoaded\",\n () => {\n this.renderChildWindowContents(\n childWindow,\n childWindowId,\n content,\n title\n );\n },\n false\n );\n }\n\n window.addEventListener(\n \"unload\",\n () => {\n const frontStageDef = UiFramework.frontstages.activeFrontstageDef;\n if (frontStageDef) {\n this.close(childWindowId, true);\n }\n },\n false\n );\n\n return true;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigurableUiContent.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/configurableui/ConfigurableUiContent.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,8BAA8B,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAqBrD;;GAEG;AACH,MAAM,WAAW,0BAA2B,SAAQ,WAAW;IAC7D,kCAAkC;IAClC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE/B,gBAAgB;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,4BAAkD,CAAC;AAE9E;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,
|
|
1
|
+
{"version":3,"file":"ConfigurableUiContent.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/configurableui/ConfigurableUiContent.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,8BAA8B,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAqBrD;;GAEG;AACH,MAAM,WAAW,0BAA2B,SAAQ,WAAW;IAC7D,kCAAkC;IAClC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE/B,gBAAgB;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,4BAAkD,CAAC;AAE9E;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,qBA0DtE"}
|