@openfin/core 30.73.27 → 30.74.6
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/LICENSE.md +4 -0
- package/package.json +2 -2
- package/src/OpenFin.d.ts +1726 -189
- package/src/OpenFin.js +3 -2
- package/src/api/api-exposer/api-consumer.d.ts +28 -0
- package/src/api/api-exposer/api-consumer.js +28 -0
- package/src/api/api-exposer/api-exposer.d.ts +35 -0
- package/src/api/api-exposer/api-exposer.js +38 -0
- package/src/api/api-exposer/decorators.d.ts +10 -0
- package/src/api/api-exposer/decorators.js +18 -0
- package/src/api/api-exposer/index.d.ts +4 -0
- package/src/api/api-exposer/index.js +20 -0
- package/src/api/api-exposer/strategies/index.d.ts +1 -0
- package/src/api/api-exposer/strategies/index.js +17 -0
- package/src/api/api-exposer/strategies/openfin-channels/channels-consumer.d.ts +14 -0
- package/src/api/api-exposer/strategies/openfin-channels/channels-consumer.js +20 -0
- package/src/api/api-exposer/strategies/openfin-channels/channels-exposer.d.ts +20 -0
- package/src/api/api-exposer/strategies/openfin-channels/channels-exposer.js +23 -0
- package/src/api/api-exposer/strategies/openfin-channels/index.d.ts +2 -0
- package/src/api/api-exposer/strategies/openfin-channels/index.js +18 -0
- package/src/api/application/Factory.d.ts +1 -0
- package/src/api/application/Factory.js +1 -0
- package/src/api/application/Instance.d.ts +2 -1
- package/src/api/application/Instance.js +1 -0
- package/src/api/base.d.ts +2 -2
- package/src/api/clipboard/index.d.ts +1 -0
- package/src/api/clipboard/index.js +1 -0
- package/src/api/events/base.d.ts +0 -3
- package/src/api/events/platform.d.ts +4 -5
- package/src/api/events/system.d.ts +5 -6
- package/src/api/events/view.d.ts +6 -3
- package/src/api/events/webcontents.d.ts +25 -3
- package/src/api/events/window.d.ts +21 -13
- package/src/api/external-application/Instance.d.ts +1 -1
- package/src/api/fin.d.ts +1 -1
- package/src/api/frame/Instance.d.ts +1 -1
- package/src/api/global-hotkey/index.d.ts +1 -1
- package/src/api/interappbus/channel/channel.d.ts +1 -1
- package/src/api/interappbus/channel/channels-docs.d.ts +7 -0
- package/src/api/interappbus/channel/channels-docs.js +7 -0
- package/src/api/interappbus/channel/client.d.ts +3 -2
- package/src/api/interappbus/channel/client.js +12 -5
- package/src/api/interappbus/channel/connection-manager.d.ts +1 -1
- package/src/api/interappbus/channel/index.d.ts +1 -1
- package/src/api/interappbus/channel/index.js +6 -8
- package/src/api/interappbus/channel/protocols/classic/message-receiver.d.ts +1 -1
- package/src/api/interappbus/channel/protocols/classic/strategy.d.ts +1 -1
- package/src/api/interappbus/channel/protocols/index.d.ts +3 -0
- package/src/api/interappbus/channel/protocols/rtc/endpoint.js +10 -2
- package/src/api/interappbus/channel/protocols/rtc/ice-manager.d.ts +1 -1
- package/src/api/interappbus/channel/protocols/rtc/strategy.js +1 -1
- package/src/api/interappbus/channel/provider.d.ts +1 -1
- package/src/api/interappbus/index.d.ts +1 -1
- package/src/api/interop/Factory.d.ts +1 -2
- package/src/api/interop/Factory.js +20 -4
- package/src/api/interop/InteropBroker.d.ts +16 -48
- package/src/api/interop/InteropBroker.js +39 -47
- package/src/api/interop/InteropClient.d.ts +10 -9
- package/src/api/interop/InteropClient.js +9 -8
- package/src/api/interop/SessionContextGroupClient.d.ts +1 -1
- package/src/api/interop/fdc3/PrivateChannelClient.d.ts +1 -0
- package/src/api/interop/fdc3/PrivateChannelClient.js +15 -7
- package/src/api/interop/fdc3/PrivateChannelProvider.d.ts +15 -1
- package/src/api/interop/fdc3/PrivateChannelProvider.js +80 -21
- package/src/api/interop/fdc3/fdc3-1.2.js +27 -12
- package/src/api/interop/fdc3/fdc3-2.0.d.ts +13 -12
- package/src/api/interop/fdc3/fdc3-2.0.js +33 -26
- package/src/api/interop/fdc3/fdc3.d.ts +4 -5
- package/src/api/interop/fdc3/overrideCheck.d.ts +4 -0
- package/src/api/interop/fdc3/overrideCheck.js +32 -0
- package/src/api/interop/fdc3/shapes/fdc3v2.d.ts +1 -1
- package/src/api/interop/fdc3/utils.d.ts +17 -0
- package/src/api/interop/fdc3/utils.js +52 -18
- package/src/api/interop/fdc3/versions.d.ts +1 -0
- package/src/api/interop/fdc3/versions.js +2 -0
- package/src/api/me.d.ts +1 -1
- package/src/api/platform/Factory.d.ts +6 -1
- package/src/api/platform/Factory.js +5 -0
- package/src/api/platform/Instance.d.ts +5 -3
- package/src/api/platform/Instance.js +5 -3
- package/src/api/platform/layout/Factory.d.ts +4 -0
- package/src/api/platform/layout/Factory.js +15 -3
- package/src/api/platform/layout/Instance.d.ts +7 -1
- package/src/api/platform/layout/Instance.js +26 -1
- package/src/api/platform/layout/controllers/layout-content-cache.d.ts +9 -0
- package/src/api/platform/layout/controllers/layout-content-cache.js +54 -0
- package/src/api/platform/layout/controllers/layout-entities-controller.d.ts +117 -0
- package/src/api/platform/layout/controllers/layout-entities-controller.js +270 -0
- package/src/api/platform/layout/entities/layout-entities.d.ts +144 -0
- package/src/api/platform/layout/entities/layout-entities.js +216 -0
- package/src/api/platform/layout/entities/shapes.d.ts +6 -0
- package/src/api/platform/layout/entities/shapes.js +2 -0
- package/src/api/platform/layout/layout.constants.d.ts +1 -0
- package/src/api/platform/layout/layout.constants.js +4 -0
- package/src/api/platform/layout/shapes.d.ts +3 -0
- package/src/api/platform/layout/utils/layout-traversal.d.ts +4 -0
- package/src/api/platform/layout/utils/layout-traversal.js +65 -0
- package/src/api/platform/layout/utils/view-overlay.d.ts +1 -1
- package/src/api/platform/provider.d.ts +162 -0
- package/src/api/platform/provider.js +2 -0
- package/src/api/snapshot-source/Factory.d.ts +1 -0
- package/src/api/snapshot-source/Factory.js +1 -0
- package/src/api/snapshot-source/Instance.d.ts +1 -1
- package/src/api/system/index.d.ts +1 -471
- package/src/api/system/index.js +6 -476
- package/src/api/view/Instance.d.ts +24 -5
- package/src/api/view/Instance.js +53 -8
- package/src/api/webcontents/main.d.ts +18 -4
- package/src/api/window/Instance.d.ts +26 -1
- package/src/api/window/Instance.js +25 -0
- package/src/browser.js +1 -1
- package/src/mock.js +1 -1
- package/src/namespaces.d.ts +21 -0
- package/src/namespaces.js +24 -0
- package/src/transport/fin_store.d.ts +1 -1
- package/src/transport/transport-errors.d.ts +6 -1
- package/src/transport/transport-errors.js +1 -2
- package/src/transport/transport.d.ts +9 -6
- package/src/transport/transport.js +11 -2
- package/src/util/channel-api-relay.d.ts +13 -0
- package/src/util/channel-api-relay.js +37 -0
- package/src/util/inaccessibleObject.d.ts +2 -0
- package/src/util/inaccessibleObject.js +49 -0
- package/src/util/lazy.d.ts +16 -0
- package/src/util/lazy.js +26 -0
- package/src/util/reversible-map.d.ts +11 -0
- package/src/util/reversible-map.js +49 -0
|
@@ -6,7 +6,6 @@ const InteropClient_1 = require("../InteropClient");
|
|
|
6
6
|
const utils_2 = require("./utils");
|
|
7
7
|
const fdc3_1_2_1 = require("./fdc3-1.2");
|
|
8
8
|
const PrivateChannelClient_1 = require("./PrivateChannelClient");
|
|
9
|
-
const PrivateChannelProvider_1 = require("./PrivateChannelProvider");
|
|
10
9
|
/**
|
|
11
10
|
* @typedef { object } AppIdentifier
|
|
12
11
|
* @summary Identifies an application, or instance of an application, and is used to target FDC3 API calls at specific applications.
|
|
@@ -181,7 +180,7 @@ class Fdc3Module2 extends base_1.Base {
|
|
|
181
180
|
* Find all the available instances for a particular application.
|
|
182
181
|
* @param { AppIdentifier } app
|
|
183
182
|
* @returns { Promise<Array<AppIdentifier>> }
|
|
184
|
-
* @tutorial findInstances
|
|
183
|
+
* @tutorial fdc3v2.findInstances
|
|
185
184
|
*/
|
|
186
185
|
async findInstances(app) {
|
|
187
186
|
this.wire.sendAction('fdc3-find-instances').catch((e) => {
|
|
@@ -191,7 +190,7 @@ class Fdc3Module2 extends base_1.Base {
|
|
|
191
190
|
return await InteropClient_1.InteropClient.ferryFdc3Call(this.fin.me.interop, 'fdc3FindInstances', app);
|
|
192
191
|
}
|
|
193
192
|
catch (error) {
|
|
194
|
-
const errorToThrow = error.message === utils_1.BROKER_ERRORS.fdc3FindInstances ? 'ResolverUnavailable' : error;
|
|
193
|
+
const errorToThrow = error.message === utils_1.BROKER_ERRORS.fdc3FindInstances ? 'ResolverUnavailable' : error.message;
|
|
195
194
|
throw new Error(errorToThrow);
|
|
196
195
|
}
|
|
197
196
|
}
|
|
@@ -199,7 +198,7 @@ class Fdc3Module2 extends base_1.Base {
|
|
|
199
198
|
* Retrieves the AppMetadata for an AppIdentifier, which provides additional metadata (such as icons, a title and description) from the App Directory record for the application, that may be used for display purposes.
|
|
200
199
|
* @param { AppIdentifier } app
|
|
201
200
|
* @returns { Promise<AppMetadata(2)> }
|
|
202
|
-
* @tutorial getAppMetadata
|
|
201
|
+
* @tutorial fdc3v2.getAppMetadata
|
|
203
202
|
*/
|
|
204
203
|
async getAppMetadata(app) {
|
|
205
204
|
this.wire.sendAction('fdc3-get-app-metadata').catch((e) => {
|
|
@@ -209,7 +208,7 @@ class Fdc3Module2 extends base_1.Base {
|
|
|
209
208
|
return await InteropClient_1.InteropClient.ferryFdc3Call(this.fin.me.interop, 'fdc3GetAppMetadata', app);
|
|
210
209
|
}
|
|
211
210
|
catch (error) {
|
|
212
|
-
const errorToThrow = error.message === utils_1.BROKER_ERRORS.fdc3GetAppMetadata ? 'ResolverUnavailable' : error;
|
|
211
|
+
const errorToThrow = error.message === utils_1.BROKER_ERRORS.fdc3GetAppMetadata ? 'ResolverUnavailable' : error.message;
|
|
213
212
|
throw new Error(errorToThrow);
|
|
214
213
|
}
|
|
215
214
|
}
|
|
@@ -268,7 +267,7 @@ class Fdc3Module2 extends base_1.Base {
|
|
|
268
267
|
return await this.fin.me.interop.getInfoForIntent({ name: intent, context, metadata: { resultType } });
|
|
269
268
|
}
|
|
270
269
|
catch (error) {
|
|
271
|
-
const errorToThrow = error.message === utils_1.BROKER_ERRORS.getInfoForIntent ? 'ResolverUnavailable' : error;
|
|
270
|
+
const errorToThrow = error.message === utils_1.BROKER_ERRORS.getInfoForIntent ? 'ResolverUnavailable' : error.message;
|
|
272
271
|
throw new Error(errorToThrow);
|
|
273
272
|
}
|
|
274
273
|
}
|
|
@@ -277,7 +276,7 @@ class Fdc3Module2 extends base_1.Base {
|
|
|
277
276
|
* @param { Context } context
|
|
278
277
|
* @param { string } [resultType] The type of result returned for any intent specified during resolution.
|
|
279
278
|
* @returns { Promise<Array<AppIntent(2)>> }
|
|
280
|
-
* @tutorial findIntentsByContext
|
|
279
|
+
* @tutorial fdc3v2.findIntentsByContext
|
|
281
280
|
*/
|
|
282
281
|
async findIntentsByContext(context, resultType) {
|
|
283
282
|
this.wire.sendAction('fdc3-find-intents-by-context').catch((e) => {
|
|
@@ -288,7 +287,7 @@ class Fdc3Module2 extends base_1.Base {
|
|
|
288
287
|
return await InteropClient_1.InteropClient.ferryFdc3Call(this.fin.me.interop, 'fdc3v2FindIntentsByContext', payload);
|
|
289
288
|
}
|
|
290
289
|
catch (error) {
|
|
291
|
-
const errorToThrow = error.message === utils_1.BROKER_ERRORS.getInfoForIntentsByContext ? 'ResolverUnavailable' : error;
|
|
290
|
+
const errorToThrow = error.message === utils_1.BROKER_ERRORS.getInfoForIntentsByContext ? 'ResolverUnavailable' : error.message;
|
|
292
291
|
throw new Error(errorToThrow);
|
|
293
292
|
}
|
|
294
293
|
}
|
|
@@ -298,7 +297,7 @@ class Fdc3Module2 extends base_1.Base {
|
|
|
298
297
|
* @param { Context } context Context associated with the Intent
|
|
299
298
|
* @param { AppIdentifier | TargetApp } [app]
|
|
300
299
|
* @returns { Promise<IntentResolution(2)> }
|
|
301
|
-
* @tutorial raiseIntent
|
|
300
|
+
* @tutorial fdc3v2.raiseIntent
|
|
302
301
|
*/
|
|
303
302
|
async raiseIntent(intent, context, app) {
|
|
304
303
|
this.wire.sendAction('fdc3-raise-intent').catch((e) => {
|
|
@@ -308,7 +307,7 @@ class Fdc3Module2 extends base_1.Base {
|
|
|
308
307
|
return (0, utils_2.getIntentResolution)(this.fin.me.interop, context, app, intent);
|
|
309
308
|
}
|
|
310
309
|
catch (error) {
|
|
311
|
-
const errorToThrow = error.message === utils_1.BROKER_ERRORS.fireIntent ? 'ResolverUnavailable' : error;
|
|
310
|
+
const errorToThrow = error.message === utils_1.BROKER_ERRORS.fireIntent ? 'ResolverUnavailable' : error.message;
|
|
312
311
|
throw new Error(errorToThrow);
|
|
313
312
|
}
|
|
314
313
|
}
|
|
@@ -317,7 +316,7 @@ class Fdc3Module2 extends base_1.Base {
|
|
|
317
316
|
* @param { Context } context Context associated with the Intent
|
|
318
317
|
* @param { AppIdentifier | TargetApp } [app]
|
|
319
318
|
* @returns { Promise<IntentResolution(2)> }
|
|
320
|
-
* @tutorial raiseIntentForContext
|
|
319
|
+
* @tutorial fdc3v2.raiseIntentForContext
|
|
321
320
|
*/
|
|
322
321
|
async raiseIntentForContext(context, app) {
|
|
323
322
|
// TODO: We have to do the same thing we do for raiseIntent here as well.
|
|
@@ -328,7 +327,7 @@ class Fdc3Module2 extends base_1.Base {
|
|
|
328
327
|
return (0, utils_2.getIntentResolution)(this.fin.me.interop, context, app);
|
|
329
328
|
}
|
|
330
329
|
catch (error) {
|
|
331
|
-
const errorToThrow = error.message === utils_1.BROKER_ERRORS.fireIntent ? 'ResolverUnavailable' : error;
|
|
330
|
+
const errorToThrow = error.message === utils_1.BROKER_ERRORS.fireIntent ? 'ResolverUnavailable' : error.message;
|
|
332
331
|
throw new Error(errorToThrow);
|
|
333
332
|
}
|
|
334
333
|
}
|
|
@@ -349,27 +348,27 @@ class Fdc3Module2 extends base_1.Base {
|
|
|
349
348
|
// The FDC3 Intenter handler only expects the context and contextMetadata to be passed to the handler,
|
|
350
349
|
// so we wrap it here and only pass those paramaters.
|
|
351
350
|
const contextHandler = async (raisedIntent) => {
|
|
351
|
+
let intentResult;
|
|
352
|
+
let intentResultToSend;
|
|
352
353
|
const { context, metadata: intentMetadata } = raisedIntent;
|
|
353
354
|
const { contextMetadata, metadata, ...rest } = context;
|
|
354
|
-
|
|
355
|
+
const intentResolutionResultId = (intentMetadata === null || intentMetadata === void 0 ? void 0 : intentMetadata.intentResolutionResultId) || (metadata === null || metadata === void 0 ? void 0 : metadata.intentResolutionResultId);
|
|
355
356
|
try {
|
|
356
357
|
const newContext = metadata ? { metadata, ...rest } : { ...rest };
|
|
357
358
|
intentResult = await handler(newContext, contextMetadata);
|
|
359
|
+
intentResultToSend = intentResult;
|
|
358
360
|
}
|
|
359
361
|
catch (error) {
|
|
360
362
|
intentResult = error;
|
|
363
|
+
intentResultToSend = { error: true };
|
|
361
364
|
}
|
|
362
|
-
const intentResolutionResultId = (intentMetadata === null || intentMetadata === void 0 ? void 0 : intentMetadata.intentResolutionResultId) || (metadata === null || metadata === void 0 ? void 0 : metadata.intentResolutionResultId);
|
|
363
365
|
if (intentResolutionResultId) {
|
|
364
|
-
|
|
365
|
-
this.fin.InterApplicationBus.publish(intentResolutionResultId, intentResult);
|
|
366
|
+
this.fin.InterApplicationBus.publish(intentResolutionResultId, intentResultToSend);
|
|
366
367
|
}
|
|
367
368
|
if (intentResult instanceof Error) {
|
|
368
369
|
throw new Error(intentResult.message);
|
|
369
370
|
}
|
|
370
|
-
|
|
371
|
-
return intentResult;
|
|
372
|
-
}
|
|
371
|
+
return intentResult;
|
|
373
372
|
};
|
|
374
373
|
return this.fin.me.interop.registerIntentHandler(contextHandler, intent, { fdc3Version: '2.0' });
|
|
375
374
|
}
|
|
@@ -385,12 +384,11 @@ class Fdc3Module2 extends base_1.Base {
|
|
|
385
384
|
/**
|
|
386
385
|
* Returns a Channel with an auto-generated identity that is intended for private communication between applications. Primarily used to create channels that will be returned to other applications via an IntentResolution for a raised intent.
|
|
387
386
|
* @returns { Promise<PrivateChannel> }
|
|
388
|
-
* @tutorial createPrivateChannel
|
|
387
|
+
* @tutorial fdc3v2.createPrivateChannel
|
|
389
388
|
*/
|
|
390
389
|
async createPrivateChannel() {
|
|
391
390
|
const channelId = (0, utils_1.generateId)();
|
|
392
|
-
|
|
393
|
-
const newPrivateChannelProvider = new PrivateChannelProvider_1.PrivateChannelProvider(channelProvider, channelId);
|
|
391
|
+
await InteropClient_1.InteropClient.ferryFdc3Call(this.fin.me.interop, 'createPrivateChannelProvider', { channelId });
|
|
394
392
|
const channelClient = await this.fin.InterApplicationBus.Channel.connect(channelId);
|
|
395
393
|
const newPrivateChannelClient = new PrivateChannelClient_1.PrivateChannelClient(channelClient, channelId);
|
|
396
394
|
return (0, utils_2.buildPrivateChannelObject)(newPrivateChannelClient);
|
|
@@ -398,7 +396,7 @@ class Fdc3Module2 extends base_1.Base {
|
|
|
398
396
|
/**
|
|
399
397
|
* Retrieves a list of the User Channels available for the app to join.
|
|
400
398
|
* @returns { Promise<Channel[]>}
|
|
401
|
-
* @tutorial getUserChannels
|
|
399
|
+
* @tutorial fdc3v2.getUserChannels
|
|
402
400
|
*/
|
|
403
401
|
async getUserChannels() {
|
|
404
402
|
const channels = await this.fin.me.interop.getContextGroups();
|
|
@@ -422,7 +420,7 @@ class Fdc3Module2 extends base_1.Base {
|
|
|
422
420
|
* Join an app to a specified User channel.
|
|
423
421
|
* @param { string } channelId Channel name
|
|
424
422
|
* @returns { Promise<void> }
|
|
425
|
-
* @tutorial joinUserChannel
|
|
423
|
+
* @tutorial fdc3v2.joinUserChannel
|
|
426
424
|
*/
|
|
427
425
|
async joinUserChannel(channelId) {
|
|
428
426
|
return this.fdc3Module.joinChannel(channelId);
|
|
@@ -441,9 +439,18 @@ class Fdc3Module2 extends base_1.Base {
|
|
|
441
439
|
/**
|
|
442
440
|
* Returns the Channel object for the current User channel membership
|
|
443
441
|
* @returns { Promise<FDC3.Channel | null> }
|
|
442
|
+
* @tutorial fdc3.getCurrentChannel
|
|
444
443
|
*/
|
|
445
444
|
async getCurrentChannel() {
|
|
446
|
-
|
|
445
|
+
const currentChannel = await this.fdc3Module.getCurrentChannel();
|
|
446
|
+
if (!currentChannel) {
|
|
447
|
+
return null;
|
|
448
|
+
}
|
|
449
|
+
return {
|
|
450
|
+
...currentChannel,
|
|
451
|
+
type: 'user',
|
|
452
|
+
broadcast: this.broadcast.bind(this)
|
|
453
|
+
};
|
|
447
454
|
}
|
|
448
455
|
/**
|
|
449
456
|
* Removes the app from any User channel membership.
|
|
@@ -457,7 +464,7 @@ class Fdc3Module2 extends base_1.Base {
|
|
|
457
464
|
* Retrieves information about the FDC3 implementation, including the supported version of the FDC3 specification, the name of the provider of the implementation, its own version number, details of whether optional API features are implemented and the metadata of the calling application according to the desktop agent.
|
|
458
465
|
* fdc3HandleGetInfo must be overridden in the InteropBroker so that the ImplementationMetadata will have the appMetadata info.
|
|
459
466
|
* @returns { Promise<ImplementationMetadata(2)> }
|
|
460
|
-
* @tutorial getInfo
|
|
467
|
+
* @tutorial fdc3v2.getInfo
|
|
461
468
|
*/
|
|
462
469
|
async getInfo() {
|
|
463
470
|
return InteropClient_1.InteropClient.ferryFdc3Call(this.fin.me.interop, 'fdc3v2GetInfo', { fdc3Version: '2.0' });
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import Fdc3Module from './fdc3-1.2';
|
|
2
2
|
import Fdc3Module2 from './fdc3-2.0';
|
|
3
|
-
import type Transport from '../../../transport/transport';
|
|
3
|
+
import type { Transport } from '../../../transport/transport';
|
|
4
|
+
import { Fdc3Version } from './versions';
|
|
4
5
|
declare global {
|
|
5
6
|
interface Window {
|
|
6
7
|
fdc3: Fdc3Module | Fdc3Module2;
|
|
7
8
|
}
|
|
8
9
|
}
|
|
9
|
-
declare
|
|
10
|
-
export declare const versionMap: Record<Fdc3Versions, typeof Fdc3Module | typeof Fdc3Module2>;
|
|
10
|
+
export declare const versionMap: Record<Fdc3Version, typeof Fdc3Module | typeof Fdc3Module2>;
|
|
11
11
|
export declare function registerFdc3Shim(version: string, transport: Transport): void;
|
|
12
|
-
export declare function getFdc3(transport: Transport, version?:
|
|
13
|
-
export {};
|
|
12
|
+
export declare function getFdc3(transport: Transport, version?: Fdc3Version): Fdc3Module | Fdc3Module2;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import * as OpenFin from '../../../OpenFin';
|
|
2
|
+
import { Fdc3Version } from './versions';
|
|
3
|
+
export declare function getDefaultViewFdc3VersionFromAppInfo({ manifest, initialOptions }: Awaited<ReturnType<OpenFin.Application['getInfo']>>): Fdc3Version | undefined;
|
|
4
|
+
export declare function overrideCheck(overriddenBroker: OpenFin.InteropBroker, fdc3InteropApi?: Fdc3Version): void;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.overrideCheck = exports.getDefaultViewFdc3VersionFromAppInfo = void 0;
|
|
4
|
+
const InteropBroker_1 = require("../InteropBroker");
|
|
5
|
+
function getDefaultViewFdc3VersionFromAppInfo({ manifest, initialOptions }) {
|
|
6
|
+
var _a, _b, _c, _d;
|
|
7
|
+
const setVersion = (_c = (_b = (_a = manifest.platform) === null || _a === void 0 ? void 0 : _a.defaultViewOptions) === null || _b === void 0 ? void 0 : _b.fdc3InteropApi) !== null && _c !== void 0 ? _c : (_d = initialOptions.defaultViewOptions) === null || _d === void 0 ? void 0 : _d.fdc3InteropApi;
|
|
8
|
+
return ['1.2', '2.0'].includes(setVersion !== null && setVersion !== void 0 ? setVersion : '') ? setVersion : undefined;
|
|
9
|
+
}
|
|
10
|
+
exports.getDefaultViewFdc3VersionFromAppInfo = getDefaultViewFdc3VersionFromAppInfo;
|
|
11
|
+
// TODO: Unit test this
|
|
12
|
+
function overrideCheck(overriddenBroker, fdc3InteropApi) {
|
|
13
|
+
if (fdc3InteropApi && fdc3InteropApi === '2.0') {
|
|
14
|
+
const mustOverrideAPIs = [
|
|
15
|
+
'fdc3HandleFindInstances',
|
|
16
|
+
'handleInfoForIntent',
|
|
17
|
+
'handleInfoForIntentsByContext',
|
|
18
|
+
'fdc3HandleGetAppMetadata',
|
|
19
|
+
'fdc3HandleGetInfo',
|
|
20
|
+
'fdc3HandleOpen',
|
|
21
|
+
'handleFiredIntent',
|
|
22
|
+
'handleFiredIntentForContext'
|
|
23
|
+
];
|
|
24
|
+
const notOverridden = mustOverrideAPIs.filter((api) => {
|
|
25
|
+
return overriddenBroker[api] === InteropBroker_1.InteropBroker.prototype[api];
|
|
26
|
+
});
|
|
27
|
+
if (notOverridden.length > 0) {
|
|
28
|
+
console.warn(`WARNING: FDC3 2.0 has been set as a default option for Views in this Platform, but the required InteropBroker APIs for FDC3 2.0 compliance have not all been overridden.\nThe following APIs need to be overridden:\n${notOverridden.join('\n')}`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.overrideCheck = overrideCheck;
|
|
@@ -64,7 +64,7 @@ export interface DesktopAgent {
|
|
|
64
64
|
addContextListener(contextType: string | null, handler: ContextHandler): Promise<Listener>;
|
|
65
65
|
getUserChannels(): Promise<Array<SystemChannel>>;
|
|
66
66
|
joinUserChannel(channelId: string): Promise<void>;
|
|
67
|
-
getOrCreateChannel(channelId: string): Promise<
|
|
67
|
+
getOrCreateChannel(channelId: string): Promise<Channel>;
|
|
68
68
|
createPrivateChannel(): Promise<PrivateChannel>;
|
|
69
69
|
getCurrentChannel(): Promise<ChannelV1 | null>;
|
|
70
70
|
leaveCurrentChannel(): Promise<void>;
|
|
@@ -21,8 +21,25 @@ export declare enum ResultError {
|
|
|
21
21
|
*/
|
|
22
22
|
IntentHandlerRejected = "IntentHandlerRejected"
|
|
23
23
|
}
|
|
24
|
+
export declare enum ChannelError {
|
|
25
|
+
/** Returned if the specified channel is not found when attempting to join a
|
|
26
|
+
* channel via the `joinUserChannel` function of the DesktopAgent (`fdc3`).
|
|
27
|
+
*/
|
|
28
|
+
NoChannelFound = "NoChannelFound",
|
|
29
|
+
/** SHOULD be returned when a request to join a user channel or to a retrieve
|
|
30
|
+
* a Channel object via the `joinUserChannel` or `getOrCreateChannel` methods
|
|
31
|
+
* of the DesktopAgent (`fdc3`) object is denied.
|
|
32
|
+
*/
|
|
33
|
+
AccessDenied = "AccessDenied",
|
|
34
|
+
/** SHOULD be returned when a channel cannot be created or retrieved via the
|
|
35
|
+
* `getOrCreateChannel` method of the DesktopAgent (`fdc3`).
|
|
36
|
+
*/
|
|
37
|
+
CreationFailed = "CreationFailed"
|
|
38
|
+
}
|
|
24
39
|
export declare const buildPrivateChannelObject: (privateChannelClient: PrivateChannelClient) => PrivateChannel;
|
|
25
40
|
export declare const buildAppChannelObject: (sessionContextGroup: OpenFin.SessionContextGroup) => Channel;
|
|
26
41
|
export declare const connectPrivateChannel: (channelId: string) => Promise<PrivateChannel>;
|
|
42
|
+
export declare const isContext: (context: unknown) => context is Context;
|
|
43
|
+
export declare const isChannel: (channel: unknown) => channel is Channel;
|
|
27
44
|
export declare const getIntentResolution: (interopModule: OpenFin.InteropClient, context: Context, app?: AppIdentifier | TargetApp, intent?: string) => Promise<IntentResolution>;
|
|
28
45
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getIntentResolution = exports.connectPrivateChannel = exports.buildAppChannelObject = exports.buildPrivateChannelObject = exports.ResultError = exports.UnsupportedChannelApiError = exports.getUnsupportedChannelApis = void 0;
|
|
3
|
+
exports.getIntentResolution = exports.isChannel = exports.isContext = exports.connectPrivateChannel = exports.buildAppChannelObject = exports.buildPrivateChannelObject = exports.ChannelError = exports.ResultError = exports.UnsupportedChannelApiError = exports.getUnsupportedChannelApis = void 0;
|
|
4
4
|
const utils_1 = require("../utils");
|
|
5
5
|
const PrivateChannelClient_1 = require("./PrivateChannelClient");
|
|
6
6
|
const getUnsupportedChannelApis = (channelType) => {
|
|
@@ -35,6 +35,22 @@ var ResultError;
|
|
|
35
35
|
*/
|
|
36
36
|
ResultError["IntentHandlerRejected"] = "IntentHandlerRejected";
|
|
37
37
|
})(ResultError = exports.ResultError || (exports.ResultError = {}));
|
|
38
|
+
var ChannelError;
|
|
39
|
+
(function (ChannelError) {
|
|
40
|
+
/** Returned if the specified channel is not found when attempting to join a
|
|
41
|
+
* channel via the `joinUserChannel` function of the DesktopAgent (`fdc3`).
|
|
42
|
+
*/
|
|
43
|
+
ChannelError["NoChannelFound"] = "NoChannelFound";
|
|
44
|
+
/** SHOULD be returned when a request to join a user channel or to a retrieve
|
|
45
|
+
* a Channel object via the `joinUserChannel` or `getOrCreateChannel` methods
|
|
46
|
+
* of the DesktopAgent (`fdc3`) object is denied.
|
|
47
|
+
*/
|
|
48
|
+
ChannelError["AccessDenied"] = "AccessDenied";
|
|
49
|
+
/** SHOULD be returned when a channel cannot be created or retrieved via the
|
|
50
|
+
* `getOrCreateChannel` method of the DesktopAgent (`fdc3`).
|
|
51
|
+
*/
|
|
52
|
+
ChannelError["CreationFailed"] = "CreationFailed";
|
|
53
|
+
})(ChannelError = exports.ChannelError || (exports.ChannelError = {}));
|
|
38
54
|
const buildPrivateChannelObject = (privateChannelClient) => {
|
|
39
55
|
let clientDisconnected = false;
|
|
40
56
|
const checkIfClientDisconnected = () => {
|
|
@@ -122,6 +138,22 @@ const connectPrivateChannel = async (channelId) => {
|
|
|
122
138
|
}
|
|
123
139
|
};
|
|
124
140
|
exports.connectPrivateChannel = connectPrivateChannel;
|
|
141
|
+
const isContext = (context) => {
|
|
142
|
+
if (context && typeof context === 'object' && 'type' in context) {
|
|
143
|
+
const { type } = context;
|
|
144
|
+
return typeof type === 'string';
|
|
145
|
+
}
|
|
146
|
+
return false;
|
|
147
|
+
};
|
|
148
|
+
exports.isContext = isContext;
|
|
149
|
+
const isChannel = (channel) => {
|
|
150
|
+
if (channel && typeof channel === 'object' && 'type' in channel && 'id' in channel) {
|
|
151
|
+
const { type, id } = channel;
|
|
152
|
+
return (typeof type === 'string' && typeof id === 'string' && (type === 'app' || type === 'private'));
|
|
153
|
+
}
|
|
154
|
+
return false;
|
|
155
|
+
};
|
|
156
|
+
exports.isChannel = isChannel;
|
|
125
157
|
const getIntentResolution = async (interopModule, context, app, intent) => {
|
|
126
158
|
// Generate an ID to make a session context group with. We will pass that ID to the Broker.
|
|
127
159
|
// The broker will then setContext on that session context group later with our Intent Result,
|
|
@@ -138,31 +170,33 @@ const getIntentResolution = async (interopModule, context, app, intent) => {
|
|
|
138
170
|
// Set up the getResult call.
|
|
139
171
|
const getResult = async () => {
|
|
140
172
|
let intentResult = await getResultPromise;
|
|
141
|
-
if (!intentResult) {
|
|
173
|
+
if (!intentResult || typeof intentResult !== 'object') {
|
|
142
174
|
throw new Error(ResultError.NoResultReturned);
|
|
143
175
|
}
|
|
144
|
-
|
|
176
|
+
const { error } = intentResult;
|
|
177
|
+
if (error) {
|
|
145
178
|
throw new Error(ResultError.IntentHandlerRejected);
|
|
146
179
|
}
|
|
147
|
-
if (
|
|
180
|
+
if ((0, exports.isChannel)(intentResult)) {
|
|
148
181
|
const { id, type } = intentResult;
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
break;
|
|
162
|
-
}
|
|
182
|
+
switch (type) {
|
|
183
|
+
case 'private': {
|
|
184
|
+
intentResult = await (0, exports.connectPrivateChannel)(id);
|
|
185
|
+
break;
|
|
186
|
+
}
|
|
187
|
+
case 'app': {
|
|
188
|
+
const sessionContextGroup = await interopModule.joinSessionContextGroup(id);
|
|
189
|
+
intentResult = (0, exports.buildAppChannelObject)(sessionContextGroup);
|
|
190
|
+
break;
|
|
191
|
+
}
|
|
192
|
+
default: {
|
|
193
|
+
break;
|
|
163
194
|
}
|
|
164
195
|
}
|
|
165
196
|
}
|
|
197
|
+
else if (!(0, exports.isContext)(intentResult)) {
|
|
198
|
+
throw new Error(ResultError.NoResultReturned);
|
|
199
|
+
}
|
|
166
200
|
return intentResult;
|
|
167
201
|
};
|
|
168
202
|
// Finally fire the intent.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare type Fdc3Version = '1.2' | '2.0';
|
package/src/api/me.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type * as OpenFin from '../OpenFin';
|
|
2
|
-
import type Transport from '../transport/transport';
|
|
2
|
+
import type { Transport } from '../transport/transport';
|
|
3
3
|
import type { InteropClient } from './interop';
|
|
4
4
|
export declare const environmentUnsupportedMessage = "You are not running in OpenFin.";
|
|
5
5
|
declare type EntityType = OpenFin.EntityType;
|
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
import type * as OpenFin from '../../OpenFin';
|
|
2
2
|
import { Base } from '../base';
|
|
3
3
|
import { Channel } from '../interappbus/channel/index';
|
|
4
|
-
import Transport from '../../transport/transport';
|
|
4
|
+
import { Transport } from '../../transport/transport';
|
|
5
5
|
import { LayoutModule } from './layout/index';
|
|
6
6
|
/**
|
|
7
|
+
* @PORTED
|
|
7
8
|
* InitPlatformOptions interface
|
|
8
9
|
* @typedef { object } InitPlatformOptions
|
|
9
10
|
* @property { OverrideCallback } [overrideCallback] a callback function that can be used to extend or replace default Provider behavior.
|
|
10
11
|
*/
|
|
11
12
|
/**
|
|
13
|
+
* @PORTED
|
|
12
14
|
* @typedef { same | different } ProcessAffinityStrategy
|
|
13
15
|
* @summary Strategy to place views that share a domain into different process affinities or the same process affinity.
|
|
14
16
|
* @property { string } same views in the same domain will have the same process affinity.
|
|
15
17
|
* @property { string } different views in the same domain will have different process affinities.
|
|
16
18
|
*/
|
|
17
19
|
/**
|
|
20
|
+
* @PORTED
|
|
18
21
|
* @typedef { object } PlatformOptions
|
|
19
22
|
* @summary The options object required by {@link Platform#start Platform.start}
|
|
20
23
|
* Any {@link ApplicationOptions Application option} is also a valid platform option
|
|
@@ -25,6 +28,7 @@ import { LayoutModule } from './layout/index';
|
|
|
25
28
|
* @property {ProcessAffinityStrategy} [viewProcessAffinityStrategy] 'same' | 'different'.
|
|
26
29
|
*/
|
|
27
30
|
/**
|
|
31
|
+
* @PORTED
|
|
28
32
|
* @typedef { object } DefaultWindowOptions
|
|
29
33
|
* @summary Default window options apply to all platform windows.
|
|
30
34
|
* Any {@link Window~options Window option} is also a valid Default Window option
|
|
@@ -36,6 +40,7 @@ import { LayoutModule } from './layout/index';
|
|
|
36
40
|
* Windows with a specified url (Custom Windows) will not be affected by this option.
|
|
37
41
|
*/
|
|
38
42
|
/**
|
|
43
|
+
* @DELETED
|
|
39
44
|
* Snapshot interface
|
|
40
45
|
* @typedef { object } Snapshot
|
|
41
46
|
* @property { WindowOption[] } windows The array of window options objects
|
|
@@ -5,17 +5,20 @@ const base_1 = require("../base");
|
|
|
5
5
|
const index_1 = require("./layout/index");
|
|
6
6
|
const Instance_1 = require("./Instance");
|
|
7
7
|
/**
|
|
8
|
+
* @PORTED
|
|
8
9
|
* InitPlatformOptions interface
|
|
9
10
|
* @typedef { object } InitPlatformOptions
|
|
10
11
|
* @property { OverrideCallback } [overrideCallback] a callback function that can be used to extend or replace default Provider behavior.
|
|
11
12
|
*/
|
|
12
13
|
/**
|
|
14
|
+
* @PORTED
|
|
13
15
|
* @typedef { same | different } ProcessAffinityStrategy
|
|
14
16
|
* @summary Strategy to place views that share a domain into different process affinities or the same process affinity.
|
|
15
17
|
* @property { string } same views in the same domain will have the same process affinity.
|
|
16
18
|
* @property { string } different views in the same domain will have different process affinities.
|
|
17
19
|
*/
|
|
18
20
|
/**
|
|
21
|
+
* @PORTED
|
|
19
22
|
* @typedef { object } PlatformOptions
|
|
20
23
|
* @summary The options object required by {@link Platform#start Platform.start}
|
|
21
24
|
* Any {@link ApplicationOptions Application option} is also a valid platform option
|
|
@@ -26,6 +29,7 @@ const Instance_1 = require("./Instance");
|
|
|
26
29
|
* @property {ProcessAffinityStrategy} [viewProcessAffinityStrategy] 'same' | 'different'.
|
|
27
30
|
*/
|
|
28
31
|
/**
|
|
32
|
+
* @PORTED
|
|
29
33
|
* @typedef { object } DefaultWindowOptions
|
|
30
34
|
* @summary Default window options apply to all platform windows.
|
|
31
35
|
* Any {@link Window~options Window option} is also a valid Default Window option
|
|
@@ -37,6 +41,7 @@ const Instance_1 = require("./Instance");
|
|
|
37
41
|
* Windows with a specified url (Custom Windows) will not be affected by this option.
|
|
38
42
|
*/
|
|
39
43
|
/**
|
|
44
|
+
* @DELETED
|
|
40
45
|
* Snapshot interface
|
|
41
46
|
* @typedef { object } Snapshot
|
|
42
47
|
* @property { WindowOption[] } windows The array of window options objects
|
|
@@ -27,7 +27,7 @@ export declare class Platform extends EmitterBase<OpenFin.PlatformEvent> {
|
|
|
27
27
|
* @return { Promise<View> }
|
|
28
28
|
* @tutorial Platform.createView
|
|
29
29
|
*/
|
|
30
|
-
createView(viewOptions: OpenFin.PlatformViewCreationOptions, target?: OpenFin.
|
|
30
|
+
createView(viewOptions: OpenFin.PlatformViewCreationOptions, target?: OpenFin.CreateViewTarget, targetView?: OpenFin.Identity): Promise<View>;
|
|
31
31
|
/**
|
|
32
32
|
* Creates a new Window.
|
|
33
33
|
* @param { Window~options } options Window creation options
|
|
@@ -66,14 +66,16 @@ export declare class Platform extends EmitterBase<OpenFin.PlatformEvent> {
|
|
|
66
66
|
*/
|
|
67
67
|
getSnapshot(): Promise<OpenFin.Snapshot>;
|
|
68
68
|
/**
|
|
69
|
+
* **NOTE**: Internal use only. It is not recommended to manage the state of individual views.
|
|
70
|
+
*
|
|
69
71
|
* Returns a snapshot of a single view's options in its current state.
|
|
70
72
|
*
|
|
71
73
|
* Can be used to restore a view to a previous state.
|
|
72
74
|
*
|
|
73
|
-
* NOTE: this method is meant for advanced usage only, it is not recommended to manage the state of individual views.
|
|
74
|
-
*
|
|
75
75
|
* @param { Identity } viewIdentity View identity
|
|
76
76
|
* @returns { Promise<ViewState> }
|
|
77
|
+
* @internal
|
|
78
|
+
* @experimental
|
|
77
79
|
* @tutorial Platform.getViewSnapshot
|
|
78
80
|
*/
|
|
79
81
|
getViewSnapshot(viewIdentity: OpenFin.Identity): Promise<OpenFin.ViewState>;
|
|
@@ -78,7 +78,7 @@ class Platform extends base_1.EmitterBase {
|
|
|
78
78
|
const response = await client.dispatch('create-view', {
|
|
79
79
|
target,
|
|
80
80
|
opts: viewOptions,
|
|
81
|
-
targetView
|
|
81
|
+
targetView,
|
|
82
82
|
});
|
|
83
83
|
if (!response || (0, validate_1.validateIdentity)(response.identity)) {
|
|
84
84
|
throw new Error(`When overwriting the createView call, please return an object that has a valid 'identity' property: ${JSON.stringify(response)}`);
|
|
@@ -175,14 +175,16 @@ class Platform extends base_1.EmitterBase {
|
|
|
175
175
|
return client.dispatch('get-snapshot');
|
|
176
176
|
}
|
|
177
177
|
/**
|
|
178
|
+
* **NOTE**: Internal use only. It is not recommended to manage the state of individual views.
|
|
179
|
+
*
|
|
178
180
|
* Returns a snapshot of a single view's options in its current state.
|
|
179
181
|
*
|
|
180
182
|
* Can be used to restore a view to a previous state.
|
|
181
183
|
*
|
|
182
|
-
* NOTE: this method is meant for advanced usage only, it is not recommended to manage the state of individual views.
|
|
183
|
-
*
|
|
184
184
|
* @param { Identity } viewIdentity View identity
|
|
185
185
|
* @returns { Promise<ViewState> }
|
|
186
|
+
* @internal
|
|
187
|
+
* @experimental
|
|
186
188
|
* @tutorial Platform.getViewSnapshot
|
|
187
189
|
*/
|
|
188
190
|
async getViewSnapshot(viewIdentity) {
|
|
@@ -3,12 +3,14 @@ import { Layout } from './Instance';
|
|
|
3
3
|
import { Base } from '../../base';
|
|
4
4
|
declare type InitLayoutOptions = OpenFin.InitLayoutOptions;
|
|
5
5
|
/**
|
|
6
|
+
* @PORTED
|
|
6
7
|
* InitLayoutOptions interface
|
|
7
8
|
* @typedef { object } InitLayoutOptions
|
|
8
9
|
* @property { string } [containerId] The id attribute of the container where the window's Layout should be initialized. If not provided
|
|
9
10
|
* then an element with id `layout-container` is used. We recommend using a div element.
|
|
10
11
|
*/
|
|
11
12
|
/**
|
|
13
|
+
* @PORTED
|
|
12
14
|
* PresetLayoutOptions interface
|
|
13
15
|
* @typedef { object } PresetLayoutOptions
|
|
14
16
|
* @property { LayoutPresetTypes } presetType Which preset layout arrangement to use.
|
|
@@ -23,6 +25,7 @@ declare type InitLayoutOptions = OpenFin.InitLayoutOptions;
|
|
|
23
25
|
* @property { LayoutSettings } settings Configuration for certain Layout behaviors. See the LayoutSettings interface.
|
|
24
26
|
*/
|
|
25
27
|
/**
|
|
28
|
+
* @PORTED
|
|
26
29
|
* LayoutItem Interface
|
|
27
30
|
* @typedef { object } LayoutItem Represents the arrangement of Views within a Platform window's Layout. We do not recommend trying
|
|
28
31
|
* to build Layouts or LayoutItems by hand and instead use calls such as {@link Platform#getSnapshot getSnapshot} or our
|
|
@@ -34,6 +37,7 @@ declare type InitLayoutOptions = OpenFin.InitLayoutOptions;
|
|
|
34
37
|
* options of a given component.
|
|
35
38
|
*/
|
|
36
39
|
/**
|
|
40
|
+
* @PORTED
|
|
37
41
|
* LayoutSettings Interface
|
|
38
42
|
* @typedef { object } LayoutSettings Represents a potential ways to customize behavior of your Layout
|
|
39
43
|
* @property { boolean } [constrainDragToHeaders=false] Limits the area to which tabs can be dragged.
|
|
@@ -19,13 +19,19 @@ const Instance_1 = require("./Instance");
|
|
|
19
19
|
const base_1 = require("../../base");
|
|
20
20
|
const splitter_controller_1 = require("./controllers/splitter-controller");
|
|
21
21
|
const view_overlay_1 = require("./utils/view-overlay");
|
|
22
|
+
const api_exposer_1 = require("../../api-exposer");
|
|
23
|
+
const layout_entities_controller_1 = require("./controllers/layout-entities-controller");
|
|
24
|
+
const layout_constants_1 = require("./layout.constants");
|
|
25
|
+
const layout_content_cache_1 = require("./controllers/layout-content-cache");
|
|
22
26
|
/**
|
|
27
|
+
* @PORTED
|
|
23
28
|
* InitLayoutOptions interface
|
|
24
29
|
* @typedef { object } InitLayoutOptions
|
|
25
30
|
* @property { string } [containerId] The id attribute of the container where the window's Layout should be initialized. If not provided
|
|
26
31
|
* then an element with id `layout-container` is used. We recommend using a div element.
|
|
27
32
|
*/
|
|
28
33
|
/**
|
|
34
|
+
* @PORTED
|
|
29
35
|
* PresetLayoutOptions interface
|
|
30
36
|
* @typedef { object } PresetLayoutOptions
|
|
31
37
|
* @property { LayoutPresetTypes } presetType Which preset layout arrangement to use.
|
|
@@ -40,6 +46,7 @@ const view_overlay_1 = require("./utils/view-overlay");
|
|
|
40
46
|
* @property { LayoutSettings } settings Configuration for certain Layout behaviors. See the LayoutSettings interface.
|
|
41
47
|
*/
|
|
42
48
|
/**
|
|
49
|
+
* @PORTED
|
|
43
50
|
* LayoutItem Interface
|
|
44
51
|
* @typedef { object } LayoutItem Represents the arrangement of Views within a Platform window's Layout. We do not recommend trying
|
|
45
52
|
* to build Layouts or LayoutItems by hand and instead use calls such as {@link Platform#getSnapshot getSnapshot} or our
|
|
@@ -51,6 +58,7 @@ const view_overlay_1 = require("./utils/view-overlay");
|
|
|
51
58
|
* options of a given component.
|
|
52
59
|
*/
|
|
53
60
|
/**
|
|
61
|
+
* @PORTED
|
|
54
62
|
* LayoutSettings Interface
|
|
55
63
|
* @typedef { object } LayoutSettings Represents a potential ways to customize behavior of your Layout
|
|
56
64
|
* @property { boolean } [constrainDragToHeaders=false] Limits the area to which tabs can be dragged.
|
|
@@ -109,9 +117,9 @@ class LayoutModule extends base_1.Base {
|
|
|
109
117
|
const viewOverlay = new view_overlay_1.ViewOverlay(this.wire);
|
|
110
118
|
const splitterController = new splitter_controller_1.SplitterController(viewOverlay);
|
|
111
119
|
const tabDragController = new tab_drag_controller_1.TabDragController(viewOverlay);
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
// @ts-
|
|
120
|
+
const contentItemCache = new layout_content_cache_1.LayoutContentCache();
|
|
121
|
+
__classPrivateFieldSet(this, _LayoutModule_layoutManager, new ManagerConstructor(splitterController, tabDragController, contentItemCache), "f");
|
|
122
|
+
// @ts-expect-error - layout warning here for backwards compatibility, can remove layout check in .52
|
|
115
123
|
let { layout, containerId } = options;
|
|
116
124
|
if (layout) {
|
|
117
125
|
console.warn(`We recommend using a layout in window options.
|
|
@@ -125,6 +133,10 @@ class LayoutModule extends base_1.Base {
|
|
|
125
133
|
// pull createChannelConnection out of LayoutManager and setup channel connections here using layoutmanager instance methods?
|
|
126
134
|
await __classPrivateFieldGet(this, _LayoutModule_layoutManager, "f").initManager();
|
|
127
135
|
await __classPrivateFieldGet(this, _LayoutModule_layoutManager, "f").createLayout(layout, container);
|
|
136
|
+
const { client, ofWindow } = ManagerConstructor.getClientAndWindow(__classPrivateFieldGet(this, _LayoutModule_layoutManager, "f"));
|
|
137
|
+
// expose LayoutEntitiesController instance for API consumption
|
|
138
|
+
const channelStrategy = new api_exposer_1.ChannelsExposer(client);
|
|
139
|
+
await new api_exposer_1.ApiExposer(channelStrategy).exposeInstance(new layout_entities_controller_1.LayoutEntitiesController(__classPrivateFieldGet(this, _LayoutModule_layoutManager, "f"), contentItemCache), { id: layout_constants_1.LAYOUT_CONTROLLER_ID });
|
|
128
140
|
// Adding this to the returned instance undocumented/typed for Browser.
|
|
129
141
|
return Object.assign(this.getCurrentSync(), { layoutManager: __classPrivateFieldGet(this, _LayoutModule_layoutManager, "f") });
|
|
130
142
|
};
|