@interopio/desktop 6.0.2 → 6.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/changelog.md CHANGED
@@ -1,18 +1,33 @@
1
- 6.0.2
2
- - fix: windows - memory leak
3
- - chore: remove postinstall script
1
+ 6.2.0
2
+ - feat: notifications - allow user to change the notification panel and toasts position
3
+ - feat: windows: add new method - clone
4
+ - feat: intents - filterIntents method added
5
+ - chore: notifications - fix typings - onDataChanged
6
+ - chore: notifications - fix typings - onclose
7
+ - chore: prefs - fix typings - lastUpdate
8
+ - chore: remove shortid dependency
9
+ - chore: update core to 6.1.0
10
+ 6.1.0
11
+ - feat: layouts - when saving a layout, setAsCurrent option is added
12
+ - feat: intens - pass caller as a second arg to io.intents.register handler
13
+ - feat: windows - introduce dock method and onDockingChanged
14
+ - feat: windows - introduce autoArrange method
15
+ - feat: notifications - add support for updating notification data field and listening for updates
16
+ - fix: windows - fix isHibernated to return the correct value
17
+ - fix: windows - memory leak
18
+ - chore: notifications - add prefix to the logger
4
19
  6.0.1
5
- - fix: version 6 should work with Glue42 3.X
20
+ - fix: version 6 should work with Glue42 3.X
6
21
  6.0.0
7
- - chore: Rebranding to interop.io
8
- - fix: layouts - check for old methods for calling the new ones
9
- - fix: notifications - click interop method doesn't work if the raiser is closed
22
+ - chore: Rebranding to interop.io
23
+ - fix: layouts - check for old methods for calling the new ones
24
+ - fix: notifications - click interop method doesn't work if the raiser is closed
10
25
  5.23.1
11
- - fix: windows - update types for DialogResult
12
- - fix: windows - autoSave is optional in ExitOpts interface
13
- - fix: channels - subscribe throws error in particular case
14
- - fix: notifications - click action is working even if the raiser of the notification is closed
15
- - fix: notifications - expose toasts option in the configure method
26
+ - fix: windows - update types for DialogResult
27
+ - fix: windows - autoSave is optional in ExitOpts interface
28
+ - fix: channels - subscribe throws error in particular case
29
+ - fix: notifications - click action is working even if the raiser of the notification is closed
30
+ - fix: notifications - expose toasts option in the configure method
16
31
  5.23.0
17
32
  - fix: intents - fix for intents resolver to work from a hidden window
18
33
  - fix: notifications - add validation when raising a notification - severity, panelExpiry and toastExpiry
