@itwin/appui-react 5.0.2 → 5.0.3
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
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
# Change Log - @itwin/appui-react
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Fri, 17 Jan 2025 11:42:02 GMT and should not be manually modified.
|
|
4
|
+
|
|
5
|
+
## 5.0.3
|
|
6
|
+
Fri, 17 Jan 2025 11:42:02 GMT
|
|
7
|
+
|
|
8
|
+
### Updates
|
|
9
|
+
|
|
10
|
+
- Fix popout widget issue when `useDefaultPopoutUrl` is not enabled.
|
|
4
11
|
|
|
5
12
|
## 5.0.2
|
|
6
13
|
Thu, 16 Jan 2025 12:04:12 GMT
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternalChildWindowManager.d.ts","sourceRoot":"","sources":["../../../src/appui-react/childwindow/InternalChildWindowManager.tsx"],"names":[],"mappings":"AAKA;;GAEG;AAEH,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,KAAK,EACV,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"InternalChildWindowManager.d.ts","sourceRoot":"","sources":["../../../src/appui-react/childwindow/InternalChildWindowManager.tsx"],"names":[],"mappings":"AAKA;;GAEG;AAEH,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,KAAK,EACV,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAiC5D,gBAAgB;AAChB,MAAM,WAAW,2BAA4B,SAAQ,mBAAmB;IACtE,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,UAAU,cAAc;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,QAAQ,EAAE,wBAAwB,CAAC;IACnC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,KAAK,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;;;GAIG;AACH,qBAAa,0BAA2B,YAAW,qBAAqB;IACtE,OAAO,CAAC,iBAAiB,CAAqC;IAC9D,OAAO,CAAC,wBAAwB,CAG5B;IAEJ,SAAgB,qBAAqB,gBAAqB,IAAI,EAAI;IAElE,IAAW,gBAAgB,kCAE1B;IAED;;;;OAIG;IACI,IAAI,CACT,aAAa,EAAE,MAAM,GAAG,SAAS,GAChC,mBAAmB,GAAG,SAAS;IAQlC;;;;OAIG;IACI,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS;IAS3E,OAAO,CAAC,yBAAyB;IAmBjC,gGAAgG;IACzF,QAAQ;IAUf;;;;;OAKG;IACI,KAAK,kBAAmB,MAAM,2CAsBnC;IAEF,OAAO,CAAC,oBAAoB;IAU5B;;;;;;;;OAQG;IACI,IAAI,CACT,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,KAAK,CAAC,SAAS,EACxB,QAAQ,EAAE,wBAAwB,EAClC,mBAAmB,CAAC,EAAE,OAAO;IAY/B,gEAAgE;IACzD,UAAU,CAAC,EAChB,aAAa,EACb,QAAQ,EACR,mBAAmB,EACnB,OAAO,EACP,KAAK,EACL,KAAK,GACN,EAAE,cAAc;CAsDlB"}
|
|
@@ -5,11 +5,13 @@
|
|
|
5
5
|
import { BeEvent } from "@itwin/core-bentley";
|
|
6
6
|
import { UiFramework } from "../UiFramework.js";
|
|
7
7
|
import { usePopoutsStore } from "../preview/reparent-popout-widgets/usePopoutsStore.js";
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
function addChildHTML(window) {
|
|
9
|
+
const doc = window.document;
|
|
10
|
+
const meta = doc.createElement("meta");
|
|
11
|
+
meta.setAttribute("charset", "utf-8");
|
|
12
|
+
doc.head.appendChild(meta);
|
|
13
|
+
const style = doc.createElement("style");
|
|
14
|
+
style.textContent = `
|
|
13
15
|
html,
|
|
14
16
|
body {
|
|
15
17
|
height: 100%;
|
|
@@ -20,13 +22,15 @@ const childHtml = `<!DOCTYPE html>
|
|
|
20
22
|
#root {
|
|
21
23
|
height: 100%;
|
|
22
24
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
`;
|
|
26
|
+
doc.head.appendChild(style);
|
|
27
|
+
const noScript = doc.createElement("noscript");
|
|
28
|
+
noScript.textContent = "You need to enable JavaScript to run this app.";
|
|
29
|
+
doc.body.appendChild(noScript);
|
|
30
|
+
const root = doc.createElement("div");
|
|
31
|
+
root.id = "root";
|
|
32
|
+
doc.body.appendChild(root);
|
|
33
|
+
}
|
|
30
34
|
/** Supports opening a child browser window from the main application window. The child window is managed by the main application
|
|
31
35
|
* and is running in the same security context. The application must deliver the html file iTwinPopup.html along side its index.html.
|
|
32
36
|
* See also: [Child Window Manager]($docs/learning/ui/appui-react/ChildWindows.md)
|
|
@@ -158,7 +162,7 @@ export class InternalChildWindowManager {
|
|
|
158
162
|
this.renderChildWindowContents(childWindow, childWindowId, content, title, tabId);
|
|
159
163
|
};
|
|
160
164
|
if (url.length === 0) {
|
|
161
|
-
childWindow
|
|
165
|
+
addChildHTML(childWindow);
|
|
162
166
|
onDOMContentLoaded();
|
|
163
167
|
}
|
|
164
168
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternalChildWindowManager.js","sourceRoot":"","sources":["../../../src/appui-react/childwindow/InternalChildWindowManager.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module ChildWindowManager\n */\n\nimport type * as React from \"react\";\nimport { BeEvent } from \"@itwin/core-bentley\";\nimport { UiFramework } from \"../UiFramework.js\";\nimport type {\n ChildWindowLocationProps,\n FrameworkChildWindows,\n OpenChildWindowInfo,\n} from \"../framework/FrameworkChildWindows.js\";\nimport { usePopoutsStore } from \"../preview/reparent-popout-widgets/usePopoutsStore.js\";\nimport type { TabState } from \"../layout/state/TabState.js\";\n\nconst childHtml = `<!DOCTYPE html>\n<html>\n<head>\n <meta charset=\"utf-8\" />\n <style>\n html,\n body {\n height: 100%;\n width: 100%;\n margin: 0;\n overflow: hidden;\n }\n #root {\n height: 100%;\n }\n </style>\n</head>\n<body>\n <noscript>You need to enable JavaScript to run this app.</noscript>\n <div id=\"root\"></div>\n</body>\n</html>`;\n\n/** @internal */\nexport interface InternalOpenChildWindowInfo extends OpenChildWindowInfo {\n content?: React.ReactNode;\n tabId?: TabState[\"id\"];\n}\n\ninterface OpenWindowArgs {\n childWindowId: string;\n title: string;\n content: React.ReactNode;\n location: ChildWindowLocationProps;\n useDefaultPopoutUrl: boolean;\n tabId?: TabState[\"id\"];\n}\n\n/** Supports opening a child browser window from the main application window. The child window is managed by the main application\n * and is running in the same security context. The application must deliver the html file iTwinPopup.html along side its index.html.\n * See also: [Child Window Manager]($docs/learning/ui/appui-react/ChildWindows.md)\n * @internal\n */\nexport class InternalChildWindowManager implements FrameworkChildWindows {\n private _openChildWindows: InternalOpenChildWindowInfo[] = [];\n private _childWindowToUnregister = new Map<\n InternalOpenChildWindowInfo[\"childWindowId\"],\n () => void\n >();\n\n public readonly onChildWindowsChanged = new BeEvent<() => void>();\n\n public get openChildWindows() {\n return this._openChildWindows;\n }\n\n /**\n * Returns the OpenChildWindowInfo for the related id.\n * @param childWindowId Id of the window to retrieve.\n * @returns undefined if not found.\n */\n public find(\n childWindowId: string | undefined\n ): OpenChildWindowInfo | undefined {\n if (undefined === childWindowId) return undefined;\n\n return this.openChildWindows.find(\n (openWindow) => openWindow.childWindowId === childWindowId\n );\n }\n\n /**\n * Return the childWindowId of the provided window.\n * @param contentWindow Window element to identify\n * @returns undefined if not found\n */\n public findId(contentWindow: Window | undefined | null): string | undefined {\n if (!contentWindow) return undefined;\n\n const childWindow = this.openChildWindows.find(\n (openWindow) => openWindow.window === contentWindow\n );\n return childWindow?.childWindowId;\n }\n\n private renderChildWindowContents(\n childWindow: Window,\n childWindowId: string,\n content: React.ReactNode,\n title: string,\n tabId?: TabState[\"id\"]\n ) {\n childWindow.document.title = title;\n\n this._openChildWindows.push({\n childWindowId,\n window: childWindow,\n parentWindow: window,\n content,\n tabId,\n });\n this.onChildWindowsChanged.raiseEvent();\n }\n\n /** Close all child/pop-out windows. This typically is called when the frontstage is changed. */\n public closeAll() {\n this.openChildWindows.forEach((openChildWindow) =>\n openChildWindow.window.close()\n );\n this._childWindowToUnregister.forEach((unregister) => unregister());\n this._childWindowToUnregister.clear();\n this._openChildWindows = [];\n this.onChildWindowsChanged.raiseEvent();\n }\n\n /**\n * Close a specific child window.\n * @param childWindowId Id of the window to close.\n * @param processWindowClose should the `close` method be called on the closing window. (defaults to true).\n * @returns false if the window could not be found.\n */\n public close = (childWindowId: string, processWindowClose = true) => {\n const windowIndex = this.openChildWindows.findIndex(\n (openWindow) => openWindow.childWindowId === childWindowId\n );\n if (windowIndex === -1) return false;\n const { onClosePopoutWidget } = usePopoutsStore.getState();\n onClosePopoutWidget.raiseEvent({ windowId: childWindowId });\n\n const childWindow = this.openChildWindows[windowIndex];\n this._openChildWindows.splice(windowIndex, 1);\n this._childWindowToUnregister.get(childWindowId)?.();\n this._childWindowToUnregister.delete(childWindowId);\n\n this.onChildWindowsChanged.raiseEvent();\n if (processWindowClose) {\n childWindow.window.close();\n } else {\n // call the following to convert popout to docked widget\n const frontStageDef = UiFramework.frontstages.activeFrontstageDef;\n frontStageDef?.dockWidgetContainerByContainerId(childWindowId);\n }\n return true;\n };\n\n private adjustWindowLocation(location: ChildWindowLocationProps) {\n // If no location is provided, child window will open in the center of the current window.\n if (location.top === 0 && location.left === 0) {\n location.left =\n window.outerWidth / 2 + window.screenX - location.width / 2;\n location.top =\n window.outerHeight / 2 + window.screenY - location.height / 2;\n }\n }\n\n /**\n * Open a new child window.\n * @param childWindowId Id to assign to the newly created window.\n * @param title Title to display on the window.\n * @param content ReactNode to be rendered in the window.\n * @param location Position and size information\n * @param useDefaultPopoutUrl use \"/iTwinPopup.html\" as the window Url, \"\" otherwise.\n * @returns true if the window is opened successfully.\n */\n public open(\n childWindowId: string,\n title: string,\n content: React.ReactNode,\n location: ChildWindowLocationProps,\n useDefaultPopoutUrl?: boolean\n ) {\n const childWindow = this.openWindow({\n childWindowId,\n title,\n content,\n location,\n useDefaultPopoutUrl: useDefaultPopoutUrl ?? false,\n });\n return !!childWindow;\n }\n\n /** Used internally to open child windows and popout widgets. */\n public openWindow({\n childWindowId,\n location,\n useDefaultPopoutUrl,\n content,\n title,\n tabId,\n }: OpenWindowArgs) {\n if (this.find(childWindowId)) return undefined;\n\n this.adjustWindowLocation(location);\n const url = useDefaultPopoutUrl ? \"/iTwinPopup.html\" : \"\";\n const childWindow = window.open(\n url,\n \"\",\n `width=${location.width},height=${location.height},left=${location.left},top=${location.top},menubar=no,resizable=yes,scrollbars=no,status=no,location=no`\n );\n if (!childWindow) return undefined;\n\n const onPageHide = () => {\n const frontStageDef = UiFramework.frontstages.activeFrontstageDef;\n if (!frontStageDef) return;\n frontStageDef.saveChildWindowSizeAndPosition(childWindowId, childWindow);\n\n // Trigger first so popout can be converted back to main window widget\n this.close(childWindowId, false);\n };\n childWindow.addEventListener(\"pagehide\", onPageHide);\n\n const onDOMContentLoaded = () => {\n this.renderChildWindowContents(\n childWindow,\n childWindowId,\n content,\n title,\n tabId\n );\n };\n if (url.length === 0) {\n childWindow.document.write(childHtml);\n onDOMContentLoaded();\n } else {\n childWindow.addEventListener(\"DOMContentLoaded\", onDOMContentLoaded);\n }\n\n const onUnload = () => {\n const frontStageDef = UiFramework.frontstages.activeFrontstageDef;\n if (frontStageDef) {\n this.close(childWindowId, true);\n }\n };\n window.addEventListener(\"unload\", onUnload);\n\n this._childWindowToUnregister.set(childWindowId, () => {\n childWindow.removeEventListener(\"pagehide\", onPageHide);\n childWindow.removeEventListener(\"DOMContentLoaded\", onDOMContentLoaded);\n window.removeEventListener(\"unload\", onUnload);\n });\n\n return childWindow;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"InternalChildWindowManager.js","sourceRoot":"","sources":["../../../src/appui-react/childwindow/InternalChildWindowManager.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module ChildWindowManager\n */\n\nimport type * as React from \"react\";\nimport { BeEvent } from \"@itwin/core-bentley\";\nimport { UiFramework } from \"../UiFramework.js\";\nimport type {\n ChildWindowLocationProps,\n FrameworkChildWindows,\n OpenChildWindowInfo,\n} from \"../framework/FrameworkChildWindows.js\";\nimport { usePopoutsStore } from \"../preview/reparent-popout-widgets/usePopoutsStore.js\";\nimport type { TabState } from \"../layout/state/TabState.js\";\n\nfunction addChildHTML(window: Window) {\n const doc = window.document;\n\n const meta = doc.createElement(\"meta\");\n meta.setAttribute(\"charset\", \"utf-8\");\n doc.head.appendChild(meta);\n\n const style = doc.createElement(\"style\");\n style.textContent = `\n html,\n body {\n height: 100%;\n width: 100%;\n margin: 0;\n overflow: hidden;\n }\n #root {\n height: 100%;\n }\n `;\n doc.head.appendChild(style);\n\n const noScript = doc.createElement(\"noscript\");\n noScript.textContent = \"You need to enable JavaScript to run this app.\";\n doc.body.appendChild(noScript);\n\n const root = doc.createElement(\"div\");\n root.id = \"root\";\n doc.body.appendChild(root);\n}\n\n/** @internal */\nexport interface InternalOpenChildWindowInfo extends OpenChildWindowInfo {\n content?: React.ReactNode;\n tabId?: TabState[\"id\"];\n}\n\ninterface OpenWindowArgs {\n childWindowId: string;\n title: string;\n content: React.ReactNode;\n location: ChildWindowLocationProps;\n useDefaultPopoutUrl: boolean;\n tabId?: TabState[\"id\"];\n}\n\n/** Supports opening a child browser window from the main application window. The child window is managed by the main application\n * and is running in the same security context. The application must deliver the html file iTwinPopup.html along side its index.html.\n * See also: [Child Window Manager]($docs/learning/ui/appui-react/ChildWindows.md)\n * @internal\n */\nexport class InternalChildWindowManager implements FrameworkChildWindows {\n private _openChildWindows: InternalOpenChildWindowInfo[] = [];\n private _childWindowToUnregister = new Map<\n InternalOpenChildWindowInfo[\"childWindowId\"],\n () => void\n >();\n\n public readonly onChildWindowsChanged = new BeEvent<() => void>();\n\n public get openChildWindows() {\n return this._openChildWindows;\n }\n\n /**\n * Returns the OpenChildWindowInfo for the related id.\n * @param childWindowId Id of the window to retrieve.\n * @returns undefined if not found.\n */\n public find(\n childWindowId: string | undefined\n ): OpenChildWindowInfo | undefined {\n if (undefined === childWindowId) return undefined;\n\n return this.openChildWindows.find(\n (openWindow) => openWindow.childWindowId === childWindowId\n );\n }\n\n /**\n * Return the childWindowId of the provided window.\n * @param contentWindow Window element to identify\n * @returns undefined if not found\n */\n public findId(contentWindow: Window | undefined | null): string | undefined {\n if (!contentWindow) return undefined;\n\n const childWindow = this.openChildWindows.find(\n (openWindow) => openWindow.window === contentWindow\n );\n return childWindow?.childWindowId;\n }\n\n private renderChildWindowContents(\n childWindow: Window,\n childWindowId: string,\n content: React.ReactNode,\n title: string,\n tabId?: TabState[\"id\"]\n ) {\n childWindow.document.title = title;\n\n this._openChildWindows.push({\n childWindowId,\n window: childWindow,\n parentWindow: window,\n content,\n tabId,\n });\n this.onChildWindowsChanged.raiseEvent();\n }\n\n /** Close all child/pop-out windows. This typically is called when the frontstage is changed. */\n public closeAll() {\n this.openChildWindows.forEach((openChildWindow) =>\n openChildWindow.window.close()\n );\n this._childWindowToUnregister.forEach((unregister) => unregister());\n this._childWindowToUnregister.clear();\n this._openChildWindows = [];\n this.onChildWindowsChanged.raiseEvent();\n }\n\n /**\n * Close a specific child window.\n * @param childWindowId Id of the window to close.\n * @param processWindowClose should the `close` method be called on the closing window. (defaults to true).\n * @returns false if the window could not be found.\n */\n public close = (childWindowId: string, processWindowClose = true) => {\n const windowIndex = this.openChildWindows.findIndex(\n (openWindow) => openWindow.childWindowId === childWindowId\n );\n if (windowIndex === -1) return false;\n const { onClosePopoutWidget } = usePopoutsStore.getState();\n onClosePopoutWidget.raiseEvent({ windowId: childWindowId });\n\n const childWindow = this.openChildWindows[windowIndex];\n this._openChildWindows.splice(windowIndex, 1);\n this._childWindowToUnregister.get(childWindowId)?.();\n this._childWindowToUnregister.delete(childWindowId);\n\n this.onChildWindowsChanged.raiseEvent();\n if (processWindowClose) {\n childWindow.window.close();\n } else {\n // call the following to convert popout to docked widget\n const frontStageDef = UiFramework.frontstages.activeFrontstageDef;\n frontStageDef?.dockWidgetContainerByContainerId(childWindowId);\n }\n return true;\n };\n\n private adjustWindowLocation(location: ChildWindowLocationProps) {\n // If no location is provided, child window will open in the center of the current window.\n if (location.top === 0 && location.left === 0) {\n location.left =\n window.outerWidth / 2 + window.screenX - location.width / 2;\n location.top =\n window.outerHeight / 2 + window.screenY - location.height / 2;\n }\n }\n\n /**\n * Open a new child window.\n * @param childWindowId Id to assign to the newly created window.\n * @param title Title to display on the window.\n * @param content ReactNode to be rendered in the window.\n * @param location Position and size information\n * @param useDefaultPopoutUrl use \"/iTwinPopup.html\" as the window Url, \"\" otherwise.\n * @returns true if the window is opened successfully.\n */\n public open(\n childWindowId: string,\n title: string,\n content: React.ReactNode,\n location: ChildWindowLocationProps,\n useDefaultPopoutUrl?: boolean\n ) {\n const childWindow = this.openWindow({\n childWindowId,\n title,\n content,\n location,\n useDefaultPopoutUrl: useDefaultPopoutUrl ?? false,\n });\n return !!childWindow;\n }\n\n /** Used internally to open child windows and popout widgets. */\n public openWindow({\n childWindowId,\n location,\n useDefaultPopoutUrl,\n content,\n title,\n tabId,\n }: OpenWindowArgs) {\n if (this.find(childWindowId)) return undefined;\n\n this.adjustWindowLocation(location);\n const url = useDefaultPopoutUrl ? \"/iTwinPopup.html\" : \"\";\n const childWindow = window.open(\n url,\n \"\",\n `width=${location.width},height=${location.height},left=${location.left},top=${location.top},menubar=no,resizable=yes,scrollbars=no,status=no,location=no`\n );\n if (!childWindow) return undefined;\n\n const onPageHide = () => {\n const frontStageDef = UiFramework.frontstages.activeFrontstageDef;\n if (!frontStageDef) return;\n frontStageDef.saveChildWindowSizeAndPosition(childWindowId, childWindow);\n\n // Trigger first so popout can be converted back to main window widget\n this.close(childWindowId, false);\n };\n childWindow.addEventListener(\"pagehide\", onPageHide);\n\n const onDOMContentLoaded = () => {\n this.renderChildWindowContents(\n childWindow,\n childWindowId,\n content,\n title,\n tabId\n );\n };\n if (url.length === 0) {\n addChildHTML(childWindow);\n onDOMContentLoaded();\n } else {\n childWindow.addEventListener(\"DOMContentLoaded\", onDOMContentLoaded);\n }\n\n const onUnload = () => {\n const frontStageDef = UiFramework.frontstages.activeFrontstageDef;\n if (frontStageDef) {\n this.close(childWindowId, true);\n }\n };\n window.addEventListener(\"unload\", onUnload);\n\n this._childWindowToUnregister.set(childWindowId, () => {\n childWindow.removeEventListener(\"pagehide\", onPageHide);\n childWindow.removeEventListener(\"DOMContentLoaded\", onDOMContentLoaded);\n window.removeEventListener(\"unload\", onUnload);\n });\n\n return childWindow;\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@itwin/appui-react",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.3",
|
|
4
4
|
"description": "A react component library for AppUI framework",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "./lib/appui-react.d.ts",
|
|
@@ -35,15 +35,15 @@
|
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
37
|
"@itwin/appui-abstract": "^4.0.0",
|
|
38
|
-
"@itwin/components-react": "^5.0.
|
|
38
|
+
"@itwin/components-react": "^5.0.3",
|
|
39
39
|
"@itwin/core-bentley": "^4.0.0",
|
|
40
40
|
"@itwin/core-common": "^4.0.0",
|
|
41
41
|
"@itwin/core-frontend": "^4.0.0",
|
|
42
42
|
"@itwin/core-geometry": "^4.0.0",
|
|
43
43
|
"@itwin/core-quantity": "^4.0.0",
|
|
44
|
-
"@itwin/core-react": "^5.0.
|
|
44
|
+
"@itwin/core-react": "^5.0.3",
|
|
45
45
|
"@itwin/core-telemetry": "^4.0.0",
|
|
46
|
-
"@itwin/imodel-components-react": "^5.0.
|
|
46
|
+
"@itwin/imodel-components-react": "^5.0.3",
|
|
47
47
|
"@itwin/itwinui-react": "^3.15.0",
|
|
48
48
|
"react": "^18.0.0",
|
|
49
49
|
"react-dom": "^18.0.0",
|
|
@@ -93,9 +93,9 @@
|
|
|
93
93
|
"typescript": "~5.3.3",
|
|
94
94
|
"upath": "^2.0.1",
|
|
95
95
|
"vitest": "^1.6.0",
|
|
96
|
-
"@itwin/components-react": "5.0.
|
|
97
|
-
"@itwin/
|
|
98
|
-
"@itwin/
|
|
96
|
+
"@itwin/components-react": "5.0.3",
|
|
97
|
+
"@itwin/core-react": "5.0.3",
|
|
98
|
+
"@itwin/imodel-components-react": "5.0.3"
|
|
99
99
|
},
|
|
100
100
|
"dependencies": {
|
|
101
101
|
"@itwin/itwinui-icons-react": "^2.8.0",
|