@genesislcap/foundation-fdc3 14.178.0 → 14.180.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.
@@ -96,6 +96,17 @@ export interface FDC3 {
96
96
  * @param type - type of the channel
97
97
  */
98
98
  broadcastOnChannelEventHandler(channelName: string, type: string): Promise<(e: any) => Promise<void>>;
99
+ /**
100
+ * Helper function to add a context listener on a channel with a handler for channel messages
101
+ * @param channelName - name of the channel
102
+ * @param channelType - type of the channel
103
+ * @param callback - handler to for the channel context listener
104
+ * */
105
+ addChannelListener(channelName: string, channelType: string, callback: (any: any) => void): Promise<Channel>;
106
+ /**
107
+ * Helper function to get the current channel of the application
108
+ * */
109
+ getCurrentChannel(): Promise<Channel>;
99
110
  }
100
111
  /**
101
112
  * The FDC3 implementation.
@@ -113,6 +124,8 @@ export declare class DefaultFDC3 implements FDC3 {
113
124
  getOrCreateChannel(channelId: string): Promise<FDC3Channel>;
114
125
  broadcastOnChannel(channelName: string, type: string, payload: any): Promise<void>;
115
126
  broadcastOnChannelEventHandler(channelName: string, type: string): Promise<(e: any) => Promise<void>>;
127
+ addChannelListener(channelName: string, channelType: string, callback: (any: any) => void): Promise<Channel>;
128
+ getCurrentChannel(): Promise<Channel>;
116
129
  }
117
130
  /**
118
131
  * The DI token for the FDC3 interface.
@@ -1 +1 @@
1
- {"version":3,"file":"fdc3.d.ts","sourceRoot":"","sources":["../../src/fdc3.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAEL,SAAS,EACT,OAAO,EACP,OAAO,EACP,cAAc,EAMd,OAAO,EACP,gBAAgB,EAKjB,MAAM,aAAa,CAAC;AAKrB;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC;AAElC;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,SAAS;CAAG;AAEnD;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,OAAO;CAAG;AAE/C;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;CAAG;AAEjE;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,OAAO;CAAG;AAE/C;;;GAGG;AACH,MAAM,WAAW,IAAI;IACnB;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;;;OAIG;IACH,kBAAkB,CAAC,SAAS,EAAE,GAAG,CAAC,WAAW,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAAC;IAE1E;;;;;;OAMG;IACH,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAE/E;;;;;OAKG;IACH,oBAAoB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAErE;;;;;;OAMG;IACH,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEvF;;;;;OAKG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C;;;;;OAKG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAE5D;;;;;OAKG;IACH,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnF;;;;OAIG;IACH,8BAA8B,CAC5B,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;CACvC;AAED;;;GAGG;AACH,qBAAa,WAAY,YAAW,IAAI;IAE/B,OAAO,UAAS;;YAMT,OAAO;IAWd,kBAAkB,CAAC,SAAS,EAAE,GAAG,CAAC,WAAW,EAAE,kBAAkB,CAAC,GAAG,IAAI;IAOzE,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IAK9E,oBAAoB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAKpE,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC;IActF,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7C,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAKrD,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAWlF,8BAA8B,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,eAC1D,GAAG;CAMvB;AAED;;;GAGG;AACH,eAAO,MAAM,IAAI,4DAA4D,CAAC"}
1
+ {"version":3,"file":"fdc3.d.ts","sourceRoot":"","sources":["../../src/fdc3.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export * from './fdc3';
2
2
  export * from './fdc3-channel-event';
3
+ export * from './util';
3
4
  export * from './notifications/interop-notifications-listener';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,sBAAsB,CAAC;AACrC,cAAc,gDAAgD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,sBAAsB,CAAC;AACrC,cAAc,QAAQ,CAAC;AACvB,cAAc,gDAAgD,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { FASTElement } from '@genesislcap/web-core';
2
+ import { FDC3 } from '../fdc3';
3
+ /**
4
+ * fdc3-listener listen channel config
5
+ * @alpha
6
+ * @param channelType - string for the context channel type
7
+ * @param callback - async function that is called if a message with a matching context is emitted
8
+ */
9
+ export interface ChannelContextListener {
10
+ channelType: string;
11
+ callback: (any: any) => void;
12
+ }
13
+ /**
14
+ * fdc3-context-listener listen to channel context
15
+ * @alpha
16
+ */
17
+ export declare class Fdc3ContextListener extends FASTElement {
18
+ config: ChannelContextListener[];
19
+ fdc3: FDC3;
20
+ connectedCallback(): void;
21
+ }
22
+ //# sourceMappingURL=fdc3-context-listener.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fdc3-context-listener.d.ts","sourceRoot":"","sources":["../../../src/util/fdc3-context-listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,CAAC,GAAG,KAAA,KAAK,IAAI,CAAC;CACzB;AAED;;;GAGG;AACH,qBAGa,mBAAoB,SAAQ,WAAW;IAClD,MAAM,EAAE,sBAAsB,EAAE,CAAM;IAEhC,IAAI,EAAE,IAAI,CAAC;IAEjB,iBAAiB;CAalB"}
@@ -0,0 +1,30 @@
1
+ import { FASTElement } from '@genesislcap/web-core';
2
+ import { FDC3 } from '../fdc3';
3
+ /**
4
+ * fdc3-listener listen intent config
5
+ * @alpha
6
+ */
7
+ export interface IntentConfig {
8
+ intent: string;
9
+ callback: (any: any) => void;
10
+ }
11
+ /**
12
+ * fdc3-listener listen channel config
13
+ * @alpha
14
+ */
15
+ export interface ChannelConfig {
16
+ channelName: string;
17
+ channelType: string;
18
+ callback: (any: any) => void;
19
+ }
20
+ /**
21
+ * fdc3-listener
22
+ * @alpha
23
+ */
24
+ export declare class Fdc3Listener extends FASTElement {
25
+ fdc3: FDC3;
26
+ intentConfig: IntentConfig[];
27
+ channelConfig: ChannelConfig[];
28
+ connectedCallback(): void;
29
+ }
30
+ //# sourceMappingURL=fdc3-listener.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fdc3-listener.d.ts","sourceRoot":"","sources":["../../../src/util/fdc3-listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,CAAC,GAAG,KAAA,KAAK,IAAI,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,CAAC,GAAG,KAAA,KAAK,IAAI,CAAC;CACzB;AAED;;;GAGG;AACH,qBAGa,YAAa,SAAQ,WAAW;IACrC,IAAI,EAAE,IAAI,CAAC;IAEjB,YAAY,EAAE,YAAY,EAAE,CAAM;IAElC,aAAa,EAAE,aAAa,EAAE,CAAM;IAEpC,iBAAiB;CAYlB"}
@@ -0,0 +1,17 @@
1
+ import { FASTElement } from '@genesislcap/web-core';
2
+ import { FDC3 } from '../fdc3';
3
+ /**
4
+ * fdc3-raise-intent
5
+ * @alpha
6
+ */
7
+ export declare class Fdc3RaiseIntent extends FASTElement {
8
+ fdc3: FDC3;
9
+ eventName: string;
10
+ intentType: string;
11
+ intentName: string;
12
+ mappingFunction: (any: any) => any;
13
+ connectedCallback(): void;
14
+ disconnectedCallback(): void;
15
+ private sendEventOnChannel;
16
+ }
17
+ //# sourceMappingURL=fdc3-raise-intent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fdc3-raise-intent.d.ts","sourceRoot":"","sources":["../../../src/util/fdc3-raise-intent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,IAAI,EAA4B,MAAM,SAAS,CAAC;AAEzD;;;GAGG;AACH,qBAGa,eAAgB,SAAQ,WAAW;IACxC,IAAI,EAAE,IAAI,CAAC;IACkB,SAAS,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IAEvD,eAAe,EAAE,CAAC,GAAG,KAAA,KAAK,GAAG,CAAC;IAE9B,iBAAiB;IAIjB,oBAAoB;IAIpB,OAAO,CAAC,kBAAkB,CAaxB;CACH"}
@@ -0,0 +1,3 @@
1
+ export * from './fdc3-raise-intent';
2
+ export * from './fdc3-listener';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC"}
package/dist/esm/fdc3.js CHANGED
@@ -2,7 +2,7 @@ import { __awaiter, __decorate } from "tslib";
2
2
  /**
3
3
  * See https://fdc3.finos.org/docs/fdc3-intro, and https://github.com/finos/FDC3/tree/master/src/api
4
4
  */
