@equinor/fusion-framework-react-app 9.0.8 → 10.0.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 +85 -14
- package/README.md +176 -99
- package/dist/esm/ag-grid/useTheme.js +7 -0
- package/dist/esm/ag-grid/useTheme.js.map +1 -1
- package/dist/esm/analytics/index.js +8 -0
- package/dist/esm/analytics/index.js.map +1 -1
- package/dist/esm/analytics/useTrackFeature.js +17 -1
- package/dist/esm/analytics/useTrackFeature.js.map +1 -1
- package/dist/esm/apploader/Apploader.js +1 -1
- package/dist/esm/apploader/Apploader.js.map +1 -1
- package/dist/esm/apploader/index.js +8 -0
- package/dist/esm/apploader/index.js.map +1 -1
- package/dist/esm/bookmark/index.js +8 -0
- package/dist/esm/bookmark/index.js.map +1 -1
- package/dist/esm/context/index.js +8 -0
- package/dist/esm/context/index.js.map +1 -1
- package/dist/esm/context/useContextProvider.js +6 -0
- package/dist/esm/context/useContextProvider.js.map +1 -1
- package/dist/esm/context/useCurrentContext.js +14 -0
- package/dist/esm/context/useCurrentContext.js.map +1 -1
- package/dist/esm/create-legacy-app.js +13 -0
- package/dist/esm/create-legacy-app.js.map +1 -1
- package/dist/esm/feature-flag/index.js.map +1 -1
- package/dist/esm/feature-flag/useFeature.js +20 -4
- package/dist/esm/feature-flag/useFeature.js.map +1 -1
- package/dist/esm/framework/index.js +8 -1
- package/dist/esm/framework/index.js.map +1 -1
- package/dist/esm/framework/useFrameworkCurrentContext.js +9 -0
- package/dist/esm/framework/useFrameworkCurrentContext.js.map +1 -1
- package/dist/esm/help-center/useHelpCenter.js +12 -1
- package/dist/esm/help-center/useHelpCenter.js.map +1 -1
- package/dist/esm/http/index.js +9 -0
- package/dist/esm/http/index.js.map +1 -1
- package/dist/esm/http/selectors.js +10 -0
- package/dist/esm/http/selectors.js.map +1 -0
- package/dist/esm/index.js +16 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/make-component.js +1 -1
- package/dist/esm/make-component.js.map +1 -1
- package/dist/esm/msal/index.js +13 -0
- package/dist/esm/msal/index.js.map +1 -1
- package/dist/esm/msal/useAccessToken.js +15 -3
- package/dist/esm/msal/useAccessToken.js.map +1 -1
- package/dist/esm/msal/useCurrentAccount.js +12 -2
- package/dist/esm/msal/useCurrentAccount.js.map +1 -1
- package/dist/esm/msal/useToken.js +19 -3
- package/dist/esm/msal/useToken.js.map +1 -1
- package/dist/esm/navigation/index.js +8 -0
- package/dist/esm/navigation/index.js.map +1 -1
- package/dist/esm/navigation/useNavigationModule.js +6 -1
- package/dist/esm/navigation/useNavigationModule.js.map +1 -1
- package/dist/esm/navigation/useRouter.js +23 -4
- package/dist/esm/navigation/useRouter.js.map +1 -1
- package/dist/esm/render-app.js +22 -1
- package/dist/esm/render-app.js.map +1 -1
- package/dist/esm/render-component.js +30 -23
- package/dist/esm/render-component.js.map +1 -1
- package/dist/esm/settings/index.js +8 -0
- package/dist/esm/settings/index.js.map +1 -1
- package/dist/esm/useAppModule.js +13 -5
- package/dist/esm/useAppModule.js.map +1 -1
- package/dist/esm/useAppModules.js +9 -3
- package/dist/esm/useAppModules.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/ag-grid/useTheme.d.ts +7 -0
- package/dist/types/analytics/index.d.ts +8 -0
- package/dist/types/analytics/useTrackFeature.d.ts +17 -1
- package/dist/types/apploader/Apploader.d.ts +3 -2
- package/dist/types/apploader/index.d.ts +8 -0
- package/dist/types/bookmark/index.d.ts +8 -0
- package/dist/types/context/index.d.ts +8 -0
- package/dist/types/context/useContextProvider.d.ts +6 -0
- package/dist/types/context/useCurrentContext.d.ts +14 -0
- package/dist/types/create-legacy-app.d.ts +13 -0
- package/dist/types/feature-flag/index.d.ts +8 -0
- package/dist/types/feature-flag/useFeature.d.ts +20 -4
- package/dist/types/framework/index.d.ts +8 -0
- package/dist/types/framework/useFrameworkCurrentContext.d.ts +9 -0
- package/dist/types/help-center/useHelpCenter.d.ts +12 -1
- package/dist/types/http/index.d.ts +9 -0
- package/dist/types/http/selectors.d.ts +9 -0
- package/dist/types/index.d.ts +18 -1
- package/dist/types/make-component.d.ts +15 -0
- package/dist/types/msal/index.d.ts +13 -0
- package/dist/types/msal/useAccessToken.d.ts +15 -3
- package/dist/types/msal/useCurrentAccount.d.ts +12 -2
- package/dist/types/msal/useToken.d.ts +19 -3
- package/dist/types/navigation/index.d.ts +8 -0
- package/dist/types/navigation/useNavigationModule.d.ts +6 -1
- package/dist/types/navigation/useRouter.d.ts +23 -4
- package/dist/types/render-app.d.ts +22 -1
- package/dist/types/render-component.d.ts +16 -1
- package/dist/types/settings/index.d.ts +8 -0
- package/dist/types/useAppModule.d.ts +13 -5
- package/dist/types/useAppModules.d.ts +9 -3
- package/dist/types/version.d.ts +1 -1
- package/package.json +35 -27
- package/src/__tests__/render-app.test.tsx +113 -0
- package/src/ag-grid/useTheme.ts +7 -0
- package/src/analytics/index.ts +8 -0
- package/src/analytics/useTrackFeature.ts +17 -1
- package/src/apploader/Apploader.tsx +3 -3
- package/src/apploader/index.ts +8 -0
- package/src/bookmark/index.ts +8 -0
- package/src/context/index.ts +8 -0
- package/src/context/useContextProvider.ts +6 -0
- package/src/context/useCurrentContext.ts +14 -0
- package/src/create-legacy-app.tsx +13 -0
- package/src/feature-flag/index.ts +8 -0
- package/src/feature-flag/useFeature.ts +20 -4
- package/src/framework/index.ts +8 -1
- package/src/framework/useFrameworkCurrentContext.ts +9 -0
- package/src/help-center/useHelpCenter.ts +12 -1
- package/src/http/index.ts +9 -0
- package/src/http/selectors.ts +9 -0
- package/src/index.ts +20 -2
- package/src/make-component.tsx +16 -1
- package/src/msal/index.ts +13 -0
- package/src/msal/useAccessToken.ts +15 -3
- package/src/msal/useCurrentAccount.ts +12 -2
- package/src/msal/useToken.ts +19 -3
- package/src/navigation/index.ts +8 -0
- package/src/navigation/useNavigationModule.ts +6 -1
- package/src/navigation/useRouter.ts +23 -4
- package/src/render-app.ts +22 -1
- package/src/render-component.tsx +36 -27
- package/src/settings/index.ts +8 -0
- package/src/useAppModule.ts +13 -5
- package/src/useAppModules.ts +11 -5
- package/src/version.ts +1 -1
- package/tsconfig.json +1 -1
- package/vitest.config.ts +15 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,90 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
+
## 10.0.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- abffa53: Major version bump for Fusion Framework React 19 release.
|
|
8
|
+
|
|
9
|
+
All packages are bumped to the next major version as part of the React 19 upgrade. This release drops support for React versions below 18 and includes breaking changes across the framework.
|
|
10
|
+
|
|
11
|
+
**Breaking changes:**
|
|
12
|
+
- Peer dependencies now require React 18 or 19 (`^18.0.0 || ^19.0.0`)
|
|
13
|
+
- React Router upgraded from v6 to v7
|
|
14
|
+
- Navigation module refactored with new history API
|
|
15
|
+
- `renderComponent` and `renderApp` now use `createRoot` API
|
|
16
|
+
|
|
17
|
+
**Migration:**
|
|
18
|
+
- Update your React version to 18.0.0 or higher before upgrading
|
|
19
|
+
- Replace `NavigationProvider.createRouter()` with `@equinor/fusion-framework-react-router`
|
|
20
|
+
- See individual package changelogs for package-specific migration steps
|
|
21
|
+
|
|
22
|
+
- abffa53: Modernize `renderComponent` and `renderApp` to use React 18's `createRoot` API. These functions are no longer deprecated.
|
|
23
|
+
|
|
24
|
+
The legacy `ReactDOM.render` path has been removed. Both functions now use `createRoot` internally, matching React 18+ best practices. No migration is required if you already use React 18+.
|
|
25
|
+
|
|
26
|
+
- abffa53: Upgrade to React 19 and remove support for React versions lower than 18.
|
|
27
|
+
|
|
28
|
+
**Breaking changes:**
|
|
29
|
+
- Peer dependencies now require React 18 or 19 (`^18.0.0 || ^19.0.0`)
|
|
30
|
+
- React 16 and 17 are no longer supported
|
|
31
|
+
- Dev dependencies upgraded to React 19.2.1 and @types/react 19.2.7
|
|
32
|
+
|
|
33
|
+
**Migration:**
|
|
34
|
+
- Update your React version to 18.0.0 or higher before upgrading these packages
|
|
35
|
+
- If using React 16 or 17, upgrade to React 18 or 19 first
|
|
36
|
+
|
|
37
|
+
Closes https://github.com/equinor/fusion-framework/issues/3504
|
|
38
|
+
|
|
39
|
+
### Minor Changes
|
|
40
|
+
|
|
41
|
+
- abffa53: Export `Fusion` type from `@equinor/fusion-framework-react-app` for better type reusability.
|
|
42
|
+
|
|
43
|
+
The `Fusion` type is now available directly from the react-app package:
|
|
44
|
+
|
|
45
|
+
```typescript
|
|
46
|
+
import type { Fusion } from "@equinor/fusion-framework-react-app";
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Patch Changes
|
|
50
|
+
|
|
51
|
+
- abffa53: Add test suite for `renderApp` function using Vitest and React Testing Library.
|
|
52
|
+
|
|
53
|
+
Includes test coverage for component rendering, teardown functionality, and React 18 createRoot integration.
|
|
54
|
+
|
|
55
|
+
- aaa3f74: fix(security): address undici multiple vulnerabilities (CVE-2026-1524, 1527, 1528, 2581)
|
|
56
|
+
|
|
57
|
+
Upgrade undici from 7.22.0 to 7.24.3 to fix multiple security vulnerabilities affecting WebSocket parsing, HTTP header validation, and request deduplication:
|
|
58
|
+
- **CVE-2026-1528** (HIGH): WebSocket 64-bit length integer overflow causing process crash
|
|
59
|
+
- **CVE-2026-1524** (MODERATE): HTTP/1.1 response field header injection
|
|
60
|
+
- **CVE-2026-1527** (MODERATE): CRLF injection via upgrade option enabling protocol smuggling
|
|
61
|
+
- **CVE-2026-2581** (MODERATE): Unbounded memory consumption in deduplication handler
|
|
62
|
+
|
|
63
|
+
These are non-breaking security patches that harden undici against untrusted upstream endpoints and malicious WebSocket frames.
|
|
64
|
+
|
|
65
|
+
**Advisories**: GHSA-f269-vfmq-vjvj, GHSA-v9p9-hfj2-hcw8, GHSA-4992-7rv2-5pvq, GHSA-phc3-fgpg-7m6h
|
|
66
|
+
**Fixed in**: undici 7.24.0+ (deployed 7.24.3)
|
|
67
|
+
|
|
68
|
+
- Updated dependencies [abffa53]
|
|
69
|
+
- Updated dependencies [abffa53]
|
|
70
|
+
- Updated dependencies [abffa53]
|
|
71
|
+
- Updated dependencies [abffa53]
|
|
72
|
+
- Updated dependencies [abffa53]
|
|
73
|
+
- Updated dependencies [abffa53]
|
|
74
|
+
- Updated dependencies [abffa53]
|
|
75
|
+
- Updated dependencies [abffa53]
|
|
76
|
+
- Updated dependencies [abffa53]
|
|
77
|
+
- Updated dependencies [aaa3f74]
|
|
78
|
+
- @equinor/fusion-framework-app@11.0.0
|
|
79
|
+
- @equinor/fusion-framework-module@6.0.0
|
|
80
|
+
- @equinor/fusion-framework-module-app@8.0.0
|
|
81
|
+
- @equinor/fusion-framework-module-http@8.0.0
|
|
82
|
+
- @equinor/fusion-framework-module-msal@8.0.0
|
|
83
|
+
- @equinor/fusion-framework-module-navigation@7.0.0
|
|
84
|
+
- @equinor/fusion-framework-react@8.0.0
|
|
85
|
+
- @equinor/fusion-framework-react-module@4.0.0
|
|
86
|
+
- @equinor/fusion-framework-react-module-http@11.0.0
|
|
87
|
+
|
|
3
88
|
## 9.0.8
|
|
4
89
|
|
|
5
90
|
### Patch Changes
|
|
@@ -130,7 +215,6 @@
|
|
|
130
215
|
### Patch Changes
|
|
131
216
|
|
|
132
217
|
- [#3714](https://github.com/equinor/fusion-framework/pull/3714) [`11fe961`](https://github.com/equinor/fusion-framework/commit/11fe961794e4960ccb987bc320268cc9b263f1f8) Thanks [@odinr](https://github.com/odinr)! - Fix MSAL v4 compatibility issues in React app hooks.
|
|
133
|
-
|
|
134
218
|
- Update useCurrentAccount to use account property instead of deprecated defaultAccount
|
|
135
219
|
- Fix useToken hook to properly handle AcquireTokenResult type
|
|
136
220
|
- Ensure proper null/undefined handling for account information
|
|
@@ -186,14 +270,12 @@
|
|
|
186
270
|
- [#3075](https://github.com/equinor/fusion-framework/pull/3075) [`8fffbfb`](https://github.com/equinor/fusion-framework/commit/8fffbfb12daa9748bf5290e5084cd4d409aed253) Thanks [@odinr](https://github.com/odinr)! - Refactored the `Bookmark` type to be an intersection of `BookmarkWithoutData` and an optional `payload` property, improving type safety and flexibility. Updated `useBookmarkNavigate` to use proper TypeScript typing for bookmark events.
|
|
187
271
|
|
|
188
272
|
**Module Bookmark Changes:**
|
|
189
|
-
|
|
190
273
|
- Refactored `Bookmark` type in `packages/modules/bookmark/src/types.ts`
|
|
191
274
|
- Added export for `BookmarkProviderEvents` type in `packages/modules/bookmark/src/index.ts`
|
|
192
275
|
- Updated JSDoc comment from `@note` to `@remarks` in `packages/modules/bookmark/src/BookmarkClient.ts`
|
|
193
276
|
- Reordered tsconfig references (event before services)
|
|
194
277
|
|
|
195
278
|
**React Changes:**
|
|
196
|
-
|
|
197
279
|
- Updated `packages/react/modules/bookmark/src/portal/useBookmarkNavigate.ts` to use proper TypeScript typing for bookmark provider events
|
|
198
280
|
- Removed React paths configuration from `packages/react/app/tsconfig.json`
|
|
199
281
|
|
|
@@ -240,7 +322,6 @@
|
|
|
240
322
|
### Patch Changes
|
|
241
323
|
|
|
242
324
|
- [#3088](https://github.com/equinor/fusion-framework/pull/3088) [`7441b13`](https://github.com/equinor/fusion-framework/commit/7441b13aa50dd7362d1629086a27b6b4e571575d) Thanks [@eikeland](https://github.com/eikeland)! - chore: update package typesVersions
|
|
243
|
-
|
|
244
325
|
- Updated package.json typesVersions.
|
|
245
326
|
- Ensures backward compatibility with older node versions.
|
|
246
327
|
- Ensured consistency with workspace and repository configuration.
|
|
@@ -300,7 +381,6 @@
|
|
|
300
381
|
`appKey (string)`: The key of the Fusion app to load and mount.
|
|
301
382
|
|
|
302
383
|
### Returns
|
|
303
|
-
|
|
304
384
|
- **loading** `(boolean)`: true while the app is loading.
|
|
305
385
|
- **error** `(Error | undefined)`: Error object if loading fails, otherwise undefined.
|
|
306
386
|
- **appRef** `(React.RefObject<HTMLDivElement | null>)`: Ref to the DOM element where the child app is mounted.
|
|
@@ -334,7 +414,6 @@
|
|
|
334
414
|
```
|
|
335
415
|
|
|
336
416
|
### Notes
|
|
337
|
-
|
|
338
417
|
- The hook is designed to be used in a parent Fusion app context.
|
|
339
418
|
- The returned appRef should be appended to a container element in your component.
|
|
340
419
|
- Handles subscription and cleanup automatically.
|
|
@@ -618,7 +697,6 @@
|
|
|
618
697
|
### Minor Changes
|
|
619
698
|
|
|
620
699
|
- [#2577](https://github.com/equinor/fusion-framework/pull/2577) [`c3ba9f1`](https://github.com/equinor/fusion-framework/commit/c3ba9f109d9f96d6dc6ee2f0ddac00c8b3090982) Thanks [@eikeland](https://github.com/eikeland)! - #### Changes:
|
|
621
|
-
|
|
622
700
|
1. **AppClient.ts**
|
|
623
701
|
- Added `updateAppSettings` method to set app settings by appKey.
|
|
624
702
|
2. **AppModuleProvider.ts**
|
|
@@ -666,7 +744,6 @@
|
|
|
666
744
|
### Minor Changes
|
|
667
745
|
|
|
668
746
|
- [#2410](https://github.com/equinor/fusion-framework/pull/2410) [`9d1cb90`](https://github.com/equinor/fusion-framework/commit/9d1cb9003fa10e7ccaa95c20ef86f0a618034641) Thanks [@odinr](https://github.com/odinr)! - Updated bookmark namespace in `@equinor/fusion-react-app` to include new hooks and updated `useCurrentBookmark` hook.
|
|
669
|
-
|
|
670
747
|
- Updated `index.ts` to re-export everything from `@equinor/fusion-framework-react-module-bookmark` instead of individual exports.
|
|
671
748
|
- Marked `useBookmark` as deprecated in `useBookmark.ts`.
|
|
672
749
|
- Enhanced `useCurrentBookmark` in `useCurrentBookmark.ts` to accept a `BookmarkPayloadGenerator` and use the `BookmarkModule` from `useAppModule`.
|
|
@@ -708,12 +785,10 @@
|
|
|
708
785
|
> This will introduce breaking changes to the configuration of `AppConfigurator.client`.
|
|
709
786
|
|
|
710
787
|
**Added**
|
|
711
|
-
|
|
712
788
|
- Introduced `AppClient` class to handle application manifest and configuration queries.
|
|
713
789
|
- Added `zod` to validate the application manifest.
|
|
714
790
|
|
|
715
791
|
**Changed**
|
|
716
|
-
|
|
717
792
|
- Updated `AppModuleProvider` to use `AppClient` for fetching application manifests and configurations.
|
|
718
793
|
- Modified `AppConfigurator` to utilize `AppClient` for client configuration.
|
|
719
794
|
- Updated `useApps` hook with new input parameter for `filterByCurrentUser` in `fusion-framework-react`.
|
|
@@ -845,7 +920,6 @@
|
|
|
845
920
|
- [#2320](https://github.com/equinor/fusion-framework/pull/2320) [`1dd85f3`](https://github.com/equinor/fusion-framework/commit/1dd85f3a408a73df556d1812a5f280945cc100ee) Thanks [@odinr](https://github.com/odinr)! - Removed the `removeComments` option from the `tsconfig.base.json` file.
|
|
846
921
|
|
|
847
922
|
Removing the `removeComments` option allows TypeScript to preserve comments in the compiled JavaScript output. This can be beneficial for several reasons:
|
|
848
|
-
|
|
849
923
|
1. Improved debugging: Preserved comments can help developers understand the code better during debugging sessions.
|
|
850
924
|
2. Documentation: JSDoc comments and other important code documentation will be retained in the compiled output.
|
|
851
925
|
3. Source map accuracy: Keeping comments can lead to more accurate source maps, which is crucial for debugging and error tracking.
|
|
@@ -1214,7 +1288,6 @@
|
|
|
1214
1288
|
### Minor Changes
|
|
1215
1289
|
|
|
1216
1290
|
- [#1646](https://github.com/equinor/fusion-framework/pull/1646) [`5eab8af`](https://github.com/equinor/fusion-framework/commit/5eab8afe3c3106cc67ad14ce4cbee6c7e4e8dfb1) Thanks [@odinr](https://github.com/odinr)! - Created namespace for MSAL:
|
|
1217
|
-
|
|
1218
1291
|
- Created hooks for accessing current authenticated account
|
|
1219
1292
|
- Created hooks for acquiring token
|
|
1220
1293
|
- Created hooks for acquiring access token
|
|
@@ -1441,7 +1514,6 @@
|
|
|
1441
1514
|
### Minor Changes
|
|
1442
1515
|
|
|
1443
1516
|
- [#934](https://github.com/equinor/fusion-framework/pull/934) [`ea081696`](https://github.com/equinor/fusion-framework/commit/ea0816967244917b01a3aa43b75cd3cf59573958) Thanks [@odinr](https://github.com/odinr)! - **Add tooling for navigation in React App package**
|
|
1444
|
-
|
|
1445
1517
|
- add hook for using the navigation module
|
|
1446
1518
|
- add hook for creating a react router
|
|
1447
1519
|
|
|
@@ -1472,7 +1544,6 @@
|
|
|
1472
1544
|
### Patch Changes
|
|
1473
1545
|
|
|
1474
1546
|
- [#905](https://github.com/equinor/fusion-framework/pull/905) [`a7858a1c`](https://github.com/equinor/fusion-framework/commit/a7858a1c01542e2dc94370709f122b4b99c3219c) Thanks [@odinr](https://github.com/odinr)! - **🚧 Chore: dedupe packages**
|
|
1475
|
-
|
|
1476
1547
|
- align all versions of typescript
|
|
1477
1548
|
- update types to build
|
|
1478
1549
|
- a couple of typecasts did not [satisfies](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-0.html#satisfies-support-in-jsdoc) and was recasted as `unknwon`, marked with `TODO`, should be fixed in future
|
package/README.md
CHANGED
|
@@ -1,139 +1,216 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @equinor/fusion-framework-react-app
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
React bindings for building modular Fusion Framework applications. Provides rendering helpers, configuration callbacks, and React hooks for accessing framework modules (HTTP, auth, context, navigation, bookmarks, settings, and more).
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- **One-line app bootstrap** via `renderApp` — creates a render function that mounts your component with React 18's `createRoot`
|
|
8
|
+
- **Module hooks** — `useAppModule` / `useAppModules` for type-safe access to any registered module
|
|
9
|
+
- **Sub-path entry-points** for optional capabilities: MSAL auth, HTTP, context, navigation, bookmarks, feature flags, settings, analytics, AG Grid theming, help center, and apploader
|
|
10
|
+
- **Environment variables** hook — `useAppEnvironmentVariables` for accessing app config at runtime
|
|
11
|
+
- **Lazy loading** — components are wrapped in `React.lazy` + `Suspense` automatically
|
|
12
|
+
|
|
13
|
+
## Installation
|
|
14
|
+
|
|
15
|
+
```sh
|
|
16
|
+
pnpm add @equinor/fusion-framework-react-app
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
|
|
21
|
+
### Bootstrap an application
|
|
4
22
|
|
|
5
|
-
## Configure
|
|
6
23
|
```tsx
|
|
7
24
|
// config.ts
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
configurator
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
);
|
|
25
|
+
import type { AppModuleInitiator } from '@equinor/fusion-framework-react-app';
|
|
26
|
+
|
|
27
|
+
export const configure: AppModuleInitiator = (configurator) => {
|
|
28
|
+
configurator.http.configureClient('my-api', {
|
|
29
|
+
baseUri: 'https://api.example.com',
|
|
30
|
+
defaultScopes: ['api://my-api/.default'],
|
|
31
|
+
});
|
|
16
32
|
};
|
|
17
33
|
|
|
18
34
|
// App.tsx
|
|
19
|
-
export const App = () =>
|
|
20
|
-
const client = useHttpClient('bar');
|
|
21
|
-
const [foo, setFoo] = useState('no value');
|
|
22
|
-
const onClick = useCallback(() => {
|
|
23
|
-
client.fetchAsync('api').then(x => x.json).then(setFoo);
|
|
24
|
-
}, [client]);
|
|
25
|
-
return <Button onClick={onClick}>{foo}</Button>
|
|
26
|
-
}
|
|
35
|
+
export const App = () => <h1>Hello Fusion</h1>;
|
|
27
36
|
|
|
28
37
|
// index.ts
|
|
29
|
-
import {
|
|
30
|
-
|
|
38
|
+
import { renderApp } from '@equinor/fusion-framework-react-app';
|
|
39
|
+
import { App } from './App';
|
|
40
|
+
import { configure } from './config';
|
|
41
|
+
|
|
42
|
+
export const render = renderApp(App, configure);
|
|
31
43
|
export default render;
|
|
32
44
|
```
|
|
33
45
|
|
|
34
|
-
|
|
46
|
+
### Access a module
|
|
35
47
|
|
|
36
|
-
### useModule
|
|
37
48
|
```tsx
|
|
38
|
-
import {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}, [auth]);
|
|
45
|
-
return <span>{token ?? 'fetching token'}</span>
|
|
46
|
-
}
|
|
49
|
+
import { useAppModule } from '@equinor/fusion-framework-react-app';
|
|
50
|
+
|
|
51
|
+
const MyComponent = () => {
|
|
52
|
+
const auth = useAppModule('auth');
|
|
53
|
+
// ...
|
|
54
|
+
};
|
|
47
55
|
```
|
|
48
56
|
|
|
49
|
-
|
|
57
|
+
### HTTP requests
|
|
50
58
|
|
|
51
|
-
|
|
52
|
-
|
|
59
|
+
```tsx
|
|
60
|
+
import { useHttpClient } from '@equinor/fusion-framework-react-app/http';
|
|
53
61
|
|
|
54
|
-
|
|
55
|
-
|
|
62
|
+
const MyComponent = () => {
|
|
63
|
+
const client = useHttpClient('my-api');
|
|
64
|
+
// client.fetch$('endpoint').subscribe(...)
|
|
65
|
+
// await client.fetchAsync('endpoint')
|
|
66
|
+
};
|
|
67
|
+
```
|
|
56
68
|
|
|
57
|
-
|
|
69
|
+
### MSAL authentication
|
|
58
70
|
|
|
59
|
-
|
|
60
|
-
import { useCurrentAccount, useAccessToken, useToken } from '@equinor/fusion-framework-react-app/msal';
|
|
71
|
+
> **Note:** Requires `@equinor/fusion-framework-module-msal`. The MSAL module must be configured by the host/portal — apps should only consume the hooks.
|
|
61
72
|
|
|
62
|
-
|
|
73
|
+
```tsx
|
|
74
|
+
import { useCurrentAccount, useAccessToken } from '@equinor/fusion-framework-react-app/msal';
|
|
63
75
|
|
|
64
|
-
|
|
65
|
-
// Get current logged-in user
|
|
76
|
+
const UserInfo = () => {
|
|
66
77
|
const user = useCurrentAccount();
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
// Get full token details
|
|
72
|
-
const { token } = useToken( { scopes } );
|
|
73
|
-
|
|
74
|
-
if (!user) return <div>Please log in</div>;
|
|
75
|
-
return <div>Welcome, {user.name}!</div>;
|
|
76
|
-
}
|
|
78
|
+
const { token } = useAccessToken({ scopes: ['User.Read'] });
|
|
79
|
+
if (!user) return <p>Not signed in</p>;
|
|
80
|
+
return <p>Welcome, {user.name}</p>;
|
|
81
|
+
};
|
|
77
82
|
```
|
|
78
83
|
|
|
79
|
-
|
|
84
|
+
### Context
|
|
80
85
|
|
|
81
|
-
|
|
86
|
+
```tsx
|
|
87
|
+
import { useCurrentContext } from '@equinor/fusion-framework-react-app/context';
|
|
88
|
+
|
|
89
|
+
const ContextInfo = () => {
|
|
90
|
+
const context = useCurrentContext();
|
|
91
|
+
return <p>Selected: {context?.title ?? 'none'}</p>;
|
|
92
|
+
};
|
|
93
|
+
```
|
|
82
94
|
|
|
83
|
-
###
|
|
95
|
+
### Navigation / routing
|
|
84
96
|
|
|
85
97
|
```tsx
|
|
86
|
-
import {
|
|
98
|
+
import { useRouter } from '@equinor/fusion-framework-react-app/navigation';
|
|
99
|
+
import { RouterProvider } from '@equinor/fusion-framework-react-router';
|
|
100
|
+
|
|
101
|
+
const routes = [{ path: '/', element: <Home /> }];
|
|
102
|
+
|
|
87
103
|
const App = () => {
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
useEffect(() => {
|
|
92
|
-
const sub = client.fetch('api/all').subscribe((x) => {
|
|
93
|
-
setFoo(x.json());
|
|
94
|
-
});
|
|
95
|
-
return () => sub.unsubscribe();
|
|
96
|
-
},[fooClient]);
|
|
97
|
-
|
|
98
|
-
// using as promise
|
|
99
|
-
const barClient = useHttpClient('bar');
|
|
100
|
-
useCallback(async() => {
|
|
101
|
-
const res = await portalClient.fetchAsync('api/bar');
|
|
102
|
-
console.log(res.json());
|
|
103
|
-
},[barClient]);
|
|
104
|
-
|
|
105
|
-
}
|
|
104
|
+
const router = useRouter(routes);
|
|
105
|
+
return <RouterProvider router={router} />;
|
|
106
|
+
};
|
|
106
107
|
```
|
|
107
108
|
|
|
108
|
-
|
|
109
|
+
### Feature flags
|
|
109
110
|
|
|
110
|
-
>
|
|
111
|
-
> `@equinor/fusion-framework-module-feature-flag` must be installed to make this module available
|
|
111
|
+
> **Note:** Requires `@equinor/fusion-framework-module-feature-flag`.
|
|
112
112
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
export const configure:
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
{
|
|
120
|
-
key: MyFeatures.MyFlag,
|
|
121
|
-
title: 'this is a flag',
|
|
122
|
-
},
|
|
123
|
-
{
|
|
124
|
-
key: MyFeatures.MyUrlFlag,
|
|
125
|
-
title: 'this feature can be toggled by ?my-url-flag=true',
|
|
126
|
-
allowUrl: true,
|
|
127
|
-
}
|
|
113
|
+
```tsx
|
|
114
|
+
import { enableFeatureFlag } from '@equinor/fusion-framework-react-app/feature-flag';
|
|
115
|
+
|
|
116
|
+
export const configure: AppModuleInitiator = (configurator) => {
|
|
117
|
+
enableFeatureFlag(configurator, [
|
|
118
|
+
{ key: 'dark-mode', title: 'Dark mode' },
|
|
119
|
+
{ key: 'beta-ui', title: 'Beta UI', allowUrl: true },
|
|
128
120
|
]);
|
|
129
|
-
}
|
|
121
|
+
};
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
```tsx
|
|
125
|
+
import { useFeature } from '@equinor/fusion-framework-react-app/feature-flag';
|
|
126
|
+
|
|
127
|
+
const Toggle = () => {
|
|
128
|
+
const { feature, toggleFeature } = useFeature('dark-mode');
|
|
129
|
+
return <Switch checked={feature?.enabled} onChange={() => toggleFeature()} />;
|
|
130
|
+
};
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Bookmarks
|
|
134
|
+
|
|
135
|
+
```tsx
|
|
136
|
+
import { useCurrentBookmark } from '@equinor/fusion-framework-react-app/bookmark';
|
|
137
|
+
|
|
138
|
+
const BookmarkView = () => {
|
|
139
|
+
const { currentBookmark } = useCurrentBookmark();
|
|
140
|
+
return <pre>{JSON.stringify(currentBookmark, null, 2)}</pre>;
|
|
141
|
+
};
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Settings
|
|
145
|
+
|
|
146
|
+
```tsx
|
|
147
|
+
import { useAppSetting } from '@equinor/fusion-framework-react-app/settings';
|
|
148
|
+
|
|
149
|
+
const ThemePicker = () => {
|
|
150
|
+
const [theme, setTheme] = useAppSetting('theme', 'light');
|
|
151
|
+
return <button onClick={() => setTheme('dark')}>Go dark</button>;
|
|
152
|
+
};
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Environment variables
|
|
156
|
+
|
|
157
|
+
```tsx
|
|
158
|
+
import { useAppEnvironmentVariables } from '@equinor/fusion-framework-react-app';
|
|
159
|
+
|
|
160
|
+
const EnvInfo = () => {
|
|
161
|
+
const env = useAppEnvironmentVariables();
|
|
162
|
+
if (!env.complete) return <p>Loading…</p>;
|
|
163
|
+
return <pre>{JSON.stringify(env.value, null, 2)}</pre>;
|
|
164
|
+
};
|
|
130
165
|
```
|
|
131
166
|
|
|
132
|
-
|
|
167
|
+
## API Reference
|
|
168
|
+
|
|
169
|
+
### Core exports (main entry-point)
|
|
170
|
+
|
|
171
|
+
| Export | Description |
|
|
172
|
+
| --- | --- |
|
|
173
|
+
| `renderApp` | Creates a mount function from a component and optional config callback |
|
|
174
|
+
| `makeComponent` | Lazily initialises modules and wraps a component in framework providers |
|
|
175
|
+
| `createComponent` | _(deprecated)_ Factory returning a `ComponentRenderer` |
|
|
176
|
+
| `createLegacyApp` | _(deprecated)_ Wrapper for legacy Fusion CLI apps |
|
|
177
|
+
| `renderComponent` | Lower-level helper: mounts a `ComponentRenderer` via `createRoot` |
|
|
178
|
+
| `useAppModule(key)` | Returns a single module instance by key |
|
|
179
|
+
| `useAppModules()` | Returns all initialised application modules |
|
|
180
|
+
| `useAppEnvironmentVariables()` | Observable state of the app's environment config |
|
|
181
|
+
|
|
182
|
+
### Sub-path entry-points
|
|
183
|
+
|
|
184
|
+
| Path | Key exports |
|
|
185
|
+
| --- | --- |
|
|
186
|
+
| `/msal` | `useCurrentAccount`, `useAccessToken`, `useToken` |
|
|
187
|
+
| `/http` | `useHttpClient` (re-export) |
|
|
188
|
+
| `/http/selectors` | Response selector utilities |
|
|
189
|
+
| `/context` | `useCurrentContext`, `useContextProvider`, `useFrameworkCurrentContext` |
|
|
190
|
+
| `/navigation` | `useRouter`, `useNavigationModule` |
|
|
191
|
+
| `/feature-flag` | `enableFeatureFlag`, `useFeature` |
|
|
192
|
+
| `/bookmark` | `enableBookmark`, `useCurrentBookmark`, `useBookmark` |
|
|
193
|
+
| `/settings` | `useAppSetting`, `useAppSettings` |
|
|
194
|
+
| `/analytics` | `useTrackFeature` |
|
|
195
|
+
| `/help-center` | `useHelpCenter` |
|
|
196
|
+
| `/apploader` | `Apploader`, `useApploader` |
|
|
197
|
+
| `/framework` | `useFramework`, `useCurrentUser`, `useFrameworkHttpClient` |
|
|
198
|
+
| `/widget` | Widget entry-point |
|
|
199
|
+
|
|
200
|
+
## Configuration
|
|
201
|
+
|
|
202
|
+
Application configuration is done via a callback passed to `renderApp` (or `makeComponent`). The callback receives an `IAppConfigurator` with builders for each module:
|
|
203
|
+
|
|
133
204
|
```ts
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
}
|
|
205
|
+
const configure: AppModuleInitiator = (configurator) => {
|
|
206
|
+
// HTTP clients
|
|
207
|
+
configurator.http.configureClient('my-api', { baseUri: '...' });
|
|
208
|
+
|
|
209
|
+
// Feature flags
|
|
210
|
+
enableFeatureFlag(configurator, [{ key: 'beta', title: 'Beta' }]);
|
|
211
|
+
|
|
212
|
+
// Navigation, context, etc. — see module docs
|
|
213
|
+
};
|
|
137
214
|
```
|
|
138
215
|
|
|
139
|
-
|
|
216
|
+
> The MSAL / auth module is configured by the host portal and hoisted to apps automatically. Do **not** configure it in application code.
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import { useAppModule } from '../useAppModule';
|
|
2
|
+
/**
|
|
3
|
+
* React hook that returns the current AG Grid theme from the application-scoped
|
|
4
|
+
* AG Grid module.
|
|
5
|
+
*
|
|
6
|
+
* @returns The active {@link Theme} object.
|
|
7
|
+
* @throws If the AG Grid module is not registered in the application.
|
|
8
|
+
*/
|
|
2
9
|
export const useTheme = () => {
|
|
3
10
|
const agGrid = useAppModule('agGrid');
|
|
4
11
|
if (!agGrid) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTheme.js","sourceRoot":"","sources":["../../../src/ag-grid/useTheme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAI/C,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAU,EAAE;IAClC,MAAM,MAAM,GAAG,YAAY,CAAe,QAAQ,CAAC,CAAC;IAEpD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,MAAM,CAAC,KAAc,CAAC;AAC/B,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"useTheme.js","sourceRoot":"","sources":["../../../src/ag-grid/useTheme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAI/C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAU,EAAE;IAClC,MAAM,MAAM,GAAG,YAAY,CAAe,QAAQ,CAAC,CAAC;IAEpD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,MAAM,CAAC,KAAc,CAAC;AAC/B,CAAC,CAAC"}
|
|
@@ -1,2 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Analytics sub-path entry-point.
|
|
3
|
+
*
|
|
4
|
+
* Provides the {@link useTrackFeature} hook for tracking application-level
|
|
5
|
+
* analytics events through the Fusion analytics module.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
1
9
|
export { useTrackFeature } from './useTrackFeature';
|
|
2
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/analytics/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/analytics/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -1,7 +1,23 @@
|
|
|
1
1
|
import { useFrameworkModule } from '@equinor/fusion-framework-react';
|
|
2
2
|
import { useCallback } from 'react';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* React hook that returns a callback for tracking application feature usage
|
|
5
|
+
* via the Fusion analytics module.
|
|
6
|
+
*
|
|
7
|
+
* The tracked event includes the current app key and context (if available)
|
|
8
|
+
* as attributes, enabling downstream analytics dashboards to group events
|
|
9
|
+
* by application and context.
|
|
10
|
+
*
|
|
11
|
+
* @returns A `trackFeature` callback: `(name: string, data?: AnyValueMap) => void`.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```tsx
|
|
15
|
+
* const trackFeature = useTrackFeature();
|
|
16
|
+
*
|
|
17
|
+
* const handleClick = useCallback(() => {
|
|
18
|
+
* trackFeature('button-click', { section: 'header' });
|
|
19
|
+
* }, [trackFeature]);
|
|
20
|
+
* ```
|
|
5
21
|
*/
|
|
6
22
|
export const useTrackFeature = () => {
|
|
7
23
|
const analyticsProvider = useFrameworkModule('analytics');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTrackFeature.js","sourceRoot":"","sources":["../../../src/analytics/useTrackFeature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAGrE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC
|
|
1
|
+
{"version":3,"file":"useTrackFeature.js","sourceRoot":"","sources":["../../../src/analytics/useTrackFeature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAGrE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,MAAM,iBAAiB,GAAG,kBAAkB,CAAkB,WAAW,CAAC,CAAC;IAC3E,MAAM,WAAW,GAAG,kBAAkB,CAAY,KAAK,CAAC,CAAC;IACzD,MAAM,eAAe,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAE1D;;;;;;;OAOG;IACH,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,IAAY,EAAE,IAAkB,EAAE,EAAE;QACnC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,iBAAiB,EAAE,cAAc,CAAC;gBAChC,IAAI,EAAE,2BAA2B;gBACjC,SAAS,EAAE,IAAI,KAAK,CAAC,8BAA8B,CAAC;aACrD,CAAC,CAAC;QACL,CAAC;QAED,iBAAiB,EAAE,aAAa,CAAC;YAC/B,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI;aACL;YACD,UAAU,EAAE;gBACV,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM;gBACpC,OAAO,EAAE,eAAe,EAAE,cAAc;oBACtC,CAAC,CAAC;wBACE,EAAE,EAAE,eAAe,CAAC,cAAc,CAAC,EAAE;wBACrC,UAAU,EAAE,eAAe,CAAC,cAAc,CAAC,UAAU;wBACrD,KAAK,EAAE,eAAe,CAAC,cAAc,CAAC,KAAK;wBAC3C,IAAI,EAAE,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;wBAC5C,MAAM,EAAE,eAAe,CAAC,cAAc,CAAC,MAAM;qBAC9C;oBACH,CAAC,CAAC,SAAS;aACd;SACF,CAAC,CAAC;IACL,CAAC,EACD,CAAC,iBAAiB,EAAE,WAAW,EAAE,eAAe,EAAE,iBAAiB,CAAC,CACrE,CAAC;IAEF,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC"}
|
|
@@ -9,7 +9,7 @@ import { useApploader } from './useApploader';
|
|
|
9
9
|
*
|
|
10
10
|
* @param { ApploaderProps } props - The props for the component.
|
|
11
11
|
* @param { string } props.appKey - The key of the Fusion app to load and mount.
|
|
12
|
-
* @returns {
|
|
12
|
+
* @returns { ReactElement } The rendered component, which displays loading, error, or the embedded app.
|
|
13
13
|
*
|
|
14
14
|
* @example
|
|
15
15
|
* <Apploader appKey="my-app" />
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Apploader.js","sourceRoot":"","sources":["../../../src/apploader/Apploader.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Apploader.js","sourceRoot":"","sources":["../../../src/apploader/Apploader.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAqB,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAM9C;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAE,MAAM,EAAkB,EAAgB,EAAE;IACpE,MAAM,QAAQ,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IACrD,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAE5D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACzC,OAAO;QACT,CAAC;QAED,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAErB,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,sCAAc,MAAM,IAAO,CAAC;IACrC,CAAC;IACD,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CACL,4CACiB,MAAM,eAAW,KAAK,CAAC,OAAO,IACzC,CACP,CAAC;IACJ,CAAC;IAED,OAAO,cAAK,GAAG,EAAE,QAAQ,GAAI,CAAC;AAChC,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Apploader sub-path entry-point.
|
|
3
|
+
*
|
|
4
|
+
* Provides the {@link Apploader} component and {@link useApploader} hook
|
|
5
|
+
* for embedding Fusion child applications inside a parent Fusion application.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
1
9
|
export { Apploader } from './Apploader';
|
|
2
10
|
export { useApploader } from './useApploader';
|
|
3
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/apploader/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAuB,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/apploader/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,SAAS,EAAuB,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bookmark sub-path entry-point.
|
|
3
|
+
*
|
|
4
|
+
* Provides helpers to enable and consume the Fusion bookmark module,
|
|
5
|
+
* allowing users to save and restore application state snapshots.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
1
9
|
export { enableBookmark } from '@equinor/fusion-framework-app/enable-bookmark';
|
|
2
10
|
export { useCurrentBookmark } from './useCurrentBookmark';
|
|
3
11
|
export { useBookmark } from './useBookmark';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/bookmark/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAE/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/bookmark/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAE/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context sub-path entry-point.
|
|
3
|
+
*
|
|
4
|
+
* Provides hooks for reading and interacting with the Fusion context
|
|
5
|
+
* (project, facility, etc.) at both the application and framework level.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
1
9
|
export * from '@equinor/fusion-framework-react-module-context';
|
|
2
10
|
export { useContextProvider } from './useContextProvider';
|
|
3
11
|
export { useCurrentContext } from './useCurrentContext';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/context/index.ts"],"names":[],"mappings":"AAAA,cAAc,gDAAgD,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/context/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,cAAc,gDAAgD,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC"}
|