@itwin/appui-react 4.16.0 → 4.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -1
- package/lib/cjs/appui-react/hooks/useActiveViewport.d.ts.map +1 -1
- package/lib/cjs/appui-react/hooks/useActiveViewport.js +8 -7
- package/lib/cjs/appui-react/hooks/useActiveViewport.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useConditionalValue.d.ts.map +1 -1
- package/lib/cjs/appui-react/hooks/useConditionalValue.js +1 -1
- package/lib/cjs/appui-react/hooks/useConditionalValue.js.map +1 -1
- package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +2 -3
- package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
- package/lib/esm/appui-react/hooks/useActiveViewport.d.ts.map +1 -1
- package/lib/esm/appui-react/hooks/useActiveViewport.js +8 -7
- package/lib/esm/appui-react/hooks/useActiveViewport.js.map +1 -1
- package/lib/esm/appui-react/hooks/useConditionalValue.d.ts.map +1 -1
- package/lib/esm/appui-react/hooks/useConditionalValue.js +1 -1
- package/lib/esm/appui-react/hooks/useConditionalValue.js.map +1 -1
- package/lib/esm/appui-react/widgets/NavigationWidgetComposer.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +2 -3
- package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
# Change Log - @itwin/appui-react
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Fri, 16 Aug 2024 08:18:13 GMT and should not be manually modified.
|
|
4
|
+
|
|
5
|
+
## 4.16.1
|
|
6
|
+
Fri, 16 Aug 2024 08:18:13 GMT
|
|
7
|
+
|
|
8
|
+
### Updates
|
|
9
|
+
|
|
10
|
+
- Render default navigation aid only if content control is not used.
|
|
11
|
+
- Fix `useConditionalValue` to handle event ids as case insensitive.
|
|
12
|
+
- Fix `useActiveViewport` to correctly return the active viewport.
|
|
4
13
|
|
|
5
14
|
## 4.16.0
|
|
6
15
|
Wed, 07 Aug 2024 12:38:32 GMT
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useActiveViewport.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useActiveViewport.tsx"],"names":[],"mappings":"AAIA;;GAEG;
|
|
1
|
+
{"version":3,"file":"useActiveViewport.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useActiveViewport.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAc3D;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,SAAS,CAG9D"}
|
|
@@ -8,18 +8,19 @@
|
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.useActiveViewport = void 0;
|
|
11
|
-
const react_1 = require("react");
|
|
12
11
|
const core_frontend_1 = require("@itwin/core-frontend");
|
|
12
|
+
const shim_1 = require("use-sync-external-store/shim");
|
|
13
|
+
const subscribe = (onStoreChange) => {
|
|
14
|
+
return core_frontend_1.IModelApp.viewManager.onSelectedViewportChanged.addListener(onStoreChange);
|
|
15
|
+
};
|
|
16
|
+
const getSnapshot = () => {
|
|
17
|
+
return core_frontend_1.IModelApp.viewManager.selectedView;
|
|
18
|
+
};
|
|
13
19
|
/** React hook that maintains the active viewport.
|
|
14
20
|
* @public
|
|
15
21
|
*/
|
|
16
22
|
function useActiveViewport() {
|
|
17
|
-
const
|
|
18
|
-
(0, react_1.useEffect)(() => {
|
|
19
|
-
return core_frontend_1.IModelApp.viewManager.onSelectedViewportChanged.addListener((args) => {
|
|
20
|
-
setActiveViewport(args.current);
|
|
21
|
-
});
|
|
22
|
-
}, []);
|
|
23
|
+
const activeViewport = (0, shim_1.useSyncExternalStore)(subscribe, getSnapshot);
|
|
23
24
|
return activeViewport;
|
|
24
25
|
}
|
|
25
26
|
exports.useActiveViewport = useActiveViewport;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useActiveViewport.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useActiveViewport.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;
|
|
1
|
+
{"version":3,"file":"useActiveViewport.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useActiveViewport.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAGH,wDAAiD;AACjD,uDAAoE;AAEpE,MAAM,SAAS,GAAG,CAAC,aAAyB,EAAE,EAAE;IAC9C,OAAO,yBAAS,CAAC,WAAW,CAAC,yBAAyB,CAAC,WAAW,CAChE,aAAa,CACd,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,GAAG,EAAE;IACvB,OAAO,yBAAS,CAAC,WAAW,CAAC,YAAY,CAAC;AAC5C,CAAC,CAAC;AAEF;;GAEG;AACH,SAAgB,iBAAiB;IAC/B,MAAM,cAAc,GAAG,IAAA,2BAAoB,EAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACpE,OAAO,cAAc,CAAC;AACxB,CAAC;AAHD,8CAGC","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 Hooks\n */\n\nimport type { ScreenViewport } from \"@itwin/core-frontend\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport { useSyncExternalStore } from \"use-sync-external-store/shim\";\n\nconst subscribe = (onStoreChange: () => void) => {\n return IModelApp.viewManager.onSelectedViewportChanged.addListener(\n onStoreChange\n );\n};\n\nconst getSnapshot = () => {\n return IModelApp.viewManager.selectedView;\n};\n\n/** React hook that maintains the active viewport.\n * @public\n */\nexport function useActiveViewport(): ScreenViewport | undefined {\n const activeViewport = useSyncExternalStore(subscribe, getSnapshot);\n return activeViewport;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useConditionalValue.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useConditionalValue.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAKH;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"useConditionalValue.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useConditionalValue.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAKH;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,KA2B3E"}
|
|
@@ -26,7 +26,7 @@ function useConditionalValue(getValue, eventIds) {
|
|
|
26
26
|
}, [eventIds]);
|
|
27
27
|
React.useEffect(() => {
|
|
28
28
|
return SyncUiEventDispatcher_1.SyncUiEventDispatcher.onSyncUiEvent.addListener((args) => {
|
|
29
|
-
if (!
|
|
29
|
+
if (!SyncUiEventDispatcher_1.SyncUiEventDispatcher.hasEventOfInterest(args.eventIds, eventIdsRef.current))
|
|
30
30
|
return;
|
|
31
31
|
setValue(getValueRef.current());
|
|
32
32
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useConditionalValue.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useConditionalValue.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAC/B,2EAAwE;AAExE;;;GAGG;AACH,SAAgB,mBAAmB,CAAI,QAAiB,EAAE,QAAkB;IAC1E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE3D,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IACjC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IACjC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,6CAAqB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9D,
|
|
1
|
+
{"version":3,"file":"useConditionalValue.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useConditionalValue.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAC/B,2EAAwE;AAExE;;;GAGG;AACH,SAAgB,mBAAmB,CAAI,QAAiB,EAAE,QAAkB;IAC1E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE3D,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IACjC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IACjC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,6CAAqB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9D,IACE,CAAC,6CAAqB,CAAC,kBAAkB,CACvC,IAAI,CAAC,QAAQ,EACb,WAAW,CAAC,OAAO,CACpB;gBAED,OAAO;YACT,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,KAAK,CAAC;AACf,CAAC;AA3BD,kDA2BC","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 * as React from \"react\";\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\n\n/** Hook that allows to get a value that depends on some sync UI events.\n * @note This can be used as a replacement for a deprecated {@link @itwin/core-react#ConditionalIconItem}.\n * @alpha\n */\nexport function useConditionalValue<T>(getValue: () => T, eventIds: string[]) {\n const [value, setValue] = React.useState(() => getValue());\n\n const getValueRef = React.useRef(getValue);\n React.useEffect(() => {\n getValueRef.current = getValue;\n }, [getValue]);\n\n const eventIdsRef = React.useRef(eventIds);\n React.useEffect(() => {\n eventIdsRef.current = eventIds;\n }, [eventIds]);\n\n React.useEffect(() => {\n return SyncUiEventDispatcher.onSyncUiEvent.addListener((args) => {\n if (\n !SyncUiEventDispatcher.hasEventOfInterest(\n args.eventIds,\n eventIdsRef.current\n )\n )\n return;\n setValue(getValueRef.current());\n });\n }, []);\n\n return value;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationWidgetComposer.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/widgets/NavigationWidgetComposer.tsx"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAgDrD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,
|
|
1
|
+
{"version":3,"file":"NavigationWidgetComposer.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/widgets/NavigationWidgetComposer.tsx"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAgDrD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,qBA0G9D;AA8BD;;GAEG;AAEH,MAAM,WAAW,6BAA8B,SAAQ,WAAW;IAChE,kCAAkC;IAClC,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACpC,gCAAgC;IAChC,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACpC,oEAAoE;IACpE,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,qBAwC5E"}
|
|
@@ -105,7 +105,7 @@ function NavigationAidHost(props) {
|
|
|
105
105
|
const navigationAidOpacity = 0.3 * proximityScale + 0.7;
|
|
106
106
|
divStyle.opacity = `${navigationAidOpacity}`;
|
|
107
107
|
}
|
|
108
|
-
const navigationAid = navigationAidControl?.reactNode
|
|
108
|
+
const navigationAid = activeContentControl ? (navigationAidControl?.reactNode) : (React.createElement(DefaultNavigationAid, null));
|
|
109
109
|
return (React.createElement("div", { style: divStyle, ref: ref }, navigationAid));
|
|
110
110
|
}
|
|
111
111
|
exports.NavigationAidHost = NavigationAidHost;
|
|
@@ -139,8 +139,7 @@ function NavigationWidgetComposer(props) {
|
|
|
139
139
|
const proximityScale = (0, core_react_1.useProximityToMouse)(elementSet, UiFramework_1.UiFramework.visibility.snapWidgetOpacity);
|
|
140
140
|
const navigationAid = hideNavigationAid
|
|
141
141
|
? undefined
|
|
142
|
-
:
|
|
143
|
-
navigationAidHost ?? React.createElement(NavigationAidHost, null);
|
|
142
|
+
: navigationAidHost ?? React.createElement(NavigationAidHost, null);
|
|
144
143
|
return (React.createElement(core_react_1.WidgetOpacityContext.Provider, { value: {
|
|
145
144
|
onElementRef: handleChildRef,
|
|
146
145
|
proximityScale,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationWidgetComposer.js","sourceRoot":"","sources":["../../../../src/appui-react/widgets/NavigationWidgetComposer.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 { ProcessDetector } from \"@itwin/core-bentley\";\nimport {\n DrawingViewState,\n OrthographicViewState,\n type ScreenViewport,\n SheetViewState,\n SpatialViewState,\n} from \"@itwin/core-frontend\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport {\n useProximityToMouse,\n useWidgetOpacityContext,\n WidgetElementSet,\n WidgetOpacityContext,\n} from \"@itwin/core-react\";\nimport {\n CubeNavigationAid,\n DrawingNavigationAid,\n ViewportComponentEvents,\n} from \"@itwin/imodel-components-react\";\nimport type { ContentControl } from \"../content/ContentControl\";\nimport { NavigationArea } from \"../layout/widget/NavigationArea\";\nimport type { NavigationAidControl } from \"../navigationaids/NavigationAidControl\";\nimport { UiFramework } from \"../UiFramework\";\nimport { useActiveViewport } from \"../hooks/useActiveViewport\";\nimport { ViewUtilities } from \"../utils/ViewUtilities\";\nimport { SheetNavigationAid } from \"../navigationaids/SheetNavigationAid\";\n\nfunction createNavigationAidControl(\n // eslint-disable-next-line deprecation/deprecation\n activeContentControl: ContentControl | undefined,\n navigationAidId: string,\n activeViewport: ScreenViewport | undefined\n // eslint-disable-next-line deprecation/deprecation\n): NavigationAidControl | undefined {\n if (\n !activeContentControl ||\n !navigationAidId ||\n activeViewport !== activeContentControl.viewport\n )\n return undefined;\n\n const viewport = activeContentControl.viewport;\n const imodel = viewport ? viewport.iModel : UiFramework.getIModelConnection();\n // eslint-disable-next-line deprecation/deprecation\n const navigationAidControl = UiFramework.controls.create(\n navigationAidId,\n navigationAidId,\n { imodel, viewport }\n // eslint-disable-next-line deprecation/deprecation\n ) as NavigationAidControl;\n\n navigationAidControl.initialize();\n return navigationAidControl;\n}\n\n/** Properties for the [[NavigationAidHost]] React component\n * @public\n */\nexport interface NavigationAidHostProps {\n /** Navigation Aid Host minimum width. Defaults to \"64px\". */\n minWidth?: string;\n /** Navigation Aid Host minimum height. Defaults to \"64px\". */\n minHeight?: string;\n}\n\n/** Component that is used as a default navigation aid.\n * Uses registered navigation aids and the active content control to determine if or which navigation aid to display.\n * If an active content is defined without a content control (`classId` is set to an empty string) renders a default navigation aid based on an active viewport view state.\n * @public\n */\nexport function NavigationAidHost(props: NavigationAidHostProps) {\n const [activeContentControl, setActiveContentControl] = React.useState(() =>\n // eslint-disable-next-line deprecation/deprecation\n UiFramework.content.getActiveContentControl()\n );\n const [activeContentViewport, setActiveContentViewport] = React.useState(\n () => activeContentControl?.viewport\n );\n const [navigationAidId, setNavigationAidId] = React.useState(() =>\n activeContentControl ? activeContentControl.navigationAidControl : \"\"\n );\n\n React.useEffect(() => {\n // eslint-disable-next-line deprecation/deprecation\n return UiFramework.frontstages.onContentControlActivatedEvent.addListener(\n (args) => {\n setActiveContentControl(args.activeContentControl);\n setActiveContentViewport(args.activeContentControl.viewport);\n setNavigationAidId(args.activeContentControl.navigationAidControl);\n }\n );\n }, []);\n React.useEffect(() => {\n return UiFramework.content.onActiveContentChangedEvent.addListener(\n (args) => {\n args.id;\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n if (!frontstageDef) return;\n\n const contentGroup = frontstageDef.contentGroup;\n if (!contentGroup) return;\n\n const content = contentGroup.contentPropsList.find(\n (contentProps) => contentProps.id === args.id\n );\n if (!content?.content) return;\n\n // Content w/o a control is activated - reset the navigation.\n setActiveContentControl(undefined);\n setActiveContentViewport(undefined);\n setNavigationAidId(\"\");\n }\n );\n }, []);\n\n const [activeViewClass, setActiveViewClass] = React.useState(() => {\n // eslint-disable-next-line deprecation/deprecation\n const content = UiFramework.content.getActiveContentControl();\n if (content && content.viewport) return content.viewport.view.classFullName;\n return \"\";\n });\n\n React.useEffect(() => {\n return ViewportComponentEvents.onViewClassFullNameChangedEvent.addListener(\n (args) => {\n setActiveViewClass(args.newName);\n }\n );\n }, [activeViewClass]);\n\n const navigationAidControl = React.useMemo(\n () =>\n createNavigationAidControl(\n activeContentControl,\n navigationAidId,\n activeContentViewport\n ),\n [activeContentControl, navigationAidId, activeContentViewport]\n );\n\n const ref = React.useRef<HTMLDivElement>(null);\n\n const isInitialMount = React.useRef(true);\n const { onElementRef, proximityScale } = useWidgetOpacityContext();\n\n React.useEffect(() => {\n if (isInitialMount.current) {\n isInitialMount.current = false;\n onElementRef(ref);\n }\n }, [onElementRef]);\n\n const divStyle: React.CSSProperties = {\n minWidth: props.minWidth ? props.minWidth : \"64px\",\n minHeight: props.minHeight ? props.minHeight : \"64px\",\n };\n\n if (\n (UiFramework.visibility.useProximityOpacity || // eslint-disable-line deprecation/deprecation\n UiFramework.visibility.snapWidgetOpacity) &&\n !ProcessDetector.isMobileBrowser\n ) {\n const navigationAidOpacity = 0.3 * proximityScale + 0.7;\n divStyle.opacity = `${navigationAidOpacity}`;\n }\n\n const navigationAid = navigationAidControl?.reactNode ?? (\n <DefaultNavigationAid />\n );\n return (\n <div style={divStyle} ref={ref}>\n {navigationAid}\n </div>\n );\n}\n\nfunction DefaultNavigationAid() {\n const viewport = useActiveViewport();\n if (!viewport) return null;\n\n const className = ViewUtilities.getBisBaseClass(viewport.view.classFullName);\n switch (className) {\n case SheetViewState.className:\n return <SheetNavigationAid iModelConnection={viewport.iModel} />;\n case DrawingViewState.className:\n return (\n <DrawingNavigationAid\n iModelConnection={viewport.iModel}\n viewport={viewport}\n />\n );\n case SpatialViewState.className:\n case OrthographicViewState.className:\n return (\n <CubeNavigationAid\n iModelConnection={viewport.iModel}\n viewport={viewport}\n />\n );\n }\n\n return null;\n}\n\n/** Properties for the [[NavigationWidgetComposer]] React components\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport interface NavigationWidgetComposerProps extends CommonProps {\n /** Optional horizontal toolbar */\n horizontalToolbar?: React.ReactNode;\n /** Optional vertical toolbar */\n verticalToolbar?: React.ReactNode;\n /** Optional navigation aid to override the default {@link NavigationAidHost}. */\n navigationAidHost?: React.ReactNode;\n /** If true no navigation aid will be shown. Defaults to `false`. */\n hideNavigationAid?: boolean;\n}\n\n/**\n * Component that Composes a NavigationWidget typically using toolbars generated via [[ToolbarComposer]] class. The Navigation widget is shown in the top right of the content area\n * and typically holds tools to visually navigate, orient, and zoom to specific content.\n * @public\n */\nexport function NavigationWidgetComposer(props: NavigationWidgetComposerProps) {\n const {\n navigationAidHost,\n horizontalToolbar,\n verticalToolbar,\n hideNavigationAid,\n ...otherProps\n } = props;\n const [elementSet] = React.useState(new WidgetElementSet());\n const handleChildRef = React.useCallback(\n (elementRef: React.RefObject<Element>) => {\n elementSet.add(elementRef);\n },\n [elementSet]\n );\n const proximityScale = useProximityToMouse(\n elementSet,\n UiFramework.visibility.snapWidgetOpacity\n );\n\n const navigationAid = hideNavigationAid\n ? undefined\n : // eslint-disable-next-line deprecation/deprecation\n navigationAidHost ?? <NavigationAidHost />;\n\n return (\n <WidgetOpacityContext.Provider\n value={{\n onElementRef: handleChildRef,\n proximityScale,\n }}\n >\n <NavigationArea\n navigationAid={navigationAid}\n horizontalToolbar={horizontalToolbar}\n verticalToolbar={verticalToolbar}\n {...otherProps}\n onMouseEnter={UiFramework.visibility.handleWidgetMouseEnter}\n />\n </WidgetOpacityContext.Provider>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"NavigationWidgetComposer.js","sourceRoot":"","sources":["../../../../src/appui-react/widgets/NavigationWidgetComposer.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 { ProcessDetector } from \"@itwin/core-bentley\";\nimport {\n DrawingViewState,\n OrthographicViewState,\n type ScreenViewport,\n SheetViewState,\n SpatialViewState,\n} from \"@itwin/core-frontend\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport {\n useProximityToMouse,\n useWidgetOpacityContext,\n WidgetElementSet,\n WidgetOpacityContext,\n} from \"@itwin/core-react\";\nimport {\n CubeNavigationAid,\n DrawingNavigationAid,\n ViewportComponentEvents,\n} from \"@itwin/imodel-components-react\";\nimport type { ContentControl } from \"../content/ContentControl\";\nimport { NavigationArea } from \"../layout/widget/NavigationArea\";\nimport type { NavigationAidControl } from \"../navigationaids/NavigationAidControl\";\nimport { UiFramework } from \"../UiFramework\";\nimport { useActiveViewport } from \"../hooks/useActiveViewport\";\nimport { ViewUtilities } from \"../utils/ViewUtilities\";\nimport { SheetNavigationAid } from \"../navigationaids/SheetNavigationAid\";\n\nfunction createNavigationAidControl(\n // eslint-disable-next-line deprecation/deprecation\n activeContentControl: ContentControl | undefined,\n navigationAidId: string,\n activeViewport: ScreenViewport | undefined\n // eslint-disable-next-line deprecation/deprecation\n): NavigationAidControl | undefined {\n if (\n !activeContentControl ||\n !navigationAidId ||\n activeViewport !== activeContentControl.viewport\n )\n return undefined;\n\n const viewport = activeContentControl.viewport;\n const imodel = viewport ? viewport.iModel : UiFramework.getIModelConnection();\n // eslint-disable-next-line deprecation/deprecation\n const navigationAidControl = UiFramework.controls.create(\n navigationAidId,\n navigationAidId,\n { imodel, viewport }\n // eslint-disable-next-line deprecation/deprecation\n ) as NavigationAidControl;\n\n navigationAidControl.initialize();\n return navigationAidControl;\n}\n\n/** Properties for the [[NavigationAidHost]] React component\n * @public\n */\nexport interface NavigationAidHostProps {\n /** Navigation Aid Host minimum width. Defaults to \"64px\". */\n minWidth?: string;\n /** Navigation Aid Host minimum height. Defaults to \"64px\". */\n minHeight?: string;\n}\n\n/** Component that is used as a default navigation aid.\n * Uses registered navigation aids and the active content control to determine if or which navigation aid to display.\n * If an active content is defined without a content control (`classId` is set to an empty string) renders a default navigation aid based on an active viewport view state.\n * @public\n */\nexport function NavigationAidHost(props: NavigationAidHostProps) {\n const [activeContentControl, setActiveContentControl] = React.useState(() =>\n // eslint-disable-next-line deprecation/deprecation\n UiFramework.content.getActiveContentControl()\n );\n const [activeContentViewport, setActiveContentViewport] = React.useState(\n () => activeContentControl?.viewport\n );\n const [navigationAidId, setNavigationAidId] = React.useState(() =>\n activeContentControl ? activeContentControl.navigationAidControl : \"\"\n );\n\n React.useEffect(() => {\n // eslint-disable-next-line deprecation/deprecation\n return UiFramework.frontstages.onContentControlActivatedEvent.addListener(\n (args) => {\n setActiveContentControl(args.activeContentControl);\n setActiveContentViewport(args.activeContentControl.viewport);\n setNavigationAidId(args.activeContentControl.navigationAidControl);\n }\n );\n }, []);\n React.useEffect(() => {\n return UiFramework.content.onActiveContentChangedEvent.addListener(\n (args) => {\n args.id;\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n if (!frontstageDef) return;\n\n const contentGroup = frontstageDef.contentGroup;\n if (!contentGroup) return;\n\n const content = contentGroup.contentPropsList.find(\n (contentProps) => contentProps.id === args.id\n );\n if (!content?.content) return;\n\n // Content w/o a control is activated - reset the navigation.\n setActiveContentControl(undefined);\n setActiveContentViewport(undefined);\n setNavigationAidId(\"\");\n }\n );\n }, []);\n\n const [activeViewClass, setActiveViewClass] = React.useState(() => {\n // eslint-disable-next-line deprecation/deprecation\n const content = UiFramework.content.getActiveContentControl();\n if (content && content.viewport) return content.viewport.view.classFullName;\n return \"\";\n });\n\n React.useEffect(() => {\n return ViewportComponentEvents.onViewClassFullNameChangedEvent.addListener(\n (args) => {\n setActiveViewClass(args.newName);\n }\n );\n }, [activeViewClass]);\n\n const navigationAidControl = React.useMemo(\n () =>\n createNavigationAidControl(\n activeContentControl,\n navigationAidId,\n activeContentViewport\n ),\n [activeContentControl, navigationAidId, activeContentViewport]\n );\n\n const ref = React.useRef<HTMLDivElement>(null);\n\n const isInitialMount = React.useRef(true);\n const { onElementRef, proximityScale } = useWidgetOpacityContext();\n\n React.useEffect(() => {\n if (isInitialMount.current) {\n isInitialMount.current = false;\n onElementRef(ref);\n }\n }, [onElementRef]);\n\n const divStyle: React.CSSProperties = {\n minWidth: props.minWidth ? props.minWidth : \"64px\",\n minHeight: props.minHeight ? props.minHeight : \"64px\",\n };\n\n if (\n (UiFramework.visibility.useProximityOpacity || // eslint-disable-line deprecation/deprecation\n UiFramework.visibility.snapWidgetOpacity) &&\n !ProcessDetector.isMobileBrowser\n ) {\n const navigationAidOpacity = 0.3 * proximityScale + 0.7;\n divStyle.opacity = `${navigationAidOpacity}`;\n }\n\n const navigationAid = activeContentControl ? (\n navigationAidControl?.reactNode\n ) : (\n <DefaultNavigationAid />\n );\n return (\n <div style={divStyle} ref={ref}>\n {navigationAid}\n </div>\n );\n}\n\nfunction DefaultNavigationAid() {\n const viewport = useActiveViewport();\n if (!viewport) return null;\n\n const className = ViewUtilities.getBisBaseClass(viewport.view.classFullName);\n switch (className) {\n case SheetViewState.className:\n return <SheetNavigationAid iModelConnection={viewport.iModel} />;\n case DrawingViewState.className:\n return (\n <DrawingNavigationAid\n iModelConnection={viewport.iModel}\n viewport={viewport}\n />\n );\n case SpatialViewState.className:\n case OrthographicViewState.className:\n return (\n <CubeNavigationAid\n iModelConnection={viewport.iModel}\n viewport={viewport}\n />\n );\n }\n\n return null;\n}\n\n/** Properties for the [[NavigationWidgetComposer]] React components\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport interface NavigationWidgetComposerProps extends CommonProps {\n /** Optional horizontal toolbar */\n horizontalToolbar?: React.ReactNode;\n /** Optional vertical toolbar */\n verticalToolbar?: React.ReactNode;\n /** Optional navigation aid to override the default {@link NavigationAidHost}. */\n navigationAidHost?: React.ReactNode;\n /** If true no navigation aid will be shown. Defaults to `false`. */\n hideNavigationAid?: boolean;\n}\n\n/**\n * Component that Composes a NavigationWidget typically using toolbars generated via [[ToolbarComposer]] class. The Navigation widget is shown in the top right of the content area\n * and typically holds tools to visually navigate, orient, and zoom to specific content.\n * @public\n */\nexport function NavigationWidgetComposer(props: NavigationWidgetComposerProps) {\n const {\n navigationAidHost,\n horizontalToolbar,\n verticalToolbar,\n hideNavigationAid,\n ...otherProps\n } = props;\n const [elementSet] = React.useState(new WidgetElementSet());\n const handleChildRef = React.useCallback(\n (elementRef: React.RefObject<Element>) => {\n elementSet.add(elementRef);\n },\n [elementSet]\n );\n const proximityScale = useProximityToMouse(\n elementSet,\n UiFramework.visibility.snapWidgetOpacity\n );\n\n const navigationAid = hideNavigationAid\n ? undefined\n : navigationAidHost ?? <NavigationAidHost />;\n\n return (\n <WidgetOpacityContext.Provider\n value={{\n onElementRef: handleChildRef,\n proximityScale,\n }}\n >\n <NavigationArea\n navigationAid={navigationAid}\n horizontalToolbar={horizontalToolbar}\n verticalToolbar={verticalToolbar}\n {...otherProps}\n onMouseEnter={UiFramework.visibility.handleWidgetMouseEnter}\n />\n </WidgetOpacityContext.Provider>\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useActiveViewport.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useActiveViewport.tsx"],"names":[],"mappings":"AAIA;;GAEG;
|
|
1
|
+
{"version":3,"file":"useActiveViewport.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useActiveViewport.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAc3D;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,SAAS,CAG9D"}
|
|
@@ -5,18 +5,19 @@
|
|
|
5
5
|
/** @packageDocumentation
|
|
6
6
|
* @module Hooks
|
|
7
7
|
*/
|
|
8
|
-
import { useEffect, useState } from "react";
|
|
9
8
|
import { IModelApp } from "@itwin/core-frontend";
|
|
9
|
+
import { useSyncExternalStore } from "use-sync-external-store/shim";
|
|
10
|
+
const subscribe = (onStoreChange) => {
|
|
11
|
+
return IModelApp.viewManager.onSelectedViewportChanged.addListener(onStoreChange);
|
|
12
|
+
};
|
|
13
|
+
const getSnapshot = () => {
|
|
14
|
+
return IModelApp.viewManager.selectedView;
|
|
15
|
+
};
|
|
10
16
|
/** React hook that maintains the active viewport.
|
|
11
17
|
* @public
|
|
12
18
|
*/
|
|
13
19
|
export function useActiveViewport() {
|
|
14
|
-
const
|
|
15
|
-
useEffect(() => {
|
|
16
|
-
return IModelApp.viewManager.onSelectedViewportChanged.addListener((args) => {
|
|
17
|
-
setActiveViewport(args.current);
|
|
18
|
-
});
|
|
19
|
-
}, []);
|
|
20
|
+
const activeViewport = useSyncExternalStore(subscribe, getSnapshot);
|
|
20
21
|
return activeViewport;
|
|
21
22
|
}
|
|
22
23
|
//# sourceMappingURL=useActiveViewport.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useActiveViewport.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useActiveViewport.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;
|
|
1
|
+
{"version":3,"file":"useActiveViewport.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useActiveViewport.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,MAAM,SAAS,GAAG,CAAC,aAAyB,EAAE,EAAE;IAC9C,OAAO,SAAS,CAAC,WAAW,CAAC,yBAAyB,CAAC,WAAW,CAChE,aAAa,CACd,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,GAAG,EAAE;IACvB,OAAO,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC;AAC5C,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,cAAc,GAAG,oBAAoB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACpE,OAAO,cAAc,CAAC;AACxB,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Hooks\n */\n\nimport type { ScreenViewport } from \"@itwin/core-frontend\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport { useSyncExternalStore } from \"use-sync-external-store/shim\";\n\nconst subscribe = (onStoreChange: () => void) => {\n return IModelApp.viewManager.onSelectedViewportChanged.addListener(\n onStoreChange\n );\n};\n\nconst getSnapshot = () => {\n return IModelApp.viewManager.selectedView;\n};\n\n/** React hook that maintains the active viewport.\n * @public\n */\nexport function useActiveViewport(): ScreenViewport | undefined {\n const activeViewport = useSyncExternalStore(subscribe, getSnapshot);\n return activeViewport;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useConditionalValue.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useConditionalValue.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAKH;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"useConditionalValue.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useConditionalValue.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAKH;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,KA2B3E"}
|
|
@@ -23,7 +23,7 @@ export function useConditionalValue(getValue, eventIds) {
|
|
|
23
23
|
}, [eventIds]);
|
|
24
24
|
React.useEffect(() => {
|
|
25
25
|
return SyncUiEventDispatcher.onSyncUiEvent.addListener((args) => {
|
|
26
|
-
if (!
|
|
26
|
+
if (!SyncUiEventDispatcher.hasEventOfInterest(args.eventIds, eventIdsRef.current))
|
|
27
27
|
return;
|
|
28
28
|
setValue(getValueRef.current());
|
|
29
29
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useConditionalValue.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useConditionalValue.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAI,QAAiB,EAAE,QAAkB;IAC1E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE3D,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IACjC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IACjC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,qBAAqB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9D,
|
|
1
|
+
{"version":3,"file":"useConditionalValue.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useConditionalValue.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAI,QAAiB,EAAE,QAAkB;IAC1E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE3D,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IACjC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IACjC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,qBAAqB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9D,IACE,CAAC,qBAAqB,CAAC,kBAAkB,CACvC,IAAI,CAAC,QAAQ,EACb,WAAW,CAAC,OAAO,CACpB;gBAED,OAAO;YACT,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utilities\n */\n\nimport * as React from \"react\";\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\n\n/** Hook that allows to get a value that depends on some sync UI events.\n * @note This can be used as a replacement for a deprecated {@link @itwin/core-react#ConditionalIconItem}.\n * @alpha\n */\nexport function useConditionalValue<T>(getValue: () => T, eventIds: string[]) {\n const [value, setValue] = React.useState(() => getValue());\n\n const getValueRef = React.useRef(getValue);\n React.useEffect(() => {\n getValueRef.current = getValue;\n }, [getValue]);\n\n const eventIdsRef = React.useRef(eventIds);\n React.useEffect(() => {\n eventIdsRef.current = eventIds;\n }, [eventIds]);\n\n React.useEffect(() => {\n return SyncUiEventDispatcher.onSyncUiEvent.addListener((args) => {\n if (\n !SyncUiEventDispatcher.hasEventOfInterest(\n args.eventIds,\n eventIdsRef.current\n )\n )\n return;\n setValue(getValueRef.current());\n });\n }, []);\n\n return value;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationWidgetComposer.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/widgets/NavigationWidgetComposer.tsx"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAgDrD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,
|
|
1
|
+
{"version":3,"file":"NavigationWidgetComposer.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/widgets/NavigationWidgetComposer.tsx"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAgDrD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,qBA0G9D;AA8BD;;GAEG;AAEH,MAAM,WAAW,6BAA8B,SAAQ,WAAW;IAChE,kCAAkC;IAClC,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACpC,gCAAgC;IAChC,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACpC,oEAAoE;IACpE,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,qBAwC5E"}
|
|
@@ -102,7 +102,7 @@ export function NavigationAidHost(props) {
|
|
|
102
102
|
const navigationAidOpacity = 0.3 * proximityScale + 0.7;
|
|
103
103
|
divStyle.opacity = `${navigationAidOpacity}`;
|
|
104
104
|
}
|
|
105
|
-
const navigationAid = navigationAidControl?.reactNode
|
|
105
|
+
const navigationAid = activeContentControl ? (navigationAidControl?.reactNode) : (React.createElement(DefaultNavigationAid, null));
|
|
106
106
|
return (React.createElement("div", { style: divStyle, ref: ref }, navigationAid));
|
|
107
107
|
}
|
|
108
108
|
function DefaultNavigationAid() {
|
|
@@ -135,8 +135,7 @@ export function NavigationWidgetComposer(props) {
|
|
|
135
135
|
const proximityScale = useProximityToMouse(elementSet, UiFramework.visibility.snapWidgetOpacity);
|
|
136
136
|
const navigationAid = hideNavigationAid
|
|
137
137
|
? undefined
|
|
138
|
-
:
|
|
139
|
-
navigationAidHost ?? React.createElement(NavigationAidHost, null);
|
|
138
|
+
: navigationAidHost ?? React.createElement(NavigationAidHost, null);
|
|
140
139
|
return (React.createElement(WidgetOpacityContext.Provider, { value: {
|
|
141
140
|
onElementRef: handleChildRef,
|
|
142
141
|
proximityScale,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationWidgetComposer.js","sourceRoot":"","sources":["../../../../src/appui-react/widgets/NavigationWidgetComposer.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 { ProcessDetector } from \"@itwin/core-bentley\";\nimport {\n DrawingViewState,\n OrthographicViewState,\n type ScreenViewport,\n SheetViewState,\n SpatialViewState,\n} from \"@itwin/core-frontend\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport {\n useProximityToMouse,\n useWidgetOpacityContext,\n WidgetElementSet,\n WidgetOpacityContext,\n} from \"@itwin/core-react\";\nimport {\n CubeNavigationAid,\n DrawingNavigationAid,\n ViewportComponentEvents,\n} from \"@itwin/imodel-components-react\";\nimport type { ContentControl } from \"../content/ContentControl\";\nimport { NavigationArea } from \"../layout/widget/NavigationArea\";\nimport type { NavigationAidControl } from \"../navigationaids/NavigationAidControl\";\nimport { UiFramework } from \"../UiFramework\";\nimport { useActiveViewport } from \"../hooks/useActiveViewport\";\nimport { ViewUtilities } from \"../utils/ViewUtilities\";\nimport { SheetNavigationAid } from \"../navigationaids/SheetNavigationAid\";\n\nfunction createNavigationAidControl(\n // eslint-disable-next-line deprecation/deprecation\n activeContentControl: ContentControl | undefined,\n navigationAidId: string,\n activeViewport: ScreenViewport | undefined\n // eslint-disable-next-line deprecation/deprecation\n): NavigationAidControl | undefined {\n if (\n !activeContentControl ||\n !navigationAidId ||\n activeViewport !== activeContentControl.viewport\n )\n return undefined;\n\n const viewport = activeContentControl.viewport;\n const imodel = viewport ? viewport.iModel : UiFramework.getIModelConnection();\n // eslint-disable-next-line deprecation/deprecation\n const navigationAidControl = UiFramework.controls.create(\n navigationAidId,\n navigationAidId,\n { imodel, viewport }\n // eslint-disable-next-line deprecation/deprecation\n ) as NavigationAidControl;\n\n navigationAidControl.initialize();\n return navigationAidControl;\n}\n\n/** Properties for the [[NavigationAidHost]] React component\n * @public\n */\nexport interface NavigationAidHostProps {\n /** Navigation Aid Host minimum width. Defaults to \"64px\". */\n minWidth?: string;\n /** Navigation Aid Host minimum height. Defaults to \"64px\". */\n minHeight?: string;\n}\n\n/** Component that is used as a default navigation aid.\n * Uses registered navigation aids and the active content control to determine if or which navigation aid to display.\n * If an active content is defined without a content control (`classId` is set to an empty string) renders a default navigation aid based on an active viewport view state.\n * @public\n */\nexport function NavigationAidHost(props: NavigationAidHostProps) {\n const [activeContentControl, setActiveContentControl] = React.useState(() =>\n // eslint-disable-next-line deprecation/deprecation\n UiFramework.content.getActiveContentControl()\n );\n const [activeContentViewport, setActiveContentViewport] = React.useState(\n () => activeContentControl?.viewport\n );\n const [navigationAidId, setNavigationAidId] = React.useState(() =>\n activeContentControl ? activeContentControl.navigationAidControl : \"\"\n );\n\n React.useEffect(() => {\n // eslint-disable-next-line deprecation/deprecation\n return UiFramework.frontstages.onContentControlActivatedEvent.addListener(\n (args) => {\n setActiveContentControl(args.activeContentControl);\n setActiveContentViewport(args.activeContentControl.viewport);\n setNavigationAidId(args.activeContentControl.navigationAidControl);\n }\n );\n }, []);\n React.useEffect(() => {\n return UiFramework.content.onActiveContentChangedEvent.addListener(\n (args) => {\n args.id;\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n if (!frontstageDef) return;\n\n const contentGroup = frontstageDef.contentGroup;\n if (!contentGroup) return;\n\n const content = contentGroup.contentPropsList.find(\n (contentProps) => contentProps.id === args.id\n );\n if (!content?.content) return;\n\n // Content w/o a control is activated - reset the navigation.\n setActiveContentControl(undefined);\n setActiveContentViewport(undefined);\n setNavigationAidId(\"\");\n }\n );\n }, []);\n\n const [activeViewClass, setActiveViewClass] = React.useState(() => {\n // eslint-disable-next-line deprecation/deprecation\n const content = UiFramework.content.getActiveContentControl();\n if (content && content.viewport) return content.viewport.view.classFullName;\n return \"\";\n });\n\n React.useEffect(() => {\n return ViewportComponentEvents.onViewClassFullNameChangedEvent.addListener(\n (args) => {\n setActiveViewClass(args.newName);\n }\n );\n }, [activeViewClass]);\n\n const navigationAidControl = React.useMemo(\n () =>\n createNavigationAidControl(\n activeContentControl,\n navigationAidId,\n activeContentViewport\n ),\n [activeContentControl, navigationAidId, activeContentViewport]\n );\n\n const ref = React.useRef<HTMLDivElement>(null);\n\n const isInitialMount = React.useRef(true);\n const { onElementRef, proximityScale } = useWidgetOpacityContext();\n\n React.useEffect(() => {\n if (isInitialMount.current) {\n isInitialMount.current = false;\n onElementRef(ref);\n }\n }, [onElementRef]);\n\n const divStyle: React.CSSProperties = {\n minWidth: props.minWidth ? props.minWidth : \"64px\",\n minHeight: props.minHeight ? props.minHeight : \"64px\",\n };\n\n if (\n (UiFramework.visibility.useProximityOpacity || // eslint-disable-line deprecation/deprecation\n UiFramework.visibility.snapWidgetOpacity) &&\n !ProcessDetector.isMobileBrowser\n ) {\n const navigationAidOpacity = 0.3 * proximityScale + 0.7;\n divStyle.opacity = `${navigationAidOpacity}`;\n }\n\n const navigationAid = navigationAidControl?.reactNode ?? (\n <DefaultNavigationAid />\n );\n return (\n <div style={divStyle} ref={ref}>\n {navigationAid}\n </div>\n );\n}\n\nfunction DefaultNavigationAid() {\n const viewport = useActiveViewport();\n if (!viewport) return null;\n\n const className = ViewUtilities.getBisBaseClass(viewport.view.classFullName);\n switch (className) {\n case SheetViewState.className:\n return <SheetNavigationAid iModelConnection={viewport.iModel} />;\n case DrawingViewState.className:\n return (\n <DrawingNavigationAid\n iModelConnection={viewport.iModel}\n viewport={viewport}\n />\n );\n case SpatialViewState.className:\n case OrthographicViewState.className:\n return (\n <CubeNavigationAid\n iModelConnection={viewport.iModel}\n viewport={viewport}\n />\n );\n }\n\n return null;\n}\n\n/** Properties for the [[NavigationWidgetComposer]] React components\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport interface NavigationWidgetComposerProps extends CommonProps {\n /** Optional horizontal toolbar */\n horizontalToolbar?: React.ReactNode;\n /** Optional vertical toolbar */\n verticalToolbar?: React.ReactNode;\n /** Optional navigation aid to override the default {@link NavigationAidHost}. */\n navigationAidHost?: React.ReactNode;\n /** If true no navigation aid will be shown. Defaults to `false`. */\n hideNavigationAid?: boolean;\n}\n\n/**\n * Component that Composes a NavigationWidget typically using toolbars generated via [[ToolbarComposer]] class. The Navigation widget is shown in the top right of the content area\n * and typically holds tools to visually navigate, orient, and zoom to specific content.\n * @public\n */\nexport function NavigationWidgetComposer(props: NavigationWidgetComposerProps) {\n const {\n navigationAidHost,\n horizontalToolbar,\n verticalToolbar,\n hideNavigationAid,\n ...otherProps\n } = props;\n const [elementSet] = React.useState(new WidgetElementSet());\n const handleChildRef = React.useCallback(\n (elementRef: React.RefObject<Element>) => {\n elementSet.add(elementRef);\n },\n [elementSet]\n );\n const proximityScale = useProximityToMouse(\n elementSet,\n UiFramework.visibility.snapWidgetOpacity\n );\n\n const navigationAid = hideNavigationAid\n ? undefined\n : // eslint-disable-next-line deprecation/deprecation\n navigationAidHost ?? <NavigationAidHost />;\n\n return (\n <WidgetOpacityContext.Provider\n value={{\n onElementRef: handleChildRef,\n proximityScale,\n }}\n >\n <NavigationArea\n navigationAid={navigationAid}\n horizontalToolbar={horizontalToolbar}\n verticalToolbar={verticalToolbar}\n {...otherProps}\n onMouseEnter={UiFramework.visibility.handleWidgetMouseEnter}\n />\n </WidgetOpacityContext.Provider>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"NavigationWidgetComposer.js","sourceRoot":"","sources":["../../../../src/appui-react/widgets/NavigationWidgetComposer.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 { ProcessDetector } from \"@itwin/core-bentley\";\nimport {\n DrawingViewState,\n OrthographicViewState,\n type ScreenViewport,\n SheetViewState,\n SpatialViewState,\n} from \"@itwin/core-frontend\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport {\n useProximityToMouse,\n useWidgetOpacityContext,\n WidgetElementSet,\n WidgetOpacityContext,\n} from \"@itwin/core-react\";\nimport {\n CubeNavigationAid,\n DrawingNavigationAid,\n ViewportComponentEvents,\n} from \"@itwin/imodel-components-react\";\nimport type { ContentControl } from \"../content/ContentControl\";\nimport { NavigationArea } from \"../layout/widget/NavigationArea\";\nimport type { NavigationAidControl } from \"../navigationaids/NavigationAidControl\";\nimport { UiFramework } from \"../UiFramework\";\nimport { useActiveViewport } from \"../hooks/useActiveViewport\";\nimport { ViewUtilities } from \"../utils/ViewUtilities\";\nimport { SheetNavigationAid } from \"../navigationaids/SheetNavigationAid\";\n\nfunction createNavigationAidControl(\n // eslint-disable-next-line deprecation/deprecation\n activeContentControl: ContentControl | undefined,\n navigationAidId: string,\n activeViewport: ScreenViewport | undefined\n // eslint-disable-next-line deprecation/deprecation\n): NavigationAidControl | undefined {\n if (\n !activeContentControl ||\n !navigationAidId ||\n activeViewport !== activeContentControl.viewport\n )\n return undefined;\n\n const viewport = activeContentControl.viewport;\n const imodel = viewport ? viewport.iModel : UiFramework.getIModelConnection();\n // eslint-disable-next-line deprecation/deprecation\n const navigationAidControl = UiFramework.controls.create(\n navigationAidId,\n navigationAidId,\n { imodel, viewport }\n // eslint-disable-next-line deprecation/deprecation\n ) as NavigationAidControl;\n\n navigationAidControl.initialize();\n return navigationAidControl;\n}\n\n/** Properties for the [[NavigationAidHost]] React component\n * @public\n */\nexport interface NavigationAidHostProps {\n /** Navigation Aid Host minimum width. Defaults to \"64px\". */\n minWidth?: string;\n /** Navigation Aid Host minimum height. Defaults to \"64px\". */\n minHeight?: string;\n}\n\n/** Component that is used as a default navigation aid.\n * Uses registered navigation aids and the active content control to determine if or which navigation aid to display.\n * If an active content is defined without a content control (`classId` is set to an empty string) renders a default navigation aid based on an active viewport view state.\n * @public\n */\nexport function NavigationAidHost(props: NavigationAidHostProps) {\n const [activeContentControl, setActiveContentControl] = React.useState(() =>\n // eslint-disable-next-line deprecation/deprecation\n UiFramework.content.getActiveContentControl()\n );\n const [activeContentViewport, setActiveContentViewport] = React.useState(\n () => activeContentControl?.viewport\n );\n const [navigationAidId, setNavigationAidId] = React.useState(() =>\n activeContentControl ? activeContentControl.navigationAidControl : \"\"\n );\n\n React.useEffect(() => {\n // eslint-disable-next-line deprecation/deprecation\n return UiFramework.frontstages.onContentControlActivatedEvent.addListener(\n (args) => {\n setActiveContentControl(args.activeContentControl);\n setActiveContentViewport(args.activeContentControl.viewport);\n setNavigationAidId(args.activeContentControl.navigationAidControl);\n }\n );\n }, []);\n React.useEffect(() => {\n return UiFramework.content.onActiveContentChangedEvent.addListener(\n (args) => {\n args.id;\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n if (!frontstageDef) return;\n\n const contentGroup = frontstageDef.contentGroup;\n if (!contentGroup) return;\n\n const content = contentGroup.contentPropsList.find(\n (contentProps) => contentProps.id === args.id\n );\n if (!content?.content) return;\n\n // Content w/o a control is activated - reset the navigation.\n setActiveContentControl(undefined);\n setActiveContentViewport(undefined);\n setNavigationAidId(\"\");\n }\n );\n }, []);\n\n const [activeViewClass, setActiveViewClass] = React.useState(() => {\n // eslint-disable-next-line deprecation/deprecation\n const content = UiFramework.content.getActiveContentControl();\n if (content && content.viewport) return content.viewport.view.classFullName;\n return \"\";\n });\n\n React.useEffect(() => {\n return ViewportComponentEvents.onViewClassFullNameChangedEvent.addListener(\n (args) => {\n setActiveViewClass(args.newName);\n }\n );\n }, [activeViewClass]);\n\n const navigationAidControl = React.useMemo(\n () =>\n createNavigationAidControl(\n activeContentControl,\n navigationAidId,\n activeContentViewport\n ),\n [activeContentControl, navigationAidId, activeContentViewport]\n );\n\n const ref = React.useRef<HTMLDivElement>(null);\n\n const isInitialMount = React.useRef(true);\n const { onElementRef, proximityScale } = useWidgetOpacityContext();\n\n React.useEffect(() => {\n if (isInitialMount.current) {\n isInitialMount.current = false;\n onElementRef(ref);\n }\n }, [onElementRef]);\n\n const divStyle: React.CSSProperties = {\n minWidth: props.minWidth ? props.minWidth : \"64px\",\n minHeight: props.minHeight ? props.minHeight : \"64px\",\n };\n\n if (\n (UiFramework.visibility.useProximityOpacity || // eslint-disable-line deprecation/deprecation\n UiFramework.visibility.snapWidgetOpacity) &&\n !ProcessDetector.isMobileBrowser\n ) {\n const navigationAidOpacity = 0.3 * proximityScale + 0.7;\n divStyle.opacity = `${navigationAidOpacity}`;\n }\n\n const navigationAid = activeContentControl ? (\n navigationAidControl?.reactNode\n ) : (\n <DefaultNavigationAid />\n );\n return (\n <div style={divStyle} ref={ref}>\n {navigationAid}\n </div>\n );\n}\n\nfunction DefaultNavigationAid() {\n const viewport = useActiveViewport();\n if (!viewport) return null;\n\n const className = ViewUtilities.getBisBaseClass(viewport.view.classFullName);\n switch (className) {\n case SheetViewState.className:\n return <SheetNavigationAid iModelConnection={viewport.iModel} />;\n case DrawingViewState.className:\n return (\n <DrawingNavigationAid\n iModelConnection={viewport.iModel}\n viewport={viewport}\n />\n );\n case SpatialViewState.className:\n case OrthographicViewState.className:\n return (\n <CubeNavigationAid\n iModelConnection={viewport.iModel}\n viewport={viewport}\n />\n );\n }\n\n return null;\n}\n\n/** Properties for the [[NavigationWidgetComposer]] React components\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport interface NavigationWidgetComposerProps extends CommonProps {\n /** Optional horizontal toolbar */\n horizontalToolbar?: React.ReactNode;\n /** Optional vertical toolbar */\n verticalToolbar?: React.ReactNode;\n /** Optional navigation aid to override the default {@link NavigationAidHost}. */\n navigationAidHost?: React.ReactNode;\n /** If true no navigation aid will be shown. Defaults to `false`. */\n hideNavigationAid?: boolean;\n}\n\n/**\n * Component that Composes a NavigationWidget typically using toolbars generated via [[ToolbarComposer]] class. The Navigation widget is shown in the top right of the content area\n * and typically holds tools to visually navigate, orient, and zoom to specific content.\n * @public\n */\nexport function NavigationWidgetComposer(props: NavigationWidgetComposerProps) {\n const {\n navigationAidHost,\n horizontalToolbar,\n verticalToolbar,\n hideNavigationAid,\n ...otherProps\n } = props;\n const [elementSet] = React.useState(new WidgetElementSet());\n const handleChildRef = React.useCallback(\n (elementRef: React.RefObject<Element>) => {\n elementSet.add(elementRef);\n },\n [elementSet]\n );\n const proximityScale = useProximityToMouse(\n elementSet,\n UiFramework.visibility.snapWidgetOpacity\n );\n\n const navigationAid = hideNavigationAid\n ? undefined\n : navigationAidHost ?? <NavigationAidHost />;\n\n return (\n <WidgetOpacityContext.Provider\n value={{\n onElementRef: handleChildRef,\n proximityScale,\n }}\n >\n <NavigationArea\n navigationAid={navigationAid}\n horizontalToolbar={horizontalToolbar}\n verticalToolbar={verticalToolbar}\n {...otherProps}\n onMouseEnter={UiFramework.visibility.handleWidgetMouseEnter}\n />\n </WidgetOpacityContext.Provider>\n );\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@itwin/appui-react",
|
|
3
|
-
"version": "4.16.
|
|
3
|
+
"version": "4.16.1",
|
|
4
4
|
"description": "UI framework",
|
|
5
5
|
"main": "lib/cjs/appui-react.js",
|
|
6
6
|
"module": "lib/esm/appui-react.js",
|
|
@@ -23,15 +23,15 @@
|
|
|
23
23
|
},
|
|
24
24
|
"peerDependencies": {
|
|
25
25
|
"@itwin/appui-abstract": "^3.7.0 || ^4.0.0",
|
|
26
|
-
"@itwin/components-react": "^4.16.
|
|
26
|
+
"@itwin/components-react": "^4.16.1",
|
|
27
27
|
"@itwin/core-bentley": "^3.7.0 || ^4.0.0",
|
|
28
28
|
"@itwin/core-common": "^3.7.0 || ^4.0.0",
|
|
29
29
|
"@itwin/core-frontend": "^3.7.0 || ^4.0.0",
|
|
30
30
|
"@itwin/core-geometry": "^3.7.0 || ^4.0.0",
|
|
31
31
|
"@itwin/core-quantity": "^3.7.0 || ^4.0.0",
|
|
32
|
-
"@itwin/core-react": "^4.16.
|
|
32
|
+
"@itwin/core-react": "^4.16.1",
|
|
33
33
|
"@itwin/core-telemetry": "^3.7.0 || ^4.0.0",
|
|
34
|
-
"@itwin/imodel-components-react": "^4.16.
|
|
34
|
+
"@itwin/imodel-components-react": "^4.16.1",
|
|
35
35
|
"react": "^17.0.0 || ^18.0.0",
|
|
36
36
|
"react-dom": "^17.0.0 || ^18.0.0",
|
|
37
37
|
"react-redux": "^7.2.2",
|
|
@@ -85,9 +85,9 @@
|
|
|
85
85
|
"typescript": "~5.3.3",
|
|
86
86
|
"upath": "^2.0.1",
|
|
87
87
|
"vitest": "^1.6.0",
|
|
88
|
-
"@itwin/components-react": "4.16.
|
|
89
|
-
"@itwin/imodel-components-react": "4.16.
|
|
90
|
-
"@itwin/core-react": "4.16.
|
|
88
|
+
"@itwin/components-react": "4.16.1",
|
|
89
|
+
"@itwin/imodel-components-react": "4.16.1",
|
|
90
|
+
"@itwin/core-react": "4.16.1"
|
|
91
91
|
},
|
|
92
92
|
"//dependencies": [
|
|
93
93
|
"NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API",
|