@openfin/remote-adapter 41.102.7 → 41.103.2
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/out/remote-adapter.js +1285 -1205
- package/package.json +2 -2
package/out/remote-adapter.js
CHANGED
|
@@ -523,7 +523,7 @@ Object.defineProperty(PrivateChannelProvider$1, "__esModule", { value: true });
|
|
|
523
523
|
PrivateChannelProvider$1.PrivateChannelProvider = void 0;
|
|
524
524
|
const utils_1$8 = utils$3;
|
|
525
525
|
class PrivateChannelProvider {
|
|
526
|
-
constructor(provider, id) {
|
|
526
|
+
constructor(provider, id, removePrivateChannelProvider) {
|
|
527
527
|
this.provider = provider;
|
|
528
528
|
this.id = id;
|
|
529
529
|
this.clients = new Map();
|
|
@@ -531,6 +531,7 @@ class PrivateChannelProvider {
|
|
|
531
531
|
this.contextByContextType = new Map();
|
|
532
532
|
this.lastContext = undefined;
|
|
533
533
|
this.provider.onConnection((clientIdentity) => this.registerNewClient(clientIdentity));
|
|
534
|
+
this.removePrivateChannelProvider = removePrivateChannelProvider;
|
|
534
535
|
this.provider.onDisconnection(async (clientIdentity) => {
|
|
535
536
|
const { endpointId } = clientIdentity;
|
|
536
537
|
if (this.clients.has(endpointId)) {
|
|
@@ -538,6 +539,7 @@ class PrivateChannelProvider {
|
|
|
538
539
|
}
|
|
539
540
|
if ((await this.provider.getAllClientInfo()).length === 0) {
|
|
540
541
|
this.provider.destroy();
|
|
542
|
+
this.removePrivateChannelProvider(this.id);
|
|
541
543
|
}
|
|
542
544
|
});
|
|
543
545
|
}
|
|
@@ -789,8 +791,8 @@ class PrivateChannelProvider {
|
|
|
789
791
|
});
|
|
790
792
|
});
|
|
791
793
|
}
|
|
792
|
-
static init(channelProvider, id) {
|
|
793
|
-
return new PrivateChannelProvider(channelProvider, id);
|
|
794
|
+
static init(channelProvider, id, removePrivateChannelProvider) {
|
|
795
|
+
return new PrivateChannelProvider(channelProvider, id, removePrivateChannelProvider);
|
|
794
796
|
}
|
|
795
797
|
}
|
|
796
798
|
PrivateChannelProvider$1.PrivateChannelProvider = PrivateChannelProvider;
|
|
@@ -862,16 +864,16 @@ var __classPrivateFieldGet$h = (commonjsGlobal && commonjsGlobal.__classPrivateF
|
|
|
862
864
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
863
865
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
864
866
|
};
|
|
865
|
-
var __importDefault$
|
|
867
|
+
var __importDefault$7 = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {
|
|
866
868
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
867
869
|
};
|
|
868
870
|
var _InteropBroker_fdc3Info, _InteropBroker_contextGroups, _InteropBroker_providerPromise;
|
|
869
871
|
Object.defineProperty(InteropBroker$1, "__esModule", { value: true });
|
|
870
872
|
InteropBroker$1.InteropBroker = void 0;
|
|
871
|
-
const base_1$
|
|
872
|
-
const SessionContextGroupBroker_1 = __importDefault$
|
|
873
|
+
const base_1$m = base;
|
|
874
|
+
const SessionContextGroupBroker_1 = __importDefault$7(SessionContextGroupBroker$1);
|
|
873
875
|
const utils_1$7 = utils$3;
|
|
874
|
-
const isEqual_1$
|
|
876
|
+
const isEqual_1$2 = __importDefault$7(require$$3);
|
|
875
877
|
const PrivateChannelProvider_1 = PrivateChannelProvider$1;
|
|
876
878
|
const lazy_1$2 = lazy;
|
|
877
879
|
const defaultContextGroups = [
|
|
@@ -1037,7 +1039,7 @@ const defaultContextGroups = [
|
|
|
1037
1039
|
* ---
|
|
1038
1040
|
*
|
|
1039
1041
|
*/
|
|
1040
|
-
class InteropBroker extends base_1$
|
|
1042
|
+
class InteropBroker extends base_1$m.Base {
|
|
1041
1043
|
/**
|
|
1042
1044
|
* @internal
|
|
1043
1045
|
*/
|
|
@@ -1060,6 +1062,7 @@ class InteropBroker extends base_1$o.Base {
|
|
|
1060
1062
|
this.intentClientMap = new Map();
|
|
1061
1063
|
this.lastContextMap = new Map();
|
|
1062
1064
|
this.sessionContextGroupMap = new Map();
|
|
1065
|
+
this.privateChannelProviderMap = new Map();
|
|
1063
1066
|
__classPrivateFieldSet$g(this, _InteropBroker_providerPromise, new lazy_1$2.Lazy(createProvider), "f");
|
|
1064
1067
|
this.setContextGroupMap();
|
|
1065
1068
|
this.setupChannelProvider();
|
|
@@ -1069,7 +1072,7 @@ class InteropBroker extends base_1$o.Base {
|
|
|
1069
1072
|
constructor(...unused) {
|
|
1070
1073
|
if (unused.length) {
|
|
1071
1074
|
const [_ignore1, ignore2, opts] = unused;
|
|
1072
|
-
if (opts && typeof opts === 'object' && !(0, isEqual_1$
|
|
1075
|
+
if (opts && typeof opts === 'object' && !(0, isEqual_1$2.default)(opts, args[2])) {
|
|
1073
1076
|
// eslint-disable-next-line no-console
|
|
1074
1077
|
console.warn('You have modified the parameters of the InteropOverride constructor. This behavior is deprecated and will be removed in a future version. You can modify these options in your manifest. Please consult our Interop docs for guidance on migrating to the new override scheme.');
|
|
1075
1078
|
super(args[0], args[1], opts);
|
|
@@ -2080,7 +2083,15 @@ class InteropBroker extends base_1$o.Base {
|
|
|
2080
2083
|
channel.register('createPrivateChannelProvider', async (payload) => {
|
|
2081
2084
|
const { channelId } = payload;
|
|
2082
2085
|
const channelProvider = await this.fin.InterApplicationBus.Channel.create(channelId);
|
|
2083
|
-
|
|
2086
|
+
const removePrivateChannelProvider = (channelId) => {
|
|
2087
|
+
this.privateChannelProviderMap.delete(channelId);
|
|
2088
|
+
};
|
|
2089
|
+
const privateChannelProvider = PrivateChannelProvider_1.PrivateChannelProvider.init(channelProvider, channelId, removePrivateChannelProvider);
|
|
2090
|
+
this.privateChannelProviderMap.set(channelId, privateChannelProvider);
|
|
2091
|
+
});
|
|
2092
|
+
channel.register('isIdUsedByPrivateChannel', async (payload) => {
|
|
2093
|
+
const { channelId } = payload;
|
|
2094
|
+
return this.privateChannelProviderMap.has(channelId);
|
|
2084
2095
|
});
|
|
2085
2096
|
}
|
|
2086
2097
|
/**
|
|
@@ -2585,11 +2596,11 @@ const handleDeprecatedWarnings = (options) => {
|
|
|
2585
2596
|
};
|
|
2586
2597
|
warnings.handleDeprecatedWarnings = handleDeprecatedWarnings;
|
|
2587
2598
|
|
|
2588
|
-
var hasRequiredFactory$
|
|
2599
|
+
var hasRequiredFactory$2;
|
|
2589
2600
|
|
|
2590
|
-
function requireFactory$
|
|
2591
|
-
if (hasRequiredFactory$
|
|
2592
|
-
hasRequiredFactory$
|
|
2601
|
+
function requireFactory$2 () {
|
|
2602
|
+
if (hasRequiredFactory$2) return Factory$8;
|
|
2603
|
+
hasRequiredFactory$2 = 1;
|
|
2593
2604
|
Object.defineProperty(Factory$8, "__esModule", { value: true });
|
|
2594
2605
|
Factory$8.ViewModule = void 0;
|
|
2595
2606
|
const base_1 = base;
|
|
@@ -2748,8 +2759,8 @@ var main = {};
|
|
|
2748
2759
|
|
|
2749
2760
|
Object.defineProperty(main, "__esModule", { value: true });
|
|
2750
2761
|
main.WebContents = void 0;
|
|
2751
|
-
const base_1$
|
|
2752
|
-
class WebContents extends base_1$
|
|
2762
|
+
const base_1$l = base;
|
|
2763
|
+
class WebContents extends base_1$l.EmitterBase {
|
|
2753
2764
|
/**
|
|
2754
2765
|
* @param identity The identity of the {@link OpenFin.WebContentsEvents WebContents}.
|
|
2755
2766
|
* @param entityType The type of the {@link OpenFin.WebContentsEvents WebContents}.
|
|
@@ -3842,1133 +3853,1154 @@ var Factory$6 = {};
|
|
|
3842
3853
|
|
|
3843
3854
|
var Instance$5 = {};
|
|
3844
3855
|
|
|
3845
|
-
|
|
3846
|
-
Instance$5.Application = void 0;
|
|
3847
|
-
/* eslint-disable import/prefer-default-export */
|
|
3848
|
-
const base_1$m = base;
|
|
3849
|
-
const window_1$1 = requireWindow();
|
|
3850
|
-
const view_1 = requireView();
|
|
3851
|
-
/**
|
|
3852
|
-
* An object representing an application. Allows the developer to create,
|
|
3853
|
-
* execute, show/close an application as well as listen to {@link OpenFin.ApplicationEvents application events}.
|
|
3854
|
-
*/
|
|
3855
|
-
class Application extends base_1$m.EmitterBase {
|
|
3856
|
-
/**
|
|
3857
|
-
* @internal
|
|
3858
|
-
*/
|
|
3859
|
-
constructor(wire, identity) {
|
|
3860
|
-
super(wire, 'application', identity.uuid);
|
|
3861
|
-
this.identity = identity;
|
|
3862
|
-
this.window = new window_1$1._Window(this.wire, {
|
|
3863
|
-
uuid: this.identity.uuid,
|
|
3864
|
-
name: this.identity.uuid
|
|
3865
|
-
});
|
|
3866
|
-
}
|
|
3867
|
-
windowListFromIdentityList(identityList) {
|
|
3868
|
-
const windowList = [];
|
|
3869
|
-
identityList.forEach((identity) => {
|
|
3870
|
-
windowList.push(new window_1$1._Window(this.wire, {
|
|
3871
|
-
uuid: identity.uuid,
|
|
3872
|
-
name: identity.name
|
|
3873
|
-
}));
|
|
3874
|
-
});
|
|
3875
|
-
return windowList;
|
|
3876
|
-
}
|
|
3877
|
-
/**
|
|
3878
|
-
* Determines if the application is currently running.
|
|
3879
|
-
*
|
|
3880
|
-
* @example
|
|
3881
|
-
*
|
|
3882
|
-
* ```js
|
|
3883
|
-
* async function isAppRunning() {
|
|
3884
|
-
* const app = await fin.Application.getCurrent();
|
|
3885
|
-
* return await app.isRunning();
|
|
3886
|
-
* }
|
|
3887
|
-
* isAppRunning().then(running => console.log(`Current app is running: ${running}`)).catch(err => console.log(err));
|
|
3888
|
-
* ```
|
|
3889
|
-
*/
|
|
3890
|
-
isRunning() {
|
|
3891
|
-
return this.wire.sendAction('is-application-running', this.identity).then(({ payload }) => payload.data);
|
|
3892
|
-
}
|
|
3893
|
-
/**
|
|
3894
|
-
* Closes the application and any child windows created by the application.
|
|
3895
|
-
* Cleans the application from state so it is no longer found in getAllApplications.
|
|
3896
|
-
* @param force Close will be prevented from closing when force is false and
|
|
3897
|
-
* ‘close-requested’ has been subscribed to for application’s main window.
|
|
3898
|
-
*
|
|
3899
|
-
* @example
|
|
3900
|
-
*
|
|
3901
|
-
* ```js
|
|
3902
|
-
* async function closeApp() {
|
|
3903
|
-
* const allApps1 = await fin.System.getAllApplications(); //[{uuid: 'app1', isRunning: true}, {uuid: 'app2', isRunning: true}]
|
|
3904
|
-
* const app = await fin.Application.wrap({uuid: 'app2'});
|
|
3905
|
-
* await app.quit();
|
|
3906
|
-
* const allApps2 = await fin.System.getAllApplications(); //[{uuid: 'app1', isRunning: true}]
|
|
3907
|
-
*
|
|
3908
|
-
* }
|
|
3909
|
-
* closeApp().then(() => console.log('Application quit')).catch(err => console.log(err));
|
|
3910
|
-
* ```
|
|
3911
|
-
*/
|
|
3912
|
-
async quit(force = false) {
|
|
3913
|
-
try {
|
|
3914
|
-
await this._close(force);
|
|
3915
|
-
await this.wire.sendAction('destroy-application', { force, ...this.identity });
|
|
3916
|
-
}
|
|
3917
|
-
catch (error) {
|
|
3918
|
-
const acceptableErrors = ['Remote connection has closed', 'Could not locate the requested application'];
|
|
3919
|
-
if (!acceptableErrors.some((msg) => error.message.includes(msg))) {
|
|
3920
|
-
throw error;
|
|
3921
|
-
}
|
|
3922
|
-
}
|
|
3923
|
-
}
|
|
3924
|
-
async _close(force = false) {
|
|
3925
|
-
try {
|
|
3926
|
-
await this.wire.sendAction('close-application', { force, ...this.identity });
|
|
3927
|
-
}
|
|
3928
|
-
catch (error) {
|
|
3929
|
-
if (!error.message.includes('Remote connection has closed')) {
|
|
3930
|
-
throw error;
|
|
3931
|
-
}
|
|
3932
|
-
}
|
|
3933
|
-
}
|
|
3934
|
-
/**
|
|
3935
|
-
* @deprecated use Application.quit instead
|
|
3936
|
-
* Closes the application and any child windows created by the application.
|
|
3937
|
-
* @param force - Close will be prevented from closing when force is false and ‘close-requested’ has been subscribed to for application’s main window.
|
|
3938
|
-
* @param callback - called if the method succeeds.
|
|
3939
|
-
* @param errorCallback - called if the method fails. The reason for failure is passed as an argument.
|
|
3940
|
-
*
|
|
3941
|
-
* @example
|
|
3942
|
-
*
|
|
3943
|
-
* ```js
|
|
3944
|
-
* async function closeApp() {
|
|
3945
|
-
* const app = await fin.Application.getCurrent();
|
|
3946
|
-
* return await app.close();
|
|
3947
|
-
* }
|
|
3948
|
-
* closeApp().then(() => console.log('Application closed')).catch(err => console.log(err));
|
|
3949
|
-
* ```
|
|
3950
|
-
*/
|
|
3951
|
-
close(force = false) {
|
|
3952
|
-
console.warn('Deprecation Warning: Application.close is deprecated Please use Application.quit');
|
|
3953
|
-
this.wire.sendAction('application-close', this.identity).catch((e) => {
|
|
3954
|
-
// we do not want to expose this error, just continue if this analytics-only call fails
|
|
3955
|
-
});
|
|
3956
|
-
return this._close(force);
|
|
3957
|
-
}
|
|
3958
|
-
/**
|
|
3959
|
-
* Retrieves an array of wrapped fin.Windows for each of the application’s child windows.
|
|
3960
|
-
*
|
|
3961
|
-
* @example
|
|
3962
|
-
*
|
|
3963
|
-
* ```js
|
|
3964
|
-
* async function getChildWindows() {
|
|
3965
|
-
* const app = await fin.Application.getCurrent();
|
|
3966
|
-
* return await app.getChildWindows();
|
|
3967
|
-
* }
|
|
3968
|
-
*
|
|
3969
|
-
* getChildWindows().then(children => console.log(children)).catch(err => console.log(err));
|
|
3970
|
-
* ```
|
|
3971
|
-
*/
|
|
3972
|
-
getChildWindows() {
|
|
3973
|
-
return this.wire.sendAction('get-child-windows', this.identity).then(({ payload }) => {
|
|
3974
|
-
const identityList = [];
|
|
3975
|
-
payload.data.forEach((winName) => {
|
|
3976
|
-
identityList.push({ uuid: this.identity.uuid, name: winName });
|
|
3977
|
-
});
|
|
3978
|
-
return this.windowListFromIdentityList(identityList);
|
|
3979
|
-
});
|
|
3980
|
-
}
|
|
3981
|
-
/**
|
|
3982
|
-
* Retrieves the JSON manifest that was used to create the application. Invokes the error callback
|
|
3983
|
-
* if the application was not created from a manifest.
|
|
3984
|
-
*
|
|
3985
|
-
* @example
|
|
3986
|
-
*
|
|
3987
|
-
* ```js
|
|
3988
|
-
* async function getManifest() {
|
|
3989
|
-
* const app = await fin.Application.getCurrent();
|
|
3990
|
-
* return await app.getManifest();
|
|
3991
|
-
* }
|
|
3992
|
-
*
|
|
3993
|
-
* getManifest().then(manifest => console.log(manifest)).catch(err => console.log(err));
|
|
3994
|
-
* ```
|
|
3995
|
-
*/
|
|
3996
|
-
getManifest() {
|
|
3997
|
-
return this.wire.sendAction('get-application-manifest', this.identity).then(({ payload }) => payload.data);
|
|
3998
|
-
}
|
|
3999
|
-
/**
|
|
4000
|
-
* Retrieves UUID of the application that launches this application. Invokes the error callback
|
|
4001
|
-
* if the application was created from a manifest.
|
|
4002
|
-
*
|
|
4003
|
-
* @example
|
|
4004
|
-
*
|
|
4005
|
-
* ```js
|
|
4006
|
-
* async function getParentUuid() {
|
|
4007
|
-
* const app = await fin.Application.start({
|
|
4008
|
-
* uuid: 'app-1',
|
|
4009
|
-
* name: 'myApp',
|
|
4010
|
-
* url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.getParentUuid.html',
|
|
4011
|
-
* autoShow: true
|
|
4012
|
-
* });
|
|
4013
|
-
* return await app.getParentUuid();
|
|
4014
|
-
* }
|
|
4015
|
-
*
|
|
4016
|
-
* getParentUuid().then(parentUuid => console.log(parentUuid)).catch(err => console.log(err));
|
|
4017
|
-
* ```
|
|
4018
|
-
*/
|
|
4019
|
-
getParentUuid() {
|
|
4020
|
-
return this.wire.sendAction('get-parent-application', this.identity).then(({ payload }) => payload.data);
|
|
4021
|
-
}
|
|
4022
|
-
/**
|
|
4023
|
-
* Retrieves current application's shortcut configuration.
|
|
4024
|
-
*
|
|
4025
|
-
* @example
|
|
4026
|
-
*
|
|
4027
|
-
* ```js
|
|
4028
|
-
* async function getShortcuts() {
|
|
4029
|
-
* const app = await fin.Application.wrap({ uuid: 'testapp' });
|
|
4030
|
-
* return await app.getShortcuts();
|
|
4031
|
-
* }
|
|
4032
|
-
* getShortcuts().then(config => console.log(config)).catch(err => console.log(err));
|
|
4033
|
-
* ```
|
|
4034
|
-
*/
|
|
4035
|
-
getShortcuts() {
|
|
4036
|
-
return this.wire.sendAction('get-shortcuts', this.identity).then(({ payload }) => payload.data);
|
|
4037
|
-
}
|
|
4038
|
-
/**
|
|
4039
|
-
* Retrieves current application's views.
|
|
4040
|
-
* @experimental
|
|
4041
|
-
*
|
|
4042
|
-
* @example
|
|
4043
|
-
*
|
|
4044
|
-
* ```js
|
|
4045
|
-
* async function getViews() {
|
|
4046
|
-
* const app = await fin.Application.getCurrent();
|
|
4047
|
-
* return await app.getViews();
|
|
4048
|
-
* }
|
|
4049
|
-
* getViews().then(views => console.log(views)).catch(err => console.log(err));
|
|
4050
|
-
* ```
|
|
4051
|
-
*/
|
|
4052
|
-
async getViews() {
|
|
4053
|
-
const { payload } = await this.wire.sendAction('application-get-views', this.identity);
|
|
4054
|
-
return payload.data.map((id) => new view_1.View(this.wire, id));
|
|
4055
|
-
}
|
|
4056
|
-
/**
|
|
4057
|
-
* Returns the current zoom level of the application.
|
|
4058
|
-
*
|
|
4059
|
-
* @example
|
|
4060
|
-
*
|
|
4061
|
-
* ```js
|
|
4062
|
-
* async function getZoomLevel() {
|
|
4063
|
-
* const app = await fin.Application.getCurrent();
|
|
4064
|
-
* return await app.getZoomLevel();
|
|
4065
|
-
* }
|
|
4066
|
-
*
|
|
4067
|
-
* getZoomLevel().then(zoomLevel => console.log(zoomLevel)).catch(err => console.log(err));
|
|
4068
|
-
* ```
|
|
4069
|
-
*/
|
|
4070
|
-
getZoomLevel() {
|
|
4071
|
-
return this.wire.sendAction('get-application-zoom-level', this.identity).then(({ payload }) => payload.data);
|
|
4072
|
-
}
|
|
4073
|
-
/**
|
|
4074
|
-
* Returns an instance of the main Window of the application
|
|
4075
|
-
*
|
|
4076
|
-
* @example
|
|
4077
|
-
*
|
|
4078
|
-
* ```js
|
|
4079
|
-
* async function getWindow() {
|
|
4080
|
-
* const app = await fin.Application.start({
|
|
4081
|
-
* uuid: 'app-1',
|
|
4082
|
-
* name: 'myApp',
|
|
4083
|
-
* url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.getWindow.html',
|
|
4084
|
-
* autoShow: true
|
|
4085
|
-
* });
|
|
4086
|
-
* return await app.getWindow();
|
|
4087
|
-
* }
|
|
4088
|
-
*
|
|
4089
|
-
* getWindow().then(win => {
|
|
4090
|
-
* win.showAt(0, 400);
|
|
4091
|
-
* win.flash();
|
|
4092
|
-
* }).catch(err => console.log(err));
|
|
4093
|
-
* ```
|
|
4094
|
-
*/
|
|
4095
|
-
getWindow() {
|
|
4096
|
-
this.wire.sendAction('application-get-window', this.identity).catch((e) => {
|
|
4097
|
-
// we do not want to expose this error, just continue if this analytics-only call fails
|
|
4098
|
-
});
|
|
4099
|
-
return Promise.resolve(this.window);
|
|
4100
|
-
}
|
|
4101
|
-
/**
|
|
4102
|
-
* Manually registers a user with the licensing service. The only data sent by this call is userName and appName.
|
|
4103
|
-
* @param userName - username to be passed to the RVM.
|
|
4104
|
-
* @param appName - app name to be passed to the RVM.
|
|
4105
|
-
*
|
|
4106
|
-
* @example
|
|
4107
|
-
*
|
|
4108
|
-
* ```js
|
|
4109
|
-
* async function registerUser() {
|
|
4110
|
-
* const app = await fin.Application.getCurrent();
|
|
4111
|
-
* return await app.registerUser('user', 'myApp');
|
|
4112
|
-
* }
|
|
4113
|
-
*
|
|
4114
|
-
* registerUser().then(() => console.log('Successfully registered the user')).catch(err => console.log(err));
|
|
4115
|
-
* ```
|
|
4116
|
-
*/
|
|
4117
|
-
registerUser(userName, appName) {
|
|
4118
|
-
return this.wire.sendAction('register-user', { userName, appName, ...this.identity }).then(() => undefined);
|
|
4119
|
-
}
|
|
4120
|
-
/**
|
|
4121
|
-
* Removes the application’s icon from the tray.
|
|
4122
|
-
*
|
|
4123
|
-
* @example
|
|
4124
|
-
*
|
|
4125
|
-
* ```js
|
|
4126
|
-
* async function removeTrayIcon() {
|
|
4127
|
-
* const app = await fin.Application.getCurrent();
|
|
4128
|
-
* return await app.removeTrayIcon();
|
|
4129
|
-
* }
|
|
4130
|
-
*
|
|
4131
|
-
* removeTrayIcon().then(() => console.log('Removed the tray icon.')).catch(err => console.log(err));
|
|
4132
|
-
* ```
|
|
4133
|
-
*/
|
|
4134
|
-
removeTrayIcon() {
|
|
4135
|
-
return this.wire.sendAction('remove-tray-icon', this.identity).then(() => undefined);
|
|
4136
|
-
}
|
|
4137
|
-
/**
|
|
4138
|
-
* Restarts the application.
|
|
4139
|
-
*
|
|
4140
|
-
* @example
|
|
4141
|
-
*
|
|
4142
|
-
* ```js
|
|
4143
|
-
* async function restartApp() {
|
|
4144
|
-
* const app = await fin.Application.getCurrent();
|
|
4145
|
-
* return await app.restart();
|
|
4146
|
-
* }
|
|
4147
|
-
* restartApp().then(() => console.log('Application restarted')).catch(err => console.log(err));
|
|
4148
|
-
* ```
|
|
4149
|
-
*/
|
|
4150
|
-
restart() {
|
|
4151
|
-
return this.wire.sendAction('restart-application', this.identity).then(() => undefined);
|
|
4152
|
-
}
|
|
4153
|
-
/**
|
|
4154
|
-
* DEPRECATED method to run the application.
|
|
4155
|
-
* Needed when starting application via {@link Application.create}, but NOT needed when starting via {@link Application.start}.
|
|
4156
|
-
*
|
|
4157
|
-
* @example
|
|
4158
|
-
*
|
|
4159
|
-
* ```js
|
|
4160
|
-
* async function run() {
|
|
4161
|
-
* const app = await fin.Application.create({
|
|
4162
|
-
* name: 'myApp',
|
|
4163
|
-
* uuid: 'app-1',
|
|
4164
|
-
* url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.run.html',
|
|
4165
|
-
* autoShow: true
|
|
4166
|
-
* });
|
|
4167
|
-
* await app.run();
|
|
4168
|
-
* }
|
|
4169
|
-
* run().then(() => console.log('Application is running')).catch(err => console.log(err));
|
|
4170
|
-
* ```
|
|
4171
|
-
*
|
|
4172
|
-
* @ignore
|
|
4173
|
-
*/
|
|
4174
|
-
run() {
|
|
4175
|
-
console.warn('Deprecation Warning: Application.run is deprecated Please use fin.Application.start');
|
|
4176
|
-
this.wire.sendAction('application-run', this.identity).catch((e) => {
|
|
4177
|
-
// we do not want to expose this error, just continue if this analytics-only call fails
|
|
4178
|
-
});
|
|
4179
|
-
return this._run();
|
|
4180
|
-
}
|
|
4181
|
-
_run(opts = {}) {
|
|
4182
|
-
return this.wire
|
|
4183
|
-
.sendAction('run-application', {
|
|
4184
|
-
manifestUrl: this._manifestUrl,
|
|
4185
|
-
opts,
|
|
4186
|
-
...this.identity
|
|
4187
|
-
})
|
|
4188
|
-
.then(() => undefined);
|
|
4189
|
-
}
|
|
4190
|
-
/**
|
|
4191
|
-
* Instructs the RVM to schedule one restart of the application.
|
|
4192
|
-
*
|
|
4193
|
-
* @example
|
|
4194
|
-
*
|
|
4195
|
-
* ```js
|
|
4196
|
-
* async function scheduleRestart() {
|
|
4197
|
-
* const app = await fin.Application.getCurrent();
|
|
4198
|
-
* return await app.scheduleRestart();
|
|
4199
|
-
* }
|
|
4200
|
-
*
|
|
4201
|
-
* scheduleRestart().then(() => console.log('Application is scheduled to restart')).catch(err => console.log(err));
|
|
4202
|
-
* ```
|
|
4203
|
-
*/
|
|
4204
|
-
scheduleRestart() {
|
|
4205
|
-
return this.wire.sendAction('relaunch-on-close', this.identity).then(() => undefined);
|
|
4206
|
-
}
|
|
4207
|
-
/**
|
|
4208
|
-
* Sends a message to the RVM to upload the application's logs. On success,
|
|
4209
|
-
* an object containing logId is returned.
|
|
4210
|
-
*
|
|
4211
|
-
* @example
|
|
4212
|
-
*
|
|
4213
|
-
* ```js
|
|
4214
|
-
* async function sendLog() {
|
|
4215
|
-
* const app = await fin.Application.getCurrent();
|
|
4216
|
-
* return await app.sendApplicationLog();
|
|
4217
|
-
* }
|
|
4218
|
-
*
|
|
4219
|
-
* sendLog().then(info => console.log(info.logId)).catch(err => console.log(err));
|
|
4220
|
-
* ```
|
|
4221
|
-
*/
|
|
4222
|
-
async sendApplicationLog() {
|
|
4223
|
-
const { payload } = await this.wire.sendAction('send-application-log', this.identity);
|
|
4224
|
-
return payload.data;
|
|
4225
|
-
}
|
|
4226
|
-
/**
|
|
4227
|
-
* Sets or removes a custom JumpList for the application. Only applicable in Windows OS.
|
|
4228
|
-
* If categories is null the previously set custom JumpList (if any) will be replaced by the standard JumpList for the app (managed by Windows).
|
|
4229
|
-
*
|
|
4230
|
-
* Note: If the "name" property is omitted it defaults to "tasks".
|
|
4231
|
-
* @param jumpListCategories An array of JumpList Categories to populate. If null, remove any existing JumpList configuration and set to Windows default.
|
|
4232
|
-
*
|
|
4233
|
-
*
|
|
4234
|
-
* @remarks If categories is null the previously set custom JumpList (if any) will be replaced by the standard JumpList for the app (managed by Windows).
|
|
4235
|
-
*
|
|
4236
|
-
* The bottommost item in the jumplist will always be an item pointing to the current app. Its name is taken from the manifest's
|
|
4237
|
-
* **` shortcut.name `** and uses **` shortcut.company `** as a fallback. Clicking that item will launch the app from its current manifest.
|
|
4238
|
-
*
|
|
4239
|
-
* Note: If the "name" property is omitted it defaults to "tasks".
|
|
4240
|
-
*
|
|
4241
|
-
* Note: Window OS caches jumplists icons, therefore an icon change might only be visible after the cache is removed or the
|
|
4242
|
-
* uuid or shortcut.name is changed.
|
|
4243
|
-
*
|
|
4244
|
-
* @example
|
|
4245
|
-
*
|
|
4246
|
-
* ```js
|
|
4247
|
-
* const app = fin.Application.getCurrentSync();
|
|
4248
|
-
* const appName = 'My App';
|
|
4249
|
-
* const jumpListConfig = [ // array of JumpList categories
|
|
4250
|
-
* {
|
|
4251
|
-
* // has no name and no type so `type` is assumed to be "tasks"
|
|
4252
|
-
* items: [ // array of JumpList items
|
|
4253
|
-
* {
|
|
4254
|
-
* type: 'task',
|
|
4255
|
-
* title: `Launch ${appName}`,
|
|
4256
|
-
* description: `Runs ${appName} with the default configuration`,
|
|
4257
|
-
* deepLink: 'fins://path.to/app/manifest.json',
|
|
4258
|
-
* iconPath: 'https://path.to/app/icon.ico',
|
|
4259
|
-
* iconIndex: 0
|
|
4260
|
-
* },
|
|
4261
|
-
* { type: 'separator' },
|
|
4262
|
-
* {
|
|
4263
|
-
* type: 'task',
|
|
4264
|
-
* title: `Restore ${appName}`,
|
|
4265
|
-
* description: 'Restore to last configuration',
|
|
4266
|
-
* deepLink: 'fins://path.to/app/manifest.json?$$use-last-configuration=true',
|
|
4267
|
-
* iconPath: 'https://path.to/app/icon.ico',
|
|
4268
|
-
* iconIndex: 0
|
|
4269
|
-
* },
|
|
4270
|
-
* ]
|
|
4271
|
-
* },
|
|
4272
|
-
* {
|
|
4273
|
-
* name: 'Tools',
|
|
4274
|
-
* items: [ // array of JumpList items
|
|
4275
|
-
* {
|
|
4276
|
-
* type: 'task',
|
|
4277
|
-
* title: 'Tool A',
|
|
4278
|
-
* description: 'Runs Tool A',
|
|
4279
|
-
* deepLink: 'fins://path.to/tool-a/manifest.json',
|
|
4280
|
-
* iconPath: 'https://path.to/tool-a/icon.ico',
|
|
4281
|
-
* iconIndex: 0
|
|
4282
|
-
* },
|
|
4283
|
-
* {
|
|
4284
|
-
* type: 'task',
|
|
4285
|
-
* title: 'Tool B',
|
|
4286
|
-
* description: 'Runs Tool B',
|
|
4287
|
-
* deepLink: 'fins://path.to/tool-b/manifest.json',
|
|
4288
|
-
* iconPath: 'https://path.to/tool-b/icon.ico',
|
|
4289
|
-
* iconIndex: 0
|
|
4290
|
-
* }]
|
|
4291
|
-
* }
|
|
4292
|
-
* ];
|
|
4293
|
-
*
|
|
4294
|
-
* app.setJumpList(jumpListConfig).then(() => console.log('JumpList applied')).catch(e => console.log(`JumpList failed to apply: ${e.toString()}`));
|
|
4295
|
-
* ```
|
|
4296
|
-
*
|
|
4297
|
-
* To handle deeplink args:
|
|
4298
|
-
* ```js
|
|
4299
|
-
* function handleUseLastConfiguration() {
|
|
4300
|
-
* // this handler is called when the app is being launched
|
|
4301
|
-
* app.on('run-requested', event => {
|
|
4302
|
-
* if(event.userAppConfigArgs['use-last-configuration']) {
|
|
4303
|
-
* // your logic here
|
|
4304
|
-
* }
|
|
4305
|
-
* });
|
|
4306
|
-
* // this handler is called when the app was already running when the launch was requested
|
|
4307
|
-
* fin.desktop.main(function(args) {
|
|
4308
|
-
* if(args && args['use-last-configuration']) {
|
|
4309
|
-
* // your logic here
|
|
4310
|
-
* }
|
|
4311
|
-
* });
|
|
4312
|
-
* }
|
|
4313
|
-
* ```
|
|
4314
|
-
*/
|
|
4315
|
-
async setJumpList(jumpListCategories) {
|
|
4316
|
-
await this.wire.sendAction('set-jump-list', { config: jumpListCategories, ...this.identity });
|
|
4317
|
-
}
|
|
4318
|
-
/**
|
|
4319
|
-
* Adds a customizable icon in the system tray. To listen for a click on the icon use the `tray-icon-clicked` event.
|
|
4320
|
-
* @param icon Image URL or base64 encoded string to be used as the icon
|
|
4321
|
-
*
|
|
4322
|
-
* @example
|
|
4323
|
-
*
|
|
4324
|
-
* ```js
|
|
4325
|
-
* const imageUrl = "http://cdn.openfin.co/assets/testing/icons/circled-digit-one.png";
|
|
4326
|
-
* const base64EncodedImage = "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAIAQMAAAD+wSzIAAAABlBMVEX\
|
|
4327
|
-
* ///+/v7+jQ3Y5AAAADklEQVQI12P4AIX8EAgALgAD/aNpbtEAAAAASUVORK5CYII";
|
|
4328
|
-
* const dataURL = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DH\
|
|
4329
|
-
* xgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==";
|
|
4330
|
-
*
|
|
4331
|
-
* async function setTrayIcon(icon) {
|
|
4332
|
-
* const app = await fin.Application.getCurrent();
|
|
4333
|
-
* return await app.setTrayIcon(icon);
|
|
4334
|
-
* }
|
|
4335
|
-
*
|
|
4336
|
-
* // use image url to set tray icon
|
|
4337
|
-
* setTrayIcon(imageUrl).then(() => console.log('Setting tray icon')).catch(err => console.log(err));
|
|
4338
|
-
*
|
|
4339
|
-
* // use base64 encoded string to set tray icon
|
|
4340
|
-
* setTrayIcon(base64EncodedImage).then(() => console.log('Setting tray icon')).catch(err => console.log(err));
|
|
4341
|
-
*
|
|
4342
|
-
* // use a dataURL to set tray icon
|
|
4343
|
-
* setTrayIcon(dataURL).then(() => console.log('Setting tray icon')).catch(err => console.log(err));
|
|
4344
|
-
* ```
|
|
4345
|
-
*/
|
|
4346
|
-
setTrayIcon(icon) {
|
|
4347
|
-
return this.wire
|
|
4348
|
-
.sendAction('set-tray-icon', {
|
|
4349
|
-
enabledIcon: icon,
|
|
4350
|
-
...this.identity
|
|
4351
|
-
})
|
|
4352
|
-
.then(() => undefined);
|
|
4353
|
-
}
|
|
4354
|
-
/**
|
|
4355
|
-
* Set hover text for this application's system tray icon.
|
|
4356
|
-
* Note: Application must first set a tray icon with {@link Application.setTrayIcon}.
|
|
4357
|
-
* @param toolTip
|
|
4358
|
-
*
|
|
4359
|
-
* @example
|
|
4360
|
-
*
|
|
4361
|
-
* ```js
|
|
4362
|
-
* const app = fin.Application.getCurrentSync();
|
|
4363
|
-
* const iconUrl = "http://cdn.openfin.co/assets/testing/icons/circled-digit-one.png";
|
|
4364
|
-
*
|
|
4365
|
-
* await app.setTrayIcon(iconUrl);
|
|
4366
|
-
*
|
|
4367
|
-
* await app.setTrayIconToolTip('My Application');
|
|
4368
|
-
* ```
|
|
4369
|
-
*/
|
|
4370
|
-
async setTrayIconToolTip(toolTip) {
|
|
4371
|
-
await this.wire.sendAction('set-tray-icon-tooltip', { ...this.identity, toolTip });
|
|
4372
|
-
}
|
|
4373
|
-
/**
|
|
4374
|
-
* Sets new application's shortcut configuration. Windows only.
|
|
4375
|
-
* @param config New application's shortcut configuration.
|
|
4376
|
-
*
|
|
4377
|
-
* @remarks Application has to be launched with a manifest and has to have shortcut configuration (icon url, name, etc.) in its manifest
|
|
4378
|
-
* to be able to change shortcut states.
|
|
4379
|
-
*
|
|
4380
|
-
* @example
|
|
4381
|
-
*
|
|
4382
|
-
* ```js
|
|
4383
|
-
* async function setShortcuts(config) {
|
|
4384
|
-
* const app = await fin.Application.getCurrent();
|
|
4385
|
-
* return app.setShortcuts(config);
|
|
4386
|
-
* }
|
|
4387
|
-
*
|
|
4388
|
-
* setShortcuts({
|
|
4389
|
-
* desktop: true,
|
|
4390
|
-
* startMenu: false,
|
|
4391
|
-
* systemStartup: true
|
|
4392
|
-
* }).then(() => console.log('Shortcuts are set.')).catch(err => console.log(err));
|
|
4393
|
-
* ```
|
|
4394
|
-
*/
|
|
4395
|
-
setShortcuts(config) {
|
|
4396
|
-
return this.wire.sendAction('set-shortcuts', { data: config, ...this.identity }).then(() => undefined);
|
|
4397
|
-
}
|
|
4398
|
-
/**
|
|
4399
|
-
* Sets the query string in all shortcuts for this app. Requires RVM 5.5+.
|
|
4400
|
-
* @param queryString The new query string for this app's shortcuts.
|
|
4401
|
-
*
|
|
4402
|
-
* @example
|
|
4403
|
-
*
|
|
4404
|
-
* ```js
|
|
4405
|
-
* const newQueryArgs = 'arg=true&arg2=false';
|
|
4406
|
-
* const app = await fin.Application.getCurrent();
|
|
4407
|
-
* try {
|
|
4408
|
-
* await app.setShortcutQueryParams(newQueryArgs);
|
|
4409
|
-
* } catch(err) {
|
|
4410
|
-
* console.error(err)
|
|
4411
|
-
* }
|
|
4412
|
-
* ```
|
|
4413
|
-
*/
|
|
4414
|
-
async setShortcutQueryParams(queryString) {
|
|
4415
|
-
await this.wire.sendAction('set-shortcut-query-args', { data: queryString, ...this.identity });
|
|
4416
|
-
}
|
|
4417
|
-
/**
|
|
4418
|
-
* Sets the zoom level of the application. The original size is 0 and each increment above or below represents zooming 20%
|
|
4419
|
-
* larger or smaller to default limits of 300% and 50% of original size, respectively.
|
|
4420
|
-
* @param level The zoom level
|
|
4421
|
-
*
|
|
4422
|
-
* @example
|
|
4423
|
-
*
|
|
4424
|
-
* ```js
|
|
4425
|
-
* async function setZoomLevel(number) {
|
|
4426
|
-
* const app = await fin.Application.getCurrent();
|
|
4427
|
-
* return await app.setZoomLevel(number);
|
|
4428
|
-
* }
|
|
4429
|
-
*
|
|
4430
|
-
* setZoomLevel(5).then(() => console.log('Setting a zoom level')).catch(err => console.log(err));
|
|
4431
|
-
* ```
|
|
4432
|
-
*/
|
|
4433
|
-
setZoomLevel(level) {
|
|
4434
|
-
return this.wire.sendAction('set-application-zoom-level', { level, ...this.identity }).then(() => undefined);
|
|
4435
|
-
}
|
|
4436
|
-
/**
|
|
4437
|
-
* Sets a username to correlate with App Log Management.
|
|
4438
|
-
* @param username Username to correlate with App's Log.
|
|
4439
|
-
*
|
|
4440
|
-
* @example
|
|
4441
|
-
*
|
|
4442
|
-
* ```js
|
|
4443
|
-
* async function setAppLogUser() {
|
|
4444
|
-
* const app = await fin.Application.getCurrent();
|
|
4445
|
-
* return await app.setAppLogUsername('username');
|
|
4446
|
-
* }
|
|
4447
|
-
*
|
|
4448
|
-
* setAppLogUser().then(() => console.log('Success')).catch(err => console.log(err));
|
|
4449
|
-
*
|
|
4450
|
-
* ```
|
|
4451
|
-
*/
|
|
4452
|
-
async setAppLogUsername(username) {
|
|
4453
|
-
await this.wire.sendAction('set-app-log-username', { data: username, ...this.identity });
|
|
4454
|
-
}
|
|
4455
|
-
/**
|
|
4456
|
-
* Retrieves information about the system tray. If the system tray is not set, it will throw an error message.
|
|
4457
|
-
* @remarks The only information currently returned is the position and dimensions.
|
|
4458
|
-
*
|
|
4459
|
-
* @example
|
|
4460
|
-
*
|
|
4461
|
-
* ```js
|
|
4462
|
-
* async function getTrayIconInfo() {
|
|
4463
|
-
* const app = await fin.Application.wrap({ uuid: 'testapp' });
|
|
4464
|
-
* return await app.getTrayIconInfo();
|
|
4465
|
-
* }
|
|
4466
|
-
* getTrayIconInfo().then(info => console.log(info)).catch(err => console.log(err));
|
|
4467
|
-
* ```
|
|
4468
|
-
*/
|
|
4469
|
-
getTrayIconInfo() {
|
|
4470
|
-
return this.wire.sendAction('get-tray-icon-info', this.identity).then(({ payload }) => payload.data);
|
|
4471
|
-
}
|
|
4472
|
-
/**
|
|
4473
|
-
* Checks if the application has an associated tray icon.
|
|
4474
|
-
*
|
|
4475
|
-
* @example
|
|
4476
|
-
*
|
|
4477
|
-
* ```js
|
|
4478
|
-
* const app = await fin.Application.wrap({ uuid: 'testapp' });
|
|
4479
|
-
* const hasTrayIcon = await app.hasTrayIcon();
|
|
4480
|
-
* console.log(hasTrayIcon);
|
|
4481
|
-
* ```
|
|
4482
|
-
*/
|
|
4483
|
-
hasTrayIcon() {
|
|
4484
|
-
return this.wire.sendAction('has-tray-icon', this.identity).then(({ payload }) => payload.data);
|
|
4485
|
-
}
|
|
4486
|
-
/**
|
|
4487
|
-
* Closes the application by terminating its process.
|
|
4488
|
-
*
|
|
4489
|
-
* @example
|
|
4490
|
-
*
|
|
4491
|
-
* ```js
|
|
4492
|
-
* async function terminateApp() {
|
|
4493
|
-
* const app = await fin.Application.getCurrent();
|
|
4494
|
-
* return await app.terminate();
|
|
4495
|
-
* }
|
|
4496
|
-
* terminateApp().then(() => console.log('Application terminated')).catch(err => console.log(err));
|
|
4497
|
-
* ```
|
|
4498
|
-
*/
|
|
4499
|
-
terminate() {
|
|
4500
|
-
return this.wire.sendAction('terminate-application', this.identity).then(() => undefined);
|
|
4501
|
-
}
|
|
4502
|
-
/**
|
|
4503
|
-
* Waits for a hanging application. This method can be called in response to an application
|
|
4504
|
-
* "not-responding" to allow the application to continue and to generate another "not-responding"
|
|
4505
|
-
* message after a certain period of time.
|
|
4506
|
-
*
|
|
4507
|
-
* @ignore
|
|
4508
|
-
*/
|
|
4509
|
-
wait() {
|
|
4510
|
-
return this.wire.sendAction('wait-for-hung-application', this.identity).then(() => undefined);
|
|
4511
|
-
}
|
|
4512
|
-
/**
|
|
4513
|
-
* Retrieves information about the application.
|
|
4514
|
-
*
|
|
4515
|
-
* @remarks If the application was not launched from a manifest, the call will return the closest parent application `manifest`
|
|
4516
|
-
* and `manifestUrl`. `initialOptions` shows the parameters used when launched programmatically, or the `startup_app` options
|
|
4517
|
-
* if launched from manifest. The `parentUuid` will be the uuid of the immediate parent (if applicable).
|
|
4518
|
-
*
|
|
4519
|
-
* @example
|
|
4520
|
-
*
|
|
4521
|
-
* ```js
|
|
4522
|
-
* async function getInfo() {
|
|
4523
|
-
* const app = await fin.Application.getCurrent();
|
|
4524
|
-
* return await app.getInfo();
|
|
4525
|
-
* }
|
|
4526
|
-
*
|
|
4527
|
-
* getInfo().then(info => console.log(info)).catch(err => console.log(err));
|
|
4528
|
-
* ```
|
|
4529
|
-
*/
|
|
4530
|
-
getInfo() {
|
|
4531
|
-
return this.wire.sendAction('get-info', this.identity).then(({ payload }) => payload.data);
|
|
4532
|
-
}
|
|
4533
|
-
/**
|
|
4534
|
-
* Retrieves all process information for entities (windows and views) associated with an application.
|
|
4535
|
-
*
|
|
4536
|
-
* @example
|
|
4537
|
-
* ```js
|
|
4538
|
-
* const app = await fin.Application.getCurrent();
|
|
4539
|
-
* const processInfo = await app.getProcessInfo();
|
|
4540
|
-
* ```
|
|
4541
|
-
* @experimental
|
|
4542
|
-
*/
|
|
4543
|
-
async getProcessInfo() {
|
|
4544
|
-
const { payload: { data } } = await this.wire.sendAction('application-get-process-info', this.identity);
|
|
4545
|
-
return data;
|
|
4546
|
-
}
|
|
4547
|
-
/**
|
|
4548
|
-
* Sets file auto download location. It's only allowed in the same application.
|
|
4549
|
-
*
|
|
4550
|
-
* Note: This method is restricted by default and must be enabled via
|
|
4551
|
-
* <a href="https://developers.openfin.co/docs/api-security">API security settings</a>.
|
|
4552
|
-
* @param downloadLocation file auto download location
|
|
4553
|
-
*
|
|
4554
|
-
* @throws if setting file auto download location on different applications.
|
|
4555
|
-
* @example
|
|
4556
|
-
*
|
|
4557
|
-
* ```js
|
|
4558
|
-
* const downloadLocation = 'C:\\dev\\temp';
|
|
4559
|
-
* const app = await fin.Application.getCurrent();
|
|
4560
|
-
* try {
|
|
4561
|
-
* await app.setFileDownloadLocation(downloadLocation);
|
|
4562
|
-
* console.log('File download location is set');
|
|
4563
|
-
* } catch(err) {
|
|
4564
|
-
* console.error(err)
|
|
4565
|
-
* }
|
|
4566
|
-
* ```
|
|
4567
|
-
*/
|
|
4568
|
-
async setFileDownloadLocation(downloadLocation) {
|
|
4569
|
-
const { name } = this.wire.me;
|
|
4570
|
-
const entityIdentity = { uuid: this.identity.uuid, name };
|
|
4571
|
-
await this.wire.sendAction('set-file-download-location', { ...entityIdentity, downloadLocation });
|
|
4572
|
-
}
|
|
4573
|
-
/**
|
|
4574
|
-
* Gets file auto download location. It's only allowed in the same application. If file auto download location is not set, it will return the default location.
|
|
4575
|
-
*
|
|
4576
|
-
* Note: This method is restricted by default and must be enabled via
|
|
4577
|
-
* <a href="https://developers.openfin.co/docs/api-security">API security settings</a>.
|
|
4578
|
-
*
|
|
4579
|
-
* @throws if getting file auto download location on different applications.
|
|
4580
|
-
* @example
|
|
4581
|
-
*
|
|
4582
|
-
* ```js
|
|
4583
|
-
* const app = await fin.Application.getCurrent();
|
|
4584
|
-
* const fileDownloadDir = await app.getFileDownloadLocation();
|
|
4585
|
-
* ```
|
|
4586
|
-
*/
|
|
4587
|
-
async getFileDownloadLocation() {
|
|
4588
|
-
const { payload: { data } } = await this.wire.sendAction('get-file-download-location', this.identity);
|
|
4589
|
-
return data;
|
|
4590
|
-
}
|
|
4591
|
-
/**
|
|
4592
|
-
* Shows a menu on the tray icon. Use with tray-icon-clicked event.
|
|
4593
|
-
* @param options
|
|
4594
|
-
* @typeParam Data User-defined shape for data returned upon menu item click. Should be a
|
|
4595
|
-
* [union](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types)
|
|
4596
|
-
* of all possible data shapes for the entire menu, and the click handler should process
|
|
4597
|
-
* these with a "reducer" pattern.
|
|
4598
|
-
* @throws if the application has no tray icon set
|
|
4599
|
-
* @throws if the system tray is currently hidden
|
|
4600
|
-
* @example
|
|
4601
|
-
*
|
|
4602
|
-
* ```js
|
|
4603
|
-
* const iconUrl = 'http://cdn.openfin.co/assets/testing/icons/circled-digit-one.png';
|
|
4604
|
-
* const app = fin.Application.getCurrentSync();
|
|
4605
|
-
*
|
|
4606
|
-
* await app.setTrayIcon(iconUrl);
|
|
4607
|
-
*
|
|
4608
|
-
* const template = [
|
|
4609
|
-
* {
|
|
4610
|
-
* label: 'Menu Item 1',
|
|
4611
|
-
* data: 'hello from item 1'
|
|
4612
|
-
* },
|
|
4613
|
-
* { type: 'separator' },
|
|
4614
|
-
* {
|
|
4615
|
-
* label: 'Menu Item 2',
|
|
4616
|
-
* type: 'checkbox',
|
|
4617
|
-
* checked: true,
|
|
4618
|
-
* data: 'The user clicked the checkbox'
|
|
4619
|
-
* },
|
|
4620
|
-
* {
|
|
4621
|
-
* label: 'see more',
|
|
4622
|
-
* enabled: false,
|
|
4623
|
-
* submenu: [
|
|
4624
|
-
* { label: 'submenu 1', data: 'hello from submenu' }
|
|
4625
|
-
* ]
|
|
4626
|
-
* }
|
|
4627
|
-
* ];
|
|
4628
|
-
*
|
|
4629
|
-
* app.addListener('tray-icon-clicked', (event) => {
|
|
4630
|
-
* // right-click
|
|
4631
|
-
* if (event.button === 2) {
|
|
4632
|
-
* app.showTrayIconPopupMenu({ template }).then(r => {
|
|
4633
|
-
* if (r.result === 'closed') {
|
|
4634
|
-
* console.log('nothing happened');
|
|
4635
|
-
* } else {
|
|
4636
|
-
* console.log(r.data);
|
|
4637
|
-
* }
|
|
4638
|
-
* });
|
|
4639
|
-
* }
|
|
4640
|
-
* });
|
|
4641
|
-
* ```
|
|
4642
|
-
*/
|
|
4643
|
-
async showTrayIconPopupMenu(options) {
|
|
4644
|
-
const { name } = this.wire.me;
|
|
4645
|
-
const entityIdentity = { uuid: this.identity.uuid, name };
|
|
4646
|
-
const { payload } = await this.wire.sendAction('show-tray-icon-popup-menu', { ...entityIdentity, options });
|
|
4647
|
-
return payload.data;
|
|
4648
|
-
}
|
|
4649
|
-
/**
|
|
4650
|
-
* Closes the tray icon menu.
|
|
4651
|
-
*
|
|
4652
|
-
* @throws if the application has no tray icon set
|
|
4653
|
-
* @example
|
|
4654
|
-
*
|
|
4655
|
-
* ```js
|
|
4656
|
-
* const app = fin.Application.getCurrentSync();
|
|
4657
|
-
*
|
|
4658
|
-
* await app.closeTrayIconPopupMenu();
|
|
4659
|
-
* ```
|
|
4660
|
-
*/
|
|
4661
|
-
async closeTrayIconPopupMenu() {
|
|
4662
|
-
const { name } = this.wire.me;
|
|
4663
|
-
const entityIdentity = { uuid: this.identity.uuid, name };
|
|
4664
|
-
await this.wire.sendAction('close-tray-icon-popup-menu', { ...entityIdentity });
|
|
4665
|
-
}
|
|
4666
|
-
}
|
|
4667
|
-
Instance$5.Application = Application;
|
|
3856
|
+
var hasRequiredInstance$2;
|
|
4668
3857
|
|
|
4669
|
-
|
|
4670
|
-
|
|
4671
|
-
|
|
4672
|
-
|
|
4673
|
-
|
|
4674
|
-
|
|
4675
|
-
|
|
4676
|
-
|
|
4677
|
-
|
|
4678
|
-
|
|
4679
|
-
|
|
4680
|
-
|
|
4681
|
-
|
|
4682
|
-
|
|
4683
|
-
|
|
4684
|
-
|
|
4685
|
-
|
|
4686
|
-
|
|
4687
|
-
|
|
4688
|
-
|
|
4689
|
-
|
|
4690
|
-
|
|
4691
|
-
|
|
4692
|
-
|
|
4693
|
-
|
|
4694
|
-
|
|
4695
|
-
|
|
4696
|
-
|
|
4697
|
-
|
|
4698
|
-
|
|
4699
|
-
|
|
4700
|
-
|
|
4701
|
-
|
|
4702
|
-
|
|
4703
|
-
|
|
4704
|
-
|
|
4705
|
-
|
|
4706
|
-
|
|
4707
|
-
|
|
4708
|
-
|
|
4709
|
-
|
|
4710
|
-
|
|
4711
|
-
|
|
4712
|
-
|
|
4713
|
-
|
|
4714
|
-
|
|
4715
|
-
|
|
4716
|
-
|
|
4717
|
-
|
|
4718
|
-
|
|
4719
|
-
|
|
4720
|
-
|
|
4721
|
-
|
|
4722
|
-
|
|
4723
|
-
|
|
4724
|
-
|
|
4725
|
-
|
|
4726
|
-
|
|
4727
|
-
|
|
4728
|
-
|
|
4729
|
-
|
|
4730
|
-
|
|
4731
|
-
|
|
4732
|
-
|
|
4733
|
-
|
|
4734
|
-
|
|
4735
|
-
|
|
4736
|
-
|
|
4737
|
-
|
|
4738
|
-
|
|
4739
|
-
|
|
4740
|
-
|
|
4741
|
-
|
|
4742
|
-
|
|
4743
|
-
|
|
4744
|
-
|
|
4745
|
-
|
|
4746
|
-
|
|
4747
|
-
|
|
4748
|
-
|
|
4749
|
-
|
|
4750
|
-
|
|
4751
|
-
|
|
4752
|
-
|
|
4753
|
-
|
|
4754
|
-
|
|
4755
|
-
|
|
4756
|
-
|
|
4757
|
-
|
|
4758
|
-
|
|
4759
|
-
|
|
4760
|
-
|
|
4761
|
-
|
|
4762
|
-
|
|
4763
|
-
|
|
4764
|
-
|
|
4765
|
-
|
|
4766
|
-
|
|
4767
|
-
|
|
4768
|
-
|
|
4769
|
-
|
|
4770
|
-
|
|
4771
|
-
|
|
4772
|
-
|
|
4773
|
-
|
|
4774
|
-
|
|
4775
|
-
|
|
4776
|
-
|
|
4777
|
-
|
|
4778
|
-
|
|
4779
|
-
|
|
4780
|
-
|
|
4781
|
-
|
|
4782
|
-
|
|
4783
|
-
|
|
4784
|
-
|
|
4785
|
-
|
|
4786
|
-
|
|
4787
|
-
|
|
4788
|
-
|
|
4789
|
-
|
|
4790
|
-
|
|
4791
|
-
|
|
4792
|
-
|
|
4793
|
-
|
|
4794
|
-
|
|
4795
|
-
|
|
4796
|
-
|
|
4797
|
-
|
|
4798
|
-
|
|
4799
|
-
|
|
4800
|
-
|
|
4801
|
-
|
|
4802
|
-
|
|
4803
|
-
|
|
4804
|
-
|
|
4805
|
-
|
|
4806
|
-
|
|
4807
|
-
|
|
4808
|
-
|
|
4809
|
-
|
|
4810
|
-
|
|
4811
|
-
|
|
4812
|
-
|
|
4813
|
-
|
|
4814
|
-
|
|
4815
|
-
|
|
4816
|
-
|
|
4817
|
-
|
|
4818
|
-
|
|
4819
|
-
|
|
4820
|
-
|
|
4821
|
-
|
|
4822
|
-
|
|
4823
|
-
|
|
4824
|
-
|
|
4825
|
-
|
|
4826
|
-
|
|
4827
|
-
|
|
4828
|
-
|
|
4829
|
-
|
|
4830
|
-
|
|
4831
|
-
|
|
4832
|
-
|
|
4833
|
-
|
|
4834
|
-
|
|
4835
|
-
|
|
4836
|
-
|
|
4837
|
-
|
|
4838
|
-
|
|
4839
|
-
|
|
4840
|
-
|
|
4841
|
-
|
|
4842
|
-
|
|
4843
|
-
|
|
4844
|
-
|
|
4845
|
-
|
|
4846
|
-
|
|
4847
|
-
|
|
4848
|
-
|
|
4849
|
-
|
|
4850
|
-
|
|
4851
|
-
|
|
4852
|
-
|
|
4853
|
-
|
|
4854
|
-
|
|
4855
|
-
|
|
4856
|
-
|
|
4857
|
-
|
|
4858
|
-
|
|
4859
|
-
|
|
4860
|
-
|
|
4861
|
-
|
|
4862
|
-
|
|
4863
|
-
|
|
4864
|
-
|
|
4865
|
-
|
|
4866
|
-
|
|
4867
|
-
|
|
4868
|
-
|
|
4869
|
-
|
|
4870
|
-
|
|
4871
|
-
|
|
4872
|
-
|
|
4873
|
-
|
|
4874
|
-
|
|
4875
|
-
|
|
4876
|
-
|
|
4877
|
-
|
|
4878
|
-
|
|
4879
|
-
|
|
4880
|
-
|
|
4881
|
-
|
|
4882
|
-
|
|
4883
|
-
|
|
4884
|
-
|
|
4885
|
-
|
|
4886
|
-
|
|
4887
|
-
|
|
4888
|
-
|
|
4889
|
-
|
|
4890
|
-
|
|
4891
|
-
|
|
4892
|
-
|
|
4893
|
-
|
|
4894
|
-
|
|
4895
|
-
|
|
4896
|
-
|
|
4897
|
-
|
|
4898
|
-
|
|
4899
|
-
|
|
4900
|
-
|
|
4901
|
-
|
|
4902
|
-
|
|
4903
|
-
|
|
4904
|
-
|
|
4905
|
-
|
|
4906
|
-
|
|
4907
|
-
|
|
4908
|
-
|
|
4909
|
-
|
|
4910
|
-
|
|
4911
|
-
|
|
4912
|
-
|
|
4913
|
-
|
|
4914
|
-
|
|
4915
|
-
|
|
4916
|
-
|
|
4917
|
-
|
|
4918
|
-
|
|
4919
|
-
|
|
4920
|
-
|
|
4921
|
-
|
|
4922
|
-
|
|
4923
|
-
|
|
4924
|
-
|
|
4925
|
-
|
|
4926
|
-
|
|
4927
|
-
|
|
4928
|
-
|
|
4929
|
-
|
|
4930
|
-
|
|
4931
|
-
|
|
4932
|
-
|
|
4933
|
-
|
|
4934
|
-
|
|
4935
|
-
|
|
4936
|
-
|
|
4937
|
-
|
|
4938
|
-
|
|
4939
|
-
}
|
|
4940
|
-
|
|
4941
|
-
|
|
4942
|
-
|
|
4943
|
-
|
|
4944
|
-
|
|
4945
|
-
|
|
4946
|
-
|
|
4947
|
-
|
|
3858
|
+
function requireInstance$2 () {
|
|
3859
|
+
if (hasRequiredInstance$2) return Instance$5;
|
|
3860
|
+
hasRequiredInstance$2 = 1;
|
|
3861
|
+
Object.defineProperty(Instance$5, "__esModule", { value: true });
|
|
3862
|
+
Instance$5.Application = void 0;
|
|
3863
|
+
/* eslint-disable import/prefer-default-export */
|
|
3864
|
+
const base_1 = base;
|
|
3865
|
+
const window_1 = requireWindow();
|
|
3866
|
+
const view_1 = requireView();
|
|
3867
|
+
/**
|
|
3868
|
+
* An object representing an application. Allows the developer to create,
|
|
3869
|
+
* execute, show/close an application as well as listen to {@link OpenFin.ApplicationEvents application events}.
|
|
3870
|
+
*/
|
|
3871
|
+
class Application extends base_1.EmitterBase {
|
|
3872
|
+
/**
|
|
3873
|
+
* @internal
|
|
3874
|
+
*/
|
|
3875
|
+
constructor(wire, identity) {
|
|
3876
|
+
super(wire, 'application', identity.uuid);
|
|
3877
|
+
this.identity = identity;
|
|
3878
|
+
this.window = new window_1._Window(this.wire, {
|
|
3879
|
+
uuid: this.identity.uuid,
|
|
3880
|
+
name: this.identity.uuid
|
|
3881
|
+
});
|
|
3882
|
+
}
|
|
3883
|
+
windowListFromIdentityList(identityList) {
|
|
3884
|
+
const windowList = [];
|
|
3885
|
+
identityList.forEach((identity) => {
|
|
3886
|
+
windowList.push(new window_1._Window(this.wire, {
|
|
3887
|
+
uuid: identity.uuid,
|
|
3888
|
+
name: identity.name
|
|
3889
|
+
}));
|
|
3890
|
+
});
|
|
3891
|
+
return windowList;
|
|
3892
|
+
}
|
|
3893
|
+
/**
|
|
3894
|
+
* Determines if the application is currently running.
|
|
3895
|
+
*
|
|
3896
|
+
* @example
|
|
3897
|
+
*
|
|
3898
|
+
* ```js
|
|
3899
|
+
* async function isAppRunning() {
|
|
3900
|
+
* const app = await fin.Application.getCurrent();
|
|
3901
|
+
* return await app.isRunning();
|
|
3902
|
+
* }
|
|
3903
|
+
* isAppRunning().then(running => console.log(`Current app is running: ${running}`)).catch(err => console.log(err));
|
|
3904
|
+
* ```
|
|
3905
|
+
*/
|
|
3906
|
+
isRunning() {
|
|
3907
|
+
return this.wire.sendAction('is-application-running', this.identity).then(({ payload }) => payload.data);
|
|
3908
|
+
}
|
|
3909
|
+
/**
|
|
3910
|
+
* Closes the application and any child windows created by the application.
|
|
3911
|
+
* Cleans the application from state so it is no longer found in getAllApplications.
|
|
3912
|
+
* @param force Close will be prevented from closing when force is false and
|
|
3913
|
+
* ‘close-requested’ has been subscribed to for application’s main window.
|
|
3914
|
+
*
|
|
3915
|
+
* @example
|
|
3916
|
+
*
|
|
3917
|
+
* ```js
|
|
3918
|
+
* async function closeApp() {
|
|
3919
|
+
* const allApps1 = await fin.System.getAllApplications(); //[{uuid: 'app1', isRunning: true}, {uuid: 'app2', isRunning: true}]
|
|
3920
|
+
* const app = await fin.Application.wrap({uuid: 'app2'});
|
|
3921
|
+
* await app.quit();
|
|
3922
|
+
* const allApps2 = await fin.System.getAllApplications(); //[{uuid: 'app1', isRunning: true}]
|
|
3923
|
+
*
|
|
3924
|
+
* }
|
|
3925
|
+
* closeApp().then(() => console.log('Application quit')).catch(err => console.log(err));
|
|
3926
|
+
* ```
|
|
3927
|
+
*/
|
|
3928
|
+
async quit(force = false) {
|
|
3929
|
+
try {
|
|
3930
|
+
await this._close(force);
|
|
3931
|
+
await this.wire.sendAction('destroy-application', { force, ...this.identity });
|
|
3932
|
+
}
|
|
3933
|
+
catch (error) {
|
|
3934
|
+
const acceptableErrors = ['Remote connection has closed', 'Could not locate the requested application'];
|
|
3935
|
+
if (!acceptableErrors.some((msg) => error.message.includes(msg))) {
|
|
3936
|
+
throw error;
|
|
3937
|
+
}
|
|
3938
|
+
}
|
|
3939
|
+
}
|
|
3940
|
+
async _close(force = false) {
|
|
3941
|
+
try {
|
|
3942
|
+
await this.wire.sendAction('close-application', { force, ...this.identity });
|
|
3943
|
+
}
|
|
3944
|
+
catch (error) {
|
|
3945
|
+
if (!error.message.includes('Remote connection has closed')) {
|
|
3946
|
+
throw error;
|
|
3947
|
+
}
|
|
3948
|
+
}
|
|
3949
|
+
}
|
|
3950
|
+
/**
|
|
3951
|
+
* @deprecated use Application.quit instead
|
|
3952
|
+
* Closes the application and any child windows created by the application.
|
|
3953
|
+
* @param force - Close will be prevented from closing when force is false and ‘close-requested’ has been subscribed to for application’s main window.
|
|
3954
|
+
* @param callback - called if the method succeeds.
|
|
3955
|
+
* @param errorCallback - called if the method fails. The reason for failure is passed as an argument.
|
|
3956
|
+
*
|
|
3957
|
+
* @example
|
|
3958
|
+
*
|
|
3959
|
+
* ```js
|
|
3960
|
+
* async function closeApp() {
|
|
3961
|
+
* const app = await fin.Application.getCurrent();
|
|
3962
|
+
* return await app.close();
|
|
3963
|
+
* }
|
|
3964
|
+
* closeApp().then(() => console.log('Application closed')).catch(err => console.log(err));
|
|
3965
|
+
* ```
|
|
3966
|
+
*/
|
|
3967
|
+
close(force = false) {
|
|
3968
|
+
console.warn('Deprecation Warning: Application.close is deprecated Please use Application.quit');
|
|
3969
|
+
this.wire.sendAction('application-close', this.identity).catch((e) => {
|
|
3970
|
+
// we do not want to expose this error, just continue if this analytics-only call fails
|
|
3971
|
+
});
|
|
3972
|
+
return this._close(force);
|
|
3973
|
+
}
|
|
3974
|
+
/**
|
|
3975
|
+
* Retrieves an array of wrapped fin.Windows for each of the application’s child windows.
|
|
3976
|
+
*
|
|
3977
|
+
* @example
|
|
3978
|
+
*
|
|
3979
|
+
* ```js
|
|
3980
|
+
* async function getChildWindows() {
|
|
3981
|
+
* const app = await fin.Application.getCurrent();
|
|
3982
|
+
* return await app.getChildWindows();
|
|
3983
|
+
* }
|
|
3984
|
+
*
|
|
3985
|
+
* getChildWindows().then(children => console.log(children)).catch(err => console.log(err));
|
|
3986
|
+
* ```
|
|
3987
|
+
*/
|
|
3988
|
+
getChildWindows() {
|
|
3989
|
+
return this.wire.sendAction('get-child-windows', this.identity).then(({ payload }) => {
|
|
3990
|
+
const identityList = [];
|
|
3991
|
+
payload.data.forEach((winName) => {
|
|
3992
|
+
identityList.push({ uuid: this.identity.uuid, name: winName });
|
|
3993
|
+
});
|
|
3994
|
+
return this.windowListFromIdentityList(identityList);
|
|
3995
|
+
});
|
|
3996
|
+
}
|
|
3997
|
+
/**
|
|
3998
|
+
* Retrieves the JSON manifest that was used to create the application. Invokes the error callback
|
|
3999
|
+
* if the application was not created from a manifest.
|
|
4000
|
+
*
|
|
4001
|
+
* @example
|
|
4002
|
+
*
|
|
4003
|
+
* ```js
|
|
4004
|
+
* async function getManifest() {
|
|
4005
|
+
* const app = await fin.Application.getCurrent();
|
|
4006
|
+
* return await app.getManifest();
|
|
4007
|
+
* }
|
|
4008
|
+
*
|
|
4009
|
+
* getManifest().then(manifest => console.log(manifest)).catch(err => console.log(err));
|
|
4010
|
+
* ```
|
|
4011
|
+
*/
|
|
4012
|
+
getManifest() {
|
|
4013
|
+
return this.wire.sendAction('get-application-manifest', this.identity).then(({ payload }) => payload.data);
|
|
4014
|
+
}
|
|
4015
|
+
/**
|
|
4016
|
+
* Retrieves UUID of the application that launches this application. Invokes the error callback
|
|
4017
|
+
* if the application was created from a manifest.
|
|
4018
|
+
*
|
|
4019
|
+
* @example
|
|
4020
|
+
*
|
|
4021
|
+
* ```js
|
|
4022
|
+
* async function getParentUuid() {
|
|
4023
|
+
* const app = await fin.Application.start({
|
|
4024
|
+
* uuid: 'app-1',
|
|
4025
|
+
* name: 'myApp',
|
|
4026
|
+
* url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.getParentUuid.html',
|
|
4027
|
+
* autoShow: true
|
|
4028
|
+
* });
|
|
4029
|
+
* return await app.getParentUuid();
|
|
4030
|
+
* }
|
|
4031
|
+
*
|
|
4032
|
+
* getParentUuid().then(parentUuid => console.log(parentUuid)).catch(err => console.log(err));
|
|
4033
|
+
* ```
|
|
4034
|
+
*/
|
|
4035
|
+
getParentUuid() {
|
|
4036
|
+
return this.wire.sendAction('get-parent-application', this.identity).then(({ payload }) => payload.data);
|
|
4037
|
+
}
|
|
4038
|
+
/**
|
|
4039
|
+
* Retrieves current application's shortcut configuration.
|
|
4040
|
+
*
|
|
4041
|
+
* @example
|
|
4042
|
+
*
|
|
4043
|
+
* ```js
|
|
4044
|
+
* async function getShortcuts() {
|
|
4045
|
+
* const app = await fin.Application.wrap({ uuid: 'testapp' });
|
|
4046
|
+
* return await app.getShortcuts();
|
|
4047
|
+
* }
|
|
4048
|
+
* getShortcuts().then(config => console.log(config)).catch(err => console.log(err));
|
|
4049
|
+
* ```
|
|
4050
|
+
*/
|
|
4051
|
+
getShortcuts() {
|
|
4052
|
+
return this.wire.sendAction('get-shortcuts', this.identity).then(({ payload }) => payload.data);
|
|
4053
|
+
}
|
|
4054
|
+
/**
|
|
4055
|
+
* Retrieves current application's views.
|
|
4056
|
+
* @experimental
|
|
4057
|
+
*
|
|
4058
|
+
* @example
|
|
4059
|
+
*
|
|
4060
|
+
* ```js
|
|
4061
|
+
* async function getViews() {
|
|
4062
|
+
* const app = await fin.Application.getCurrent();
|
|
4063
|
+
* return await app.getViews();
|
|
4064
|
+
* }
|
|
4065
|
+
* getViews().then(views => console.log(views)).catch(err => console.log(err));
|
|
4066
|
+
* ```
|
|
4067
|
+
*/
|
|
4068
|
+
async getViews() {
|
|
4069
|
+
const { payload } = await this.wire.sendAction('application-get-views', this.identity);
|
|
4070
|
+
return payload.data.map((id) => new view_1.View(this.wire, id));
|
|
4071
|
+
}
|
|
4072
|
+
/**
|
|
4073
|
+
* Returns the current zoom level of the application.
|
|
4074
|
+
*
|
|
4075
|
+
* @example
|
|
4076
|
+
*
|
|
4077
|
+
* ```js
|
|
4078
|
+
* async function getZoomLevel() {
|
|
4079
|
+
* const app = await fin.Application.getCurrent();
|
|
4080
|
+
* return await app.getZoomLevel();
|
|
4081
|
+
* }
|
|
4082
|
+
*
|
|
4083
|
+
* getZoomLevel().then(zoomLevel => console.log(zoomLevel)).catch(err => console.log(err));
|
|
4084
|
+
* ```
|
|
4085
|
+
*/
|
|
4086
|
+
getZoomLevel() {
|
|
4087
|
+
return this.wire.sendAction('get-application-zoom-level', this.identity).then(({ payload }) => payload.data);
|
|
4088
|
+
}
|
|
4089
|
+
/**
|
|
4090
|
+
* Returns an instance of the main Window of the application
|
|
4091
|
+
*
|
|
4092
|
+
* @example
|
|
4093
|
+
*
|
|
4094
|
+
* ```js
|
|
4095
|
+
* async function getWindow() {
|
|
4096
|
+
* const app = await fin.Application.start({
|
|
4097
|
+
* uuid: 'app-1',
|
|
4098
|
+
* name: 'myApp',
|
|
4099
|
+
* url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.getWindow.html',
|
|
4100
|
+
* autoShow: true
|
|
4101
|
+
* });
|
|
4102
|
+
* return await app.getWindow();
|
|
4103
|
+
* }
|
|
4104
|
+
*
|
|
4105
|
+
* getWindow().then(win => {
|
|
4106
|
+
* win.showAt(0, 400);
|
|
4107
|
+
* win.flash();
|
|
4108
|
+
* }).catch(err => console.log(err));
|
|
4109
|
+
* ```
|
|
4110
|
+
*/
|
|
4111
|
+
getWindow() {
|
|
4112
|
+
this.wire.sendAction('application-get-window', this.identity).catch((e) => {
|
|
4113
|
+
// we do not want to expose this error, just continue if this analytics-only call fails
|
|
4114
|
+
});
|
|
4115
|
+
return Promise.resolve(this.window);
|
|
4116
|
+
}
|
|
4117
|
+
/**
|
|
4118
|
+
* Manually registers a user with the licensing service. The only data sent by this call is userName and appName.
|
|
4119
|
+
* @param userName - username to be passed to the RVM.
|
|
4120
|
+
* @param appName - app name to be passed to the RVM.
|
|
4121
|
+
*
|
|
4122
|
+
* @example
|
|
4123
|
+
*
|
|
4124
|
+
* ```js
|
|
4125
|
+
* async function registerUser() {
|
|
4126
|
+
* const app = await fin.Application.getCurrent();
|
|
4127
|
+
* return await app.registerUser('user', 'myApp');
|
|
4128
|
+
* }
|
|
4129
|
+
*
|
|
4130
|
+
* registerUser().then(() => console.log('Successfully registered the user')).catch(err => console.log(err));
|
|
4131
|
+
* ```
|
|
4132
|
+
*/
|
|
4133
|
+
registerUser(userName, appName) {
|
|
4134
|
+
return this.wire.sendAction('register-user', { userName, appName, ...this.identity }).then(() => undefined);
|
|
4135
|
+
}
|
|
4136
|
+
/**
|
|
4137
|
+
* Removes the application’s icon from the tray.
|
|
4138
|
+
*
|
|
4139
|
+
* @example
|
|
4140
|
+
*
|
|
4141
|
+
* ```js
|
|
4142
|
+
* async function removeTrayIcon() {
|
|
4143
|
+
* const app = await fin.Application.getCurrent();
|
|
4144
|
+
* return await app.removeTrayIcon();
|
|
4145
|
+
* }
|
|
4146
|
+
*
|
|
4147
|
+
* removeTrayIcon().then(() => console.log('Removed the tray icon.')).catch(err => console.log(err));
|
|
4148
|
+
* ```
|
|
4149
|
+
*/
|
|
4150
|
+
removeTrayIcon() {
|
|
4151
|
+
return this.wire.sendAction('remove-tray-icon', this.identity).then(() => undefined);
|
|
4948
4152
|
}
|
|
4949
|
-
|
|
4950
|
-
|
|
4951
|
-
|
|
4952
|
-
|
|
4953
|
-
|
|
4954
|
-
|
|
4955
|
-
|
|
4956
|
-
|
|
4957
|
-
|
|
4153
|
+
/**
|
|
4154
|
+
* Restarts the application.
|
|
4155
|
+
*
|
|
4156
|
+
* @example
|
|
4157
|
+
*
|
|
4158
|
+
* ```js
|
|
4159
|
+
* async function restartApp() {
|
|
4160
|
+
* const app = await fin.Application.getCurrent();
|
|
4161
|
+
* return await app.restart();
|
|
4162
|
+
* }
|
|
4163
|
+
* restartApp().then(() => console.log('Application restarted')).catch(err => console.log(err));
|
|
4164
|
+
* ```
|
|
4165
|
+
*/
|
|
4166
|
+
restart() {
|
|
4167
|
+
return this.wire.sendAction('restart-application', this.identity).then(() => undefined);
|
|
4168
|
+
}
|
|
4169
|
+
/**
|
|
4170
|
+
* DEPRECATED method to run the application.
|
|
4171
|
+
* Needed when starting application via {@link Application.create}, but NOT needed when starting via {@link Application.start}.
|
|
4172
|
+
*
|
|
4173
|
+
* @example
|
|
4174
|
+
*
|
|
4175
|
+
* ```js
|
|
4176
|
+
* async function run() {
|
|
4177
|
+
* const app = await fin.Application.create({
|
|
4178
|
+
* name: 'myApp',
|
|
4179
|
+
* uuid: 'app-1',
|
|
4180
|
+
* url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.run.html',
|
|
4181
|
+
* autoShow: true
|
|
4182
|
+
* });
|
|
4183
|
+
* await app.run();
|
|
4184
|
+
* }
|
|
4185
|
+
* run().then(() => console.log('Application is running')).catch(err => console.log(err));
|
|
4186
|
+
* ```
|
|
4187
|
+
*
|
|
4188
|
+
* @ignore
|
|
4189
|
+
*/
|
|
4190
|
+
run() {
|
|
4191
|
+
console.warn('Deprecation Warning: Application.run is deprecated Please use fin.Application.start');
|
|
4192
|
+
this.wire.sendAction('application-run', this.identity).catch((e) => {
|
|
4193
|
+
// we do not want to expose this error, just continue if this analytics-only call fails
|
|
4194
|
+
});
|
|
4195
|
+
return this._run();
|
|
4196
|
+
}
|
|
4197
|
+
_run(opts = {}) {
|
|
4198
|
+
return this.wire
|
|
4199
|
+
.sendAction('run-application', {
|
|
4200
|
+
manifestUrl: this._manifestUrl,
|
|
4201
|
+
opts,
|
|
4202
|
+
...this.identity
|
|
4203
|
+
})
|
|
4204
|
+
.then(() => undefined);
|
|
4205
|
+
}
|
|
4206
|
+
/**
|
|
4207
|
+
* Instructs the RVM to schedule one restart of the application.
|
|
4208
|
+
*
|
|
4209
|
+
* @example
|
|
4210
|
+
*
|
|
4211
|
+
* ```js
|
|
4212
|
+
* async function scheduleRestart() {
|
|
4213
|
+
* const app = await fin.Application.getCurrent();
|
|
4214
|
+
* return await app.scheduleRestart();
|
|
4215
|
+
* }
|
|
4216
|
+
*
|
|
4217
|
+
* scheduleRestart().then(() => console.log('Application is scheduled to restart')).catch(err => console.log(err));
|
|
4218
|
+
* ```
|
|
4219
|
+
*/
|
|
4220
|
+
scheduleRestart() {
|
|
4221
|
+
return this.wire.sendAction('relaunch-on-close', this.identity).then(() => undefined);
|
|
4222
|
+
}
|
|
4223
|
+
/**
|
|
4224
|
+
* Sends a message to the RVM to upload the application's logs. On success,
|
|
4225
|
+
* an object containing logId is returned.
|
|
4226
|
+
*
|
|
4227
|
+
* @example
|
|
4228
|
+
*
|
|
4229
|
+
* ```js
|
|
4230
|
+
* async function sendLog() {
|
|
4231
|
+
* const app = await fin.Application.getCurrent();
|
|
4232
|
+
* return await app.sendApplicationLog();
|
|
4233
|
+
* }
|
|
4234
|
+
*
|
|
4235
|
+
* sendLog().then(info => console.log(info.logId)).catch(err => console.log(err));
|
|
4236
|
+
* ```
|
|
4237
|
+
*/
|
|
4238
|
+
async sendApplicationLog() {
|
|
4239
|
+
const { payload } = await this.wire.sendAction('send-application-log', this.identity);
|
|
4240
|
+
return payload.data;
|
|
4241
|
+
}
|
|
4242
|
+
/**
|
|
4243
|
+
* Sets or removes a custom JumpList for the application. Only applicable in Windows OS.
|
|
4244
|
+
* If categories is null the previously set custom JumpList (if any) will be replaced by the standard JumpList for the app (managed by Windows).
|
|
4245
|
+
*
|
|
4246
|
+
* Note: If the "name" property is omitted it defaults to "tasks".
|
|
4247
|
+
* @param jumpListCategories An array of JumpList Categories to populate. If null, remove any existing JumpList configuration and set to Windows default.
|
|
4248
|
+
*
|
|
4249
|
+
*
|
|
4250
|
+
* @remarks If categories is null the previously set custom JumpList (if any) will be replaced by the standard JumpList for the app (managed by Windows).
|
|
4251
|
+
*
|
|
4252
|
+
* The bottommost item in the jumplist will always be an item pointing to the current app. Its name is taken from the manifest's
|
|
4253
|
+
* **` shortcut.name `** and uses **` shortcut.company `** as a fallback. Clicking that item will launch the app from its current manifest.
|
|
4254
|
+
*
|
|
4255
|
+
* Note: If the "name" property is omitted it defaults to "tasks".
|
|
4256
|
+
*
|
|
4257
|
+
* Note: Window OS caches jumplists icons, therefore an icon change might only be visible after the cache is removed or the
|
|
4258
|
+
* uuid or shortcut.name is changed.
|
|
4259
|
+
*
|
|
4260
|
+
* @example
|
|
4261
|
+
*
|
|
4262
|
+
* ```js
|
|
4263
|
+
* const app = fin.Application.getCurrentSync();
|
|
4264
|
+
* const appName = 'My App';
|
|
4265
|
+
* const jumpListConfig = [ // array of JumpList categories
|
|
4266
|
+
* {
|
|
4267
|
+
* // has no name and no type so `type` is assumed to be "tasks"
|
|
4268
|
+
* items: [ // array of JumpList items
|
|
4269
|
+
* {
|
|
4270
|
+
* type: 'task',
|
|
4271
|
+
* title: `Launch ${appName}`,
|
|
4272
|
+
* description: `Runs ${appName} with the default configuration`,
|
|
4273
|
+
* deepLink: 'fins://path.to/app/manifest.json',
|
|
4274
|
+
* iconPath: 'https://path.to/app/icon.ico',
|
|
4275
|
+
* iconIndex: 0
|
|
4276
|
+
* },
|
|
4277
|
+
* { type: 'separator' },
|
|
4278
|
+
* {
|
|
4279
|
+
* type: 'task',
|
|
4280
|
+
* title: `Restore ${appName}`,
|
|
4281
|
+
* description: 'Restore to last configuration',
|
|
4282
|
+
* deepLink: 'fins://path.to/app/manifest.json?$$use-last-configuration=true',
|
|
4283
|
+
* iconPath: 'https://path.to/app/icon.ico',
|
|
4284
|
+
* iconIndex: 0
|
|
4285
|
+
* },
|
|
4286
|
+
* ]
|
|
4287
|
+
* },
|
|
4288
|
+
* {
|
|
4289
|
+
* name: 'Tools',
|
|
4290
|
+
* items: [ // array of JumpList items
|
|
4291
|
+
* {
|
|
4292
|
+
* type: 'task',
|
|
4293
|
+
* title: 'Tool A',
|
|
4294
|
+
* description: 'Runs Tool A',
|
|
4295
|
+
* deepLink: 'fins://path.to/tool-a/manifest.json',
|
|
4296
|
+
* iconPath: 'https://path.to/tool-a/icon.ico',
|
|
4297
|
+
* iconIndex: 0
|
|
4298
|
+
* },
|
|
4299
|
+
* {
|
|
4300
|
+
* type: 'task',
|
|
4301
|
+
* title: 'Tool B',
|
|
4302
|
+
* description: 'Runs Tool B',
|
|
4303
|
+
* deepLink: 'fins://path.to/tool-b/manifest.json',
|
|
4304
|
+
* iconPath: 'https://path.to/tool-b/icon.ico',
|
|
4305
|
+
* iconIndex: 0
|
|
4306
|
+
* }]
|
|
4307
|
+
* }
|
|
4308
|
+
* ];
|
|
4309
|
+
*
|
|
4310
|
+
* app.setJumpList(jumpListConfig).then(() => console.log('JumpList applied')).catch(e => console.log(`JumpList failed to apply: ${e.toString()}`));
|
|
4311
|
+
* ```
|
|
4312
|
+
*
|
|
4313
|
+
* To handle deeplink args:
|
|
4314
|
+
* ```js
|
|
4315
|
+
* function handleUseLastConfiguration() {
|
|
4316
|
+
* // this handler is called when the app is being launched
|
|
4317
|
+
* app.on('run-requested', event => {
|
|
4318
|
+
* if(event.userAppConfigArgs['use-last-configuration']) {
|
|
4319
|
+
* // your logic here
|
|
4320
|
+
* }
|
|
4321
|
+
* });
|
|
4322
|
+
* // this handler is called when the app was already running when the launch was requested
|
|
4323
|
+
* fin.desktop.main(function(args) {
|
|
4324
|
+
* if(args && args['use-last-configuration']) {
|
|
4325
|
+
* // your logic here
|
|
4326
|
+
* }
|
|
4327
|
+
* });
|
|
4328
|
+
* }
|
|
4329
|
+
* ```
|
|
4330
|
+
*/
|
|
4331
|
+
async setJumpList(jumpListCategories) {
|
|
4332
|
+
await this.wire.sendAction('set-jump-list', { config: jumpListCategories, ...this.identity });
|
|
4333
|
+
}
|
|
4334
|
+
/**
|
|
4335
|
+
* Adds a customizable icon in the system tray. To listen for a click on the icon use the `tray-icon-clicked` event.
|
|
4336
|
+
* @param icon Image URL or base64 encoded string to be used as the icon
|
|
4337
|
+
*
|
|
4338
|
+
* @example
|
|
4339
|
+
*
|
|
4340
|
+
* ```js
|
|
4341
|
+
* const imageUrl = "http://cdn.openfin.co/assets/testing/icons/circled-digit-one.png";
|
|
4342
|
+
* const base64EncodedImage = "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAIAQMAAAD+wSzIAAAABlBMVEX\
|
|
4343
|
+
* ///+/v7+jQ3Y5AAAADklEQVQI12P4AIX8EAgALgAD/aNpbtEAAAAASUVORK5CYII";
|
|
4344
|
+
* const dataURL = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DH\
|
|
4345
|
+
* xgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==";
|
|
4346
|
+
*
|
|
4347
|
+
* async function setTrayIcon(icon) {
|
|
4348
|
+
* const app = await fin.Application.getCurrent();
|
|
4349
|
+
* return await app.setTrayIcon(icon);
|
|
4350
|
+
* }
|
|
4351
|
+
*
|
|
4352
|
+
* // use image url to set tray icon
|
|
4353
|
+
* setTrayIcon(imageUrl).then(() => console.log('Setting tray icon')).catch(err => console.log(err));
|
|
4354
|
+
*
|
|
4355
|
+
* // use base64 encoded string to set tray icon
|
|
4356
|
+
* setTrayIcon(base64EncodedImage).then(() => console.log('Setting tray icon')).catch(err => console.log(err));
|
|
4357
|
+
*
|
|
4358
|
+
* // use a dataURL to set tray icon
|
|
4359
|
+
* setTrayIcon(dataURL).then(() => console.log('Setting tray icon')).catch(err => console.log(err));
|
|
4360
|
+
* ```
|
|
4361
|
+
*/
|
|
4362
|
+
setTrayIcon(icon) {
|
|
4363
|
+
return this.wire
|
|
4364
|
+
.sendAction('set-tray-icon', {
|
|
4365
|
+
enabledIcon: icon,
|
|
4366
|
+
...this.identity
|
|
4367
|
+
})
|
|
4368
|
+
.then(() => undefined);
|
|
4369
|
+
}
|
|
4370
|
+
/**
|
|
4371
|
+
* Set hover text for this application's system tray icon.
|
|
4372
|
+
* Note: Application must first set a tray icon with {@link Application.setTrayIcon}.
|
|
4373
|
+
* @param toolTip
|
|
4374
|
+
*
|
|
4375
|
+
* @example
|
|
4376
|
+
*
|
|
4377
|
+
* ```js
|
|
4378
|
+
* const app = fin.Application.getCurrentSync();
|
|
4379
|
+
* const iconUrl = "http://cdn.openfin.co/assets/testing/icons/circled-digit-one.png";
|
|
4380
|
+
*
|
|
4381
|
+
* await app.setTrayIcon(iconUrl);
|
|
4382
|
+
*
|
|
4383
|
+
* await app.setTrayIconToolTip('My Application');
|
|
4384
|
+
* ```
|
|
4385
|
+
*/
|
|
4386
|
+
async setTrayIconToolTip(toolTip) {
|
|
4387
|
+
await this.wire.sendAction('set-tray-icon-tooltip', { ...this.identity, toolTip });
|
|
4388
|
+
}
|
|
4389
|
+
/**
|
|
4390
|
+
* Sets new application's shortcut configuration. Windows only.
|
|
4391
|
+
* @param config New application's shortcut configuration.
|
|
4392
|
+
*
|
|
4393
|
+
* @remarks Application has to be launched with a manifest and has to have shortcut configuration (icon url, name, etc.) in its manifest
|
|
4394
|
+
* to be able to change shortcut states.
|
|
4395
|
+
*
|
|
4396
|
+
* @example
|
|
4397
|
+
*
|
|
4398
|
+
* ```js
|
|
4399
|
+
* async function setShortcuts(config) {
|
|
4400
|
+
* const app = await fin.Application.getCurrent();
|
|
4401
|
+
* return app.setShortcuts(config);
|
|
4402
|
+
* }
|
|
4403
|
+
*
|
|
4404
|
+
* setShortcuts({
|
|
4405
|
+
* desktop: true,
|
|
4406
|
+
* startMenu: false,
|
|
4407
|
+
* systemStartup: true
|
|
4408
|
+
* }).then(() => console.log('Shortcuts are set.')).catch(err => console.log(err));
|
|
4409
|
+
* ```
|
|
4410
|
+
*/
|
|
4411
|
+
setShortcuts(config) {
|
|
4412
|
+
return this.wire.sendAction('set-shortcuts', { data: config, ...this.identity }).then(() => undefined);
|
|
4413
|
+
}
|
|
4414
|
+
/**
|
|
4415
|
+
* Sets the query string in all shortcuts for this app. Requires RVM 5.5+.
|
|
4416
|
+
* @param queryString The new query string for this app's shortcuts.
|
|
4417
|
+
*
|
|
4418
|
+
* @example
|
|
4419
|
+
*
|
|
4420
|
+
* ```js
|
|
4421
|
+
* const newQueryArgs = 'arg=true&arg2=false';
|
|
4422
|
+
* const app = await fin.Application.getCurrent();
|
|
4423
|
+
* try {
|
|
4424
|
+
* await app.setShortcutQueryParams(newQueryArgs);
|
|
4425
|
+
* } catch(err) {
|
|
4426
|
+
* console.error(err)
|
|
4427
|
+
* }
|
|
4428
|
+
* ```
|
|
4429
|
+
*/
|
|
4430
|
+
async setShortcutQueryParams(queryString) {
|
|
4431
|
+
await this.wire.sendAction('set-shortcut-query-args', { data: queryString, ...this.identity });
|
|
4432
|
+
}
|
|
4433
|
+
/**
|
|
4434
|
+
* Sets the zoom level of the application. The original size is 0 and each increment above or below represents zooming 20%
|
|
4435
|
+
* larger or smaller to default limits of 300% and 50% of original size, respectively.
|
|
4436
|
+
* @param level The zoom level
|
|
4437
|
+
*
|
|
4438
|
+
* @example
|
|
4439
|
+
*
|
|
4440
|
+
* ```js
|
|
4441
|
+
* async function setZoomLevel(number) {
|
|
4442
|
+
* const app = await fin.Application.getCurrent();
|
|
4443
|
+
* return await app.setZoomLevel(number);
|
|
4444
|
+
* }
|
|
4445
|
+
*
|
|
4446
|
+
* setZoomLevel(5).then(() => console.log('Setting a zoom level')).catch(err => console.log(err));
|
|
4447
|
+
* ```
|
|
4448
|
+
*/
|
|
4449
|
+
setZoomLevel(level) {
|
|
4450
|
+
return this.wire.sendAction('set-application-zoom-level', { level, ...this.identity }).then(() => undefined);
|
|
4451
|
+
}
|
|
4452
|
+
/**
|
|
4453
|
+
* Sets a username to correlate with App Log Management.
|
|
4454
|
+
* @param username Username to correlate with App's Log.
|
|
4455
|
+
*
|
|
4456
|
+
* @example
|
|
4457
|
+
*
|
|
4458
|
+
* ```js
|
|
4459
|
+
* async function setAppLogUser() {
|
|
4460
|
+
* const app = await fin.Application.getCurrent();
|
|
4461
|
+
* return await app.setAppLogUsername('username');
|
|
4462
|
+
* }
|
|
4463
|
+
*
|
|
4464
|
+
* setAppLogUser().then(() => console.log('Success')).catch(err => console.log(err));
|
|
4465
|
+
*
|
|
4466
|
+
* ```
|
|
4467
|
+
*/
|
|
4468
|
+
async setAppLogUsername(username) {
|
|
4469
|
+
await this.wire.sendAction('set-app-log-username', { data: username, ...this.identity });
|
|
4470
|
+
}
|
|
4471
|
+
/**
|
|
4472
|
+
* Retrieves information about the system tray. If the system tray is not set, it will throw an error message.
|
|
4473
|
+
* @remarks The only information currently returned is the position and dimensions.
|
|
4474
|
+
*
|
|
4475
|
+
* @example
|
|
4476
|
+
*
|
|
4477
|
+
* ```js
|
|
4478
|
+
* async function getTrayIconInfo() {
|
|
4479
|
+
* const app = await fin.Application.wrap({ uuid: 'testapp' });
|
|
4480
|
+
* return await app.getTrayIconInfo();
|
|
4481
|
+
* }
|
|
4482
|
+
* getTrayIconInfo().then(info => console.log(info)).catch(err => console.log(err));
|
|
4483
|
+
* ```
|
|
4484
|
+
*/
|
|
4485
|
+
getTrayIconInfo() {
|
|
4486
|
+
return this.wire.sendAction('get-tray-icon-info', this.identity).then(({ payload }) => payload.data);
|
|
4487
|
+
}
|
|
4488
|
+
/**
|
|
4489
|
+
* Checks if the application has an associated tray icon.
|
|
4490
|
+
*
|
|
4491
|
+
* @example
|
|
4492
|
+
*
|
|
4493
|
+
* ```js
|
|
4494
|
+
* const app = await fin.Application.wrap({ uuid: 'testapp' });
|
|
4495
|
+
* const hasTrayIcon = await app.hasTrayIcon();
|
|
4496
|
+
* console.log(hasTrayIcon);
|
|
4497
|
+
* ```
|
|
4498
|
+
*/
|
|
4499
|
+
hasTrayIcon() {
|
|
4500
|
+
return this.wire.sendAction('has-tray-icon', this.identity).then(({ payload }) => payload.data);
|
|
4501
|
+
}
|
|
4502
|
+
/**
|
|
4503
|
+
* Closes the application by terminating its process.
|
|
4504
|
+
*
|
|
4505
|
+
* @example
|
|
4506
|
+
*
|
|
4507
|
+
* ```js
|
|
4508
|
+
* async function terminateApp() {
|
|
4509
|
+
* const app = await fin.Application.getCurrent();
|
|
4510
|
+
* return await app.terminate();
|
|
4511
|
+
* }
|
|
4512
|
+
* terminateApp().then(() => console.log('Application terminated')).catch(err => console.log(err));
|
|
4513
|
+
* ```
|
|
4514
|
+
*/
|
|
4515
|
+
terminate() {
|
|
4516
|
+
return this.wire.sendAction('terminate-application', this.identity).then(() => undefined);
|
|
4517
|
+
}
|
|
4518
|
+
/**
|
|
4519
|
+
* Waits for a hanging application. This method can be called in response to an application
|
|
4520
|
+
* "not-responding" to allow the application to continue and to generate another "not-responding"
|
|
4521
|
+
* message after a certain period of time.
|
|
4522
|
+
*
|
|
4523
|
+
* @ignore
|
|
4524
|
+
*/
|
|
4525
|
+
wait() {
|
|
4526
|
+
return this.wire.sendAction('wait-for-hung-application', this.identity).then(() => undefined);
|
|
4527
|
+
}
|
|
4528
|
+
/**
|
|
4529
|
+
* Retrieves information about the application.
|
|
4530
|
+
*
|
|
4531
|
+
* @remarks If the application was not launched from a manifest, the call will return the closest parent application `manifest`
|
|
4532
|
+
* and `manifestUrl`. `initialOptions` shows the parameters used when launched programmatically, or the `startup_app` options
|
|
4533
|
+
* if launched from manifest. The `parentUuid` will be the uuid of the immediate parent (if applicable).
|
|
4534
|
+
*
|
|
4535
|
+
* @example
|
|
4536
|
+
*
|
|
4537
|
+
* ```js
|
|
4538
|
+
* async function getInfo() {
|
|
4539
|
+
* const app = await fin.Application.getCurrent();
|
|
4540
|
+
* return await app.getInfo();
|
|
4541
|
+
* }
|
|
4542
|
+
*
|
|
4543
|
+
* getInfo().then(info => console.log(info)).catch(err => console.log(err));
|
|
4544
|
+
* ```
|
|
4545
|
+
*/
|
|
4546
|
+
getInfo() {
|
|
4547
|
+
return this.wire.sendAction('get-info', this.identity).then(({ payload }) => payload.data);
|
|
4548
|
+
}
|
|
4549
|
+
/**
|
|
4550
|
+
* Retrieves all process information for entities (windows and views) associated with an application.
|
|
4551
|
+
*
|
|
4552
|
+
* @example
|
|
4553
|
+
* ```js
|
|
4554
|
+
* const app = await fin.Application.getCurrent();
|
|
4555
|
+
* const processInfo = await app.getProcessInfo();
|
|
4556
|
+
* ```
|
|
4557
|
+
* @experimental
|
|
4558
|
+
*/
|
|
4559
|
+
async getProcessInfo() {
|
|
4560
|
+
const { payload: { data } } = await this.wire.sendAction('application-get-process-info', this.identity);
|
|
4561
|
+
return data;
|
|
4562
|
+
}
|
|
4563
|
+
/**
|
|
4564
|
+
* Sets file auto download location. It's only allowed in the same application.
|
|
4565
|
+
*
|
|
4566
|
+
* Note: This method is restricted by default and must be enabled via
|
|
4567
|
+
* <a href="https://developers.openfin.co/docs/api-security">API security settings</a>.
|
|
4568
|
+
* @param downloadLocation file auto download location
|
|
4569
|
+
*
|
|
4570
|
+
* @throws if setting file auto download location on different applications.
|
|
4571
|
+
* @example
|
|
4572
|
+
*
|
|
4573
|
+
* ```js
|
|
4574
|
+
* const downloadLocation = 'C:\\dev\\temp';
|
|
4575
|
+
* const app = await fin.Application.getCurrent();
|
|
4576
|
+
* try {
|
|
4577
|
+
* await app.setFileDownloadLocation(downloadLocation);
|
|
4578
|
+
* console.log('File download location is set');
|
|
4579
|
+
* } catch(err) {
|
|
4580
|
+
* console.error(err)
|
|
4581
|
+
* }
|
|
4582
|
+
* ```
|
|
4583
|
+
*/
|
|
4584
|
+
async setFileDownloadLocation(downloadLocation) {
|
|
4585
|
+
const { name } = this.wire.me;
|
|
4586
|
+
const entityIdentity = { uuid: this.identity.uuid, name };
|
|
4587
|
+
await this.wire.sendAction('set-file-download-location', { ...entityIdentity, downloadLocation });
|
|
4588
|
+
}
|
|
4589
|
+
/**
|
|
4590
|
+
* Gets file auto download location. It's only allowed in the same application. If file auto download location is not set, it will return the default location.
|
|
4591
|
+
*
|
|
4592
|
+
* Note: This method is restricted by default and must be enabled via
|
|
4593
|
+
* <a href="https://developers.openfin.co/docs/api-security">API security settings</a>.
|
|
4594
|
+
*
|
|
4595
|
+
* @throws if getting file auto download location on different applications.
|
|
4596
|
+
* @example
|
|
4597
|
+
*
|
|
4598
|
+
* ```js
|
|
4599
|
+
* const app = await fin.Application.getCurrent();
|
|
4600
|
+
* const fileDownloadDir = await app.getFileDownloadLocation();
|
|
4601
|
+
* ```
|
|
4602
|
+
*/
|
|
4603
|
+
async getFileDownloadLocation() {
|
|
4604
|
+
const { payload: { data } } = await this.wire.sendAction('get-file-download-location', this.identity);
|
|
4605
|
+
return data;
|
|
4606
|
+
}
|
|
4607
|
+
/**
|
|
4608
|
+
* Shows a menu on the tray icon. Use with tray-icon-clicked event.
|
|
4609
|
+
* @param options
|
|
4610
|
+
* @typeParam Data User-defined shape for data returned upon menu item click. Should be a
|
|
4611
|
+
* [union](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types)
|
|
4612
|
+
* of all possible data shapes for the entire menu, and the click handler should process
|
|
4613
|
+
* these with a "reducer" pattern.
|
|
4614
|
+
* @throws if the application has no tray icon set
|
|
4615
|
+
* @throws if the system tray is currently hidden
|
|
4616
|
+
* @example
|
|
4617
|
+
*
|
|
4618
|
+
* ```js
|
|
4619
|
+
* const iconUrl = 'http://cdn.openfin.co/assets/testing/icons/circled-digit-one.png';
|
|
4620
|
+
* const app = fin.Application.getCurrentSync();
|
|
4621
|
+
*
|
|
4622
|
+
* await app.setTrayIcon(iconUrl);
|
|
4623
|
+
*
|
|
4624
|
+
* const template = [
|
|
4625
|
+
* {
|
|
4626
|
+
* label: 'Menu Item 1',
|
|
4627
|
+
* data: 'hello from item 1'
|
|
4628
|
+
* },
|
|
4629
|
+
* { type: 'separator' },
|
|
4630
|
+
* {
|
|
4631
|
+
* label: 'Menu Item 2',
|
|
4632
|
+
* type: 'checkbox',
|
|
4633
|
+
* checked: true,
|
|
4634
|
+
* data: 'The user clicked the checkbox'
|
|
4635
|
+
* },
|
|
4636
|
+
* {
|
|
4637
|
+
* label: 'see more',
|
|
4638
|
+
* enabled: false,
|
|
4639
|
+
* submenu: [
|
|
4640
|
+
* { label: 'submenu 1', data: 'hello from submenu' }
|
|
4641
|
+
* ]
|
|
4642
|
+
* }
|
|
4643
|
+
* ];
|
|
4644
|
+
*
|
|
4645
|
+
* app.addListener('tray-icon-clicked', (event) => {
|
|
4646
|
+
* // right-click
|
|
4647
|
+
* if (event.button === 2) {
|
|
4648
|
+
* app.showTrayIconPopupMenu({ template }).then(r => {
|
|
4649
|
+
* if (r.result === 'closed') {
|
|
4650
|
+
* console.log('nothing happened');
|
|
4651
|
+
* } else {
|
|
4652
|
+
* console.log(r.data);
|
|
4653
|
+
* }
|
|
4654
|
+
* });
|
|
4655
|
+
* }
|
|
4656
|
+
* });
|
|
4657
|
+
* ```
|
|
4658
|
+
*/
|
|
4659
|
+
async showTrayIconPopupMenu(options) {
|
|
4660
|
+
const { name } = this.wire.me;
|
|
4661
|
+
const entityIdentity = { uuid: this.identity.uuid, name };
|
|
4662
|
+
const { payload } = await this.wire.sendAction('show-tray-icon-popup-menu', { ...entityIdentity, options });
|
|
4663
|
+
return payload.data;
|
|
4664
|
+
}
|
|
4665
|
+
/**
|
|
4666
|
+
* Closes the tray icon menu.
|
|
4667
|
+
*
|
|
4668
|
+
* @throws if the application has no tray icon set
|
|
4669
|
+
* @example
|
|
4670
|
+
*
|
|
4671
|
+
* ```js
|
|
4672
|
+
* const app = fin.Application.getCurrentSync();
|
|
4673
|
+
*
|
|
4674
|
+
* await app.closeTrayIconPopupMenu();
|
|
4675
|
+
* ```
|
|
4676
|
+
*/
|
|
4677
|
+
async closeTrayIconPopupMenu() {
|
|
4678
|
+
const { name } = this.wire.me;
|
|
4679
|
+
const entityIdentity = { uuid: this.identity.uuid, name };
|
|
4680
|
+
await this.wire.sendAction('close-tray-icon-popup-menu', { ...entityIdentity });
|
|
4681
|
+
}
|
|
4682
|
+
}
|
|
4683
|
+
Instance$5.Application = Application;
|
|
4684
|
+
return Instance$5;
|
|
4685
|
+
}
|
|
4686
|
+
|
|
4687
|
+
var hasRequiredFactory$1;
|
|
4688
|
+
|
|
4689
|
+
function requireFactory$1 () {
|
|
4690
|
+
if (hasRequiredFactory$1) return Factory$6;
|
|
4691
|
+
hasRequiredFactory$1 = 1;
|
|
4692
|
+
Object.defineProperty(Factory$6, "__esModule", { value: true });
|
|
4693
|
+
Factory$6.ApplicationModule = void 0;
|
|
4694
|
+
const base_1 = base;
|
|
4695
|
+
const validate_1 = validate;
|
|
4696
|
+
const Instance_1 = requireInstance$2();
|
|
4958
4697
|
/**
|
|
4959
|
-
*
|
|
4960
|
-
*
|
|
4961
|
-
* * {@link ApplicationModule} contains static members of the `Application` API, accessible through `fin.Application`.
|
|
4962
|
-
* * {@link Application} describes an instance of an OpenFin Application, e.g. as returned by `fin.Application.getCurrent`.
|
|
4963
|
-
*
|
|
4964
|
-
* These are separate code entities, and are documented separately. In the [previous version of the API documentation](https://cdn.openfin.co/docs/javascript/32.114.76.10/index.html),
|
|
4965
|
-
* both of these were documented on the same page.
|
|
4966
|
-
*
|
|
4967
|
-
* @packageDocumentation
|
|
4698
|
+
* Static namespace for OpenFin API methods that interact with the {@link Application} class, available under `fin.Application`.
|
|
4968
4699
|
*/
|
|
4969
|
-
|
|
4970
|
-
|
|
4971
|
-
|
|
4700
|
+
class ApplicationModule extends base_1.Base {
|
|
4701
|
+
/**
|
|
4702
|
+
* Asynchronously returns an API handle for the given Application identity.
|
|
4703
|
+
*
|
|
4704
|
+
* @remarks Wrapping an Application identity that does not yet exist will *not* throw an error, and instead
|
|
4705
|
+
* returns a stub object that cannot yet perform rendering tasks. This can be useful for plumbing eventing
|
|
4706
|
+
* for an Application throughout its entire lifecycle.
|
|
4707
|
+
*
|
|
4708
|
+
* @example
|
|
4709
|
+
*
|
|
4710
|
+
* ```js
|
|
4711
|
+
* fin.Application.wrap({ uuid: 'testapp' })
|
|
4712
|
+
* .then(app => app.isRunning())
|
|
4713
|
+
* .then(running => console.log('Application is running: ' + running))
|
|
4714
|
+
* .catch(err => console.log(err));
|
|
4715
|
+
* ```
|
|
4716
|
+
*
|
|
4717
|
+
*/
|
|
4718
|
+
async wrap(identity) {
|
|
4719
|
+
this.wire.sendAction('wrap-application').catch((e) => {
|
|
4720
|
+
// we do not want to expose this error, just continue if this analytics-only call fails
|
|
4721
|
+
});
|
|
4722
|
+
const errorMsg = (0, validate_1.validateIdentity)(identity);
|
|
4723
|
+
if (errorMsg) {
|
|
4724
|
+
throw new Error(errorMsg);
|
|
4725
|
+
}
|
|
4726
|
+
return new Instance_1.Application(this.wire, identity);
|
|
4727
|
+
}
|
|
4728
|
+
/**
|
|
4729
|
+
* Synchronously returns an API handle for the given Application identity.
|
|
4730
|
+
*
|
|
4731
|
+
* @remarks Wrapping an Application identity that does not yet exist will *not* throw an error, and instead
|
|
4732
|
+
* returns a stub object that cannot yet perform rendering tasks. This can be useful for plumbing eventing
|
|
4733
|
+
* for an Aplication throughout its entire lifecycle.
|
|
4734
|
+
*
|
|
4735
|
+
* @example
|
|
4736
|
+
*
|
|
4737
|
+
* ```js
|
|
4738
|
+
* const app = fin.Application.wrapSync({ uuid: 'testapp' });
|
|
4739
|
+
* await app.close();
|
|
4740
|
+
* ```
|
|
4741
|
+
*
|
|
4742
|
+
*/
|
|
4743
|
+
wrapSync(identity) {
|
|
4744
|
+
this.wire.sendAction('wrap-application-sync').catch((e) => {
|
|
4745
|
+
// we do not want to expose this error, just continue if this analytics-only call fails
|
|
4746
|
+
});
|
|
4747
|
+
const errorMsg = (0, validate_1.validateIdentity)(identity);
|
|
4748
|
+
if (errorMsg) {
|
|
4749
|
+
throw new Error(errorMsg);
|
|
4750
|
+
}
|
|
4751
|
+
return new Instance_1.Application(this.wire, identity);
|
|
4752
|
+
}
|
|
4753
|
+
async _create(appOptions) {
|
|
4754
|
+
// set defaults:
|
|
4755
|
+
if (appOptions.waitForPageLoad === undefined) {
|
|
4756
|
+
appOptions.waitForPageLoad = false;
|
|
4757
|
+
}
|
|
4758
|
+
if (appOptions.autoShow === undefined && appOptions.isPlatformController === undefined) {
|
|
4759
|
+
appOptions.autoShow = true;
|
|
4760
|
+
}
|
|
4761
|
+
await this.wire.sendAction('create-application', appOptions);
|
|
4762
|
+
return this.wrap({ uuid: appOptions.uuid });
|
|
4763
|
+
}
|
|
4764
|
+
/**
|
|
4765
|
+
* DEPRECATED method to create a new Application. Use {@link Application.ApplicationModule.start Application.start} instead.
|
|
4766
|
+
*
|
|
4767
|
+
* @example
|
|
4768
|
+
*
|
|
4769
|
+
* ```js
|
|
4770
|
+
* async function createApp() {
|
|
4771
|
+
* const app = await fin.Application.create({
|
|
4772
|
+
* name: 'myApp',
|
|
4773
|
+
* uuid: 'app-3',
|
|
4774
|
+
* url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.create.html',
|
|
4775
|
+
* autoShow: true
|
|
4776
|
+
* });
|
|
4777
|
+
* await app.run();
|
|
4778
|
+
* }
|
|
4779
|
+
*
|
|
4780
|
+
* createApp().then(() => console.log('Application is created')).catch(err => console.log(err));
|
|
4781
|
+
* ```
|
|
4782
|
+
*
|
|
4783
|
+
* @ignore
|
|
4784
|
+
*/
|
|
4785
|
+
create(appOptions) {
|
|
4786
|
+
console.warn('Deprecation Warning: fin.Application.create is deprecated. Please use fin.Application.start');
|
|
4787
|
+
this.wire.sendAction('application-create').catch((e) => {
|
|
4788
|
+
// we do not want to expose this error, just continue if this analytics-only call fails
|
|
4789
|
+
});
|
|
4790
|
+
return this._create(appOptions);
|
|
4791
|
+
}
|
|
4792
|
+
/**
|
|
4793
|
+
* Creates and starts a new Application.
|
|
4794
|
+
*
|
|
4795
|
+
* @example
|
|
4796
|
+
*
|
|
4797
|
+
* ```js
|
|
4798
|
+
* async function start() {
|
|
4799
|
+
* return fin.Application.start({
|
|
4800
|
+
* name: 'app-1',
|
|
4801
|
+
* uuid: 'app-1',
|
|
4802
|
+
* url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.start.html',
|
|
4803
|
+
* autoShow: true
|
|
4804
|
+
* });
|
|
4805
|
+
* }
|
|
4806
|
+
* start().then(() => console.log('Application is running')).catch(err => console.log(err));
|
|
4807
|
+
* ```
|
|
4808
|
+
*
|
|
4809
|
+
*/
|
|
4810
|
+
async start(appOptions) {
|
|
4811
|
+
this.wire.sendAction('start-application').catch((e) => {
|
|
4812
|
+
// we do not want to expose this error, just continue if this analytics-only call fails
|
|
4813
|
+
});
|
|
4814
|
+
const app = await this._create(appOptions);
|
|
4815
|
+
await this.wire.sendAction('run-application', { uuid: appOptions.uuid });
|
|
4816
|
+
return app;
|
|
4817
|
+
}
|
|
4818
|
+
/**
|
|
4819
|
+
* Asynchronously starts a batch of applications given an array of application identifiers and manifestUrls.
|
|
4820
|
+
* Returns once the RVM is finished attempting to launch the applications.
|
|
4821
|
+
* @param opts - Parameters that the RVM will use.
|
|
4822
|
+
*
|
|
4823
|
+
* @example
|
|
4824
|
+
*
|
|
4825
|
+
* ```js
|
|
4826
|
+
*
|
|
4827
|
+
* const applicationInfoArray = [
|
|
4828
|
+
* {
|
|
4829
|
+
* "uuid": 'App-1',
|
|
4830
|
+
* "manifestUrl": 'http://localhost:5555/app1.json',
|
|
4831
|
+
* },
|
|
4832
|
+
* {
|
|
4833
|
+
* "uuid": 'App-2',
|
|
4834
|
+
* "manifestUrl": 'http://localhost:5555/app2.json',
|
|
4835
|
+
* },
|
|
4836
|
+
* {
|
|
4837
|
+
* "uuid": 'App-3',
|
|
4838
|
+
* "manifestUrl": 'http://localhost:5555/app3.json',
|
|
4839
|
+
* }
|
|
4840
|
+
* ]
|
|
4841
|
+
*
|
|
4842
|
+
* fin.Application.startManyManifests(applicationInfoArray)
|
|
4843
|
+
* .then(() => {
|
|
4844
|
+
* console.log('RVM has finished launching the application list.');
|
|
4845
|
+
* })
|
|
4846
|
+
* .catch((err) => {
|
|
4847
|
+
* console.log(err);
|
|
4848
|
+
* })
|
|
4849
|
+
* ```
|
|
4850
|
+
*
|
|
4851
|
+
* @experimental
|
|
4852
|
+
*/
|
|
4853
|
+
async startManyManifests(applications, opts) {
|
|
4854
|
+
return this.wire.sendAction('run-applications', { applications, opts }).then(() => undefined);
|
|
4855
|
+
}
|
|
4856
|
+
/**
|
|
4857
|
+
* Asynchronously returns an Application object that represents the current application
|
|
4858
|
+
*
|
|
4859
|
+
* @example
|
|
4860
|
+
*
|
|
4861
|
+
* ```js
|
|
4862
|
+
* async function isCurrentAppRunning () {
|
|
4863
|
+
* const app = await fin.Application.getCurrent();
|
|
4864
|
+
* return app.isRunning();
|
|
4865
|
+
* }
|
|
4866
|
+
*
|
|
4867
|
+
* isCurrentAppRunning().then(running => {
|
|
4868
|
+
* console.log(`Current app is running: ${running}`);
|
|
4869
|
+
* }).catch(err => {
|
|
4870
|
+
* console.error(err);
|
|
4871
|
+
* });
|
|
4872
|
+
*
|
|
4873
|
+
* ```
|
|
4874
|
+
*/
|
|
4875
|
+
getCurrent() {
|
|
4876
|
+
this.wire.sendAction('get-current-application').catch((e) => {
|
|
4877
|
+
// we do not want to expose this error, just continue if this analytics-only call fails
|
|
4878
|
+
});
|
|
4879
|
+
return this.wrap({ uuid: this.wire.me.uuid });
|
|
4880
|
+
}
|
|
4881
|
+
/**
|
|
4882
|
+
* Synchronously returns an Application object that represents the current application
|
|
4883
|
+
*
|
|
4884
|
+
* @example
|
|
4885
|
+
*
|
|
4886
|
+
* ```js
|
|
4887
|
+
* async function isCurrentAppRunning () {
|
|
4888
|
+
* const app = fin.Application.getCurrentSync();
|
|
4889
|
+
* return app.isRunning();
|
|
4890
|
+
* }
|
|
4891
|
+
*
|
|
4892
|
+
* isCurrentAppRunning().then(running => {
|
|
4893
|
+
* console.log(`Current app is running: ${running}`);
|
|
4894
|
+
* }).catch(err => {
|
|
4895
|
+
* console.error(err);
|
|
4896
|
+
* });
|
|
4897
|
+
*
|
|
4898
|
+
* ```
|
|
4899
|
+
*/
|
|
4900
|
+
getCurrentSync() {
|
|
4901
|
+
this.wire.sendAction('get-current-application-sync').catch((e) => {
|
|
4902
|
+
// we do not want to expose this error, just continue if this analytics-only call fails
|
|
4903
|
+
});
|
|
4904
|
+
return this.wrapSync({ uuid: this.wire.me.uuid });
|
|
4905
|
+
}
|
|
4906
|
+
/**
|
|
4907
|
+
* Retrieves application's manifest and returns a running instance of the application.
|
|
4908
|
+
* @param manifestUrl - The URL of app's manifest.
|
|
4909
|
+
* @param opts - Parameters that the RVM will use.
|
|
4910
|
+
*
|
|
4911
|
+
* @example
|
|
4912
|
+
*
|
|
4913
|
+
* ```js
|
|
4914
|
+
* fin.Application.startFromManifest('http://localhost:5555/app.json').then(app => console.log('App is running')).catch(err => console.log(err));
|
|
4915
|
+
*
|
|
4916
|
+
* // For a local manifest file:
|
|
4917
|
+
* fin.Application.startFromManifest('file:///C:/somefolder/app.json').then(app => console.log('App is running')).catch(err => console.log(err));
|
|
4918
|
+
* ```
|
|
4919
|
+
*/
|
|
4920
|
+
async startFromManifest(manifestUrl, opts) {
|
|
4921
|
+
this.wire.sendAction('application-start-from-manifest').catch((e) => {
|
|
4922
|
+
// we do not want to expose this error, just continue if this analytics-only call fails
|
|
4923
|
+
});
|
|
4924
|
+
const app = await this._createFromManifest(manifestUrl);
|
|
4925
|
+
// @ts-expect-error using private method without warning.
|
|
4926
|
+
await app._run(opts); // eslint-disable-line no-underscore-dangle
|
|
4927
|
+
return app;
|
|
4928
|
+
}
|
|
4929
|
+
/**
|
|
4930
|
+
* @deprecated Use {@link Application.ApplicationModule.startFromManifest Application.startFromManifest} instead.
|
|
4931
|
+
* Retrieves application's manifest and returns a wrapped application.
|
|
4932
|
+
* @param manifestUrl - The URL of app's manifest.
|
|
4933
|
+
* @param callback - called if the method succeeds.
|
|
4934
|
+
* @param errorCallback - called if the method fails. The reason for failure is passed as an argument.
|
|
4935
|
+
*
|
|
4936
|
+
* @example
|
|
4937
|
+
*
|
|
4938
|
+
* ```js
|
|
4939
|
+
* fin.Application.createFromManifest('http://localhost:5555/app.json').then(app => console.log(app)).catch(err => console.log(err));
|
|
4940
|
+
* ```
|
|
4941
|
+
* @ignore
|
|
4942
|
+
*/
|
|
4943
|
+
createFromManifest(manifestUrl) {
|
|
4944
|
+
console.warn('Deprecation Warning: fin.Application.createFromManifest is deprecated. Please use fin.Application.startFromManifest');
|
|
4945
|
+
this.wire.sendAction('application-create-from-manifest').catch((e) => {
|
|
4946
|
+
// we do not want to expose this error, just continue if this analytics-only call fails
|
|
4947
|
+
});
|
|
4948
|
+
return this._createFromManifest(manifestUrl);
|
|
4949
|
+
}
|
|
4950
|
+
_createFromManifest(manifestUrl) {
|
|
4951
|
+
return this.wire
|
|
4952
|
+
.sendAction('get-application-manifest', { manifestUrl })
|
|
4953
|
+
.then(({ payload }) => {
|
|
4954
|
+
const uuid = payload.data.platform ? payload.data.platform.uuid : payload.data.startup_app.uuid;
|
|
4955
|
+
return this.wrap({ uuid });
|
|
4956
|
+
})
|
|
4957
|
+
.then((app) => {
|
|
4958
|
+
app._manifestUrl = manifestUrl; // eslint-disable-line no-underscore-dangle
|
|
4959
|
+
return app;
|
|
4960
|
+
});
|
|
4961
|
+
}
|
|
4962
|
+
}
|
|
4963
|
+
Factory$6.ApplicationModule = ApplicationModule;
|
|
4964
|
+
return Factory$6;
|
|
4965
|
+
}
|
|
4966
|
+
|
|
4967
|
+
var hasRequiredApplication;
|
|
4968
|
+
|
|
4969
|
+
function requireApplication () {
|
|
4970
|
+
if (hasRequiredApplication) return application;
|
|
4971
|
+
hasRequiredApplication = 1;
|
|
4972
|
+
(function (exports) {
|
|
4973
|
+
var __createBinding = (commonjsGlobal && commonjsGlobal.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4974
|
+
if (k2 === undefined) k2 = k;
|
|
4975
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
4976
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
4977
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
4978
|
+
}
|
|
4979
|
+
Object.defineProperty(o, k2, desc);
|
|
4980
|
+
}) : (function(o, m, k, k2) {
|
|
4981
|
+
if (k2 === undefined) k2 = k;
|
|
4982
|
+
o[k2] = m[k];
|
|
4983
|
+
}));
|
|
4984
|
+
var __exportStar = (commonjsGlobal && commonjsGlobal.__exportStar) || function(m, exports) {
|
|
4985
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
4986
|
+
};
|
|
4987
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4988
|
+
/**
|
|
4989
|
+
* Entry points for the OpenFin `Application` API (`fin.Application`).
|
|
4990
|
+
*
|
|
4991
|
+
* * {@link ApplicationModule} contains static members of the `Application` API, accessible through `fin.Application`.
|
|
4992
|
+
* * {@link Application} describes an instance of an OpenFin Application, e.g. as returned by `fin.Application.getCurrent`.
|
|
4993
|
+
*
|
|
4994
|
+
* These are separate code entities, and are documented separately. In the [previous version of the API documentation](https://cdn.openfin.co/docs/javascript/32.114.76.10/index.html),
|
|
4995
|
+
* both of these were documented on the same page.
|
|
4996
|
+
*
|
|
4997
|
+
* @packageDocumentation
|
|
4998
|
+
*/
|
|
4999
|
+
__exportStar(requireFactory$1(), exports);
|
|
5000
|
+
__exportStar(requireInstance$2(), exports);
|
|
5001
|
+
} (application));
|
|
5002
|
+
return application;
|
|
5003
|
+
}
|
|
4972
5004
|
|
|
4973
5005
|
var promisifySubscription$1 = {};
|
|
4974
5006
|
|
|
@@ -5012,7 +5044,7 @@ function requireInstance$1 () {
|
|
|
5012
5044
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
5013
5045
|
/* eslint-disable no-console */
|
|
5014
5046
|
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
5015
|
-
const application_1 =
|
|
5047
|
+
const application_1 = requireApplication();
|
|
5016
5048
|
const main_1 = main;
|
|
5017
5049
|
const view_1 = requireView();
|
|
5018
5050
|
const warnings_1 = warnings;
|
|
@@ -7070,7 +7102,7 @@ function requireView () {
|
|
|
7070
7102
|
*
|
|
7071
7103
|
* @packageDocumentation
|
|
7072
7104
|
*/
|
|
7073
|
-
__exportStar(requireFactory$
|
|
7105
|
+
__exportStar(requireFactory$2(), exports);
|
|
7074
7106
|
__exportStar(requireInstance(), exports);
|
|
7075
7107
|
} (view));
|
|
7076
7108
|
return view;
|
|
@@ -7567,7 +7599,7 @@ var __classPrivateFieldGet$g = (commonjsGlobal && commonjsGlobal.__classPrivateF
|
|
|
7567
7599
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
7568
7600
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
7569
7601
|
};
|
|
7570
|
-
var __importDefault$
|
|
7602
|
+
var __importDefault$6 = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {
|
|
7571
7603
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7572
7604
|
};
|
|
7573
7605
|
var _Transport_wire, _Transport_fin;
|
|
@@ -7576,7 +7608,7 @@ var Transport_1 = transport.Transport = void 0;
|
|
|
7576
7608
|
const events_1$5 = require$$0;
|
|
7577
7609
|
const wire_1 = wire;
|
|
7578
7610
|
const transport_errors_1$6 = transportErrors;
|
|
7579
|
-
const eventAggregator_1 = __importDefault$
|
|
7611
|
+
const eventAggregator_1 = __importDefault$6(eventAggregator);
|
|
7580
7612
|
const me_1$1 = me;
|
|
7581
7613
|
const errors_1$2 = errors;
|
|
7582
7614
|
class Transport extends events_1$5.EventEmitter {
|
|
@@ -11444,7 +11476,7 @@ var __classPrivateFieldGet$a = (commonjsGlobal && commonjsGlobal.__classPrivateF
|
|
|
11444
11476
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11445
11477
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11446
11478
|
};
|
|
11447
|
-
var __importDefault$
|
|
11479
|
+
var __importDefault$5 = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {
|
|
11448
11480
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
11449
11481
|
};
|
|
11450
11482
|
var _ConnectionManager_messageReceiver, _ConnectionManager_rtcConnectionManager;
|
|
@@ -11458,7 +11490,7 @@ const ice_manager_1 = iceManager;
|
|
|
11458
11490
|
const provider_1$1 = provider;
|
|
11459
11491
|
const message_receiver_1 = messageReceiver;
|
|
11460
11492
|
const protocol_manager_1 = protocolManager;
|
|
11461
|
-
const strategy_3 = __importDefault$
|
|
11493
|
+
const strategy_3 = __importDefault$5(strategy);
|
|
11462
11494
|
class ConnectionManager extends base_1$d.Base {
|
|
11463
11495
|
static getProtocolOptionsFromStrings(protocols) {
|
|
11464
11496
|
return protocols.map((protocol) => {
|
|
@@ -15316,14 +15348,14 @@ var __classPrivateFieldGet$2 = (commonjsGlobal && commonjsGlobal.__classPrivateF
|
|
|
15316
15348
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
15317
15349
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
15318
15350
|
};
|
|
15319
|
-
var __importDefault$
|
|
15351
|
+
var __importDefault$4 = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {
|
|
15320
15352
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15321
15353
|
};
|
|
15322
15354
|
var _InteropClient_clientPromise, _InteropClient_sessionContextGroups, _InteropClient_fdc3Factory;
|
|
15323
15355
|
Object.defineProperty(InteropClient$1, "__esModule", { value: true });
|
|
15324
15356
|
InteropClient$1.InteropClient = void 0;
|
|
15325
15357
|
const base_1$3 = base;
|
|
15326
|
-
const SessionContextGroupClient_1 = __importDefault$
|
|
15358
|
+
const SessionContextGroupClient_1 = __importDefault$4(SessionContextGroupClient$1);
|
|
15327
15359
|
const utils_1$5 = utils$3;
|
|
15328
15360
|
/**
|
|
15329
15361
|
* The Interop Client API is broken up into two groups:
|
|
@@ -16028,15 +16060,86 @@ class PrivateChannelClient {
|
|
|
16028
16060
|
}
|
|
16029
16061
|
PrivateChannelClient$1.PrivateChannelClient = PrivateChannelClient;
|
|
16030
16062
|
|
|
16063
|
+
var fdc3Channels2_0 = {};
|
|
16064
|
+
|
|
16065
|
+
var fdc3Channels1_2 = {};
|
|
16066
|
+
|
|
16067
|
+
var __importDefault$3 = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {
|
|
16068
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
16069
|
+
};
|
|
16070
|
+
Object.defineProperty(fdc3Channels1_2, "__esModule", { value: true });
|
|
16071
|
+
fdc3Channels1_2.createV1Channel = void 0;
|
|
16072
|
+
const isEqual_1$1 = __importDefault$3(require$$3);
|
|
16073
|
+
const createV1Channel = (sessionContextGroup) => {
|
|
16074
|
+
return {
|
|
16075
|
+
id: sessionContextGroup.id,
|
|
16076
|
+
type: 'app',
|
|
16077
|
+
broadcast: sessionContextGroup.setContext,
|
|
16078
|
+
getCurrentContext: async (contextType) => {
|
|
16079
|
+
const context = await sessionContextGroup.getCurrentContext(contextType);
|
|
16080
|
+
return context === undefined ? null : context;
|
|
16081
|
+
},
|
|
16082
|
+
// @ts-expect-error TODO [CORE-1524]
|
|
16083
|
+
addContextListener: (contextType, handler) => {
|
|
16084
|
+
let realHandler;
|
|
16085
|
+
let realType;
|
|
16086
|
+
if (typeof contextType === 'function') {
|
|
16087
|
+
console.warn('addContextListener(handler) has been deprecated. Please use addContextListener(null, handler)');
|
|
16088
|
+
realHandler = contextType;
|
|
16089
|
+
}
|
|
16090
|
+
else {
|
|
16091
|
+
realHandler = handler;
|
|
16092
|
+
if (typeof contextType === 'string') {
|
|
16093
|
+
realType = contextType;
|
|
16094
|
+
}
|
|
16095
|
+
}
|
|
16096
|
+
const listener = (async () => {
|
|
16097
|
+
let first = true;
|
|
16098
|
+
const currentContext = await sessionContextGroup.getCurrentContext(realType);
|
|
16099
|
+
const wrappedHandler = (context, contextMetadata) => {
|
|
16100
|
+
if (first) {
|
|
16101
|
+
first = false;
|
|
16102
|
+
if ((0, isEqual_1$1.default)(currentContext, context)) {
|
|
16103
|
+
return;
|
|
16104
|
+
}
|
|
16105
|
+
}
|
|
16106
|
+
// eslint-disable-next-line consistent-return
|
|
16107
|
+
return realHandler(context, contextMetadata);
|
|
16108
|
+
};
|
|
16109
|
+
return sessionContextGroup.addContextHandler(wrappedHandler, realType);
|
|
16110
|
+
})();
|
|
16111
|
+
return {
|
|
16112
|
+
...listener,
|
|
16113
|
+
unsubscribe: () => listener.then((l) => l.unsubscribe())
|
|
16114
|
+
};
|
|
16115
|
+
}
|
|
16116
|
+
};
|
|
16117
|
+
};
|
|
16118
|
+
fdc3Channels1_2.createV1Channel = createV1Channel;
|
|
16119
|
+
|
|
16120
|
+
Object.defineProperty(fdc3Channels2_0, "__esModule", { value: true });
|
|
16121
|
+
fdc3Channels2_0.createV2Channel = void 0;
|
|
16122
|
+
const fdc3_channels_1_2_1$1 = fdc3Channels1_2;
|
|
16123
|
+
const createV2Channel = (sessionContextGroup) => {
|
|
16124
|
+
const channel = (0, fdc3_channels_1_2_1$1.createV1Channel)(sessionContextGroup);
|
|
16125
|
+
return {
|
|
16126
|
+
...channel,
|
|
16127
|
+
// @ts-expect-error Type incompatibility on signature.
|
|
16128
|
+
addContextListener: async (...args) => channel.addContextListener(...args)
|
|
16129
|
+
};
|
|
16130
|
+
};
|
|
16131
|
+
fdc3Channels2_0.createV2Channel = createV2Channel;
|
|
16132
|
+
|
|
16031
16133
|
(function (exports) {
|
|
16032
16134
|
var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {
|
|
16033
16135
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
16034
16136
|
};
|
|
16035
16137
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16036
|
-
exports.getIntentResolution = exports.isChannel = exports.isContext = exports.connectPrivateChannel = exports.
|
|
16138
|
+
exports.getIntentResolution = exports.isChannel = exports.isContext = exports.connectPrivateChannel = exports.buildPrivateChannelObject = exports.ChannelError = exports.ResultError = exports.UnsupportedChannelApiError = exports.getUnsupportedChannelApis = void 0;
|
|
16037
16139
|
const utils_1 = utils$3;
|
|
16038
16140
|
const PrivateChannelClient_1 = PrivateChannelClient$1;
|
|
16039
|
-
|
|
16141
|
+
__importDefault(require$$3);
|
|
16142
|
+
const fdc3_channels_2_0_1 = fdc3Channels2_0;
|
|
16040
16143
|
const getUnsupportedChannelApis = (channelType) => {
|
|
16041
16144
|
return {
|
|
16042
16145
|
addContextListener: () => {
|
|
@@ -16135,52 +16238,6 @@ PrivateChannelClient$1.PrivateChannelClient = PrivateChannelClient;
|
|
|
16135
16238
|
};
|
|
16136
16239
|
};
|
|
16137
16240
|
exports.buildPrivateChannelObject = buildPrivateChannelObject;
|
|
16138
|
-
const buildAppChannelObject = (sessionContextGroup) => {
|
|
16139
|
-
return {
|
|
16140
|
-
id: sessionContextGroup.id,
|
|
16141
|
-
type: 'app',
|
|
16142
|
-
broadcast: sessionContextGroup.setContext,
|
|
16143
|
-
getCurrentContext: async (contextType) => {
|
|
16144
|
-
const context = await sessionContextGroup.getCurrentContext(contextType);
|
|
16145
|
-
return context === undefined ? null : context;
|
|
16146
|
-
},
|
|
16147
|
-
// @ts-expect-error TODO [CORE-1524]
|
|
16148
|
-
addContextListener: (contextType, handler) => {
|
|
16149
|
-
let realHandler;
|
|
16150
|
-
let realType;
|
|
16151
|
-
if (typeof contextType === 'function') {
|
|
16152
|
-
console.warn('addContextListener(handler) has been deprecated. Please use addContextListener(null, handler)');
|
|
16153
|
-
realHandler = contextType;
|
|
16154
|
-
}
|
|
16155
|
-
else {
|
|
16156
|
-
realHandler = handler;
|
|
16157
|
-
if (typeof contextType === 'string') {
|
|
16158
|
-
realType = contextType;
|
|
16159
|
-
}
|
|
16160
|
-
}
|
|
16161
|
-
const listener = (async () => {
|
|
16162
|
-
let first = true;
|
|
16163
|
-
const currentContext = await sessionContextGroup.getCurrentContext(realType);
|
|
16164
|
-
const wrappedHandler = (context, contextMetadata) => {
|
|
16165
|
-
if (first) {
|
|
16166
|
-
first = false;
|
|
16167
|
-
if ((0, isEqual_1.default)(currentContext, context)) {
|
|
16168
|
-
return;
|
|
16169
|
-
}
|
|
16170
|
-
}
|
|
16171
|
-
// eslint-disable-next-line consistent-return
|
|
16172
|
-
return realHandler(context, contextMetadata);
|
|
16173
|
-
};
|
|
16174
|
-
return sessionContextGroup.addContextHandler(wrappedHandler, realType);
|
|
16175
|
-
})();
|
|
16176
|
-
return {
|
|
16177
|
-
...listener,
|
|
16178
|
-
unsubscribe: () => listener.then((l) => l.unsubscribe())
|
|
16179
|
-
};
|
|
16180
|
-
}
|
|
16181
|
-
};
|
|
16182
|
-
};
|
|
16183
|
-
exports.buildAppChannelObject = buildAppChannelObject;
|
|
16184
16241
|
const connectPrivateChannel = async (channelId) => {
|
|
16185
16242
|
try {
|
|
16186
16243
|
const channelClient = await fin.InterApplicationBus.Channel.connect(channelId);
|
|
@@ -16212,6 +16269,10 @@ PrivateChannelClient$1.PrivateChannelClient = PrivateChannelClient;
|
|
|
16212
16269
|
// Generate an ID to make a session context group with. We will pass that ID to the Broker.
|
|
16213
16270
|
// The broker will then setContext on that session context group later with our Intent Result,
|
|
16214
16271
|
const guid = (0, utils_1.generateId)(); // TODO make this undefined in web
|
|
16272
|
+
let isPromiseSettled = false;
|
|
16273
|
+
// Adding the intentResolutionResultId to the intentObj. Because fireIntent only accepts a single arg, we have to slap it in here.
|
|
16274
|
+
const metadata = app ? { target: app, intentResolutionResultId: guid } : { intentResolutionResultId: guid };
|
|
16275
|
+
const intentObj = intent ? { name: intent, context, metadata } : { ...context, metadata };
|
|
16215
16276
|
// Promise we'll use in getResult
|
|
16216
16277
|
const getResultPromise = new Promise((resolve, reject) => {
|
|
16217
16278
|
fin.InterApplicationBus.subscribe({ uuid: '*' }, guid, (intentResult) => {
|
|
@@ -16224,13 +16285,24 @@ PrivateChannelClient$1.PrivateChannelClient = PrivateChannelClient;
|
|
|
16224
16285
|
reject(new Error('getResult is not supported in this environment'));
|
|
16225
16286
|
});
|
|
16226
16287
|
});
|
|
16227
|
-
|
|
16228
|
-
|
|
16229
|
-
|
|
16288
|
+
getResultPromise
|
|
16289
|
+
.then(() => {
|
|
16290
|
+
isPromiseSettled = true;
|
|
16291
|
+
})
|
|
16292
|
+
.catch(() => {
|
|
16293
|
+
isPromiseSettled = true;
|
|
16294
|
+
});
|
|
16230
16295
|
// Set up the getResult call.
|
|
16231
16296
|
const getResult = async () => {
|
|
16297
|
+
// All this mumbo jumbo is needed to make sure that getResult resolves correctly and conforms to the FDC3 spec.
|
|
16298
|
+
if (!isPromiseSettled) {
|
|
16299
|
+
return undefined;
|
|
16300
|
+
}
|
|
16232
16301
|
let intentResult = await getResultPromise;
|
|
16233
|
-
if (
|
|
16302
|
+
if (isPromiseSettled && !intentResult) {
|
|
16303
|
+
return undefined;
|
|
16304
|
+
}
|
|
16305
|
+
if (typeof intentResult !== 'object') {
|
|
16234
16306
|
throw new Error(ResultError.NoResultReturned);
|
|
16235
16307
|
}
|
|
16236
16308
|
const { error } = intentResult;
|
|
@@ -16246,7 +16318,7 @@ PrivateChannelClient$1.PrivateChannelClient = PrivateChannelClient;
|
|
|
16246
16318
|
}
|
|
16247
16319
|
case 'app': {
|
|
16248
16320
|
const sessionContextGroup = await interopModule.joinSessionContextGroup(id);
|
|
16249
|
-
intentResult = (0,
|
|
16321
|
+
intentResult = (0, fdc3_channels_2_0_1.createV2Channel)(sessionContextGroup);
|
|
16250
16322
|
break;
|
|
16251
16323
|
}
|
|
16252
16324
|
}
|
|
@@ -16356,10 +16428,16 @@ class FDC3ModuleBase {
|
|
|
16356
16428
|
*
|
|
16357
16429
|
* @tutorial fdc3.getOrCreateChannel
|
|
16358
16430
|
*/
|
|
16359
|
-
async getOrCreateChannel(channelId) {
|
|
16431
|
+
async getOrCreateChannel(channelId, fdc3Factory) {
|
|
16360
16432
|
this.wire.sendAction('fdc3-get-or-create-channel').catch((e) => {
|
|
16361
16433
|
// we do not want to expose this error, just continue if this analytics-only call fails
|
|
16362
16434
|
});
|
|
16435
|
+
const hasChannelIdBeenUsed = await InteropClient_1$2.InteropClient.ferryFdc3Call(this.client, 'isIdUsedByPrivateChannel', {
|
|
16436
|
+
channelId
|
|
16437
|
+
});
|
|
16438
|
+
if (hasChannelIdBeenUsed) {
|
|
16439
|
+
throw new Error(utils_1$4.ChannelError.AccessDenied);
|
|
16440
|
+
}
|
|
16363
16441
|
const systemChannels = await this._getChannels();
|
|
16364
16442
|
const userChannel = systemChannels.find((channel) => channel.id === channelId);
|
|
16365
16443
|
if (userChannel) {
|
|
@@ -16367,7 +16445,7 @@ class FDC3ModuleBase {
|
|
|
16367
16445
|
}
|
|
16368
16446
|
try {
|
|
16369
16447
|
const sessionContextGroup = await this.client.joinSessionContextGroup(channelId);
|
|
16370
|
-
return (
|
|
16448
|
+
return fdc3Factory(sessionContextGroup);
|
|
16371
16449
|
}
|
|
16372
16450
|
catch (error) {
|
|
16373
16451
|
console.error(error.message);
|
|
@@ -16517,6 +16595,7 @@ Object.defineProperty(fdc31_2, "__esModule", { value: true });
|
|
|
16517
16595
|
fdc31_2.Fdc3Module = void 0;
|
|
16518
16596
|
const utils_1$3 = utils$3;
|
|
16519
16597
|
const fdc3_common_1$1 = fdc3Common;
|
|
16598
|
+
const fdc3_channels_1_2_1 = fdc3Channels1_2;
|
|
16520
16599
|
/**
|
|
16521
16600
|
* @version 1.2
|
|
16522
16601
|
* The FDC3 Client Library provides a set APIs to be used for FDC3 compliance,
|
|
@@ -16699,7 +16778,7 @@ class Fdc3Module extends fdc3_common_1$1.FDC3ModuleBase {
|
|
|
16699
16778
|
* @tutorial fdc3.getOrCreateChannel
|
|
16700
16779
|
*/
|
|
16701
16780
|
async getOrCreateChannel(channelId) {
|
|
16702
|
-
return super.getOrCreateChannel(channelId);
|
|
16781
|
+
return super.getOrCreateChannel(channelId, fdc3_channels_1_2_1.createV1Channel);
|
|
16703
16782
|
}
|
|
16704
16783
|
/**
|
|
16705
16784
|
* Returns metadata relating to the FDC3 object and its provider, including the supported version of the FDC3 specification and the name of the provider of the implementation.
|
|
@@ -16729,6 +16808,7 @@ const utils_1$2 = utils$3;
|
|
|
16729
16808
|
const InteropClient_1$1 = InteropClient$1;
|
|
16730
16809
|
const utils_2 = utils$2;
|
|
16731
16810
|
const PrivateChannelClient_1 = PrivateChannelClient$1;
|
|
16811
|
+
const fdc3_channels_2_0_1 = fdc3Channels2_0;
|
|
16732
16812
|
/**
|
|
16733
16813
|
* @version 2.0
|
|
16734
16814
|
* The FDC3 Client Library provides a set APIs to be used for FDC3 compliance,
|
|
@@ -16980,7 +17060,7 @@ class Fdc3Module2 extends fdc3_common_1.FDC3ModuleBase {
|
|
|
16980
17060
|
* @tutorial fdc3.getOrCreateChannel
|
|
16981
17061
|
*/
|
|
16982
17062
|
async getOrCreateChannel(channelId) {
|
|
16983
|
-
return super.getOrCreateChannel(channelId);
|
|
17063
|
+
return super.getOrCreateChannel(channelId, fdc3_channels_2_0_1.createV2Channel);
|
|
16984
17064
|
}
|
|
16985
17065
|
/**
|
|
16986
17066
|
* 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.
|
|
@@ -17501,7 +17581,7 @@ const events_1 = require$$0;
|
|
|
17501
17581
|
// Import from the file rather than the directory in case someone consuming types is using module resolution other than "node"
|
|
17502
17582
|
const index_1 = system;
|
|
17503
17583
|
const index_2 = requireWindow();
|
|
17504
|
-
const index_3 =
|
|
17584
|
+
const index_3 = requireApplication();
|
|
17505
17585
|
const index_4 = interappbus;
|
|
17506
17586
|
const index_5 = clipboard;
|
|
17507
17587
|
const index_6 = externalApplication;
|