@openfin/core 39.83.19 → 39.83.20

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. package/out/mock.js +1122 -1139
  2. package/package.json +1 -1
package/out/mock.js CHANGED
@@ -741,11 +741,11 @@ const handleDeprecatedWarnings = (options) => {
741
741
  };
742
742
  warnings.handleDeprecatedWarnings = handleDeprecatedWarnings;
743
743
 
744
- var hasRequiredFactory$3;
744
+ var hasRequiredFactory$2;
745
745
 
746
- function requireFactory$3 () {
747
- if (hasRequiredFactory$3) return Factory$6;
748
- hasRequiredFactory$3 = 1;
746
+ function requireFactory$2 () {
747
+ if (hasRequiredFactory$2) return Factory$6;
748
+ hasRequiredFactory$2 = 1;
749
749
  Object.defineProperty(Factory$6, "__esModule", { value: true });
750
750
  Factory$6.ViewModule = void 0;
751
751
  const base_1 = base;
@@ -960,8 +960,8 @@ var main = {};
960
960
 
961
961
  Object.defineProperty(main, "__esModule", { value: true });
962
962
  main.WebContents = void 0;
963
- const base_1$j = base;
964
- class WebContents extends base_1$j.EmitterBase {
963
+ const base_1$l = base;
964
+ class WebContents extends base_1$l.EmitterBase {
965
965
  /**
966
966
  * @param identity The identity of the {@link OpenFin.WebContentsEvents WebContents}.
967
967
  * @param entityType The type of the {@link OpenFin.WebContentsEvents WebContents}.
@@ -2027,11 +2027,11 @@ class WebContents extends base_1$j.EmitterBase {
2027
2027
  }
2028
2028
  main.WebContents = WebContents;
2029
2029
 
2030
- var hasRequiredInstance$2;
2030
+ var hasRequiredInstance$1;
2031
2031
 
2032
- function requireInstance$2 () {
2033
- if (hasRequiredInstance$2) return Instance$5;
2034
- hasRequiredInstance$2 = 1;
2032
+ function requireInstance$1 () {
2033
+ if (hasRequiredInstance$1) return Instance$5;
2034
+ hasRequiredInstance$1 = 1;
2035
2035
  var _View_providerChannelClient;
2036
2036
  Object.defineProperty(Instance$5, "__esModule", { value: true });
2037
2037
  Instance$5.View = void 0;
@@ -2611,1141 +2611,1120 @@ function requireView () {
2611
2611
  *
2612
2612
  * @packageDocumentation
2613
2613
  */
2614
- __exportStar(requireFactory$3(), exports);
2615
- __exportStar(requireInstance$2(), exports);
2614
+ __exportStar(requireFactory$2(), exports);
2615
+ __exportStar(requireInstance$1(), exports);
2616
2616
  } (view));
2617
2617
  return view;
2618
2618
  }
2619
2619
 
2620
- var hasRequiredInstance$1;
2621
-
2622
- function requireInstance$1 () {
2623
- if (hasRequiredInstance$1) return Instance$6;
2624
- hasRequiredInstance$1 = 1;
2625
- Object.defineProperty(Instance$6, "__esModule", { value: true });
2626
- Instance$6.Application = void 0;
2627
- /* eslint-disable import/prefer-default-export */
2628
- const base_1 = base;
2629
- const window_1 = requireWindow();
2630
- const view_1 = requireView();
2631
- /**
2632
- * An object representing an application. Allows the developer to create,
2633
- * execute, show/close an application as well as listen to {@link OpenFin.ApplicationEvents application events}.
2634
- */
2635
- class Application extends base_1.EmitterBase {
2636
- /**
2637
- * @internal
2638
- */
2639
- constructor(wire, identity) {
2640
- super(wire, 'application', identity.uuid);
2641
- this.identity = identity;
2642
- this.window = new window_1._Window(this.wire, {
2643
- uuid: this.identity.uuid,
2644
- name: this.identity.uuid
2645
- });
2646
- }
2647
- windowListFromIdentityList(identityList) {
2648
- const windowList = [];
2649
- identityList.forEach((identity) => {
2650
- windowList.push(new window_1._Window(this.wire, {
2651
- uuid: identity.uuid,
2652
- name: identity.name
2653
- }));
2654
- });
2655
- return windowList;
2656
- }
2657
- /**
2658
- * Determines if the application is currently running.
2659
- *
2660
- * @example
2661
- *
2662
- * ```js
2663
- * async function isAppRunning() {
2664
- * const app = await fin.Application.getCurrent();
2665
- * return await app.isRunning();
2666
- * }
2667
- * isAppRunning().then(running => console.log(`Current app is running: ${running}`)).catch(err => console.log(err));
2668
- * ```
2669
- */
2670
- isRunning() {
2671
- return this.wire.sendAction('is-application-running', this.identity).then(({ payload }) => payload.data);
2672
- }
2673
- /**
2674
- * Closes the application and any child windows created by the application.
2675
- * Cleans the application from state so it is no longer found in getAllApplications.
2676
- * @param force Close will be prevented from closing when force is false and
2677
- * ‘close-requested’ has been subscribed to for application’s main window.
2678
- *
2679
- * @example
2680
- *
2681
- * ```js
2682
- * async function closeApp() {
2683
- * const allApps1 = await fin.System.getAllApplications(); //[{uuid: 'app1', isRunning: true}, {uuid: 'app2', isRunning: true}]
2684
- * const app = await fin.Application.wrap({uuid: 'app2'});
2685
- * await app.quit();
2686
- * const allApps2 = await fin.System.getAllApplications(); //[{uuid: 'app1', isRunning: true}]
2687
- *
2688
- * }
2689
- * closeApp().then(() => console.log('Application quit')).catch(err => console.log(err));
2690
- * ```
2691
- */
2692
- async quit(force = false) {
2693
- try {
2694
- await this._close(force);
2695
- await this.wire.sendAction('destroy-application', { force, ...this.identity });
2696
- }
2697
- catch (error) {
2698
- const acceptableErrors = ['Remote connection has closed', 'Could not locate the requested application'];
2699
- if (!acceptableErrors.some((msg) => error.message.includes(msg))) {
2700
- throw error;
2701
- }
2702
- }
2703
- }
2704
- async _close(force = false) {
2705
- try {
2706
- await this.wire.sendAction('close-application', { force, ...this.identity });
2707
- }
2708
- catch (error) {
2709
- if (!error.message.includes('Remote connection has closed')) {
2710
- throw error;
2711
- }
2712
- }
2713
- }
2714
- /**
2715
- * @deprecated use Application.quit instead
2716
- * Closes the application and any child windows created by the application.
2717
- * @param force - Close will be prevented from closing when force is false and ‘close-requested’ has been subscribed to for application’s main window.
2718
- * @param callback - called if the method succeeds.
2719
- * @param errorCallback - called if the method fails. The reason for failure is passed as an argument.
2720
- *
2721
- * @example
2722
- *
2723
- * ```js
2724
- * async function closeApp() {
2725
- * const app = await fin.Application.getCurrent();
2726
- * return await app.close();
2727
- * }
2728
- * closeApp().then(() => console.log('Application closed')).catch(err => console.log(err));
2729
- * ```
2730
- */
2731
- close(force = false) {
2732
- console.warn('Deprecation Warning: Application.close is deprecated Please use Application.quit');
2733
- this.wire.sendAction('application-close', this.identity).catch((e) => {
2734
- // we do not want to expose this error, just continue if this analytics-only call fails
2735
- });
2736
- return this._close(force);
2737
- }
2738
- /**
2739
- * Retrieves an array of wrapped fin.Windows for each of the application’s child windows.
2740
- *
2741
- * @example
2742
- *
2743
- * ```js
2744
- * async function getChildWindows() {
2745
- * const app = await fin.Application.getCurrent();
2746
- * return await app.getChildWindows();
2747
- * }
2748
- *
2749
- * getChildWindows().then(children => console.log(children)).catch(err => console.log(err));
2750
- * ```
2751
- */
2752
- getChildWindows() {
2753
- return this.wire.sendAction('get-child-windows', this.identity).then(({ payload }) => {
2754
- const identityList = [];
2755
- payload.data.forEach((winName) => {
2756
- identityList.push({ uuid: this.identity.uuid, name: winName });
2757
- });
2758
- return this.windowListFromIdentityList(identityList);
2759
- });
2760
- }
2761
- /**
2762
- * Retrieves the JSON manifest that was used to create the application. Invokes the error callback
2763
- * if the application was not created from a manifest.
2764
- *
2765
- * @example
2766
- *
2767
- * ```js
2768
- * async function getManifest() {
2769
- * const app = await fin.Application.getCurrent();
2770
- * return await app.getManifest();
2771
- * }
2772
- *
2773
- * getManifest().then(manifest => console.log(manifest)).catch(err => console.log(err));
2774
- * ```
2775
- */
2776
- getManifest() {
2777
- return this.wire.sendAction('get-application-manifest', this.identity).then(({ payload }) => payload.data);
2778
- }
2779
- /**
2780
- * Retrieves UUID of the application that launches this application. Invokes the error callback
2781
- * if the application was created from a manifest.
2782
- *
2783
- * @example
2784
- *
2785
- * ```js
2786
- * async function getParentUuid() {
2787
- * const app = await fin.Application.start({
2788
- * uuid: 'app-1',
2789
- * name: 'myApp',
2790
- * url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.getParentUuid.html',
2791
- * autoShow: true
2792
- * });
2793
- * return await app.getParentUuid();
2794
- * }
2795
- *
2796
- * getParentUuid().then(parentUuid => console.log(parentUuid)).catch(err => console.log(err));
2797
- * ```
2798
- */
2799
- getParentUuid() {
2800
- return this.wire.sendAction('get-parent-application', this.identity).then(({ payload }) => payload.data);
2801
- }
2802
- /**
2803
- * Retrieves current application's shortcut configuration.
2804
- *
2805
- * @example
2806
- *
2807
- * ```js
2808
- * async function getShortcuts() {
2809
- * const app = await fin.Application.wrap({ uuid: 'testapp' });
2810
- * return await app.getShortcuts();
2811
- * }
2812
- * getShortcuts().then(config => console.log(config)).catch(err => console.log(err));
2813
- * ```
2814
- */
2815
- getShortcuts() {
2816
- return this.wire.sendAction('get-shortcuts', this.identity).then(({ payload }) => payload.data);
2817
- }
2818
- /**
2819
- * Retrieves current application's views.
2820
- * @experimental
2821
- *
2822
- * @example
2823
- *
2824
- * ```js
2825
- * async function getViews() {
2826
- * const app = await fin.Application.getCurrent();
2827
- * return await app.getViews();
2828
- * }
2829
- * getViews().then(views => console.log(views)).catch(err => console.log(err));
2830
- * ```
2831
- */
2832
- async getViews() {
2833
- const { payload } = await this.wire.sendAction('application-get-views', this.identity);
2834
- return payload.data.map((id) => new view_1.View(this.wire, id));
2835
- }
2836
- /**
2837
- * Returns the current zoom level of the application.
2838
- *
2839
- * @example
2840
- *
2841
- * ```js
2842
- * async function getZoomLevel() {
2843
- * const app = await fin.Application.getCurrent();
2844
- * return await app.getZoomLevel();
2845
- * }
2846
- *
2847
- * getZoomLevel().then(zoomLevel => console.log(zoomLevel)).catch(err => console.log(err));
2848
- * ```
2849
- */
2850
- getZoomLevel() {
2851
- return this.wire.sendAction('get-application-zoom-level', this.identity).then(({ payload }) => payload.data);
2852
- }
2853
- /**
2854
- * Returns an instance of the main Window of the application
2855
- *
2856
- * @example
2857
- *
2858
- * ```js
2859
- * async function getWindow() {
2860
- * const app = await fin.Application.start({
2861
- * uuid: 'app-1',
2862
- * name: 'myApp',
2863
- * url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.getWindow.html',
2864
- * autoShow: true
2865
- * });
2866
- * return await app.getWindow();
2867
- * }
2868
- *
2869
- * getWindow().then(win => {
2870
- * win.showAt(0, 400);
2871
- * win.flash();
2872
- * }).catch(err => console.log(err));
2873
- * ```
2874
- */
2875
- getWindow() {
2876
- this.wire.sendAction('application-get-window', this.identity).catch((e) => {
2877
- // we do not want to expose this error, just continue if this analytics-only call fails
2878
- });
2879
- return Promise.resolve(this.window);
2880
- }
2881
- /**
2882
- * Manually registers a user with the licensing service. The only data sent by this call is userName and appName.
2883
- * @param userName - username to be passed to the RVM.
2884
- * @param appName - app name to be passed to the RVM.
2885
- *
2886
- * @example
2887
- *
2888
- * ```js
2889
- * async function registerUser() {
2890
- * const app = await fin.Application.getCurrent();
2891
- * return await app.registerUser('user', 'myApp');
2892
- * }
2893
- *
2894
- * registerUser().then(() => console.log('Successfully registered the user')).catch(err => console.log(err));
2895
- * ```
2896
- */
2897
- registerUser(userName, appName) {
2898
- return this.wire.sendAction('register-user', { userName, appName, ...this.identity }).then(() => undefined);
2899
- }
2900
- /**
2901
- * Removes the application’s icon from the tray.
2902
- *
2903
- * @example
2904
- *
2905
- * ```js
2906
- * async function removeTrayIcon() {
2907
- * const app = await fin.Application.getCurrent();
2908
- * return await app.removeTrayIcon();
2909
- * }
2910
- *
2911
- * removeTrayIcon().then(() => console.log('Removed the tray icon.')).catch(err => console.log(err));
2912
- * ```
2913
- */
2914
- removeTrayIcon() {
2915
- return this.wire.sendAction('remove-tray-icon', this.identity).then(() => undefined);
2916
- }
2917
- /**
2918
- * Restarts the application.
2919
- *
2920
- * @example
2921
- *
2922
- * ```js
2923
- * async function restartApp() {
2924
- * const app = await fin.Application.getCurrent();
2925
- * return await app.restart();
2926
- * }
2927
- * restartApp().then(() => console.log('Application restarted')).catch(err => console.log(err));
2928
- * ```
2929
- */
2930
- restart() {
2931
- return this.wire.sendAction('restart-application', this.identity).then(() => undefined);
2932
- }
2933
- /**
2934
- * DEPRECATED method to run the application.
2935
- * Needed when starting application via {@link Application.create}, but NOT needed when starting via {@link Application.start}.
2936
- *
2937
- * @example
2938
- *
2939
- * ```js
2940
- * async function run() {
2941
- * const app = await fin.Application.create({
2942
- * name: 'myApp',
2943
- * uuid: 'app-1',
2944
- * url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.run.html',
2945
- * autoShow: true
2946
- * });
2947
- * await app.run();
2948
- * }
2949
- * run().then(() => console.log('Application is running')).catch(err => console.log(err));
2950
- * ```
2951
- *
2952
- * @ignore
2953
- */
2954
- run() {
2955
- console.warn('Deprecation Warning: Application.run is deprecated Please use fin.Application.start');
2956
- this.wire.sendAction('application-run', this.identity).catch((e) => {
2957
- // we do not want to expose this error, just continue if this analytics-only call fails
2958
- });
2959
- return this._run();
2960
- }
2961
- _run(opts = {}) {
2962
- return this.wire
2963
- .sendAction('run-application', {
2964
- manifestUrl: this._manifestUrl,
2965
- opts,
2966
- ...this.identity
2967
- })
2968
- .then(() => undefined);
2969
- }
2970
- /**
2971
- * Instructs the RVM to schedule one restart of the application.
2972
- *
2973
- * @example
2974
- *
2975
- * ```js
2976
- * async function scheduleRestart() {
2977
- * const app = await fin.Application.getCurrent();
2978
- * return await app.scheduleRestart();
2979
- * }
2980
- *
2981
- * scheduleRestart().then(() => console.log('Application is scheduled to restart')).catch(err => console.log(err));
2982
- * ```
2983
- */
2984
- scheduleRestart() {
2985
- return this.wire.sendAction('relaunch-on-close', this.identity).then(() => undefined);
2986
- }
2987
- /**
2988
- * Sends a message to the RVM to upload the application's logs. On success,
2989
- * an object containing logId is returned.
2990
- *
2991
- * @example
2992
- *
2993
- * ```js
2994
- * async function sendLog() {
2995
- * const app = await fin.Application.getCurrent();
2996
- * return await app.sendApplicationLog();
2997
- * }
2998
- *
2999
- * sendLog().then(info => console.log(info.logId)).catch(err => console.log(err));
3000
- * ```
3001
- */
3002
- async sendApplicationLog() {
3003
- const { payload } = await this.wire.sendAction('send-application-log', this.identity);
3004
- return payload.data;
3005
- }
3006
- /**
3007
- * Sets or removes a custom JumpList for the application. Only applicable in Windows OS.
3008
- * If categories is null the previously set custom JumpList (if any) will be replaced by the standard JumpList for the app (managed by Windows).
3009
- *
3010
- * Note: If the "name" property is omitted it defaults to "tasks".
3011
- * @param jumpListCategories An array of JumpList Categories to populate. If null, remove any existing JumpList configuration and set to Windows default.
3012
- *
3013
- *
3014
- * @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).
3015
- *
3016
- * The bottommost item in the jumplist will always be an item pointing to the current app. Its name is taken from the manifest's
3017
- * **` shortcut.name `** and uses **` shortcut.company `** as a fallback. Clicking that item will launch the app from its current manifest.
3018
- *
3019
- * Note: If the "name" property is omitted it defaults to "tasks".
3020
- *
3021
- * Note: Window OS caches jumplists icons, therefore an icon change might only be visible after the cache is removed or the
3022
- * uuid or shortcut.name is changed.
3023
- *
3024
- * @example
3025
- *
3026
- * ```js
3027
- * const app = fin.Application.getCurrentSync();
3028
- * const appName = 'My App';
3029
- * const jumpListConfig = [ // array of JumpList categories
3030
- * {
3031
- * // has no name and no type so `type` is assumed to be "tasks"
3032
- * items: [ // array of JumpList items
3033
- * {
3034
- * type: 'task',
3035
- * title: `Launch ${appName}`,
3036
- * description: `Runs ${appName} with the default configuration`,
3037
- * deepLink: 'fins://path.to/app/manifest.json',
3038
- * iconPath: 'https://path.to/app/icon.ico',
3039
- * iconIndex: 0
3040
- * },
3041
- * { type: 'separator' },
3042
- * {
3043
- * type: 'task',
3044
- * title: `Restore ${appName}`,
3045
- * description: 'Restore to last configuration',
3046
- * deepLink: 'fins://path.to/app/manifest.json?$$use-last-configuration=true',
3047
- * iconPath: 'https://path.to/app/icon.ico',
3048
- * iconIndex: 0
3049
- * },
3050
- * ]
3051
- * },
3052
- * {
3053
- * name: 'Tools',
3054
- * items: [ // array of JumpList items
3055
- * {
3056
- * type: 'task',
3057
- * title: 'Tool A',
3058
- * description: 'Runs Tool A',
3059
- * deepLink: 'fins://path.to/tool-a/manifest.json',
3060
- * iconPath: 'https://path.to/tool-a/icon.ico',
3061
- * iconIndex: 0
3062
- * },
3063
- * {
3064
- * type: 'task',
3065
- * title: 'Tool B',
3066
- * description: 'Runs Tool B',
3067
- * deepLink: 'fins://path.to/tool-b/manifest.json',
3068
- * iconPath: 'https://path.to/tool-b/icon.ico',
3069
- * iconIndex: 0
3070
- * }]
3071
- * }
3072
- * ];
3073
- *
3074
- * app.setJumpList(jumpListConfig).then(() => console.log('JumpList applied')).catch(e => console.log(`JumpList failed to apply: ${e.toString()}`));
3075
- * ```
3076
- *
3077
- * To handle deeplink args:
3078
- * ```js
3079
- * function handleUseLastConfiguration() {
3080
- * // this handler is called when the app is being launched
3081
- * app.on('run-requested', event => {
3082
- * if(event.userAppConfigArgs['use-last-configuration']) {
3083
- * // your logic here
3084
- * }
3085
- * });
3086
- * // this handler is called when the app was already running when the launch was requested
3087
- * fin.desktop.main(function(args) {
3088
- * if(args && args['use-last-configuration']) {
3089
- * // your logic here
3090
- * }
3091
- * });
3092
- * }
3093
- * ```
3094
- */
3095
- async setJumpList(jumpListCategories) {
3096
- await this.wire.sendAction('set-jump-list', { config: jumpListCategories, ...this.identity });
3097
- }
3098
- /**
3099
- * Adds a customizable icon in the system tray. To listen for a click on the icon use the `tray-icon-clicked` event.
3100
- * @param icon Image URL or base64 encoded string to be used as the icon
3101
- *
3102
- * @example
3103
- *
3104
- * ```js
3105
- * const imageUrl = "http://cdn.openfin.co/assets/testing/icons/circled-digit-one.png";
3106
- * const base64EncodedImage = "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAIAQMAAAD+wSzIAAAABlBMVEX\
3107
- * ///+/v7+jQ3Y5AAAADklEQVQI12P4AIX8EAgALgAD/aNpbtEAAAAASUVORK5CYII";
3108
- * const dataURL = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DH\
3109
- * xgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==";
3110
- *
3111
- * async function setTrayIcon(icon) {
3112
- * const app = await fin.Application.getCurrent();
3113
- * return await app.setTrayIcon(icon);
3114
- * }
3115
- *
3116
- * // use image url to set tray icon
3117
- * setTrayIcon(imageUrl).then(() => console.log('Setting tray icon')).catch(err => console.log(err));
3118
- *
3119
- * // use base64 encoded string to set tray icon
3120
- * setTrayIcon(base64EncodedImage).then(() => console.log('Setting tray icon')).catch(err => console.log(err));
3121
- *
3122
- * // use a dataURL to set tray icon
3123
- * setTrayIcon(dataURL).then(() => console.log('Setting tray icon')).catch(err => console.log(err));
3124
- * ```
3125
- */
3126
- setTrayIcon(icon) {
3127
- return this.wire
3128
- .sendAction('set-tray-icon', {
3129
- enabledIcon: icon,
3130
- ...this.identity
3131
- })
3132
- .then(() => undefined);
3133
- }
3134
- /**
3135
- * Sets new application's shortcut configuration. Windows only.
3136
- * @param config New application's shortcut configuration.
3137
- *
3138
- * @remarks Application has to be launched with a manifest and has to have shortcut configuration (icon url, name, etc.) in its manifest
3139
- * to be able to change shortcut states.
3140
- *
3141
- * @example
3142
- *
3143
- * ```js
3144
- * async function setShortcuts(config) {
3145
- * const app = await fin.Application.getCurrent();
3146
- * return app.setShortcuts(config);
3147
- * }
3148
- *
3149
- * setShortcuts({
3150
- * desktop: true,
3151
- * startMenu: false,
3152
- * systemStartup: true
3153
- * }).then(() => console.log('Shortcuts are set.')).catch(err => console.log(err));
3154
- * ```
3155
- */
3156
- setShortcuts(config) {
3157
- return this.wire.sendAction('set-shortcuts', { data: config, ...this.identity }).then(() => undefined);
3158
- }
3159
- /**
3160
- * Sets the query string in all shortcuts for this app. Requires RVM 5.5+.
3161
- * @param queryString The new query string for this app's shortcuts.
3162
- *
3163
- * @example
3164
- *
3165
- * ```js
3166
- * const newQueryArgs = 'arg=true&arg2=false';
3167
- * const app = await fin.Application.getCurrent();
3168
- * try {
3169
- * await app.setShortcutQueryParams(newQueryArgs);
3170
- * } catch(err) {
3171
- * console.error(err)
3172
- * }
3173
- * ```
3174
- */
3175
- async setShortcutQueryParams(queryString) {
3176
- await this.wire.sendAction('set-shortcut-query-args', { data: queryString, ...this.identity });
3177
- }
3178
- /**
3179
- * Sets the zoom level of the application. The original size is 0 and each increment above or below represents zooming 20%
3180
- * larger or smaller to default limits of 300% and 50% of original size, respectively.
3181
- * @param level The zoom level
3182
- *
3183
- * @example
3184
- *
3185
- * ```js
3186
- * async function setZoomLevel(number) {
3187
- * const app = await fin.Application.getCurrent();
3188
- * return await app.setZoomLevel(number);
3189
- * }
3190
- *
3191
- * setZoomLevel(5).then(() => console.log('Setting a zoom level')).catch(err => console.log(err));
3192
- * ```
3193
- */
3194
- setZoomLevel(level) {
3195
- return this.wire.sendAction('set-application-zoom-level', { level, ...this.identity }).then(() => undefined);
3196
- }
3197
- /**
3198
- * Sets a username to correlate with App Log Management.
3199
- * @param username Username to correlate with App's Log.
3200
- *
3201
- * @example
3202
- *
3203
- * ```js
3204
- * async function setAppLogUser() {
3205
- * const app = await fin.Application.getCurrent();
3206
- * return await app.setAppLogUsername('username');
3207
- * }
3208
- *
3209
- * setAppLogUser().then(() => console.log('Success')).catch(err => console.log(err));
3210
- *
3211
- * ```
3212
- */
3213
- async setAppLogUsername(username) {
3214
- await this.wire.sendAction('set-app-log-username', { data: username, ...this.identity });
3215
- }
3216
- /**
3217
- * Retrieves information about the system tray. If the system tray is not set, it will throw an error message.
3218
- * @remarks The only information currently returned is the position and dimensions.
3219
- *
3220
- * @example
3221
- *
3222
- * ```js
3223
- * async function getTrayIconInfo() {
3224
- * const app = await fin.Application.wrap({ uuid: 'testapp' });
3225
- * return await app.getTrayIconInfo();
3226
- * }
3227
- * getTrayIconInfo().then(info => console.log(info)).catch(err => console.log(err));
3228
- * ```
3229
- */
3230
- getTrayIconInfo() {
3231
- return this.wire.sendAction('get-tray-icon-info', this.identity).then(({ payload }) => payload.data);
3232
- }
3233
- /**
3234
- * Checks if the application has an associated tray icon.
3235
- *
3236
- * @example
3237
- *
3238
- * ```js
3239
- * const app = await fin.Application.wrap({ uuid: 'testapp' });
3240
- * const hasTrayIcon = await app.hasTrayIcon();
3241
- * console.log(hasTrayIcon);
3242
- * ```
3243
- */
3244
- hasTrayIcon() {
3245
- return this.wire.sendAction('has-tray-icon', this.identity).then(({ payload }) => payload.data);
3246
- }
3247
- /**
3248
- * Closes the application by terminating its process.
3249
- *
3250
- * @example
3251
- *
3252
- * ```js
3253
- * async function terminateApp() {
3254
- * const app = await fin.Application.getCurrent();
3255
- * return await app.terminate();
3256
- * }
3257
- * terminateApp().then(() => console.log('Application terminated')).catch(err => console.log(err));
3258
- * ```
3259
- */
3260
- terminate() {
3261
- return this.wire.sendAction('terminate-application', this.identity).then(() => undefined);
3262
- }
3263
- /**
3264
- * Waits for a hanging application. This method can be called in response to an application
3265
- * "not-responding" to allow the application to continue and to generate another "not-responding"
3266
- * message after a certain period of time.
3267
- *
3268
- * @ignore
3269
- */
3270
- wait() {
3271
- return this.wire.sendAction('wait-for-hung-application', this.identity).then(() => undefined);
3272
- }
3273
- /**
3274
- * Retrieves information about the application.
3275
- *
3276
- * @remarks If the application was not launched from a manifest, the call will return the closest parent application `manifest`
3277
- * and `manifestUrl`. `initialOptions` shows the parameters used when launched programmatically, or the `startup_app` options
3278
- * if launched from manifest. The `parentUuid` will be the uuid of the immediate parent (if applicable).
3279
- *
3280
- * @example
3281
- *
3282
- * ```js
3283
- * async function getInfo() {
3284
- * const app = await fin.Application.getCurrent();
3285
- * return await app.getInfo();
3286
- * }
3287
- *
3288
- * getInfo().then(info => console.log(info)).catch(err => console.log(err));
3289
- * ```
3290
- */
3291
- getInfo() {
3292
- return this.wire.sendAction('get-info', this.identity).then(({ payload }) => payload.data);
3293
- }
3294
- /**
3295
- * Retrieves all process information for entities (windows and views) associated with an application.
3296
- *
3297
- * @example
3298
- * ```js
3299
- * const app = await fin.Application.getCurrent();
3300
- * const processInfo = await app.getProcessInfo();
3301
- * ```
3302
- * @experimental
3303
- */
3304
- async getProcessInfo() {
3305
- const { payload: { data } } = await this.wire.sendAction('application-get-process-info', this.identity);
3306
- return data;
3307
- }
3308
- /**
3309
- * Sets file auto download location. It's only allowed in the same application.
3310
- *
3311
- * Note: This method is restricted by default and must be enabled via
3312
- * <a href="https://developers.openfin.co/docs/api-security">API security settings</a>.
3313
- * @param downloadLocation file auto download location
3314
- *
3315
- * @throws if setting file auto download location on different applications.
3316
- * @example
3317
- *
3318
- * ```js
3319
- * const downloadLocation = 'C:\\dev\\temp';
3320
- * const app = await fin.Application.getCurrent();
3321
- * try {
3322
- * await app.setFileDownloadLocation(downloadLocation);
3323
- * console.log('File download location is set');
3324
- * } catch(err) {
3325
- * console.error(err)
3326
- * }
3327
- * ```
3328
- */
3329
- async setFileDownloadLocation(downloadLocation) {
3330
- const { name } = this.wire.me;
3331
- const entityIdentity = { uuid: this.identity.uuid, name };
3332
- await this.wire.sendAction('set-file-download-location', { ...entityIdentity, downloadLocation });
3333
- }
3334
- /**
3335
- * 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.
3336
- *
3337
- * Note: This method is restricted by default and must be enabled via
3338
- * <a href="https://developers.openfin.co/docs/api-security">API security settings</a>.
3339
- *
3340
- * @throws if getting file auto download location on different applications.
3341
- * @example
3342
- *
3343
- * ```js
3344
- * const app = await fin.Application.getCurrent();
3345
- * const fileDownloadDir = await app.getFileDownloadLocation();
3346
- * ```
3347
- */
3348
- async getFileDownloadLocation() {
3349
- const { payload: { data } } = await this.wire.sendAction('get-file-download-location', this.identity);
3350
- return data;
3351
- }
3352
- /**
3353
- * Shows a menu on the tray icon. Use with tray-icon-clicked event.
3354
- * @param options
3355
- * @typeParam Data User-defined shape for data returned upon menu item click. Should be a
3356
- * [union](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types)
3357
- * of all possible data shapes for the entire menu, and the click handler should process
3358
- * these with a "reducer" pattern.
3359
- * @throws if the application has no tray icon set
3360
- * @throws if the system tray is currently hidden
3361
- * @example
3362
- *
3363
- * ```js
3364
- * const iconUrl = 'http://cdn.openfin.co/assets/testing/icons/circled-digit-one.png';
3365
- * const app = fin.Application.getCurrentSync();
3366
- *
3367
- * await app.setTrayIcon(iconUrl);
3368
- *
3369
- * const template = [
3370
- * {
3371
- * label: 'Menu Item 1',
3372
- * data: 'hello from item 1'
3373
- * },
3374
- * { type: 'separator' },
3375
- * {
3376
- * label: 'Menu Item 2',
3377
- * type: 'checkbox',
3378
- * checked: true,
3379
- * data: 'The user clicked the checkbox'
3380
- * },
3381
- * {
3382
- * label: 'see more',
3383
- * enabled: false,
3384
- * submenu: [
3385
- * { label: 'submenu 1', data: 'hello from submenu' }
3386
- * ]
3387
- * }
3388
- * ];
3389
- *
3390
- * app.addListener('tray-icon-clicked', (event) => {
3391
- * // right-click
3392
- * if (event.button === 2) {
3393
- * app.showTrayIconPopupMenu({ template }).then(r => {
3394
- * if (r.result === 'closed') {
3395
- * console.log('nothing happened');
3396
- * } else {
3397
- * console.log(r.data);
3398
- * }
3399
- * });
3400
- * }
3401
- * });
3402
- * ```
3403
- */
3404
- async showTrayIconPopupMenu(options) {
3405
- const { name } = this.wire.me;
3406
- const entityIdentity = { uuid: this.identity.uuid, name };
3407
- const { payload } = await this.wire.sendAction('show-tray-icon-popup-menu', { ...entityIdentity, options });
3408
- return payload.data;
3409
- }
3410
- /**
3411
- * Closes the tray icon menu.
3412
- *
3413
- * @throws if the application has no tray icon set
3414
- * @example
3415
- *
3416
- * ```js
3417
- * const app = fin.Application.getCurrentSync();
3418
- *
3419
- * await app.closeTrayIconPopupMenu();
3420
- * ```
3421
- */
3422
- async closeTrayIconPopupMenu() {
3423
- const { name } = this.wire.me;
3424
- const entityIdentity = { uuid: this.identity.uuid, name };
3425
- await this.wire.sendAction('close-tray-icon-popup-menu', { ...entityIdentity });
3426
- }
3427
- }
3428
- Instance$6.Application = Application;
3429
- return Instance$6;
2620
+ Object.defineProperty(Instance$6, "__esModule", { value: true });
2621
+ Instance$6.Application = void 0;
2622
+ /* eslint-disable import/prefer-default-export */
2623
+ const base_1$k = base;
2624
+ const window_1$1 = requireWindow();
2625
+ const view_1 = requireView();
2626
+ /**
2627
+ * An object representing an application. Allows the developer to create,
2628
+ * execute, show/close an application as well as listen to {@link OpenFin.ApplicationEvents application events}.
2629
+ */
2630
+ class Application extends base_1$k.EmitterBase {
2631
+ /**
2632
+ * @internal
2633
+ */
2634
+ constructor(wire, identity) {
2635
+ super(wire, 'application', identity.uuid);
2636
+ this.identity = identity;
2637
+ this.window = new window_1$1._Window(this.wire, {
2638
+ uuid: this.identity.uuid,
2639
+ name: this.identity.uuid
2640
+ });
2641
+ }
2642
+ windowListFromIdentityList(identityList) {
2643
+ const windowList = [];
2644
+ identityList.forEach((identity) => {
2645
+ windowList.push(new window_1$1._Window(this.wire, {
2646
+ uuid: identity.uuid,
2647
+ name: identity.name
2648
+ }));
2649
+ });
2650
+ return windowList;
2651
+ }
2652
+ /**
2653
+ * Determines if the application is currently running.
2654
+ *
2655
+ * @example
2656
+ *
2657
+ * ```js
2658
+ * async function isAppRunning() {
2659
+ * const app = await fin.Application.getCurrent();
2660
+ * return await app.isRunning();
2661
+ * }
2662
+ * isAppRunning().then(running => console.log(`Current app is running: ${running}`)).catch(err => console.log(err));
2663
+ * ```
2664
+ */
2665
+ isRunning() {
2666
+ return this.wire.sendAction('is-application-running', this.identity).then(({ payload }) => payload.data);
2667
+ }
2668
+ /**
2669
+ * Closes the application and any child windows created by the application.
2670
+ * Cleans the application from state so it is no longer found in getAllApplications.
2671
+ * @param force Close will be prevented from closing when force is false and
2672
+ * ‘close-requested’ has been subscribed to for application’s main window.
2673
+ *
2674
+ * @example
2675
+ *
2676
+ * ```js
2677
+ * async function closeApp() {
2678
+ * const allApps1 = await fin.System.getAllApplications(); //[{uuid: 'app1', isRunning: true}, {uuid: 'app2', isRunning: true}]
2679
+ * const app = await fin.Application.wrap({uuid: 'app2'});
2680
+ * await app.quit();
2681
+ * const allApps2 = await fin.System.getAllApplications(); //[{uuid: 'app1', isRunning: true}]
2682
+ *
2683
+ * }
2684
+ * closeApp().then(() => console.log('Application quit')).catch(err => console.log(err));
2685
+ * ```
2686
+ */
2687
+ async quit(force = false) {
2688
+ try {
2689
+ await this._close(force);
2690
+ await this.wire.sendAction('destroy-application', { force, ...this.identity });
2691
+ }
2692
+ catch (error) {
2693
+ const acceptableErrors = ['Remote connection has closed', 'Could not locate the requested application'];
2694
+ if (!acceptableErrors.some((msg) => error.message.includes(msg))) {
2695
+ throw error;
2696
+ }
2697
+ }
2698
+ }
2699
+ async _close(force = false) {
2700
+ try {
2701
+ await this.wire.sendAction('close-application', { force, ...this.identity });
2702
+ }
2703
+ catch (error) {
2704
+ if (!error.message.includes('Remote connection has closed')) {
2705
+ throw error;
2706
+ }
2707
+ }
2708
+ }
2709
+ /**
2710
+ * @deprecated use Application.quit instead
2711
+ * Closes the application and any child windows created by the application.
2712
+ * @param force - Close will be prevented from closing when force is false and ‘close-requested’ has been subscribed to for application’s main window.
2713
+ * @param callback - called if the method succeeds.
2714
+ * @param errorCallback - called if the method fails. The reason for failure is passed as an argument.
2715
+ *
2716
+ * @example
2717
+ *
2718
+ * ```js
2719
+ * async function closeApp() {
2720
+ * const app = await fin.Application.getCurrent();
2721
+ * return await app.close();
2722
+ * }
2723
+ * closeApp().then(() => console.log('Application closed')).catch(err => console.log(err));
2724
+ * ```
2725
+ */
2726
+ close(force = false) {
2727
+ console.warn('Deprecation Warning: Application.close is deprecated Please use Application.quit');
2728
+ this.wire.sendAction('application-close', this.identity).catch((e) => {
2729
+ // we do not want to expose this error, just continue if this analytics-only call fails
2730
+ });
2731
+ return this._close(force);
2732
+ }
2733
+ /**
2734
+ * Retrieves an array of wrapped fin.Windows for each of the application’s child windows.
2735
+ *
2736
+ * @example
2737
+ *
2738
+ * ```js
2739
+ * async function getChildWindows() {
2740
+ * const app = await fin.Application.getCurrent();
2741
+ * return await app.getChildWindows();
2742
+ * }
2743
+ *
2744
+ * getChildWindows().then(children => console.log(children)).catch(err => console.log(err));
2745
+ * ```
2746
+ */
2747
+ getChildWindows() {
2748
+ return this.wire.sendAction('get-child-windows', this.identity).then(({ payload }) => {
2749
+ const identityList = [];
2750
+ payload.data.forEach((winName) => {
2751
+ identityList.push({ uuid: this.identity.uuid, name: winName });
2752
+ });
2753
+ return this.windowListFromIdentityList(identityList);
2754
+ });
2755
+ }
2756
+ /**
2757
+ * Retrieves the JSON manifest that was used to create the application. Invokes the error callback
2758
+ * if the application was not created from a manifest.
2759
+ *
2760
+ * @example
2761
+ *
2762
+ * ```js
2763
+ * async function getManifest() {
2764
+ * const app = await fin.Application.getCurrent();
2765
+ * return await app.getManifest();
2766
+ * }
2767
+ *
2768
+ * getManifest().then(manifest => console.log(manifest)).catch(err => console.log(err));
2769
+ * ```
2770
+ */
2771
+ getManifest() {
2772
+ return this.wire.sendAction('get-application-manifest', this.identity).then(({ payload }) => payload.data);
2773
+ }
2774
+ /**
2775
+ * Retrieves UUID of the application that launches this application. Invokes the error callback
2776
+ * if the application was created from a manifest.
2777
+ *
2778
+ * @example
2779
+ *
2780
+ * ```js
2781
+ * async function getParentUuid() {
2782
+ * const app = await fin.Application.start({
2783
+ * uuid: 'app-1',
2784
+ * name: 'myApp',
2785
+ * url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.getParentUuid.html',
2786
+ * autoShow: true
2787
+ * });
2788
+ * return await app.getParentUuid();
2789
+ * }
2790
+ *
2791
+ * getParentUuid().then(parentUuid => console.log(parentUuid)).catch(err => console.log(err));
2792
+ * ```
2793
+ */
2794
+ getParentUuid() {
2795
+ return this.wire.sendAction('get-parent-application', this.identity).then(({ payload }) => payload.data);
2796
+ }
2797
+ /**
2798
+ * Retrieves current application's shortcut configuration.
2799
+ *
2800
+ * @example
2801
+ *
2802
+ * ```js
2803
+ * async function getShortcuts() {
2804
+ * const app = await fin.Application.wrap({ uuid: 'testapp' });
2805
+ * return await app.getShortcuts();
2806
+ * }
2807
+ * getShortcuts().then(config => console.log(config)).catch(err => console.log(err));
2808
+ * ```
2809
+ */
2810
+ getShortcuts() {
2811
+ return this.wire.sendAction('get-shortcuts', this.identity).then(({ payload }) => payload.data);
2812
+ }
2813
+ /**
2814
+ * Retrieves current application's views.
2815
+ * @experimental
2816
+ *
2817
+ * @example
2818
+ *
2819
+ * ```js
2820
+ * async function getViews() {
2821
+ * const app = await fin.Application.getCurrent();
2822
+ * return await app.getViews();
2823
+ * }
2824
+ * getViews().then(views => console.log(views)).catch(err => console.log(err));
2825
+ * ```
2826
+ */
2827
+ async getViews() {
2828
+ const { payload } = await this.wire.sendAction('application-get-views', this.identity);
2829
+ return payload.data.map((id) => new view_1.View(this.wire, id));
2830
+ }
2831
+ /**
2832
+ * Returns the current zoom level of the application.
2833
+ *
2834
+ * @example
2835
+ *
2836
+ * ```js
2837
+ * async function getZoomLevel() {
2838
+ * const app = await fin.Application.getCurrent();
2839
+ * return await app.getZoomLevel();
2840
+ * }
2841
+ *
2842
+ * getZoomLevel().then(zoomLevel => console.log(zoomLevel)).catch(err => console.log(err));
2843
+ * ```
2844
+ */
2845
+ getZoomLevel() {
2846
+ return this.wire.sendAction('get-application-zoom-level', this.identity).then(({ payload }) => payload.data);
2847
+ }
2848
+ /**
2849
+ * Returns an instance of the main Window of the application
2850
+ *
2851
+ * @example
2852
+ *
2853
+ * ```js
2854
+ * async function getWindow() {
2855
+ * const app = await fin.Application.start({
2856
+ * uuid: 'app-1',
2857
+ * name: 'myApp',
2858
+ * url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.getWindow.html',
2859
+ * autoShow: true
2860
+ * });
2861
+ * return await app.getWindow();
2862
+ * }
2863
+ *
2864
+ * getWindow().then(win => {
2865
+ * win.showAt(0, 400);
2866
+ * win.flash();
2867
+ * }).catch(err => console.log(err));
2868
+ * ```
2869
+ */
2870
+ getWindow() {
2871
+ this.wire.sendAction('application-get-window', this.identity).catch((e) => {
2872
+ // we do not want to expose this error, just continue if this analytics-only call fails
2873
+ });
2874
+ return Promise.resolve(this.window);
2875
+ }
2876
+ /**
2877
+ * Manually registers a user with the licensing service. The only data sent by this call is userName and appName.
2878
+ * @param userName - username to be passed to the RVM.
2879
+ * @param appName - app name to be passed to the RVM.
2880
+ *
2881
+ * @example
2882
+ *
2883
+ * ```js
2884
+ * async function registerUser() {
2885
+ * const app = await fin.Application.getCurrent();
2886
+ * return await app.registerUser('user', 'myApp');
2887
+ * }
2888
+ *
2889
+ * registerUser().then(() => console.log('Successfully registered the user')).catch(err => console.log(err));
2890
+ * ```
2891
+ */
2892
+ registerUser(userName, appName) {
2893
+ return this.wire.sendAction('register-user', { userName, appName, ...this.identity }).then(() => undefined);
2894
+ }
2895
+ /**
2896
+ * Removes the application’s icon from the tray.
2897
+ *
2898
+ * @example
2899
+ *
2900
+ * ```js
2901
+ * async function removeTrayIcon() {
2902
+ * const app = await fin.Application.getCurrent();
2903
+ * return await app.removeTrayIcon();
2904
+ * }
2905
+ *
2906
+ * removeTrayIcon().then(() => console.log('Removed the tray icon.')).catch(err => console.log(err));
2907
+ * ```
2908
+ */
2909
+ removeTrayIcon() {
2910
+ return this.wire.sendAction('remove-tray-icon', this.identity).then(() => undefined);
2911
+ }
2912
+ /**
2913
+ * Restarts the application.
2914
+ *
2915
+ * @example
2916
+ *
2917
+ * ```js
2918
+ * async function restartApp() {
2919
+ * const app = await fin.Application.getCurrent();
2920
+ * return await app.restart();
2921
+ * }
2922
+ * restartApp().then(() => console.log('Application restarted')).catch(err => console.log(err));
2923
+ * ```
2924
+ */
2925
+ restart() {
2926
+ return this.wire.sendAction('restart-application', this.identity).then(() => undefined);
2927
+ }
2928
+ /**
2929
+ * DEPRECATED method to run the application.
2930
+ * Needed when starting application via {@link Application.create}, but NOT needed when starting via {@link Application.start}.
2931
+ *
2932
+ * @example
2933
+ *
2934
+ * ```js
2935
+ * async function run() {
2936
+ * const app = await fin.Application.create({
2937
+ * name: 'myApp',
2938
+ * uuid: 'app-1',
2939
+ * url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.run.html',
2940
+ * autoShow: true
2941
+ * });
2942
+ * await app.run();
2943
+ * }
2944
+ * run().then(() => console.log('Application is running')).catch(err => console.log(err));
2945
+ * ```
2946
+ *
2947
+ * @ignore
2948
+ */
2949
+ run() {
2950
+ console.warn('Deprecation Warning: Application.run is deprecated Please use fin.Application.start');
2951
+ this.wire.sendAction('application-run', this.identity).catch((e) => {
2952
+ // we do not want to expose this error, just continue if this analytics-only call fails
2953
+ });
2954
+ return this._run();
2955
+ }
2956
+ _run(opts = {}) {
2957
+ return this.wire
2958
+ .sendAction('run-application', {
2959
+ manifestUrl: this._manifestUrl,
2960
+ opts,
2961
+ ...this.identity
2962
+ })
2963
+ .then(() => undefined);
2964
+ }
2965
+ /**
2966
+ * Instructs the RVM to schedule one restart of the application.
2967
+ *
2968
+ * @example
2969
+ *
2970
+ * ```js
2971
+ * async function scheduleRestart() {
2972
+ * const app = await fin.Application.getCurrent();
2973
+ * return await app.scheduleRestart();
2974
+ * }
2975
+ *
2976
+ * scheduleRestart().then(() => console.log('Application is scheduled to restart')).catch(err => console.log(err));
2977
+ * ```
2978
+ */
2979
+ scheduleRestart() {
2980
+ return this.wire.sendAction('relaunch-on-close', this.identity).then(() => undefined);
2981
+ }
2982
+ /**
2983
+ * Sends a message to the RVM to upload the application's logs. On success,
2984
+ * an object containing logId is returned.
2985
+ *
2986
+ * @example
2987
+ *
2988
+ * ```js
2989
+ * async function sendLog() {
2990
+ * const app = await fin.Application.getCurrent();
2991
+ * return await app.sendApplicationLog();
2992
+ * }
2993
+ *
2994
+ * sendLog().then(info => console.log(info.logId)).catch(err => console.log(err));
2995
+ * ```
2996
+ */
2997
+ async sendApplicationLog() {
2998
+ const { payload } = await this.wire.sendAction('send-application-log', this.identity);
2999
+ return payload.data;
3000
+ }
3001
+ /**
3002
+ * Sets or removes a custom JumpList for the application. Only applicable in Windows OS.
3003
+ * If categories is null the previously set custom JumpList (if any) will be replaced by the standard JumpList for the app (managed by Windows).
3004
+ *
3005
+ * Note: If the "name" property is omitted it defaults to "tasks".
3006
+ * @param jumpListCategories An array of JumpList Categories to populate. If null, remove any existing JumpList configuration and set to Windows default.
3007
+ *
3008
+ *
3009
+ * @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).
3010
+ *
3011
+ * The bottommost item in the jumplist will always be an item pointing to the current app. Its name is taken from the manifest's
3012
+ * **` shortcut.name `** and uses **` shortcut.company `** as a fallback. Clicking that item will launch the app from its current manifest.
3013
+ *
3014
+ * Note: If the "name" property is omitted it defaults to "tasks".
3015
+ *
3016
+ * Note: Window OS caches jumplists icons, therefore an icon change might only be visible after the cache is removed or the
3017
+ * uuid or shortcut.name is changed.
3018
+ *
3019
+ * @example
3020
+ *
3021
+ * ```js
3022
+ * const app = fin.Application.getCurrentSync();
3023
+ * const appName = 'My App';
3024
+ * const jumpListConfig = [ // array of JumpList categories
3025
+ * {
3026
+ * // has no name and no type so `type` is assumed to be "tasks"
3027
+ * items: [ // array of JumpList items
3028
+ * {
3029
+ * type: 'task',
3030
+ * title: `Launch ${appName}`,
3031
+ * description: `Runs ${appName} with the default configuration`,
3032
+ * deepLink: 'fins://path.to/app/manifest.json',
3033
+ * iconPath: 'https://path.to/app/icon.ico',
3034
+ * iconIndex: 0
3035
+ * },
3036
+ * { type: 'separator' },
3037
+ * {
3038
+ * type: 'task',
3039
+ * title: `Restore ${appName}`,
3040
+ * description: 'Restore to last configuration',
3041
+ * deepLink: 'fins://path.to/app/manifest.json?$$use-last-configuration=true',
3042
+ * iconPath: 'https://path.to/app/icon.ico',
3043
+ * iconIndex: 0
3044
+ * },
3045
+ * ]
3046
+ * },
3047
+ * {
3048
+ * name: 'Tools',
3049
+ * items: [ // array of JumpList items
3050
+ * {
3051
+ * type: 'task',
3052
+ * title: 'Tool A',
3053
+ * description: 'Runs Tool A',
3054
+ * deepLink: 'fins://path.to/tool-a/manifest.json',
3055
+ * iconPath: 'https://path.to/tool-a/icon.ico',
3056
+ * iconIndex: 0
3057
+ * },
3058
+ * {
3059
+ * type: 'task',
3060
+ * title: 'Tool B',
3061
+ * description: 'Runs Tool B',
3062
+ * deepLink: 'fins://path.to/tool-b/manifest.json',
3063
+ * iconPath: 'https://path.to/tool-b/icon.ico',
3064
+ * iconIndex: 0
3065
+ * }]
3066
+ * }
3067
+ * ];
3068
+ *
3069
+ * app.setJumpList(jumpListConfig).then(() => console.log('JumpList applied')).catch(e => console.log(`JumpList failed to apply: ${e.toString()}`));
3070
+ * ```
3071
+ *
3072
+ * To handle deeplink args:
3073
+ * ```js
3074
+ * function handleUseLastConfiguration() {
3075
+ * // this handler is called when the app is being launched
3076
+ * app.on('run-requested', event => {
3077
+ * if(event.userAppConfigArgs['use-last-configuration']) {
3078
+ * // your logic here
3079
+ * }
3080
+ * });
3081
+ * // this handler is called when the app was already running when the launch was requested
3082
+ * fin.desktop.main(function(args) {
3083
+ * if(args && args['use-last-configuration']) {
3084
+ * // your logic here
3085
+ * }
3086
+ * });
3087
+ * }
3088
+ * ```
3089
+ */
3090
+ async setJumpList(jumpListCategories) {
3091
+ await this.wire.sendAction('set-jump-list', { config: jumpListCategories, ...this.identity });
3092
+ }
3093
+ /**
3094
+ * Adds a customizable icon in the system tray. To listen for a click on the icon use the `tray-icon-clicked` event.
3095
+ * @param icon Image URL or base64 encoded string to be used as the icon
3096
+ *
3097
+ * @example
3098
+ *
3099
+ * ```js
3100
+ * const imageUrl = "http://cdn.openfin.co/assets/testing/icons/circled-digit-one.png";
3101
+ * const base64EncodedImage = "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAIAQMAAAD+wSzIAAAABlBMVEX\
3102
+ * ///+/v7+jQ3Y5AAAADklEQVQI12P4AIX8EAgALgAD/aNpbtEAAAAASUVORK5CYII";
3103
+ * const dataURL = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DH\
3104
+ * xgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==";
3105
+ *
3106
+ * async function setTrayIcon(icon) {
3107
+ * const app = await fin.Application.getCurrent();
3108
+ * return await app.setTrayIcon(icon);
3109
+ * }
3110
+ *
3111
+ * // use image url to set tray icon
3112
+ * setTrayIcon(imageUrl).then(() => console.log('Setting tray icon')).catch(err => console.log(err));
3113
+ *
3114
+ * // use base64 encoded string to set tray icon
3115
+ * setTrayIcon(base64EncodedImage).then(() => console.log('Setting tray icon')).catch(err => console.log(err));
3116
+ *
3117
+ * // use a dataURL to set tray icon
3118
+ * setTrayIcon(dataURL).then(() => console.log('Setting tray icon')).catch(err => console.log(err));
3119
+ * ```
3120
+ */
3121
+ setTrayIcon(icon) {
3122
+ return this.wire
3123
+ .sendAction('set-tray-icon', {
3124
+ enabledIcon: icon,
3125
+ ...this.identity
3126
+ })
3127
+ .then(() => undefined);
3128
+ }
3129
+ /**
3130
+ * Sets new application's shortcut configuration. Windows only.
3131
+ * @param config New application's shortcut configuration.
3132
+ *
3133
+ * @remarks Application has to be launched with a manifest and has to have shortcut configuration (icon url, name, etc.) in its manifest
3134
+ * to be able to change shortcut states.
3135
+ *
3136
+ * @example
3137
+ *
3138
+ * ```js
3139
+ * async function setShortcuts(config) {
3140
+ * const app = await fin.Application.getCurrent();
3141
+ * return app.setShortcuts(config);
3142
+ * }
3143
+ *
3144
+ * setShortcuts({
3145
+ * desktop: true,
3146
+ * startMenu: false,
3147
+ * systemStartup: true
3148
+ * }).then(() => console.log('Shortcuts are set.')).catch(err => console.log(err));
3149
+ * ```
3150
+ */
3151
+ setShortcuts(config) {
3152
+ return this.wire.sendAction('set-shortcuts', { data: config, ...this.identity }).then(() => undefined);
3153
+ }
3154
+ /**
3155
+ * Sets the query string in all shortcuts for this app. Requires RVM 5.5+.
3156
+ * @param queryString The new query string for this app's shortcuts.
3157
+ *
3158
+ * @example
3159
+ *
3160
+ * ```js
3161
+ * const newQueryArgs = 'arg=true&arg2=false';
3162
+ * const app = await fin.Application.getCurrent();
3163
+ * try {
3164
+ * await app.setShortcutQueryParams(newQueryArgs);
3165
+ * } catch(err) {
3166
+ * console.error(err)
3167
+ * }
3168
+ * ```
3169
+ */
3170
+ async setShortcutQueryParams(queryString) {
3171
+ await this.wire.sendAction('set-shortcut-query-args', { data: queryString, ...this.identity });
3172
+ }
3173
+ /**
3174
+ * Sets the zoom level of the application. The original size is 0 and each increment above or below represents zooming 20%
3175
+ * larger or smaller to default limits of 300% and 50% of original size, respectively.
3176
+ * @param level The zoom level
3177
+ *
3178
+ * @example
3179
+ *
3180
+ * ```js
3181
+ * async function setZoomLevel(number) {
3182
+ * const app = await fin.Application.getCurrent();
3183
+ * return await app.setZoomLevel(number);
3184
+ * }
3185
+ *
3186
+ * setZoomLevel(5).then(() => console.log('Setting a zoom level')).catch(err => console.log(err));
3187
+ * ```
3188
+ */
3189
+ setZoomLevel(level) {
3190
+ return this.wire.sendAction('set-application-zoom-level', { level, ...this.identity }).then(() => undefined);
3191
+ }
3192
+ /**
3193
+ * Sets a username to correlate with App Log Management.
3194
+ * @param username Username to correlate with App's Log.
3195
+ *
3196
+ * @example
3197
+ *
3198
+ * ```js
3199
+ * async function setAppLogUser() {
3200
+ * const app = await fin.Application.getCurrent();
3201
+ * return await app.setAppLogUsername('username');
3202
+ * }
3203
+ *
3204
+ * setAppLogUser().then(() => console.log('Success')).catch(err => console.log(err));
3205
+ *
3206
+ * ```
3207
+ */
3208
+ async setAppLogUsername(username) {
3209
+ await this.wire.sendAction('set-app-log-username', { data: username, ...this.identity });
3210
+ }
3211
+ /**
3212
+ * Retrieves information about the system tray. If the system tray is not set, it will throw an error message.
3213
+ * @remarks The only information currently returned is the position and dimensions.
3214
+ *
3215
+ * @example
3216
+ *
3217
+ * ```js
3218
+ * async function getTrayIconInfo() {
3219
+ * const app = await fin.Application.wrap({ uuid: 'testapp' });
3220
+ * return await app.getTrayIconInfo();
3221
+ * }
3222
+ * getTrayIconInfo().then(info => console.log(info)).catch(err => console.log(err));
3223
+ * ```
3224
+ */
3225
+ getTrayIconInfo() {
3226
+ return this.wire.sendAction('get-tray-icon-info', this.identity).then(({ payload }) => payload.data);
3227
+ }
3228
+ /**
3229
+ * Checks if the application has an associated tray icon.
3230
+ *
3231
+ * @example
3232
+ *
3233
+ * ```js
3234
+ * const app = await fin.Application.wrap({ uuid: 'testapp' });
3235
+ * const hasTrayIcon = await app.hasTrayIcon();
3236
+ * console.log(hasTrayIcon);
3237
+ * ```
3238
+ */
3239
+ hasTrayIcon() {
3240
+ return this.wire.sendAction('has-tray-icon', this.identity).then(({ payload }) => payload.data);
3241
+ }
3242
+ /**
3243
+ * Closes the application by terminating its process.
3244
+ *
3245
+ * @example
3246
+ *
3247
+ * ```js
3248
+ * async function terminateApp() {
3249
+ * const app = await fin.Application.getCurrent();
3250
+ * return await app.terminate();
3251
+ * }
3252
+ * terminateApp().then(() => console.log('Application terminated')).catch(err => console.log(err));
3253
+ * ```
3254
+ */
3255
+ terminate() {
3256
+ return this.wire.sendAction('terminate-application', this.identity).then(() => undefined);
3257
+ }
3258
+ /**
3259
+ * Waits for a hanging application. This method can be called in response to an application
3260
+ * "not-responding" to allow the application to continue and to generate another "not-responding"
3261
+ * message after a certain period of time.
3262
+ *
3263
+ * @ignore
3264
+ */
3265
+ wait() {
3266
+ return this.wire.sendAction('wait-for-hung-application', this.identity).then(() => undefined);
3267
+ }
3268
+ /**
3269
+ * Retrieves information about the application.
3270
+ *
3271
+ * @remarks If the application was not launched from a manifest, the call will return the closest parent application `manifest`
3272
+ * and `manifestUrl`. `initialOptions` shows the parameters used when launched programmatically, or the `startup_app` options
3273
+ * if launched from manifest. The `parentUuid` will be the uuid of the immediate parent (if applicable).
3274
+ *
3275
+ * @example
3276
+ *
3277
+ * ```js
3278
+ * async function getInfo() {
3279
+ * const app = await fin.Application.getCurrent();
3280
+ * return await app.getInfo();
3281
+ * }
3282
+ *
3283
+ * getInfo().then(info => console.log(info)).catch(err => console.log(err));
3284
+ * ```
3285
+ */
3286
+ getInfo() {
3287
+ return this.wire.sendAction('get-info', this.identity).then(({ payload }) => payload.data);
3288
+ }
3289
+ /**
3290
+ * Retrieves all process information for entities (windows and views) associated with an application.
3291
+ *
3292
+ * @example
3293
+ * ```js
3294
+ * const app = await fin.Application.getCurrent();
3295
+ * const processInfo = await app.getProcessInfo();
3296
+ * ```
3297
+ * @experimental
3298
+ */
3299
+ async getProcessInfo() {
3300
+ const { payload: { data } } = await this.wire.sendAction('application-get-process-info', this.identity);
3301
+ return data;
3302
+ }
3303
+ /**
3304
+ * Sets file auto download location. It's only allowed in the same application.
3305
+ *
3306
+ * Note: This method is restricted by default and must be enabled via
3307
+ * <a href="https://developers.openfin.co/docs/api-security">API security settings</a>.
3308
+ * @param downloadLocation file auto download location
3309
+ *
3310
+ * @throws if setting file auto download location on different applications.
3311
+ * @example
3312
+ *
3313
+ * ```js
3314
+ * const downloadLocation = 'C:\\dev\\temp';
3315
+ * const app = await fin.Application.getCurrent();
3316
+ * try {
3317
+ * await app.setFileDownloadLocation(downloadLocation);
3318
+ * console.log('File download location is set');
3319
+ * } catch(err) {
3320
+ * console.error(err)
3321
+ * }
3322
+ * ```
3323
+ */
3324
+ async setFileDownloadLocation(downloadLocation) {
3325
+ const { name } = this.wire.me;
3326
+ const entityIdentity = { uuid: this.identity.uuid, name };
3327
+ await this.wire.sendAction('set-file-download-location', { ...entityIdentity, downloadLocation });
3328
+ }
3329
+ /**
3330
+ * 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.
3331
+ *
3332
+ * Note: This method is restricted by default and must be enabled via
3333
+ * <a href="https://developers.openfin.co/docs/api-security">API security settings</a>.
3334
+ *
3335
+ * @throws if getting file auto download location on different applications.
3336
+ * @example
3337
+ *
3338
+ * ```js
3339
+ * const app = await fin.Application.getCurrent();
3340
+ * const fileDownloadDir = await app.getFileDownloadLocation();
3341
+ * ```
3342
+ */
3343
+ async getFileDownloadLocation() {
3344
+ const { payload: { data } } = await this.wire.sendAction('get-file-download-location', this.identity);
3345
+ return data;
3346
+ }
3347
+ /**
3348
+ * Shows a menu on the tray icon. Use with tray-icon-clicked event.
3349
+ * @param options
3350
+ * @typeParam Data User-defined shape for data returned upon menu item click. Should be a
3351
+ * [union](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types)
3352
+ * of all possible data shapes for the entire menu, and the click handler should process
3353
+ * these with a "reducer" pattern.
3354
+ * @throws if the application has no tray icon set
3355
+ * @throws if the system tray is currently hidden
3356
+ * @example
3357
+ *
3358
+ * ```js
3359
+ * const iconUrl = 'http://cdn.openfin.co/assets/testing/icons/circled-digit-one.png';
3360
+ * const app = fin.Application.getCurrentSync();
3361
+ *
3362
+ * await app.setTrayIcon(iconUrl);
3363
+ *
3364
+ * const template = [
3365
+ * {
3366
+ * label: 'Menu Item 1',
3367
+ * data: 'hello from item 1'
3368
+ * },
3369
+ * { type: 'separator' },
3370
+ * {
3371
+ * label: 'Menu Item 2',
3372
+ * type: 'checkbox',
3373
+ * checked: true,
3374
+ * data: 'The user clicked the checkbox'
3375
+ * },
3376
+ * {
3377
+ * label: 'see more',
3378
+ * enabled: false,
3379
+ * submenu: [
3380
+ * { label: 'submenu 1', data: 'hello from submenu' }
3381
+ * ]
3382
+ * }
3383
+ * ];
3384
+ *
3385
+ * app.addListener('tray-icon-clicked', (event) => {
3386
+ * // right-click
3387
+ * if (event.button === 2) {
3388
+ * app.showTrayIconPopupMenu({ template }).then(r => {
3389
+ * if (r.result === 'closed') {
3390
+ * console.log('nothing happened');
3391
+ * } else {
3392
+ * console.log(r.data);
3393
+ * }
3394
+ * });
3395
+ * }
3396
+ * });
3397
+ * ```
3398
+ */
3399
+ async showTrayIconPopupMenu(options) {
3400
+ const { name } = this.wire.me;
3401
+ const entityIdentity = { uuid: this.identity.uuid, name };
3402
+ const { payload } = await this.wire.sendAction('show-tray-icon-popup-menu', { ...entityIdentity, options });
3403
+ return payload.data;
3404
+ }
3405
+ /**
3406
+ * Closes the tray icon menu.
3407
+ *
3408
+ * @throws if the application has no tray icon set
3409
+ * @example
3410
+ *
3411
+ * ```js
3412
+ * const app = fin.Application.getCurrentSync();
3413
+ *
3414
+ * await app.closeTrayIconPopupMenu();
3415
+ * ```
3416
+ */
3417
+ async closeTrayIconPopupMenu() {
3418
+ const { name } = this.wire.me;
3419
+ const entityIdentity = { uuid: this.identity.uuid, name };
3420
+ await this.wire.sendAction('close-tray-icon-popup-menu', { ...entityIdentity });
3421
+ }
3422
+ }
3423
+ Instance$6.Application = Application;
3424
+
3425
+ Object.defineProperty(Factory$7, "__esModule", { value: true });
3426
+ Factory$7.ApplicationModule = void 0;
3427
+ const base_1$j = base;
3428
+ const validate_1$4 = validate;
3429
+ const Instance_1$5 = Instance$6;
3430
+ /**
3431
+ * Static namespace for OpenFin API methods that interact with the {@link Application} class, available under `fin.Application`.
3432
+ */
3433
+ class ApplicationModule extends base_1$j.Base {
3434
+ /**
3435
+ * Asynchronously returns an API handle for the given Application identity.
3436
+ *
3437
+ * @remarks Wrapping an Application identity that does not yet exist will *not* throw an error, and instead
3438
+ * returns a stub object that cannot yet perform rendering tasks. This can be useful for plumbing eventing
3439
+ * for an Application throughout its entire lifecycle.
3440
+ *
3441
+ * @example
3442
+ *
3443
+ * ```js
3444
+ * fin.Application.wrap({ uuid: 'testapp' })
3445
+ * .then(app => app.isRunning())
3446
+ * .then(running => console.log('Application is running: ' + running))
3447
+ * .catch(err => console.log(err));
3448
+ * ```
3449
+ *
3450
+ */
3451
+ async wrap(identity) {
3452
+ this.wire.sendAction('wrap-application').catch((e) => {
3453
+ // we do not want to expose this error, just continue if this analytics-only call fails
3454
+ });
3455
+ const errorMsg = (0, validate_1$4.validateIdentity)(identity);
3456
+ if (errorMsg) {
3457
+ throw new Error(errorMsg);
3458
+ }
3459
+ return new Instance_1$5.Application(this.wire, identity);
3460
+ }
3461
+ /**
3462
+ * Synchronously returns an API handle for the given Application identity.
3463
+ *
3464
+ * @remarks Wrapping an Application identity that does not yet exist will *not* throw an error, and instead
3465
+ * returns a stub object that cannot yet perform rendering tasks. This can be useful for plumbing eventing
3466
+ * for an Aplication throughout its entire lifecycle.
3467
+ *
3468
+ * @example
3469
+ *
3470
+ * ```js
3471
+ * const app = fin.Application.wrapSync({ uuid: 'testapp' });
3472
+ * await app.close();
3473
+ * ```
3474
+ *
3475
+ */
3476
+ wrapSync(identity) {
3477
+ this.wire.sendAction('wrap-application-sync').catch((e) => {
3478
+ // we do not want to expose this error, just continue if this analytics-only call fails
3479
+ });
3480
+ const errorMsg = (0, validate_1$4.validateIdentity)(identity);
3481
+ if (errorMsg) {
3482
+ throw new Error(errorMsg);
3483
+ }
3484
+ return new Instance_1$5.Application(this.wire, identity);
3485
+ }
3486
+ async _create(appOptions) {
3487
+ // set defaults:
3488
+ if (appOptions.waitForPageLoad === undefined) {
3489
+ appOptions.waitForPageLoad = false;
3490
+ }
3491
+ if (appOptions.autoShow === undefined && appOptions.isPlatformController === undefined) {
3492
+ appOptions.autoShow = true;
3493
+ }
3494
+ await this.wire.sendAction('create-application', appOptions);
3495
+ return this.wrap({ uuid: appOptions.uuid });
3496
+ }
3497
+ /**
3498
+ * DEPRECATED method to create a new Application. Use {@link Application.ApplicationModule.start Application.start} instead.
3499
+ *
3500
+ * @example
3501
+ *
3502
+ * ```js
3503
+ * async function createApp() {
3504
+ * const app = await fin.Application.create({
3505
+ * name: 'myApp',
3506
+ * uuid: 'app-3',
3507
+ * url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.create.html',
3508
+ * autoShow: true
3509
+ * });
3510
+ * await app.run();
3511
+ * }
3512
+ *
3513
+ * createApp().then(() => console.log('Application is created')).catch(err => console.log(err));
3514
+ * ```
3515
+ *
3516
+ * @ignore
3517
+ */
3518
+ create(appOptions) {
3519
+ console.warn('Deprecation Warning: fin.Application.create is deprecated. Please use fin.Application.start');
3520
+ this.wire.sendAction('application-create').catch((e) => {
3521
+ // we do not want to expose this error, just continue if this analytics-only call fails
3522
+ });
3523
+ return this._create(appOptions);
3524
+ }
3525
+ /**
3526
+ * Creates and starts a new Application.
3527
+ *
3528
+ * @example
3529
+ *
3530
+ * ```js
3531
+ * async function start() {
3532
+ * return fin.Application.start({
3533
+ * name: 'app-1',
3534
+ * uuid: 'app-1',
3535
+ * url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.start.html',
3536
+ * autoShow: true
3537
+ * });
3538
+ * }
3539
+ * start().then(() => console.log('Application is running')).catch(err => console.log(err));
3540
+ * ```
3541
+ *
3542
+ */
3543
+ async start(appOptions) {
3544
+ this.wire.sendAction('start-application').catch((e) => {
3545
+ // we do not want to expose this error, just continue if this analytics-only call fails
3546
+ });
3547
+ const app = await this._create(appOptions);
3548
+ await this.wire.sendAction('run-application', { uuid: appOptions.uuid });
3549
+ return app;
3550
+ }
3551
+ /**
3552
+ * Asynchronously starts a batch of applications given an array of application identifiers and manifestUrls.
3553
+ * Returns once the RVM is finished attempting to launch the applications.
3554
+ * @param opts - Parameters that the RVM will use.
3555
+ *
3556
+ * @example
3557
+ *
3558
+ * ```js
3559
+ *
3560
+ * const applicationInfoArray = [
3561
+ * {
3562
+ * "uuid": 'App-1',
3563
+ * "manifestUrl": 'http://localhost:5555/app1.json',
3564
+ * },
3565
+ * {
3566
+ * "uuid": 'App-2',
3567
+ * "manifestUrl": 'http://localhost:5555/app2.json',
3568
+ * },
3569
+ * {
3570
+ * "uuid": 'App-3',
3571
+ * "manifestUrl": 'http://localhost:5555/app3.json',
3572
+ * }
3573
+ * ]
3574
+ *
3575
+ * fin.Application.startManyManifests(applicationInfoArray)
3576
+ * .then(() => {
3577
+ * console.log('RVM has finished launching the application list.');
3578
+ * })
3579
+ * .catch((err) => {
3580
+ * console.log(err);
3581
+ * })
3582
+ * ```
3583
+ *
3584
+ * @experimental
3585
+ */
3586
+ async startManyManifests(applications, opts) {
3587
+ return this.wire.sendAction('run-applications', { applications, opts }).then(() => undefined);
3588
+ }
3589
+ /**
3590
+ * Asynchronously returns an Application object that represents the current application
3591
+ *
3592
+ * @example
3593
+ *
3594
+ * ```js
3595
+ * async function isCurrentAppRunning () {
3596
+ * const app = await fin.Application.getCurrent();
3597
+ * return app.isRunning();
3598
+ * }
3599
+ *
3600
+ * isCurrentAppRunning().then(running => {
3601
+ * console.log(`Current app is running: ${running}`);
3602
+ * }).catch(err => {
3603
+ * console.error(err);
3604
+ * });
3605
+ *
3606
+ * ```
3607
+ */
3608
+ getCurrent() {
3609
+ this.wire.sendAction('get-current-application').catch((e) => {
3610
+ // we do not want to expose this error, just continue if this analytics-only call fails
3611
+ });
3612
+ return this.wrap({ uuid: this.wire.me.uuid });
3613
+ }
3614
+ /**
3615
+ * Synchronously returns an Application object that represents the current application
3616
+ *
3617
+ * @example
3618
+ *
3619
+ * ```js
3620
+ * async function isCurrentAppRunning () {
3621
+ * const app = fin.Application.getCurrentSync();
3622
+ * return app.isRunning();
3623
+ * }
3624
+ *
3625
+ * isCurrentAppRunning().then(running => {
3626
+ * console.log(`Current app is running: ${running}`);
3627
+ * }).catch(err => {
3628
+ * console.error(err);
3629
+ * });
3630
+ *
3631
+ * ```
3632
+ */
3633
+ getCurrentSync() {
3634
+ this.wire.sendAction('get-current-application-sync').catch((e) => {
3635
+ // we do not want to expose this error, just continue if this analytics-only call fails
3636
+ });
3637
+ return this.wrapSync({ uuid: this.wire.me.uuid });
3638
+ }
3639
+ /**
3640
+ * Retrieves application's manifest and returns a running instance of the application.
3641
+ * @param manifestUrl - The URL of app's manifest.
3642
+ * @param opts - Parameters that the RVM will use.
3643
+ *
3644
+ * @example
3645
+ *
3646
+ * ```js
3647
+ * fin.Application.startFromManifest('http://localhost:5555/app.json').then(app => console.log('App is running')).catch(err => console.log(err));
3648
+ *
3649
+ * // For a local manifest file:
3650
+ * fin.Application.startFromManifest('file:///C:/somefolder/app.json').then(app => console.log('App is running')).catch(err => console.log(err));
3651
+ * ```
3652
+ */
3653
+ async startFromManifest(manifestUrl, opts) {
3654
+ this.wire.sendAction('application-start-from-manifest').catch((e) => {
3655
+ // we do not want to expose this error, just continue if this analytics-only call fails
3656
+ });
3657
+ const app = await this._createFromManifest(manifestUrl);
3658
+ // @ts-expect-error using private method without warning.
3659
+ await app._run(opts); // eslint-disable-line no-underscore-dangle
3660
+ return app;
3661
+ }
3662
+ /**
3663
+ * @deprecated Use {@link Application.ApplicationModule.startFromManifest Application.startFromManifest} instead.
3664
+ * Retrieves application's manifest and returns a wrapped application.
3665
+ * @param manifestUrl - The URL of app's manifest.
3666
+ * @param callback - called if the method succeeds.
3667
+ * @param errorCallback - called if the method fails. The reason for failure is passed as an argument.
3668
+ *
3669
+ * @example
3670
+ *
3671
+ * ```js
3672
+ * fin.Application.createFromManifest('http://localhost:5555/app.json').then(app => console.log(app)).catch(err => console.log(err));
3673
+ * ```
3674
+ * @ignore
3675
+ */
3676
+ createFromManifest(manifestUrl) {
3677
+ console.warn('Deprecation Warning: fin.Application.createFromManifest is deprecated. Please use fin.Application.startFromManifest');
3678
+ this.wire.sendAction('application-create-from-manifest').catch((e) => {
3679
+ // we do not want to expose this error, just continue if this analytics-only call fails
3680
+ });
3681
+ return this._createFromManifest(manifestUrl);
3682
+ }
3683
+ _createFromManifest(manifestUrl) {
3684
+ return this.wire
3685
+ .sendAction('get-application-manifest', { manifestUrl })
3686
+ .then(({ payload }) => {
3687
+ const uuid = payload.data.platform ? payload.data.platform.uuid : payload.data.startup_app.uuid;
3688
+ return this.wrap({ uuid });
3689
+ })
3690
+ .then((app) => {
3691
+ app._manifestUrl = manifestUrl; // eslint-disable-line no-underscore-dangle
3692
+ return app;
3693
+ });
3694
+ }
3430
3695
  }
3696
+ Factory$7.ApplicationModule = ApplicationModule;
3431
3697
 
3432
- var hasRequiredFactory$2;
3433
-
3434
- function requireFactory$2 () {
3435
- if (hasRequiredFactory$2) return Factory$7;
3436
- hasRequiredFactory$2 = 1;
3437
- Object.defineProperty(Factory$7, "__esModule", { value: true });
3438
- Factory$7.ApplicationModule = void 0;
3439
- const base_1 = base;
3440
- const validate_1 = validate;
3441
- const Instance_1 = requireInstance$1();
3698
+ (function (exports) {
3699
+ var __createBinding = (commonjsGlobal && commonjsGlobal.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3700
+ if (k2 === undefined) k2 = k;
3701
+ var desc = Object.getOwnPropertyDescriptor(m, k);
3702
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
3703
+ desc = { enumerable: true, get: function() { return m[k]; } };
3704
+ }
3705
+ Object.defineProperty(o, k2, desc);
3706
+ }) : (function(o, m, k, k2) {
3707
+ if (k2 === undefined) k2 = k;
3708
+ o[k2] = m[k];
3709
+ }));
3710
+ var __exportStar = (commonjsGlobal && commonjsGlobal.__exportStar) || function(m, exports) {
3711
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
3712
+ };
3713
+ Object.defineProperty(exports, "__esModule", { value: true });
3442
3714
  /**
3443
- * Static namespace for OpenFin API methods that interact with the {@link Application} class, available under `fin.Application`.
3715
+ * Entry points for the OpenFin `Application` API (`fin.Application`).
3716
+ *
3717
+ * * {@link ApplicationModule} contains static members of the `Application` API, accessible through `fin.Application`.
3718
+ * * {@link Application} describes an instance of an OpenFin Application, e.g. as returned by `fin.Application.getCurrent`.
3719
+ *
3720
+ * 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),
3721
+ * both of these were documented on the same page.
3722
+ *
3723
+ * @packageDocumentation
3444
3724
  */
3445
- class ApplicationModule extends base_1.Base {
3446
- /**
3447
- * Asynchronously returns an API handle for the given Application identity.
3448
- *
3449
- * @remarks Wrapping an Application identity that does not yet exist will *not* throw an error, and instead
3450
- * returns a stub object that cannot yet perform rendering tasks. This can be useful for plumbing eventing
3451
- * for an Application throughout its entire lifecycle.
3452
- *
3453
- * @example
3454
- *
3455
- * ```js
3456
- * fin.Application.wrap({ uuid: 'testapp' })
3457
- * .then(app => app.isRunning())
3458
- * .then(running => console.log('Application is running: ' + running))
3459
- * .catch(err => console.log(err));
3460
- * ```
3461
- *
3462
- */
3463
- async wrap(identity) {
3464
- this.wire.sendAction('wrap-application').catch((e) => {
3465
- // we do not want to expose this error, just continue if this analytics-only call fails
3466
- });
3467
- const errorMsg = (0, validate_1.validateIdentity)(identity);
3468
- if (errorMsg) {
3469
- throw new Error(errorMsg);
3470
- }
3471
- return new Instance_1.Application(this.wire, identity);
3472
- }
3473
- /**
3474
- * Synchronously returns an API handle for the given Application identity.
3475
- *
3476
- * @remarks Wrapping an Application identity that does not yet exist will *not* throw an error, and instead
3477
- * returns a stub object that cannot yet perform rendering tasks. This can be useful for plumbing eventing
3478
- * for an Aplication throughout its entire lifecycle.
3479
- *
3480
- * @example
3481
- *
3482
- * ```js
3483
- * const app = fin.Application.wrapSync({ uuid: 'testapp' });
3484
- * await app.close();
3485
- * ```
3486
- *
3487
- */
3488
- wrapSync(identity) {
3489
- this.wire.sendAction('wrap-application-sync').catch((e) => {
3490
- // we do not want to expose this error, just continue if this analytics-only call fails
3491
- });
3492
- const errorMsg = (0, validate_1.validateIdentity)(identity);
3493
- if (errorMsg) {
3494
- throw new Error(errorMsg);
3495
- }
3496
- return new Instance_1.Application(this.wire, identity);
3497
- }
3498
- async _create(appOptions) {
3499
- // set defaults:
3500
- if (appOptions.waitForPageLoad === undefined) {
3501
- appOptions.waitForPageLoad = false;
3502
- }
3503
- if (appOptions.autoShow === undefined && appOptions.isPlatformController === undefined) {
3504
- appOptions.autoShow = true;
3505
- }
3506
- await this.wire.sendAction('create-application', appOptions);
3507
- return this.wrap({ uuid: appOptions.uuid });
3508
- }
3509
- /**
3510
- * DEPRECATED method to create a new Application. Use {@link Application.ApplicationModule.start Application.start} instead.
3511
- *
3512
- * @example
3513
- *
3514
- * ```js
3515
- * async function createApp() {
3516
- * const app = await fin.Application.create({
3517
- * name: 'myApp',
3518
- * uuid: 'app-3',
3519
- * url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.create.html',
3520
- * autoShow: true
3521
- * });
3522
- * await app.run();
3523
- * }
3524
- *
3525
- * createApp().then(() => console.log('Application is created')).catch(err => console.log(err));
3526
- * ```
3527
- *
3528
- * @ignore
3529
- */
3530
- create(appOptions) {
3531
- console.warn('Deprecation Warning: fin.Application.create is deprecated. Please use fin.Application.start');
3532
- this.wire.sendAction('application-create').catch((e) => {
3533
- // we do not want to expose this error, just continue if this analytics-only call fails
3534
- });
3535
- return this._create(appOptions);
3536
- }
3537
- /**
3538
- * Creates and starts a new Application.
3539
- *
3540
- * @example
3541
- *
3542
- * ```js
3543
- * async function start() {
3544
- * return fin.Application.start({
3545
- * name: 'app-1',
3546
- * uuid: 'app-1',
3547
- * url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.start.html',
3548
- * autoShow: true
3549
- * });
3550
- * }
3551
- * start().then(() => console.log('Application is running')).catch(err => console.log(err));
3552
- * ```
3553
- *
3554
- */
3555
- async start(appOptions) {
3556
- this.wire.sendAction('start-application').catch((e) => {
3557
- // we do not want to expose this error, just continue if this analytics-only call fails
3558
- });
3559
- const app = await this._create(appOptions);
3560
- await this.wire.sendAction('run-application', { uuid: appOptions.uuid });
3561
- return app;
3562
- }
3563
- /**
3564
- * Asynchronously starts a batch of applications given an array of application identifiers and manifestUrls.
3565
- * Returns once the RVM is finished attempting to launch the applications.
3566
- * @param opts - Parameters that the RVM will use.
3567
- *
3568
- * @example
3569
- *
3570
- * ```js
3571
- *
3572
- * const applicationInfoArray = [
3573
- * {
3574
- * "uuid": 'App-1',
3575
- * "manifestUrl": 'http://localhost:5555/app1.json',
3576
- * },
3577
- * {
3578
- * "uuid": 'App-2',
3579
- * "manifestUrl": 'http://localhost:5555/app2.json',
3580
- * },
3581
- * {
3582
- * "uuid": 'App-3',
3583
- * "manifestUrl": 'http://localhost:5555/app3.json',
3584
- * }
3585
- * ]
3586
- *
3587
- * fin.Application.startManyManifests(applicationInfoArray)
3588
- * .then(() => {
3589
- * console.log('RVM has finished launching the application list.');
3590
- * })
3591
- * .catch((err) => {
3592
- * console.log(err);
3593
- * })
3594
- * ```
3595
- *
3596
- * @experimental
3597
- */
3598
- async startManyManifests(applications, opts) {
3599
- return this.wire.sendAction('run-applications', { applications, opts }).then(() => undefined);
3600
- }
3601
- /**
3602
- * Asynchronously returns an Application object that represents the current application
3603
- *
3604
- * @example
3605
- *
3606
- * ```js
3607
- * async function isCurrentAppRunning () {
3608
- * const app = await fin.Application.getCurrent();
3609
- * return app.isRunning();
3610
- * }
3611
- *
3612
- * isCurrentAppRunning().then(running => {
3613
- * console.log(`Current app is running: ${running}`);
3614
- * }).catch(err => {
3615
- * console.error(err);
3616
- * });
3617
- *
3618
- * ```
3619
- */
3620
- getCurrent() {
3621
- this.wire.sendAction('get-current-application').catch((e) => {
3622
- // we do not want to expose this error, just continue if this analytics-only call fails
3623
- });
3624
- return this.wrap({ uuid: this.wire.me.uuid });
3625
- }
3626
- /**
3627
- * Synchronously returns an Application object that represents the current application
3628
- *
3629
- * @example
3630
- *
3631
- * ```js
3632
- * async function isCurrentAppRunning () {
3633
- * const app = fin.Application.getCurrentSync();
3634
- * return app.isRunning();
3635
- * }
3636
- *
3637
- * isCurrentAppRunning().then(running => {
3638
- * console.log(`Current app is running: ${running}`);
3639
- * }).catch(err => {
3640
- * console.error(err);
3641
- * });
3642
- *
3643
- * ```
3644
- */
3645
- getCurrentSync() {
3646
- this.wire.sendAction('get-current-application-sync').catch((e) => {
3647
- // we do not want to expose this error, just continue if this analytics-only call fails
3648
- });
3649
- return this.wrapSync({ uuid: this.wire.me.uuid });
3650
- }
3651
- /**
3652
- * Retrieves application's manifest and returns a running instance of the application.
3653
- * @param manifestUrl - The URL of app's manifest.
3654
- * @param opts - Parameters that the RVM will use.
3655
- *
3656
- * @example
3657
- *
3658
- * ```js
3659
- * fin.Application.startFromManifest('http://localhost:5555/app.json').then(app => console.log('App is running')).catch(err => console.log(err));
3660
- *
3661
- * // For a local manifest file:
3662
- * fin.Application.startFromManifest('file:///C:/somefolder/app.json').then(app => console.log('App is running')).catch(err => console.log(err));
3663
- * ```
3664
- */
3665
- async startFromManifest(manifestUrl, opts) {
3666
- this.wire.sendAction('application-start-from-manifest').catch((e) => {
3667
- // we do not want to expose this error, just continue if this analytics-only call fails
3668
- });
3669
- const app = await this._createFromManifest(manifestUrl);
3670
- // @ts-expect-error using private method without warning.
3671
- await app._run(opts); // eslint-disable-line no-underscore-dangle
3672
- return app;
3673
- }
3674
- /**
3675
- * @deprecated Use {@link Application.ApplicationModule.startFromManifest Application.startFromManifest} instead.
3676
- * Retrieves application's manifest and returns a wrapped application.
3677
- * @param manifestUrl - The URL of app's manifest.
3678
- * @param callback - called if the method succeeds.
3679
- * @param errorCallback - called if the method fails. The reason for failure is passed as an argument.
3680
- *
3681
- * @example
3682
- *
3683
- * ```js
3684
- * fin.Application.createFromManifest('http://localhost:5555/app.json').then(app => console.log(app)).catch(err => console.log(err));
3685
- * ```
3686
- * @ignore
3687
- */
3688
- createFromManifest(manifestUrl) {
3689
- console.warn('Deprecation Warning: fin.Application.createFromManifest is deprecated. Please use fin.Application.startFromManifest');
3690
- this.wire.sendAction('application-create-from-manifest').catch((e) => {
3691
- // we do not want to expose this error, just continue if this analytics-only call fails
3692
- });
3693
- return this._createFromManifest(manifestUrl);
3694
- }
3695
- _createFromManifest(manifestUrl) {
3696
- return this.wire
3697
- .sendAction('get-application-manifest', { manifestUrl })
3698
- .then(({ payload }) => {
3699
- const uuid = payload.data.platform ? payload.data.platform.uuid : payload.data.startup_app.uuid;
3700
- return this.wrap({ uuid });
3701
- })
3702
- .then((app) => {
3703
- app._manifestUrl = manifestUrl; // eslint-disable-line no-underscore-dangle
3704
- return app;
3705
- });
3706
- }
3707
- }
3708
- Factory$7.ApplicationModule = ApplicationModule;
3709
- return Factory$7;
3710
- }
3711
-
3712
- var hasRequiredApplication;
3713
-
3714
- function requireApplication () {
3715
- if (hasRequiredApplication) return application;
3716
- hasRequiredApplication = 1;
3717
- (function (exports) {
3718
- var __createBinding = (commonjsGlobal && commonjsGlobal.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3719
- if (k2 === undefined) k2 = k;
3720
- var desc = Object.getOwnPropertyDescriptor(m, k);
3721
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
3722
- desc = { enumerable: true, get: function() { return m[k]; } };
3723
- }
3724
- Object.defineProperty(o, k2, desc);
3725
- }) : (function(o, m, k, k2) {
3726
- if (k2 === undefined) k2 = k;
3727
- o[k2] = m[k];
3728
- }));
3729
- var __exportStar = (commonjsGlobal && commonjsGlobal.__exportStar) || function(m, exports) {
3730
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
3731
- };
3732
- Object.defineProperty(exports, "__esModule", { value: true });
3733
- /**
3734
- * Entry points for the OpenFin `Application` API (`fin.Application`).
3735
- *
3736
- * * {@link ApplicationModule} contains static members of the `Application` API, accessible through `fin.Application`.
3737
- * * {@link Application} describes an instance of an OpenFin Application, e.g. as returned by `fin.Application.getCurrent`.
3738
- *
3739
- * 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),
3740
- * both of these were documented on the same page.
3741
- *
3742
- * @packageDocumentation
3743
- */
3744
- __exportStar(requireFactory$2(), exports);
3745
- __exportStar(requireInstance$1(), exports);
3746
- } (application));
3747
- return application;
3748
- }
3725
+ __exportStar(Factory$7, exports);
3726
+ __exportStar(Instance$6, exports);
3727
+ } (application));
3749
3728
 
