@finsemble/finsemble-ui 10.0.0-iocd.8 → 10.0.3-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1537) hide show
  1. package/FEA.d.ts +1440 -1430
  2. package/FEA.d.ts.map +1 -1
  3. package/FEA.js +10 -10
  4. package/FEA.js.map +1 -1
  5. package/clients/Interop/FinsembleDesktopAgent.d.ts +235 -235
  6. package/clients/Interop/FinsembleDesktopAgent.d.ts.map +1 -1
  7. package/clients/Interop/FinsembleDesktopAgent.js +1331 -1308
  8. package/clients/Interop/FinsembleDesktopAgent.js.map +1 -1
  9. package/clients/Interop/InteropAdmin.d.ts +29 -29
  10. package/clients/Interop/InteropAdmin.js +98 -98
  11. package/clients/Interop/InteropAdmin.js.map +1 -1
  12. package/clients/Interop/index.d.ts +1 -1
  13. package/clients/Interop/index.js +2 -2
  14. package/clients/Interop/types.d.ts +445 -443
  15. package/clients/Interop/types.d.ts.map +1 -1
  16. package/clients/Interop/types.js +45 -45
  17. package/clients/Interop/types.js.map +1 -1
  18. package/clients/Startup/FSBLDesktop.d.ts +157 -157
  19. package/clients/Startup/FSBLDesktop.d.ts.map +1 -1
  20. package/clients/Startup/FSBLDesktop.js +447 -430
  21. package/clients/Startup/FSBLDesktop.js.map +1 -1
  22. package/clients/Startup/FSBLFreestanding.d.ts +27 -27
  23. package/clients/Startup/FSBLFreestanding.js +129 -129
  24. package/clients/Startup/FSBLFreestanding.js.map +1 -1
  25. package/clients/Startup/FSBLService.d.ts +7 -7
  26. package/clients/Startup/FSBLService.js +57 -57
  27. package/clients/Startup/RouterConfig.d.ts +37 -37
  28. package/clients/Startup/RouterConfig.d.ts.map +1 -1
  29. package/clients/Startup/RouterConfig.js +124 -115
  30. package/clients/Startup/RouterConfig.js.map +1 -1
  31. package/clients/Startup/SDDListeners.d.ts +11 -11
  32. package/clients/Startup/SDDListeners.d.ts.map +1 -1
  33. package/clients/Startup/SDDListeners.js +96 -96
  34. package/clients/Startup/SDDListeners.js.map +1 -1
  35. package/clients/Startup/Startup.d.ts +58 -58
  36. package/clients/Startup/Startup.js +101 -101
  37. package/clients/Startup/Startup.js.map +1 -1
  38. package/clients/Startup/index.d.ts +1 -1
  39. package/clients/Startup/index.js +2 -2
  40. package/clients/Startup/types.d.ts +81 -81
  41. package/clients/Startup/types.d.ts.map +1 -1
  42. package/clients/Startup/types.js +1 -1
  43. package/clients/Startup/unhandledErrors.d.ts +6 -6
  44. package/clients/Startup/unhandledErrors.d.ts.map +1 -1
  45. package/clients/Startup/unhandledErrors.js +77 -75
  46. package/clients/Startup/unhandledErrors.js.map +1 -1
  47. package/clients/Startup/windowStartup.d.ts +17 -17
  48. package/clients/Startup/windowStartup.d.ts.map +1 -1
  49. package/clients/Startup/windowStartup.js +491 -478
  50. package/clients/Startup/windowStartup.js.map +1 -1
  51. package/clients/StoreModel.d.ts +394 -394
  52. package/clients/StoreModel.d.ts.map +1 -1
  53. package/clients/StoreModel.js +906 -906
  54. package/clients/StoreModel.js.map +1 -1
  55. package/clients/appsClient.d.ts +618 -476
  56. package/clients/appsClient.d.ts.map +1 -1
  57. package/clients/appsClient.js +729 -710
  58. package/clients/appsClient.js.map +1 -1
  59. package/clients/authenticationClient.d.ts +190 -190
  60. package/clients/authenticationClient.d.ts.map +1 -1
  61. package/clients/authenticationClient.js +247 -247
  62. package/clients/authenticationClient.js.map +1 -1
  63. package/clients/configClient.d.ts +638 -638
  64. package/clients/configClient.d.ts.map +1 -1
  65. package/clients/configClient.js +969 -969
  66. package/clients/configClient.js.map +1 -1
  67. package/clients/controller/DialogManagerClientController.d.ts +77 -77
  68. package/clients/controller/DialogManagerClientController.js +215 -215
  69. package/clients/controller/DialogManagerClientController.js.map +1 -1
  70. package/clients/dialogManagerClient.d.ts +186 -186
  71. package/clients/dialogManagerClient.d.ts.map +1 -1
  72. package/clients/dialogManagerClient.js +479 -475
  73. package/clients/dialogManagerClient.js.map +1 -1
  74. package/clients/distributedStoreClient.d.ts +150 -151
  75. package/clients/distributedStoreClient.d.ts.map +1 -1
  76. package/clients/distributedStoreClient.js +256 -253
  77. package/clients/distributedStoreClient.js.map +1 -1
  78. package/clients/hotkeyClient.d.ts +128 -128
  79. package/clients/hotkeyClient.d.ts.map +1 -1
  80. package/clients/hotkeyClient.js +648 -648
  81. package/clients/hotkeyClient.js.map +1 -1
  82. package/clients/index.d.ts +16 -16
  83. package/clients/index.js +18 -18
  84. package/clients/launcherClient.d.ts +123 -123
  85. package/clients/launcherClient.d.ts.map +1 -1
  86. package/clients/launcherClient.js +64 -64
  87. package/clients/logger.d.ts +363 -363
  88. package/clients/logger.d.ts.map +1 -1
  89. package/clients/logger.js +940 -931
  90. package/clients/logger.js.map +1 -1
  91. package/clients/notificationClient.d.ts +310 -310
  92. package/clients/notificationClient.d.ts.map +1 -1
  93. package/clients/notificationClient.js +557 -557
  94. package/clients/notificationClient.js.map +1 -1
  95. package/clients/routerClient.d.ts +520 -520
  96. package/clients/routerClient.d.ts.map +1 -1
  97. package/clients/routerClient.js +1448 -1416
  98. package/clients/routerClient.js.map +1 -1
  99. package/clients/searchClient.d.ts +156 -156
  100. package/clients/searchClient.d.ts.map +1 -1
  101. package/clients/searchClient.js +282 -282
  102. package/clients/searchClient.js.map +1 -1
  103. package/clients/storageClient.d.ts +235 -235
  104. package/clients/storageClient.d.ts.map +1 -1
  105. package/clients/storageClient.js +308 -308
  106. package/clients/storageClient.js.map +1 -1
  107. package/clients/windowClient.d.ts +714 -712
  108. package/clients/windowClient.d.ts.map +1 -1
  109. package/clients/windowClient.js +1072 -1070
  110. package/clients/windowClient.js.map +1 -1
  111. package/clients/workspaceClient.d.ts +511 -511
  112. package/clients/workspaceClient.d.ts.map +1 -1
  113. package/clients/workspaceClient.js +758 -746
  114. package/clients/workspaceClient.js.map +1 -1
  115. package/common/Desktop.d.ts +56 -56
  116. package/common/Desktop.d.ts.map +1 -1
  117. package/common/Desktop.js +109 -97
  118. package/common/Desktop.js.map +1 -1
  119. package/common/FinsembleWindow.d.ts +823 -813
  120. package/common/FinsembleWindow.d.ts.map +1 -1
  121. package/common/FinsembleWindow.js +1458 -1416
  122. package/common/FinsembleWindow.js.map +1 -1
  123. package/common/Globals.d.ts +96 -96
  124. package/common/Globals.d.ts.map +1 -1
  125. package/common/Globals.js +29 -29
  126. package/common/Monitors.d.ts +160 -155
  127. package/common/Monitors.d.ts.map +1 -1
  128. package/common/Monitors.js +504 -447
  129. package/common/Monitors.js.map +1 -1
  130. package/common/Performance.d.ts +6 -6
  131. package/common/Performance.js +12 -12
  132. package/common/REST.d.ts +16 -16
  133. package/common/REST.js +84 -84
  134. package/common/REST.js.map +1 -1
  135. package/common/Singleton.d.ts +74 -72
  136. package/common/Singleton.d.ts.map +1 -1
  137. package/common/Singleton.js +95 -95
  138. package/common/Singleton.js.map +1 -1
  139. package/common/configUtil.d.ts +58 -58
  140. package/common/configUtil.d.ts.map +1 -1
  141. package/common/configUtil.js +347 -347
  142. package/common/configUtil.js.map +1 -1
  143. package/common/constants.d.ts +101 -101
  144. package/common/constants.js +171 -171
  145. package/common/dependencyManager.d.ts +170 -171
  146. package/common/dependencyManager.d.ts.map +1 -1
  147. package/common/dependencyManager.js +383 -383
  148. package/common/dependencyManager.js.map +1 -1
  149. package/common/events/FinsembleEvent.d.ts +29 -29
  150. package/common/events/FinsembleEvent.d.ts.map +1 -1
  151. package/common/events/FinsembleEvent.js +71 -71
  152. package/common/events/FinsembleEvent.js.map +1 -1
  153. package/common/events/PublicEventManager.d.ts +69 -68
  154. package/common/events/PublicEventManager.d.ts.map +1 -1
  155. package/common/events/PublicEventManager.js +192 -192
  156. package/common/events/PublicEventManager.js.map +1 -1
  157. package/common/index.d.ts +3 -3
  158. package/common/index.js +5 -5
  159. package/common/redux/getRemoteStore.d.ts +53 -53
  160. package/common/redux/getRemoteStore.d.ts.map +1 -1
  161. package/common/redux/getRemoteStore.js +50 -50
  162. package/common/redux/remoteReduxEnhancer.d.ts +28 -28
  163. package/common/redux/remoteReduxEnhancer.d.ts.map +1 -1
  164. package/common/redux/remoteReduxEnhancer.js +228 -218
  165. package/common/redux/remoteReduxEnhancer.js.map +1 -1
  166. package/common/redux/types.d.ts +26 -26
  167. package/common/redux/types.d.ts.map +1 -1
  168. package/common/redux/types.js +1 -1
  169. package/common/system.d.ts +328 -308
  170. package/common/system.d.ts.map +1 -1
  171. package/common/system.js +559 -545
  172. package/common/system.js.map +1 -1
  173. package/common/systemManagerClient.d.ts +91 -91
  174. package/common/systemManagerClient.d.ts.map +1 -1
  175. package/common/systemManagerClient.js +189 -189
  176. package/common/systemManagerClient.js.map +1 -1
  177. package/common/testPoint.d.ts +56 -56
  178. package/common/testPoint.js +105 -105
  179. package/common/testPoint.js.map +1 -1
  180. package/common/toast.d.ts +35 -35
  181. package/common/toast.d.ts.map +1 -1
  182. package/common/toast.js +93 -87
  183. package/common/toast.js.map +1 -1
  184. package/common/util.d.ts +141 -136
  185. package/common/util.d.ts.map +1 -1
  186. package/common/util.js +458 -445
  187. package/common/util.js.map +1 -1
  188. package/deprecated/SmartDesktopClient.d.ts +18 -18
  189. package/deprecated/SmartDesktopClient.js +18 -18
  190. package/deprecated/baseClient.d.ts +87 -87
  191. package/deprecated/baseClient.d.ts.map +1 -1
  192. package/deprecated/baseClient.js +123 -123
  193. package/deprecated/baseClient.js.map +1 -1
  194. package/deprecated/deprecatedFunctions.d.ts +44 -44
  195. package/deprecated/deprecatedFunctions.d.ts.map +1 -1
  196. package/deprecated/deprecatedFunctions.js +199 -199
  197. package/deprecated/deprecatedFunctions.js.map +1 -1
  198. package/deprecated/deprecatedlauncherClient.d.ts +162 -162
  199. package/deprecated/deprecatedlauncherClient.d.ts.map +1 -1
  200. package/deprecated/deprecatedlauncherClient.js +285 -285
  201. package/deprecated/deprecatedlauncherClient.js.map +1 -1
  202. package/deprecated/dragAndDropClient.d.ts +288 -288
  203. package/deprecated/dragAndDropClient.d.ts.map +1 -1
  204. package/deprecated/dragAndDropClient.js +753 -698
  205. package/deprecated/dragAndDropClient.js.map +1 -1
  206. package/deprecated/index.d.ts +1 -1
  207. package/deprecated/index.d.ts.map +1 -1
  208. package/deprecated/index.js +1 -1
  209. package/deprecated/legacyUIComponentNames.d.ts +23 -23
  210. package/deprecated/legacyUIComponentNames.js +23 -23
  211. package/deprecated/linkerClient.d.ts +422 -422
  212. package/deprecated/linkerClient.d.ts.map +1 -1
  213. package/deprecated/linkerClient.js +892 -892
  214. package/deprecated/linkerClient.js.map +1 -1
  215. package/index.d.ts +65 -70
  216. package/index.d.ts.map +1 -1
  217. package/index.js +3 -5
  218. package/index.js.map +1 -1
  219. package/main.d.ts +725 -862
  220. package/main.d.ts.map +1 -1
  221. package/main.js +85 -85
  222. package/package.json +10 -14
  223. package/platform/preloads/BloombergBridgeClient.d.ts +453 -453
  224. package/platform/preloads/BloombergBridgeClient.d.ts.map +1 -1
  225. package/platform/preloads/BloombergBridgeClient.js +568 -568
  226. package/platform/preloads/BloombergBridgeClient.js.map +1 -1
  227. package/platform/services/Interop/AuthSignVerify.d.ts +50 -50
  228. package/platform/services/Interop/AuthSignVerify.js +283 -283
  229. package/platform/services/Interop/AuthSignVerify.js.map +1 -1
  230. package/platform/services/Interop/modules/actions.d.ts +16 -16
  231. package/platform/services/Interop/modules/actions.js +10 -10
  232. package/platform/services/Interop/modules/types.d.ts +182 -182
  233. package/platform/services/Interop/modules/types.d.ts.map +1 -1
  234. package/platform/services/Interop/modules/types.js +1 -1
  235. package/platform/services/Interop/types.d.ts +634 -632
  236. package/platform/services/Interop/types.d.ts.map +1 -1
  237. package/platform/services/Interop/types.js +25 -25
  238. package/platform/services/Interop/types.js.map +1 -1
  239. package/platform/services/baseService.d.ts +82 -82
  240. package/platform/services/baseService.d.ts.map +1 -1
  241. package/platform/services/baseService.js +300 -300
  242. package/platform/services/baseService.js.map +1 -1
  243. package/platform/services/bloombergBridge/lib/types.d.ts +108 -108
  244. package/platform/services/bloombergBridge/lib/types.d.ts.map +1 -1
  245. package/platform/services/bloombergBridge/lib/types.js +39 -39
  246. package/platform/services/config/types.d.ts +42 -42
  247. package/platform/services/config/types.d.ts.map +1 -1
  248. package/platform/services/config/types.js +1 -1
  249. package/platform/services/distributedStore/storeUtils.d.ts +67 -67
  250. package/platform/services/distributedStore/storeUtils.d.ts.map +1 -1
  251. package/platform/services/distributedStore/storeUtils.js +238 -238
  252. package/platform/services/distributedStore/storeUtils.js.map +1 -1
  253. package/platform/services/index.d.ts +5 -5
  254. package/platform/services/index.js +9 -9
  255. package/platform/services/logger/types.d.ts +78 -78
  256. package/platform/services/logger/types.d.ts.map +1 -1
  257. package/platform/services/logger/types.js +1 -1
  258. package/platform/services/notification/index.d.ts +1 -1
  259. package/platform/services/notification/index.js +2 -2
  260. package/platform/services/notification/types/Action.d.ts +12 -12
  261. package/platform/services/notification/types/Action.js +7 -7
  262. package/platform/services/notification/types/ActionTypes.d.ts +16 -16
  263. package/platform/services/notification/types/ActionTypes.js +18 -18
  264. package/platform/services/notification/types/Callbacks.d.ts +7 -7
  265. package/platform/services/notification/types/Callbacks.js +1 -1
  266. package/platform/services/notification/types/Filter.d.ts +22 -22
  267. package/platform/services/notification/types/Filter.js +19 -19
  268. package/platform/services/notification/types/IAction.d.ts +51 -51
  269. package/platform/services/notification/types/IAction.js +1 -1
  270. package/platform/services/notification/types/IFilter.d.ts +24 -24
  271. package/platform/services/notification/types/IFilter.js +1 -1
  272. package/platform/services/notification/types/ILastIssued.d.ts +8 -8
  273. package/platform/services/notification/types/ILastIssued.js +1 -1
  274. package/platform/services/notification/types/IMuteFilter.d.ts +7 -7
  275. package/platform/services/notification/types/IMuteFilter.js +4 -4
  276. package/platform/services/notification/types/INotification.d.ts +100 -100
  277. package/platform/services/notification/types/INotification.d.ts.map +1 -1
  278. package/platform/services/notification/types/INotification.js +1 -1
  279. package/platform/services/notification/types/INotificationClient.d.ts +94 -94
  280. package/platform/services/notification/types/INotificationClient.js +1 -1
  281. package/platform/services/notification/types/INotificationHistoryOptions.d.ts +18 -18
  282. package/platform/services/notification/types/INotificationHistoryOptions.d.ts.map +1 -1
  283. package/platform/services/notification/types/INotificationHistoryOptions.js +1 -1
  284. package/platform/services/notification/types/INotificationService.d.ts +57 -57
  285. package/platform/services/notification/types/INotificationService.js +1 -1
  286. package/platform/services/notification/types/IPerformedAction.d.ts +9 -9
  287. package/platform/services/notification/types/IPerformedAction.js +1 -1
  288. package/platform/services/notification/types/ISnoozeTimer.d.ts +13 -13
  289. package/platform/services/notification/types/ISnoozeTimer.js +9 -9
  290. package/platform/services/notification/types/ISubscription.d.ts +15 -15
  291. package/platform/services/notification/types/ISubscription.js +1 -1
  292. package/platform/services/notification/types/LastIssued.d.ts +10 -10
  293. package/platform/services/notification/types/LastIssued.js +6 -6
  294. package/platform/services/notification/types/Meta.d.ts +12 -12
  295. package/platform/services/notification/types/Meta.js +6 -6
  296. package/platform/services/notification/types/Notification.d.ts +29 -29
  297. package/platform/services/notification/types/Notification.js +16 -16
  298. package/platform/services/notification/types/NotificationConfig.d.ts +21 -21
  299. package/platform/services/notification/types/NotificationConfig.js +1 -1
  300. package/platform/services/notification/types/NotificationHookTypes.d.ts +6 -6
  301. package/platform/services/notification/types/NotificationHookTypes.js +1 -1
  302. package/platform/services/notification/types/PerformedAction.d.ts +10 -10
  303. package/platform/services/notification/types/PerformedAction.js +7 -7
  304. package/platform/services/notification/types/SnoozeTimer.d.ts +7 -7
  305. package/platform/services/notification/types/SnoozeTimer.js +2 -2
  306. package/platform/services/notification/types/Subscription.d.ts +13 -13
  307. package/platform/services/notification/types/Subscription.js +14 -14
  308. package/platform/services/notification/types/index.d.ts +45 -45
  309. package/platform/services/notification/types/index.d.ts.map +1 -1
  310. package/platform/services/notification/types/index.js +23 -23
  311. package/platform/services/router/routerTransport.d.ts +80 -80
  312. package/platform/services/router/routerTransport.d.ts.map +1 -1
  313. package/platform/services/router/routerTransport.js +486 -476
  314. package/platform/services/router/routerTransport.js.map +1 -1
  315. package/platform/services/router/types.d.ts +214 -212
  316. package/platform/services/router/types.d.ts.map +1 -1
  317. package/platform/services/router/types.js +1 -1
  318. package/platform/services/search/index.d.ts +1 -1
  319. package/platform/services/search/index.js +2 -2
  320. package/platform/services/search/types.d.ts +29 -29
  321. package/platform/services/search/types.d.ts.map +1 -1
  322. package/platform/services/search/types.js +1 -1
  323. package/platform/services/storage/adapters/base.d.ts +3 -3
  324. package/platform/services/storage/adapters/base.js +63 -63
  325. package/platform/services/storage/adapters/base.js.map +1 -1
  326. package/platform/services/storage/adapters/types.d.ts +21 -21
  327. package/platform/services/storage/adapters/types.d.ts.map +1 -1
  328. package/platform/services/storage/adapters/types.js +1 -1
  329. package/platform/services/systemManager/_constants.d.ts +9 -9
  330. package/platform/services/systemManager/_constants.js +22 -22
  331. package/platform/services/systemManager/common.d.ts +13 -13
  332. package/platform/services/systemManager/common.js +19 -19
  333. package/platform/services/systemManager/types.d.ts +49 -48
  334. package/platform/services/systemManager/types.d.ts.map +1 -1
  335. package/platform/services/systemManager/types.js +11 -11
  336. package/platform/services/types.d.ts +10 -10
  337. package/platform/services/types.d.ts.map +1 -1
  338. package/platform/services/types.js +9 -9
  339. package/platform/services/window/index.d.ts +1 -1
  340. package/platform/services/window/index.js +2 -2
  341. package/platform/services/window/modules/actions.d.ts +76 -70
  342. package/platform/services/window/modules/actions.d.ts.map +1 -1
  343. package/platform/services/window/modules/actions.js +67 -62
  344. package/platform/services/window/modules/actions.js.map +1 -1
  345. package/platform/services/window/types.d.ts +1211 -1194
  346. package/platform/services/window/types.d.ts.map +1 -1
  347. package/platform/services/window/types.js +6 -1
  348. package/platform/services/window/types.js.map +1 -1
  349. package/platform/services/workspace/index.d.ts +1 -1
  350. package/platform/services/workspace/index.js +2 -2
  351. package/platform/services/workspace/types.d.ts +78 -78
  352. package/platform/services/workspace/types.d.ts.map +1 -1
  353. package/platform/services/workspace/types.js +1 -1
  354. package/platform/services/workspace/workspaceAdminAPI.d.ts +26 -26
  355. package/platform/services/workspace/workspaceAdminAPI.d.ts.map +1 -1
  356. package/platform/services/workspace/workspaceAdminAPI.js +44 -44
  357. package/platform/services/workspace/workspaceAdminAPI.js.map +1 -1
  358. package/react/actions/favoriteActions.d.ts +21 -21
  359. package/react/actions/favoriteActions.d.ts.map +1 -1
  360. package/react/actions/favoriteActions.js +8 -8
  361. package/react/actions/linkerActions.d.ts +48 -48
  362. package/react/actions/linkerActions.d.ts.map +1 -1
  363. package/react/actions/linkerActions.js +8 -8
  364. package/react/actions/menuActions.d.ts +16 -16
  365. package/react/actions/menuActions.d.ts.map +1 -1
  366. package/react/actions/menuActions.js +9 -9
  367. package/react/actions/rootActions.d.ts +9 -9
  368. package/react/actions/rootActions.d.ts.map +1 -1
  369. package/react/actions/rootActions.js +2 -2
  370. package/react/actions/searchActions.d.ts +12 -12
  371. package/react/actions/searchActions.d.ts.map +1 -1
  372. package/react/actions/searchActions.js +7 -7
  373. package/react/actions/smartDesktopDesignerActions.d.ts +56 -56
  374. package/react/actions/smartDesktopDesignerActions.d.ts.map +1 -1
  375. package/react/actions/smartDesktopDesignerActions.js +27 -27
  376. package/react/actions/toolbarActions.d.ts +61 -61
  377. package/react/actions/toolbarActions.d.ts.map +1 -1
  378. package/react/actions/toolbarActions.js +24 -24
  379. package/react/actions/workspaceActions.d.ts +11 -11
  380. package/react/actions/workspaceActions.d.ts.map +1 -1
  381. package/react/actions/workspaceActions.js +6 -6
  382. package/react/assets/css/advancedAppLauncher.css +1 -1
  383. package/react/assets/css/appCatalog.css +4 -4
  384. package/react/assets/css/dialogs.css +2 -6
  385. package/react/assets/css/favorites.css +1 -3
  386. package/react/assets/css/finsemble.css +0 -1
  387. package/react/assets/css/font-finance.css +4 -282
  388. package/react/assets/css/menus.css +5 -1
  389. package/react/assets/css/search.css +1 -2
  390. package/react/assets/css/toolbar.css +9 -1
  391. package/react/assets/css/userPreferences.css +1 -1
  392. package/react/components/FinsembleCSS.d.ts +17 -17
  393. package/react/components/FinsembleCSS.d.ts.map +1 -1
  394. package/react/components/FinsembleCSS.js +27 -26
  395. package/react/components/FinsembleCSS.js.map +1 -1
  396. package/react/components/FinsembleProvider.d.ts +28 -28
  397. package/react/components/FinsembleProvider.d.ts.map +1 -1
  398. package/react/components/FinsembleProvider.js +33 -33
  399. package/react/components/appCatalog/AppCatalog.d.ts +13 -13
  400. package/react/components/appCatalog/AppCatalog.d.ts.map +1 -1
  401. package/react/components/appCatalog/AppCatalog.js +33 -33
  402. package/react/components/appCatalog/AppCatalogComponent.d.ts +98 -98
  403. package/react/components/appCatalog/AppCatalogComponent.d.ts.map +1 -1
  404. package/react/components/appCatalog/AppCatalogComponent.js +307 -307
  405. package/react/components/appCatalog/AppCatalogComponent.js.map +1 -1
  406. package/react/components/appCatalog/components/AppCard.d.ts +64 -64
  407. package/react/components/appCatalog/components/AppCard.d.ts.map +1 -1
  408. package/react/components/appCatalog/components/AppCard.js +200 -200
  409. package/react/components/appCatalog/components/AppCard.js.map +1 -1
  410. package/react/components/appCatalog/components/AppList.d.ts +8 -8
  411. package/react/components/appCatalog/components/AppList.d.ts.map +1 -1
  412. package/react/components/appCatalog/components/AppList.js +25 -25
  413. package/react/components/appCatalog/components/AppList.js.map +1 -1
  414. package/react/components/appCatalog/components/AppResults.d.ts +25 -21
  415. package/react/components/appCatalog/components/AppResults.d.ts.map +1 -1
  416. package/react/components/appCatalog/components/AppResults.js +71 -71
  417. package/react/components/appCatalog/components/AppResults.js.map +1 -1
  418. package/react/components/appCatalog/components/Carousel.d.ts +42 -42
  419. package/react/components/appCatalog/components/Carousel.d.ts.map +1 -1
  420. package/react/components/appCatalog/components/Carousel.js +126 -126
  421. package/react/components/appCatalog/components/Carousel.js.map +1 -1
  422. package/react/components/appCatalog/components/EmptyResults.d.ts +11 -7
  423. package/react/components/appCatalog/components/EmptyResults.d.ts.map +1 -1
  424. package/react/components/appCatalog/components/EmptyResults.js +12 -12
  425. package/react/components/appCatalog/components/Hero.d.ts +42 -42
  426. package/react/components/appCatalog/components/Hero.d.ts.map +1 -1
  427. package/react/components/appCatalog/components/Hero.js +83 -83
  428. package/react/components/appCatalog/components/Hero.js.map +1 -1
  429. package/react/components/appCatalog/components/Home.d.ts +29 -21
  430. package/react/components/appCatalog/components/Home.d.ts.map +1 -1
  431. package/react/components/appCatalog/components/Home.js +28 -28
  432. package/react/components/appCatalog/components/SearchBar.d.ts +57 -57
  433. package/react/components/appCatalog/components/SearchBar.js +107 -107
  434. package/react/components/appCatalog/components/SearchBar.js.map +1 -1
  435. package/react/components/appCatalog/components/Showcase/AppDescription.d.ts +15 -11
  436. package/react/components/appCatalog/components/Showcase/AppDescription.d.ts.map +1 -1
  437. package/react/components/appCatalog/components/Showcase/AppDescription.js +15 -15
  438. package/react/components/appCatalog/components/Showcase/AppDevNotes.d.ts +18 -14
  439. package/react/components/appCatalog/components/Showcase/AppDevNotes.d.ts.map +1 -1
  440. package/react/components/appCatalog/components/Showcase/AppDevNotes.js +30 -30
  441. package/react/components/appCatalog/components/Showcase/AppShowcase.d.ts +37 -37
  442. package/react/components/appCatalog/components/Showcase/AppShowcase.d.ts.map +1 -1
  443. package/react/components/appCatalog/components/Showcase/AppShowcase.js +128 -128
  444. package/react/components/appCatalog/components/Showcase/AppShowcase.js.map +1 -1
  445. package/react/components/appCatalog/components/Showcase/Header.d.ts +21 -21
  446. package/react/components/appCatalog/components/Showcase/Header.d.ts.map +1 -1
  447. package/react/components/appCatalog/components/Showcase/Header.js +58 -58
  448. package/react/components/appCatalog/components/Showcase/Header.js.map +1 -1
  449. package/react/components/appCatalog/components/Showcase/ImageCarousel.d.ts +14 -13
  450. package/react/components/appCatalog/components/Showcase/ImageCarousel.d.ts.map +1 -1
  451. package/react/components/appCatalog/components/Showcase/ImageCarousel.js +25 -25
  452. package/react/components/appCatalog/components/Showcase/Modal.d.ts +18 -18
  453. package/react/components/appCatalog/components/Showcase/Modal.d.ts.map +1 -1
  454. package/react/components/appCatalog/components/Showcase/Modal.js +23 -23
  455. package/react/components/appCatalog/components/Showcase/Modal.js.map +1 -1
  456. package/react/components/appCatalog/components/Showcase/ReleaseNotes.d.ts +10 -9
  457. package/react/components/appCatalog/components/Showcase/ReleaseNotes.d.ts.map +1 -1
  458. package/react/components/appCatalog/components/Showcase/ReleaseNotes.js +18 -18
  459. package/react/components/appCatalog/components/Showcase/SupportNotes.d.ts +12 -11
  460. package/react/components/appCatalog/components/Showcase/SupportNotes.d.ts.map +1 -1
  461. package/react/components/appCatalog/components/Showcase/SupportNotes.js +26 -26
  462. package/react/components/appCatalog/components/Showcase/VersionNotes.d.ts +10 -9
  463. package/react/components/appCatalog/components/Showcase/VersionNotes.d.ts.map +1 -1
  464. package/react/components/appCatalog/components/Showcase/VersionNotes.js +21 -21
  465. package/react/components/appCatalog/components/Showcase/defaults.d.ts +3 -3
  466. package/react/components/appCatalog/components/Showcase/defaults.js +3 -3
  467. package/react/components/appCatalog/components/Toast.d.ts +15 -11
  468. package/react/components/appCatalog/components/Toast.d.ts.map +1 -1
  469. package/react/components/appCatalog/components/Toast.js +38 -38
  470. package/react/components/appCatalog/components/Toast.js.map +1 -1
  471. package/react/components/appCatalog/components/helpers.d.ts +2 -2
  472. package/react/components/appCatalog/components/helpers.js +33 -33
  473. package/react/components/appCatalog/components/helpers.js.map +1 -1
  474. package/react/components/appCatalog/index.d.ts +1 -1
  475. package/react/components/appCatalog/index.js +1 -1
  476. package/react/components/appCatalog/modules/AppDirectory.d.ts +12 -12
  477. package/react/components/appCatalog/modules/AppDirectory.d.ts.map +1 -1
  478. package/react/components/appCatalog/modules/AppDirectory.js +10 -10
  479. package/react/components/appCatalog/modules/FDC3.d.ts +51 -51
  480. package/react/components/appCatalog/modules/FDC3.js +146 -146
  481. package/react/components/appCatalog/modules/FDC3.js.map +1 -1
  482. package/react/components/appCatalog/stores/appStore.d.ts +9 -9
  483. package/react/components/appCatalog/stores/appStore.js +47 -47
  484. package/react/components/appCatalog/stores/appStore.js.map +1 -1
  485. package/react/components/appCatalog/stores/storeActions.d.ts +145 -145
  486. package/react/components/appCatalog/stores/storeActions.d.ts.map +1 -1
  487. package/react/components/appCatalog/stores/storeActions.js +423 -423
  488. package/react/components/appCatalog/stores/storeActions.js.map +1 -1
  489. package/react/components/bloomberg/BloombergFDC3.d.ts +3 -3
  490. package/react/components/bloomberg/BloombergFDC3.d.ts.map +1 -1
  491. package/react/components/bloomberg/BloombergFDC3.js +71 -71
  492. package/react/components/bloomberg/BloombergFDC3.js.map +1 -1
  493. package/react/components/bloomberg/BloombergLink.d.ts +11 -11
  494. package/react/components/bloomberg/BloombergLink.d.ts.map +1 -1
  495. package/react/components/bloomberg/BloombergLink.js +48 -48
  496. package/react/components/bloomberg/BloombergLink.js.map +1 -1
  497. package/react/components/bloomberg/BloombergRelay.d.ts +9 -9
  498. package/react/components/bloomberg/BloombergRelay.d.ts.map +1 -1
  499. package/react/components/bloomberg/BloombergRelay.js +74 -68
  500. package/react/components/bloomberg/BloombergRelay.js.map +1 -1
  501. package/react/components/common/Button.d.ts +35 -35
  502. package/react/components/common/Button.js +21 -21
  503. package/react/components/common/Button.js.map +1 -1
  504. package/react/components/common/ButtonIcon.d.ts +4 -4
  505. package/react/components/common/ButtonIcon.js +11 -11
  506. package/react/components/common/ButtonIcon.js.map +1 -1
  507. package/react/components/common/ButtonRow.d.ts +15 -15
  508. package/react/components/common/ButtonRow.js +24 -24
  509. package/react/components/common/ButtonRow.js.map +1 -1
  510. package/react/components/common/Checkbox.d.ts +12 -12
  511. package/react/components/common/Checkbox.js +19 -19
  512. package/react/components/common/Checkbox.js.map +1 -1
  513. package/react/components/common/ContextMenu.d.ts +13 -13
  514. package/react/components/common/ContextMenu.d.ts.map +1 -1
  515. package/react/components/common/ContextMenu.js +62 -62
  516. package/react/components/common/ContextMenu.js.map +1 -1
  517. package/react/components/common/Dropdown.d.ts +14 -14
  518. package/react/components/common/Dropdown.d.ts.map +1 -1
  519. package/react/components/common/Dropdown.js +82 -82
  520. package/react/components/common/Dropdown.js.map +1 -1
  521. package/react/components/common/DropdownButton.d.ts +10 -10
  522. package/react/components/common/DropdownButton.d.ts.map +1 -1
  523. package/react/components/common/DropdownButton.js +52 -52
  524. package/react/components/common/DropdownButton.js.map +1 -1
  525. package/react/components/common/ErrorBoundary.d.ts +35 -35
  526. package/react/components/common/ErrorBoundary.d.ts.map +1 -1
  527. package/react/components/common/ErrorBoundary.js +43 -43
  528. package/react/components/common/ErrorBoundary.js.map +1 -1
  529. package/react/components/common/FinsembleIcon.d.ts +20 -20
  530. package/react/components/common/FinsembleIcon.d.ts.map +1 -1
  531. package/react/components/common/FinsembleIcon.js +150 -150
  532. package/react/components/common/FinsembleIcon.js.map +1 -1
  533. package/react/components/common/FinsembleToggle.d.ts +9 -9
  534. package/react/components/common/FinsembleToggle.d.ts.map +1 -1
  535. package/react/components/common/FinsembleToggle.js +11 -11
  536. package/react/components/common/FinsembleToggleButtonBar.d.ts +15 -15
  537. package/react/components/common/FinsembleToggleButtonBar.d.ts.map +1 -1
  538. package/react/components/common/FinsembleToggleButtonBar.js +39 -39
  539. package/react/components/common/FinsembleToggleButtonBar.js.map +1 -1
  540. package/react/components/common/Header.d.ts +13 -13
  541. package/react/components/common/Header.d.ts.map +1 -1
  542. package/react/components/common/Header.js +20 -20
  543. package/react/components/common/Header.js.map +1 -1
  544. package/react/components/common/TimeSelect.d.ts +16 -16
  545. package/react/components/common/TimeSelect.d.ts.map +1 -1
  546. package/react/components/common/TimeSelect.js +173 -173
  547. package/react/components/common/TimeSelect.js.map +1 -1
  548. package/react/components/common/css/icon.css +0 -2
  549. package/react/components/common/loadCSSAsStyle.d.ts +3 -0
  550. package/react/components/common/loadCSSAsStyle.d.ts.map +1 -0
  551. package/react/components/common/loadCSSAsStyle.js +18 -0
  552. package/react/components/common/loadCSSAsStyle.js.map +1 -0
  553. package/react/components/downloadManager/DownloadItem.d.ts +14 -14
  554. package/react/components/downloadManager/DownloadItem.d.ts.map +1 -1
  555. package/react/components/downloadManager/DownloadItem.js +76 -76
  556. package/react/components/downloadManager/DownloadItem.js.map +1 -1
  557. package/react/components/downloadManager/DownloadManager.d.ts +9 -9
  558. package/react/components/downloadManager/DownloadManager.d.ts.map +1 -1
  559. package/react/components/downloadManager/DownloadManager.js +39 -39
  560. package/react/components/downloadManager/DownloadManager.js.map +1 -1
  561. package/react/components/downloadManager/index.d.ts +1 -1
  562. package/react/components/downloadManager/index.js +1 -1
  563. package/react/components/favorites/FavoriteMaker.d.ts +17 -17
  564. package/react/components/favorites/FavoriteMaker.d.ts.map +1 -1
  565. package/react/components/favorites/FavoriteMaker.js +41 -41
  566. package/react/components/favorites/FavoriteMaker.js.map +1 -1
  567. package/react/components/favorites/FavoritesShell.d.ts +7 -7
  568. package/react/components/favorites/FavoritesShell.d.ts.map +1 -1
  569. package/react/components/favorites/FavoritesShell.js +40 -40
  570. package/react/components/favorites/FavoritesShell.js.map +1 -1
  571. package/react/components/fdc3Resolver/ResolverContainer.d.ts +12 -8
  572. package/react/components/fdc3Resolver/ResolverContainer.d.ts.map +1 -1
  573. package/react/components/fdc3Resolver/ResolverContainer.js +98 -98
  574. package/react/components/fdc3Resolver/ResolverContainer.js.map +1 -1
  575. package/react/components/fdc3Resolver/ResolverDialog.d.ts +31 -31
  576. package/react/components/fdc3Resolver/ResolverDialog.d.ts.map +1 -1
  577. package/react/components/fdc3Resolver/ResolverDialog.js +167 -164
  578. package/react/components/fdc3Resolver/ResolverDialog.js.map +1 -1
  579. package/react/components/fdc3Resolver/index.d.ts +1 -1
  580. package/react/components/fdc3Resolver/index.js +1 -1
  581. package/react/components/icon/Icon.d.ts +21 -21
  582. package/react/components/icon/Icon.d.ts.map +1 -1
  583. package/react/components/icon/Icon.js +102 -102
  584. package/react/components/icon/Icon.js.map +1 -1
  585. package/react/components/icon/index.d.ts +1 -1
  586. package/react/components/icon/index.js +1 -1
  587. package/react/components/index.d.ts +28 -28
  588. package/react/components/index.js +28 -28
  589. package/react/components/legacyControls/FinsembleDialog.d.ts +18 -18
  590. package/react/components/legacyControls/FinsembleDialog.d.ts.map +1 -1
  591. package/react/components/legacyControls/FinsembleDialog.js +47 -47
  592. package/react/components/legacyControls/FinsembleDialog.js.map +1 -1
  593. package/react/components/legacyControls/FinsembleDialogButton.d.ts +16 -16
  594. package/react/components/legacyControls/FinsembleDialogButton.d.ts.map +1 -1
  595. package/react/components/legacyControls/FinsembleDialogButton.js +21 -21
  596. package/react/components/legacyControls/FinsembleDialogButton.js.map +1 -1
  597. package/react/components/legacyControls/FinsembleDialogQuestion.d.ts +14 -14
  598. package/react/components/legacyControls/FinsembleDialogQuestion.d.ts.map +1 -1
  599. package/react/components/legacyControls/FinsembleDialogQuestion.js +16 -16
  600. package/react/components/legacyControls/FinsembleDialogTextInput.d.ts +22 -22
  601. package/react/components/legacyControls/FinsembleDialogTextInput.d.ts.map +1 -1
  602. package/react/components/legacyControls/FinsembleDialogTextInput.js +64 -64
  603. package/react/components/legacyControls/FinsembleDialogTextInput.js.map +1 -1
  604. package/react/components/legacyControls/FinsembleDnDContext.d.ts +46 -46
  605. package/react/components/legacyControls/FinsembleDnDContext.d.ts.map +1 -1
  606. package/react/components/legacyControls/FinsembleDnDContext.js +308 -308
  607. package/react/components/legacyControls/FinsembleDnDContext.js.map +1 -1
  608. package/react/components/legacyControls/FinsembleDraggable.d.ts +15 -15
  609. package/react/components/legacyControls/FinsembleDraggable.d.ts.map +1 -1
  610. package/react/components/legacyControls/FinsembleDraggable.js +21 -21
  611. package/react/components/legacyControls/FinsembleDraggable.js.map +1 -1
  612. package/react/components/linker/LinkerMenu.d.ts +10 -6
  613. package/react/components/linker/LinkerMenu.d.ts.map +1 -1
  614. package/react/components/linker/LinkerMenu.js +155 -155
  615. package/react/components/linker/LinkerMenu.js.map +1 -1
  616. package/react/components/linker/LinkerMenuDeprecated.d.ts +13 -7
  617. package/react/components/linker/LinkerMenuDeprecated.d.ts.map +1 -1
  618. package/react/components/linker/LinkerMenuDeprecated.js +38 -38
  619. package/react/components/linker/LinkerMenuDeprecated.js.map +1 -1
  620. package/react/components/linker/index.d.ts +1 -1
  621. package/react/components/linker/index.js +1 -1
  622. package/react/components/linker/remoteRedux.d.ts +3 -3
  623. package/react/components/linker/remoteRedux.d.ts.map +1 -1
  624. package/react/components/linker/remoteRedux.js +10 -9
  625. package/react/components/linker/remoteRedux.js.map +1 -1
  626. package/react/components/menu/Menu.d.ts +29 -29
  627. package/react/components/menu/Menu.d.ts.map +1 -1
  628. package/react/components/menu/Menu.js +25 -25
  629. package/react/components/menu/Menu.js.map +1 -1
  630. package/react/components/menu/MenuAutoResizer.d.ts +19 -18
  631. package/react/components/menu/MenuAutoResizer.d.ts.map +1 -1
  632. package/react/components/menu/MenuAutoResizer.js +125 -67
  633. package/react/components/menu/MenuAutoResizer.js.map +1 -1
  634. package/react/components/menu/MenuContent.d.ts +11 -11
  635. package/react/components/menu/MenuContent.d.ts.map +1 -1
  636. package/react/components/menu/MenuContent.js +14 -14
  637. package/react/components/menu/MenuHotKey.d.ts +20 -20
  638. package/react/components/menu/MenuHotKey.d.ts.map +1 -1
  639. package/react/components/menu/MenuHotKey.js +45 -45
  640. package/react/components/menu/MenuHotKey.js.map +1 -1
  641. package/react/components/menu/MenuItem.d.ts +19 -19
  642. package/react/components/menu/MenuItem.d.ts.map +1 -1
  643. package/react/components/menu/MenuItem.js +28 -21
  644. package/react/components/menu/MenuItem.js.map +1 -1
  645. package/react/components/menu/MenuPortal.d.ts +7 -7
  646. package/react/components/menu/MenuPortal.d.ts.map +1 -1
  647. package/react/components/menu/MenuPortal.js +321 -245
  648. package/react/components/menu/MenuPortal.js.map +1 -1
  649. package/react/components/menu/MenuShell.d.ts +31 -31
  650. package/react/components/menu/MenuShell.d.ts.map +1 -1
  651. package/react/components/menu/MenuShell.js +47 -47
  652. package/react/components/menu/MenuToggle.d.ts +7 -7
  653. package/react/components/menu/MenuToggle.d.ts.map +1 -1
  654. package/react/components/menu/MenuToggle.js +19 -18
  655. package/react/components/menu/MenuToggle.js.map +1 -1
  656. package/react/components/menu/index.d.ts +5 -5
  657. package/react/components/menu/index.js +5 -5
  658. package/react/components/menu/keyboardNavigation.d.ts +13 -13
  659. package/react/components/menu/keyboardNavigation.d.ts.map +1 -1
  660. package/react/components/menu/keyboardNavigation.js +197 -195
  661. package/react/components/menu/keyboardNavigation.js.map +1 -1
  662. package/react/components/menu/menuContext.d.ts +16 -17
  663. package/react/components/menu/menuContext.d.ts.map +1 -1
  664. package/react/components/menu/menuContext.js +8 -8
  665. package/react/components/menu/menuHelpers.d.ts +32 -32
  666. package/react/components/menu/menuHelpers.d.ts.map +1 -1
  667. package/react/components/menu/menuHelpers.js +112 -112
  668. package/react/components/menu/menuHelpers.js.map +1 -1
  669. package/react/components/notifications/components/NoNotifications.d.ts +3 -3
  670. package/react/components/notifications/components/NoNotifications.d.ts.map +1 -1
  671. package/react/components/notifications/components/NoNotifications.js +4 -4
  672. package/react/components/notifications/components/notificationsCenter/NotificationCenterUtils.d.ts +18 -18
  673. package/react/components/notifications/components/notificationsCenter/NotificationCenterUtils.d.ts.map +1 -1
  674. package/react/components/notifications/components/notificationsCenter/NotificationCenterUtils.js +83 -83
  675. package/react/components/notifications/components/notificationsCenter/NotificationCenterUtils.js.map +1 -1
  676. package/react/components/notifications/components/notificationsCenter/NotificationsCenter.d.ts +5 -5
  677. package/react/components/notifications/components/notificationsCenter/NotificationsCenter.d.ts.map +1 -1
  678. package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js +44 -44
  679. package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js.map +1 -1
  680. package/react/components/notifications/components/notificationsCenter/components/CardView.d.ts +4 -4
  681. package/react/components/notifications/components/notificationsCenter/components/CardView.d.ts.map +1 -1
  682. package/react/components/notifications/components/notificationsCenter/components/CardView.js +91 -91
  683. package/react/components/notifications/components/notificationsCenter/components/CardView.js.map +1 -1
  684. package/react/components/notifications/components/notificationsCenter/components/Drawer.d.ts +7 -7
  685. package/react/components/notifications/components/notificationsCenter/components/Drawer.d.ts.map +1 -1
  686. package/react/components/notifications/components/notificationsCenter/components/Drawer.js +4 -4
  687. package/react/components/notifications/components/notificationsCenter/components/DrawerControls.d.ts +3 -3
  688. package/react/components/notifications/components/notificationsCenter/components/DrawerControls.d.ts.map +1 -1
  689. package/react/components/notifications/components/notificationsCenter/components/DrawerControls.js +93 -93
  690. package/react/components/notifications/components/notificationsCenter/components/DrawerControls.js.map +1 -1
  691. package/react/components/notifications/components/notificationsCenter/components/DrawerHeader.d.ts +7 -7
  692. package/react/components/notifications/components/notificationsCenter/components/DrawerHeader.d.ts.map +1 -1
  693. package/react/components/notifications/components/notificationsCenter/components/DrawerHeader.js +80 -77
  694. package/react/components/notifications/components/notificationsCenter/components/DrawerHeader.js.map +1 -1
  695. package/react/components/notifications/components/notificationsCenter/components/ListView.d.ts +14 -14
  696. package/react/components/notifications/components/notificationsCenter/components/ListView.d.ts.map +1 -1
  697. package/react/components/notifications/components/notificationsCenter/components/ListView.js +150 -150
  698. package/react/components/notifications/components/notificationsCenter/components/ListView.js.map +1 -1
  699. package/react/components/notifications/components/notificationsCenter/components/NotificationCenterMainView.d.ts +18 -18
  700. package/react/components/notifications/components/notificationsCenter/components/NotificationCenterMainView.d.ts.map +1 -1
  701. package/react/components/notifications/components/notificationsCenter/components/NotificationCenterMainView.js +68 -68
  702. package/react/components/notifications/components/notificationsCenter/components/NotificationCenterMainView.js.map +1 -1
  703. package/react/components/notifications/components/notificationsCenter/components/NotificationDetailsView.d.ts +6 -6
  704. package/react/components/notifications/components/notificationsCenter/components/NotificationDetailsView.d.ts.map +1 -1
  705. package/react/components/notifications/components/notificationsCenter/components/NotificationDetailsView.js +63 -63
  706. package/react/components/notifications/components/notificationsCenter/components/NotificationDetailsView.js.map +1 -1
  707. package/react/components/notifications/components/notificationsCenter/components/NotificationsCenterWindow.d.ts +9 -9
  708. package/react/components/notifications/components/notificationsCenter/components/NotificationsCenterWindow.d.ts.map +1 -1
  709. package/react/components/notifications/components/notificationsCenter/components/NotificationsCenterWindow.js +312 -303
  710. package/react/components/notifications/components/notificationsCenter/components/NotificationsCenterWindow.js.map +1 -1
  711. package/react/components/notifications/components/notificationsToasts/NotificationsToasts.d.ts +4 -4
  712. package/react/components/notifications/components/notificationsToasts/NotificationsToasts.d.ts.map +1 -1
  713. package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js +220 -220
  714. package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js.map +1 -1
  715. package/react/components/notifications/components/shared/CheckButton.d.ts +5 -5
  716. package/react/components/notifications/components/shared/CheckButton.d.ts.map +1 -1
  717. package/react/components/notifications/components/shared/CheckButton.js +38 -38
  718. package/react/components/notifications/components/shared/CheckButton.js.map +1 -1
  719. package/react/components/notifications/components/shared/IconButton.d.ts +10 -10
  720. package/react/components/notifications/components/shared/IconButton.d.ts.map +1 -1
  721. package/react/components/notifications/components/shared/IconButton.js +10 -10
  722. package/react/components/notifications/components/shared/IconButton.js.map +1 -1
  723. package/react/components/notifications/components/shared/NotificationCardShell.d.ts +20 -20
  724. package/react/components/notifications/components/shared/NotificationCardShell.d.ts.map +1 -1
  725. package/react/components/notifications/components/shared/NotificationCardShell.js +92 -92
  726. package/react/components/notifications/components/shared/NotificationCardShell.js.map +1 -1
  727. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyActions.d.ts +5 -5
  728. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyActions.d.ts.map +1 -1
  729. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyActions.js +31 -31
  730. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyActions.js.map +1 -1
  731. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyContentLogo.d.ts +4 -4
  732. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyContentLogo.d.ts.map +1 -1
  733. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyContentLogo.js +6 -6
  734. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.d.ts +8 -8
  735. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.d.ts.map +1 -1
  736. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.js +12 -12
  737. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.d.ts +13 -13
  738. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.d.ts.map +1 -1
  739. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.js +149 -149
  740. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.js.map +1 -1
  741. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderLogo.d.ts +4 -4
  742. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderLogo.d.ts.map +1 -1
  743. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderLogo.js +7 -7
  744. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderShell.d.ts +10 -10
  745. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderShell.d.ts.map +1 -1
  746. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderShell.js +18 -18
  747. package/react/components/notifications/constants.d.ts +9 -9
  748. package/react/components/notifications/constants.js +11 -11
  749. package/react/components/notifications/css/notification-card.css +1 -1
  750. package/react/components/notifications/icons/EnvelopeClose.d.ts +2 -2
  751. package/react/components/notifications/icons/EnvelopeClose.d.ts.map +1 -1
  752. package/react/components/notifications/icons/EnvelopeClose.js +11 -11
  753. package/react/components/notifications/icons/EnvelopeOpen.d.ts +2 -2
  754. package/react/components/notifications/icons/EnvelopeOpen.d.ts.map +1 -1
  755. package/react/components/notifications/icons/EnvelopeOpen.js +10 -10
  756. package/react/components/notifications/icons/SnoozeIcon.d.ts +2 -2
  757. package/react/components/notifications/icons/SnoozeIcon.d.ts.map +1 -1
  758. package/react/components/notifications/icons/SnoozeIcon.js +12 -12
  759. package/react/components/notifications/index.d.ts +8 -8
  760. package/react/components/notifications/index.js +8 -8
  761. package/react/components/notifications/notificationsContext.d.ts +6 -7
  762. package/react/components/notifications/notificationsContext.d.ts.map +1 -1
  763. package/react/components/notifications/notificationsContext.js +6 -6
  764. package/react/components/notifications/types.d.ts +90 -90
  765. package/react/components/notifications/types.d.ts.map +1 -1
  766. package/react/components/notifications/types.js +1 -1
  767. package/react/components/notifications/utils.d.ts +12 -12
  768. package/react/components/notifications/utils.js +70 -70
  769. package/react/components/notifications/utils.js.map +1 -1
  770. package/react/components/processMonitor/ProcessMonitor.d.ts +6 -6
  771. package/react/components/processMonitor/ProcessMonitor.d.ts.map +1 -1
  772. package/react/components/processMonitor/ProcessMonitor.js +64 -64
  773. package/react/components/processMonitor/ProcessMonitor.js.map +1 -1
  774. package/react/components/processMonitor/ProcessMonitorTypes.d.ts +22 -22
  775. package/react/components/processMonitor/ProcessMonitorTypes.d.ts.map +1 -1
  776. package/react/components/processMonitor/ProcessMonitorTypes.js +1 -1
  777. package/react/components/processMonitor/components/ChildWindow.d.ts +11 -11
  778. package/react/components/processMonitor/components/ChildWindow.d.ts.map +1 -1
  779. package/react/components/processMonitor/components/ChildWindow.js +32 -32
  780. package/react/components/processMonitor/components/ChildWindow.js.map +1 -1
  781. package/react/components/processMonitor/components/ListHeader.d.ts +8 -8
  782. package/react/components/processMonitor/components/ListHeader.d.ts.map +1 -1
  783. package/react/components/processMonitor/components/ListHeader.js +50 -50
  784. package/react/components/processMonitor/components/ListHeader.js.map +1 -1
  785. package/react/components/processMonitor/components/Process.d.ts +9 -9
  786. package/react/components/processMonitor/components/Process.d.ts.map +1 -1
  787. package/react/components/processMonitor/components/Process.js +10 -10
  788. package/react/components/processMonitor/components/ProcessStatistics.d.ts +10 -10
  789. package/react/components/processMonitor/components/ProcessStatistics.d.ts.map +1 -1
  790. package/react/components/processMonitor/components/ProcessStatistics.js +64 -64
  791. package/react/components/processMonitor/components/ProcessStatistics.js.map +1 -1
  792. package/react/components/processMonitor/constants.d.ts +8 -8
  793. package/react/components/processMonitor/constants.js +23 -23
  794. package/react/components/processMonitor/helpers.d.ts +17 -17
  795. package/react/components/processMonitor/helpers.js +48 -48
  796. package/react/components/processMonitor/helpers.js.map +1 -1
  797. package/react/components/processMonitor/index.d.ts +1 -1
  798. package/react/components/processMonitor/index.js +1 -1
  799. package/react/components/processMonitor/stores/ProcessMonitorStore.d.ts +58 -58
  800. package/react/components/processMonitor/stores/ProcessMonitorStore.d.ts.map +1 -1
  801. package/react/components/processMonitor/stores/ProcessMonitorStore.js +264 -264
  802. package/react/components/processMonitor/stores/ProcessMonitorStore.js.map +1 -1
  803. package/react/components/quickComponentForm/QuickComponentForm.d.ts +7 -7
  804. package/react/components/quickComponentForm/QuickComponentForm.d.ts.map +1 -1
  805. package/react/components/quickComponentForm/QuickComponentForm.js +123 -123
  806. package/react/components/quickComponentForm/QuickComponentForm.js.map +1 -1
  807. package/react/components/quickComponentForm/index.d.ts +1 -1
  808. package/react/components/quickComponentForm/index.js +1 -1
  809. package/react/components/search/Highlight.d.ts +12 -12
  810. package/react/components/search/Highlight.d.ts.map +1 -1
  811. package/react/components/search/Highlight.js +41 -41
  812. package/react/components/search/Highlight.js.map +1 -1
  813. package/react/components/search/Search.d.ts +5 -5
  814. package/react/components/search/Search.d.ts.map +1 -1
  815. package/react/components/search/Search.js +19 -27
  816. package/react/components/search/Search.js.map +1 -1
  817. package/react/components/search/SearchBestMatch.d.ts +6 -6
  818. package/react/components/search/SearchBestMatch.d.ts.map +1 -1
  819. package/react/components/search/SearchBestMatch.js +38 -38
  820. package/react/components/search/SearchBestMatch.js.map +1 -1
  821. package/react/components/search/SearchInput.d.ts +6 -6
  822. package/react/components/search/SearchInput.d.ts.map +1 -1
  823. package/react/components/search/SearchInput.js +26 -26
  824. package/react/components/search/SearchInput.js.map +1 -1
  825. package/react/components/search/SearchProviderResults.d.ts +5 -5
  826. package/react/components/search/SearchProviderResults.d.ts.map +1 -1
  827. package/react/components/search/SearchProviderResults.js +26 -26
  828. package/react/components/search/SearchResult.d.ts +12 -12
  829. package/react/components/search/SearchResult.d.ts.map +1 -1
  830. package/react/components/search/SearchResult.js +52 -47
  831. package/react/components/search/SearchResult.js.map +1 -1
  832. package/react/components/search/SearchResults.d.ts +3 -3
  833. package/react/components/search/SearchResults.d.ts.map +1 -1
  834. package/react/components/search/SearchResults.js +21 -21
  835. package/react/components/search/SearchResults.js.map +1 -1
  836. package/react/components/search/index.d.ts +1 -1
  837. package/react/components/search/index.js +1 -1
  838. package/react/components/shared/BellIcon.d.ts +3 -3
  839. package/react/components/shared/BellIcon.d.ts.map +1 -1
  840. package/react/components/shared/BellIcon.js +7 -7
  841. package/react/components/shared/BellIconCrossed.d.ts +3 -3
  842. package/react/components/shared/BellIconCrossed.d.ts.map +1 -1
  843. package/react/components/shared/BellIconCrossed.js +9 -9
  844. package/react/components/shared/Button.d.ts +9 -9
  845. package/react/components/shared/Button.d.ts.map +1 -1
  846. package/react/components/shared/Button.js +5 -5
  847. package/react/components/shared/ConditionalWrapper.d.ts +8 -8
  848. package/react/components/shared/ConditionalWrapper.d.ts.map +1 -1
  849. package/react/components/shared/ConditionalWrapper.js +5 -5
  850. package/react/components/shared/DefaultDropdownButton.d.ts +18 -18
  851. package/react/components/shared/DefaultDropdownButton.d.ts.map +1 -1
  852. package/react/components/shared/DefaultDropdownButton.js +117 -117
  853. package/react/components/shared/DefaultDropdownButton.js.map +1 -1
  854. package/react/components/shared/Tag.d.ts +16 -8
  855. package/react/components/shared/Tag.d.ts.map +1 -1
  856. package/react/components/shared/Tag.js +22 -22
  857. package/react/components/shared/TagsMenu.d.ts +36 -36
  858. package/react/components/shared/TagsMenu.js +77 -77
  859. package/react/components/shared/TagsMenu.js.map +1 -1
  860. package/react/components/shared/addProtocolToValidURL.d.ts +7 -7
  861. package/react/components/shared/addProtocolToValidURL.js +11 -11
  862. package/react/components/shared/openQuitConfirmationDialog.d.ts +1 -1
  863. package/react/components/shared/openQuitConfirmationDialog.d.ts.map +1 -1
  864. package/react/components/shared/openQuitConfirmationDialog.js +73 -71
  865. package/react/components/shared/openQuitConfirmationDialog.js.map +1 -1
  866. package/react/components/shared/validateURL.d.ts +19 -19
  867. package/react/components/shared/validateURL.js +29 -29
  868. package/react/components/singleInputDialog/SingleInputDialog.d.ts +12 -8
  869. package/react/components/singleInputDialog/SingleInputDialog.d.ts.map +1 -1
  870. package/react/components/singleInputDialog/SingleInputDialog.js +112 -112
  871. package/react/components/singleInputDialog/SingleInputDialog.js.map +1 -1
  872. package/react/components/singleInputDialog/index.d.ts +1 -1
  873. package/react/components/singleInputDialog/index.js +1 -1
  874. package/react/components/system/System.d.ts +34 -34
  875. package/react/components/system/System.d.ts.map +1 -1
  876. package/react/components/system/System.js +92 -93
  877. package/react/components/system/System.js.map +1 -1
  878. package/react/components/system/SystemTrayComponentShell.d.ts +14 -14
  879. package/react/components/system/SystemTrayComponentShell.d.ts.map +1 -1
  880. package/react/components/system/SystemTrayComponentShell.js +47 -45
  881. package/react/components/system/SystemTrayComponentShell.js.map +1 -1
  882. package/react/components/system/index.d.ts +2 -2
  883. package/react/components/system/index.js +2 -2
  884. package/react/components/toolbar/AlwaysOnTop.d.ts +10 -10
  885. package/react/components/toolbar/AlwaysOnTop.d.ts.map +1 -1
  886. package/react/components/toolbar/AlwaysOnTop.js +95 -78
  887. package/react/components/toolbar/AlwaysOnTop.js.map +1 -1
  888. package/react/components/toolbar/AutoArrange.d.ts +12 -12
  889. package/react/components/toolbar/AutoArrange.d.ts.map +1 -1
  890. package/react/components/toolbar/AutoArrange.js +36 -36
  891. package/react/components/toolbar/AutoArrange.js.map +1 -1
  892. package/react/components/toolbar/DownloadButton.d.ts +10 -10
  893. package/react/components/toolbar/DownloadButton.d.ts.map +1 -1
  894. package/react/components/toolbar/DownloadButton.js +43 -46
  895. package/react/components/toolbar/DownloadButton.js.map +1 -1
  896. package/react/components/toolbar/DragHandle.d.ts +11 -11
  897. package/react/components/toolbar/DragHandle.d.ts.map +1 -1
  898. package/react/components/toolbar/DragHandle.js +49 -49
  899. package/react/components/toolbar/MinimizeAll.d.ts +11 -11
  900. package/react/components/toolbar/MinimizeAll.d.ts.map +1 -1
  901. package/react/components/toolbar/MinimizeAll.js +24 -24
  902. package/react/components/toolbar/MinimizeAll.js.map +1 -1
  903. package/react/components/toolbar/NotificationControl.d.ts +12 -12
  904. package/react/components/toolbar/NotificationControl.d.ts.map +1 -1
  905. package/react/components/toolbar/NotificationControl.js +85 -79
  906. package/react/components/toolbar/NotificationControl.js.map +1 -1
  907. package/react/components/toolbar/RevealAll.d.ts +11 -11
  908. package/react/components/toolbar/RevealAll.d.ts.map +1 -1
  909. package/react/components/toolbar/RevealAll.js +26 -26
  910. package/react/components/toolbar/RevealAll.js.map +1 -1
  911. package/react/components/toolbar/SddButton.d.ts +6 -6
  912. package/react/components/toolbar/SddButton.d.ts.map +1 -1
  913. package/react/components/toolbar/SddButton.js +27 -27
  914. package/react/components/toolbar/SddButton.js.map +1 -1
  915. package/react/components/toolbar/ToolbarIcon.d.ts +6 -6
  916. package/react/components/toolbar/ToolbarIcon.d.ts.map +1 -1
  917. package/react/components/toolbar/ToolbarIcon.js +29 -41
  918. package/react/components/toolbar/ToolbarIcon.js.map +1 -1
  919. package/react/components/toolbar/ToolbarSection.d.ts +16 -16
  920. package/react/components/toolbar/ToolbarSection.d.ts.map +1 -1
  921. package/react/components/toolbar/ToolbarSection.js +41 -41
  922. package/react/components/toolbar/ToolbarSection.js.map +1 -1
  923. package/react/components/toolbar/ToolbarShell.d.ts +20 -20
  924. package/react/components/toolbar/ToolbarShell.d.ts.map +1 -1
  925. package/react/components/toolbar/ToolbarShell.js +35 -35
  926. package/react/components/toolbar/ToolbarShell.js.map +1 -1
  927. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncherMenu.d.ts +10 -10
  928. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncherMenu.d.ts.map +1 -1
  929. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncherMenu.js +26 -33
  930. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncherMenu.js.map +1 -1
  931. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/AdvancedAppLauncher.d.ts +43 -42
  932. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/AdvancedAppLauncher.d.ts.map +1 -1
  933. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/AdvancedAppLauncher.js +97 -89
  934. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/AdvancedAppLauncher.js.map +1 -1
  935. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/AddNewAppForm.d.ts +93 -93
  936. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/AddNewAppForm.js +334 -333
  937. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/AddNewAppForm.js.map +1 -1
  938. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/AddNewFolder.d.ts +10 -10
  939. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/AddNewFolder.js +15 -15
  940. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/AppActionsMenu.d.ts +56 -56
  941. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/AppActionsMenu.js +175 -175
  942. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/AppActionsMenu.js.map +1 -1
  943. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/AppDefinition.d.ts +33 -33
  944. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/AppDefinition.d.ts.map +1 -1
  945. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/AppDefinition.js +53 -53
  946. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/AppDefinition.js.map +1 -1
  947. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/AppTagsList.d.ts +16 -16
  948. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/AppTagsList.js +43 -43
  949. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/AppTagsList.js.map +1 -1
  950. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/Content.d.ts +38 -38
  951. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/Content.d.ts.map +1 -1
  952. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/Content.js +172 -171
  953. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/Content.js.map +1 -1
  954. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/FilterSort.d.ts +20 -20
  955. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/FilterSort.js +52 -52
  956. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/FilterSort.js.map +1 -1
  957. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/FoldersList.d.ts +59 -59
  958. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/FoldersList.d.ts.map +1 -1
  959. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/FoldersList.js +308 -295
  960. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/FoldersList.js.map +1 -1
  961. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/LeftNavBottomLinks.d.ts +25 -25
  962. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/LeftNavBottomLinks.js +103 -103
  963. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/LeftNavBottomLinks.js.map +1 -1
  964. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/NoAppsFound.d.ts +11 -11
  965. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/NoAppsFound.js +9 -9
  966. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/SearchBox.d.ts +18 -18
  967. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/SearchBox.js +51 -51
  968. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/SortBy.d.ts +13 -13
  969. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/SortBy.js +34 -34
  970. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/TagsList.d.ts +19 -19
  971. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/TagsList.js +38 -38
  972. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/ToggleFavoriteDropdown.d.ts +8 -8
  973. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/ToggleFavoriteDropdown.d.ts.map +1 -1
  974. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/ToggleFavoriteDropdown.js +26 -26
  975. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/components/ToggleFavoriteDropdown.js.map +1 -1
  976. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/modules/AppDirectory.d.ts +8 -8
  977. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/modules/AppDirectory.js +10 -10
  978. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/modules/FDC3.d.ts +55 -55
  979. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/modules/FDC3.d.ts.map +1 -1
  980. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/modules/FDC3.js +145 -145
  981. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/modules/FDC3.js.map +1 -1
  982. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/stores/LauncherStore.d.ts +5 -5
  983. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/stores/LauncherStore.js +21 -21
  984. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/stores/LauncherStore.js.map +1 -1
  985. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/stores/StoreActions.d.ts +96 -96
  986. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/stores/StoreActions.d.ts.map +1 -1
  987. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/stores/StoreActions.js +548 -546
  988. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/stores/StoreActions.js.map +1 -1
  989. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/utils/sort-functions.d.ts +18 -18
  990. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/utils/sort-functions.js +55 -55
  991. package/react/components/toolbar/advancedAppLauncher/finsembleAdvancedAppLauncher/utils/sort-functions.js.map +1 -1
  992. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/AdvancedAppLauncher.d.ts +16 -16
  993. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/AdvancedAppLauncher.d.ts.map +1 -1
  994. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/AdvancedAppLauncher.js +279 -240
  995. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/AdvancedAppLauncher.js.map +1 -1
  996. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/AddNewAppForm.d.ts +96 -96
  997. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/AddNewAppForm.js +329 -328
  998. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/AddNewAppForm.js.map +1 -1
  999. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/AppDefinition.d.ts +40 -40
  1000. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/AppDefinition.d.ts.map +1 -1
  1001. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/AppDefinition.js +61 -61
  1002. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/AppDefinition.js.map +1 -1
  1003. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/AppTagsList.d.ts +17 -17
  1004. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/AppTagsList.js +42 -42
  1005. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/AppTagsList.js.map +1 -1
  1006. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/Content.d.ts +18 -18
  1007. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/Content.d.ts.map +1 -1
  1008. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/Content.js +114 -114
  1009. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/Content.js.map +1 -1
  1010. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/FoldersList.d.ts +62 -62
  1011. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/FoldersList.js +260 -271
  1012. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/FoldersList.js.map +1 -1
  1013. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/LeftNavBottomLinks.d.ts +9 -9
  1014. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/LeftNavBottomLinks.d.ts.map +1 -1
  1015. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/LeftNavBottomLinks.js +36 -37
  1016. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/LeftNavBottomLinks.js.map +1 -1
  1017. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/NoAppsFound.d.ts +11 -11
  1018. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/NoAppsFound.js +9 -9
  1019. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/SearchBox.d.ts +12 -12
  1020. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/SearchBox.js +23 -23
  1021. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/SortBy.d.ts +12 -12
  1022. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/SortBy.js +16 -16
  1023. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/SortBy.js.map +1 -1
  1024. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/TagsList.d.ts +11 -11
  1025. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/TagsList.js +15 -15
  1026. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/constants.d.ts +4 -4
  1027. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/constants.js +4 -4
  1028. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/initializeStore.d.ts +26 -26
  1029. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/initializeStore.d.ts.map +1 -1
  1030. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/initializeStore.js +44 -42
  1031. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/initializeStore.js.map +1 -1
  1032. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/types.d.ts +19 -19
  1033. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/types.d.ts.map +1 -1
  1034. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/types.js +1 -1
  1035. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/utils/sort-functions.d.ts +16 -16
  1036. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/utils/sort-functions.js +46 -46
  1037. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/utils/sort-functions.js.map +1 -1
  1038. package/react/components/toolbar/appLauncher/AppLauncherMenu.d.ts +28 -28
  1039. package/react/components/toolbar/appLauncher/AppLauncherMenu.d.ts.map +1 -1
  1040. package/react/components/toolbar/appLauncher/AppLauncherMenu.js +48 -48
  1041. package/react/components/toolbar/appLauncher/AppLauncherMenu.js.map +1 -1
  1042. package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.d.ts +29 -29
  1043. package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.d.ts.map +1 -1
  1044. package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.js +54 -48
  1045. package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.js.map +1 -1
  1046. package/react/components/toolbar/appLauncher/appLauncher.css +0 -6
  1047. package/react/components/toolbar/appLauncher/components/componentList.d.ts +14 -7
  1048. package/react/components/toolbar/appLauncher/components/componentList.d.ts.map +1 -1
  1049. package/react/components/toolbar/appLauncher/components/componentList.js +133 -133
  1050. package/react/components/toolbar/appLauncher/components/componentList.js.map +1 -1
  1051. package/react/components/toolbar/appLauncher/stores/appLauncherStore.d.ts +44 -44
  1052. package/react/components/toolbar/appLauncher/stores/appLauncherStore.d.ts.map +1 -1
  1053. package/react/components/toolbar/appLauncher/stores/appLauncherStore.js +274 -259
  1054. package/react/components/toolbar/appLauncher/stores/appLauncherStore.js.map +1 -1
  1055. package/react/components/toolbar/bloomberg/BloombergStatus.d.ts +4 -4
  1056. package/react/components/toolbar/bloomberg/BloombergStatus.d.ts.map +1 -1
  1057. package/react/components/toolbar/bloomberg/BloombergStatus.js +109 -109
  1058. package/react/components/toolbar/bloomberg/BloombergStatus.js.map +1 -1
  1059. package/react/components/toolbar/dashbar/Dashbar.d.ts +4 -4
  1060. package/react/components/toolbar/dashbar/Dashbar.d.ts.map +1 -1
  1061. package/react/components/toolbar/dashbar/Dashbar.js +441 -449
  1062. package/react/components/toolbar/dashbar/Dashbar.js.map +1 -1
  1063. package/react/components/toolbar/dashbar/DashbarItem.d.ts +17 -17
  1064. package/react/components/toolbar/dashbar/DashbarItem.d.ts.map +1 -1
  1065. package/react/components/toolbar/dashbar/DashbarItem.js +58 -58
  1066. package/react/components/toolbar/dashbar/DashbarItem.js.map +1 -1
  1067. package/react/components/toolbar/index.d.ts +18 -18
  1068. package/react/components/toolbar/index.js +18 -18
  1069. package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.d.ts +21 -21
  1070. package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.d.ts.map +1 -1
  1071. package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.js +62 -56
  1072. package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.js.map +1 -1
  1073. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.d.ts +23 -23
  1074. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.d.ts.map +1 -1
  1075. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js +76 -76
  1076. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js.map +1 -1
  1077. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.d.ts +8 -3
  1078. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.d.ts.map +1 -1
  1079. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.js +50 -50
  1080. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.d.ts +14 -9
  1081. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.d.ts.map +1 -1
  1082. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.js +24 -24
  1083. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.d.ts +136 -136
  1084. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.d.ts.map +1 -1
  1085. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js +684 -684
  1086. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js.map +1 -1
  1087. package/react/components/userPreferences/NotificationsPreferencesContext.d.ts +14 -15
  1088. package/react/components/userPreferences/NotificationsPreferencesContext.d.ts.map +1 -1
  1089. package/react/components/userPreferences/NotificationsPreferencesContext.js +6 -6
  1090. package/react/components/userPreferences/UserPreferenceTypes.d.ts +9 -9
  1091. package/react/components/userPreferences/UserPreferenceTypes.d.ts.map +1 -1
  1092. package/react/components/userPreferences/UserPreferenceTypes.js +1 -1
  1093. package/react/components/userPreferences/UserPreferences.d.ts +20 -16
  1094. package/react/components/userPreferences/UserPreferences.d.ts.map +1 -1
  1095. package/react/components/userPreferences/UserPreferences.js +27 -24
  1096. package/react/components/userPreferences/UserPreferences.js.map +1 -1
  1097. package/react/components/userPreferences/UserPreferencesBase.d.ts +3 -11
  1098. package/react/components/userPreferences/UserPreferencesBase.d.ts.map +1 -1
  1099. package/react/components/userPreferences/UserPreferencesBase.js +101 -101
  1100. package/react/components/userPreferences/UserPreferencesBase.js.map +1 -1
  1101. package/react/components/userPreferences/UserPreferencesWrapper.d.ts +4 -4
  1102. package/react/components/userPreferences/UserPreferencesWrapper.d.ts.map +1 -1
  1103. package/react/components/userPreferences/UserPreferencesWrapper.js +32 -28
  1104. package/react/components/userPreferences/UserPreferencesWrapper.js.map +1 -1
  1105. package/react/components/userPreferences/components/ContentSection.d.ts +23 -12
  1106. package/react/components/userPreferences/components/ContentSection.d.ts.map +1 -1
  1107. package/react/components/userPreferences/components/ContentSection.js +21 -21
  1108. package/react/components/userPreferences/components/ContentSection.js.map +1 -1
  1109. package/react/components/userPreferences/components/LeftNav.d.ts +14 -14
  1110. package/react/components/userPreferences/components/LeftNav.d.ts.map +1 -1
  1111. package/react/components/userPreferences/components/LeftNav.js +31 -31
  1112. package/react/components/userPreferences/components/LeftNav.js.map +1 -1
  1113. package/react/components/userPreferences/components/content/BloombergPreferences.d.ts +3 -3
  1114. package/react/components/userPreferences/components/content/BloombergPreferences.d.ts.map +1 -1
  1115. package/react/components/userPreferences/components/content/BloombergPreferences.js +58 -58
  1116. package/react/components/userPreferences/components/content/BloombergPreferences.js.map +1 -1
  1117. package/react/components/userPreferences/components/content/DashbarEditor.d.ts +8 -8
  1118. package/react/components/userPreferences/components/content/DashbarEditor.d.ts.map +1 -1
  1119. package/react/components/userPreferences/components/content/DashbarEditor.js +129 -129
  1120. package/react/components/userPreferences/components/content/DashbarEditor.js.map +1 -1
  1121. package/react/components/userPreferences/components/content/DashbarEditorItem.d.ts +10 -10
  1122. package/react/components/userPreferences/components/content/DashbarEditorItem.d.ts.map +1 -1
  1123. package/react/components/userPreferences/components/content/DashbarEditorItem.js +10 -10
  1124. package/react/components/userPreferences/components/content/General.d.ts +3 -4
  1125. package/react/components/userPreferences/components/content/General.d.ts.map +1 -1
  1126. package/react/components/userPreferences/components/content/General.js +48 -29
  1127. package/react/components/userPreferences/components/content/General.js.map +1 -1
  1128. package/react/components/userPreferences/components/content/Notifications.d.ts +11 -11
  1129. package/react/components/userPreferences/components/content/Notifications.d.ts.map +1 -1
  1130. package/react/components/userPreferences/components/content/Notifications.js +39 -35
  1131. package/react/components/userPreferences/components/content/Notifications.js.map +1 -1
  1132. package/react/components/userPreferences/components/content/Workspaces.d.ts +88 -88
  1133. package/react/components/userPreferences/components/content/Workspaces.d.ts.map +1 -1
  1134. package/react/components/userPreferences/components/content/Workspaces.js +546 -529
  1135. package/react/components/userPreferences/components/content/Workspaces.js.map +1 -1
  1136. package/react/components/userPreferences/components/content/notificationViews/NotificationsPreferencesHome.d.ts +3 -3
  1137. package/react/components/userPreferences/components/content/notificationViews/NotificationsPreferencesHome.d.ts.map +1 -1
  1138. package/react/components/userPreferences/components/content/notificationViews/NotificationsPreferencesHome.js +220 -211
  1139. package/react/components/userPreferences/components/content/notificationViews/NotificationsPreferencesHome.js.map +1 -1
  1140. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourceTypes.d.ts +3 -3
  1141. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourceTypes.d.ts.map +1 -1
  1142. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourceTypes.js +134 -134
  1143. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourceTypes.js.map +1 -1
  1144. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourcesPreferences.d.ts +3 -3
  1145. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourcesPreferences.d.ts.map +1 -1
  1146. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourcesPreferences.js +79 -79
  1147. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourcesPreferences.js.map +1 -1
  1148. package/react/components/userPreferences/components/content/notificationViews/notificationViewsUtils.d.ts +4 -4
  1149. package/react/components/userPreferences/components/content/notificationViews/notificationViewsUtils.d.ts.map +1 -1
  1150. package/react/components/userPreferences/components/content/notificationViews/notificationViewsUtils.js +39 -39
  1151. package/react/components/userPreferences/components/content/notificationViews/notificationViewsUtils.js.map +1 -1
  1152. package/react/components/userPreferences/components/general/DownloadPreferences.d.ts +9 -9
  1153. package/react/components/userPreferences/components/general/DownloadPreferences.d.ts.map +1 -1
  1154. package/react/components/userPreferences/components/general/DownloadPreferences.js +119 -111
  1155. package/react/components/userPreferences/components/general/DownloadPreferences.js.map +1 -1
  1156. package/react/components/userPreferences/components/general/ResetPreferences.d.ts +3 -4
  1157. package/react/components/userPreferences/components/general/ResetPreferences.d.ts.map +1 -1
  1158. package/react/components/userPreferences/components/general/ResetPreferences.js +42 -36
  1159. package/react/components/userPreferences/components/general/ResetPreferences.js.map +1 -1
  1160. package/react/components/userPreferences/components/general/ScheduledClose.d.ts +10 -10
  1161. package/react/components/userPreferences/components/general/ScheduledClose.d.ts.map +1 -1
  1162. package/react/components/userPreferences/components/general/ScheduledClose.js +133 -76
  1163. package/react/components/userPreferences/components/general/ScheduledClose.js.map +1 -1
  1164. package/react/components/userPreferences/components/workspaces/WorkspaceButton.d.ts +8 -8
  1165. package/react/components/userPreferences/components/workspaces/WorkspaceButton.d.ts.map +1 -1
  1166. package/react/components/userPreferences/components/workspaces/WorkspaceButton.js +8 -8
  1167. package/react/components/userPreferences/components/workspaces/WorkspaceButton.js.map +1 -1
  1168. package/react/components/userPreferences/components/workspaces/WorkspaceComponents.d.ts +6 -6
  1169. package/react/components/userPreferences/components/workspaces/WorkspaceComponents.d.ts.map +1 -1
  1170. package/react/components/userPreferences/components/workspaces/WorkspaceComponents.js +10 -10
  1171. package/react/components/userPreferences/components/workspaces/WorkspaceItem.d.ts +36 -35
  1172. package/react/components/userPreferences/components/workspaces/WorkspaceItem.d.ts.map +1 -1
  1173. package/react/components/userPreferences/components/workspaces/WorkspaceItem.js +85 -86
  1174. package/react/components/userPreferences/components/workspaces/WorkspaceItem.js.map +1 -1
  1175. package/react/components/userPreferences/components/workspaces/WorkspaceItemList.d.ts +8 -8
  1176. package/react/components/userPreferences/components/workspaces/WorkspaceItemList.d.ts.map +1 -1
  1177. package/react/components/userPreferences/components/workspaces/WorkspaceItemList.js +6 -20
  1178. package/react/components/userPreferences/components/workspaces/WorkspaceItemList.js.map +1 -1
  1179. package/react/components/userPreferences/index.d.ts +6 -6
  1180. package/react/components/userPreferences/index.js +6 -6
  1181. package/react/components/userPreferences/stores/UserPreferencesStore.d.ts +39 -39
  1182. package/react/components/userPreferences/stores/UserPreferencesStore.js +140 -140
  1183. package/react/components/userPreferences/stores/UserPreferencesStore.js.map +1 -1
  1184. package/react/components/utils.d.ts +49 -49
  1185. package/react/components/utils.d.ts.map +1 -1
  1186. package/react/components/utils.js +59 -59
  1187. package/react/components/utils.js.map +1 -1
  1188. package/react/components/windowTitleBar/AlwaysOnTopButton.d.ts +8 -8
  1189. package/react/components/windowTitleBar/AlwaysOnTopButton.d.ts.map +1 -1
  1190. package/react/components/windowTitleBar/AlwaysOnTopButton.js +28 -28
  1191. package/react/components/windowTitleBar/CloneButton.d.ts +2 -2
  1192. package/react/components/windowTitleBar/CloneButton.d.ts.map +1 -1
  1193. package/react/components/windowTitleBar/CloneButton.js +22 -22
  1194. package/react/components/windowTitleBar/CloneButton.js.map +1 -1
  1195. package/react/components/windowTitleBar/CloseButton.d.ts +2 -2
  1196. package/react/components/windowTitleBar/CloseButton.d.ts.map +1 -1
  1197. package/react/components/windowTitleBar/CloseButton.js +21 -21
  1198. package/react/components/windowTitleBar/CloseButton.js.map +1 -1
  1199. package/react/components/windowTitleBar/GroupingButton.d.ts +2 -2
  1200. package/react/components/windowTitleBar/GroupingButton.d.ts.map +1 -1
  1201. package/react/components/windowTitleBar/GroupingButton.js +24 -24
  1202. package/react/components/windowTitleBar/LinkerButton.d.ts +10 -6
  1203. package/react/components/windowTitleBar/LinkerButton.d.ts.map +1 -1
  1204. package/react/components/windowTitleBar/LinkerButton.js +116 -116
  1205. package/react/components/windowTitleBar/LinkerButton.js.map +1 -1
  1206. package/react/components/windowTitleBar/LinkerButtonDeprecated.d.ts +10 -6
  1207. package/react/components/windowTitleBar/LinkerButtonDeprecated.d.ts.map +1 -1
  1208. package/react/components/windowTitleBar/LinkerButtonDeprecated.js +62 -62
  1209. package/react/components/windowTitleBar/LinkerButtonDeprecated.js.map +1 -1
  1210. package/react/components/windowTitleBar/LinkerGroups.d.ts +6 -2
  1211. package/react/components/windowTitleBar/LinkerGroups.d.ts.map +1 -1
  1212. package/react/components/windowTitleBar/LinkerGroups.js +20 -20
  1213. package/react/components/windowTitleBar/LinkerGroupsDeprecated.d.ts +6 -2
  1214. package/react/components/windowTitleBar/LinkerGroupsDeprecated.d.ts.map +1 -1
  1215. package/react/components/windowTitleBar/LinkerGroupsDeprecated.js +34 -34
  1216. package/react/components/windowTitleBar/LinkerGroupsDeprecated.js.map +1 -1
  1217. package/react/components/windowTitleBar/MaximizeButton.d.ts +2 -2
  1218. package/react/components/windowTitleBar/MaximizeButton.d.ts.map +1 -1
  1219. package/react/components/windowTitleBar/MaximizeButton.js +17 -17
  1220. package/react/components/windowTitleBar/MinimizeButton.d.ts +2 -2
  1221. package/react/components/windowTitleBar/MinimizeButton.d.ts.map +1 -1
  1222. package/react/components/windowTitleBar/MinimizeButton.js +20 -20
  1223. package/react/components/windowTitleBar/ShareButton.d.ts +2 -2
  1224. package/react/components/windowTitleBar/ShareButton.d.ts.map +1 -1
  1225. package/react/components/windowTitleBar/ShareButton.js +23 -23
  1226. package/react/components/windowTitleBar/TabRegion.d.ts +30 -30
  1227. package/react/components/windowTitleBar/TabRegion.d.ts.map +1 -1
  1228. package/react/components/windowTitleBar/TabRegion.js +502 -490
  1229. package/react/components/windowTitleBar/TabRegion.js.map +1 -1
  1230. package/react/components/windowTitleBar/TabTitle.d.ts +7 -7
  1231. package/react/components/windowTitleBar/TabTitle.d.ts.map +1 -1
  1232. package/react/components/windowTitleBar/TabTitle.js +16 -16
  1233. package/react/components/windowTitleBar/TabTitle.js.map +1 -1
  1234. package/react/components/windowTitleBar/TitleEdit.d.ts +9 -9
  1235. package/react/components/windowTitleBar/TitleEdit.d.ts.map +1 -1
  1236. package/react/components/windowTitleBar/TitleEdit.js +30 -29
  1237. package/react/components/windowTitleBar/TitleEdit.js.map +1 -1
  1238. package/react/components/windowTitleBar/WindowTitleBarContext.d.ts +10 -11
  1239. package/react/components/windowTitleBar/WindowTitleBarContext.d.ts.map +1 -1
  1240. package/react/components/windowTitleBar/WindowTitleBarContext.js +2 -2
  1241. package/react/components/windowTitleBar/WindowTitleBarShell.d.ts +16 -16
  1242. package/react/components/windowTitleBar/WindowTitleBarShell.d.ts.map +1 -1
  1243. package/react/components/windowTitleBar/WindowTitleBarShell.js +46 -45
  1244. package/react/components/windowTitleBar/WindowTitleBarShell.js.map +1 -1
  1245. package/react/components/windowTitleBar/getOrCreateWindowTitleBarContainer.d.ts +9 -9
  1246. package/react/components/windowTitleBar/getOrCreateWindowTitleBarContainer.js +22 -22
  1247. package/react/components/windowTitleBar/index.d.ts +12 -12
  1248. package/react/components/windowTitleBar/index.js +12 -12
  1249. package/react/components/windowTitleBar/useKeyboardNavigation.d.ts +6 -6
  1250. package/react/components/windowTitleBar/useKeyboardNavigation.js +56 -56
  1251. package/react/components/windowTitleBar/useKeyboardNavigation.js.map +1 -1
  1252. package/react/components/windowTitleBar/useMaximize.d.ts +4 -4
  1253. package/react/components/windowTitleBar/useMaximize.js +22 -22
  1254. package/react/components/yesNoDialog/YesNoDialog.d.ts +11 -7
  1255. package/react/components/yesNoDialog/YesNoDialog.d.ts.map +1 -1
  1256. package/react/components/yesNoDialog/YesNoDialog.js +154 -154
  1257. package/react/components/yesNoDialog/YesNoDialog.js.map +1 -1
  1258. package/react/components/yesNoDialog/index.d.ts +1 -1
  1259. package/react/components/yesNoDialog/index.js +1 -1
  1260. package/react/components/yesNoDialog/timer.d.ts +15 -16
  1261. package/react/components/yesNoDialog/timer.d.ts.map +1 -1
  1262. package/react/components/yesNoDialog/timer.js +32 -32
  1263. package/react/components/yesNoDialog/timer.js.map +1 -1
  1264. package/react/hooks/index.d.ts +4 -4
  1265. package/react/hooks/index.js +4 -4
  1266. package/react/hooks/useAuth.d.ts +10 -10
  1267. package/react/hooks/useAuth.d.ts.map +1 -1
  1268. package/react/hooks/useAuth.js +26 -26
  1269. package/react/hooks/useDashbar.d.ts +8 -8
  1270. package/react/hooks/useDashbar.d.ts.map +1 -1
  1271. package/react/hooks/useDashbar.js +115 -115
  1272. package/react/hooks/useDashbar.js.map +1 -1
  1273. package/react/hooks/useDeepEffect.d.ts +5 -5
  1274. package/react/hooks/useDeepEffect.js +33 -33
  1275. package/react/hooks/useDeepEffect.js.map +1 -1
  1276. package/react/hooks/useDownloadItems.d.ts +23 -23
  1277. package/react/hooks/useDownloadItems.d.ts.map +1 -1
  1278. package/react/hooks/useDownloadItems.js +67 -67
  1279. package/react/hooks/useDownloadItems.js.map +1 -1
  1280. package/react/hooks/useDragRegion.d.ts +25 -26
  1281. package/react/hooks/useDragRegion.d.ts.map +1 -1
  1282. package/react/hooks/useDragRegion.js +73 -73
  1283. package/react/hooks/useDragRegion.js.map +1 -1
  1284. package/react/hooks/useFavorites.d.ts +24 -24
  1285. package/react/hooks/useFavorites.d.ts.map +1 -1
  1286. package/react/hooks/useFavorites.js +23 -23
  1287. package/react/hooks/useFavoritesShell.d.ts +14 -14
  1288. package/react/hooks/useFavoritesShell.d.ts.map +1 -1
  1289. package/react/hooks/useFavoritesShell.js +76 -83
  1290. package/react/hooks/useFavoritesShell.js.map +1 -1
  1291. package/react/hooks/useFloatingFocus.d.ts +15 -15
  1292. package/react/hooks/useFloatingFocus.d.ts.map +1 -1
  1293. package/react/hooks/useFloatingFocus.js +36 -35
  1294. package/react/hooks/useFloatingFocus.js.map +1 -1
  1295. package/react/hooks/useHotkey.d.ts +8 -8
  1296. package/react/hooks/useHotkey.js +24 -24
  1297. package/react/hooks/useInjectedTitleBar.d.ts +2 -2
  1298. package/react/hooks/useInjectedTitleBar.js +436 -436
  1299. package/react/hooks/useInjectedTitleBar.js.map +1 -1
  1300. package/react/hooks/useLinker.d.ts +4 -4
  1301. package/react/hooks/useLinker.js +111 -111
  1302. package/react/hooks/useLinker.js.map +1 -1
  1303. package/react/hooks/useMenu.d.ts +39 -39
  1304. package/react/hooks/useMenu.d.ts.map +1 -1
  1305. package/react/hooks/useMenu.js +51 -51
  1306. package/react/hooks/useNotifications.d.ts +76 -76
  1307. package/react/hooks/useNotifications.d.ts.map +1 -1
  1308. package/react/hooks/useNotifications.js +457 -434
  1309. package/react/hooks/useNotifications.js.map +1 -1
  1310. package/react/hooks/useOAuth.d.ts +16 -16
  1311. package/react/hooks/useOAuth.d.ts.map +1 -1
  1312. package/react/hooks/useOAuth.js +115 -115
  1313. package/react/hooks/useOAuth.js.map +1 -1
  1314. package/react/hooks/useOutsideClickDetector.d.ts +5 -5
  1315. package/react/hooks/useOutsideClickDetector.d.ts.map +1 -1
  1316. package/react/hooks/useOutsideClickDetector.js +17 -17
  1317. package/react/hooks/useOutsideClickDetector.js.map +1 -1
  1318. package/react/hooks/usePubSub.d.ts +21 -21
  1319. package/react/hooks/usePubSub.js +38 -38
  1320. package/react/hooks/usePubSub.js.map +1 -1
  1321. package/react/hooks/useSearch.d.ts +14 -14
  1322. package/react/hooks/useSearch.d.ts.map +1 -1
  1323. package/react/hooks/useSearch.js +76 -72
  1324. package/react/hooks/useSearch.js.map +1 -1
  1325. package/react/hooks/useTitle.d.ts +17 -17
  1326. package/react/hooks/useTitle.d.ts.map +1 -1
  1327. package/react/hooks/useTitle.js +28 -28
  1328. package/react/hooks/useTitle.js.map +1 -1
  1329. package/react/hooks/useToolbar.d.ts +11 -11
  1330. package/react/hooks/useToolbar.js +162 -162
  1331. package/react/hooks/useToolbar.js.map +1 -1
  1332. package/react/index.d.ts +2 -2
  1333. package/react/index.js +2 -2
  1334. package/react/reducers/favoriteReducer.d.ts +11 -11
  1335. package/react/reducers/favoriteReducer.d.ts.map +1 -1
  1336. package/react/reducers/favoriteReducer.js +27 -27
  1337. package/react/reducers/linkerReducer.d.ts +13 -13
  1338. package/react/reducers/linkerReducer.d.ts.map +1 -1
  1339. package/react/reducers/linkerReducer.js +43 -43
  1340. package/react/reducers/linkerReducer.js.map +1 -1
  1341. package/react/reducers/menuReducer.d.ts +36 -36
  1342. package/react/reducers/menuReducer.d.ts.map +1 -1
  1343. package/react/reducers/menuReducer.js +65 -65
  1344. package/react/reducers/rootReducer.d.ts +239 -239
  1345. package/react/reducers/rootReducer.d.ts.map +1 -1
  1346. package/react/reducers/rootReducer.js +20 -20
  1347. package/react/reducers/searchReducer.d.ts +15 -15
  1348. package/react/reducers/searchReducer.d.ts.map +1 -1
  1349. package/react/reducers/searchReducer.js +27 -27
  1350. package/react/reducers/smartDesktopDesignerReducer.d.ts +5 -5
  1351. package/react/reducers/smartDesktopDesignerReducer.js +190 -190
  1352. package/react/reducers/smartDesktopDesignerReducer.js.map +1 -1
  1353. package/react/reducers/toolbarReducer.d.ts +10 -10
  1354. package/react/reducers/toolbarReducer.d.ts.map +1 -1
  1355. package/react/reducers/toolbarReducer.js +29 -29
  1356. package/react/reducers/workspaceReducer.d.ts +10 -10
  1357. package/react/reducers/workspaceReducer.d.ts.map +1 -1
  1358. package/react/reducers/workspaceReducer.js +26 -26
  1359. package/react/reducers/workspaceReducer.js.map +1 -1
  1360. package/react/store.d.ts +450 -450
  1361. package/react/store.d.ts.map +1 -1
  1362. package/react/store.js +17 -17
  1363. package/react/types/advancedAppLauncherTypes.d.ts +44 -44
  1364. package/react/types/advancedAppLauncherTypes.d.ts.map +1 -1
  1365. package/react/types/advancedAppLauncherTypes.js +1 -1
  1366. package/react/types/dashbarTypes.d.ts +44 -41
  1367. package/react/types/dashbarTypes.d.ts.map +1 -1
  1368. package/react/types/dashbarTypes.js +1 -1
  1369. package/react/types/favoriteTypes.d.ts +8 -8
  1370. package/react/types/favoriteTypes.d.ts.map +1 -1
  1371. package/react/types/favoriteTypes.js +1 -1
  1372. package/react/types/fdc3.d.ts +27 -29
  1373. package/react/types/fdc3.d.ts.map +1 -1
  1374. package/react/types/fdc3.js +6 -6
  1375. package/react/types/hotkeyTypes.d.ts +1 -1
  1376. package/react/types/hotkeyTypes.d.ts.map +1 -1
  1377. package/react/types/hotkeyTypes.js +1 -1
  1378. package/react/types/linkerTypes.d.ts +27 -27
  1379. package/react/types/linkerTypes.d.ts.map +1 -1
  1380. package/react/types/linkerTypes.js +2 -2
  1381. package/react/types/smartDesktopDesignerTypes.d.ts +227 -227
  1382. package/react/types/smartDesktopDesignerTypes.d.ts.map +1 -1
  1383. package/react/types/smartDesktopDesignerTypes.js +19 -19
  1384. package/react/types/workspaceTypes.d.ts +30 -30
  1385. package/react/types/workspaceTypes.d.ts.map +1 -1
  1386. package/react/types/workspaceTypes.js +1 -1
  1387. package/services/index.d.ts +6 -0
  1388. package/services/index.d.ts.map +1 -0
  1389. package/services/index.js +6 -0
  1390. package/services/index.js.map +1 -0
  1391. package/services/logger/types.d.ts +2 -0
  1392. package/services/logger/types.d.ts.map +1 -0
  1393. package/services/logger/types.js +2 -0
  1394. package/services/logger/types.js.map +1 -0
  1395. package/services/search/types.d.ts +2 -0
  1396. package/services/search/types.d.ts.map +1 -0
  1397. package/services/search/types.js +2 -0
  1398. package/services/search/types.js.map +1 -0
  1399. package/services/storage/adapters/types.d.ts +2 -0
  1400. package/services/storage/adapters/types.d.ts.map +1 -0
  1401. package/services/storage/adapters/types.js +2 -0
  1402. package/services/storage/adapters/types.js.map +1 -0
  1403. package/services/window/types.d.ts +2 -0
  1404. package/services/window/types.d.ts.map +1 -0
  1405. package/services/window/types.js +2 -0
  1406. package/services/window/types.js.map +1 -0
  1407. package/services/workspace/types.d.ts +2 -0
  1408. package/services/workspace/types.d.ts.map +1 -0
  1409. package/services/workspace/types.js +2 -0
  1410. package/services/workspace/types.js.map +1 -0
  1411. package/typedoc-types.d.ts +8 -8
  1412. package/typedoc-types.d.ts.map +1 -1
  1413. package/typedoc-types.js +5 -5
  1414. package/types.d.ts +15 -16
  1415. package/types.d.ts.map +1 -1
  1416. package/types.js +4 -7
  1417. package/types.js.map +1 -1
  1418. package/react/components/userPreferences/FinsembleUserPreferences.d.ts +0 -17
  1419. package/react/components/userPreferences/FinsembleUserPreferences.d.ts.map +0 -1
  1420. package/react/components/userPreferences/FinsembleUserPreferences.js +0 -28
  1421. package/react/components/userPreferences/FinsembleUserPreferences.js.map +0 -1
  1422. package/react/components/userPreferences/iocdUserPreferences.d.ts +0 -17
  1423. package/react/components/userPreferences/iocdUserPreferences.d.ts.map +0 -1
  1424. package/react/components/userPreferences/iocdUserPreferences.js +0 -49
  1425. package/react/components/userPreferences/iocdUserPreferences.js.map +0 -1
  1426. package/react/components/userPreferences/utils.d.ts +0 -3
  1427. package/react/components/userPreferences/utils.d.ts.map +0 -1
  1428. package/react/components/userPreferences/utils.js +0 -11
  1429. package/react/components/userPreferences/utils.js.map +0 -1
  1430. package/typedefs/FDC3/api/AppIdentifier.d.ts +0 -22
  1431. package/typedefs/FDC3/api/AppIdentifier.d.ts.map +0 -1
  1432. package/typedefs/FDC3/api/AppIdentifier.js +0 -6
  1433. package/typedefs/FDC3/api/AppIdentifier.js.map +0 -1
  1434. package/typedefs/FDC3/api/AppIntent.d.ts +0 -16
  1435. package/typedefs/FDC3/api/AppIntent.d.ts.map +0 -1
  1436. package/typedefs/FDC3/api/AppIntent.js +0 -6
  1437. package/typedefs/FDC3/api/AppIntent.js.map +0 -1
  1438. package/typedefs/FDC3/api/AppMetadata.d.ts +0 -41
  1439. package/typedefs/FDC3/api/AppMetadata.d.ts.map +0 -1
  1440. package/typedefs/FDC3/api/AppMetadata.js +0 -6
  1441. package/typedefs/FDC3/api/AppMetadata.js.map +0 -1
  1442. package/typedefs/FDC3/api/Channel.d.ts +0 -73
  1443. package/typedefs/FDC3/api/Channel.d.ts.map +0 -1
  1444. package/typedefs/FDC3/api/Channel.js +0 -6
  1445. package/typedefs/FDC3/api/Channel.js.map +0 -1
  1446. package/typedefs/FDC3/api/ContextMetadata.d.ts +0 -19
  1447. package/typedefs/FDC3/api/ContextMetadata.d.ts.map +0 -1
  1448. package/typedefs/FDC3/api/ContextMetadata.js +0 -6
  1449. package/typedefs/FDC3/api/ContextMetadata.js.map +0 -1
  1450. package/typedefs/FDC3/api/DesktopAgent.d.ts +0 -549
  1451. package/typedefs/FDC3/api/DesktopAgent.d.ts.map +0 -1
  1452. package/typedefs/FDC3/api/DesktopAgent.js +0 -6
  1453. package/typedefs/FDC3/api/DesktopAgent.js.map +0 -1
  1454. package/typedefs/FDC3/api/DisplayMetadata.d.ts +0 -24
  1455. package/typedefs/FDC3/api/DisplayMetadata.d.ts.map +0 -1
  1456. package/typedefs/FDC3/api/DisplayMetadata.js +0 -6
  1457. package/typedefs/FDC3/api/DisplayMetadata.js.map +0 -1
  1458. package/typedefs/FDC3/api/Errors.d.ts +0 -67
  1459. package/typedefs/FDC3/api/Errors.d.ts.map +0 -1
  1460. package/typedefs/FDC3/api/Errors.js +0 -72
  1461. package/typedefs/FDC3/api/Errors.js.map +0 -1
  1462. package/typedefs/FDC3/api/Icon.d.ts +0 -13
  1463. package/typedefs/FDC3/api/Icon.d.ts.map +0 -1
  1464. package/typedefs/FDC3/api/Icon.js +0 -6
  1465. package/typedefs/FDC3/api/Icon.js.map +0 -1
  1466. package/typedefs/FDC3/api/Image.d.ts +0 -15
  1467. package/typedefs/FDC3/api/Image.d.ts.map +0 -1
  1468. package/typedefs/FDC3/api/Image.js +0 -6
  1469. package/typedefs/FDC3/api/Image.js.map +0 -1
  1470. package/typedefs/FDC3/api/ImplementationMetadata.d.ts +0 -36
  1471. package/typedefs/FDC3/api/ImplementationMetadata.d.ts.map +0 -1
  1472. package/typedefs/FDC3/api/ImplementationMetadata.js +0 -6
  1473. package/typedefs/FDC3/api/ImplementationMetadata.js.map +0 -1
  1474. package/typedefs/FDC3/api/IntentMetadata.d.ts +0 -18
  1475. package/typedefs/FDC3/api/IntentMetadata.d.ts.map +0 -1
  1476. package/typedefs/FDC3/api/IntentMetadata.js +0 -6
  1477. package/typedefs/FDC3/api/IntentMetadata.js.map +0 -1
  1478. package/typedefs/FDC3/api/IntentResolution.d.ts +0 -68
  1479. package/typedefs/FDC3/api/IntentResolution.d.ts.map +0 -1
  1480. package/typedefs/FDC3/api/IntentResolution.js +0 -6
  1481. package/typedefs/FDC3/api/IntentResolution.js.map +0 -1
  1482. package/typedefs/FDC3/api/Listener.d.ts +0 -11
  1483. package/typedefs/FDC3/api/Listener.d.ts.map +0 -1
  1484. package/typedefs/FDC3/api/Listener.js +0 -6
  1485. package/typedefs/FDC3/api/Listener.js.map +0 -1
  1486. package/typedefs/FDC3/api/Methods.d.ts +0 -72
  1487. package/typedefs/FDC3/api/Methods.d.ts.map +0 -1
  1488. package/typedefs/FDC3/api/Methods.js +0 -199
  1489. package/typedefs/FDC3/api/Methods.js.map +0 -1
  1490. package/typedefs/FDC3/api/PrivateChannel.d.ts +0 -54
  1491. package/typedefs/FDC3/api/PrivateChannel.d.ts.map +0 -1
  1492. package/typedefs/FDC3/api/PrivateChannel.js +0 -6
  1493. package/typedefs/FDC3/api/PrivateChannel.js.map +0 -1
  1494. package/typedefs/FDC3/api/RecommendedChannels.d.ts +0 -14
  1495. package/typedefs/FDC3/api/RecommendedChannels.d.ts.map +0 -1
  1496. package/typedefs/FDC3/api/RecommendedChannels.js +0 -80
  1497. package/typedefs/FDC3/api/RecommendedChannels.js.map +0 -1
  1498. package/typedefs/FDC3/api/Types.d.ts +0 -30
  1499. package/typedefs/FDC3/api/Types.d.ts.map +0 -1
  1500. package/typedefs/FDC3/api/Types.js +0 -6
  1501. package/typedefs/FDC3/api/Types.js.map +0 -1
  1502. package/typedefs/FDC3/bridging/BridgingTypes.d.ts +0 -3967
  1503. package/typedefs/FDC3/bridging/BridgingTypes.d.ts.map +0 -1
  1504. package/typedefs/FDC3/bridging/BridgingTypes.js +0 -1857
  1505. package/typedefs/FDC3/bridging/BridgingTypes.js.map +0 -1
  1506. package/typedefs/FDC3/context/ContextType.d.ts +0 -41
  1507. package/typedefs/FDC3/context/ContextType.d.ts.map +0 -1
  1508. package/typedefs/FDC3/context/ContextType.js +0 -30
  1509. package/typedefs/FDC3/context/ContextType.js.map +0 -1
  1510. package/typedefs/FDC3/context/ContextTypes.d.ts +0 -2000
  1511. package/typedefs/FDC3/context/ContextTypes.d.ts.map +0 -1
  1512. package/typedefs/FDC3/context/ContextTypes.js +0 -873
  1513. package/typedefs/FDC3/context/ContextTypes.js.map +0 -1
  1514. package/typedefs/FDC3/index.d.ts +0 -34
  1515. package/typedefs/FDC3/index.d.ts.map +0 -1
  1516. package/typedefs/FDC3/index.js +0 -30
  1517. package/typedefs/FDC3/index.js.map +0 -1
  1518. package/typedefs/FDC3/intents/Intents.d.ts +0 -36
  1519. package/typedefs/FDC3/intents/Intents.d.ts.map +0 -1
  1520. package/typedefs/FDC3/intents/Intents.js +0 -29
  1521. package/typedefs/FDC3/intents/Intents.js.map +0 -1
  1522. package/typedefs/FDC3/internal/contextConfiguration.d.ts +0 -2
  1523. package/typedefs/FDC3/internal/contextConfiguration.d.ts.map +0 -1
  1524. package/typedefs/FDC3/internal/contextConfiguration.js +0 -5
  1525. package/typedefs/FDC3/internal/contextConfiguration.js.map +0 -1
  1526. package/typedefs/FDC3/internal/intentConfiguration.d.ts +0 -2
  1527. package/typedefs/FDC3/internal/intentConfiguration.d.ts.map +0 -1
  1528. package/typedefs/FDC3/internal/intentConfiguration.js +0 -5
  1529. package/typedefs/FDC3/internal/intentConfiguration.js.map +0 -1
  1530. package/typedefs/FDC3/internal/typeHelpers.d.ts +0 -7
  1531. package/typedefs/FDC3/internal/typeHelpers.d.ts.map +0 -1
  1532. package/typedefs/FDC3/internal/typeHelpers.js +0 -5
  1533. package/typedefs/FDC3/internal/typeHelpers.js.map +0 -1
  1534. package/typedefs/index.d.ts +0 -2
  1535. package/typedefs/index.d.ts.map +0 -1
  1536. package/typedefs/index.js +0 -3
  1537. package/typedefs/index.js.map +0 -1
