@finsemble/finsemble-ui 8.3.0 → 8.4.0-beta.1

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 (526) hide show
  1. package/FEA.d.ts +54 -24
  2. package/FEA.d.ts.map +1 -1
  3. package/FEA.js.map +1 -1
  4. package/clients/Interop/FinsembleDesktopAgent.js +2 -2
  5. package/clients/Interop/FinsembleDesktopAgent.js.map +1 -1
  6. package/clients/Startup/FSBLDesktop.d.ts +2 -8
  7. package/clients/Startup/FSBLDesktop.d.ts.map +1 -1
  8. package/clients/Startup/FSBLDesktop.js +2 -4
  9. package/clients/Startup/FSBLDesktop.js.map +1 -1
  10. package/clients/Startup/unhandledErrors.d.ts.map +1 -1
  11. package/clients/Startup/unhandledErrors.js +6 -4
  12. package/clients/Startup/unhandledErrors.js.map +1 -1
  13. package/clients/Startup/windowStartup.d.ts.map +1 -1
  14. package/clients/Startup/windowStartup.js +77 -116
  15. package/clients/Startup/windowStartup.js.map +1 -1
  16. package/clients/StoreModel.d.ts +8 -8
  17. package/clients/StoreModel.js +8 -8
  18. package/clients/appsClient.d.ts +90 -0
  19. package/clients/appsClient.d.ts.map +1 -0
  20. package/clients/appsClient.js +51 -0
  21. package/clients/appsClient.js.map +1 -0
  22. package/clients/authenticationClient.d.ts +29 -27
  23. package/clients/authenticationClient.d.ts.map +1 -1
  24. package/clients/authenticationClient.js +11 -15
  25. package/clients/authenticationClient.js.map +1 -1
  26. package/clients/configClient.d.ts +134 -70
  27. package/clients/configClient.d.ts.map +1 -1
  28. package/clients/configClient.js +129 -112
  29. package/clients/configClient.js.map +1 -1
  30. package/clients/controller/DialogManagerClientController.d.ts +78 -0
  31. package/clients/controller/DialogManagerClientController.d.ts.map +1 -0
  32. package/clients/controller/DialogManagerClientController.js +213 -0
  33. package/clients/controller/DialogManagerClientController.js.map +1 -0
  34. package/clients/dialogManagerClient.d.ts +1 -75
  35. package/clients/dialogManagerClient.d.ts.map +1 -1
  36. package/clients/dialogManagerClient.js +1 -208
  37. package/clients/dialogManagerClient.js.map +1 -1
  38. package/clients/distributedStoreClient.d.ts +1 -0
  39. package/clients/distributedStoreClient.d.ts.map +1 -1
  40. package/clients/distributedStoreClient.js +1 -0
  41. package/clients/distributedStoreClient.js.map +1 -1
  42. package/clients/hotkeyClient.d.ts +18 -9
  43. package/clients/hotkeyClient.d.ts.map +1 -1
  44. package/clients/hotkeyClient.js +30 -14
  45. package/clients/hotkeyClient.js.map +1 -1
  46. package/clients/index.d.ts +2 -0
  47. package/clients/index.d.ts.map +1 -1
  48. package/clients/index.js +2 -0
  49. package/clients/index.js.map +1 -1
  50. package/clients/launcherClient.d.ts +157 -47
  51. package/clients/launcherClient.d.ts.map +1 -1
  52. package/clients/launcherClient.js +201 -22
  53. package/clients/launcherClient.js.map +1 -1
  54. package/clients/logger.d.ts.map +1 -1
  55. package/clients/logger.js +43 -41
  56. package/clients/logger.js.map +1 -1
  57. package/clients/notificationClient.d.ts +2 -2
  58. package/clients/notificationClient.d.ts.map +1 -1
  59. package/clients/notificationClient.js +2 -2
  60. package/clients/notificationClient.js.map +1 -1
  61. package/clients/routerClient.d.ts +25 -21
  62. package/clients/routerClient.d.ts.map +1 -1
  63. package/clients/routerClient.js +24 -20
  64. package/clients/routerClient.js.map +1 -1
  65. package/clients/searchClient.d.ts +2 -2
  66. package/clients/searchClient.js +2 -2
  67. package/clients/storageClient.d.ts +8 -5
  68. package/clients/storageClient.d.ts.map +1 -1
  69. package/clients/storageClient.js +7 -5
  70. package/clients/storageClient.js.map +1 -1
  71. package/clients/windowClient.d.ts +160 -79
  72. package/clients/windowClient.d.ts.map +1 -1
  73. package/clients/windowClient.js +244 -138
  74. package/clients/windowClient.js.map +1 -1
  75. package/clients/workspaceClient.d.ts +19 -14
  76. package/clients/workspaceClient.d.ts.map +1 -1
  77. package/clients/workspaceClient.js +15 -9
  78. package/clients/workspaceClient.js.map +1 -1
  79. package/common/Desktop.d.ts +9 -50
  80. package/common/Desktop.d.ts.map +1 -1
  81. package/common/Desktop.js +11 -64
  82. package/common/Desktop.js.map +1 -1
  83. package/common/FinsembleWindow.d.ts +4 -107
  84. package/common/FinsembleWindow.d.ts.map +1 -1
  85. package/common/FinsembleWindow.js +21 -342
  86. package/common/FinsembleWindow.js.map +1 -1
  87. package/common/Monitors.d.ts +30 -18
  88. package/common/Monitors.d.ts.map +1 -1
  89. package/common/Monitors.js +45 -80
  90. package/common/Monitors.js.map +1 -1
  91. package/common/Singleton.d.ts +7 -1
  92. package/common/Singleton.d.ts.map +1 -1
  93. package/common/Singleton.js +24 -11
  94. package/common/Singleton.js.map +1 -1
  95. package/common/constants.d.ts +3 -9
  96. package/common/constants.d.ts.map +1 -1
  97. package/common/constants.js +3 -14
  98. package/common/constants.js.map +1 -1
  99. package/common/events/FinsembleEvent.d.ts +1 -1
  100. package/common/events/FinsembleEvent.d.ts.map +1 -1
  101. package/common/redux/getRemoteStore.d.ts +53 -0
  102. package/common/redux/getRemoteStore.d.ts.map +1 -0
  103. package/common/redux/getRemoteStore.js +50 -0
  104. package/common/redux/getRemoteStore.js.map +1 -0
  105. package/common/redux/remoteReduxEnhancer.d.ts +7 -7
  106. package/common/redux/remoteReduxEnhancer.d.ts.map +1 -1
  107. package/common/redux/remoteReduxEnhancer.js +35 -20
  108. package/common/redux/remoteReduxEnhancer.js.map +1 -1
  109. package/common/redux/types.d.ts +14 -1
  110. package/common/redux/types.d.ts.map +1 -1
  111. package/common/systemManagerClient.d.ts +11 -5
  112. package/common/systemManagerClient.d.ts.map +1 -1
  113. package/common/systemManagerClient.js +25 -8
  114. package/common/systemManagerClient.js.map +1 -1
  115. package/common/util.d.ts +1 -7
  116. package/common/util.d.ts.map +1 -1
  117. package/common/util.js +1 -14
  118. package/common/util.js.map +1 -1
  119. package/deprecated/deprecatedFunctions.d.ts +1 -1
  120. package/deprecated/deprecatedFunctions.d.ts.map +1 -1
  121. package/deprecated/deprecatedFunctions.js +1 -2
  122. package/deprecated/deprecatedFunctions.js.map +1 -1
  123. package/deprecated/dragAndDropClient.d.ts +3 -3
  124. package/deprecated/dragAndDropClient.d.ts.map +1 -1
  125. package/deprecated/dragAndDropClient.js.map +1 -1
  126. package/deprecated/linkerClient.d.ts +1 -1
  127. package/deprecated/linkerClient.d.ts.map +1 -1
  128. package/main.d.ts +289 -190
  129. package/main.d.ts.map +1 -1
  130. package/main.js +3 -1
  131. package/main.js.map +1 -1
  132. package/package.json +3 -3
  133. package/platform/services/Interop/types.d.ts +2 -1
  134. package/platform/services/Interop/types.d.ts.map +1 -1
  135. package/platform/services/router/types.d.ts +5 -6
  136. package/platform/services/router/types.d.ts.map +1 -1
  137. package/platform/services/systemManager/_constants.d.ts +1 -0
  138. package/platform/services/systemManager/_constants.d.ts.map +1 -1
  139. package/platform/services/systemManager/_constants.js +1 -0
  140. package/platform/services/systemManager/_constants.js.map +1 -1
  141. package/platform/services/window/modules/actions.d.ts +59 -0
  142. package/platform/services/window/modules/actions.d.ts.map +1 -0
  143. package/platform/services/window/modules/actions.js +57 -0
  144. package/platform/services/window/modules/actions.js.map +1 -0
  145. package/platform/services/window/types.d.ts +257 -50
  146. package/platform/services/window/types.d.ts.map +1 -1
  147. package/platform/services/workspace/types.d.ts +4 -3
  148. package/platform/services/workspace/types.d.ts.map +1 -1
  149. package/react/assets/css/core/icons.css +0 -5
  150. package/react/assets/css/processMonitor.css +9 -4
  151. package/react/assets/css/windowTitleBar.css +98 -285
  152. package/react/assets/icons/chevron-down.svg +1 -0
  153. package/react/assets/icons/chevron-up.svg +1 -0
  154. package/react/components/common/ButtonRow.d.ts.map +1 -1
  155. package/react/components/common/ButtonRow.js +4 -9
  156. package/react/components/common/ButtonRow.js.map +1 -1
  157. package/react/components/common/ContextMenu.d.ts.map +1 -1
  158. package/react/components/common/ContextMenu.js +2 -10
  159. package/react/components/common/ContextMenu.js.map +1 -1
  160. package/react/components/common/DropdownButton.d.ts.map +1 -1
  161. package/react/components/common/DropdownButton.js +11 -24
  162. package/react/components/common/DropdownButton.js.map +1 -1
  163. package/react/components/common/FinsembleIcon.d.ts +1 -1
  164. package/react/components/common/FinsembleIcon.d.ts.map +1 -1
  165. package/react/components/common/FinsembleIcon.js +6 -4
  166. package/react/components/common/FinsembleIcon.js.map +1 -1
  167. package/react/components/common/css/accordion.css +9 -21
  168. package/react/components/common/css/application-edit-page.css +0 -4
  169. package/react/components/common/css/selector.css +3 -1
  170. package/react/components/downloadManager/DownloadManager.d.ts +1 -1
  171. package/react/components/downloadManager/DownloadManager.d.ts.map +1 -1
  172. package/react/components/downloadManager/DownloadManager.js +2 -4
  173. package/react/components/downloadManager/DownloadManager.js.map +1 -1
  174. package/react/components/fdc3Resolver/ResolverContainer.d.ts +6 -0
  175. package/react/components/fdc3Resolver/ResolverContainer.d.ts.map +1 -1
  176. package/react/components/fdc3Resolver/ResolverContainer.js +37 -89
  177. package/react/components/fdc3Resolver/ResolverContainer.js.map +1 -1
  178. package/react/components/fdc3Resolver/ResolverDialog.d.ts +10 -1
  179. package/react/components/fdc3Resolver/ResolverDialog.d.ts.map +1 -1
  180. package/react/components/fdc3Resolver/ResolverDialog.js +78 -66
  181. package/react/components/fdc3Resolver/ResolverDialog.js.map +1 -1
  182. package/react/components/legacyControls/FinsembleDialogTextInput.d.ts +1 -1
  183. package/react/components/legacyControls/FinsembleDialogTextInput.d.ts.map +1 -1
  184. package/react/components/linker/remoteRedux.d.ts +2 -9
  185. package/react/components/linker/remoteRedux.d.ts.map +1 -1
  186. package/react/components/linker/remoteRedux.js +2 -22
  187. package/react/components/linker/remoteRedux.js.map +1 -1
  188. package/react/components/notifications/css/notification-center.css +2 -0
  189. package/react/components/processMonitor/ProcessMonitor.d.ts.map +1 -1
  190. package/react/components/processMonitor/ProcessMonitor.js +14 -36
  191. package/react/components/processMonitor/ProcessMonitor.js.map +1 -1
  192. package/react/components/processMonitor/ProcessMonitorTypes.d.ts +0 -4
  193. package/react/components/processMonitor/ProcessMonitorTypes.d.ts.map +1 -1
  194. package/react/components/processMonitor/ProcessMonitorTypes.js +1 -5
  195. package/react/components/processMonitor/ProcessMonitorTypes.js.map +1 -1
  196. package/react/components/processMonitor/components/ChildWindow.d.ts +2 -3
  197. package/react/components/processMonitor/components/ChildWindow.d.ts.map +1 -1
  198. package/react/components/processMonitor/components/ChildWindow.js +5 -9
  199. package/react/components/processMonitor/components/ChildWindow.js.map +1 -1
  200. package/react/components/processMonitor/components/ListHeader.d.ts +1 -5
  201. package/react/components/processMonitor/components/ListHeader.d.ts.map +1 -1
  202. package/react/components/processMonitor/components/ListHeader.js +3 -2
  203. package/react/components/processMonitor/components/ListHeader.js.map +1 -1
  204. package/react/components/processMonitor/components/Process.d.ts +10 -0
  205. package/react/components/processMonitor/components/Process.d.ts.map +1 -0
  206. package/react/components/processMonitor/components/Process.js +11 -0
  207. package/react/components/processMonitor/components/Process.js.map +1 -0
  208. package/react/components/processMonitor/components/ProcessStatistics.d.ts +5 -4
  209. package/react/components/processMonitor/components/ProcessStatistics.d.ts.map +1 -1
  210. package/react/components/processMonitor/components/ProcessStatistics.js +10 -7
  211. package/react/components/processMonitor/components/ProcessStatistics.js.map +1 -1
  212. package/react/components/processMonitor/constants.d.ts +1 -2
  213. package/react/components/processMonitor/constants.d.ts.map +1 -1
  214. package/react/components/processMonitor/constants.js +2 -8
  215. package/react/components/processMonitor/constants.js.map +1 -1
  216. package/react/components/processMonitor/helpers.d.ts +0 -1
  217. package/react/components/processMonitor/helpers.d.ts.map +1 -1
  218. package/react/components/processMonitor/helpers.js +2 -9
  219. package/react/components/processMonitor/helpers.js.map +1 -1
  220. package/react/components/processMonitor/stores/ProcessMonitorStore.d.ts +0 -4
  221. package/react/components/processMonitor/stores/ProcessMonitorStore.d.ts.map +1 -1
  222. package/react/components/processMonitor/stores/ProcessMonitorStore.js +0 -29
  223. package/react/components/processMonitor/stores/ProcessMonitorStore.js.map +1 -1
  224. package/react/components/search/SearchInput.d.ts +1 -2
  225. package/react/components/search/SearchInput.d.ts.map +1 -1
  226. package/react/components/search/SearchInput.js +11 -13
  227. package/react/components/search/SearchInput.js.map +1 -1
  228. package/react/components/shared/openQuitConfirmationDialog.d.ts.map +1 -1
  229. package/react/components/shared/openQuitConfirmationDialog.js +31 -4
  230. package/react/components/shared/openQuitConfirmationDialog.js.map +1 -1
  231. package/react/components/singleInputDialog/SingleInputDialog.d.ts.map +1 -1
  232. package/react/components/singleInputDialog/SingleInputDialog.js +81 -100
  233. package/react/components/singleInputDialog/SingleInputDialog.js.map +1 -1
  234. package/react/components/toolbar/ToolbarShell.d.ts +1 -0
  235. package/react/components/toolbar/ToolbarShell.d.ts.map +1 -1
  236. package/react/components/toolbar/ToolbarShell.js +3 -2
  237. package/react/components/toolbar/ToolbarShell.js.map +1 -1
  238. package/react/components/utils.d.ts +50 -0
  239. package/react/components/utils.d.ts.map +1 -0
  240. package/react/components/utils.js +60 -0
  241. package/react/components/utils.js.map +1 -0
  242. package/react/components/windowTitleBar/AlwaysOnTopButton.d.ts +9 -0
  243. package/react/components/windowTitleBar/AlwaysOnTopButton.d.ts.map +1 -0
  244. package/react/components/windowTitleBar/AlwaysOnTopButton.js +29 -0
  245. package/react/components/windowTitleBar/AlwaysOnTopButton.js.map +1 -0
  246. package/react/components/windowTitleBar/{components/right/CloseButton.d.ts → CloseButton.d.ts} +0 -0
  247. package/react/components/windowTitleBar/CloseButton.d.ts.map +1 -0
  248. package/react/components/windowTitleBar/CloseButton.js +22 -0
  249. package/react/components/windowTitleBar/CloseButton.js.map +1 -0
  250. package/react/components/windowTitleBar/GroupingButton.d.ts +3 -0
  251. package/react/components/windowTitleBar/GroupingButton.d.ts.map +1 -0
  252. package/react/components/windowTitleBar/GroupingButton.js +25 -0
  253. package/react/components/windowTitleBar/GroupingButton.js.map +1 -0
  254. package/react/components/windowTitleBar/{components/left/LinkerButton.d.ts → LinkerButton.d.ts} +0 -0
  255. package/react/components/windowTitleBar/LinkerButton.d.ts.map +1 -0
  256. package/react/components/windowTitleBar/{components/left/LinkerButton.js → LinkerButton.js} +4 -4
  257. package/react/components/windowTitleBar/LinkerButton.js.map +1 -0
  258. package/react/components/windowTitleBar/LinkerButtonDeprecated.d.ts +11 -0
  259. package/react/components/windowTitleBar/LinkerButtonDeprecated.d.ts.map +1 -0
  260. package/react/components/windowTitleBar/LinkerButtonDeprecated.js +63 -0
  261. package/react/components/windowTitleBar/LinkerButtonDeprecated.js.map +1 -0
  262. package/react/components/windowTitleBar/{components/left/LinkerGroups.d.ts → LinkerGroups.d.ts} +0 -0
  263. package/react/components/windowTitleBar/LinkerGroups.d.ts.map +1 -0
  264. package/react/components/windowTitleBar/{components/left/LinkerGroups.js → LinkerGroups.js} +2 -3
  265. package/react/components/windowTitleBar/LinkerGroups.js.map +1 -0
  266. package/react/components/windowTitleBar/LinkerGroupsDeprecated.d.ts +7 -0
  267. package/react/components/windowTitleBar/LinkerGroupsDeprecated.d.ts.map +1 -0
  268. package/react/components/windowTitleBar/LinkerGroupsDeprecated.js +35 -0
  269. package/react/components/windowTitleBar/LinkerGroupsDeprecated.js.map +1 -0
  270. package/react/components/windowTitleBar/MaximizeButton.d.ts +3 -0
  271. package/react/components/windowTitleBar/MaximizeButton.d.ts.map +1 -0
  272. package/react/components/windowTitleBar/MaximizeButton.js +18 -0
  273. package/react/components/windowTitleBar/MaximizeButton.js.map +1 -0
  274. package/react/components/windowTitleBar/MinimizeButton.d.ts +3 -0
  275. package/react/components/windowTitleBar/MinimizeButton.d.ts.map +1 -0
  276. package/react/components/windowTitleBar/MinimizeButton.js +21 -0
  277. package/react/components/windowTitleBar/MinimizeButton.js.map +1 -0
  278. package/react/components/windowTitleBar/ShareButton.d.ts +3 -0
  279. package/react/components/windowTitleBar/ShareButton.d.ts.map +1 -0
  280. package/react/components/windowTitleBar/ShareButton.js +24 -0
  281. package/react/components/windowTitleBar/ShareButton.js.map +1 -0
  282. package/react/components/windowTitleBar/TabRegion.d.ts +7 -0
  283. package/react/components/windowTitleBar/TabRegion.d.ts.map +1 -0
  284. package/react/components/windowTitleBar/TabRegion.js +453 -0
  285. package/react/components/windowTitleBar/TabRegion.js.map +1 -0
  286. package/react/components/windowTitleBar/TabTitle.d.ts +8 -0
  287. package/react/components/windowTitleBar/TabTitle.d.ts.map +1 -0
  288. package/react/components/windowTitleBar/TabTitle.js +17 -0
  289. package/react/components/windowTitleBar/TabTitle.js.map +1 -0
  290. package/react/components/windowTitleBar/TitleEdit.d.ts +10 -0
  291. package/react/components/windowTitleBar/TitleEdit.d.ts.map +1 -0
  292. package/react/components/windowTitleBar/TitleEdit.js +30 -0
  293. package/react/components/windowTitleBar/TitleEdit.js.map +1 -0
  294. package/react/components/windowTitleBar/WindowTitleBarContext.d.ts +12 -0
  295. package/react/components/windowTitleBar/WindowTitleBarContext.d.ts.map +1 -0
  296. package/react/components/windowTitleBar/WindowTitleBarContext.js +3 -0
  297. package/react/components/windowTitleBar/WindowTitleBarContext.js.map +1 -0
  298. package/react/components/windowTitleBar/WindowTitleBarShell.d.ts +14 -272
  299. package/react/components/windowTitleBar/WindowTitleBarShell.d.ts.map +1 -1
  300. package/react/components/windowTitleBar/WindowTitleBarShell.js +41 -929
  301. package/react/components/windowTitleBar/WindowTitleBarShell.js.map +1 -1
  302. package/react/components/windowTitleBar/index.d.ts +9 -8
  303. package/react/components/windowTitleBar/index.d.ts.map +1 -1
  304. package/react/components/windowTitleBar/index.js +9 -8
  305. package/react/components/windowTitleBar/index.js.map +1 -1
  306. package/react/components/windowTitleBar/useKeyboardNavigation.d.ts +7 -0
  307. package/react/components/windowTitleBar/useKeyboardNavigation.d.ts.map +1 -0
  308. package/react/components/windowTitleBar/useKeyboardNavigation.js +57 -0
  309. package/react/components/windowTitleBar/useKeyboardNavigation.js.map +1 -0
  310. package/react/components/windowTitleBar/useMaximize.d.ts +5 -0
  311. package/react/components/windowTitleBar/useMaximize.d.ts.map +1 -0
  312. package/react/components/windowTitleBar/useMaximize.js +23 -0
  313. package/react/components/windowTitleBar/useMaximize.js.map +1 -0
  314. package/react/components/yesNoDialog/timer.js +2 -1
  315. package/react/components/yesNoDialog/timer.js.map +1 -1
  316. package/react/hooks/useDashbar.d.ts.map +1 -1
  317. package/react/hooks/useDashbar.js.map +1 -1
  318. package/react/hooks/useDragRegion.d.ts +27 -0
  319. package/react/hooks/useDragRegion.d.ts.map +1 -0
  320. package/react/hooks/useDragRegion.js +74 -0
  321. package/react/hooks/useDragRegion.js.map +1 -0
  322. package/react/hooks/useInjectedTitleBar.d.ts +3 -0
  323. package/react/hooks/useInjectedTitleBar.d.ts.map +1 -0
  324. package/react/hooks/useInjectedTitleBar.js +365 -0
  325. package/react/hooks/useInjectedTitleBar.js.map +1 -0
  326. package/react/hooks/useNotifications.d.ts +1 -1
  327. package/react/hooks/useToolbar.d.ts +1 -0
  328. package/react/hooks/useToolbar.d.ts.map +1 -1
  329. package/react/hooks/useToolbar.js +13 -3
  330. package/react/hooks/useToolbar.js.map +1 -1
  331. package/typedoc-types.d.ts +9 -0
  332. package/typedoc-types.d.ts.map +1 -0
  333. package/typedoc-types.js +6 -0
  334. package/typedoc-types.js.map +1 -0
  335. package/types.d.ts +5 -11
  336. package/types.d.ts.map +1 -1
  337. package/types.js +2 -0
  338. package/types.js.map +1 -1
  339. package/common/events/PrivateEventManager.d.ts +0 -95
  340. package/common/events/PrivateEventManager.d.ts.map +0 -1
  341. package/common/events/PrivateEventManager.js +0 -295
  342. package/common/events/PrivateEventManager.js.map +0 -1
  343. package/common/events/PrivateFinsembleEvent.d.ts +0 -30
  344. package/common/events/PrivateFinsembleEvent.d.ts.map +0 -1
  345. package/common/events/PrivateFinsembleEvent.js +0 -65
  346. package/common/events/PrivateFinsembleEvent.js.map +0 -1
  347. package/common/redux/createReducer.d.ts +0 -128
  348. package/common/redux/createReducer.d.ts.map +0 -1
  349. package/common/redux/createReducer.js +0 -298
  350. package/common/redux/createReducer.js.map +0 -1
  351. package/common/redux/index.d.ts +0 -3
  352. package/common/redux/index.d.ts.map +0 -1
  353. package/common/redux/index.js +0 -3
  354. package/common/redux/index.js.map +0 -1
  355. package/platform/services/window/Common/Pools/ObjectPool.d.ts +0 -11
  356. package/platform/services/window/Common/Pools/ObjectPool.d.ts.map +0 -1
  357. package/platform/services/window/Common/Pools/ObjectPool.js +0 -43
  358. package/platform/services/window/Common/Pools/ObjectPool.js.map +0 -1
  359. package/platform/services/window/Common/Pools/PoolSingletons.d.ts +0 -10
  360. package/platform/services/window/Common/Pools/PoolSingletons.d.ts.map +0 -1
  361. package/platform/services/window/Common/Pools/PoolSingletons.js +0 -10
  362. package/platform/services/window/Common/Pools/PoolSingletons.js.map +0 -1
  363. package/platform/services/window/Common/Pools/WindowPool.d.ts +0 -7
  364. package/platform/services/window/Common/Pools/WindowPool.d.ts.map +0 -1
  365. package/platform/services/window/Common/Pools/WindowPool.js +0 -16
  366. package/platform/services/window/Common/Pools/WindowPool.js.map +0 -1
  367. package/platform/services/window/Docking/boxMath.d.ts +0 -144
  368. package/platform/services/window/Docking/boxMath.d.ts.map +0 -1
  369. package/platform/services/window/Docking/boxMath.js +0 -511
  370. package/platform/services/window/Docking/boxMath.js.map +0 -1
  371. package/platform/services/window/Docking/constants.d.ts +0 -29
  372. package/platform/services/window/Docking/constants.d.ts.map +0 -1
  373. package/platform/services/window/Docking/constants.js +0 -29
  374. package/platform/services/window/Docking/constants.js.map +0 -1
  375. package/platform/services/window/Docking/dockableBox.d.ts +0 -117
  376. package/platform/services/window/Docking/dockableBox.d.ts.map +0 -1
  377. package/platform/services/window/Docking/dockableBox.js +0 -525
  378. package/platform/services/window/Docking/dockableBox.js.map +0 -1
  379. package/platform/services/window/Docking/dockableGroup.d.ts +0 -252
  380. package/platform/services/window/Docking/dockableGroup.d.ts.map +0 -1
  381. package/platform/services/window/Docking/dockableGroup.js +0 -1054
  382. package/platform/services/window/Docking/dockableGroup.js.map +0 -1
  383. package/platform/services/window/Docking/dockableMonitor.d.ts +0 -99
  384. package/platform/services/window/Docking/dockableMonitor.d.ts.map +0 -1
  385. package/platform/services/window/Docking/dockableMonitor.js +0 -427
  386. package/platform/services/window/Docking/dockableMonitor.js.map +0 -1
  387. package/platform/services/window/Docking/dockableWindow.d.ts +0 -272
  388. package/platform/services/window/Docking/dockableWindow.d.ts.map +0 -1
  389. package/platform/services/window/Docking/dockableWindow.js +0 -1239
  390. package/platform/services/window/Docking/dockableWindow.js.map +0 -1
  391. package/platform/services/window/Docking/dockingCalculator.d.ts +0 -741
  392. package/platform/services/window/Docking/dockingCalculator.d.ts.map +0 -1
  393. package/platform/services/window/Docking/dockingCalculator.js +0 -3438
  394. package/platform/services/window/Docking/dockingCalculator.js.map +0 -1
  395. package/platform/services/window/Docking/dockingMain.d.ts +0 -349
  396. package/platform/services/window/Docking/dockingMain.d.ts.map +0 -1
  397. package/platform/services/window/Docking/dockingMain.js +0 -2541
  398. package/platform/services/window/Docking/dockingMain.js.map +0 -1
  399. package/platform/services/window/Docking/maskBoundsCalculator.d.ts +0 -28
  400. package/platform/services/window/Docking/maskBoundsCalculator.d.ts.map +0 -1
  401. package/platform/services/window/Docking/maskBoundsCalculator.js +0 -67
  402. package/platform/services/window/Docking/maskBoundsCalculator.js.map +0 -1
  403. package/platform/services/window/Docking/monitorUpdateHandler.d.ts +0 -32
  404. package/platform/services/window/Docking/monitorUpdateHandler.d.ts.map +0 -1
  405. package/platform/services/window/Docking/monitorUpdateHandler.js +0 -117
  406. package/platform/services/window/Docking/monitorUpdateHandler.js.map +0 -1
  407. package/platform/services/window/Docking/types.d.ts +0 -334
  408. package/platform/services/window/Docking/types.d.ts.map +0 -1
  409. package/platform/services/window/Docking/types.js +0 -12
  410. package/platform/services/window/Docking/types.js.map +0 -1
  411. package/platform/services/window/MultiWindowFeatures/autoArrange.d.ts +0 -90
  412. package/platform/services/window/MultiWindowFeatures/autoArrange.d.ts.map +0 -1
  413. package/platform/services/window/MultiWindowFeatures/autoArrange.js +0 -510
  414. package/platform/services/window/MultiWindowFeatures/autoArrange.js.map +0 -1
  415. package/platform/services/window/StackedWindowManager/stackedWindowManager.d.ts +0 -411
  416. package/platform/services/window/StackedWindowManager/stackedWindowManager.d.ts.map +0 -1
  417. package/platform/services/window/StackedWindowManager/stackedWindowManager.js +0 -1641
  418. package/platform/services/window/StackedWindowManager/stackedWindowManager.js.map +0 -1
  419. package/platform/services/window/WindowAbstractions/BaseWindow.d.ts +0 -469
  420. package/platform/services/window/WindowAbstractions/BaseWindow.d.ts.map +0 -1
  421. package/platform/services/window/WindowAbstractions/BaseWindow.js +0 -1347
  422. package/platform/services/window/WindowAbstractions/BaseWindow.js.map +0 -1
  423. package/platform/services/window/WindowAbstractions/FinsembleWindowInternal.d.ts +0 -9
  424. package/platform/services/window/WindowAbstractions/FinsembleWindowInternal.d.ts.map +0 -1
  425. package/platform/services/window/WindowAbstractions/FinsembleWindowInternal.js +0 -23
  426. package/platform/services/window/WindowAbstractions/FinsembleWindowInternal.js.map +0 -1
  427. package/platform/services/window/WindowAbstractions/WebWindowWrapper.d.ts +0 -227
  428. package/platform/services/window/WindowAbstractions/WebWindowWrapper.d.ts.map +0 -1
  429. package/platform/services/window/WindowAbstractions/WebWindowWrapper.js +0 -1168
  430. package/platform/services/window/WindowAbstractions/WebWindowWrapper.js.map +0 -1
  431. package/platform/services/window/WindowAbstractions/externalWindowWrapper.d.ts +0 -121
  432. package/platform/services/window/WindowAbstractions/externalWindowWrapper.d.ts.map +0 -1
  433. package/platform/services/window/WindowAbstractions/externalWindowWrapper.js +0 -591
  434. package/platform/services/window/WindowAbstractions/externalWindowWrapper.js.map +0 -1
  435. package/platform/services/window/WindowAbstractions/stackedWindowWrapper.d.ts +0 -194
  436. package/platform/services/window/WindowAbstractions/stackedWindowWrapper.d.ts.map +0 -1
  437. package/platform/services/window/WindowAbstractions/stackedWindowWrapper.js +0 -680
  438. package/platform/services/window/WindowAbstractions/stackedWindowWrapper.js.map +0 -1
  439. package/platform/services/window/windowGroup.d.ts +0 -86
  440. package/platform/services/window/windowGroup.d.ts.map +0 -1
  441. package/platform/services/window/windowGroup.js +0 -323
  442. package/platform/services/window/windowGroup.js.map +0 -1
  443. package/platform/services/workspace/windowStorageManager.d.ts +0 -180
  444. package/platform/services/workspace/windowStorageManager.d.ts.map +0 -1
  445. package/platform/services/workspace/windowStorageManager.js +0 -195
  446. package/platform/services/workspace/windowStorageManager.js.map +0 -1
  447. package/react/assets/icons/question-circle.svg +0 -6
  448. package/react/components/legacyControls/FinsembleHoverDetector.d.ts +0 -23
  449. package/react/components/legacyControls/FinsembleHoverDetector.d.ts.map +0 -1
  450. package/react/components/legacyControls/FinsembleHoverDetector.js +0 -57
  451. package/react/components/legacyControls/FinsembleHoverDetector.js.map +0 -1
  452. package/react/components/sdd/Appearance.helpers.d.ts +0 -2
  453. package/react/components/sdd/Appearance.helpers.d.ts.map +0 -1
  454. package/react/components/sdd/Appearance.helpers.js +0 -2
  455. package/react/components/sdd/Appearance.helpers.js.map +0 -1
  456. package/react/components/shared/linkerUtil.d.ts +0 -4
  457. package/react/components/shared/linkerUtil.d.ts.map +0 -1
  458. package/react/components/shared/linkerUtil.js +0 -10
  459. package/react/components/shared/linkerUtil.js.map +0 -1
  460. package/react/components/windowTitleBar/components/center/Tab.d.ts +0 -31
  461. package/react/components/windowTitleBar/components/center/Tab.d.ts.map +0 -1
  462. package/react/components/windowTitleBar/components/center/Tab.js +0 -58
  463. package/react/components/windowTitleBar/components/center/Tab.js.map +0 -1
  464. package/react/components/windowTitleBar/components/center/TabList.d.ts +0 -138
  465. package/react/components/windowTitleBar/components/center/TabList.d.ts.map +0 -1
  466. package/react/components/windowTitleBar/components/center/TabList.js +0 -614
  467. package/react/components/windowTitleBar/components/center/TabList.js.map +0 -1
  468. package/react/components/windowTitleBar/components/center/TabRegion.d.ts +0 -3
  469. package/react/components/windowTitleBar/components/center/TabRegion.d.ts.map +0 -1
  470. package/react/components/windowTitleBar/components/center/TabRegion.js +0 -13
  471. package/react/components/windowTitleBar/components/center/TabRegion.js.map +0 -1
  472. package/react/components/windowTitleBar/components/left/LinkerButton.d.ts.map +0 -1
  473. package/react/components/windowTitleBar/components/left/LinkerButton.js.map +0 -1
  474. package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.d.ts +0 -85
  475. package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.d.ts.map +0 -1
  476. package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.js +0 -172
  477. package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.js.map +0 -1
  478. package/react/components/windowTitleBar/components/left/LinkerGroups.d.ts.map +0 -1
  479. package/react/components/windowTitleBar/components/left/LinkerGroups.js.map +0 -1
  480. package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.d.ts +0 -50
  481. package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.d.ts.map +0 -1
  482. package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.js +0 -120
  483. package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.js.map +0 -1
  484. package/react/components/windowTitleBar/components/left/ShareButton.d.ts +0 -42
  485. package/react/components/windowTitleBar/components/left/ShareButton.d.ts.map +0 -1
  486. package/react/components/windowTitleBar/components/left/ShareButton.js +0 -82
  487. package/react/components/windowTitleBar/components/left/ShareButton.js.map +0 -1
  488. package/react/components/windowTitleBar/components/right/AlwaysOnTopButton.d.ts +0 -3
  489. package/react/components/windowTitleBar/components/right/AlwaysOnTopButton.d.ts.map +0 -1
  490. package/react/components/windowTitleBar/components/right/AlwaysOnTopButton.js +0 -15
  491. package/react/components/windowTitleBar/components/right/AlwaysOnTopButton.js.map +0 -1
  492. package/react/components/windowTitleBar/components/right/CloseButton.d.ts.map +0 -1
  493. package/react/components/windowTitleBar/components/right/CloseButton.js +0 -16
  494. package/react/components/windowTitleBar/components/right/CloseButton.js.map +0 -1
  495. package/react/components/windowTitleBar/components/right/GroupingButton.d.ts +0 -50
  496. package/react/components/windowTitleBar/components/right/GroupingButton.d.ts.map +0 -1
  497. package/react/components/windowTitleBar/components/right/GroupingButton.js +0 -82
  498. package/react/components/windowTitleBar/components/right/GroupingButton.js.map +0 -1
  499. package/react/components/windowTitleBar/components/right/MaximizeButton.d.ts +0 -59
  500. package/react/components/windowTitleBar/components/right/MaximizeButton.d.ts.map +0 -1
  501. package/react/components/windowTitleBar/components/right/MaximizeButton.js +0 -96
  502. package/react/components/windowTitleBar/components/right/MaximizeButton.js.map +0 -1
  503. package/react/components/windowTitleBar/components/right/MinimizeButton.d.ts +0 -26
  504. package/react/components/windowTitleBar/components/right/MinimizeButton.d.ts.map +0 -1
  505. package/react/components/windowTitleBar/components/right/MinimizeButton.js +0 -32
  506. package/react/components/windowTitleBar/components/right/MinimizeButton.js.map +0 -1
  507. package/react/components/windowTitleBar/components/windowTitle.d.ts +0 -67
  508. package/react/components/windowTitleBar/components/windowTitle.d.ts.map +0 -1
  509. package/react/components/windowTitleBar/components/windowTitle.js +0 -382
  510. package/react/components/windowTitleBar/components/windowTitle.js.map +0 -1
  511. package/react/components/windowTitleBar/stores/windowTitleBarStore.d.ts +0 -69
  512. package/react/components/windowTitleBar/stores/windowTitleBarStore.d.ts.map +0 -1
  513. package/react/components/windowTitleBar/stores/windowTitleBarStore.js +0 -610
  514. package/react/components/windowTitleBar/stores/windowTitleBarStore.js.map +0 -1
  515. package/react/components/windowTitleBar/stores/windowTitleBarStoreDefaults.d.ts +0 -44
  516. package/react/components/windowTitleBar/stores/windowTitleBarStoreDefaults.d.ts.map +0 -1
  517. package/react/components/windowTitleBar/stores/windowTitleBarStoreDefaults.js +0 -43
  518. package/react/components/windowTitleBar/stores/windowTitleBarStoreDefaults.js.map +0 -1
  519. package/react/components/windowTitleBar/windowTitleBarContext.d.ts +0 -23
  520. package/react/components/windowTitleBar/windowTitleBarContext.d.ts.map +0 -1
  521. package/react/components/windowTitleBar/windowTitleBarContext.js +0 -22
  522. package/react/components/windowTitleBar/windowTitleBarContext.js.map +0 -1
  523. package/react/types/windowTitleBar.d.ts +0 -49
  524. package/react/types/windowTitleBar.d.ts.map +0 -1
  525. package/react/types/windowTitleBar.js +0 -2
  526. package/react/types/windowTitleBar.js.map +0 -1