3750
3729
  var promisifySubscription$1 = {};
3751
3730
 
@@ -3789,7 +3768,7 @@ function requireInstance () {
3789
3768
  /* eslint-disable @typescript-eslint/no-unused-vars */
3790
3769
  /* eslint-disable no-console */
3791
3770
  /* eslint-disable @typescript-eslint/no-non-null-assertion */
3792
- const application_1 = requireApplication();
3771
+ const application_1 = application;
3793
3772
  const main_1 = main;
3794
3773
  const view_1 = requireView();
3795
3774
  const warnings_1 = warnings;
@@ -12442,6 +12421,10 @@ class LayoutModule extends base_1$4.Base {
12442
12421
  if (!allowedErrors.some((m) => e.message.includes(m))) {
12443
12422
  throw e;
12444
12423
  }
12424
+ // If a view is attached to provider window, return null
12425
+ if (layoutWindowIdentity.uuid === layoutWindowIdentity.name) {
12426
+ throw new Error(`View identity ${JSON.stringify(viewIdentity)} is not attached to any layout in provider window ${JSON.stringify(layoutWindowIdentity)}.`);
12427
+ }
12445
12428
  // fallback logic for missing endpoint in older runtimes
12446
12429
  return this.wrapSync(layoutWindowIdentity);
12447
12430
  }
@@ -17072,7 +17055,7 @@ const events_1$3 = require$$0;
17072
17055
  // Import from the file rather than the directory in case someone consuming types is using module resolution other than "node"
17073
17056
  const index_1 = system;
17074
17057
  const index_2 = requireWindow();
17075
- const index_3 = requireApplication();
17058
+ const index_3 = application;
17076
17059
  const index_4 = interappbus;
17077
17060
  const index_5 = clipboard;
17078
17061
  const index_6 = externalApplication;