@@ -1,1309 +1,1332 @@
1
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
- };
6
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
7
- if (kind === "m") throw new TypeError("Private method is not writable");
8
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
9
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
10
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
- };
12
- var _HeartbeatMonitor_declareDead, _HeartbeatMonitor_timeoutHandle, _HeartbeatMonitor_disconnectHandlers, _ChannelProxy_desktopAgent, _FinsembleDesktopAgent_connected, _FinsembleDesktopAgent_heartbeatMonitor, _FinsembleDesktopAgent_startHasBeenCalled, _FinsembleDesktopAgent_uuid, _FinsembleDesktopAgent_appId, _FinsembleDesktopAgent_clientChannel, _FinsembleDesktopAgent_intentHandlers, _FinsembleDesktopAgent_contextHandlers, _FinsembleDesktopAgent_privateChannelSubscription, _FinsembleDesktopAgent_intentResultPromiseMap, _FinsembleDesktopAgent_intentResultPromiseResolveMap, _FinsembleDesktopAgent_queue, _FinsembleDesktopAgent_routerClient, _FinsembleDesktopAgent_startup, _FinsembleDesktopAgent_existingChannelProxy, _FinsembleDesktopAgent_FSBLVersion, _FinsembleDesktopAgent_userChannels;
13
- /**
14
- * Regarding 1.2 compatibility. FDC3 1.2 defined some functions as synchronous which are now asynchronous. To provide
15
- * backward compatibility for these functions, we return a Promise which has additional members attached (usually an
16
- * unsubscribe function). Apps using either 1.2 or 2.0 will receive an interface that is a superset of what they expect.
17
- *
18
- * The resulting code is complex. It should be aggressively removed when FDC3 1.2 is retired, back to simple async functions
19
- * that return Promise<Listener>.
20
- *
21
- * For Typescript support, 1.2 apps can simply install the 1.2 version of the "@finos/fdc3" npm module
22
- */
23
- import uuidv4 from "uuid-random";
24
- import { OpenError, ResolveError, ResultError, ChannelError, } from "@finos/fdc3";
25
- import Logger from "../logger";
26
- import ConfigClient from "../configClient";
27
- import SystemManagerClient from "../../common/systemManagerClient";
28
- import { Globals } from "../../common/Globals";
29
- import { SERVER_CHANNEL, EMBEDDED_TITLEBAR_INDICATOR_STRING } from "./types";
30
- import { mmAdd, mmRemove, errorAsString, } from "./types";
31
- // Timeout value for logging warning when intent response is delayed.
32
- const WaitForIntentResultTimeout = 5000;
33
- const PrivateChannelIdPrefix = "Private-Channel-Id";
34
- export const isPrivateChannelId = (channelId) => channelId.includes(PrivateChannelIdPrefix);
35
- /**
36
- * Heartbeats are used by the InteropService to detect dead fdc3 client connections. A connection
37
- * can die if a window crashes or is terminated. Heartbeats are also currently the only way to detect
38
- * that freestanding apps have closed, even gracefully.
39
- */
40
- class HeartbeatMonitor {
41
- constructor() {
42
- // If Finsemble sleeps (power saving mode) then heartbeats will slow to once per minute (this is a browser thing)
43
- // So we only declare an app dead if a heartbeat isn't received for two minutes, even though normally we should
44
- // expect to receive one every 10 seconds. Hopefully in the future we will have more reliable, router disconnection
45
- // capabilities based on underlying transports such as WebSocket.
46
- _HeartbeatMonitor_declareDead.set(this, 2 * 60 * 1000);
47
- _HeartbeatMonitor_timeoutHandle.set(this, null);
48
- // Contains onDisconnect()'s registered handlers
49
- _HeartbeatMonitor_disconnectHandlers.set(this, []);
50
- }
51
- start() {
52
- this.registerHeartbeat();
53
- }
54
- registerHeartbeat() {
55
- // Got a heartbeat, so clear our death timer
56
- clearTimeout(__classPrivateFieldGet(this, _HeartbeatMonitor_timeoutHandle, "f"));
57
- Logger.system.debug(`FinsembleDesktopAgent: heartbeat received`);
58
- // And start a new one
59
- __classPrivateFieldSet(this, _HeartbeatMonitor_timeoutHandle, setTimeout(() => {
60
- Logger.system.warn(`FinsembleDesktopAgent: No heartbeat received within ${__classPrivateFieldGet(this, _HeartbeatMonitor_declareDead, "f")} milliseconds`);
61
- this.notifyDisconnect();
62
- }, __classPrivateFieldGet(this, _HeartbeatMonitor_declareDead, "f")), "f");
63
- }
64
- // Called when either app heartbeat fails or router transport fails.
65
- notifyDisconnect() {
66
- console.warn("fdc3 has lost connectivity to the interop service. You may need to restart this app.");
67
- __classPrivateFieldGet(this, _HeartbeatMonitor_disconnectHandlers, "f").forEach((handler) => {
68
- handler(`fdc3 has lost connectivity to the interop service`);
69
- });
70
- }
71
- onDisconnect(cb) {
72
- __classPrivateFieldSet(this, _HeartbeatMonitor_disconnectHandlers, __classPrivateFieldGet(this, _HeartbeatMonitor_disconnectHandlers, "f").concat(cb), "f");
73
- }
74
- stop() {
75
- clearTimeout(__classPrivateFieldGet(this, _HeartbeatMonitor_timeoutHandle, "f"));
76
- }
77
- }
78
- _HeartbeatMonitor_declareDead = new WeakMap(), _HeartbeatMonitor_timeoutHandle = new WeakMap(), _HeartbeatMonitor_disconnectHandlers = new WeakMap();
79
- /**
80
- * Implements FDC3's Channel interface. All actual transmissions still occur through the desktop agent via private functions.
81
- *
82
- * First pass the ChannelProxy implements PrivateChannel, which is a superset of Channel -- may refine this in second pass.
83
- */
84
- class ChannelProxy {
85
- constructor(desktopAgent, id, type = "app", displayMetadata) {
86
- _ChannelProxy_desktopAgent.set(this, void 0);
87
- __classPrivateFieldSet(this, _ChannelProxy_desktopAgent, desktopAgent, "f");
88
- this.id = id;
89
- this.type = type;
90
- this.displayMetadata = displayMetadata;
91
- }
92
- /**
93
- * Broadcasts the given context on this channel. This is equivalent to joining the channel and then calling the
94
- * top-level FDC3 `broadcast` function.
95
- *
96
- * Note that this function can be used without first joining the channel, allowing applications to broadcast on
97
- * channels that they aren't a member of.
98
- *
99
- * `Error` with a string from the `ChannelError` enumeration.
100
- */
101
- async broadcast(context) {
102
- if (!context || !context.type) {
103
- throw new Error("Invalid arguments. An FDC3 Context object (i.e. an Object with a type field) is required.");
104
- }
105
- await __classPrivateFieldGet(this, _ChannelProxy_desktopAgent, "f").channelBroadcast(this.id, context, this.type);
106
- }
107
- /**
108
- * Returns the last context that was broadcast on this channel. All channels initially have no context, until a
109
- * context is broadcast on the channel. If there is not yet any context on the channel, this method
110
- * will return `null`.
111
- *
112
- * The context of a channel will be captured regardless of how the context is broadcasted on this channel - whether
113
- * using the top-level FDC3 `broadcast` function, or using the channel-level {@link broadcast} function on this
114
- * object.
115
- *
116
- * Optionally a {@link contextType} can be provided, in which case the current context of the matching type will
117
- * be returned (if any). Desktop agent implementations may decide to record contexts by type, in which case it will
118
- * be possible to get the most recent context of the type specified, but this is not guaranteed.
119
- *
120
- * `Error` with a string from the `ChannelError` enumeration.
121
- */
122
- getCurrentContext(contextType) {
123
- return __classPrivateFieldGet(this, _ChannelProxy_desktopAgent, "f").channelGetCurrentContext(this.id, contextType);
124
- }
125
- /**
126
- * Adds a listener for incoming contexts whenever a broadcast happens on this channel.
127
- */
128
- // @ts-ignore <---------------------------------------------------------------------------------------------------------------------
129
- addContextListener(contextTypeOrHandler, handler) {
130
- if (contextTypeOrHandler === undefined) {
131
- throw new Error("Invalid arguments. The contextTypeOrHandler parameter shouldn't be undefined.");
132
- }
133
- if (typeof contextTypeOrHandler !== "function" && !handler) {
134
- const msg = "channel addContextListener Invalid arguments. The required handler parameter is missing.";
135
- console.error(msg, contextTypeOrHandler, handler);
136
- Logger.system.error(msg);
137
- throw new Error(msg);
138
- }
139
- // Dangerous code: See note at top of file about 1.2 compatibility
140
- const { exchangePromise, unsubscribe } = __classPrivateFieldGet(this, _ChannelProxy_desktopAgent, "f").channelAddContextListener(this.id, contextTypeOrHandler, handler);
141
- let promise = new Promise((resolve) => {
142
- exchangePromise.then(() => {
143
- resolve({
144
- unsubscribe,
145
- });
146
- });
147
- });
148
- promise.unsubscribe = () => {
149
- Logger.system.deprecated("Use of the synchronous version of addContextListener from FDC3 1.2 is deprecated. Please switch to `await addContextListener`.");
150
- unsubscribe();
151
- };
152
- return promise;
153
- }
154
- /**
155
- * Adds a listener that will be called each time that the remote app invokes
156
- * addContextListener on this channel.
157
- *
158
- * Desktop Agents MUST call this for each invocation of addContextListener on this
159
- * channel, including those that occurred before this handler was registered
160
- * (to prevent race conditions).
161
- */
162
- onAddContextListener(handler) {
163
- return __classPrivateFieldGet(this, _ChannelProxy_desktopAgent, "f").channelOnAddContextListener(this.id, handler);
164
- }
165
- /**
166
- * Adds a listener that will be called whenever the remote app invokes
167
- * Listener.unsubscribe() on a context listener that it previously added.
168
- *
169
- * Desktop Agents MUST call this when disconnect() is called by the other party, for
170
- * each listener that they had added.
171
- */
172
- onUnsubscribe(handler) {
173
- return __classPrivateFieldGet(this, _ChannelProxy_desktopAgent, "f").channelOnUnsubscribe(this.id, handler);
174
- }
175
- /**
176
- * Adds a listener that will be called when the remote app terminates, for example
177
- * when its window is closed or because disconnect was called. This is in addition
178
- * to calls that will be made to onUnsubscribe listeners.
179
- */
180
- onDisconnect(handler) {
181
- return __classPrivateFieldGet(this, _ChannelProxy_desktopAgent, "f").channelOnDisconnect(this.id, handler);
182
- }
183
- /**
184
- * May be called to indicate that a participant will no longer interact with this channel.
185
- *
186
- * After this function has been called, Desktop Agents SHOULD prevent apps from broadcasting
187
- * on this channel and MUST automatically call Listener.unsubscribe() for each listener that
188
- * they've added (causing any onUnsubscribe handler added by the other party to be called)
189
- * before triggering any onDisconnect handler added by the other party.
190
- */
191
- disconnect() {
192
- return __classPrivateFieldGet(this, _ChannelProxy_desktopAgent, "f").channelDisconnect(this.id);
193
- }
194
- }
195
- _ChannelProxy_desktopAgent = new WeakMap();
196
- /**
197
- * See https://stackoverflow.com/questions/45847399/friend-class-in-typescript for implementation of "friend" class
198
- */
199
- export class FinsembleDesktopAgent {
200
- constructor({ routerClient, startup }) {
201
- _FinsembleDesktopAgent_connected.set(this, false);
202
- _FinsembleDesktopAgent_heartbeatMonitor.set(this, new HeartbeatMonitor());
203
- // A lock that prevents start() from running multiple times
204
- _FinsembleDesktopAgent_startHasBeenCalled.set(this, false);
205
- _FinsembleDesktopAgent_uuid.set(this, "undefined");
206
- _FinsembleDesktopAgent_appId.set(this, "undefined");
207
- _FinsembleDesktopAgent_clientChannel.set(this, `FSBL.FDC3.Client.${uuidv4()}`);
208
- _FinsembleDesktopAgent_intentHandlers.set(this, {});
209
- _FinsembleDesktopAgent_contextHandlers.set(this, {});
210
- _FinsembleDesktopAgent_privateChannelSubscription.set(this, {});
211
- _FinsembleDesktopAgent_intentResultPromiseMap.set(this, {});
212
- _FinsembleDesktopAgent_intentResultPromiseResolveMap.set(this, {});
213
- // Stores fdc3 calls that are received before a connection is established with the interop service
214
- // Once a connection is established then the queue is released.
215
- _FinsembleDesktopAgent_queue.set(this, []);
216
- _FinsembleDesktopAgent_routerClient.set(this, void 0);
217
- _FinsembleDesktopAgent_startup.set(this, void 0);
218
- _FinsembleDesktopAgent_existingChannelProxy.set(this, {});
219
- _FinsembleDesktopAgent_FSBLVersion.set(this, "8.6");
220
- _FinsembleDesktopAgent_userChannels.set(this, null);
221
- __classPrivateFieldSet(this, _FinsembleDesktopAgent_routerClient, routerClient, "f");
222
- __classPrivateFieldSet(this, _FinsembleDesktopAgent_startup, startup, "f");
223
- __classPrivateFieldGet(this, _FinsembleDesktopAgent_routerClient, "f").onFailure(() => {
224
- Logger.console.error("Router failure: transport timeout error");
225
- __classPrivateFieldGet(this, _FinsembleDesktopAgent_heartbeatMonitor, "f").notifyDisconnect();
226
- });
227
- // Per spec, dispatch this event as soon as the global fdc3 object exists and is ready to accept API calls.
228
- // We should not wait until start() because in some circumstances, start() is not called *until* an API call is made.
229
- // Skip this if the global Event class is undefined (if running in Node.js such as a unit test). Note: also needed to confirm window.dispatchEvent was available, perhaps because of latest Node version.
230
- if (Globals.Event && Globals.dispatchEvent) {
231
- const event = new Globals.Event("fdc3Ready");
232
- Globals.dispatchEvent(event);
233
- }
234
- ConfigClient.get(["finsemble", "system", "FSBLVersion"], (_err, data) => {
235
- __classPrivateFieldSet(this, _FinsembleDesktopAgent_FSBLVersion, data, "f");
236
- });
237
- }
238
- privateChannelId() {
239
- return `${PrivateChannelIdPrefix}-${uuidv4()}`;
240
- }
241
- async isUserChannel(channelIdValue) {
242
- // the first time this function is called, cache the user channels for future use
243
- if (__classPrivateFieldGet(this, _FinsembleDesktopAgent_userChannels, "f") === null) {
244
- __classPrivateFieldSet(this, _FinsembleDesktopAgent_userChannels, await this.getUserChannels(), "f");
245
- }
246
- return __classPrivateFieldGet(this, _FinsembleDesktopAgent_userChannels, "f").find((channelObject) => channelObject.id === channelIdValue) !== undefined;
247
- }
248
- // This wrapper around startup data is necessary to syncronize access to it since it might not have the correct data until startup.onReady() fires.
249
- async fetchStartupData() {
250
- await __classPrivateFieldGet(this, _FinsembleDesktopAgent_startup, "f").onReady();
251
- const startupData = __classPrivateFieldGet(this, _FinsembleDesktopAgent_startup, "f").getStartupData();
252
- const { authenticationToken, windowName } = startupData;
253
- const maybeEmbeddedTitlebarIndicator = startupData.webContentsName.includes(EMBEDDED_TITLEBAR_INDICATOR_STRING)
254
- ? EMBEDDED_TITLEBAR_INDICATOR_STRING
255
- : "";
256
- // The uuid has the appId encoded for diagnostics, but appId is not available until startup data is ready; therefore must set uuid here the first time this function is called
257
- if (__classPrivateFieldGet(this, _FinsembleDesktopAgent_uuid, "f") === "undefined") {
258
- __classPrivateFieldSet(this, _FinsembleDesktopAgent_uuid, `fdc3-instanceId-${maybeEmbeddedTitlebarIndicator}${authenticationToken.meta.appId}=${uuidv4()}`, "f");
259
- __classPrivateFieldSet(this, _FinsembleDesktopAgent_appId, authenticationToken.meta.appId, "f");
260
- }
261
- const appMetadata = Object.assign(Object.assign({}, authenticationToken.meta), { instanceId: __classPrivateFieldGet(this, _FinsembleDesktopAgent_uuid, "f") });
262
- Logger.system.debug(`fetchStartupData`, startupData, windowName, authenticationToken, appMetadata);
263
- return { windowName, authenticationToken, appMetadata };
264
- }
265
- meta() {
266
- return {
267
- appId: __classPrivateFieldGet(this, _FinsembleDesktopAgent_appId, "f"),
268
- uuid: __classPrivateFieldGet(this, _FinsembleDesktopAgent_uuid, "f"),
269
- href: window.document ? document.location.href : "",
270
- };
271
- }
272
- handleHeartbeat() {
273
- __classPrivateFieldGet(this, _FinsembleDesktopAgent_heartbeatMonitor, "f").registerHeartbeat();
274
- }
275
- triggerContextListeners(message) {
276
- var _a, _b;
277
- const { context } = message.payload;
278
- let contextMetadata = undefined;
279
- let handlers;
280
- // if the originator was an app, then fill in the contextMetatdata to be passed to context listener
281
- if (message.meta.originatorAppId && message.meta.originatorUuid) {
282
- contextMetadata = { source: { appId: message.meta.originatorAppId, instanceId: message.meta.originatorUuid } };
283
- }
284
- // The targetSubscriberId field is set only when contexts are from an autoBroadcast. During autoBroadcast, one context is received for a specific
285
- // subscriber (for addContextListener), or multiple contexts may be received in rapid fire (for joinChannel with existing subscribers).
286
- // For all cases only the handler identified by targetSubscriberId is triggered.
287
- //
288
- // The need for targetSubscriberId is due to a channel having multiple listeners (based on context), with each of these context listeners potentially
289
- // having multiple handlers. Without targetSubscriberId, autoBroadcast would go to all listeners, which isn't correct (ambiguity causes duplicate triggering).
290
- //
291
- // For a specific example, if the app adds a second global listener for any context (i.e. "*") then only that one new listener should trigger
292
- // when the corresponding autoBroadcast message arrives with the latest context; targetSubscriberId ensures this by uniquely identifying
293
- // the listener and it corresponding handler.
294
- if (message.meta.targetSubscriberId) {
295
- let targetHandlerSet;
296
- // Find the subscriber's handler and save in targetHandlerSet. (Alternatively, could have created a direct mapping, but reusing the existing data structure.)
297
- // This code can be converted to flatMap now that we have ES2020 support.
298
- Object.values(__classPrivateFieldGet(this, _FinsembleDesktopAgent_contextHandlers, "f")).every((handlersByType) => {
299
- targetHandlerSet = handlersByType.find((handlerSet) => handlerSet.targetSubscriberId === message.meta.targetSubscriberId);
300
- return targetHandlerSet === undefined;
301
- });
302
- // there is only one handler for the autoBroadcast path, but next section of code expects an array for the general case.
303
- handlers = targetHandlerSet ? [targetHandlerSet] : [];
304
- }
305
- else {
306
- // get all registered handlers, for this context type or global handlers
307
- handlers = ((_a = __classPrivateFieldGet(this, _FinsembleDesktopAgent_contextHandlers, "f")[context === null || context === void 0 ? void 0 : context.type]) !== null && _a !== void 0 ? _a : []).concat((_b = __classPrivateFieldGet(this, _FinsembleDesktopAgent_contextHandlers, "f")["*"]) !== null && _b !== void 0 ? _b : []);
308
- }
309
- handlers.forEach(async ({ handler, channel }) => {
310
- var _a, _b;
311
- // Note 1: if meta.channel set then broadcast addressed to a app channel; otherwise addressed to a user channel.
312
- // Note 2: if this handler's "channel" variable is set, then the handler is for an app channel; otherwise it is for a user channel
313
- // If one of the following cases matches then invoke the handler
314
- // 1) if broadcast addressed to a specified app channel and the handler is for that channel, then invoke it, or
315
- // 2) if broadcast addressed to a user channel and the handler is for a user channel, then invoke it, or
316
- // 3) if broadcast addressed to a user channel and the handler is an "app channel proxy" for a user channel, then invoke it
317
- // 4) if broadcast addressed to a specified app channel that is a user channel and handler is for joined user channel,
318
- // then invoke handler
319
- if ((message.meta.channel && message.meta.channel === channel) ||
320
- (!message.meta.channel && !channel) ||
321
- (!message.meta.channel &&
322
- (await this.isUserChannel(channel)) &&
323
- ((_a = (await this.getCurrentChannels())) === null || _a === void 0 ? void 0 : _a.find((element) => element.id === channel))) ||
324
- (message.meta.channel &&
325
- !channel &&
326
- (await this.isUserChannel(message.meta.channel)) &&
327
- ((_b = (await this.getCurrentChannels())) === null || _b === void 0 ? void 0 : _b.find((element) => element.id === message.meta.channel)))) {
328
- Logger.system.debug(`FDC3 Client: triggerContextListeners for all on ${channel !== null && channel !== void 0 ? channel : "default"} channel`, message.type, message);
329
- // invoke the addContextListener handler
330
- handler(context, contextMetadata);
331
- }
332
- else {
333
- Logger.system.debug(`FDC3 Client: triggerContextListeners skipped for all on ${channel !== null && channel !== void 0 ? channel : "default"} channel`, message.type, message);
334
- }
335
- });
336
- }
337
- // See https://fdc3.finos.org/docs/api/ref/DesktopAgent#examples-1 for supported examples of intents with various return characteristics
338
- async triggerIntentListener(message) {
339
- const { intent, context, requestId } = message.payload;
340
- let contextMetadata = undefined;
341
- const handler = __classPrivateFieldGet(this, _FinsembleDesktopAgent_intentHandlers, "f")[intent];
342
- let intentResultError;
343
- let result = null;
344
- let localIntentResult = undefined;
345
- // if the originator was an app, then fill in the contextMetatdata to be passed to intent lisener
346
- if (message.meta.originatorAppId && message.meta.originatorUuid) {
347
- contextMetadata = { source: { appId: message.meta.originatorAppId, instanceId: message.meta.originatorUuid } };
348
- }
349
- if (typeof handler === "function") {
350
- // Set timer to issue warning if handler doesn't return in expect time period (but don't fail since handler could be interacting with user and therefore be very slow)
351
- let intentResultTimer = setInterval(() => {
352
- Logger.system.warn(`tag:FDC3:raiseIntent No intent result has been returned yet for intent ${intent} -- will continue to wait`, message.payload);
353
- }, WaitForIntentResultTimeout);
354
- Logger.system.log(`tag:FDC3:raiseIntent triggering intent listener for intent ${intent}`, message.payload);
355
- try {
356
- // Wait for the intent handler to return a result
357
- localIntentResult = await handler(context, contextMetadata);
358
- }
359
- catch (err) {
360
- Logger.system.error(`tag:FDC3:raiseIntent -- error thrown in handler for intent ${intent}`, err, context, message.payload);
361
- intentResultError = ResultError.IntentHandlerRejected;
362
- result = {
363
- type: "intentResult",
364
- meta: this.meta(),
365
- payload: {
366
- intentResultError,
367
- intent,
368
- requestId,
369
- },
370
- };
371
- this.exchange(result);
372
- }
373
- clearInterval(intentResultTimer);
374
- // If no error was thrown above when the intent handler was invoked, then return the handler result
375
- if (!intentResultError) {
376
- // convert IntentResult to InteropIntentResult, a form than can be transmitted to InteropService
377
- // `?addContextListener` is how we dynamically tell whether the user returned a Channel
378
- const intentResult = (localIntentResult === null || localIntentResult === void 0 ? void 0 : localIntentResult.addContextListener)
379
- ? { channelId: localIntentResult === null || localIntentResult === void 0 ? void 0 : localIntentResult.id, type: localIntentResult.type }
380
- : localIntentResult;
381
- // If intentResult isn't void, then ensure it appears to be either a channel or context
382
- if (intentResult && (typeof intentResult !== "object" || !intentResult.type)) {
383
- Logger.system.error(`IntentResult returned by FDC3 client app for intent ${intent} is rejected since it doesn't match expected channel or context definition`, intentResult);
384
- intentResultError = ResultError.NoResultReturned;
385
- }
386
- result = {
387
- type: "intentResult",
388
- meta: this.meta(),
389
- payload: {
390
- intentResult,
391
- intentResultError,
392
- intent,
393
- requestId,
394
- },
395
- };
396
- this.exchange(result);
397
- }
398
- }
399
- else {
400
- Logger.system.error(`Legal listener not found for intent ${intent}`);
401
- result = {
402
- type: "intentResult",
403
- meta: this.meta(),
404
- payload: {
405
- intentResultError: ResultError.IntentHandlerRejected,
406
- intent,
407
- requestId,
408
- },
409
- };
410
- this.exchange(result);
411
- }
412
- Logger.system.log(`tag:FDC3:raiseIntent handler response for intent ${intent}`, result);
413
- }
414
- async handlePrivateChannelEvent(message) {
415
- const { channel, context, targetSubscriberId } = message.payload;
416
- const channelSubscriptions = __classPrivateFieldGet(this, _FinsembleDesktopAgent_privateChannelSubscription, "f")[channel];
417
- const targetSubscription = channelSubscriptions.find((s) => s.targetSubscriberId === targetSubscriberId);
418
- if (targetSubscription) {
419
- switch (targetSubscription.subscribeType) {
420
- case "onAddContextListener":
421
- targetSubscription.handler(context);
422
- break;
423
- case "onUnsubscribe":
424
- targetSubscription.handler(context);
425
- break;
426
- case "onDisconnect":
427
- targetSubscription.handler();
428
- break;
429
- default: {
430
- Logger.system.error("FDC3 Client: unknown subscribeType in matching targetSubscription", targetSubscription);
431
- }
432
- }
433
- }
434
- else {
435
- Logger.system.error("FDC3 Client: could not find target subscription", targetSubscriberId, channelSubscriptions);
436
- }
437
- }
438
- async handleIntentResult(message) {
439
- const { intent: intentName, intentResult, requestId, intentResultError } = message.payload;
440
- // If there is an outstanding resolve function associated with the request id, then invoke it
441
- if (typeof __classPrivateFieldGet(this, _FinsembleDesktopAgent_intentResultPromiseResolveMap, "f")[requestId] === "function") {
442
- Logger.system.log(`tag:FDC3:raiseIntent result message received for intent ${intentName}`, message);
443
- // Resolve the outstanding promise, waited on in the corresponding getResult function, returning the intent result or an error
444
- __classPrivateFieldGet(this, _FinsembleDesktopAgent_intentResultPromiseResolveMap, "f")[requestId]({ errorResult: intentResultError, intentResult });
445
- }
446
- else {
447
- Logger.system.error(`Legal internal handler for intent result not found`, message, __classPrivateFieldGet(this, _FinsembleDesktopAgent_intentResultPromiseResolveMap, "f"));
448
- }
449
- }
450
- handleIncoming(message) {
451
- if (message.type === "heartbeat") {
452
- Logger.system.debug("Client heartbeat", message);
453
- }
454
- else {
455
- Logger.system.debug("FDC3 Client: incoming", message.type, message);
456
- }
457
- switch (message.type) {
458
- case "broadcast":
459
- this.triggerContextListeners(message);
460
- break;
461
- case "intent":
462
- this.triggerIntentListener(message);
463
- break;
464
- case "privateChannelEvent":
465
- this.handlePrivateChannelEvent(message);
466
- break;
467
- case "intentResult":
468
- this.handleIntentResult(message);
469
- break;
470
- case "heartbeat":
471
- this.handleHeartbeat();
472
- break;
473
- default:
474
- break;
475
- }
476
- }
477
- /**
478
- * Releases the queue, sending API calls to the interop service that had been deferred until a connection
479
- * was established.
480
- */
481
- releaseQueue() {
482
- /**
483
- * When messages were queued, the uuid would not have been available (uuid is based on windowName
484
- * which is only available after startup.onReady). Now that we're releasing the queue, update
485
- * the uuid in any queued messages before sending them out.
486
- */
487
- const updateUUID = (message) => {
488
- var _a;
489
- if (((_a = message === null || message === void 0 ? void 0 : message.meta) === null || _a === void 0 ? void 0 : _a.uuid) !== undefined) {
490
- message.meta.uuid = __classPrivateFieldGet(this, _FinsembleDesktopAgent_uuid, "f");
491
- }
492
- return message;
493
- };
494
- __classPrivateFieldGet(this, _FinsembleDesktopAgent_queue, "f").forEach(async (entry) => {
495
- Logger.system.log(`fdc3.releaseQueue`, entry);
496
- const { message, handler, resolve } = entry;
497
- const { err, receiveMessage } = await this.exchange(updateUUID(message), handler);
498
- resolve({ err, receiveMessage });
499
- });
500
- __classPrivateFieldSet(this, _FinsembleDesktopAgent_queue, [], "f");
501
- }
502
- /**
503
- * This is the central point for exchanging data with the interop service. Even though some FDC3
504
- * calls such as broadcast() are one way, we always perform a query/response with the server, at
505
- * least getting an empty response to know that it was handled.
506
- */
507
- exchange(message, handler = () => { }) {
508
- return new Promise(async (resolve) => {
509
- if (__classPrivateFieldGet(this, _FinsembleDesktopAgent_connected, "f")) {
510
- Logger.system.debug("FDC3 Client: outgoing", message.type, message);
511
- const { err, response } = await __classPrivateFieldGet(this, _FinsembleDesktopAgent_routerClient, "f").query(SERVER_CHANNEL, message, handler);
512
- const receiveMessage = response === null || response === void 0 ? void 0 : response.data;
513
- if (receiveMessage)
514
- Logger.system.log(`FDC3 Client: incoming`, receiveMessage);
515
- resolve({ err, receiveMessage });
516
- }
517
- else {
518
- __classPrivateFieldGet(this, _FinsembleDesktopAgent_queue, "f").push({ message, handler, resolve });
519
- this.start();
520
- }
521
- });
522
- }
523
- /**
524
- * Performs the handshake to the interop service and starts hearbeats.
525
- * @internal
526
- */
527
- async connect() {
528
- /**
529
- * StartupData contains the AuthenticationToken necessary to connect to the interop service. When an app
530
- * is spawned by Finsemble, the AuthenticationToken is automatically created by the launcher. When an app
531
- * is freestanding, the AuthenticationToken is generated when a developer calls FSBLJSAdapter.startApp with a
532
- * digital signing key. If an app can't be authenticated then Startup ensures that an anonymous
533
- * AuthenticationToken exists (type "unauthenticated").
534
- */
535
- const { windowName, authenticationToken } = await this.fetchStartupData();
536
- Logger.system.log(`fdc3.connect StartupData for ${windowName}`);
537
- const registerClient = {
538
- type: "register",
539
- meta: this.meta(),
540
- payload: {
541
- // It would be better if the server assigned the client channel name. We could then protect against clashes.
542
- clientChannel: __classPrivateFieldGet(this, _FinsembleDesktopAgent_clientChannel, "f"),
543
- // Ideally the server gets/verifies the windowName from the router
544
- windowName,
545
- // Required by InteropService to authenticate this client (preventing spoofing)
546
- authenticationToken,
547
- },
548
- };
549
- /**
550
- * We need to ensure that the SERVER_CHANNEL responder has been added to the router. This happens
551
- * at the kernel stage when the InteropService is starting up. Therefore we need to wait until the
552
- * kernel stage is complete (i.e. InteropService is up and running) before we can query the SERVER_CHANNEL.
553
- *
554
- * Freestanding apps will periodically try to register with Interop if they are started prior to Finsemble
555
- * coming up which would cause interop registration request being fired before the responder was added to the router.
556
- *
557
- * This waitForBootStage works, even though Finsemble might not be up, for two reasons:
558
- * 1) the underlying router subscribe in waitForBootStage will be queued by the routerClient until the router is up
559
- * 2) the underlying pubsub topic relies on a default pubSub responder in the router service, so it will immediately
560
- * be available when the router is available.
561
- */
562
- SystemManagerClient.waitForBootStage("kernel", "stageCompleted", (error) => {
563
- if (error) {
564
- Logger.system.error("connect error waitingForBootStage", error);
565
- }
566
- else {
567
- __classPrivateFieldGet(this, _FinsembleDesktopAgent_routerClient, "f").query(SERVER_CHANNEL, registerClient, (err) => {
568
- if (err) {
569
- Logger.system.error("connect error", err);
570
- }
571
- else {
572
- __classPrivateFieldGet(this, _FinsembleDesktopAgent_routerClient, "f").addResponder(__classPrivateFieldGet(this, _FinsembleDesktopAgent_clientChannel, "f"), (err2, request) => {
573
- if (err2 || !request) {
574
- const errorString = errorAsString(err2 !== null && err2 !== void 0 ? err2 : "No request received on responder");
575
- Logger.system.error(`FinsembleDesktopAgent can't listen on channel ${__classPrivateFieldGet(this, _FinsembleDesktopAgent_clientChannel, "f")} : ${errorString}`);
576
- // channel isn't available, uh oh
577
- }
578
- else {
579
- if (request.data)
580
- this.handleIncoming(request.data);
581
- request.sendQueryResponse(null);
582
- }
583
- });
584
- __classPrivateFieldSet(this, _FinsembleDesktopAgent_connected, true, "f");
585
- Logger.system.log(`FDC3 client connected for window ${windowName}`);
586
- this.releaseQueue();
587
- // The heartbeat monitor shouldn't start until now that we've successfully connected to the interop service
588
- __classPrivateFieldGet(this, _FinsembleDesktopAgent_heartbeatMonitor, "f").start();
589
- }
590
- });
591
- }
592
- });
593
- }
594
- /**
595
- * Connect to the interop service. This method can be safely called multiple times. It will only
596
- * establish a single connection.
597
- * This function is called by FSBLDesktop and FSBLFreestanding.
598
- * @internal
599
- */
600
- async start() {
601
- // We only need to register with the FSBL event handlers once. Prevents connecting multiple times.
602
- if (__classPrivateFieldGet(this, _FinsembleDesktopAgent_startHasBeenCalled, "f"))
603
- return;
604
- __classPrivateFieldSet(this, _FinsembleDesktopAgent_startHasBeenCalled, true, "f");
605
- await __classPrivateFieldGet(this, _FinsembleDesktopAgent_startup, "f").onReady();
606
- // The connect method performs the handshake and starts the heartbeats.
607
- // **We do not want to await** it since any calling function would stall, until a connection is established. In this
608
- // instance this is a "fire and forget" action and any connections issues will be highlighted by other API calls.
609
- this.connect();
610
- }
611
- /**
612
- * Stops the client and puts it back into queuing state. The client
613
- * can be restarted by calling connect().
614
- * @internal
615
- */
616
- async stop() {
617
- __classPrivateFieldGet(this, _FinsembleDesktopAgent_heartbeatMonitor, "f").stop();
618
- const unregisterClient = {
619
- type: "unregister",
620
- meta: this.meta(),
621
- };
622
- await this.exchange(unregisterClient);
623
- __classPrivateFieldSet(this, _FinsembleDesktopAgent_startHasBeenCalled, false, "f");
624
- __classPrivateFieldGet(this, _FinsembleDesktopAgent_routerClient, "f").removeResponder(__classPrivateFieldGet(this, _FinsembleDesktopAgent_clientChannel, "f"));
625
- __classPrivateFieldSet(this, _FinsembleDesktopAgent_connected, false, "f");
626
- }
627
- /**
628
- * Registers handlers which will be called if the client is disconnected from Finsemble. This is only useful when
629
- * running in freestanding apps that might continue running after Finsemble has been terminated. Users should be
630
- * prompted to restart their freestanding app when a disconnect is received.
631
- *
632
- * @param cb Handler function.
633
- * @experimental This method is not part of the FDC3 standard and may be replaced in the future with alternative mechanisms.
634
- */
635
- onDisconnect(cb) {
636
- __classPrivateFieldGet(this, _FinsembleDesktopAgent_heartbeatMonitor, "f").onDisconnect(cb);
637
- }
638
- /** @internal */
639
- async channelGetCurrentContext(channel, contextType) {
640
- const message = {
641
- type: "currentContextRequest",
642
- meta: Object.assign(Object.assign({}, this.meta()), { channel }),
643
- payload: {
644
- contextType,
645
- },
646
- };
647
- const { err, receiveMessage } = await this.exchange(message);
648
- if (err)
649
- return null;
650
- return (receiveMessage === null || receiveMessage === void 0 ? void 0 : receiveMessage.type) === "currentContext" ? receiveMessage.payload.context : null;
651
- }
652
- /**
653
- * Publishes context to other apps on the desktop.
654
- * Calling broadcast at the DesktopAgent scope will push the context to whatever Channel the app is joined to.
655
- * If the app is not currently joined to a channel, calling fdc3.broadcast will have no effect.
656
- * Apps can still directly broadcast and listen to context on any channel via the methods on the Channel class.
657
- * @param context
658
- */
659
- async broadcast(context) {
660
- if (!context || !context.type) {
661
- throw new Error("Invalid arguments. An FDC3 Context object (i.e. an Object with a type field) is required.");
662
- }
663
- const message = {
664
- type: "broadcast",
665
- meta: this.meta(),
666
- payload: {
667
- context,
668
- channelType: "user",
669
- },
670
- };
671
- await this.exchange(message);
672
- }
673
- /** @internal */
674
- async channelBroadcast(channel, context, channelType) {
675
- const message = {
676
- type: "broadcast",
677
- meta: Object.assign(Object.assign({}, this.meta()), { channel }),
678
- payload: {
679
- context,
680
- channelType,
681
- },
682
- };
683
- await this.exchange(message);
684
- }
685
- /**
686
- * Retrieves a list of the System channels available for the app to join.
687
- * This should include the 'global' channel.
688
- */
689
- async getUserChannels() {
690
- var _a;
691
- const message = {
692
- type: "systemChannelRequest",
693
- meta: this.meta(),
694
- };
695
- const { err, receiveMessage } = await this.exchange(message);
696
- if (err)
697
- return [];
698
- const channelNames = (receiveMessage === null || receiveMessage === void 0 ? void 0 : receiveMessage.type) === "systemChannels" ? (_a = receiveMessage === null || receiveMessage === void 0 ? void 0 : receiveMessage.payload) === null || _a === void 0 ? void 0 : _a.channels : [];
699
- return channelNames.map((name) => {
700
- var _a, _b, _c;
701
- let metaData;
702
- if ((receiveMessage === null || receiveMessage === void 0 ? void 0 : receiveMessage.type) === "systemChannels" && ((_a = receiveMessage === null || receiveMessage === void 0 ? void 0 : receiveMessage.payload) === null || _a === void 0 ? void 0 : _a.systemChannelMeta)) {
703
- metaData = (_c = (_b = receiveMessage === null || receiveMessage === void 0 ? void 0 : receiveMessage.payload) === null || _b === void 0 ? void 0 : _b.systemChannelMeta[name]) === null || _c === void 0 ? void 0 : _c.displayMetaData;
704
- }
705
- return new ChannelProxy(this, name, "user", metaData);
706
- });
707
- }
708
- /**
709
- * For backwards compatability. Retrieves a list of the System channels available for the app to join.
710
- */
711
- async getSystemChannels() {
712
- return this.getUserChannels();
713
- }
714
- async open(app, context) {
715
- var _a;
716
- if (!app) {
717
- throw new Error("Invalid arguments. The required 'app' parameter is missing.");
718
- }
719
- const { appMetadata } = await this.fetchStartupData();
720
- const message = {
721
- type: "open",
722
- meta: this.meta(),
723
- payload: {
724
- requestingAppId: appMetadata.appId,
725
- app,
726
- context,
727
- },
728
- };
729
- const { err, receiveMessage } = await this.exchange(message);
730
- const interopOpenResponse = receiveMessage;
731
- if (err) {
732
- throw new Error(OpenError.ResolverUnavailable);
733
- }
734
- else if (interopOpenResponse.payload.error) {
735
- throw new Error(interopOpenResponse.payload.error);
736
- }
737
- return (_a = interopOpenResponse.payload.appIdentifier) !== null && _a !== void 0 ? _a : { appId: "unknown-open-appIdentifier" };
738
- }
739
- /**
740
- * Find out more information about a particular intent by passing its name, and optionally its context.
741
- *
742
- * findIntent is effectively granting programmatic access to the Desktop Agent's resolver.
743
- * A promise resolving to the intent, its metadata and metadata about the apps that registered it is returned.
744
- * This can be used to raise the intent against a specific app.
745
- *
746
- * If the resolution fails, the promise will return an `Error` with a string from the `ResolveError` enumeration.
747
- *
748
- * @param intent
749
- * @param context
750
- */
751
- async findIntent(intent, context, resultType) {
752
- if (!intent) {
753
- throw new Error("Invalid arguments. The required intent parameter is missing.");
754
- }
755
- if (context && !context.type) {
756
- throw new Error("Invalid arguments. Second parameter must be a valid context.");
757
- }
758
- if (resultType && typeof resultType !== "string") {
759
- throw new Error("Invalid arguments. Third parameter must be a string.");
760
- }
761
- const message = {
762
- type: "findIntent",
763
- meta: this.meta(),
764
- payload: {
765
- intent,
766
- context,
767
- resultType,
768
- },
769
- };
770
- const { err, receiveMessage } = await this.exchange(message);
771
- const interopFindIntentResponse = receiveMessage;
772
- if (err) {
773
- throw new Error(ResolveError.ResolverUnavailable);
774
- }
775
- else if (interopFindIntentResponse.payload.error) {
776
- throw new Error(interopFindIntentResponse.payload.error);
777
- }
778
- else if (!interopFindIntentResponse.payload.appIntent) {
779
- throw new Error("Invalid response returned from InteropService for findIntent. No appIntent and no error.");
780
- }
781
- return interopFindIntentResponse.payload.appIntent;
782
- }
783
- /**
784
- * Find all the available intents for a particular context.
785
- *
786
- * findIntents is effectively granting programmatic access to the Desktop Agent's resolver.
787
- * A promise resolving to all the intents, their metadata and metadata about the apps that registered it is returned,
788
- * based on the context types the intents have registered.
789
- *
790
- * If the resolution fails, the promise will return an `Error` with a string from the `ResolveError` enumeration.
791
- * @param context
792
- */
793
- async findIntentsByContext(context, resultType) {
794
- if (!context) {
795
- throw new Error("Invalid arguments. The required context parameter is missing.");
796
- }
797
- if (!context.type) {
798
- throw new Error("Invalid arguments. Second parameter must be a valid context.");
799
- }
800
- if (resultType && typeof resultType !== "string") {
801
- throw new Error("Invalid arguments. Second parameter must be a string to identify result type.");
802
- }
803
- // The context parameter was made optional to support a query for all intents. This is consistent with findIntent, however it is not consistent with FDC3 spec plus.
804
- // a mechanism is still needed to query for contexts. A better solution is to add two new InteropAdmin methods; e.g. getIntents() and getContexts().
805
- const message = {
806
- type: "findIntentsByContext",
807
- meta: this.meta(),
808
- payload: {
809
- context,
810
- resultType,
811
- },
812
- };
813
- const { receiveMessage } = await this.exchange(message);
814
- const interopIntentsList = receiveMessage;
815
- if (interopIntentsList.payload.error) {
816
- throw new Error(interopIntentsList.payload.error);
817
- }
818
- return interopIntentsList.payload.intents || [];
819
- }
820
- // @ts-ignore <----------------------------------------------------------------------------------------------------------------------------------------------
821
- async createPrivateChannel() {
822
- return new ChannelProxy(this, this.privateChannelId(), "private");
823
- }
824
- /**
825
- * Common implementation for raiseIntent() and raiseIntentForContext().
826
- *
827
- * @param intent
828
- * @param context
829
- * @param target
830
- * @param forContext If true then invoked by raiseIntentForContext which gives a different meaning to context parameter
831
- */
832
- async raiseIntentInternal(intent, context, target, forContext = false) {
833
- if (context && !context.type) {
834
- throw new Error("Invalid arguments. Second parameter must be a valid context.");
835
- }
836
- const requestId = `raise-intent-request-Id-${uuidv4()}`;
837
- Logger.system.log(`tag:FDC3:raiseIntent initiated for intent ${intent} with ${context ? " context type " : "no context"}${context === null || context === void 0 ? void 0 : context.type}`, context, target, requestId, forContext);
838
- const message = {
839
- type: "raiseIntent",
840
- meta: this.meta(),
841
- payload: {
842
- intent,
843
- context,
844
- target,
845
- requestId,
846
- forContext,
847
- },
848
- };
849
- Logger.system.log(`tag:FDC3:raiseIntent request sent to InteropService for intent ${intent}`, message);
850
- // The message received back from the InteropService for the below exchange(message) corresponds to the IntentResolution (signaling the raiseIntent has been successfully sent to the target app, or an error).
851
- // Asynchronously, an IntentResult will come in later.
852
- const { err, receiveMessage } = await this.exchange(message);
853
- const interopIntentResolution = receiveMessage;
854
- Logger.system.log(`tag:FDC3:raiseIntent intent resolution received for intent ${intent}`, err, receiveMessage);
855
- if (err) {
856
- throw new Error(ResolveError.ResolverUnavailable);
857
- }
858
- else if (interopIntentResolution.payload.error) {
859
- throw new Error(interopIntentResolution.payload.error);
860
- }
861
- else if (!interopIntentResolution.payload.data) {
862
- throw new Error("Invalid response returned from InteropService for raiseIntent. No data.");
863
- }
864
- /* Allocate a promise for this raiseIntent and map it to the request id to handle the getResult() syncronization.
865
-
866
- This promise is waited on below in the getResult function returned in the raiseIntent response,
867
- then resolved in handleIntentResult when the result arrives for the requestId
868
- */
869
- __classPrivateFieldGet(this, _FinsembleDesktopAgent_intentResultPromiseMap, "f")[requestId] = new Promise((intentResultResolve) => {
870
- // Map the resolve function to the requestID to be later invoked to complete this promise when the intent result arrives.
871
- __classPrivateFieldGet(this, _FinsembleDesktopAgent_intentResultPromiseResolveMap, "f")[requestId] = intentResultResolve;
872
- });
873
- const intentResolution = {
874
- source: interopIntentResolution.payload.data.source,
875
- intent: interopIntentResolution.payload.data.intent,
876
- version: interopIntentResolution.payload.data.version,
877
- getResult: async () => {
878
- let errorResult;
879
- let intentResult;
880
- Logger.system.log(`tag:FDC3:raiseIntent getResult initiated for intent ${intent}`, message);
881
- if (typeof __classPrivateFieldGet(this, _FinsembleDesktopAgent_intentResultPromiseResolveMap, "f")[requestId] === "function") {
882
- // Wait for the corresponding intent result to be returned.
883
- // The promise waited on here is resolved in handleIntentResult when the result with the correct requestId arrives from InteropService.
884
- ({ errorResult, intentResult } = await __classPrivateFieldGet(this, _FinsembleDesktopAgent_intentResultPromiseMap, "f")[requestId]);
885
- }
886
- else {
887
- errorResult = "could not fulfill intent resolution due to no corresponding result promise";
888
- }
889
- Logger.system.log(`tag:FDC3:raiseIntent result for intent ${intent}`, { errorResult, intentResult });
890
- // Any error has to be thrown here in this original thread of control for the app to receive it -- it cannot be thrown when the result is processed in handleIntentResult
891
- if (errorResult) {
892
- throw new Error(errorResult);
893
- }
894
- // The result might be a channel type, or it might be a context type, or it might be undefined.
895
- const resultChannelId = intentResult === null || intentResult === void 0 ? void 0 : intentResult.channelId;
896
- const resultType = intentResult === null || intentResult === void 0 ? void 0 : intentResult.type;
897
- const fdc3IntentResult = resultChannelId
898
- ? new ChannelProxy(this, resultChannelId, resultType)
899
- : (intentResult !== null && intentResult !== void 0 ? intentResult : undefined);
900
- Logger.system.log(`tag:FDC3:raiseIntent getResult() returned for intent ${intent}`, fdc3IntentResult);
901
- return fdc3IntentResult;
902
- },
903
- };
904
- return intentResolution;
905
- }
906
- async raiseIntent(intent, context, target) {
907
- if (!intent) {
908
- throw new Error("Invalid arguments. The required intent parameter is missing.");
909
- }
910
- if (!context) {
911
- throw new Error("Invalid arguments. The required context parameter is missing.");
912
- }
913
- if (!context.type) {
914
- throw new Error("Invalid arguments. Second parameter must be a valid context.");
915
- }
916
- return this.raiseIntentInternal(intent, context, target);
917
- }
918
- async raiseIntentForContext(context, target) {
919
- if (!context) {
920
- throw new Error("Invalid arguments. The required context parameter is missing.");
921
- }
922
- return this.raiseIntentInternal(null, context, target, true);
923
- }
924
- /**
925
- * Adds a listener for incoming Intents from the Agent. Unlike addContextListener, there can only be one listener for an intent.
926
- * @param intent
927
- * @param handler
928
- */
929
- addIntentListener(intent, handler) {
930
- if (!intent) {
931
- throw new Error("Invalid arguments. The required intent parameter is missing.");
932
- }
933
- if (!handler) {
934
- throw new Error("addIntentListener Invalid arguments. The required handler parameter is missing.");
935
- }
936
- if (__classPrivateFieldGet(this, _FinsembleDesktopAgent_intentHandlers, "f")[intent]) {
937
- throw new Error(`Intent listener already defined for intent ${intent}`);
938
- }
939
- else {
940
- __classPrivateFieldGet(this, _FinsembleDesktopAgent_intentHandlers, "f")[intent] = handler;
941
- }
942
- const message = {
943
- type: "subscribeIntent",
944
- meta: this.meta(),
945
- payload: {
946
- intent,
947
- },
948
- };
949
- // Dangerous code: See note at top of file about 1.2 compatibility
950
- const exchangePromise = this.exchange(message); // don't wait for response
951
- const listener = {
952
- unsubscribe: () => {
953
- const unsubscribeMessage = {
954
- type: "unsubscribeIntent",
955
- meta: this.meta(),
956
- payload: {
957
- intent,
958
- },
959
- };
960
- this.exchange(unsubscribeMessage); // don't wait for response
961
- delete __classPrivateFieldGet(this, _FinsembleDesktopAgent_intentHandlers, "f")[intent];
962
- },
963
- };
964
- // Dangerous code: See note at top of file about 1.2 compatibility
965
- let promise = new Promise((resolve) => {
966
- exchangePromise.then(() => {
967
- resolve(listener);
968
- });
969
- });
970
- promise.unsubscribe = () => {
971
- Logger.system.deprecated("Use of the synchronous version of addIntentListener from FDC3 1.2 is deprecated. Please switch to `await addIntentListener`.");
972
- listener.unsubscribe();
973
- };
974
- return promise;
975
- }
976
- // Common functions to handler incoming Private Channel events to support onAddListener, onSubscribe, and oDisconnect
977
- listenerForPrivateChannelEvent(subscribeType, channel, handler) {
978
- // A unique targetSubscriberId must be passed in InteropSubscribeChannelOnAddContext; the InteropService can direct messages to this specific listener by returning the targetSubscriberId in a broadcast message,
979
- const targetSubscriberId = `subscriberId.${channel}.${subscribeType}.${Date.now()}_${Math.random()}`;
980
- // Bind targetSubscriberId to the specific handler and save in map
981
- const handlerSet = { subscribeType, handler, channel, targetSubscriberId };
982
- __classPrivateFieldGet(this, _FinsembleDesktopAgent_privateChannelSubscription, "f")[channel] = mmAdd(__classPrivateFieldGet(this, _FinsembleDesktopAgent_privateChannelSubscription, "f"), channel, handlerSet);
983
- let message = {
984
- type: "subscribePrivateChannelEvent",
985
- payload: {
986
- subscribeType,
987
- channel,
988
- targetSubscriberId,
989
- },
990
- meta: this.meta(),
991
- };
992
- this.exchange(message);
993
- return {
994
- unsubscribe: () => {
995
- let unsubscribeMessage = {
996
- type: "unsubscribePrivateChannelEvent",
997
- payload: {
998
- subscribeType,
999
- channel,
1000
- targetSubscriberId,
1001
- },
1002
- meta: this.meta(),
1003
- };
1004
- __classPrivateFieldGet(this, _FinsembleDesktopAgent_privateChannelSubscription, "f")[channel] = mmRemove(__classPrivateFieldGet(this, _FinsembleDesktopAgent_privateChannelSubscription, "f"), channel, handlerSet);
1005
- this.exchange(unsubscribeMessage); // Don't wait for response
1006
- },
1007
- };
1008
- }
1009
- /** @internal */
1010
- channelOnAddContextListener(channel, handler) {
1011
- return this.listenerForPrivateChannelEvent("onAddContextListener", channel, handler);
1012
- }
1013
- /** @internal */
1014
- channelOnUnsubscribe(channel, handler) {
1015
- return this.listenerForPrivateChannelEvent("onUnsubscribe", channel, handler);
1016
- }
1017
- /** @internal */
1018
- channelOnDisconnect(channel, handler) {
1019
- return this.listenerForPrivateChannelEvent("onDisconnect", channel, handler);
1020
- }
1021
- /** @internal */
1022
- channelDisconnect(channel) {
1023
- let message = {
1024
- type: "channelDisconnect",
1025
- meta: Object.assign(Object.assign({}, this.meta()), { channel }),
1026
- };
1027
- this.exchange(message);
1028
- }
1029
- /** @internal */
1030
- channelAddContextListener(channel, contextTypeOrHandler, handler) {
1031
- // Derives a definitive contextType and handler from the varargs
1032
- // Possibilities: addContextListener(handler) - deprecated 1.1, addContextListener(null, handler), addContextListener(contextType, handler)
1033
- const contextTypeOrWildCard = contextTypeOrHandler ? contextTypeOrHandler : "*";
1034
- const contextType = handler ? contextTypeOrWildCard : "*";
1035
- if (!handler)
1036
- handler = contextTypeOrHandler;
1037
- // A unique targetSubscriberId must be passed in InteropSubscribeContext; the InteropService can direct messages to this specific listener by returning the targetSubscriberId in a broadcast message,
1038
- const targetSubscriberId = `subscriberId.${Date.now()}_${Math.random()}`;
1039
- // Bind targetSubscriberId to the specific handler and save in map
1040
- const handlerSet = { handler, channel, targetSubscriberId };
1041
- __classPrivateFieldGet(this, _FinsembleDesktopAgent_contextHandlers, "f")[contextType] = mmAdd(__classPrivateFieldGet(this, _FinsembleDesktopAgent_contextHandlers, "f"), contextType, handlerSet);
1042
- let message = {
1043
- type: "subscribeContext",
1044
- meta: Object.assign(Object.assign({}, this.meta()), { targetSubscriberId }),
1045
- payload: {
1046
- contextType,
1047
- },
1048
- };
1049
- if (channel)
1050
- message.meta.channel = channel;
1051
- const exchangePromise = this.exchange(message);
1052
- return {
1053
- exchangePromise,
1054
- unsubscribe: () => {
1055
- let unsubscribeMessage = {
1056
- type: "unsubscribeContext",
1057
- meta: this.meta(),
1058
- payload: {
1059
- contextType,
1060
- },
1061
- };
1062
- if (channel)
1063
- unsubscribeMessage.meta.channel = channel;
1064
- __classPrivateFieldGet(this, _FinsembleDesktopAgent_contextHandlers, "f")[contextType] = mmRemove(__classPrivateFieldGet(this, _FinsembleDesktopAgent_contextHandlers, "f"), contextType, handlerSet);
1065
- this.exchange(unsubscribeMessage); // Don't wait for response
1066
- },
1067
- };
1068
- }
1069
- /**
1070
- * Adds a listener for incoming context broadcast from the Desktop Agent.
1071
- * If the consumer is only interested in a context of a particular type, they can use the relevant overload that allows the type to be specified.
1072
- * @param contextTypeOrHandler
1073
- * @param handler
1074
- */
1075
- addContextListener(contextTypeOrHandler, handler) {
1076
- if (contextTypeOrHandler === undefined) {
1077
- throw new Error("addContextListener Invalid arguments. The contextTypeOrHandler parameter shouldn't be undefined.");
1078
- }
1079
- if (typeof contextTypeOrHandler !== "function" && !handler) {
1080
- const msg = "addContextListener Invalid arguments. The required handler parameter is missing.";
1081
- console.error(msg, contextTypeOrHandler, handler);
1082
- Logger.system.error(msg);
1083
- throw new Error(msg);
1084
- }
1085
- // Dangerous code: See note at top of file about 1.2 compatibility
1086
- const { exchangePromise, unsubscribe } = this.channelAddContextListener(null, contextTypeOrHandler, handler);
1087
- let promise = new Promise((resolve) => {
1088
- exchangePromise.then(() => {
1089
- resolve({
1090
- unsubscribe,
1091
- });
1092
- });
1093
- });
1094
- promise.unsubscribe = () => {
1095
- Logger.system.deprecated("Use of the synchronous version of addContextListener from FDC3 1.2 is deprecated. Please switch to `await addContextListener`.");
1096
- unsubscribe();
1097
- };
1098
- return promise;
1099
- }
1100
- /**
1101
- * Joins the app to the specified channel.
1102
- * If an app is joined to a channel, all fdc3.broadcast calls will go to the channel, and all listeners assigned via fdc3.addContextListener will listen on the channel.
1103
- * An app can only be joined to one channel at a time.
1104
- * Rejects with error if the channel is unavailable or the join request is denied.
1105
- * Error with a string from the ChannelError enumeration.
1106
- * @param channelId
1107
- */
1108
- async joinUserChannel(channelId) {
1109
- if (!channelId) {
1110
- throw new Error("Invalid arguments. The required channelId parameter is missing.");
1111
- }
1112
- if (!(await this.isUserChannel(channelId))) {
1113
- Logger.system.error("Invalid arguments. The channel being joined must be a user channel.");
1114
- throw new Error(ChannelError.AccessDenied);
1115
- }
1116
- // Move this test to the InteropService so no dely is added, which might cause a backwards compatability issue
1117
- // const userChannels = await this.getUserChannels();
1118
- // if (userChannels.find((app) => channelId === app.id) === undefined) {
1119
- // throw new Error(ChannelError.NoChannelFound);
1120
- // }
1121
- const message = {
1122
- type: "joinChannels",
1123
- meta: this.meta(),
1124
- payload: {
1125
- channels: [channelId],
1126
- },
1127
- };
1128
- const { err, receiveMessage } = await this.exchange(message);
1129
- const interopJoinChannelsResponse = receiveMessage;
1130
- if (err) {
1131
- throw new Error(err);
1132
- }
1133
- else if (interopJoinChannelsResponse.payload.error) {
1134
- throw new Error(interopJoinChannelsResponse.payload.error);
1135
- }
1136
- }
1137
- async joinChannel(channelId) {
1138
- return this.joinUserChannel(channelId);
1139
- }
1140
- /**
1141
- * Returns a Channel object for the specified channel, creating it (as an App channel) - if it does not exist.
1142
- * Error with a string from the ChannelError enumeration if channel could not be created or access was denied.
1143
- * @param channelId
1144
- */
1145
- async getOrCreateChannel(channelId) {
1146
- if (!channelId) {
1147
- Logger.system.debug("getOrCreateChannel: The required channelId parameter is missing.");
1148
- throw new Error(ChannelError.CreationFailed);
1149
- }
1150
- else if (isPrivateChannelId(channelId)) {
1151
- throw new Error(ChannelError.AccessDenied);
1152
- }
1153
- // if channel proxy has already been allocated for the channelId, then return it; otherwise allocate a new one
1154
- let channelInstance = __classPrivateFieldGet(this, _FinsembleDesktopAgent_existingChannelProxy, "f")[channelId];
1155
- if (!channelInstance) {
1156
- channelInstance = new ChannelProxy(this, channelId);
1157
- __classPrivateFieldGet(this, _FinsembleDesktopAgent_existingChannelProxy, "f")[channelId] = channelInstance;
1158
- }
1159
- return channelInstance;
1160
- }
1161
- /**
1162
- * Get all joined channels
1163
- *
1164
- * Known race condition: getCurrentChannels() can return an empty string if it is called before the InteropService's linker module
1165
- * has completed initializing the app. This can occur if fdc3.getCurrentChannels() is the very first call that an app makes. To work around
1166
- * this issue, use the interop.autoConnect config flag. A future version of the InteropService will hold off on completed registrations
1167
- * until submodules have finished their work.
1168
- */
1169
- async getCurrentChannels() {
1170
- const message = {
1171
- type: "getCurrentChannels",
1172
- meta: this.meta(),
1173
- };
1174
- const { err, receiveMessage } = await this.exchange(message);
1175
- const interopGetCurrentChannelsResponse = receiveMessage;
1176
- if (err) {
1177
- throw new Error(err);
1178
- }
1179
- else if (interopGetCurrentChannelsResponse.payload.error) {
1180
- throw new Error(interopGetCurrentChannelsResponse.payload.error);
1181
- }
1182
- else if (!interopGetCurrentChannelsResponse.payload.data) {
1183
- throw new Error("Invalid response returned from InteropService for getCurrentChannels. No data.");
1184
- }
1185
- return interopGetCurrentChannelsResponse.payload.data.map((entry) => {
1186
- var _a, _b, _c;
1187
- let metaData;
1188
- if ((receiveMessage === null || receiveMessage === void 0 ? void 0 : receiveMessage.type) === "interopGetCurrentChannelsResponse" && ((_a = receiveMessage === null || receiveMessage === void 0 ? void 0 : receiveMessage.payload) === null || _a === void 0 ? void 0 : _a.systemChannelMeta)) {
1189
- metaData = (_c = (_b = receiveMessage === null || receiveMessage === void 0 ? void 0 : receiveMessage.payload) === null || _b === void 0 ? void 0 : _b.systemChannelMeta[entry.channel]) === null || _c === void 0 ? void 0 : _c.displayMetaData;
1190
- }
1191
- return new ChannelProxy(this, entry.channel, "user", metaData);
1192
- });
1193
- }
1194
- /**
1195
- * Returns the Channel object for the current channel membership.
1196
- * Returns null if the app is not joined to a channel.
1197
- */
1198
- async getCurrentChannel() {
1199
- const channels = await this.getCurrentChannels();
1200
- return channels && channels.length ? channels[0] : null;
1201
- }
1202
- /**
1203
- * Removes the app from any channel membership.
1204
- * Context broadcast and listening through the top-level fdc3.broadcast and fdc3.addContextListener will be in a no-op when the app is not on a channel.
1205
- */
1206
- async leaveCurrentChannel() {
1207
- const message = {
1208
- type: "leaveChannels",
1209
- meta: this.meta(),
1210
- payload: {},
1211
- };
1212
- await this.exchange(message);
1213
- }
1214
- /**
1215
- * Removes the app from the channel.
1216
- * Context broadcast and listening through the top-level fdc3.broadcast and fdc3.addContextListener will be in a no-op when the app is not on the channel.
1217
- */
1218
- async leaveChannel(channelId) {
1219
- const message = {
1220
- type: "leaveChannels",
1221
- meta: this.meta(),
1222
- payload: { channels: [channelId] },
1223
- };
1224
- await this.exchange(message);
1225
- }
1226
- /**
1227
- * Return specified app's meta data.
1228
- */
1229
- async getAppMetadata(app) {
1230
- var _a;
1231
- if (!app || !(app === null || app === void 0 ? void 0 : app.appId)) {
1232
- throw new Error("getAppMetadata: The required app parameter is missing or not an AppIdentifier.");
1233
- }
1234
- const message = {
1235
- type: "getAppMetadata",
1236
- app,
1237
- meta: this.meta(),
1238
- };
1239
- const { err, receiveMessage } = await this.exchange(message);
1240
- const interopGetCurrentChannelsResponse = receiveMessage;
1241
- if (err) {
1242
- throw new Error(err);
1243
- }
1244
- else if (interopGetCurrentChannelsResponse.payload.error) {
1245
- throw new Error(interopGetCurrentChannelsResponse.payload.error);
1246
- }
1247
- else if (!interopGetCurrentChannelsResponse.payload.appMetadata) {
1248
- throw new Error("Invalid response returned from InteropService for getAppMetadata. No data.");
1249
- }
1250
- return (_a = interopGetCurrentChannelsResponse.payload) === null || _a === void 0 ? void 0 : _a.appMetadata;
1251
- }
1252
- /**
1253
- * Return all the open instances of given appID.
1254
- */
1255
- async findInstances(app) {
1256
- let instances = [];
1257
- const message = {
1258
- type: "findInstances",
1259
- app,
1260
- meta: this.meta(),
1261
- };
1262
- if (app === null || app === void 0 ? void 0 : app.appId) {
1263
- const { err, receiveMessage } = await this.exchange(message);
1264
- const response = receiveMessage;
1265
- if (err) {
1266
- throw new Error(err);
1267
- }
1268
- else if (response.payload.error) {
1269
- throw new Error(response.payload.error);
1270
- }
1271
- else if (!response.payload.instances) {
1272
- throw new Error("Invalid response returned from InteropService for findInstances. No data.");
1273
- }
1274
- ({ instances } = response.payload);
1275
- }
1276
- return instances;
1277
- }
1278
- /**
1279
- * Retrieves information about the FDC3 Desktop Agent implementation, such as
1280
- * the implemented version of the FDC3 specification and the name of the implementation
1281
- * provider.
1282
- */
1283
- getInfo() {
1284
- // Dangerous code: See note at top of file about 1.2 compatibility
1285
- let p = new Promise(async (resolve) => {
1286
- const { data: FSBLVersion } = await ConfigClient.get(["finsemble", "system", "FSBLVersion"]);
1287
- const { appMetadata: startupMetadata } = await this.fetchStartupData();
1288
- // The interopService has more appMetaData than startup, plus it should be the single source of true for an app's metaData
1289
- const fullAppMetadata = await this.getAppMetadata({ appId: startupMetadata.appId, instanceId: __classPrivateFieldGet(this, _FinsembleDesktopAgent_uuid, "f") });
1290
- resolve({
1291
- fdc3Version: "2.1",
1292
- provider: "Finsemble",
1293
- providerVersion: FSBLVersion,
1294
- appMetadata: fullAppMetadata,
1295
- optionalFeatures: {
1296
- OriginatingAppMetadata: true,
1297
- UserChannelMembershipAPIs: true,
1298
- },
1299
- });
1300
- });
1301
- // Backward compatibility for 1.2 which expects this to be synchronous
1302
- p.fdc3Version = "1.2";
1303
- p.provider = "Finsemble";
1304
- p.providerVersion = __classPrivateFieldGet(this, _FinsembleDesktopAgent_FSBLVersion, "f");
1305
- return p;
1306
- }
1307
- }
1308
- _FinsembleDesktopAgent_connected = new WeakMap(), _FinsembleDesktopAgent_heartbeatMonitor = new WeakMap(), _FinsembleDesktopAgent_startHasBeenCalled = new WeakMap(), _FinsembleDesktopAgent_uuid = new WeakMap(), _FinsembleDesktopAgent_appId = new WeakMap(), _FinsembleDesktopAgent_clientChannel = new WeakMap(), _FinsembleDesktopAgent_intentHandlers = new WeakMap(), _FinsembleDesktopAgent_contextHandlers = new WeakMap(), _FinsembleDesktopAgent_privateChannelSubscription = new WeakMap(), _FinsembleDesktopAgent_intentResultPromiseMap = new WeakMap(), _FinsembleDesktopAgent_intentResultPromiseResolveMap = new WeakMap(), _FinsembleDesktopAgent_queue = new WeakMap(), _FinsembleDesktopAgent_routerClient = new WeakMap(), _FinsembleDesktopAgent_startup = new WeakMap(), _FinsembleDesktopAgent_existingChannelProxy = new WeakMap(), _FinsembleDesktopAgent_FSBLVersion = new WeakMap(), _FinsembleDesktopAgent_userChannels = new WeakMap();
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
7
+ if (kind === "m") throw new TypeError("Private method is not writable");
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
10
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
+ };
12
+ var _HeartbeatMonitor_declareDead, _HeartbeatMonitor_timeoutHandle, _HeartbeatMonitor_disconnectHandlers, _ChannelProxy_desktopAgent, _FinsembleDesktopAgent_connected, _FinsembleDesktopAgent_heartbeatMonitor, _FinsembleDesktopAgent_startHasBeenCalled, _FinsembleDesktopAgent_uuid, _FinsembleDesktopAgent_appId, _FinsembleDesktopAgent_clientChannel, _FinsembleDesktopAgent_intentHandlers, _FinsembleDesktopAgent_contextHandlers, _FinsembleDesktopAgent_privateChannelSubscription, _FinsembleDesktopAgent_intentResultPromiseMap, _FinsembleDesktopAgent_intentResultPromiseResolveMap, _FinsembleDesktopAgent_queue, _FinsembleDesktopAgent_routerClient, _FinsembleDesktopAgent_startup, _FinsembleDesktopAgent_windowName, _FinsembleDesktopAgent_existingChannelProxy, _FinsembleDesktopAgent_FSBLVersion, _FinsembleDesktopAgent_userChannels;
13
+ /**
14
+ * Regarding 1.2 compatibility. FDC3 1.2 defined some functions as synchronous which are now asynchronous. To provide
15
+ * backward compatibility for these functions, we return a Promise which has additional members attached (usually an
16
+ * unsubscribe function). Apps using either 1.2 or 2.0 will receive an interface that is a superset of what they expect.
17
+ *
18
+ * The resulting code is complex. It should be aggressively removed when FDC3 1.2 is retired, back to simple async functions
19
+ * that return Promise<Listener>.
20
+ *
21
+ * For Typescript support, 1.2 apps can simply install the 1.2 version of the "@finos/fdc3" npm module
22
+ */
23
+ import uuidv4 from "uuid-random";
24
+ import { OpenError, ResolveError, ResultError, ChannelError, } from "@finos/fdc3";
25
+ import Logger from "../logger";
26
+ import ConfigClient from "../configClient";
27
+ import SystemManagerClient from "../../common/systemManagerClient";
28
+ import { Globals } from "../../common/Globals";
29
+ import { SERVER_CHANNEL, EMBEDDED_TITLEBAR_INDICATOR_STRING } from "./types";
30
+ import { mmAdd, mmRemove, errorAsString, } from "./types";
31
+ // Timeout value for logging warning when intent response is delayed.
32
+ const WaitForIntentResultTimeout = 5000;
33
+ const PrivateChannelIdPrefix = "Private-Channel-Id";
34
+ export const isPrivateChannelId = (channelId) => channelId.includes(PrivateChannelIdPrefix);
35
+ /**
36
+ * Heartbeats are used by the InteropService to detect dead fdc3 client connections. A connection
37
+ * can die if a window crashes or is terminated. Heartbeats are also currently the only way to detect
38
+ * that freestanding apps have closed, even gracefully.
39
+ */
40
+ class HeartbeatMonitor {
41
+ constructor() {
42
+ // If Finsemble sleeps (power saving mode) then heartbeats will slow to once per minute (this is a browser thing)
43
+ // So we only declare an app dead if a heartbeat isn't received for two minutes, even though normally we should
44
+ // expect to receive one every 10 seconds. Hopefully in the future we will have more reliable, router disconnection
45
+ // capabilities based on underlying transports such as WebSocket.
46
+ _HeartbeatMonitor_declareDead.set(this, 2 * 60 * 1000);
47
+ _HeartbeatMonitor_timeoutHandle.set(this, null);
48
+ // Contains onDisconnect()'s registered handlers
49
+ _HeartbeatMonitor_disconnectHandlers.set(this, []);
50
+ }
51
+ start() {
52
+ this.registerHeartbeat();
53
+ }
54
+ registerHeartbeat() {
55
+ // Got a heartbeat, so clear our death timer
56
+ clearTimeout(__classPrivateFieldGet(this, _HeartbeatMonitor_timeoutHandle, "f"));
57
+ Logger.system.debug(`FinsembleDesktopAgent: heartbeat received`);
58
+ // And start a new one
59
+ __classPrivateFieldSet(this, _HeartbeatMonitor_timeoutHandle, setTimeout(() => {
60
+ Logger.system.warn(`FinsembleDesktopAgent: No heartbeat received within ${__classPrivateFieldGet(this, _HeartbeatMonitor_declareDead, "f")} milliseconds`);
61
+ this.notifyDisconnect();
62
+ }, __classPrivateFieldGet(this, _HeartbeatMonitor_declareDead, "f")), "f");
63
+ }
64
+ // Called when either app heartbeat fails or router transport fails.
65
+ notifyDisconnect() {
66
+ console.warn("fdc3 has lost connectivity to the interop service. You may need to restart this app.");
67
+ __classPrivateFieldGet(this, _HeartbeatMonitor_disconnectHandlers, "f").forEach((handler) => {
68
+ handler(`fdc3 has lost connectivity to the interop service`);
69
+ });
70
+ }
71
+ onDisconnect(cb) {
72
+ __classPrivateFieldSet(this, _HeartbeatMonitor_disconnectHandlers, __classPrivateFieldGet(this, _HeartbeatMonitor_disconnectHandlers, "f").concat(cb), "f");
73
+ }
74
+ stop() {
75
+ clearTimeout(__classPrivateFieldGet(this, _HeartbeatMonitor_timeoutHandle, "f"));
76
+ }
77
+ }
78
+ _HeartbeatMonitor_declareDead = new WeakMap(), _HeartbeatMonitor_timeoutHandle = new WeakMap(), _HeartbeatMonitor_disconnectHandlers = new WeakMap();
79
+ /**
80
+ * Implements FDC3's Channel interface. All actual transmissions still occur through the desktop agent via private functions.
81
+ *
82
+ * First pass the ChannelProxy implements PrivateChannel, which is a superset of Channel -- may refine this in second pass.
83
+ */
84
+ class ChannelProxy {
85
+ constructor(desktopAgent, id, type = "app", displayMetadata) {
86
+ _ChannelProxy_desktopAgent.set(this, void 0);
87
+ __classPrivateFieldSet(this, _ChannelProxy_desktopAgent, desktopAgent, "f");
88
+ this.id = id;
89
+ this.type = type;
90
+ this.displayMetadata = displayMetadata;
91
+ }
92
+ /**
93
+ * Broadcasts the given context on this channel. This is equivalent to joining the channel and then calling the
94
+ * top-level FDC3 `broadcast` function.
95
+ *
96
+ * Note that this function can be used without first joining the channel, allowing applications to broadcast on
97
+ * channels that they aren't a member of.
98
+ *
99
+ * `Error` with a string from the `ChannelError` enumeration.
100
+ */
101
+ async broadcast(context) {
102
+ if (!context || !context.type) {
103
+ throw new Error("Invalid arguments. An FDC3 Context object (i.e. an Object with a type field) is required.");
104
+ }
105
+ await __classPrivateFieldGet(this, _ChannelProxy_desktopAgent, "f").channelBroadcast(this.id, context, this.type);
106
+ }
107
+ /**
108
+ * Returns the last context that was broadcast on this channel. All channels initially have no context, until a
109
+ * context is broadcast on the channel. If there is not yet any context on the channel, this method
110
+ * will return `null`.
111
+ *
112
+ * The context of a channel will be captured regardless of how the context is broadcasted on this channel - whether
113
+ * using the top-level FDC3 `broadcast` function, or using the channel-level {@link broadcast} function on this
114
+ * object.
115
+ *
116
+ * Optionally a {@link contextType} can be provided, in which case the current context of the matching type will
117
+ * be returned (if any). Desktop agent implementations may decide to record contexts by type, in which case it will
118
+ * be possible to get the most recent context of the type specified, but this is not guaranteed.
119
+ *
120
+ * `Error` with a string from the `ChannelError` enumeration.
121
+ */
122
+ getCurrentContext(contextType) {
123
+ return __classPrivateFieldGet(this, _ChannelProxy_desktopAgent, "f").channelGetCurrentContext(this.id, contextType);
124
+ }
125
+ /**
126
+ * Adds a listener for incoming contexts whenever a broadcast happens on this channel.
127
+ */
128
+ // @ts-ignore <---------------------------------------------------------------------------------------------------------------------
129
+ addContextListener(contextTypeOrHandler, handler) {
130
+ if (contextTypeOrHandler === undefined) {
131
+ throw new Error("Invalid arguments. The contextTypeOrHandler parameter shouldn't be undefined.");
132
+ }
133
+ if (typeof contextTypeOrHandler !== "function" && !handler) {
134
+ const msg = "channel addContextListener Invalid arguments. The required handler parameter is missing.";
135
+ console.error(msg, contextTypeOrHandler, handler);
136
+ Logger.system.error(msg);
137
+ throw new Error(msg);
138
+ }
139
+ // Dangerous code: See note at top of file about 1.2 compatibility
140
+ const { exchangePromise, unsubscribe } = __classPrivateFieldGet(this, _ChannelProxy_desktopAgent, "f").channelAddContextListener(this.id, contextTypeOrHandler, handler);
141
+ let promise = new Promise((resolve) => {
142
+ exchangePromise.then(() => {
143
+ resolve({
144
+ unsubscribe,
145
+ });
146
+ });
147
+ });
148
+ promise.unsubscribe = () => {
149
+ Logger.system.deprecated("Use of the synchronous version of addContextListener from FDC3 1.2 is deprecated. Please switch to `await addContextListener`.");
150
+ unsubscribe();
151
+ };
152
+ return promise;
153
+ }
154
+ /**
155
+ * Adds a listener that will be called each time that the remote app invokes
156
+ * addContextListener on this channel.
157
+ *
158
+ * Desktop Agents MUST call this for each invocation of addContextListener on this
159
+ * channel, including those that occurred before this handler was registered
160
+ * (to prevent race conditions).
161
+ */
162
+ onAddContextListener(handler) {
163
+ return __classPrivateFieldGet(this, _ChannelProxy_desktopAgent, "f").channelOnAddContextListener(this.id, handler);
164
+ }
165
+ /**
166
+ * Adds a listener that will be called whenever the remote app invokes
167
+ * Listener.unsubscribe() on a context listener that it previously added.
168
+ *
169
+ * Desktop Agents MUST call this when disconnect() is called by the other party, for
170
+ * each listener that they had added.
171
+ */
172
+ onUnsubscribe(handler) {
173
+ return __classPrivateFieldGet(this, _ChannelProxy_desktopAgent, "f").channelOnUnsubscribe(this.id, handler);
174
+ }
175
+ /**
176
+ * Adds a listener that will be called when the remote app terminates, for example
177
+ * when its window is closed or because disconnect was called. This is in addition
178
+ * to calls that will be made to onUnsubscribe listeners.
179
+ */
180
+ onDisconnect(handler) {
181
+ return __classPrivateFieldGet(this, _ChannelProxy_desktopAgent, "f").channelOnDisconnect(this.id, handler);
182
+ }
183
+ /**
184
+ * May be called to indicate that a participant will no longer interact with this channel.
185
+ *
186
+ * After this function has been called, Desktop Agents SHOULD prevent apps from broadcasting
187
+ * on this channel and MUST automatically call Listener.unsubscribe() for each listener that
188
+ * they've added (causing any onUnsubscribe handler added by the other party to be called)
189
+ * before triggering any onDisconnect handler added by the other party.
190
+ */
191
+ disconnect() {
192
+ return __classPrivateFieldGet(this, _ChannelProxy_desktopAgent, "f").channelDisconnect(this.id);
193
+ }
194
+ async addEventListener(type, handler) {
195
+ console.log("addEventListener is a FDC3 2.2.0 feature that is not implemented in Finsemble.");
196
+ return {
197
+ unsubscribe: async () => { },
198
+ };
199
+ }
200
+ }
201
+ _ChannelProxy_desktopAgent = new WeakMap();
202
+ /**
203
+ * See https://stackoverflow.com/questions/45847399/friend-class-in-typescript for implementation of "friend" class
204
+ */
205
+ export class FinsembleDesktopAgent {
206
+ constructor({ routerClient, startup, windowName, }) {
207
+ _FinsembleDesktopAgent_connected.set(this, false);
208
+ _FinsembleDesktopAgent_heartbeatMonitor.set(this, new HeartbeatMonitor());
209
+ // A lock that prevents start() from running multiple times
210
+ _FinsembleDesktopAgent_startHasBeenCalled.set(this, false);
211
+ _FinsembleDesktopAgent_uuid.set(this, "undefined");
212
+ _FinsembleDesktopAgent_appId.set(this, "undefined");
213
+ _FinsembleDesktopAgent_clientChannel.set(this, `FSBL.FDC3.Client.${uuidv4()}`);
214
+ _FinsembleDesktopAgent_intentHandlers.set(this, {});
215
+ _FinsembleDesktopAgent_contextHandlers.set(this, {});
216
+ _FinsembleDesktopAgent_privateChannelSubscription.set(this, {});
217
+ _FinsembleDesktopAgent_intentResultPromiseMap.set(this, {});
218
+ _FinsembleDesktopAgent_intentResultPromiseResolveMap.set(this, {});
219
+ // Stores fdc3 calls that are received before a connection is established with the interop service
220
+ // Once a connection is established then the queue is released.
221
+ _FinsembleDesktopAgent_queue.set(this, []);
222
+ _FinsembleDesktopAgent_routerClient.set(this, void 0);
223
+ _FinsembleDesktopAgent_startup.set(this, void 0);
224
+ // Can be used to override the default windowName, such as for testing purposes
225
+ _FinsembleDesktopAgent_windowName.set(this, void 0);
226
+ _FinsembleDesktopAgent_existingChannelProxy.set(this, {});
227
+ _FinsembleDesktopAgent_FSBLVersion.set(this, "8.6");
228
+ _FinsembleDesktopAgent_userChannels.set(this, null);
229
+ __classPrivateFieldSet(this, _FinsembleDesktopAgent_routerClient, routerClient, "f");
230
+ __classPrivateFieldSet(this, _FinsembleDesktopAgent_startup, startup, "f");
231
+ __classPrivateFieldSet(this, _FinsembleDesktopAgent_windowName, windowName, "f");
232
+ __classPrivateFieldGet(this, _FinsembleDesktopAgent_routerClient, "f").onFailure(() => {
233
+ Logger.console.error("Router failure: transport timeout error");
234
+ __classPrivateFieldGet(this, _FinsembleDesktopAgent_heartbeatMonitor, "f").notifyDisconnect();
235
+ });
236
+ // Per spec, dispatch this event as soon as the global fdc3 object exists and is ready to accept API calls.
237
+ // We should not wait until start() because in some circumstances, start() is not called *until* an API call is made.
238
+ // Skip this if the global Event class is undefined (if running in Node.js such as a unit test). Note: also needed to confirm window.dispatchEvent was available, perhaps because of latest Node version.
239
+ if (Globals.Event && Globals.dispatchEvent) {
240
+ const event = new Globals.Event("fdc3Ready");
241
+ Globals.dispatchEvent(event);
242
+ }
243
+ }
244
+ privateChannelId() {
245
+ return `${PrivateChannelIdPrefix}-${uuidv4()}`;
246
+ }
247
+ async isUserChannel(channelIdValue) {
248
+ // the first time this function is called, cache the user channels for future use
249
+ if (__classPrivateFieldGet(this, _FinsembleDesktopAgent_userChannels, "f") === null) {
250
+ __classPrivateFieldSet(this, _FinsembleDesktopAgent_userChannels, await this.getUserChannels(), "f");
251
+ }
252
+ return __classPrivateFieldGet(this, _FinsembleDesktopAgent_userChannels, "f").find((channelObject) => channelObject.id === channelIdValue) !== undefined;
253
+ }
254
+ // This wrapper around startup data is necessary to synchronize access to it since it might not have the correct data until startup.onReady() fires.
255
+ async fetchStartupData() {
256
+ await __classPrivateFieldGet(this, _FinsembleDesktopAgent_startup, "f").onReady();
257
+ const startupData = __classPrivateFieldGet(this, _FinsembleDesktopAgent_startup, "f").getStartupData();
258
+ const { authenticationToken, windowName } = startupData;
259
+ const maybeEmbeddedTitlebarIndicator = startupData.webContentsName.includes(EMBEDDED_TITLEBAR_INDICATOR_STRING)
260
+ ? EMBEDDED_TITLEBAR_INDICATOR_STRING
261
+ : "";
262
+ // The uuid has the appId encoded for diagnostics, but appId is not available until startup data is ready; therefore must set uuid here the first time this function is called
263
+ if (__classPrivateFieldGet(this, _FinsembleDesktopAgent_uuid, "f") === "undefined") {
264
+ __classPrivateFieldSet(this, _FinsembleDesktopAgent_uuid, `fdc3-instanceId-${maybeEmbeddedTitlebarIndicator}${authenticationToken.meta.appId}=${uuidv4()}`, "f");
265
+ __classPrivateFieldSet(this, _FinsembleDesktopAgent_appId, authenticationToken.meta.appId, "f");
266
+ }
267
+ const appMetadata = { ...authenticationToken.meta, instanceId: __classPrivateFieldGet(this, _FinsembleDesktopAgent_uuid, "f") };
268
+ Logger.system.debug(`fetchStartupData`, startupData, windowName, authenticationToken, appMetadata);
269
+ return { windowName, authenticationToken, appMetadata };
270
+ }
271
+ meta() {
272
+ return {
273
+ appId: __classPrivateFieldGet(this, _FinsembleDesktopAgent_appId, "f"),
274
+ uuid: __classPrivateFieldGet(this, _FinsembleDesktopAgent_uuid, "f"),
275
+ href: window.document ? document.location.href : "",
276
+ };
277
+ }
278
+ handleHeartbeat() {
279
+ __classPrivateFieldGet(this, _FinsembleDesktopAgent_heartbeatMonitor, "f").registerHeartbeat();
280
+ }
281
+ triggerContextListeners(message) {
282
+ var _a, _b;
283
+ const { context } = message.payload;
284
+ let contextMetadata = undefined;
285
+ let handlers;
286
+ // if the originator was an app, then fill in the contextMetatdata to be passed to context listener
287
+ if (message.meta.originatorAppId && message.meta.originatorUuid) {
288
+ contextMetadata = { source: { appId: message.meta.originatorAppId, instanceId: message.meta.originatorUuid } };
289
+ }
290
+ // The targetSubscriberId field is set only when contexts are from an autoBroadcast. During autoBroadcast, one context is received for a specific
291
+ // subscriber (for addContextListener), or multiple contexts may be received in rapid fire (for joinChannel with existing subscribers).
292
+ // For all cases only the handler identified by targetSubscriberId is triggered.
293
+ //
294
+ // The need for targetSubscriberId is due to a channel having multiple listeners (based on context), with each of these context listeners potentially
295
+ // having multiple handlers. Without targetSubscriberId, autoBroadcast would go to all listeners, which isn't correct (ambiguity causes duplicate triggering).
296
+ //
297
+ // For a specific example, if the app adds a second global listener for any context (i.e. "*") then only that one new listener should trigger
298
+ // when the corresponding autoBroadcast message arrives with the latest context; targetSubscriberId ensures this by uniquely identifying
299
+ // the listener and it corresponding handler.
300
+ if (message.meta.targetSubscriberId) {
301
+ let targetHandlerSet;
302
+ // Find the subscriber's handler and save in targetHandlerSet. (Alternatively, could have created a direct mapping, but reusing the existing data structure.)
303
+ // This code can be converted to flatMap now that we have ES2020 support.
304
+ Object.values(__classPrivateFieldGet(this, _FinsembleDesktopAgent_contextHandlers, "f")).every((handlersByType) => {
305
+ targetHandlerSet = handlersByType.find((handlerSet) => handlerSet.targetSubscriberId === message.meta.targetSubscriberId);
306
+ return targetHandlerSet === undefined;
307
+ });
308
+ // there is only one handler for the autoBroadcast path, but next section of code expects an array for the general case.
309
+ handlers = targetHandlerSet ? [targetHandlerSet] : [];
310
+ }
311
+ else {
312
+ // get all registered handlers, for this context type or global handlers
313
+ handlers = ((_a = __classPrivateFieldGet(this, _FinsembleDesktopAgent_contextHandlers, "f")[context === null || context === void 0 ? void 0 : context.type]) !== null && _a !== void 0 ? _a : []).concat((_b = __classPrivateFieldGet(this, _FinsembleDesktopAgent_contextHandlers, "f")["*"]) !== null && _b !== void 0 ? _b : []);
314
+ }
315
+ handlers.forEach(async ({ handler, channel }) => {
316
+ var _a, _b;
317
+ // Note 1: if meta.channel set then broadcast addressed to a app channel; otherwise addressed to a user channel.
318
+ // Note 2: if this handler's "channel" variable is set, then the handler is for an app channel; otherwise it is for a user channel
319
+ // If one of the following cases matches then invoke the handler
320
+ // 1) if broadcast addressed to a specified app channel and the handler is for that channel, then invoke it, or
321
+ // 2) if broadcast addressed to a user channel and the handler is for a user channel, then invoke it, or
322
+ // 3) if broadcast addressed to a user channel and the handler is an "app channel proxy" for a user channel, then invoke it
323
+ // 4) if broadcast addressed to a specified app channel that is a user channel and handler is for joined user channel,
324
+ // then invoke handler
325
+ if ((message.meta.channel && message.meta.channel === channel) ||
326
+ (!message.meta.channel && !channel) ||
327
+ (!message.meta.channel &&
328
+ (await this.isUserChannel(channel)) &&
329
+ ((_a = (await this.getCurrentChannels())) === null || _a === void 0 ? void 0 : _a.find((element) => element.id === channel))) ||
330
+ (message.meta.channel &&
331
+ !channel &&
332
+ (await this.isUserChannel(message.meta.channel)) &&
333
+ ((_b = (await this.getCurrentChannels())) === null || _b === void 0 ? void 0 : _b.find((element) => element.id === message.meta.channel)))) {
334
+ Logger.system.debug(`FDC3 Client: triggerContextListeners for all on ${channel !== null && channel !== void 0 ? channel : "default"} channel`, message.type, message);
335
+ // invoke the addContextListener handler
336
+ handler(context, contextMetadata);
337
+ }
338
+ else {
339
+ Logger.system.debug(`FDC3 Client: triggerContextListeners skipped for all on ${channel !== null && channel !== void 0 ? channel : "default"} channel`, message.type, message);
340
+ }
341
+ });
342
+ }
343
+ // See https://fdc3.finos.org/docs/api/ref/DesktopAgent#examples-1 for supported examples of intents with various return characteristics
344
+ async triggerIntentListener(message) {
345
+ const { intent, context, requestId } = message.payload;
346
+ let contextMetadata = undefined;
347
+ const handler = __classPrivateFieldGet(this, _FinsembleDesktopAgent_intentHandlers, "f")[intent];
348
+ let intentResultError;
349
+ let result = null;
350
+ let localIntentResult = undefined;
351
+ // if the originator was an app, then fill in the contextMetatdata to be passed to intent listener
352
+ if (message.meta.originatorAppId && message.meta.originatorUuid) {
353
+ contextMetadata = { source: { appId: message.meta.originatorAppId, instanceId: message.meta.originatorUuid } };
354
+ }
355
+ if (typeof handler === "function") {
356
+ // Set timer to issue warning if handler doesn't return in expect time period (but don't fail since handler could be interacting with user and therefore be very slow)
357
+ let intentResultTimer = setInterval(() => {
358
+ Logger.system.warn(`tag:FDC3:raiseIntent No intent result has been returned yet for intent ${intent} -- will continue to wait`, message.payload);
359
+ }, WaitForIntentResultTimeout);
360
+ Logger.system.log(`tag:FDC3:raiseIntent triggering intent listener for intent ${intent}`, message.payload);
361
+ try {
362
+ // Wait for the intent handler to return a result
363
+ localIntentResult = await handler(context, contextMetadata);
364
+ }
365
+ catch (err) {
366
+ Logger.system.error(`tag:FDC3:raiseIntent -- error thrown in handler for intent ${intent}`, err, context, message.payload);
367
+ intentResultError = ResultError.IntentHandlerRejected;
368
+ result = {
369
+ type: "intentResult",
370
+ meta: this.meta(),
371
+ payload: {
372
+ intentResultError,
373
+ intent,
374
+ requestId,
375
+ },
376
+ };
377
+ this.exchange(result);
378
+ }
379
+ clearInterval(intentResultTimer);
380
+ // If no error was thrown above when the intent handler was invoked, then return the handler result
381
+ if (!intentResultError) {
382
+ // convert IntentResult to InteropIntentResult, a form than can be transmitted to InteropService
383
+ // `?addContextListener` is how we dynamically tell whether the user returned a Channel
384
+ const intentResult = (localIntentResult === null || localIntentResult === void 0 ? void 0 : localIntentResult.addContextListener)
385
+ ? { channelId: localIntentResult === null || localIntentResult === void 0 ? void 0 : localIntentResult.id, type: localIntentResult.type }
386
+ : localIntentResult;
387
+ // If intentResult isn't void, then ensure it appears to be either a channel or context
388
+ if (intentResult && (typeof intentResult !== "object" || !intentResult.type)) {
389
+ Logger.system.error(`IntentResult returned by FDC3 client app for intent ${intent} is rejected since it doesn't match expected channel or context definition`, intentResult);
390
+ intentResultError = ResultError.NoResultReturned;
391
+ }
392
+ result = {
393
+ type: "intentResult",
394
+ meta: this.meta(),
395
+ payload: {
396
+ intentResult,
397
+ intentResultError,
398
+ intent,
399
+ requestId,
400
+ },
401
+ };
402
+ this.exchange(result);
403
+ }
404
+ }
405
+ else {
406
+ Logger.system.error(`Legal listener not found for intent ${intent}`);
407
+ result = {
408
+ type: "intentResult",
409
+ meta: this.meta(),
410
+ payload: {
411
+ intentResultError: ResultError.IntentHandlerRejected,
412
+ intent,
413
+ requestId,
414
+ },
415
+ };
416
+ this.exchange(result);
417
+ }
418
+ Logger.system.log(`tag:FDC3:raiseIntent handler response for intent ${intent}`, result);
419
+ }
420
+ async handlePrivateChannelEvent(message) {
421
+ const { channel, context, targetSubscriberId } = message.payload;
422
+ const channelSubscriptions = __classPrivateFieldGet(this, _FinsembleDesktopAgent_privateChannelSubscription, "f")[channel];
423
+ const targetSubscription = channelSubscriptions.find((s) => s.targetSubscriberId === targetSubscriberId);
424
+ if (targetSubscription) {
425
+ switch (targetSubscription.subscribeType) {
426
+ case "onAddContextListener":
427
+ targetSubscription.handler(context);
428
+ break;
429
+ case "onUnsubscribe":
430
+ targetSubscription.handler(context);
431
+ break;
432
+ case "onDisconnect":
433
+ targetSubscription.handler();
434
+ break;
435
+ default: {
436
+ Logger.system.error("FDC3 Client: unknown subscribeType in matching targetSubscription", targetSubscription);
437
+ }
438
+ }
439
+ }
440
+ else {
441
+ Logger.system.error("FDC3 Client: could not find target subscription", targetSubscriberId, channelSubscriptions);
442
+ }
443
+ }
444
+ async handleIntentResult(message) {
445
+ const { intent: intentName, intentResult, requestId, intentResultError } = message.payload;
446
+ // If there is an outstanding resolve function associated with the request id, then invoke it
447
+ if (typeof __classPrivateFieldGet(this, _FinsembleDesktopAgent_intentResultPromiseResolveMap, "f")[requestId] === "function") {
448
+ Logger.system.log(`tag:FDC3:raiseIntent result message received for intent ${intentName}`, message);
449
+ // Resolve the outstanding promise, waited on in the corresponding getResult function, returning the intent result or an error
450
+ __classPrivateFieldGet(this, _FinsembleDesktopAgent_intentResultPromiseResolveMap, "f")[requestId]({ errorResult: intentResultError, intentResult });
451
+ }
452
+ else {
453
+ Logger.system.error(`Legal internal handler for intent result not found`, message, __classPrivateFieldGet(this, _FinsembleDesktopAgent_intentResultPromiseResolveMap, "f"));
454
+ }
455
+ }
456
+ handleIncoming(message) {
457
+ if (message.type === "heartbeat") {
458
+ Logger.system.debug("Client heartbeat", message);
459
+ }
460
+ else {
461
+ Logger.system.debug("FDC3 Client: incoming", message.type, message);
462
+ }
463
+ switch (message.type) {
464
+ case "broadcast":
465
+ this.triggerContextListeners(message);
466
+ break;
467
+ case "intent":
468
+ this.triggerIntentListener(message);
469
+ break;
470
+ case "privateChannelEvent":
471
+ this.handlePrivateChannelEvent(message);
472
+ break;
473
+ case "intentResult":
474
+ this.handleIntentResult(message);
475
+ break;
476
+ case "heartbeat":
477
+ this.handleHeartbeat();
478
+ break;
479
+ default:
480
+ break;
481
+ }
482
+ }
483
+ /**
484
+ * Releases the queue, sending API calls to the interop service that had been deferred until a connection
485
+ * was established.
486
+ */
487
+ releaseQueue() {
488
+ /**
489
+ * When messages were queued, the uuid would not have been available (uuid is based on windowName
490
+ * which is only available after startup.onReady). Now that we're releasing the queue, update
491
+ * the uuid in any queued messages before sending them out.
492
+ */
493
+ const updateUUID = (message) => {
494
+ var _a;
495
+ if (((_a = message === null || message === void 0 ? void 0 : message.meta) === null || _a === void 0 ? void 0 : _a.uuid) !== undefined) {
496
+ message.meta.uuid = __classPrivateFieldGet(this, _FinsembleDesktopAgent_uuid, "f");
497
+ }
498
+ return message;
499
+ };
500
+ __classPrivateFieldGet(this, _FinsembleDesktopAgent_queue, "f").forEach(async (entry) => {
501
+ Logger.system.log(`fdc3.releaseQueue`, entry);
502
+ const { message, handler, resolve } = entry;
503
+ const { err, receiveMessage } = await this.exchange(updateUUID(message), handler);
504
+ resolve({ err, receiveMessage });
505
+ });
506
+ __classPrivateFieldSet(this, _FinsembleDesktopAgent_queue, [], "f");
507
+ }
508
+ /**
509
+ * This is the central point for exchanging data with the interop service. Even though some FDC3
510
+ * calls such as broadcast() are one way, we always perform a query/response with the server, at
511
+ * least getting an empty response to know that it was handled.
512
+ */
513
+ exchange(message, handler = () => { }) {
514
+ return new Promise(async (resolve) => {
515
+ if (__classPrivateFieldGet(this, _FinsembleDesktopAgent_connected, "f")) {
516
+ Logger.system.debug("FDC3 Client: outgoing", message.type, message);
517
+ const { err, response } = await __classPrivateFieldGet(this, _FinsembleDesktopAgent_routerClient, "f").query(SERVER_CHANNEL, message, handler);
518
+ const receiveMessage = response === null || response === void 0 ? void 0 : response.data;
519
+ if (receiveMessage)
520
+ Logger.system.log(`FDC3 Client: incoming`, receiveMessage);
521
+ resolve({ err, receiveMessage });
522
+ }
523
+ else {
524
+ __classPrivateFieldGet(this, _FinsembleDesktopAgent_queue, "f").push({ message, handler, resolve });
525
+ this.start();
526
+ }
527
+ });
528
+ }
529
+ /**
530
+ * Performs the handshake to the interop service and starts heartbeats.
531
+ * @internal
532
+ */
533
+ async connect() {
534
+ /**
535
+ * StartupData contains the AuthenticationToken necessary to connect to the interop service. When an app
536
+ * is spawned by Finsemble, the AuthenticationToken is automatically created by the launcher. When an app
537
+ * is freestanding, the AuthenticationToken is generated when a developer calls FSBLJSAdapter.startApp with a
538
+ * digital signing key. If an app can't be authenticated then Startup ensures that an anonymous
539
+ * AuthenticationToken exists (type "unauthenticated").
540
+ */
541
+ var _a;
542
+ const { windowName, authenticationToken } = await this.fetchStartupData();
543
+ Logger.system.log(`fdc3.connect StartupData for ${windowName}`);
544
+ const registerClient = {
545
+ type: "register",
546
+ meta: this.meta(),
547
+ payload: {
548
+ // It would be better if the server assigned the client channel name. We could then protect against clashes.
549
+ clientChannel: __classPrivateFieldGet(this, _FinsembleDesktopAgent_clientChannel, "f"),
550
+ // Ideally the server gets/verifies the windowName from the router
551
+ windowName: (_a = __classPrivateFieldGet(this, _FinsembleDesktopAgent_windowName, "f")) !== null && _a !== void 0 ? _a : windowName,
552
+ // Required by InteropService to authenticate this client (preventing spoofing)
553
+ authenticationToken,
554
+ },
555
+ };
556
+ /**
557
+ * We need to ensure that the SERVER_CHANNEL responder has been added to the router. This happens
558
+ * at the kernel stage when the InteropService is starting up. Therefore we need to wait until the
559
+ * kernel stage is complete (i.e. InteropService is up and running) before we can query the SERVER_CHANNEL.
560
+ *
561
+ * Freestanding apps will periodically try to register with Interop if they are started prior to Finsemble
562
+ * coming up which would cause interop registration request being fired before the responder was added to the router.
563
+ *
564
+ * This waitForBootStage works, even though Finsemble might not be up, for two reasons:
565
+ * 1) the underlying router subscribe in waitForBootStage will be queued by the routerClient until the router is up
566
+ * 2) the underlying pubsub topic relies on a default pubSub responder in the router service, so it will immediately
567
+ * be available when the router is available.
568
+ */
569
+ SystemManagerClient.waitForBootStage("kernel", "stageCompleted", (error) => {
570
+ if (error) {
571
+ Logger.system.error("connect error waitingForBootStage", error);
572
+ }
573
+ else {
574
+ __classPrivateFieldGet(this, _FinsembleDesktopAgent_routerClient, "f").query(SERVER_CHANNEL, registerClient, (err) => {
575
+ if (err) {
576
+ Logger.system.error("connect error", err);
577
+ }
578
+ else {
579
+ __classPrivateFieldGet(this, _FinsembleDesktopAgent_routerClient, "f").addResponder(__classPrivateFieldGet(this, _FinsembleDesktopAgent_clientChannel, "f"), (err2, request) => {
580
+ if (err2 || !request) {
581
+ const errorString = errorAsString(err2 !== null && err2 !== void 0 ? err2 : "No request received on responder");
582
+ Logger.system.error(`FinsembleDesktopAgent can't listen on channel ${__classPrivateFieldGet(this, _FinsembleDesktopAgent_clientChannel, "f")} : ${errorString}`);
583
+ // channel isn't available, uh oh
584
+ }
585
+ else {
586
+ if (request.data)
587
+ this.handleIncoming(request.data);
588
+ request.sendQueryResponse(null);
589
+ }
590
+ });
591
+ ConfigClient.get(["finsemble", "system", "FSBLVersion"], (_err, data) => {
592
+ __classPrivateFieldSet(this, _FinsembleDesktopAgent_FSBLVersion, data, "f");
593
+ });
594
+ __classPrivateFieldSet(this, _FinsembleDesktopAgent_connected, true, "f");
595
+ Logger.system.log(`FDC3 client connected for window ${windowName}`);
596
+ this.releaseQueue();
597
+ // The heartbeat monitor shouldn't start until now that we've successfully connected to the interop service
598
+ __classPrivateFieldGet(this, _FinsembleDesktopAgent_heartbeatMonitor, "f").start();
599
+ }
600
+ });
601
+ }
602
+ });
603
+ }
604
+ /**
605
+ * Connect to the interop service. This method can be safely called multiple times. It will only
606
+ * establish a single connection.
607
+ * This function is called by FSBLDesktop and FSBLFreestanding.
608
+ * @internal
609
+ */
610
+ async start() {
611
+ // We only need to register with the FSBL event handlers once. Prevents connecting multiple times.
612
+ if (__classPrivateFieldGet(this, _FinsembleDesktopAgent_startHasBeenCalled, "f"))
613
+ return;
614
+ __classPrivateFieldSet(this, _FinsembleDesktopAgent_startHasBeenCalled, true, "f");
615
+ await __classPrivateFieldGet(this, _FinsembleDesktopAgent_startup, "f").onReady();
616
+ // The connect method performs the handshake and starts the heartbeats.
617
+ // **We do not want to await** it since any calling function would stall, until a connection is established. In this
618
+ // instance this is a "fire and forget" action and any connections issues will be highlighted by other API calls.
619
+ this.connect();
620
+ }
621
+ /**
622
+ * Stops the client and puts it back into queuing state. The client
623
+ * can be restarted by calling connect().
624
+ * @internal
625
+ */
626
+ async stop() {
627
+ __classPrivateFieldGet(this, _FinsembleDesktopAgent_heartbeatMonitor, "f").stop();
628
+ const unregisterClient = {
629
+ type: "unregister",
630
+ meta: this.meta(),
631
+ };
632
+ await this.exchange(unregisterClient);
633
+ __classPrivateFieldSet(this, _FinsembleDesktopAgent_startHasBeenCalled, false, "f");
634
+ __classPrivateFieldGet(this, _FinsembleDesktopAgent_routerClient, "f").removeResponder(__classPrivateFieldGet(this, _FinsembleDesktopAgent_clientChannel, "f"));
635
+ __classPrivateFieldSet(this, _FinsembleDesktopAgent_connected, false, "f");
636
+ }
637
+ /**
638
+ * Registers handlers which will be called if the client is disconnected from Finsemble. This is only useful when
639
+ * running in freestanding apps that might continue running after Finsemble has been terminated. Users should be
640
+ * prompted to restart their freestanding app when a disconnect is received.
641
+ *
642
+ * @param cb Handler function.
643
+ * @experimental This method is not part of the FDC3 standard and may be replaced in the future with alternative mechanisms.
644
+ */
645
+ onDisconnect(cb) {
646
+ __classPrivateFieldGet(this, _FinsembleDesktopAgent_heartbeatMonitor, "f").onDisconnect(cb);
647
+ }
648
+ /** @internal */
649
+ async channelGetCurrentContext(channel, contextType) {
650
+ const message = {
651
+ type: "currentContextRequest",
652
+ meta: {
653
+ ...this.meta(),
654
+ channel,
655
+ },
656
+ payload: {
657
+ contextType,
658
+ },
659
+ };
660
+ const { err, receiveMessage } = await this.exchange(message);
661
+ if (err)
662
+ return null;
663
+ return (receiveMessage === null || receiveMessage === void 0 ? void 0 : receiveMessage.type) === "currentContext" ? receiveMessage.payload.context : null;
664
+ }
665
+ /**
666
+ * Publishes context to other apps on the desktop.
667
+ * Calling broadcast at the DesktopAgent scope will push the context to whatever Channel the app is joined to.
668
+ * If the app is not currently joined to a channel, calling fdc3.broadcast will have no effect.
669
+ * Apps can still directly broadcast and listen to context on any channel via the methods on the Channel class.
670
+ * @param context
671
+ */
672
+ async broadcast(context) {
673
+ if (!context || !context.type) {
674
+ throw new Error("Invalid arguments. An FDC3 Context object (i.e. an Object with a type field) is required.");
675
+ }
676
+ const message = {
677
+ type: "broadcast",
678
+ meta: this.meta(),
679
+ payload: {
680
+ context,
681
+ channelType: "user",
682
+ },
683
+ };
684
+ await this.exchange(message);
685
+ }
686
+ /** @internal */
687
+ async channelBroadcast(channel, context, channelType) {
688
+ const message = {
689
+ type: "broadcast",
690
+ meta: {
691
+ ...this.meta(),
692
+ channel,
693
+ },
694
+ payload: {
695
+ context,
696
+ channelType,
697
+ },
698
+ };
699
+ await this.exchange(message);
700
+ }
701
+ /**
702
+ * Retrieves a list of the System channels available for the app to join.
703
+ * This should include the 'global' channel.
704
+ */
705
+ async getUserChannels() {
706
+ var _a;
707
+ const message = {
708
+ type: "systemChannelRequest",
709
+ meta: this.meta(),
710
+ };
711
+ const { err, receiveMessage } = await this.exchange(message);
712
+ if (err)
713
+ return [];
714
+ const channelNames = (receiveMessage === null || receiveMessage === void 0 ? void 0 : receiveMessage.type) === "systemChannels" ? (_a = receiveMessage === null || receiveMessage === void 0 ? void 0 : receiveMessage.payload) === null || _a === void 0 ? void 0 : _a.channels : [];
715
+ return channelNames.map((name) => {
716
+ var _a, _b, _c;
717
+ let metaData;
718
+ if ((receiveMessage === null || receiveMessage === void 0 ? void 0 : receiveMessage.type) === "systemChannels" && ((_a = receiveMessage === null || receiveMessage === void 0 ? void 0 : receiveMessage.payload) === null || _a === void 0 ? void 0 : _a.systemChannelMeta)) {
719
+ metaData = (_c = (_b = receiveMessage === null || receiveMessage === void 0 ? void 0 : receiveMessage.payload) === null || _b === void 0 ? void 0 : _b.systemChannelMeta[name]) === null || _c === void 0 ? void 0 : _c.displayMetaData;
720
+ }
721
+ return new ChannelProxy(this, name, "user", metaData);
722
+ });
723
+ }
724
+ /**
725
+ * For backwards compatibility. Retrieves a list of the System channels available for the app to join.
726
+ */
727
+ async getSystemChannels() {
728
+ return this.getUserChannels();
729
+ }
730
+ async open(app, context) {
731
+ var _a;
732
+ if (!app) {
733
+ throw new Error("Invalid arguments. The required 'app' parameter is missing.");
734
+ }
735
+ const { appMetadata } = await this.fetchStartupData();
736
+ const message = {
737
+ type: "open",
738
+ meta: this.meta(),
739
+ payload: {
740
+ requestingAppId: appMetadata.appId,
741
+ app,
742
+ context,
743
+ },
744
+ };
745
+ const { err, receiveMessage } = await this.exchange(message);
746
+ const interopOpenResponse = receiveMessage;
747
+ if (err) {
748
+ throw new Error(OpenError.ResolverUnavailable);
749
+ }
750
+ else if (interopOpenResponse.payload.error) {
751
+ throw new Error(interopOpenResponse.payload.error);
752
+ }
753
+ return (_a = interopOpenResponse.payload.appIdentifier) !== null && _a !== void 0 ? _a : { appId: "unknown-open-appIdentifier" };
754
+ }
755
+ /**
756
+ * Find out more information about a particular intent by passing its name, and optionally its context.
757
+ *
758
+ * findIntent is effectively granting programmatic access to the Desktop Agent's resolver.
759
+ * A promise resolving to the intent, its metadata and metadata about the apps that registered it is returned.
760
+ * This can be used to raise the intent against a specific app.
761
+ *
762
+ * If the resolution fails, the promise will return an `Error` with a string from the `ResolveError` enumeration.
763
+ *
764
+ * @param intent
765
+ * @param context
766
+ */
767
+ async findIntent(intent, context, resultType) {
768
+ if (!intent) {
769
+ throw new Error("Invalid arguments. The required intent parameter is missing.");
770
+ }
771
+ if (context && !context.type) {
772
+ throw new Error("Invalid arguments. Second parameter must be a valid context.");
773
+ }
774
+ if (resultType && typeof resultType !== "string") {
775
+ throw new Error("Invalid arguments. Third parameter must be a string.");
776
+ }
777
+ const message = {
778
+ type: "findIntent",
779
+ meta: this.meta(),
780
+ payload: {
781
+ intent,
782
+ context,
783
+ resultType,
784
+ },
785
+ };
786
+ const { err, receiveMessage } = await this.exchange(message);
787
+ const interopFindIntentResponse = receiveMessage;
788
+ if (err) {
789
+ throw new Error(ResolveError.ResolverUnavailable);
790
+ }
791
+ else if (interopFindIntentResponse.payload.error) {
792
+ throw new Error(interopFindIntentResponse.payload.error);
793
+ }
794
+ else if (!interopFindIntentResponse.payload.appIntent) {
795
+ throw new Error("Invalid response returned from InteropService for findIntent. No appIntent and no error.");
796
+ }
797
+ return interopFindIntentResponse.payload.appIntent;
798
+ }
799
+ /**
800
+ * Find all the available intents for a particular context.
801
+ *
802
+ * findIntents is effectively granting programmatic access to the Desktop Agent's resolver.
803
+ * A promise resolving to all the intents, their metadata and metadata about the apps that registered it is returned,
804
+ * based on the context types the intents have registered.
805
+ *
806
+ * If the resolution fails, the promise will return an `Error` with a string from the `ResolveError` enumeration.
807
+ * @param context
808
+ */
809
+ async findIntentsByContext(context, resultType) {
810
+ if (!context) {
811
+ throw new Error("Invalid arguments. The required context parameter is missing.");
812
+ }
813
+ if (!context.type) {
814
+ throw new Error("Invalid arguments. Second parameter must be a valid context.");
815
+ }
816
+ if (resultType && typeof resultType !== "string") {
817
+ throw new Error("Invalid arguments. Second parameter must be a string to identify result type.");
818
+ }
819
+ // The context parameter was made optional to support a query for all intents. This is consistent with findIntent, however it is not consistent with FDC3 spec plus.
820
+ // a mechanism is still needed to query for contexts. A better solution is to add two new InteropAdmin methods; e.g. getIntents() and getContexts().
821
+ const message = {
822
+ type: "findIntentsByContext",
823
+ meta: this.meta(),
824
+ payload: {
825
+ context,
826
+ resultType,
827
+ },
828
+ };
829
+ const { receiveMessage } = await this.exchange(message);
830
+ const interopIntentsList = receiveMessage;
831
+ if (interopIntentsList.payload.error) {
832
+ throw new Error(interopIntentsList.payload.error);
833
+ }
834
+ return interopIntentsList.payload.intents || [];
835
+ }
836
+ // @ts-ignore <----------------------------------------------------------------------------------------------------------------------------------------------
837
+ async createPrivateChannel() {
838
+ return new ChannelProxy(this, this.privateChannelId(), "private");
839
+ }
840
+ /**
841
+ * Common implementation for raiseIntent() and raiseIntentForContext().
842
+ *
843
+ * @param intent
844
+ * @param context
845
+ * @param target
846
+ * @param forContext If true then invoked by raiseIntentForContext which gives a different meaning to context parameter
847
+ */
848
+ async raiseIntentInternal(intent, context, target, forContext = false) {
849
+ if (context && !context.type) {
850
+ throw new Error("Invalid arguments. Second parameter must be a valid context.");
851
+ }
852
+ const requestId = `raise-intent-request-Id-${uuidv4()}`;
853
+ Logger.system.log(`tag:FDC3:raiseIntent initiated for intent ${intent} with ${context ? " context type " : "no context"}${context === null || context === void 0 ? void 0 : context.type}`, context, target, requestId, forContext);
854
+ const message = {
855
+ type: "raiseIntent",
856
+ meta: this.meta(),
857
+ payload: {
858
+ intent,
859
+ context,
860
+ target,
861
+ requestId,
862
+ forContext,
863
+ },
864
+ };
865
+ Logger.system.log(`tag:FDC3:raiseIntent request sent to InteropService for intent ${intent}`, message);
866
+ // The message received back from the InteropService for the below exchange(message) corresponds to the IntentResolution (signaling the raiseIntent has been successfully sent to the target app, or an error).
867
+ // Asynchronously, an IntentResult will come in later.
868
+ const { err, receiveMessage } = await this.exchange(message);
869
+ const interopIntentResolution = receiveMessage;
870
+ Logger.system.log(`tag:FDC3:raiseIntent intent resolution received for intent ${intent}`, err, receiveMessage);
871
+ if (err) {
872
+ throw new Error(ResolveError.ResolverUnavailable);
873
+ }
874
+ else if (interopIntentResolution.payload.error) {
875
+ throw new Error(interopIntentResolution.payload.error);
876
+ }
877
+ else if (!interopIntentResolution.payload.data) {
878
+ throw new Error("Invalid response returned from InteropService for raiseIntent. No data.");
879
+ }
880
+ /* Allocate a promise for this raiseIntent and map it to the request id to handle the getResult() synchronization.
881
+
882
+ This promise is waited on below in the getResult function returned in the raiseIntent response,
883
+ then resolved in handleIntentResult when the result arrives for the requestId
884
+ */
885
+ __classPrivateFieldGet(this, _FinsembleDesktopAgent_intentResultPromiseMap, "f")[requestId] = new Promise((intentResultResolve) => {
886
+ // Map the resolve function to the requestID to be later invoked to complete this promise when the intent result arrives.
887
+ __classPrivateFieldGet(this, _FinsembleDesktopAgent_intentResultPromiseResolveMap, "f")[requestId] = intentResultResolve;
888
+ });
889
+ const intentResolution = {
890
+ source: interopIntentResolution.payload.data.source,
891
+ intent: interopIntentResolution.payload.data.intent,
892
+ // @ts-ignore deprecated in 2.2.0
893
+ version: interopIntentResolution.payload.data.version,
894
+ getResult: async () => {
895
+ let errorResult;
896
+ let intentResult;
897
+ Logger.system.log(`tag:FDC3:raiseIntent getResult initiated for intent ${intent}`, message);
898
+ if (typeof __classPrivateFieldGet(this, _FinsembleDesktopAgent_intentResultPromiseResolveMap, "f")[requestId] === "function") {
899
+ // Wait for the corresponding intent result to be returned.
900
+ // The promise waited on here is resolved in handleIntentResult when the result with the correct requestId arrives from InteropService.
901
+ ({ errorResult, intentResult } = await __classPrivateFieldGet(this, _FinsembleDesktopAgent_intentResultPromiseMap, "f")[requestId]);
902
+ }
903
+ else {
904
+ errorResult = "could not fulfill intent resolution due to no corresponding result promise";
905
+ }
906
+ Logger.system.log(`tag:FDC3:raiseIntent result for intent ${intent}`, { errorResult, intentResult });
907
+ // Any error has to be thrown here in this original thread of control for the app to receive it -- it cannot be thrown when the result is processed in handleIntentResult
908
+ if (errorResult) {
909
+ throw new Error(errorResult);
910
+ }
911
+ // The result might be a channel type, or it might be a context type, or it might be undefined.
912
+ const resultChannelId = intentResult === null || intentResult === void 0 ? void 0 : intentResult.channelId;
913
+ const resultType = intentResult === null || intentResult === void 0 ? void 0 : intentResult.type;
914
+ const fdc3IntentResult = resultChannelId
915
+ ? new ChannelProxy(this, resultChannelId, resultType)
916
+ : (intentResult !== null && intentResult !== void 0 ? intentResult : undefined);
917
+ Logger.system.log(`tag:FDC3:raiseIntent getResult() returned for intent ${intent}`, fdc3IntentResult);
918
+ return fdc3IntentResult;
919
+ },
920
+ };
921
+ return intentResolution;
922
+ }
923
+ async raiseIntent(intent, context, target) {
924
+ if (!intent) {
925
+ throw new Error("Invalid arguments. The required intent parameter is missing.");
926
+ }
927
+ if (!context) {
928
+ throw new Error("Invalid arguments. The required context parameter is missing.");
929
+ }
930
+ if (!context.type) {
931
+ throw new Error("Invalid arguments. Second parameter must be a valid context.");
932
+ }
933
+ return this.raiseIntentInternal(intent, context, target);
934
+ }
935
+ async raiseIntentForContext(context, target) {
936
+ if (!context) {
937
+ throw new Error("Invalid arguments. The required context parameter is missing.");
938
+ }
939
+ return this.raiseIntentInternal(null, context, target, true);
940
+ }
941
+ /**
942
+ * Adds a listener for incoming Intents from the Agent. Unlike addContextListener, there can only be one listener for an intent.
943
+ * @param intent
944
+ * @param handler
945
+ */
946
+ addIntentListener(intent, handler) {
947
+ if (!intent) {
948
+ throw new Error("Invalid arguments. The required intent parameter is missing.");
949
+ }
950
+ if (!handler) {
951
+ throw new Error("addIntentListener Invalid arguments. The required handler parameter is missing.");
952
+ }
953
+ if (__classPrivateFieldGet(this, _FinsembleDesktopAgent_intentHandlers, "f")[intent]) {
954
+ throw new Error(`Intent listener already defined for intent ${intent}`);
955
+ }
956
+ else {
957
+ __classPrivateFieldGet(this, _FinsembleDesktopAgent_intentHandlers, "f")[intent] = handler;
958
+ }
959
+ const message = {
960
+ type: "subscribeIntent",
961
+ meta: this.meta(),
962
+ payload: {
963
+ intent,
964
+ },
965
+ };
966
+ // Dangerous code: See note at top of file about 1.2 compatibility
967
+ const exchangePromise = this.exchange(message); // don't wait for response
968
+ const listener = {
969
+ unsubscribe: async () => {
970
+ const unsubscribeMessage = {
971
+ type: "unsubscribeIntent",
972
+ meta: this.meta(),
973
+ payload: {
974
+ intent,
975
+ },
976
+ };
977
+ this.exchange(unsubscribeMessage); // don't wait for response
978
+ delete __classPrivateFieldGet(this, _FinsembleDesktopAgent_intentHandlers, "f")[intent];
979
+ },
980
+ };
981
+ // Dangerous code: See note at top of file about 1.2 compatibility
982
+ let promise = new Promise((resolve) => {
983
+ exchangePromise.then(() => {
984
+ resolve(listener);
985
+ });
986
+ });
987
+ promise.unsubscribe = () => {
988
+ Logger.system.deprecated("Use of the synchronous version of addIntentListener from FDC3 1.2 is deprecated. Please switch to `await addIntentListener`.");
989
+ listener.unsubscribe();
990
+ };
991
+ return promise;
992
+ }
993
+ // Common functions to handler incoming Private Channel events to support onAddListener, onSubscribe, and oDisconnect
994
+ listenerForPrivateChannelEvent(subscribeType, channel, handler) {
995
+ // A unique targetSubscriberId must be passed in InteropSubscribeChannelOnAddContext; the InteropService can direct messages to this specific listener by returning the targetSubscriberId in a broadcast message,
996
+ const targetSubscriberId = `subscriberId.${channel}.${subscribeType}.${Date.now()}_${Math.random()}`;
997
+ // Bind targetSubscriberId to the specific handler and save in map
998
+ const handlerSet = { subscribeType, handler, channel, targetSubscriberId };
999
+ __classPrivateFieldGet(this, _FinsembleDesktopAgent_privateChannelSubscription, "f")[channel] = mmAdd(__classPrivateFieldGet(this, _FinsembleDesktopAgent_privateChannelSubscription, "f"), channel, handlerSet);
1000
+ let message = {
1001
+ type: "subscribePrivateChannelEvent",
1002
+ payload: {
1003
+ subscribeType,
1004
+ channel,
1005
+ targetSubscriberId,
1006
+ },
1007
+ meta: this.meta(),
1008
+ };
1009
+ this.exchange(message);
1010
+ return {
1011
+ unsubscribe: async () => {
1012
+ let unsubscribeMessage = {
1013
+ type: "unsubscribePrivateChannelEvent",
1014
+ payload: {
1015
+ subscribeType,
1016
+ channel,
1017
+ targetSubscriberId,
1018
+ },
1019
+ meta: this.meta(),
1020
+ };
1021
+ __classPrivateFieldGet(this, _FinsembleDesktopAgent_privateChannelSubscription, "f")[channel] = mmRemove(__classPrivateFieldGet(this, _FinsembleDesktopAgent_privateChannelSubscription, "f"), channel, handlerSet);
1022
+ this.exchange(unsubscribeMessage); // Don't wait for response
1023
+ },
1024
+ };
1025
+ }
1026
+ /** @internal */
1027
+ channelOnAddContextListener(channel, handler) {
1028
+ return this.listenerForPrivateChannelEvent("onAddContextListener", channel, handler);
1029
+ }
1030
+ /** @internal */
1031
+ channelOnUnsubscribe(channel, handler) {
1032
+ return this.listenerForPrivateChannelEvent("onUnsubscribe", channel, handler);
1033
+ }
1034
+ /** @internal */
1035
+ channelOnDisconnect(channel, handler) {
1036
+ return this.listenerForPrivateChannelEvent("onDisconnect", channel, handler);
1037
+ }
1038
+ /** @internal */
1039
+ channelDisconnect(channel) {
1040
+ let message = {
1041
+ type: "channelDisconnect",
1042
+ meta: { ...this.meta(), channel },
1043
+ };
1044
+ this.exchange(message);
1045
+ }
1046
+ /** @internal */
1047
+ channelAddContextListener(channel, contextTypeOrHandler, handler) {
1048
+ // Derives a definitive contextType and handler from the varargs
1049
+ // Possibilities: addContextListener(handler) - deprecated 1.1, addContextListener(null, handler), addContextListener(contextType, handler)
1050
+ const contextTypeOrWildCard = contextTypeOrHandler ? contextTypeOrHandler : "*";
1051
+ const contextType = handler ? contextTypeOrWildCard : "*";
1052
+ if (!handler)
1053
+ handler = contextTypeOrHandler;
1054
+ // A unique targetSubscriberId must be passed in InteropSubscribeContext; the InteropService can direct messages to this specific listener by returning the targetSubscriberId in a broadcast message,
1055
+ const targetSubscriberId = `subscriberId.${Date.now()}_${Math.random()}`;
1056
+ // Bind targetSubscriberId to the specific handler and save in map
1057
+ const handlerSet = { handler, channel, targetSubscriberId };
1058
+ __classPrivateFieldGet(this, _FinsembleDesktopAgent_contextHandlers, "f")[contextType] = mmAdd(__classPrivateFieldGet(this, _FinsembleDesktopAgent_contextHandlers, "f"), contextType, handlerSet);
1059
+ let message = {
1060
+ type: "subscribeContext",
1061
+ meta: { ...this.meta(), targetSubscriberId },
1062
+ payload: {
1063
+ contextType,
1064
+ },
1065
+ };
1066
+ if (channel)
1067
+ message.meta.channel = channel;
1068
+ const exchangePromise = this.exchange(message);
1069
+ return {
1070
+ exchangePromise,
1071
+ unsubscribe: async () => {
1072
+ let unsubscribeMessage = {
1073
+ type: "unsubscribeContext",
1074
+ meta: this.meta(),
1075
+ payload: {
1076
+ contextType,
1077
+ },
1078
+ };
1079
+ if (channel)
1080
+ unsubscribeMessage.meta.channel = channel;
1081
+ __classPrivateFieldGet(this, _FinsembleDesktopAgent_contextHandlers, "f")[contextType] = mmRemove(__classPrivateFieldGet(this, _FinsembleDesktopAgent_contextHandlers, "f"), contextType, handlerSet);
1082
+ this.exchange(unsubscribeMessage); // Don't wait for response
1083
+ },
1084
+ };
1085
+ }
1086
+ /**
1087
+ * Adds a listener for incoming context broadcast from the Desktop Agent.
1088
+ * If the consumer is only interested in a context of a particular type, they can use the relevant overload that allows the type to be specified.
1089
+ * @param contextTypeOrHandler
1090
+ * @param handler
1091
+ */
1092
+ addContextListener(contextTypeOrHandler, handler) {
1093
+ if (contextTypeOrHandler === undefined) {
1094
+ throw new Error("addContextListener Invalid arguments. The contextTypeOrHandler parameter shouldn't be undefined.");
1095
+ }
1096
+ if (typeof contextTypeOrHandler !== "function" && !handler) {
1097
+ const msg = "addContextListener Invalid arguments. The required handler parameter is missing.";
1098
+ console.error(msg, contextTypeOrHandler, handler);
1099
+ Logger.system.error(msg);
1100
+ throw new Error(msg);
1101
+ }
1102
+ // Dangerous code: See note at top of file about 1.2 compatibility
1103
+ const { exchangePromise, unsubscribe } = this.channelAddContextListener(null, contextTypeOrHandler, handler);
1104
+ let promise = new Promise((resolve) => {
1105
+ exchangePromise.then(() => {
1106
+ resolve({
1107
+ unsubscribe,
1108
+ });
1109
+ });
1110
+ });
1111
+ promise.unsubscribe = () => {
1112
+ Logger.system.deprecated("Use of the synchronous version of addContextListener from FDC3 1.2 is deprecated. Please switch to `await addContextListener`.");
1113
+ unsubscribe();
1114
+ };
1115
+ return promise;
1116
+ }
1117
+ /**
1118
+ * Joins the app to the specified channel.
1119
+ * If an app is joined to a channel, all fdc3.broadcast calls will go to the channel, and all listeners assigned via fdc3.addContextListener will listen on the channel.
1120
+ * An app can only be joined to one channel at a time.
1121
+ * Rejects with error if the channel is unavailable or the join request is denied.
1122
+ * Error with a string from the ChannelError enumeration.
1123
+ * @param channelId
1124
+ */
1125
+ async joinUserChannel(channelId) {
1126
+ if (!channelId) {
1127
+ throw new Error("Invalid arguments. The required channelId parameter is missing.");
1128
+ }
1129
+ if (!(await this.isUserChannel(channelId))) {
1130
+ Logger.system.error("Invalid arguments. The channel being joined must be a user channel.");
1131
+ throw new Error(ChannelError.AccessDenied);
1132
+ }
1133
+ // Move this test to the InteropService so no delay is added, which might cause a backwards compatibility issue
1134
+ // const userChannels = await this.getUserChannels();
1135
+ // if (userChannels.find((app) => channelId === app.id) === undefined) {
1136
+ // throw new Error(ChannelError.NoChannelFound);
1137
+ // }
1138
+ const message = {
1139
+ type: "joinChannels",
1140
+ meta: this.meta(),
1141
+ payload: {
1142
+ channels: [channelId],
1143
+ },
1144
+ };
1145
+ const { err, receiveMessage } = await this.exchange(message);
1146
+ const interopJoinChannelsResponse = receiveMessage;
1147
+ if (err) {
1148
+ throw new Error(err);
1149
+ }
1150
+ else if (interopJoinChannelsResponse.payload.error) {
1151
+ throw new Error(interopJoinChannelsResponse.payload.error);
1152
+ }
1153
+ }
1154
+ async joinChannel(channelId) {
1155
+ return this.joinUserChannel(channelId);
1156
+ }
1157
+ /**
1158
+ * Returns a Channel object for the specified channel, creating it (as an App channel) - if it does not exist.
1159
+ * Error with a string from the ChannelError enumeration if channel could not be created or access was denied.
1160
+ * @param channelId
1161
+ */
1162
+ async getOrCreateChannel(channelId) {
1163
+ if (!channelId) {
1164
+ Logger.system.debug("getOrCreateChannel: The required channelId parameter is missing.");
1165
+ throw new Error(ChannelError.CreationFailed);
1166
+ }
1167
+ else if (isPrivateChannelId(channelId)) {
1168
+ throw new Error(ChannelError.AccessDenied);
1169
+ }
1170
+ // if channel proxy has already been allocated for the channelId, then return it; otherwise allocate a new one
1171
+ let channelInstance = __classPrivateFieldGet(this, _FinsembleDesktopAgent_existingChannelProxy, "f")[channelId];
1172
+ if (!channelInstance) {
1173
+ channelInstance = new ChannelProxy(this, channelId);
1174
+ __classPrivateFieldGet(this, _FinsembleDesktopAgent_existingChannelProxy, "f")[channelId] = channelInstance;
1175
+ }
1176
+ return channelInstance;
1177
+ }
1178
+ /**
1179
+ * Get all joined channels
1180
+ *
1181
+ * Known race condition: getCurrentChannels() can return an empty string if it is called before the InteropService's linker module
1182
+ * has completed initializing the app. This can occur if fdc3.getCurrentChannels() is the very first call that an app makes. To work around
1183
+ * this issue, use the interop.autoConnect config flag. A future version of the InteropService will hold off on completed registrations
1184
+ * until submodules have finished their work.
1185
+ */
1186
+ async getCurrentChannels() {
1187
+ const message = {
1188
+ type: "getCurrentChannels",
1189
+ meta: this.meta(),
1190
+ };
1191
+ const { err, receiveMessage } = await this.exchange(message);
1192
+ const interopGetCurrentChannelsResponse = receiveMessage;
1193
+ if (err) {
1194
+ throw new Error(err);
1195
+ }
1196
+ else if (interopGetCurrentChannelsResponse.payload.error) {
1197
+ throw new Error(interopGetCurrentChannelsResponse.payload.error);
1198
+ }
1199
+ else if (!interopGetCurrentChannelsResponse.payload.data) {
1200
+ throw new Error("Invalid response returned from InteropService for getCurrentChannels. No data.");
1201
+ }
1202
+ return interopGetCurrentChannelsResponse.payload.data.map((entry) => {
1203
+ var _a, _b, _c;
1204
+ let metaData;
1205
+ if ((receiveMessage === null || receiveMessage === void 0 ? void 0 : receiveMessage.type) === "interopGetCurrentChannelsResponse" && ((_a = receiveMessage === null || receiveMessage === void 0 ? void 0 : receiveMessage.payload) === null || _a === void 0 ? void 0 : _a.systemChannelMeta)) {
1206
+ metaData = (_c = (_b = receiveMessage === null || receiveMessage === void 0 ? void 0 : receiveMessage.payload) === null || _b === void 0 ? void 0 : _b.systemChannelMeta[entry.channel]) === null || _c === void 0 ? void 0 : _c.displayMetaData;
1207
+ }
1208
+ return new ChannelProxy(this, entry.channel, "user", metaData);
1209
+ });
1210
+ }
1211
+ /**
1212
+ * Returns the Channel object for the current channel membership.
1213
+ * Returns null if the app is not joined to a channel.
1214
+ */
1215
+ async getCurrentChannel() {
1216
+ const channels = await this.getCurrentChannels();
1217
+ return channels && channels.length ? channels[0] : null;
1218
+ }
1219
+ /**
1220
+ * Removes the app from any channel membership.
1221
+ * Context broadcast and listening through the top-level fdc3.broadcast and fdc3.addContextListener will be in a no-op when the app is not on a channel.
1222
+ */
1223
+ async leaveCurrentChannel() {
1224
+ const message = {
1225
+ type: "leaveChannels",
1226
+ meta: this.meta(),
1227
+ payload: {},
1228
+ };
1229
+ await this.exchange(message);
1230
+ }
1231
+ /**
1232
+ * Removes the app from the channel.
1233
+ * Context broadcast and listening through the top-level fdc3.broadcast and fdc3.addContextListener will be in a no-op when the app is not on the channel.
1234
+ */
1235
+ async leaveChannel(channelId) {
1236
+ const message = {
1237
+ type: "leaveChannels",
1238
+ meta: this.meta(),
1239
+ payload: { channels: [channelId] },
1240
+ };
1241
+ await this.exchange(message);
1242
+ }
1243
+ /**
1244
+ * Return specified app's meta data.
1245
+ */
1246
+ async getAppMetadata(app) {
1247
+ var _a;
1248
+ if (!app || !(app === null || app === void 0 ? void 0 : app.appId)) {
1249
+ throw new Error("getAppMetadata: The required app parameter is missing or not an AppIdentifier.");
1250
+ }
1251
+ const message = {
1252
+ type: "getAppMetadata",
1253
+ app,
1254
+ meta: this.meta(),
1255
+ };
1256
+ const { err, receiveMessage } = await this.exchange(message);
1257
+ const interopGetCurrentChannelsResponse = receiveMessage;
1258
+ if (err) {
1259
+ throw new Error(err);
1260
+ }
1261
+ else if (interopGetCurrentChannelsResponse.payload.error) {
1262
+ throw new Error(interopGetCurrentChannelsResponse.payload.error);
1263
+ }
1264
+ else if (!interopGetCurrentChannelsResponse.payload.appMetadata) {
1265
+ throw new Error("Invalid response returned from InteropService for getAppMetadata. No data.");
1266
+ }
1267
+ return (_a = interopGetCurrentChannelsResponse.payload) === null || _a === void 0 ? void 0 : _a.appMetadata;
1268
+ }
1269
+ /**
1270
+ * Return all the open instances of given appID.
1271
+ */
1272
+ async findInstances(app) {
1273
+ let instances = [];
1274
+ const message = {
1275
+ type: "findInstances",
1276
+ app,
1277
+ meta: this.meta(),
1278
+ };
1279
+ if (app === null || app === void 0 ? void 0 : app.appId) {
1280
+ const { err, receiveMessage } = await this.exchange(message);
1281
+ const response = receiveMessage;
1282
+ if (err) {
1283
+ throw new Error(err);
1284
+ }
1285
+ else if (response.payload.error) {
1286
+ throw new Error(response.payload.error);
1287
+ }
1288
+ else if (!response.payload.instances) {
1289
+ throw new Error("Invalid response returned from InteropService for findInstances. No data.");
1290
+ }
1291
+ ({ instances } = response.payload);
1292
+ }
1293
+ return instances;
1294
+ }
1295
+ async addEventListener(type, handler) {
1296
+ console.log("addEventListener is a FDC3 2.2.0 feature that is not implemented in Finsemble.");
1297
+ return {
1298
+ unsubscribe: async () => { },
1299
+ };
1300
+ }
1301
+ /**
1302
+ * Retrieves information about the FDC3 Desktop Agent implementation, such as
1303
+ * the implemented version of the FDC3 specification and the name of the implementation
1304
+ * provider.
1305
+ */
1306
+ getInfo() {
1307
+ // Dangerous code: See note at top of file about 1.2 compatibility
1308
+ let p = new Promise(async (resolve) => {
1309
+ const { data: FSBLVersion } = await ConfigClient.get(["finsemble", "system", "FSBLVersion"]);
1310
+ const { appMetadata: startupMetadata } = await this.fetchStartupData();
1311
+ // The interopService has more appMetaData than startup, plus it should be the single source of true for an app's metaData
1312
+ const fullAppMetadata = await this.getAppMetadata({ appId: startupMetadata.appId, instanceId: __classPrivateFieldGet(this, _FinsembleDesktopAgent_uuid, "f") });
1313
+ resolve({
1314
+ fdc3Version: "2.1",
1315
+ provider: "Finsemble",
1316
+ providerVersion: FSBLVersion,
1317
+ appMetadata: fullAppMetadata,
1318
+ optionalFeatures: {
1319
+ OriginatingAppMetadata: true,
1320
+ UserChannelMembershipAPIs: true,
1321
+ },
1322
+ });
1323
+ });
1324
+ // Backward compatibility for 1.2 which expects this to be synchronous
1325
+ p.fdc3Version = "1.2";
1326
+ p.provider = "Finsemble";
1327
+ p.providerVersion = __classPrivateFieldGet(this, _FinsembleDesktopAgent_FSBLVersion, "f");
1328
+ return p;
1329
+ }
1330
+ }
1331
+ _FinsembleDesktopAgent_connected = new WeakMap(), _FinsembleDesktopAgent_heartbeatMonitor = new WeakMap(), _FinsembleDesktopAgent_startHasBeenCalled = new WeakMap(), _FinsembleDesktopAgent_uuid = new WeakMap(), _FinsembleDesktopAgent_appId = new WeakMap(), _FinsembleDesktopAgent_clientChannel = new WeakMap(), _FinsembleDesktopAgent_intentHandlers = new WeakMap(), _FinsembleDesktopAgent_contextHandlers = new WeakMap(), _FinsembleDesktopAgent_privateChannelSubscription = new WeakMap(), _FinsembleDesktopAgent_intentResultPromiseMap = new WeakMap(), _FinsembleDesktopAgent_intentResultPromiseResolveMap = new WeakMap(), _FinsembleDesktopAgent_queue = new WeakMap(), _FinsembleDesktopAgent_routerClient = new WeakMap(), _FinsembleDesktopAgent_startup = new WeakMap(), _FinsembleDesktopAgent_windowName = new WeakMap(), _FinsembleDesktopAgent_existingChannelProxy = new WeakMap(), _FinsembleDesktopAgent_FSBLVersion = new WeakMap(), _FinsembleDesktopAgent_userChannels = new WeakMap();
1309
1332
  //# sourceMappingURL=FinsembleDesktopAgent.js.map