@finsemble/finsemble-ui 6.2.0 → 6.3.0-beta.20211008

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 (705) hide show
  1. package/package.json +17 -16
  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/notificationsCenter.css +4 -2
  7. package/react/assets/css/userPreferences.css +1 -0
  8. package/react/assets/css/windowTitleBar.css +33 -1
  9. package/react/components/FinsembleProvider.js +1 -1
  10. package/react/components/FinsembleProvider.js.map +1 -1
  11. package/react/components/appCatalog/AppCatalogComponent.js.map +1 -1
  12. package/react/components/appCatalog/components/AppList.d.ts +7 -1
  13. package/react/components/appCatalog/components/AppList.js +1 -1
  14. package/react/components/appCatalog/components/AppList.js.map +1 -1
  15. package/react/components/appCatalog/components/AppResults.d.ts +10 -8
  16. package/react/components/appCatalog/components/AppResults.js +1 -1
  17. package/react/components/appCatalog/components/AppResults.js.map +1 -1
  18. package/react/components/appCatalog/components/Carousel.js +1 -1
  19. package/react/components/appCatalog/components/Carousel.js.map +1 -1
  20. package/react/components/appCatalog/components/EmptyResults.d.ts +2 -1
  21. package/react/components/appCatalog/components/EmptyResults.js +2 -4
  22. package/react/components/appCatalog/components/EmptyResults.js.map +1 -1
  23. package/react/components/appCatalog/components/Hero.d.ts +24 -4
  24. package/react/components/appCatalog/components/Hero.js +2 -1
  25. package/react/components/appCatalog/components/Hero.js.map +1 -1
  26. package/react/components/appCatalog/components/Home.d.ts +18 -4
  27. package/react/components/appCatalog/components/Home.js.map +1 -1
  28. package/react/components/appCatalog/components/SearchBar.d.ts +20 -7
  29. package/react/components/appCatalog/components/SearchBar.js +4 -7
  30. package/react/components/appCatalog/components/SearchBar.js.map +1 -1
  31. package/react/components/appCatalog/components/Showcase/AppDescription.d.ts +5 -3
  32. package/react/components/appCatalog/components/Showcase/AppDescription.js +4 -6
  33. package/react/components/appCatalog/components/Showcase/AppDescription.js.map +1 -1
  34. package/react/components/appCatalog/components/Showcase/AppDevNotes.d.ts +5 -4
  35. package/react/components/appCatalog/components/Showcase/AppDevNotes.js.map +1 -1
  36. package/react/components/appCatalog/components/Showcase/AppShowcase.js +1 -1
  37. package/react/components/appCatalog/components/Showcase/AppShowcase.js.map +1 -1
  38. package/react/components/appCatalog/components/Showcase/Header.d.ts +13 -5
  39. package/react/components/appCatalog/components/Showcase/Header.js +2 -2
  40. package/react/components/appCatalog/components/Showcase/Header.js.map +1 -1
  41. package/react/components/appCatalog/components/Showcase/Modal.d.ts +7 -4
  42. package/react/components/appCatalog/components/Showcase/Modal.js +6 -6
  43. package/react/components/appCatalog/components/Showcase/Modal.js.map +1 -1
  44. package/react/components/appCatalog/components/Showcase/defaults.d.ts +3 -3
  45. package/react/components/appCatalog/components/Showcase/defaults.js.map +1 -1
  46. package/react/components/appCatalog/components/Tag.d.ts +6 -4
  47. package/react/components/appCatalog/components/Tag.js.map +1 -1
  48. package/react/components/appCatalog/components/Toast.d.ts +5 -3
  49. package/react/components/appCatalog/components/Toast.js +5 -4
  50. package/react/components/appCatalog/components/Toast.js.map +1 -1
  51. package/react/components/appCatalog/modules/AppDirectory.d.ts +5 -1
  52. package/react/components/appCatalog/modules/AppDirectory.js.map +1 -1
  53. package/react/components/appCatalog/modules/FDC3.d.ts +12 -11
  54. package/react/components/appCatalog/modules/FDC3.js +20 -18
  55. package/react/components/appCatalog/modules/FDC3.js.map +1 -1
  56. package/react/components/appCatalog/stores/appStore.d.ts +9 -2
  57. package/react/components/appCatalog/stores/appStore.js +10 -4
  58. package/react/components/appCatalog/stores/appStore.js.map +1 -1
  59. package/react/components/appCatalog/stores/storeActions.js.map +1 -1
  60. package/react/components/common/Button.d.ts +4 -4
  61. package/react/components/common/Button.js +1 -1
  62. package/react/components/common/Button.js.map +1 -1
  63. package/react/components/common/ButtonIcon.js +1 -1
  64. package/react/components/common/ButtonIcon.js.map +1 -1
  65. package/react/components/common/ColorPicker.js +1 -1
  66. package/react/components/common/ColorPicker.js.map +1 -1
  67. package/react/components/common/DropZone.d.ts +0 -5
  68. package/react/components/common/DropZone.js.map +1 -1
  69. package/react/components/common/DropdownButton.js +1 -1
  70. package/react/components/common/DropdownButton.js.map +1 -1
  71. package/react/components/common/FileInput.d.ts +0 -5
  72. package/react/components/common/FileInput.js +7 -9
  73. package/react/components/common/FileInput.js.map +1 -1
  74. package/react/components/common/FinsembleIcon.d.ts +2 -2
  75. package/react/components/common/FinsembleIcon.js.map +1 -1
  76. package/react/components/common/FinsembleSelect.js +2 -5
  77. package/react/components/common/FinsembleSelect.js.map +1 -1
  78. package/react/components/common/FinsembleToggle.js +2 -2
  79. package/react/components/common/FinsembleToggle.js.map +1 -1
  80. package/react/components/common/FontSizeSelector.js +2 -2
  81. package/react/components/common/FontSizeSelector.js.map +1 -1
  82. package/react/components/common/ImagePreview.js +2 -2
  83. package/react/components/common/ImagePreview.js.map +1 -1
  84. package/react/components/common/Tab.js +2 -1
  85. package/react/components/common/Tab.js.map +1 -1
  86. package/react/components/common/file_helpers.js +3 -2
  87. package/react/components/common/file_helpers.js.map +1 -1
  88. package/react/components/common/helpers.js +8 -10
  89. package/react/components/common/helpers.js.map +1 -1
  90. package/react/components/common/stories/Button.stories.js +1 -1
  91. package/react/components/common/stories/Button.stories.js.map +1 -1
  92. package/react/components/common/stories/ButtonIcon.stories.js +1 -1
  93. package/react/components/common/stories/ButtonIcon.stories.js.map +1 -1
  94. package/react/components/common/stories/ButtonRow.stories.js +2 -2
  95. package/react/components/common/stories/ButtonRow.stories.js.map +1 -1
  96. package/react/components/common/stories/ButtonTile.stories.js +1 -1
  97. package/react/components/common/stories/ButtonTile.stories.js.map +1 -1
  98. package/react/components/common/stories/Checkbox.stories.js +1 -1
  99. package/react/components/common/stories/Checkbox.stories.js.map +1 -1
  100. package/react/components/common/stories/ColorPicker.stories.js +1 -1
  101. package/react/components/common/stories/ColorPicker.stories.js.map +1 -1
  102. package/react/components/common/stories/DropZone.stories.js +1 -1
  103. package/react/components/common/stories/DropZone.stories.js.map +1 -1
  104. package/react/components/common/stories/FinsembleIcon.stories.js.map +1 -1
  105. package/react/components/common/stories/FinsembleSelect.stories.js +1 -1
  106. package/react/components/common/stories/FinsembleSelect.stories.js.map +1 -1
  107. package/react/components/common/stories/FinsembleToggle.stories.js +3 -1
  108. package/react/components/common/stories/FinsembleToggle.stories.js.map +1 -1
  109. package/react/components/common/stories/FontSizeSelector.stories.js +1 -1
  110. package/react/components/common/stories/FontSizeSelector.stories.js.map +1 -1
  111. package/react/components/common/stories/Header.stories.js +1 -1
  112. package/react/components/common/stories/Header.stories.js.map +1 -1
  113. package/react/components/common/tests/Checkbox.spec.js +4 -4
  114. package/react/components/common/tests/Checkbox.spec.js.map +1 -1
  115. package/react/components/common/tests/ColorPicker.spec.js +6 -6
  116. package/react/components/common/tests/ColorPicker.spec.js.map +1 -1
  117. package/react/components/common/tests/DropZone.spec.js +4 -4
  118. package/react/components/common/tests/DropZone.spec.js.map +1 -1
  119. package/react/components/common/tests/FileInput.spec.js +5 -5
  120. package/react/components/common/tests/FileInput.spec.js.map +1 -1
  121. package/react/components/common/tests/FinsembleSelect.spec.js +12 -11
  122. package/react/components/common/tests/FinsembleSelect.spec.js.map +1 -1
  123. package/react/components/common/tests/FinsembleToggle.spec.js +8 -2
  124. package/react/components/common/tests/FinsembleToggle.spec.js.map +1 -1
  125. package/react/components/common/tests/Header.spec.js +3 -3
  126. package/react/components/common/tests/Header.spec.js.map +1 -1
  127. package/react/components/common/tests/ImagePreview.spec.js +8 -8
  128. package/react/components/common/tests/ImagePreview.spec.js.map +1 -1
  129. package/react/components/common/tests/Tab.spec.js +3 -3
  130. package/react/components/common/tests/Tab.spec.js.map +1 -1
  131. package/react/components/common/tests/Tooltip.spec.js +5 -5
  132. package/react/components/common/tests/Tooltip.spec.js.map +1 -1
  133. package/react/components/favorites/FavoriteMaker.d.ts +0 -5
  134. package/react/components/favorites/FavoriteMaker.js +1 -1
  135. package/react/components/favorites/FavoriteMaker.js.map +1 -1
  136. package/react/components/favorites/FavoritesShell.js +1 -1
  137. package/react/components/favorites/FavoritesShell.js.map +1 -1
  138. package/react/components/favorites/FavoritesShell.spec.js +7 -7
  139. package/react/components/favorites/FavoritesShell.spec.js.map +1 -1
  140. package/react/components/favorites/FavoritesShell.stories.js +5 -4
  141. package/react/components/favorites/FavoritesShell.stories.js.map +1 -1
  142. package/react/components/fdc3Resolver/ResolverContainer.js +2 -1
  143. package/react/components/fdc3Resolver/ResolverContainer.js.map +1 -1
  144. package/react/components/fdc3Resolver/ResolverDialog.js +13 -13
  145. package/react/components/fdc3Resolver/ResolverDialog.js.map +1 -1
  146. package/react/components/fdc3Resolver/ResolverDialog.spec.js +5 -5
  147. package/react/components/fdc3Resolver/ResolverDialog.spec.js.map +1 -1
  148. package/react/components/fdc3Resolver/ResolverDialog.stories.js +1 -1
  149. package/react/components/fdc3Resolver/ResolverDialog.stories.js.map +1 -1
  150. package/react/components/icon/Icon.js +5 -4
  151. package/react/components/icon/Icon.js.map +1 -1
  152. package/react/components/legacyControls/FinsembleDialogButton.d.ts +1 -1
  153. package/react/components/legacyControls/FinsembleDialogButton.js +4 -3
  154. package/react/components/legacyControls/FinsembleDialogButton.js.map +1 -1
  155. package/react/components/legacyControls/FinsembleDialogQuestion.js +2 -1
  156. package/react/components/legacyControls/FinsembleDialogQuestion.js.map +1 -1
  157. package/react/components/legacyControls/FinsembleDialogTextInput.d.ts +1 -1
  158. package/react/components/legacyControls/FinsembleDialogTextInput.js +8 -5
  159. package/react/components/legacyControls/FinsembleDialogTextInput.js.map +1 -1
  160. package/react/components/legacyControls/FinsembleDnDContext.js +18 -17
  161. package/react/components/legacyControls/FinsembleDnDContext.js.map +1 -1
  162. package/react/components/legacyControls/FinsembleDraggable.js +3 -3
  163. package/react/components/legacyControls/FinsembleDraggable.js.map +1 -1
  164. package/react/components/legacyControls/FinsembleHoverDetector.js +2 -1
  165. package/react/components/legacyControls/FinsembleHoverDetector.js.map +1 -1
  166. package/react/components/legacyControls/FinsembleMenuSection.js +6 -3
  167. package/react/components/legacyControls/FinsembleMenuSection.js.map +1 -1
  168. package/react/components/legacyControls/stories/FinsembleDialog.stories.js +1 -1
  169. package/react/components/legacyControls/stories/FinsembleDialog.stories.js.map +1 -1
  170. package/react/components/legacyControls/stories/FinsembleDialogButton.stories.js +1 -1
  171. package/react/components/legacyControls/stories/FinsembleDialogButton.stories.js.map +1 -1
  172. package/react/components/legacyControls/stories/FinsembleDialogQuestion.stories.js +1 -1
  173. package/react/components/legacyControls/stories/FinsembleDialogQuestion.stories.js.map +1 -1
  174. package/react/components/legacyControls/stories/FinsembleDialogTextInput.stories.js +1 -1
  175. package/react/components/legacyControls/stories/FinsembleDialogTextInput.stories.js.map +1 -1
  176. package/react/components/legacyControls/tests/FinsembleDialog.spec.js +1 -1
  177. package/react/components/legacyControls/tests/FinsembleDialog.spec.js.map +1 -1
  178. package/react/components/legacyControls/tests/FinsembleDialogButton.spec.js +8 -7
  179. package/react/components/legacyControls/tests/FinsembleDialogButton.spec.js.map +1 -1
  180. package/react/components/legacyControls/tests/FinsembleDialogQuestion.spec.js +7 -5
  181. package/react/components/legacyControls/tests/FinsembleDialogQuestion.spec.js.map +1 -1
  182. package/react/components/legacyControls/tests/FinsembleDialogTextInput.spec.js +13 -12
  183. package/react/components/legacyControls/tests/FinsembleDialogTextInput.spec.js.map +1 -1
  184. package/react/components/linker/LinkerMenu.js +4 -3
  185. package/react/components/linker/LinkerMenu.js.map +1 -1
  186. package/react/components/linker/LinkerMenuDeprecated.js +1 -1
  187. package/react/components/linker/LinkerMenuDeprecated.js.map +1 -1
  188. package/react/components/linker/remoteRedux.d.ts +10 -42
  189. package/react/components/linker/remoteRedux.js.map +1 -1
  190. package/react/components/menu/Menu.d.ts +1 -1
  191. package/react/components/menu/Menu.js +1 -1
  192. package/react/components/menu/Menu.js.map +1 -1
  193. package/react/components/menu/MenuAutoResizer.js.map +1 -1
  194. package/react/components/menu/MenuPortal.js +7 -6
  195. package/react/components/menu/MenuPortal.js.map +1 -1
  196. package/react/components/menu/keyboardNavigation.js +14 -15
  197. package/react/components/menu/keyboardNavigation.js.map +1 -1
  198. package/react/components/notifications/components/NoNotifications.js +2 -4
  199. package/react/components/notifications/components/NoNotifications.js.map +1 -1
  200. package/react/components/notifications/components/drawer/Drawer.js +2 -4
  201. package/react/components/notifications/components/drawer/Drawer.js.map +1 -1
  202. package/react/components/notifications/components/drawer/DrawerControls.js +2 -4
  203. package/react/components/notifications/components/drawer/DrawerControls.js.map +1 -1
  204. package/react/components/notifications/components/drawer/DrawerHeader.js +1 -4
  205. package/react/components/notifications/components/drawer/DrawerHeader.js.map +1 -1
  206. package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js +28 -43
  207. package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js.map +1 -1
  208. package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js +10 -9
  209. package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js.map +1 -1
  210. package/react/components/notifications/components/shared/CheckButton.d.ts +2 -2
  211. package/react/components/notifications/components/shared/CheckButton.js.map +1 -1
  212. package/react/components/notifications/components/shared/IconButton.js +3 -5
  213. package/react/components/notifications/components/shared/IconButton.js.map +1 -1
  214. package/react/components/notifications/components/shared/NotificationCardShell.d.ts +3 -2
  215. package/react/components/notifications/components/shared/NotificationCardShell.js.map +1 -1
  216. package/react/components/notifications/components/shared/OverflowMenu.d.ts +2 -1
  217. package/react/components/notifications/components/shared/OverflowMenu.js +6 -5
  218. package/react/components/notifications/components/shared/OverflowMenu.js.map +1 -1
  219. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyActions.d.ts +3 -2
  220. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyActions.js +1 -1
  221. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyActions.js.map +1 -1
  222. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.d.ts +3 -2
  223. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.js.map +1 -1
  224. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.d.ts +3 -2
  225. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.js +2 -4
  226. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.js.map +1 -1
  227. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderShell.d.ts +3 -2
  228. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderShell.js.map +1 -1
  229. package/react/components/notifications/components/views/CardView.js +15 -24
  230. package/react/components/notifications/components/views/CardView.js.map +1 -1
  231. package/react/components/notifications/components/views/ListView.d.ts +2 -2
  232. package/react/components/notifications/components/views/ListView.js +9 -9
  233. package/react/components/notifications/components/views/ListView.js.map +1 -1
  234. package/react/components/notifications/components/views/NotificationDetailsView.d.ts +2 -2
  235. package/react/components/notifications/components/views/NotificationDetailsView.js +2 -6
  236. package/react/components/notifications/components/views/NotificationDetailsView.js.map +1 -1
  237. package/react/components/notifications/types.d.ts +7 -6
  238. package/react/components/notifications/types.js.map +1 -1
  239. package/react/components/notifications/utils.d.ts +6 -4
  240. package/react/components/notifications/utils.js +26 -32
  241. package/react/components/notifications/utils.js.map +1 -1
  242. package/react/components/processMonitor/ProcessMonitor.d.ts +3 -1
  243. package/react/components/processMonitor/ProcessMonitor.js +17 -10
  244. package/react/components/processMonitor/ProcessMonitor.js.map +1 -1
  245. package/react/components/processMonitor/ProcessMonitorTypes.d.ts +33 -0
  246. package/react/components/processMonitor/ProcessMonitorTypes.js +6 -0
  247. package/react/components/processMonitor/ProcessMonitorTypes.js.map +1 -0
  248. package/react/components/processMonitor/components/ChildWindow.d.ts +10 -3
  249. package/react/components/processMonitor/components/ChildWindow.js +19 -10
  250. package/react/components/processMonitor/components/ChildWindow.js.map +1 -1
  251. package/react/components/processMonitor/components/ListHeader.d.ts +17 -4
  252. package/react/components/processMonitor/components/ListHeader.js.map +1 -1
  253. package/react/components/processMonitor/components/ProcessStatistics.d.ts +11 -3
  254. package/react/components/processMonitor/components/ProcessStatistics.js +25 -18
  255. package/react/components/processMonitor/components/ProcessStatistics.js.map +1 -1
  256. package/react/components/processMonitor/constants.d.ts +11 -16
  257. package/react/components/processMonitor/constants.js +3 -1
  258. package/react/components/processMonitor/constants.js.map +1 -1
  259. package/react/components/processMonitor/helpers.d.ts +25 -5
  260. package/react/components/processMonitor/helpers.js +28 -20
  261. package/react/components/processMonitor/helpers.js.map +1 -1
  262. package/react/components/processMonitor/helpers.spec.d.ts +1 -0
  263. package/react/components/processMonitor/helpers.spec.js +44 -0
  264. package/react/components/processMonitor/helpers.spec.js.map +1 -0
  265. package/react/components/processMonitor/stores/ProcessMonitorStore.d.ts +30 -15
  266. package/react/components/processMonitor/stores/ProcessMonitorStore.js +101 -86
  267. package/react/components/processMonitor/stores/ProcessMonitorStore.js.map +1 -1
  268. package/react/components/quickComponentForm/QuickComponentForm.d.ts +4 -1
  269. package/react/components/quickComponentForm/QuickComponentForm.js +13 -14
  270. package/react/components/quickComponentForm/QuickComponentForm.js.map +1 -1
  271. package/react/components/search/Highlight.js +2 -2
  272. package/react/components/search/Highlight.js.map +1 -1
  273. package/react/components/search/Highlight.spec.js +3 -3
  274. package/react/components/search/Highlight.spec.js.map +1 -1
  275. package/react/components/search/Highlight.stories.js +1 -1
  276. package/react/components/search/Highlight.stories.js.map +1 -1
  277. package/react/components/search/Search.js +17 -8
  278. package/react/components/search/Search.js.map +1 -1
  279. package/react/components/search/SearchBestMatch.js +2 -1
  280. package/react/components/search/SearchBestMatch.js.map +1 -1
  281. package/react/components/search/SearchProviderResults.js +4 -5
  282. package/react/components/search/SearchProviderResults.js.map +1 -1
  283. package/react/components/search/SearchResult.js +3 -2
  284. package/react/components/search/SearchResult.js.map +1 -1
  285. package/react/components/search/SearchResults.js +1 -1
  286. package/react/components/search/SearchResults.js.map +1 -1
  287. package/react/components/shared/Button.js +2 -4
  288. package/react/components/shared/Button.js.map +1 -1
  289. package/react/components/shared/DefaultDropdownButton.js +1 -1
  290. package/react/components/shared/DefaultDropdownButton.js.map +1 -1
  291. package/react/components/shared/NavigationButton.js +9 -11
  292. package/react/components/shared/NavigationButton.js.map +1 -1
  293. package/react/components/shared/Tag.d.ts +11 -1
  294. package/react/components/shared/Tag.js.map +1 -1
  295. package/react/components/shared/TagsMenu.d.ts +26 -6
  296. package/react/components/shared/TagsMenu.js.map +1 -1
  297. package/react/components/shared/linkerUtil.d.ts +3 -1
  298. package/react/components/shared/linkerUtil.js.map +1 -1
  299. package/react/components/shared/tests/DefaultDropdownButton.spec.js.map +1 -1
  300. package/react/components/singleInputDialog/SingleInputDialog.spec.js +6 -6
  301. package/react/components/singleInputDialog/SingleInputDialog.spec.js.map +1 -1
  302. package/react/components/singleInputDialog/SingleInputDialog.stories.js +1 -1
  303. package/react/components/singleInputDialog/SingleInputDialog.stories.js.map +1 -1
  304. package/react/components/smartDesktopDesigner/AppEditAccess.d.ts +1 -1
  305. package/react/components/smartDesktopDesigner/AppEditAccess.js +17 -34
  306. package/react/components/smartDesktopDesigner/AppEditAccess.js.map +1 -1
  307. package/react/components/smartDesktopDesigner/AppEditPage.d.ts +4 -4
  308. package/react/components/smartDesktopDesigner/AppEditPage.js +2 -2
  309. package/react/components/smartDesktopDesigner/AppEditPage.js.map +1 -1
  310. package/react/components/smartDesktopDesigner/Appearance.js +3 -5
  311. package/react/components/smartDesktopDesigner/Appearance.js.map +1 -1
  312. package/react/components/smartDesktopDesigner/Application.d.ts +4 -4
  313. package/react/components/smartDesktopDesigner/Application.js +84 -92
  314. package/react/components/smartDesktopDesigner/Application.js.map +1 -1
  315. package/react/components/smartDesktopDesigner/ApplicationEdit.d.ts +1 -1
  316. package/react/components/smartDesktopDesigner/ApplicationEdit.js +68 -51
  317. package/react/components/smartDesktopDesigner/ApplicationEdit.js.map +1 -1
  318. package/react/components/smartDesktopDesigner/ApplicationList.d.ts +4 -2
  319. package/react/components/smartDesktopDesigner/ApplicationList.js +23 -20
  320. package/react/components/smartDesktopDesigner/ApplicationList.js.map +1 -1
  321. package/react/components/smartDesktopDesigner/ApplicationSetup.d.ts +4 -3
  322. package/react/components/smartDesktopDesigner/ApplicationSetup.js +8 -20
  323. package/react/components/smartDesktopDesigner/ApplicationSetup.js.map +1 -1
  324. package/react/components/smartDesktopDesigner/Applications.d.ts +0 -1
  325. package/react/components/smartDesktopDesigner/Applications.js +73 -62
  326. package/react/components/smartDesktopDesigner/Applications.js.map +1 -1
  327. package/react/components/smartDesktopDesigner/Authentication.js +2 -8
  328. package/react/components/smartDesktopDesigner/Authentication.js.map +1 -1
  329. package/react/components/smartDesktopDesigner/AuthenticationProviderConfig.js +1 -8
  330. package/react/components/smartDesktopDesigner/AuthenticationProviderConfig.js.map +1 -1
  331. package/react/components/smartDesktopDesigner/Content.js.map +1 -1
  332. package/react/components/smartDesktopDesigner/CurrentView.js +1 -1
  333. package/react/components/smartDesktopDesigner/CurrentView.js.map +1 -1
  334. package/react/components/smartDesktopDesigner/Export.js +3 -3
  335. package/react/components/smartDesktopDesigner/Export.js.map +1 -1
  336. package/react/components/smartDesktopDesigner/ExportCloud.js +1 -1
  337. package/react/components/smartDesktopDesigner/ExportCloud.js.map +1 -1
  338. package/react/components/smartDesktopDesigner/ExportDeployInfo.js +1 -1
  339. package/react/components/smartDesktopDesigner/ExportDeployInfo.js.map +1 -1
  340. package/react/components/smartDesktopDesigner/ExportZip.js +0 -1
  341. package/react/components/smartDesktopDesigner/ExportZip.js.map +1 -1
  342. package/react/components/smartDesktopDesigner/GettingStarted.d.ts +1 -1
  343. package/react/components/smartDesktopDesigner/GettingStarted.js +1 -1
  344. package/react/components/smartDesktopDesigner/GettingStarted.js.map +1 -1
  345. package/react/components/smartDesktopDesigner/ProjectHeader.d.ts +1 -1
  346. package/react/components/smartDesktopDesigner/ProjectHeader.js +1 -1
  347. package/react/components/smartDesktopDesigner/ProjectHeader.js.map +1 -1
  348. package/react/components/smartDesktopDesigner/Publish.js +1 -1
  349. package/react/components/smartDesktopDesigner/Publish.js.map +1 -1
  350. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.d.ts +0 -11
  351. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js +11 -24
  352. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js.map +1 -1
  353. package/react/components/smartDesktopDesigner/Themes.js +2 -8
  354. package/react/components/smartDesktopDesigner/Themes.js.map +1 -1
  355. package/react/components/smartDesktopDesigner/View.js.map +1 -1
  356. package/react/components/smartDesktopDesigner/common/getCSSVars.d.ts +1 -1
  357. package/react/components/smartDesktopDesigner/common/getCSSVars.js +2 -1
  358. package/react/components/smartDesktopDesigner/common/getCSSVars.js.map +1 -1
  359. package/react/components/smartDesktopDesigner/common/views.d.ts +1 -1
  360. package/react/components/smartDesktopDesigner/common/views.js +4 -14
  361. package/react/components/smartDesktopDesigner/common/views.js.map +1 -1
  362. package/react/components/smartDesktopDesigner/fixtures/applicationEditProps.js +4 -4
  363. package/react/components/smartDesktopDesigner/fixtures/applicationEditProps.js.map +1 -1
  364. package/react/components/smartDesktopDesigner/fixtures/applicationSetupProps.js +2 -2
  365. package/react/components/smartDesktopDesigner/fixtures/applicationSetupProps.js.map +1 -1
  366. package/react/components/smartDesktopDesigner/fixtures/applicationsProps.js +2 -3
  367. package/react/components/smartDesktopDesigner/fixtures/applicationsProps.js.map +1 -1
  368. package/react/components/smartDesktopDesigner/fixtures/apps.d.ts +4 -70
  369. package/react/components/smartDesktopDesigner/fixtures/apps.js +9 -20
  370. package/react/components/smartDesktopDesigner/fixtures/apps.js.map +1 -1
  371. package/react/components/smartDesktopDesigner/fixtures/exportProps.js.map +1 -1
  372. package/react/components/smartDesktopDesigner/fixtures/publishProgress.d.ts +2 -1
  373. package/react/components/smartDesktopDesigner/fixtures/publishProgress.js.map +1 -1
  374. package/react/components/smartDesktopDesigner/fixtures/views.js +4 -4
  375. package/react/components/smartDesktopDesigner/fixtures/views.js.map +1 -1
  376. package/react/components/smartDesktopDesigner/sdd_helpers.js +2 -1
  377. package/react/components/smartDesktopDesigner/sdd_helpers.js.map +1 -1
  378. package/react/components/smartDesktopDesigner/stories/AppEditPage.stories.d.ts +3 -4
  379. package/react/components/smartDesktopDesigner/stories/AppEditPage.stories.js +8 -8
  380. package/react/components/smartDesktopDesigner/stories/AppEditPage.stories.js.map +1 -1
  381. package/react/components/smartDesktopDesigner/stories/Appearance.stories.js +7 -7
  382. package/react/components/smartDesktopDesigner/stories/Appearance.stories.js.map +1 -1
  383. package/react/components/smartDesktopDesigner/stories/ApplicationEdit.stories.js +3 -7
  384. package/react/components/smartDesktopDesigner/stories/ApplicationEdit.stories.js.map +1 -1
  385. package/react/components/smartDesktopDesigner/stories/ApplicationList.stories.js +9 -2
  386. package/react/components/smartDesktopDesigner/stories/ApplicationList.stories.js.map +1 -1
  387. package/react/components/smartDesktopDesigner/stories/ApplicationSetup.stories.js +3 -10
  388. package/react/components/smartDesktopDesigner/stories/ApplicationSetup.stories.js.map +1 -1
  389. package/react/components/smartDesktopDesigner/stories/Applications.stories.js +1 -1
  390. package/react/components/smartDesktopDesigner/stories/Applications.stories.js.map +1 -1
  391. package/react/components/smartDesktopDesigner/stories/Authentication.stories.js +7 -14
  392. package/react/components/smartDesktopDesigner/stories/Authentication.stories.js.map +1 -1
  393. package/react/components/smartDesktopDesigner/stories/Export.stories.js +2 -2
  394. package/react/components/smartDesktopDesigner/stories/Export.stories.js.map +1 -1
  395. package/react/components/smartDesktopDesigner/stories/ExportCloud.stories.js +2 -2
  396. package/react/components/smartDesktopDesigner/stories/ExportCloud.stories.js.map +1 -1
  397. package/react/components/smartDesktopDesigner/stories/ExportZip.stories.js +5 -11
  398. package/react/components/smartDesktopDesigner/stories/ExportZip.stories.js.map +1 -1
  399. package/react/components/smartDesktopDesigner/stories/GettingStarted.stories.d.ts +1 -1
  400. package/react/components/smartDesktopDesigner/stories/GettingStarted.stories.js +1 -1
  401. package/react/components/smartDesktopDesigner/stories/GettingStarted.stories.js.map +1 -1
  402. package/react/components/smartDesktopDesigner/stories/Navigation.stories.js +1 -1
  403. package/react/components/smartDesktopDesigner/stories/Navigation.stories.js.map +1 -1
  404. package/react/components/smartDesktopDesigner/stories/ProjectErrors.stories.js +2 -4
  405. package/react/components/smartDesktopDesigner/stories/ProjectErrors.stories.js.map +1 -1
  406. package/react/components/smartDesktopDesigner/stories/ProjectHeader.stories.d.ts +1 -1
  407. package/react/components/smartDesktopDesigner/stories/ProjectHeader.stories.js +1 -1
  408. package/react/components/smartDesktopDesigner/stories/ProjectHeader.stories.js.map +1 -1
  409. package/react/components/smartDesktopDesigner/stories/Publish.stories.js +13 -28
  410. package/react/components/smartDesktopDesigner/stories/Publish.stories.js.map +1 -1
  411. package/react/components/smartDesktopDesigner/stories/PublishProgress.stories.js +1 -1
  412. package/react/components/smartDesktopDesigner/stories/PublishProgress.stories.js.map +1 -1
  413. package/react/components/smartDesktopDesigner/stories/SmartDesktopDesigner.stories.js +3 -3
  414. package/react/components/smartDesktopDesigner/stories/SmartDesktopDesigner.stories.js.map +1 -1
  415. package/react/components/smartDesktopDesigner/stories/Themes.stories.js +1 -1
  416. package/react/components/smartDesktopDesigner/stories/Themes.stories.js.map +1 -1
  417. package/react/components/smartDesktopDesigner/tests/AppEditPage.spec.js +32 -32
  418. package/react/components/smartDesktopDesigner/tests/AppEditPage.spec.js.map +1 -1
  419. package/react/components/smartDesktopDesigner/tests/ApplicationEdit.spec.js +6 -5
  420. package/react/components/smartDesktopDesigner/tests/ApplicationEdit.spec.js.map +1 -1
  421. package/react/components/smartDesktopDesigner/tests/ApplicationList.spec.js +11 -11
  422. package/react/components/smartDesktopDesigner/tests/ApplicationList.spec.js.map +1 -1
  423. package/react/components/smartDesktopDesigner/tests/ApplicationSetup.spec.js +9 -7
  424. package/react/components/smartDesktopDesigner/tests/ApplicationSetup.spec.js.map +1 -1
  425. package/react/components/smartDesktopDesigner/tests/Applications.spec.js +35 -35
  426. package/react/components/smartDesktopDesigner/tests/Applications.spec.js.map +1 -1
  427. package/react/components/smartDesktopDesigner/tests/Authentication.spec.js +6 -18
  428. package/react/components/smartDesktopDesigner/tests/Authentication.spec.js.map +1 -1
  429. package/react/components/smartDesktopDesigner/tests/Export.spec.js +14 -22
  430. package/react/components/smartDesktopDesigner/tests/Export.spec.js.map +1 -1
  431. package/react/components/smartDesktopDesigner/tests/ExportZip.spec.js +2 -6
  432. package/react/components/smartDesktopDesigner/tests/ExportZip.spec.js.map +1 -1
  433. package/react/components/smartDesktopDesigner/tests/Navigation.spec.js +2 -2
  434. package/react/components/smartDesktopDesigner/tests/Navigation.spec.js.map +1 -1
  435. package/react/components/smartDesktopDesigner/tests/ProjectErrors.spec.js +2 -2
  436. package/react/components/smartDesktopDesigner/tests/ProjectErrors.spec.js.map +1 -1
  437. package/react/components/smartDesktopDesigner/tests/ProjectHeader.spec.js +2 -2
  438. package/react/components/smartDesktopDesigner/tests/ProjectHeader.spec.js.map +1 -1
  439. package/react/components/smartDesktopDesigner/tests/Publish.spec.js +3 -10
  440. package/react/components/smartDesktopDesigner/tests/Publish.spec.js.map +1 -1
  441. package/react/components/smartDesktopDesigner/tests/PublishProgess.spec.js +2 -6
  442. package/react/components/smartDesktopDesigner/tests/PublishProgess.spec.js.map +1 -1
  443. package/react/components/smartDesktopDesigner/tests/SmartDesktopDesigner.spec.js +3 -3
  444. package/react/components/smartDesktopDesigner/tests/SmartDesktopDesigner.spec.js.map +1 -1
  445. package/react/components/smartDesktopDesigner/tests/Themes.spec.js +7 -7
  446. package/react/components/smartDesktopDesigner/tests/Themes.spec.js.map +1 -1
  447. package/react/components/smartDesktopDesigner/tests/a11y_helper.js +2 -1
  448. package/react/components/smartDesktopDesigner/tests/a11y_helper.js.map +1 -1
  449. package/react/components/system/System.spec.js +1 -1
  450. package/react/components/system/System.spec.js.map +1 -1
  451. package/react/components/system/SystemTrayComponentShell.js +1 -1
  452. package/react/components/system/SystemTrayComponentShell.js.map +1 -1
  453. package/react/components/toolbar/MinimizeAll.spec.js +5 -5
  454. package/react/components/toolbar/MinimizeAll.spec.js.map +1 -1
  455. package/react/components/toolbar/NotificationControl.js +3 -2
  456. package/react/components/toolbar/NotificationControl.js.map +1 -1
  457. package/react/components/toolbar/RevealAll.spec.js +5 -5
  458. package/react/components/toolbar/RevealAll.spec.js.map +1 -1
  459. package/react/components/toolbar/ToolbarIcon.js +14 -2
  460. package/react/components/toolbar/ToolbarIcon.js.map +1 -1
  461. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.d.ts +22 -5
  462. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.js +11 -6
  463. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.js.map +1 -1
  464. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncherMenu.js +21 -9
  465. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncherMenu.js.map +1 -1
  466. package/react/components/toolbar/advancedAppLauncher/components/AddNewAppForm.d.ts +33 -10
  467. package/react/components/toolbar/advancedAppLauncher/components/AddNewAppForm.js +24 -3
  468. package/react/components/toolbar/advancedAppLauncher/components/AddNewAppForm.js.map +1 -1
  469. package/react/components/toolbar/advancedAppLauncher/components/AddNewFolder.d.ts +3 -3
  470. package/react/components/toolbar/advancedAppLauncher/components/AddNewFolder.js +0 -3
  471. package/react/components/toolbar/advancedAppLauncher/components/AddNewFolder.js.map +1 -1
  472. package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.d.ts +24 -8
  473. package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.js +4 -2
  474. package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.js.map +1 -1
  475. package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.d.ts +18 -4
  476. package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.js +5 -4
  477. package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.js.map +1 -1
  478. package/react/components/toolbar/advancedAppLauncher/components/AppTagsList.d.ts +14 -6
  479. package/react/components/toolbar/advancedAppLauncher/components/AppTagsList.js +2 -2
  480. package/react/components/toolbar/advancedAppLauncher/components/AppTagsList.js.map +1 -1
  481. package/react/components/toolbar/advancedAppLauncher/components/Content.d.ts +34 -13
  482. package/react/components/toolbar/advancedAppLauncher/components/Content.js +23 -29
  483. package/react/components/toolbar/advancedAppLauncher/components/Content.js.map +1 -1
  484. package/react/components/toolbar/advancedAppLauncher/components/FilterSort.d.ts +15 -5
  485. package/react/components/toolbar/advancedAppLauncher/components/FilterSort.js +4 -3
  486. package/react/components/toolbar/advancedAppLauncher/components/FilterSort.js.map +1 -1
  487. package/react/components/toolbar/advancedAppLauncher/components/FoldersList.d.ts +38 -21
  488. package/react/components/toolbar/advancedAppLauncher/components/FoldersList.js +13 -8
  489. package/react/components/toolbar/advancedAppLauncher/components/FoldersList.js.map +1 -1
  490. package/react/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.d.ts +18 -3
  491. package/react/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.js +7 -3
  492. package/react/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.js.map +1 -1
  493. package/react/components/toolbar/advancedAppLauncher/components/NoAppsFound.d.ts +10 -3
  494. package/react/components/toolbar/advancedAppLauncher/components/NoAppsFound.js +1 -3
  495. package/react/components/toolbar/advancedAppLauncher/components/NoAppsFound.js.map +1 -1
  496. package/react/components/toolbar/advancedAppLauncher/components/SearchBox.d.ts +15 -6
  497. package/react/components/toolbar/advancedAppLauncher/components/SearchBox.js +11 -6
  498. package/react/components/toolbar/advancedAppLauncher/components/SearchBox.js.map +1 -1
  499. package/react/components/toolbar/advancedAppLauncher/components/SortBy.d.ts +11 -4
  500. package/react/components/toolbar/advancedAppLauncher/components/SortBy.js +3 -2
  501. package/react/components/toolbar/advancedAppLauncher/components/SortBy.js.map +1 -1
  502. package/react/components/toolbar/advancedAppLauncher/components/TagsList.d.ts +18 -6
  503. package/react/components/toolbar/advancedAppLauncher/components/TagsList.js +2 -2
  504. package/react/components/toolbar/advancedAppLauncher/components/TagsList.js.map +1 -1
  505. package/react/components/toolbar/advancedAppLauncher/components/TagsMenu.d.ts +20 -4
  506. package/react/components/toolbar/advancedAppLauncher/components/TagsMenu.js +2 -4
  507. package/react/components/toolbar/advancedAppLauncher/components/TagsMenu.js.map +1 -1
  508. package/react/components/toolbar/advancedAppLauncher/modules/AppDirectory.d.ts +5 -1
  509. package/react/components/toolbar/advancedAppLauncher/modules/AppDirectory.js.map +1 -1
  510. package/react/components/toolbar/advancedAppLauncher/modules/FDC3.d.ts +15 -10
  511. package/react/components/toolbar/advancedAppLauncher/modules/FDC3.js.map +1 -1
  512. package/react/components/toolbar/advancedAppLauncher/stores/LauncherStore.d.ts +5 -2
  513. package/react/components/toolbar/advancedAppLauncher/stores/LauncherStore.js +1 -1
  514. package/react/components/toolbar/advancedAppLauncher/stores/LauncherStore.js.map +1 -1
  515. package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js +5 -4
  516. package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js.map +1 -1
  517. package/react/components/toolbar/advancedAppLauncher/utils/sort-functions.d.ts +7 -6
  518. package/react/components/toolbar/advancedAppLauncher/utils/sort-functions.js +11 -13
  519. package/react/components/toolbar/advancedAppLauncher/utils/sort-functions.js.map +1 -1
  520. package/react/components/toolbar/appLauncher/AppLauncherMenu.d.ts +3 -3
  521. package/react/components/toolbar/appLauncher/AppLauncherMenu.js +1 -1
  522. package/react/components/toolbar/appLauncher/AppLauncherMenu.js.map +1 -1
  523. package/react/components/toolbar/appLauncher/DynamicAppLauncher.js.map +1 -1
  524. package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.d.ts +25 -3
  525. package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.js +3 -10
  526. package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.js.map +1 -1
  527. package/react/components/toolbar/appLauncher/components/componentList.d.ts +34 -6
  528. package/react/components/toolbar/appLauncher/components/componentList.js +24 -21
  529. package/react/components/toolbar/appLauncher/components/componentList.js.map +1 -1
  530. package/react/components/toolbar/appLauncher/stores/appLauncherStore.d.ts +32 -32
  531. package/react/components/toolbar/appLauncher/stores/appLauncherStore.js +37 -55
  532. package/react/components/toolbar/appLauncher/stores/appLauncherStore.js.map +1 -1
  533. package/react/components/toolbar/dashbar/Dashbar.js +2 -3
  534. package/react/components/toolbar/dashbar/Dashbar.js.map +1 -1
  535. package/react/components/toolbar/dashbar/DashbarItem.js +1 -1
  536. package/react/components/toolbar/dashbar/DashbarItem.js.map +1 -1
  537. package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.d.ts +28 -5
  538. package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.js +17 -23
  539. package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.js.map +1 -1
  540. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.d.ts +25 -3
  541. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js.map +1 -1
  542. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.d.ts +13 -8
  543. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.js +2 -2
  544. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.js.map +1 -1
  545. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.d.ts +16 -8
  546. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.js +0 -3
  547. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.js.map +1 -1
  548. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.d.ts +65 -11
  549. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js +95 -145
  550. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js.map +1 -1
  551. package/react/components/userPreferences/UserPreferenceTypes.d.ts +5 -0
  552. package/react/components/userPreferences/UserPreferenceTypes.js +2 -0
  553. package/react/components/userPreferences/UserPreferenceTypes.js.map +1 -0
  554. package/react/components/userPreferences/UserPreferencesBase.js +2 -2
  555. package/react/components/userPreferences/UserPreferencesBase.js.map +1 -1
  556. package/react/components/userPreferences/UserPreferencesWrapper.js +1 -1
  557. package/react/components/userPreferences/UserPreferencesWrapper.js.map +1 -1
  558. package/react/components/userPreferences/components/ContentSection.js +2 -1
  559. package/react/components/userPreferences/components/ContentSection.js.map +1 -1
  560. package/react/components/userPreferences/components/LeftNav.d.ts +1 -1
  561. package/react/components/userPreferences/components/LeftNav.js +1 -1
  562. package/react/components/userPreferences/components/LeftNav.js.map +1 -1
  563. package/react/components/userPreferences/components/content/DashbarEditor.js +1 -1
  564. package/react/components/userPreferences/components/content/DashbarEditor.js.map +1 -1
  565. package/react/components/userPreferences/components/content/Notifications.js +2 -0
  566. package/react/components/userPreferences/components/content/Notifications.js.map +1 -1
  567. package/react/components/userPreferences/components/content/Workspaces.js +21 -10
  568. package/react/components/userPreferences/components/content/Workspaces.js.map +1 -1
  569. package/react/components/userPreferences/components/content/notificationViews/NotificationsPreferencesHome.js +48 -51
  570. package/react/components/userPreferences/components/content/notificationViews/NotificationsPreferencesHome.js.map +1 -1
  571. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourceTypes.js +9 -9
  572. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourceTypes.js.map +1 -1
  573. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourcesPreferences.js +4 -6
  574. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourcesPreferences.js.map +1 -1
  575. package/react/components/userPreferences/components/content/notificationViews/notificationViewsUtils.js +6 -6
  576. package/react/components/userPreferences/components/content/notificationViews/notificationViewsUtils.js.map +1 -1
  577. package/react/components/userPreferences/components/general/ScheduledRestart.js +0 -1
  578. package/react/components/userPreferences/components/general/ScheduledRestart.js.map +1 -1
  579. package/react/components/userPreferences/components/workspaces/WorkspaceButton.d.ts +3 -4
  580. package/react/components/userPreferences/components/workspaces/WorkspaceButton.js +5 -1
  581. package/react/components/userPreferences/components/workspaces/WorkspaceButton.js.map +1 -1
  582. package/react/components/userPreferences/components/workspaces/WorkspaceComponents.js +8 -5
  583. package/react/components/userPreferences/components/workspaces/WorkspaceComponents.js.map +1 -1
  584. package/react/components/userPreferences/components/workspaces/WorkspaceItem.js +15 -8
  585. package/react/components/userPreferences/components/workspaces/WorkspaceItem.js.map +1 -1
  586. package/react/components/userPreferences/components/workspaces/WorkspaceItemList.js +16 -2
  587. package/react/components/userPreferences/components/workspaces/WorkspaceItemList.js.map +1 -1
  588. package/react/components/userPreferences/stores/UserPreferencesStore.d.ts +12 -12
  589. package/react/components/userPreferences/stores/UserPreferencesStore.js +9 -16
  590. package/react/components/userPreferences/stores/UserPreferencesStore.js.map +1 -1
  591. package/react/components/userPreferences/stories/DashbarEditor.stories.js +1 -1
  592. package/react/components/userPreferences/stories/DashbarEditor.stories.js.map +1 -1
  593. package/react/components/userPreferences/stories/DashbarEditorItem.stories.js +1 -1
  594. package/react/components/userPreferences/stories/DashbarEditorItem.stories.js.map +1 -1
  595. package/react/components/userPreferences/stories/General.stories.js.map +1 -1
  596. package/react/components/userPreferences/stories/NotificationsSourceTypes.stories.js +1 -1
  597. package/react/components/userPreferences/stories/NotificationsSourceTypes.stories.js.map +1 -1
  598. package/react/components/userPreferences/stories/NotificationsSources.stories.js +1 -1
  599. package/react/components/userPreferences/stories/NotificationsSources.stories.js.map +1 -1
  600. package/react/components/userPreferences/stories/UserPreferences.stories.d.ts +1 -1
  601. package/react/components/userPreferences/stories/UserPreferences.stories.js +1 -1
  602. package/react/components/userPreferences/stories/UserPreferences.stories.js.map +1 -1
  603. package/react/components/userPreferences/stories/WorkspaceButton.stories.d.ts +5 -9
  604. package/react/components/userPreferences/stories/WorkspaceButton.stories.js +10 -3
  605. package/react/components/userPreferences/stories/WorkspaceButton.stories.js.map +1 -1
  606. package/react/components/userPreferences/stories/WorkspaceItem.stories.js +2 -2
  607. package/react/components/userPreferences/stories/WorkspaceItem.stories.js.map +1 -1
  608. package/react/components/userPreferences/stories/WorkspaceItemList.stories.js.map +1 -1
  609. package/react/components/userPreferences/stories/Workspaces.stories.js +1 -1
  610. package/react/components/userPreferences/stories/Workspaces.stories.js.map +1 -1
  611. package/react/components/userPreferences/tests/ContentSection.spec.js.map +1 -1
  612. package/react/components/userPreferences/tests/DashbarEditor.spec.js.map +1 -1
  613. package/react/components/userPreferences/tests/DashbarEditorItem.spec.js.map +1 -1
  614. package/react/components/userPreferences/tests/General.spec.js.map +1 -1
  615. package/react/components/userPreferences/tests/LeftNav.spec.js.map +1 -1
  616. package/react/components/userPreferences/tests/NotificationSourceTypes.spec.js.map +1 -1
  617. package/react/components/userPreferences/tests/Notifications.spec.js.map +1 -1
  618. package/react/components/userPreferences/tests/NotificationsPreferencesHome.spec.js.map +1 -1
  619. package/react/components/userPreferences/tests/NotificationsSourcesPreferences.spec.js.map +1 -1
  620. package/react/components/userPreferences/tests/ScheduledRestart.spec.js.map +1 -1
  621. package/react/components/userPreferences/tests/WorkspaceButton.spec.js +17 -3
  622. package/react/components/userPreferences/tests/WorkspaceButton.spec.js.map +1 -1
  623. package/react/components/userPreferences/tests/WorkspaceComponents.spec.js +1 -1
  624. package/react/components/userPreferences/tests/WorkspaceComponents.spec.js.map +1 -1
  625. package/react/components/userPreferences/tests/WorkspaceItem.spec.js.map +1 -1
  626. package/react/components/userPreferences/tests/WorkspaceItemList.spec.js.map +1 -1
  627. package/react/components/utils.js +1 -1
  628. package/react/components/utils.js.map +1 -1
  629. package/react/components/windowTitleBar/WindowTitleBarShell.d.ts +58 -31
  630. package/react/components/windowTitleBar/WindowTitleBarShell.js +47 -50
  631. package/react/components/windowTitleBar/WindowTitleBarShell.js.map +1 -1
  632. package/react/components/windowTitleBar/components/center/Tab.d.ts +27 -7
  633. package/react/components/windowTitleBar/components/center/Tab.js +2 -2
  634. package/react/components/windowTitleBar/components/center/Tab.js.map +1 -1
  635. package/react/components/windowTitleBar/components/center/TabList.d.ts +43 -30
  636. package/react/components/windowTitleBar/components/center/TabList.js +111 -37
  637. package/react/components/windowTitleBar/components/center/TabList.js.map +1 -1
  638. package/react/components/windowTitleBar/components/left/LinkerButton.js +5 -4
  639. package/react/components/windowTitleBar/components/left/LinkerButton.js.map +1 -1
  640. package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.d.ts +1 -21
  641. package/react/components/windowTitleBar/components/left/LinkerGroups.js +6 -8
  642. package/react/components/windowTitleBar/components/left/LinkerGroups.js.map +1 -1
  643. package/react/components/windowTitleBar/components/left/ShareButton.d.ts +1 -21
  644. package/react/components/windowTitleBar/components/right/CloseButton.d.ts +12 -25
  645. package/react/components/windowTitleBar/components/right/CloseButton.js.map +1 -1
  646. package/react/components/windowTitleBar/components/right/GroupingButton.d.ts +17 -26
  647. package/react/components/windowTitleBar/components/right/GroupingButton.js +2 -2
  648. package/react/components/windowTitleBar/components/right/GroupingButton.js.map +1 -1
  649. package/react/components/windowTitleBar/components/right/MaximizeButton.d.ts +1 -21
  650. package/react/components/windowTitleBar/components/right/MinimizeButton.d.ts +12 -25
  651. package/react/components/windowTitleBar/components/right/MinimizeButton.js.map +1 -1
  652. package/react/components/windowTitleBar/components/windowTitle.js +11 -6
  653. package/react/components/windowTitleBar/components/windowTitle.js.map +1 -1
  654. package/react/components/windowTitleBar/stores/windowTitleBarStore.d.ts +51 -44
  655. package/react/components/windowTitleBar/stores/windowTitleBarStore.js +63 -56
  656. package/react/components/windowTitleBar/stores/windowTitleBarStore.js.map +1 -1
  657. package/react/components/windowTitleBar/stores/windowTitleBarStoreDefaults.d.ts +42 -44
  658. package/react/components/windowTitleBar/stores/windowTitleBarStoreDefaults.js.map +1 -1
  659. package/react/components/windowTitleBar/windowTitleBarContext.d.ts +9 -9
  660. package/react/components/windowTitleBar/windowTitleBarContext.js +2 -4
  661. package/react/components/windowTitleBar/windowTitleBarContext.js.map +1 -1
  662. package/react/components/yesNoDialog/Timer.spec.js +2 -2
  663. package/react/components/yesNoDialog/Timer.spec.js.map +1 -1
  664. package/react/components/yesNoDialog/Timer.stories.js +1 -1
  665. package/react/components/yesNoDialog/Timer.stories.js.map +1 -1
  666. package/react/components/yesNoDialog/YesNoDialog.spec.js +5 -5
  667. package/react/components/yesNoDialog/YesNoDialog.spec.js.map +1 -1
  668. package/react/components/yesNoDialog/YesNoDialog.stories.js +1 -1
  669. package/react/components/yesNoDialog/YesNoDialog.stories.js.map +1 -1
  670. package/react/hooks/useFavoritesShell.js.map +1 -1
  671. package/react/hooks/useLinker.js +1 -1
  672. package/react/hooks/useLinker.js.map +1 -1
  673. package/react/hooks/useMenu.js +1 -1
  674. package/react/hooks/useMenu.js.map +1 -1
  675. package/react/hooks/useNotifications.d.ts +6 -6
  676. package/react/hooks/useNotifications.js +16 -17
  677. package/react/hooks/useNotifications.js.map +1 -1
  678. package/react/hooks/useSearch.js +1 -1
  679. package/react/hooks/useSearch.js.map +1 -1
  680. package/react/hooks/useToolbar.js.map +1 -1
  681. package/react/hooks/useWorkspace.js +1 -1
  682. package/react/hooks/useWorkspace.js.map +1 -1
  683. package/react/reducers/favoriteReducer.js +1 -1
  684. package/react/reducers/favoriteReducer.js.map +1 -1
  685. package/react/reducers/rootReducer.d.ts +3 -4
  686. package/react/reducers/toolbarReducer.js +1 -1
  687. package/react/reducers/toolbarReducer.js.map +1 -1
  688. package/react/store.d.ts +6 -7
  689. package/react/types/advancedAppLauncherTypes.d.ts +28 -1
  690. package/react/types/advancedAppLauncherTypes.js.map +1 -1
  691. package/react/types/favoriteTypes.d.ts +1 -1
  692. package/react/types/favoriteTypes.js.map +1 -1
  693. package/react/types/fdc3.d.ts +22 -0
  694. package/react/types/fdc3.js.map +1 -1
  695. package/react/types/smartDesktopDesignerTypes.d.ts +11 -9
  696. package/react/types/smartDesktopDesignerTypes.js.map +1 -1
  697. package/react/types/windowTitleBar.d.ts +46 -0
  698. package/react/types/windowTitleBar.js +2 -0
  699. package/react/types/windowTitleBar.js.map +1 -0
  700. package/react/components/processMonitor/components/ChildWindows.d.ts +0 -4
  701. package/react/components/processMonitor/components/ChildWindows.js +0 -11
  702. package/react/components/processMonitor/components/ChildWindows.js.map +0 -1
  703. package/react/components/toolbar/advancedAppLauncher/components/LeftNav.d.ts +0 -4
  704. package/react/components/toolbar/advancedAppLauncher/components/LeftNav.js +0 -14
  705. package/react/components/toolbar/advancedAppLauncher/components/LeftNav.js.map +0 -1
