@finsemble/finsemble-ui 6.2.1 → 6.3.1-beta-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (749) hide show
  1. package/package.json +27 -22
  2. package/react/actions/smartDesktopDesignerActions.d.ts +7 -8
  3. package/react/actions/smartDesktopDesignerActions.js.map +1 -1
  4. package/react/actions/toolbarActions.d.ts +2 -3
  5. package/react/actions/toolbarActions.js.map +1 -1
  6. package/react/assets/css/button.css +2 -1
  7. package/react/assets/css/notificationsCenter.css +4 -2
  8. package/react/assets/css/userPreferences.css +1 -0
  9. package/react/assets/css/windowTitleBar.css +33 -1
  10. package/react/componentTemplateGenerator.js.map +1 -1
  11. package/react/components/FinsembleProvider.js +1 -1
  12. package/react/components/FinsembleProvider.js.map +1 -1
  13. package/react/components/appCatalog/AppCatalogComponent.js +7 -13
  14. package/react/components/appCatalog/AppCatalogComponent.js.map +1 -1
  15. package/react/components/appCatalog/components/AppList.d.ts +7 -1
  16. package/react/components/appCatalog/components/AppList.js +1 -1
  17. package/react/components/appCatalog/components/AppList.js.map +1 -1
  18. package/react/components/appCatalog/components/AppResults.d.ts +10 -8
  19. package/react/components/appCatalog/components/AppResults.js +1 -1
  20. package/react/components/appCatalog/components/AppResults.js.map +1 -1
  21. package/react/components/appCatalog/components/Carousel.js +1 -1
  22. package/react/components/appCatalog/components/Carousel.js.map +1 -1
  23. package/react/components/appCatalog/components/EmptyResults.d.ts +2 -1
  24. package/react/components/appCatalog/components/EmptyResults.js +2 -4
  25. package/react/components/appCatalog/components/EmptyResults.js.map +1 -1
  26. package/react/components/appCatalog/components/Hero.d.ts +24 -4
  27. package/react/components/appCatalog/components/Hero.js +2 -1
  28. package/react/components/appCatalog/components/Hero.js.map +1 -1
  29. package/react/components/appCatalog/components/Home.d.ts +18 -4
  30. package/react/components/appCatalog/components/Home.js.map +1 -1
  31. package/react/components/appCatalog/components/SearchBar.d.ts +20 -7
  32. package/react/components/appCatalog/components/SearchBar.js +4 -7
  33. package/react/components/appCatalog/components/SearchBar.js.map +1 -1
  34. package/react/components/appCatalog/components/Showcase/AppDescription.d.ts +5 -3
  35. package/react/components/appCatalog/components/Showcase/AppDescription.js +4 -6
  36. package/react/components/appCatalog/components/Showcase/AppDescription.js.map +1 -1
  37. package/react/components/appCatalog/components/Showcase/AppDevNotes.d.ts +5 -4
  38. package/react/components/appCatalog/components/Showcase/AppDevNotes.js.map +1 -1
  39. package/react/components/appCatalog/components/Showcase/AppShowcase.js +1 -1
  40. package/react/components/appCatalog/components/Showcase/AppShowcase.js.map +1 -1
  41. package/react/components/appCatalog/components/Showcase/Header.d.ts +13 -5
  42. package/react/components/appCatalog/components/Showcase/Header.js +2 -2
  43. package/react/components/appCatalog/components/Showcase/Header.js.map +1 -1
  44. package/react/components/appCatalog/components/Showcase/Modal.d.ts +7 -4
  45. package/react/components/appCatalog/components/Showcase/Modal.js +6 -6
  46. package/react/components/appCatalog/components/Showcase/Modal.js.map +1 -1
  47. package/react/components/appCatalog/components/Showcase/defaults.d.ts +3 -3
  48. package/react/components/appCatalog/components/Showcase/defaults.js.map +1 -1
  49. package/react/components/appCatalog/components/Tag.d.ts +6 -4
  50. package/react/components/appCatalog/components/Tag.js.map +1 -1
  51. package/react/components/appCatalog/components/Toast.d.ts +5 -3
  52. package/react/components/appCatalog/components/Toast.js +5 -5
  53. package/react/components/appCatalog/components/Toast.js.map +1 -1
  54. package/react/components/appCatalog/components/helpers.js +2 -1
  55. package/react/components/appCatalog/components/helpers.js.map +1 -1
  56. package/react/components/appCatalog/modules/AppDirectory.d.ts +5 -1
  57. package/react/components/appCatalog/modules/AppDirectory.js.map +1 -1
  58. package/react/components/appCatalog/modules/FDC3.d.ts +12 -11
  59. package/react/components/appCatalog/modules/FDC3.js +39 -48
  60. package/react/components/appCatalog/modules/FDC3.js.map +1 -1
  61. package/react/components/appCatalog/stores/appStore.d.ts +9 -2
  62. package/react/components/appCatalog/stores/appStore.js +10 -4
  63. package/react/components/appCatalog/stores/appStore.js.map +1 -1
  64. package/react/components/appCatalog/stores/storeActions.js +96 -98
  65. package/react/components/appCatalog/stores/storeActions.js.map +1 -1
  66. package/react/components/common/Button.d.ts +4 -4
  67. package/react/components/common/Button.js +1 -1
  68. package/react/components/common/Button.js.map +1 -1
  69. package/react/components/common/ButtonIcon.js +1 -1
  70. package/react/components/common/ButtonIcon.js.map +1 -1
  71. package/react/components/common/ColorPicker.js +1 -1
  72. package/react/components/common/ColorPicker.js.map +1 -1
  73. package/react/components/common/DropZone.d.ts +0 -5
  74. package/react/components/common/DropZone.js.map +1 -1
  75. package/react/components/common/DropdownButton.js +1 -1
  76. package/react/components/common/DropdownButton.js.map +1 -1
  77. package/react/components/common/FileInput.d.ts +0 -5
  78. package/react/components/common/FileInput.js +7 -9
  79. package/react/components/common/FileInput.js.map +1 -1
  80. package/react/components/common/FinsembleIcon.d.ts +2 -2
  81. package/react/components/common/FinsembleIcon.js.map +1 -1
  82. package/react/components/common/FinsembleSelect.js +2 -5
  83. package/react/components/common/FinsembleSelect.js.map +1 -1
  84. package/react/components/common/FinsembleToggle.js +2 -2
  85. package/react/components/common/FinsembleToggle.js.map +1 -1
  86. package/react/components/common/FontSizeSelector.js +2 -2
  87. package/react/components/common/FontSizeSelector.js.map +1 -1
  88. package/react/components/common/ImagePreview.js +2 -2
  89. package/react/components/common/ImagePreview.js.map +1 -1
  90. package/react/components/common/Tab.js +2 -1
  91. package/react/components/common/Tab.js.map +1 -1
  92. package/react/components/common/file_helpers.js +3 -2
  93. package/react/components/common/file_helpers.js.map +1 -1
  94. package/react/components/common/helpers.js +12 -10
  95. package/react/components/common/helpers.js.map +1 -1
  96. package/react/components/common/stories/Button.stories.js +1 -1
  97. package/react/components/common/stories/Button.stories.js.map +1 -1
  98. package/react/components/common/stories/ButtonIcon.stories.js +1 -1
  99. package/react/components/common/stories/ButtonIcon.stories.js.map +1 -1
  100. package/react/components/common/stories/ButtonRow.stories.js +2 -2
  101. package/react/components/common/stories/ButtonRow.stories.js.map +1 -1
  102. package/react/components/common/stories/ButtonTile.stories.js +1 -1
  103. package/react/components/common/stories/ButtonTile.stories.js.map +1 -1
  104. package/react/components/common/stories/Checkbox.stories.js +1 -1
  105. package/react/components/common/stories/Checkbox.stories.js.map +1 -1
  106. package/react/components/common/stories/ColorPicker.stories.js +1 -1
  107. package/react/components/common/stories/ColorPicker.stories.js.map +1 -1
  108. package/react/components/common/stories/DropZone.stories.js +1 -1
  109. package/react/components/common/stories/DropZone.stories.js.map +1 -1
  110. package/react/components/common/stories/FinsembleIcon.stories.js.map +1 -1
  111. package/react/components/common/stories/FinsembleSelect.stories.js +1 -1
  112. package/react/components/common/stories/FinsembleSelect.stories.js.map +1 -1
  113. package/react/components/common/stories/FinsembleToggle.stories.js +3 -1
  114. package/react/components/common/stories/FinsembleToggle.stories.js.map +1 -1
  115. package/react/components/common/stories/FontSizeSelector.stories.js +1 -1
  116. package/react/components/common/stories/FontSizeSelector.stories.js.map +1 -1
  117. package/react/components/common/stories/Header.stories.js +1 -1
  118. package/react/components/common/stories/Header.stories.js.map +1 -1
  119. package/react/components/common/tests/Checkbox.spec.js +4 -4
  120. package/react/components/common/tests/Checkbox.spec.js.map +1 -1
  121. package/react/components/common/tests/ColorPicker.spec.js +6 -6
  122. package/react/components/common/tests/ColorPicker.spec.js.map +1 -1
  123. package/react/components/common/tests/DropZone.spec.js +4 -4
  124. package/react/components/common/tests/DropZone.spec.js.map +1 -1
  125. package/react/components/common/tests/FileInput.spec.js +5 -5
  126. package/react/components/common/tests/FileInput.spec.js.map +1 -1
  127. package/react/components/common/tests/FinsembleSelect.spec.js +12 -11
  128. package/react/components/common/tests/FinsembleSelect.spec.js.map +1 -1
  129. package/react/components/common/tests/FinsembleToggle.spec.js +8 -2
  130. package/react/components/common/tests/FinsembleToggle.spec.js.map +1 -1
  131. package/react/components/common/tests/Header.spec.js +3 -3
  132. package/react/components/common/tests/Header.spec.js.map +1 -1
  133. package/react/components/common/tests/ImagePreview.spec.js +8 -8
  134. package/react/components/common/tests/ImagePreview.spec.js.map +1 -1
  135. package/react/components/common/tests/Tab.spec.js +3 -3
  136. package/react/components/common/tests/Tab.spec.js.map +1 -1
  137. package/react/components/common/tests/Tooltip.spec.js +5 -5
  138. package/react/components/common/tests/Tooltip.spec.js.map +1 -1
  139. package/react/components/favorites/FavoriteMaker.d.ts +0 -5
  140. package/react/components/favorites/FavoriteMaker.js +1 -1
  141. package/react/components/favorites/FavoriteMaker.js.map +1 -1
  142. package/react/components/favorites/FavoritesShell.js +1 -1
  143. package/react/components/favorites/FavoritesShell.js.map +1 -1
  144. package/react/components/favorites/FavoritesShell.spec.js +7 -7
  145. package/react/components/favorites/FavoritesShell.spec.js.map +1 -1
  146. package/react/components/favorites/FavoritesShell.stories.js +5 -4
  147. package/react/components/favorites/FavoritesShell.stories.js.map +1 -1
  148. package/react/components/fdc3Resolver/ResolverContainer.js +2 -1
  149. package/react/components/fdc3Resolver/ResolverContainer.js.map +1 -1
  150. package/react/components/fdc3Resolver/ResolverDialog.js +13 -13
  151. package/react/components/fdc3Resolver/ResolverDialog.js.map +1 -1
  152. package/react/components/fdc3Resolver/ResolverDialog.spec.js +5 -5
  153. package/react/components/fdc3Resolver/ResolverDialog.spec.js.map +1 -1
  154. package/react/components/fdc3Resolver/ResolverDialog.stories.js +1 -1
  155. package/react/components/fdc3Resolver/ResolverDialog.stories.js.map +1 -1
  156. package/react/components/icon/Icon.js +5 -4
  157. package/react/components/icon/Icon.js.map +1 -1
  158. package/react/components/legacyControls/FinsembleDialog.js +0 -1
  159. package/react/components/legacyControls/FinsembleDialog.js.map +1 -1
  160. package/react/components/legacyControls/FinsembleDialogButton.d.ts +1 -1
  161. package/react/components/legacyControls/FinsembleDialogButton.js +4 -3
  162. package/react/components/legacyControls/FinsembleDialogButton.js.map +1 -1
  163. package/react/components/legacyControls/FinsembleDialogQuestion.js +2 -1
  164. package/react/components/legacyControls/FinsembleDialogQuestion.js.map +1 -1
  165. package/react/components/legacyControls/FinsembleDialogTextInput.d.ts +1 -1
  166. package/react/components/legacyControls/FinsembleDialogTextInput.js +8 -5
  167. package/react/components/legacyControls/FinsembleDialogTextInput.js.map +1 -1
  168. package/react/components/legacyControls/FinsembleDnDContext.js +34 -22
  169. package/react/components/legacyControls/FinsembleDnDContext.js.map +1 -1
  170. package/react/components/legacyControls/FinsembleDraggable.js +3 -3
  171. package/react/components/legacyControls/FinsembleDraggable.js.map +1 -1
  172. package/react/components/legacyControls/FinsembleHoverDetector.js +2 -1
  173. package/react/components/legacyControls/FinsembleHoverDetector.js.map +1 -1
  174. package/react/components/legacyControls/FinsembleMenuSection.js +9 -5
  175. package/react/components/legacyControls/FinsembleMenuSection.js.map +1 -1
  176. package/react/components/legacyControls/stories/FinsembleDialog.stories.js +1 -1
  177. package/react/components/legacyControls/stories/FinsembleDialog.stories.js.map +1 -1
  178. package/react/components/legacyControls/stories/FinsembleDialogButton.stories.js +1 -1
  179. package/react/components/legacyControls/stories/FinsembleDialogButton.stories.js.map +1 -1
  180. package/react/components/legacyControls/stories/FinsembleDialogQuestion.stories.js +1 -1
  181. package/react/components/legacyControls/stories/FinsembleDialogQuestion.stories.js.map +1 -1
  182. package/react/components/legacyControls/stories/FinsembleDialogTextInput.stories.js +1 -1
  183. package/react/components/legacyControls/stories/FinsembleDialogTextInput.stories.js.map +1 -1
  184. package/react/components/legacyControls/tests/FinsembleDialog.spec.js +1 -1
  185. package/react/components/legacyControls/tests/FinsembleDialog.spec.js.map +1 -1
  186. package/react/components/legacyControls/tests/FinsembleDialogButton.spec.js +8 -7
  187. package/react/components/legacyControls/tests/FinsembleDialogButton.spec.js.map +1 -1
  188. package/react/components/legacyControls/tests/FinsembleDialogQuestion.spec.js +7 -5
  189. package/react/components/legacyControls/tests/FinsembleDialogQuestion.spec.js.map +1 -1
  190. package/react/components/legacyControls/tests/FinsembleDialogTextInput.spec.js +13 -12
  191. package/react/components/legacyControls/tests/FinsembleDialogTextInput.spec.js.map +1 -1
  192. package/react/components/linker/LinkerMenu.js +4 -3
  193. package/react/components/linker/LinkerMenu.js.map +1 -1
  194. package/react/components/linker/LinkerMenuDeprecated.js +1 -1
  195. package/react/components/linker/LinkerMenuDeprecated.js.map +1 -1
  196. package/react/components/linker/remoteRedux.d.ts +10 -42
  197. package/react/components/linker/remoteRedux.js.map +1 -1
  198. package/react/components/menu/Menu.d.ts +1 -1
  199. package/react/components/menu/Menu.js +1 -1
  200. package/react/components/menu/Menu.js.map +1 -1
  201. package/react/components/menu/MenuAutoResizer.js.map +1 -1
  202. package/react/components/menu/MenuContent.js +1 -2
  203. package/react/components/menu/MenuContent.js.map +1 -1
  204. package/react/components/menu/MenuHotKey.js +1 -1
  205. package/react/components/menu/MenuHotKey.js.map +1 -1
  206. package/react/components/menu/MenuPortal.js +7 -6
  207. package/react/components/menu/MenuPortal.js.map +1 -1
  208. package/react/components/menu/keyboardNavigation.js +14 -15
  209. package/react/components/menu/keyboardNavigation.js.map +1 -1
  210. package/react/components/notifications/components/NoNotifications.js +2 -4
  211. package/react/components/notifications/components/NoNotifications.js.map +1 -1
  212. package/react/components/notifications/components/drawer/Drawer.js +2 -4
  213. package/react/components/notifications/components/drawer/Drawer.js.map +1 -1
  214. package/react/components/notifications/components/drawer/DrawerControls.js +3 -5
  215. package/react/components/notifications/components/drawer/DrawerControls.js.map +1 -1
  216. package/react/components/notifications/components/drawer/DrawerHeader.js +1 -4
  217. package/react/components/notifications/components/drawer/DrawerHeader.js.map +1 -1
  218. package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js +64 -79
  219. package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js.map +1 -1
  220. package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js +15 -13
  221. package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js.map +1 -1
  222. package/react/components/notifications/components/shared/CheckButton.d.ts +2 -2
  223. package/react/components/notifications/components/shared/CheckButton.js.map +1 -1
  224. package/react/components/notifications/components/shared/IconButton.js +3 -5
  225. package/react/components/notifications/components/shared/IconButton.js.map +1 -1
  226. package/react/components/notifications/components/shared/NotificationCardShell.d.ts +3 -2
  227. package/react/components/notifications/components/shared/NotificationCardShell.js.map +1 -1
  228. package/react/components/notifications/components/shared/OverflowMenu.d.ts +2 -1
  229. package/react/components/notifications/components/shared/OverflowMenu.js +6 -5
  230. package/react/components/notifications/components/shared/OverflowMenu.js.map +1 -1
  231. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyActions.d.ts +3 -2
  232. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyActions.js +2 -2
  233. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyActions.js.map +1 -1
  234. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.d.ts +3 -2
  235. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.js.map +1 -1
  236. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.d.ts +3 -2
  237. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.js +2 -4
  238. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.js.map +1 -1
  239. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderShell.d.ts +3 -2
  240. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderShell.js.map +1 -1
  241. package/react/components/notifications/components/views/CardView.js +15 -24
  242. package/react/components/notifications/components/views/CardView.js.map +1 -1
  243. package/react/components/notifications/components/views/ListView.d.ts +2 -2
  244. package/react/components/notifications/components/views/ListView.js +9 -9
  245. package/react/components/notifications/components/views/ListView.js.map +1 -1
  246. package/react/components/notifications/components/views/NotificationDetailsView.d.ts +2 -2
  247. package/react/components/notifications/components/views/NotificationDetailsView.js +2 -6
  248. package/react/components/notifications/components/views/NotificationDetailsView.js.map +1 -1
  249. package/react/components/notifications/constants.d.ts +0 -13
  250. package/react/components/notifications/constants.js.map +1 -1
  251. package/react/components/notifications/types.d.ts +7 -6
  252. package/react/components/notifications/types.js.map +1 -1
  253. package/react/components/notifications/utils.d.ts +6 -4
  254. package/react/components/notifications/utils.js +26 -32
  255. package/react/components/notifications/utils.js.map +1 -1
  256. package/react/components/processMonitor/ProcessMonitor.d.ts +3 -1
  257. package/react/components/processMonitor/ProcessMonitor.js +24 -14
  258. package/react/components/processMonitor/ProcessMonitor.js.map +1 -1
  259. package/react/components/processMonitor/ProcessMonitorTypes.d.ts +33 -0
  260. package/react/components/processMonitor/ProcessMonitorTypes.js +6 -0
  261. package/react/components/processMonitor/ProcessMonitorTypes.js.map +1 -0
  262. package/react/components/processMonitor/components/ChildWindow.d.ts +10 -3
  263. package/react/components/processMonitor/components/ChildWindow.js +29 -10
  264. package/react/components/processMonitor/components/ChildWindow.js.map +1 -1
  265. package/react/components/processMonitor/components/ListHeader.d.ts +18 -4
  266. package/react/components/processMonitor/components/ListHeader.js +11 -3
  267. package/react/components/processMonitor/components/ListHeader.js.map +1 -1
  268. package/react/components/processMonitor/components/ProcessStatistics.d.ts +11 -3
  269. package/react/components/processMonitor/components/ProcessStatistics.js +35 -18
  270. package/react/components/processMonitor/components/ProcessStatistics.js.map +1 -1
  271. package/react/components/processMonitor/constants.d.ts +11 -16
  272. package/react/components/processMonitor/constants.js +6 -1
  273. package/react/components/processMonitor/constants.js.map +1 -1
  274. package/react/components/processMonitor/helpers.d.ts +14 -6
  275. package/react/components/processMonitor/helpers.js +31 -23
  276. package/react/components/processMonitor/helpers.js.map +1 -1
  277. package/react/components/processMonitor/helpers.spec.d.ts +1 -0
  278. package/react/components/processMonitor/helpers.spec.js +44 -0
  279. package/react/components/processMonitor/helpers.spec.js.map +1 -0
  280. package/react/components/processMonitor/stores/ProcessMonitorStore.d.ts +31 -15
  281. package/react/components/processMonitor/stores/ProcessMonitorStore.js +104 -95
  282. package/react/components/processMonitor/stores/ProcessMonitorStore.js.map +1 -1
  283. package/react/components/quickComponentForm/QuickComponentForm.d.ts +4 -1
  284. package/react/components/quickComponentForm/QuickComponentForm.js +14 -15
  285. package/react/components/quickComponentForm/QuickComponentForm.js.map +1 -1
  286. package/react/components/search/Highlight.js +2 -2
  287. package/react/components/search/Highlight.js.map +1 -1
  288. package/react/components/search/Highlight.spec.js +3 -3
  289. package/react/components/search/Highlight.spec.js.map +1 -1
  290. package/react/components/search/Highlight.stories.js +1 -1
  291. package/react/components/search/Highlight.stories.js.map +1 -1
  292. package/react/components/search/Search.js +17 -8
  293. package/react/components/search/Search.js.map +1 -1
  294. package/react/components/search/SearchBestMatch.js +3 -5
  295. package/react/components/search/SearchBestMatch.js.map +1 -1
  296. package/react/components/search/SearchProviderResults.js +4 -5
  297. package/react/components/search/SearchProviderResults.js.map +1 -1
  298. package/react/components/search/SearchResult.js +3 -2
  299. package/react/components/search/SearchResult.js.map +1 -1
  300. package/react/components/search/SearchResults.js +1 -1
  301. package/react/components/search/SearchResults.js.map +1 -1
  302. package/react/components/shared/Button.js +2 -4
  303. package/react/components/shared/Button.js.map +1 -1
  304. package/react/components/shared/DefaultDropdownButton.js +58 -13
  305. package/react/components/shared/DefaultDropdownButton.js.map +1 -1
  306. package/react/components/shared/NavigationButton.js +9 -11
  307. package/react/components/shared/NavigationButton.js.map +1 -1
  308. package/react/components/shared/Tag.d.ts +11 -1
  309. package/react/components/shared/Tag.js.map +1 -1
  310. package/react/components/shared/TagsMenu.d.ts +26 -6
  311. package/react/components/shared/TagsMenu.js.map +1 -1
  312. package/react/components/shared/linkerUtil.d.ts +3 -1
  313. package/react/components/shared/linkerUtil.js.map +1 -1
  314. package/react/components/shared/tests/DefaultDropdownButton.spec.js.map +1 -1
  315. package/react/components/shared/tests/addProtocolToValidURL.spec.js.map +1 -1
  316. package/react/components/singleInputDialog/SingleInputDialog.js +0 -2
  317. package/react/components/singleInputDialog/SingleInputDialog.js.map +1 -1
  318. package/react/components/singleInputDialog/SingleInputDialog.spec.js +6 -6
  319. package/react/components/singleInputDialog/SingleInputDialog.spec.js.map +1 -1
  320. package/react/components/singleInputDialog/SingleInputDialog.stories.js +1 -1
  321. package/react/components/singleInputDialog/SingleInputDialog.stories.js.map +1 -1
  322. package/react/components/smartDesktopDesigner/AppEditAccess.d.ts +1 -1
  323. package/react/components/smartDesktopDesigner/AppEditAccess.js +17 -34
  324. package/react/components/smartDesktopDesigner/AppEditAccess.js.map +1 -1
  325. package/react/components/smartDesktopDesigner/AppEditPage.d.ts +4 -4
  326. package/react/components/smartDesktopDesigner/AppEditPage.js +2 -2
  327. package/react/components/smartDesktopDesigner/AppEditPage.js.map +1 -1
  328. package/react/components/smartDesktopDesigner/Appearance.js +3 -5
  329. package/react/components/smartDesktopDesigner/Appearance.js.map +1 -1
  330. package/react/components/smartDesktopDesigner/Application.d.ts +7 -5
  331. package/react/components/smartDesktopDesigner/Application.js +78 -92
  332. package/react/components/smartDesktopDesigner/Application.js.map +1 -1
  333. package/react/components/smartDesktopDesigner/ApplicationEdit.d.ts +4 -1
  334. package/react/components/smartDesktopDesigner/ApplicationEdit.js +68 -51
  335. package/react/components/smartDesktopDesigner/ApplicationEdit.js.map +1 -1
  336. package/react/components/smartDesktopDesigner/ApplicationList.d.ts +4 -2
  337. package/react/components/smartDesktopDesigner/ApplicationList.js +23 -20
  338. package/react/components/smartDesktopDesigner/ApplicationList.js.map +1 -1
  339. package/react/components/smartDesktopDesigner/ApplicationSetup.d.ts +4 -3
  340. package/react/components/smartDesktopDesigner/ApplicationSetup.js +8 -20
  341. package/react/components/smartDesktopDesigner/ApplicationSetup.js.map +1 -1
  342. package/react/components/smartDesktopDesigner/Applications.d.ts +3 -2
  343. package/react/components/smartDesktopDesigner/Applications.js +73 -62
  344. package/react/components/smartDesktopDesigner/Applications.js.map +1 -1
  345. package/react/components/smartDesktopDesigner/Authentication.js +2 -8
  346. package/react/components/smartDesktopDesigner/Authentication.js.map +1 -1
  347. package/react/components/smartDesktopDesigner/AuthenticationProviderConfig.js +1 -8
  348. package/react/components/smartDesktopDesigner/AuthenticationProviderConfig.js.map +1 -1
  349. package/react/components/smartDesktopDesigner/Content.js.map +1 -1
  350. package/react/components/smartDesktopDesigner/CurrentView.js +1 -1
  351. package/react/components/smartDesktopDesigner/CurrentView.js.map +1 -1
  352. package/react/components/smartDesktopDesigner/Export.js +3 -3
  353. package/react/components/smartDesktopDesigner/Export.js.map +1 -1
  354. package/react/components/smartDesktopDesigner/ExportCloud.js +1 -1
  355. package/react/components/smartDesktopDesigner/ExportCloud.js.map +1 -1
  356. package/react/components/smartDesktopDesigner/ExportDeployInfo.js +1 -1
  357. package/react/components/smartDesktopDesigner/ExportDeployInfo.js.map +1 -1
  358. package/react/components/smartDesktopDesigner/ExportZip.js +0 -1
  359. package/react/components/smartDesktopDesigner/ExportZip.js.map +1 -1
  360. package/react/components/smartDesktopDesigner/GettingStarted.d.ts +1 -1
  361. package/react/components/smartDesktopDesigner/GettingStarted.js +1 -1
  362. package/react/components/smartDesktopDesigner/GettingStarted.js.map +1 -1
  363. package/react/components/smartDesktopDesigner/ProjectHeader.d.ts +1 -1
  364. package/react/components/smartDesktopDesigner/ProjectHeader.js +1 -1
  365. package/react/components/smartDesktopDesigner/ProjectHeader.js.map +1 -1
  366. package/react/components/smartDesktopDesigner/Publish.js +1 -1
  367. package/react/components/smartDesktopDesigner/Publish.js.map +1 -1
  368. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.d.ts +0 -11
  369. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js +18 -31
  370. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js.map +1 -1
  371. package/react/components/smartDesktopDesigner/Themes.js +2 -8
  372. package/react/components/smartDesktopDesigner/Themes.js.map +1 -1
  373. package/react/components/smartDesktopDesigner/View.js.map +1 -1
  374. package/react/components/smartDesktopDesigner/common/getCSSVars.d.ts +1 -2
  375. package/react/components/smartDesktopDesigner/common/getCSSVars.js +2 -2
  376. package/react/components/smartDesktopDesigner/common/getCSSVars.js.map +1 -1
  377. package/react/components/smartDesktopDesigner/common/views.d.ts +1 -1
  378. package/react/components/smartDesktopDesigner/common/views.js +8 -18
  379. package/react/components/smartDesktopDesigner/common/views.js.map +1 -1
  380. package/react/components/smartDesktopDesigner/fixtures/applicationEditProps.js +16 -24
  381. package/react/components/smartDesktopDesigner/fixtures/applicationEditProps.js.map +1 -1
  382. package/react/components/smartDesktopDesigner/fixtures/applicationSetupProps.js +8 -9
  383. package/react/components/smartDesktopDesigner/fixtures/applicationSetupProps.js.map +1 -1
  384. package/react/components/smartDesktopDesigner/fixtures/apps.d.ts +4 -70
  385. package/react/components/smartDesktopDesigner/fixtures/apps.js +20 -31
  386. package/react/components/smartDesktopDesigner/fixtures/apps.js.map +1 -1
  387. package/react/components/smartDesktopDesigner/fixtures/authenticationProps.js +6 -9
  388. package/react/components/smartDesktopDesigner/fixtures/authenticationProps.js.map +1 -1
  389. package/react/components/smartDesktopDesigner/fixtures/exportProps.js +5 -5
  390. package/react/components/smartDesktopDesigner/fixtures/exportProps.js.map +1 -1
  391. package/react/components/smartDesktopDesigner/fixtures/publishProgress.d.ts +2 -1
  392. package/react/components/smartDesktopDesigner/fixtures/publishProgress.js.map +1 -1
  393. package/react/components/smartDesktopDesigner/fixtures/themeProps.d.ts +5 -5
  394. package/react/components/smartDesktopDesigner/fixtures/themeProps.js +6 -7
  395. package/react/components/smartDesktopDesigner/fixtures/themeProps.js.map +1 -1
  396. package/react/components/smartDesktopDesigner/fixtures/views.js +4 -4
  397. package/react/components/smartDesktopDesigner/fixtures/views.js.map +1 -1
  398. package/react/components/smartDesktopDesigner/sdd_helpers.js +2 -1
  399. package/react/components/smartDesktopDesigner/sdd_helpers.js.map +1 -1
  400. package/react/components/smartDesktopDesigner/stories/AppEditPage.stories.d.ts +3 -4
  401. package/react/components/smartDesktopDesigner/stories/AppEditPage.stories.js +14 -20
  402. package/react/components/smartDesktopDesigner/stories/AppEditPage.stories.js.map +1 -1
  403. package/react/components/smartDesktopDesigner/stories/Appearance.stories.js +7 -7
  404. package/react/components/smartDesktopDesigner/stories/Appearance.stories.js.map +1 -1
  405. package/react/components/smartDesktopDesigner/stories/ApplicationEdit.stories.js +3 -7
  406. package/react/components/smartDesktopDesigner/stories/ApplicationEdit.stories.js.map +1 -1
  407. package/react/components/smartDesktopDesigner/stories/ApplicationList.stories.js +9 -2
  408. package/react/components/smartDesktopDesigner/stories/ApplicationList.stories.js.map +1 -1
  409. package/react/components/smartDesktopDesigner/stories/ApplicationSetup.stories.js +3 -10
  410. package/react/components/smartDesktopDesigner/stories/ApplicationSetup.stories.js.map +1 -1
  411. package/react/components/smartDesktopDesigner/stories/Applications.stories.js +1 -1
  412. package/react/components/smartDesktopDesigner/stories/Applications.stories.js.map +1 -1
  413. package/react/components/smartDesktopDesigner/stories/Authentication.stories.js +18 -36
  414. package/react/components/smartDesktopDesigner/stories/Authentication.stories.js.map +1 -1
  415. package/react/components/smartDesktopDesigner/stories/Export.stories.js +2 -2
  416. package/react/components/smartDesktopDesigner/stories/Export.stories.js.map +1 -1
  417. package/react/components/smartDesktopDesigner/stories/ExportCloud.stories.js +2 -2
  418. package/react/components/smartDesktopDesigner/stories/ExportCloud.stories.js.map +1 -1
  419. package/react/components/smartDesktopDesigner/stories/ExportZip.stories.js +5 -11
  420. package/react/components/smartDesktopDesigner/stories/ExportZip.stories.js.map +1 -1
  421. package/react/components/smartDesktopDesigner/stories/GettingStarted.stories.d.ts +1 -1
  422. package/react/components/smartDesktopDesigner/stories/GettingStarted.stories.js +1 -1
  423. package/react/components/smartDesktopDesigner/stories/GettingStarted.stories.js.map +1 -1
  424. package/react/components/smartDesktopDesigner/stories/Navigation.stories.js +1 -1
  425. package/react/components/smartDesktopDesigner/stories/Navigation.stories.js.map +1 -1
  426. package/react/components/smartDesktopDesigner/stories/ProjectErrors.stories.js +2 -4
  427. package/react/components/smartDesktopDesigner/stories/ProjectErrors.stories.js.map +1 -1
  428. package/react/components/smartDesktopDesigner/stories/ProjectHeader.stories.d.ts +1 -1
  429. package/react/components/smartDesktopDesigner/stories/ProjectHeader.stories.js +1 -1
  430. package/react/components/smartDesktopDesigner/stories/ProjectHeader.stories.js.map +1 -1
  431. package/react/components/smartDesktopDesigner/stories/Publish.stories.js +13 -28
  432. package/react/components/smartDesktopDesigner/stories/Publish.stories.js.map +1 -1
  433. package/react/components/smartDesktopDesigner/stories/PublishProgress.stories.js +1 -1
  434. package/react/components/smartDesktopDesigner/stories/PublishProgress.stories.js.map +1 -1
  435. package/react/components/smartDesktopDesigner/stories/SmartDesktopDesigner.stories.js +3 -3
  436. package/react/components/smartDesktopDesigner/stories/SmartDesktopDesigner.stories.js.map +1 -1
  437. package/react/components/smartDesktopDesigner/stories/Themes.stories.js +1 -1
  438. package/react/components/smartDesktopDesigner/stories/Themes.stories.js.map +1 -1
  439. package/react/components/smartDesktopDesigner/tests/AppEditPage.spec.js +32 -32
  440. package/react/components/smartDesktopDesigner/tests/AppEditPage.spec.js.map +1 -1
  441. package/react/components/smartDesktopDesigner/tests/ApplicationEdit.spec.js +6 -5
  442. package/react/components/smartDesktopDesigner/tests/ApplicationEdit.spec.js.map +1 -1
  443. package/react/components/smartDesktopDesigner/tests/ApplicationList.spec.js +11 -11
  444. package/react/components/smartDesktopDesigner/tests/ApplicationList.spec.js.map +1 -1
  445. package/react/components/smartDesktopDesigner/tests/ApplicationSetup.spec.js +9 -7
  446. package/react/components/smartDesktopDesigner/tests/ApplicationSetup.spec.js.map +1 -1
  447. package/react/components/smartDesktopDesigner/tests/Applications.spec.js +35 -35
  448. package/react/components/smartDesktopDesigner/tests/Applications.spec.js.map +1 -1
  449. package/react/components/smartDesktopDesigner/tests/Authentication.spec.js +6 -18
  450. package/react/components/smartDesktopDesigner/tests/Authentication.spec.js.map +1 -1
  451. package/react/components/smartDesktopDesigner/tests/Export.spec.js +14 -22
  452. package/react/components/smartDesktopDesigner/tests/Export.spec.js.map +1 -1
  453. package/react/components/smartDesktopDesigner/tests/ExportZip.spec.js +2 -6
  454. package/react/components/smartDesktopDesigner/tests/ExportZip.spec.js.map +1 -1
  455. package/react/components/smartDesktopDesigner/tests/Navigation.spec.js +2 -2
  456. package/react/components/smartDesktopDesigner/tests/Navigation.spec.js.map +1 -1
  457. package/react/components/smartDesktopDesigner/tests/ProjectErrors.spec.js +2 -2
  458. package/react/components/smartDesktopDesigner/tests/ProjectErrors.spec.js.map +1 -1
  459. package/react/components/smartDesktopDesigner/tests/ProjectHeader.spec.js +2 -2
  460. package/react/components/smartDesktopDesigner/tests/ProjectHeader.spec.js.map +1 -1
  461. package/react/components/smartDesktopDesigner/tests/Publish.spec.js +3 -10
  462. package/react/components/smartDesktopDesigner/tests/Publish.spec.js.map +1 -1
  463. package/react/components/smartDesktopDesigner/tests/PublishProgess.spec.js +2 -6
  464. package/react/components/smartDesktopDesigner/tests/PublishProgess.spec.js.map +1 -1
  465. package/react/components/smartDesktopDesigner/tests/SmartDesktopDesigner.spec.js +3 -3
  466. package/react/components/smartDesktopDesigner/tests/SmartDesktopDesigner.spec.js.map +1 -1
  467. package/react/components/smartDesktopDesigner/tests/Themes.spec.js +7 -7
  468. package/react/components/smartDesktopDesigner/tests/Themes.spec.js.map +1 -1
  469. package/react/components/smartDesktopDesigner/tests/a11y_helper.js +4 -5
  470. package/react/components/smartDesktopDesigner/tests/a11y_helper.js.map +1 -1
  471. package/react/components/system/System.spec.js +1 -1
  472. package/react/components/system/System.spec.js.map +1 -1
  473. package/react/components/system/SystemTrayComponentShell.js +1 -1
  474. package/react/components/system/SystemTrayComponentShell.js.map +1 -1
  475. package/react/components/toolbar/MinimizeAll.spec.js +5 -5
  476. package/react/components/toolbar/MinimizeAll.spec.js.map +1 -1
  477. package/react/components/toolbar/NotificationControl.js +3 -2
  478. package/react/components/toolbar/NotificationControl.js.map +1 -1
  479. package/react/components/toolbar/RevealAll.spec.js +5 -5
  480. package/react/components/toolbar/RevealAll.spec.js.map +1 -1
  481. package/react/components/toolbar/ToolbarIcon.js +14 -2
  482. package/react/components/toolbar/ToolbarIcon.js.map +1 -1
  483. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.d.ts +22 -5
  484. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.js +11 -6
  485. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.js.map +1 -1
  486. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncherMenu.js +21 -9
  487. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncherMenu.js.map +1 -1
  488. package/react/components/toolbar/advancedAppLauncher/components/AddNewAppForm.d.ts +33 -10
  489. package/react/components/toolbar/advancedAppLauncher/components/AddNewAppForm.js +41 -10
  490. package/react/components/toolbar/advancedAppLauncher/components/AddNewAppForm.js.map +1 -1
  491. package/react/components/toolbar/advancedAppLauncher/components/AddNewFolder.d.ts +3 -3
  492. package/react/components/toolbar/advancedAppLauncher/components/AddNewFolder.js +0 -3
  493. package/react/components/toolbar/advancedAppLauncher/components/AddNewFolder.js.map +1 -1
  494. package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.d.ts +24 -8
  495. package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.js +4 -2
  496. package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.js.map +1 -1
  497. package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.d.ts +18 -4
  498. package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.js +7 -5
  499. package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.js.map +1 -1
  500. package/react/components/toolbar/advancedAppLauncher/components/AppTagsList.d.ts +14 -6
  501. package/react/components/toolbar/advancedAppLauncher/components/AppTagsList.js +2 -3
  502. package/react/components/toolbar/advancedAppLauncher/components/AppTagsList.js.map +1 -1
  503. package/react/components/toolbar/advancedAppLauncher/components/Content.d.ts +30 -13
  504. package/react/components/toolbar/advancedAppLauncher/components/Content.js +35 -37
  505. package/react/components/toolbar/advancedAppLauncher/components/Content.js.map +1 -1
  506. package/react/components/toolbar/advancedAppLauncher/components/FilterSort.d.ts +15 -5
  507. package/react/components/toolbar/advancedAppLauncher/components/FilterSort.js +4 -3
  508. package/react/components/toolbar/advancedAppLauncher/components/FilterSort.js.map +1 -1
  509. package/react/components/toolbar/advancedAppLauncher/components/FoldersList.d.ts +38 -21
  510. package/react/components/toolbar/advancedAppLauncher/components/FoldersList.js +14 -9
  511. package/react/components/toolbar/advancedAppLauncher/components/FoldersList.js.map +1 -1
  512. package/react/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.d.ts +18 -3
  513. package/react/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.js +8 -4
  514. package/react/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.js.map +1 -1
  515. package/react/components/toolbar/advancedAppLauncher/components/NoAppsFound.d.ts +10 -3
  516. package/react/components/toolbar/advancedAppLauncher/components/NoAppsFound.js +1 -3
  517. package/react/components/toolbar/advancedAppLauncher/components/NoAppsFound.js.map +1 -1
  518. package/react/components/toolbar/advancedAppLauncher/components/SearchBox.d.ts +15 -6
  519. package/react/components/toolbar/advancedAppLauncher/components/SearchBox.js +11 -6
  520. package/react/components/toolbar/advancedAppLauncher/components/SearchBox.js.map +1 -1
  521. package/react/components/toolbar/advancedAppLauncher/components/SortBy.d.ts +11 -4
  522. package/react/components/toolbar/advancedAppLauncher/components/SortBy.js +3 -2
  523. package/react/components/toolbar/advancedAppLauncher/components/SortBy.js.map +1 -1
  524. package/react/components/toolbar/advancedAppLauncher/components/TagsList.d.ts +18 -6
  525. package/react/components/toolbar/advancedAppLauncher/components/TagsList.js +2 -2
  526. package/react/components/toolbar/advancedAppLauncher/components/TagsList.js.map +1 -1
  527. package/react/components/toolbar/advancedAppLauncher/components/TagsMenu.d.ts +20 -4
  528. package/react/components/toolbar/advancedAppLauncher/components/TagsMenu.js +2 -4
  529. package/react/components/toolbar/advancedAppLauncher/components/TagsMenu.js.map +1 -1
  530. package/react/components/toolbar/advancedAppLauncher/modules/AppDirectory.js.map +1 -1
  531. package/react/components/toolbar/advancedAppLauncher/modules/FDC3.d.ts +15 -10
  532. package/react/components/toolbar/advancedAppLauncher/modules/FDC3.js +19 -30
  533. package/react/components/toolbar/advancedAppLauncher/modules/FDC3.js.map +1 -1
  534. package/react/components/toolbar/advancedAppLauncher/stores/LauncherStore.d.ts +5 -2
  535. package/react/components/toolbar/advancedAppLauncher/stores/LauncherStore.js +1 -1
  536. package/react/components/toolbar/advancedAppLauncher/stores/LauncherStore.js.map +1 -1
  537. package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.d.ts +87 -59
  538. package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js +51 -54
  539. package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js.map +1 -1
  540. package/react/components/toolbar/advancedAppLauncher/utils/sort-functions.d.ts +7 -6
  541. package/react/components/toolbar/advancedAppLauncher/utils/sort-functions.js +11 -13
  542. package/react/components/toolbar/advancedAppLauncher/utils/sort-functions.js.map +1 -1
  543. package/react/components/toolbar/appLauncher/AppLauncherMenu.d.ts +3 -3
  544. package/react/components/toolbar/appLauncher/AppLauncherMenu.js +1 -1
  545. package/react/components/toolbar/appLauncher/AppLauncherMenu.js.map +1 -1
  546. package/react/components/toolbar/appLauncher/DynamicAppLauncher.js.map +1 -1
  547. package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.d.ts +25 -3
  548. package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.js +4 -11
  549. package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.js.map +1 -1
  550. package/react/components/toolbar/appLauncher/components/componentList.d.ts +34 -6
  551. package/react/components/toolbar/appLauncher/components/componentList.js +25 -22
  552. package/react/components/toolbar/appLauncher/components/componentList.js.map +1 -1
  553. package/react/components/toolbar/appLauncher/stores/appLauncherStore.d.ts +32 -32
  554. package/react/components/toolbar/appLauncher/stores/appLauncherStore.js +43 -65
  555. package/react/components/toolbar/appLauncher/stores/appLauncherStore.js.map +1 -1
  556. package/react/components/toolbar/dashbar/Dashbar.js +143 -125
  557. package/react/components/toolbar/dashbar/Dashbar.js.map +1 -1
  558. package/react/components/toolbar/dashbar/DashbarItem.js +4 -5
  559. package/react/components/toolbar/dashbar/DashbarItem.js.map +1 -1
  560. package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.d.ts +28 -5
  561. package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.js +17 -23
  562. package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.js.map +1 -1
  563. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.d.ts +25 -3
  564. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js.map +1 -1
  565. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.d.ts +13 -8
  566. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.js +2 -2
  567. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.js.map +1 -1
  568. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.d.ts +16 -8
  569. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.js +0 -3
  570. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.js.map +1 -1
  571. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.d.ts +66 -11
  572. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js +103 -153
  573. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js.map +1 -1
  574. package/react/components/toolbar/workspaceManagementMenu/workspaceManagementMenu.css +0 -4
  575. package/react/components/userPreferences/UserPreferenceTypes.d.ts +5 -0
  576. package/react/components/userPreferences/UserPreferenceTypes.js +2 -0
  577. package/react/components/userPreferences/UserPreferenceTypes.js.map +1 -0
  578. package/react/components/userPreferences/UserPreferencesBase.js +2 -2
  579. package/react/components/userPreferences/UserPreferencesBase.js.map +1 -1
  580. package/react/components/userPreferences/UserPreferencesWrapper.js +1 -1
  581. package/react/components/userPreferences/UserPreferencesWrapper.js.map +1 -1
  582. package/react/components/userPreferences/components/ContentSection.js +1 -1
  583. package/react/components/userPreferences/components/ContentSection.js.map +1 -1
  584. package/react/components/userPreferences/components/LeftNav.d.ts +1 -1
  585. package/react/components/userPreferences/components/LeftNav.js +1 -1
  586. package/react/components/userPreferences/components/LeftNav.js.map +1 -1
  587. package/react/components/userPreferences/components/content/DashbarEditor.js +4 -4
  588. package/react/components/userPreferences/components/content/DashbarEditor.js.map +1 -1
  589. package/react/components/userPreferences/components/content/Notifications.js +2 -0
  590. package/react/components/userPreferences/components/content/Notifications.js.map +1 -1
  591. package/react/components/userPreferences/components/content/Workspaces.d.ts +51 -14
  592. package/react/components/userPreferences/components/content/Workspaces.js +96 -90
  593. package/react/components/userPreferences/components/content/Workspaces.js.map +1 -1
  594. package/react/components/userPreferences/components/content/notificationViews/NotificationsPreferencesHome.js +48 -51
  595. package/react/components/userPreferences/components/content/notificationViews/NotificationsPreferencesHome.js.map +1 -1
  596. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourceTypes.js +9 -9
  597. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourceTypes.js.map +1 -1
  598. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourcesPreferences.js +4 -6
  599. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourcesPreferences.js.map +1 -1
  600. package/react/components/userPreferences/components/content/notificationViews/notificationViewsUtils.js +6 -6
  601. package/react/components/userPreferences/components/content/notificationViews/notificationViewsUtils.js.map +1 -1
  602. package/react/components/userPreferences/components/general/ScheduledRestart.js +0 -1
  603. package/react/components/userPreferences/components/general/ScheduledRestart.js.map +1 -1
  604. package/react/components/userPreferences/components/workspaces/WorkspaceButton.d.ts +3 -4
  605. package/react/components/userPreferences/components/workspaces/WorkspaceButton.js +5 -1
  606. package/react/components/userPreferences/components/workspaces/WorkspaceButton.js.map +1 -1
  607. package/react/components/userPreferences/components/workspaces/WorkspaceComponents.js +8 -5
  608. package/react/components/userPreferences/components/workspaces/WorkspaceComponents.js.map +1 -1
  609. package/react/components/userPreferences/components/workspaces/WorkspaceItem.d.ts +1 -1
  610. package/react/components/userPreferences/components/workspaces/WorkspaceItem.js +24 -9
  611. package/react/components/userPreferences/components/workspaces/WorkspaceItem.js.map +1 -1
  612. package/react/components/userPreferences/components/workspaces/WorkspaceItemList.js +16 -2
  613. package/react/components/userPreferences/components/workspaces/WorkspaceItemList.js.map +1 -1
  614. package/react/components/userPreferences/stores/UserPreferencesStore.d.ts +12 -12
  615. package/react/components/userPreferences/stores/UserPreferencesStore.js +10 -17
  616. package/react/components/userPreferences/stores/UserPreferencesStore.js.map +1 -1
  617. package/react/components/userPreferences/stories/DashbarEditor.stories.js +1 -1
  618. package/react/components/userPreferences/stories/DashbarEditor.stories.js.map +1 -1
  619. package/react/components/userPreferences/stories/DashbarEditorItem.stories.js +1 -1
  620. package/react/components/userPreferences/stories/DashbarEditorItem.stories.js.map +1 -1
  621. package/react/components/userPreferences/stories/General.stories.js.map +1 -1
  622. package/react/components/userPreferences/stories/NotificationsSourceTypes.stories.js +1 -1
  623. package/react/components/userPreferences/stories/NotificationsSourceTypes.stories.js.map +1 -1
  624. package/react/components/userPreferences/stories/NotificationsSources.stories.js +1 -1
  625. package/react/components/userPreferences/stories/NotificationsSources.stories.js.map +1 -1
  626. package/react/components/userPreferences/stories/UserPreferences.stories.d.ts +1 -1
  627. package/react/components/userPreferences/stories/UserPreferences.stories.js +1 -1
  628. package/react/components/userPreferences/stories/UserPreferences.stories.js.map +1 -1
  629. package/react/components/userPreferences/stories/WorkspaceButton.stories.d.ts +5 -9
  630. package/react/components/userPreferences/stories/WorkspaceButton.stories.js +10 -3
  631. package/react/components/userPreferences/stories/WorkspaceButton.stories.js.map +1 -1
  632. package/react/components/userPreferences/stories/WorkspaceItem.stories.js +2 -2
  633. package/react/components/userPreferences/stories/WorkspaceItem.stories.js.map +1 -1
  634. package/react/components/userPreferences/stories/WorkspaceItemList.stories.js.map +1 -1
  635. package/react/components/userPreferences/stories/Workspaces.stories.js +2 -2
  636. package/react/components/userPreferences/stories/Workspaces.stories.js.map +1 -1
  637. package/react/components/userPreferences/tests/ContentSection.spec.js.map +1 -1
  638. package/react/components/userPreferences/tests/DashbarEditor.spec.js.map +1 -1
  639. package/react/components/userPreferences/tests/DashbarEditorItem.spec.js.map +1 -1
  640. package/react/components/userPreferences/tests/General.spec.js.map +1 -1
  641. package/react/components/userPreferences/tests/LeftNav.spec.js.map +1 -1
  642. package/react/components/userPreferences/tests/NotificationSourceTypes.spec.js.map +1 -1
  643. package/react/components/userPreferences/tests/Notifications.spec.js.map +1 -1
  644. package/react/components/userPreferences/tests/NotificationsPreferencesHome.spec.js.map +1 -1
  645. package/react/components/userPreferences/tests/NotificationsSourcesPreferences.spec.js.map +1 -1
  646. package/react/components/userPreferences/tests/ScheduledRestart.spec.js.map +1 -1
  647. package/react/components/userPreferences/tests/WorkspaceButton.spec.js +17 -3
  648. package/react/components/userPreferences/tests/WorkspaceButton.spec.js.map +1 -1
  649. package/react/components/userPreferences/tests/WorkspaceComponents.spec.js +1 -1
  650. package/react/components/userPreferences/tests/WorkspaceComponents.spec.js.map +1 -1
  651. package/react/components/userPreferences/tests/WorkspaceItem.spec.js.map +1 -1
  652. package/react/components/userPreferences/tests/WorkspaceItemList.spec.js.map +1 -1
  653. package/react/components/utils.js +1 -1
  654. package/react/components/utils.js.map +1 -1
  655. package/react/components/windowTitleBar/WindowTitleBarShell.d.ts +58 -31
  656. package/react/components/windowTitleBar/WindowTitleBarShell.js +47 -50
  657. package/react/components/windowTitleBar/WindowTitleBarShell.js.map +1 -1
  658. package/react/components/windowTitleBar/components/center/Tab.d.ts +28 -7
  659. package/react/components/windowTitleBar/components/center/Tab.js +11 -4
  660. package/react/components/windowTitleBar/components/center/Tab.js.map +1 -1
  661. package/react/components/windowTitleBar/components/center/TabList.d.ts +43 -30
  662. package/react/components/windowTitleBar/components/center/TabList.js +179 -66
  663. package/react/components/windowTitleBar/components/center/TabList.js.map +1 -1
  664. package/react/components/windowTitleBar/components/left/LinkerButton.js +5 -4
  665. package/react/components/windowTitleBar/components/left/LinkerButton.js.map +1 -1
  666. package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.d.ts +1 -21
  667. package/react/components/windowTitleBar/components/left/LinkerGroups.js +6 -8
  668. package/react/components/windowTitleBar/components/left/LinkerGroups.js.map +1 -1
  669. package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.js +2 -1
  670. package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.js.map +1 -1
  671. package/react/components/windowTitleBar/components/left/ShareButton.d.ts +1 -21
  672. package/react/components/windowTitleBar/components/right/CloseButton.d.ts +12 -25
  673. package/react/components/windowTitleBar/components/right/CloseButton.js.map +1 -1
  674. package/react/components/windowTitleBar/components/right/GroupingButton.d.ts +17 -26
  675. package/react/components/windowTitleBar/components/right/GroupingButton.js +2 -2
  676. package/react/components/windowTitleBar/components/right/GroupingButton.js.map +1 -1
  677. package/react/components/windowTitleBar/components/right/MaximizeButton.d.ts +16 -26
  678. package/react/components/windowTitleBar/components/right/MaximizeButton.js +7 -9
  679. package/react/components/windowTitleBar/components/right/MaximizeButton.js.map +1 -1
  680. package/react/components/windowTitleBar/components/right/MinimizeButton.d.ts +12 -25
  681. package/react/components/windowTitleBar/components/right/MinimizeButton.js.map +1 -1
  682. package/react/components/windowTitleBar/components/windowTitle.d.ts +2 -1
  683. package/react/components/windowTitleBar/components/windowTitle.js +22 -10
  684. package/react/components/windowTitleBar/components/windowTitle.js.map +1 -1
  685. package/react/components/windowTitleBar/stores/windowTitleBarStore.d.ts +56 -44
  686. package/react/components/windowTitleBar/stores/windowTitleBarStore.js +96 -64
  687. package/react/components/windowTitleBar/stores/windowTitleBarStore.js.map +1 -1
  688. package/react/components/windowTitleBar/stores/windowTitleBarStoreDefaults.d.ts +42 -44
  689. package/react/components/windowTitleBar/stores/windowTitleBarStoreDefaults.js.map +1 -1
  690. package/react/components/windowTitleBar/windowTitleBarContext.d.ts +9 -9
  691. package/react/components/windowTitleBar/windowTitleBarContext.js +2 -4
  692. package/react/components/windowTitleBar/windowTitleBarContext.js.map +1 -1
  693. package/react/components/yesNoDialog/Timer.spec.js +2 -2
  694. package/react/components/yesNoDialog/Timer.spec.js.map +1 -1
  695. package/react/components/yesNoDialog/Timer.stories.js +1 -1
  696. package/react/components/yesNoDialog/Timer.stories.js.map +1 -1
  697. package/react/components/yesNoDialog/YesNoDialog.spec.js +5 -5
  698. package/react/components/yesNoDialog/YesNoDialog.spec.js.map +1 -1
  699. package/react/components/yesNoDialog/YesNoDialog.stories.js +1 -1
  700. package/react/components/yesNoDialog/YesNoDialog.stories.js.map +1 -1
  701. package/react/hooks/useFavoritesShell.js +1 -3
  702. package/react/hooks/useFavoritesShell.js.map +1 -1
  703. package/react/hooks/useLinker.js +4 -4
  704. package/react/hooks/useLinker.js.map +1 -1
  705. package/react/hooks/useMenu.js +2 -2
  706. package/react/hooks/useMenu.js.map +1 -1
  707. package/react/hooks/useNotifications.d.ts +8 -8
  708. package/react/hooks/useNotifications.js +30 -30
  709. package/react/hooks/useNotifications.js.map +1 -1
  710. package/react/hooks/usePubSub.js +3 -5
  711. package/react/hooks/usePubSub.js.map +1 -1
  712. package/react/hooks/useSearch.js +1 -1
  713. package/react/hooks/useSearch.js.map +1 -1
  714. package/react/hooks/useToolbar.js +16 -35
  715. package/react/hooks/useToolbar.js.map +1 -1
  716. package/react/hooks/useWorkspace.js +1 -1
  717. package/react/hooks/useWorkspace.js.map +1 -1
  718. package/react/reducers/favoriteReducer.js +1 -1
  719. package/react/reducers/favoriteReducer.js.map +1 -1
  720. package/react/reducers/linkerReducer.js.map +1 -1
  721. package/react/reducers/rootReducer.d.ts +3 -4
  722. package/react/reducers/toolbarReducer.js +1 -1
  723. package/react/reducers/toolbarReducer.js.map +1 -1
  724. package/react/store.d.ts +6 -7
  725. package/react/store.js.map +1 -1
  726. package/react/types/advancedAppLauncherTypes.d.ts +28 -1
  727. package/react/types/advancedAppLauncherTypes.js.map +1 -1
  728. package/react/types/favoriteTypes.d.ts +1 -1
  729. package/react/types/favoriteTypes.js.map +1 -1
  730. package/react/types/fdc3.d.ts +22 -0
  731. package/react/types/fdc3.js.map +1 -1
  732. package/react/types/searchTypes.d.ts +3 -0
  733. package/react/types/searchTypes.js.map +1 -1
  734. package/react/types/smartDesktopDesignerTypes.d.ts +11 -9
  735. package/react/types/smartDesktopDesignerTypes.js.map +1 -1
  736. package/react/types/windowTitleBar.d.ts +47 -0
  737. package/react/types/windowTitleBar.js +2 -0
  738. package/react/types/windowTitleBar.js.map +1 -0
  739. package/react/types/workspaceTypes.d.ts +19 -0
  740. package/react/types/workspaceTypes.js.map +1 -1
  741. package/react/components/processMonitor/components/ChildWindows.d.ts +0 -4
  742. package/react/components/processMonitor/components/ChildWindows.js +0 -11
  743. package/react/components/processMonitor/components/ChildWindows.js.map +0 -1
  744. package/react/components/smartDesktopDesigner/fixtures/applicationsProps.d.ts +0 -2
  745. package/react/components/smartDesktopDesigner/fixtures/applicationsProps.js +0 -88
  746. package/react/components/smartDesktopDesigner/fixtures/applicationsProps.js.map +0 -1
  747. package/react/components/toolbar/advancedAppLauncher/components/LeftNav.d.ts +0 -4
  748. package/react/components/toolbar/advancedAppLauncher/components/LeftNav.js +0 -14
  749. package/react/components/toolbar/advancedAppLauncher/components/LeftNav.js.map +0 -1
