@equinor/fusion-framework-react 5.3.8 → 6.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.
Files changed (58) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/esm/app/index.js +1 -0
  3. package/dist/esm/app/index.js.map +1 -1
  4. package/dist/esm/app/useAppProvider.js.map +1 -1
  5. package/dist/esm/app/useApps.js.map +1 -1
  6. package/dist/esm/app/useCurrentApp.js.map +1 -1
  7. package/dist/esm/app/useCurrentAppModule.js +11 -0
  8. package/dist/esm/app/useCurrentAppModule.js.map +1 -0
  9. package/dist/esm/app/useCurrentAppModules.js +9 -3
  10. package/dist/esm/app/useCurrentAppModules.js.map +1 -1
  11. package/dist/esm/feature-flag/index.js +6 -0
  12. package/dist/esm/feature-flag/index.js.map +1 -0
  13. package/dist/esm/feature-flag/useCurrentAppFeatures.js +12 -0
  14. package/dist/esm/feature-flag/useCurrentAppFeatures.js.map +1 -0
  15. package/dist/esm/feature-flag/useFeature.js +16 -0
  16. package/dist/esm/feature-flag/useFeature.js.map +1 -0
  17. package/dist/esm/feature-flag/useFeatures.js +27 -0
  18. package/dist/esm/feature-flag/useFeatures.js.map +1 -0
  19. package/dist/esm/feature-flag/useFrameworkFeature.js +11 -0
  20. package/dist/esm/feature-flag/useFrameworkFeature.js.map +1 -0
  21. package/dist/esm/feature-flag/useFrameworkFeatures.js +11 -0
  22. package/dist/esm/feature-flag/useFrameworkFeatures.js.map +1 -0
  23. package/dist/esm/hooks/use-http-client.js.map +1 -1
  24. package/dist/esm/index.js +1 -0
  25. package/dist/esm/index.js.map +1 -1
  26. package/dist/esm/signalr/index.js.map +1 -1
  27. package/dist/esm/useFramework.js.map +1 -1
  28. package/dist/esm/useFrameworkModule.js +10 -0
  29. package/dist/esm/useFrameworkModule.js.map +1 -0
  30. package/dist/esm/version.js +1 -1
  31. package/dist/tsconfig.tsbuildinfo +1 -1
  32. package/dist/types/app/index.d.ts +1 -0
  33. package/dist/types/app/useCurrentAppModule.d.ts +8 -0
  34. package/dist/types/app/useCurrentAppModules.d.ts +2 -2
  35. package/dist/types/feature-flag/index.d.ts +6 -0
  36. package/dist/types/feature-flag/useCurrentAppFeatures.d.ts +2 -0
  37. package/dist/types/feature-flag/useFeature.d.ts +8 -0
  38. package/dist/types/feature-flag/useFeatures.d.ts +9 -0
  39. package/dist/types/feature-flag/useFrameworkFeature.d.ts +3 -0
  40. package/dist/types/feature-flag/useFrameworkFeatures.d.ts +3 -0
  41. package/dist/types/index.d.ts +1 -0
  42. package/dist/types/useFrameworkModule.d.ts +3 -0
  43. package/dist/types/version.d.ts +1 -1
  44. package/package.json +24 -33
  45. package/src/app/index.ts +1 -0
  46. package/src/app/useCurrentAppModule.ts +43 -0
  47. package/src/app/useCurrentAppModules.ts +14 -4
  48. package/src/feature-flag/README.md +44 -0
  49. package/src/feature-flag/index.ts +7 -0
  50. package/src/feature-flag/useCurrentAppFeatures.ts +19 -0
  51. package/src/feature-flag/useFeature.ts +47 -0
  52. package/src/feature-flag/useFeatures.ts +77 -0
  53. package/src/feature-flag/useFrameworkFeature.ts +22 -0
  54. package/src/feature-flag/useFrameworkFeatures.ts +20 -0
  55. package/src/index.tsx +1 -0
  56. package/src/useFrameworkModule.ts +31 -0
  57. package/src/version.ts +1 -1
  58. package/tsconfig.json +4 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,31 @@
1
1
  # Change Log
