@finsemble/finsemble-ui 6.3.1 → 6.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (544) hide show
  1. package/README.md +28 -28
  2. package/package.json +1 -1
  3. package/react/actions/favoriteActions.js.map +1 -1
  4. package/react/actions/linkerActions.js.map +1 -1
  5. package/react/actions/menuActions.js.map +1 -1
  6. package/react/actions/rootActions.js.map +1 -1
  7. package/react/actions/searchActions.js.map +1 -1
  8. package/react/actions/smartDesktopDesignerActions.js.map +1 -1
  9. package/react/actions/toolbarActions.js.map +1 -1
  10. package/react/actions/workspaceActions.js.map +1 -1
  11. package/react/assets/css/advancedAppLauncher.css +636 -636
  12. package/react/assets/css/appCatalog.css +1069 -1069
  13. package/react/assets/css/authentication.css +78 -78
  14. package/react/assets/css/button.css +220 -220
  15. package/react/assets/css/core/formElements.css +23 -23
  16. package/react/assets/css/core/icons.css +69 -69
  17. package/react/assets/css/core/notifications.css +75 -75
  18. package/react/assets/css/core/windowFrame.css +36 -36
  19. package/react/assets/css/dashbar.css +78 -78
  20. package/react/assets/css/defaultTheme.css +356 -356
  21. package/react/assets/css/dialogs.css +158 -158
  22. package/react/assets/css/favorites.css +101 -101
  23. package/react/assets/css/finsemble.css +38 -38
  24. package/react/assets/css/focus.css +4 -4
  25. package/react/assets/css/font-finance.css +385 -385
  26. package/react/assets/css/fonts/Open_Sans/LICENSE.txt +202 -202
  27. package/react/assets/css/fonts/Open_Sans/OpenSans-Definition.css +118 -118
  28. package/react/assets/css/fonts/font-finance.svg +124 -124
  29. package/react/assets/css/fonts/icons-reference.html +1174 -1174
  30. package/react/assets/css/linkerWindow.css +124 -124
  31. package/react/assets/css/menus.css +195 -195
  32. package/react/assets/css/notificationsCenter.css +597 -597
  33. package/react/assets/css/processMonitor.css +213 -213
  34. package/react/assets/css/search.css +128 -128
  35. package/react/assets/css/shared/animations.css +99 -99
  36. package/react/assets/css/tags.css +136 -136
  37. package/react/assets/css/toolbar.css +413 -413
  38. package/react/assets/css/userPreferences.css +568 -568
  39. package/react/assets/css/windowTitleBar.css +652 -652
  40. package/react/assets/icons/check-square.svg +5 -5
  41. package/react/assets/icons/check.svg +3 -3
  42. package/react/assets/icons/chevron-left.svg +3 -3
  43. package/react/assets/icons/chevron-right.svg +3 -3
  44. package/react/assets/icons/copy.svg +10 -10
  45. package/react/assets/icons/exclamation-circle.svg +4 -4
  46. package/react/assets/icons/external-link.svg +12 -12
  47. package/react/assets/icons/flag.svg +10 -10
  48. package/react/assets/icons/folder.svg +3 -3
  49. package/react/assets/icons/font.svg +3 -3
  50. package/react/assets/icons/globe.svg +3 -3
  51. package/react/assets/icons/hdd.svg +9 -9
  52. package/react/assets/icons/key.svg +10 -10
  53. package/react/assets/icons/life-ring.svg +3 -3
  54. package/react/assets/icons/lock.svg +5 -5
  55. package/react/assets/icons/magic.svg +15 -15
  56. package/react/assets/icons/moon.svg +10 -10
  57. package/react/assets/icons/paint-roller.svg +3 -3
  58. package/react/assets/icons/pencil.svg +10 -10
  59. package/react/assets/icons/plus.svg +3 -3
  60. package/react/assets/icons/question-circle.svg +5 -5
  61. package/react/assets/icons/search.svg +3 -3
  62. package/react/assets/icons/sun.svg +9 -9
  63. package/react/assets/icons/times.svg +3 -3
  64. package/react/assets/icons/toggle-off.svg +6 -6
  65. package/react/assets/icons/toggle-on.svg +6 -6
  66. package/react/assets/icons/tools.svg +3 -3
  67. package/react/assets/icons/trash.svg +12 -12
  68. package/react/assets/icons/upload.svg +10 -10
  69. package/react/assets/icons/window.svg +3 -3
  70. package/react/componentTemplateGenerator.js +85 -85
  71. package/react/componentTemplateGenerator.js.map +1 -1
  72. package/react/components/FinsembleProvider.js.map +1 -1
  73. package/react/components/appCatalog/AppCatalog.js.map +1 -1
  74. package/react/components/appCatalog/AppCatalogComponent.js.map +1 -1
  75. package/react/components/appCatalog/components/AppCard.js.map +1 -1
  76. package/react/components/appCatalog/components/AppList.js.map +1 -1
  77. package/react/components/appCatalog/components/AppResults.js.map +1 -1
  78. package/react/components/appCatalog/components/Carousel.js.map +1 -1
  79. package/react/components/appCatalog/components/EmptyResults.js.map +1 -1
  80. package/react/components/appCatalog/components/Hero.js.map +1 -1
  81. package/react/components/appCatalog/components/Home.js.map +1 -1
  82. package/react/components/appCatalog/components/SearchBar.js.map +1 -1
  83. package/react/components/appCatalog/components/Showcase/AppDescription.js.map +1 -1
  84. package/react/components/appCatalog/components/Showcase/AppDevNotes.js.map +1 -1
  85. package/react/components/appCatalog/components/Showcase/AppShowcase.js.map +1 -1
  86. package/react/components/appCatalog/components/Showcase/Header.js.map +1 -1
  87. package/react/components/appCatalog/components/Showcase/ImageCarousel.js.map +1 -1
  88. package/react/components/appCatalog/components/Showcase/Modal.js.map +1 -1
  89. package/react/components/appCatalog/components/Showcase/ReleaseNotes.js.map +1 -1
  90. package/react/components/appCatalog/components/Showcase/SupportNotes.js.map +1 -1
  91. package/react/components/appCatalog/components/Showcase/VersionNotes.js.map +1 -1
  92. package/react/components/appCatalog/components/Showcase/defaults.js.map +1 -1
  93. package/react/components/appCatalog/components/Tag.js.map +1 -1
  94. package/react/components/appCatalog/components/Toast.js.map +1 -1
  95. package/react/components/appCatalog/components/helpers.js.map +1 -1
  96. package/react/components/appCatalog/index.js.map +1 -1
  97. package/react/components/appCatalog/modules/AppDirectory.js.map +1 -1
  98. package/react/components/appCatalog/modules/FDC3.js.map +1 -1
  99. package/react/components/appCatalog/stores/appStore.js.map +1 -1
  100. package/react/components/appCatalog/stores/storeActions.js.map +1 -1
  101. package/react/components/common/Button.js.map +1 -1
  102. package/react/components/common/ButtonIcon.js.map +1 -1
  103. package/react/components/common/ButtonRow.js.map +1 -1
  104. package/react/components/common/ButtonTile.js.map +1 -1
  105. package/react/components/common/Checkbox.js.map +1 -1
  106. package/react/components/common/ColorPicker.js.map +1 -1
  107. package/react/components/common/DropZone.js.map +1 -1
  108. package/react/components/common/DropdownButton.js.map +1 -1
  109. package/react/components/common/FileInput.js.map +1 -1
  110. package/react/components/common/FinsembleIcon.js.map +1 -1
  111. package/react/components/common/FinsembleSelect.js.map +1 -1
  112. package/react/components/common/FinsembleToggle.js.map +1 -1
  113. package/react/components/common/FontSizeSelector.js.map +1 -1
  114. package/react/components/common/Header.js.map +1 -1
  115. package/react/components/common/ImagePreview.js.map +1 -1
  116. package/react/components/common/LoadingSpinner.js.map +1 -1
  117. package/react/components/common/Tab.js.map +1 -1
  118. package/react/components/common/Tooltip.js.map +1 -1
  119. package/react/components/common/css/application-edit-page.css +117 -117
  120. package/react/components/common/css/application-list.css +47 -47
  121. package/react/components/common/css/button.css +164 -164
  122. package/react/components/common/css/color-picker.css +52 -52
  123. package/react/components/common/css/drop-zone.css +17 -17
  124. package/react/components/common/css/file-input.css +49 -49
  125. package/react/components/common/css/header.css +43 -43
  126. package/react/components/common/css/icon.css +13 -13
  127. package/react/components/common/css/image-preview.css +57 -57
  128. package/react/components/common/css/loading-spinner.css +39 -39
  129. package/react/components/common/css/selector.css +51 -51
  130. package/react/components/common/css/styles.css +128 -128
  131. package/react/components/common/css/tab.css +56 -56
  132. package/react/components/common/css/toggle.css +32 -32
  133. package/react/components/common/css/tooltip.css +78 -78
  134. package/react/components/common/file_helpers.js.map +1 -1
  135. package/react/components/common/fixtures/FinsembleIcon.css +4 -4
  136. package/react/components/common/helpers.js.map +1 -1
  137. package/react/components/common/stories/Button.stories.js.map +1 -1
  138. package/react/components/common/stories/ButtonIcon.stories.js.map +1 -1
  139. package/react/components/common/stories/ButtonRow.stories.js.map +1 -1
  140. package/react/components/common/stories/ButtonTile.stories.js.map +1 -1
  141. package/react/components/common/stories/Checkbox.stories.js.map +1 -1
  142. package/react/components/common/stories/ColorPicker.stories.js.map +1 -1
  143. package/react/components/common/stories/DropZone.stories.js.map +1 -1
  144. package/react/components/common/stories/DropdownButton.stories.js.map +1 -1
  145. package/react/components/common/stories/FileInput.stories.js.map +1 -1
  146. package/react/components/common/stories/FinsembleIcon.stories.js.map +1 -1
  147. package/react/components/common/stories/FinsembleSelect.stories.js.map +1 -1
  148. package/react/components/common/stories/FinsembleToggle.stories.js.map +1 -1
  149. package/react/components/common/stories/FontSizeSelector.stories.js.map +1 -1
  150. package/react/components/common/stories/Header.stories.js.map +1 -1
  151. package/react/components/common/stories/ImagePreview.stories.js.map +1 -1
  152. package/react/components/common/stories/LoadingSpinner.stories.js.map +1 -1
  153. package/react/components/common/stories/Tab.stories.js.map +1 -1
  154. package/react/components/common/stories/Tooltip.stories.js.map +1 -1
  155. package/react/components/common/tests/ButtonRow.spec.js.map +1 -1
  156. package/react/components/common/tests/Checkbox.spec.js.map +1 -1
  157. package/react/components/common/tests/ColorPicker.spec.js.map +1 -1
  158. package/react/components/common/tests/DropZone.spec.js.map +1 -1
  159. package/react/components/common/tests/FileInput.spec.js.map +1 -1
  160. package/react/components/common/tests/FinsembleSelect.spec.js.map +1 -1
  161. package/react/components/common/tests/FinsembleToggle.spec.js.map +1 -1
  162. package/react/components/common/tests/Header.spec.js.map +1 -1
  163. package/react/components/common/tests/ImagePreview.spec.js.map +1 -1
  164. package/react/components/common/tests/Tab.spec.js.map +1 -1
  165. package/react/components/common/tests/Tooltip.spec.js.map +1 -1
  166. package/react/components/favorites/FavoriteMaker.js.map +1 -1
  167. package/react/components/favorites/FavoritesShell.js.map +1 -1
  168. package/react/components/favorites/FavoritesShell.spec.js.map +1 -1
  169. package/react/components/favorites/FavoritesShell.stories.js.map +1 -1
  170. package/react/components/favorites/index.js.map +1 -1
  171. package/react/components/fdc3Resolver/ResolverContainer.js.map +1 -1
  172. package/react/components/fdc3Resolver/ResolverDialog.css +126 -126
  173. package/react/components/fdc3Resolver/ResolverDialog.js.map +1 -1
  174. package/react/components/fdc3Resolver/ResolverDialog.spec.js.map +1 -1
  175. package/react/components/fdc3Resolver/ResolverDialog.stories.js.map +1 -1
  176. package/react/components/icon/Icon.js.map +1 -1
  177. package/react/components/icon/index.js.map +1 -1
  178. package/react/components/legacyControls/FinsembleDialog.js.map +1 -1
  179. package/react/components/legacyControls/FinsembleDialogButton.js.map +1 -1
  180. package/react/components/legacyControls/FinsembleDialogQuestion.js.map +1 -1
  181. package/react/components/legacyControls/FinsembleDialogTextInput.js.map +1 -1
  182. package/react/components/legacyControls/FinsembleDnDContext.js.map +1 -1
  183. package/react/components/legacyControls/FinsembleDraggable.js.map +1 -1
  184. package/react/components/legacyControls/FinsembleHoverDetector.js.map +1 -1
  185. package/react/components/legacyControls/FinsembleMenuSection.js.map +1 -1
  186. package/react/components/legacyControls/stories/FinsembleDialog.stories.js.map +1 -1
  187. package/react/components/legacyControls/stories/FinsembleDialogButton.stories.js.map +1 -1
  188. package/react/components/legacyControls/stories/FinsembleDialogQuestion.stories.js.map +1 -1
  189. package/react/components/legacyControls/stories/FinsembleDialogTextInput.stories.js.map +1 -1
  190. package/react/components/legacyControls/tests/FinsembleDialog.spec.js.map +1 -1
  191. package/react/components/legacyControls/tests/FinsembleDialogButton.spec.js.map +1 -1
  192. package/react/components/legacyControls/tests/FinsembleDialogQuestion.spec.js.map +1 -1
  193. package/react/components/legacyControls/tests/FinsembleDialogTextInput.spec.js.map +1 -1
  194. package/react/components/linker/LinkerMenu.js.map +1 -1
  195. package/react/components/linker/LinkerMenuDeprecated.js.map +1 -1
  196. package/react/components/linker/index.js.map +1 -1
  197. package/react/components/linker/remoteRedux.js.map +1 -1
  198. package/react/components/menu/Menu.js.map +1 -1
  199. package/react/components/menu/MenuAutoResizer.js.map +1 -1
  200. package/react/components/menu/MenuContent.js.map +1 -1
  201. package/react/components/menu/MenuHotKey.js.map +1 -1
  202. package/react/components/menu/MenuItem.js.map +1 -1
  203. package/react/components/menu/MenuPortal.js.map +1 -1
  204. package/react/components/menu/MenuShell.js.map +1 -1
  205. package/react/components/menu/MenuToggle.js.map +1 -1
  206. package/react/components/menu/index.js.map +1 -1
  207. package/react/components/menu/keyboardNavigation.js.map +1 -1
  208. package/react/components/menu/menuContext.js.map +1 -1
  209. package/react/components/menu/menuHelpers.js.map +1 -1
  210. package/react/components/notifications/components/NoNotifications.js.map +1 -1
  211. package/react/components/notifications/components/drawer/Drawer.js.map +1 -1
  212. package/react/components/notifications/components/drawer/DrawerControls.js.map +1 -1
  213. package/react/components/notifications/components/drawer/DrawerHeader.js.map +1 -1
  214. package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js.map +1 -1
  215. package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js.map +1 -1
  216. package/react/components/notifications/components/shared/CheckButton.js.map +1 -1
  217. package/react/components/notifications/components/shared/IconButton.js.map +1 -1
  218. package/react/components/notifications/components/shared/NotificationCardShell.js +1 -1
  219. package/react/components/notifications/components/shared/NotificationCardShell.js.map +1 -1
  220. package/react/components/notifications/components/shared/OverflowMenu.js.map +1 -1
  221. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyActions.js.map +1 -1
  222. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyContentLogo.js.map +1 -1
  223. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.js.map +1 -1
  224. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.js.map +1 -1
  225. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderLogo.js.map +1 -1
  226. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderShell.js.map +1 -1
  227. package/react/components/notifications/components/views/CardView.js.map +1 -1
  228. package/react/components/notifications/components/views/ListView.js +1 -1
  229. package/react/components/notifications/components/views/ListView.js.map +1 -1
  230. package/react/components/notifications/components/views/NotificationDetailsView.js.map +1 -1
  231. package/react/components/notifications/constants.js.map +1 -1
  232. package/react/components/notifications/icons/Card.js.map +1 -1
  233. package/react/components/notifications/icons/Chevron.js.map +1 -1
  234. package/react/components/notifications/icons/CloseIcon.js.map +1 -1
  235. package/react/components/notifications/icons/EnvelopeClose.js.map +1 -1
  236. package/react/components/notifications/icons/EnvelopeOpen.js.map +1 -1
  237. package/react/components/notifications/icons/SnoozeIcon.js.map +1 -1
  238. package/react/components/notifications/index.js.map +1 -1
  239. package/react/components/notifications/notificationsContext.js.map +1 -1
  240. package/react/components/notifications/types.js.map +1 -1
  241. package/react/components/notifications/utils.js.map +1 -1
  242. package/react/components/processMonitor/ProcessMonitor.js.map +1 -1
  243. package/react/components/processMonitor/ProcessMonitorTypes.js.map +1 -1
  244. package/react/components/processMonitor/components/ChildWindow.js.map +1 -1
  245. package/react/components/processMonitor/components/ListHeader.js.map +1 -1
  246. package/react/components/processMonitor/components/ProcessStatistics.js.map +1 -1
  247. package/react/components/processMonitor/constants.js.map +1 -1
  248. package/react/components/processMonitor/helpers.js.map +1 -1
  249. package/react/components/processMonitor/helpers.spec.js.map +1 -1
  250. package/react/components/processMonitor/index.js.map +1 -1
  251. package/react/components/processMonitor/stores/ProcessMonitorStore.js.map +1 -1
  252. package/react/components/quickComponentForm/QuickComponentForm.js.map +1 -1
  253. package/react/components/quickComponentForm/index.js.map +1 -1
  254. package/react/components/quickComponentForm/quickComponent.css +3 -3
  255. package/react/components/search/Highlight.js.map +1 -1
  256. package/react/components/search/Highlight.spec.js.map +1 -1
  257. package/react/components/search/Highlight.stories.js.map +1 -1
  258. package/react/components/search/Search.js.map +1 -1
  259. package/react/components/search/SearchBestMatch.js.map +1 -1
  260. package/react/components/search/SearchInput.js.map +1 -1
  261. package/react/components/search/SearchProviderResults.js.map +1 -1
  262. package/react/components/search/SearchResult.js.map +1 -1
  263. package/react/components/search/SearchResults.js.map +1 -1
  264. package/react/components/search/index.js.map +1 -1
  265. package/react/components/shared/Animate.js.map +1 -1
  266. package/react/components/shared/BellIcon.js.map +1 -1
  267. package/react/components/shared/BellIconCrossed.js.map +1 -1
  268. package/react/components/shared/Button.js.map +1 -1
  269. package/react/components/shared/ConditionalWrapper.js.map +1 -1
  270. package/react/components/shared/DefaultDropdownButton.js.map +1 -1
  271. package/react/components/shared/NavigationButton.js.map +1 -1
  272. package/react/components/shared/Tag.js.map +1 -1
  273. package/react/components/shared/TagsMenu.js.map +1 -1
  274. package/react/components/shared/addProtocolToValidURL.js.map +1 -1
  275. package/react/components/shared/linkerUtil.js.map +1 -1
  276. package/react/components/shared/openQuitConfirmationDialog.js.map +1 -1
  277. package/react/components/shared/tests/DefaultDropdownButton.spec.js.map +1 -1
  278. package/react/components/shared/tests/addProtocolToValidURL.spec.js.map +1 -1
  279. package/react/components/shared/validateURL.js.map +1 -1
  280. package/react/components/shared/validateURL.spec.js.map +1 -1
  281. package/react/components/singleInputDialog/SingleInputDialog.css +3 -3
  282. package/react/components/singleInputDialog/SingleInputDialog.js.map +1 -1
  283. package/react/components/singleInputDialog/SingleInputDialog.spec.js.map +1 -1
  284. package/react/components/singleInputDialog/SingleInputDialog.stories.js.map +1 -1
  285. package/react/components/singleInputDialog/index.js.map +1 -1
  286. package/react/components/smartDesktopDesigner/AppEditAccess.js.map +1 -1
  287. package/react/components/smartDesktopDesigner/AppEditPage.js.map +1 -1
  288. package/react/components/smartDesktopDesigner/Appearance.css +94 -94
  289. package/react/components/smartDesktopDesigner/Appearance.helpers.js.map +1 -1
  290. package/react/components/smartDesktopDesigner/Appearance.js.map +1 -1
  291. package/react/components/smartDesktopDesigner/Application.js.map +1 -1
  292. package/react/components/smartDesktopDesigner/ApplicationEdit.js.map +1 -1
  293. package/react/components/smartDesktopDesigner/ApplicationList.js.map +1 -1
  294. package/react/components/smartDesktopDesigner/ApplicationSetup.js.map +1 -1
  295. package/react/components/smartDesktopDesigner/Applications.js.map +1 -1
  296. package/react/components/smartDesktopDesigner/AssetsPage.css +26 -26
  297. package/react/components/smartDesktopDesigner/AssetsPage.js.map +1 -1
  298. package/react/components/smartDesktopDesigner/Authentication.js.map +1 -1
  299. package/react/components/smartDesktopDesigner/AuthenticationProviderConfig.js.map +1 -1
  300. package/react/components/smartDesktopDesigner/Content.js.map +1 -1
  301. package/react/components/smartDesktopDesigner/CurrentView.js.map +1 -1
  302. package/react/components/smartDesktopDesigner/Export.js.map +1 -1
  303. package/react/components/smartDesktopDesigner/ExportCloud.js.map +1 -1
  304. package/react/components/smartDesktopDesigner/ExportDeployInfo.js.map +1 -1
  305. package/react/components/smartDesktopDesigner/ExportZip.js.map +1 -1
  306. package/react/components/smartDesktopDesigner/GettingStarted.js.map +1 -1
  307. package/react/components/smartDesktopDesigner/Navigation.js.map +1 -1
  308. package/react/components/smartDesktopDesigner/ProjectErrors.js.map +1 -1
  309. package/react/components/smartDesktopDesigner/ProjectHeader.js.map +1 -1
  310. package/react/components/smartDesktopDesigner/Publish.js.map +1 -1
  311. package/react/components/smartDesktopDesigner/PublishProgress.js.map +1 -1
  312. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js.map +1 -1
  313. package/react/components/smartDesktopDesigner/ThemePage.css +110 -110
  314. package/react/components/smartDesktopDesigner/ThemePage.js.map +1 -1
  315. package/react/components/smartDesktopDesigner/Themes.js.map +1 -1
  316. package/react/components/smartDesktopDesigner/View.js.map +1 -1
  317. package/react/components/smartDesktopDesigner/common/fsbl_functions.js.map +1 -1
  318. package/react/components/smartDesktopDesigner/common/getCSSVars.js.map +1 -1
  319. package/react/components/smartDesktopDesigner/common/views.js.map +1 -1
  320. package/react/components/smartDesktopDesigner/css/appearance.css +10 -10
  321. package/react/components/smartDesktopDesigner/css/applications.css +127 -127
  322. package/react/components/smartDesktopDesigner/css/authentication.css +125 -125
  323. package/react/components/smartDesktopDesigner/css/buttons.css +12 -12
  324. package/react/components/smartDesktopDesigner/css/export.css +163 -163
  325. package/react/components/smartDesktopDesigner/css/getting-started.css +6 -6
  326. package/react/components/smartDesktopDesigner/css/nav.css +93 -93
  327. package/react/components/smartDesktopDesigner/css/project-errors.css +15 -15
  328. package/react/components/smartDesktopDesigner/css/project-header.css +121 -121
  329. package/react/components/smartDesktopDesigner/css/styles.css +179 -179
  330. package/react/components/smartDesktopDesigner/css/views.css +16 -16
  331. package/react/components/smartDesktopDesigner/fixtures/applicationEditProps.js.map +1 -1
  332. package/react/components/smartDesktopDesigner/fixtures/applicationSetupProps.js.map +1 -1
  333. package/react/components/smartDesktopDesigner/fixtures/apps.js.map +1 -1
  334. package/react/components/smartDesktopDesigner/fixtures/authenticationProps.js.map +1 -1
  335. package/react/components/smartDesktopDesigner/fixtures/configTemplate.js.map +1 -1
  336. package/react/components/smartDesktopDesigner/fixtures/exportProps.js.map +1 -1
  337. package/react/components/smartDesktopDesigner/fixtures/projectErrorsProps.js.map +1 -1
  338. package/react/components/smartDesktopDesigner/fixtures/publishProgress.js.map +1 -1
  339. package/react/components/smartDesktopDesigner/fixtures/themeProps.js.map +1 -1
  340. package/react/components/smartDesktopDesigner/fixtures/views.js.map +1 -1
  341. package/react/components/smartDesktopDesigner/sdd_helpers.js.map +1 -1
  342. package/react/components/smartDesktopDesigner/stories/AppEditPage.stories.js.map +1 -1
  343. package/react/components/smartDesktopDesigner/stories/Appearance.stories.js.map +1 -1
  344. package/react/components/smartDesktopDesigner/stories/ApplicationEdit.stories.js.map +1 -1
  345. package/react/components/smartDesktopDesigner/stories/ApplicationList.stories.js.map +1 -1
  346. package/react/components/smartDesktopDesigner/stories/ApplicationSetup.stories.js.map +1 -1
  347. package/react/components/smartDesktopDesigner/stories/Applications.stories.js.map +1 -1
  348. package/react/components/smartDesktopDesigner/stories/AssetsPage.stories.js.map +1 -1
  349. package/react/components/smartDesktopDesigner/stories/Authentication.stories.js.map +1 -1
  350. package/react/components/smartDesktopDesigner/stories/Export.stories.js.map +1 -1
  351. package/react/components/smartDesktopDesigner/stories/ExportCloud.stories.js.map +1 -1
  352. package/react/components/smartDesktopDesigner/stories/ExportZip.stories.js.map +1 -1
  353. package/react/components/smartDesktopDesigner/stories/GettingStarted.stories.js.map +1 -1
  354. package/react/components/smartDesktopDesigner/stories/Navigation.stories.js.map +1 -1
  355. package/react/components/smartDesktopDesigner/stories/ProjectErrors.stories.js.map +1 -1
  356. package/react/components/smartDesktopDesigner/stories/ProjectHeader.stories.js.map +1 -1
  357. package/react/components/smartDesktopDesigner/stories/Publish.stories.js.map +1 -1
  358. package/react/components/smartDesktopDesigner/stories/PublishProgress.stories.js.map +1 -1
  359. package/react/components/smartDesktopDesigner/stories/SmartDesktopDesigner.stories.js.map +1 -1
  360. package/react/components/smartDesktopDesigner/stories/ThemePage.stories.js.map +1 -1
  361. package/react/components/smartDesktopDesigner/stories/Themes.stories.js.map +1 -1
  362. package/react/components/smartDesktopDesigner/tests/AppEditPage.spec.js.map +1 -1
  363. package/react/components/smartDesktopDesigner/tests/ApplicationEdit.spec.js.map +1 -1
  364. package/react/components/smartDesktopDesigner/tests/ApplicationList.spec.js.map +1 -1
  365. package/react/components/smartDesktopDesigner/tests/ApplicationSetup.spec.js.map +1 -1
  366. package/react/components/smartDesktopDesigner/tests/Applications.spec.js.map +1 -1
  367. package/react/components/smartDesktopDesigner/tests/Authentication.spec.js.map +1 -1
  368. package/react/components/smartDesktopDesigner/tests/Export.spec.js.map +1 -1
  369. package/react/components/smartDesktopDesigner/tests/ExportZip.spec.js.map +1 -1
  370. package/react/components/smartDesktopDesigner/tests/Navigation.spec.js.map +1 -1
  371. package/react/components/smartDesktopDesigner/tests/ProjectErrors.spec.js.map +1 -1
  372. package/react/components/smartDesktopDesigner/tests/ProjectHeader.spec.js.map +1 -1
  373. package/react/components/smartDesktopDesigner/tests/Publish.spec.js.map +1 -1
  374. package/react/components/smartDesktopDesigner/tests/PublishProgess.spec.js.map +1 -1
  375. package/react/components/smartDesktopDesigner/tests/SmartDesktopDesigner.spec.js.map +1 -1
  376. package/react/components/smartDesktopDesigner/tests/Themes.spec.js.map +1 -1
  377. package/react/components/smartDesktopDesigner/tests/a11y_helper.js.map +1 -1
  378. package/react/components/smartDesktopDesigner/themeDefinitions.js.map +1 -1
  379. package/react/components/system/System.js.map +1 -1
  380. package/react/components/system/System.spec.js.map +1 -1
  381. package/react/components/system/System.stories.js.map +1 -1
  382. package/react/components/system/SystemTrayComponentShell.js.map +1 -1
  383. package/react/components/system/index.js.map +1 -1
  384. package/react/components/toolbar/AutoArrange.js.map +1 -1
  385. package/react/components/toolbar/DragHandle.js.map +1 -1
  386. package/react/components/toolbar/MinimizeAll.js.map +1 -1
  387. package/react/components/toolbar/MinimizeAll.spec.js.map +1 -1
  388. package/react/components/toolbar/MinimizeAll.stories.js.map +1 -1
  389. package/react/components/toolbar/NotificationControl.js.map +1 -1
  390. package/react/components/toolbar/RevealAll.js.map +1 -1
  391. package/react/components/toolbar/RevealAll.spec.js.map +1 -1
  392. package/react/components/toolbar/RevealAll.stories.js.map +1 -1
  393. package/react/components/toolbar/ToolbarIcon.js.map +1 -1
  394. package/react/components/toolbar/ToolbarSection.js.map +1 -1
  395. package/react/components/toolbar/ToolbarShell.js.map +1 -1
  396. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.js.map +1 -1
  397. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncherMenu.js.map +1 -1
  398. package/react/components/toolbar/advancedAppLauncher/components/AddNewAppForm.js.map +1 -1
  399. package/react/components/toolbar/advancedAppLauncher/components/AddNewFolder.js.map +1 -1
  400. package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.js.map +1 -1
  401. package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.js.map +1 -1
  402. package/react/components/toolbar/advancedAppLauncher/components/AppTagsList.js.map +1 -1
  403. package/react/components/toolbar/advancedAppLauncher/components/Content.js.map +1 -1
  404. package/react/components/toolbar/advancedAppLauncher/components/FilterSort.js.map +1 -1
  405. package/react/components/toolbar/advancedAppLauncher/components/FoldersList.js.map +1 -1
  406. package/react/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.js.map +1 -1
  407. package/react/components/toolbar/advancedAppLauncher/components/NoAppsFound.js.map +1 -1
  408. package/react/components/toolbar/advancedAppLauncher/components/SearchBox.js.map +1 -1
  409. package/react/components/toolbar/advancedAppLauncher/components/SortBy.js.map +1 -1
  410. package/react/components/toolbar/advancedAppLauncher/components/TagsList.js.map +1 -1
  411. package/react/components/toolbar/advancedAppLauncher/components/TagsMenu.js.map +1 -1
  412. package/react/components/toolbar/advancedAppLauncher/components/ToggleFavoriteDropdown.js.map +1 -1
  413. package/react/components/toolbar/advancedAppLauncher/modules/AppDirectory.js.map +1 -1
  414. package/react/components/toolbar/advancedAppLauncher/modules/FDC3.js.map +1 -1
  415. package/react/components/toolbar/advancedAppLauncher/stores/LauncherStore.js.map +1 -1
  416. package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js.map +1 -1
  417. package/react/components/toolbar/advancedAppLauncher/utils/sort-functions.js.map +1 -1
  418. package/react/components/toolbar/appLauncher/AppLauncherMenu.js.map +1 -1
  419. package/react/components/toolbar/appLauncher/DynamicAppLauncher.js.map +1 -1
  420. package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.js.map +1 -1
  421. package/react/components/toolbar/appLauncher/appLauncher.css +30 -30
  422. package/react/components/toolbar/appLauncher/components/componentList.js.map +1 -1
  423. package/react/components/toolbar/appLauncher/stores/appLauncherStore.js.map +1 -1
  424. package/react/components/toolbar/dashbar/Dashbar.js.map +1 -1
  425. package/react/components/toolbar/dashbar/DashbarItem.js.map +1 -1
  426. package/react/components/toolbar/index.js.map +1 -1
  427. package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.js.map +1 -1
  428. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js.map +1 -1
  429. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.js.map +1 -1
  430. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.js.map +1 -1
  431. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js.map +1 -1
  432. package/react/components/toolbar/workspaceManagementMenu/workspaceManagementMenu.css +90 -90
  433. package/react/components/userPreferences/NotificationsPreferencesContext.js.map +1 -1
  434. package/react/components/userPreferences/UserPreferenceTypes.js.map +1 -1
  435. package/react/components/userPreferences/UserPreferences.js.map +1 -1
  436. package/react/components/userPreferences/UserPreferencesBase.js.map +1 -1
  437. package/react/components/userPreferences/UserPreferencesWrapper.js.map +1 -1
  438. package/react/components/userPreferences/components/ContentSection.js.map +1 -1
  439. package/react/components/userPreferences/components/LeftNav.js.map +1 -1
  440. package/react/components/userPreferences/components/content/DashbarEditor.js.map +1 -1
  441. package/react/components/userPreferences/components/content/DashbarEditorItem.js.map +1 -1
  442. package/react/components/userPreferences/components/content/General.js.map +1 -1
  443. package/react/components/userPreferences/components/content/Notifications.js.map +1 -1
  444. package/react/components/userPreferences/components/content/Workspaces.js.map +1 -1
  445. package/react/components/userPreferences/components/content/notificationViews/NotificationsPreferencesHome.js.map +1 -1
  446. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourceTypes.js.map +1 -1
  447. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourcesPreferences.js.map +1 -1
  448. package/react/components/userPreferences/components/content/notificationViews/notificationViewsUtils.js.map +1 -1
  449. package/react/components/userPreferences/components/general/ScheduledRestart.js.map +1 -1
  450. package/react/components/userPreferences/components/workspaces/WorkspaceButton.js.map +1 -1
  451. package/react/components/userPreferences/components/workspaces/WorkspaceComponents.js.map +1 -1
  452. package/react/components/userPreferences/components/workspaces/WorkspaceItem.js.map +1 -1
  453. package/react/components/userPreferences/components/workspaces/WorkspaceItemList.js.map +1 -1
  454. package/react/components/userPreferences/index.js.map +1 -1
  455. package/react/components/userPreferences/stores/UserPreferencesStore.js.map +1 -1
  456. package/react/components/userPreferences/stories/DashbarEditor.stories.js.map +1 -1
  457. package/react/components/userPreferences/stories/DashbarEditorItem.stories.js.map +1 -1
  458. package/react/components/userPreferences/stories/General.stories.js.map +1 -1
  459. package/react/components/userPreferences/stories/Notifications.stories.js.map +1 -1
  460. package/react/components/userPreferences/stories/NotificationsSourceTypes.stories.js.map +1 -1
  461. package/react/components/userPreferences/stories/NotificationsSources.stories.js.map +1 -1
  462. package/react/components/userPreferences/stories/UserPreferences.stories.js.map +1 -1
  463. package/react/components/userPreferences/stories/WorkspaceButton.stories.js.map +1 -1
  464. package/react/components/userPreferences/stories/WorkspaceComponents.stories.js.map +1 -1
  465. package/react/components/userPreferences/stories/WorkspaceItem.stories.js.map +1 -1
  466. package/react/components/userPreferences/stories/WorkspaceItemList.stories.js.map +1 -1
  467. package/react/components/userPreferences/stories/Workspaces.stories.js.map +1 -1
  468. package/react/components/userPreferences/tests/ContentSection.spec.js.map +1 -1
  469. package/react/components/userPreferences/tests/DashbarEditor.spec.js.map +1 -1
  470. package/react/components/userPreferences/tests/DashbarEditorItem.spec.js.map +1 -1
  471. package/react/components/userPreferences/tests/General.spec.js.map +1 -1
  472. package/react/components/userPreferences/tests/LeftNav.spec.js.map +1 -1
  473. package/react/components/userPreferences/tests/NotificationSourceTypes.spec.js.map +1 -1
  474. package/react/components/userPreferences/tests/Notifications.spec.js.map +1 -1
  475. package/react/components/userPreferences/tests/NotificationsPreferencesHome.spec.js.map +1 -1
  476. package/react/components/userPreferences/tests/NotificationsSourcesPreferences.spec.js.map +1 -1
  477. package/react/components/userPreferences/tests/ScheduledRestart.spec.js.map +1 -1
  478. package/react/components/userPreferences/tests/WorkspaceButton.spec.js.map +1 -1
  479. package/react/components/userPreferences/tests/WorkspaceComponents.spec.js.map +1 -1
  480. package/react/components/userPreferences/tests/WorkspaceItem.spec.js.map +1 -1
  481. package/react/components/userPreferences/tests/WorkspaceItemList.spec.js.map +1 -1
  482. package/react/components/utils.js.map +1 -1
  483. package/react/components/windowTitleBar/WindowTitleBarShell.js.map +1 -1
  484. package/react/components/windowTitleBar/components/center/Tab.js.map +1 -1
  485. package/react/components/windowTitleBar/components/center/TabList.js.map +1 -1
  486. package/react/components/windowTitleBar/components/center/TabRegion.js.map +1 -1
  487. package/react/components/windowTitleBar/components/left/LinkerButton.js.map +1 -1
  488. package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.js.map +1 -1
  489. package/react/components/windowTitleBar/components/left/LinkerGroups.js.map +1 -1
  490. package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.js.map +1 -1
  491. package/react/components/windowTitleBar/components/left/ShareButton.js.map +1 -1
  492. package/react/components/windowTitleBar/components/right/AlwaysOnTopButton.js.map +1 -1
  493. package/react/components/windowTitleBar/components/right/CloseButton.js.map +1 -1
  494. package/react/components/windowTitleBar/components/right/GroupingButton.js.map +1 -1
  495. package/react/components/windowTitleBar/components/right/MaximizeButton.js.map +1 -1
  496. package/react/components/windowTitleBar/components/right/MinimizeButton.js.map +1 -1
  497. package/react/components/windowTitleBar/components/windowTitle.js.map +1 -1
  498. package/react/components/windowTitleBar/index.js.map +1 -1
  499. package/react/components/windowTitleBar/stores/windowTitleBarStore.js.map +1 -1
  500. package/react/components/windowTitleBar/stores/windowTitleBarStoreDefaults.js.map +1 -1
  501. package/react/components/windowTitleBar/windowTitleBarContext.js.map +1 -1
  502. package/react/components/yesNoDialog/Timer.spec.js.map +1 -1
  503. package/react/components/yesNoDialog/Timer.stories.js.map +1 -1
  504. package/react/components/yesNoDialog/YesNoDialog.css +3 -3
  505. package/react/components/yesNoDialog/YesNoDialog.js.map +1 -1
  506. package/react/components/yesNoDialog/YesNoDialog.spec.js.map +1 -1
  507. package/react/components/yesNoDialog/YesNoDialog.stories.js.map +1 -1
  508. package/react/components/yesNoDialog/index.js.map +1 -1
  509. package/react/components/yesNoDialog/timer.js.map +1 -1
  510. package/react/enzymeSetup.js.map +1 -1
  511. package/react/hooks/index.js.map +1 -1
  512. package/react/hooks/useAuth.js.map +1 -1
  513. package/react/hooks/useDeepEffect.js.map +1 -1
  514. package/react/hooks/useFavorites.js.map +1 -1
  515. package/react/hooks/useFavoritesShell.js.map +1 -1
  516. package/react/hooks/useHotkey.js.map +1 -1
  517. package/react/hooks/useLinker.js.map +1 -1
  518. package/react/hooks/useMenu.js.map +1 -1
  519. package/react/hooks/useNotifications.js.map +1 -1
  520. package/react/hooks/useOutsideClickDetector.js.map +1 -1
  521. package/react/hooks/usePubSub.js.map +1 -1
  522. package/react/hooks/useSearch.js.map +1 -1
  523. package/react/hooks/useToolbar.js.map +1 -1
  524. package/react/hooks/useWorkspace.js.map +1 -1
  525. package/react/reducers/favoriteReducer.js.map +1 -1
  526. package/react/reducers/linkerReducer.js.map +1 -1
  527. package/react/reducers/menuReducer.js.map +1 -1
  528. package/react/reducers/rootReducer.js.map +1 -1
  529. package/react/reducers/searchReducer.js.map +1 -1
  530. package/react/reducers/smartDesktopDesignerReducer.js.map +1 -1
  531. package/react/reducers/toolbarReducer.js.map +1 -1
  532. package/react/reducers/workspaceReducer.js.map +1 -1
  533. package/react/store.js.map +1 -1
  534. package/react/types/advancedAppLauncherTypes.js.map +1 -1
  535. package/react/types/dashbarTypes.js.map +1 -1
  536. package/react/types/favoriteTypes.js.map +1 -1
  537. package/react/types/fdc3.js.map +1 -1
  538. package/react/types/hotkeyTypes.js.map +1 -1
  539. package/react/types/iconTypes.js.map +1 -1
  540. package/react/types/linkerTypes.js.map +1 -1
  541. package/react/types/searchTypes.js.map +1 -1
  542. package/react/types/smartDesktopDesignerTypes.js.map +1 -1
  543. package/react/types/windowTitleBar.js.map +1 -1
  544. package/react/types/workspaceTypes.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"LinkerGroups.js","sourceRoot":"","sources":["../../../../../src/components/windowTitleBar/components/left/LinkerGroups.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAM1C,MAAM,iBAAiB,GAA4B,GAAG,EAAE;;IACvD,MAAM,KAAK,GAAgB,WAAW,CAAC,CAAC,YAAiB,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC;IAC5E,MAAM,cAAc,GAAmB,MAAA,MAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,0CAAG,eAAe,CAAC,IAAI,CAAC,0CAAE,cAAc,mCAAI,EAAE,CAAC;IACpG,MAAM,WAAW,GAAc,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,WAAW,mCAAI,EAAE,CAAC;IAExD,OAAO,CACN,6BAAK,SAAS,EAAC,eAAe,IAC5B,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;;QAC5B,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAErD,MAAM,KAAK,GAAG,MAAA,OAAO,CAAC,KAAK,mCAAI,GAAG,CAAC;QACnC,OAAO,CACN,MAAM,IAAI,CACT,6BACC,GAAG,EAAE,OAAO,CAAC,IAAI,EACjB,SAAS,EAAE,+CAA+C,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,YAAY,EAAE,EACjG,KAAK,EAAE,WAAW,KAAK,EAAE,IAExB,KAAK,CACD,CACN,CACD,CAAC;IACH,CAAC,CAAC,CACG,CACN,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAA4B,GAAG,EAAE,CAAC,oBAAC,iBAAiB,OAAG,CAAC","sourcesContent":["/*!\r\n * Copyright 2017 by ChartIQ, Inc.\r\n * All rights reserved.\r\n */\r\nimport * as React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { LinkerStore } from \"../../../linker/remoteRedux\";\r\n\r\ntype Channel = LinkerStore[\"allChannels\"][0];\r\ntype JoinedChannels = string[];\r\n\r\nconst LinkerGroupsRedux: React.FunctionComponent = () => {\r\n\tconst state: LinkerStore = useSelector((currentState: any) => currentState);\r\n\tconst joinedChannels: JoinedChannels = state?.clients?.[finsembleWindow.name]?.joinedChannels ?? [];\r\n\tconst allChannels: Channel[] = state?.allChannels ?? [];\r\n\r\n\treturn (\r\n\t\t<div className=\"linker-groups\">\r\n\t\t\t{allChannels.map((channel) => {\r\n\t\t\t\tconst active = joinedChannels.includes(channel.name);\r\n\t\t\t\t// linker-${channel.label} is deprecated in favor of cssClassName\r\n\t\t\t\tconst label = channel.label ?? \"X\";\r\n\t\t\t\treturn (\r\n\t\t\t\t\tactive && (\r\n\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\tkey={channel.name}\r\n\t\t\t\t\t\t\tclassName={`linker-group linker-group-accessible linker-${channel.label} ${channel.cssClassName}`}\r\n\t\t\t\t\t\t\ttitle={`Channel ${label}`}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{label}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t)\r\n\t\t\t\t);\r\n\t\t\t})}\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport const LinkerGroups: React.FunctionComponent = () => <LinkerGroupsRedux />;\r\n"]}
