@itwin/appui-react 4.2.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 +12 -4
- package/lib/cjs/appui-react/UiFramework.d.ts +0 -7
- package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
- package/lib/cjs/appui-react/UiFramework.js +0 -22
- package/lib/cjs/appui-react/UiFramework.js.map +1 -1
- package/lib/cjs/appui-react/_variables.scss +3 -3
- package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.scss +3 -3
- package/lib/cjs/appui-react/accudraw/AccuDrawInputField.scss +3 -3
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +1 -2
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.scss +3 -3
- package/lib/cjs/appui-react/configurableui/configurableui.scss +3 -3
- package/lib/cjs/appui-react/content/DefaultViewOverlay.scss +3 -3
- package/lib/cjs/appui-react/feedback/ValidationTextbox.scss +3 -3
- package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js +25 -5
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.scss +3 -3
- package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.scss +3 -3
- package/lib/cjs/appui-react/pickers/ViewSelector.d.ts.map +1 -1
- package/lib/cjs/appui-react/pickers/ViewSelector.js +3 -1
- package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
- package/lib/cjs/appui-react/popup/CardPopup.scss +3 -3
- package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.js +0 -53
- package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
- package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.scss +3 -3
- package/lib/cjs/appui-react/settings/ui/UiSettingsPage.scss +3 -3
- package/lib/cjs/appui-react/statusbar/Separator.scss +3 -3
- package/lib/cjs/appui-react/statusfields/SectionsField.scss +3 -3
- package/lib/cjs/appui-react/statusfields/SelectionCount.scss +3 -3
- package/lib/cjs/appui-react/statusfields/SelectionScope.scss +3 -3
- package/lib/cjs/appui-react/statusfields/ViewAttributes.scss +3 -3
- package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.scss +3 -3
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +3 -3
- package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts +3 -1
- package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Frontstage.js +93 -77
- package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Frontstage.scss +3 -3
- package/lib/cjs/appui-react/widget-panels/Tab.scss +3 -3
- package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts +1 -1
- package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
- package/lib/cjs/appui-react/widget-panels/ToolSettings.js +23 -29
- package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/ToolSettings.scss +3 -3
- package/lib/cjs/appui-react/widget-panels/Toolbars.scss +3 -3
- package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +1 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.js +12 -11
- package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/esm/appui-react/UiFramework.d.ts +0 -7
- package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
- package/lib/esm/appui-react/UiFramework.js +0 -22
- package/lib/esm/appui-react/UiFramework.js.map +1 -1
- package/lib/esm/appui-react/_variables.scss +3 -3
- package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.scss +3 -3
- package/lib/esm/appui-react/accudraw/AccuDrawInputField.scss +3 -3
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +1 -2
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.scss +3 -3
- package/lib/esm/appui-react/configurableui/configurableui.scss +3 -3
- package/lib/esm/appui-react/content/DefaultViewOverlay.scss +3 -3
- package/lib/esm/appui-react/feedback/ValidationTextbox.scss +3 -3
- package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageDef.js +25 -5
- package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/esm/appui-react/navigationaids/SheetNavigationAid.scss +3 -3
- package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.scss +3 -3
- package/lib/esm/appui-react/pickers/ViewSelector.d.ts.map +1 -1
- package/lib/esm/appui-react/pickers/ViewSelector.js +3 -1
- package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
- package/lib/esm/appui-react/popup/CardPopup.scss +3 -3
- package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.d.ts.map +1 -1
- package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.js +0 -53
- package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
- package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.scss +3 -3
- package/lib/esm/appui-react/settings/ui/UiSettingsPage.scss +3 -3
- package/lib/esm/appui-react/statusbar/Separator.scss +3 -3
- package/lib/esm/appui-react/statusfields/SectionsField.scss +3 -3
- package/lib/esm/appui-react/statusfields/SelectionCount.scss +3 -3
- package/lib/esm/appui-react/statusfields/SelectionScope.scss +3 -3
- package/lib/esm/appui-react/statusfields/ViewAttributes.scss +3 -3
- package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.scss +3 -3
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +3 -3
- package/lib/esm/appui-react/widget-panels/Frontstage.d.ts +3 -1
- package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
- package/lib/esm/appui-react/widget-panels/Frontstage.js +90 -74
- package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Frontstage.scss +3 -3
- package/lib/esm/appui-react/widget-panels/Tab.scss +3 -3
- package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts +1 -1
- package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
- package/lib/esm/appui-react/widget-panels/ToolSettings.js +23 -29
- package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/ToolSettings.scss +3 -3
- package/lib/esm/appui-react/widget-panels/Toolbars.scss +3 -3
- package/lib/esm/appui-react/widgets/WidgetDef.d.ts +1 -1
- package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetDef.js +12 -11
- package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/public/locales/en/UiFramework.json +3 -1
- package/package.json +12 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolSettings.js","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/ToolSettings.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 ToolSettings\n */\n\nimport \"./ToolSettings.scss\";\nimport * as React from \"react\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport {\n DockedToolSetting,\n DockedToolSettings,\n ScrollableWidgetContent,\n useLayout,\n} from \"@itwin/appui-layout-react\";\nimport { UiFramework } from \"../UiFramework\";\nimport { InternalFrontstageManager } from \"../frontstage/InternalFrontstageManager\";\nimport { useActiveFrontstageDef } from \"../frontstage/FrontstageDef\";\n\n/** Defines a ToolSettings property entry.\n * @public\n */\nexport interface ToolSettingsEntry {\n // label node which potentially can contain a lock node as well.\n labelNode: React.ReactNode;\n // editor entry used to display and edit the property value\n editorNode: React.ReactNode;\n}\n\nfunction EmptyToolSettingsEntry(): ToolSettingsEntry {\n const labelString = IModelApp.localization.getLocalizedString(\n \"UiFramework:tools.noToolSettings\"\n );\n const labelNode = (\n <div className=\"uif-toolsetting-label-docked-horizontal-empty\">\n {labelString}\n </div>\n );\n const editorNode = <div />;\n return { labelNode, editorNode };\n}\n\n/** @internal */\n// istanbul ignore next - need to work on overflow unit testing\nfunction TsLabel({ children }: { children: React.ReactNode }) {\n return (\n <div className=\"uif-toolsetting-label-docked-horizontal\">{children}</div>\n );\n}\n\n/** @internal */\nexport function WidgetPanelsToolSettings() {\n const frontstageDef = useActiveFrontstageDef();\n const toolSettingsType = useLayout((state) => state.toolSettings.type);\n const toolSettings = frontstageDef?.toolSettings;\n if (!toolSettings || toolSettingsType === \"widget\") return null;\n return <ToolSettingsDockedContent />;\n}\n\n/** @internal */\nexport function ToolSettingsDockedContent() {\n const settings = useHorizontalToolSettingNodes();\n // for the overflow to work properly each setting in the DockedToolSettings should be wrapped by a DockedToolSetting component\n return (\n <DockedToolSettings\n itemId={\n InternalFrontstageManager.activeToolSettingsProvider?.uniqueId ?? \"none\"\n }\n key={Date.now()}\n >\n {settings &&\n settings.map((entry, index) => (\n <DockedToolSetting key={index}>\n <TsLabel>{entry.labelNode}</TsLabel>\n {entry.editorNode}\n </DockedToolSetting>\n ))}\n </DockedToolSettings>\n );\n}\n\n/** @internal */\nexport function useHorizontalToolSettingNodes() {\n const [settings, setSettings] = React.useState(\n InternalFrontstageManager.activeToolSettingsProvider\n ?.horizontalToolSettingNodes\n );\n React.useEffect(() => {\n const handleToolActivatedEvent = () => {\n const nodes =\n InternalFrontstageManager.activeToolSettingsProvider\n ?.horizontalToolSettingNodes;\n if (!nodes || nodes.length === 0) setSettings([EmptyToolSettingsEntry()]);\n else setSettings(nodes);\n };\n UiFramework.frontstages.onToolActivatedEvent.addListener(\n handleToolActivatedEvent\n );\n return () => {\n UiFramework.frontstages.onToolActivatedEvent.removeListener(\n handleToolActivatedEvent\n );\n };\n }, [setSettings]);\n\n React.useEffect(() => {\n const handleToolSettingsReloadEvent = () => {\n const nodes =\n InternalFrontstageManager.activeToolSettingsProvider\n ?.horizontalToolSettingNodes;\n if (!nodes || nodes.length === 0) setSettings([EmptyToolSettingsEntry()]);\n else setSettings(nodes);\n };\n UiFramework.frontstages.onToolSettingsReloadEvent.addListener(\n handleToolSettingsReloadEvent\n );\n return () => {\n UiFramework.frontstages.onToolSettingsReloadEvent.removeListener(\n handleToolSettingsReloadEvent\n );\n };\n }, [setSettings]);\n\n return settings;\n}\n\n/** Defines the ToolSettingsEntry entries that are used to populate a grid layout of ToolSetting properties.\n * Used only when the \"Use UI 2.0\" setting is true\n * @internal\n */\nexport interface ToolSettingsGridProps {\n // label node which potentially can contain a lock node as well.\n settings?: ToolSettingsEntry[];\n}\n\n/** Component that arranges an array of ToolSettingsEntry items into a two column grid layout.\n * The left column is considered the label column, the right column is considered the property\n * editor column.\n * @internal\n */\nexport function ToolSettingsGrid({ settings }: ToolSettingsGridProps) {\n return (\n <div className=\"uifw-standard-toolsettings-two-column-grid\">\n {settings &&\n settings.map((setting: ToolSettingsEntry, index: number) => {\n return (\n <React.Fragment key={index}>\n <span className=\"uifw-standard-toolsettings-label-entry\">\n {setting.labelNode}\n </span>\n {setting.editorNode}\n </React.Fragment>\n );\n })}\n </div>\n );\n}\n\n/** @internal */\nexport function useToolSettingsNode() {\n const [settings, setSettings] = React.useState(\n InternalFrontstageManager.activeToolSettingsProvider?.toolSettingsNode\n );\n React.useEffect(() => {\n const handleToolActivatedEvent = () => {\n const nodes =\n InternalFrontstageManager.activeToolSettingsProvider?.toolSettingsNode;\n setSettings(nodes);\n };\n UiFramework.frontstages.onToolActivatedEvent.addListener(\n handleToolActivatedEvent\n );\n return () => {\n UiFramework.frontstages.onToolActivatedEvent.removeListener(\n handleToolActivatedEvent\n );\n };\n }, [setSettings]);\n\n React.useEffect(() => {\n const handleToolSettingsReloadEvent = () => {\n const nodes =\n InternalFrontstageManager.activeToolSettingsProvider?.toolSettingsNode;\n setSettings(nodes);\n };\n UiFramework.frontstages.onToolSettingsReloadEvent.addListener(\n handleToolSettingsReloadEvent\n );\n return () => {\n UiFramework.frontstages.onToolSettingsReloadEvent.removeListener(\n handleToolSettingsReloadEvent\n );\n };\n }, [setSettings]);\n\n return settings;\n}\n\n/** @internal */\nexport function ToolSettingsContent() {\n const toolSettingsType = useLayout((state) => state.toolSettings.type);\n // This is needed to remount underlying components tree when going into widget state.\n if (toolSettingsType === \"docked\") return null;\n return <ToolSettingsWidgetContent />;\n}\n\n/** @internal */\nexport function ToolSettingsWidgetContent() {\n const floatingToolSettingsContainerRef = React.useRef<HTMLDivElement>(null);\n const node = useToolSettingsNode();\n // if no tool settings hide the floating widgets tab\n React.useEffect(() => {\n // istanbul ignore else\n if (floatingToolSettingsContainerRef.current) {\n const floatingWidgetTab =\n floatingToolSettingsContainerRef.current.closest(\n \".nz-floating-toolsettings\"\n );\n // istanbul ignore else\n if (floatingWidgetTab) {\n (floatingWidgetTab as HTMLDivElement).style.visibility = !!node\n ? \"visible\"\n : /* istanbul ignore next */ \"hidden\";\n }\n }\n }, [node]);\n\n // istanbul ignore next\n const providerId =\n InternalFrontstageManager.activeToolSettingsProvider?.uniqueId ?? \"none\";\n\n return (\n <div\n data-toolsettings-provider={providerId}\n className=\"uifw-floating-toolsettings-container\"\n ref={floatingToolSettingsContainerRef}\n >\n <ScrollableWidgetContent>{node}</ScrollableWidgetContent>\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ToolSettings.js","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/ToolSettings.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 ToolSettings\n */\n\nimport \"./ToolSettings.scss\";\nimport * as React from \"react\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport {\n DockedToolSetting,\n DockedToolSettings,\n ScrollableWidgetContent,\n useLayout,\n} from \"@itwin/appui-layout-react\";\nimport { UiFramework } from \"../UiFramework\";\nimport { InternalFrontstageManager } from \"../frontstage/InternalFrontstageManager\";\n\n/** Defines a ToolSettings property entry.\n * @public\n */\nexport interface ToolSettingsEntry {\n // label node which potentially can contain a lock node as well.\n labelNode: React.ReactNode;\n // editor entry used to display and edit the property value\n editorNode: React.ReactNode;\n}\n\nfunction EmptyToolSettingsEntry(): ToolSettingsEntry {\n const toolId = UiFramework.frontstages.activeToolId;\n const toolName = IModelApp.tools.find(toolId)?.flyover;\n const toolPlaceholderName = IModelApp.localization.getLocalizedString(\n \"UiFramework:tools.noToolSettingsPlaceholderName\"\n );\n const labelStringStart = IModelApp.localization.getLocalizedString(\n \"UiFramework:tools.noToolSettingsStart\"\n );\n const labelStringEnd = IModelApp.localization.getLocalizedString(\n \"UiFramework:tools.noToolSettingsEnd\"\n );\n const labelNode = (\n <div className=\"uif-toolsetting-label-docked-horizontal-empty\">\n {labelStringStart}\n {toolName ? toolName : toolPlaceholderName}\n {labelStringEnd}\n </div>\n );\n const editorNode = <div />;\n return { labelNode, editorNode };\n}\n\n/** @internal */\n// istanbul ignore next - need to work on overflow unit testing\nfunction TsLabel({ children }: { children: React.ReactNode }) {\n return (\n <div className=\"uif-toolsetting-label-docked-horizontal\">{children}</div>\n );\n}\n\n/** @internal */\nexport function WidgetPanelsToolSettings() {\n const toolSettingsType = useLayout((state) => state.toolSettings?.type);\n if (!toolSettingsType || toolSettingsType === \"widget\") return null;\n return <ToolSettingsDockedContent />;\n}\n\n/** @internal */\nexport function ToolSettingsDockedContent() {\n const settings = useHorizontalToolSettingNodes();\n // for the overflow to work properly each setting in the DockedToolSettings should be wrapped by a DockedToolSetting component\n return (\n <DockedToolSettings\n itemId={\n InternalFrontstageManager.activeToolSettingsProvider?.uniqueId ?? \"none\"\n }\n key={Date.now()}\n >\n {settings &&\n settings.map((entry, index) => (\n <DockedToolSetting key={index}>\n <TsLabel>{entry.labelNode}</TsLabel>\n {entry.editorNode}\n </DockedToolSetting>\n ))}\n </DockedToolSettings>\n );\n}\n\n/** @internal */\nexport function useHorizontalToolSettingNodes() {\n const [settings, setSettings] = React.useState(\n InternalFrontstageManager.activeToolSettingsProvider\n ?.horizontalToolSettingNodes\n );\n const [emptySettings] = React.useState(() => [EmptyToolSettingsEntry()]);\n React.useEffect(() => {\n return UiFramework.frontstages.onToolActivatedEvent.addListener(() => {\n const nodes =\n InternalFrontstageManager.activeToolSettingsProvider\n ?.horizontalToolSettingNodes;\n setSettings(nodes);\n });\n }, [setSettings]);\n\n React.useEffect(() => {\n return UiFramework.frontstages.onToolSettingsReloadEvent.addListener(() => {\n const nodes =\n InternalFrontstageManager.activeToolSettingsProvider\n ?.horizontalToolSettingNodes;\n setSettings(nodes);\n });\n }, [setSettings]);\n\n if (!settings || settings.length === 0) return emptySettings;\n return settings;\n}\n\n/** Defines the ToolSettingsEntry entries that are used to populate a grid layout of ToolSetting properties.\n * Used only when the \"Use UI 2.0\" setting is true\n * @internal\n */\nexport interface ToolSettingsGridProps {\n // label node which potentially can contain a lock node as well.\n settings?: ToolSettingsEntry[];\n}\n\n/** Component that arranges an array of ToolSettingsEntry items into a two column grid layout.\n * The left column is considered the label column, the right column is considered the property\n * editor column.\n * @internal\n */\nexport function ToolSettingsGrid({ settings }: ToolSettingsGridProps) {\n return (\n <div className=\"uifw-standard-toolsettings-two-column-grid\">\n {settings &&\n settings.map((setting: ToolSettingsEntry, index: number) => {\n return (\n <React.Fragment key={index}>\n <span className=\"uifw-standard-toolsettings-label-entry\">\n {setting.labelNode}\n </span>\n {setting.editorNode}\n </React.Fragment>\n );\n })}\n </div>\n );\n}\n\n/** @internal */\nexport function useToolSettingsNode() {\n const [settings, setSettings] = React.useState(\n InternalFrontstageManager.activeToolSettingsProvider?.toolSettingsNode\n );\n React.useEffect(() => {\n const handleToolActivatedEvent = () => {\n const nodes =\n InternalFrontstageManager.activeToolSettingsProvider?.toolSettingsNode;\n setSettings(nodes);\n };\n UiFramework.frontstages.onToolActivatedEvent.addListener(\n handleToolActivatedEvent\n );\n return () => {\n UiFramework.frontstages.onToolActivatedEvent.removeListener(\n handleToolActivatedEvent\n );\n };\n }, [setSettings]);\n\n React.useEffect(() => {\n const handleToolSettingsReloadEvent = () => {\n const nodes =\n InternalFrontstageManager.activeToolSettingsProvider?.toolSettingsNode;\n setSettings(nodes);\n };\n UiFramework.frontstages.onToolSettingsReloadEvent.addListener(\n handleToolSettingsReloadEvent\n );\n return () => {\n UiFramework.frontstages.onToolSettingsReloadEvent.removeListener(\n handleToolSettingsReloadEvent\n );\n };\n }, [setSettings]);\n\n return settings;\n}\n\n/** @internal */\nexport function ToolSettingsContent() {\n const toolSettingsType = useLayout((state) => state.toolSettings?.type);\n // This is needed to remount underlying components tree when going into widget state.\n if (!toolSettingsType || toolSettingsType === \"docked\") return null;\n return <ToolSettingsWidgetContent />;\n}\n\n/** @internal */\nexport function ToolSettingsWidgetContent() {\n const floatingToolSettingsContainerRef = React.useRef<HTMLDivElement>(null);\n const node = useToolSettingsNode();\n // if no tool settings hide the floating widgets tab\n React.useEffect(() => {\n // istanbul ignore else\n if (floatingToolSettingsContainerRef.current) {\n const floatingWidgetTab =\n floatingToolSettingsContainerRef.current.closest(\n \".nz-floating-toolsettings\"\n );\n // istanbul ignore else\n if (floatingWidgetTab) {\n (floatingWidgetTab as HTMLDivElement).style.visibility = !!node\n ? \"visible\"\n : /* istanbul ignore next */ \"hidden\";\n }\n }\n }, [node]);\n\n // istanbul ignore next\n const providerId =\n InternalFrontstageManager.activeToolSettingsProvider?.uniqueId ?? \"none\";\n\n return (\n <div\n data-toolsettings-provider={providerId}\n className=\"uifw-floating-toolsettings-container\"\n ref={floatingToolSettingsContainerRef}\n >\n <ScrollableWidgetContent>{node}</ScrollableWidgetContent>\n </div>\n );\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
2
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
5
|
|
|
6
6
|
.uif-toolsetting-label-docked-horizontal {
|
|
7
7
|
padding-right: 0.5em;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
2
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
5
|
.uifw-widgetPanels-toolbars {
|
|
6
6
|
display: grid;
|
|
7
7
|
height: 100%;
|
|
@@ -11,7 +11,7 @@ import type { WidgetControl } from "./WidgetControl";
|
|
|
11
11
|
import type { IconSpec, Rectangle, SizeProps } from "@itwin/core-react";
|
|
12
12
|
import type { WidgetConfig } from "./WidgetConfig";
|
|
13
13
|
import { WidgetState } from "./WidgetState";
|
|
14
|
-
import
|
|
14
|
+
import { StagePanelLocation } from "../stagepanels/StagePanelLocation";
|
|
15
15
|
/** Widget State Changed Event Args interface.
|
|
16
16
|
* @public
|
|
17
17
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetDef.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/widgets/WidgetDef.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EACV,SAAS,EACT,sBAAsB,EACtB,UAAU,EACV,YAAY,EACb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAW,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,yCAAyC,CAAC;AAChG,OAAO,EAEL,yBAAyB,EAC1B,MAAM,yCAAyC,CAAC;AAGjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAGxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"WidgetDef.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/widgets/WidgetDef.tsx"],"names":[],"mappings":"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"}
|
|
@@ -12,14 +12,8 @@ import { PropsHelper } from "../utils/PropsHelper";
|
|
|
12
12
|
import { IconHelper } from "@itwin/core-react";
|
|
13
13
|
import { InternalFrontstageManager } from "../frontstage/InternalFrontstageManager";
|
|
14
14
|
import { WidgetState } from "./WidgetState";
|
|
15
|
+
import { StagePanelLocation } from "../stagepanels/StagePanelLocation";
|
|
15
16
|
import { StatusBarWidgetComposerControl } from "./StatusBarWidgetComposerControl";
|
|
16
|
-
const widgetStateNameMap = new Map([
|
|
17
|
-
[WidgetState.Closed, "Closed"],
|
|
18
|
-
[WidgetState.Floating, "Floating"],
|
|
19
|
-
[WidgetState.Hidden, "Hidden"],
|
|
20
|
-
[WidgetState.Open, "Open"],
|
|
21
|
-
[WidgetState.Unloaded, "Unloaded"],
|
|
22
|
-
]);
|
|
23
17
|
/** Widget State Changed Event class.
|
|
24
18
|
* @public
|
|
25
19
|
*/
|
|
@@ -172,6 +166,8 @@ class WidgetDef {
|
|
|
172
166
|
this.setLabel(config.label);
|
|
173
167
|
else if (config.labelKey)
|
|
174
168
|
this._label = UiFramework.localization.getLocalizedString(config.labelKey);
|
|
169
|
+
else if (type === WidgetType.ToolSettings)
|
|
170
|
+
this.setLabel("Tool Settings");
|
|
175
171
|
this.setCanPopout(config.canPopout);
|
|
176
172
|
const canFloat = config.canFloat;
|
|
177
173
|
this._isFloatingStateSupported = !!canFloat;
|
|
@@ -182,7 +178,15 @@ class WidgetDef {
|
|
|
182
178
|
this._isFloatingStateWindowResizable = !!canFloat.isResizable;
|
|
183
179
|
this._defaultFloatingSize = canFloat.defaultSize;
|
|
184
180
|
}
|
|
185
|
-
|
|
181
|
+
if ("allowedPanels" in config) {
|
|
182
|
+
this.allowedPanelTargets = config.allowedPanels;
|
|
183
|
+
}
|
|
184
|
+
else if (type === WidgetType.ToolSettings)
|
|
185
|
+
this.allowedPanelTargets = [
|
|
186
|
+
StagePanelLocation.Bottom,
|
|
187
|
+
StagePanelLocation.Left,
|
|
188
|
+
StagePanelLocation.Right,
|
|
189
|
+
];
|
|
186
190
|
if (config.priority !== undefined)
|
|
187
191
|
this._priority = config.priority;
|
|
188
192
|
if (config.tooltip)
|
|
@@ -325,9 +329,6 @@ class WidgetDef {
|
|
|
325
329
|
targets && (targets === null || targets === void 0 ? void 0 : targets.length) > 0 ? targets : undefined;
|
|
326
330
|
}
|
|
327
331
|
onWidgetStateChanged() {
|
|
328
|
-
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
329
|
-
this.widgetControl &&
|
|
330
|
-
UiFramework.postTelemetry(`Widget ${this.widgetControl.classId} state set to ${widgetStateNameMap.get(this.state)}`, "35402486-9839-441E-A5C7-46D546142D11");
|
|
331
332
|
this.widgetControl && this.widgetControl.onWidgetStateChanged();
|
|
332
333
|
// istanbul ignore next
|
|
333
334
|
this._onWidgetStateChanged && this._onWidgetStateChanged();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetDef.js","sourceRoot":"","sources":["../../../../src/appui-react/widgets/WidgetDef.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 */\n\nimport type * as React from \"react\";\nimport type {\n BadgeType,\n ConditionalStringValue,\n PointProps,\n StringGetter,\n} from \"@itwin/appui-abstract\";\nimport { UiError, UiEvent } from \"@itwin/appui-abstract\";\nimport type { FloatingWidgetState, PanelSide } from \"@itwin/appui-layout-react\";\nimport type { ConfigurableUiControlConstructor } from \"../configurableui/ConfigurableUiControl\";\nimport {\n ConfigurableCreateInfo,\n ConfigurableUiControlType,\n} from \"../configurableui/ConfigurableUiControl\";\nimport { UiFramework } from \"../UiFramework\";\nimport { PropsHelper } from \"../utils/PropsHelper\";\nimport type { WidgetControl } from \"./WidgetControl\";\nimport type { IconSpec, Rectangle, SizeProps } from \"@itwin/core-react\";\nimport { IconHelper } from \"@itwin/core-react\";\nimport { InternalFrontstageManager } from \"../frontstage/InternalFrontstageManager\";\nimport type { WidgetConfig } from \"./WidgetConfig\";\nimport { WidgetState } from \"./WidgetState\";\nimport type { StagePanelLocation } from \"../stagepanels/StagePanelLocation\";\nimport { StatusBarWidgetComposerControl } from \"./StatusBarWidgetComposerControl\";\n\nconst widgetStateNameMap = new Map<WidgetState, string>([\n [WidgetState.Closed, \"Closed\"],\n [WidgetState.Floating, \"Floating\"],\n [WidgetState.Hidden, \"Hidden\"],\n [WidgetState.Open, \"Open\"],\n [WidgetState.Unloaded, \"Unloaded\"],\n]);\n\n/** Widget State Changed Event Args interface.\n * @public\n */\nexport interface WidgetStateChangedEventArgs {\n widgetDef: WidgetDef;\n widgetState: WidgetState;\n}\n\n/** Widget State Changed Event class.\n * @public\n */\nexport class WidgetStateChangedEvent extends UiEvent<WidgetStateChangedEventArgs> {}\n\n/** @internal */\nexport interface WidgetChangedEventArgs {\n widgetDef: WidgetDef;\n}\n\n/** @internal */\nexport interface WidgetEventArgs {\n widgetDef: WidgetDef;\n}\n\n/** Widget type enum.\n * @public\n */\nexport enum WidgetType {\n Tool,\n Navigation,\n Rectangular,\n ToolSettings,\n StatusBar,\n}\n\n/** @internal */\nexport interface TabLocation {\n widgetId: string;\n widgetIndex: number;\n side: PanelSide;\n tabIndex: number;\n floatingWidget?: FloatingWidgetState;\n}\n\n// -----------------------------------------------------------------------------\n\n/** A Widget Definition in the 9-Zone Layout system.\n * @public\n */\nexport class WidgetDef {\n private static _sId = 0;\n private _label: string | ConditionalStringValue | StringGetter = \"\";\n private _tooltip: string | ConditionalStringValue | StringGetter = \"\";\n private _widgetReactNode: React.ReactNode;\n private _widgetControl!: WidgetControl;\n private _defaultState: WidgetState = WidgetState.Unloaded;\n private _id: string;\n private _classId: string | ConfigurableUiControlConstructor | undefined =\n undefined;\n private _priority: number = 0;\n private _isFloatingStateSupported: boolean = false;\n private _isFloatingStateWindowResizable: boolean = true;\n private _stateChanged: boolean = false;\n private _widgetType: WidgetType = WidgetType.Rectangular;\n private _applicationData?: any;\n private _icon?: IconSpec;\n private _internalData?: Map<string, any>;\n private _badge?: BadgeType;\n private _onWidgetStateChanged?: () => void;\n private _saveTransientState?: () => void;\n private _restoreTransientState?: () => boolean;\n private _preferredPanelSize: \"fit-content\" | undefined;\n private _defaultFloatingSize: SizeProps | undefined;\n private _canPopout?: boolean;\n private _floatingContainerId?: string;\n private _defaultFloatingPosition: PointProps | undefined;\n\n private _hideWithUiWhenFloating?: boolean;\n private _allowedPanelTargets?: ReadonlyArray<StagePanelLocation>;\n private _initialConfig?: WidgetConfig;\n\n private _tabLocation?: TabLocation;\n private _defaultTabLocation: TabLocation = {\n side: \"left\",\n tabIndex: 0,\n widgetId: \"\",\n widgetIndex: 0,\n };\n private _popoutBounds?: Rectangle;\n\n public get state(): WidgetState {\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n if (frontstageDef && frontstageDef.findWidgetDef(this.id)) {\n const currentState = frontstageDef.getWidgetCurrentState(this);\n // istanbul ignore else\n if (undefined !== currentState) return currentState;\n }\n return this.defaultState;\n }\n\n public get id(): string {\n return this._id;\n }\n public get classId(): string | ConfigurableUiControlConstructor | undefined {\n return this._classId;\n }\n public get priority(): number {\n return this._priority;\n }\n public get isFloatingStateSupported(): boolean {\n return this._isFloatingStateSupported;\n }\n public get isFloatingStateWindowResizable(): boolean {\n return this._isFloatingStateWindowResizable;\n }\n public get isToolSettings(): boolean {\n return this._widgetType === WidgetType.ToolSettings;\n }\n public get isStatusBar(): boolean {\n return this._widgetType === WidgetType.StatusBar;\n }\n public get stateChanged(): boolean {\n return this._stateChanged;\n }\n public get applicationData(): any | undefined {\n return this._applicationData;\n }\n public get isFloating(): boolean {\n return this.state === WidgetState.Floating;\n }\n public get iconSpec(): IconSpec {\n return this._icon === IconHelper.reactIconKey\n ? IconHelper.getIconReactNode(this._icon, this._internalData)\n : this._icon;\n }\n public set iconSpec(spec: IconSpec) {\n this._icon = this._internalData\n ? IconHelper.getIconData(spec, this._internalData)\n : spec;\n }\n public get badgeType(): BadgeType | undefined {\n return this._badge;\n }\n public get initialConfig(): WidgetConfig | undefined {\n return this._initialConfig;\n }\n\n public get widgetType(): WidgetType {\n return this._widgetType;\n }\n public set widgetType(type: WidgetType) {\n this._widgetType = type;\n }\n\n /** @internal */\n public get tabLocation() {\n return this._tabLocation;\n }\n public set tabLocation(tabLocation: TabLocation | undefined) {\n this._tabLocation = tabLocation;\n }\n\n /** @internal */\n public get defaultTabLocation() {\n return this._defaultTabLocation;\n }\n\n /** @internal */\n public get defaultFloatingPosition() {\n return this._defaultFloatingPosition;\n }\n public set defaultFloatingPosition(position: PointProps | undefined) {\n this._defaultFloatingPosition = position;\n }\n\n /** @internal */\n public get defaultFloatingSize() {\n return this._defaultFloatingSize;\n }\n public set defaultFloatingSize(size: SizeProps | undefined) {\n this._defaultFloatingSize = size;\n }\n\n /** @internal */\n public get defaultState() {\n return this._defaultState;\n }\n\n /** @internal */\n public get popoutBounds() {\n return this._popoutBounds;\n }\n public set popoutBounds(bounds: Rectangle | undefined) {\n this._popoutBounds = bounds;\n }\n\n constructor() {\n WidgetDef._sId++;\n this._id = `Widget-${WidgetDef._sId}`;\n }\n\n /** @internal */\n public static create(\n config: WidgetConfig,\n type: WidgetType = WidgetType.Rectangular\n ) {\n const def = new WidgetDef();\n def.initializeFromConfig(config, type);\n return def;\n }\n\n private initializeFromConfig(config: WidgetConfig, type: WidgetType) {\n this._widgetType = type;\n this._initialConfig = config;\n this._id = config.id;\n\n if (config.label) this.setLabel(config.label);\n else if (config.labelKey)\n this._label = UiFramework.localization.getLocalizedString(\n config.labelKey\n );\n\n this.setCanPopout(config.canPopout);\n\n const canFloat = config.canFloat;\n this._isFloatingStateSupported = !!canFloat;\n if (typeof canFloat === \"object\") {\n this.setFloatingContainerId(canFloat.containerId);\n this.defaultFloatingPosition = canFloat.defaultPosition;\n this._hideWithUiWhenFloating = !!canFloat.hideWithUi;\n this._isFloatingStateWindowResizable = !!canFloat.isResizable;\n this._defaultFloatingSize = canFloat.defaultSize;\n }\n\n this.allowedPanelTargets = config.allowedPanels;\n\n if (config.priority !== undefined) this._priority = config.priority;\n\n if (config.tooltip) this.setTooltip(config.tooltip);\n else if (config.tooltipKey)\n this._tooltip = UiFramework.localization.getLocalizedString(\n config.tooltipKey\n );\n\n if (config.defaultState !== undefined) {\n this._defaultState = config.defaultState;\n }\n\n this._widgetReactNode = config.content;\n this._icon = config.icon;\n\n // istanbul ignore next\n if (config.icon !== undefined && this._icon === undefined)\n this._icon = config.icon;\n\n if (config.badge !== undefined) this._badge = config.badge;\n\n this._preferredPanelSize = config.preferredPanelSize;\n }\n\n /** @alpha */\n public get preferredPanelSize() {\n return this._preferredPanelSize;\n }\n\n /** Get the label string */\n public get label(): string {\n return PropsHelper.getStringFromSpec(this._label);\n }\n\n /** Set the label.\n * @param v A string or a function to get the string.\n */\n public setLabel(v: string | ConditionalStringValue | StringGetter) {\n if (this._label === v) return;\n this._label = v;\n InternalFrontstageManager.onWidgetLabelChangedEvent.emit({\n widgetDef: this,\n });\n }\n\n /** Get the tooltip string */\n public get tooltip(): string {\n return PropsHelper.getStringFromSpec(this._tooltip);\n }\n\n /** Set the tooltip.\n * @param v A string or a function to get the string.\n */\n public setTooltip(v: string | ConditionalStringValue | StringGetter) {\n this._tooltip = v;\n }\n\n public get widgetControl(): WidgetControl | undefined {\n return this._widgetControl;\n }\n\n public getWidgetControl(\n type: ConfigurableUiControlType\n ): WidgetControl | undefined {\n if (!this._widgetControl && this.classId) {\n let usedClassId: string = \"\";\n\n if (typeof this.classId === \"string\") {\n // istanbul ignore else\n if (this.classId)\n this._widgetControl = UiFramework.controls.create(\n this.classId,\n this.id,\n this.applicationData\n ) as WidgetControl;\n usedClassId = this.classId;\n } else {\n const info = new ConfigurableCreateInfo(\n this.classId.name,\n this.id,\n this.id\n );\n usedClassId = this.classId.name;\n this._widgetControl = new this.classId(\n info,\n this.applicationData\n ) as WidgetControl;\n }\n\n // istanbul ignore else\n if (this._widgetControl) {\n if (this._widgetControl.getType() !== type) {\n throw new UiError(\n UiFramework.loggerCategory(this),\n `getWidgetControl: '${usedClassId}' is NOT a ${type}; it is a ${this._widgetControl.getType()}`\n );\n }\n\n this._widgetControl.widgetDef = this;\n this._widgetControl.initialize();\n }\n }\n\n // istanbul ignore next - To avoid breaking API changes, if a WidgetControl is not specified for a status bar use Default one.\n if (!this._widgetControl && this.isStatusBar) {\n const info = new ConfigurableCreateInfo(\n \"StatusBarWidgetComposerControl\",\n StatusBarWidgetComposerControl.controlId,\n StatusBarWidgetComposerControl.controlId\n );\n this._widgetControl = new StatusBarWidgetComposerControl(info, undefined);\n this._widgetControl.widgetDef = this;\n this._widgetControl.initialize();\n }\n\n return this._widgetControl;\n }\n\n public get reactNode(): React.ReactNode {\n if (!this._widgetReactNode) {\n const widgetControl = this.getWidgetControl(\n ConfigurableUiControlType.Widget\n );\n\n // istanbul ignore else\n if (widgetControl && widgetControl.reactNode)\n this._widgetReactNode = widgetControl.reactNode;\n }\n\n return this._widgetReactNode;\n }\n\n public set reactNode(node: React.ReactNode) {\n this._widgetReactNode = node;\n }\n\n public setWidgetState(newState: WidgetState): void {\n if (this.state === newState) return;\n this._stateChanged = true;\n UiFramework.frontstages.onWidgetStateChangedEvent.emit({\n widgetDef: this,\n widgetState: newState,\n });\n this.onWidgetStateChanged();\n }\n\n public setCanPopout(value: boolean | undefined) {\n this._canPopout = value;\n }\n\n public get canPopout(): boolean | undefined {\n return this._canPopout;\n }\n\n public setFloatingContainerId(value: string | undefined) {\n this._floatingContainerId = value;\n }\n\n public get floatingContainerId(): string | undefined {\n return this._floatingContainerId;\n }\n\n public canOpen(): boolean {\n return this.isFloating || this.isActive;\n }\n\n public get isVisible(): boolean {\n return WidgetState.Hidden !== this.state;\n }\n\n public get activeState(): WidgetState {\n return this.state;\n }\n\n public get isActive(): boolean {\n return WidgetState.Open === this.activeState;\n }\n\n public set hideWithUiWhenFloating(hide: boolean | undefined) {\n this._hideWithUiWhenFloating = !!hide;\n }\n\n public get hideWithUiWhenFloating(): boolean {\n return !!this._hideWithUiWhenFloating;\n }\n\n public get allowedPanelTargets():\n | ReadonlyArray<StagePanelLocation>\n | undefined {\n return this._allowedPanelTargets;\n }\n\n public set allowedPanelTargets(\n targets: ReadonlyArray<StagePanelLocation> | undefined\n ) {\n this._allowedPanelTargets =\n targets && targets?.length > 0 ? targets : undefined;\n }\n\n public onWidgetStateChanged(): void {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.widgetControl &&\n UiFramework.postTelemetry(\n `Widget ${\n this.widgetControl.classId\n } state set to ${widgetStateNameMap.get(this.state)}`,\n \"35402486-9839-441E-A5C7-46D546142D11\"\n );\n this.widgetControl && this.widgetControl.onWidgetStateChanged();\n // istanbul ignore next\n this._onWidgetStateChanged && this._onWidgetStateChanged();\n }\n\n /** Overwrite to save transient DOM state (i.e. scroll offset). */\n public saveTransientState(): void {\n this.widgetControl && this.widgetControl.saveTransientState();\n this._saveTransientState && this._saveTransientState();\n }\n\n /** Overwrite to restore transient DOM state.\n * @note Return true if the state is restored or the Widget will remount.\n */\n public restoreTransientState(): boolean {\n let result = true;\n if (this.widgetControl || this._restoreTransientState) {\n let result1 = false,\n result2 = false;\n if (this.widgetControl)\n result1 = this.widgetControl.restoreTransientState();\n if (this._restoreTransientState) result2 = this._restoreTransientState();\n result = !(result1 || result2);\n }\n return result;\n }\n\n /** Opens the widget and makes it visible to the user.\n * I.e. opens the stage panel or brings the floating widget to front of the screen.\n * @public\n */\n public show() {\n InternalFrontstageManager.onWidgetShowEvent.emit({ widgetDef: this });\n }\n\n /** Opens the widget and expands it to fill full size of the stage panel.\n * @public\n */\n public expand() {\n InternalFrontstageManager.onWidgetExpandEvent.emit({ widgetDef: this });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"WidgetDef.js","sourceRoot":"","sources":["../../../../src/appui-react/widgets/WidgetDef.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 */\n\nimport type * as React from \"react\";\nimport type {\n BadgeType,\n ConditionalStringValue,\n PointProps,\n StringGetter,\n} from \"@itwin/appui-abstract\";\nimport { UiError, UiEvent } from \"@itwin/appui-abstract\";\nimport type { FloatingWidgetState, PanelSide } from \"@itwin/appui-layout-react\";\nimport type { ConfigurableUiControlConstructor } from \"../configurableui/ConfigurableUiControl\";\nimport {\n ConfigurableCreateInfo,\n ConfigurableUiControlType,\n} from \"../configurableui/ConfigurableUiControl\";\nimport { UiFramework } from \"../UiFramework\";\nimport { PropsHelper } from \"../utils/PropsHelper\";\nimport type { WidgetControl } from \"./WidgetControl\";\nimport type { IconSpec, Rectangle, SizeProps } from \"@itwin/core-react\";\nimport { IconHelper } from \"@itwin/core-react\";\nimport { InternalFrontstageManager } from \"../frontstage/InternalFrontstageManager\";\nimport type { WidgetConfig } from \"./WidgetConfig\";\nimport { WidgetState } from \"./WidgetState\";\nimport { StagePanelLocation } from \"../stagepanels/StagePanelLocation\";\nimport { StatusBarWidgetComposerControl } from \"./StatusBarWidgetComposerControl\";\n\n/** Widget State Changed Event Args interface.\n * @public\n */\nexport interface WidgetStateChangedEventArgs {\n widgetDef: WidgetDef;\n widgetState: WidgetState;\n}\n\n/** Widget State Changed Event class.\n * @public\n */\nexport class WidgetStateChangedEvent extends UiEvent<WidgetStateChangedEventArgs> {}\n\n/** @internal */\nexport interface WidgetChangedEventArgs {\n widgetDef: WidgetDef;\n}\n\n/** @internal */\nexport interface WidgetEventArgs {\n widgetDef: WidgetDef;\n}\n\n/** Widget type enum.\n * @public\n */\nexport enum WidgetType {\n Tool,\n Navigation,\n Rectangular,\n ToolSettings,\n StatusBar,\n}\n\n/** @internal */\nexport interface TabLocation {\n widgetId: string;\n widgetIndex: number;\n side: PanelSide;\n tabIndex: number;\n floatingWidget?: FloatingWidgetState;\n}\n\n// -----------------------------------------------------------------------------\n\n/** A Widget Definition in the 9-Zone Layout system.\n * @public\n */\nexport class WidgetDef {\n private static _sId = 0;\n private _label: string | ConditionalStringValue | StringGetter = \"\";\n private _tooltip: string | ConditionalStringValue | StringGetter = \"\";\n private _widgetReactNode: React.ReactNode;\n private _widgetControl!: WidgetControl;\n private _defaultState: WidgetState = WidgetState.Unloaded;\n private _id: string;\n private _classId: string | ConfigurableUiControlConstructor | undefined =\n undefined;\n private _priority: number = 0;\n private _isFloatingStateSupported: boolean = false;\n private _isFloatingStateWindowResizable: boolean = true;\n private _stateChanged: boolean = false;\n private _widgetType: WidgetType = WidgetType.Rectangular;\n private _applicationData?: any;\n private _icon?: IconSpec;\n private _internalData?: Map<string, any>;\n private _badge?: BadgeType;\n private _onWidgetStateChanged?: () => void;\n private _saveTransientState?: () => void;\n private _restoreTransientState?: () => boolean;\n private _preferredPanelSize: \"fit-content\" | undefined;\n private _defaultFloatingSize: SizeProps | undefined;\n private _canPopout?: boolean;\n private _floatingContainerId?: string;\n private _defaultFloatingPosition: PointProps | undefined;\n\n private _hideWithUiWhenFloating?: boolean;\n private _allowedPanelTargets?: ReadonlyArray<StagePanelLocation>;\n private _initialConfig?: WidgetConfig;\n\n private _tabLocation?: TabLocation;\n private _defaultTabLocation: TabLocation = {\n side: \"left\",\n tabIndex: 0,\n widgetId: \"\",\n widgetIndex: 0,\n };\n private _popoutBounds?: Rectangle;\n\n public get state(): WidgetState {\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n if (frontstageDef && frontstageDef.findWidgetDef(this.id)) {\n const currentState = frontstageDef.getWidgetCurrentState(this);\n // istanbul ignore else\n if (undefined !== currentState) return currentState;\n }\n return this.defaultState;\n }\n\n public get id(): string {\n return this._id;\n }\n public get classId(): string | ConfigurableUiControlConstructor | undefined {\n return this._classId;\n }\n public get priority(): number {\n return this._priority;\n }\n public get isFloatingStateSupported(): boolean {\n return this._isFloatingStateSupported;\n }\n public get isFloatingStateWindowResizable(): boolean {\n return this._isFloatingStateWindowResizable;\n }\n public get isToolSettings(): boolean {\n return this._widgetType === WidgetType.ToolSettings;\n }\n public get isStatusBar(): boolean {\n return this._widgetType === WidgetType.StatusBar;\n }\n public get stateChanged(): boolean {\n return this._stateChanged;\n }\n public get applicationData(): any | undefined {\n return this._applicationData;\n }\n public get isFloating(): boolean {\n return this.state === WidgetState.Floating;\n }\n public get iconSpec(): IconSpec {\n return this._icon === IconHelper.reactIconKey\n ? IconHelper.getIconReactNode(this._icon, this._internalData)\n : this._icon;\n }\n public set iconSpec(spec: IconSpec) {\n this._icon = this._internalData\n ? IconHelper.getIconData(spec, this._internalData)\n : spec;\n }\n public get badgeType(): BadgeType | undefined {\n return this._badge;\n }\n public get initialConfig(): WidgetConfig | undefined {\n return this._initialConfig;\n }\n\n public get widgetType(): WidgetType {\n return this._widgetType;\n }\n public set widgetType(type: WidgetType) {\n this._widgetType = type;\n }\n\n /** @internal */\n public get tabLocation() {\n return this._tabLocation;\n }\n public set tabLocation(tabLocation: TabLocation | undefined) {\n this._tabLocation = tabLocation;\n }\n\n /** @internal */\n public get defaultTabLocation() {\n return this._defaultTabLocation;\n }\n\n /** @internal */\n public get defaultFloatingPosition() {\n return this._defaultFloatingPosition;\n }\n public set defaultFloatingPosition(position: PointProps | undefined) {\n this._defaultFloatingPosition = position;\n }\n\n /** @internal */\n public get defaultFloatingSize() {\n return this._defaultFloatingSize;\n }\n public set defaultFloatingSize(size: SizeProps | undefined) {\n this._defaultFloatingSize = size;\n }\n\n /** @internal */\n public get defaultState() {\n return this._defaultState;\n }\n\n /** @internal */\n public get popoutBounds() {\n return this._popoutBounds;\n }\n public set popoutBounds(bounds: Rectangle | undefined) {\n this._popoutBounds = bounds;\n }\n\n constructor() {\n WidgetDef._sId++;\n this._id = `Widget-${WidgetDef._sId}`;\n }\n\n /** @internal */\n public static create(\n config: WidgetConfig,\n type: WidgetType = WidgetType.Rectangular\n ) {\n const def = new WidgetDef();\n def.initializeFromConfig(config, type);\n return def;\n }\n\n private initializeFromConfig(config: WidgetConfig, type: WidgetType) {\n this._widgetType = type;\n this._initialConfig = config;\n this._id = config.id;\n\n if (config.label) this.setLabel(config.label);\n else if (config.labelKey)\n this._label = UiFramework.localization.getLocalizedString(\n config.labelKey\n );\n else if (type === WidgetType.ToolSettings) this.setLabel(\"Tool Settings\");\n\n this.setCanPopout(config.canPopout);\n\n const canFloat = config.canFloat;\n this._isFloatingStateSupported = !!canFloat;\n if (typeof canFloat === \"object\") {\n this.setFloatingContainerId(canFloat.containerId);\n this.defaultFloatingPosition = canFloat.defaultPosition;\n this._hideWithUiWhenFloating = !!canFloat.hideWithUi;\n this._isFloatingStateWindowResizable = !!canFloat.isResizable;\n this._defaultFloatingSize = canFloat.defaultSize;\n }\n\n if (\"allowedPanels\" in config) {\n this.allowedPanelTargets = config.allowedPanels;\n } else if (type === WidgetType.ToolSettings)\n this.allowedPanelTargets = [\n StagePanelLocation.Bottom,\n StagePanelLocation.Left,\n StagePanelLocation.Right,\n ];\n\n if (config.priority !== undefined) this._priority = config.priority;\n\n if (config.tooltip) this.setTooltip(config.tooltip);\n else if (config.tooltipKey)\n this._tooltip = UiFramework.localization.getLocalizedString(\n config.tooltipKey\n );\n\n if (config.defaultState !== undefined) {\n this._defaultState = config.defaultState;\n }\n\n this._widgetReactNode = config.content;\n this._icon = config.icon;\n\n // istanbul ignore next\n if (config.icon !== undefined && this._icon === undefined)\n this._icon = config.icon;\n\n if (config.badge !== undefined) this._badge = config.badge;\n\n this._preferredPanelSize = config.preferredPanelSize;\n }\n\n /** @alpha */\n public get preferredPanelSize() {\n return this._preferredPanelSize;\n }\n\n /** Get the label string */\n public get label(): string {\n return PropsHelper.getStringFromSpec(this._label);\n }\n\n /** Set the label.\n * @param v A string or a function to get the string.\n */\n public setLabel(v: string | ConditionalStringValue | StringGetter) {\n if (this._label === v) return;\n this._label = v;\n InternalFrontstageManager.onWidgetLabelChangedEvent.emit({\n widgetDef: this,\n });\n }\n\n /** Get the tooltip string */\n public get tooltip(): string {\n return PropsHelper.getStringFromSpec(this._tooltip);\n }\n\n /** Set the tooltip.\n * @param v A string or a function to get the string.\n */\n public setTooltip(v: string | ConditionalStringValue | StringGetter) {\n this._tooltip = v;\n }\n\n public get widgetControl(): WidgetControl | undefined {\n return this._widgetControl;\n }\n\n public getWidgetControl(\n type: ConfigurableUiControlType\n ): WidgetControl | undefined {\n if (!this._widgetControl && this.classId) {\n let usedClassId: string = \"\";\n\n if (typeof this.classId === \"string\") {\n // istanbul ignore else\n if (this.classId)\n this._widgetControl = UiFramework.controls.create(\n this.classId,\n this.id,\n this.applicationData\n ) as WidgetControl;\n usedClassId = this.classId;\n } else {\n const info = new ConfigurableCreateInfo(\n this.classId.name,\n this.id,\n this.id\n );\n usedClassId = this.classId.name;\n this._widgetControl = new this.classId(\n info,\n this.applicationData\n ) as WidgetControl;\n }\n\n // istanbul ignore else\n if (this._widgetControl) {\n if (this._widgetControl.getType() !== type) {\n throw new UiError(\n UiFramework.loggerCategory(this),\n `getWidgetControl: '${usedClassId}' is NOT a ${type}; it is a ${this._widgetControl.getType()}`\n );\n }\n\n this._widgetControl.widgetDef = this;\n this._widgetControl.initialize();\n }\n }\n\n // istanbul ignore next - To avoid breaking API changes, if a WidgetControl is not specified for a status bar use Default one.\n if (!this._widgetControl && this.isStatusBar) {\n const info = new ConfigurableCreateInfo(\n \"StatusBarWidgetComposerControl\",\n StatusBarWidgetComposerControl.controlId,\n StatusBarWidgetComposerControl.controlId\n );\n this._widgetControl = new StatusBarWidgetComposerControl(info, undefined);\n this._widgetControl.widgetDef = this;\n this._widgetControl.initialize();\n }\n\n return this._widgetControl;\n }\n\n public get reactNode(): React.ReactNode {\n if (!this._widgetReactNode) {\n const widgetControl = this.getWidgetControl(\n ConfigurableUiControlType.Widget\n );\n\n // istanbul ignore else\n if (widgetControl && widgetControl.reactNode)\n this._widgetReactNode = widgetControl.reactNode;\n }\n\n return this._widgetReactNode;\n }\n\n public set reactNode(node: React.ReactNode) {\n this._widgetReactNode = node;\n }\n\n public setWidgetState(newState: WidgetState): void {\n if (this.state === newState) return;\n this._stateChanged = true;\n UiFramework.frontstages.onWidgetStateChangedEvent.emit({\n widgetDef: this,\n widgetState: newState,\n });\n this.onWidgetStateChanged();\n }\n\n public setCanPopout(value: boolean | undefined) {\n this._canPopout = value;\n }\n\n public get canPopout(): boolean | undefined {\n return this._canPopout;\n }\n\n public setFloatingContainerId(value: string | undefined) {\n this._floatingContainerId = value;\n }\n\n public get floatingContainerId(): string | undefined {\n return this._floatingContainerId;\n }\n\n public canOpen(): boolean {\n return this.isFloating || this.isActive;\n }\n\n public get isVisible(): boolean {\n return WidgetState.Hidden !== this.state;\n }\n\n public get activeState(): WidgetState {\n return this.state;\n }\n\n public get isActive(): boolean {\n return WidgetState.Open === this.activeState;\n }\n\n public set hideWithUiWhenFloating(hide: boolean | undefined) {\n this._hideWithUiWhenFloating = !!hide;\n }\n\n public get hideWithUiWhenFloating(): boolean {\n return !!this._hideWithUiWhenFloating;\n }\n\n public get allowedPanelTargets():\n | ReadonlyArray<StagePanelLocation>\n | undefined {\n return this._allowedPanelTargets;\n }\n\n public set allowedPanelTargets(\n targets: ReadonlyArray<StagePanelLocation> | undefined\n ) {\n this._allowedPanelTargets =\n targets && targets?.length > 0 ? targets : undefined;\n }\n\n public onWidgetStateChanged(): void {\n this.widgetControl && this.widgetControl.onWidgetStateChanged();\n // istanbul ignore next\n this._onWidgetStateChanged && this._onWidgetStateChanged();\n }\n\n /** Overwrite to save transient DOM state (i.e. scroll offset). */\n public saveTransientState(): void {\n this.widgetControl && this.widgetControl.saveTransientState();\n this._saveTransientState && this._saveTransientState();\n }\n\n /** Overwrite to restore transient DOM state.\n * @note Return true if the state is restored or the Widget will remount.\n */\n public restoreTransientState(): boolean {\n let result = true;\n if (this.widgetControl || this._restoreTransientState) {\n let result1 = false,\n result2 = false;\n if (this.widgetControl)\n result1 = this.widgetControl.restoreTransientState();\n if (this._restoreTransientState) result2 = this._restoreTransientState();\n result = !(result1 || result2);\n }\n return result;\n }\n\n /** Opens the widget and makes it visible to the user.\n * I.e. opens the stage panel or brings the floating widget to front of the screen.\n * @public\n */\n public show() {\n InternalFrontstageManager.onWidgetShowEvent.emit({ widgetDef: this });\n }\n\n /** Opens the widget and expands it to fill full size of the stage panel.\n * @public\n */\n public expand() {\n InternalFrontstageManager.onWidgetExpandEvent.emit({ widgetDef: this });\n }\n}\n"]}
|
|
@@ -180,7 +180,9 @@
|
|
|
180
180
|
"isolateModels": "Isolate Models",
|
|
181
181
|
"emphasizeSelected": "Emphasize Selected",
|
|
182
182
|
"clearVisibility": "Clear Isolated, Hidden, and Emphasized Elements",
|
|
183
|
-
"
|
|
183
|
+
"noToolSettingsStart": "",
|
|
184
|
+
"noToolSettingsEnd": " does not have tool settings.",
|
|
185
|
+
"noToolSettingsPlaceholderName": "Active Tool",
|
|
184
186
|
"sectionTools": "Section Tools",
|
|
185
187
|
"sectionClear": "Clear Sections",
|
|
186
188
|
"sectionPanelLabel": "Section",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@itwin/appui-react",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.3.0",
|
|
4
4
|
"description": "UI framework",
|
|
5
5
|
"main": "lib/cjs/appui-react.js",
|
|
6
6
|
"module": "lib/esm/appui-react.js",
|
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
},
|
|
24
24
|
"peerDependencies": {
|
|
25
25
|
"@itwin/appui-abstract": "^3.7.0 || ^4.0.0",
|
|
26
|
-
"@itwin/appui-layout-react": "^4.
|
|
27
|
-
"@itwin/components-react": "^4.
|
|
26
|
+
"@itwin/appui-layout-react": "^4.3.0",
|
|
27
|
+
"@itwin/components-react": "^4.3.0",
|
|
28
28
|
"@itwin/core-bentley": "^3.7.0 || ^4.0.0",
|
|
29
29
|
"@itwin/core-common": "^3.7.0 || ^4.0.0",
|
|
30
30
|
"@itwin/core-frontend": "^3.7.0 || ^4.0.0",
|
|
31
31
|
"@itwin/core-geometry": "^3.7.0 || ^4.0.0",
|
|
32
32
|
"@itwin/core-quantity": "^3.7.0 || ^4.0.0",
|
|
33
|
-
"@itwin/core-react": "^4.
|
|
33
|
+
"@itwin/core-react": "^4.3.0",
|
|
34
34
|
"@itwin/core-telemetry": "^3.7.0 || ^4.0.0",
|
|
35
|
-
"@itwin/imodel-components-react": "^4.
|
|
35
|
+
"@itwin/imodel-components-react": "^4.3.0",
|
|
36
36
|
"react": "^17.0.0 || ^18.0.0",
|
|
37
37
|
"react-dom": "^17.0.0 || ^18.0.0",
|
|
38
38
|
"react-redux": "^7.2.2",
|
|
@@ -44,20 +44,20 @@
|
|
|
44
44
|
],
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@itwin/appui-abstract": "^3.7.0",
|
|
47
|
-
"@itwin/appui-layout-react": "4.
|
|
47
|
+
"@itwin/appui-layout-react": "4.3.0",
|
|
48
48
|
"@itwin/build-tools": "^3.7.0",
|
|
49
|
-
"@itwin/components-react": "4.
|
|
49
|
+
"@itwin/components-react": "4.3.0",
|
|
50
50
|
"@itwin/core-bentley": "^3.7.0",
|
|
51
51
|
"@itwin/core-common": "^3.7.0",
|
|
52
52
|
"@itwin/core-frontend": "^3.7.0",
|
|
53
53
|
"@itwin/core-geometry": "^3.7.0",
|
|
54
54
|
"@itwin/core-orbitgt": "^3.7.0",
|
|
55
55
|
"@itwin/core-quantity": "^3.7.0",
|
|
56
|
-
"@itwin/core-react": "4.
|
|
56
|
+
"@itwin/core-react": "4.3.0",
|
|
57
57
|
"@itwin/core-telemetry": "^3.7.0",
|
|
58
58
|
"@itwin/ecschema-metadata": "^3.7.0",
|
|
59
59
|
"@itwin/eslint-plugin": "^3.7.0",
|
|
60
|
-
"@itwin/imodel-components-react": "4.
|
|
60
|
+
"@itwin/imodel-components-react": "4.3.0",
|
|
61
61
|
"@itwin/webgl-compatibility": "^3.7.0",
|
|
62
62
|
"@testing-library/dom": "^8.11.2",
|
|
63
63
|
"@testing-library/react": "^12.0.0",
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
"@types/react-dom": "^17.0.0",
|
|
75
75
|
"@types/react-redux": "^7.1.18",
|
|
76
76
|
"@types/rimraf": "^2.0.2",
|
|
77
|
-
"@types/sinon": "^
|
|
77
|
+
"@types/sinon": "^10.0.15",
|
|
78
78
|
"@types/sinon-chai": "^3.2.0",
|
|
79
79
|
"chai": "^4.1.2",
|
|
80
80
|
"chai-as-promised": "^7",
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
"react-test-renderer": "^17.0.0",
|
|
96
96
|
"redux": "^4.1.0",
|
|
97
97
|
"rimraf": "^3.0.2",
|
|
98
|
-
"sinon": "^
|
|
98
|
+
"sinon": "^15.2.0",
|
|
99
99
|
"sinon-chai": "^3.2.0",
|
|
100
100
|
"ts-node": "^10.8.2",
|
|
101
101
|
"typemoq": "^2.1.0",
|
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
],
|
|
131
131
|
"check-coverage": true,
|
|
132
132
|
"statements": 90,
|
|
133
|
-
"branches":
|
|
133
|
+
"branches": 88,
|
|
134
134
|
"functions": 90,
|
|
135
135
|
"lines": 90
|
|
136
136
|
},
|