@@ -1,7 +1,6 @@
1
- "use strict";
2
- const timesSeries = require("async/timesSeries");
1
+ import { getViewName, getViewBaseName } from "../helpers";
2
+ import async from "async";
3
3
  let ProcessMonitorStore;
4
- const asyncEach = require("async/each");
5
4
  const DEFAULT_SORT_DIRECTION = "ascending";
6
5
  const DEFAULT_STORE_DATA = {
7
6
  viewMode: "simple",
@@ -10,32 +9,34 @@ const DEFAULT_STORE_DATA = {
10
9
  direction: "ascending",
11
10
  },
12
11
  };
12
+ const MAGIC_NUMBER_TERMINATION_TIMEOUT = 4000;
13
+ export let storeWrapper;
13
14
  function createLocalStore(done) {
14
15
  FSBL.Clients.DistributedStoreClient.createStore({
15
16
  store: "Finsemble-ProcessMonitor-Local-Store",
16
17
  values: DEFAULT_STORE_DATA,
17
18
  }, (err, store) => {
18
19
  ProcessMonitorStore = store;
19
- module.exports.Store = store;
20
+ storeWrapper = store;
20
21
  done();
21
22
  });
22
23
  }
23
- var Actions = {
24
- initialize: function (cb) {
24
+ const Actions = {
25
+ initialize: (cb) => {
25
26
  createLocalStore(() => {
26
27
  Actions.getInitialData();
27
28
  cb();
28
29
  });
29
30
  },
30
- getInitialData: function () {
31
+ getInitialData: () => {
31
32
  FSBL.System.getProcessList(Actions.extractData);
32
33
  setInterval(() => {
33
34
  FSBL.System.getProcessList(Actions.extractData);
34
35
  }, 1000);
35
36
  },
36
- setSort: function (field) {
37
- let currentSort = ProcessMonitorStore.getValue({ field: "sort" });
38
- let procs = ProcessMonitorStore.getValue({ field: "processList" });
37
+ setSort: (field) => {
38
+ const currentSort = ProcessMonitorStore === null || ProcessMonitorStore === void 0 ? void 0 : ProcessMonitorStore.getValue({ field: "sort" });
39
+ let procs = ProcessMonitorStore === null || ProcessMonitorStore === void 0 ? void 0 : ProcessMonitorStore.getValue({ field: "processList" });
39
40
  let newSort;
40
41
  if (currentSort.field === field) {
41
42
  newSort = currentSort;
@@ -52,19 +53,19 @@ var Actions = {
52
53
  direction: DEFAULT_SORT_DIRECTION,
53
54
  };
54
55
  }
55
- ProcessMonitorStore.setValue({ field: "sort", value: newSort }, () => {
56
+ ProcessMonitorStore === null || ProcessMonitorStore === void 0 ? void 0 : ProcessMonitorStore.setValue({ field: "sort", value: newSort }, () => {
56
57
  procs = Actions.sortProcesses(procs);
57
- ProcessMonitorStore.setValue({ field: "processList", value: procs });
58
+ ProcessMonitorStore === null || ProcessMonitorStore === void 0 ? void 0 : ProcessMonitorStore.setValue({ field: "processList", value: procs });
58
59
  });
59
60
  },
60
- extractData: function (processes) {
61
+ extractData: (processes) => {
61
62
  Actions.createDataModel(processes, (procs) => {
62
- ProcessMonitorStore.setValue({ field: "processList", value: procs });
63
+ ProcessMonitorStore === null || ProcessMonitorStore === void 0 ? void 0 : ProcessMonitorStore.setValue({ field: "processList", value: procs });
63
64
  });
64
65
  },
65
- createDataModel: function (processes, cb) {
66
+ createDataModel: (processes, cb) => {
66
67
  let procs = [];
67
- let mode = ProcessMonitorStore.getValue({ field: "viewMode" });
68
+ let mode = ProcessMonitorStore === null || ProcessMonitorStore === void 0 ? void 0 : ProcessMonitorStore.getValue({ field: "viewMode" });
68
69
  for (const proc of processes) {
69
70
  if (mode === "simple" &&
70
71
  (proc.name.toLowerCase().includes("service") ||
@@ -76,43 +77,58 @@ var Actions = {
76
77
  });
77
78
  }
78
79
  else {
80
+ const childWindows = [...proc.windows, ...proc.views]
81
+ .filter((item) => {
82
+ const name = "name" in item ? item.name : item.windowName;
83
+ if (!(mode === "simple" &&
84
+ (name.toLowerCase().includes("service") ||
85
+ name.toLowerCase().includes("system") ||
86
+ name.toLowerCase().includes("unnamed")))) {
87
+ return true;
88
+ }
89
+ return false;
90
+ })
91
+ .map((item) => {
92
+ return {
93
+ name: "name" in item
94
+ ? item.name
95
+ : getViewName({
96
+ windowName: item.windowName,
97
+ viewId: String(item.id),
98
+ }),
99
+ type: "name" in item ? "window" : "view",
100
+ };
101
+ })
102
+ .sort((a, b) => {
103
+ if (a.name < b.name)
104
+ return -1;
105
+ if (a.name > b.name)
106
+ return 1;
107
+ return 0;
108
+ });
79
109
  procs.push({
80
110
  statistics: proc,
81
111
  visible: true,
82
112
  type: proc.type,
83
- childWindows: [...proc.windows, ...proc.views]
84
- .map((item) => {
85
- const name = item.name || item.windowName;
86
- if (!(mode === "simple" &&
87
- (name.toLowerCase().includes("service") ||
88
- name.toLowerCase().includes("system") ||
89
- name.toLowerCase().includes("unnamed")))) {
90
- return {
91
- name: item.name || `${item.windowName}: view-${item.viewId}`,
92
- type: item.name ? "window" : "view",
93
- };
94
- }
95
- })
96
- .filter((item) => item)
97
- .sort((a, b) => {
98
- if (a.name < b.name)
99
- return -1;
100
- }),
113
+ childWindows,
101
114
  });
102
115
  }
103
116
  }
104
117
  procs = Actions.sortProcesses(procs);
105
118
  cb(procs);
106
119
  },
107
- sortProcesses: function (procs) {
108
- let currentSort = ProcessMonitorStore.getValue({ field: "sort" });
120
+ sortProcesses: (procs) => {
121
+ let currentSort = ProcessMonitorStore === null || ProcessMonitorStore === void 0 ? void 0 : ProcessMonitorStore.getValue({ field: "sort" });
109
122
  let sortFN = (a, b) => {
110
123
  let aValue = a.statistics[currentSort.field];
111
- if (aValue.toLowerCase) {
124
+ let bValue = b.statistics[currentSort.field];
125
+ if (typeof aValue === "undefined" || typeof bValue === "undefined") {
126
+ return 0;
127
+ }
128
+ if (typeof aValue === "string") {
112
129
  aValue = aValue.toLowerCase();
113
130
  }
114
- let bValue = b.statistics[currentSort.field];
115
- if (aValue.toLowerCase) {
131
+ if (typeof bValue === "string") {
116
132
  bValue = bValue.toLowerCase();
117
133
  }
118
134
  if (currentSort.direction === "ascending") {
@@ -130,21 +146,26 @@ var Actions = {
130
146
  };
131
147
  return procs.sort(sortFN);
132
148
  },
133
- toggleViewMode: function () {
134
- let mode = ProcessMonitorStore.getValue({ field: "viewMode" });
135
- if (mode === "advanced") {
136
- mode = "simple";
137
- }
138
- else {
139
- mode = "advanced";
140
- }
141
- ProcessMonitorStore.setValue({ field: "viewMode", value: mode });
149
+ toggleViewMode: () => {
150
+ const mode = ProcessMonitorStore === null || ProcessMonitorStore === void 0 ? void 0 : ProcessMonitorStore.getValue({ field: "viewMode" });
151
+ ProcessMonitorStore === null || ProcessMonitorStore === void 0 ? void 0 : ProcessMonitorStore.setValue({
152
+ field: "viewMode",
153
+ value: mode === "advanced" ? "simple" : "advanced",
154
+ });
155
+ },
156
+ getFlashingState: (cb) => {
157
+ ProcessMonitorStore === null || ProcessMonitorStore === void 0 ? void 0 : ProcessMonitorStore.getValue("flashing", cb);
158
+ },
159
+ setFlashingState: (value, cb) => {
160
+ ProcessMonitorStore === null || ProcessMonitorStore === void 0 ? void 0 : ProcessMonitorStore.setValue({ field: "flashing", value }, cb);
142
161
  },
143
162
  identifyWindow: function (winID) {
144
163
  if (winID.name.includes("Service"))
145
164
  return;
165
+ const baseName = getViewBaseName(winID);
166
+ this.setFlashingState(true);
146
167
  const OPACITY_ANIMATION_DURATION = 200;
147
- FSBL.FinsembleWindow.getInstance({ name: winID.name }, (err, win) => {
168
+ FSBL.FinsembleWindow.getInstance({ name: baseName }, (err, win) => {
148
169
  let windowState = "hidden";
149
170
  function flash(n, done) {
150
171
  setTimeout(() => {
@@ -157,59 +178,51 @@ var Actions = {
157
178
  });
158
179
  }, OPACITY_ANIMATION_DURATION / 1.5);
159
180
  }
160
- win.isShowing((err, isVisible) => {
181
+ win.isShowing({}, (error, isVisible) => {
161
182
  windowState = isVisible ? "visible" : "hidden";
162
183
  win.show(() => {
163
184
  win.bringToFront(() => {
164
- timesSeries(5, flash, () => {
185
+ async.timesSeries(5, flash, () => {
165
186
  if (windowState === "hidden") {
166
187
  win.hide();
167
188
  }
189
+ this.setFlashingState(false);
168
190
  });
169
191
  });
170
192
  });
171
193
  });
172
194
  });
173
195
  },
174
- terminateProcess: function (AppIdentifier, force = false, prompt = true) {
175
- let app = FSBL.System.Application.wrap(AppIdentifier.uuid, AppIdentifier.name);
176
- let politeCloseProcess = () => {
177
- let closeTimeout = setTimeout(() => {
178
- onCloseFailure();
179
- }, 4000);
180
- var onCloseSuccess = () => {
181
- clearTimeout(closeTimeout);
182
- };
183
- app.close(force, onCloseSuccess, onCloseFailure);
196
+ terminateProcess: (AppIdentifier, force = false) => {
197
+ const app = FSBL.System.Application.wrap(AppIdentifier.uuid);
198
+ const onCloseFailure = () => {
199
+ if (force) {
200
+ terminateProcess();
201
+ }
202
+ else {
203
+ Actions.terminateProcess(AppIdentifier, true);
204
+ }
184
205
  };
185
- let forceCloseProcess = () => {
186
- let closeTimeout = setTimeout(() => {
206
+ const forceCloseProcess = () => {
207
+ const closeTimeout = setTimeout(() => {
187
208
  onCloseFailure();
188
- }, 4000);
189
- var onCloseSuccess = () => {
209
+ }, MAGIC_NUMBER_TERMINATION_TIMEOUT);
210
+ const onCloseSuccess = () => {
190
211
  clearTimeout(closeTimeout);
191
212
  };
192
213
  app.close(force, onCloseSuccess, onCloseFailure);
193
214
  };
194
- let terminateProcess = () => {
195
- app.terminate(true, Function.prototype, () => {
215
+ const terminateProcess = () => {
216
+ app.terminate(() => { }, () => {
196
217
  FSBL.Clients.DialogManager.open("yesNo", {
197
218
  title: "Error",
198
219
  question: "The process that you are attempting to close is unresponsive. Please contact support.",
199
220
  affirmativeButtonLabel: "Okay",
200
221
  showCancelButton: false,
201
222
  showNegativeButton: false,
202
- }, Function.prototype);
223
+ }, () => { });
203
224
  });
204
225
  };
205
- let onCloseFailure = () => {
206
- if (force) {
207
- terminateProcess();
208
- }
209
- else {
210
- Actions.terminateProcess(AppIdentifier, true, false);
211
- }
212
- };
213
226
  if (force) {
214
227
  return forceCloseProcess();
215
228
  }
@@ -220,34 +233,25 @@ var Actions = {
220
233
  showNegativeButton: false,
221
234
  }, (err, response) => {
222
235
  if (err || response.choice === "affirmative") {
223
- politeCloseProcess();
236
+ forceCloseProcess();
224
237
  }
225
238
  });
226
239
  },
227
240
  removeWindowLocally: function (winID) {
228
- let win = FSBL.System.Window.wrap(winID.uuid, winID.name);
229
- let parentApp = win.getParentApplication();
230
- let procs = ProcessMonitorStore.getValue({ field: "processList" });
241
+ let procs = ProcessMonitorStore === null || ProcessMonitorStore === void 0 ? void 0 : ProcessMonitorStore.getValue({ field: "processList" });
231
242
  procs = procs.map((proc) => {
232
- if (proc.statistics.uuid === parentApp.uuid) {
233
- let cwIndex = proc.childWindows.findIndex((cw) => cw.name === winID.name);
243
+ if (proc.childWindows) {
244
+ const cwIndex = proc.childWindows.findIndex((cw) => cw.name === winID.name);
234
245
  proc.childWindows.splice(cwIndex, 1);
235
246
  }
236
247
  return proc;
237
248
  });
238
- ProcessMonitorStore.setValue({ field: "processList", value: procs });
249
+ ProcessMonitorStore === null || ProcessMonitorStore === void 0 ? void 0 : ProcessMonitorStore.setValue({ field: "processList", value: procs });
239
250
  },
240
251
  closeWindow: function (winID, force = false) {
241
- let win = FSBL.System.Window.wrap(winID.uuid, winID.name);
242
- let parentApp = win.getParentApplication();
252
+ const win = FSBL.System.Window.wrap(winID.uuid, winID.name);
243
253
  Actions.removeWindowLocally(winID);
244
- let closeTimeout = setTimeout(() => {
245
- onCloseFailure();
246
- }, 4000);
247
- var onCloseSuccess = () => {
248
- clearTimeout(closeTimeout);
249
- };
250
- var onCloseFailure = () => {
254
+ const onCloseFailure = () => {
251
255
  if (force) {
252
256
  FSBL.Clients.DialogManager.open("yesNo", {
253
257
  title: "Terminate Process?",
@@ -256,7 +260,7 @@ var Actions = {
256
260
  showNegativeButton: false,
257
261
  }, (err, response) => {
258
262
  if (err || response.choice === "affirmative") {
259
- return Actions.terminateProcess(parentApp, true);
263
+ return Actions.terminateProcess({ uuid: winID.uuid }, true);
260
264
  }
261
265
  });
262
266
  }
@@ -264,9 +268,14 @@ var Actions = {
264
268
  Actions.closeWindow(winID, true);
265
269
  }
266
270
  };
271
+ const closeTimeout = setTimeout(() => {
272
+ onCloseFailure();
273
+ }, MAGIC_NUMBER_TERMINATION_TIMEOUT);
274
+ const onCloseSuccess = () => {
275
+ clearTimeout(closeTimeout);
276
+ };
267
277
  win.close(force, onCloseSuccess, onCloseFailure);
268
278
  },
269
279
  };
270
- module.exports.Store = ProcessMonitorStore;
271
- module.exports.Actions = Actions;
280
+ export { ProcessMonitorStore as Store, Actions };
272
281
  //# sourceMappingURL=ProcessMonitorStore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProcessMonitorStore.js","sourceRoot":"","sources":["../../../../src/components/processMonitor/stores/ProcessMonitorStore.js"],"names":[],"mappings":"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","sourcesContent":["const timesSeries = require(\"async/timesSeries\");\r\nlet ProcessMonitorStore;\r\nconst asyncEach = require(\"async/each\");\r\n//Regex code taken from https://gist.github.com/mattheyan/46a230da86a0894a5ff654b9139ec5f2\r\nconst DEFAULT_SORT_DIRECTION = \"ascending\";\r\nconst DEFAULT_STORE_DATA = {\r\n\tviewMode: \"simple\",\r\n\tsort: {\r\n\t\tfield: \"name\",\r\n\t\tdirection: \"ascending\",\r\n\t},\r\n};\r\n\r\nfunction createLocalStore(done) {\r\n\tFSBL.Clients.DistributedStoreClient.createStore(\r\n\t\t{\r\n\t\t\tstore: \"Finsemble-ProcessMonitor-Local-Store\",\r\n\t\t\tvalues: DEFAULT_STORE_DATA,\r\n\t\t},\r\n\t\t(err, store) => {\r\n\t\t\tProcessMonitorStore = store;\r\n\t\t\tmodule.exports.Store = store;\r\n\t\t\tdone();\r\n\t\t}\r\n\t);\r\n}\r\n\r\nvar Actions = {\r\n\t/**\r\n\t * Creates the local store, then gets the first cut at stats for the process list.\r\n\t */\r\n\tinitialize: function (cb) {\r\n\t\tcreateLocalStore(() => {\r\n\t\t\tActions.getInitialData();\r\n\t\t\tcb();\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * Gets the process list, pulls the statistics out, and renders the app. Also sets up an interval where we'll retrieve more stats from the system.\r\n\t */\r\n\tgetInitialData: function () {\r\n\t\tFSBL.System.getProcessList(Actions.extractData);\r\n\t\tsetInterval(() => {\r\n\t\t\tFSBL.System.getProcessList(Actions.extractData);\r\n\t\t}, 1000);\r\n\t},\r\n\r\n\t/**\r\n\t * Sets the sort field; if it's the same field as we had previously, we flip the sort direction.\r\n\t */\r\n\tsetSort: function (field) {\r\n\t\tlet currentSort = ProcessMonitorStore.getValue({ field: \"sort\" });\r\n\t\tlet procs = ProcessMonitorStore.getValue({ field: \"processList\" });\r\n\t\tlet newSort;\r\n\t\t//If it's the same field as before, flip the direction\r\n\t\tif (currentSort.field === field) {\r\n\t\t\tnewSort = currentSort;\r\n\t\t\tif (currentSort.direction == \"ascending\") {\r\n\t\t\t\tnewSort.direction = \"descending\";\r\n\t\t\t} else {\r\n\t\t\t\tnewSort.direction = \"ascending\";\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tnewSort = {\r\n\t\t\t\tfield,\r\n\t\t\t\tdirection: DEFAULT_SORT_DIRECTION,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tProcessMonitorStore.setValue({ field: \"sort\", value: newSort }, () => {\r\n\t\t\t// When changing sort we'll re-render the UI immediately instead of waiting for the process list to update. Without this step, it could be 999ms until the next update, which makes the process monitor feel very unresponsive and very bad.\r\n\t\t\tprocs = Actions.sortProcesses(procs);\r\n\t\t\tProcessMonitorStore.setValue({ field: \"processList\", value: procs });\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * Extracts data from the process list (via the createDataModel function), and then sets the processList value on the store. This causes the UI to re-render.\r\n\t */\r\n\textractData: function (processes) {\r\n\t\tActions.createDataModel(processes, (procs) => {\r\n\t\t\t//set store.\r\n\t\t\tProcessMonitorStore.setValue({ field: \"processList\", value: procs });\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * Converts the system.getProcessList response into something that's easily render-able.\r\n\t */\r\n\tcreateDataModel: function (processes, cb) {\r\n\t\tlet procs = [];\r\n\t\t//@todo, potential optimization: get child windows once, and listen on a close/create event. As it stands, getCWs is pretty performant.\r\n\t\tlet mode = ProcessMonitorStore.getValue({ field: \"viewMode\" });\r\n\r\n\t\tfor (const proc of processes) {\r\n\t\t\tif (\r\n\t\t\t\tmode === \"simple\" &&\r\n\t\t\t\t(proc.name.toLowerCase().includes(\"service\") ||\r\n\t\t\t\t\tproc.name.toLowerCase().includes(\"system\") ||\r\n\t\t\t\t\tproc.name.toLowerCase().includes(\"unnamed\"))\r\n\t\t\t) {\r\n\t\t\t\tprocs.push({\r\n\t\t\t\t\tstatistics: proc,\r\n\t\t\t\t\tvisible: false,\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tprocs.push({\r\n\t\t\t\t\tstatistics: proc,\r\n\t\t\t\t\tvisible: true,\r\n\t\t\t\t\ttype: proc.type,\r\n\t\t\t\t\tchildWindows: [...proc.windows, ...proc.views]\r\n\t\t\t\t\t\t.map((item) => {\r\n\t\t\t\t\t\t\tconst name = item.name || item.windowName;\r\n\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t!(\r\n\t\t\t\t\t\t\t\t\tmode === \"simple\" &&\r\n\t\t\t\t\t\t\t\t\t(name.toLowerCase().includes(\"service\") ||\r\n\t\t\t\t\t\t\t\t\t\tname.toLowerCase().includes(\"system\") ||\r\n\t\t\t\t\t\t\t\t\t\tname.toLowerCase().includes(\"unnamed\"))\r\n\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\t\tname: item.name || `${item.windowName}: view-${item.viewId}`,\r\n\t\t\t\t\t\t\t\t\ttype: item.name ? \"window\" : \"view\",\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.filter((item) => item)\r\n\t\t\t\t\t\t.sort((a, b) => {\r\n\t\t\t\t\t\t\tif (a.name < b.name) return -1;\r\n\t\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\tprocs = Actions.sortProcesses(procs);\r\n\t\tcb(procs);\r\n\t},\r\n\r\n\t/**\r\n\t * Sorting function. Handles ascending and descending.\r\n\t */\r\n\tsortProcesses: function (procs) {\r\n\t\tlet currentSort = ProcessMonitorStore.getValue({ field: \"sort\" });\r\n\t\tlet sortFN = (a, b) => {\r\n\t\t\tlet aValue = a.statistics[currentSort.field];\r\n\t\t\t//Comparing upper and lowercase names makes the sort look wrong. we equalize all strings here.\r\n\t\t\tif (aValue.toLowerCase) {\r\n\t\t\t\taValue = aValue.toLowerCase();\r\n\t\t\t}\r\n\r\n\t\t\tlet bValue = b.statistics[currentSort.field];\r\n\t\t\tif (aValue.toLowerCase) {\r\n\t\t\t\tbValue = bValue.toLowerCase();\r\n\t\t\t}\r\n\t\t\tif (currentSort.direction === \"ascending\") {\r\n\t\t\t\tif (aValue < bValue) return -1;\r\n\t\t\t\tif (aValue > bValue) return 1;\r\n\t\t\t\treturn 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (aValue > bValue) return -1;\r\n\t\t\tif (aValue < bValue) return 1;\r\n\t\t\treturn 0;\r\n\t\t};\r\n\t\treturn procs.sort(sortFN);\r\n\t},\r\n\r\n\t/**\r\n\t * Toggles advanced/simple mode\r\n\t */\r\n\ttoggleViewMode: function () {\r\n\t\tlet mode = ProcessMonitorStore.getValue({ field: \"viewMode\" });\r\n\t\tif (mode === \"advanced\") {\r\n\t\t\tmode = \"simple\";\r\n\t\t} else {\r\n\t\t\tmode = \"advanced\";\r\n\t\t}\r\n\t\tProcessMonitorStore.setValue({ field: \"viewMode\", value: mode });\r\n\t},\r\n\r\n\t/**\r\n\t * Make the window flash a couple of times so that the user can identify it.\r\n\t */\r\n\tidentifyWindow: function (winID) {\r\n\t\tif (winID.name.includes(\"Service\")) return;\r\n\r\n\t\tconst OPACITY_ANIMATION_DURATION = 200;\r\n\t\tFSBL.FinsembleWindow.getInstance({ name: winID.name }, (err, win) => {\r\n\t\t\tlet windowState = \"hidden\";\r\n\t\t\tfunction flash(n, done) {\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\twin.hide(() => {\r\n\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\twin.show(() => {\r\n\t\t\t\t\t\t\t\tdone(null);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}, OPACITY_ANIMATION_DURATION / 1.5);\r\n\t\t\t\t\t});\r\n\t\t\t\t}, OPACITY_ANIMATION_DURATION / 1.5);\r\n\t\t\t}\r\n\t\t\twin.isShowing((err, isVisible) => {\r\n\t\t\t\t//cache the visible state of the window prior to making it flash. If it was hidden before, hide it when the flashing is done.\r\n\t\t\t\twindowState = isVisible ? \"visible\" : \"hidden\";\r\n\t\t\t\twin.show(() => {\r\n\t\t\t\t\twin.bringToFront(() => {\r\n\t\t\t\t\t\t//Flash 5 times, in series.\r\n\t\t\t\t\t\ttimesSeries(5, flash, () => {\r\n\t\t\t\t\t\t\tif (windowState === \"hidden\") {\r\n\t\t\t\t\t\t\t\twin.hide();\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});\r\n\t},\r\n\r\n\t/**\r\n\t * Terminates a process. Prompts first. If it fails to terminate the process, displays an error message.\r\n\t */\r\n\tterminateProcess: function (AppIdentifier, force = false, prompt = true) {\r\n\t\tlet app = FSBL.System.Application.wrap(AppIdentifier.uuid, AppIdentifier.name);\r\n\t\t/**\r\n\t\t * This whole routine is a little hectic because of all of the closures - but there's a method to the madness. Here's the logic.\r\n\t\t *\r\n\t\t * 1st time we try to close: Politely close the window. If that fails, recurse, but pass \"force\" === true.\r\n\t\t * 2nd time, we try to forceClose the process. If that fails, we will terminate the process forcibly, which isn't graceful.\r\n\t\t */\r\n\r\n\t\tlet politeCloseProcess = () => {\r\n\t\t\t//If the process fails to close in 4 seconds, we will call this method again, but try to force close it.\r\n\t\t\tlet closeTimeout = setTimeout(() => {\r\n\t\t\t\tonCloseFailure();\r\n\t\t\t}, 4000);\r\n\r\n\t\t\tvar onCloseSuccess = () => {\r\n\t\t\t\tclearTimeout(closeTimeout);\r\n\t\t\t};\r\n\t\t\tapp.close(force, onCloseSuccess, onCloseFailure);\r\n\t\t};\r\n\r\n\t\tlet forceCloseProcess = () => {\r\n\t\t\t//If the process fails to close in 4 seconds, we will call this method again, but try to force close it.\r\n\t\t\tlet closeTimeout = setTimeout(() => {\r\n\t\t\t\tonCloseFailure();\r\n\t\t\t}, 4000);\r\n\r\n\t\t\tvar onCloseSuccess = () => {\r\n\t\t\t\tclearTimeout(closeTimeout);\r\n\t\t\t};\r\n\t\t\tapp.close(force, onCloseSuccess, onCloseFailure);\r\n\t\t};\r\n\r\n\t\tlet terminateProcess = () => {\r\n\t\t\t//Should never get into here, but just in case the process is hung, we'll show an error message to the user.\r\n\t\t\tapp.terminate(true, Function.prototype, () => {\r\n\t\t\t\tFSBL.Clients.DialogManager.open(\r\n\t\t\t\t\t\"yesNo\",\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: \"Error\",\r\n\t\t\t\t\t\tquestion: \"The process that you are attempting to close is unresponsive. Please contact support.\",\r\n\t\t\t\t\t\taffirmativeButtonLabel: \"Okay\",\r\n\t\t\t\t\t\tshowCancelButton: false,\r\n\t\t\t\t\t\tshowNegativeButton: false,\r\n\t\t\t\t\t},\r\n\t\t\t\t\tFunction.prototype\r\n\t\t\t\t);\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tlet onCloseFailure = () => {\r\n\t\t\t//If Actions.terminateProcess is invoked with force === true, that means that we tried to force close the process, and it failed. So we will terminate it. If not, we will try to force close (the else block).\r\n\t\t\tif (force) {\r\n\t\t\t\tterminateProcess();\r\n\t\t\t} else {\r\n\t\t\t\t//If we've already tried to close the process once, but it failed, we'll try to terminate it. The first attempt is a close, which is more graceful.\r\n\t\t\t\tActions.terminateProcess(AppIdentifier, true, false);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t//If we're force closing, no need to prompt the user (which is what happens below);\r\n\t\tif (force) {\r\n\t\t\treturn forceCloseProcess();\r\n\t\t}\r\n\r\n\t\t//Ask user if they're sure. If they says \"yes\", close it.\r\n\t\tFSBL.Clients.DialogManager.open(\r\n\t\t\t\"yesNo\",\r\n\t\t\t{\r\n\t\t\t\ttitle: \"Terminate Process?\",\r\n\t\t\t\tquestion: \"Terminating the process may close other apps. Are you sure you want to continue?\",\r\n\t\t\t\taffirmativeResponseLabel: \"Terminate\",\r\n\t\t\t\tshowNegativeButton: false,\r\n\t\t\t},\r\n\t\t\t(err, response) => {\r\n\t\t\t\tif (err || response.choice === \"affirmative\") {\r\n\t\t\t\t\tpoliteCloseProcess();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t},\r\n\r\n\t/**\r\n\t * This function exists to make the UI feel snappy. May take a second or so for the window to close properly and for the change to flow to system.getProcessList. To make that lag go away, we immediately render the change.\r\n\t */\r\n\tremoveWindowLocally: function (winID) {\r\n\t\tlet win = FSBL.System.Window.wrap(winID.uuid, winID.name);\r\n\t\tlet parentApp = win.getParentApplication();\r\n\t\tlet procs = ProcessMonitorStore.getValue({ field: \"processList\" });\r\n\t\tprocs = procs.map((proc) => {\r\n\t\t\tif (proc.statistics.uuid === parentApp.uuid) {\r\n\t\t\t\tlet cwIndex = proc.childWindows.findIndex((cw) => cw.name === winID.name);\r\n\t\t\t\tproc.childWindows.splice(cwIndex, 1);\r\n\t\t\t}\r\n\t\t\treturn proc;\r\n\t\t});\r\n\t\tProcessMonitorStore.setValue({ field: \"processList\", value: procs });\r\n\t},\r\n\r\n\t/**\r\n\t * Try to close the window. If that fails, try to force close the window. If that fails, ask if they'd like to terminate the parent process.\r\n\t */\r\n\tcloseWindow: function (winID, force = false) {\r\n\t\tlet win = FSBL.System.Window.wrap(winID.uuid, winID.name);\r\n\t\tlet parentApp = win.getParentApplication();\r\n\r\n\t\t//Make the UI feel snappy.\r\n\t\tActions.removeWindowLocally(winID);\r\n\r\n\t\t//If we can't close within 4 seconds, something's wrong - try to force close it.\r\n\t\tlet closeTimeout = setTimeout(() => {\r\n\t\t\tonCloseFailure();\r\n\t\t}, 4000);\r\n\r\n\t\tvar onCloseSuccess = () => {\r\n\t\t\tclearTimeout(closeTimeout);\r\n\t\t};\r\n\r\n\t\tvar onCloseFailure = () => {\r\n\t\t\t//If Actions.closeWindow was called with force === true, and the close failed, give the user the opportunity to terminate the process.\r\n\t\t\tif (force) {\r\n\t\t\t\tFSBL.Clients.DialogManager.open(\r\n\t\t\t\t\t\"yesNo\",\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: \"Terminate Process?\",\r\n\t\t\t\t\t\tquestion:\r\n\t\t\t\t\t\t\t\"The app that you are attempting to close is unresponsive. Would you like to terminate the process? Terminating the process may close other apps.\",\r\n\t\t\t\t\t\taffirmativeResponseLabel: \"Terminate\",\r\n\t\t\t\t\t\tshowNegativeButton: false,\r\n\t\t\t\t\t},\r\n\t\t\t\t\t(err, response) => {\r\n\t\t\t\t\t\tif (err || response.choice === \"affirmative\") {\r\n\t\t\t\t\t\t\treturn Actions.terminateProcess(parentApp, true);\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} else {\r\n\t\t\t\tActions.closeWindow(winID, true);\r\n\t\t\t}\r\n\t\t};\r\n\t\twin.close(force, onCloseSuccess, onCloseFailure);\r\n\t},\r\n};\r\n\r\nmodule.exports.Store = ProcessMonitorStore;\r\nmodule.exports.Actions = Actions;\r\n"]}
1
+ {"version":3,"file":"ProcessMonitorStore.js","sourceRoot":"","sources":["../../../../src/components/processMonitor/stores/ProcessMonitorStore.ts"],"names":[],"mappings":"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","sourcesContent":["import { getViewName, getViewBaseName } from \"../helpers\";\r\nimport { ChildWindowType, ProcessType, SortObjectType } from \"../ProcessMonitorTypes\";\r\nimport StoreModel from \"@finsemble/finsemble-core/types/clients/StoreModel\";\r\nimport { StandardCallback, StandardError } from \"@finsemble/finsemble-core/types/types\";\r\nimport { ProcessInfo } from \"@finsemble/finsemble-core/types/FEA\";\r\nimport { FinsembleWindow } from \"@finsemble/finsemble-core/types/main\";\r\nimport async from \"async\";\r\n\r\nlet ProcessMonitorStore: StoreModel | undefined;\r\n\r\ntype VoidCallback = () => void;\r\n\r\n//Regex code taken from https://gist.github.com/mattheyan/46a230da86a0894a5ff654b9139ec5f2\r\nconst DEFAULT_SORT_DIRECTION = \"ascending\";\r\nconst DEFAULT_STORE_DATA = {\r\n\tviewMode: \"simple\",\r\n\tsort: {\r\n\t\tfield: \"name\",\r\n\t\tdirection: \"ascending\",\r\n\t},\r\n};\r\nconst MAGIC_NUMBER_TERMINATION_TIMEOUT = 4000;\r\n\r\nexport let storeWrapper: StoreModel | null | undefined;\r\n\r\nfunction createLocalStore(done: VoidCallback) {\r\n\tFSBL.Clients.DistributedStoreClient.createStore(\r\n\t\t{\r\n\t\t\tstore: \"Finsemble-ProcessMonitor-Local-Store\",\r\n\t\t\tvalues: DEFAULT_STORE_DATA,\r\n\t\t},\r\n\t\t(err: StandardError, store?: StoreModel) => {\r\n\t\t\tProcessMonitorStore = store;\r\n\t\t\tstoreWrapper = store;\r\n\t\t\tdone();\r\n\t\t}\r\n\t);\r\n}\r\n\r\nconst Actions = {\r\n\t/**\r\n\t * Creates the local store, then gets the first cut at stats for the process list.\r\n\t */\r\n\tinitialize: (cb: VoidCallback) => {\r\n\t\tcreateLocalStore(() => {\r\n\t\t\tActions.getInitialData();\r\n\t\t\tcb();\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * Gets the process list, pulls the statistics out, and renders the app. Also sets up an interval where we'll retrieve more stats from the system.\r\n\t */\r\n\tgetInitialData: () => {\r\n\t\tFSBL.System.getProcessList(Actions.extractData);\r\n\t\tsetInterval(() => {\r\n\t\t\tFSBL.System.getProcessList(Actions.extractData);\r\n\t\t}, 1000);\r\n\t},\r\n\r\n\t/**\r\n\t * Sets the sort field; if it's the same field as we had previously, we flip the sort direction.\r\n\t */\r\n\tsetSort: (field: string) => {\r\n\t\tconst currentSort = ProcessMonitorStore?.getValue({ field: \"sort\" });\r\n\t\tlet procs = ProcessMonitorStore?.getValue({ field: \"processList\" });\r\n\t\tlet newSort;\r\n\t\t//If it's the same field as before, flip the direction\r\n\t\tif (currentSort.field === field) {\r\n\t\t\tnewSort = currentSort;\r\n\t\t\tif (currentSort.direction == \"ascending\") {\r\n\t\t\t\tnewSort.direction = \"descending\";\r\n\t\t\t} else {\r\n\t\t\t\tnewSort.direction = \"ascending\";\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tnewSort = {\r\n\t\t\t\tfield,\r\n\t\t\t\tdirection: DEFAULT_SORT_DIRECTION,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tProcessMonitorStore?.setValue({ field: \"sort\", value: newSort }, () => {\r\n\t\t\t// When changing sort we'll re-render the UI immediately instead of waiting for the process list to update. Without this step, it could be 999ms until the next update, which makes the process monitor feel very unresponsive and very bad.\r\n\t\t\tprocs = Actions.sortProcesses(procs);\r\n\t\t\tProcessMonitorStore?.setValue({ field: \"processList\", value: procs });\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * Extracts data from the process list (via the createDataModel function), and then sets the processList value on the store. This causes the UI to re-render.\r\n\t */\r\n\textractData: (processes: ProcessInfo[]) => {\r\n\t\tActions.createDataModel(processes, (procs) => {\r\n\t\t\t//set store.\r\n\t\t\tProcessMonitorStore?.setValue({ field: \"processList\", value: procs });\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * Converts the system.getProcessList response into something that's easily render-able.\r\n\t */\r\n\tcreateDataModel: (processes: ProcessInfo[], cb: (procs: ProcessType[]) => void) => {\r\n\t\tlet procs: ProcessType[] = [];\r\n\t\tlet mode = ProcessMonitorStore?.getValue({ field: \"viewMode\" });\r\n\r\n\t\tfor (const proc of processes) {\r\n\t\t\tif (\r\n\t\t\t\tmode === \"simple\" &&\r\n\t\t\t\t(proc.name.toLowerCase().includes(\"service\") ||\r\n\t\t\t\t\tproc.name.toLowerCase().includes(\"system\") ||\r\n\t\t\t\t\tproc.name.toLowerCase().includes(\"unnamed\"))\r\n\t\t\t) {\r\n\t\t\t\tprocs.push({\r\n\t\t\t\t\tstatistics: proc,\r\n\t\t\t\t\tvisible: false,\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tconst childWindows: ChildWindowType[] = [...proc.windows, ...proc.views]\r\n\t\t\t\t\t.filter((item) => {\r\n\t\t\t\t\t\tconst name: string = \"name\" in item ? item.name : item.windowName;\r\n\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t!(\r\n\t\t\t\t\t\t\t\tmode === \"simple\" &&\r\n\t\t\t\t\t\t\t\t(name.toLowerCase().includes(\"service\") ||\r\n\t\t\t\t\t\t\t\t\tname.toLowerCase().includes(\"system\") ||\r\n\t\t\t\t\t\t\t\t\tname.toLowerCase().includes(\"unnamed\"))\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.map((item) => {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tname:\r\n\t\t\t\t\t\t\t\t\"name\" in item\r\n\t\t\t\t\t\t\t\t\t? item.name\r\n\t\t\t\t\t\t\t\t\t: getViewName({\r\n\t\t\t\t\t\t\t\t\t\t\twindowName: item.windowName,\r\n\t\t\t\t\t\t\t\t\t\t\tviewId: String(item.id),\r\n\t\t\t\t\t\t\t\t\t }),\r\n\t\t\t\t\t\t\ttype: \"name\" in item ? \"window\" : \"view\",\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.sort((a, b) => {\r\n\t\t\t\t\t\tif (a.name < b.name) return -1;\r\n\t\t\t\t\t\tif (a.name > b.name) return 1;\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\tprocs.push({\r\n\t\t\t\t\tstatistics: proc,\r\n\t\t\t\t\tvisible: true,\r\n\t\t\t\t\ttype: proc.type,\r\n\t\t\t\t\tchildWindows,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tprocs = Actions.sortProcesses(procs);\r\n\t\tcb(procs);\r\n\t},\r\n\r\n\t/**\r\n\t * Sorting function. Handles ascending and descending.\r\n\t */\r\n\tsortProcesses: (procs: ProcessType[]) => {\r\n\t\tlet currentSort: SortObjectType = ProcessMonitorStore?.getValue({ field: \"sort\" });\r\n\t\tlet sortFN = (a: ProcessType, b: ProcessType) => {\r\n\t\t\tlet aValue = a.statistics[currentSort.field];\r\n\t\t\tlet bValue = b.statistics[currentSort.field];\r\n\r\n\t\t\tif (typeof aValue === \"undefined\" || typeof bValue === \"undefined\") {\r\n\t\t\t\treturn 0;\r\n\t\t\t}\r\n\r\n\t\t\t//Comparing upper and lowercase names makes the sort look wrong. we equalize all strings here.\r\n\t\t\tif (typeof aValue === \"string\") {\r\n\t\t\t\taValue = aValue.toLowerCase();\r\n\t\t\t}\r\n\t\t\tif (typeof bValue === \"string\") {\r\n\t\t\t\tbValue = bValue.toLowerCase();\r\n\t\t\t}\r\n\r\n\t\t\tif (currentSort.direction === \"ascending\") {\r\n\t\t\t\tif (aValue < bValue) return -1;\r\n\t\t\t\tif (aValue > bValue) return 1;\r\n\t\t\t\treturn 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (aValue > bValue) return -1;\r\n\t\t\tif (aValue < bValue) return 1;\r\n\t\t\treturn 0;\r\n\t\t};\r\n\t\treturn procs.sort(sortFN);\r\n\t},\r\n\r\n\t/**\r\n\t * Toggles advanced/simple mode\r\n\t */\r\n\ttoggleViewMode: () => {\r\n\t\tconst mode = ProcessMonitorStore?.getValue({ field: \"viewMode\" });\r\n\t\tProcessMonitorStore?.setValue({\r\n\t\t\tfield: \"viewMode\",\r\n\t\t\tvalue: mode === \"advanced\" ? \"simple\" : \"advanced\",\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * Gets the current \"flashing\" state - whether the process monitor is currently flashing a window\r\n\t */\r\n\tgetFlashingState: (cb?: StandardCallback) => {\r\n\t\tProcessMonitorStore?.getValue(\"flashing\", cb);\r\n\t},\r\n\r\n\t/**\r\n\t * Gets the current \"flashing\" state for the process monitor\r\n\t */\r\n\tsetFlashingState: (value: boolean, cb?: StandardCallback) => {\r\n\t\tProcessMonitorStore?.setValue({ field: \"flashing\", value }, cb);\r\n\t},\r\n\r\n\t/**\r\n\t * Make the window flash a couple of times so that the user can identify it.\r\n\t */\r\n\tidentifyWindow: function (winID: ChildWindowType) {\r\n\t\tif (winID.name.includes(\"Service\")) return;\r\n\t\t// If the item clicked is a view, the window for that view should flash, thus we need to get that window's name here\r\n\t\tconst baseName = getViewBaseName(winID);\r\n\r\n\t\tthis.setFlashingState(true);\r\n\r\n\t\tconst OPACITY_ANIMATION_DURATION = 200;\r\n\t\tFSBL.FinsembleWindow.getInstance({ name: baseName }, (err: StandardError, win: FinsembleWindow) => {\r\n\t\t\tlet windowState = \"hidden\";\r\n\t\t\tfunction flash(n: any, done: any) {\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\twin.hide(() => {\r\n\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\twin.show(() => {\r\n\t\t\t\t\t\t\t\tdone(null);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}, OPACITY_ANIMATION_DURATION / 1.5);\r\n\t\t\t\t\t});\r\n\t\t\t\t}, OPACITY_ANIMATION_DURATION / 1.5);\r\n\t\t\t}\r\n\t\t\twin.isShowing({}, (error: StandardError, isVisible) => {\r\n\t\t\t\t//cache the visible state of the window prior to making it flash. If it was hidden before, hide it when the flashing is done.\r\n\t\t\t\twindowState = isVisible ? \"visible\" : \"hidden\";\r\n\t\t\t\twin.show(() => {\r\n\t\t\t\t\twin.bringToFront(() => {\r\n\t\t\t\t\t\t//Flash 5 times, in series.\r\n\t\t\t\t\t\tasync.timesSeries(5, flash, () => {\r\n\t\t\t\t\t\t\tif (windowState === \"hidden\") {\r\n\t\t\t\t\t\t\t\twin.hide();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tthis.setFlashingState(false);\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});\r\n\t},\r\n\r\n\t/**\r\n\t * Terminates a process. Prompts first. If it fails to terminate the process, displays an error message.\r\n\t */\r\n\tterminateProcess: (AppIdentifier: { uuid: string }, force = false) => {\r\n\t\t// AppIdentifier should be of type ChildWindow, but that has `uuid` as optional, and\r\n\t\t// uuid is required for this function\r\n\r\n\t\tconst app = FSBL.System.Application.wrap(AppIdentifier.uuid);\r\n\t\t/**\r\n\t\t * This whole routine is a little hectic because of all of the closures - but there's a method to the madness. Here's the logic.\r\n\t\t *\r\n\t\t * 1st time we try to close: Politely close the window. If that fails, recurse, but pass \"force\" === true.\r\n\t\t * 2nd time, we try to forceClose the process. If that fails, we will terminate the process forcibly, which isn't graceful.\r\n\t\t */\r\n\r\n\t\tconst onCloseFailure = () => {\r\n\t\t\t//If Actions.terminateProcess is invoked with force === true, that means that we tried to force close the process, and it failed. So we will terminate it. If not, we will try to force close (the else block).\r\n\t\t\tif (force) {\r\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n\t\t\t\tterminateProcess();\r\n\t\t\t} else {\r\n\t\t\t\t//If we've already tried to close the process once, but it failed, we'll try to terminate it. The first attempt is a close, which is more graceful.\r\n\t\t\t\tActions.terminateProcess(AppIdentifier, true);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tconst forceCloseProcess = () => {\r\n\t\t\t//If the process fails to close in 4 seconds, we will call this method again, but try to force close it.\r\n\t\t\tconst closeTimeout = setTimeout(() => {\r\n\t\t\t\tonCloseFailure();\r\n\t\t\t}, MAGIC_NUMBER_TERMINATION_TIMEOUT);\r\n\r\n\t\t\tconst onCloseSuccess = () => {\r\n\t\t\t\tclearTimeout(closeTimeout);\r\n\t\t\t};\r\n\t\t\tapp.close(force, onCloseSuccess, onCloseFailure);\r\n\t\t};\r\n\r\n\t\tconst terminateProcess = () => {\r\n\t\t\t// Should never get into here, but just in case the process is hung, we'll show an error message to the user.\r\n\t\t\tapp.terminate(\r\n\t\t\t\t() => {},\r\n\t\t\t\t() => {\r\n\t\t\t\t\tFSBL.Clients.DialogManager.open(\r\n\t\t\t\t\t\t\"yesNo\",\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\ttitle: \"Error\",\r\n\t\t\t\t\t\t\tquestion: \"The process that you are attempting to close is unresponsive. Please contact support.\",\r\n\t\t\t\t\t\t\taffirmativeButtonLabel: \"Okay\",\r\n\t\t\t\t\t\t\tshowCancelButton: false,\r\n\t\t\t\t\t\t\tshowNegativeButton: false,\r\n\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};\r\n\r\n\t\t// If we're force closing, no need to prompt the user (which is what happens below);\r\n\t\tif (force) {\r\n\t\t\treturn forceCloseProcess();\r\n\t\t}\r\n\r\n\t\t//Ask user if they're sure. If they says \"yes\", close it.\r\n\t\tFSBL.Clients.DialogManager.open(\r\n\t\t\t\"yesNo\",\r\n\t\t\t{\r\n\t\t\t\ttitle: \"Terminate Process?\",\r\n\t\t\t\tquestion: \"Terminating the process may close other apps. Are you sure you want to continue?\",\r\n\t\t\t\taffirmativeResponseLabel: \"Terminate\",\r\n\t\t\t\tshowNegativeButton: false,\r\n\t\t\t},\r\n\t\t\t(err: StandardError, response: { choice: string }) => {\r\n\t\t\t\tif (err || response.choice === \"affirmative\") {\r\n\t\t\t\t\tforceCloseProcess();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t},\r\n\r\n\t/**\r\n\t * This function exists to make the UI feel snappy. May take a second or so for the window to close properly and for the change to flow to system.getProcessList. To make that lag go away, we immediately render the change.\r\n\t */\r\n\tremoveWindowLocally: function (winID: { uuid: string; name: string }) {\r\n\t\tlet procs: ProcessType[] = ProcessMonitorStore?.getValue({ field: \"processList\" });\r\n\t\tprocs = procs.map((proc) => {\r\n\t\t\tif (proc.childWindows) {\r\n\t\t\t\tconst cwIndex = proc.childWindows.findIndex((cw) => cw.name === winID.name);\r\n\t\t\t\tproc.childWindows.splice(cwIndex, 1);\r\n\t\t\t}\r\n\t\t\treturn proc;\r\n\t\t});\r\n\t\tProcessMonitorStore?.setValue({ field: \"processList\", value: procs });\r\n\t},\r\n\r\n\t/**\r\n\t * Try to close the window. If that fails, try to force close the window. If that fails, ask if they'd like to terminate the parent process.\r\n\t */\r\n\tcloseWindow: function (winID: { uuid: string; name: string }, force = false) {\r\n\t\tconst win = FSBL.System.Window.wrap(winID.uuid, winID.name);\r\n\r\n\t\t//Make the UI feel snappy.\r\n\t\tActions.removeWindowLocally(winID);\r\n\r\n\t\tconst onCloseFailure = () => {\r\n\t\t\t//If Actions.closeWindow was called with force === true, and the close failed, give the user the opportunity to terminate the process.\r\n\t\t\tif (force) {\r\n\t\t\t\tFSBL.Clients.DialogManager.open(\r\n\t\t\t\t\t\"yesNo\",\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: \"Terminate Process?\",\r\n\t\t\t\t\t\tquestion:\r\n\t\t\t\t\t\t\t\"The app that you are attempting to close is unresponsive. Would you like to terminate the process? Terminating the process may close other apps.\",\r\n\t\t\t\t\t\taffirmativeResponseLabel: \"Terminate\",\r\n\t\t\t\t\t\tshowNegativeButton: false,\r\n\t\t\t\t\t},\r\n\t\t\t\t\t(err: StandardError, response: { choice: string }) => {\r\n\t\t\t\t\t\tif (err || response.choice === \"affirmative\") {\r\n\t\t\t\t\t\t\treturn Actions.terminateProcess({ uuid: winID.uuid }, true);\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} else {\r\n\t\t\t\tActions.closeWindow(winID, true);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t//If we can't close within 4 seconds, something's wrong - try to force close it.\r\n\t\tconst closeTimeout = setTimeout(() => {\r\n\t\t\tonCloseFailure();\r\n\t\t}, MAGIC_NUMBER_TERMINATION_TIMEOUT);\r\n\r\n\t\tconst onCloseSuccess = () => {\r\n\t\t\tclearTimeout(closeTimeout);\r\n\t\t};\r\n\r\n\t\twin.close(force, onCloseSuccess, onCloseFailure);\r\n\t},\r\n};\r\n\r\nexport { ProcessMonitorStore as Store, Actions };\r\n"]}
@@ -1 +1,4 @@
1
- export function QuickComponentForm(): JSX.Element;
1
+ /// <reference types="react" />
2
+ import "../../assets/css/dialogs.css";
3
+ import "./quickComponent.css";
4
+ export declare const QuickComponentForm: () => JSX.Element;
@@ -9,15 +9,7 @@ import { addProtocolToValidURL } from "../shared/addProtocolToValidURL";
9
9
  class QuickComponentFormBase extends React.Component {
10
10
  constructor(props) {
11
11
  super(props);
12
- this.onkeydown = function (e) {
13
- if (e.code === "Enter" && e.shiftKey === false) {
14
- this.save();
15
- }
16
- if (e.code === "Escape") {
17
- this.cancel();
18
- }
19
- };
20
- FSBL.Clients.Logger.deprecated("Quick Components have been deprecated and will not be available in a future release.");
12
+ FSBL.Clients.Logger.system.deprecated("Quick Components have been deprecated and will not be available in a future release.");
21
13
  this.state = {
22
14
  name: "",
23
15
  url: "",
@@ -36,14 +28,21 @@ class QuickComponentFormBase extends React.Component {
36
28
  componentWillUnmount() {
37
29
  document.body.removeEventListener("keydown", this.onkeydown);
38
30
  }
31
+ onkeydown(e) {
32
+ if (e.code === "Enter" && e.shiftKey === false) {
33
+ this.save();
34
+ }
35
+ if (e.code === "Escape") {
36
+ this.cancel();
37
+ }
38
+ }
39
39
  hideWindow() {
40
40
  finsembleWindow.hide();
41
41
  }
42
42
  save() {
43
43
  if (!this.state)
44
44
  return FSBL.Clients.DialogManager.respondToOpener({});
45
- let { name } = this.state;
46
- let { url } = this.state;
45
+ let { name, url } = this.state;
47
46
  if (!name || !url)
48
47
  return FSBL.Clients.DialogManager.respondToOpener({});
49
48
  if (!isValidURL(url)) {
@@ -55,7 +54,7 @@ class QuickComponentFormBase extends React.Component {
55
54
  FSBL.Clients.LauncherClient.addUserDefinedComponent({
56
55
  name: name,
57
56
  url: urlWithProtocol,
58
- }, (err, response) => {
57
+ }, (err) => {
59
58
  if (err) {
60
59
  console.error(err);
61
60
  }
@@ -85,10 +84,10 @@ class QuickComponentFormBase extends React.Component {
85
84
  }, isModal: true },
86
85
  React.createElement("div", { className: "dialog-title" }, "Enter a name and URL for your app."),
87
86
  React.createElement(FinsembleDialogTextInput, { onInputChange: this.setName, placeholder: "Name", autoFocus: true, value: this.state.name, focusOnShow: true }),
88
- React.createElement(FinsembleDialogTextInput, { onInputChange: this.setURL, placeholder: "URL", value: this.state.url }),
87
+ React.createElement(FinsembleDialogTextInput, { onInputChange: this.setURL, placeholder: "URL", value: this.state.url, autoFocus: false }),
89
88
  React.createElement("div", { className: "button-wrapper" },
90
- React.createElement(FinsembleDialogButton, { className: "fsbl-button-neutral", onClick: this.cancel }, "Cancel"),
91
- React.createElement(FinsembleDialogButton, { className: "fsbl-button-affirmative", onClick: this.save }, "Confirm"))));
89
+ React.createElement(FinsembleDialogButton, { className: "fsbl-button-neutral", onClick: this.cancel, show: true }, "Cancel"),
90
+ React.createElement(FinsembleDialogButton, { className: "fsbl-button-affirmative", onClick: this.save, show: true }, "Confirm"))));
92
91
  }
93
92
  }
94
93
  export const QuickComponentForm = () => React.createElement(QuickComponentFormBase, null);
@@ -1 +1 @@
1
- {"version":3,"file":"QuickComponentForm.js","sourceRoot":"","sources":["../../../src/components/quickComponentForm/QuickComponentForm.jsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport { FinsembleDialog } from \"../legacyControls/FinsembleDialog\";\r\nimport { FinsembleDialogTextInput } from \"../legacyControls/FinsembleDialogTextInput\";\r\nimport { FinsembleDialogButton } from \"../legacyControls/FinsembleDialogButton\";\r\nimport \"../../assets/css/dialogs.css\";\r\nimport \"./quickComponent.css\";\r\nimport { isValidURL } from \"../shared/validateURL\";\r\nimport { addProtocolToValidURL } from \"../shared/addProtocolToValidURL\";\r\n\r\n// @deprecated - Quick Components will be removed in a future version\r\nclass QuickComponentFormBase extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tFSBL.Clients.Logger.deprecated(\r\n\t\t\t\"Quick Components have been deprecated and will not be available in a future release.\"\r\n\t\t);\r\n\t\tthis.state = {\r\n\t\t\tname: \"\",\r\n\t\t\turl: \"\",\r\n\t\t};\r\n\t\tthis.save = this.save.bind(this);\r\n\t\tthis.cancel = this.cancel.bind(this);\r\n\t\tthis.setName = this.setName.bind(this);\r\n\t\tthis.setURL = this.setURL.bind(this);\r\n\t\tthis.onkeydown = this.onkeydown.bind(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Adds eventListeners on keydown, sets the height of the component.\r\n\t *\r\n\t * @memberof QuickComponent\r\n\t */\r\n\tcomponentDidMount() {\r\n\t\tFSBL.Clients.WindowClient.fitToDOM();\r\n\t\tdocument.body.addEventListener(\"keydown\", this.onkeydown);\r\n\t\tFSBL.Clients.WindowClient.setAlwaysOnTop(true);\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tdocument.body.removeEventListener(\"keydown\", this.onkeydown);\r\n\t}\r\n\r\n\t/**\r\n\t * Matches the enter and escape keys with the corresponding function to invoke.\r\n\t */\r\n\tonkeydown = function (e) {\r\n\t\tif (e.code === \"Enter\" && e.shiftKey === false) {\r\n\t\t\tthis.save();\r\n\t\t}\r\n\r\n\t\tif (e.code === \"Escape\") {\r\n\t\t\tthis.cancel();\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Hides the window when the save button is clicked.\r\n\t *\r\n\t * @memberof QuickComponent\r\n\t */\r\n\thideWindow() {\r\n\t\tfinsembleWindow.hide();\r\n\t}\r\n\r\n\t/**\r\n\t * Persists the quick component to storage.\r\n\t * @todo On error, display error message and allow user to try again.\r\n\t * @memberof QuickComponent\r\n\t */\r\n\tsave() {\r\n\t\tif (!this.state) return FSBL.Clients.DialogManager.respondToOpener({});\r\n\t\tlet { name } = this.state;\r\n\t\tlet { url } = this.state;\r\n\t\tif (!name || !url) return FSBL.Clients.DialogManager.respondToOpener({});\r\n\r\n\t\tif (!isValidURL(url)) {\r\n\t\t\treturn FSBL.Clients.DialogManager.respondToOpener({\r\n\t\t\t\terror: \"Invalid URL\",\r\n\t\t\t});\r\n\t\t}\r\n\t\tconst urlWithProtocol = addProtocolToValidURL(url);\r\n\r\n\t\tFSBL.Clients.LauncherClient.addUserDefinedComponent(\r\n\t\t\t{\r\n\t\t\t\tname: name,\r\n\t\t\t\turl: urlWithProtocol,\r\n\t\t\t},\r\n\t\t\t(err, response) => {\r\n\t\t\t\tif (err) {\r\n\t\t\t\t\tconsole.error(err);\r\n\t\t\t\t}\r\n\t\t\t\t// FSBL.Clients.WindowClient.close(false);\r\n\t\t\t\tFSBL.Clients.DialogManager.respondToOpener({});\r\n\t\t\t}\r\n\t\t);\r\n\t\tArray.from(document.querySelectorAll(\"input\")).forEach((el) => (el.value = \"\"));\r\n\t\tthis.setState({\r\n\t\t\tname: \"\",\r\n\t\t\turl: \"\",\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Kills the window.\r\n\t * @todo make this component show/hide instead of spawn/close.\r\n\t * @memberof QuickComponent\r\n\t */\r\n\tcancel() {\r\n\t\tArray.from(document.querySelectorAll(\"input\")).forEach((el) => (el.value = \"\"));\r\n\r\n\t\t// FSBL.Clients.WindowClient.close(false);\r\n\t\tFSBL.Clients.DialogManager.respondToOpener({});\r\n\t}\r\n\r\n\tsetName(e) {\r\n\t\tthis.setState({ name: e.target.value });\r\n\t}\r\n\r\n\tsetURL(e) {\r\n\t\tthis.setState({ url: e.target.value });\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<FinsembleDialog\r\n\t\t\t\tbehaviorOnResponse=\"hide\"\r\n\t\t\t\tonShowRequested={() => {\r\n\t\t\t\t\tFSBL.Clients.WindowClient.fitToDOM(null, () => {\r\n\t\t\t\t\t\tFSBL.Clients.DialogManager.showDialog();\r\n\t\t\t\t\t});\r\n\t\t\t\t}}\r\n\t\t\t\tisModal={true}\r\n\t\t\t>\r\n\t\t\t\t<div className=\"dialog-title\">Enter a name and URL for your app.</div>\r\n\t\t\t\t<FinsembleDialogTextInput\r\n\t\t\t\t\tonInputChange={this.setName}\r\n\t\t\t\t\tplaceholder=\"Name\"\r\n\t\t\t\t\tautoFocus\r\n\t\t\t\t\tvalue={this.state.name}\r\n\t\t\t\t\tfocusOnShow={true}\r\n\t\t\t\t/>\r\n\t\t\t\t<FinsembleDialogTextInput onInputChange={this.setURL} placeholder=\"URL\" value={this.state.url} />\r\n\t\t\t\t<div className=\"button-wrapper\">\r\n\t\t\t\t\t<FinsembleDialogButton className=\"fsbl-button-neutral\" onClick={this.cancel}>\r\n\t\t\t\t\t\tCancel\r\n\t\t\t\t\t</FinsembleDialogButton>\r\n\r\n\t\t\t\t\t<FinsembleDialogButton className=\"fsbl-button-affirmative\" onClick={this.save}>\r\n\t\t\t\t\t\tConfirm\r\n\t\t\t\t\t</FinsembleDialogButton>\r\n\t\t\t\t</div>\r\n\t\t\t</FinsembleDialog>\r\n\t\t);\r\n\t}\r\n}\r\n\r\n/**\r\n * A form that allows the user to add a quick component. It provides one field for the name of the quick component, and another field for its URL.\r\n */\r\nexport const QuickComponentForm = () => <QuickComponentFormBase />;\r\n"]}
1
+ {"version":3,"file":"QuickComponentForm.js","sourceRoot":"","sources":["../../../src/components/quickComponentForm/QuickComponentForm.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport { FinsembleDialog } from \"../legacyControls/FinsembleDialog\";\r\nimport { FinsembleDialogTextInput } from \"../legacyControls/FinsembleDialogTextInput\";\r\nimport { FinsembleDialogButton } from \"../legacyControls/FinsembleDialogButton\";\r\nimport \"../../assets/css/dialogs.css\";\r\nimport \"./quickComponent.css\";\r\nimport { isValidURL } from \"../shared/validateURL\";\r\nimport { addProtocolToValidURL } from \"../shared/addProtocolToValidURL\";\r\n\r\ninterface IProps {}\r\n\r\ninterface IState {\r\n\tname: string;\r\n\turl: string;\r\n}\r\n\r\n// @deprecated - Quick Components will be removed in a future version\r\nclass QuickComponentFormBase extends React.Component<IProps, IState> {\r\n\tconstructor(props: IProps) {\r\n\t\tsuper(props);\r\n\t\tFSBL.Clients.Logger.system.deprecated(\r\n\t\t\t\"Quick Components have been deprecated and will not be available in a future release.\"\r\n\t\t);\r\n\t\tthis.state = {\r\n\t\t\tname: \"\",\r\n\t\t\turl: \"\",\r\n\t\t};\r\n\t\tthis.save = this.save.bind(this);\r\n\t\tthis.cancel = this.cancel.bind(this);\r\n\t\tthis.setName = this.setName.bind(this);\r\n\t\tthis.setURL = this.setURL.bind(this);\r\n\t\tthis.onkeydown = this.onkeydown.bind(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Adds eventListeners on keydown, sets the height of the component.\r\n\t */\r\n\tcomponentDidMount() {\r\n\t\tFSBL.Clients.WindowClient.fitToDOM();\r\n\t\tdocument.body.addEventListener(\"keydown\", this.onkeydown);\r\n\t\tFSBL.Clients.WindowClient.setAlwaysOnTop(true);\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tdocument.body.removeEventListener(\"keydown\", this.onkeydown);\r\n\t}\r\n\r\n\t/**\r\n\t * Matches the enter and escape keys with the corresponding function to invoke.\r\n\t */\r\n\tonkeydown(e: KeyboardEvent) {\r\n\t\tif (e.code === \"Enter\" && e.shiftKey === false) {\r\n\t\t\tthis.save();\r\n\t\t}\r\n\r\n\t\tif (e.code === \"Escape\") {\r\n\t\t\tthis.cancel();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Hides the window when the save button is clicked.\r\n\t */\r\n\thideWindow() {\r\n\t\tfinsembleWindow.hide();\r\n\t}\r\n\r\n\t/**\r\n\t * Persists the quick component to storage.\r\n\t */\r\n\tsave() {\r\n\t\tif (!this.state) return FSBL.Clients.DialogManager.respondToOpener({});\r\n\t\tlet { name, url } = this.state;\r\n\t\tif (!name || !url) return FSBL.Clients.DialogManager.respondToOpener({});\r\n\r\n\t\tif (!isValidURL(url)) {\r\n\t\t\treturn FSBL.Clients.DialogManager.respondToOpener({\r\n\t\t\t\terror: \"Invalid URL\",\r\n\t\t\t});\r\n\t\t}\r\n\t\tconst urlWithProtocol = addProtocolToValidURL(url);\r\n\r\n\t\tFSBL.Clients.LauncherClient.addUserDefinedComponent(\r\n\t\t\t{\r\n\t\t\t\tname: name,\r\n\t\t\t\turl: urlWithProtocol,\r\n\t\t\t},\r\n\t\t\t(err: Error | string | null | undefined) => {\r\n\t\t\t\tif (err) {\r\n\t\t\t\t\tconsole.error(err);\r\n\t\t\t\t}\r\n\t\t\t\t// FSBL.Clients.WindowClient.close(false);\r\n\t\t\t\tFSBL.Clients.DialogManager.respondToOpener({});\r\n\t\t\t}\r\n\t\t);\r\n\t\tArray.from(document.querySelectorAll(\"input\")).forEach((el) => (el.value = \"\"));\r\n\t\tthis.setState({\r\n\t\t\tname: \"\",\r\n\t\t\turl: \"\",\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Kills the window.\r\n\t */\r\n\tcancel() {\r\n\t\tArray.from(document.querySelectorAll(\"input\")).forEach((el) => (el.value = \"\"));\r\n\r\n\t\tFSBL.Clients.DialogManager.respondToOpener({});\r\n\t}\r\n\r\n\tsetName(e: React.ChangeEvent<HTMLInputElement>) {\r\n\t\tthis.setState({ name: e.target.value });\r\n\t}\r\n\r\n\tsetURL(e: React.ChangeEvent<HTMLInputElement>) {\r\n\t\tthis.setState({ url: e.target.value });\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<FinsembleDialog\r\n\t\t\t\tbehaviorOnResponse=\"hide\"\r\n\t\t\t\tonShowRequested={() => {\r\n\t\t\t\t\tFSBL.Clients.WindowClient.fitToDOM(null, () => {\r\n\t\t\t\t\t\tFSBL.Clients.DialogManager.showDialog();\r\n\t\t\t\t\t});\r\n\t\t\t\t}}\r\n\t\t\t\tisModal={true}\r\n\t\t\t>\r\n\t\t\t\t<div className=\"dialog-title\">Enter a name and URL for your app.</div>\r\n\t\t\t\t<FinsembleDialogTextInput\r\n\t\t\t\t\tonInputChange={this.setName}\r\n\t\t\t\t\tplaceholder=\"Name\"\r\n\t\t\t\t\tautoFocus\r\n\t\t\t\t\tvalue={this.state.name}\r\n\t\t\t\t\tfocusOnShow={true}\r\n\t\t\t\t/>\r\n\t\t\t\t<FinsembleDialogTextInput\r\n\t\t\t\t\tonInputChange={this.setURL}\r\n\t\t\t\t\tplaceholder=\"URL\"\r\n\t\t\t\t\tvalue={this.state.url}\r\n\t\t\t\t\tautoFocus={false}\r\n\t\t\t\t/>\r\n\t\t\t\t<div className=\"button-wrapper\">\r\n\t\t\t\t\t<FinsembleDialogButton className=\"fsbl-button-neutral\" onClick={this.cancel} show={true}>\r\n\t\t\t\t\t\tCancel\r\n\t\t\t\t\t</FinsembleDialogButton>\r\n\r\n\t\t\t\t\t<FinsembleDialogButton className=\"fsbl-button-affirmative\" onClick={this.save} show={true}>\r\n\t\t\t\t\t\tConfirm\r\n\t\t\t\t\t</FinsembleDialogButton>\r\n\t\t\t\t</div>\r\n\t\t\t</FinsembleDialog>\r\n\t\t);\r\n\t}\r\n}\r\n\r\n/**\r\n * A form that allows the user to add a quick component. It provides one field for the name of the quick component, and another field for its URL.\r\n */\r\nexport const QuickComponentForm = () => <QuickComponentFormBase />;\r\n"]}
@@ -1,6 +1,6 @@
1
1
  import * as React from "react";
2
2
  const encodeStringChars = (str) => `&#${str.charCodeAt(0)};`;
3
- const sanitizeHTML = (str) => str?.replace(/[^\w. ]/gi, encodeStringChars);
3
+ const sanitizeHTML = (str) => str === null || str === void 0 ? void 0 : str.replace(/[^\w. ]/gi, encodeStringChars);
4
4
  export const Highlight = (props) => {
5
5
  const { matchAgainst, text } = props;
6
6
  const escapedMatch = matchAgainst.replace(/([.*+?^${}()|[\]\\])/g, encodeStringChars);
@@ -13,7 +13,7 @@ export const Highlight = (props) => {
13
13
  regex = escapedMatch;
14
14
  console.error(`Failure in Highlight component in finsemble-ui. Expected a valid regex. Instead received "${matchAgainst}". Please check that your component is passing valid data.`);
15
15
  }
16
- const itemHtml = sanitizedHtml?.replace(regex, `<span class="highlight">$1</span>`);
16
+ const itemHtml = sanitizedHtml === null || sanitizedHtml === void 0 ? void 0 : sanitizedHtml.replace(regex, `<span class="highlight">$1</span>`);
17
17
  return (React.createElement("span", { dangerouslySetInnerHTML: {
18
18
  __html: itemHtml,
19
19
  } }));
@@ -1 +1 @@
1
- {"version":3,"file":"Highlight.js","sourceRoot":"","sources":["../../../src/components/search/Highlight.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC;AAQrE,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;AAQnF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAqB,EAAE,EAAE;IAClD,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAErC,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,uBAAuB,EAAE,iBAAiB,CAAC,CAAC;IAEtF,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,KAAsB,CAAC;IAG3B,IAAI;QACH,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,YAAY,IAAI,aAAa,GAAG,EAAE,IAAI,CAAC,CAAC;KAC/D;IAAC,OAAO,CAAC,EAAE;QACX,KAAK,GAAG,YAAY,CAAC;QACrB,OAAO,CAAC,KAAK,CACZ,6FAA6F,YAAY,4DAA4D,CACrK,CAAC;KACF;IAED,MAAM,QAAQ,GAAG,aAAa,EAAE,OAAO,CAAC,KAAK,EAAE,mCAAmC,CAAC,CAAC;IAEpF,OAAO,CACN,8BACC,uBAAuB,EAAE;YACxB,MAAM,EAAE,QAAQ;SAChB,GACM,CACR,CAAC;AACH,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\r\n\r\nexport type HighlightProps = {\r\n\tmatchAgainst: string;\r\n\ttext: string;\r\n};\r\n\r\n/**\r\n *Encode characters of string\r\n *\r\n * @param {string} str - String to be encoded\r\n * @returns {string} String with all characters encoded\r\n */\r\nconst encodeStringChars = (str: string) => `&#${str.charCodeAt(0)};`;\r\n\r\n/**\r\n *Sanitize string for HTML to prevent XSS attack\r\n *\r\n * @param {*} str\r\n * @return {*}\r\n */\r\nconst sanitizeHTML = (str: string) => str?.replace(/[^\\w. ]/gi, encodeStringChars);\r\n\r\n/**\r\n * Highlights matching areas of a query against a piece of text, and then renders them\r\n * on the screen with a highlighted class. The matching is case insensitive.\r\n * NOTE: This calls dangerouslySetInnerHTML and contains a potential exploit for XSS. Use with caution\r\n * when rendering externally-supplied content.\r\n */\r\nexport const Highlight = (props: HighlightProps) => {\r\n\tconst { matchAgainst, text } = props;\r\n\r\n\tconst escapedMatch = matchAgainst.replace(/([.*+?^${}()|[\\]\\\\])/g, encodeStringChars);\r\n\r\n\tconst sanitizedHtml = sanitizeHTML(text);\r\n\tlet regex: RegExp | string;\r\n\r\n\t// Catch unexpected cases where some combination of characters break the RegExp\r\n\ttry {\r\n\t\tregex = new RegExp(`(${escapedMatch || sanitizedHtml})`, \"gi\");\r\n\t} catch (e) {\r\n\t\tregex = escapedMatch;\r\n\t\tconsole.error(\r\n\t\t\t`Failure in Highlight component in finsemble-ui. Expected a valid regex. Instead received \"${matchAgainst}\". Please check that your component is passing valid data.`\r\n\t\t);\r\n\t}\r\n\r\n\tconst itemHtml = sanitizedHtml?.replace(regex, `<span class=\"highlight\">$1</span>`);\r\n\r\n\treturn (\r\n\t\t<span\r\n\t\t\tdangerouslySetInnerHTML={{\r\n\t\t\t\t__html: itemHtml,\r\n\t\t\t}}\r\n\t\t></span>\r\n\t);\r\n};\r\n"]}
1
+ {"version":3,"file":"Highlight.js","sourceRoot":"","sources":["../../../src/components/search/Highlight.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC;AAQrE,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;AAQnF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAqB,EAAE,EAAE;IAClD,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAErC,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,uBAAuB,EAAE,iBAAiB,CAAC,CAAC;IAEtF,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,KAAsB,CAAC;IAG3B,IAAI;QACH,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,YAAY,IAAI,aAAa,GAAG,EAAE,IAAI,CAAC,CAAC;KAC/D;IAAC,OAAO,CAAC,EAAE;QACX,KAAK,GAAG,YAAY,CAAC;QACrB,OAAO,CAAC,KAAK,CACZ,6FAA6F,YAAY,4DAA4D,CACrK,CAAC;KACF;IAED,MAAM,QAAQ,GAAG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,CAAC,KAAK,EAAE,mCAAmC,CAAC,CAAC;IAEpF,OAAO,CACN,8BACC,uBAAuB,EAAE;YACxB,MAAM,EAAE,QAAQ;SAChB,GACM,CACR,CAAC;AACH,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\r\n\r\nexport type HighlightProps = {\r\n\tmatchAgainst: string;\r\n\ttext: string;\r\n};\r\n\r\n/**\r\n *Encode characters of string\r\n *\r\n * @param {string} str - String to be encoded\r\n * @returns {string} String with all characters encoded\r\n */\r\nconst encodeStringChars = (str: string) => `&#${str.charCodeAt(0)};`;\r\n\r\n/**\r\n *Sanitize string for HTML to prevent XSS attack\r\n *\r\n * @param {*} str\r\n * @return {*}\r\n */\r\nconst sanitizeHTML = (str: string) => str?.replace(/[^\\w. ]/gi, encodeStringChars);\r\n\r\n/**\r\n * Highlights matching areas of a query against a piece of text, and then renders them\r\n * on the screen with a highlighted class. The matching is case insensitive.\r\n * NOTE: This calls dangerouslySetInnerHTML and contains a potential exploit for XSS. Use with caution\r\n * when rendering externally-supplied content.\r\n */\r\nexport const Highlight = (props: HighlightProps) => {\r\n\tconst { matchAgainst, text } = props;\r\n\r\n\tconst escapedMatch = matchAgainst.replace(/([.*+?^${}()|[\\]\\\\])/g, encodeStringChars);\r\n\r\n\tconst sanitizedHtml = sanitizeHTML(text);\r\n\tlet regex: RegExp | string;\r\n\r\n\t// Catch unexpected cases where some combination of characters break the RegExp\r\n\ttry {\r\n\t\tregex = new RegExp(`(${escapedMatch || sanitizedHtml})`, \"gi\");\r\n\t} catch (e) {\r\n\t\tregex = escapedMatch;\r\n\t\tconsole.error(\r\n\t\t\t`Failure in Highlight component in finsemble-ui. Expected a valid regex. Instead received \"${matchAgainst}\". Please check that your component is passing valid data.`\r\n\t\t);\r\n\t}\r\n\r\n\tconst itemHtml = sanitizedHtml?.replace(regex, `<span class=\"highlight\">$1</span>`);\r\n\r\n\treturn (\r\n\t\t<span\r\n\t\t\tdangerouslySetInnerHTML={{\r\n\t\t\t\t__html: itemHtml,\r\n\t\t\t}}\r\n\t\t></span>\r\n\t);\r\n};\r\n"]}