2
2
 
3
+ ## 6.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - [#1747](https://github.com/equinor/fusion-framework/pull/1747) [`8b031c3`](https://github.com/equinor/fusion-framework/commit/8b031c31f314deeffdf395fc847e4279b61aab7e) Thanks [@odinr](https://github.com/odinr)! - refactor framework feature flag hooks
8
+
9
+ - useCurrentAppFeatures
10
+ - _useFeature (internal)_
11
+ - _useFeatures (internal)_
12
+ - useFrameworkFeature
13
+ - useFrameworkFeatures
14
+
15
+ > [!CAUTION] > `useCurrentAppModules` does no longer return `Observable<AppModulesInstance>`, but current state of `AppModulesInstance | null`
16
+
17
+ ### Patch Changes
18
+
19
+ - Updated dependencies [[`8b031c3`](https://github.com/equinor/fusion-framework/commit/8b031c31f314deeffdf395fc847e4279b61aab7e)]:
20
+ - @equinor/fusion-framework-module-feature-flag@1.0.0
21
+
22
+ ## 5.3.9
23
+
24
+ ### Patch Changes
25
+
26
+ - Updated dependencies [[`1918c82`](https://github.com/equinor/fusion-framework/commit/1918c8228bc7158c4c358aa8f5688342e3b11b1d), [`1918c82`](https://github.com/equinor/fusion-framework/commit/1918c8228bc7158c4c358aa8f5688342e3b11b1d)]:
27
+ - @equinor/fusion-framework-module-feature-flag@0.0.1
28
+
3
29
  ## 5.3.8
4
30
 
5
31
  ### Patch Changes
@@ -1,4 +1,5 @@
1
1
  export { useCurrentApp } from './useCurrentApp';
2
+ export { useCurrentAppModule } from './useCurrentAppModule';
2
3
  export { useCurrentAppModules } from './useCurrentAppModules';
3
4
  export { useApps } from './useApps';
4
5
  export { useAppProvider } from './useAppProvider';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/app/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/app/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAppProvider.js","sourceRoot":"","sources":["../../../src/app/useAppProvider.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAM/C,MAAM,CAAC,MAAM,cAAc,GAAG,GAA8C,EAAE;IAC1E,MAAM,QAAQ,GAAG,YAAY,EAAe,CAAC,OAAO,CAAC,GAAG,CAAC;IACzD,IAAI,CAAC,QAAQ,EAAE;QACX,MAAM,KAAK,CAAC,sDAAsD,CAAC,CAAC;KACvE;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"useAppProvider.js","sourceRoot":"","sources":["../../../src/app/useAppProvider.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAM/C,MAAM,CAAC,MAAM,cAAc,GAAG,GAA8C,EAAE;IAC1E,MAAM,QAAQ,GAAG,YAAY,EAAe,CAAC,OAAO,CAAC,GAAG,CAAC;IACzD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,MAAM,KAAK,CAAC,sDAAsD,CAAC,CAAC;IACxE,CAAC;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useApps.js","sourceRoot":"","sources":["../../../src/app/useApps.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAOlD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAEvB,EAA2D,EAAE;IAC1D,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAClC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CACrD,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,kBAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAC3D,CAAC;IAEF,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE;QACtB,IAAI,SAAS,IAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,CAAA,EAAE;YACnC,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SAC/C;QACD,OAAO,SAAS,CAAC;IACrB,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAEtB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC;AAC1C,CAAC,CAAC;AAEF,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"useApps.js","sourceRoot":"","sources":["../../../src/app/useApps.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAOlD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAEvB,EAA2D,EAAE;IAC1D,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAClC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CACrD,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,kBAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAC3D,CAAC;IAEF,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE;QACtB,IAAI,SAAS,IAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,CAAA,EAAE,CAAC;YACpC,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAEtB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC;AAC1C,CAAC,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useCurrentApp.js","sourceRoot":"","sources":["../../../src/app/useCurrentApp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAKtE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAU/C,MAAM,CAAC,MAAM,aAAa,GAAG,GAK3B,EAAE;IACA,MAAM,QAAQ,GAAG,YAAY,EAAe,CAAC,OAAO,CAAC,GAAG,CAAC;IACzD,IAAI,CAAC,QAAQ,EAAE;QACX,MAAM,KAAK,CAAC,sDAAsD,CAAC,CAAC;KACvE;IACD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACzD,OAAO;QACH,UAAU,EAAE,KAAmC;QAC/C,aAAa,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC/E,eAAe,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QACnF,KAAK;KACR,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"useCurrentApp.js","sourceRoot":"","sources":["../../../src/app/useCurrentApp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAKtE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAU/C,MAAM,CAAC,MAAM,aAAa,GAAG,GAK3B,EAAE;IACA,MAAM,QAAQ,GAAG,YAAY,EAAe,CAAC,OAAO,CAAC,GAAG,CAAC;IACzD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,MAAM,KAAK,CAAC,sDAAsD,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACzD,OAAO;QACH,UAAU,EAAE,KAAmC;QAC/C,aAAa,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC/E,eAAe,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QACnF,KAAK;KACR,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,11 @@
1
+ import useCurrentAppModules from './useCurrentAppModules';
2
+ export const useCurrentAppModule = (moduleKey) => {
3
+ const { modules, error, complete } = useCurrentAppModules();
4
+ const module = modules === null
5
+ ? null
6
+ :
7
+ modules[moduleKey];
8
+ return { module, error, complete };
9
+ };
10
+ export default useCurrentAppModule;
11
+ //# sourceMappingURL=useCurrentAppModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCurrentAppModule.js","sourceRoot":"","sources":["../../../src/app/useCurrentAppModule.ts"],"names":[],"mappings":"AAOA,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAY1D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAI/B,SAAe,EASjB,EAAE;IACA,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,oBAAoB,EAAE,CAAC;IAC5D,MAAM,MAAM,GACR,OAAO,KAAK,IAAI;QACZ,CAAC,CAAC,IAAI;QACN,CAAC;YACE,OAAO,CAAC,SAAiC,CAAS,CAAC;IAC9D,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AACvC,CAAC,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -1,14 +1,20 @@
1
1
  import { useMemo } from 'react';
2
2
  import useCurrentApp from './useCurrentApp';
3
3
  import { of } from 'rxjs';
4
+ import { useObservableState } from '@equinor/fusion-observable/react';
4
5
  export const useCurrentAppModules = () => {
5
- const { currentApp, error } = useCurrentApp();
6
+ var _a;
7
+ const { currentApp, error: appError } = useCurrentApp();
6
8
  const modules$ = useMemo(() => currentApp
7
9
  ? currentApp.instance$
8
10
  : of(null), [currentApp]);
11
+ const { value: modules, error, complete, } = useObservableState(modules$, {
12
+ initial: (_a = currentApp === null || currentApp === void 0 ? void 0 : currentApp.state.modules) !== null && _a !== void 0 ? _a : null,
13
+ });
9
14
  return {
10
- modules$,
11
- error,
15
+ modules,
16
+ error: error !== null && error !== void 0 ? error : appError,
17
+ complete,
12
18
  };
13
19
  };
14
20
  export default useCurrentAppModules;
@@ -1 +1 @@
1
- {"version":3,"file":"useCurrentAppModules.js","sourceRoot":"","sources":["../../../src/app/useCurrentAppModules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EAAc,EAAE,EAAE,MAAM,MAAM,CAAC;AAWtC,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAGlC,EAAE;IACA,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,aAAa,EAAY,CAAC;IACxD,MAAM,QAAQ,GAAG,OAAO,CACpB,GAAG,EAAE,CACD,UAAU;QACN,CAAC,CAAE,UAAU,CAAC,SAAsD;QACpE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAClB,CAAC,UAAU,CAAC,CACf,CAAC;IACF,OAAO;QACH,QAAQ;QACR,KAAK;KACR,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"useCurrentAppModules.js","sourceRoot":"","sources":["../../../src/app/useCurrentAppModules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EAAc,EAAE,EAAE,MAAM,MAAM,CAAC;AAEtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAUtE,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAIlC,EAAE;;IACA,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAY,CAAC;IAClE,MAAM,QAAQ,GAAG,OAAO,CACpB,GAAG,EAAE,CACD,UAAU;QACN,CAAC,CAAE,UAAU,CAAC,SAAsD;QACpE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAClB,CAAC,UAAU,CAAC,CACf,CAAC;IACF,MAAM,EACF,KAAK,EAAE,OAAO,EACd,KAAK,EACL,QAAQ,GACX,GAAG,kBAAkB,CAAC,QAAQ,EAAE;QAC7B,OAAO,EAAE,MAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,CAAC,OAAmD,mCAAI,IAAI;KAC1F,CAAC,CAAC;IACH,OAAO;QACH,OAAO;QACP,KAAK,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,QAAQ;QACxB,QAAQ;KACX,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { useFeature } from './useFeature';
2
+ export { useFeatures } from './useFeatures';
3
+ export { useCurrentAppFeatures } from './useCurrentAppFeatures';
4
+ export { useFrameworkFeature } from './useFrameworkFeature';
5
+ export { useFrameworkFeatures } from './useFrameworkFeatures';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/feature-flag/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { useCurrentAppModule } from '../app';
2
+ import { useFeatures } from './useFeatures';
3
+ export const useCurrentAppFeatures = () => {
4
+ const { module, error: moduleError } = useCurrentAppModule('featureFlag');
5
+ const { features, toggleFeature, error } = useFeatures(module);
6
+ return {
7
+ features,
8
+ toggleFeature,
9
+ error: error !== null && error !== void 0 ? error : moduleError,
10
+ };
11
+ };
12
+ //# sourceMappingURL=useCurrentAppFeatures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCurrentAppFeatures.js","sourceRoot":"","sources":["../../../src/feature-flag/useCurrentAppFeatures.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,WAAW,EAA0B,MAAM,eAAe,CAAC;AAMpE,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAsB,EAAE;IACzD,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,mBAAmB,CAAoB,aAAa,CAAC,CAAC;IAE7F,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAE/D,OAAO;QACH,QAAQ;QACR,aAAa;QACb,KAAK,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,WAAW;KAC9B,CAAC;AACN,CAAC,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { useCallback, useMemo } from 'react';
2
+ import { EMPTY } from 'rxjs';
3
+ import { useObservableState } from '@equinor/fusion-observable/react';
4
+ import { findFeature } from '@equinor/fusion-framework-module-feature-flag/selectors';
5
+ export const useFeature = (provider, key) => {
6
+ const feature$ = useMemo(() => provider.features$.pipe(findFeature(key)), [provider, key]);
7
+ const { value: feature, error } = useObservableState(feature$ !== null && feature$ !== void 0 ? feature$ : EMPTY);
8
+ const toggleFeature = useCallback((enable) => {
9
+ var _a;
10
+ const enabled = enable === undefined ? !((_a = provider.getFeature(key)) === null || _a === void 0 ? void 0 : _a.enabled) : enable;
11
+ provider.toggleFeature({ key, enabled });
12
+ }, [provider, key]);
13
+ return { feature, toggleFeature, error };
14
+ };
15
+ export default useFeature;
16
+ //# sourceMappingURL=useFeature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFeature.js","sourceRoot":"","sources":["../../../src/feature-flag/useFeature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAO7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,OAAO,EAAE,WAAW,EAAE,MAAM,yDAAyD,CAAC;AAmBtF,MAAM,CAAC,MAAM,UAAU,GAAG,CACtB,QAA8B,EAC9B,GAAW,EACQ,EAAE;IACrB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAI,GAAG,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;IAC9F,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,kBAAkB,CAAC,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,KAAK,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,WAAW,CAC7B,CAAC,MAAgB,EAAE,EAAE;;QACjB,MAAM,OAAO,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA,MAAA,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,0CAAE,OAAO,CAAA,CAAC,CAAC,CAAC,MAAM,CAAC;QACnF,QAAQ,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7C,CAAC,EACD,CAAC,QAAQ,EAAE,GAAG,CAAC,CAClB,CAAC;IACF,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;AAC7C,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { useCallback, useMemo } from 'react';
2
+ import { of } from 'rxjs';
3
+ import { map } from 'rxjs/operators';
4
+ import { useObservableState } from '@equinor/fusion-observable/react';
5
+ export const useFeatures = (provider, selector) => {
6
+ var _a;
7
+ const { value: features, error } = useObservableState(useMemo(() => {
8
+ if (provider) {
9
+ return provider === null || provider === void 0 ? void 0 : provider.features$.pipe(map((x) => {
10
+ const values = Object.values(x);
11
+ return selector ? values.filter(selector) : values;
12
+ }));
13
+ }
14
+ return of([]);
15
+ }, [provider, selector]), { initial: Object.values((_a = provider === null || provider === void 0 ? void 0 : provider.features) !== null && _a !== void 0 ? _a : {}) });
16
+ const toggleFeature = useCallback((key, enable) => {
17
+ var _a;
18
+ if (!provider) {
19
+ throw new Error('Missing IFeatureFlagProvider.');
20
+ }
21
+ const enabled = enable === undefined ? !((_a = provider.getFeature(key)) === null || _a === void 0 ? void 0 : _a.enabled) : enable;
22
+ provider.toggleFeature({ key, enabled });
23
+ }, [provider]);
24
+ return { features, error, toggleFeature };
25
+ };
26
+ export default useFeatures;
27
+ //# sourceMappingURL=useFeatures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFeatures.js","sourceRoot":"","sources":["../../../src/feature-flag/useFeatures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AASrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAoBtE,MAAM,CAAC,MAAM,WAAW,GAAG,CACvB,QAAsC,EACtC,QAA4B,EACX,EAAE;;IAMnB,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,kBAAkB,CACjD,OAAO,CAAC,GAAG,EAAE;QACT,IAAI,QAAQ,EAAE,CAAC;YACX,OAAO,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,SAAS,CAAC,IAAI,CAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACN,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAChC,OAAO,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACvD,CAAC,CAAC,CACL,CAAC;QACN,CAAC;QACD,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,EACxB,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,mCAAI,EAAE,CAAC,EAAE,CACvD,CAAC;IAQF,MAAM,aAAa,GAAG,WAAW,CAC7B,CAAC,GAAW,EAAE,MAAgB,EAAE,EAAE;;QAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA,MAAA,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,0CAAE,OAAO,CAAA,CAAC,CAAC,CAAC,MAAM,CAAC;QAEnF,QAAQ,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7C,CAAC,EACD,CAAC,QAAQ,CAAC,CACb,CAAC;IACF,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;AAC9C,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { useFrameworkModule } from '../useFrameworkModule';
2
+ import { useFeature } from './useFeature';
3
+ export const useFrameworkFeature = (key) => {
4
+ const provider = useFrameworkModule('featureFlag');
5
+ if (!provider) {
6
+ throw Error('Feature flagging is not enabled in the framework');
7
+ }
8
+ return useFeature(provider, key);
9
+ };
10
+ export default useFrameworkFeature;
11
+ //# sourceMappingURL=useFrameworkFeature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFrameworkFeature.js","sourceRoot":"","sources":["../../../src/feature-flag/useFrameworkFeature.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAU1C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAI,GAAW,EAAoC,EAAE;IACpF,MAAM,QAAQ,GAAG,kBAAkB,CAAoB,aAAa,CAAC,CAAC;IACtE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,MAAM,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACrC,CAAC,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { useFrameworkModule } from '../useFrameworkModule';
2
+ import { useFeatures } from './useFeatures';
3
+ export const useFrameworkFeatures = () => {
4
+ const provider = useFrameworkModule('featureFlag');
5
+ if (!provider) {
6
+ throw Error('Feature flagging is not enabled in the framework');
7
+ }
8
+ return useFeatures(provider);
9
+ };
10
+ export default useFrameworkFeatures;
11
+ //# sourceMappingURL=useFrameworkFeatures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFrameworkFeatures.js","sourceRoot":"","sources":["../../../src/feature-flag/useFrameworkFeatures.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAQ5C,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAmC,EAAE;IACrE,MAAM,QAAQ,GAAG,kBAAkB,CAAoB,aAAa,CAAC,CAAC;IACtE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,MAAM,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-http-client.js","sourceRoot":"","sources":["../../../src/hooks/use-http-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAK/C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAyB,EAAc,EAAE;IACnE,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IAEjC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE;QACxB,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACxC,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;SACpD;QACD,MAAM,KAAK,CAAC,iCAAiC,IAAI,GAAG,CAAC,CAAC;IAC1D,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;IAEtB,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC"}
1
+ {"version":3,"file":"use-http-client.js","sourceRoot":"","sources":["../../../src/hooks/use-http-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAK/C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAyB,EAAc,EAAE;IACnE,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IAEjC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE;QACxB,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,KAAK,CAAC,iCAAiC,IAAI,GAAG,CAAC,CAAC;IAC1D,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;IAEtB,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC"}
package/dist/esm/index.js CHANGED
@@ -2,5 +2,6 @@ export { FusionConfigurator } from '@equinor/fusion-framework';
2
2
  export { createFrameworkProvider } from './create-framework-provider';
3
3
  export { FrameworkProvider } from './context';
4
4
  export { useFramework } from './useFramework';
5
+ export { useFrameworkModule } from './useFrameworkModule';
5
6
  export { default, Framework } from './Framework';
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/signalr/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAiB,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAwBjG,MAAM,CAAC,MAAM,UAAU,GAAG,CACtB,KAAa,EACb,OAAe,EACuB,EAAE;IACxC,MAAM,QAAQ,GAAG,YAAY,EAAmB,CAAC,OAAO,CAAC,OAAO,CAAC;IACjE,IAAI,CAAC,QAAQ,EAAE;QACX,MAAM,KAAK,CACP,+EAA+E,CAClF,CAAC;KACL;IACD,OAAO,gBAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACtD,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/signalr/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAiB,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAwBjG,MAAM,CAAC,MAAM,UAAU,GAAG,CACtB,KAAa,EACb,OAAe,EACuB,EAAE;IACxC,MAAM,QAAQ,GAAG,YAAY,EAAmB,CAAC,OAAO,CAAC,OAAO,CAAC;IACjE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,MAAM,KAAK,CACP,+EAA+E,CAClF,CAAC;IACN,CAAC;IACD,OAAO,gBAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACtD,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useFramework.js","sourceRoot":"","sources":["../../src/useFramework.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,MAAM,CAAC,MAAM,YAAY,GAAG,GAA6D,EAAE;IACvF,IAAI,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,CAAC,SAAS,EAAE;QACZ,OAAO,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;KACvD;IACD,SAAS,aAAT,SAAS,cAAT,SAAS,IAAT,SAAS,GAAK,MAAM,CAAC,MAAM,EAAC;IAC5B,IAAI,CAAC,SAAS,EAAE;QACZ,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;KACtE;IACD,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"useFramework.js","sourceRoot":"","sources":["../../src/useFramework.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,MAAM,CAAC,MAAM,YAAY,GAAG,GAA6D,EAAE;IACvF,IAAI,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IACxD,CAAC;IACD,SAAS,aAAT,SAAS,cAAT,SAAS,IAAT,SAAS,GAAK,MAAM,CAAC,MAAM,EAAC;IAC5B,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { useFramework } from './useFramework';
2
+ export const useFrameworkModule = (name) => {
3
+ const framework = useFramework();
4
+ const module = framework.modules[name];
5
+ if (!module) {
6
+ console.warn(`the requested module [${module}] is not included in the framework instance`);
7
+ }
8
+ return module;
9
+ };
10
+ //# sourceMappingURL=useFrameworkModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFrameworkModule.js","sourceRoot":"","sources":["../../src/useFrameworkModule.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAY9C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAI9B,IAAU,EAGsE,EAAE;IAClF,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IAIjC,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,OAAO,CAAC,IAAI,CAAC,yBAAyB,MAAM,6CAA6C,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC"}
@@ -1,2 +1,2 @@
1
- export const version = '5.3.8';
1
+ export const version = '6.0.0';
2
2
  //# sourceMappingURL=version.js.map