@genesislcap/foundation-fdc3 14.192.2-fdc3-enhancements.4 → 14.192.2-fdc3-enhancements.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -41,6 +41,11 @@ export interface FDC3 {
41
41
  * @public
42
42
  */
43
43
  isReady: boolean;
44
+ /**
45
+ * Check if the interop global is available.
46
+ * @public
47
+ */
48
+ isInteropFdc3: () => boolean;
44
49
  /**
45
50
  * Observable which emits the current channel
46
51
  * When a new channel is joined a new value is emitted
@@ -129,6 +134,7 @@ export declare class DefaultFDC3 implements FDC3 {
129
134
  isReady: boolean;
130
135
  private _currentChannel$;
131
136
  currentChannelObs: Observable<Channel>;
137
+ isInteropFdc3: () => boolean;
132
138
  constructor();
133
139
  private connect;
134
140
  addIntentListeners(listeners: Map<FDC3Intents, FDC3ContextHandler>): void;
@@ -1 +1 @@
1
- {"version":3,"file":"fdc3.d.ts","sourceRoot":"","sources":["../../src/fdc3.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fdc3.d.ts","sourceRoot":"","sources":["../../src/fdc3.ts"],"names":[],"mappings":"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"}
package/dist/esm/fdc3.js CHANGED
@@ -17,14 +17,26 @@ export class DefaultFDC3 {
17
17
  this.isReady = false;
18
18
  this._currentChannel$ = new Subject();
19
19
  this.currentChannelObs = this._currentChannel$.asObservable();
20
+ this.isInteropFdc3 = () => !!window.io;
20
21
  this.connect();
21
22
  }
22
23
  connect() {
24
+ var _a, _b;
23
25
  return __awaiter(this, void 0, void 0, function* () {
24
26
  try {
25
27
  this.isReady = false;
26
28
  yield fdc3Ready();
27
29
  logger.debug('fdc3 connection success');
30
+ const channel = yield getCurrentChannel();
31
+ if (channel) {
32
+ this._currentChannel$.next(channel);
33
+ }
34
+ if (this.isInteropFdc3()) {
35
+ // Listen to changes from the io channel selector.
36
+ // This can be done on the interop container window which is outside this app scope
37
+ // Any changes made there will be emitted here and keep channel state in sync
38
+ (_b = (_a = window.io) === null || _a === void 0 ? void 0 : _a.channels) === null || _b === void 0 ? void 0 : _b.onChanged((ioChannel) => this._currentChannel$.next(ioChannel));
39
+ }
28
40
  }
29
41
  catch (err) {
30
42
  logger.error('fdc3 connection error', err);
@@ -870,6 +870,33 @@
870
870
  ],
871
871
  "name": "getOrCreateChannel"
872
872
  },
873
+ {
874
+ "kind": "PropertySignature",
875
+ "canonicalReference": "@genesislcap/foundation-fdc3!FDC3#isInteropFdc3:member",
876
+ "docComment": "/**\n * Check if the interop global is available.\n *\n * @public\n */\n",
877
+ "excerptTokens": [
878
+ {
879
+ "kind": "Content",
880
+ "text": "isInteropFdc3: "
881
+ },
882
+ {
883
+ "kind": "Content",
884
+ "text": "() => boolean"
885
+ },
886
+ {
887
+ "kind": "Content",
888
+ "text": ";"
889
+ }
890
+ ],
891
+ "isReadonly": false,
892
+ "isOptional": false,
893
+ "releaseTag": "Public",
894
+ "name": "isInteropFdc3",
895
+ "propertyTypeTokenRange": {
896
+ "startIndex": 1,
897
+ "endIndex": 2
898
+ }
899
+ },
873
900
  {
874
901
  "kind": "PropertySignature",
875
902
  "canonicalReference": "@genesislcap/foundation-fdc3!FDC3#isReady:member",
@@ -36,6 +36,7 @@ export declare class DefaultFDC3 implements FDC3 {
36
36
  isReady: boolean;
37
37
  private _currentChannel$;
38
38
  currentChannelObs: Observable<Channel>;
39
+ isInteropFdc3: () => boolean;
39
40
  constructor();
40
41
  private connect;
41
42
  addIntentListeners(listeners: Map<FDC3Intents, FDC3ContextHandler>): void;
@@ -62,6 +63,11 @@ export declare interface FDC3 {
62
63
  * @public
63
64
  */
64
65
  isReady: boolean;
66
+ /**
67
+ * Check if the interop global is available.
68
+ * @public
69
+ */
70
+ isInteropFdc3: () => boolean;
65
71
  /**
66
72
  * Observable which emits the current channel
67
73
  * When a new channel is joined a new value is emitted
@@ -0,0 +1,13 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-fdc3](./foundation-fdc3.md) &gt; [FDC3](./foundation-fdc3.fdc3.md) &gt; [isInteropFdc3](./foundation-fdc3.fdc3.isinteropfdc3.md)
4
+
5
+ ## FDC3.isInteropFdc3 property
6
+
7
+ Check if the interop global is available.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ isInteropFdc3: () => boolean;
13
+ ```
@@ -17,6 +17,7 @@ export interface FDC3
17
17
  | Property | Modifiers | Type | Description |
18
18
  | --- | --- | --- | --- |
19
19
  | [currentChannelObs](./foundation-fdc3.fdc3.currentchannelobs.md) | | Observable&lt;[FDC3Channel](./foundation-fdc3.fdc3channel.md)<!-- -->&gt; | Observable which emits the current channel When a new channel is joined a new value is emitted |
20
+ | [isInteropFdc3](./foundation-fdc3.fdc3.isinteropfdc3.md) | | () =&gt; boolean | Check if the interop global is available. |
20
21
  | [isReady](./foundation-fdc3.fdc3.isready.md) | | boolean | Whether the FDC3 API is ready. |
21
22
 
22
23
  ## Methods
@@ -60,6 +60,8 @@ export class DefaultFDC3 implements FDC3 {
60
60
  // (undocumented)
61
61
  getOrCreateChannel(channelId: string): Promise<FDC3Channel>;
62
62
  // (undocumented)
63
+ isInteropFdc3: () => boolean;
64
+ // (undocumented)
63
65
  isReady: boolean;
64
66
  // (undocumented)
65
67
  joinChannel(channelId: string): Promise<void>;
@@ -81,6 +83,7 @@ export interface FDC3 {
81
83
  findIntentsByContext(context: FDC3Context): Promise<FDC3AppIntent[]>;
82
84
  getCurrentChannel(): Promise<Channel>;
83
85
  getOrCreateChannel(channelId: string): Promise<FDC3Channel>;
86
+ isInteropFdc3: () => boolean;
84
87
  isReady: boolean;
85
88
  joinChannel(channelId: string): Promise<void>;
86
89
  raiseIntent(context: FDC3Context, intent?: FDC3Intents): Promise<FDC3IntentResolution>;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genesislcap/foundation-fdc3",
3
3
  "description": "Genesis Foundation FDC3",
4
- "version": "14.192.2-fdc3-enhancements.4",
4
+ "version": "14.192.2-fdc3-enhancements.5",
5
5
  "sideEffects": false,
6
6
  "license": "SEE LICENSE IN license.txt",
7
7
  "main": "dist/esm/index.js",
@@ -59,22 +59,22 @@
59
59
  }
60
60
  },
61
61
  "devDependencies": {
62
- "@genesislcap/foundation-testing": "14.192.2-fdc3-enhancements.4",
63
- "@genesislcap/genx": "14.192.2-fdc3-enhancements.4",
64
- "@genesislcap/rollup-builder": "14.192.2-fdc3-enhancements.4",
65
- "@genesislcap/ts-builder": "14.192.2-fdc3-enhancements.4",
66
- "@genesislcap/uvu-playwright-builder": "14.192.2-fdc3-enhancements.4",
67
- "@genesislcap/vite-builder": "14.192.2-fdc3-enhancements.4",
68
- "@genesislcap/webpack-builder": "14.192.2-fdc3-enhancements.4",
62
+ "@genesislcap/foundation-testing": "14.192.2-fdc3-enhancements.5",
63
+ "@genesislcap/genx": "14.192.2-fdc3-enhancements.5",
64
+ "@genesislcap/rollup-builder": "14.192.2-fdc3-enhancements.5",
65
+ "@genesislcap/ts-builder": "14.192.2-fdc3-enhancements.5",
66
+ "@genesislcap/uvu-playwright-builder": "14.192.2-fdc3-enhancements.5",
67
+ "@genesislcap/vite-builder": "14.192.2-fdc3-enhancements.5",
68
+ "@genesislcap/webpack-builder": "14.192.2-fdc3-enhancements.5",
69
69
  "rimraf": "^5.0.0"
70
70
  },
71
71
  "dependencies": {
72
72
  "@finos/fdc3": "^1.2.0",
73
- "@genesislcap/foundation-logger": "14.192.2-fdc3-enhancements.4",
74
- "@genesislcap/foundation-notifications": "14.192.2-fdc3-enhancements.4",
75
- "@genesislcap/foundation-ui": "14.192.2-fdc3-enhancements.4",
76
- "@genesislcap/foundation-utils": "14.192.2-fdc3-enhancements.4",
77
- "@genesislcap/web-core": "14.192.2-fdc3-enhancements.4",
73
+ "@genesislcap/foundation-logger": "14.192.2-fdc3-enhancements.5",
74
+ "@genesislcap/foundation-notifications": "14.192.2-fdc3-enhancements.5",
75
+ "@genesislcap/foundation-ui": "14.192.2-fdc3-enhancements.5",
76
+ "@genesislcap/foundation-utils": "14.192.2-fdc3-enhancements.5",
77
+ "@genesislcap/web-core": "14.192.2-fdc3-enhancements.5",
78
78
  "@interopio/desktop": "^6.3.1",
79
79
  "@microsoft/fast-element": "^1.12.0",
80
80
  "@microsoft/fast-foundation": "^2.49.4",
@@ -89,5 +89,5 @@
89
89
  "publishConfig": {
90
90
  "access": "public"
91
91
  },
92
- "gitHead": "d7f7350aa56a095dd9d9b989a7a5c3ea18ca48f9"
92
+ "gitHead": "a84534e0125d148af6d676c5db9ee422769d9edd"
93
93
  }
package/test/fdc3.mock.ts CHANGED
@@ -4,8 +4,10 @@ export const mockFdc3 = () => {
4
4
  if (!('fdc3' in window)) {
5
5
  const broadcast = sinon.stub();
6
6
  const addContextListener = sinon.stub();
7
+ const channel = sinon.stub();
7
8
  window.fdc3 = {
8
9
  broadcast,
10
+ channel,
9
11
  addContextListener,
10
12
  getOrCreateChannel: sinon.stub().returns({
11
13
  broadcast,
@@ -19,6 +21,9 @@ export const mockFdc3 = () => {
19
21
  fireIntent: (value) => callback(value),
20
22
  });
21
23
  },
24
+ getCurrentChannel: sinon.stub().returns({
25
+ channel,
26
+ }),
22
27
  };
23
28
  }
24
29
  };