package/desktop.d.ts CHANGED
@@ -76,6 +76,7 @@ export declare namespace IOConnectDesktop {
76
76
  export import Logger = IOConnectCore.Logger;
77
77
  export import Metrics = IOConnectCore.Metrics;
78
78
  export import Auth = IOConnectCore.Auth;
79
+ export import FeedbackInfo = IOConnectCore.FeedbackInfo;
79
80
  export import Channels = IOConnectDesktop.Channels.API;
80
81
  export import ChannelContext = IOConnectDesktop.Channels.ChannelContext;
81
82
  export import Interop = IOConnectCore.Interop;
@@ -1455,7 +1456,7 @@ export declare namespace IOConnectDesktop {
1455
1456
  /**
1456
1457
  * Title of the app instance.
1457
1458
  */
1458
- title: string;
1459
+ title: string | undefined;
1459
1460
 
1460
1461
  /**
1461
1462
  * Whether the app instance is an activity instance.
@@ -2232,6 +2233,11 @@ export declare namespace IOConnectDesktop {
2232
2233
  */
2233
2234
  type?: LayoutType;
2234
2235
 
2236
+ /**
2237
+ * If `true`, will set the saved Layout as the current Global Layout.
2238
+ */
2239
+ setAsCurrent?: boolean;
2240
+
2235
2241
  /**
2236
2242
  * Context to be saved with the Layout.
2237
2243
  */
@@ -4372,6 +4378,38 @@ export declare namespace IOConnectDesktop {
4372
4378
  value?: string;
4373
4379
  }
4374
4380
 
4381
+ /**
4382
+ * Describes a docked window.
4383
+ */
4384
+ export interface DockingPlacement {
4385
+ /**
4386
+ * If `true`, the window is docked.
4387
+ */
4388
+ docked: boolean;
4389
+ /**
4390
+ * Position of the docked window on the screen - top, bottom, left or right.
4391
+ */
4392
+ position?: string;
4393
+ /**
4394
+ * If `true`, the docked window claims the area it occupies on the screen, in effect, reducing the working area of the screen.
4395
+ */
4396
+ claimScreenArea?: boolean;
4397
+ }
4398
+
4399
+ /**
4400
+ * Options for docking a window.
4401
+ */
4402
+ export interface DockingOptions {
4403
+ /**
4404
+ * Position of the docked window on the screen - top, bottom, left or right.
4405
+ */
4406
+ position: "top" | "bottom" | "left" | "right";
4407
+ /**
4408
+ * If `true`, the docked window will claim the area it occupies on the screen, in effect, reducing the working area of the screen.
4409
+ */
4410
+ claimScreenArea?: boolean;
4411
+ }
4412
+
4375
4413
  /**
4376
4414
  * Describes a window group.
4377
4415
  */
@@ -4489,6 +4527,12 @@ export declare namespace IOConnectDesktop {
4489
4527
  * @param callback Callback function for handling the event.
4490
4528
  */
4491
4529
  onVisibilityChanged(callback: (group: Group) => void): UnsubscribeFunction;
4530
+
4531
+ /**
4532
+ * Notifies when the window group is about to be closed.
4533
+ * @param callback Callback function for handling the event. Returns a `Promise` that will be awaited before the window group is closed. The timeout for waiting is 30 seconds. A function for preventing the closing is passed to the callback as a parameter.
4534
+ */
4535
+ onClosing(callback: (prevent: (options?: PreventClosingOptions) => void) => Promise<void>): void;
4492
4536
  }
4493
4537
 
4494
4538
  /**
@@ -4558,6 +4602,14 @@ export declare namespace IOConnectDesktop {
4558
4602
  */
4559
4603
  configure(options: WindowsConfiguration): Promise<void>;
4560
4604
 
4605
+ /**
4606
+ * Arranges the io.Connect Windows automatically in a grid on the specified display using the entire working area of the display.
4607
+ * If called a second time, and the user hasn't broken manually the window arrangement, the windows will be restored to their previous state.
4608
+ * @param displayId ID of the display on which to arrange the windows.
4609
+ */
4610
+ autoArrange(displayId?: number): Promise<void>;
4611
+
4612
+
4561
4613
  /**
4562
4614
  * Notifies when the Window Management library has been fully initialized.
4563
4615
  */
@@ -4619,6 +4671,15 @@ export declare namespace IOConnectDesktop {
4619
4671
  */
4620
4672
  onWindowLostFocus(callback: (window: IOConnectWindow) => void): UnsubscribeFunction;
4621
4673
 
4674
+ /**
4675
+ * Notifies when io.Connect Windows are arranged automatically or restored to their previous state using the `autoArrange()` method.
4676
+ * The event will fire also when the user manually breaks the automatic window arrangement.
4677
+ * @param callback Callback function for handling the event. Receives an object with `areWindowsArranged` and `displayId` properties.
4678
+ * The `areWindowsArranged` flag will be set to `true` if the `autoArrange()` method is called initially for arranging the windows.
4679
+ * When the method is called a second time for restoring the windows to their previous state, or the user manually breaks the window arrangement, the flag will be `false`.
4680
+ */
4681
+ onArrangementChanged(callback: (data: { areWindowsArranged: boolean; displayId: number; }) => void): UnsubscribeFunction;
4682
+
4622
4683
  /**
4623
4684
  * Generic event handler.
4624
4685
  * @ignore
@@ -5285,7 +5346,7 @@ export declare namespace IOConnectDesktop {
5285
5346
 
5286
5347
  /**
5287
5348
  * Refreshes the current window.
5288
- * @param ignoreCache Flag indicating whether to refresh the page with or without cache. Defaults to `false`.
5349
+ * @param ignoreCache Flag indicating whether to use the Chromium cache (if `false`), or the server cache (if `true`) when refreshing the web page. Defaults to `false`.
5289
5350
  */
5290
5351
  refresh(ignoreCache: boolean): Promise<IOConnectWindow>;
5291
5352
 
@@ -5374,6 +5435,19 @@ export declare namespace IOConnectDesktop {
5374
5435
  */
5375
5436
  showDialog<T>(options: DialogOptions): Promise<T | DialogResult>
5376
5437
 
5438
+ /**
5439
+ * Retrieves the docking placement information for the current window.
5440
+ * @since io.Connect Desktop 9.1.0
5441
+ */
5442
+ getDockingPlacement(): Promise<DockingPlacement>;
5443
+
5444
+ /**
5445
+ * Docks the window at the specified position.
5446
+ * @param options Options for docking the window.
5447
+ * @since io.Connect Desktop 9.1.0
5448
+ */
5449
+ dock(options: DockingOptions): Promise<DockingPlacement>;
5450
+
5377
5451
  /**
5378
5452
  * Notifies when a window is attached to the current window.
5379
5453
  * @param callback Callback function for handling the event.
@@ -5563,6 +5637,19 @@ export declare namespace IOConnectDesktop {
5563
5637
  * @param callback Callback function for handling the event.
5564
5638
  */
5565
5639
  onNavigating(callback: (args: { newUrl: string }) => Promise<void>): void;
5640
+
5641
+ /**
5642
+ * Notifies when the window docking placement is changed.
5643
+ * @param callback Callback function for handling the event.
5644
+ * @since io.Connect Desktop 9.1.0
5645
+ */
5646
+ onDockingChanged(callback: (window: IOConnectDesktop.Windows.IOConnectWindow, dockingPlacement: DockingPlacement) => void): UnsubscribeFunction
5647
+
5648
+ /**
5649
+ * Duplicates the current io.Connect Window.
5650
+ * @param options Optional start options that will override the default start options when cloning the window.
5651
+ */
5652
+ clone(options?: IOConnectDesktop.AppManager.ApplicationStartOptions): Promise<IOConnectWindow>
5566
5653
  }
5567
5654
 
5568
5655
  /**
@@ -5932,9 +6019,9 @@ export declare namespace IOConnectDesktop {
5932
6019
  * use this method to supply a handler for the specified Intent. Otherwise, you can use it to register your app as an Intent handler
5933
6020
  * dynamically at runtime. Dynamically registered Intent handlers share the life span of the respective app instance.
5934
6021
  * @param intent The name of the Intent to be handled, or an object specifying the Intent name and additional settings for handling the Intent.
5935
- * @param handler Handler function for the raised Intent.
6022
+ * @param handler The callback that will handle a raised intent. Will be called with an IntentContext if it is provided by the raising application and caller - the Interop Instance which raised the intent
5936
6023
  */
5937
- register(intent: string | AddIntentListenerRequest, handler: (context: IntentContext) => any): Promise<{ unsubscribe: UnsubscribeFunction }>;
6024
+ register(intent: string | AddIntentListenerRequest, handler: (context: IntentContext, caller?: IOConnectDesktop.Interop.Instance) => any): Promise<{ unsubscribe: UnsubscribeFunction }>;
5938
6025
 
5939
6026
  /**
5940
6027
  * Retrieves Intents by a specified filter. If no filter is supplied, all available Intents will be retrieved.
@@ -5942,6 +6029,18 @@ export declare namespace IOConnectDesktop {
5942
6029
  */
5943
6030
  find(intentFilter?: string | IntentFilter): Promise<Intent[]>;
5944
6031
 
6032
+ /**
6033
+ * Filters Intent handlers by specified criteria. If there are more than one valid Intent handlers and the Intents Resolver UI is enabled, it will open and display the available handlers.
6034
+ * @param handlerFilter Filter for the list of Intent handlers to return.
6035
+ */
6036
+ filterHandlers(handlerFilter: HandlerFilter): Promise<FilterHandlersResult>;
6037
+
6038
+ /**
6039
+ * Retrieves all Intents associated with an Intent handler.
6040
+ * @param handler Intent handler whose Intents to retrieve.
6041
+ */
6042
+ getIntents(handler: IntentHandler): Promise<GetIntentsResult>;
6043
+
5945
6044
  /**
5946
6045
  * API for controlling the Intents Resolver UI app.
5947
6046
  */
@@ -6056,6 +6155,55 @@ export declare namespace IOConnectDesktop {
6056
6155
  */
6057
6156
  resultType?: string;
6058
6157
  }
6158
+
6159
+ /**
6160
+ * Provides additional information about an Intent (e.g., when an Intent is retrieved with the `getIntents()` method).
6161
+ */
6162
+ // eslint-disable-next-line @typescript-eslint/no-empty-interface
6163
+ export interface IntentInfo extends AddIntentListenerRequest {}
6164
+
6165
+ /**
6166
+ * Specifies the criteria for filtering the available Intent handlers when using the `filterHandlers()` method.
6167
+ */
6168
+ export interface HandlerFilter {
6169
+ /**
6170
+ * Title for the search operation that will be provided to the Intents Resolver UI.
6171
+ */
6172
+ title?: string;
6173
+
6174
+ /**
6175
+ * Flag indicating whether the Intents Resolver UI will open to provide the user with the list of valid Intent handlers.
6176
+ * @default true
6177
+ */
6178
+ openResolver?: boolean;
6179
+
6180
+ /**
6181
+ * Interval in milliseconds to wait for the `filterHandlers()` method to resolve if more than one Intent handler is available and the Intents Resolver UI is enabled.
6182
+ * @default 90000
6183
+ */
6184
+ timeout?: number;
6185
+
6186
+ /**
6187
+ * Intent name to be used as a filter criterion.
6188
+ */
6189
+ intent?: string;
6190
+
6191
+ /**
6192
+ * List of context types with which the Intent handlers work to be used as filter criteria.
6193
+ */
6194
+ contextTypes?: string[];
6195
+
6196
+ /**
6197
+ * Result type returned by the Intent handlers to be used as a filter criterion.
6198
+ */
6199
+ resultType?: string;
6200
+
6201
+ /**
6202
+ * List of app names which will be used as a filter criteria.
6203
+ */
6204
+ applicationNames?: string[];
6205
+ }
6206
+
6059
6207
  /**
6060
6208
  * Filter for retrieving Intents.
6061
6209
  */
@@ -6233,6 +6381,26 @@ export declare namespace IOConnectDesktop {
6233
6381
  */
6234
6382
  result?: any;
6235
6383
  }
6384
+
6385
+ /**
6386
+ * Describes the result returned by the `filterHandlers()` method.
6387
+ */
6388
+ export interface FilterHandlersResult {
6389
+ /**
6390
+ * List of Intent handlers that satisfy the filter criteria.
6391
+ */
6392
+ handlers: IntentHandler[];
6393
+ }
6394
+
6395
+ /**
6396
+ * Describes the result returned by the `getIntents()` method.
6397
+ */
6398
+ export interface GetIntentsResult {
6399
+ /**
6400
+ * List of objects describing the Intents associated with the specified Intent handler.
6401
+ */
6402
+ intents: IntentInfo[];
6403
+ }
6236
6404
  }
6237
6405
 
6238
6406
  /**
@@ -6320,6 +6488,13 @@ export declare namespace IOConnectDesktop {
6320
6488
  */
6321
6489
  setState(id: string, state: State): Promise<void>;
6322
6490
 
6491
+ /**
6492
+ * Sets or updates the arbitrary data associated with the notification which is available in the `data` property of the notification.
6493
+ * @param id ID of the notification whose data to update.
6494
+ * @param data New notification data.
6495
+ */
6496
+ updateData(id: string, data: unknown): Promise<void>;
6497
+
6323
6498
  /**
6324
6499
  * Notifies when a new notification is raised.
6325
6500
  * @param callback Callback function for handling the event.
@@ -6342,13 +6517,19 @@ export declare namespace IOConnectDesktop {
6342
6517
  * Notifies when the global notification settings are changed.
6343
6518
  * @param callback Callback function for handling the event.
6344
6519
  */
6345
- onConfigurationChanged(callback: (config: Configuration, apps: number) => void): UnsubscribeFunction;
6520
+ onConfigurationChanged(callback: (config: Configuration) => void): UnsubscribeFunction;
6346
6521
 
6347
6522
  /**
6348
6523
  * Notifies when the notification counter is changed.
6349
6524
  * @param callback Callback function for handling the event.
6350
6525
  */
6351
6526
  onCounterChanged(callback: (info: { count: number }) => void): UnsubscribeFunction;
6527
+
6528
+ /**
6529
+ * Notifies when the arbitrary data associated with the notification (available in the `data` property of the notification) is changed.
6530
+ * @param callback Callback function for handling the event.
6531
+ */
6532
+ onDataChanged<T>(callback: (notification: { id: string }, data: T) => void): UnsubscribeFunction
6352
6533
  }
6353
6534
 
6354
6535
  /**
@@ -6454,7 +6635,7 @@ export declare namespace IOConnectDesktop {
6454
6635
  */
6455
6636
  export interface NotificationData extends IOConnectNotificationOptions {
6456
6637
  /**
6457
- * ID of the notification.
6638
+ * ID for the notification.
6458
6639
  */
6459
6640
  id: string;
6460
6641
 
@@ -6508,6 +6689,11 @@ export declare namespace IOConnectDesktop {
6508
6689
  */
6509
6690
  onerror: (event: ErrorEvent) => void;
6510
6691
 
6692
+ /**
6693
+ * Notifies when the notification is closed.
6694
+ */
6695
+ onclose: (() => void);
6696
+
6511
6697
  /**
6512
6698
  * Closes the notification.
6513
6699
  */
@@ -6592,6 +6778,11 @@ export declare namespace IOConnectDesktop {
6592
6778
  * Options for raising an io.Connect notification.
6593
6779
  */
6594
6780
  export interface IOConnectNotificationOptions extends NotificationDefinition {
6781
+ /**
6782
+ * Id for the notification.
6783
+ */
6784
+ id?: string;
6785
+
6595
6786
  /**
6596
6787
  * Title for the notification.
6597
6788
  */
@@ -6617,6 +6808,12 @@ export declare namespace IOConnectDesktop {
6617
6808
  */
6618
6809
  severity?: "Low" | "Medium" | "High" | "Critical" | "None";
6619
6810
 
6811
+ /**
6812
+ * Notification state.
6813
+ * @default "Active"
6814
+ */
6815
+ state?: State;
6816
+
6620
6817
  /**
6621
6818
  * Can be used for overwriting the name of the actual notification source.
6622
6819
  */
@@ -6718,6 +6915,28 @@ export declare namespace IOConnectDesktop {
6718
6915
  */
6719
6916
  stackBy?: "severity" | "application";
6720
6917
  }
6918
+
6919
+ /**
6920
+ * Describes the placement settings for the Notification Panel and the notification toasts.
6921
+ */
6922
+ placement?: NotificationPlacement;
6923
+ }
6924
+
6925
+
6926
+ /**
6927
+ * Settings for placing the Notification Panel and the notification toasts.
6928
+ */
6929
+ export interface NotificationPlacement {
6930
+ /**
6931
+ * Defines the position of the Notification Panel on the screen.
6932
+ * @default "right"
6933
+ */
6934
+ panel?: "left" | "right";
6935
+ /**
6936
+ * Defines the position of the notification toasts on the screen.
6937
+ * @default "bottom-right"
6938
+ */
6939
+ toasts?: "top-left" | "top-right" | "bottom-left" | "bottom-right";
6721
6940
  }
6722
6941
  }
6723
6942
 
@@ -6877,7 +7096,7 @@ export declare namespace IOConnectDesktop {
6877
7096
  /**
6878
7097
  * Timestamp of the last update of the user preferences.
6879
7098
  */
6880
- lastUpdate: Date;
7099
+ lastUpdate: string;
6881
7100
  }
6882
7101
  }
6883
7102