@@ -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":["// @ts-ignore - Didn't import the type defintions for this line\r\nimport timesSeries from \"async/timesSeries\";\r\nimport { 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 { FEAWindow, ProcessInfo } from \"@finsemble/finsemble-core/types/FEA\";\r\nimport { FinsembleWindow } from \"@finsemble/finsemble-core/types/main\";\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\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\t// @todo: Should we surface an error message if store is undefined?\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\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\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\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\t// @ts-ignore: `getViewName` is expecting a property that doesn't exist\r\n\t\t\t\t\t\t\tname: \"name\" in item ? item.name : getViewName(item),\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\t// @todo: How should we handle sorting through undefined values?\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\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\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 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\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 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// @todo - Is it possible to get some kind of testing for this function? It was broken before I got here (calling .terminate with invalid arguments),\r\n\t\t\t// but I can't reproduce the functionality enough to know if I did anything\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\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: { uuid: string; name: string }) {\r\n\t\t// @todo - How do we know if FEAWindow was actually returned? What should we do if it wasn't?\r\n\t\t// @ts-ignore - apparently, wrap can return {} instead of an FEAWindow\r\n\t\tconst win: FEAWindow = FSBL.System.Window.wrap(winID.uuid, winID.name);\r\n\t\tconst parentApp = win.getParentApplication();\r\n\t\tlet procs: ProcessType[] = ProcessMonitorStore?.getValue({ field: \"processList\" });\r\n\t\tprocs = procs.map((proc) => {\r\n\t\t\tif (proc.statistics.uuid === parentApp.uuid && 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\t// @todo - How do we know if FEAWindow was actually returned? What should we do if it wasn't?\r\n\t\t// @ts-ignore - apparently, wrap can return {} instead of an FEAWindow\r\n\t\tconst win: FEAWindow = 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\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(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\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,14 +9,6 @@ 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
12
  FSBL.Clients.Logger.deprecated("Quick Components have been deprecated and will not be available in a future release.");