@@ -1,510 +0,0 @@
1
- import { BaseWindow } from "../WindowAbstractions/BaseWindow";
2
- import { RouterClient } from "../../../../clients/routerClient";
3
- import { Logger } from "../../../../clients/logger";
4
- import { WorkspaceClient } from "../../../../clients/workspaceClient";
5
- import { WindowStorageManager } from "../../workspace/windowStorageManager";
6
- import { isStackedWindow, fastClone } from "../../../../common/util";
7
- import { findKey } from "lodash";
8
- import async from "async";
9
- Logger.start();
10
- class AutoArrange {
11
- constructor(params) {
12
- this.isArranged = {};
13
- this.DockingCalculator = params.DockingCalculator;
14
- }
15
- /**
16
- *
17
- * For more, see {@link https://medium.com/@jtreitz/the-algorithm-for-a-perfectly-balanced-photo-gallery-914c94a5d8af#.c09v4fn1e}. This is a javascript port of a python solution to the linear partition problem.
18
- * @param {Array} aspectRatios An array of numbers; in this case, aspect ratios.
19
- * @param {Number} rows Number of rows to distribute aspectRatios across.
20
- * @returns {Array} ans Returns an array of arrays. Each internal array represents a row.
21
- * @private
22
- */
23
- linearPartition(aspectRatios, rows) {
24
- let numWindows = aspectRatios.length;
25
- if (rows <= 0) {
26
- return [];
27
- }
28
- if (rows > numWindows) {
29
- return aspectRatios.map((x) => [x]);
30
- }
31
- // Make some two dimensional arrays filled with zeros
32
- const table = Array.from({ length: numWindows }, () => Array.from({ length: rows }, () => 0));
33
- const solution = Array.from({ length: numWindows - 1 }, () => Array.from({ length: rows - 1 }, () => 0));
34
- for (let i = 0; i < numWindows; i++) {
35
- const prevValue = i ? table[i - 1][0] : 0;
36
- table[i][0] = aspectRatios[i].aspectRatio + prevValue;
37
- }
38
- for (let j = 0; j < rows; j++) {
39
- table[0][j] = aspectRatios[0].aspectRatio;
40
- }
41
- const computeAspects = (i, j) => {
42
- let list_of_pairs = [];
43
- for (var x = 0; x < i; x++) {
44
- list_of_pairs = [];
45
- for (let y = 0; y < i; y++) {
46
- const max = Math.max(table[y][j - 1], table[i][0] - table[y][0]);
47
- list_of_pairs.push([max, y]);
48
- }
49
- }
50
- const m = list_of_pairs.reduce((previous, current) => (current[0] < previous[0] ? current : previous), [Infinity]);
51
- table[i][j] = m[0];
52
- solution[i - 1][j - 1] = m[1];
53
- };
54
- for (let i = 1; i < numWindows; i++) {
55
- for (let j = 1; j < rows; j++) {
56
- computeAspects(i, j);
57
- }
58
- }
59
- numWindows = numWindows - 1;
60
- rows = rows - 2;
61
- let ans = [];
62
- while (rows >= 0) {
63
- const sub_list = [];
64
- for (let i = solution[numWindows - 1][rows] + 1; i < numWindows + 1; i++) {
65
- sub_list.push(aspectRatios[i]);
66
- }
67
- ans = [sub_list].concat(ans);
68
- numWindows = solution[numWindows - 1][rows];
69
- rows--;
70
- }
71
- const beginning_list = [];
72
- for (let i = 0; i < numWindows + 1; i++) {
73
- beginning_list.push(aspectRatios[i]);
74
- }
75
- return [beginning_list].concat(ans);
76
- }
77
- /**
78
- * @private
79
- * @param {LauncherClient~windowDescriptor} win
80
- * @param {monitorDimensions} monitorDimensions
81
- * @returns {boolean} Whether window is on the current monitor.
82
- */
83
- windowOnMonitor(windowDescriptor, monitorDimensions) {
84
- // if right or left edge is within the window's bounds.
85
- return windowDescriptor.monitor.name === monitorDimensions.name;
86
- }
87
- /**
88
- * Takes a list of windows and returns only the ones that are subject to being auto-arranged
89
- *
90
- */
91
- getArrangableWindows(windowDescriptorList) {
92
- return windowDescriptorList.filter((obj) => {
93
- var _a;
94
- // filter result is true if window is auto-arrangeable; result is false if not arrangeable
95
- if (!obj) {
96
- Logger.system.warn("autoArrange.getWindowsOnMonitor: unexpected null object");
97
- return false;
98
- }
99
- else if (!this.DockingCalculator.getWindow(obj.name, false)) {
100
- Logger.system.warn("autoArrange.getWindowsOnMonitor: window unknown");
101
- return false;
102
- }
103
- else {
104
- return (_a = obj === null || obj === void 0 ? void 0 : obj.allowAutoArrange) !== null && _a !== void 0 ? _a : true;
105
- }
106
- });
107
- }
108
- // returns the windows on the monitor that will be auto arranged
109
- getWindowsOnMonitor(windowDescriptorList, monitorDimensions) {
110
- // first filter out windows that are not auto arrangeable
111
- const descriptors = this.getArrangableWindows(windowDescriptorList);
112
- const windowsOnMonitor = [];
113
- // only capture the arrangeable windows that are on the monitor
114
- for (let i = 0; i < descriptors.length; i++) {
115
- const descriptor = descriptors[i];
116
- const win = this.DockingCalculator.getWindow(descriptor.name);
117
- win.monitor = this.DockingCalculator.getMonitorForWindow(win);
118
- const noCachedPositionYet = !this.DockingCalculator.cachedPositions[win.monitor.name][win.name];
119
- const isOnMonitor = this.windowOnMonitor(win, monitorDimensions);
120
- if (noCachedPositionYet && isOnMonitor) {
121
- this.DockingCalculator.cachedPositions[win.monitor.name][win.name] = {
122
- left: win.left,
123
- right: win.right,
124
- bottom: win.bottom,
125
- top: win.top,
126
- height: win.height,
127
- width: win.width,
128
- };
129
- windowsOnMonitor.push({
130
- aspectRatio: win.width / win.height,
131
- top: win.top,
132
- bottom: win.bottom,
133
- left: win.left,
134
- right: win.right,
135
- dockableWindow: win,
136
- });
137
- }
138
- }
139
- // before arranging, sort window list based on location to influence final arrangement;
140
- // note the comparison function is not transitive, so results aren't always what expected;
141
- // however, they are usually intuitive when moving a single window.
142
- windowsOnMonitor.sort((a, b) => {
143
- if (a.top === b.top && a.left === b.left) {
144
- return 0; // a == b
145
- }
146
- else if (a.top < b.top && a.left < b.left) {
147
- return -1; // a < b
148
- }
149
- else if (a.top < b.bottom && a.left < b.left) {
150
- return -1; // a < b
151
- }
152
- else {
153
- return 1; // a > b
154
- }
155
- });
156
- windowsOnMonitor.forEach((finWin) => {
157
- const wrap = this.DockingCalculator.getWindow(finWin.dockableWindow.name);
158
- // only restore minimized windows
159
- if (wrap.win.windowState === BaseWindow.WINDOWSTATE.MINIMIZED_WAS_MAXIMIZED ||
160
- wrap.win.windowState === BaseWindow.WINDOWSTATE.MINIMIZED_WAS_NORMAL) {
161
- wrap.restore();
162
- wrap.bringToFront();
163
- }
164
- });
165
- return windowsOnMonitor;
166
- }
167
- /**
168
- * Get windowData for all windows in the active workspace
169
- */
170
- async getAllWindowsInActiveWorkspace() {
171
- const windowNamesFromActiveWorkspace = (await WorkspaceClient.getActiveWorkspace()).data.windows;
172
- return await WindowStorageManager.getManyStates("windowData", windowNamesFromActiveWorkspace);
173
- }
174
- /**
175
- * Retrieves information about the passed in StackedWindow
176
- * @param {*} win
177
- */
178
- async retrieveInformationForStackReconciliation(win) {
179
- if (!isStackedWindow(win) && !win.name.includes("StackedWindow")) {
180
- // Skip reconciliation logic if registering/deregistering window is not a stack
181
- return { stack: null, stackName: "undefined" };
182
- }
183
- const stackName = win.windowName || win.name;
184
- if (!stackName) {
185
- // The rest of this function will error if the passed in object is missing a name
186
- return { stack: null, stackName: "undefined" };
187
- }
188
- // Get all the windows in the active workspace
189
- const allWindowsInWorkspace = await this.getAllWindowsInActiveWorkspace();
190
- // From all windows, determine the parent stack window of this window
191
- const parentStack = allWindowsInWorkspace.find((windowData) => windowData.name === stackName);
192
- return {
193
- stack: parentStack,
194
- stackName,
195
- };
196
- }
197
- /**
198
- * Given a window, if its a StackedWindow, this will search the monitor's auto arrange cache for any children of the stack
199
- * and replace the cache representation with the StackedWindow
200
- * @param {*} win
201
- */
202
- async reconcileStackCreationWithAutoArrangedWindows(win) {
203
- const reconciliationInformation = await this.retrieveInformationForStackReconciliation(win);
204
- const { stack: parentStack, stackName } = reconciliationInformation;
205
- if (!parentStack)
206
- return;
207
- let stackReconciled = false;
208
- const children = parentStack.childWindowIdentifiers;
209
- if (!children)
210
- return;
211
- for (let i = 0; i < children.length; i++) {
212
- if (stackReconciled)
213
- break;
214
- const childWindowIdentifierName = children[i].windowName || children[i].name;
215
- const stackWindow = this.DockingCalculator.getWindow(stackName);
216
- // If stackWindow and the cachedPosition exists make the swap
217
- if (stackWindow && this.DockingCalculator.cachedPositions[stackWindow.monitor.name][childWindowIdentifierName]) {
218
- const newWindowBounds = fastClone(this.DockingCalculator.cachedPositions[stackWindow.monitor.name][childWindowIdentifierName]);
219
- delete this.DockingCalculator.cachedPositions[stackWindow.monitor.name][childWindowIdentifierName];
220
- this.DockingCalculator.cachedPositions[stackWindow.monitor.name][stackName] = newWindowBounds;
221
- stackReconciled = true;
222
- break;
223
- }
224
- }
225
- }
226
- /**
227
- * Given a window, if its a StackedWindow, this will search the monitor's auto arrange cache for the remaining window
228
- * in that stack and will replace the auto arrange cache with the remaining window
229
- * @param {*} win
230
- */
231
- async reconcileStackDeletionWithAutoArrangedWindows(win) {
232
- const self = this;
233
- const reconciliationInformation = await this.retrieveInformationForStackReconciliation(win);
234
- const { stack: parentStack, stackName } = reconciliationInformation;
235
- if (parentStack) {
236
- const children = parentStack.childWindowIdentifiers;
237
- if (children && children.length === 1) {
238
- // If there is only one child remaining this stack window will be destroyed. Replace
239
- // the auto arrange cache of the stacked window with the window that remains
240
- const childIdentifier = children[0];
241
- const childWindow = self.DockingCalculator.getWindow(childIdentifier.name);
242
- // If the cachedPosition exists make the swap
243
- if (self.DockingCalculator.cachedPositions[childWindow.monitor.name][stackName]) {
244
- const newWindowBounds = fastClone(self.DockingCalculator.cachedPositions[childWindow.monitor.name][stackName]);
245
- delete self.DockingCalculator.cachedPositions[childWindow.monitor.name][stackName];
246
- self.DockingCalculator.cachedPositions[childWindow.monitor.name][childIdentifier.name] = newWindowBounds;
247
- }
248
- }
249
- }
250
- }
251
- /**
252
- * boxesToArrange is a concatenation of windows and groups built into singular objects
253
- * so they can be treated as 'boxes to rearrange' wrather than individual windows
254
- *
255
- * groupBoxes is an array of 'windows' that are actually a group of windows.
256
- * Built into a single object that looks like a 'window' by the arrangement code
257
- */
258
- getBoxesToArrange({ windowsFromActiveWorkspaceFiltered, monitorDimensions, }) {
259
- let boxesToArrange = [];
260
- let groupBoxes = [];
261
- // get groups of windows
262
- const groupsFromWorkspace = this.DockingCalculator.getGroups();
263
- // get individual windows
264
- const windowsOnMonitor = this.getWindowsOnMonitor(windowsFromActiveWorkspaceFiltered, monitorDimensions);
265
- // Map through each individual window to determine if it is part of a group
266
- windowsOnMonitor.forEach((win) => {
267
- var _a;
268
- // Uses lodash to search through the workspaces to see if this win
269
- // is contained in the group's 'windows' array
270
- const currentWindowsGroupBoxName = findKey(groupsFromWorkspace, (thisGroup) => {
271
- if (!thisGroup.isMovable)
272
- return false;
273
- // The array returned by DockingCalculator.getMovableGroups and getGroups has a length of 0 with the windows attached to the object.
274
- // That doesn't seem ideal, but for now handle that case
275
- const result = Object.values(thisGroup.windows).findIndex((windowInsideGroup) => windowInsideGroup.name === win.dockableWindow.name);
276
- //findIndex returns a -1 for false which does not work as a falsey value. Since findKey expects a bool we must translate the result.
277
- return result !== -1;
278
- });
279
- // See if a 'win' has already been built for this group. Retrieve it if so, otherwise
280
- // one will be created.
281
- const groupBox = groupBoxes.length > 0
282
- ? groupBoxes.find((thisGroupBox) => thisGroupBox.name === currentWindowsGroupBoxName)
283
- : null;
284
- if (!currentWindowsGroupBoxName) {
285
- // There is no group that this win belongs to, add it to the final array
286
- boxesToArrange.push(win);
287
- }
288
- else if (groupBox) {
289
- // There is already a 'win' for this group in windowsGroups, we need to
290
- // average the win aspect ratios. This may have to change
291
- const groupIndex = groupBoxes.length > 0
292
- ? groupBoxes.findIndex((thisGroupBox) => thisGroupBox.name === groupsFromWorkspace[currentWindowsGroupBoxName].name)
293
- : null;
294
- groupBox.aspectRatio =
295
- groupsFromWorkspace[currentWindowsGroupBoxName].width /
296
- groupsFromWorkspace[currentWindowsGroupBoxName].height;
297
- // Add the new win to the groups windows array
298
- (_a = groupBox.windows) === null || _a === void 0 ? void 0 : _a.push(win);
299
- //Both -1 and null are possible failure options when defining group index depending on which ternary statement was hit
300
- if (groupIndex !== null && groupIndex !== -1) {
301
- groupBoxes.splice(groupIndex, 1);
302
- groupBoxes.push(groupBox);
303
- }
304
- }
305
- else {
306
- // There is no 'win' for this group. Creating one
307
- const newGroupBox = {
308
- aspectRatio: win.aspectRatio,
309
- bottom: groupsFromWorkspace[currentWindowsGroupBoxName].bottom,
310
- left: groupsFromWorkspace[currentWindowsGroupBoxName].left,
311
- name: groupsFromWorkspace[currentWindowsGroupBoxName].name,
312
- right: groupsFromWorkspace[currentWindowsGroupBoxName].right,
313
- top: groupsFromWorkspace[currentWindowsGroupBoxName].top,
314
- windows: [win],
315
- isGroup: true,
316
- dockableWindow: win.dockableWindow,
317
- };
318
- groupBoxes.push(newGroupBox);
319
- }
320
- });
321
- // Add the array of groupWindows to the array already containing loner windows
322
- return boxesToArrange.concat(groupBoxes);
323
- }
324
- animateWindow(request) {
325
- return new Promise((resolve) => {
326
- const { height, width, top, left, dockableWin } = request;
327
- const bounds = {
328
- height,
329
- width,
330
- top,
331
- left,
332
- };
333
- dockableWin.animatePositionAndHeight(bounds, () => {
334
- this.DockingCalculator.buildSnapRelationships(dockableWin);
335
- dockableWin.win.stopMove();
336
- RouterClient.transmit(`DockingService.${dockableWin.name}`, {
337
- command: "saveWindowLocation",
338
- bounds,
339
- });
340
- resolve();
341
- });
342
- });
343
- }
344
- /**
345
- * Arranges all windows in the current workspace that are visible on the current monitor. For more about the algorithm used to distribute windows across rows, see {@link https://medium.com/@jtreitz/the-algorithm-for-a-perfectly-balanced-photo-gallery-914c94a5d8af#.c09v4fn1e this post}. The algorithm chooses the number of rows by taking the square root of the number of windows on the monitor and rounding down. 3 windows results in 1 row. 4 windows results in 2 rows. 8 windows will be arranged across 2 rows. 9 windows will be arranged across 3 rows. Other breakpoints are 16, 25, and 36.
346
- * @param {Object} monitorDimensions Monitor dimensions of a given monitor. This value is passed
347
- * in from {@link util#getMonitorInfo}.
348
- */
349
- async arrange(monitorDimensions) {
350
- if (this.isArranged[monitorDimensions.name]) {
351
- /*
352
- 11/7/19 JC - Previously this was toggling the status (!<currentStatus>). If we're reverting,
353
- the status will always be false, if we're not reverting (below) then the status will be true.
354
- Toggling leads to potential for internal state mismatch
355
- */
356
- this.isArranged[monitorDimensions.name] = false;
357
- // Reverts windows and sends statusUpdate.
358
- this.revertArrangedWindows(monitorDimensions);
359
- this.DockingCalculator.sendAutoArrangeStatusUpdate();
360
- return;
361
- }
362
- this.isArranged[monitorDimensions.name] = true;
363
- this.DockingCalculator.sendAutoArrangeStatusUpdate();
364
- // Window list used to come from Launcher's activeWindow list.
365
- // The workspace should be the one reporting the windows in a workspace
366
- // that need to be auto arranged.
367
- // Workspace returns a list of windows, including StackedWindows.
368
- // This will have duplicates as each window in stack will also appear as
369
- // an individual window in the list
370
- const windowsFromActiveWorkspace = await this.getAllWindowsInActiveWorkspace();
371
- console.log(windowsFromActiveWorkspace);
372
- const windows = Object.values(windowsFromActiveWorkspace);
373
- // Keep track of a list of windows which are children to another window
374
- const childrenWindows = windows.flatMap((win) => {
375
- var _a, _b;
376
- if (isStackedWindow(win)) {
377
- return (_b = (_a = win === null || win === void 0 ? void 0 : win.childWindowIdentifiers) === null || _a === void 0 ? void 0 : _a.map((childWindowIdent) => childWindowIdent.name)) !== null && _b !== void 0 ? _b : [];
378
- }
379
- return [];
380
- });
381
- // All windows which are either a stacked or standalone window (exclude children of stacked windows)
382
- const windowsFromActiveWorkspaceFiltered = windows.filter((win) => isStackedWindow(win) || !childrenWindows.includes(win.name));
383
- const boxesToArrange = this.getBoxesToArrange({ windowsFromActiveWorkspaceFiltered, monitorDimensions });
384
- const resizeQueue = [];
385
- // Number of rows is determined by the square root of the number of windows on the monitor.
386
- // This gives us a preference for N x N grids. If you have 9 windows, you get 3 rows.
387
- // If the aspect ratios are set correctly, you get 3x3.
388
- const rowGroups = this.linearPartition(boxesToArrange, Math.floor(Math.sqrt(boxesToArrange.length)));
389
- let rowHeight = Math.floor(monitorDimensions.height / rowGroups.length);
390
- // Iterates through the properly partitioned windows and queues up the movements.
391
- rowGroups.forEach(async (windowsInGroup, groupIndex) => {
392
- const windowTop = Math.round(monitorDimensions.top + groupIndex * rowHeight);
393
- const rowWidth = Math.round(monitorDimensions.width / windowsInGroup.length);
394
- // if we're on the last row and the number of rows is not divisible by the monitor's height,
395
- // we need to add the rounding error to the height so that there isn't a gap
396
- // between the taskbar and the bottom edge of our last row.
397
- const rowHeightTotal = rowHeight * rowGroups.length;
398
- if (groupIndex === rowGroups.length - 1 && rowHeightTotal !== monitorDimensions.height) {
399
- // since we round down the initial height calculation, rowHeightTotal
400
- // will always be less than the monitor's height.
401
- rowHeight = rowHeight + (monitorDimensions.height - rowHeightTotal);
402
- }
403
- // Now that the position is set, queue up the movement.
404
- windowsInGroup.forEach((windowData, windex) => {
405
- var _a;
406
- // The 'windows' that are being looped through are are sometimes individual windows
407
- // and other times they are a group of windows. If its a group, we need to loop
408
- // through the group and add each window in the group. Fitting it into the space allotted for a single window
409
- if (windowData.isGroup) {
410
- // in this case dockableWin is actually a dockableGroup
411
- const left = rowWidth * windex + monitorDimensions.left;
412
- const right = left + rowWidth;
413
- const groupName = (_a = windowData.name) !== null && _a !== void 0 ? _a : "";
414
- const group = this.DockingCalculator.getGroup(groupName);
415
- const bounds = {
416
- top: windowTop,
417
- left,
418
- right,
419
- height: rowHeight,
420
- width: rowWidth,
421
- triggeredByAutoArrange: false,
422
- };
423
- // TriggeredByAutoArrange will prevent the dockingService from deleting the windows
424
- // cahcedPositions. We want to maintain these so that when we revert, grouped windows
425
- // return to where they expect
426
- group.moveTo({
427
- anchor: windowData.dockableWindow,
428
- top: windowTop,
429
- left,
430
- height: rowHeight,
431
- triggeredByAutoArrange: true,
432
- }, () => {
433
- bounds.triggeredByAutoArrange = true;
434
- // We scale the group to the entire monitor. The 'anchor' here is basically "from what side did it get resized?".
435
- // Imagine the user grabbing the bottom right of the group and stretching it to fill the entire monitor. That's essentially what we're doing here.
436
- group.scale(bounds, "bottomRight", this.DockingCalculator);
437
- });
438
- }
439
- else {
440
- resizeQueue.push({
441
- dockableWin: this.DockingCalculator.getWindow(windowData.dockableWindow.name),
442
- height: rowHeight,
443
- width: rowWidth,
444
- top: windowTop,
445
- left: rowWidth * windex + monitorDimensions.left,
446
- });
447
- }
448
- });
449
- for (let i = 0; i < resizeQueue.length; i++) {
450
- await this.animateWindow(resizeQueue[i]);
451
- }
452
- // animate each window. when they're all done, call the callback, form snapping relationships, and leave this function.
453
- if (resizeQueue.length) {
454
- this.DockingCalculator.formGroup(resizeQueue[0].dockableWin.name, {
455
- isMovable: false,
456
- });
457
- this.isArranged[monitorDimensions.name] = true;
458
- // Workaround to show a grouping button if no one window hasn't been grouped.
459
- // Emulates actions after manual snapping.
460
- if (boxesToArrange.length === windows.length) {
461
- const monitorForWindow = this.DockingCalculator.getMonitorForWindow(resizeQueue[0].dockableWin);
462
- this.DockingCalculator.onMoveComplete({ name: resizeQueue[0].dockableWin.name, monitor: monitorForWindow }, true);
463
- }
464
- }
465
- });
466
- }
467
- /**
468
- * Returns windows to where they were before an auto-arrange occurred.
469
- */
470
- revertArrangedWindows(monitorDimensions) {
471
- const self = this;
472
- const windowObjectsToRevert = self.DockingCalculator.cachedPositions[monitorDimensions.name];
473
- const namesOfWindowsToRevert = Object.keys(windowObjectsToRevert);
474
- function revertWindow(windowName, done) {
475
- const bounds = windowObjectsToRevert[windowName];
476
- const dockableWindow = self.DockingCalculator.getWindow(windowName);
477
- delete windowObjectsToRevert[windowName];
478
- dockableWindow.animatePositionAndHeight({
479
- height: bounds.height,
480
- width: bounds.width,
481
- top: bounds.top,
482
- left: bounds.left,
483
- right: bounds.right,
484
- duration: 250,
485
- }, () => {
486
- RouterClient.transmit(`DockingService.${dockableWindow.name}`, {
487
- command: "saveWindowLocation",
488
- bounds,
489
- });
490
- done();
491
- });
492
- }
493
- function onLocationReverted() {
494
- namesOfWindowsToRevert.forEach((windowName) => {
495
- const dockableWindow = self.DockingCalculator.getWindow(windowName);
496
- self.DockingCalculator.buildSnapRelationships(dockableWindow);
497
- self.DockingCalculator.checkGroupMembership(dockableWindow);
498
- dockableWindow.win.stopMove();
499
- delete self.DockingCalculator.cachedPositions[monitorDimensions.name][windowName];
500
- });
501
- self.DockingCalculator.updateGroupData();
502
- Logger.system.debug("Publishing Group Update: Revert Autoarrange");
503
- self.DockingCalculator.publishGroupUpdate();
504
- }
505
- async.each(namesOfWindowsToRevert, revertWindow, onLocationReverted);
506
- self.DockingCalculator.sendAutoArrangeStatusUpdate();
507
- }
508
- }
509
- export default AutoArrange;
510
- //# sourceMappingURL=autoArrange.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"autoArrange.js","sourceRoot":"","sources":["../../../../../../src/platform/services/window/MultiWindowFeatures/autoArrange.ts"],"names":[],"mappings":"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"}