1
+ {"version":3,"file":"LinkerGroups.js","sourceRoot":"","sources":["../../../../../src/components/windowTitleBar/components/left/LinkerGroups.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAM1C,MAAM,iBAAiB,GAA4B,GAAG,EAAE;;IACvD,MAAM,KAAK,GAAgB,WAAW,CAAC,CAAC,YAAiB,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC;IAC5E,MAAM,cAAc,GAAmB,MAAA,MAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,0CAAG,eAAe,CAAC,IAAI,CAAC,0CAAE,cAAc,mCAAI,EAAE,CAAC;IACpG,MAAM,WAAW,GAAc,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,WAAW,mCAAI,EAAE,CAAC;IAExD,OAAO,CACN,6BAAK,SAAS,EAAC,eAAe,IAC5B,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;;QAC5B,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAErD,MAAM,KAAK,GAAG,MAAA,OAAO,CAAC,KAAK,mCAAI,GAAG,CAAC;QACnC,OAAO,CACN,MAAM,IAAI,CACT,6BACC,GAAG,EAAE,OAAO,CAAC,IAAI,EACjB,SAAS,EAAE,+CAA+C,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,YAAY,EAAE,EACjG,KAAK,EAAE,WAAW,KAAK,EAAE,IAExB,KAAK,CACD,CACN,CACD,CAAC;IACH,CAAC,CAAC,CACG,CACN,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAA4B,GAAG,EAAE,CAAC,oBAAC,iBAAiB,OAAG,CAAC","sourcesContent":["/*!\n * Copyright 2017 by ChartIQ, Inc.\n * All rights reserved.\n */\nimport * as React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { LinkerStore } from \"../../../linker/remoteRedux\";\n\ntype Channel = LinkerStore[\"allChannels\"][0];\ntype JoinedChannels = string[];\n\nconst LinkerGroupsRedux: React.FunctionComponent = () => {\n\tconst state: LinkerStore = useSelector((currentState: any) => currentState);\n\tconst joinedChannels: JoinedChannels = state?.clients?.[finsembleWindow.name]?.joinedChannels ?? [];\n\tconst allChannels: Channel[] = state?.allChannels ?? [];\n\n\treturn (\n\t\t<div className=\"linker-groups\">\n\t\t\t{allChannels.map((channel) => {\n\t\t\t\tconst active = joinedChannels.includes(channel.name);\n\t\t\t\t// linker-${channel.label} is deprecated in favor of cssClassName\n\t\t\t\tconst label = channel.label ?? \"X\";\n\t\t\t\treturn (\n\t\t\t\t\tactive && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={channel.name}\n\t\t\t\t\t\t\tclassName={`linker-group linker-group-accessible linker-${channel.label} ${channel.cssClassName}`}\n\t\t\t\t\t\t\ttitle={`Channel ${label}`}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t})}\n\t\t</div>\n\t);\n};\n\nexport const LinkerGroups: React.FunctionComponent = () => <LinkerGroupsRedux />;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"LinkerGroupsDeprecated.js","sourceRoot":"","sources":["../../../../../src/components/windowTitleBar/components/left/LinkerGroupsDeprecated.jsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,IAAI,mBAAmB,CAAC;AACxB,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,KAAK,CAAC,SAAS;IACxD,YAAY,KAAK;QAChB,KAAK,CAAC,KAAK,CAAC,CAAC;QAIb,mBAAmB,GAAG,QAAQ,EAAE,CAAC;QACjC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG;YACZ,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,QAAQ;YACvD,gBAAgB,EAAE,KAAK;SACvB,CAAC;IACH,CAAC;IAOD,kBAAkB;QACjB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC;IAOD,iBAAiB;QAEhB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,4BAA4B,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAC/E,IAAI,GAAG,EAAE;gBACR,OAAO,CAAC,GAAG,CAAC,sCAAsC,EAAE,GAAG,CAAC,CAAC;aACzD;YAGD,IAAI,CAAC,QAAQ,CAAC;gBACb,gBAAgB,EAAE,KAAK,IAAI,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;aACpE,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,mBAAmB,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACrF,CAAC;IAOD,oBAAoB;QACnB,mBAAmB,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACxF,CAAC;IASD,eAAe,CAAC,GAAG,EAAE,QAAQ;QAC5B,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAC7C,CAAC;IAQD,cAAc,CAAC,QAAQ;QACtB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,CAAC,CAAC,EAAE,OAAO;QACjB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC;YACzC,OAAO,EAAE,OAAO;YAChB,cAAc,EAAE,IAAI;SACpB,CAAC,CAAC;IACJ,CAAC;IAQD,MAAM;QACL,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACxC,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,EAAE;YAC5B,IAAI,CAAC,gBAAgB,EAAE;gBACtB,OAAO,IAAI,CAAC;aACZ;iBAAM,IAAI,OAAO,CAAC,KAAK,EAAE;gBACzB,OAAO,OAAO,CAAC,KAAK,CAAC;aACrB;iBAAM;gBAEN,OAAO,wBAAwB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC,CAAC;aAC1F;QACF,CAAC,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YACzB,OAAO,6BAAK,SAAS,EAAC,eAAe,GAAO,CAAC;SAC7C;QAKD,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YAClD,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,mCAAmC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1F,IAAI,UAAU,GAAG,eAAe,MAAM,EAAE,CAAC;YACzC,OAAO,CACN,6BACC,GAAG,EAAE,OAAO,CAAC,IAAI,EACjB,SAAS,EAAE,UAAU,EACrB,KAAK,EAAE,WAAW,wBAAwB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC,EAAE,EACtG,KAAK,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,KAAK,EAAE,EACpC,SAAS,EAAE,UAAU,CAAC;oBACrB,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC/B,CAAC,IAEA,QAAQ,CAAC,OAAO,CAAC,CACb,CACN,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,6BAAK,SAAS,EAAC,eAAe,IAAE,QAAQ,CAAO,CAAC;IACxD,CAAC;CACD","sourcesContent":["/*!\r\n * Copyright 2017 by ChartIQ, Inc.\r\n * All rights reserved.\r\n *\r\n * This is a deprecated version of LinkerGroups that uses linkerClient. It is not compatible with FDC3 interop.\r\n */\r\nimport * as React from \"react\";\r\nimport { getStore } from \"../../stores/windowTitleBarStore\";\r\nimport { getChannelLabelFromIndex } from \"../../../shared/linkerUtil\";\r\nlet windowTitleBarStore;\r\nexport default class LinkerGroups extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\t/**\r\n\t\t * We assign in the constructor instead of via a require at the top of the file because the store is initialized asynchronously.\r\n\t\t */\r\n\t\twindowTitleBarStore = getStore();\r\n\t\tthis.bindCorrectContext();\r\n\t\tthis.state = {\r\n\t\t\tchannels: FSBL.Clients.LinkerClient.getState().channels,\r\n\t\t\taccessibleLinker: false,\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * This is necessary to make sure that the `this` inside of the callback is correct.\r\n\t *\r\n\t * @memberof LinkerGroups\r\n\t */\r\n\tbindCorrectContext() {\r\n\t\tthis.onChannelChange = this.onChannelChange.bind(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Add listeners to the store.\r\n\t *\r\n\t * @memberof LinkerGroups\r\n\t */\r\n\tcomponentDidMount() {\r\n\t\t// are we using the accessible linker?\r\n\t\tFSBL.Clients.ConfigClient.getValue(\"finsemble.accessibleLinker\", (err, value) => {\r\n\t\t\tif (err) {\r\n\t\t\t\tconsole.err(\"Error getting accessibleLinker value\", err);\r\n\t\t\t}\r\n\r\n\t\t\t// Default value for accessibleLinker is true.\r\n\t\t\tthis.setState({\r\n\t\t\t\taccessibleLinker: value && typeof value === \"boolean\" ? value : true,\r\n\t\t\t});\r\n\t\t});\r\n\t\twindowTitleBarStore.addListener({ field: \"Linker.channels\" }, this.onChannelChange);\r\n\t}\r\n\r\n\t/**\r\n\t * Remove listeners from the store.\r\n\t *\r\n\t * @memberof LinkerGroups\r\n\t */\r\n\tcomponentWillUnmount() {\r\n\t\twindowTitleBarStore.removeListener({ field: \"Linker.channels\" }, this.onChannelChange);\r\n\t}\r\n\r\n\t/**\r\n\t * When the user adds/removes a link in the linkerWindow, the values in the store will change, and this listener will be invoked.\r\n\t *\r\n\t * @param {any} err\r\n\t * @param {any} response\r\n\t * @memberof LinkerGroups\r\n\t */\r\n\tonChannelChange(err, response) {\r\n\t\tthis.setState({ channels: response.value });\r\n\t}\r\n\r\n\t/**\r\n\t * Whenever the store changes, set state.\r\n\t *\r\n\t * @param {any} newState\r\n\t * @memberof LinkerGroups\r\n\t */\r\n\tonStoreChanged(newState) {\r\n\t\tthis.setState(newState);\r\n\t}\r\n\r\n\tonClick(e, channel) {\r\n\t\tFSBL.Clients.LinkerClient.bringAllToFront({\r\n\t\t\tchannel: channel,\r\n\t\t\trestoreWindows: true,\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Render method.\r\n\t *\r\n\t * @returns\r\n\t * @memberof LinkerGroups\r\n\t */\r\n\trender() {\r\n\t\tlet self = this;\r\n\t\tconst { accessibleLinker } = this.state;\r\n\t\tconst getLabel = (channel) => {\r\n\t\t\tif (!accessibleLinker) {\r\n\t\t\t\treturn null;\r\n\t\t\t} else if (channel.label) {\r\n\t\t\t\treturn channel.label;\r\n\t\t\t} else {\r\n\t\t\t\t// backwards compatibility\r\n\t\t\t\treturn getChannelLabelFromIndex(channel.name, FSBL.Clients.LinkerClient.getAllChannels());\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tif (!this.state.channels) {\r\n\t\t\treturn <div className=\"linker-groups\"></div>;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Iterate through the channels that the window belongs to, render a colored bar to denote channel membership.\r\n\t\t */\r\n\t\tlet channels = self.state.channels.map((channel) => {\r\n\t\t\tconst suffix = accessibleLinker ? ` linker-group-accessible linker-${channel.label}` : \"\";\r\n\t\t\tlet classNames = `linker-group${suffix}`;\r\n\t\t\treturn (\r\n\t\t\t\t<div\r\n\t\t\t\t\tkey={channel.name}\r\n\t\t\t\t\tclassName={classNames}\r\n\t\t\t\t\ttitle={`Channel ${getChannelLabelFromIndex(channel.name, FSBL.Clients.LinkerClient.getAllChannels())}`}\r\n\t\t\t\t\tstyle={{ background: channel.color }}\r\n\t\t\t\t\tonMouseUp={function (e) {\r\n\t\t\t\t\t\tself.onClick(e, channel.name);\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t{getLabel(channel)}\r\n\t\t\t\t</div>\r\n\t\t\t);\r\n\t\t});\r\n\t\treturn <div className=\"linker-groups\">{channels}</div>;\r\n\t}\r\n}\r\n"]}
1
+ {"version":3,"file":"LinkerGroupsDeprecated.js","sourceRoot":"","sources":["../../../../../src/components/windowTitleBar/components/left/LinkerGroupsDeprecated.jsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright 2017 by ChartIQ, Inc.\n * All rights reserved.\n *\n * This is a deprecated version of LinkerGroups that uses linkerClient. It is not compatible with FDC3 interop.\n */\nimport * as React from \"react\";\nimport { getStore } from \"../../stores/windowTitleBarStore\";\nimport { getChannelLabelFromIndex } from \"../../../shared/linkerUtil\";\nlet windowTitleBarStore;\nexport default class LinkerGroups extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\t/**\n\t\t * We assign in the constructor instead of via a require at the top of the file because the store is initialized asynchronously.\n\t\t */\n\t\twindowTitleBarStore = getStore();\n\t\tthis.bindCorrectContext();\n\t\tthis.state = {\n\t\t\tchannels: FSBL.Clients.LinkerClient.getState().channels,\n\t\t\taccessibleLinker: false,\n\t\t};\n\t}\n\n\t/**\n\t * This is necessary to make sure that the `this` inside of the callback is correct.\n\t *\n\t * @memberof LinkerGroups\n\t */\n\tbindCorrectContext() {\n\t\tthis.onChannelChange = this.onChannelChange.bind(this);\n\t}\n\n\t/**\n\t * Add listeners to the store.\n\t *\n\t * @memberof LinkerGroups\n\t */\n\tcomponentDidMount() {\n\t\t// are we using the accessible linker?\n\t\tFSBL.Clients.ConfigClient.getValue(\"finsemble.accessibleLinker\", (err, value) => {\n\t\t\tif (err) {\n\t\t\t\tconsole.err(\"Error getting accessibleLinker value\", err);\n\t\t\t}\n\n\t\t\t// Default value for accessibleLinker is true.\n\t\t\tthis.setState({\n\t\t\t\taccessibleLinker: value && typeof value === \"boolean\" ? value : true,\n\t\t\t});\n\t\t});\n\t\twindowTitleBarStore.addListener({ field: \"Linker.channels\" }, this.onChannelChange);\n\t}\n\n\t/**\n\t * Remove listeners from the store.\n\t *\n\t * @memberof LinkerGroups\n\t */\n\tcomponentWillUnmount() {\n\t\twindowTitleBarStore.removeListener({ field: \"Linker.channels\" }, this.onChannelChange);\n\t}\n\n\t/**\n\t * When the user adds/removes a link in the linkerWindow, the values in the store will change, and this listener will be invoked.\n\t *\n\t * @param {any} err\n\t * @param {any} response\n\t * @memberof LinkerGroups\n\t */\n\tonChannelChange(err, response) {\n\t\tthis.setState({ channels: response.value });\n\t}\n\n\t/**\n\t * Whenever the store changes, set state.\n\t *\n\t * @param {any} newState\n\t * @memberof LinkerGroups\n\t */\n\tonStoreChanged(newState) {\n\t\tthis.setState(newState);\n\t}\n\n\tonClick(e, channel) {\n\t\tFSBL.Clients.LinkerClient.bringAllToFront({\n\t\t\tchannel: channel,\n\t\t\trestoreWindows: true,\n\t\t});\n\t}\n\n\t/**\n\t * Render method.\n\t *\n\t * @returns\n\t * @memberof LinkerGroups\n\t */\n\trender() {\n\t\tlet self = this;\n\t\tconst { accessibleLinker } = this.state;\n\t\tconst getLabel = (channel) => {\n\t\t\tif (!accessibleLinker) {\n\t\t\t\treturn null;\n\t\t\t} else if (channel.label) {\n\t\t\t\treturn channel.label;\n\t\t\t} else {\n\t\t\t\t// backwards compatibility\n\t\t\t\treturn getChannelLabelFromIndex(channel.name, FSBL.Clients.LinkerClient.getAllChannels());\n\t\t\t}\n\t\t};\n\n\t\tif (!this.state.channels) {\n\t\t\treturn <div className=\"linker-groups\"></div>;\n\t\t}\n\n\t\t/**\n\t\t * Iterate through the channels that the window belongs to, render a colored bar to denote channel membership.\n\t\t */\n\t\tlet channels = self.state.channels.map((channel) => {\n\t\t\tconst suffix = accessibleLinker ? ` linker-group-accessible linker-${channel.label}` : \"\";\n\t\t\tlet classNames = `linker-group${suffix}`;\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tkey={channel.name}\n\t\t\t\t\tclassName={classNames}\n\t\t\t\t\ttitle={`Channel ${getChannelLabelFromIndex(channel.name, FSBL.Clients.LinkerClient.getAllChannels())}`}\n\t\t\t\t\tstyle={{ background: channel.color }}\n\t\t\t\t\tonMouseUp={function (e) {\n\t\t\t\t\t\tself.onClick(e, channel.name);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{getLabel(channel)}\n\t\t\t\t</div>\n\t\t\t);\n\t\t});\n\t\treturn <div className=\"linker-groups\">{channels}</div>;\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ShareButton.js","sourceRoot":"","sources":["../../../../../src/components/windowTitleBar/components/left/ShareButton.jsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,CACvB,6BAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,4BAA4B;IACjF,mDAA4B;IAC5B,8BAAM,CAAC,EAAC,yFAAyF,EAAC,IAAI,EAAC,SAAS,GAAG;IACnH,8BACC,CAAC,EAAC,4FAA4F,EAC9F,IAAI,EAAC,SAAS,GACb;IACF,8BAAM,IAAI,EAAC,SAAS,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,KAAK,EAAC,GAAG,EAAC,MAAM,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,GAAG;IAChE,8BAAM,MAAM,EAAC,SAAS,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,CAAC,EAAC,0BAA0B,GAAG,CAC9F,CACN,CAAC;AAEF,IAAI,mBAAmB,CAAC;AACxB,MAAM,OAAO,WAAY,SAAQ,KAAK,CAAC,SAAS;IAG/C,YAAY,KAAK;QAChB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAI1B,mBAAmB,GAAG,QAAQ,EAAE,CAAC;QAEjC,IAAI,CAAC,KAAK,GAAG;YACZ,UAAU,EAAE,OAAO;SACnB,CAAC;IACH,CAAC;IAOD,kBAAkB;QACjB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAQD,WAAW,CAAC,EAAE;QACb,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;IAOD,yBAAyB;QACxB,mBAAmB,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC9F,CAAC;IAOD,oBAAoB;QACnB,mBAAmB,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACjG,CAAC;IAQD,WAAW,CAAC,aAAa;QACxB,IAAI,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM;QAML,OAAO,CACN,0CACE,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,CAChC,6BACC,SAAS,EAAC,sBAAsB,EAChC,KAAK,EAAC,eAAe,gBACT,IAAI,CAAC,KAAK,CAAC,UAAU,EACjC,SAAS,EAAC,MAAM,EAChB,WAAW,EAAE,IAAI,CAAC,WAAW;YAE7B,oBAAC,SAAS,OAAG;YACb,oBAAC,sBAAsB,IAAC,IAAI,EAAC,KAAK,EAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAI,CAC1E,CACN,CACC,CACH,CAAC;IACH,CAAC;;AApFM,uBAAW,GAAG,qBAAqB,CAAC","sourcesContent":["/*!\r\n * Copyright 2017 by ChartIQ, Inc.\r\n * All rights reserved.\r\n */\r\nimport * as React from \"react\";\r\nimport { FinsembleHoverDetector } from \"../../../legacyControls/FinsembleHoverDetector\";\r\nimport { WindowTitleBarContext } from \"../../windowTitleBarContext\";\r\nimport { getStore } from \"../../stores/windowTitleBarStore\";\r\nconst ShareIcon = () => (\r\n\t<svg width=\"20\" height=\"16\" viewBox=\"0 2 16 13\" xmlns=\"http://www.w3.org/2000/svg\">\r\n\t\t<title>Drag To Share</title>\r\n\t\t<path d=\"M7 3H6V1H1v12h5v-3h1v3a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V1a1 1 0 0 1 1-1h5a1 1 0 0 1 1 1v2z\" fill=\"#8E939F\" />\r\n\t\t<path\r\n\t\t\td=\"M9 11h1v2h5V1h-5v1H9V1a1 1 0 0 1 1-1h5a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1h-5a1 1 0 0 1-1-1v-2z\"\r\n\t\t\tfill=\"#ECEDEF\"\r\n\t\t/>\r\n\t\t<rect fill=\"#ECEDEF\" x=\"4\" y=\"6\" width=\"8\" height=\"1\" rx=\".5\" />\r\n\t\t<path stroke=\"#ECEDEF\" strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M9 9l2.755-2.348L9 4.128\" />\r\n\t</svg>\r\n);\r\n\r\nlet windowTitleBarStore;\r\nexport class ShareButton extends React.Component {\r\n\tstatic contextType = WindowTitleBarContext;\r\n\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tthis.bindCorrectContext();\r\n\t\t/**\r\n\t\t * We assign in the constructor instead of via a require at the top of the file because the store is initialized asynchronously.\r\n\t\t */\r\n\t\twindowTitleBarStore = getStore();\r\n\r\n\t\tthis.state = {\r\n\t\t\thoverState: \"false\",\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * This is necessary to make sure that the `this` inside of the callback is correct.\r\n\t *\r\n\t * @memberof ShareButton\r\n\t */\r\n\tbindCorrectContext() {\r\n\t\tthis.hoverAction = this.hoverAction.bind(this);\r\n\t}\r\n\r\n\t/**\r\n\t * When the user starts to drag the share button, let the DragAndDropClient know.\r\n\t *\r\n\t * @param {any} ev\r\n\t * @memberof ShareButton\r\n\t */\r\n\tonDragStart(ev) {\r\n\t\tFSBL.Clients.DragAndDropClient.dragStart(ev);\r\n\t}\r\n\r\n\t/**\r\n\t * Add listeners to store.\r\n\t *\r\n\t * @memberof ShareButton\r\n\t */\r\n\tUNSAFE_componentWillMount() {\r\n\t\twindowTitleBarStore.addListener({ field: \"Sharer.receiverHandler\" }, this.onReceiverhandler);\r\n\t}\r\n\r\n\t/**\r\n\t * Remove listeners from the store.\r\n\t *\r\n\t * @memberof ShareButton\r\n\t */\r\n\tcomponentWillUnmount() {\r\n\t\twindowTitleBarStore.removeListener({ field: \"Sharer.receiverHandler\" }, this.onReceiverhandler);\r\n\t}\r\n\r\n\t/**\r\n\t * When your mouse enters/leaves the hoverDetector, this function is invoked.\r\n\t *\r\n\t * @param {any} newHoverState\r\n\t * @memberof LinkerButton\r\n\t */\r\n\thoverAction(newHoverState) {\r\n\t\tthis.setState({ hoverState: newHoverState });\r\n\t}\r\n\r\n\trender() {\r\n\t\t/* [Terry] was causing Sharer to never show. Deprecated?\r\n\t\tif (!this.state.emitterEnabled) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\t*/\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t{this.context.showShareButton && (\r\n\t\t\t\t\t<div\r\n\t\t\t\t\t\tclassName=\"fsbl-icon fsbl-share\"\r\n\t\t\t\t\t\ttitle=\"Drag To Share\"\r\n\t\t\t\t\t\tdata-hover={this.state.hoverState}\r\n\t\t\t\t\t\tdraggable=\"true\"\r\n\t\t\t\t\t\tonDragStart={this.onDragStart}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<ShareIcon />\r\n\t\t\t\t\t\t<FinsembleHoverDetector edge=\"top\" hoverAction={this.hoverAction.bind(this)} />\r\n\t\t\t\t\t</div>\r\n\t\t\t\t)}\r\n\t\t\t</>\r\n\t\t);\r\n\t}\r\n}\r\n"]}
1
+ {"version":3,"file":"ShareButton.js","sourceRoot":"","sources":["../../../../../src/components/windowTitleBar/components/left/ShareButton.jsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,CACvB,6BAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,4BAA4B;IACjF,mDAA4B;IAC5B,8BAAM,CAAC,EAAC,yFAAyF,EAAC,IAAI,EAAC,SAAS,GAAG;IACnH,8BACC,CAAC,EAAC,4FAA4F,EAC9F,IAAI,EAAC,SAAS,GACb;IACF,8BAAM,IAAI,EAAC,SAAS,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,KAAK,EAAC,GAAG,EAAC,MAAM,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,GAAG;IAChE,8BAAM,MAAM,EAAC,SAAS,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,CAAC,EAAC,0BAA0B,GAAG,CAC9F,CACN,CAAC;AAEF,IAAI,mBAAmB,CAAC;AACxB,MAAM,OAAO,WAAY,SAAQ,KAAK,CAAC,SAAS;IAG/C,YAAY,KAAK;QAChB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAI1B,mBAAmB,GAAG,QAAQ,EAAE,CAAC;QAEjC,IAAI,CAAC,KAAK,GAAG;YACZ,UAAU,EAAE,OAAO;SACnB,CAAC;IACH,CAAC;IAOD,kBAAkB;QACjB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAQD,WAAW,CAAC,EAAE;QACb,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;IAOD,yBAAyB;QACxB,mBAAmB,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC9F,CAAC;IAOD,oBAAoB;QACnB,mBAAmB,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACjG,CAAC;IAQD,WAAW,CAAC,aAAa;QACxB,IAAI,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM;QAML,OAAO,CACN,0CACE,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,CAChC,6BACC,SAAS,EAAC,sBAAsB,EAChC,KAAK,EAAC,eAAe,gBACT,IAAI,CAAC,KAAK,CAAC,UAAU,EACjC,SAAS,EAAC,MAAM,EAChB,WAAW,EAAE,IAAI,CAAC,WAAW;YAE7B,oBAAC,SAAS,OAAG;YACb,oBAAC,sBAAsB,IAAC,IAAI,EAAC,KAAK,EAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAI,CAC1E,CACN,CACC,CACH,CAAC;IACH,CAAC;;AApFM,uBAAW,GAAG,qBAAqB,CAAC","sourcesContent":["/*!\n * Copyright 2017 by ChartIQ, Inc.\n * All rights reserved.\n */\nimport * as React from \"react\";\nimport { FinsembleHoverDetector } from \"../../../legacyControls/FinsembleHoverDetector\";\nimport { WindowTitleBarContext } from \"../../windowTitleBarContext\";\nimport { getStore } from \"../../stores/windowTitleBarStore\";\nconst ShareIcon = () => (\n\t<svg width=\"20\" height=\"16\" viewBox=\"0 2 16 13\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<title>Drag To Share</title>\n\t\t<path d=\"M7 3H6V1H1v12h5v-3h1v3a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V1a1 1 0 0 1 1-1h5a1 1 0 0 1 1 1v2z\" fill=\"#8E939F\" />\n\t\t<path\n\t\t\td=\"M9 11h1v2h5V1h-5v1H9V1a1 1 0 0 1 1-1h5a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1h-5a1 1 0 0 1-1-1v-2z\"\n\t\t\tfill=\"#ECEDEF\"\n\t\t/>\n\t\t<rect fill=\"#ECEDEF\" x=\"4\" y=\"6\" width=\"8\" height=\"1\" rx=\".5\" />\n\t\t<path stroke=\"#ECEDEF\" strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M9 9l2.755-2.348L9 4.128\" />\n\t</svg>\n);\n\nlet windowTitleBarStore;\nexport class ShareButton extends React.Component {\n\tstatic contextType = WindowTitleBarContext;\n\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.bindCorrectContext();\n\t\t/**\n\t\t * We assign in the constructor instead of via a require at the top of the file because the store is initialized asynchronously.\n\t\t */\n\t\twindowTitleBarStore = getStore();\n\n\t\tthis.state = {\n\t\t\thoverState: \"false\",\n\t\t};\n\t}\n\n\t/**\n\t * This is necessary to make sure that the `this` inside of the callback is correct.\n\t *\n\t * @memberof ShareButton\n\t */\n\tbindCorrectContext() {\n\t\tthis.hoverAction = this.hoverAction.bind(this);\n\t}\n\n\t/**\n\t * When the user starts to drag the share button, let the DragAndDropClient know.\n\t *\n\t * @param {any} ev\n\t * @memberof ShareButton\n\t */\n\tonDragStart(ev) {\n\t\tFSBL.Clients.DragAndDropClient.dragStart(ev);\n\t}\n\n\t/**\n\t * Add listeners to store.\n\t *\n\t * @memberof ShareButton\n\t */\n\tUNSAFE_componentWillMount() {\n\t\twindowTitleBarStore.addListener({ field: \"Sharer.receiverHandler\" }, this.onReceiverhandler);\n\t}\n\n\t/**\n\t * Remove listeners from the store.\n\t *\n\t * @memberof ShareButton\n\t */\n\tcomponentWillUnmount() {\n\t\twindowTitleBarStore.removeListener({ field: \"Sharer.receiverHandler\" }, this.onReceiverhandler);\n\t}\n\n\t/**\n\t * When your mouse enters/leaves the hoverDetector, this function is invoked.\n\t *\n\t * @param {any} newHoverState\n\t * @memberof LinkerButton\n\t */\n\thoverAction(newHoverState) {\n\t\tthis.setState({ hoverState: newHoverState });\n\t}\n\n\trender() {\n\t\t/* [Terry] was causing Sharer to never show. Deprecated?\n\t\tif (!this.state.emitterEnabled) {\n\t\t\treturn null;\n\t\t}\n\t\t*/\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{this.context.showShareButton && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"fsbl-icon fsbl-share\"\n\t\t\t\t\t\ttitle=\"Drag To Share\"\n\t\t\t\t\t\tdata-hover={this.state.hoverState}\n\t\t\t\t\t\tdraggable=\"true\"\n\t\t\t\t\t\tonDragStart={this.onDragStart}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ShareIcon />\n\t\t\t\t\t\t<FinsembleHoverDetector edge=\"top\" hoverAction={this.hoverAction.bind(this)} />\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</>\n\t\t);\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"AlwaysOnTopButton.js","sourceRoot":"","sources":["../../../../../src/components/windowTitleBar/components/right/AlwaysOnTopButton.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACrC,MAAM,EAAE,WAAW,EAAE,qBAAqB,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;IAEvF,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,CAAC;IAEpF,MAAM,OAAO,GAAG,gCAAgC,WAAW,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAE7F,OAAO,CACN,0CACE,qBAAqB,IAAI,CACzB,6BAAK,SAAS,EAAE,OAAO,EAAE,EAAE,EAAC,oBAAoB,EAAC,KAAK,EAAC,eAAe,EAAC,OAAO,EAAE,cAAc;QAC7F,2BAAG,SAAS,EAAE,kBAAkB,GAAI,CAC/B,CACN,CACC,CACH,CAAC;AACH,CAAC,CAAC","sourcesContent":["/*!\r\n * Copyright 2017 by ChartIQ, Inc.\r\n * All rights reserved.\r\n */\r\nimport * as React from \"react\";\r\nimport { WindowTitleBarContext } from \"../../windowTitleBarContext\";\r\n\r\nexport const AlwaysOnTopButton = () => {\r\n\tconst { alwaysOnTop, showAlwaysOnTopButton } = React.useContext(WindowTitleBarContext);\r\n\r\n\tconst setAlwaysOnTop = () => FSBL.Clients.WindowClient.setAlwaysOnTop(!alwaysOnTop);\r\n\r\n\tconst classes = `fsbl-icon fsbl-always-on-top ${alwaysOnTop ? \"fsbl-icon-highlighted\" : \"\"}`;\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t{showAlwaysOnTopButton && (\r\n\t\t\t\t<div className={classes} id=\"fsbl-always-on-top\" title=\"Always On Top\" onClick={setAlwaysOnTop}>\r\n\t\t\t\t\t<i className={\"ff-always-on-top\"} />\r\n\t\t\t\t</div>\r\n\t\t\t)}\r\n\t\t</>\r\n\t);\r\n};\r\n"]}
1
+ {"version":3,"file":"AlwaysOnTopButton.js","sourceRoot":"","sources":["../../../../../src/components/windowTitleBar/components/right/AlwaysOnTopButton.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACrC,MAAM,EAAE,WAAW,EAAE,qBAAqB,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;IAEvF,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,CAAC;IAEpF,MAAM,OAAO,GAAG,gCAAgC,WAAW,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAE7F,OAAO,CACN,0CACE,qBAAqB,IAAI,CACzB,6BAAK,SAAS,EAAE,OAAO,EAAE,EAAE,EAAC,oBAAoB,EAAC,KAAK,EAAC,eAAe,EAAC,OAAO,EAAE,cAAc;QAC7F,2BAAG,SAAS,EAAE,kBAAkB,GAAI,CAC/B,CACN,CACC,CACH,CAAC;AACH,CAAC,CAAC","sourcesContent":["/*!\n * Copyright 2017 by ChartIQ, Inc.\n * All rights reserved.\n */\nimport * as React from \"react\";\nimport { WindowTitleBarContext } from \"../../windowTitleBarContext\";\n\nexport const AlwaysOnTopButton = () => {\n\tconst { alwaysOnTop, showAlwaysOnTopButton } = React.useContext(WindowTitleBarContext);\n\n\tconst setAlwaysOnTop = () => FSBL.Clients.WindowClient.setAlwaysOnTop(!alwaysOnTop);\n\n\tconst classes = `fsbl-icon fsbl-always-on-top ${alwaysOnTop ? \"fsbl-icon-highlighted\" : \"\"}`;\n\n\treturn (\n\t\t<>\n\t\t\t{showAlwaysOnTopButton && (\n\t\t\t\t<div className={classes} id=\"fsbl-always-on-top\" title=\"Always On Top\" onClick={setAlwaysOnTop}>\n\t\t\t\t\t<i className={\"ff-always-on-top\"} />\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</>\n\t);\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"CloseButton.js","sourceRoot":"","sources":["../../../../../src/components/windowTitleBar/components/right/CloseButton.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AACxF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AASpE,MAAM,OAAO,WAAY,SAAQ,KAAK,CAAC,SAAyB;IAG/D,YAAY,KAAa;QACxB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;IACtC,CAAC;IAOD,kBAAkB;QACjB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAOD,OAAO;QACN,aAAa,CAAC,UAAU,EAAE,CAAC;IAC5B,CAAC;IAQD,WAAW,CAAC,aAAqB;QAChC,IAAI,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;IAC9C,CAAC;IAMD,MAAM;QACL,OAAO,CACN,0CACE,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,CAChC,6BACC,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,SAAS,EAAC,sBAAsB,gBACpB,IAAI,CAAC,KAAK,CAAC,UAAU,EACjC,KAAK,EAAC,OAAO,EACb,EAAE,EAAC,mBAAmB;YAEtB,oBAAC,sBAAsB,IAAC,IAAI,EAAC,WAAW,EAAC,WAAW,EAAE,IAAI,CAAC,WAAW,GAAI;YAC1E,2BAAG,SAAS,EAAC,UAAU,GAAK,CACvB,CACN,CACC,CACH,CAAC;IACH,CAAC;;AAzDM,uBAAW,GAAG,qBAAqB,CAAC","sourcesContent":["/*!\r\n * Copyright 2017 by ChartIQ, Inc.\r\n * All rights reserved.\r\n */\r\nimport * as React from \"react\";\r\nimport { FinsembleHoverDetector } from \"../../../legacyControls/FinsembleHoverDetector\";\r\nimport { Actions as HeaderActions } from \"../../stores/windowTitleBarStore\";\r\nimport { WindowTitleBarContext } from \"../../windowTitleBarContext\";\r\n\r\ninterface IProps {}\r\ninterface IState {\r\n\thoverState: string;\r\n}\r\n/**\r\n * Close button, located on the far right of the window Manager.\r\n */\r\nexport class CloseButton extends React.Component<IProps, IState> {\r\n\tstatic contextType = WindowTitleBarContext;\r\n\r\n\tconstructor(props: IProps) {\r\n\t\tsuper(props);\r\n\t\tthis.bindCorrectContext();\r\n\t\tthis.state = { hoverState: \"false\" };\r\n\t}\r\n\r\n\t/**\r\n\t * This is necessary to make sure that the `this` inside of the callback is correct.\r\n\t *\r\n\t * @memberof CloseButton\r\n\t */\r\n\tbindCorrectContext() {\r\n\t\tthis.hoverAction = this.hoverAction.bind(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Listener invoked when the user clicks the close button.\r\n\t *\r\n\t * @memberof CloseButton\r\n\t */\r\n\tonClick() {\r\n\t\tHeaderActions.clickClose();\r\n\t}\r\n\r\n\t/**\r\n\t * When your mouse enters/leaves the hoverDetector, this function is invoked.\r\n\t *\r\n\t * @param {any} newHoverState\r\n\t * @memberof LinkerButton\r\n\t */\r\n\thoverAction(newHoverState: string) {\r\n\t\tthis.setState({ hoverState: newHoverState });\r\n\t}\r\n\r\n\t/**\r\n\t * Render method\r\n\t * @memberof CloseButton\r\n\t */\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t{this.context.showCloseButton && (\r\n\t\t\t\t\t<div\r\n\t\t\t\t\t\tonClick={this.onClick}\r\n\t\t\t\t\t\tclassName=\"fsbl-icon fsbl-close\"\r\n\t\t\t\t\t\tdata-hover={this.state.hoverState}\r\n\t\t\t\t\t\ttitle=\"Close\"\r\n\t\t\t\t\t\tid=\"fsbl-window-close\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<FinsembleHoverDetector edge=\"top right\" hoverAction={this.hoverAction} />\r\n\t\t\t\t\t\t<i className=\"ff-close\"></i>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t)}\r\n\t\t\t</>\r\n\t\t);\r\n\t}\r\n}\r\n"]}
1
+ {"version":3,"file":"CloseButton.js","sourceRoot":"","sources":["../../../../../src/components/windowTitleBar/components/right/CloseButton.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AACxF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AASpE,MAAM,OAAO,WAAY,SAAQ,KAAK,CAAC,SAAyB;IAG/D,YAAY,KAAa;QACxB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;IACtC,CAAC;IAOD,kBAAkB;QACjB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAOD,OAAO;QACN,aAAa,CAAC,UAAU,EAAE,CAAC;IAC5B,CAAC;IAQD,WAAW,CAAC,aAAqB;QAChC,IAAI,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;IAC9C,CAAC;IAMD,MAAM;QACL,OAAO,CACN,0CACE,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,CAChC,6BACC,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,SAAS,EAAC,sBAAsB,gBACpB,IAAI,CAAC,KAAK,CAAC,UAAU,EACjC,KAAK,EAAC,OAAO,EACb,EAAE,EAAC,mBAAmB;YAEtB,oBAAC,sBAAsB,IAAC,IAAI,EAAC,WAAW,EAAC,WAAW,EAAE,IAAI,CAAC,WAAW,GAAI;YAC1E,2BAAG,SAAS,EAAC,UAAU,GAAK,CACvB,CACN,CACC,CACH,CAAC;IACH,CAAC;;AAzDM,uBAAW,GAAG,qBAAqB,CAAC","sourcesContent":["/*!\n * Copyright 2017 by ChartIQ, Inc.\n * All rights reserved.\n */\nimport * as React from \"react\";\nimport { FinsembleHoverDetector } from \"../../../legacyControls/FinsembleHoverDetector\";\nimport { Actions as HeaderActions } from \"../../stores/windowTitleBarStore\";\nimport { WindowTitleBarContext } from \"../../windowTitleBarContext\";\n\ninterface IProps {}\ninterface IState {\n\thoverState: string;\n}\n/**\n * Close button, located on the far right of the window Manager.\n */\nexport class CloseButton extends React.Component<IProps, IState> {\n\tstatic contextType = WindowTitleBarContext;\n\n\tconstructor(props: IProps) {\n\t\tsuper(props);\n\t\tthis.bindCorrectContext();\n\t\tthis.state = { hoverState: \"false\" };\n\t}\n\n\t/**\n\t * This is necessary to make sure that the `this` inside of the callback is correct.\n\t *\n\t * @memberof CloseButton\n\t */\n\tbindCorrectContext() {\n\t\tthis.hoverAction = this.hoverAction.bind(this);\n\t}\n\n\t/**\n\t * Listener invoked when the user clicks the close button.\n\t *\n\t * @memberof CloseButton\n\t */\n\tonClick() {\n\t\tHeaderActions.clickClose();\n\t}\n\n\t/**\n\t * When your mouse enters/leaves the hoverDetector, this function is invoked.\n\t *\n\t * @param {any} newHoverState\n\t * @memberof LinkerButton\n\t */\n\thoverAction(newHoverState: string) {\n\t\tthis.setState({ hoverState: newHoverState });\n\t}\n\n\t/**\n\t * Render method\n\t * @memberof CloseButton\n\t */\n\trender() {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{this.context.showCloseButton && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tonClick={this.onClick}\n\t\t\t\t\t\tclassName=\"fsbl-icon fsbl-close\"\n\t\t\t\t\t\tdata-hover={this.state.hoverState}\n\t\t\t\t\t\ttitle=\"Close\"\n\t\t\t\t\t\tid=\"fsbl-window-close\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<FinsembleHoverDetector edge=\"top right\" hoverAction={this.hoverAction} />\n\t\t\t\t\t\t<i className=\"ff-close\"></i>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</>\n\t\t);\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"GroupingButton.js","sourceRoot":"","sources":["../../../../../src/components/windowTitleBar/components/right/GroupingButton.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEtF,IAAI,mBAA+B,CAAC;AASpC,MAAM,OAAO,cAAe,SAAQ,KAAK,CAAC,SAAyB;IAGlE,YAAY,KAAa;QACxB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAIzB,mBAAmB,GAAG,QAAQ,EAAE,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG;YACZ,kBAAkB,EAAE,KAAK;YACzB,WAAW,EAAE,mBAAmB,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;YACxE,UAAU,EAAE,OAAO;SACnB,CAAC;IACH,CAAC;IAMD,iBAAiB;QAChB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAMD,yBAAyB;QACxB,mBAAmB,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACrF,CAAC;IAMD,oBAAoB;QACnB,mBAAmB,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACxF,CAAC;IAQD,cAAc,CAAC,GAAQ,EAAE,QAAa;QACrC,IAAI,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAChD,CAAC;IAQD,WAAW,CAAC,aAAqB;QAChC,IAAI,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;IAC9C,CAAC;IAOD,OAAO;QACN,aAAa,CAAC,WAAW,EAAE,CAAC;IAC7B,CAAC;IAOD,MAAM;QACL,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,WAAW,GAAG,8CAA8C,CAAC;QAEjE,SAAS,GAAG,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACzF,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB,CAAC;QAExF,IAAI,SAAS,KAAK,aAAa,EAAE;YAChC,WAAW,GAAG,GAAG,WAAW,wBAAwB,CAAC;SACrD;QAED,OAAO,CACN,0CACE,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,CAClC,6BACC,SAAS,EAAE,WAAW,EACtB,EAAE,EAAC,qBAAqB,EACxB,KAAK,EAAE,OAAO,gBACF,IAAI,CAAC,KAAK,CAAC,UAAU,EACjC,OAAO,EAAE,IAAI,CAAC,OAAO;YAErB,oBAAC,sBAAsB,IAAC,IAAI,EAAC,KAAK,EAAC,WAAW,EAAE,IAAI,CAAC,WAAW,GAAI;YACpE,2BAAG,SAAS,EAAE,SAAS,GAAM,CACxB,CACN,CACC,CACH,CAAC;IACH,CAAC;;AAvGM,0BAAW,GAAG,qBAAqB,CAAC","sourcesContent":["/*!\r\n * Copyright 2017 by ChartIQ, Inc.\r\n * All rights reserved.\r\n */\r\nimport * as React from \"react\";\r\nimport { FinsembleHoverDetector } from \"../../../legacyControls/FinsembleHoverDetector\";\r\nimport { WindowTitleBarContext } from \"../../windowTitleBarContext\";\r\nimport { getStore, Actions as HeaderActions } from \"../../stores/windowTitleBarStore\";\r\nimport StoreModel from \"@finsemble/finsemble-core/types/clients/StoreModel\";\r\nlet windowTitleBarStore: StoreModel;\r\n\r\ninterface IProps {}\r\ninterface IState {\r\n\tshowDockingTooltip: boolean;\r\n\tdockingIcon: string | false;\r\n\thoverState: string;\r\n}\r\n\r\nexport class GroupingButton extends React.Component<IProps, IState> {\r\n\tstatic contextType = WindowTitleBarContext;\r\n\r\n\tconstructor(props: IProps) {\r\n\t\tsuper(props);\r\n\t\tthis.bindEventHandlers();\r\n\t\t/**\r\n\t\t * We assign in the constructor instead of via a require at the top of the file because the store is initialized asynchronously.\r\n\t\t */\r\n\t\twindowTitleBarStore = getStore();\r\n\t\tthis.state = {\r\n\t\t\tshowDockingTooltip: false,\r\n\t\t\tdockingIcon: windowTitleBarStore.getValue({ field: \"Main.dockingIcon\" }),\r\n\t\t\thoverState: \"false\",\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * This is necessary to make sure that the `this` inside of the callback is correct.\r\n\t *\r\n\t */\r\n\tbindEventHandlers() {\r\n\t\tthis.onClick = this.onClick.bind(this);\r\n\t\tthis.onStoreChanged = this.onStoreChanged.bind(this);\r\n\t\tthis.hoverAction = this.hoverAction.bind(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Add listeners to the store.\r\n\t *\r\n\t */\r\n\tUNSAFE_componentWillMount() {\r\n\t\twindowTitleBarStore.addListener({ field: \"Main.dockingIcon\" }, this.onStoreChanged);\r\n\t}\r\n\r\n\t/**\r\n\t * Remove listeners from the store.\r\n\t *\r\n\t */\r\n\tcomponentWillUnmount() {\r\n\t\twindowTitleBarStore.removeListener({ field: \"Main.dockingIcon\" }, this.onStoreChanged);\r\n\t}\r\n\r\n\t/**\r\n\t * Invoked when the store emits a change event. The icon will change. If we're grouped, we show the button that denotes group membership. If we're just snapped, we show the button that will group attached windows.\r\n\t *\r\n\t * @param {any} err\r\n\t * @param {any} response\r\n\t */\r\n\tonStoreChanged(err: any, response: any) {\r\n\t\tthis.setState({ dockingIcon: response.value });\r\n\t}\r\n\r\n\t/**\r\n\t * When your mouse enters/leaves the hoverDetector, this function is invoked.\r\n\t *\r\n\t * @param {any} newHoverState\r\n\t * @memberof LinkerButton\r\n\t */\r\n\thoverAction(newHoverState: string) {\r\n\t\tthis.setState({ hoverState: newHoverState });\r\n\t}\r\n\r\n\t/**\r\n\t * Invoked when the user clicks the docking button.\r\n\t *\r\n\t */\r\n\r\n\tonClick() {\r\n\t\tHeaderActions.toggleGroup();\r\n\t}\r\n\r\n\t/**\r\n\t * Render method\r\n\t *\r\n\t * @returns\r\n\t */\r\n\trender() {\r\n\t\tlet iconClass = \"ff-\";\r\n\t\tlet wrapClasses = \"fsbl-icon fsbl-icon-bordered docking-control\";\r\n\r\n\t\ticonClass = iconClass + (this.state.dockingIcon === \"ejector\" ? \"attached\" : \"detached\");\r\n\t\tlet toolTip = this.state.dockingIcon === \"ejector\" ? \"Detach Window\" : \"Attach Windows\";\r\n\r\n\t\tif (iconClass === \"ff-attached\") {\r\n\t\t\twrapClasses = `${wrapClasses} fsbl-icon-highlighted`;\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t{this.context.showDockingButton && (\r\n\t\t\t\t\t<div\r\n\t\t\t\t\t\tclassName={wrapClasses}\r\n\t\t\t\t\t\tid=\"fsbl-window-ejector\"\r\n\t\t\t\t\t\ttitle={toolTip}\r\n\t\t\t\t\t\tdata-hover={this.state.hoverState}\r\n\t\t\t\t\t\tonClick={this.onClick}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<FinsembleHoverDetector edge=\"top\" hoverAction={this.hoverAction} />\r\n\t\t\t\t\t\t<i className={iconClass}></i>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t)}\r\n\t\t\t</>\r\n\t\t);\r\n\t}\r\n}\r\n"]}
1
+ {"version":3,"file":"GroupingButton.js","sourceRoot":"","sources":["../../../../../src/components/windowTitleBar/components/right/GroupingButton.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEtF,IAAI,mBAA+B,CAAC;AASpC,MAAM,OAAO,cAAe,SAAQ,KAAK,CAAC,SAAyB;IAGlE,YAAY,KAAa;QACxB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAIzB,mBAAmB,GAAG,QAAQ,EAAE,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG;YACZ,kBAAkB,EAAE,KAAK;YACzB,WAAW,EAAE,mBAAmB,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;YACxE,UAAU,EAAE,OAAO;SACnB,CAAC;IACH,CAAC;IAMD,iBAAiB;QAChB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAMD,yBAAyB;QACxB,mBAAmB,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACrF,CAAC;IAMD,oBAAoB;QACnB,mBAAmB,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACxF,CAAC;IAQD,cAAc,CAAC,GAAQ,EAAE,QAAa;QACrC,IAAI,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAChD,CAAC;IAQD,WAAW,CAAC,aAAqB;QAChC,IAAI,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;IAC9C,CAAC;IAOD,OAAO;QACN,aAAa,CAAC,WAAW,EAAE,CAAC;IAC7B,CAAC;IAOD,MAAM;QACL,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,WAAW,GAAG,8CAA8C,CAAC;QAEjE,SAAS,GAAG,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACzF,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB,CAAC;QAExF,IAAI,SAAS,KAAK,aAAa,EAAE;YAChC,WAAW,GAAG,GAAG,WAAW,wBAAwB,CAAC;SACrD;QAED,OAAO,CACN,0CACE,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,CAClC,6BACC,SAAS,EAAE,WAAW,EACtB,EAAE,EAAC,qBAAqB,EACxB,KAAK,EAAE,OAAO,gBACF,IAAI,CAAC,KAAK,CAAC,UAAU,EACjC,OAAO,EAAE,IAAI,CAAC,OAAO;YAErB,oBAAC,sBAAsB,IAAC,IAAI,EAAC,KAAK,EAAC,WAAW,EAAE,IAAI,CAAC,WAAW,GAAI;YACpE,2BAAG,SAAS,EAAE,SAAS,GAAM,CACxB,CACN,CACC,CACH,CAAC;IACH,CAAC;;AAvGM,0BAAW,GAAG,qBAAqB,CAAC","sourcesContent":["/*!\n * Copyright 2017 by ChartIQ, Inc.\n * All rights reserved.\n */\nimport * as React from \"react\";\nimport { FinsembleHoverDetector } from \"../../../legacyControls/FinsembleHoverDetector\";\nimport { WindowTitleBarContext } from \"../../windowTitleBarContext\";\nimport { getStore, Actions as HeaderActions } from \"../../stores/windowTitleBarStore\";\nimport StoreModel from \"@finsemble/finsemble-core/types/clients/StoreModel\";\nlet windowTitleBarStore: StoreModel;\n\ninterface IProps {}\ninterface IState {\n\tshowDockingTooltip: boolean;\n\tdockingIcon: string | false;\n\thoverState: string;\n}\n\nexport class GroupingButton extends React.Component<IProps, IState> {\n\tstatic contextType = WindowTitleBarContext;\n\n\tconstructor(props: IProps) {\n\t\tsuper(props);\n\t\tthis.bindEventHandlers();\n\t\t/**\n\t\t * We assign in the constructor instead of via a require at the top of the file because the store is initialized asynchronously.\n\t\t */\n\t\twindowTitleBarStore = getStore();\n\t\tthis.state = {\n\t\t\tshowDockingTooltip: false,\n\t\t\tdockingIcon: windowTitleBarStore.getValue({ field: \"Main.dockingIcon\" }),\n\t\t\thoverState: \"false\",\n\t\t};\n\t}\n\n\t/**\n\t * This is necessary to make sure that the `this` inside of the callback is correct.\n\t *\n\t */\n\tbindEventHandlers() {\n\t\tthis.onClick = this.onClick.bind(this);\n\t\tthis.onStoreChanged = this.onStoreChanged.bind(this);\n\t\tthis.hoverAction = this.hoverAction.bind(this);\n\t}\n\n\t/**\n\t * Add listeners to the store.\n\t *\n\t */\n\tUNSAFE_componentWillMount() {\n\t\twindowTitleBarStore.addListener({ field: \"Main.dockingIcon\" }, this.onStoreChanged);\n\t}\n\n\t/**\n\t * Remove listeners from the store.\n\t *\n\t */\n\tcomponentWillUnmount() {\n\t\twindowTitleBarStore.removeListener({ field: \"Main.dockingIcon\" }, this.onStoreChanged);\n\t}\n\n\t/**\n\t * Invoked when the store emits a change event. The icon will change. If we're grouped, we show the button that denotes group membership. If we're just snapped, we show the button that will group attached windows.\n\t *\n\t * @param {any} err\n\t * @param {any} response\n\t */\n\tonStoreChanged(err: any, response: any) {\n\t\tthis.setState({ dockingIcon: response.value });\n\t}\n\n\t/**\n\t * When your mouse enters/leaves the hoverDetector, this function is invoked.\n\t *\n\t * @param {any} newHoverState\n\t * @memberof LinkerButton\n\t */\n\thoverAction(newHoverState: string) {\n\t\tthis.setState({ hoverState: newHoverState });\n\t}\n\n\t/**\n\t * Invoked when the user clicks the docking button.\n\t *\n\t */\n\n\tonClick() {\n\t\tHeaderActions.toggleGroup();\n\t}\n\n\t/**\n\t * Render method\n\t *\n\t * @returns\n\t */\n\trender() {\n\t\tlet iconClass = \"ff-\";\n\t\tlet wrapClasses = \"fsbl-icon fsbl-icon-bordered docking-control\";\n\n\t\ticonClass = iconClass + (this.state.dockingIcon === \"ejector\" ? \"attached\" : \"detached\");\n\t\tlet toolTip = this.state.dockingIcon === \"ejector\" ? \"Detach Window\" : \"Attach Windows\";\n\n\t\tif (iconClass === \"ff-attached\") {\n\t\t\twrapClasses = `${wrapClasses} fsbl-icon-highlighted`;\n\t\t}\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{this.context.showDockingButton && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={wrapClasses}\n\t\t\t\t\t\tid=\"fsbl-window-ejector\"\n\t\t\t\t\t\ttitle={toolTip}\n\t\t\t\t\t\tdata-hover={this.state.hoverState}\n\t\t\t\t\t\tonClick={this.onClick}\n\t\t\t\t\t>\n\t\t\t\t\t\t<FinsembleHoverDetector edge=\"top\" hoverAction={this.hoverAction} />\n\t\t\t\t\t\t<i className={iconClass}></i>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</>\n\t\t);\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MaximizeButton.js","sourceRoot":"","sources":["../../../../../src/components/windowTitleBar/components/right/MaximizeButton.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\r\n * Copyright 2017 by ChartIQ, Inc.\r\n * All rights reserved.\r\n */\r\nimport * as React from \"react\";\r\nimport { FinsembleHoverDetector } from \"../../../legacyControls/FinsembleHoverDetector\";\r\nimport { WindowTitleBarContext } from \"../../windowTitleBarContext\";\r\nimport { getStore, Actions as HeaderActions } from \"../../stores/windowTitleBarStore\";\r\nimport StoreModel from \"@finsemble/finsemble-core/types/clients/StoreModel\";\r\nlet windowTitleBarStore: StoreModel;\r\n\r\ninterface IProps {}\r\ninterface IState {\r\n\tmaximized: boolean;\r\n\thoverState: string;\r\n}\r\n\r\n/**\r\n * Maximize button. This button is hidden when the window is maximized. In its place is the restore button.\r\n */\r\nexport class MaximizeButton extends React.Component<IProps, IState> {\r\n\tstatic contextType = WindowTitleBarContext;\r\n\r\n\tconstructor(props: IProps) {\r\n\t\tsuper(props);\r\n\t\tthis.bindCorrectContext();\r\n\t\t/**\r\n\t\t * We assign in the constructor instead of via a require at the top of the file because the store is initialized asynchronously.\r\n\t\t */\r\n\t\twindowTitleBarStore = getStore();\r\n\t\tthis.state = {\r\n\t\t\tmaximized: windowTitleBarStore.getValue({ field: \"Maximize.maximized\" }),\r\n\t\t\thoverState: \"false\",\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * This is necessary to make sure that the `this` inside of the callback is correct.\r\n\t *\r\n\t * @memberof MaximizeButton\r\n\t */\r\n\tbindCorrectContext() {\r\n\t\tthis.onMaximized = this.onMaximized.bind(this);\r\n\t\tthis.onRestored = this.onRestored.bind(this);\r\n\t\tthis.hoverAction = this.hoverAction.bind(this);\r\n\t}\r\n\r\n\t/**\r\n\t * When the state changes, this listener is invoked. There are two states: Not maximized, and maximized. When the window is maximized, the button changes to an icon that denotes \"Restore to previous size.\"\r\n\t *\r\n\t * @param {any} err\r\n\t * @param {any} response\r\n\t * @memberof MaximizeButton\r\n\t */\r\n\tonRestored() {\r\n\t\tthis.setState({ maximized: false });\r\n\t}\r\n\r\n\tonMaximized() {\r\n\t\tthis.setState({ maximized: true });\r\n\t}\r\n\r\n\t/**\r\n\t * Invoked when the user clicks the button.\r\n\t *\r\n\t * @memberof MaximizeButton\r\n\t */\r\n\tonClick() {\r\n\t\tHeaderActions.clickMaximize();\r\n\t}\r\n\r\n\t/**\r\n\t * Add listeners to the store.\r\n\t *\r\n\t * @memberof MaximizeButton\r\n\t */\r\n\tUNSAFE_componentWillMount() {\r\n\t\tfinsembleWindow?.addListener(\"maximized\", this.onMaximized);\r\n\t\tfinsembleWindow?.addListener(\"restored\", this.onRestored);\r\n\t}\r\n\r\n\t/**\r\n\t * Remove listeners from the store.\r\n\t *\r\n\t * @memberof MaximizeButton\r\n\t */\r\n\tcomponentWillUnmount() {\r\n\t\tfinsembleWindow?.removeListener(\"maximized\", this.onMaximized);\r\n\t\tfinsembleWindow?.removeListener(\"restored\", this.onRestored);\r\n\t}\r\n\r\n\t/**\r\n\t * When your mouse enters/leaves the hoverDetector, this function is invoked.\r\n\t *\r\n\t * @param {any} newHoverState\r\n\t * @memberof LinkerButton\r\n\t */\r\n\thoverAction(newHoverState: string) {\r\n\t\tthis.setState({ hoverState: newHoverState });\r\n\t}\r\n\r\n\t/**\r\n\t * Render method.\r\n\t *\r\n\t * @returns\r\n\t * @memberof MaximizeButton\r\n\t */\r\n\trender() {\r\n\t\tconst tooltip = this.state.maximized ? \"Restore\" : \"Maximize\";\r\n\r\n\t\t// Classes for the maximize button.\r\n\t\tconst iconClasses = this.state.maximized ? \"ff-restore\" : \"ff-maximize\";\r\n\t\t// Classes for the wrap\r\n\t\tconst wrapClasses = `fsbl-icon fsbl-maximize ${this.state.maximized ? \"window-restore\" : \"window-max\"}`;\r\n\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t{this.context.showMaximizeButton && (\r\n\t\t\t\t\t<div\r\n\t\t\t\t\t\tclassName={wrapClasses}\r\n\t\t\t\t\t\tid=\"fsbl-window-restore\"\r\n\t\t\t\t\t\ttitle={tooltip}\r\n\t\t\t\t\t\tdata-hover={this.state.hoverState}\r\n\t\t\t\t\t\tonClick={this.onClick}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<FinsembleHoverDetector edge=\"top\" hoverAction={this.hoverAction} />\r\n\t\t\t\t\t\t<i className={iconClasses}></i>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t)}\r\n\t\t\t</>\r\n\t\t);\r\n\t}\r\n}\r\n"]}
1
+ {"version":3,"file":"MaximizeButton.js","sourceRoot":"","sources":["../../../../../src/components/windowTitleBar/components/right/MaximizeButton.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright 2017 by ChartIQ, Inc.\n * All rights reserved.\n */\nimport * as React from \"react\";\nimport { FinsembleHoverDetector } from \"../../../legacyControls/FinsembleHoverDetector\";\nimport { WindowTitleBarContext } from \"../../windowTitleBarContext\";\nimport { getStore, Actions as HeaderActions } from \"../../stores/windowTitleBarStore\";\nimport StoreModel from \"@finsemble/finsemble-core/types/clients/StoreModel\";\nlet windowTitleBarStore: StoreModel;\n\ninterface IProps {}\ninterface IState {\n\tmaximized: boolean;\n\thoverState: string;\n}\n\n/**\n * Maximize button. This button is hidden when the window is maximized. In its place is the restore button.\n */\nexport class MaximizeButton extends React.Component<IProps, IState> {\n\tstatic contextType = WindowTitleBarContext;\n\n\tconstructor(props: IProps) {\n\t\tsuper(props);\n\t\tthis.bindCorrectContext();\n\t\t/**\n\t\t * We assign in the constructor instead of via a require at the top of the file because the store is initialized asynchronously.\n\t\t */\n\t\twindowTitleBarStore = getStore();\n\t\tthis.state = {\n\t\t\tmaximized: windowTitleBarStore.getValue({ field: \"Maximize.maximized\" }),\n\t\t\thoverState: \"false\",\n\t\t};\n\t}\n\n\t/**\n\t * This is necessary to make sure that the `this` inside of the callback is correct.\n\t *\n\t * @memberof MaximizeButton\n\t */\n\tbindCorrectContext() {\n\t\tthis.onMaximized = this.onMaximized.bind(this);\n\t\tthis.onRestored = this.onRestored.bind(this);\n\t\tthis.hoverAction = this.hoverAction.bind(this);\n\t}\n\n\t/**\n\t * When the state changes, this listener is invoked. There are two states: Not maximized, and maximized. When the window is maximized, the button changes to an icon that denotes \"Restore to previous size.\"\n\t *\n\t * @param {any} err\n\t * @param {any} response\n\t * @memberof MaximizeButton\n\t */\n\tonRestored() {\n\t\tthis.setState({ maximized: false });\n\t}\n\n\tonMaximized() {\n\t\tthis.setState({ maximized: true });\n\t}\n\n\t/**\n\t * Invoked when the user clicks the button.\n\t *\n\t * @memberof MaximizeButton\n\t */\n\tonClick() {\n\t\tHeaderActions.clickMaximize();\n\t}\n\n\t/**\n\t * Add listeners to the store.\n\t *\n\t * @memberof MaximizeButton\n\t */\n\tUNSAFE_componentWillMount() {\n\t\tfinsembleWindow?.addListener(\"maximized\", this.onMaximized);\n\t\tfinsembleWindow?.addListener(\"restored\", this.onRestored);\n\t}\n\n\t/**\n\t * Remove listeners from the store.\n\t *\n\t * @memberof MaximizeButton\n\t */\n\tcomponentWillUnmount() {\n\t\tfinsembleWindow?.removeListener(\"maximized\", this.onMaximized);\n\t\tfinsembleWindow?.removeListener(\"restored\", this.onRestored);\n\t}\n\n\t/**\n\t * When your mouse enters/leaves the hoverDetector, this function is invoked.\n\t *\n\t * @param {any} newHoverState\n\t * @memberof LinkerButton\n\t */\n\thoverAction(newHoverState: string) {\n\t\tthis.setState({ hoverState: newHoverState });\n\t}\n\n\t/**\n\t * Render method.\n\t *\n\t * @returns\n\t * @memberof MaximizeButton\n\t */\n\trender() {\n\t\tconst tooltip = this.state.maximized ? \"Restore\" : \"Maximize\";\n\n\t\t// Classes for the maximize button.\n\t\tconst iconClasses = this.state.maximized ? \"ff-restore\" : \"ff-maximize\";\n\t\t// Classes for the wrap\n\t\tconst wrapClasses = `fsbl-icon fsbl-maximize ${this.state.maximized ? \"window-restore\" : \"window-max\"}`;\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{this.context.showMaximizeButton && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={wrapClasses}\n\t\t\t\t\t\tid=\"fsbl-window-restore\"\n\t\t\t\t\t\ttitle={tooltip}\n\t\t\t\t\t\tdata-hover={this.state.hoverState}\n\t\t\t\t\t\tonClick={this.onClick}\n\t\t\t\t\t>\n\t\t\t\t\t\t<FinsembleHoverDetector edge=\"top\" hoverAction={this.hoverAction} />\n\t\t\t\t\t\t<i className={iconClasses}></i>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</>\n\t\t);\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MinimizeButton.js","sourceRoot":"","sources":["../../../../../src/components/windowTitleBar/components/right/MinimizeButton.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAO5E,MAAM,OAAO,cAAe,SAAQ,KAAK,CAAC,SAAyB;IAGlE,YAAY,KAAa;QACxB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;IACtC,CAAC;IAOD,kBAAkB;QACjB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAOD,OAAO;QACN,aAAa,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAQD,WAAW,CAAC,aAAqB;QAChC,IAAI,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;IAC9C,CAAC;IAQD,MAAM;QACL,OAAO,CACN,0CACE,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,CACnC,6BACC,SAAS,EAAC,yBAAyB,EACnC,EAAE,EAAC,sBAAsB,gBACb,IAAI,CAAC,KAAK,CAAC,UAAU,EACjC,KAAK,EAAC,UAAU,EAChB,OAAO,EAAE,IAAI,CAAC,OAAO;YAErB,oBAAC,sBAAsB,IAAC,IAAI,EAAC,KAAK,EAAC,WAAW,EAAE,IAAI,CAAC,WAAW,GAAI;YACpE,2BAAG,SAAS,EAAC,aAAa,GAAK,CAC1B,CACN,CACC,CACH,CAAC;IACH,CAAC;;AA3DM,0BAAW,GAAG,qBAAqB,CAAC","sourcesContent":["/*!\r\n * Copyright 2017 by ChartIQ, Inc.\r\n * All rights reserved.\r\n */\r\nimport * as React from \"react\";\r\nimport { FinsembleHoverDetector } from \"../../../legacyControls/FinsembleHoverDetector\";\r\nimport { WindowTitleBarContext } from \"../../windowTitleBarContext\";\r\nimport { Actions as HeaderActions } from \"../../stores/windowTitleBarStore\";\r\n\r\ninterface IProps {}\r\ninterface IState {\r\n\thoverState: string;\r\n}\r\n\r\nexport class MinimizeButton extends React.Component<IProps, IState> {\r\n\tstatic contextType = WindowTitleBarContext;\r\n\r\n\tconstructor(props: IProps) {\r\n\t\tsuper(props);\r\n\t\tthis.bindCorrectContext();\r\n\t\tthis.state = { hoverState: \"false\" };\r\n\t}\r\n\r\n\t/**\r\n\t * This is necessary to make sure that the `this` inside of the callback is correct.\r\n\t *\r\n\t * @memberof MinimizeButton\r\n\t */\r\n\tbindCorrectContext() {\r\n\t\tthis.hoverAction = this.hoverAction.bind(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Invoked when the user clicks the minimize button.\r\n\t *\r\n\t * @memberof MinimizeButton\r\n\t */\r\n\tonClick() {\r\n\t\tHeaderActions.clickMinimize();\r\n\t}\r\n\r\n\t/**\r\n\t * When your mouse enters/leaves the hoverDetector, this function is invoked.\r\n\t *\r\n\t * @param {string} newHoverState\r\n\t * @memberof MinimizeButton\r\n\t */\r\n\thoverAction(newHoverState: string) {\r\n\t\tthis.setState({ hoverState: newHoverState });\r\n\t}\r\n\r\n\t/**\r\n\t * Render method.\r\n\t *\r\n\t * @returns\r\n\t * @memberof MinimizeButton\r\n\t */\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t{this.context.showMinimizeButton && (\r\n\t\t\t\t\t<div\r\n\t\t\t\t\t\tclassName=\"fsbl-icon fsbl-minimize\"\r\n\t\t\t\t\t\tid=\"fsbl-window-minimize\"\r\n\t\t\t\t\t\tdata-hover={this.state.hoverState}\r\n\t\t\t\t\t\ttitle=\"Minimize\"\r\n\t\t\t\t\t\tonClick={this.onClick}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<FinsembleHoverDetector edge=\"top\" hoverAction={this.hoverAction} />\r\n\t\t\t\t\t\t<i className=\"ff-minimize\"></i>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t)}\r\n\t\t\t</>\r\n\t\t);\r\n\t}\r\n}\r\n"]}
1
+ {"version":3,"file":"MinimizeButton.js","sourceRoot":"","sources":["../../../../../src/components/windowTitleBar/components/right/MinimizeButton.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAO5E,MAAM,OAAO,cAAe,SAAQ,KAAK,CAAC,SAAyB;IAGlE,YAAY,KAAa;QACxB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;IACtC,CAAC;IAOD,kBAAkB;QACjB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAOD,OAAO;QACN,aAAa,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAQD,WAAW,CAAC,aAAqB;QAChC,IAAI,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;IAC9C,CAAC;IAQD,MAAM;QACL,OAAO,CACN,0CACE,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,CACnC,6BACC,SAAS,EAAC,yBAAyB,EACnC,EAAE,EAAC,sBAAsB,gBACb,IAAI,CAAC,KAAK,CAAC,UAAU,EACjC,KAAK,EAAC,UAAU,EAChB,OAAO,EAAE,IAAI,CAAC,OAAO;YAErB,oBAAC,sBAAsB,IAAC,IAAI,EAAC,KAAK,EAAC,WAAW,EAAE,IAAI,CAAC,WAAW,GAAI;YACpE,2BAAG,SAAS,EAAC,aAAa,GAAK,CAC1B,CACN,CACC,CACH,CAAC;IACH,CAAC;;AA3DM,0BAAW,GAAG,qBAAqB,CAAC","sourcesContent":["/*!\n * Copyright 2017 by ChartIQ, Inc.\n * All rights reserved.\n */\nimport * as React from \"react\";\nimport { FinsembleHoverDetector } from \"../../../legacyControls/FinsembleHoverDetector\";\nimport { WindowTitleBarContext } from \"../../windowTitleBarContext\";\nimport { Actions as HeaderActions } from \"../../stores/windowTitleBarStore\";\n\ninterface IProps {}\ninterface IState {\n\thoverState: string;\n}\n\nexport class MinimizeButton extends React.Component<IProps, IState> {\n\tstatic contextType = WindowTitleBarContext;\n\n\tconstructor(props: IProps) {\n\t\tsuper(props);\n\t\tthis.bindCorrectContext();\n\t\tthis.state = { hoverState: \"false\" };\n\t}\n\n\t/**\n\t * This is necessary to make sure that the `this` inside of the callback is correct.\n\t *\n\t * @memberof MinimizeButton\n\t */\n\tbindCorrectContext() {\n\t\tthis.hoverAction = this.hoverAction.bind(this);\n\t}\n\n\t/**\n\t * Invoked when the user clicks the minimize button.\n\t *\n\t * @memberof MinimizeButton\n\t */\n\tonClick() {\n\t\tHeaderActions.clickMinimize();\n\t}\n\n\t/**\n\t * When your mouse enters/leaves the hoverDetector, this function is invoked.\n\t *\n\t * @param {string} newHoverState\n\t * @memberof MinimizeButton\n\t */\n\thoverAction(newHoverState: string) {\n\t\tthis.setState({ hoverState: newHoverState });\n\t}\n\n\t/**\n\t * Render method.\n\t *\n\t * @returns\n\t * @memberof MinimizeButton\n\t */\n\trender() {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{this.context.showMinimizeButton && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"fsbl-icon fsbl-minimize\"\n\t\t\t\t\t\tid=\"fsbl-window-minimize\"\n\t\t\t\t\t\tdata-hover={this.state.hoverState}\n\t\t\t\t\t\ttitle=\"Minimize\"\n\t\t\t\t\t\tonClick={this.onClick}\n\t\t\t\t\t>\n\t\t\t\t\t\t<FinsembleHoverDetector edge=\"top\" hoverAction={this.hoverAction} />\n\t\t\t\t\t\t<i className=\"ff-minimize\"></i>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</>\n\t\t);\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"windowTitle.js","sourceRoot":"","sources":["../../../../src/components/windowTitleBar/components/windowTitle.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { Component } from \"react\";\r\nimport { Icon } from \"../../icon/Icon\";\r\nimport { iconFromConfig } from \"../../icon/Icon\";\r\n\r\ntype TitleProps = {\r\n\twindowIdentifier: any;\r\n\tonUpdate?: Function;\r\n\ttitleWidth?: number;\r\n\tupdateTitle?: EventTarget;\r\n};\r\n\r\ntype TitleState = {\r\n\ttitle: string | undefined;\r\n\ticon: any;\r\n};\r\n\r\nexport class Title extends Component<TitleProps, TitleState> {\r\n\tconstructor(props: TitleProps) {\r\n\t\tsuper(props);\r\n\t\tthis.state = {\r\n\t\t\ttitle: document.title,\r\n\t\t\ticon: null,\r\n\t\t};\r\n\t\tthis.getTitle = this.getTitle.bind(this);\r\n\t\tprops.updateTitle?.addEventListener(\"title-changed\", () => {\r\n\t\t\tthis.getTitle();\r\n\t\t});\r\n\t}\r\n\r\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n\tasync getTitle(e: any = null, identifier = this.props.windowIdentifier) {\r\n\t\tconst { wrap: win } = await FSBL.FinsembleWindow.getInstance(identifier);\r\n\t\twin.getOptions((err: any, data: any) => {\r\n\t\t\tlet { title } = data;\r\n\t\t\tconst icon = iconFromConfig(data?.customData?.foreign?.components?.Toolbar, title);\r\n\t\t\twin.getComponentState({ field: \"persistedTitle\" }, (error: any, persistedTitle: any) => {\r\n\t\t\t\tif (persistedTitle) {\r\n\t\t\t\t\ttitle = persistedTitle;\r\n\t\t\t\t}\r\n\t\t\t\tthis.setState({\r\n\t\t\t\t\ttitle,\r\n\t\t\t\t\ticon,\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis.getTitle();\r\n\t}\r\n\r\n\t// Triggers a re-rendering of the drag handle in the title bar.\r\n\tcomponentDidUpdate() {\r\n\t\tif (typeof this.props.onUpdate === \"function\") {\r\n\t\t\tthis.props.onUpdate();\r\n\t\t}\r\n\t}\r\n\r\n\tUNSAFE_componentWillMount() {\r\n\t\tFSBL.FinsembleWindow.getInstance(this.props?.windowIdentifier, (e: any, win: any) => {\r\n\t\t\twin.addEventListener(\"title-changed\", this.getTitle);\r\n\t\t});\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tFSBL.FinsembleWindow.getInstance(this.props?.windowIdentifier, (e: any, win: any) => {\r\n\t\t\twin.removeEventListener(\"title-changed\", this.getTitle);\r\n\t\t});\r\n\t}\r\n\r\n\tUNSAFE_componentWillReceiveProps(nextProps: any) {\r\n\t\t// We only need to re-render the logo if the name of the component changes. Otherwise excessive calls to getOptions\r\n\t\tif (nextProps.windowIdentifier.windowName !== this.props.windowIdentifier.windowName) {\r\n\t\t\tthis.getTitle(null, nextProps.windowIdentifier);\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\tlet { titleWidth } = this.props;\r\n\t\tlet style = titleWidth ? { width: titleWidth } : {};\r\n\t\treturn (\r\n\t\t\t<div className=\"fsbl-tab-title\" style={style}>\r\n\t\t\t\t{this.state.icon && <Icon {...this.state.icon} />}\r\n\t\t\t\t<div className=\"title-text\">{this.state.title}</div>\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n}\r\n"]}
1
+ {"version":3,"file":"windowTitle.js","sourceRoot":"","sources":["../../../../src/components/windowTitleBar/components/windowTitle.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { Component } from \"react\";\nimport { Icon } from \"../../icon/Icon\";\nimport { iconFromConfig } from \"../../icon/Icon\";\n\ntype TitleProps = {\n\twindowIdentifier: any;\n\tonUpdate?: Function;\n\ttitleWidth?: number;\n\tupdateTitle?: EventTarget;\n};\n\ntype TitleState = {\n\ttitle: string | undefined;\n\ticon: any;\n};\n\nexport class Title extends Component<TitleProps, TitleState> {\n\tconstructor(props: TitleProps) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\ttitle: document.title,\n\t\t\ticon: null,\n\t\t};\n\t\tthis.getTitle = this.getTitle.bind(this);\n\t\tprops.updateTitle?.addEventListener(\"title-changed\", () => {\n\t\t\tthis.getTitle();\n\t\t});\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tasync getTitle(e: any = null, identifier = this.props.windowIdentifier) {\n\t\tconst { wrap: win } = await FSBL.FinsembleWindow.getInstance(identifier);\n\t\twin.getOptions((err: any, data: any) => {\n\t\t\tlet { title } = data;\n\t\t\tconst icon = iconFromConfig(data?.customData?.foreign?.components?.Toolbar, title);\n\t\t\twin.getComponentState({ field: \"persistedTitle\" }, (error: any, persistedTitle: any) => {\n\t\t\t\tif (persistedTitle) {\n\t\t\t\t\ttitle = persistedTitle;\n\t\t\t\t}\n\t\t\t\tthis.setState({\n\t\t\t\t\ttitle,\n\t\t\t\t\ticon,\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.getTitle();\n\t}\n\n\t// Triggers a re-rendering of the drag handle in the title bar.\n\tcomponentDidUpdate() {\n\t\tif (typeof this.props.onUpdate === \"function\") {\n\t\t\tthis.props.onUpdate();\n\t\t}\n\t}\n\n\tUNSAFE_componentWillMount() {\n\t\tFSBL.FinsembleWindow.getInstance(this.props?.windowIdentifier, (e: any, win: any) => {\n\t\t\twin.addEventListener(\"title-changed\", this.getTitle);\n\t\t});\n\t}\n\n\tcomponentWillUnmount() {\n\t\tFSBL.FinsembleWindow.getInstance(this.props?.windowIdentifier, (e: any, win: any) => {\n\t\t\twin.removeEventListener(\"title-changed\", this.getTitle);\n\t\t});\n\t}\n\n\tUNSAFE_componentWillReceiveProps(nextProps: any) {\n\t\t// We only need to re-render the logo if the name of the component changes. Otherwise excessive calls to getOptions\n\t\tif (nextProps.windowIdentifier.windowName !== this.props.windowIdentifier.windowName) {\n\t\t\tthis.getTitle(null, nextProps.windowIdentifier);\n\t\t}\n\t}\n\n\trender() {\n\t\tlet { titleWidth } = this.props;\n\t\tlet style = titleWidth ? { width: titleWidth } : {};\n\t\treturn (\n\t\t\t<div className=\"fsbl-tab-title\" style={style}>\n\t\t\t\t{this.state.icon && <Icon {...this.state.icon} />}\n\t\t\t\t<div className=\"title-text\">{this.state.title}</div>\n\t\t\t</div>\n\t\t);\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/windowTitleBar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC","sourcesContent":["export { WindowTitleBarShell } from \"./WindowTitleBarShell\";\r\nexport { LinkerButton } from \"./components/left/LinkerButton\";\r\nexport { ShareButton } from \"./components/left/ShareButton\";\r\nexport { TabRegion } from \"./components/center/TabRegion\";\r\nexport { AlwaysOnTopButton } from \"./components/right/AlwaysOnTopButton\";\r\nexport { MinimizeButton } from \"./components/right/MinimizeButton\";\r\nexport { MaximizeButton } from \"./components/right/MaximizeButton\";\r\nexport { CloseButton } from \"./components/right/CloseButton\";\r\nexport { GroupingButton } from \"./components/right/GroupingButton\";\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/windowTitleBar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC","sourcesContent":["export { WindowTitleBarShell } from \"./WindowTitleBarShell\";\nexport { LinkerButton } from \"./components/left/LinkerButton\";\nexport { ShareButton } from \"./components/left/ShareButton\";\nexport { TabRegion } from \"./components/center/TabRegion\";\nexport { AlwaysOnTopButton } from \"./components/right/AlwaysOnTopButton\";\nexport { MinimizeButton } from \"./components/right/MinimizeButton\";\nexport { MaximizeButton } from \"./components/right/MaximizeButton\";\nexport { CloseButton } from \"./components/right/CloseButton\";\nexport { GroupingButton } from \"./components/right/GroupingButton\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"windowTitleBarStore.js","sourceRoot":"","sources":["../../../../src/components/windowTitleBar/stores/windowTitleBarStore.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\r\n * Copyright 2017 by ChartIQ, Inc.\r\n * All rights reserved.\r\n */\r\nimport windowTitleBarStoreDefaults from \"./windowTitleBarStoreDefaults\";\r\nimport { StandardCallback } from \"@finsemble/finsemble-core/types/types\";\r\nimport { FinsembleWindow, WindowIdentifier } from \"@finsemble/finsemble-core\";\r\nimport StoreModel from \"@finsemble/finsemble-core/types/clients/StoreModel\";\r\n\r\nconst getWindowNameForDocking = (finsembleWindow: FinsembleWindow) => {\r\n\tconst parent = finsembleWindow.parentWindow;\r\n\treturn parent ? parent.name : finsembleWindow.name;\r\n};\r\n\r\ntype ParentParams = {\r\n\twindowIdentifiers: WindowIdentifier[];\r\n\tvisibleWindowIdentifier: WindowIdentifier;\r\n\tcreate: boolean;\r\n};\r\n\r\nconst getStackedWindow = (params: ParentParams, cb: StandardCallback) => {\r\n\tif (!finsembleWindow.parentWindow && params.create) {\r\n\t\tconst onParentSet = (evt: any) => {\r\n\t\t\tconst { parentName } = evt.data;\r\n\t\t\tfinsembleWindow.setParent({ windowName: parentName }, (err2, windowWrapper) => {\r\n\t\t\t\tcb?.(err2, windowWrapper);\r\n\t\t\t});\r\n\t\t\tfinsembleWindow.removeListener(\"parent-set\", onParentSet);\r\n\t\t};\r\n\t\tfinsembleWindow.addListener(\"parent-set\", onParentSet);\r\n\t\tFSBL.Clients.LauncherClient.spawn(\r\n\t\t\t\"StackedWindow\",\r\n\t\t\t{\r\n\t\t\t\twindowType: \"StackedWindow\",\r\n\t\t\t\tdata: { windowIdentifiers: params.windowIdentifiers },\r\n\t\t\t\toptions: { newStack: true },\r\n\t\t\t},\r\n\t\t\t(err) => {\r\n\t\t\t\tif (!err) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tcb?.(err, null);\r\n\t\t\t}\r\n\t\t);\r\n\t} else {\r\n\t\tfinsembleWindow.getParent(cb);\r\n\t}\r\n};\r\n\r\nlet windowTitleBarStore: StoreModel;\r\n\r\ntype ConstantsType = {\r\n\tPARENT_WRAPPER_UPDATES: string;\r\n\tCHILD_WINDOW_FIELD: string;\r\n\tVISIBLE_WINDOW_FIELD: string;\r\n\tTAB_SCROLL_POSITION_CHANGED: string;\r\n};\r\n\r\ntype ActionsType = {\r\n\tparentWrapperStore: any;\r\n\tparentSubscriptions: any[];\r\n\tparentWrapper: FinsembleWindow | null;\r\n\r\n\tinitialize: () => void;\r\n\tgetMyDockingGroups: (groupData: any) => any[];\r\n\tonTabListScrollPositionChanged: StandardCallback;\r\n\tsetTabListScrollPosition: (translateX: number) => void;\r\n\tremoteStateUpdate: (command: string, state: any) => void;\r\n\tclickMinimize: () => void;\r\n\tclickClose: () => void;\r\n\ttoggleGroup: () => void;\r\n\tclickMaximize: () => void;\r\n\tgetTabs: () => WindowIdentifier[];\r\n\t_setTabs: (tabs: WindowIdentifier[] | null) => any;\r\n\taddTabLocally: (windowIdentifier: WindowIdentifier, i: number) => void;\r\n\tremoveTabsLocally: () => void;\r\n\tremoveTabLocally: (windowIdentifier: WindowIdentifier) => void;\r\n\treorderTabLocally: (tab: WindowIdentifier, newIndex: number) => undefined | any;\r\n\taddTab: (windowIdentifier: WindowIdentifier, i: number) => any;\r\n\tremoveTab: (windowIdentifier: WindowIdentifier, i: number) => any;\r\n\tcloseTab: (windowIdentifier: WindowIdentifier) => void;\r\n\treorderTab: (tab: WindowIdentifier, newIndex: number) => any;\r\n\tfindTab: (tab: WindowIdentifier) => { tab: WindowIdentifier; currentIndex: number };\r\n\tsetActiveTab: (windowIdentifier: WindowIdentifier) => Promise<any>;\r\n\tonTabListChanged: StandardCallback;\r\n\tstopListeningOnParentWrapper: (cb: Function) => void;\r\n\tlistenOnParentWrapper: () => void;\r\n\tsetupStore: (cb?: Function) => void;\r\n\tgetInitialTabList: (cb: StandardCallback) => void;\r\n\tcreateParentWrapper: (params: ParentParams, cb?: Function) => void;\r\n};\r\n\r\n// these are constants that are set inside of setupStore. so they're declared as vars and not constants.\r\nlet constants: ConstantsType;\r\nconst Actions: ActionsType = {\r\n\tparentWrapperStore: null,\r\n\tinitialize: function () {\r\n\t\t// This ensures that our config is correct, even if the developer missed some entries\r\n\t\tlet { options } = FSBL.Clients.WindowClient;\r\n\t\tlet windowTitleBarConfig = options.customData.foreign.components[\"Window Manager\"];\r\n\t\tlet { FSBLHeader } = windowTitleBarConfig;\r\n\t\tlet self = this;\r\n\r\n\t\t// Display name is first up for display. If it doesn't exist, we look for a default title (or one that's already set on init). If no title, we display the window's name (e.g., '5434-Welcome Component-2321').\r\n\t\tconst displayName = options.customData?.component?.displayName;\r\n\r\n\t\t/**\r\n\t\t * The windowTitleBar (header) is dumb. It just reflects the state of the component window. The headerCommandChannel allows the WindowClient to take control of the state of the header. All of the details of listening to window events are handled inside the WindowClient\r\n\t\t */\r\n\t\tFSBL.Clients.WindowClient.headerCommandChannel((command, state) => {\r\n\t\t\tthis.remoteStateUpdate(command, state);\r\n\t\t});\r\n\r\n\t\t/**\r\n\t\t * \"FSBLHeader\" can be true, false or an object. If false then we'll never even be here. If true, then maximize, minimize and close buttons will display. If an object, then the developer can override whether buttons are shown with \"hideMaximize\", \"hideMinimize\" and \"hideClose\"\r\n\t\t */\r\n\t\tif (FSBLHeader) {\r\n\t\t\tconst max = !!FSBLHeader.hideMaximize;\r\n\r\n\t\t\twindowTitleBarStore.setValues([\r\n\t\t\t\t{ field: \"Maximize.hide\", value: max },\r\n\t\t\t\t{ field: \"Minimize.hide\", value: !!FSBLHeader.hideMinimize },\r\n\t\t\t\t{ field: \"Close.hide\", value: !!FSBLHeader.hideClose },\r\n\t\t\t\t{ field: \"AlwaysOnTop.show\", value: !!FSBLHeader.alwaysOnTop },\r\n\t\t\t]);\r\n\r\n\t\t\t// By default, we hack the window's scroll bar so that it displays underneath the header. html.overflow: hidden body.overflow:auto\r\n\t\t\twindowTitleBarStore.setValue({\r\n\t\t\t\tfield: \"hackScrollbar\",\r\n\t\t\t\tvalue: windowTitleBarConfig.hackScrollbar !== false,\r\n\t\t\t});\r\n\r\n\t\t\tconst title = FSBL.Clients.WindowClient.title || windowTitleBarConfig.title || displayName;\r\n\r\n\t\t\tif (title) {\r\n\t\t\t\tdocument.title = title;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Handles whether to show the linker button.\r\n\t\t */\r\n\t\tif (windowTitleBarConfig.showLinker) {\r\n\t\t\t// Get state (channel membership) from the linkerClient. Then set the value in the header so that the title bar accurately reflects the state.\r\n\t\t\tconst cb: StandardCallback = (err, response) => {\r\n\t\t\t\tif (response.channels) {\r\n\t\t\t\t\twindowTitleBarStore.setValue({\r\n\t\t\t\t\t\tfield: \"Linker.channels\",\r\n\t\t\t\t\t\tvalue: response.channels,\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\twindowTitleBarStore.setValue({\r\n\t\t\t\t\tfield: \"Linker.showLinkerButton\",\r\n\t\t\t\t\tvalue: true,\r\n\t\t\t\t});\r\n\t\t\t};\r\n\t\t\tcb(null, FSBL.Clients.LinkerClient.getState());\r\n\t\t\t/* [Terry] no longer necessary?\r\n\t\t\tFSBL.Clients.LinkerClient.getLinkedChannels({\r\n\t\t\t\twindowName: options.name,\r\n\t\t\t\tuuid: options.uuid,\r\n\t\t\t\tcomponentType: options.customData.component.type\r\n\t\t\t}, cb);\r\n\t\t\t*/\r\n\t\t\tFSBL.Clients.LinkerClient.onStateChange(cb);\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Listen for updates from the dragAndDropClient.\r\n\t\t */\r\n\t\tFSBL.Clients.RouterClient.subscribe(\r\n\t\t\t`${FSBL.Clients.WindowClient.options.name}Finsemble.Sharer`,\r\n\t\t\t(err, response) => {\r\n\t\t\t\tif (err) {\r\n\t\t\t\t\treturn console.error(err);\r\n\t\t\t\t}\r\n\t\t\t\twindowTitleBarStore.setValues([\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: \"Sharer.emitterEnabled\",\r\n\t\t\t\t\t\tvalue: response.data.emitterEnabled,\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: \"Sharer.receiverEnabled\",\r\n\t\t\t\t\t\tvalue: response.data.receiverEnabled,\r\n\t\t\t\t\t},\r\n\t\t\t\t]);\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\t/**\r\n\t\t * When a group update is publish, we sift through the data to see if this window is snapped or grouped with other windows. Then we publish that info, and the GroupingButton renders the correct icon.\r\n\t\t * @param {*} err\r\n\t\t * @param {*} response\r\n\t\t */\r\n\t\tconst onDockingGroupUpdate: StandardCallback = function (err, response) {\r\n\t\t\tif (err || !response.data || !response.data.groupData) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tFSBL.Clients.Logger.system.debug(\"On docking group update\", response.data.groupData);\r\n\t\t\tlet groupNames = Object.keys(response.data.groupData);\r\n\t\t\tlet movableGroups = groupNames\r\n\t\t\t\t.filter((groupName) => response.data.groupData[groupName].isMovable)\r\n\t\t\t\t.map((groupName) => response.data.groupData[groupName]);\r\n\t\t\t// This is all movable and snapped groups. It's used later to figure out the icon to display.\r\n\t\t\twindowTitleBarStore.setValue({\r\n\t\t\t\tfield: \"Main.allDockingGroups\",\r\n\t\t\t\tvalue: response.data.groupData,\r\n\t\t\t});\r\n\r\n\t\t\twindowTitleBarStore.setValue({\r\n\t\t\t\tfield: \"Main.allMovableDockingGroups\",\r\n\t\t\t\tvalue: movableGroups,\r\n\t\t\t});\r\n\t\t\tlet myGroups = self.getMyDockingGroups(response.data.groupData);\r\n\t\t\twindowTitleBarStore.setValue({\r\n\t\t\t\tfield: \"Main.dockingGroups\",\r\n\t\t\t\tvalue: myGroups,\r\n\t\t\t});\r\n\t\t\t/**\r\n\t\t\t * Goes through groups and sees if this window is grouped, snapped, or freely hanging out there.\r\n\t\t\t */\r\n\t\t\tlet isSnapped = false;\r\n\t\t\tlet isInMovableGroup = false;\r\n\t\t\tlet isTopRight = false;\r\n\t\t\tlet windowName = getWindowNameForDocking(finsembleWindow);\r\n\t\t\tfor (let i = 0; i < myGroups.length; i++) {\r\n\t\t\t\tlet myGroup = myGroups[i];\r\n\t\t\t\tif (myGroup.isMovable) {\r\n\t\t\t\t\tisInMovableGroup = true;\r\n\t\t\t\t\tif (windowName == myGroup.topRightWindow) {\r\n\t\t\t\t\t\tisTopRight = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tisSnapped = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tlet icon: string | false = false;\r\n\r\n\t\t\tif (isSnapped) {\r\n\t\t\t\ticon = \"joiner\";\r\n\t\t\t}\r\n\t\t\tif (isInMovableGroup) {\r\n\t\t\t\ticon = \"ejector\";\r\n\t\t\t}\r\n\r\n\t\t\twindowTitleBarStore.setValues([\r\n\t\t\t\t{ field: \"isSnapped\", value: isSnapped },\r\n\t\t\t\t{ field: \"isGrouped\", value: isInMovableGroup },\r\n\t\t\t\t{ field: \"isTopRight\", value: isTopRight },\r\n\t\t\t\t{ field: \"Main.dockingIcon\", value: icon },\r\n\t\t\t]);\r\n\t\t};\r\n\r\n\t\tFSBL.Clients.RouterClient.subscribe(\"Finsemble.WorkspaceService.groupUpdate\", onDockingGroupUpdate);\r\n\r\n\t\t// default title.\r\n\t\twindowTitleBarStore.setValue({\r\n\t\t\tfield: \"Main.windowTitle\",\r\n\t\t\tvalue: FSBL.Clients.WindowClient.getWindowTitle(),\r\n\t\t});\r\n\r\n\t\tconst getValuesCallback: StandardCallback = (err, values) => {\r\n\t\t\tconst finsembleConfig = values.finsemble;\r\n\r\n\t\t\t// Check FEA config for DOM based movement configuration\r\n\t\t\tconst { useDOMBasedMovement } = values[\"finsemble-electron-adapter\"];\r\n\r\n\t\t\twindowTitleBarStore.setValue({\r\n\t\t\t\tfield: \"Main.useDOMBasedMovement\",\r\n\t\t\t\tvalue: typeof useDOMBasedMovement === \"undefined\" ? true : useDOMBasedMovement,\r\n\t\t\t});\r\n\r\n\t\t\tlet globalWindowManagerConfig = finsembleConfig[\"Window Manager\"] || {\r\n\t\t\t\talwaysOnTopIcon: false,\r\n\t\t\t\tshowTabs: false,\r\n\t\t\t}; // Override defaults if finsemble.Window Manager exists.\r\n\r\n\t\t\t// Look to see if docking is enabled. Cascade through backward compatibility with old \"betaFeatures\" and then a default if no config is found at all.\r\n\r\n\t\t\tif (!finsembleConfig.servicesConfig) finsembleConfig.servicesConfig = {};\r\n\t\t\tlet dockingConfig = finsembleConfig.servicesConfig.docking || finsembleConfig.docking;\r\n\t\t\tif (!dockingConfig && finsembleConfig.betaFeatures) dockingConfig = finsembleConfig.betaFeatures.docking;\r\n\t\t\tif (!dockingConfig) dockingConfig = { enabled: true };\r\n\t\t\tif (!dockingConfig.tabbing) dockingConfig.tabbing = {};\r\n\r\n\t\t\twindowTitleBarStore.setValues([{ field: \"Main.dockingEnabled\", value: dockingConfig.enabled }]);\r\n\r\n\t\t\t// Whether the alwaysOnTop pin shows or not depends first on the global setting (finsemble[\"Window Manager\"].alwaysOnTop) and then\r\n\t\t\t// on the specific setting for this component (foreign.components[\"Widow Manager\"].alwaysOnTop)\r\n\t\t\tlet { alwaysOnTopIcon } = globalWindowManagerConfig;\r\n\t\t\tif (windowTitleBarConfig.alwaysOnTopIcon === false || windowTitleBarConfig.alwaysOnTopIcon === true)\r\n\t\t\t\t({ alwaysOnTopIcon } = windowTitleBarConfig);\r\n\r\n\t\t\twindowTitleBarStore.setValues([{ field: \"AlwaysOnTop.show\", value: alwaysOnTopIcon }]);\r\n\r\n\t\t\t// If tabbing is turned off, ignore global/local 'windowManager' config about whether to allow tabbing.\r\n\t\t\tif (dockingConfig.tabbing.enabled === false) {\r\n\t\t\t\twindowTitleBarStore.setValue({\r\n\t\t\t\t\tfield: \"showTabs\",\r\n\t\t\t\t\tvalue: dockingConfig.tabbing.enabled,\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\t// If tabbing is enabled system-wide, look to the global config for its value. Then look to the local component's config.\r\n\r\n\t\t\t\t// This is the global window manager config.\r\n\t\t\t\tif (typeof windowTitleBarConfig.showTabs !== \"boolean\") {\r\n\t\t\t\t\twindowTitleBarStore.setValue({\r\n\t\t\t\t\t\tfield: \"showTabs\",\r\n\t\t\t\t\t\tvalue: globalWindowManagerConfig.showTabs,\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\t// This is the component's config.\r\n\t\t\t\tif (windowTitleBarConfig.showTabs || windowTitleBarConfig.showTabs === false) {\r\n\t\t\t\t\twindowTitleBarStore.setValue({\r\n\t\t\t\t\t\tfield: \"showTabs\",\r\n\t\t\t\t\t\tvalue: windowTitleBarConfig.showTabs,\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Once the above has been checked the individual component config is checked for customData.foreign.services[windowService || dockingService][!ignoreTilingAndTabbingRequests || allowTabbing]\r\n\t\t\t\tlet showTabs = true;\r\n\t\t\t\tconst getOptionsCallback: StandardCallback = (_, opts) => {\r\n\t\t\t\t\tif (opts.customData && opts.customData.foreign && opts.customData.foreign.services) {\r\n\t\t\t\t\t\tif (opts.customData.foreign.services.windowService) {\r\n\t\t\t\t\t\t\tif (opts.customData.foreign.services.windowService.allowTabbing !== undefined) {\r\n\t\t\t\t\t\t\t\tshowTabs = opts.customData.foreign.services.windowService.allowTabbing;\r\n\t\t\t\t\t\t\t} else if (opts.customData.foreign.services.windowService.ignoreTilingAndTabbingRequests != undefined) {\r\n\t\t\t\t\t\t\t\tshowTabs = !opts.customData.foreign.services.windowService.ignoreTilingAndTabbingRequests;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else if (opts.customData.foreign.services.dockingService) {\r\n\t\t\t\t\t\t\tif (opts.customData.foreign.services.dockingService.allowTabbing !== undefined) {\r\n\t\t\t\t\t\t\t\tshowTabs = opts.customData.foreign.services.dockingService.allowTabbing;\r\n\t\t\t\t\t\t\t} else if (opts.customData.foreign.services.dockingService.ignoreTilingAndTabbingRequests != undefined) {\r\n\t\t\t\t\t\t\t\tshowTabs = !opts.customData.foreign.services.dockingService.ignoreTilingAndTabbingRequests;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\twindowTitleBarStore.setValue({\r\n\t\t\t\t\t\tfield: \"showTabs\",\r\n\t\t\t\t\t\tvalue: showTabs,\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\t\t\t\tfinsembleWindow.getOptions(getOptionsCallback);\r\n\t\t\t}\r\n\t\t};\r\n\t\tFSBL.Clients.ConfigClient.getValues(\r\n\t\t\t[{ field: \"finsemble\" }, { field: \"finsemble-electron-adapter\" }],\r\n\t\t\tgetValuesCallback\r\n\t\t);\r\n\r\n\t\tActions.getInitialTabList((err, values) => {\r\n\t\t\tconst onParentSet = () => {\r\n\t\t\t\tActions.parentWrapper = null;\r\n\t\t\t\tActions.getInitialTabList(() => {\r\n\t\t\t\t\tFSBL.Clients.Logger.system.debug(\"docking group update after initial tab list\");\r\n\t\t\t\t\tonDockingGroupUpdate(null, {\r\n\t\t\t\t\t\tdata: {\r\n\t\t\t\t\t\t\tgroupData: windowTitleBarStore.getValue({\r\n\t\t\t\t\t\t\t\tfield: \"Main.allDockingGroups\",\r\n\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t};\r\n\t\t\tconst onParentCleared = () => {\r\n\t\t\t\tActions.parentWrapper = null;\r\n\t\t\t\tFSBL.Clients.Logger.system.debug(\"ClearParent, setting tabs to null\");\r\n\t\t\t\tActions.stopListeningOnParentWrapper(() => {\r\n\t\t\t\t\tActions.parentWrapperStore = null;\r\n\t\t\t\t\tActions._setTabs(null);\r\n\t\t\t\t\tonDockingGroupUpdate(null, {\r\n\t\t\t\t\t\tdata: {\r\n\t\t\t\t\t\t\tgroupData: windowTitleBarStore.getValue({\r\n\t\t\t\t\t\t\t\tfield: \"Main.allDockingGroups\",\r\n\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t};\r\n\r\n\t\t\tfinsembleWindow?.addListener(\"setParent\", onParentSet);\r\n\t\t\tfinsembleWindow?.addListener(\"clearParent\", onParentCleared);\r\n\t\t\tif (err) {\r\n\t\t\t\treturn FSBL.Clients.Logger.system.error(\"Error in getInitialTabList.\", err);\r\n\t\t\t}\r\n\r\n\t\t\tif (values) Actions._setTabs(values);\r\n\t\t});\r\n\t},\r\n\t/**\r\n\t * Helper function to sift through all of the data coming from the windowService. Outputs an array of groups that the window belongs to.\r\n\t */\r\n\tgetMyDockingGroups: function (groupData) {\r\n\t\tlet myGroups = [];\r\n\t\tlet windowName = getWindowNameForDocking(finsembleWindow);\r\n\t\tif (finsembleWindow?.parentWindow) {\r\n\t\t\twindowName = finsembleWindow?.parentWindow.name;\r\n\t\t}\r\n\t\tFSBL.Clients.Logger.system.debug(\"Getting docking groups for \", windowName, groupData);\r\n\t\tif (groupData) {\r\n\t\t\tfor (let groupName in groupData) {\r\n\t\t\t\tgroupData[groupName].groupName = groupName;\r\n\t\t\t\tif (groupData[groupName].windowNames.includes(windowName)) {\r\n\t\t\t\t\tmyGroups.push(groupData[groupName]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn myGroups;\r\n\t},\r\n\tonTabListScrollPositionChanged: function (err, response) {\r\n\t\twindowTitleBarStore.setValue({\r\n\t\t\tfield: \"tabListTranslateX\",\r\n\t\t\tvalue: response.data.translateX,\r\n\t\t});\r\n\t},\r\n\tsetTabListScrollPosition: function (translateX) {\r\n\t\tFSBL.Clients.RouterClient.transmit(constants.TAB_SCROLL_POSITION_CHANGED, {\r\n\t\t\ttranslateX,\r\n\t\t});\r\n\t},\r\n\t/**\r\n\t * Handles messages coming from the windowClient.\r\n\t */\r\n\tremoteStateUpdate: function (command, state) {\r\n\t\tconst key = Object.keys(state)[0];\r\n\t\tconst field = `${command}.${key}`;\r\n\t\twindowTitleBarStore.setValue({ field: field, value: state[key] });\r\n\t},\r\n\t/**\r\n\t * Minimizes the window.\r\n\t */\r\n\tclickMinimize: function () {\r\n\t\tfinsembleWindow.minimize(() => {});\r\n\t},\r\n\t/**\r\n\t * Closes the window, allows for cleanup. Removes the window from workspace; this function is only invoked when the user clicks the close button.\r\n\t */\r\n\tclickClose: function () {\r\n\t\tFSBL.Clients.WindowClient.close({\r\n\t\t\tcloseWindow: true,\r\n\t\t\tremoveFromWorkspace: true, // this will cause the entire stack to close. Using this instead of a new parameter to ensure backwards compatibility\r\n\t\t\tuserInitiated: true,\r\n\t\t});\r\n\t},\r\n\t/**\r\n\t * Toggles group membership. If two windows are snapped, and this button is clicked, they become part of the same group that can be moved around together.\r\n\t */\r\n\ttoggleGroup: function () {\r\n\t\tconst groups = windowTitleBarStore.getValue({ field: \"Main.dockingGroups\" });\r\n\t\tconst isInMovableGroup = groups.some((group: any) => group.isMovable);\r\n\t\tif (isInMovableGroup) {\r\n\t\t\tfinsembleWindow.ejectFromGroup();\r\n\t\t} else {\r\n\t\t\tfinsembleWindow.formGroup();\r\n\t\t}\r\n\t},\r\n\t/**\r\n\t * Maximizes the window.\r\n\t */\r\n\tclickMaximize: function () {\r\n\t\tif (finsembleWindow.windowState !== finsembleWindow.WINDOWSTATE.MAXIMIZED)\r\n\t\t\treturn finsembleWindow.maximize(() => {\r\n\t\t\t\twindowTitleBarStore.setValue({\r\n\t\t\t\t\tfield: \"Maximize.maximized\",\r\n\t\t\t\t\tvalue: true,\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\treturn finsembleWindow.restore(() => {\r\n\t\t\twindowTitleBarStore.setValue({\r\n\t\t\t\tfield: \"Maximize.maximized\",\r\n\t\t\t\tvalue: false,\r\n\t\t\t});\r\n\t\t});\r\n\t},\r\n\r\n\tgetTabs() {\r\n\t\treturn windowTitleBarStore.getValue({ field: \"tabs\" }) as WindowIdentifier[];\r\n\t},\r\n\t_setTabs(tabs) {\r\n\t\tFSBL.Clients.Logger.system.debug(\"Set tabs\", tabs);\r\n\t\tlet activeIdentifier: any = finsembleWindow.identifier;\r\n\t\tactiveIdentifier.title = finsembleWindow.windowOptions.title;\r\n\t\treturn windowTitleBarStore.setValue({\r\n\t\t\tfield: \"tabs\",\r\n\t\t\tvalue: tabs || [activeIdentifier],\r\n\t\t});\r\n\t},\r\n\taddTabLocally: function (windowIdentifier, i) {\r\n\t\tlet tabs = Actions.getTabs();\r\n\t\tif (typeof i === \"undefined\") {\r\n\t\t\ti = tabs.length + 1;\r\n\t\t}\r\n\t\ttabs.splice(i, 0, windowIdentifier);\r\n\t\tActions._setTabs(tabs);\r\n\t},\r\n\tremoveTabsLocally: function () {\r\n\t\tActions._setTabs(null);\r\n\t},\r\n\tremoveTabLocally: function (windowIdentifier) {\r\n\t\tlet tabs = Actions.getTabs();\r\n\t\tlet i = tabs.findIndex((el) => el.windowName === windowIdentifier.windowName && el.uuid === windowIdentifier.uuid);\r\n\t\ttabs.splice(i, 1);\r\n\t\tActions._setTabs(tabs);\r\n\t},\r\n\treorderTabLocally: function (tab, newIndex) {\r\n\t\tlet tabs = Actions.getTabs();\r\n\t\tlet { currentIndex } = Actions.findTab(tab);\r\n\t\tif (currentIndex === newIndex) return;\r\n\t\tif (currentIndex === -1) {\r\n\t\t\treturn Actions.addTabLocally(tab, newIndex);\r\n\t\t}\r\n\t\ttabs.splice(currentIndex, 1);\r\n\t\ttabs.splice(newIndex, 0, tab);\r\n\r\n\t\tActions._setTabs(tabs);\r\n\t},\r\n\taddTab: function (windowIdentifier, i) {\r\n\t\tlet tabs = Actions.getTabs();\r\n\t\ttabs.push(windowIdentifier);\r\n\t\t// quick UI update\r\n\t\tActions._setTabs(tabs);\r\n\t\tlet callback = () => {\r\n\t\t\tActions.parentWrapper?.setVisibleWindow({ windowIdentifier });\r\n\t\t};\r\n\r\n\t\tif (!Actions.parentWrapper) {\r\n\t\t\treturn Actions.createParentWrapper({\r\n\t\t\t\twindowIdentifiers: finsembleWindow.identifier\r\n\t\t\t\t\t? [finsembleWindow.identifier, windowIdentifier]\r\n\t\t\t\t\t: [windowIdentifier],\r\n\t\t\t\tvisibleWindowIdentifier: windowIdentifier,\r\n\t\t\t\tcreate: true,\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn Actions.parentWrapper.addWindow({ windowIdentifier, position: i }, callback);\r\n\t},\r\n\tremoveTab: function (windowIdentifier, i) {\r\n\t\treturn Actions.parentWrapper?.removeWindow({\r\n\t\t\twindowIdentifier,\r\n\t\t\tposition: i,\r\n\t\t});\r\n\t},\r\n\tcloseTab: function (windowIdentifier) {\r\n\t\tconst close: StandardCallback = (err, wrap) => {\r\n\t\t\twrap.close({ removeFromWorkspace: true });\r\n\t\t};\r\n\t\tFSBL.FinsembleWindow.getInstance(windowIdentifier, close);\r\n\t},\r\n\treorderTab: function (tab, newIndex) {\r\n\t\tlet tabs = Actions.getTabs();\r\n\t\tlet { currentIndex } = Actions.findTab(tab);\r\n\t\tif (currentIndex === -1 || !Actions.parentWrapper) {\r\n\t\t\treturn Actions.addTab(tab, newIndex);\r\n\t\t}\r\n\t\ttabs.splice(currentIndex, 1);\r\n\t\ttabs.splice(newIndex, 0, tab);\r\n\t\t// Local change, quickly updates the dom.\r\n\t\tActions._setTabs(tabs);\r\n\t\tActions.parentWrapper.reorder({ windowIdentifiers: tabs });\r\n\t},\r\n\tfindTab: function (tab) {\r\n\t\tlet tabs = this.getTabs();\r\n\t\tlet currentIndex = tabs.findIndex((el) => tab.windowName === el.windowName && tab.uuid === el.uuid);\r\n\t\treturn { tab, currentIndex };\r\n\t},\r\n\tsetActiveTab: function (windowIdentifier) {\r\n\t\tFSBL.Clients.Logger.system.debug(\"setActiveTab.visibleWindow\");\r\n\t\treturn finsembleWindow.parentWindow.setVisibleWindow({ windowIdentifier });\r\n\t},\r\n\tparentWrapper: null,\r\n\tonTabListChanged: function (err, response) {\r\n\t\tFSBL.Clients.Logger.system.debug(\"OnTabListChanged\", response.data);\r\n\t\tif (response.data && response.data.hasOwnProperty(constants.CHILD_WINDOW_FIELD)) {\r\n\t\t\tActions._setTabs(response.data[constants.CHILD_WINDOW_FIELD]);\r\n\t\t}\r\n\t},\r\n\tparentSubscriptions: [],\r\n\tstopListeningOnParentWrapper: function (cb) {\r\n\t\tActions.parentSubscriptions.forEach((sub) => {\r\n\t\t\tFSBL.Clients.RouterClient.unsubscribe(sub);\r\n\t\t});\r\n\t\tActions.parentSubscriptions = []; // remove the subscribeId\r\n\t\t// Syncs scroll state across all tabs in a stack.\r\n\t\tFSBL.Clients.RouterClient.removeListener(\r\n\t\t\tconstants.TAB_SCROLL_POSITION_CHANGED,\r\n\t\t\tActions.onTabListScrollPositionChanged\r\n\t\t);\r\n\t\tcb();\r\n\t},\r\n\tlistenOnParentWrapper: function () {\r\n\t\tlet TABLIST_SUBSCRIPTION = FSBL.Clients.RouterClient.subscribe(\r\n\t\t\tconstants.PARENT_WRAPPER_UPDATES,\r\n\t\t\tActions.onTabListChanged\r\n\t\t);\r\n\t\tFSBL.Clients.RouterClient.addListener(\r\n\t\t\tconstants.TAB_SCROLL_POSITION_CHANGED,\r\n\t\t\tActions.onTabListScrollPositionChanged\r\n\t\t);\r\n\t\tActions.parentSubscriptions.push(TABLIST_SUBSCRIPTION);\r\n\t},\r\n\tsetupStore: function (cb = Function.prototype) {\r\n\t\tconstants = {\r\n\t\t\tPARENT_WRAPPER_UPDATES: `Finsemble.StackedWindow.${Actions.parentWrapper?.identifier?.windowName}`,\r\n\t\t\tCHILD_WINDOW_FIELD: \"childWindowIdentifiers\",\r\n\t\t\tVISIBLE_WINDOW_FIELD: \"visibleWindowIdentifier\",\r\n\t\t\tTAB_SCROLL_POSITION_CHANGED: `${Actions.parentWrapper?.name}.tabListTabListScrollPositionChanged`,\r\n\t\t};\r\n\t\tActions.listenOnParentWrapper();\r\n\t\tcb();\r\n\t},\r\n\tgetInitialTabList: function (cb) {\r\n\t\tfinsembleWindow.getParent((err, parentWrapper) => {\r\n\t\t\tActions.parentWrapper = parentWrapper;\r\n\t\t\tif (Actions.parentWrapper) {\r\n\t\t\t\tFSBL.Clients.Logger.system.debug(\"GetInitialTabList, parent exists\");\r\n\t\t\t\tActions.setupStore(cb);\r\n\t\t\t} else {\r\n\t\t\t\tlet activeIdentifier: any = finsembleWindow.identifier;\r\n\t\t\t\tactiveIdentifier.title = finsembleWindow.windowOptions.title;\r\n\t\t\t\tlet tabs = [activeIdentifier];\r\n\t\t\t\tcb(null, tabs);\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\tcreateParentWrapper(params: ParentParams, cb = Function.prototype) {\r\n\t\t(window as any).Actions = Actions;\r\n\t\tif (Actions.parentWrapper) {\r\n\t\t\tcb();\r\n\t\t} else {\r\n\t\t\tconst getStackedWindowCallback: StandardCallback = (err, wrap) => {\r\n\t\t\t\tif (err) {\r\n\t\t\t\t\tActions.parentWrapper = null;\r\n\t\t\t\t\tActions._setTabs(null);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tActions.parentWrapper = wrap;\r\n\t\t\t\t\tActions.setupStore(cb);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\tgetStackedWindow(params, getStackedWindowCallback);\r\n\t\t}\r\n\t},\r\n};\r\n\r\n/**\r\n * Initializes the store for the windowTitleBar.\r\n *\r\n * @param {any} cb\r\n */\r\nfunction initialize(cb: Function) {\r\n\tFSBL.Clients.DistributedStoreClient.createStore(\r\n\t\t{ store: \"windowTitleBarStore\", values: windowTitleBarStoreDefaults },\r\n\t\t(err, store) => {\r\n\t\t\tif (!err && store) {\r\n\t\t\t\twindowTitleBarStore = store;\r\n\t\t\t}\r\n\t\t\tActions.initialize();\r\n\t\t\treturn cb(store, Actions);\r\n\t\t}\r\n\t);\r\n}\r\n\r\nlet getStore = () => windowTitleBarStore;\r\n\r\nclass StoreManager {\r\n\tinitialized = false;\r\n\r\n\tinitializing = false;\r\n\r\n\tstore: StoreModel | null = null;\r\n\r\n\tcallbacks: Function[] = [];\r\n\r\n\tconstructor() {}\r\n\r\n\tinitialize() {\r\n\t\tif (this.initializing) return;\r\n\t\tthis.initializing = true;\r\n\t\tinitialize((store: StoreModel) => {\r\n\t\t\tthis.initialized = true;\r\n\t\t\tthis.store = store;\r\n\t\t\tthis.callbacks.forEach((cb) => cb(store));\r\n\t\t});\r\n\t}\r\n\r\n\taddInitializedListener(cb: Function) {\r\n\t\tif (this.initialized) return cb(this.store);\r\n\t\tthis.callbacks.push(cb);\r\n\t}\r\n\r\n\tremoveInitializedListener(cb: Function) {\r\n\t\tthis.callbacks = this.callbacks.filter((entry) => entry !== cb);\r\n\t}\r\n}\r\nconst storeManager = new StoreManager();\r\n\r\nexport { storeManager };\r\nexport { initialize };\r\nexport { windowTitleBarStore as Store };\r\nexport { Actions };\r\nexport { getStore };\r\n"]}
1
+ {"version":3,"file":"windowTitleBarStore.js","sourceRoot":"","sources":["../../../../src/components/windowTitleBar/stores/windowTitleBarStore.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright 2017 by ChartIQ, Inc.\n * All rights reserved.\n */\nimport windowTitleBarStoreDefaults from \"./windowTitleBarStoreDefaults\";\nimport { StandardCallback } from \"@finsemble/finsemble-core/types/types\";\nimport { FinsembleWindow, WindowIdentifier } from \"@finsemble/finsemble-core\";\nimport StoreModel from \"@finsemble/finsemble-core/types/clients/StoreModel\";\n\nconst getWindowNameForDocking = (finsembleWindow: FinsembleWindow) => {\n\tconst parent = finsembleWindow.parentWindow;\n\treturn parent ? parent.name : finsembleWindow.name;\n};\n\ntype ParentParams = {\n\twindowIdentifiers: WindowIdentifier[];\n\tvisibleWindowIdentifier: WindowIdentifier;\n\tcreate: boolean;\n};\n\nconst getStackedWindow = (params: ParentParams, cb: StandardCallback) => {\n\tif (!finsembleWindow.parentWindow && params.create) {\n\t\tconst onParentSet = (evt: any) => {\n\t\t\tconst { parentName } = evt.data;\n\t\t\tfinsembleWindow.setParent({ windowName: parentName }, (err2, windowWrapper) => {\n\t\t\t\tcb?.(err2, windowWrapper);\n\t\t\t});\n\t\t\tfinsembleWindow.removeListener(\"parent-set\", onParentSet);\n\t\t};\n\t\tfinsembleWindow.addListener(\"parent-set\", onParentSet);\n\t\tFSBL.Clients.LauncherClient.spawn(\n\t\t\t\"StackedWindow\",\n\t\t\t{\n\t\t\t\twindowType: \"StackedWindow\",\n\t\t\t\tdata: { windowIdentifiers: params.windowIdentifiers },\n\t\t\t\toptions: { newStack: true },\n\t\t\t},\n\t\t\t(err) => {\n\t\t\t\tif (!err) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tcb?.(err, null);\n\t\t\t}\n\t\t);\n\t} else {\n\t\tfinsembleWindow.getParent(cb);\n\t}\n};\n\nlet windowTitleBarStore: StoreModel;\n\ntype ConstantsType = {\n\tPARENT_WRAPPER_UPDATES: string;\n\tCHILD_WINDOW_FIELD: string;\n\tVISIBLE_WINDOW_FIELD: string;\n\tTAB_SCROLL_POSITION_CHANGED: string;\n};\n\ntype ActionsType = {\n\tparentWrapperStore: any;\n\tparentSubscriptions: any[];\n\tparentWrapper: FinsembleWindow | null;\n\n\tinitialize: () => void;\n\tgetMyDockingGroups: (groupData: any) => any[];\n\tonTabListScrollPositionChanged: StandardCallback;\n\tsetTabListScrollPosition: (translateX: number) => void;\n\tremoteStateUpdate: (command: string, state: any) => void;\n\tclickMinimize: () => void;\n\tclickClose: () => void;\n\ttoggleGroup: () => void;\n\tclickMaximize: () => void;\n\tgetTabs: () => WindowIdentifier[];\n\t_setTabs: (tabs: WindowIdentifier[] | null) => any;\n\taddTabLocally: (windowIdentifier: WindowIdentifier, i: number) => void;\n\tremoveTabsLocally: () => void;\n\tremoveTabLocally: (windowIdentifier: WindowIdentifier) => void;\n\treorderTabLocally: (tab: WindowIdentifier, newIndex: number) => undefined | any;\n\taddTab: (windowIdentifier: WindowIdentifier, i: number) => any;\n\tremoveTab: (windowIdentifier: WindowIdentifier, i: number) => any;\n\tcloseTab: (windowIdentifier: WindowIdentifier) => void;\n\treorderTab: (tab: WindowIdentifier, newIndex: number) => any;\n\tfindTab: (tab: WindowIdentifier) => { tab: WindowIdentifier; currentIndex: number };\n\tsetActiveTab: (windowIdentifier: WindowIdentifier) => Promise<any>;\n\tonTabListChanged: StandardCallback;\n\tstopListeningOnParentWrapper: (cb: Function) => void;\n\tlistenOnParentWrapper: () => void;\n\tsetupStore: (cb?: Function) => void;\n\tgetInitialTabList: (cb: StandardCallback) => void;\n\tcreateParentWrapper: (params: ParentParams, cb?: Function) => void;\n};\n\n// these are constants that are set inside of setupStore. so they're declared as vars and not constants.\nlet constants: ConstantsType;\nconst Actions: ActionsType = {\n\tparentWrapperStore: null,\n\tinitialize: function () {\n\t\t// This ensures that our config is correct, even if the developer missed some entries\n\t\tlet { options } = FSBL.Clients.WindowClient;\n\t\tlet windowTitleBarConfig = options.customData.foreign.components[\"Window Manager\"];\n\t\tlet { FSBLHeader } = windowTitleBarConfig;\n\t\tlet self = this;\n\n\t\t// Display name is first up for display. If it doesn't exist, we look for a default title (or one that's already set on init). If no title, we display the window's name (e.g., '5434-Welcome Component-2321').\n\t\tconst displayName = options.customData?.component?.displayName;\n\n\t\t/**\n\t\t * The windowTitleBar (header) is dumb. It just reflects the state of the component window. The headerCommandChannel allows the WindowClient to take control of the state of the header. All of the details of listening to window events are handled inside the WindowClient\n\t\t */\n\t\tFSBL.Clients.WindowClient.headerCommandChannel((command, state) => {\n\t\t\tthis.remoteStateUpdate(command, state);\n\t\t});\n\n\t\t/**\n\t\t * \"FSBLHeader\" can be true, false or an object. If false then we'll never even be here. If true, then maximize, minimize and close buttons will display. If an object, then the developer can override whether buttons are shown with \"hideMaximize\", \"hideMinimize\" and \"hideClose\"\n\t\t */\n\t\tif (FSBLHeader) {\n\t\t\tconst max = !!FSBLHeader.hideMaximize;\n\n\t\t\twindowTitleBarStore.setValues([\n\t\t\t\t{ field: \"Maximize.hide\", value: max },\n\t\t\t\t{ field: \"Minimize.hide\", value: !!FSBLHeader.hideMinimize },\n\t\t\t\t{ field: \"Close.hide\", value: !!FSBLHeader.hideClose },\n\t\t\t\t{ field: \"AlwaysOnTop.show\", value: !!FSBLHeader.alwaysOnTop },\n\t\t\t]);\n\n\t\t\t// By default, we hack the window's scroll bar so that it displays underneath the header. html.overflow: hidden body.overflow:auto\n\t\t\twindowTitleBarStore.setValue({\n\t\t\t\tfield: \"hackScrollbar\",\n\t\t\t\tvalue: windowTitleBarConfig.hackScrollbar !== false,\n\t\t\t});\n\n\t\t\tconst title = FSBL.Clients.WindowClient.title || windowTitleBarConfig.title || displayName;\n\n\t\t\tif (title) {\n\t\t\t\tdocument.title = title;\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Handles whether to show the linker button.\n\t\t */\n\t\tif (windowTitleBarConfig.showLinker) {\n\t\t\t// Get state (channel membership) from the linkerClient. Then set the value in the header so that the title bar accurately reflects the state.\n\t\t\tconst cb: StandardCallback = (err, response) => {\n\t\t\t\tif (response.channels) {\n\t\t\t\t\twindowTitleBarStore.setValue({\n\t\t\t\t\t\tfield: \"Linker.channels\",\n\t\t\t\t\t\tvalue: response.channels,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\twindowTitleBarStore.setValue({\n\t\t\t\t\tfield: \"Linker.showLinkerButton\",\n\t\t\t\t\tvalue: true,\n\t\t\t\t});\n\t\t\t};\n\t\t\tcb(null, FSBL.Clients.LinkerClient.getState());\n\t\t\t/* [Terry] no longer necessary?\n\t\t\tFSBL.Clients.LinkerClient.getLinkedChannels({\n\t\t\t\twindowName: options.name,\n\t\t\t\tuuid: options.uuid,\n\t\t\t\tcomponentType: options.customData.component.type\n\t\t\t}, cb);\n\t\t\t*/\n\t\t\tFSBL.Clients.LinkerClient.onStateChange(cb);\n\t\t}\n\n\t\t/**\n\t\t * Listen for updates from the dragAndDropClient.\n\t\t */\n\t\tFSBL.Clients.RouterClient.subscribe(\n\t\t\t`${FSBL.Clients.WindowClient.options.name}Finsemble.Sharer`,\n\t\t\t(err, response) => {\n\t\t\t\tif (err) {\n\t\t\t\t\treturn console.error(err);\n\t\t\t\t}\n\t\t\t\twindowTitleBarStore.setValues([\n\t\t\t\t\t{\n\t\t\t\t\t\tfield: \"Sharer.emitterEnabled\",\n\t\t\t\t\t\tvalue: response.data.emitterEnabled,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tfield: \"Sharer.receiverEnabled\",\n\t\t\t\t\t\tvalue: response.data.receiverEnabled,\n\t\t\t\t\t},\n\t\t\t\t]);\n\t\t\t}\n\t\t);\n\n\t\t/**\n\t\t * When a group update is publish, we sift through the data to see if this window is snapped or grouped with other windows. Then we publish that info, and the GroupingButton renders the correct icon.\n\t\t * @param {*} err\n\t\t * @param {*} response\n\t\t */\n\t\tconst onDockingGroupUpdate: StandardCallback = function (err, response) {\n\t\t\tif (err || !response.data || !response.data.groupData) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tFSBL.Clients.Logger.system.debug(\"On docking group update\", response.data.groupData);\n\t\t\tlet groupNames = Object.keys(response.data.groupData);\n\t\t\tlet movableGroups = groupNames\n\t\t\t\t.filter((groupName) => response.data.groupData[groupName].isMovable)\n\t\t\t\t.map((groupName) => response.data.groupData[groupName]);\n\t\t\t// This is all movable and snapped groups. It's used later to figure out the icon to display.\n\t\t\twindowTitleBarStore.setValue({\n\t\t\t\tfield: \"Main.allDockingGroups\",\n\t\t\t\tvalue: response.data.groupData,\n\t\t\t});\n\n\t\t\twindowTitleBarStore.setValue({\n\t\t\t\tfield: \"Main.allMovableDockingGroups\",\n\t\t\t\tvalue: movableGroups,\n\t\t\t});\n\t\t\tlet myGroups = self.getMyDockingGroups(response.data.groupData);\n\t\t\twindowTitleBarStore.setValue({\n\t\t\t\tfield: \"Main.dockingGroups\",\n\t\t\t\tvalue: myGroups,\n\t\t\t});\n\t\t\t/**\n\t\t\t * Goes through groups and sees if this window is grouped, snapped, or freely hanging out there.\n\t\t\t */\n\t\t\tlet isSnapped = false;\n\t\t\tlet isInMovableGroup = false;\n\t\t\tlet isTopRight = false;\n\t\t\tlet windowName = getWindowNameForDocking(finsembleWindow);\n\t\t\tfor (let i = 0; i < myGroups.length; i++) {\n\t\t\t\tlet myGroup = myGroups[i];\n\t\t\t\tif (myGroup.isMovable) {\n\t\t\t\t\tisInMovableGroup = true;\n\t\t\t\t\tif (windowName == myGroup.topRightWindow) {\n\t\t\t\t\t\tisTopRight = true;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tisSnapped = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet icon: string | false = false;\n\n\t\t\tif (isSnapped) {\n\t\t\t\ticon = \"joiner\";\n\t\t\t}\n\t\t\tif (isInMovableGroup) {\n\t\t\t\ticon = \"ejector\";\n\t\t\t}\n\n\t\t\twindowTitleBarStore.setValues([\n\t\t\t\t{ field: \"isSnapped\", value: isSnapped },\n\t\t\t\t{ field: \"isGrouped\", value: isInMovableGroup },\n\t\t\t\t{ field: \"isTopRight\", value: isTopRight },\n\t\t\t\t{ field: \"Main.dockingIcon\", value: icon },\n\t\t\t]);\n\t\t};\n\n\t\tFSBL.Clients.RouterClient.subscribe(\"Finsemble.WorkspaceService.groupUpdate\", onDockingGroupUpdate);\n\n\t\t// default title.\n\t\twindowTitleBarStore.setValue({\n\t\t\tfield: \"Main.windowTitle\",\n\t\t\tvalue: FSBL.Clients.WindowClient.getWindowTitle(),\n\t\t});\n\n\t\tconst getValuesCallback: StandardCallback = (err, values) => {\n\t\t\tconst finsembleConfig = values.finsemble;\n\n\t\t\t// Check FEA config for DOM based movement configuration\n\t\t\tconst { useDOMBasedMovement } = values[\"finsemble-electron-adapter\"];\n\n\t\t\twindowTitleBarStore.setValue({\n\t\t\t\tfield: \"Main.useDOMBasedMovement\",\n\t\t\t\tvalue: typeof useDOMBasedMovement === \"undefined\" ? true : useDOMBasedMovement,\n\t\t\t});\n\n\t\t\tlet globalWindowManagerConfig = finsembleConfig[\"Window Manager\"] || {\n\t\t\t\talwaysOnTopIcon: false,\n\t\t\t\tshowTabs: false,\n\t\t\t}; // Override defaults if finsemble.Window Manager exists.\n\n\t\t\t// Look to see if docking is enabled. Cascade through backward compatibility with old \"betaFeatures\" and then a default if no config is found at all.\n\n\t\t\tif (!finsembleConfig.servicesConfig) finsembleConfig.servicesConfig = {};\n\t\t\tlet dockingConfig = finsembleConfig.servicesConfig.docking || finsembleConfig.docking;\n\t\t\tif (!dockingConfig && finsembleConfig.betaFeatures) dockingConfig = finsembleConfig.betaFeatures.docking;\n\t\t\tif (!dockingConfig) dockingConfig = { enabled: true };\n\t\t\tif (!dockingConfig.tabbing) dockingConfig.tabbing = {};\n\n\t\t\twindowTitleBarStore.setValues([{ field: \"Main.dockingEnabled\", value: dockingConfig.enabled }]);\n\n\t\t\t// Whether the alwaysOnTop pin shows or not depends first on the global setting (finsemble[\"Window Manager\"].alwaysOnTop) and then\n\t\t\t// on the specific setting for this component (foreign.components[\"Widow Manager\"].alwaysOnTop)\n\t\t\tlet { alwaysOnTopIcon } = globalWindowManagerConfig;\n\t\t\tif (windowTitleBarConfig.alwaysOnTopIcon === false || windowTitleBarConfig.alwaysOnTopIcon === true)\n\t\t\t\t({ alwaysOnTopIcon } = windowTitleBarConfig);\n\n\t\t\twindowTitleBarStore.setValues([{ field: \"AlwaysOnTop.show\", value: alwaysOnTopIcon }]);\n\n\t\t\t// If tabbing is turned off, ignore global/local 'windowManager' config about whether to allow tabbing.\n\t\t\tif (dockingConfig.tabbing.enabled === false) {\n\t\t\t\twindowTitleBarStore.setValue({\n\t\t\t\t\tfield: \"showTabs\",\n\t\t\t\t\tvalue: dockingConfig.tabbing.enabled,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// If tabbing is enabled system-wide, look to the global config for its value. Then look to the local component's config.\n\n\t\t\t\t// This is the global window manager config.\n\t\t\t\tif (typeof windowTitleBarConfig.showTabs !== \"boolean\") {\n\t\t\t\t\twindowTitleBarStore.setValue({\n\t\t\t\t\t\tfield: \"showTabs\",\n\t\t\t\t\t\tvalue: globalWindowManagerConfig.showTabs,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\t// This is the component's config.\n\t\t\t\tif (windowTitleBarConfig.showTabs || windowTitleBarConfig.showTabs === false) {\n\t\t\t\t\twindowTitleBarStore.setValue({\n\t\t\t\t\t\tfield: \"showTabs\",\n\t\t\t\t\t\tvalue: windowTitleBarConfig.showTabs,\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// Once the above has been checked the individual component config is checked for customData.foreign.services[windowService || dockingService][!ignoreTilingAndTabbingRequests || allowTabbing]\n\t\t\t\tlet showTabs = true;\n\t\t\t\tconst getOptionsCallback: StandardCallback = (_, opts) => {\n\t\t\t\t\tif (opts.customData && opts.customData.foreign && opts.customData.foreign.services) {\n\t\t\t\t\t\tif (opts.customData.foreign.services.windowService) {\n\t\t\t\t\t\t\tif (opts.customData.foreign.services.windowService.allowTabbing !== undefined) {\n\t\t\t\t\t\t\t\tshowTabs = opts.customData.foreign.services.windowService.allowTabbing;\n\t\t\t\t\t\t\t} else if (opts.customData.foreign.services.windowService.ignoreTilingAndTabbingRequests != undefined) {\n\t\t\t\t\t\t\t\tshowTabs = !opts.customData.foreign.services.windowService.ignoreTilingAndTabbingRequests;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (opts.customData.foreign.services.dockingService) {\n\t\t\t\t\t\t\tif (opts.customData.foreign.services.dockingService.allowTabbing !== undefined) {\n\t\t\t\t\t\t\t\tshowTabs = opts.customData.foreign.services.dockingService.allowTabbing;\n\t\t\t\t\t\t\t} else if (opts.customData.foreign.services.dockingService.ignoreTilingAndTabbingRequests != undefined) {\n\t\t\t\t\t\t\t\tshowTabs = !opts.customData.foreign.services.dockingService.ignoreTilingAndTabbingRequests;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\twindowTitleBarStore.setValue({\n\t\t\t\t\t\tfield: \"showTabs\",\n\t\t\t\t\t\tvalue: showTabs,\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t\tfinsembleWindow.getOptions(getOptionsCallback);\n\t\t\t}\n\t\t};\n\t\tFSBL.Clients.ConfigClient.getValues(\n\t\t\t[{ field: \"finsemble\" }, { field: \"finsemble-electron-adapter\" }],\n\t\t\tgetValuesCallback\n\t\t);\n\n\t\tActions.getInitialTabList((err, values) => {\n\t\t\tconst onParentSet = () => {\n\t\t\t\tActions.parentWrapper = null;\n\t\t\t\tActions.getInitialTabList(() => {\n\t\t\t\t\tFSBL.Clients.Logger.system.debug(\"docking group update after initial tab list\");\n\t\t\t\t\tonDockingGroupUpdate(null, {\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tgroupData: windowTitleBarStore.getValue({\n\t\t\t\t\t\t\t\tfield: \"Main.allDockingGroups\",\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t};\n\t\t\tconst onParentCleared = () => {\n\t\t\t\tActions.parentWrapper = null;\n\t\t\t\tFSBL.Clients.Logger.system.debug(\"ClearParent, setting tabs to null\");\n\t\t\t\tActions.stopListeningOnParentWrapper(() => {\n\t\t\t\t\tActions.parentWrapperStore = null;\n\t\t\t\t\tActions._setTabs(null);\n\t\t\t\t\tonDockingGroupUpdate(null, {\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tgroupData: windowTitleBarStore.getValue({\n\t\t\t\t\t\t\t\tfield: \"Main.allDockingGroups\",\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tfinsembleWindow?.addListener(\"setParent\", onParentSet);\n\t\t\tfinsembleWindow?.addListener(\"clearParent\", onParentCleared);\n\t\t\tif (err) {\n\t\t\t\treturn FSBL.Clients.Logger.system.error(\"Error in getInitialTabList.\", err);\n\t\t\t}\n\n\t\t\tif (values) Actions._setTabs(values);\n\t\t});\n\t},\n\t/**\n\t * Helper function to sift through all of the data coming from the windowService. Outputs an array of groups that the window belongs to.\n\t */\n\tgetMyDockingGroups: function (groupData) {\n\t\tlet myGroups = [];\n\t\tlet windowName = getWindowNameForDocking(finsembleWindow);\n\t\tif (finsembleWindow?.parentWindow) {\n\t\t\twindowName = finsembleWindow?.parentWindow.name;\n\t\t}\n\t\tFSBL.Clients.Logger.system.debug(\"Getting docking groups for \", windowName, groupData);\n\t\tif (groupData) {\n\t\t\tfor (let groupName in groupData) {\n\t\t\t\tgroupData[groupName].groupName = groupName;\n\t\t\t\tif (groupData[groupName].windowNames.includes(windowName)) {\n\t\t\t\t\tmyGroups.push(groupData[groupName]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn myGroups;\n\t},\n\tonTabListScrollPositionChanged: function (err, response) {\n\t\twindowTitleBarStore.setValue({\n\t\t\tfield: \"tabListTranslateX\",\n\t\t\tvalue: response.data.translateX,\n\t\t});\n\t},\n\tsetTabListScrollPosition: function (translateX) {\n\t\tFSBL.Clients.RouterClient.transmit(constants.TAB_SCROLL_POSITION_CHANGED, {\n\t\t\ttranslateX,\n\t\t});\n\t},\n\t/**\n\t * Handles messages coming from the windowClient.\n\t */\n\tremoteStateUpdate: function (command, state) {\n\t\tconst key = Object.keys(state)[0];\n\t\tconst field = `${command}.${key}`;\n\t\twindowTitleBarStore.setValue({ field: field, value: state[key] });\n\t},\n\t/**\n\t * Minimizes the window.\n\t */\n\tclickMinimize: function () {\n\t\tfinsembleWindow.minimize(() => {});\n\t},\n\t/**\n\t * Closes the window, allows for cleanup. Removes the window from workspace; this function is only invoked when the user clicks the close button.\n\t */\n\tclickClose: function () {\n\t\tFSBL.Clients.WindowClient.close({\n\t\t\tcloseWindow: true,\n\t\t\tremoveFromWorkspace: true, // this will cause the entire stack to close. Using this instead of a new parameter to ensure backwards compatibility\n\t\t\tuserInitiated: true,\n\t\t});\n\t},\n\t/**\n\t * Toggles group membership. If two windows are snapped, and this button is clicked, they become part of the same group that can be moved around together.\n\t */\n\ttoggleGroup: function () {\n\t\tconst groups = windowTitleBarStore.getValue({ field: \"Main.dockingGroups\" });\n\t\tconst isInMovableGroup = groups.some((group: any) => group.isMovable);\n\t\tif (isInMovableGroup) {\n\t\t\tfinsembleWindow.ejectFromGroup();\n\t\t} else {\n\t\t\tfinsembleWindow.formGroup();\n\t\t}\n\t},\n\t/**\n\t * Maximizes the window.\n\t */\n\tclickMaximize: function () {\n\t\tif (finsembleWindow.windowState !== finsembleWindow.WINDOWSTATE.MAXIMIZED)\n\t\t\treturn finsembleWindow.maximize(() => {\n\t\t\t\twindowTitleBarStore.setValue({\n\t\t\t\t\tfield: \"Maximize.maximized\",\n\t\t\t\t\tvalue: true,\n\t\t\t\t});\n\t\t\t});\n\n\t\treturn finsembleWindow.restore(() => {\n\t\t\twindowTitleBarStore.setValue({\n\t\t\t\tfield: \"Maximize.maximized\",\n\t\t\t\tvalue: false,\n\t\t\t});\n\t\t});\n\t},\n\n\tgetTabs() {\n\t\treturn windowTitleBarStore.getValue({ field: \"tabs\" }) as WindowIdentifier[];\n\t},\n\t_setTabs(tabs) {\n\t\tFSBL.Clients.Logger.system.debug(\"Set tabs\", tabs);\n\t\tlet activeIdentifier: any = finsembleWindow.identifier;\n\t\tactiveIdentifier.title = finsembleWindow.windowOptions.title;\n\t\treturn windowTitleBarStore.setValue({\n\t\t\tfield: \"tabs\",\n\t\t\tvalue: tabs || [activeIdentifier],\n\t\t});\n\t},\n\taddTabLocally: function (windowIdentifier, i) {\n\t\tlet tabs = Actions.getTabs();\n\t\tif (typeof i === \"undefined\") {\n\t\t\ti = tabs.length + 1;\n\t\t}\n\t\ttabs.splice(i, 0, windowIdentifier);\n\t\tActions._setTabs(tabs);\n\t},\n\tremoveTabsLocally: function () {\n\t\tActions._setTabs(null);\n\t},\n\tremoveTabLocally: function (windowIdentifier) {\n\t\tlet tabs = Actions.getTabs();\n\t\tlet i = tabs.findIndex((el) => el.windowName === windowIdentifier.windowName && el.uuid === windowIdentifier.uuid);\n\t\ttabs.splice(i, 1);\n\t\tActions._setTabs(tabs);\n\t},\n\treorderTabLocally: function (tab, newIndex) {\n\t\tlet tabs = Actions.getTabs();\n\t\tlet { currentIndex } = Actions.findTab(tab);\n\t\tif (currentIndex === newIndex) return;\n\t\tif (currentIndex === -1) {\n\t\t\treturn Actions.addTabLocally(tab, newIndex);\n\t\t}\n\t\ttabs.splice(currentIndex, 1);\n\t\ttabs.splice(newIndex, 0, tab);\n\n\t\tActions._setTabs(tabs);\n\t},\n\taddTab: function (windowIdentifier, i) {\n\t\tlet tabs = Actions.getTabs();\n\t\ttabs.push(windowIdentifier);\n\t\t// quick UI update\n\t\tActions._setTabs(tabs);\n\t\tlet callback = () => {\n\t\t\tActions.parentWrapper?.setVisibleWindow({ windowIdentifier });\n\t\t};\n\n\t\tif (!Actions.parentWrapper) {\n\t\t\treturn Actions.createParentWrapper({\n\t\t\t\twindowIdentifiers: finsembleWindow.identifier\n\t\t\t\t\t? [finsembleWindow.identifier, windowIdentifier]\n\t\t\t\t\t: [windowIdentifier],\n\t\t\t\tvisibleWindowIdentifier: windowIdentifier,\n\t\t\t\tcreate: true,\n\t\t\t});\n\t\t}\n\t\treturn Actions.parentWrapper.addWindow({ windowIdentifier, position: i }, callback);\n\t},\n\tremoveTab: function (windowIdentifier, i) {\n\t\treturn Actions.parentWrapper?.removeWindow({\n\t\t\twindowIdentifier,\n\t\t\tposition: i,\n\t\t});\n\t},\n\tcloseTab: function (windowIdentifier) {\n\t\tconst close: StandardCallback = (err, wrap) => {\n\t\t\twrap.close({ removeFromWorkspace: true });\n\t\t};\n\t\tFSBL.FinsembleWindow.getInstance(windowIdentifier, close);\n\t},\n\treorderTab: function (tab, newIndex) {\n\t\tlet tabs = Actions.getTabs();\n\t\tlet { currentIndex } = Actions.findTab(tab);\n\t\tif (currentIndex === -1 || !Actions.parentWrapper) {\n\t\t\treturn Actions.addTab(tab, newIndex);\n\t\t}\n\t\ttabs.splice(currentIndex, 1);\n\t\ttabs.splice(newIndex, 0, tab);\n\t\t// Local change, quickly updates the dom.\n\t\tActions._setTabs(tabs);\n\t\tActions.parentWrapper.reorder({ windowIdentifiers: tabs });\n\t},\n\tfindTab: function (tab) {\n\t\tlet tabs = this.getTabs();\n\t\tlet currentIndex = tabs.findIndex((el) => tab.windowName === el.windowName && tab.uuid === el.uuid);\n\t\treturn { tab, currentIndex };\n\t},\n\tsetActiveTab: function (windowIdentifier) {\n\t\tFSBL.Clients.Logger.system.debug(\"setActiveTab.visibleWindow\");\n\t\treturn finsembleWindow.parentWindow.setVisibleWindow({ windowIdentifier });\n\t},\n\tparentWrapper: null,\n\tonTabListChanged: function (err, response) {\n\t\tFSBL.Clients.Logger.system.debug(\"OnTabListChanged\", response.data);\n\t\tif (response.data && response.data.hasOwnProperty(constants.CHILD_WINDOW_FIELD)) {\n\t\t\tActions._setTabs(response.data[constants.CHILD_WINDOW_FIELD]);\n\t\t}\n\t},\n\tparentSubscriptions: [],\n\tstopListeningOnParentWrapper: function (cb) {\n\t\tActions.parentSubscriptions.forEach((sub) => {\n\t\t\tFSBL.Clients.RouterClient.unsubscribe(sub);\n\t\t});\n\t\tActions.parentSubscriptions = []; // remove the subscribeId\n\t\t// Syncs scroll state across all tabs in a stack.\n\t\tFSBL.Clients.RouterClient.removeListener(\n\t\t\tconstants.TAB_SCROLL_POSITION_CHANGED,\n\t\t\tActions.onTabListScrollPositionChanged\n\t\t);\n\t\tcb();\n\t},\n\tlistenOnParentWrapper: function () {\n\t\tlet TABLIST_SUBSCRIPTION = FSBL.Clients.RouterClient.subscribe(\n\t\t\tconstants.PARENT_WRAPPER_UPDATES,\n\t\t\tActions.onTabListChanged\n\t\t);\n\t\tFSBL.Clients.RouterClient.addListener(\n\t\t\tconstants.TAB_SCROLL_POSITION_CHANGED,\n\t\t\tActions.onTabListScrollPositionChanged\n\t\t);\n\t\tActions.parentSubscriptions.push(TABLIST_SUBSCRIPTION);\n\t},\n\tsetupStore: function (cb = Function.prototype) {\n\t\tconstants = {\n\t\t\tPARENT_WRAPPER_UPDATES: `Finsemble.StackedWindow.${Actions.parentWrapper?.identifier?.windowName}`,\n\t\t\tCHILD_WINDOW_FIELD: \"childWindowIdentifiers\",\n\t\t\tVISIBLE_WINDOW_FIELD: \"visibleWindowIdentifier\",\n\t\t\tTAB_SCROLL_POSITION_CHANGED: `${Actions.parentWrapper?.name}.tabListTabListScrollPositionChanged`,\n\t\t};\n\t\tActions.listenOnParentWrapper();\n\t\tcb();\n\t},\n\tgetInitialTabList: function (cb) {\n\t\tfinsembleWindow.getParent((err, parentWrapper) => {\n\t\t\tActions.parentWrapper = parentWrapper;\n\t\t\tif (Actions.parentWrapper) {\n\t\t\t\tFSBL.Clients.Logger.system.debug(\"GetInitialTabList, parent exists\");\n\t\t\t\tActions.setupStore(cb);\n\t\t\t} else {\n\t\t\t\tlet activeIdentifier: any = finsembleWindow.identifier;\n\t\t\t\tactiveIdentifier.title = finsembleWindow.windowOptions.title;\n\t\t\t\tlet tabs = [activeIdentifier];\n\t\t\t\tcb(null, tabs);\n\t\t\t}\n\t\t});\n\t},\n\tcreateParentWrapper(params: ParentParams, cb = Function.prototype) {\n\t\t(window as any).Actions = Actions;\n\t\tif (Actions.parentWrapper) {\n\t\t\tcb();\n\t\t} else {\n\t\t\tconst getStackedWindowCallback: StandardCallback = (err, wrap) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tActions.parentWrapper = null;\n\t\t\t\t\tActions._setTabs(null);\n\t\t\t\t} else {\n\t\t\t\t\tActions.parentWrapper = wrap;\n\t\t\t\t\tActions.setupStore(cb);\n\t\t\t\t}\n\t\t\t};\n\t\t\tgetStackedWindow(params, getStackedWindowCallback);\n\t\t}\n\t},\n};\n\n/**\n * Initializes the store for the windowTitleBar.\n *\n * @param {any} cb\n */\nfunction initialize(cb: Function) {\n\tFSBL.Clients.DistributedStoreClient.createStore(\n\t\t{ store: \"windowTitleBarStore\", values: windowTitleBarStoreDefaults },\n\t\t(err, store) => {\n\t\t\tif (!err && store) {\n\t\t\t\twindowTitleBarStore = store;\n\t\t\t}\n\t\t\tActions.initialize();\n\t\t\treturn cb(store, Actions);\n\t\t}\n\t);\n}\n\nlet getStore = () => windowTitleBarStore;\n\nclass StoreManager {\n\tinitialized = false;\n\n\tinitializing = false;\n\n\tstore: StoreModel | null = null;\n\n\tcallbacks: Function[] = [];\n\n\tconstructor() {}\n\n\tinitialize() {\n\t\tif (this.initializing) return;\n\t\tthis.initializing = true;\n\t\tinitialize((store: StoreModel) => {\n\t\t\tthis.initialized = true;\n\t\t\tthis.store = store;\n\t\t\tthis.callbacks.forEach((cb) => cb(store));\n\t\t});\n\t}\n\n\taddInitializedListener(cb: Function) {\n\t\tif (this.initialized) return cb(this.store);\n\t\tthis.callbacks.push(cb);\n\t}\n\n\tremoveInitializedListener(cb: Function) {\n\t\tthis.callbacks = this.callbacks.filter((entry) => entry !== cb);\n\t}\n}\nconst storeManager = new StoreManager();\n\nexport { storeManager };\nexport { initialize };\nexport { windowTitleBarStore as Store };\nexport { Actions };\nexport { getStore };\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"windowTitleBarStoreDefaults.js","sourceRoot":"","sources":["../../../../src/components/windowTitleBar/stores/windowTitleBarStoreDefaults.ts"],"names":[],"mappings":"AAAA,eAAe;IACd,IAAI,EAAE;QACL,WAAW,EAAE,EAAE;QACf,kBAAkB,EAAE,KAAK;QACzB,WAAW,EAAE,KAAK;QAClB,cAAc,EAAE,KAAK;QACrB,MAAM,EAAE;YACP,KAAK,EAAE;gBACN,KAAK,EAAE,EAAE;aACT;SACD;QACD,mBAAmB,EAAE,IAAI;KACzB;IACD,MAAM,EAAE;QACP,cAAc,EAAE,KAAK;QACrB,eAAe,EAAE,KAAK;QACtB,eAAe,EAAE,KAAK;KACtB;IACD,MAAM,EAAE;QACP,QAAQ,EAAE,EAAE;QACZ,WAAW,EAAE,EAAE;QACf,gBAAgB,EAAE,KAAK;KACvB;IACD,KAAK,EAAE;QACN,IAAI,EAAE,KAAK;KACX;IACD,QAAQ,EAAE;QACT,SAAS,EAAE,KAAK;QAChB,IAAI,EAAE,KAAK;KACX;IACD,QAAQ,EAAE;QACT,IAAI,EAAE,KAAK;KACX;IACD,OAAO,EAAE;QACR,OAAO,EAAE,KAAK;KACd;IACD,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE,KAAK;IACjB,IAAI,EAAE,EAAE;IACR,SAAS,EAAE,EAAE;CACb,CAAC","sourcesContent":["export default {\r\n\tMain: {\r\n\t\twindowTitle: \"\",\r\n\t\tshowDockingTooltip: false,\r\n\t\tdockingIcon: false,\r\n\t\tdockingEnabled: false,\r\n\t\tmains2: {\r\n\t\t\tmain3: {\r\n\t\t\t\tmain4: {},\r\n\t\t\t},\r\n\t\t},\r\n\t\tuseDOMBasedMovement: true,\r\n\t},\r\n\tSharer: {\r\n\t\temitterEnabled: false,\r\n\t\treceiverEnabled: false,\r\n\t\treceiverHandler: false,\r\n\t},\r\n\tLinker: {\r\n\t\tchannels: {},\r\n\t\tallChannels: {},\r\n\t\tshowLinkerButton: false,\r\n\t},\r\n\tClose: {\r\n\t\thide: false,\r\n\t},\r\n\tMaximize: {\r\n\t\tmaximized: false,\r\n\t\thide: false,\r\n\t},\r\n\tMinimize: {\r\n\t\thide: false,\r\n\t},\r\n\tEjector: {\r\n\t\tenabled: false,\r\n\t},\r\n\tisSnapped: false,\r\n\tisGrouped: false,\r\n\tisTopRight: false,\r\n\ttabs: [],\r\n\tactiveTab: {},\r\n};\r\n"]}
1
+ {"version":3,"file":"windowTitleBarStoreDefaults.js","sourceRoot":"","sources":["../../../../src/components/windowTitleBar/stores/windowTitleBarStoreDefaults.ts"],"names":[],"mappings":"AAAA,eAAe;IACd,IAAI,EAAE;QACL,WAAW,EAAE,EAAE;QACf,kBAAkB,EAAE,KAAK;QACzB,WAAW,EAAE,KAAK;QAClB,cAAc,EAAE,KAAK;QACrB,MAAM,EAAE;YACP,KAAK,EAAE;gBACN,KAAK,EAAE,EAAE;aACT;SACD;QACD,mBAAmB,EAAE,IAAI;KACzB;IACD,MAAM,EAAE;QACP,cAAc,EAAE,KAAK;QACrB,eAAe,EAAE,KAAK;QACtB,eAAe,EAAE,KAAK;KACtB;IACD,MAAM,EAAE;QACP,QAAQ,EAAE,EAAE;QACZ,WAAW,EAAE,EAAE;QACf,gBAAgB,EAAE,KAAK;KACvB;IACD,KAAK,EAAE;QACN,IAAI,EAAE,KAAK;KACX;IACD,QAAQ,EAAE;QACT,SAAS,EAAE,KAAK;QAChB,IAAI,EAAE,KAAK;KACX;IACD,QAAQ,EAAE;QACT,IAAI,EAAE,KAAK;KACX;IACD,OAAO,EAAE;QACR,OAAO,EAAE,KAAK;KACd;IACD,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE,KAAK;IACjB,IAAI,EAAE,EAAE;IACR,SAAS,EAAE,EAAE;CACb,CAAC","sourcesContent":["export default {\n\tMain: {\n\t\twindowTitle: \"\",\n\t\tshowDockingTooltip: false,\n\t\tdockingIcon: false,\n\t\tdockingEnabled: false,\n\t\tmains2: {\n\t\t\tmain3: {\n\t\t\t\tmain4: {},\n\t\t\t},\n\t\t},\n\t\tuseDOMBasedMovement: true,\n\t},\n\tSharer: {\n\t\temitterEnabled: false,\n\t\treceiverEnabled: false,\n\t\treceiverHandler: false,\n\t},\n\tLinker: {\n\t\tchannels: {},\n\t\tallChannels: {},\n\t\tshowLinkerButton: false,\n\t},\n\tClose: {\n\t\thide: false,\n\t},\n\tMaximize: {\n\t\tmaximized: false,\n\t\thide: false,\n\t},\n\tMinimize: {\n\t\thide: false,\n\t},\n\tEjector: {\n\t\tenabled: false,\n\t},\n\tisSnapped: false,\n\tisGrouped: false,\n\tisTopRight: false,\n\ttabs: [],\n\tactiveTab: {},\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"windowTitleBarContext.js","sourceRoot":"","sources":["../../../src/components/windowTitleBar/windowTitleBarContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAuB/B,MAAM,mBAAmB,GAA8B;IACtD,mBAAmB,EAAE,IAAI;IACzB,gBAAgB,EAAE,KAAK;IACvB,eAAe,EAAE,KAAK;IACtB,aAAa,EAAE,KAAK;IACpB,iBAAiB,EAAE,KAAK;IACxB,qBAAqB,EAAE,KAAK;IAC5B,kBAAkB,EAAE,KAAK;IACzB,kBAAkB,EAAE,KAAK;IACzB,eAAe,EAAE,KAAK;IACtB,YAAY,EAAE,IAAW;IACzB,eAAe,EAAE,EAAE;IACnB,WAAW,EAAE,IAAW;IACxB,iBAAiB,EAAE,IAAW;IAC9B,IAAI,EAAE,IAAW;IACjB,cAAc,EAAE,IAAW;IAC3B,QAAQ,EAAE,KAAK;IACf,WAAW,EAAE,KAAK;CAClB,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC,aAAa,CAA4B,mBAAmB,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\r\nimport { TabProperties } from \"../../types/windowTitleBar\";\r\n\r\nexport interface WindowTitleBarContextType {\r\n\tshowDockingButton: string | false;\r\n\tuseDOMBasedMovement: boolean;\r\n\ttabs: TabProperties[];\r\n\tshowLinkerButton: boolean;\r\n\tshowShareButton: boolean;\r\n\tshowTabRegion: boolean;\r\n\tshowAlwaysOnTopButton: boolean;\r\n\tshowMinimizeButton: boolean;\r\n\tshowMaximizeButton: boolean;\r\n\tshowCloseButton: boolean;\r\n\tonTabDropped: Function;\r\n\tthisWindowTitle: string;\r\n\tboundingBox: any;\r\n\tlistenForDragOver: boolean;\r\n\tonTitleUpdated: Function;\r\n\tshowTabs: boolean;\r\n\talwaysOnTop: boolean;\r\n}\r\n\r\nconst defaultConfigValues: WindowTitleBarContextType = {\r\n\tuseDOMBasedMovement: true,\r\n\tshowLinkerButton: false,\r\n\tshowShareButton: false,\r\n\tshowTabRegion: false,\r\n\tshowDockingButton: false,\r\n\tshowAlwaysOnTopButton: false,\r\n\tshowMinimizeButton: false,\r\n\tshowMaximizeButton: false,\r\n\tshowCloseButton: false,\r\n\tonTabDropped: null as any,\r\n\tthisWindowTitle: \"\",\r\n\tboundingBox: null as any,\r\n\tlistenForDragOver: null as any,\r\n\ttabs: null as any,\r\n\tonTitleUpdated: null as any,\r\n\tshowTabs: false,\r\n\talwaysOnTop: false,\r\n};\r\n\r\nexport const WindowTitleBarContext = React.createContext<WindowTitleBarContextType>(defaultConfigValues);\r\n"]}
1
+ {"version":3,"file":"windowTitleBarContext.js","sourceRoot":"","sources":["../../../src/components/windowTitleBar/windowTitleBarContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAuB/B,MAAM,mBAAmB,GAA8B;IACtD,mBAAmB,EAAE,IAAI;IACzB,gBAAgB,EAAE,KAAK;IACvB,eAAe,EAAE,KAAK;IACtB,aAAa,EAAE,KAAK;IACpB,iBAAiB,EAAE,KAAK;IACxB,qBAAqB,EAAE,KAAK;IAC5B,kBAAkB,EAAE,KAAK;IACzB,kBAAkB,EAAE,KAAK;IACzB,eAAe,EAAE,KAAK;IACtB,YAAY,EAAE,IAAW;IACzB,eAAe,EAAE,EAAE;IACnB,WAAW,EAAE,IAAW;IACxB,iBAAiB,EAAE,IAAW;IAC9B,IAAI,EAAE,IAAW;IACjB,cAAc,EAAE,IAAW;IAC3B,QAAQ,EAAE,KAAK;IACf,WAAW,EAAE,KAAK;CAClB,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC,aAAa,CAA4B,mBAAmB,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\nimport { TabProperties } from \"../../types/windowTitleBar\";\n\nexport interface WindowTitleBarContextType {\n\tshowDockingButton: string | false;\n\tuseDOMBasedMovement: boolean;\n\ttabs: TabProperties[];\n\tshowLinkerButton: boolean;\n\tshowShareButton: boolean;\n\tshowTabRegion: boolean;\n\tshowAlwaysOnTopButton: boolean;\n\tshowMinimizeButton: boolean;\n\tshowMaximizeButton: boolean;\n\tshowCloseButton: boolean;\n\tonTabDropped: Function;\n\tthisWindowTitle: string;\n\tboundingBox: any;\n\tlistenForDragOver: boolean;\n\tonTitleUpdated: Function;\n\tshowTabs: boolean;\n\talwaysOnTop: boolean;\n}\n\nconst defaultConfigValues: WindowTitleBarContextType = {\n\tuseDOMBasedMovement: true,\n\tshowLinkerButton: false,\n\tshowShareButton: false,\n\tshowTabRegion: false,\n\tshowDockingButton: false,\n\tshowAlwaysOnTopButton: false,\n\tshowMinimizeButton: false,\n\tshowMaximizeButton: false,\n\tshowCloseButton: false,\n\tonTabDropped: null as any,\n\tthisWindowTitle: \"\",\n\tboundingBox: null as any,\n\tlistenForDragOver: null as any,\n\ttabs: null as any,\n\tonTitleUpdated: null as any,\n\tshowTabs: false,\n\talwaysOnTop: false,\n};\n\nexport const WindowTitleBarContext = React.createContext<WindowTitleBarContextType>(defaultConfigValues);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Timer.spec.js","sourceRoot":"","sources":["../../../src/components/yesNoDialog/Timer.spec.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAElF,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,KAAK,oBAAM,KAAK,CAAC,IAAe,EAAI,CAAC,CAAC;QAE7D,MAAM,CAAC,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACzD,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,KAAK,oBAAM,KAAK,CAAC,IAAe,EAAI,CAAC,CAAC;QAE7D,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACjE,OAAO,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\r\nimport { mount } from \"enzyme\";\r\nimport { describe, it } from \"mocha\";\r\nimport { expect } from \"chai\";\r\nimport { Basic } from \"./Timer.stories\";\r\nimport { IProps } from \"./timer\";\r\nimport { accessibilityAssessor } from \"../smartDesktopDesigner/tests/a11y_helper\";\r\n\r\ndescribe(\"<Timer/>\", () => {\r\n\tit(\"should pass accessibility scans (Page)\", async () => {\r\n\t\tconst wrapper = mount(<Basic {...(Basic.args as IProps)} />);\r\n\r\n\t\texpect(await accessibilityAssessor(wrapper)).to.be.true;\r\n\t});\r\n\tit(\"should display the text 'Time remaining: '\", async () => {\r\n\t\tconst wrapper = mount(<Basic {...(Basic.args as IProps)} />);\r\n\r\n\t\texpect(wrapper.find(\"div\").text()).to.contain(\"Time remaining:\");\r\n\t\twrapper.unmount();\r\n\t});\r\n});\r\n"]}
1
+ {"version":3,"file":"Timer.spec.js","sourceRoot":"","sources":["../../../src/components/yesNoDialog/Timer.spec.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAElF,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,KAAK,oBAAM,KAAK,CAAC,IAAe,EAAI,CAAC,CAAC;QAE7D,MAAM,CAAC,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACzD,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,KAAK,oBAAM,KAAK,CAAC,IAAe,EAAI,CAAC,CAAC;QAE7D,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACjE,OAAO,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\nimport { mount } from \"enzyme\";\nimport { describe, it } from \"mocha\";\nimport { expect } from \"chai\";\nimport { Basic } from \"./Timer.stories\";\nimport { IProps } from \"./timer\";\nimport { accessibilityAssessor } from \"../smartDesktopDesigner/tests/a11y_helper\";\n\ndescribe(\"<Timer/>\", () => {\n\tit(\"should pass accessibility scans (Page)\", async () => {\n\t\tconst wrapper = mount(<Basic {...(Basic.args as IProps)} />);\n\n\t\texpect(await accessibilityAssessor(wrapper)).to.be.true;\n\t});\n\tit(\"should display the text 'Time remaining: '\", async () => {\n\t\tconst wrapper = mount(<Basic {...(Basic.args as IProps)} />);\n\n\t\texpect(wrapper.find(\"div\").text()).to.contain(\"Time remaining:\");\n\t\twrapper.unmount();\n\t});\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Timer.stories.js","sourceRoot":"","sources":["../../../src/components/yesNoDialog/Timer.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAiB,MAAM,SAAS,CAAC;AAExC,OAAO,8BAA8B,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,eAAe;IACd,KAAK,EAAE,mBAAmB;IAC1B,SAAS,EAAE,KAAK;CAChB,CAAC;AAEF,MAAM,QAAQ,GAAkB,CAAC,IAAY,EAAE,EAAE,CAAC,oBAAC,KAAK,oBAAK,IAAI,EAAI,CAAC;AAEtE,MAAM,CAAC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACvC,KAAK,CAAC,IAAI,GAAG;IACZ,aAAa,EAAE,IAAI;IACnB,yBAAyB,EAAE,MAAM,CAAC,SAAS,CAAC;CAC5C,CAAC","sourcesContent":["import React from \"react\";\r\nimport Timer, { IProps } from \"./timer\";\r\nimport { Story } from \"@storybook/react/types-6-0\";\r\nimport \"../../assets/css/dialogs.css\";\r\nimport { action } from \"@storybook/addon-actions\";\r\n\r\nexport default {\r\n\ttitle: \"YesNoDialog/Timer\",\r\n\tcomponent: Timer,\r\n};\r\n\r\nconst Template: Story<IProps> = (args: IProps) => <Timer {...args} />;\r\n\r\nexport const Basic = Template.bind({});\r\nBasic.args = {\r\n\ttimerDuration: 1000,\r\n\tontimerDurationExpiration: action(\"Expired\"),\r\n};\r\n"]}
1
+ {"version":3,"file":"Timer.stories.js","sourceRoot":"","sources":["../../../src/components/yesNoDialog/Timer.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAiB,MAAM,SAAS,CAAC;AAExC,OAAO,8BAA8B,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,eAAe;IACd,KAAK,EAAE,mBAAmB;IAC1B,SAAS,EAAE,KAAK;CAChB,CAAC;AAEF,MAAM,QAAQ,GAAkB,CAAC,IAAY,EAAE,EAAE,CAAC,oBAAC,KAAK,oBAAK,IAAI,EAAI,CAAC;AAEtE,MAAM,CAAC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACvC,KAAK,CAAC,IAAI,GAAG;IACZ,aAAa,EAAE,IAAI;IACnB,yBAAyB,EAAE,MAAM,CAAC,SAAS,CAAC;CAC5C,CAAC","sourcesContent":["import React from \"react\";\nimport Timer, { IProps } from \"./timer\";\nimport { Story } from \"@storybook/react/types-6-0\";\nimport \"../../assets/css/dialogs.css\";\nimport { action } from \"@storybook/addon-actions\";\n\nexport default {\n\ttitle: \"YesNoDialog/Timer\",\n\tcomponent: Timer,\n};\n\nconst Template: Story<IProps> = (args: IProps) => <Timer {...args} />;\n\nexport const Basic = Template.bind({});\nBasic.args = {\n\ttimerDuration: 1000,\n\tontimerDurationExpiration: action(\"Expired\"),\n};\n"]}
@@ -1,3 +1,3 @@
1
- body {
2
- margin: 0px;
3
- }
1
+ body {
2
+ margin: 0px;
3
+ }