@itwin/appui-react 4.3.0-dev.1 → 4.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -1
- package/lib/cjs/appui-react/UiFramework.js +7 -4
- package/lib/cjs/appui-react/UiFramework.js.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +2 -1
- package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +1 -1
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
- package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/TimeTracker.js +2 -1
- package/lib/cjs/appui-react/configurableui/TimeTracker.js.map +1 -1
- package/lib/cjs/appui-react/content/ContentLayout.js +12 -9
- package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
- package/lib/cjs/appui-react/content/DefaultViewOverlay.js +4 -3
- package/lib/cjs/appui-react/content/DefaultViewOverlay.js.map +1 -1
- package/lib/cjs/appui-react/content/FloatingViewportContent.js +2 -1
- package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
- package/lib/cjs/appui-react/content/IModelViewport.js +6 -3
- package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
- package/lib/cjs/appui-react/content/InternalContentLayoutManager.js +2 -1
- package/lib/cjs/appui-react/content/InternalContentLayoutManager.js.map +1 -1
- package/lib/cjs/appui-react/content/InternalContentViewManager.js +1 -1
- package/lib/cjs/appui-react/content/InternalContentViewManager.js.map +1 -1
- package/lib/cjs/appui-react/content/split-pane/SplitPane.js +12 -10
- package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -1
- package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js +3 -2
- package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
- package/lib/cjs/appui-react/dialog/ContentDialog.js +6 -3
- package/lib/cjs/appui-react/dialog/ContentDialog.js.map +1 -1
- package/lib/cjs/appui-react/dialog/DialogManagerBase.js +3 -2
- package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js +7 -5
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +3 -2
- package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +2 -1
- package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js +11 -7
- package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js +11 -7
- package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useSolarDataProvider.js +13 -8
- package/lib/cjs/appui-react/hooks/useSolarDataProvider.js.map +1 -1
- package/lib/cjs/appui-react/messages/ActivityMessage.js +7 -5
- package/lib/cjs/appui-react/messages/ActivityMessage.js.map +1 -1
- package/lib/cjs/appui-react/pickers/ViewSelector.js +6 -5
- package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
- package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +2 -1
- package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
- package/lib/cjs/appui-react/popup/PopupManager.js +2 -1
- package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
- package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js +1 -2
- package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +7 -5
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/Indicator.js +2 -1
- package/lib/cjs/appui-react/statusbar/Indicator.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBar.js +5 -3
- package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +1 -1
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
- package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +17 -10
- package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
- package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js +2 -3
- package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js +14 -12
- package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +10 -9
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +2 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +14 -8
- package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
- package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
- package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
- package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js +1 -1
- package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
- package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js +3 -3
- package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Content.js +9 -8
- package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Frontstage.js +45 -43
- package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/StatusBar.js +1 -1
- package/lib/cjs/appui-react/widget-panels/StatusBar.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Tab.js +1 -1
- package/lib/cjs/appui-react/widget-panels/Tab.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/ToolSettings.js +20 -14
- package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Toolbars.js +3 -2
- package/lib/cjs/appui-react/widget-panels/Toolbars.js.map +1 -1
- package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +2 -2
- package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.js +1 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetHost.js +3 -2
- package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
- package/lib/esm/appui-react/UiFramework.js +7 -4
- package/lib/esm/appui-react/UiFramework.js.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageComposerItem.js +2 -1
- package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +1 -1
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
- package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
- package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
- package/lib/esm/appui-react/configurableui/TimeTracker.js +2 -1
- package/lib/esm/appui-react/configurableui/TimeTracker.js.map +1 -1
- package/lib/esm/appui-react/content/ContentLayout.js +12 -9
- package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
- package/lib/esm/appui-react/content/DefaultViewOverlay.js +4 -3
- package/lib/esm/appui-react/content/DefaultViewOverlay.js.map +1 -1
- package/lib/esm/appui-react/content/FloatingViewportContent.js +2 -1
- package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
- package/lib/esm/appui-react/content/IModelViewport.js +6 -3
- package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
- package/lib/esm/appui-react/content/InternalContentLayoutManager.js +2 -1
- package/lib/esm/appui-react/content/InternalContentLayoutManager.js.map +1 -1
- package/lib/esm/appui-react/content/InternalContentViewManager.js +1 -1
- package/lib/esm/appui-react/content/InternalContentViewManager.js.map +1 -1
- package/lib/esm/appui-react/content/split-pane/SplitPane.js +12 -10
- package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -1
- package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js +3 -2
- package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
- package/lib/esm/appui-react/dialog/ContentDialog.js +6 -3
- package/lib/esm/appui-react/dialog/ContentDialog.js.map +1 -1
- package/lib/esm/appui-react/dialog/DialogManagerBase.js +3 -2
- package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageDef.js +7 -5
- package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +3 -2
- package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
- package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +2 -1
- package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
- package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js +11 -7
- package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
- package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js +11 -7
- package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
- package/lib/esm/appui-react/hooks/useSolarDataProvider.js +13 -8
- package/lib/esm/appui-react/hooks/useSolarDataProvider.js.map +1 -1
- package/lib/esm/appui-react/messages/ActivityMessage.js +7 -5
- package/lib/esm/appui-react/messages/ActivityMessage.js.map +1 -1
- package/lib/esm/appui-react/pickers/ViewSelector.js +6 -5
- package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
- package/lib/esm/appui-react/popup/KeyinPalettePanel.js +2 -1
- package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
- package/lib/esm/appui-react/popup/PopupManager.js +2 -1
- package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
- package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js +1 -2
- package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanelDef.js +7 -5
- package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
- package/lib/esm/appui-react/statusbar/Indicator.js +2 -1
- package/lib/esm/appui-react/statusbar/Indicator.js.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBar.js +5 -3
- package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +1 -1
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
- package/lib/esm/appui-react/tools/CoreToolDefinitions.js +17 -10
- package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
- package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js +2 -3
- package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js +14 -12
- package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +10 -9
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +2 -1
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +14 -8
- package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
- package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
- package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
- package/lib/esm/appui-react/uiprovider/ComponentGenerator.js +1 -1
- package/lib/esm/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
- package/lib/esm/appui-react/utils/InternalUiShowHideManager.js +3 -3
- package/lib/esm/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Content.js +9 -8
- package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Frontstage.js +45 -43
- package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/StatusBar.js +1 -1
- package/lib/esm/appui-react/widget-panels/StatusBar.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Tab.js +1 -1
- package/lib/esm/appui-react/widget-panels/Tab.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/ToolSettings.js +20 -14
- package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Toolbars.js +3 -2
- package/lib/esm/appui-react/widget-panels/Toolbars.js.map +1 -1
- package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +2 -2
- package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetDef.js +1 -1
- package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetHost.js +3 -2
- package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComponentGenerator.js","sourceRoot":"","sources":["../../../../src/appui-react/uiprovider/ComponentGenerator.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 UiProvider\n */\n\nimport \"./DefaultDialogGridContainer.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type {\n BaseDialogItem,\n DialogItem,\n DialogItemValue,\n DialogPropertySyncItem,\n DialogRow,\n SyncPropertiesChangeEventArgs,\n} from \"@itwin/appui-abstract\";\nimport {\n PropertyValueFormat,\n UiLayoutDataProvider,\n} from \"@itwin/appui-abstract\";\nimport type { PropertyUpdatedArgs } from \"@itwin/components-react\";\nimport { EditorContainer } from \"@itwin/components-react\";\nimport type { ToolSettingsEntry } from \"../widget-panels/ToolSettings\";\nimport { assert, Logger } from \"@itwin/core-bentley\";\n\nfunction EditorLabel({\n uiDataProvider,\n item,\n isLeftmostRecord,\n}: {\n uiDataProvider: UiLayoutDataProvider;\n item: DialogItem;\n isLeftmostRecord?: boolean;\n}) {\n const [isDisabled, setIsDisabled] = React.useState(!!item.isDisabled);\n const displayLabel = React.useMemo(() => {\n return item.property.displayLabel\n ? item.property.displayLabel\n : /* istanbul ignore next */ item.property.name;\n }, [item]);\n const propertyId = React.useMemo(\n () => `dialogItemProperty-${item.property.name}`,\n [item]\n );\n\n // listen for tool sync property events and update the isDisabled state\n React.useEffect(() => {\n const handleSync = (args: SyncPropertiesChangeEventArgs) => {\n const mySyncItem = args.properties.find(\n (syncItem: DialogPropertySyncItem) =>\n syncItem.propertyName === item.property.name\n );\n // istanbul ignore next\n if (mySyncItem) {\n setIsDisabled(!!mySyncItem.isDisabled);\n }\n };\n uiDataProvider.onSyncPropertiesChangeEvent.addListener(handleSync);\n return () => {\n uiDataProvider.onSyncPropertiesChangeEvent.removeListener(handleSync);\n };\n }, [uiDataProvider, item]);\n\n // istanbul ignore next\n const className = classnames(\n \"uifw-default-label\",\n isDisabled && \"uifw-label-disabled\",\n !!isLeftmostRecord && \"uifw-default-narrow-only-display\",\n !isLeftmostRecord && \"uifw-default-inline-label\"\n );\n return (\n <label className={className} htmlFor={propertyId}>\n {displayLabel}:\n </label>\n );\n}\n\nfunction PropertyEditor({\n uiDataProvider,\n initialItem,\n isLock,\n setFocus,\n}: {\n uiDataProvider: UiLayoutDataProvider;\n initialItem: BaseDialogItem;\n isLock?: boolean;\n setFocus?: boolean;\n}) {\n const getLatestRecordValue = React.useCallback(() => {\n let newRecord = UiLayoutDataProvider.getPropertyRecord(initialItem);\n\n // istanbul ignore next\n const foundItem = isLock\n ? uiDataProvider.items.find(\n (item) =>\n item.lockProperty?.property.name === initialItem.property.name\n )\n : uiDataProvider.items.find(\n (item) => item.property.name === initialItem.property.name\n );\n // istanbul ignore else\n if (foundItem) {\n if (isLock) {\n newRecord = newRecord.copyWithNewValue({\n value: foundItem.lockProperty!.value.value,\n valueFormat: PropertyValueFormat.Primitive,\n });\n newRecord.isDisabled = foundItem.lockProperty!.isDisabled;\n } else {\n newRecord = newRecord.copyWithNewValue({\n value: foundItem.value.value,\n valueFormat: PropertyValueFormat.Primitive,\n });\n newRecord.isDisabled = foundItem.isDisabled;\n }\n }\n return newRecord;\n }, [initialItem, isLock, uiDataProvider.items]);\n\n const currentRecord = getLatestRecordValue();\n const [propertyRecord, setPropertyRecord] = React.useState(currentRecord);\n\n // monitor tool for sync UI events\n React.useEffect(() => {\n const handleSync = (args: SyncPropertiesChangeEventArgs) => {\n const mySyncItem = args.properties.find(\n (syncItem: DialogPropertySyncItem) =>\n syncItem.propertyName === initialItem.property.name\n );\n // istanbul ignore else\n if (mySyncItem) {\n const newPropertyValue = propertyRecord.copyWithNewValue(\n {\n value: mySyncItem.value.value,\n valueFormat: PropertyValueFormat.Primitive,\n displayValue: mySyncItem.value.displayValue,\n },\n mySyncItem.property\n );\n\n if (mySyncItem.property) {\n // istanbul ignore else\n if (mySyncItem.property.name === mySyncItem.propertyName) {\n newPropertyValue.isDisabled = mySyncItem.isDisabled;\n setPropertyRecord(newPropertyValue);\n } else {\n Logger.logError(\n \"PropertyEditor\",\n `Error trying to replace propertyName=${mySyncItem.propertyName} with property named ${mySyncItem.property.name}`\n );\n }\n } else {\n newPropertyValue.isDisabled = mySyncItem.isDisabled;\n setPropertyRecord(newPropertyValue);\n }\n }\n };\n uiDataProvider.onSyncPropertiesChangeEvent.addListener(handleSync);\n return () => {\n uiDataProvider.onSyncPropertiesChangeEvent.removeListener(handleSync);\n };\n }, [uiDataProvider, propertyRecord, initialItem.property.name]);\n\n const className = React.useMemo(\n () => (isLock ? \"uifw-default-property-lock\" : \"uifw-default-editor\"),\n [isLock]\n );\n // istanbul ignore next\n const handleCommit = React.useCallback(\n (commit: PropertyUpdatedArgs) => {\n // UiLayoutDataProvider supports only primitive property types\n // istanbul ignore next\n assert(\n commit.newValue.valueFormat === PropertyValueFormat.Primitive &&\n commit.propertyRecord.value.valueFormat ===\n PropertyValueFormat.Primitive\n );\n const newPropertyValue = propertyRecord.copyWithNewValue(commit.newValue);\n const syncItem: DialogPropertySyncItem = {\n value: commit.newValue as DialogItemValue,\n propertyName: initialItem.property.name,\n isDisabled: newPropertyValue.isDisabled,\n };\n uiDataProvider.applyUiPropertyChange(syncItem);\n // Now have the uiDataProvider refetch the latest property values from the tool\n uiDataProvider.reloadDialogItems(true);\n },\n [initialItem.property.name, propertyRecord, uiDataProvider]\n );\n // istanbul ignore next\n const handleCancel = () => {};\n\n return (\n <div key={initialItem.property.name} className={className}>\n <EditorContainer\n key={initialItem.property.name}\n propertyRecord={propertyRecord}\n setFocus={setFocus}\n onCommit={handleCommit}\n onCancel={handleCancel}\n />\n </div>\n );\n}\n\n/** Utility methods to generate react ui from DialogRow specs\n * @internal\n */\nexport class ComponentGenerator {\n constructor(private _uiDataProvider: UiLayoutDataProvider) {}\n\n public get uiDataProvider() {\n return this._uiDataProvider;\n }\n\n private getEditor(\n item: BaseDialogItem,\n isLock = false,\n setFocus = false\n ): React.ReactNode {\n return (\n <PropertyEditor\n key={item.property.name}\n uiDataProvider={this.uiDataProvider}\n initialItem={item}\n isLock={isLock}\n setFocus={setFocus}\n />\n );\n }\n\n private generateRowWithButtonGroupEditors(\n row: DialogRow,\n rowIndex: number\n ): React.ReactNode {\n // istanbul ignore else\n if (1 === row.items.length) {\n return (\n <div\n key={row.items[0].property.name}\n className=\"uifw-default-inline-editor-group uifw-default-center-across-width\"\n >\n {this.getEditor(row.items[0])}\n </div>\n );\n }\n\n return (\n <div\n key={rowIndex}\n className=\"uifw-default-inline-editor-group uifw-default-center-across-width\"\n >\n <div className=\"uifw-default-inline-editor-group\">\n {row.items.map((item) => this.getEditor(item))}\n </div>\n </div>\n );\n }\n\n private generateEntryWithButtonGroupEditors(\n row: DialogRow,\n rowIndex: number\n ): ToolSettingsEntry {\n // istanbul ignore else\n if (1 === row.items.length) {\n return {\n labelNode: \"\",\n editorNode: (\n <div\n key={row.items[0].property.name}\n className=\"uifw-default-inline-editor-group uifw-default-center-across-width\"\n >\n {this.getEditor(row.items[0])}\n </div>\n ),\n };\n }\n\n return {\n labelNode: \"\",\n editorNode: (\n <div\n key={rowIndex}\n className=\"uifw-default-inline-editor-group uifw-default-center-across-width\"\n >\n <div className=\"uifw-default-inline-editor-group\">\n {row.items.map((item) => this.getEditor(item))}\n </div>\n </div>\n ),\n };\n }\n\n private getEditorLabel(\n item: DialogItem,\n isLeftmostRecord = false\n ): React.ReactNode {\n return (\n <EditorLabel\n uiDataProvider={this.uiDataProvider}\n item={item}\n isLeftmostRecord={isLeftmostRecord}\n />\n );\n }\n\n private getLeftLockAndLabel(\n rowItem: DialogItem,\n multiplePropertiesOnRow: boolean\n ): React.ReactNode {\n const record = UiLayoutDataProvider.getPropertyRecord(rowItem);\n // istanbul ignore next\n const lockEditor = UiLayoutDataProvider.hasAssociatedLockProperty(rowItem)\n ? this.getEditor(rowItem.lockProperty!, true)\n : null;\n const label = UiLayoutDataProvider.editorWantsLabel(rowItem)\n ? this.getEditorLabel(rowItem)\n : null;\n const classNames = multiplePropertiesOnRow\n ? \"uifw-default-lock-and-label uifw-default-wide-only-display\"\n : \"uifw-default-lock-and-label\";\n return (\n <div key={`lock-${record.property.name}`} className={classNames}>\n {lockEditor}\n {label}\n </div>\n );\n }\n\n private getInlineLabelAndEditor(\n item: DialogItem,\n isLeftmostRecord: boolean\n ): React.ReactNode {\n const label = UiLayoutDataProvider.editorWantsLabel(item)\n ? this.getEditorLabel(item, isLeftmostRecord)\n : null;\n return (\n <div\n key={item.property.name}\n className=\"uifw-default-inline-label-and-editor\"\n >\n {label}\n {this.getEditor(item)}\n </div>\n );\n }\n\n private getRowWithMultipleEditors(row: DialogRow): React.ReactNode {\n return (\n <div className=\"uifw-default-inline-editor-group\">\n {row.items.map((item: DialogItem, index: number) =>\n this.getInlineLabelAndEditor(item, 0 === index)\n )}\n </div>\n );\n }\n\n private getDivForRow(row: DialogRow): React.ReactNode {\n if (1 === row.items.length) return this.getEditor(row.items[0]);\n return this.getRowWithMultipleEditors(row);\n }\n\n public getRow(row: DialogRow, rowIndex: number): React.ReactNode {\n if (UiLayoutDataProvider.onlyContainButtonGroupEditors(row)) {\n return this.generateRowWithButtonGroupEditors(row, rowIndex);\n } else {\n return (\n <React.Fragment key={rowIndex}>\n {this.getLeftLockAndLabel(row.items[0], row.items.length > 1)}\n {this.getDivForRow(row)}\n </React.Fragment>\n );\n }\n }\n\n public getToolSettingsEntry(\n row: DialogRow,\n rowIndex: number\n ): ToolSettingsEntry {\n if (UiLayoutDataProvider.onlyContainButtonGroupEditors(row)) {\n return this.generateEntryWithButtonGroupEditors(row, rowIndex);\n } else {\n return {\n labelNode: this.getLeftLockAndLabel(row.items[0], row.items.length > 1),\n editorNode: this.getDivForRow(row),\n };\n }\n }\n\n /** ToolSettingsEntries are used by the tool settings bar. */\n public getToolSettingsEntries(): ToolSettingsEntry[] {\n return this.uiDataProvider.rows.map((row: DialogRow, index: number) =>\n this.getToolSettingsEntry(row, index)\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ComponentGenerator.js","sourceRoot":"","sources":["../../../../src/appui-react/uiprovider/ComponentGenerator.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 UiProvider\n */\n\nimport \"./DefaultDialogGridContainer.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type {\n BaseDialogItem,\n DialogItem,\n DialogItemValue,\n DialogPropertySyncItem,\n DialogRow,\n SyncPropertiesChangeEventArgs,\n} from \"@itwin/appui-abstract\";\nimport {\n PropertyValueFormat,\n UiLayoutDataProvider,\n} from \"@itwin/appui-abstract\";\nimport type { PropertyUpdatedArgs } from \"@itwin/components-react\";\nimport { EditorContainer } from \"@itwin/components-react\";\nimport type { ToolSettingsEntry } from \"../widget-panels/ToolSettings\";\nimport { assert, Logger } from \"@itwin/core-bentley\";\n\nfunction EditorLabel({\n uiDataProvider,\n item,\n isLeftmostRecord,\n}: {\n uiDataProvider: UiLayoutDataProvider;\n item: DialogItem;\n isLeftmostRecord?: boolean;\n}) {\n const [isDisabled, setIsDisabled] = React.useState(!!item.isDisabled);\n const displayLabel = React.useMemo(() => {\n return item.property.displayLabel\n ? item.property.displayLabel\n : /* istanbul ignore next */ item.property.name;\n }, [item]);\n const propertyId = React.useMemo(\n () => `dialogItemProperty-${item.property.name}`,\n [item]\n );\n\n // listen for tool sync property events and update the isDisabled state\n React.useEffect(() => {\n const handleSync = (args: SyncPropertiesChangeEventArgs) => {\n const mySyncItem = args.properties.find(\n (syncItem: DialogPropertySyncItem) =>\n syncItem.propertyName === item.property.name\n );\n // istanbul ignore next\n if (mySyncItem) {\n setIsDisabled(!!mySyncItem.isDisabled);\n }\n };\n uiDataProvider.onSyncPropertiesChangeEvent.addListener(handleSync);\n return () => {\n uiDataProvider.onSyncPropertiesChangeEvent.removeListener(handleSync);\n };\n }, [uiDataProvider, item]);\n\n // istanbul ignore next\n const className = classnames(\n \"uifw-default-label\",\n isDisabled && \"uifw-label-disabled\",\n !!isLeftmostRecord && \"uifw-default-narrow-only-display\",\n !isLeftmostRecord && \"uifw-default-inline-label\"\n );\n return (\n <label className={className} htmlFor={propertyId}>\n {displayLabel}:\n </label>\n );\n}\n\nfunction PropertyEditor({\n uiDataProvider,\n initialItem,\n isLock,\n setFocus,\n}: {\n uiDataProvider: UiLayoutDataProvider;\n initialItem: BaseDialogItem;\n isLock?: boolean;\n setFocus?: boolean;\n}) {\n const getLatestRecordValue = React.useCallback(() => {\n let newRecord = UiLayoutDataProvider.getPropertyRecord(initialItem);\n\n // istanbul ignore next\n const foundItem = isLock\n ? uiDataProvider.items.find(\n (item) =>\n item.lockProperty?.property.name === initialItem.property.name\n )\n : uiDataProvider.items.find(\n (item) => item.property.name === initialItem.property.name\n );\n // istanbul ignore else\n if (foundItem) {\n if (isLock) {\n newRecord = newRecord.copyWithNewValue({\n value: foundItem.lockProperty!.value.value,\n valueFormat: PropertyValueFormat.Primitive,\n });\n newRecord.isDisabled = foundItem.lockProperty!.isDisabled;\n } else {\n newRecord = newRecord.copyWithNewValue({\n value: foundItem.value.value,\n valueFormat: PropertyValueFormat.Primitive,\n });\n newRecord.isDisabled = foundItem.isDisabled;\n }\n }\n return newRecord;\n }, [initialItem, isLock, uiDataProvider.items]);\n\n const currentRecord = getLatestRecordValue();\n const [propertyRecord, setPropertyRecord] = React.useState(currentRecord);\n\n // monitor tool for sync UI events\n React.useEffect(() => {\n const handleSync = (args: SyncPropertiesChangeEventArgs) => {\n const mySyncItem = args.properties.find(\n (syncItem: DialogPropertySyncItem) =>\n syncItem.propertyName === initialItem.property.name\n );\n // istanbul ignore else\n if (mySyncItem) {\n const newPropertyValue = propertyRecord.copyWithNewValue(\n {\n value: mySyncItem.value.value,\n valueFormat: PropertyValueFormat.Primitive,\n displayValue: mySyncItem.value.displayValue,\n },\n mySyncItem.property\n );\n\n if (mySyncItem.property) {\n // istanbul ignore else\n if (mySyncItem.property.name === mySyncItem.propertyName) {\n newPropertyValue.isDisabled = mySyncItem.isDisabled;\n setPropertyRecord(newPropertyValue);\n } else {\n Logger.logError(\n \"PropertyEditor\",\n `Error trying to replace propertyName=${mySyncItem.propertyName} with property named ${mySyncItem.property.name}`\n );\n }\n } else {\n newPropertyValue.isDisabled = mySyncItem.isDisabled;\n setPropertyRecord(newPropertyValue);\n }\n }\n };\n uiDataProvider.onSyncPropertiesChangeEvent.addListener(handleSync);\n return () => {\n uiDataProvider.onSyncPropertiesChangeEvent.removeListener(handleSync);\n };\n }, [uiDataProvider, propertyRecord, initialItem.property.name]);\n\n const className = React.useMemo(\n () => (isLock ? \"uifw-default-property-lock\" : \"uifw-default-editor\"),\n [isLock]\n );\n // istanbul ignore next\n const handleCommit = React.useCallback(\n (commit: PropertyUpdatedArgs) => {\n // UiLayoutDataProvider supports only primitive property types\n // istanbul ignore next\n assert(\n commit.newValue.valueFormat === PropertyValueFormat.Primitive &&\n commit.propertyRecord.value.valueFormat ===\n PropertyValueFormat.Primitive\n );\n const newPropertyValue = propertyRecord.copyWithNewValue(commit.newValue);\n const syncItem: DialogPropertySyncItem = {\n value: commit.newValue as DialogItemValue,\n propertyName: initialItem.property.name,\n isDisabled: newPropertyValue.isDisabled,\n };\n uiDataProvider.applyUiPropertyChange(syncItem);\n // Now have the uiDataProvider refetch the latest property values from the tool\n uiDataProvider.reloadDialogItems(true);\n },\n [initialItem.property.name, propertyRecord, uiDataProvider]\n );\n // istanbul ignore next\n const handleCancel = () => {};\n\n return (\n <div key={initialItem.property.name} className={className}>\n <EditorContainer\n key={initialItem.property.name}\n propertyRecord={propertyRecord}\n setFocus={setFocus}\n onCommit={handleCommit}\n onCancel={handleCancel}\n />\n </div>\n );\n}\n\n/** Utility methods to generate react ui from DialogRow specs\n * @internal\n */\nexport class ComponentGenerator {\n constructor(private _uiDataProvider: UiLayoutDataProvider) {}\n\n public get uiDataProvider() {\n return this._uiDataProvider;\n }\n\n private getEditor(\n item: BaseDialogItem,\n isLock = false,\n setFocus = false\n ): React.ReactNode {\n return (\n <PropertyEditor\n key={item.property.name}\n uiDataProvider={this.uiDataProvider}\n initialItem={item}\n isLock={isLock}\n setFocus={setFocus}\n />\n );\n }\n\n private generateRowWithButtonGroupEditors(\n row: DialogRow,\n rowIndex: number\n ): React.ReactNode {\n // istanbul ignore else\n if (1 === row.items.length) {\n return (\n <div\n key={row.items[0].property.name}\n className=\"uifw-default-inline-editor-group uifw-default-center-across-width\"\n >\n {this.getEditor(row.items[0])}\n </div>\n );\n }\n\n return (\n <div\n key={rowIndex}\n className=\"uifw-default-inline-editor-group uifw-default-center-across-width\"\n >\n <div className=\"uifw-default-inline-editor-group\">\n {row.items.map((item) => this.getEditor(item))}\n </div>\n </div>\n );\n }\n\n private generateEntryWithButtonGroupEditors(\n row: DialogRow,\n rowIndex: number\n ): ToolSettingsEntry {\n // istanbul ignore else\n if (1 === row.items.length) {\n return {\n labelNode: \"\",\n editorNode: (\n <div\n key={row.items[0].property.name}\n className=\"uifw-default-inline-editor-group uifw-default-center-across-width\"\n >\n {this.getEditor(row.items[0])}\n </div>\n ),\n };\n }\n\n return {\n labelNode: \"\",\n editorNode: (\n <div\n key={rowIndex}\n className=\"uifw-default-inline-editor-group uifw-default-center-across-width\"\n >\n <div className=\"uifw-default-inline-editor-group\">\n {row.items.map((item) => this.getEditor(item))}\n </div>\n </div>\n ),\n };\n }\n\n private getEditorLabel(\n item: DialogItem,\n isLeftmostRecord = false\n ): React.ReactNode {\n return (\n <EditorLabel\n uiDataProvider={this.uiDataProvider}\n item={item}\n isLeftmostRecord={isLeftmostRecord}\n />\n );\n }\n\n private getLeftLockAndLabel(\n rowItem: DialogItem,\n multiplePropertiesOnRow: boolean\n ): React.ReactNode {\n const record = UiLayoutDataProvider.getPropertyRecord(rowItem);\n // istanbul ignore next\n const lockEditor = UiLayoutDataProvider.hasAssociatedLockProperty(rowItem)\n ? this.getEditor(rowItem.lockProperty!, true)\n : null;\n const label = UiLayoutDataProvider.editorWantsLabel(rowItem)\n ? this.getEditorLabel(rowItem)\n : null;\n const classNames = multiplePropertiesOnRow\n ? \"uifw-default-lock-and-label uifw-default-wide-only-display\"\n : \"uifw-default-lock-and-label\";\n return (\n <div key={`lock-${record.property.name}`} className={classNames}>\n {lockEditor}\n {label}\n </div>\n );\n }\n\n private getInlineLabelAndEditor(\n item: DialogItem,\n isLeftmostRecord: boolean\n ): React.ReactNode {\n const label = UiLayoutDataProvider.editorWantsLabel(item)\n ? this.getEditorLabel(item, isLeftmostRecord)\n : null;\n return (\n <div\n key={item.property.name}\n className=\"uifw-default-inline-label-and-editor\"\n >\n {label}\n {this.getEditor(item)}\n </div>\n );\n }\n\n private getRowWithMultipleEditors(row: DialogRow): React.ReactNode {\n return (\n <div className=\"uifw-default-inline-editor-group\">\n {row.items.map((item: DialogItem, index: number) =>\n this.getInlineLabelAndEditor(item, 0 === index)\n )}\n </div>\n );\n }\n\n private getDivForRow(row: DialogRow): React.ReactNode {\n if (1 === row.items.length) return this.getEditor(row.items[0]);\n return this.getRowWithMultipleEditors(row);\n }\n\n public getRow(row: DialogRow, rowIndex: number): React.ReactNode {\n if (UiLayoutDataProvider.onlyContainButtonGroupEditors(row)) {\n return this.generateRowWithButtonGroupEditors(row, rowIndex);\n } else {\n return (\n <React.Fragment key={rowIndex}>\n {this.getLeftLockAndLabel(row.items[0], row.items.length > 1)}\n {this.getDivForRow(row)}\n </React.Fragment>\n );\n }\n }\n\n public getToolSettingsEntry(\n row: DialogRow,\n rowIndex: number\n ): ToolSettingsEntry {\n if (UiLayoutDataProvider.onlyContainButtonGroupEditors(row)) {\n return this.generateEntryWithButtonGroupEditors(row, rowIndex);\n } else {\n return {\n labelNode: this.getLeftLockAndLabel(row.items[0], row.items.length > 1),\n editorNode: this.getDivForRow(row),\n };\n }\n }\n\n /** ToolSettingsEntries are used by the tool settings bar. */\n public getToolSettingsEntries(): ToolSettingsEntry[] {\n return this.uiDataProvider.rows.map((row: DialogRow, index: number) =>\n this.getToolSettingsEntry(row, index)\n );\n }\n}\n"]}
|
|
@@ -33,13 +33,13 @@ class UiShowHideSettingsProvider {
|
|
|
33
33
|
InternalUiShowHideManager.setSnapWidgetOpacity(result.setting);
|
|
34
34
|
}
|
|
35
35
|
static async storeAutoHideUi(v, storage) {
|
|
36
|
-
void (storage
|
|
36
|
+
void (storage !== null && storage !== void 0 ? storage : UiFramework_1.UiFramework.getUiStateStorage()).saveSetting(this._settingsNamespace, this._autoHideUiKey, v);
|
|
37
37
|
}
|
|
38
38
|
static async storeUseProximityOpacity(v, storage) {
|
|
39
|
-
void (storage
|
|
39
|
+
void (storage !== null && storage !== void 0 ? storage : UiFramework_1.UiFramework.getUiStateStorage()).saveSetting(this._settingsNamespace, this._useProximityOpacityKey, v);
|
|
40
40
|
}
|
|
41
41
|
static async storeSnapWidgetOpacity(v, storage) {
|
|
42
|
-
void (storage
|
|
42
|
+
void (storage !== null && storage !== void 0 ? storage : UiFramework_1.UiFramework.getUiStateStorage()).saveSetting(this._settingsNamespace, this._snapWidgetOpacityKey, v);
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
UiShowHideSettingsProvider._settingsNamespace = "AppUiSettings";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternalUiShowHideManager.js","sourceRoot":"","sources":["../../../../src/appui-react/utils/InternalUiShowHideManager.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/** @packageDocumentation\n * @module Utilities\n */\n\nimport type { UiStateStorage } from \"@itwin/core-react\";\nimport { UiStateStorageStatus } from \"@itwin/core-react\";\nimport {\n SyncUiEventDispatcher,\n SyncUiEventId,\n} from \"../syncui/SyncUiEventDispatcher\";\nimport type { UserSettingsProvider } from \"../UiFramework\";\nimport { UiFramework } from \"../UiFramework\";\n\n/** Class that maintain UiShowHide user settings between sessions\n * @internal\n */\nexport class UiShowHideSettingsProvider implements UserSettingsProvider {\n private static _settingsNamespace = \"AppUiSettings\";\n private static _autoHideUiKey = \"AutoHideUi\";\n private static _useProximityOpacityKey = \"UseProximityOpacity\";\n private static _snapWidgetOpacityKey = \"SnapWidgetOpacity\";\n public readonly providerId = \"UiShowHideSettingsProvider\";\n\n public static initialize() {\n UiFramework.registerUserSettingsProvider(new UiShowHideSettingsProvider());\n }\n\n public async loadUserSettings(storage: UiStateStorage): Promise<void> {\n let result = await storage.getSetting(\n UiShowHideSettingsProvider._settingsNamespace,\n UiShowHideSettingsProvider._autoHideUiKey\n );\n if (result.status === UiStateStorageStatus.Success)\n InternalUiShowHideManager.setAutoHideUi(result.setting);\n\n result = await storage.getSetting(\n UiShowHideSettingsProvider._settingsNamespace,\n UiShowHideSettingsProvider._useProximityOpacityKey\n );\n if (result.status === UiStateStorageStatus.Success)\n InternalUiShowHideManager.setUseProximityOpacity(result.setting);\n\n result = await storage.getSetting(\n UiShowHideSettingsProvider._settingsNamespace,\n UiShowHideSettingsProvider._snapWidgetOpacityKey\n );\n if (result.status === UiStateStorageStatus.Success)\n InternalUiShowHideManager.setSnapWidgetOpacity(result.setting);\n }\n\n public static async storeAutoHideUi(v: boolean, storage?: UiStateStorage) {\n void (storage ?? UiFramework.getUiStateStorage()).saveSetting(\n this._settingsNamespace,\n this._autoHideUiKey,\n v\n );\n }\n\n public static async storeUseProximityOpacity(\n v: boolean,\n storage?: UiStateStorage\n ) {\n void (storage ?? UiFramework.getUiStateStorage()).saveSetting(\n this._settingsNamespace,\n this._useProximityOpacityKey,\n v\n );\n }\n\n public static async storeSnapWidgetOpacity(\n v: boolean,\n storage?: UiStateStorage\n ) {\n void (storage ?? UiFramework.getUiStateStorage()).saveSetting(\n this._settingsNamespace,\n this._snapWidgetOpacityKey,\n v\n );\n }\n}\n\n/** The default inactivity time.\n * @internal\n */\nexport const INACTIVITY_TIME_DEFAULT = 3500; /** Wait 3.5 seconds */\n\n/** Maintains Ui Show/Hide state. The `Ui` includes widgets, panels and the status bar.\n * @internal\n */\nexport class InternalUiShowHideManager {\n private static _isUiVisible: boolean = true;\n private static _autoHideUi: boolean = true;\n private static _showHidePanels: boolean = false;\n private static _showHideFooter: boolean = false;\n private static _inactivityTime: number = INACTIVITY_TIME_DEFAULT;\n private static _timeout: NodeJS.Timeout;\n private static _useProximityOpacity: boolean = false;\n private static _snapWidgetOpacity: boolean = false;\n\n /** Determines if the Ui is visible */\n public static get isUiVisible() {\n return InternalUiShowHideManager._isUiVisible;\n }\n public static set isUiVisible(visible: boolean) {\n InternalUiShowHideManager._isUiVisible = visible;\n }\n\n /** @public */\n public static setAutoHideUi(value: boolean) {\n InternalUiShowHideManager._autoHideUi = value;\n }\n\n /** @internal */\n public static setUseProximityOpacity(value: boolean) {\n InternalUiShowHideManager._useProximityOpacity = value;\n }\n\n /** @internal */\n public static setSnapWidgetOpacity(value: boolean) {\n InternalUiShowHideManager._snapWidgetOpacity = value;\n }\n\n /** Determines whether the `auto-hide Ui` feature is on. Defaults to false.\n * When true, the Ui automatically hides after a few seconds of inactivity.\n */\n public static get autoHideUi(): boolean {\n return InternalUiShowHideManager._autoHideUi;\n }\n\n public static set autoHideUi(autoHide: boolean) {\n void UiShowHideSettingsProvider.storeAutoHideUi(autoHide);\n InternalUiShowHideManager._autoHideUi = autoHide;\n SyncUiEventDispatcher.dispatchImmediateSyncUiEvent(\n SyncUiEventId.ShowHideManagerSettingChange\n );\n }\n /** Determines whether the widget panels are shown and hidden. Defaults to false. */\n public static get showHidePanels(): boolean {\n return InternalUiShowHideManager._showHidePanels;\n }\n public static set showHidePanels(showHide: boolean) {\n InternalUiShowHideManager._showHidePanels = showHide;\n UiFramework.onUiVisibilityChanged.emit({\n visible: UiFramework.getIsUiVisible(),\n });\n }\n\n /** Determines whether the status bar is shown and hidden. Defaults to false. */\n public static get showHideFooter(): boolean {\n return InternalUiShowHideManager._showHideFooter;\n }\n public static set showHideFooter(showHide: boolean) {\n InternalUiShowHideManager._showHideFooter = showHide;\n UiFramework.onUiVisibilityChanged.emit({\n visible: UiFramework.getIsUiVisible(),\n });\n }\n\n /** Determines the amount of inactivity time before the Ui is hidden. Defaults to 3.5 seconds. */\n public static get inactivityTime(): number {\n return InternalUiShowHideManager._inactivityTime;\n }\n public static set inactivityTime(time: number) {\n InternalUiShowHideManager._inactivityTime = time;\n }\n\n /** Determines whether the proximity of the mouse should alter the opacity of a toolbar. Defaults to true. */\n public static get useProximityOpacity(): boolean {\n return InternalUiShowHideManager._useProximityOpacity;\n }\n public static set useProximityOpacity(value: boolean) {\n InternalUiShowHideManager._useProximityOpacity = value;\n void UiShowHideSettingsProvider.storeUseProximityOpacity(value);\n SyncUiEventDispatcher.dispatchImmediateSyncUiEvent(\n SyncUiEventId.ShowHideManagerSettingChange\n );\n UiFramework.onUiVisibilityChanged.emit({\n visible: UiFramework.getIsUiVisible(),\n });\n }\n\n /** Determines whether the opacity of a toolbar should snap. Defaults to false. */\n public static get snapWidgetOpacity(): boolean {\n return InternalUiShowHideManager._snapWidgetOpacity;\n }\n public static set snapWidgetOpacity(value: boolean) {\n InternalUiShowHideManager._snapWidgetOpacity = value;\n void UiShowHideSettingsProvider.storeSnapWidgetOpacity(value);\n SyncUiEventDispatcher.dispatchImmediateSyncUiEvent(\n SyncUiEventId.ShowHideManagerSettingChange\n );\n UiFramework.onUiVisibilityChanged.emit({\n visible: UiFramework.getIsUiVisible(),\n });\n }\n\n /** Handler for when a Frontstage is ready */\n public static handleFrontstageReady() {\n // istanbul ignore next\n if (!InternalUiShowHideManager._autoHideUi) return;\n\n InternalUiShowHideManager.showUiAndResetTimer();\n }\n\n /** Handler for when the mouse moves over the content area */\n public static handleContentMouseMove(\n _event?: React.MouseEvent<HTMLElement, MouseEvent>\n ) {\n if (!InternalUiShowHideManager._autoHideUi) return;\n\n InternalUiShowHideManager.showUiAndResetTimer();\n }\n\n /** Handler for when the mouse enters a widget */\n public static handleWidgetMouseEnter(\n _event?: React.MouseEvent<HTMLElement, MouseEvent>\n ) {\n if (!InternalUiShowHideManager._autoHideUi) return;\n\n InternalUiShowHideManager.showUiAndCancelTimer();\n }\n\n /** Shows the Ui and resets the inactivity timer */\n public static showUiAndResetTimer() {\n setTimeout(() => {\n InternalUiShowHideManager.showUi();\n InternalUiShowHideManager.resetTimer();\n });\n }\n\n /** Shows the Ui and cancels the inactivity timer */\n public static showUiAndCancelTimer() {\n setTimeout(() => {\n InternalUiShowHideManager.showUi();\n InternalUiShowHideManager.cancelTimer();\n });\n }\n\n private static cancelTimer() {\n clearTimeout(InternalUiShowHideManager._timeout);\n }\n\n private static resetTimer() {\n InternalUiShowHideManager.cancelTimer();\n InternalUiShowHideManager._timeout = setTimeout(\n InternalUiShowHideManager.hideUi,\n InternalUiShowHideManager._inactivityTime\n );\n }\n\n private static showUi() {\n UiFramework.setIsUiVisible(true);\n }\n\n private static hideUi() {\n UiFramework.setIsUiVisible(false);\n }\n\n /** @internal */\n public static terminate() {\n InternalUiShowHideManager.cancelTimer();\n // Ensure that next use will have default values for tests.\n InternalUiShowHideManager._isUiVisible = true;\n InternalUiShowHideManager._autoHideUi = true;\n InternalUiShowHideManager._showHidePanels = false;\n InternalUiShowHideManager._showHideFooter = false;\n InternalUiShowHideManager._inactivityTime = INACTIVITY_TIME_DEFAULT;\n InternalUiShowHideManager._useProximityOpacity = false;\n InternalUiShowHideManager._snapWidgetOpacity = false;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"InternalUiShowHideManager.js","sourceRoot":"","sources":["../../../../src/appui-react/utils/InternalUiShowHideManager.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/** @packageDocumentation\n * @module Utilities\n */\n\nimport type { UiStateStorage } from \"@itwin/core-react\";\nimport { UiStateStorageStatus } from \"@itwin/core-react\";\nimport {\n SyncUiEventDispatcher,\n SyncUiEventId,\n} from \"../syncui/SyncUiEventDispatcher\";\nimport type { UserSettingsProvider } from \"../UiFramework\";\nimport { UiFramework } from \"../UiFramework\";\n\n/** Class that maintain UiShowHide user settings between sessions\n * @internal\n */\nexport class UiShowHideSettingsProvider implements UserSettingsProvider {\n private static _settingsNamespace = \"AppUiSettings\";\n private static _autoHideUiKey = \"AutoHideUi\";\n private static _useProximityOpacityKey = \"UseProximityOpacity\";\n private static _snapWidgetOpacityKey = \"SnapWidgetOpacity\";\n public readonly providerId = \"UiShowHideSettingsProvider\";\n\n public static initialize() {\n UiFramework.registerUserSettingsProvider(new UiShowHideSettingsProvider());\n }\n\n public async loadUserSettings(storage: UiStateStorage): Promise<void> {\n let result = await storage.getSetting(\n UiShowHideSettingsProvider._settingsNamespace,\n UiShowHideSettingsProvider._autoHideUiKey\n );\n if (result.status === UiStateStorageStatus.Success)\n InternalUiShowHideManager.setAutoHideUi(result.setting);\n\n result = await storage.getSetting(\n UiShowHideSettingsProvider._settingsNamespace,\n UiShowHideSettingsProvider._useProximityOpacityKey\n );\n if (result.status === UiStateStorageStatus.Success)\n InternalUiShowHideManager.setUseProximityOpacity(result.setting);\n\n result = await storage.getSetting(\n UiShowHideSettingsProvider._settingsNamespace,\n UiShowHideSettingsProvider._snapWidgetOpacityKey\n );\n if (result.status === UiStateStorageStatus.Success)\n InternalUiShowHideManager.setSnapWidgetOpacity(result.setting);\n }\n\n public static async storeAutoHideUi(v: boolean, storage?: UiStateStorage) {\n void (storage ?? UiFramework.getUiStateStorage()).saveSetting(\n this._settingsNamespace,\n this._autoHideUiKey,\n v\n );\n }\n\n public static async storeUseProximityOpacity(\n v: boolean,\n storage?: UiStateStorage\n ) {\n void (storage ?? UiFramework.getUiStateStorage()).saveSetting(\n this._settingsNamespace,\n this._useProximityOpacityKey,\n v\n );\n }\n\n public static async storeSnapWidgetOpacity(\n v: boolean,\n storage?: UiStateStorage\n ) {\n void (storage ?? UiFramework.getUiStateStorage()).saveSetting(\n this._settingsNamespace,\n this._snapWidgetOpacityKey,\n v\n );\n }\n}\n\n/** The default inactivity time.\n * @internal\n */\nexport const INACTIVITY_TIME_DEFAULT = 3500; /** Wait 3.5 seconds */\n\n/** Maintains Ui Show/Hide state. The `Ui` includes widgets, panels and the status bar.\n * @internal\n */\nexport class InternalUiShowHideManager {\n private static _isUiVisible: boolean = true;\n private static _autoHideUi: boolean = true;\n private static _showHidePanels: boolean = false;\n private static _showHideFooter: boolean = false;\n private static _inactivityTime: number = INACTIVITY_TIME_DEFAULT;\n private static _timeout: NodeJS.Timeout;\n private static _useProximityOpacity: boolean = false;\n private static _snapWidgetOpacity: boolean = false;\n\n /** Determines if the Ui is visible */\n public static get isUiVisible() {\n return InternalUiShowHideManager._isUiVisible;\n }\n public static set isUiVisible(visible: boolean) {\n InternalUiShowHideManager._isUiVisible = visible;\n }\n\n /** @public */\n public static setAutoHideUi(value: boolean) {\n InternalUiShowHideManager._autoHideUi = value;\n }\n\n /** @internal */\n public static setUseProximityOpacity(value: boolean) {\n InternalUiShowHideManager._useProximityOpacity = value;\n }\n\n /** @internal */\n public static setSnapWidgetOpacity(value: boolean) {\n InternalUiShowHideManager._snapWidgetOpacity = value;\n }\n\n /** Determines whether the `auto-hide Ui` feature is on. Defaults to false.\n * When true, the Ui automatically hides after a few seconds of inactivity.\n */\n public static get autoHideUi(): boolean {\n return InternalUiShowHideManager._autoHideUi;\n }\n\n public static set autoHideUi(autoHide: boolean) {\n void UiShowHideSettingsProvider.storeAutoHideUi(autoHide);\n InternalUiShowHideManager._autoHideUi = autoHide;\n SyncUiEventDispatcher.dispatchImmediateSyncUiEvent(\n SyncUiEventId.ShowHideManagerSettingChange\n );\n }\n /** Determines whether the widget panels are shown and hidden. Defaults to false. */\n public static get showHidePanels(): boolean {\n return InternalUiShowHideManager._showHidePanels;\n }\n public static set showHidePanels(showHide: boolean) {\n InternalUiShowHideManager._showHidePanels = showHide;\n UiFramework.onUiVisibilityChanged.emit({\n visible: UiFramework.getIsUiVisible(),\n });\n }\n\n /** Determines whether the status bar is shown and hidden. Defaults to false. */\n public static get showHideFooter(): boolean {\n return InternalUiShowHideManager._showHideFooter;\n }\n public static set showHideFooter(showHide: boolean) {\n InternalUiShowHideManager._showHideFooter = showHide;\n UiFramework.onUiVisibilityChanged.emit({\n visible: UiFramework.getIsUiVisible(),\n });\n }\n\n /** Determines the amount of inactivity time before the Ui is hidden. Defaults to 3.5 seconds. */\n public static get inactivityTime(): number {\n return InternalUiShowHideManager._inactivityTime;\n }\n public static set inactivityTime(time: number) {\n InternalUiShowHideManager._inactivityTime = time;\n }\n\n /** Determines whether the proximity of the mouse should alter the opacity of a toolbar. Defaults to true. */\n public static get useProximityOpacity(): boolean {\n return InternalUiShowHideManager._useProximityOpacity;\n }\n public static set useProximityOpacity(value: boolean) {\n InternalUiShowHideManager._useProximityOpacity = value;\n void UiShowHideSettingsProvider.storeUseProximityOpacity(value);\n SyncUiEventDispatcher.dispatchImmediateSyncUiEvent(\n SyncUiEventId.ShowHideManagerSettingChange\n );\n UiFramework.onUiVisibilityChanged.emit({\n visible: UiFramework.getIsUiVisible(),\n });\n }\n\n /** Determines whether the opacity of a toolbar should snap. Defaults to false. */\n public static get snapWidgetOpacity(): boolean {\n return InternalUiShowHideManager._snapWidgetOpacity;\n }\n public static set snapWidgetOpacity(value: boolean) {\n InternalUiShowHideManager._snapWidgetOpacity = value;\n void UiShowHideSettingsProvider.storeSnapWidgetOpacity(value);\n SyncUiEventDispatcher.dispatchImmediateSyncUiEvent(\n SyncUiEventId.ShowHideManagerSettingChange\n );\n UiFramework.onUiVisibilityChanged.emit({\n visible: UiFramework.getIsUiVisible(),\n });\n }\n\n /** Handler for when a Frontstage is ready */\n public static handleFrontstageReady() {\n // istanbul ignore next\n if (!InternalUiShowHideManager._autoHideUi) return;\n\n InternalUiShowHideManager.showUiAndResetTimer();\n }\n\n /** Handler for when the mouse moves over the content area */\n public static handleContentMouseMove(\n _event?: React.MouseEvent<HTMLElement, MouseEvent>\n ) {\n if (!InternalUiShowHideManager._autoHideUi) return;\n\n InternalUiShowHideManager.showUiAndResetTimer();\n }\n\n /** Handler for when the mouse enters a widget */\n public static handleWidgetMouseEnter(\n _event?: React.MouseEvent<HTMLElement, MouseEvent>\n ) {\n if (!InternalUiShowHideManager._autoHideUi) return;\n\n InternalUiShowHideManager.showUiAndCancelTimer();\n }\n\n /** Shows the Ui and resets the inactivity timer */\n public static showUiAndResetTimer() {\n setTimeout(() => {\n InternalUiShowHideManager.showUi();\n InternalUiShowHideManager.resetTimer();\n });\n }\n\n /** Shows the Ui and cancels the inactivity timer */\n public static showUiAndCancelTimer() {\n setTimeout(() => {\n InternalUiShowHideManager.showUi();\n InternalUiShowHideManager.cancelTimer();\n });\n }\n\n private static cancelTimer() {\n clearTimeout(InternalUiShowHideManager._timeout);\n }\n\n private static resetTimer() {\n InternalUiShowHideManager.cancelTimer();\n InternalUiShowHideManager._timeout = setTimeout(\n InternalUiShowHideManager.hideUi,\n InternalUiShowHideManager._inactivityTime\n );\n }\n\n private static showUi() {\n UiFramework.setIsUiVisible(true);\n }\n\n private static hideUi() {\n UiFramework.setIsUiVisible(false);\n }\n\n /** @internal */\n public static terminate() {\n InternalUiShowHideManager.cancelTimer();\n // Ensure that next use will have default values for tests.\n InternalUiShowHideManager._isUiVisible = true;\n InternalUiShowHideManager._autoHideUi = true;\n InternalUiShowHideManager._showHidePanels = false;\n InternalUiShowHideManager._showHideFooter = false;\n InternalUiShowHideManager._inactivityTime = INACTIVITY_TIME_DEFAULT;\n InternalUiShowHideManager._useProximityOpacity = false;\n InternalUiShowHideManager._snapWidgetOpacity = false;\n }\n}\n"]}
|
|
@@ -27,23 +27,24 @@ function WidgetFallback() {
|
|
|
27
27
|
}
|
|
28
28
|
/** @internal */
|
|
29
29
|
function WidgetContent() {
|
|
30
|
+
var _a, _b;
|
|
30
31
|
const widget = useWidgetDef();
|
|
31
32
|
// istanbul ignore next
|
|
32
|
-
const itemId = widget
|
|
33
|
+
const itemId = (_b = (_a = widget === null || widget === void 0 ? void 0 : widget.id) !== null && _a !== void 0 ? _a : widget === null || widget === void 0 ? void 0 : widget.label) !== null && _b !== void 0 ? _b : "unknown";
|
|
33
34
|
const onSave = React.useCallback(() => {
|
|
34
35
|
// istanbul ignore next
|
|
35
|
-
widget
|
|
36
|
+
widget === null || widget === void 0 ? void 0 : widget.saveTransientState();
|
|
36
37
|
}, [widget]);
|
|
37
38
|
const onRestore = React.useCallback(() => {
|
|
38
39
|
// istanbul ignore next
|
|
39
|
-
widget
|
|
40
|
+
widget === null || widget === void 0 ? void 0 : widget.restoreTransientState();
|
|
40
41
|
}, [widget]);
|
|
41
42
|
(0, useTransientState_1.useTransientState)(onSave, onRestore);
|
|
42
|
-
const providerId = widget
|
|
43
|
-
? widget
|
|
43
|
+
const providerId = (widget === null || widget === void 0 ? void 0 : widget.initialConfig) && (0, isProviderItem_1.isProviderItem)(widget === null || widget === void 0 ? void 0 : widget.initialConfig)
|
|
44
|
+
? widget === null || widget === void 0 ? void 0 : widget.initialConfig.providerId
|
|
44
45
|
: undefined;
|
|
45
46
|
return (React.createElement(appui_layout_react_1.ScrollableWidgetContent, { itemId: itemId, providerId: providerId },
|
|
46
|
-
React.createElement(react_error_boundary_1.ErrorBoundary, { FallbackComponent: WidgetFallback }, widget
|
|
47
|
+
React.createElement(react_error_boundary_1.ErrorBoundary, { FallbackComponent: WidgetFallback }, widget === null || widget === void 0 ? void 0 : widget.reactNode)));
|
|
47
48
|
}
|
|
48
49
|
exports.WidgetContent = WidgetContent;
|
|
49
50
|
/** @internal */
|
|
@@ -51,7 +52,7 @@ function useWidgetDef() {
|
|
|
51
52
|
const tabId = React.useContext(appui_layout_react_1.TabIdContext);
|
|
52
53
|
(0, core_bentley_1.assert)(!!tabId);
|
|
53
54
|
const frontstage = (0, FrontstageDef_1.useActiveFrontstageDef)();
|
|
54
|
-
const [widgetDef, setWidgetDef] = React.useState(() => frontstage
|
|
55
|
+
const [widgetDef, setWidgetDef] = React.useState(() => frontstage === null || frontstage === void 0 ? void 0 : frontstage.findWidgetDef(tabId));
|
|
55
56
|
React.useEffect(() => {
|
|
56
57
|
return InternalFrontstageManager_1.InternalFrontstageManager.onFrontstageNineZoneStateChangedEvent.addListener((args) => {
|
|
57
58
|
if (args.frontstageDef !== frontstage ||
|
|
@@ -64,7 +65,7 @@ function useWidgetDef() {
|
|
|
64
65
|
}, [frontstage, tabId]);
|
|
65
66
|
React.useEffect(() => {
|
|
66
67
|
return UiItemsManager_1.UiItemsManager.onUiProviderRegisteredEvent.addListener(() => {
|
|
67
|
-
setWidgetDef(frontstage
|
|
68
|
+
setWidgetDef(frontstage === null || frontstage === void 0 ? void 0 : frontstage.findWidgetDef(tabId));
|
|
68
69
|
});
|
|
69
70
|
}, [frontstage, tabId]);
|
|
70
71
|
return widgetDef;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Content.js","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/Content.tsx"],"names":[],"mappings":";;;AAAA;;;gGAGgG;AAChG;;GAEG;AACH,+BAA+B;AAC/B,kEAGmC;AAEnC,+DAAqE;AACrE,2DAAwD;AACxD,sDAA6C;AAC7C,wEAAqE;AACrE,wEAAqE;AACrE,uFAAoF;AACpF,+DAAqD;AACrD,oFAA8D;AAC9D,wDAAqD;AACrD,gDAA6C;AAE7C,SAAS,cAAc;IACrB,MAAM,YAAY,GAAG,yBAAW,CAAC,SAAS,CACxC,kCAAkC,CACnC,CAAC;IACF,OAAO,CACL,6BAAK,IAAI,EAAC,OAAO,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,EAAE;QAC/D,oBAAC,6BAAa,IAAC,GAAG,EAAE,oBAAC,sCAAQ,OAAG,EAAE,OAAO,EAAE,YAAY,GAAI,CACvD,CACP,CAAC;AACJ,CAAC;AAED,gBAAgB;AAChB,SAAgB,aAAa
|
|
1
|
+
{"version":3,"file":"Content.js","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/Content.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 Widget\n */\nimport * as React from \"react\";\nimport {\n ScrollableWidgetContent,\n TabIdContext,\n} from \"@itwin/appui-layout-react\";\nimport type { WidgetDef } from \"../widgets/WidgetDef\";\nimport { useActiveFrontstageDef } from \"../frontstage/FrontstageDef\";\nimport { useTransientState } from \"./useTransientState\";\nimport { assert } from \"@itwin/core-bentley\";\nimport { UiItemsManager } from \"../ui-items-provider/UiItemsManager\";\nimport { isProviderItem } from \"../ui-items-provider/isProviderItem\";\nimport { InternalFrontstageManager } from \"../frontstage/InternalFrontstageManager\";\nimport { ErrorBoundary } from \"react-error-boundary\";\nimport { SvgError } from \"@itwin/itwinui-illustrations-react\";\nimport { NonIdealState } from \"@itwin/itwinui-react\";\nimport { UiFramework } from \"../UiFramework\";\n\nfunction WidgetFallback() {\n const errorMessage = UiFramework.translate(\n \"widget.errorMessage.unknownError\"\n );\n return (\n <div role=\"alert\" style={{ position: \"relative\", minHeight: 400 }}>\n <NonIdealState svg={<SvgError />} heading={errorMessage} />\n </div>\n );\n}\n\n/** @internal */\nexport function WidgetContent() {\n const widget = useWidgetDef();\n // istanbul ignore next\n const itemId = widget?.id ?? widget?.label ?? \"unknown\";\n const onSave = React.useCallback(() => {\n // istanbul ignore next\n widget?.saveTransientState();\n }, [widget]);\n const onRestore = React.useCallback(() => {\n // istanbul ignore next\n widget?.restoreTransientState();\n }, [widget]);\n useTransientState(onSave, onRestore);\n const providerId =\n widget?.initialConfig && isProviderItem(widget?.initialConfig)\n ? widget?.initialConfig.providerId\n : undefined;\n return (\n <ScrollableWidgetContent itemId={itemId} providerId={providerId}>\n <ErrorBoundary FallbackComponent={WidgetFallback}>\n {widget?.reactNode}\n </ErrorBoundary>\n </ScrollableWidgetContent>\n );\n}\n\n/** @internal */\nexport function useWidgetDef(): WidgetDef | undefined {\n const tabId = React.useContext(TabIdContext);\n assert(!!tabId);\n\n const frontstage = useActiveFrontstageDef();\n const [widgetDef, setWidgetDef] = React.useState(() =>\n frontstage?.findWidgetDef(tabId)\n );\n\n React.useEffect(() => {\n return InternalFrontstageManager.onFrontstageNineZoneStateChangedEvent.addListener(\n (args) => {\n if (\n args.frontstageDef !== frontstage ||\n !frontstage ||\n frontstage.isStageClosing ||\n frontstage.isApplicationClosing\n )\n return;\n setWidgetDef(frontstage.findWidgetDef(tabId));\n }\n );\n }, [frontstage, tabId]);\n\n React.useEffect(() => {\n return UiItemsManager.onUiProviderRegisteredEvent.addListener(() => {\n setWidgetDef(frontstage?.findWidgetDef(tabId));\n });\n }, [frontstage, tabId]);\n\n return widgetDef;\n}\n"]}
|
|
@@ -55,7 +55,7 @@ const widgetPanelsFrontstage = React.createElement(WidgetPanelsFrontstageCompone
|
|
|
55
55
|
/** @internal */
|
|
56
56
|
function useLayoutStore() {
|
|
57
57
|
const [def, setDef] = React.useState(UiFramework_1.UiFramework.frontstages.activeFrontstageDef);
|
|
58
|
-
const [layout, setLayout] = React.useState(() => (0, appui_layout_react_1.createLayoutStore)(def
|
|
58
|
+
const [layout, setLayout] = React.useState(() => (0, appui_layout_react_1.createLayoutStore)(def === null || def === void 0 ? void 0 : def.nineZoneState));
|
|
59
59
|
React.useEffect(() => {
|
|
60
60
|
return UiFramework_1.UiFramework.frontstages.onFrontstageActivatedEvent.addListener((args) => {
|
|
61
61
|
(0, react_dom_1.unstable_batchedUpdates)(() => {
|
|
@@ -108,7 +108,7 @@ function FrameworkStateReducer(state, action, frontstageDef) {
|
|
|
108
108
|
const panel = draft.panels[panelSide];
|
|
109
109
|
const location = toStagePanelLocation(panelSide);
|
|
110
110
|
const panelDef = frontstageDef.getStagePanelDef(location);
|
|
111
|
-
if (panelDef
|
|
111
|
+
if (panelDef === null || panelDef === void 0 ? void 0 : panelDef.maxSizeSpec) {
|
|
112
112
|
panel.maxSize = getPanelMaxSize(panelDef.maxSizeSpec, panelSide, action.size);
|
|
113
113
|
if (panel.size) {
|
|
114
114
|
panel.size = Math.min(Math.max(panel.size, panel.minSize), panel.maxSize);
|
|
@@ -207,9 +207,10 @@ function useLabels() {
|
|
|
207
207
|
}
|
|
208
208
|
exports.useLabels = useLabels;
|
|
209
209
|
function toTabArgs(widget) {
|
|
210
|
+
var _a;
|
|
210
211
|
const label = getWidgetLabel(widget.label);
|
|
211
212
|
return {
|
|
212
|
-
allowedPanelTargets: widget.allowedPanelTargets
|
|
213
|
+
allowedPanelTargets: (_a = widget.allowedPanelTargets) === null || _a === void 0 ? void 0 : _a.map((location) => (0, StagePanelDef_1.toPanelSide)(location)),
|
|
213
214
|
hideWithUiWhenFloating: !!widget.hideWithUiWhenFloating,
|
|
214
215
|
canPopout: widget.canPopout,
|
|
215
216
|
iconSpec: widget.iconSpec,
|
|
@@ -232,7 +233,7 @@ function addWidgets(state, widgets, side, widgetId) {
|
|
|
232
233
|
const activeWidget = visibleWidgets.find((widget) => widget.isActive);
|
|
233
234
|
const minimized = false;
|
|
234
235
|
// istanbul ignore else
|
|
235
|
-
if (activeWidget
|
|
236
|
+
if ((activeWidget === null || activeWidget === void 0 ? void 0 : activeWidget.defaultState) !== WidgetState_1.WidgetState.Floating) {
|
|
236
237
|
state = (0, appui_layout_react_1.addPanelWidget)(state, side, widgetId, tabs, {
|
|
237
238
|
activeTabId: activeWidget ? activeWidget.id : tabs[0],
|
|
238
239
|
minimized,
|
|
@@ -244,6 +245,7 @@ exports.addWidgets = addWidgets;
|
|
|
244
245
|
/** @internal */
|
|
245
246
|
// istanbul ignore next
|
|
246
247
|
function appendWidgets(state, widgetDefs, location, section) {
|
|
248
|
+
var _a;
|
|
247
249
|
const side = (0, StagePanelDef_1.toPanelSide)(location);
|
|
248
250
|
// Add missing widget tabs.
|
|
249
251
|
for (const widgetDef of widgetDefs) {
|
|
@@ -268,7 +270,7 @@ function appendWidgets(state, widgetDefs, location, section) {
|
|
|
268
270
|
});
|
|
269
271
|
if (widgetDef.isFloatingStateSupported &&
|
|
270
272
|
widgetDef.defaultState === WidgetState_1.WidgetState.Floating) {
|
|
271
|
-
const floatingContainerId = widgetDef.floatingContainerId
|
|
273
|
+
const floatingContainerId = (_a = widgetDef.floatingContainerId) !== null && _a !== void 0 ? _a : (0, appui_layout_react_1.getUniqueId)();
|
|
272
274
|
const widgetContainerId = getWidgetId(location, section);
|
|
273
275
|
const home = {
|
|
274
276
|
side,
|
|
@@ -286,7 +288,7 @@ function appendWidgets(state, widgetDefs, location, section) {
|
|
|
286
288
|
width: 300,
|
|
287
289
|
...tab.preferredFloatingWidgetSize,
|
|
288
290
|
};
|
|
289
|
-
const preferredPoint = preferredPosition
|
|
291
|
+
const preferredPoint = preferredPosition !== null && preferredPosition !== void 0 ? preferredPosition : {
|
|
290
292
|
x: (state.size.width - size.width) / 2,
|
|
291
293
|
y: (state.size.height - size.height) / 2,
|
|
292
294
|
};
|
|
@@ -346,23 +348,16 @@ function processPopoutWidgets(initialState, frontstageDef) {
|
|
|
346
348
|
* @internal
|
|
347
349
|
*/
|
|
348
350
|
function addMissingWidgets(frontstageDef, initialState) {
|
|
351
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
349
352
|
let state = initialState;
|
|
350
|
-
state = appendWidgets(state, determineNewWidgets(frontstageDef.leftPanel
|
|
351
|
-
|
|
352
|
-
state = appendWidgets(state, determineNewWidgets(frontstageDef.
|
|
353
|
-
|
|
354
|
-
state = appendWidgets(state, determineNewWidgets(frontstageDef.
|
|
355
|
-
|
|
356
|
-
state = appendWidgets(state, determineNewWidgets(frontstageDef.
|
|
357
|
-
|
|
358
|
-
state = appendWidgets(state, determineNewWidgets(frontstageDef.topPanel?.getPanelSectionDef(StagePanelSection_1.StagePanelSection.Start)
|
|
359
|
-
.widgetDefs, state), StagePanelLocation_1.StagePanelLocation.Top, StagePanelSection_1.StagePanelSection.Start);
|
|
360
|
-
state = appendWidgets(state, determineNewWidgets(frontstageDef.topPanel?.getPanelSectionDef(StagePanelSection_1.StagePanelSection.End)
|
|
361
|
-
.widgetDefs, state), StagePanelLocation_1.StagePanelLocation.Top, StagePanelSection_1.StagePanelSection.End);
|
|
362
|
-
state = appendWidgets(state, determineNewWidgets(frontstageDef.bottomPanel?.getPanelSectionDef(StagePanelSection_1.StagePanelSection.Start)
|
|
363
|
-
.widgetDefs, state), StagePanelLocation_1.StagePanelLocation.Bottom, StagePanelSection_1.StagePanelSection.Start);
|
|
364
|
-
state = appendWidgets(state, determineNewWidgets(frontstageDef.bottomPanel?.getPanelSectionDef(StagePanelSection_1.StagePanelSection.End)
|
|
365
|
-
.widgetDefs, state), StagePanelLocation_1.StagePanelLocation.Bottom, StagePanelSection_1.StagePanelSection.End);
|
|
353
|
+
state = appendWidgets(state, determineNewWidgets((_a = frontstageDef.leftPanel) === null || _a === void 0 ? void 0 : _a.getPanelSectionDef(StagePanelSection_1.StagePanelSection.Start).widgetDefs, state), StagePanelLocation_1.StagePanelLocation.Left, StagePanelSection_1.StagePanelSection.Start);
|
|
354
|
+
state = appendWidgets(state, determineNewWidgets((_b = frontstageDef.leftPanel) === null || _b === void 0 ? void 0 : _b.getPanelSectionDef(StagePanelSection_1.StagePanelSection.End).widgetDefs, state), StagePanelLocation_1.StagePanelLocation.Left, StagePanelSection_1.StagePanelSection.End);
|
|
355
|
+
state = appendWidgets(state, determineNewWidgets((_c = frontstageDef.rightPanel) === null || _c === void 0 ? void 0 : _c.getPanelSectionDef(StagePanelSection_1.StagePanelSection.Start).widgetDefs, state), StagePanelLocation_1.StagePanelLocation.Right, StagePanelSection_1.StagePanelSection.Start);
|
|
356
|
+
state = appendWidgets(state, determineNewWidgets((_d = frontstageDef.rightPanel) === null || _d === void 0 ? void 0 : _d.getPanelSectionDef(StagePanelSection_1.StagePanelSection.End).widgetDefs, state), StagePanelLocation_1.StagePanelLocation.Right, StagePanelSection_1.StagePanelSection.End);
|
|
357
|
+
state = appendWidgets(state, determineNewWidgets((_e = frontstageDef.topPanel) === null || _e === void 0 ? void 0 : _e.getPanelSectionDef(StagePanelSection_1.StagePanelSection.Start).widgetDefs, state), StagePanelLocation_1.StagePanelLocation.Top, StagePanelSection_1.StagePanelSection.Start);
|
|
358
|
+
state = appendWidgets(state, determineNewWidgets((_f = frontstageDef.topPanel) === null || _f === void 0 ? void 0 : _f.getPanelSectionDef(StagePanelSection_1.StagePanelSection.End).widgetDefs, state), StagePanelLocation_1.StagePanelLocation.Top, StagePanelSection_1.StagePanelSection.End);
|
|
359
|
+
state = appendWidgets(state, determineNewWidgets((_g = frontstageDef.bottomPanel) === null || _g === void 0 ? void 0 : _g.getPanelSectionDef(StagePanelSection_1.StagePanelSection.Start).widgetDefs, state), StagePanelLocation_1.StagePanelLocation.Bottom, StagePanelSection_1.StagePanelSection.Start);
|
|
360
|
+
state = appendWidgets(state, determineNewWidgets((_h = frontstageDef.bottomPanel) === null || _h === void 0 ? void 0 : _h.getPanelSectionDef(StagePanelSection_1.StagePanelSection.End).widgetDefs, state), StagePanelLocation_1.StagePanelLocation.Bottom, StagePanelSection_1.StagePanelSection.End);
|
|
366
361
|
if (frontstageDef.toolSettings) {
|
|
367
362
|
const newToolSettingsWidgets = determineNewWidgets([frontstageDef.toolSettings], state);
|
|
368
363
|
for (const newToolSettingsWidget of newToolSettingsWidgets) {
|
|
@@ -389,7 +384,8 @@ function hideWidgets(state, frontstageDef) {
|
|
|
389
384
|
* @internal
|
|
390
385
|
*/
|
|
391
386
|
function removeMissingWidgets(frontstageDef, state) {
|
|
392
|
-
|
|
387
|
+
var _a;
|
|
388
|
+
const toolSettingsTabId = (_a = state.toolSettings) === null || _a === void 0 ? void 0 : _a.tabId;
|
|
393
389
|
for (const [, tab] of Object.entries(state.tabs)) {
|
|
394
390
|
if (tab.id === toolSettingsTabId)
|
|
395
391
|
continue;
|
|
@@ -445,8 +441,8 @@ exports.getWidgetId = getWidgetId;
|
|
|
445
441
|
/** @internal */
|
|
446
442
|
function getPanelSectionWidgets(frontstageDef, location, section) {
|
|
447
443
|
const stagePanel = frontstageDef.getStagePanelDef(location);
|
|
448
|
-
const panelSection = stagePanel
|
|
449
|
-
return panelSection
|
|
444
|
+
const panelSection = stagePanel === null || stagePanel === void 0 ? void 0 : stagePanel.getPanelSectionDef(section);
|
|
445
|
+
return (panelSection === null || panelSection === void 0 ? void 0 : panelSection.widgetDefs) || [];
|
|
450
446
|
}
|
|
451
447
|
exports.getPanelSectionWidgets = getPanelSectionWidgets;
|
|
452
448
|
/** @internal */
|
|
@@ -474,14 +470,15 @@ function initializePanel(state, frontstageDef, location) {
|
|
|
474
470
|
state = addPanelWidgets(state, frontstageDef, location);
|
|
475
471
|
const panelDef = frontstageDef.getStagePanelDef(location);
|
|
476
472
|
state = (0, immer_1.default)(state, (draft) => {
|
|
473
|
+
var _a, _b, _c;
|
|
477
474
|
const panel = draft.panels[panelSide];
|
|
478
|
-
panel.minSize = panelDef
|
|
479
|
-
panel.pinned = panelDef
|
|
480
|
-
panel.resizable = panelDef
|
|
481
|
-
if (panelDef
|
|
475
|
+
panel.minSize = (_a = panelDef === null || panelDef === void 0 ? void 0 : panelDef.minSize) !== null && _a !== void 0 ? _a : panel.minSize;
|
|
476
|
+
panel.pinned = (_b = panelDef === null || panelDef === void 0 ? void 0 : panelDef.pinned) !== null && _b !== void 0 ? _b : panel.pinned;
|
|
477
|
+
panel.resizable = (_c = panelDef === null || panelDef === void 0 ? void 0 : panelDef.resizable) !== null && _c !== void 0 ? _c : panel.resizable;
|
|
478
|
+
if (panelDef === null || panelDef === void 0 ? void 0 : panelDef.maxSizeSpec) {
|
|
482
479
|
panel.maxSize = getPanelMaxSize(panelDef.maxSizeSpec, panelSide, state.size);
|
|
483
480
|
}
|
|
484
|
-
const size = panelDef
|
|
481
|
+
const size = panelDef === null || panelDef === void 0 ? void 0 : panelDef.size;
|
|
485
482
|
panel.size =
|
|
486
483
|
size === undefined
|
|
487
484
|
? size
|
|
@@ -518,6 +515,7 @@ function initializeNineZoneState(frontstageDef) {
|
|
|
518
515
|
nineZone = initializePanel(nineZone, frontstageDef, StagePanelLocation_1.StagePanelLocation.Top);
|
|
519
516
|
nineZone = initializePanel(nineZone, frontstageDef, StagePanelLocation_1.StagePanelLocation.Bottom);
|
|
520
517
|
nineZone = (0, immer_1.default)(nineZone, (draft) => {
|
|
518
|
+
var _a, _b, _c, _d;
|
|
521
519
|
for (const [, panel] of Object.entries(draft.panels)) {
|
|
522
520
|
const expanded = panel.widgets.find((widgetId) => draft.widgets[widgetId].minimized === false);
|
|
523
521
|
const firstWidget = panel.widgets.length > 0 ? draft.widgets[panel.widgets[0]] : undefined;
|
|
@@ -526,10 +524,10 @@ function initializeNineZoneState(frontstageDef) {
|
|
|
526
524
|
firstWidget.minimized = false;
|
|
527
525
|
}
|
|
528
526
|
}
|
|
529
|
-
draft.panels.left.collapsed = isPanelCollapsed(frontstageDef.leftPanel
|
|
530
|
-
draft.panels.right.collapsed = isPanelCollapsed(frontstageDef.rightPanel
|
|
531
|
-
draft.panels.top.collapsed = isPanelCollapsed(frontstageDef.topPanel
|
|
532
|
-
draft.panels.bottom.collapsed = isPanelCollapsed(frontstageDef.bottomPanel
|
|
527
|
+
draft.panels.left.collapsed = isPanelCollapsed((_a = frontstageDef.leftPanel) === null || _a === void 0 ? void 0 : _a.panelState);
|
|
528
|
+
draft.panels.right.collapsed = isPanelCollapsed((_b = frontstageDef.rightPanel) === null || _b === void 0 ? void 0 : _b.panelState);
|
|
529
|
+
draft.panels.top.collapsed = isPanelCollapsed((_c = frontstageDef.topPanel) === null || _c === void 0 ? void 0 : _c.panelState);
|
|
530
|
+
draft.panels.bottom.collapsed = isPanelCollapsed((_d = frontstageDef.bottomPanel) === null || _d === void 0 ? void 0 : _d.panelState);
|
|
533
531
|
});
|
|
534
532
|
nineZone = addMissingWidgets(frontstageDef, nineZone);
|
|
535
533
|
const toolSettingsWidgetDef = frontstageDef.toolSettings;
|
|
@@ -724,6 +722,7 @@ function addHiddenWidget(state, widgetDef) {
|
|
|
724
722
|
}
|
|
725
723
|
/** @internal */
|
|
726
724
|
function setWidgetState(state, widgetDef, widgetState) {
|
|
725
|
+
var _a, _b, _c, _d, _e;
|
|
727
726
|
if (widgetState === WidgetState_1.WidgetState.Hidden) {
|
|
728
727
|
return hideWidget(state, widgetDef);
|
|
729
728
|
}
|
|
@@ -733,7 +732,7 @@ function setWidgetState(state, widgetDef, widgetState) {
|
|
|
733
732
|
if (!state.toolSettings && !widgetDef.tabLocation) {
|
|
734
733
|
state = (0, appui_layout_react_1.addDockedToolSettings)(state, id);
|
|
735
734
|
}
|
|
736
|
-
if (state.toolSettings
|
|
735
|
+
if (((_a = state.toolSettings) === null || _a === void 0 ? void 0 : _a.type) === "docked")
|
|
737
736
|
return state;
|
|
738
737
|
}
|
|
739
738
|
let location = (0, appui_layout_react_1.getTabLocation)(state, id);
|
|
@@ -745,6 +744,7 @@ function setWidgetState(state, widgetDef, widgetState) {
|
|
|
745
744
|
}
|
|
746
745
|
}
|
|
747
746
|
return (0, immer_1.default)(state, (draft) => {
|
|
747
|
+
var _a;
|
|
748
748
|
(0, core_bentley_1.assert)(!!location);
|
|
749
749
|
const widget = draft.widgets[location.widgetId];
|
|
750
750
|
widget.minimized = false;
|
|
@@ -759,14 +759,14 @@ function setWidgetState(state, widgetDef, widgetState) {
|
|
|
759
759
|
panel.collapsed = false;
|
|
760
760
|
if (undefined === panel.size || 0 === panel.size) {
|
|
761
761
|
// istanbul ignore next
|
|
762
|
-
panel.size = panel.minSize
|
|
762
|
+
panel.size = (_a = panel.minSize) !== null && _a !== void 0 ? _a : 200;
|
|
763
763
|
}
|
|
764
764
|
}
|
|
765
765
|
});
|
|
766
766
|
}
|
|
767
767
|
else if (widgetState === WidgetState_1.WidgetState.Closed) {
|
|
768
768
|
const id = widgetDef.id;
|
|
769
|
-
if (widgetDef.isToolSettings && state.toolSettings
|
|
769
|
+
if (widgetDef.isToolSettings && ((_b = state.toolSettings) === null || _b === void 0 ? void 0 : _b.type) !== "widget") {
|
|
770
770
|
return state;
|
|
771
771
|
}
|
|
772
772
|
let location = (0, appui_layout_react_1.getTabLocation)(state, id);
|
|
@@ -797,10 +797,10 @@ function setWidgetState(state, widgetDef, widgetState) {
|
|
|
797
797
|
return state;
|
|
798
798
|
// Widget is not floating.
|
|
799
799
|
state = (0, appui_layout_react_1.removeTabFromWidget)(state, id);
|
|
800
|
-
const bounds = widgetDef.tabLocation
|
|
800
|
+
const bounds = (_d = (_c = widgetDef.tabLocation) === null || _c === void 0 ? void 0 : _c.floatingWidget) === null || _d === void 0 ? void 0 : _d.bounds;
|
|
801
801
|
state = (0, appui_layout_react_1.addFloatingWidget)(state, (0, appui_layout_react_1.getUniqueId)(), [id], { bounds });
|
|
802
802
|
if (widgetDef.isToolSettings) {
|
|
803
|
-
if (state.toolSettings
|
|
803
|
+
if (((_e = state.toolSettings) === null || _e === void 0 ? void 0 : _e.type) === "docked") {
|
|
804
804
|
state = (0, appui_layout_react_1.removeToolSettings)(state);
|
|
805
805
|
}
|
|
806
806
|
if (!state.toolSettings) {
|
|
@@ -813,13 +813,14 @@ function setWidgetState(state, widgetDef, widgetState) {
|
|
|
813
813
|
exports.setWidgetState = setWidgetState;
|
|
814
814
|
/** Stores widget location and hides it in the UI. */
|
|
815
815
|
function hideWidget(state, widgetDef) {
|
|
816
|
-
|
|
816
|
+
var _a, _b;
|
|
817
|
+
const toolSettingsTabId = (_a = state.toolSettings) === null || _a === void 0 ? void 0 : _a.tabId;
|
|
817
818
|
if (widgetDef.id === toolSettingsTabId) {
|
|
818
819
|
widgetDef.tabLocation = undefined;
|
|
819
820
|
state = (0, immer_1.default)(state, (draft) => {
|
|
820
821
|
draft.toolSettings = undefined;
|
|
821
822
|
});
|
|
822
|
-
if (state.toolSettings
|
|
823
|
+
if (((_b = state.toolSettings) === null || _b === void 0 ? void 0 : _b.type) === "docked")
|
|
823
824
|
return state;
|
|
824
825
|
}
|
|
825
826
|
const location = (0, appui_layout_react_1.getTabLocation)(state, widgetDef.id);
|
|
@@ -1081,12 +1082,13 @@ function useFrontstageManager(frontstageDef, useToolAsToolSettingsLabel) {
|
|
|
1081
1082
|
const defaultLabel = React.useMemo(() => UiFramework_1.UiFramework.translate("widget.labels.toolSettings"), []);
|
|
1082
1083
|
React.useEffect(() => {
|
|
1083
1084
|
const updateLabel = createListener(frontstageDef, () => {
|
|
1085
|
+
var _a, _b;
|
|
1084
1086
|
const toolId = UiFramework_1.UiFramework.frontstages.activeToolId;
|
|
1085
1087
|
(0, core_bentley_1.assert)(!!frontstageDef.nineZoneState);
|
|
1086
1088
|
const label = useToolAsToolSettingsLabel
|
|
1087
|
-
? core_frontend_1.IModelApp.tools.find(toolId)
|
|
1089
|
+
? ((_a = core_frontend_1.IModelApp.tools.find(toolId)) === null || _a === void 0 ? void 0 : _a.flyover) || defaultLabel
|
|
1088
1090
|
: defaultLabel;
|
|
1089
|
-
const toolSettingsTabId = frontstageDef.nineZoneState.toolSettings
|
|
1091
|
+
const toolSettingsTabId = (_b = frontstageDef.nineZoneState.toolSettings) === null || _b === void 0 ? void 0 : _b.tabId;
|
|
1090
1092
|
if (!toolSettingsTabId)
|
|
1091
1093
|
return;
|
|
1092
1094
|
frontstageDef.nineZoneState = setWidgetLabel(frontstageDef.nineZoneState, toolSettingsTabId, label);
|