@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
@@ -0,0 +1,453 @@
1
+ /**
2
+ * There are several UI aspects brought together in the tabbing implementation.
3
+ *
4
+ * 1) Rendering tab collections. A redux store in the window service provides the single source of truth for tab rendering. Each
5
+ * WindowTitleBar subscribes to that store via remote-redux. Activity (such as clicking on a tab) is then published back to the
6
+ * remote store via redux dispatch actions. There are no client side effects that use the FSBL library or FinsembleWindow.
7
+ *
8
+ * 2) Tab dragging - this includes re-ordering of tabs, moving tabs between windows, removing tabs from collections and using the tab
9
+ * drag to initiate tiling. Tab dragging uses the `dragging` section of the remote-redux store to coordinate actions between windows.
10
+ * The algorithm does not affect the permanent store until the dragging action is complete (when onDragEnd is triggered). The `Tabs` react
11
+ * component temporarily removes the tab that is being dragged. `Tabs` react components in any window will then create "gaps" in the tab
12
+ * collection to indicate where the tab will be relocated. Gaps are created with a CSS transform that shifts tabs to the right to make
13
+ * the gap. Note that extra space is added to the end of the tab collection to balance the space lost when the tab was removed (transform
14
+ * space is not accounted for by the browser).
15
+ *
16
+ * 3) scrolling - A tab collection can be scrolled either with the mousewheel or by clicking on scroll buttons (chevrons). The `useScroll()`
17
+ * hook performs all the calculations necessary. The entire tab collection is then transformed to the left or right to emulate a scrolling
18
+ * action.
19
+ *
20
+ * 4) Title editing - Double clicking on a title allows it to be edited by the user. When in editing mode, the tab is rendered with an
21
+ * input field. Enter or Escape can be used to complete the edit.
22
+ */
23
+ import React, { useContext, useEffect, useRef, useState } from "react";
24
+ import { useDispatch, useSelector } from "react-redux";
25
+ import { actions } from "../../../platform/services/window/modules/actions";
26
+ import { WindowNameContext } from "./WindowTitleBarContext";
27
+ import { TabTitle } from "./TabTitle";
28
+ import { useDragRegion } from "../../hooks/useDragRegion";
29
+ import { useMaximize } from "./useMaximize";
30
+ import { TitleEdit } from "./TitleEdit";
31
+ const TabClose = ({ tabWindowName }) => {
32
+ const dispatch = useDispatch();
33
+ const closeThisTab = (e) => {
34
+ // Stop propagation to prevent the tab from being promoted while we're actually closing it
35
+ e.stopPropagation();
36
+ dispatch(actions.closeTab({
37
+ targetWindowName: tabWindowName,
38
+ }));
39
+ };
40
+ return (React.createElement("div", { className: "fsbl-tab-close", onClick: closeThisTab },
41
+ React.createElement("i", { className: "ff-close" })));
42
+ };
43
+ const TabInnards = ({ editing, title, tabWindowName, cancelEditing, saveTitle, }) => {
44
+ if (editing)
45
+ return React.createElement(TitleEdit, { title: title, cancelEditing: cancelEditing, saveTitle: saveTitle });
46
+ return (React.createElement(React.Fragment, null,
47
+ React.createElement(TabTitle, { tabWindowName: tabWindowName }),
48
+ React.createElement(TabClose, { tabWindowName: tabWindowName })));
49
+ };
50
+ /**
51
+ * Sets a custom drag image that is a standard size and semi-opaque. This makes it easier
52
+ * to see the tabs and gap below the cursor.
53
+ */
54
+ const setDragImage = (transfer) => {
55
+ const width = 60;
56
+ const height = 20;
57
+ const border = 4;
58
+ const light = "rgba(255,255,255,.5)";
59
+ const dark = "rgba(0,0,0,.5)";
60
+ const canvas = document.createElement("canvas");
61
+ canvas.width = width;
62
+ canvas.height = height;
63
+ const ctx = canvas.getContext("2d");
64
+ for (let x = 0; x < width / 2; x++) {
65
+ for (let y = 0; y < height / 2; y++) {
66
+ ctx.fillStyle = (x + y) % 2 ? light : dark;
67
+ ctx.fillRect(x * 2, y * 2, 2, 2);
68
+ }
69
+ }
70
+ ctx.clearRect(border, border, width - border * 2, height - border * 2);
71
+ // Add to browser body and then immediately remove in the timeout
72
+ // Position it way off the edge of the screen
73
+ Object.assign(canvas.style, {
74
+ position: "absolute",
75
+ left: "-4000px",
76
+ top: "-4000px",
77
+ width: `${width}px`,
78
+ height: `${height}}px`,
79
+ });
80
+ document.body.appendChild(canvas);
81
+ transfer.setDragImage(canvas, width / 2, height / 2);
82
+ setTimeout(() => {
83
+ canvas.remove();
84
+ });
85
+ };
86
+ /**
87
+ * Encapsulates logic relating to dragging an individual tab. This interacts with the remote redux store, turning dragging on
88
+ * and off when dragstart and dragend events are triggered on the tab.
89
+ */
90
+ const useDragTab = ({ draggable, tabWindowName, windowName, index, domRef, }) => {
91
+ const dispatch = useDispatch();
92
+ const state = useSelector((currentState) => currentState);
93
+ const onDragStart = (e) => {
94
+ var _a, _b, _c, _d;
95
+ if (!draggable || !windowName)
96
+ return;
97
+ dispatch(actions.setDraggingStatus({
98
+ windowNameBeingDragged: tabWindowName,
99
+ inWindowName: windowName,
100
+ temporaryPosition: index,
101
+ tabWidth: (_c = (_b = (_a = domRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect()) === null || _b === void 0 ? void 0 : _b.width) !== null && _c !== void 0 ? _c : 60,
102
+ }));
103
+ // Not really used, but good housekeeping to have some data set
104
+ e.dataTransfer.setData("application/windowName", tabWindowName);
105
+ // Eliminates the default "+" that appears on the cursor
106
+ e.dataTransfer.effectAllowed = "move";
107
+ // Override the auto-generated image
108
+ setDragImage(e.dataTransfer);
109
+ /**
110
+ * We can't use React's onDragEnd event because we're temporarily removing our tab during the dragging. When
111
+ * we remove the tab, React loses its linkage to the orphaned DOM node. Instead, we manually set an HTML
112
+ * "dragend" event to capture the end of the drag action (and we're careful to also remove that event handler)
113
+ * after it triggers.
114
+ */
115
+ const onDragEnd = (dragEvent) => {
116
+ var _a;
117
+ (_a = dragEvent.currentTarget) === null || _a === void 0 ? void 0 : _a.removeEventListener("dragend", onDragEnd);
118
+ dispatch(actions.stopDragging());
119
+ };
120
+ (_d = domRef.current) === null || _d === void 0 ? void 0 : _d.addEventListener("dragend", onDragEnd);
121
+ };
122
+ const onDragOver = (e) => {
123
+ var _a;
124
+ e.preventDefault();
125
+ if (!draggable || !windowName || !domRef || !state.dragging)
126
+ return;
127
+ const rect = (_a = domRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
128
+ if (!rect)
129
+ return;
130
+ const midpoint = rect.x + rect.width / 2;
131
+ // If the mouse is over the left side of the tab then a gap should appear to the left of the tab. So if this tab is in position
132
+ // zero then the gap should take over that position. But if the mouse is over the right side of the tab then the gap should be
133
+ // to the right of this tab. So if this tab is in position zero then the gap should be in position 1.
134
+ const gapPosition = e.clientX < midpoint ? index : index + 1;
135
+ // Only dispatch if the position has changed. onDragOver fires continually as you're dragging (60 times per second) so we have
136
+ // to be careful not to do too much work in each cycle and not to trigger renders unless necessary
137
+ if (gapPosition !== state.dragging.temporaryPosition) {
138
+ dispatch(actions.setDraggingStatus(Object.assign(Object.assign({}, state.dragging), { inWindowName: windowName, temporaryPosition: gapPosition })));
139
+ }
140
+ };
141
+ return {
142
+ onDragStart,
143
+ onDragOver,
144
+ };
145
+ };
146
+ /**
147
+ * This hook encapsulates logic related to editing titles. Title editing is a local operation. It does
148
+ * not interact with the remote redux store until the title has been fully edited. The actual editing
149
+ * occurs in the TitleEdit component.
150
+ */
151
+ const useEditTab = ({ allowEdit }) => {
152
+ const [editing, setEditing] = useState(false);
153
+ const dispatch = useDispatch();
154
+ // Only allow editing if the tab is wide enough
155
+ const maybeEditTitle = () => {
156
+ if (!allowEdit)
157
+ return;
158
+ setEditing(true);
159
+ };
160
+ const cancelEditing = () => {
161
+ setEditing(false);
162
+ };
163
+ const saveTitle = (title) => {
164
+ dispatch(actions.setUserDefinedTitle({
165
+ title,
166
+ }));
167
+ setEditing(false);
168
+ };
169
+ return {
170
+ maybeEditTitle,
171
+ cancelEditing,
172
+ saveTitle,
173
+ editing,
174
+ };
175
+ };
176
+ /**
177
+ * An individual tab. This handles dragging and clicking events.
178
+ *
179
+ * `index` is the tab's position in the tab list
180
+ * `gap` indicates a gap section for a possible drop
181
+ * `transform` the CSS transform that should be applied - which will create a gap when dragging tabs around
182
+ */
183
+ const Tab = ({ tabWindowName, index, transform, }) => {
184
+ var _a, _b, _c, _d;
185
+ const dispatch = useDispatch();
186
+ const domRef = useRef(null);
187
+ const windowName = useContext(WindowNameContext);
188
+ const state = useSelector((currentState) => currentState);
189
+ const myState = state.windows[tabWindowName];
190
+ const title = (_a = myState === null || myState === void 0 ? void 0 : myState.title) !== null && _a !== void 0 ? _a : null;
191
+ const isThin = !!((_b = domRef === null || domRef === void 0 ? void 0 : domRef.current) === null || _b === void 0 ? void 0 : _b.clientWidth) && !state.dragging && ((_c = domRef === null || domRef === void 0 ? void 0 : domRef.current) === null || _c === void 0 ? void 0 : _c.clientWidth) < 80;
192
+ const isPromoted = (myState === null || myState === void 0 ? void 0 : myState.tabCollectionId)
193
+ ? ((_d = state.tabCollections[myState.tabCollectionId]) === null || _d === void 0 ? void 0 : _d.promotedWindowName) === tabWindowName
194
+ : true;
195
+ // Only show the close button on wide tabs. On thin tabs, only show the close button if it is the current promoted tab.
196
+ const showCloseButton = !state.dragging && (!isThin || isPromoted);
197
+ const { editing, maybeEditTitle, cancelEditing, saveTitle } = useEditTab({
198
+ allowEdit: (myState === null || myState === void 0 ? void 0 : myState.editable) && isPromoted,
199
+ });
200
+ const draggable = !!windowName && !editing;
201
+ const { onDragStart, onDragOver } = useDragTab({
202
+ draggable,
203
+ tabWindowName,
204
+ windowName,
205
+ index,
206
+ domRef,
207
+ });
208
+ const promoteTab = () => {
209
+ dispatch(actions.promoteTab({
210
+ targetWindowName: tabWindowName,
211
+ }));
212
+ };
213
+ const style = transform
214
+ ? {
215
+ transform,
216
+ }
217
+ : undefined;
218
+ const className = isPromoted && !editing && !state.dragging ? "fsbl-tab fsbl-active-tab" : "fsbl-tab";
219
+ return (React.createElement("div", { ref: domRef, draggable: !editing, onDragStart: onDragStart, onDragOver: onDragOver, onDoubleClick: maybeEditTitle, onClick: promoteTab, className: className, style: style, title: title !== null && title !== void 0 ? title : "", "data-show-close-button": showCloseButton },
220
+ React.createElement(TabInnards, { title: title, tabWindowName: tabWindowName, editing: editing, cancelEditing: cancelEditing, saveTitle: saveTitle })));
221
+ };
222
+ const domNotReady = {
223
+ scrollLeft: 0,
224
+ scrollWidth: 0,
225
+ offsetWidth: 0,
226
+ clientWidth: 0,
227
+ };
228
+ /**
229
+ * Scroll algorithm:
230
+ *
231
+ * Scrolling is accomplished using the "translateX" CSS transform. This transform shifts the entire fsbl-tabs-container to the right
232
+ * or to the left, creating the illusion of scrolling. The "transition" CSS provides an animation. This is the primary reason for using
233
+ * this technique (rather than adjusting scrollBy).
234
+ *
235
+ * `scrollAmount` is the distance that the dom element is shifted from its normal position. Note that a transform moves left in order to
236
+ * give the illusion of scrolling to the right. Thus the transform is always the negative inverse of `scrollAmount`.
237
+ *
238
+ * The transition animation is applied by default, taking effect when the scroll buttons (chevrons) are pressed. The transition is
239
+ * disabled when a mousewheel event is received. Mousewheel events provide a precise pixel amount, incorporating their own heuristics
240
+ * for easing (such as touch pad gestures, which get translated into a stream of mousewheel events). Thus, the transition is disabled for
241
+ * 500 milliseconds whenever a mousewheel event is received.
242
+ */
243
+ const useScroll = () => {
244
+ var _a;
245
+ const [scrollAmount, setScrollAmountPrivate] = useState(0);
246
+ const scrollAmountRef = useRef(scrollAmount);
247
+ const [transition, setTransition] = useState(true);
248
+ const [transitionTimeout, setTransitionTimeout] = useState(null);
249
+ const tabContainerRef = useRef(null);
250
+ const { offsetWidth, scrollWidth } = (_a = tabContainerRef.current) !== null && _a !== void 0 ? _a : domNotReady;
251
+ const setScrollAmount = (newScrollAmount) => {
252
+ scrollAmountRef.current = newScrollAmount;
253
+ setScrollAmountPrivate(newScrollAmount);
254
+ };
255
+ const onWheel = (e) => {
256
+ if (e.deltaY < 0) {
257
+ setScrollAmount(Math.max(0, scrollAmount + e.deltaY));
258
+ }
259
+ else {
260
+ setScrollAmount(Math.min(scrollWidth - offsetWidth, scrollAmount + e.deltaY));
261
+ }
262
+ setTransition(false);
263
+ if (transitionTimeout)
264
+ clearTimeout(transitionTimeout);
265
+ setTransitionTimeout(setTimeout(() => {
266
+ setTransition(true);
267
+ }, 500));
268
+ };
269
+ const lessScroll = () => {
270
+ setScrollAmount(Math.max(0, scrollAmount - 200));
271
+ };
272
+ const moreScroll = () => {
273
+ setScrollAmount(Math.min(scrollWidth - offsetWidth, scrollAmount + 200));
274
+ };
275
+ const enableLeftScrollButton = scrollAmount > 0;
276
+ // It's possible for scrollLeft to be a half pixel. Adding "1" ensures that it's over the scrollWidth when all the way to the right.
277
+ const enableRightScrollButton = scrollAmount + offsetWidth + 1 < scrollWidth;
278
+ useEffect(() => {
279
+ window.addEventListener("resize", () => {
280
+ var _a;
281
+ const { offsetWidth: updatedOffsetWidth, scrollWidth: updatedScrollWidth } = (_a = tabContainerRef.current) !== null && _a !== void 0 ? _a : domNotReady;
282
+ setScrollAmount(Math.min(updatedScrollWidth - updatedOffsetWidth, scrollAmountRef.current));
283
+ });
284
+ }, []);
285
+ const transforms = {
286
+ transform: `translateX(-${scrollAmount}px)`,
287
+ transition: transition ? `1s all ease` : `none`,
288
+ };
289
+ return {
290
+ lessScroll,
291
+ moreScroll,
292
+ enableLeftScrollButton,
293
+ enableRightScrollButton,
294
+ transforms,
295
+ onWheel,
296
+ tabContainerRef,
297
+ };
298
+ };
299
+ /**
300
+ * Encapsulation of the scrollable section of the tab region, with chevrons.
301
+ *
302
+ * Pass the tabs in as children.
303
+ */
304
+ const Scrollable = ({ children, noScroll }) => {
305
+ const { lessScroll, moreScroll, enableLeftScrollButton, enableRightScrollButton, onWheel, transforms, tabContainerRef, } = useScroll();
306
+ const showScrollButtons = !noScroll && (enableLeftScrollButton || enableRightScrollButton);
307
+ return (React.createElement(React.Fragment, null,
308
+ showScrollButtons && (React.createElement("button", { className: "fsbl-tab-scroll-button", onClick: lessScroll, disabled: !enableLeftScrollButton }, "<")),
309
+ React.createElement("div", { className: "fsbl-tabs-scroll-surround", onWheel: onWheel },
310
+ React.createElement("div", { className: "fsbl-tabs-container", ref: tabContainerRef, style: transforms }, children)),
311
+ showScrollButtons && (React.createElement("button", { className: "fsbl-tab-scroll-button", onClick: moreScroll, disabled: !enableRightScrollButton }, ">"))));
312
+ };
313
+ const createTab = ({ transform, tabWindowName, index, }) => React.createElement(Tab, { tabWindowName: tabWindowName, index: index, transform: transform, key: tabWindowName });
314
+ /**
315
+ * The collection of tabs
316
+ */
317
+ const Tabs = ({ useDOMBasedMovement }) => {
318
+ var _a, _b, _c, _d, _e;
319
+ const dispatch = useDispatch();
320
+ const domRef = useRef(null);
321
+ const state = useSelector((currentState) => currentState);
322
+ const windowName = useContext(WindowNameContext);
323
+ const myState = windowName ? state.windows[windowName] : null;
324
+ const { onMouseDown, onMouseMove } = useDragRegion((_a = myState === null || myState === void 0 ? void 0 : myState.maximized) !== null && _a !== void 0 ? _a : false);
325
+ const { toggle: toggleMaximize } = useMaximize();
326
+ const tabCollectionId = (_b = myState === null || myState === void 0 ? void 0 : myState.tabCollectionId) !== null && _b !== void 0 ? _b : null;
327
+ const defaultTabs = [windowName !== null && windowName !== void 0 ? windowName : ""];
328
+ const tabs = tabCollectionId ? (_c = state.tabCollections[tabCollectionId]) === null || _c === void 0 ? void 0 : _c.tabs : defaultTabs !== null && defaultTabs !== void 0 ? defaultTabs : defaultTabs;
329
+ const gapPosition = (_e = (_d = state.dragging) === null || _d === void 0 ? void 0 : _d.temporaryPosition) !== null && _e !== void 0 ? _e : null;
330
+ const gapWidth = 60; // state.dragging?.tabWidth contains the actual width of the tab but 60px provides a better UX
331
+ // If a window is being dragged then filter it out so that it isn't displayed, then convert from string to object and calculate the transform size to create a gap
332
+ const tabsWithTransform = tabs
333
+ .filter((tabWindowName) => { var _a; return tabWindowName !== ((_a = state.dragging) === null || _a === void 0 ? void 0 : _a.windowNameBeingDragged); })
334
+ .map((tabWindowName, index) => {
335
+ var _a;
336
+ return {
337
+ transform: ((_a = state.dragging) === null || _a === void 0 ? void 0 : _a.inWindowName) === windowName && gapPosition !== null && index >= gapPosition
338
+ ? `translateX(${gapWidth}px)`
339
+ : null,
340
+ tabWindowName,
341
+ index,
342
+ };
343
+ });
344
+ /**
345
+ * When we remove the tab that is being dragged it causes the tab collection space to shrink, since it thinks there
346
+ * is one less element. So we add an equivalent amount of space to the end of the tab collection to prevent the
347
+ * shrinkage, providing UX feedback to the end user when the tab is inserted.
348
+ *
349
+ * We "display" the gap space only when the tab is going to be dropped into that space (when the tab is going to be)
350
+ * dropped into the final position.
351
+ */
352
+ const maybeAddGapSpace = () => {
353
+ var _a, _b;
354
+ const style = {
355
+ width: `${(_a = state.dragging) === null || _a === void 0 ? void 0 : _a.tabWidth}px`,
356
+ };
357
+ if (((_b = state.dragging) === null || _b === void 0 ? void 0 : _b.inWindowName) !== windowName)
358
+ return;
359
+ // Only "display" the gap if the drag action is occurring in our window and the gap should be in the final position
360
+ const dataDisplay = gapPosition === tabsWithTransform.length;
361
+ if (gapPosition !== null)
362
+ return React.createElement("div", { className: "fsbl-tab-gap", style: style, "data-display": dataDisplay });
363
+ return null;
364
+ };
365
+ /**
366
+ * This code is disabled due to a bug in Chromium on Windows. dragLeave events do not fire if
367
+ * the draggable object is moved too quickly out of the window. To work around this problem the
368
+ * docking system watches mouse movement during drag operations and detects when the mouse has
369
+ * moved outside of the _calculated_ tab area. This code is in dockingMain.ts.
370
+ *
371
+ * Normal comment for when this function can be used again:
372
+ * dragleave triggers when the dragged element leaves a valid drop target. This can therefore
373
+ * trigger as the mouse moves from tab to tab. We only want to catch the situation where the
374
+ * mouse leaves the tab area entirely, so we do some mouse location calculations to determine
375
+ * this.
376
+ *
377
+ * If we have definitely left the tabbing region then we set tabPosition to null in order
378
+ * that any gaps be closed.
379
+ */
380
+ const onDragLeave = (e) => {
381
+ /*
382
+ if (!state.dragging) return;
383
+ const rect = domRef.current?.getBoundingClientRect();
384
+ if (!rect) return;
385
+ if (e.clientX > rect.left && e.clientX < rect.right && e.clientY > rect.top && e.clientY < rect.bottom) return;
386
+ dispatch(
387
+ actions.setDraggingStatus({
388
+ ...state.dragging,
389
+ temporaryPosition: null,
390
+ inWindowName: null,
391
+ })
392
+ );*/
393
+ };
394
+ /**
395
+ * If the user enters the tab collection space from the outside then the temporary position will probably be null.
396
+ * We immediately set it to the end position of our current collection in order to indicate that it can now be
397
+ * dropped into this tab collection.
398
+ */
399
+ const onDragOver = () => {
400
+ var _a;
401
+ if (!state.dragging)
402
+ return;
403
+ if (!windowName)
404
+ return;
405
+ if (((_a = state.dragging) === null || _a === void 0 ? void 0 : _a.temporaryPosition) === null) {
406
+ dispatch(actions.setDraggingStatus(Object.assign(Object.assign({}, state.dragging), { temporaryPosition: tabsWithTransform.length, inWindowName: windowName })));
407
+ }
408
+ };
409
+ /**
410
+ * When dragging a tab over the right side of the WindowTitleBar, set the
411
+ * drag position to the last position. Without this, sometimes the gap gets
412
+ * stuck in the second to last position.
413
+ */
414
+ const dragOverDragRegion = () => {
415
+ var _a;
416
+ if (!state.dragging)
417
+ return;
418
+ if (!windowName)
419
+ return;
420
+ if (((_a = state.dragging) === null || _a === void 0 ? void 0 : _a.temporaryPosition) !== tabsWithTransform.length) {
421
+ dispatch(actions.setDraggingStatus(Object.assign(Object.assign({}, state.dragging), { temporaryPosition: tabsWithTransform.length, inWindowName: windowName })));
422
+ }
423
+ };
424
+ const className = useDOMBasedMovement
425
+ ? "fsbl-guaranteed-drag-area fsbl-app-region"
426
+ : "fsbl-guaranteed-drag-area fsbl-app-region fsbl-no-dom-movement";
427
+ return (React.createElement("div", { className: "fsbl-tab-region-tabbing-enabled", onDragLeave: onDragLeave, onDragOver: onDragOver, ref: domRef },
428
+ React.createElement(Scrollable, { noScroll: !!state.dragging },
429
+ tabsWithTransform.map((tab) => createTab(tab)),
430
+ maybeAddGapSpace()),
431
+ React.createElement("div", { className: className, onMouseDown: onMouseDown, onMouseMove: onMouseMove, onDoubleClick: toggleMaximize, onDragOver: dragOverDragRegion })));
432
+ };
433
+ /**
434
+ * The "Tab Region", which is the area where tabs appear but also where just the title appears
435
+ * if tabbing is disabled.
436
+ */
437
+ export const TabRegion = () => {
438
+ var _a, _b;
439
+ const windowName = useContext(WindowNameContext);
440
+ const state = useSelector((currentState) => currentState);
441
+ const myState = windowName ? state.windows[windowName] : null;
442
+ const { useDOMBasedMovement = true } = state;
443
+ const enableTabbing = (_a = myState === null || myState === void 0 ? void 0 : myState.enableTabbing) !== null && _a !== void 0 ? _a : false;
444
+ const { onMouseDown, onMouseMove } = useDragRegion((_b = myState === null || myState === void 0 ? void 0 : myState.maximized) !== null && _b !== void 0 ? _b : false);
445
+ const { toggle: toggleMaximize } = useMaximize();
446
+ const className = useDOMBasedMovement
447
+ ? "fsbl-tab-region-tabbing-disabled fsbl-app-region"
448
+ : "fsbl-tab-region-tabbing-disabled fsbl-no-dom-movement fsbl-app-region";
449
+ const singleTitleOrTabs = () => enableTabbing ? (React.createElement(Tabs, { useDOMBasedMovement: useDOMBasedMovement })) : (React.createElement("div", { className: className, onDoubleClick: toggleMaximize, onMouseDown: onMouseDown, onMouseMove: onMouseMove },
450
+ React.createElement(TabTitle, { tabWindowName: windowName })));
451
+ return React.createElement("div", { className: "fsbl-tab-region" }, singleTitleOrTabs());
452
+ };
453
+ //# sourceMappingURL=TabRegion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabRegion.js","sourceRoot":"","sources":["../../../../../src/ui/components/windowTitleBar/TabRegion.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,OAAO,EAAE,MAAM,mDAAmD,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAc,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,QAAQ,GAAG,CAAC,EAAE,aAAa,EAA6B,EAAE,EAAE;IACjE,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,MAAM,YAAY,GAAG,CAAC,CAA+C,EAAE,EAAE;QACxE,0FAA0F;QAC1F,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,QAAQ,CACP,OAAO,CAAC,QAAQ,CAAC;YAChB,gBAAgB,EAAE,aAAa;SAC/B,CAAC,CACF,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACN,6BAAK,SAAS,EAAC,gBAAgB,EAAC,OAAO,EAAE,YAAY;QACpD,2BAAG,SAAS,EAAC,UAAU,GAAK,CACvB,CACN,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,EACnB,OAAO,EACP,KAAK,EACL,aAAa,EACb,aAAa,EACb,SAAS,GAOT,EAAE,EAAE;IACJ,IAAI,OAAO;QAAE,OAAO,oBAAC,SAAS,IAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,GAAI,CAAC;IAEpG,OAAO,CACN;QACC,oBAAC,QAAQ,IAAC,aAAa,EAAE,aAAa,GAAI;QAC1C,oBAAC,QAAQ,IAAC,aAAa,EAAE,aAAa,GAAI,CACxC,CACH,CAAC;AACH,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,YAAY,GAAG,CAAC,QAAsB,EAAE,EAAE;IAC/C,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,MAAM,MAAM,GAAG,CAAC,CAAC;IACjB,MAAM,KAAK,GAAG,sBAAsB,CAAC;IACrC,MAAM,IAAI,GAAG,gBAAgB,CAAC;IAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;IAEvB,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAE,CAAC;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACpC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3C,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SACjC;KACD;IACD,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC;IAEvE,iEAAiE;IACjE,6CAA6C;IAC7C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;QAC3B,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,SAAS;QACf,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,GAAG,KAAK,IAAI;QACnB,MAAM,EAAE,GAAG,MAAM,KAAK;KACtB,CAAC,CAAC;IACH,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;IACrD,UAAU,CAAC,GAAG,EAAE;QACf,MAAM,CAAC,MAAM,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,GAAG,CAAC,EACnB,SAAS,EACT,aAAa,EACb,UAAU,EACV,KAAK,EACL,MAAM,GAON,EAAE,EAAE;IACJ,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,YAAiC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC;IAE/E,MAAM,WAAW,GAAG,CAAC,CAAkC,EAAE,EAAE;;QAC1D,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU;YAAE,OAAO;QACtC,QAAQ,CACP,OAAO,CAAC,iBAAiB,CAAC;YACzB,sBAAsB,EAAE,aAAa;YACrC,YAAY,EAAE,UAAU;YACxB,iBAAiB,EAAE,KAAK;YACxB,QAAQ,EAAE,MAAA,MAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,qBAAqB,EAAE,0CAAE,KAAK,mCAAI,EAAE;SAC9D,CAAC,CACF,CAAC;QACF,+DAA+D;QAC/D,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,wBAAwB,EAAE,aAAa,CAAC,CAAC;QAChE,wDAAwD;QACxD,CAAC,CAAC,YAAY,CAAC,aAAa,GAAG,MAAM,CAAC;QACtC,oCAAoC;QACpC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QAC7B;;;;;WAKG;QACH,MAAM,SAAS,GAAG,CAAC,SAAgB,EAAE,EAAE;;YACtC,MAAA,SAAS,CAAC,aAAa,0CAAE,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACnE,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QAClC,CAAC,CAAC;QACF,MAAA,MAAM,CAAC,OAAO,0CAAE,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACxD,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,CAAkC,EAAE,EAAE;;QACzD,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ;YAAE,OAAO;QACpE,MAAM,IAAI,GAAG,MAAA,MAAM,CAAC,OAAO,0CAAE,qBAAqB,EAAE,CAAC;QACrD,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACzC,+HAA+H;QAC/H,8HAA8H;QAC9H,qGAAqG;QACrG,MAAM,WAAW,GAAG,CAAC,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QAC7D,8HAA8H;QAC9H,kGAAkG;QAClG,IAAI,WAAW,KAAK,KAAK,CAAC,QAAQ,CAAC,iBAAiB,EAAE;YACrD,QAAQ,CACP,OAAO,CAAC,iBAAiB,iCACrB,KAAK,CAAC,QAAQ,KACjB,YAAY,EAAE,UAAU,EACxB,iBAAiB,EAAE,WAAW,IAC7B,CACF,CAAC;SACF;IACF,CAAC,CAAC;IACF,OAAO;QACN,WAAW;QACX,UAAU;KACV,CAAC;AACH,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,GAAG,CAAC,EAAE,SAAS,EAA0B,EAAE,EAAE;IAC5D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,+CAA+C;IAE/C,MAAM,cAAc,GAAG,GAAG,EAAE;QAC3B,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,UAAU,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,GAAG,EAAE;QAC1B,UAAU,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,KAAoB,EAAE,EAAE;QAC1C,QAAQ,CACP,OAAO,CAAC,mBAAmB,CAAC;YAC3B,KAAK;SACL,CAAC,CACF,CAAC;QACF,UAAU,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC,CAAC;IAEF,OAAO;QACN,cAAc;QACd,aAAa;QACb,SAAS;QACT,OAAO;KACP,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,GAAG,GAAG,CAAC,EACZ,aAAa,EACb,KAAK,EACL,SAAS,GAKT,EAAE,EAAE;;IACJ,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,YAAiC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC;IAC/E,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,mCAAI,IAAI,CAAC;IACrC,MAAM,MAAM,GAAG,CAAC,CAAC,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,0CAAE,WAAW,CAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,0CAAE,WAAW,IAAG,EAAE,CAAC;IACtG,MAAM,UAAU,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe;QAC1C,CAAC,CAAC,CAAA,MAAA,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,eAAe,CAAC,0CAAE,kBAAkB,MAAK,aAAa;QACrF,CAAC,CAAC,IAAI,CAAC;IACR,uHAAuH;IACvH,MAAM,eAAe,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,IAAI,UAAU,CAAC,CAAC;IACnE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC;QACxE,SAAS,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,KAAI,UAAU;KAC1C,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC;IAC3C,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC;QAC9C,SAAS;QACT,aAAa;QACb,UAAU;QACV,KAAK;QACL,MAAM;KACN,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,GAAG,EAAE;QACvB,QAAQ,CACP,OAAO,CAAC,UAAU,CAAC;YAClB,gBAAgB,EAAE,aAAa;SAC/B,CAAC,CACF,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,SAAS;QACtB,CAAC,CAAC;YACA,SAAS;SACR;QACH,CAAC,CAAC,SAAS,CAAC;IAEb,MAAM,SAAS,GAAG,UAAU,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,UAAU,CAAC;IAEtG,OAAO,CACN,6BACC,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,CAAC,OAAO,EACnB,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,cAAc,EAC7B,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,4BACM,eAAe;QAEvC,oBAAC,UAAU,IACV,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,SAAS,GACnB,CACG,CACN,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG;IACnB,UAAU,EAAE,CAAC;IACb,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,CAAC;CACd,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,SAAS,GAAG,GAAG,EAAE;;IACtB,MAAM,CAAC,YAAY,EAAE,sBAAsB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC3D,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IAC7C,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAM,IAAI,CAAC,CAAC;IACtE,MAAM,eAAe,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IAE5D,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,MAAA,eAAe,CAAC,OAAO,mCAAI,WAAW,CAAC;IAE5E,MAAM,eAAe,GAAG,CAAC,eAAuB,EAAE,EAAE;QACnD,eAAe,CAAC,OAAO,GAAG,eAAe,CAAC;QAC1C,sBAAsB,CAAC,eAAe,CAAC,CAAC;IACzC,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,CAAmC,EAAE,EAAE;QACvD,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YACjB,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;SACtD;aAAM;YACN,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,WAAW,EAAE,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;SAC9E;QACD,aAAa,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI,iBAAiB;YAAE,YAAY,CAAC,iBAAiB,CAAC,CAAC;QACvD,oBAAoB,CACnB,UAAU,CAAC,GAAG,EAAE;YACf,aAAa,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,EAAE,GAAG,CAAC,CACP,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,GAAG,EAAE;QACvB,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,GAAG,EAAE;QACvB,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,WAAW,EAAE,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC;IAEF,MAAM,sBAAsB,GAAG,YAAY,GAAG,CAAC,CAAC;IAChD,oIAAoI;IACpI,MAAM,uBAAuB,GAAG,YAAY,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,CAAC;IAE7E,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE;;YACtC,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,kBAAkB,EAAE,GACzE,MAAA,eAAe,CAAC,OAAO,mCAAI,WAAW,CAAC;YACxC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,GAAG,kBAAkB,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7F,CAAC,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,UAAU,GAAG;QAClB,SAAS,EAAE,eAAe,YAAY,KAAK;QAC3C,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM;KAC/C,CAAC;IAEF,OAAO;QACN,UAAU;QACV,UAAU;QACV,sBAAsB;QACtB,uBAAuB;QACvB,UAAU;QACV,OAAO;QACP,eAAe;KACf,CAAC;AACH,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAoD,EAAE,EAAE;IAC/F,MAAM,EACL,UAAU,EACV,UAAU,EACV,sBAAsB,EACtB,uBAAuB,EACvB,OAAO,EACP,UAAU,EACV,eAAe,GACf,GAAG,SAAS,EAAE,CAAC;IAEhB,MAAM,iBAAiB,GAAG,CAAC,QAAQ,IAAI,CAAC,sBAAsB,IAAI,uBAAuB,CAAC,CAAC;IAE3F,OAAO,CACN;QACE,iBAAiB,IAAI,CACrB,gCAAQ,SAAS,EAAC,wBAAwB,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,sBAAsB,IAC/F,GAAG,CACI,CACT;QACD,6BAAK,SAAS,EAAC,2BAA2B,EAAC,OAAO,EAAE,OAAO;YAC1D,6BAAK,SAAS,EAAC,qBAAqB,EAAC,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,IAC1E,QAAQ,CACJ,CACD;QACL,iBAAiB,IAAI,CACrB,gCAAQ,SAAS,EAAC,wBAAwB,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,uBAAuB,IAChG,GAAG,CACI,CACT,CACC,CACH,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,EAClB,SAAS,EACT,aAAa,EACb,KAAK,GAKL,EAAE,EAAE,CAAC,oBAAC,GAAG,IAAC,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,GAAI,CAAC;AAEpG;;GAEG;AACH,MAAM,IAAI,GAAG,CAAC,EAAE,mBAAmB,EAAoC,EAAE,EAAE;;IAC1E,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,YAAiC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC;IAC/E,MAAM,UAAU,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,aAAa,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,mCAAI,KAAK,CAAC,CAAC;IAChF,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,WAAW,EAAE,CAAC;IAEjD,MAAM,eAAe,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,mCAAI,IAAI,CAAC;IACzD,MAAM,WAAW,GAAG,CAAC,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,EAAE,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,MAAA,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC,0CAAE,IAAI,CAAC,CAAC,CAAC,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,WAAW,CAAC;IAExG,MAAM,WAAW,GAAG,MAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,iBAAiB,mCAAI,IAAI,CAAC;IAC9D,MAAM,QAAQ,GAAG,EAAE,CAAC,CAAC,8FAA8F;IACnH,kKAAkK;IAClK,MAAM,iBAAiB,GAAG,IAAI;SAC5B,MAAM,CAAC,CAAC,aAAa,EAAE,EAAE,WAAC,OAAA,aAAa,MAAK,MAAA,KAAK,CAAC,QAAQ,0CAAE,sBAAsB,CAAA,CAAA,EAAA,CAAC;SACnF,GAAG,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE;;QAC7B,OAAO;YACN,SAAS,EACR,CAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,YAAY,MAAK,UAAU,IAAI,WAAW,KAAK,IAAI,IAAI,KAAK,IAAI,WAAW;gBAC1F,CAAC,CAAC,cAAc,QAAQ,KAAK;gBAC7B,CAAC,CAAC,IAAI;YACR,aAAa;YACb,KAAK;SACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEJ;;;;;;;OAOG;IACH,MAAM,gBAAgB,GAAG,GAAG,EAAE;;QAC7B,MAAM,KAAK,GAAG;YACb,KAAK,EAAE,GAAG,MAAA,KAAK,CAAC,QAAQ,0CAAE,QAAQ,IAAI;SACtC,CAAC;QACF,IAAI,CAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,YAAY,MAAK,UAAU;YAAE,OAAO;QACxD,mHAAmH;QACnH,MAAM,WAAW,GAAG,WAAW,KAAK,iBAAiB,CAAC,MAAM,CAAC;QAC7D,IAAI,WAAW,KAAK,IAAI;YAAE,OAAO,6BAAK,SAAS,EAAC,cAAc,EAAC,KAAK,EAAE,KAAK,kBAAgB,WAAW,GAAQ,CAAC;QAC/G,OAAO,IAAI,CAAC;IACb,CAAC,CAAC;IAEF;;;;;;;;;;;;;;OAcG;IACH,MAAM,WAAW,GAAG,CAAC,CAAkC,EAAE,EAAE;QAC1D;;;;;;;;;;;YAWI;IACL,CAAC,CAAC;IAEF;;;;OAIG;IACH,MAAM,UAAU,GAAG,GAAG,EAAE;;QACvB,IAAI,CAAC,KAAK,CAAC,QAAQ;YAAE,OAAO;QAC5B,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,IAAI,CAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,iBAAiB,MAAK,IAAI,EAAE;YAC/C,QAAQ,CACP,OAAO,CAAC,iBAAiB,iCACrB,KAAK,CAAC,QAAQ,KACjB,iBAAiB,EAAE,iBAAiB,CAAC,MAAM,EAC3C,YAAY,EAAE,UAAU,IACvB,CACF,CAAC;SACF;IACF,CAAC,CAAC;IAEF;;;;OAIG;IACH,MAAM,kBAAkB,GAAG,GAAG,EAAE;;QAC/B,IAAI,CAAC,KAAK,CAAC,QAAQ;YAAE,OAAO;QAC5B,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,IAAI,CAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,iBAAiB,MAAK,iBAAiB,CAAC,MAAM,EAAE;YACnE,QAAQ,CACP,OAAO,CAAC,iBAAiB,iCACrB,KAAK,CAAC,QAAQ,KACjB,iBAAiB,EAAE,iBAAiB,CAAC,MAAM,EAC3C,YAAY,EAAE,UAAU,IACvB,CACF,CAAC;SACF;IACF,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,mBAAmB;QACpC,CAAC,CAAC,2CAA2C;QAC7C,CAAC,CAAC,gEAAgE,CAAC;IAEpE,OAAO,CACN,6BAAK,SAAS,EAAC,iCAAiC,EAAC,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM;QAC7G,oBAAC,UAAU,IAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ;YACpC,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC9C,gBAAgB,EAAE,CACP;QACb,6BACC,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,cAAc,EAC7B,UAAU,EAAE,kBAAkB,GACxB,CACF,CACN,CAAC;AACH,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE;;IAC7B,MAAM,UAAU,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,YAAiC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC;IAC/E,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,MAAM,EAAE,mBAAmB,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAC7C,MAAM,aAAa,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,mCAAI,KAAK,CAAC;IACtD,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,aAAa,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,mCAAI,KAAK,CAAC,CAAC;IAChF,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,WAAW,EAAE,CAAC;IAEjD,MAAM,SAAS,GAAG,mBAAmB;QACpC,CAAC,CAAC,kDAAkD;QACpD,CAAC,CAAC,uEAAuE,CAAC;IAE3E,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAC9B,aAAa,CAAC,CAAC,CAAC,CACf,oBAAC,IAAI,IAAC,mBAAmB,EAAE,mBAAmB,GAAI,CAClD,CAAC,CAAC,CAAC,CACH,6BAAK,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW;QAC3G,oBAAC,QAAQ,IAAC,aAAa,EAAE,UAAU,GAAI,CAClC,CACN,CAAC;IAEH,OAAO,6BAAK,SAAS,EAAC,iBAAiB,IAAE,iBAAiB,EAAE,CAAO,CAAC;AACrE,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ /**
3
+ * Displays the tab's icon and text. Editing of titles is handled within this component.
4
+ */
5
+ export declare const TabTitle: ({ tabWindowName }: {
6
+ tabWindowName: string | null;
7
+ }) => JSX.Element;
8
+ //# sourceMappingURL=TabTitle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabTitle.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/windowTitleBar/TabTitle.tsx"],"names":[],"mappings":";AAKA;;GAEG;AACH,eAAO,MAAM,QAAQ;mBAAwC,MAAM,GAAG,IAAI;iBAazE,CAAC"}
@@ -0,0 +1,17 @@
1
+ import React from "react";
2
+ import { Icon } from "../icon/Icon";
3
+ import { useSelector } from "react-redux";
4
+ /**
5
+ * Displays the tab's icon and text. Editing of titles is handled within this component.
6
+ */
7
+ export const TabTitle = ({ tabWindowName }) => {
8
+ var _a;
9
+ const state = useSelector((currentState) => currentState);
10
+ const myState = tabWindowName ? state.windows[tabWindowName] : null;
11
+ const title = (_a = myState === null || myState === void 0 ? void 0 : myState.title) !== null && _a !== void 0 ? _a : "";
12
+ const icon = myState === null || myState === void 0 ? void 0 : myState.icon;
13
+ return (React.createElement("div", { className: "fsbl-tab-title" },
14
+ icon && React.createElement(Icon, Object.assign({}, icon)),
15
+ React.createElement("span", { className: "fsbl-tab-title-text" }, title)));
16
+ };
17
+ //# sourceMappingURL=TabTitle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabTitle.js","sourceRoot":"","sources":["../../../../../src/ui/components/windowTitleBar/TabTitle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAE,aAAa,EAAoC,EAAE,EAAE;;IAC/E,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,YAAiC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC;IAE/E,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACpE,MAAM,KAAK,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,mCAAI,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC;IAE3B,OAAO,CACN,6BAAK,SAAS,EAAC,gBAAgB;QAC7B,IAAI,IAAI,oBAAC,IAAI,oBAAK,IAAI,EAAI;QAC3B,8BAAM,SAAS,EAAC,qBAAqB,IAAE,KAAK,CAAQ,CAC/C,CACN,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ /**
3
+ * A simple React component for a user to set a custom title for a tab.
4
+ */
5
+ export declare const TitleEdit: ({ title, cancelEditing, saveTitle, }: {
6
+ title: string | null;
7
+ cancelEditing: () => void;
8
+ saveTitle: (newTitle: string | null) => void;
9
+ }) => JSX.Element;
10
+ //# sourceMappingURL=TitleEdit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TitleEdit.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/windowTitleBar/TitleEdit.tsx"],"names":[],"mappings":";AAEA;;GAEG;AACH,eAAO,MAAM,SAAS;WAKd,MAAM,GAAG,IAAI;mBACL,MAAM,IAAI;0BACH,MAAM,GAAG,IAAI,KAAK,IAAI;iBAuC5C,CAAC"}
@@ -0,0 +1,30 @@
1
+ import React, { useState, useRef, useEffect } from "react";
2
+ /**
3
+ * A simple React component for a user to set a custom title for a tab.
4
+ */
5
+ export const TitleEdit = ({ title, cancelEditing, saveTitle, }) => {
6
+ const [newTitle, setNewTitle] = useState(title);
7
+ const ref = useRef(null);
8
+ // Sets the cursor focus in the input box
9
+ useEffect(() => {
10
+ var _a;
11
+ (_a = ref === null || ref === void 0 ? void 0 : ref.current) === null || _a === void 0 ? void 0 : _a.focus();
12
+ }, []);
13
+ const onBlur = () => {
14
+ cancelEditing();
15
+ };
16
+ const onKeyDown = (e) => {
17
+ if (e.key === "Escape")
18
+ cancelEditing();
19
+ if (e.key === "Enter") {
20
+ // When the user erases the entire input then the title should revert back to its default
21
+ const replacementTitle = newTitle === "" ? null : newTitle;
22
+ saveTitle(replacementTitle);
23
+ }
24
+ };
25
+ const onChange = (e) => {
26
+ setNewTitle(e.target.value);
27
+ };
28
+ return (React.createElement("input", { ref: ref, value: newTitle !== null && newTitle !== void 0 ? newTitle : "", onBlur: onBlur, onChange: onChange, onKeyDown: onKeyDown, type: "text", className: "fsbl-tab-input", maxLength: 32 }));
29
+ };
30
+ //# sourceMappingURL=TitleEdit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TitleEdit.js","sourceRoot":"","sources":["../../../../../src/ui/components/windowTitleBar/TitleEdit.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE3D;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EACzB,KAAK,EACL,aAAa,EACb,SAAS,GAKT,EAAE,EAAE;IACJ,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,MAAM,CAA0B,IAAI,CAAC,CAAC;IAElD,yCAAyC;IACzC,SAAS,CAAC,GAAG,EAAE;;QACd,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,0CAAE,KAAK,EAAE,CAAC;IACvB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,MAAM,GAAG,GAAG,EAAE;QACnB,aAAa,EAAE,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,CAAwC,EAAE,EAAE;QAC9D,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ;YAAE,aAAa,EAAE,CAAC;QACxC,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE;YACtB,yFAAyF;YACzF,MAAM,gBAAgB,GAAG,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC3D,SAAS,CAAC,gBAAgB,CAAC,CAAC;SAC5B;IACF,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,CAAsC,EAAE,EAAE;QAC3D,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,OAAO,CACN,+BACC,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,EAAE,EACrB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAC,MAAM,EACX,SAAS,EAAC,gBAAgB,EAC1B,SAAS,EAAE,EAAE,GACZ,CACF,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ /**
3
+ * Rendering of the WindowTitleBar is dependent on it knowing its own windowName. The windowName
4
+ * is retrieved asynchronously on initial render (by calling getWindowName()).
5
+ *
6
+ * The windowName is made available to sub-components via a ReactContext (WindowNameContext). With
7
+ * the windowName, the sub-components can then look inside the redux store for the values that pertain
8
+ * to them.
9
+ */
10
+ export declare type WindowName = string | null;
11
+ export declare const WindowNameContext: import("react").Context<WindowName>;
12
+ //# sourceMappingURL=WindowTitleBarContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WindowTitleBarContext.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/windowTitleBar/WindowTitleBarContext.tsx"],"names":[],"mappings":";AAEA;;;;;;;GAOG;AAEH,oBAAY,UAAU,GAAG,MAAM,GAAG,IAAI,CAAC;AAEvC,eAAO,MAAM,iBAAiB,qCAAkC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { createContext } from "react";
2
+ export const WindowNameContext = createContext(null);
3
+ //# sourceMappingURL=WindowTitleBarContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WindowTitleBarContext.js","sourceRoot":"","sources":["../../../../../src/ui/components/windowTitleBar/WindowTitleBarContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAatC,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAa,IAAI,CAAC,CAAC"}