5
- import { addIntentListener, fdc3Ready, findIntent, findIntentsByContext, getOrCreateChannel, getInfo, joinChannel, raiseIntent, raiseIntentForContext, versionIsAtLeast, } from '@finos/fdc3';
5
+ import { addIntentListener, fdc3Ready, findIntent, findIntentsByContext, getCurrentChannel, getOrCreateChannel, getInfo, joinChannel, raiseIntent, raiseIntentForContext, versionIsAtLeast, } from '@finos/fdc3';
6
6
  import { observable } from '@microsoft/fast-element';
7
7
  import { DI } from '@microsoft/fast-foundation';
8
8
  import { logger } from './utils';
@@ -81,6 +81,18 @@ export class DefaultFDC3 {
81
81
  });
82
82
  });
83
83
  }
84
+ addChannelListener(channelName, channelType, callback) {
85
+ return __awaiter(this, void 0, void 0, function* () {
86
+ const channel = yield getOrCreateChannel(channelName);
87
+ channel.addContextListener(channelType, callback);
88
+ return channel;
89
+ });
90
+ }
91
+ getCurrentChannel() {
92
+ return __awaiter(this, void 0, void 0, function* () {
93
+ return getCurrentChannel();
94
+ });
95
+ }
84
96
  }
85
97
  __decorate([
86
98
  observable
package/dist/esm/index.js CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from './fdc3';
2
2
  export * from './fdc3-channel-event';
3
+ export * from './util';
3
4
  export * from './notifications/interop-notifications-listener';
@@ -0,0 +1,32 @@
1
+ import { __decorate } from "tslib";
2
+ import { customElement, FASTElement } from '@genesislcap/web-core';
3
+ import { FDC3 } from '../fdc3';
4
+ /**
5
+ * fdc3-context-listener listen to channel context
6
+ * @alpha
7
+ */
8
+ let Fdc3ContextListener = class Fdc3ContextListener extends FASTElement {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.config = [];
12
+ }
13
+ connectedCallback() {
14
+ super.connectedCallback();
15
+ if (window.fdc3) {
16
+ this.config.forEach((c) => this.fdc3.addChannelListener(null, c.channelType, (message) => {
17
+ if (message.type === c.channelType) {
18
+ c.callback(message);
19
+ }
20
+ }));
21
+ }
22
+ }
23
+ };
24
+ __decorate([
25
+ FDC3
26
+ ], Fdc3ContextListener.prototype, "fdc3", void 0);
27
+ Fdc3ContextListener = __decorate([
28
+ customElement({
29
+ name: 'fdc3-context-listener',
30
+ })
31
+ ], Fdc3ContextListener);
32
+ export { Fdc3ContextListener };
@@ -0,0 +1,32 @@
1
+ import { __decorate } from "tslib";
2
+ import { customElement, FASTElement } from '@genesislcap/web-core';
3
+ import { FDC3 } from '../fdc3';
4
+ /**
5
+ * fdc3-listener
6
+ * @alpha
7
+ */
8
+ let Fdc3Listener = class Fdc3Listener extends FASTElement {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.intentConfig = [];
12
+ this.channelConfig = [];
13
+ }
14
+ connectedCallback() {
15
+ super.connectedCallback();
16
+ if (window.fdc3) {
17
+ const listeners = new Map();
18
+ this.intentConfig.forEach((intent) => listeners.set(intent.intent, intent.callback));
19
+ this.fdc3.addIntentListeners(listeners);
20
+ this.channelConfig.forEach((c) => this.fdc3.addChannelListener(c.channelName, c.channelType, c.callback));
21
+ }
22
+ }
23
+ };
24
+ __decorate([
25
+ FDC3
26
+ ], Fdc3Listener.prototype, "fdc3", void 0);
27
+ Fdc3Listener = __decorate([
28
+ customElement({
29
+ name: 'fdc3-listener',
30
+ })
31
+ ], Fdc3Listener);
32
+ export { Fdc3Listener };
@@ -0,0 +1,48 @@
1
+ import { __awaiter, __decorate } from "tslib";
2
+ import { attr, customElement, FASTElement } from '@genesislcap/web-core';
3
+ import { FDC3 } from '../fdc3';
4
+ /**
5
+ * fdc3-raise-intent
6
+ * @alpha
7
+ */
8
+ let Fdc3RaiseIntent = class Fdc3RaiseIntent extends FASTElement {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.sendEventOnChannel = (e) => __awaiter(this, void 0, void 0, function* () {
12
+ var _a;
13
+ let id = ((_a = e.data) === null || _a === void 0 ? void 0 : _a.payload) || e.detail;
14
+ if (this.mappingFunction) {
15
+ id = this.mappingFunction(id);
16
+ }
17
+ const context = {
18
+ type: this.intentType,
19
+ id,
20
+ };
21
+ yield this.fdc3.raiseIntent(context, this.intentName);
22
+ });
23
+ }
24
+ connectedCallback() {
25
+ this.parentElement.addEventListener(this.eventName, this.sendEventOnChannel);
26
+ }
27
+ disconnectedCallback() {
28
+ this.parentElement.removeEventListener(this.eventName, this.sendEventOnChannel);
29
+ }
30
+ };
31
+ __decorate([
32
+ FDC3
33
+ ], Fdc3RaiseIntent.prototype, "fdc3", void 0);
34
+ __decorate([
35
+ attr({ attribute: 'event-name' })
36
+ ], Fdc3RaiseIntent.prototype, "eventName", void 0);
37
+ __decorate([
38
+ attr({ attribute: 'intent-type' })
39
+ ], Fdc3RaiseIntent.prototype, "intentType", void 0);
40
+ __decorate([
41
+ attr({ attribute: 'intent-name' })
42
+ ], Fdc3RaiseIntent.prototype, "intentName", void 0);
43
+ Fdc3RaiseIntent = __decorate([
44
+ customElement({
45
+ name: 'fdc3-raise-intent',
46
+ })
47
+ ], Fdc3RaiseIntent);
48
+ export { Fdc3RaiseIntent };
@@ -0,0 +1,2 @@
1
+ export * from './fdc3-raise-intent';
2
+ export * from './fdc3-listener';
@@ -199,6 +199,97 @@
199
199
  "name": "FDC3",