21
13
  this.state = {
22
14
  name: "",
@@ -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.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"]}
@@ -6,17 +6,17 @@ import { Start, RegularExpression, NoHighlight } from "./Highlight.stories";
6
6
  import { enzymeQuerySelectorWrapper } from "../utils";
7
7
  describe("<Highlight/>", () => {
8
8
  it("should contain a highlight section if there's a match", () => {
9
- const wrapper = mount(React.createElement(Start, { ...Start.args }));
9
+ const wrapper = mount(React.createElement(Start, Object.assign({}, Start.args)));
10
10
  const element = enzymeQuerySelectorWrapper(wrapper, ".highlight");
11
11
  expect(element).to.not.be.null;
12
12
  });
13
13
  it("should not contain a highlight section if there's no match", () => {
14
- const wrapper = mount(React.createElement(NoHighlight, { ...NoHighlight.args }));
14
+ const wrapper = mount(React.createElement(NoHighlight, Object.assign({}, NoHighlight.args)));
15
15
  const element = enzymeQuerySelectorWrapper(wrapper, ".highlight");
16
16
  expect(element).to.be.null;
17
17
  });
18
18
  it("should not throw an error if an invalid regular expression is used as the match string", () => {
19
- mount(React.createElement(RegularExpression, { ...RegularExpression.args }));
19
+ mount(React.createElement(RegularExpression, Object.assign({}, RegularExpression.args)));
20
20
  });
21
21
  });
22
22
  //# sourceMappingURL=Highlight.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Highlight.spec.js","sourceRoot":"","sources":["../../../src/components/search/Highlight.spec.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAEtD,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAChE,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,KAAK,OAAM,KAAK,CAAC,IAAuB,GAAI,CAAC,CAAC;QACrE,MAAM,OAAO,GAAG,0BAA0B,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAClE,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;IAChC,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACrE,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,WAAW,OAAM,WAAW,CAAC,IAAuB,GAAI,CAAC,CAAC;QACjF,MAAM,OAAO,GAAG,0BAA0B,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAClE,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC5B,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,wFAAwF,EAAE,GAAG,EAAE;QACjG,KAAK,CAAC,oBAAC,iBAAiB,OAAM,iBAAiB,CAAC,IAAuB,GAAI,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\r\nimport { mount } from \"enzyme\";\r\nimport { describe, it } from \"mocha\";\r\nimport { expect } from \"chai\";\r\nimport { Start, RegularExpression, NoHighlight } from \"./Highlight.stories\";\r\nimport { HighlightProps } from \"./Highlight\";\r\nimport { enzymeQuerySelectorWrapper } from \"../utils\";\r\n\r\ndescribe(\"<Highlight/>\", () => {\r\n\tit(\"should contain a highlight section if there's a match\", () => {\r\n\t\tconst wrapper = mount(<Start {...(Start.args as HighlightProps)} />);\r\n\t\tconst element = enzymeQuerySelectorWrapper(wrapper, \".highlight\");\r\n\t\texpect(element).to.not.be.null;\r\n\t});\r\n\tit(\"should not contain a highlight section if there's no match\", () => {\r\n\t\tconst wrapper = mount(<NoHighlight {...(NoHighlight.args as HighlightProps)} />);\r\n\t\tconst element = enzymeQuerySelectorWrapper(wrapper, \".highlight\");\r\n\t\texpect(element).to.be.null;\r\n\t});\r\n\tit(\"should not throw an error if an invalid regular expression is used as the match string\", () => {\r\n\t\tmount(<RegularExpression {...(RegularExpression.args as HighlightProps)} />);\r\n\t});\r\n});\r\n"]}
1
+ {"version":3,"file":"Highlight.spec.js","sourceRoot":"","sources":["../../../src/components/search/Highlight.spec.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAEtD,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAChE,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,KAAK,oBAAM,KAAK,CAAC,IAAuB,EAAI,CAAC,CAAC;QACrE,MAAM,OAAO,GAAG,0BAA0B,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAClE,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;IAChC,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACrE,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,WAAW,oBAAM,WAAW,CAAC,IAAuB,EAAI,CAAC,CAAC;QACjF,MAAM,OAAO,GAAG,0BAA0B,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAClE,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC5B,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,wFAAwF,EAAE,GAAG,EAAE;QACjG,KAAK,CAAC,oBAAC,iBAAiB,oBAAM,iBAAiB,CAAC,IAAuB,EAAI,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\r\nimport { mount } from \"enzyme\";\r\nimport { describe, it } from \"mocha\";\r\nimport { expect } from \"chai\";\r\nimport { Start, RegularExpression, NoHighlight } from \"./Highlight.stories\";\r\nimport { HighlightProps } from \"./Highlight\";\r\nimport { enzymeQuerySelectorWrapper } from \"../utils\";\r\n\r\ndescribe(\"<Highlight/>\", () => {\r\n\tit(\"should contain a highlight section if there's a match\", () => {\r\n\t\tconst wrapper = mount(<Start {...(Start.args as HighlightProps)} />);\r\n\t\tconst element = enzymeQuerySelectorWrapper(wrapper, \".highlight\");\r\n\t\texpect(element).to.not.be.null;\r\n\t});\r\n\tit(\"should not contain a highlight section if there's no match\", () => {\r\n\t\tconst wrapper = mount(<NoHighlight {...(NoHighlight.args as HighlightProps)} />);\r\n\t\tconst element = enzymeQuerySelectorWrapper(wrapper, \".highlight\");\r\n\t\texpect(element).to.be.null;\r\n\t});\r\n\tit(\"should not throw an error if an invalid regular expression is used as the match string\", () => {\r\n\t\tmount(<RegularExpression {...(RegularExpression.args as HighlightProps)} />);\r\n\t});\r\n});\r\n"]}
@@ -5,7 +5,7 @@ export default {
5
5
  title: "Toolbar/Highlight",
6
6
  component: Highlight,
7
7
  };
8
- const Template = (args) => React.createElement(Highlight, { ...args });
8
+ const Template = (args) => React.createElement(Highlight, Object.assign({}, args));
9
9
  export const Start = Template.bind({});
10
10
  Start.args = {
11
11
  matchAgainst: "Example",
@@ -1 +1 @@
1
- {"version":3,"file":"Highlight.stories.js","sourceRoot":"","sources":["../../../src/components/search/Highlight.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAkB,MAAM,aAAa,CAAC;AACxD,OAAO,6BAA6B,CAAC;AAGrC,eAAe;IACd,KAAK,EAAE,mBAAmB;IAC1B,SAAS,EAAE,SAAS;CACpB,CAAC;AAEF,MAAM,QAAQ,GAA0B,CAAC,IAAoB,EAAE,EAAE,CAAC,oBAAC,SAAS,OAAK,IAAI,GAAI,CAAC;AAE1F,MAAM,CAAC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACvC,KAAK,CAAC,IAAI,GAAG;IACZ,YAAY,EAAE,SAAS;IACvB,IAAI,EAAE,oBAAoB;CAC1B,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5C,UAAU,CAAC,IAAI,GAAG;IACjB,YAAY,EAAE,OAAO;IACrB,IAAI,EAAE,oBAAoB;CAC1B,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5C,UAAU,CAAC,IAAI,GAAG;IACjB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,oBAAoB;CAC1B,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1C,QAAQ,CAAC,IAAI,GAAG;IACf,YAAY,EAAE,IAAI;IAClB,IAAI,EAAE,oBAAoB;CAC1B,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnD,iBAAiB,CAAC,IAAI,GAAG;IACxB,YAAY,EAAE,GAAG;IACjB,IAAI,EAAE,KAAK;CACX,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7C,WAAW,CAAC,IAAI,GAAG;IAClB,YAAY,EAAE,aAAa;IAC3B,IAAI,EAAE,aAAa;CACnB,CAAC","sourcesContent":["import React from \"react\";\r\nimport { Highlight, HighlightProps } from \"./Highlight\";\r\nimport \"../../assets/css/search.css\";\r\nimport { Story } from \"@storybook/react/types-6-0\";\r\n\r\nexport default {\r\n\ttitle: \"Toolbar/Highlight\",\r\n\tcomponent: Highlight,\r\n};\r\n\r\nconst Template: Story<HighlightProps> = (args: HighlightProps) => <Highlight {...args} />;\r\n\r\nexport const Start = Template.bind({});\r\nStart.args = {\r\n\tmatchAgainst: \"Example\",\r\n\ttext: \"Example chart apps\",\r\n};\r\n\r\nexport const MiddleWord = Template.bind({});\r\nMiddleWord.args = {\r\n\tmatchAgainst: \"Chart\",\r\n\ttext: \"Example chart apps\",\r\n};\r\n\r\nexport const MiddleText = Template.bind({});\r\nMiddleText.args = {\r\n\tmatchAgainst: \"amp\",\r\n\ttext: \"Example chart apps\",\r\n};\r\n\r\nexport const LastWord = Template.bind({});\r\nLastWord.args = {\r\n\tmatchAgainst: \"ps\",\r\n\ttext: \"Example chart apps\",\r\n};\r\n\r\nexport const RegularExpression = Template.bind({});\r\nRegularExpression.args = {\r\n\tmatchAgainst: \"+\",\r\n\ttext: \"A+B\",\r\n};\r\n\r\nexport const NoHighlight = Template.bind({});\r\nNoHighlight.args = {\r\n\tmatchAgainst: \"Not Present\",\r\n\ttext: \"Hello World\",\r\n};\r\n"]}
1
+ {"version":3,"file":"Highlight.stories.js","sourceRoot":"","sources":["../../../src/components/search/Highlight.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAkB,MAAM,aAAa,CAAC;AACxD,OAAO,6BAA6B,CAAC;AAGrC,eAAe;IACd,KAAK,EAAE,mBAAmB;IAC1B,SAAS,EAAE,SAAS;CACpB,CAAC;AAEF,MAAM,QAAQ,GAA0B,CAAC,IAAoB,EAAE,EAAE,CAAC,oBAAC,SAAS,oBAAK,IAAI,EAAI,CAAC;AAE1F,MAAM,CAAC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACvC,KAAK,CAAC,IAAI,GAAG;IACZ,YAAY,EAAE,SAAS;IACvB,IAAI,EAAE,oBAAoB;CAC1B,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5C,UAAU,CAAC,IAAI,GAAG;IACjB,YAAY,EAAE,OAAO;IACrB,IAAI,EAAE,oBAAoB;CAC1B,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5C,UAAU,CAAC,IAAI,GAAG;IACjB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,oBAAoB;CAC1B,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1C,QAAQ,CAAC,IAAI,GAAG;IACf,YAAY,EAAE,IAAI;IAClB,IAAI,EAAE,oBAAoB;CAC1B,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnD,iBAAiB,CAAC,IAAI,GAAG;IACxB,YAAY,EAAE,GAAG;IACjB,IAAI,EAAE,KAAK;CACX,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7C,WAAW,CAAC,IAAI,GAAG;IAClB,YAAY,EAAE,aAAa;IAC3B,IAAI,EAAE,aAAa;CACnB,CAAC","sourcesContent":["import React from \"react\";\r\nimport { Highlight, HighlightProps } from \"./Highlight\";\r\nimport \"../../assets/css/search.css\";\r\nimport { Story } from \"@storybook/react/types-6-0\";\r\n\r\nexport default {\r\n\ttitle: \"Toolbar/Highlight\",\r\n\tcomponent: Highlight,\r\n};\r\n\r\nconst Template: Story<HighlightProps> = (args: HighlightProps) => <Highlight {...args} />;\r\n\r\nexport const Start = Template.bind({});\r\nStart.args = {\r\n\tmatchAgainst: \"Example\",\r\n\ttext: \"Example chart apps\",\r\n};\r\n\r\nexport const MiddleWord = Template.bind({});\r\nMiddleWord.args = {\r\n\tmatchAgainst: \"Chart\",\r\n\ttext: \"Example chart apps\",\r\n};\r\n\r\nexport const MiddleText = Template.bind({});\r\nMiddleText.args = {\r\n\tmatchAgainst: \"amp\",\r\n\ttext: \"Example chart apps\",\r\n};\r\n\r\nexport const LastWord = Template.bind({});\r\nLastWord.args = {\r\n\tmatchAgainst: \"ps\",\r\n\ttext: \"Example chart apps\",\r\n};\r\n\r\nexport const RegularExpression = Template.bind({});\r\nRegularExpression.args = {\r\n\tmatchAgainst: \"+\",\r\n\ttext: \"A+B\",\r\n};\r\n\r\nexport const NoHighlight = Template.bind({});\r\nNoHighlight.args = {\r\n\tmatchAgainst: \"Not Present\",\r\n\ttext: \"Hello World\",\r\n};\r\n"]}
@@ -1,17 +1,26 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
1
12
  import * as React from "react";
2
13
  import { Menu } from "../menu/Menu";
3
14
  import { SearchResults } from "./SearchResults";
4
15
  import { SearchInput } from "./SearchInput";
5
16
  import "../../assets/css/search.css";
6
- const Search = ({ width = 330, className = "search-menu", id = "SearchMenu", ...otherProps }) => {
7
- const completeProps = {
8
- ...otherProps,
9
- width,
17
+ const Search = (_a) => {
18
+ var _b;
19
+ var { width = 330, className = "search-menu", id = "SearchMenu" } = _a, otherProps = __rest(_a, ["width", "className", "id"]);
20
+ const completeProps = Object.assign(Object.assign({}, otherProps), { width,
10
21
  className,
11
- id,
12
- title: otherProps.title ?? React.createElement("i", { className: "ff-search" }),
13
- };
14
- return (React.createElement(Menu, { ...completeProps },
22
+ id, title: (_b = otherProps.title) !== null && _b !== void 0 ? _b : React.createElement("i", { className: "ff-search" }) });
23
+ return (React.createElement(Menu, Object.assign({}, completeProps),
15
24
  React.createElement(SearchInput, null),
16
25
  React.createElement(SearchResults, null)));
17
26
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Search.js","sourceRoot":"","sources":["../../../src/components/search/Search.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,6BAA6B,CAAC;AAErC,MAAM,MAAM,GAAuC,CAAC,EACnD,KAAK,GAAG,GAAG,EACX,SAAS,GAAG,aAAa,EACzB,EAAE,GAAG,YAAY,EACjB,GAAG,UAAU,EACb,EAAE,EAAE;IACJ,MAAM,aAAa,GAAG;QACrB,GAAG,UAAU;QACb,KAAK;QACL,SAAS;QACT,EAAE;QACF,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,2BAAG,SAAS,EAAC,WAAW,GAAK;KACxD,CAAC;IAEF,OAAO,CACN,oBAAC,IAAI,OAAK,aAAa;QACtB,oBAAC,WAAW,OAAG;QACf,oBAAC,aAAa,OAAG,CACX,CACP,CAAC;AACH,CAAC,CAAC;AACF,OAAO,EAAE,MAAM,EAAE,CAAC","sourcesContent":["import * as React from \"react\";\r\nimport { Menu } from \"../menu/Menu\";\r\nimport { MenuProps } from \"../menu/Menu\";\r\nimport { SearchResults } from \"./SearchResults\";\r\nimport { SearchInput } from \"./SearchInput\";\r\nimport \"../../assets/css/search.css\";\r\n\r\nconst Search: React.FunctionComponent<MenuProps> = ({\r\n\twidth = 330,\r\n\tclassName = \"search-menu\",\r\n\tid = \"SearchMenu\",\r\n\t...otherProps\r\n}) => {\r\n\tconst completeProps = {\r\n\t\t...otherProps,\r\n\t\twidth,\r\n\t\tclassName,\r\n\t\tid,\r\n\t\ttitle: otherProps.title ?? <i className=\"ff-search\"></i>,\r\n\t};\r\n\r\n\treturn (\r\n\t\t<Menu {...completeProps}>\r\n\t\t\t<SearchInput />\r\n\t\t\t<SearchResults />\r\n\t\t</Menu>\r\n\t);\r\n};\r\nexport { Search };\r\n"]}
1
+ {"version":3,"file":"Search.js","sourceRoot":"","sources":["../../../src/components/search/Search.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,6BAA6B,CAAC;AAErC,MAAM,MAAM,GAAuC,CAAC,EAKnD,EAAE,EAAE;;QAL+C,EACnD,KAAK,GAAG,GAAG,EACX,SAAS,GAAG,aAAa,EACzB,EAAE,GAAG,YAAY,OAEjB,EADG,UAAU,cAJsC,4BAKnD,CADa;IAEb,MAAM,aAAa,mCACf,UAAU,KACb,KAAK;QACL,SAAS;QACT,EAAE,EACF,KAAK,EAAE,MAAA,UAAU,CAAC,KAAK,mCAAI,2BAAG,SAAS,EAAC,WAAW,GAAK,GACxD,CAAC;IAEF,OAAO,CACN,oBAAC,IAAI,oBAAK,aAAa;QACtB,oBAAC,WAAW,OAAG;QACf,oBAAC,aAAa,OAAG,CACX,CACP,CAAC;AACH,CAAC,CAAC;AACF,OAAO,EAAE,MAAM,EAAE,CAAC","sourcesContent":["import * as React from \"react\";\r\nimport { Menu } from \"../menu/Menu\";\r\nimport { MenuProps } from \"../menu/Menu\";\r\nimport { SearchResults } from \"./SearchResults\";\r\nimport { SearchInput } from \"./SearchInput\";\r\nimport \"../../assets/css/search.css\";\r\n\r\nconst Search: React.FunctionComponent<MenuProps> = ({\r\n\twidth = 330,\r\n\tclassName = \"search-menu\",\r\n\tid = \"SearchMenu\",\r\n\t...otherProps\r\n}) => {\r\n\tconst completeProps = {\r\n\t\t...otherProps,\r\n\t\twidth,\r\n\t\tclassName,\r\n\t\tid,\r\n\t\ttitle: otherProps.title ?? <i className=\"ff-search\"></i>,\r\n\t};\r\n\r\n\treturn (\r\n\t\t<Menu {...completeProps}>\r\n\t\t\t<SearchInput />\r\n\t\t\t<SearchResults />\r\n\t\t</Menu>\r\n\t);\r\n};\r\nexport { Search };\r\n"]}
@@ -5,7 +5,8 @@ const findBestMatch = (searchProviderResponses) => {
5
5
  if (searchProviderResponses) {
6
6
  let bestMatch = null;
7
7
  searchProviderResponses.forEach((providerInfo) => {
8
- providerInfo?.data?.forEach((result) => {
8
+ var _a;
9
+ (_a = providerInfo === null || providerInfo === void 0 ? void 0 : providerInfo.data) === null || _a === void 0 ? void 0 : _a.forEach((result) => {
9
10
  if (bestMatch === null) {
10
11
  bestMatch = result;
11
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SearchBestMatch.js","sourceRoot":"","sources":["../../../src/components/search/SearchBestMatch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AASlD,MAAM,aAAa,GAAG,CAAC,uBAAwD,EAAE,EAAE;IAClF,IAAI,uBAAuB,EAAE;QAC5B,IAAI,SAAS,GAA4B,IAAI,CAAC;QAC9C,uBAAuB,CAAC,OAAO,CAAC,CAAC,YAAoC,EAAE,EAAE;YACxE,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,MAAwB,EAAE,EAAE;gBACxD,IAAI,SAAS,KAAK,IAAI,EAAE;oBACvB,SAAS,GAAG,MAAM,CAAC;iBACnB;qBAAM,IAAI,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE;oBAE1C,SAAS,GAAG,MAAM,CAAC;iBACnB;YACF,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;KACjB;IACD,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AAMF,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE;IACnC,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE,CAAC;IAChE,MAAM,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;IACnD,IAAI,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IAEhC,OAAO,CACN;QACC,6BAAK,SAAS,EAAC,cAAc,iBAAiB;QAC9C,oBAAC,YAAY,IAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,GAAI,CACpF,CACN,CAAC;AACH,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\r\nimport { SearchResult } from \"./SearchResult\";\r\nimport { SearchProviderResponse, SearchResultType } from \"../../types/searchTypes\";\r\nimport { useSearch } from \"../../hooks/useSearch\";\r\n\r\n/**\r\n * Iterates through the responses from every search provider\r\n * and returns the item with the highest score.\r\n * Half of the time this makes sense. The other half\r\n * it doesn't make sense. It's all built on Fuse JS and how\r\n * it grades the 'score' of a query to an entity.\r\n */\r\nconst findBestMatch = (searchProviderResponses: SearchProviderResponse[] | null) => {\r\n\tif (searchProviderResponses) {\r\n\t\tlet bestMatch: SearchResultType | null = null;\r\n\t\tsearchProviderResponses.forEach((providerInfo: SearchProviderResponse) => {\r\n\t\t\tproviderInfo?.data?.forEach((result: SearchResultType) => {\r\n\t\t\t\tif (bestMatch === null) {\r\n\t\t\t\t\tbestMatch = result;\r\n\t\t\t\t} else if (result.score < bestMatch.score) {\r\n\t\t\t\t\t// Note, lowest score is best score\r\n\t\t\t\t\tbestMatch = result;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t\treturn bestMatch;\r\n\t}\r\n\treturn null;\r\n};\r\n\r\n/**\r\n * Simple component that renders a menu item for the entity that\r\n * best matches the user's query.\r\n */\r\nexport const SearchBestMatch = () => {\r\n\tconst { searchResults, searchQuery, resetSearch } = useSearch();\r\n\tconst bestMatchData = findBestMatch(searchResults);\r\n\tif (!bestMatchData) return null;\r\n\r\n\treturn (\r\n\t\t<div>\r\n\t\t\t<div className=\"search-title\">Best Match</div>\r\n\t\t\t<SearchResult resetSearch={resetSearch} data={bestMatchData} searchQuery={searchQuery} />\r\n\t\t</div>\r\n\t);\r\n};\r\n"]}
1
+ {"version":3,"file":"SearchBestMatch.js","sourceRoot":"","sources":["../../../src/components/search/SearchBestMatch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AASlD,MAAM,aAAa,GAAG,CAAC,uBAAwD,EAAE,EAAE;IAClF,IAAI,uBAAuB,EAAE;QAC5B,IAAI,SAAS,GAA4B,IAAI,CAAC;QAC9C,uBAAuB,CAAC,OAAO,CAAC,CAAC,YAAoC,EAAE,EAAE;;YACxE,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,0CAAE,OAAO,CAAC,CAAC,MAAwB,EAAE,EAAE;gBACxD,IAAI,SAAS,KAAK,IAAI,EAAE;oBACvB,SAAS,GAAG,MAAM,CAAC;iBACnB;qBAAM,IAAI,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE;oBAE1C,SAAS,GAAG,MAAM,CAAC;iBACnB;YACF,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;KACjB;IACD,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AAMF,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE;IACnC,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE,CAAC;IAChE,MAAM,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;IACnD,IAAI,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IAEhC,OAAO,CACN;QACC,6BAAK,SAAS,EAAC,cAAc,iBAAiB;QAC9C,oBAAC,YAAY,IAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,GAAI,CACpF,CACN,CAAC;AACH,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\r\nimport { SearchResult } from \"./SearchResult\";\r\nimport { SearchProviderResponse, SearchResultType } from \"../../types/searchTypes\";\r\nimport { useSearch } from \"../../hooks/useSearch\";\r\n\r\n/**\r\n * Iterates through the responses from every search provider\r\n * and returns the item with the highest score.\r\n * Half of the time this makes sense. The other half\r\n * it doesn't make sense. It's all built on Fuse JS and how\r\n * it grades the 'score' of a query to an entity.\r\n */\r\nconst findBestMatch = (searchProviderResponses: SearchProviderResponse[] | null) => {\r\n\tif (searchProviderResponses) {\r\n\t\tlet bestMatch: SearchResultType | null = null;\r\n\t\tsearchProviderResponses.forEach((providerInfo: SearchProviderResponse) => {\r\n\t\t\tproviderInfo?.data?.forEach((result: SearchResultType) => {\r\n\t\t\t\tif (bestMatch === null) {\r\n\t\t\t\t\tbestMatch = result;\r\n\t\t\t\t} else if (result.score < bestMatch.score) {\r\n\t\t\t\t\t// Note, lowest score is best score\r\n\t\t\t\t\tbestMatch = result;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t\treturn bestMatch;\r\n\t}\r\n\treturn null;\r\n};\r\n\r\n/**\r\n * Simple component that renders a menu item for the entity that\r\n * best matches the user's query.\r\n */\r\nexport const SearchBestMatch = () => {\r\n\tconst { searchResults, searchQuery, resetSearch } = useSearch();\r\n\tconst bestMatchData = findBestMatch(searchResults);\r\n\tif (!bestMatchData) return null;\r\n\r\n\treturn (\r\n\t\t<div>\r\n\t\t\t<div className=\"search-title\">Best Match</div>\r\n\t\t\t<SearchResult resetSearch={resetSearch} data={bestMatchData} searchQuery={searchQuery} />\r\n\t\t</div>\r\n\t);\r\n};\r\n"]}
@@ -2,13 +2,12 @@ import * as React from "react";
2
2
  import { SearchResult } from "./SearchResult";
3
3
  import { useSearch } from "../../hooks/useSearch";
4
4
  export const SearchProviderResults = ({ providerResponse }) => {
5
+ var _a;
5
6
  const { searchQuery, resetSearch } = useSearch();
6
7
  const clickResetSearch = () => {
7
8
  resetSearch();
8
9
  };
9
- const providerResults = providerResponse?.data
10
- ?.filter((r) => r)
11
- .sort((a, b) => a.score - b.score);
10
+ const providerResults = (_a = providerResponse === null || providerResponse === void 0 ? void 0 : providerResponse.data) === null || _a === void 0 ? void 0 : _a.filter((r) => r).sort((a, b) => a.score - b.score);
12
11
  const providerClick = () => {
13
12
  FSBL.Clients.SearchClient.invokeProviderAction(providerResponse.provider);
14
13
  resetSearch();
@@ -19,7 +18,7 @@ export const SearchProviderResults = ({ providerResponse }) => {
19
18
  providerResponse.provider.displayName,
20
19
  providerResponse.provider.providerActionTitle && (React.createElement("div", { className: "provider-title", onClick: providerClick },
21
20
  providerResponse.provider.providerActionTitle,
22
- React.createElement("div", { className: "ff-arrow-right arrow_right_grey" }))))),
23
- providerResults?.map((individualResult, i) => (React.createElement(SearchResult, { key: i, resetSearch: clickResetSearch, searchQuery: searchQuery, data: individualResult })))));
21
+ React.createElement("div", { className: "ff-arrow-right arrow_right_grey" }))))), providerResults === null || providerResults === void 0 ? void 0 :
22
+ providerResults.map((individualResult, i) => (React.createElement(SearchResult, { key: i, resetSearch: clickResetSearch, searchQuery: searchQuery, data: individualResult })))));
24
23
  };
25
24
  //# sourceMappingURL=SearchProviderResults.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SearchProviderResults.js","sourceRoot":"","sources":["../../../src/components/search/SearchProviderResults.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,MAAM,CAAC,MAAM,qBAAqB,GAE7B,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE;IAC7B,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE,CAAC;IAEjD,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC7B,WAAW,EAAE,CAAC;IACf,CAAC,CAAC;IAGF,MAAM,eAAe,GAAG,gBAAgB,EAAE,IAAI;QAC7C,EAAE,MAAM,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC;SACnC,IAAI,CAAC,CAAC,CAAmB,EAAE,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAExE,MAAM,aAAa,GAAG,GAAG,EAAE;QAC1B,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC1E,WAAW,EAAE,CAAC;QACd,eAAe,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC,CAAC;IACF,OAAO,CACN;QACE,gBAAgB,IAAI,CACpB,6BAAK,SAAS,EAAC,cAAc;YAC3B,gBAAgB,CAAC,QAAQ,CAAC,WAAW;YACrC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,IAAI,CACjD,6BAAK,SAAS,EAAC,gBAAgB,EAAC,OAAO,EAAE,aAAa;gBACpD,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB;gBAC9C,6BAAK,SAAS,EAAC,iCAAiC,GAAO,CAClD,CACN,CACI,CACN;QACA,eAAe,EAAE,GAAG,CAAC,CAAC,gBAAgB,EAAE,CAAS,EAAE,EAAE,CAAC,CACtD,oBAAC,YAAY,IAAC,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,GAAI,CACzG,CAAC,CACA,CACH,CAAC;AACH,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\r\nimport { SearchResult } from \"./SearchResult\";\r\nimport { SearchProviderResponse, SearchResultType } from \"../../types/searchTypes\";\r\nimport { useSearch } from \"../../hooks/useSearch\";\r\n\r\nexport const SearchProviderResults: React.FunctionComponent<{\r\n\tproviderResponse: SearchProviderResponse;\r\n}> = ({ providerResponse }) => {\r\n\tconst { searchQuery, resetSearch } = useSearch();\r\n\r\n\tconst clickResetSearch = () => {\r\n\t\tresetSearch();\r\n\t};\r\n\t// Removes empty results then sorts by *lowest* score (search results are retuned from Finsemble where lowest is best)\r\n\t// This uses fuse.js which uses the \"bitap\" algorithm\r\n\tconst providerResults = providerResponse?.data\r\n\t\t?.filter((r: SearchResultType) => r)\r\n\t\t.sort((a: SearchResultType, b: SearchResultType) => a.score - b.score);\r\n\r\n\tconst providerClick = () => {\r\n\t\tFSBL.Clients.SearchClient.invokeProviderAction(providerResponse.provider);\r\n\t\tresetSearch();\r\n\t\tfinsembleWindow.blur();\r\n\t};\r\n\treturn (\r\n\t\t<>\r\n\t\t\t{providerResponse && (\r\n\t\t\t\t<div className=\"search-title\">\r\n\t\t\t\t\t{providerResponse.provider.displayName}\r\n\t\t\t\t\t{providerResponse.provider.providerActionTitle && (\r\n\t\t\t\t\t\t<div className=\"provider-title\" onClick={providerClick}>\r\n\t\t\t\t\t\t\t{providerResponse.provider.providerActionTitle}\r\n\t\t\t\t\t\t\t<div className=\"ff-arrow-right arrow_right_grey\"></div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t)}\r\n\t\t\t\t</div>\r\n\t\t\t)}\r\n\t\t\t{providerResults?.map((individualResult, i: number) => (\r\n\t\t\t\t<SearchResult key={i} resetSearch={clickResetSearch} searchQuery={searchQuery} data={individualResult} />\r\n\t\t\t))}\r\n\t\t</>\r\n\t);\r\n};\r\n"]}
1
+ {"version":3,"file":"SearchProviderResults.js","sourceRoot":"","sources":["../../../src/components/search/SearchProviderResults.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,MAAM,CAAC,MAAM,qBAAqB,GAE7B,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE;;IAC7B,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE,CAAC;IAEjD,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC7B,WAAW,EAAE,CAAC;IACf,CAAC,CAAC;IAGF,MAAM,eAAe,GAAG,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,0CAC3C,MAAM,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,EAClC,IAAI,CAAC,CAAC,CAAmB,EAAE,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAExE,MAAM,aAAa,GAAG,GAAG,EAAE;QAC1B,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC1E,WAAW,EAAE,CAAC;QACd,eAAe,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC,CAAC;IACF,OAAO,CACN;QACE,gBAAgB,IAAI,CACpB,6BAAK,SAAS,EAAC,cAAc;YAC3B,gBAAgB,CAAC,QAAQ,CAAC,WAAW;YACrC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,IAAI,CACjD,6BAAK,SAAS,EAAC,gBAAgB,EAAC,OAAO,EAAE,aAAa;gBACpD,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB;gBAC9C,6BAAK,SAAS,EAAC,iCAAiC,GAAO,CAClD,CACN,CACI,CACN,EACA,eAAe,aAAf,eAAe;QAAf,eAAe,CAAE,GAAG,CAAC,CAAC,gBAAgB,EAAE,CAAS,EAAE,EAAE,CAAC,CACtD,oBAAC,YAAY,IAAC,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,GAAI,CACzG,CAAC,CACA,CACH,CAAC;AACH,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\r\nimport { SearchResult } from \"./SearchResult\";\r\nimport { SearchProviderResponse, SearchResultType } from \"../../types/searchTypes\";\r\nimport { useSearch } from \"../../hooks/useSearch\";\r\n\r\nexport const SearchProviderResults: React.FunctionComponent<{\r\n\tproviderResponse: SearchProviderResponse;\r\n}> = ({ providerResponse }) => {\r\n\tconst { searchQuery, resetSearch } = useSearch();\r\n\r\n\tconst clickResetSearch = () => {\r\n\t\tresetSearch();\r\n\t};\r\n\t// Removes empty results then sorts by *lowest* score (search results are retuned from Finsemble where lowest is best)\r\n\t// This uses fuse.js which uses the \"bitap\" algorithm\r\n\tconst providerResults = providerResponse?.data\r\n\t\t?.filter((r: SearchResultType) => r)\r\n\t\t.sort((a: SearchResultType, b: SearchResultType) => a.score - b.score);\r\n\r\n\tconst providerClick = () => {\r\n\t\tFSBL.Clients.SearchClient.invokeProviderAction(providerResponse.provider);\r\n\t\tresetSearch();\r\n\t\tfinsembleWindow.blur();\r\n\t};\r\n\treturn (\r\n\t\t<>\r\n\t\t\t{providerResponse && (\r\n\t\t\t\t<div className=\"search-title\">\r\n\t\t\t\t\t{providerResponse.provider.displayName}\r\n\t\t\t\t\t{providerResponse.provider.providerActionTitle && (\r\n\t\t\t\t\t\t<div className=\"provider-title\" onClick={providerClick}>\r\n\t\t\t\t\t\t\t{providerResponse.provider.providerActionTitle}\r\n\t\t\t\t\t\t\t<div className=\"ff-arrow-right arrow_right_grey\"></div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t)}\r\n\t\t\t\t</div>\r\n\t\t\t)}\r\n\t\t\t{providerResults?.map((individualResult, i: number) => (\r\n\t\t\t\t<SearchResult key={i} resetSearch={clickResetSearch} searchQuery={searchQuery} data={individualResult} />\r\n\t\t\t))}\r\n\t\t</>\r\n\t);\r\n};\r\n"]}
@@ -3,8 +3,9 @@ import { MenuItem } from "../menu/MenuItem";
3
3
  import { Icon } from "../icon/Icon";
4
4
  import { Highlight } from "./Highlight";
5
5
  export const SearchResult = (props) => {
6
+ var _a;
6
7
  const { data, searchQuery, resetSearch } = props;
7
- const displayName = data.displayName ?? data.name;
8
+ const displayName = (_a = data.displayName) !== null && _a !== void 0 ? _a : data.name;
8
9
  const onSearchResultClicked = () => {
9
10
  FSBL.Clients.SearchClient.invokeItemAction(data, data.actions[0]);
10
11
  resetSearch();
@@ -24,7 +25,7 @@ export const SearchResult = (props) => {
24
25
  }
25
26
  return (React.createElement(MenuItem, { onClick: onSearchResultClicked },
26
27
  React.createElement("div", { className: "menu-item-row" },
27
- React.createElement(Icon, { ...icon }),
28
+ React.createElement(Icon, Object.assign({}, icon)),
28
29
  React.createElement(Highlight, { text: displayName, matchAgainst: searchQuery || "" }),
29
30
  data.actions.length > 1 && (React.createElement("div", { className: "search-actions" }, data.actions.map((action, i) => (React.createElement("div", { key: `actionbtn${i}`, className: "search-actions actionButton", onClick: (e) => {
30
31
  e.preventDefault();
@@ -1 +1 @@
1
- {"version":3,"file":"SearchResult.js","sourceRoot":"","sources":["../../../src/components/search/SearchResult.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAuE,EAAE,EAAE;IACvG,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAEjD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC;IAIlD,MAAM,qBAAqB,GAAG,GAAG,EAAE;QAClC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,WAAW,EAAE,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,MAAW,EAAE,EAAE;QACvC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACzD,WAAW,EAAE,CAAC;IACf,CAAC,CAAC;IAGF,IAAI,IAAI,GAAQ;QACf,SAAS,EAAE,UAAU;QACrB,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,IAAI,CAAC,IAAI;KACnB,CAAC;IAGF,IAAI,IAAI,CAAC,IAAI,EAAE;QACd,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;KAC3B;IAED,OAAO,CACN,oBAAC,QAAQ,IAAC,OAAO,EAAE,qBAAqB;QACvC,6BAAK,SAAS,EAAC,eAAe;YAC7B,oBAAC,IAAI,OAAK,IAAI,GAAI;YAClB,oBAAC,SAAS,IAAC,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,IAAI,EAAE,GAAI;YAChE,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAC3B,6BAAK,SAAS,EAAC,gBAAgB,IAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAW,EAAE,CAAS,EAAE,EAAE,CAAC,CAC7C,6BACC,GAAG,EAAE,YAAY,CAAC,EAAE,EACpB,SAAS,EAAC,6BAA6B,EACvC,OAAO,EAAE,CAAC,CAAmB,EAAE,EAAE;oBAChC,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,CAAC,CAAC,eAAe,EAAE,CAAC;oBACpB,eAAe,CAAC,MAAM,CAAC,CAAC;oBACxB,WAAW,EAAE,CAAC;oBACd,eAAe,CAAC,IAAI,EAAE,CAAC;gBACxB,CAAC,IAEA,MAAM,CAAC,IAAI,CACP,CACN,CAAC,CACG,CACN,CACI,CACI,CACX,CAAC;AACH,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\r\nimport { MenuItem } from \"../menu/MenuItem\";\r\nimport { Icon } from \"../icon/Icon\";\r\nimport { Highlight } from \"./Highlight\";\r\nimport { SearchQuery } from \"../../types/searchTypes\";\r\nexport const SearchResult = (props: { data: any; searchQuery: SearchQuery; resetSearch: () => void }) => {\r\n\tconst { data, searchQuery, resetSearch } = props;\r\n\r\n\tconst displayName = data.displayName ?? data.name;\r\n\r\n\t// Will trigger the action associated with the item\r\n\t// (e.g., loading a workspace, spawning a component)\r\n\tconst onSearchResultClicked = () => {\r\n\t\tFSBL.Clients.SearchClient.invokeItemAction(data, data.actions[0]);\r\n\t\tresetSearch();\r\n\t};\r\n\r\n\tconst onActionClicked = (action: any) => {\r\n\t\tFSBL.Clients.SearchClient.invokeItemAction(data, action);\r\n\t\tresetSearch();\r\n\t};\r\n\r\n\t// Default icon to be based on initials\r\n\tlet icon: any = {\r\n\t\timageType: \"initials\",\r\n\t\tname: displayName,\r\n\t\tcategory: data.type,\r\n\t};\r\n\r\n\t// If the search results return iconography then use convert and use it\r\n\tif (data.icon) {\r\n\t\ticon.imageType = data.icon.type;\r\n\t\ticon.path = data.icon.path;\r\n\t}\r\n\r\n\treturn (\r\n\t\t<MenuItem onClick={onSearchResultClicked}>\r\n\t\t\t<div className=\"menu-item-row\">\r\n\t\t\t\t<Icon {...icon} />\r\n\t\t\t\t<Highlight text={displayName} matchAgainst={searchQuery || \"\"} />\r\n\t\t\t\t{data.actions.length > 1 && (\r\n\t\t\t\t\t<div className=\"search-actions\">\r\n\t\t\t\t\t\t{data.actions.map((action: any, i: number) => (\r\n\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\tkey={`actionbtn${i}`}\r\n\t\t\t\t\t\t\t\tclassName=\"search-actions actionButton\"\r\n\t\t\t\t\t\t\t\tonClick={(e: React.MouseEvent) => {\r\n\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\tonActionClicked(action);\r\n\t\t\t\t\t\t\t\t\tresetSearch();\r\n\t\t\t\t\t\t\t\t\tfinsembleWindow.blur();\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\t{action.name}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t)}\r\n\t\t\t</div>\r\n\t\t</MenuItem>\r\n\t);\r\n};\r\n"]}
1
+ {"version":3,"file":"SearchResult.js","sourceRoot":"","sources":["../../../src/components/search/SearchResult.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAuE,EAAE,EAAE;;IACvG,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAEjD,MAAM,WAAW,GAAG,MAAA,IAAI,CAAC,WAAW,mCAAI,IAAI,CAAC,IAAI,CAAC;IAIlD,MAAM,qBAAqB,GAAG,GAAG,EAAE;QAClC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,WAAW,EAAE,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,MAAW,EAAE,EAAE;QACvC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACzD,WAAW,EAAE,CAAC;IACf,CAAC,CAAC;IAGF,IAAI,IAAI,GAAQ;QACf,SAAS,EAAE,UAAU;QACrB,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,IAAI,CAAC,IAAI;KACnB,CAAC;IAGF,IAAI,IAAI,CAAC,IAAI,EAAE;QACd,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;KAC3B;IAED,OAAO,CACN,oBAAC,QAAQ,IAAC,OAAO,EAAE,qBAAqB;QACvC,6BAAK,SAAS,EAAC,eAAe;YAC7B,oBAAC,IAAI,oBAAK,IAAI,EAAI;YAClB,oBAAC,SAAS,IAAC,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,IAAI,EAAE,GAAI;YAChE,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAC3B,6BAAK,SAAS,EAAC,gBAAgB,IAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAW,EAAE,CAAS,EAAE,EAAE,CAAC,CAC7C,6BACC,GAAG,EAAE,YAAY,CAAC,EAAE,EACpB,SAAS,EAAC,6BAA6B,EACvC,OAAO,EAAE,CAAC,CAAmB,EAAE,EAAE;oBAChC,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,CAAC,CAAC,eAAe,EAAE,CAAC;oBACpB,eAAe,CAAC,MAAM,CAAC,CAAC;oBACxB,WAAW,EAAE,CAAC;oBACd,eAAe,CAAC,IAAI,EAAE,CAAC;gBACxB,CAAC,IAEA,MAAM,CAAC,IAAI,CACP,CACN,CAAC,CACG,CACN,CACI,CACI,CACX,CAAC;AACH,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\r\nimport { MenuItem } from \"../menu/MenuItem\";\r\nimport { Icon } from \"../icon/Icon\";\r\nimport { Highlight } from \"./Highlight\";\r\nimport { SearchQuery } from \"../../types/searchTypes\";\r\nexport const SearchResult = (props: { data: any; searchQuery: SearchQuery; resetSearch: () => void }) => {\r\n\tconst { data, searchQuery, resetSearch } = props;\r\n\r\n\tconst displayName = data.displayName ?? data.name;\r\n\r\n\t// Will trigger the action associated with the item\r\n\t// (e.g., loading a workspace, spawning a component)\r\n\tconst onSearchResultClicked = () => {\r\n\t\tFSBL.Clients.SearchClient.invokeItemAction(data, data.actions[0]);\r\n\t\tresetSearch();\r\n\t};\r\n\r\n\tconst onActionClicked = (action: any) => {\r\n\t\tFSBL.Clients.SearchClient.invokeItemAction(data, action);\r\n\t\tresetSearch();\r\n\t};\r\n\r\n\t// Default icon to be based on initials\r\n\tlet icon: any = {\r\n\t\timageType: \"initials\",\r\n\t\tname: displayName,\r\n\t\tcategory: data.type,\r\n\t};\r\n\r\n\t// If the search results return iconography then use convert and use it\r\n\tif (data.icon) {\r\n\t\ticon.imageType = data.icon.type;\r\n\t\ticon.path = data.icon.path;\r\n\t}\r\n\r\n\treturn (\r\n\t\t<MenuItem onClick={onSearchResultClicked}>\r\n\t\t\t<div className=\"menu-item-row\">\r\n\t\t\t\t<Icon {...icon} />\r\n\t\t\t\t<Highlight text={displayName} matchAgainst={searchQuery || \"\"} />\r\n\t\t\t\t{data.actions.length > 1 && (\r\n\t\t\t\t\t<div className=\"search-actions\">\r\n\t\t\t\t\t\t{data.actions.map((action: any, i: number) => (\r\n\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\tkey={`actionbtn${i}`}\r\n\t\t\t\t\t\t\t\tclassName=\"search-actions actionButton\"\r\n\t\t\t\t\t\t\t\tonClick={(e: React.MouseEvent) => {\r\n\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\tonActionClicked(action);\r\n\t\t\t\t\t\t\t\t\tresetSearch();\r\n\t\t\t\t\t\t\t\t\tfinsembleWindow.blur();\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\t{action.name}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t)}\r\n\t\t\t</div>\r\n\t\t</MenuItem>\r\n\t);\r\n};\r\n"]}
@@ -5,7 +5,7 @@ import { useSearch } from "../../hooks/useSearch";
5
5
  import "../../assets/css/menus.css";
6
6
  export const SearchResults = () => {
7
7
  const { searchResults, searchQuery } = useSearch();
8
- if (searchResults?.length) {
8
+ if (searchResults === null || searchResults === void 0 ? void 0 : searchResults.length) {
9
9
  return (React.createElement("div", { className: "search-provider-results" },
10
10
  React.createElement(SearchBestMatch, null),
11
11
  searchResults.map((r, i) => (React.createElement(SearchProviderResults, { key: i, providerResponse: r })))));
@@ -1 +1 @@
1
- {"version":3,"file":"SearchResults.js","sourceRoot":"","sources":["../../../src/components/search/SearchResults.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,4BAA4B,CAAC;AAEpC,MAAM,CAAC,MAAM,aAAa,GAA4B,GAAG,EAAE;IAC1D,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE,CAAC;IAGnD,IAAI,aAAa,EAAE,MAAM,EAAE;QAC1B,OAAO,CAEN,6BAAK,SAAS,EAAC,yBAAyB;YACvC,oBAAC,eAAe,OAAG;YAClB,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAC5B,oBAAC,qBAAqB,IAAC,GAAG,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,GAAI,CACtD,CAAC,CACG,CACN,CAAC;KAEF;SAAM;QACN,MAAM,OAAO,GAAG,WAAW,IAAI,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,2BAA2B,CAAC;QAE/F,OAAO,6BAAK,SAAS,EAAC,wCAAwC,IAAE,OAAO,CAAO,CAAC;KAC/E;AACF,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\r\nimport { SearchProviderResults } from \"./SearchProviderResults\";\r\nimport { SearchBestMatch } from \"./SearchBestMatch\";\r\nimport { useSearch } from \"../../hooks/useSearch\";\r\nimport \"../../assets/css/menus.css\";\r\n\r\nexport const SearchResults: React.FunctionComponent = () => {\r\n\tconst { searchResults, searchQuery } = useSearch();\r\n\r\n\t// If we had a response from the search client\r\n\tif (searchResults?.length) {\r\n\t\treturn (\r\n\t\t\t// pull out best match into its own component.\r\n\t\t\t<div className=\"search-provider-results\">\r\n\t\t\t\t<SearchBestMatch />\r\n\t\t\t\t{searchResults.map((r, i) => (\r\n\t\t\t\t\t<SearchProviderResults key={i} providerResponse={r} />\r\n\t\t\t\t))}\r\n\t\t\t</div>\r\n\t\t);\r\n\t\t// If we had no response, but we have a valid searchQuery\r\n\t} else {\r\n\t\tconst message = searchQuery && searchQuery !== \"\" ? \"No results\" : \"Results will display here\";\r\n\r\n\t\treturn <div className=\"menu-item no-hover informational-state\">{message}</div>;\r\n\t}\r\n};\r\n"]}
1
+ {"version":3,"file":"SearchResults.js","sourceRoot":"","sources":["../../../src/components/search/SearchResults.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,4BAA4B,CAAC;AAEpC,MAAM,CAAC,MAAM,aAAa,GAA4B,GAAG,EAAE;IAC1D,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE,CAAC;IAGnD,IAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,EAAE;QAC1B,OAAO,CAEN,6BAAK,SAAS,EAAC,yBAAyB;YACvC,oBAAC,eAAe,OAAG;YAClB,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAC5B,oBAAC,qBAAqB,IAAC,GAAG,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,GAAI,CACtD,CAAC,CACG,CACN,CAAC;KAEF;SAAM;QACN,MAAM,OAAO,GAAG,WAAW,IAAI,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,2BAA2B,CAAC;QAE/F,OAAO,6BAAK,SAAS,EAAC,wCAAwC,IAAE,OAAO,CAAO,CAAC;KAC/E;AACF,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\r\nimport { SearchProviderResults } from \"./SearchProviderResults\";\r\nimport { SearchBestMatch } from \"./SearchBestMatch\";\r\nimport { useSearch } from \"../../hooks/useSearch\";\r\nimport \"../../assets/css/menus.css\";\r\n\r\nexport const SearchResults: React.FunctionComponent = () => {\r\n\tconst { searchResults, searchQuery } = useSearch();\r\n\r\n\t// If we had a response from the search client\r\n\tif (searchResults?.length) {\r\n\t\treturn (\r\n\t\t\t// pull out best match into its own component.\r\n\t\t\t<div className=\"search-provider-results\">\r\n\t\t\t\t<SearchBestMatch />\r\n\t\t\t\t{searchResults.map((r, i) => (\r\n\t\t\t\t\t<SearchProviderResults key={i} providerResponse={r} />\r\n\t\t\t\t))}\r\n\t\t\t</div>\r\n\t\t);\r\n\t\t// If we had no response, but we have a valid searchQuery\r\n\t} else {\r\n\t\tconst message = searchQuery && searchQuery !== \"\" ? \"No results\" : \"Results will display here\";\r\n\r\n\t\treturn <div className=\"menu-item no-hover informational-state\">{message}</div>;\r\n\t}\r\n};\r\n"]}
@@ -1,8 +1,6 @@
1
1
  import React from "react";
2
2
  import "../../assets/css/button.css";
3
- const Button = ({ buttonLabel = "Label", clickHandler = () => { }, classNames = "", }) => {
4
- return (React.createElement("div", { className: `finsemble__btn ${classNames}`, title: buttonLabel.length > 12 ? buttonLabel : "", onClick: () => clickHandler() },
5
- React.createElement("span", { className: "btn-label" }, buttonLabel)));
6
- };
3
+ const Button = ({ buttonLabel = "Label", clickHandler = () => { }, classNames = "", }) => (React.createElement("div", { className: `finsemble__btn ${classNames}`, title: buttonLabel.length > 12 ? buttonLabel : "", onClick: () => clickHandler() },
4
+ React.createElement("span", { className: "btn-label" }, buttonLabel)));
7
5
  export default Button;
8
6
  //# sourceMappingURL=Button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/components/shared/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,6BAA6B,CAAC;AAQrC,MAAM,MAAM,GAAmD,CAAC,EAC/D,WAAW,GAAG,OAAO,EACrB,YAAY,GAAG,GAAG,EAAE,GAAE,CAAC,EACvB,UAAU,GAAG,EAAE,GACQ,EAAE,EAAE;IAC3B,OAAO,CACN,6BACC,SAAS,EAAE,kBAAkB,UAAU,EAAE,EACzC,KAAK,EAAE,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EACjD,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE;QAE7B,8BAAM,SAAS,EAAC,WAAW,IAAE,WAAW,CAAQ,CAC3C,CACN,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,MAAM,CAAC","sourcesContent":["import React from \"react\";\r\nimport \"../../assets/css/button.css\";\r\n\r\nexport interface IFinsembleButtonProps {\r\n\tbuttonLabel: string;\r\n\tclickHandler: Function;\r\n\tclassNames?: string;\r\n}\r\n\r\nconst Button: React.FunctionComponent<IFinsembleButtonProps> = ({\r\n\tbuttonLabel = \"Label\",\r\n\tclickHandler = () => {},\r\n\tclassNames = \"\",\r\n}: IFinsembleButtonProps) => {\r\n\treturn (\r\n\t\t<div\r\n\t\t\tclassName={`finsemble__btn ${classNames}`}\r\n\t\t\ttitle={buttonLabel.length > 12 ? buttonLabel : \"\"}\r\n\t\t\tonClick={() => clickHandler()}\r\n\t\t>\r\n\t\t\t<span className=\"btn-label\">{buttonLabel}</span>\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport default Button;\r\n"]}
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/components/shared/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,6BAA6B,CAAC;AAQrC,MAAM,MAAM,GAAmD,CAAC,EAC/D,WAAW,GAAG,OAAO,EACrB,YAAY,GAAG,GAAG,EAAE,GAAE,CAAC,EACvB,UAAU,GAAG,EAAE,GACQ,EAAE,EAAE,CAAC,CAC5B,6BACC,SAAS,EAAE,kBAAkB,UAAU,EAAE,EACzC,KAAK,EAAE,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EACjD,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE;IAE7B,8BAAM,SAAS,EAAC,WAAW,IAAE,WAAW,CAAQ,CAC3C,CACN,CAAC;AAEF,eAAe,MAAM,CAAC","sourcesContent":["import React from \"react\";\r\nimport \"../../assets/css/button.css\";\r\n\r\nexport interface IFinsembleButtonProps {\r\n\tbuttonLabel: string;\r\n\tclickHandler: Function;\r\n\tclassNames?: string;\r\n}\r\n\r\nconst Button: React.FunctionComponent<IFinsembleButtonProps> = ({\r\n\tbuttonLabel = \"Label\",\r\n\tclickHandler = () => {},\r\n\tclassNames = \"\",\r\n}: IFinsembleButtonProps) => (\r\n\t<div\r\n\t\tclassName={`finsemble__btn ${classNames}`}\r\n\t\ttitle={buttonLabel.length > 12 ? buttonLabel : \"\"}\r\n\t\tonClick={() => clickHandler()}\r\n\t>\r\n\t\t<span className=\"btn-label\">{buttonLabel}</span>\r\n\t</div>\r\n);\r\n\r\nexport default Button;\r\n"]}
@@ -5,7 +5,7 @@ const emptyOption = {
5
5
  optionLabel: "Please select..",
6
6
  clickHandler: () => { },
7
7
  };
8
- const DefaultDropdownButton = ({ allowEmpty = true, buttonLabel = "Please select...", caretLocation = "left", classNames = "", buttonOptions = [], defaultSelection = null, enabled = true, }) => {
8
+ const DefaultDropdownButton = ({ allowEmpty = true, caretLocation = "left", classNames = "", buttonOptions = [], defaultSelection = null, enabled = true, }) => {
9
9
  const wrapperRef = useRef(null);
10
10
  const [optionsVisible, toggleOptionsPanel] = useState(false);
11
11
  useOutsideClickDetector(wrapperRef, () => toggleOptionsPanel(false));