200
200
  "preserveMemberOrder": false,
201
201
  "members": [
202
+ {
203
+ "kind": "MethodSignature",
204
+ "canonicalReference": "@genesislcap/foundation-fdc3!FDC3#addChannelListener:member(1)",
205
+ "docComment": "/**\n * Helper function to add a context listener on a channel with a handler for channel messages\n *\n * @param channelName - name of the channel\n *\n * @param channelType - type of the channel\n *\n * @param callback - handler to for the channel context listener\n */\n",
206
+ "excerptTokens": [
207
+ {
208
+ "kind": "Content",
209
+ "text": "addChannelListener(channelName: "
210
+ },
211
+ {
212
+ "kind": "Content",
213
+ "text": "string"
214
+ },
215
+ {
216
+ "kind": "Content",
217
+ "text": ", channelType: "
218
+ },
219
+ {
220
+ "kind": "Content",
221
+ "text": "string"
222
+ },
223
+ {
224
+ "kind": "Content",
225
+ "text": ", callback: "
226
+ },
227
+ {
228
+ "kind": "Content",
229
+ "text": "(any: any) => void"
230
+ },
231
+ {
232
+ "kind": "Content",
233
+ "text": "): "
234
+ },
235
+ {
236
+ "kind": "Reference",
237
+ "text": "Promise",
238
+ "canonicalReference": "!Promise:interface"
239
+ },
240
+ {
241
+ "kind": "Content",
242
+ "text": "<"
243
+ },
244
+ {
245
+ "kind": "Reference",
246
+ "text": "Channel",
247
+ "canonicalReference": "@finos/fdc3!Channel:interface"
248
+ },
249
+ {
250
+ "kind": "Content",
251
+ "text": ">"
252
+ },
253
+ {
254
+ "kind": "Content",
255
+ "text": ";"
256
+ }
257
+ ],
258
+ "isOptional": false,
259
+ "returnTypeTokenRange": {
260
+ "startIndex": 7,
261
+ "endIndex": 11
262
+ },
263
+ "releaseTag": "Public",
264
+ "overloadIndex": 1,
265
+ "parameters": [
266
+ {
267
+ "parameterName": "channelName",
268
+ "parameterTypeTokenRange": {
269
+ "startIndex": 1,
270
+ "endIndex": 2
271
+ },
272
+ "isOptional": false
273
+ },
274
+ {
275
+ "parameterName": "channelType",
276
+ "parameterTypeTokenRange": {
277
+ "startIndex": 3,
278
+ "endIndex": 4
279
+ },
280
+ "isOptional": false
281
+ },
282
+ {
283
+ "parameterName": "callback",
284
+ "parameterTypeTokenRange": {
285
+ "startIndex": 5,
286
+ "endIndex": 6
287
+ },
288
+ "isOptional": false
289
+ }
290
+ ],
291
+ "name": "addChannelListener"
292
+ },
202
293
  {
203
294
  "kind": "MethodSignature",
204
295
  "canonicalReference": "@genesislcap/foundation-fdc3!FDC3#addIntentListeners:member(1)",
@@ -561,6 +652,48 @@
561
652
  ],
562
653
  "name": "findIntentsByContext"
563
654
  },
655
+ {
656
+ "kind": "MethodSignature",
657
+ "canonicalReference": "@genesislcap/foundation-fdc3!FDC3#getCurrentChannel:member(1)",
658
+ "docComment": "/**\n * Helper function to get the current channel of the application\n */\n",
659
+ "excerptTokens": [
660
+ {
661
+ "kind": "Content",
662
+ "text": "getCurrentChannel(): "
663
+ },
664
+ {
665
+ "kind": "Reference",
666
+ "text": "Promise",
667
+ "canonicalReference": "!Promise:interface"
668
+ },
669
+ {
670
+ "kind": "Content",
671
+ "text": "<"
672
+ },
673
+ {
674
+ "kind": "Reference",
675
+ "text": "Channel",
676
+ "canonicalReference": "@finos/fdc3!Channel:interface"
677
+ },
678
+ {
679
+ "kind": "Content",
680
+ "text": ">"
681
+ },
682
+ {
683
+ "kind": "Content",
684
+ "text": ";"
685
+ }
686
+ ],
687
+ "isOptional": false,
688
+ "returnTypeTokenRange": {
689
+ "startIndex": 1,
690
+ "endIndex": 5
691
+ },
692
+ "releaseTag": "Public",
693
+ "overloadIndex": 1,
694
+ "parameters": [],
695
+ "name": "getCurrentChannel"
696
+ },
564
697
  {
565
698
  "kind": "MethodSignature",
566
699
  "canonicalReference": "@genesislcap/foundation-fdc3!FDC3#getOrCreateChannel:member(1)",
@@ -13,6 +13,16 @@ import { NotificationListener } from '@genesislcap/foundation-ui';
13
13
  import { OverrideFoundationElementDefinition } from '@microsoft/fast-foundation';
14
14
  import { ViewTemplate } from '@microsoft/fast-element';
15
15
 
16
+ /**
17
+ * fdc3-listener listen channel config
18
+ * @alpha
19
+ */
20
+ export declare interface ChannelConfig {
21
+ channelName: string;
22
+ channelType: string;
23
+ callback: (any: any) => void;
24
+ }
25
+
16
26
  /**
17
27
  * The FDC3 implementation.
18
28
  * @internal
@@ -29,6 +39,8 @@ export declare class DefaultFDC3 implements FDC3 {
29
39
  getOrCreateChannel(channelId: string): Promise<FDC3Channel>;
30
40
  broadcastOnChannel(channelName: string, type: string, payload: any): Promise<void>;
31
41
  broadcastOnChannelEventHandler(channelName: string, type: string): Promise<(e: any) => Promise<void>>;
42
+ addChannelListener(channelName: string, channelType: string, callback: (any: any) => void): Promise<Channel>;
43
+ getCurrentChannel(): Promise<Channel>;
32
44
  }
33
45
 
34
46
  /**
@@ -97,6 +109,17 @@ export declare interface FDC3 {
97
109
  * @param type - type of the channel
98
110
  */
99
111
  broadcastOnChannelEventHandler(channelName: string, type: string): Promise<(e: any) => Promise<void>>;
112
+ /**
113
+ * Helper function to add a context listener on a channel with a handler for channel messages
114
+ * @param channelName - name of the channel
115
+ * @param channelType - type of the channel
116
+ * @param callback - handler to for the channel context listener
117
+ * */
118
+ addChannelListener(channelName: string, channelType: string, callback: (any: any) => void): Promise<Channel>;
119
+ /**
120
+ * Helper function to get the current channel of the application
121
+ * */
122
+ getCurrentChannel(): Promise<Channel>;
100
123
  }
101
124
 
102
125
  /**
@@ -153,6 +176,41 @@ export declare interface FDC3IntentResolution extends IntentResolution {
153
176
  */
154
177
  export declare type FDC3Intents = Intents;
155
178
 
179
+ /**
180
+ * fdc3-listener
181
+ * @alpha
182
+ */
183
+ export declare class Fdc3Listener extends FASTElement {
184
+ fdc3: FDC3;
185
+ intentConfig: IntentConfig[];
186
+ channelConfig: ChannelConfig[];
187
+ connectedCallback(): void;
188
+ }
189
+
190
+ /**
191
+ * fdc3-raise-intent
192
+ * @alpha
193
+ */
194
+ export declare class Fdc3RaiseIntent extends FASTElement {
195
+ fdc3: FDC3;
196
+ eventName: string;
197
+ intentType: string;
198
+ intentName: string;
199
+ mappingFunction: (any: any) => any;
200
+ connectedCallback(): void;
201
+ disconnectedCallback(): void;
202
+ private sendEventOnChannel;
203
+ }
204
+
205
+ /**
206
+ * fdc3-listener listen intent config
207
+ * @alpha
208
+ */
209
+ export declare interface IntentConfig {
210
+ intent: string;
211
+ callback: (any: any) => void;
212
+ }
213
+
156
214
  /**
157
215
  * The Foundation Interop Notification Listener
158
216
  *
@@ -0,0 +1,26 @@
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; [addChannelListener](./foundation-fdc3.fdc3.addchannellistener.md)
4
+
5
+ ## FDC3.addChannelListener() method
6
+
7
+ Helper function to add a context listener on a channel with a handler for channel messages
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ addChannelListener(channelName: string, channelType: string, callback: (any: any) => void): Promise<Channel>;
13
+ ```
14
+
15
+ ## Parameters
16
+
17
+ | Parameter | Type | Description |
18
+ | --- | --- | --- |
19
+ | channelName | string | name of the channel |
20
+ | channelType | string | type of the channel |
21
+ | callback | (any: any) =&gt; void | handler to for the channel context listener |
22
+
23
+ **Returns:**
24
+
25
+ Promise&lt;Channel&gt;
26
+
@@ -0,0 +1,17 @@
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; [getCurrentChannel](./foundation-fdc3.fdc3.getcurrentchannel.md)
4
+
5
+ ## FDC3.getCurrentChannel() method
6
+
7
+ Helper function to get the current channel of the application
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ getCurrentChannel(): Promise<Channel>;
13
+ ```
14
+ **Returns:**
15
+
16
+ Promise&lt;Channel&gt;
17
+
@@ -22,11 +22,13 @@ export interface FDC3
22
22
 
23
23
  | Method | Description |
24
24
  | --- | --- |
25
+ | [addChannelListener(channelName, channelType, callback)](./foundation-fdc3.fdc3.addchannellistener.md) | Helper function to add a context listener on a channel with a handler for channel messages |
25
26
  | [addIntentListeners(listeners)](./foundation-fdc3.fdc3.addintentlisteners.md) | Adds intent listeners for the specified intents. |
26
27
  | [broadcastOnChannel(channelName, type, payload)](./foundation-fdc3.fdc3.broadcastonchannel.md) | Broadcasts a message on a given channel with a given type |
27
28
  | [broadcastOnChannelEventHandler(channelName, type)](./foundation-fdc3.fdc3.broadcastonchanneleventhandler.md) | Helper function to broadcast message on channel in response to dispatched event |
28
29
  | [findIntent(intent, context)](./foundation-fdc3.fdc3.findintent.md) | Finds an app that supports the specified intent. |
29
30
  | [findIntentsByContext(context)](./foundation-fdc3.fdc3.findintentsbycontext.md) | Finds all the intents supported by the specified context. |
31
+ | [getCurrentChannel()](./foundation-fdc3.fdc3.getcurrentchannel.md) | Helper function to get the current channel of the application |
30
32
  | [getOrCreateChannel(channelId)](./foundation-fdc3.fdc3.getorcreatechannel.md) | Gets or creates the specified channel. |
31
33
  | [joinChannel(channelId)](./foundation-fdc3.fdc3.joinchannel.md) | Joins the specified channel. |
32
34
  | [raiseIntent(context, intent)](./foundation-fdc3.fdc3.raiseintent.md) | Raises the specified intent with the specified context. |
@@ -19,12 +19,24 @@ import { NotificationListener } from '@genesislcap/foundation-ui';
19
19
  import { OverrideFoundationElementDefinition } from '@microsoft/fast-foundation';
20
20
  import { ViewTemplate } from '@microsoft/fast-element';
21
21
 
22
+ // @alpha
23
+ export interface ChannelConfig {
24
+ // (undocumented)
25
+ callback: (any: any) => void;
26
+ // (undocumented)
27
+ channelName: string;
28
+ // (undocumented)
29
+ channelType: string;
30
+ }
31
+
22
32
  // Warning: (ae-internal-missing-underscore) The name "DefaultFDC3" should be prefixed with an underscore because the declaration is marked as @internal
23
33
  //
24
34
  // @internal
25
35
  export class DefaultFDC3 implements FDC3 {
26
36
  constructor();
27
37
  // (undocumented)
38
+ addChannelListener(channelName: string, channelType: string, callback: (any: any) => void): Promise<Channel>;
39
+ // (undocumented)
28
40
  addIntentListeners(listeners: Map<FDC3Intents, FDC3ContextHandler>): void;
29
41
  // (undocumented)
30
42
  broadcastOnChannel(channelName: string, type: string, payload: any): Promise<void>;
@@ -35,6 +47,8 @@ export class DefaultFDC3 implements FDC3 {
35
47
  // (undocumented)
36
48
  findIntentsByContext(context: FDC3Context): Promise<FDC3AppIntent[]>;
37
49
  // (undocumented)
50
+ getCurrentChannel(): Promise<Channel>;
51
+ // (undocumented)
38
52
  getOrCreateChannel(channelId: string): Promise<FDC3Channel>;
39
53
  // (undocumented)
40
54
  isReady: boolean;
@@ -48,11 +62,13 @@ export class DefaultFDC3 implements FDC3 {
48
62
  //
49
63
  // @public
50
64
  export interface FDC3 {
65
+ addChannelListener(channelName: string, channelType: string, callback: (any: any) => void): Promise<Channel>;
51
66
  addIntentListeners(listeners: Map<FDC3Intents, FDC3ContextHandler>): void;
52
67
  broadcastOnChannel(channelName: string, type: string, payload: any): Promise<void>;
53
68
  broadcastOnChannelEventHandler(channelName: string, type: string): Promise<(e: any) => Promise<void>>;
54
69
  findIntent(intent: FDC3Intents, context?: FDC3Context): Promise<FDC3AppIntent>;
55
70
  findIntentsByContext(context: FDC3Context): Promise<FDC3AppIntent[]>;
71
+ getCurrentChannel(): Promise<Channel>;
56
72
  getOrCreateChannel(channelId: string): Promise<FDC3Channel>;
57
73
  isReady: boolean;
58
74
  joinChannel(channelId: string): Promise<void>;
@@ -102,6 +118,44 @@ export interface FDC3IntentResolution extends IntentResolution {
102
118
  // @public (undocumented)
103
119
  export type FDC3Intents = Intents;
104
120
 
121
+ // @alpha
122
+ export class Fdc3Listener extends FASTElement {
123
+ // (undocumented)
124
+ channelConfig: ChannelConfig[];
125
+ // (undocumented)
126
+ connectedCallback(): void;
127
+ // (undocumented)
128
+ fdc3: FDC3;
129
+ // (undocumented)
130
+ intentConfig: IntentConfig[];
131
+ }
132
+
133
+ // @alpha
134
+ export class Fdc3RaiseIntent extends FASTElement {
135
+ // (undocumented)
136
+ connectedCallback(): void;
137
+ // (undocumented)
138
+ disconnectedCallback(): void;
139
+ // (undocumented)
140
+ eventName: string;
141
+ // (undocumented)
142
+ fdc3: FDC3;
143
+ // (undocumented)
144
+ intentName: string;
145
+ // (undocumented)
146
+ intentType: string;
147
+ // (undocumented)
148
+ mappingFunction: (any: any) => any;
149
+ }
150
+
151
+ // @alpha
152
+ export interface IntentConfig {
153
+ // (undocumented)
154
+ callback: (any: any) => void;
155
+ // (undocumented)
156
+ intent: string;
157
+ }
158
+
105
159
  // @public
106
160
  export const interopFoundationNotificationListener: (overrideDefinition?: OverrideFoundationElementDefinition< {
107
161
  baseName: string;
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.178.0",
4
+ "version": "14.180.0",
5
5
  "sideEffects": false,
6
6
  "license": "SEE LICENSE IN license.txt",
7
7
  "main": "dist/esm/index.js",
@@ -51,22 +51,22 @@
51
51
  "test:debug": "genx test --debug"
52
52
  },
53
53
  "devDependencies": {
54
- "@genesislcap/foundation-testing": "14.178.0",
55
- "@genesislcap/genx": "14.178.0",
56
- "@genesislcap/rollup-builder": "14.178.0",
57
- "@genesislcap/ts-builder": "14.178.0",
58
- "@genesislcap/uvu-playwright-builder": "14.178.0",
59
- "@genesislcap/vite-builder": "14.178.0",
60
- "@genesislcap/webpack-builder": "14.178.0",
54
+ "@genesislcap/foundation-testing": "14.180.0",
55
+ "@genesislcap/genx": "14.180.0",
56
+ "@genesislcap/rollup-builder": "14.180.0",
57
+ "@genesislcap/ts-builder": "14.180.0",
58
+ "@genesislcap/uvu-playwright-builder": "14.180.0",
59
+ "@genesislcap/vite-builder": "14.180.0",
60
+ "@genesislcap/webpack-builder": "14.180.0",
61
61
  "rimraf": "^3.0.2"
62
62
  },
63
63
  "dependencies": {
64
64
  "@finos/fdc3": "^1.2.0",
65
- "@genesislcap/foundation-logger": "14.178.0",
66
- "@genesislcap/foundation-notifications": "14.178.0",
67
- "@genesislcap/foundation-ui": "14.178.0",
68
- "@genesislcap/foundation-utils": "14.178.0",
69
- "@genesislcap/web-core": "14.178.0",
65
+ "@genesislcap/foundation-logger": "14.180.0",
66
+ "@genesislcap/foundation-notifications": "14.180.0",
67
+ "@genesislcap/foundation-ui": "14.180.0",
68
+ "@genesislcap/foundation-utils": "14.180.0",
69
+ "@genesislcap/web-core": "14.180.0",
70
70
  "@interopio/desktop": "^6.3.1",
71
71
  "@microsoft/fast-element": "^1.12.0",
72
72
  "@microsoft/fast-foundation": "^2.49.4",
@@ -80,5 +80,5 @@
80
80
  "publishConfig": {
81
81
  "access": "public"
82
82
  },
83
- "gitHead": "fd55a5cd2e3b0fa048377835c73186df1e75b849"
83
+ "gitHead": "24ddbaf4c43ccfe2c323ec1178b1829451b1721a"
84
84
  }