@finsemble/finsemble-ui 6.4.0-beta.1 → 6.5.0

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 (755) hide show
  1. package/README.md +28 -28
  2. package/package.json +20 -19
  3. package/react/actions/favoriteActions.js.map +1 -1
  4. package/react/actions/linkerActions.js.map +1 -1
  5. package/react/actions/menuActions.js.map +1 -1
  6. package/react/actions/rootActions.js.map +1 -1
  7. package/react/actions/searchActions.js.map +1 -1
  8. package/react/actions/smartDesktopDesignerActions.d.ts +6 -2
  9. package/react/actions/smartDesktopDesignerActions.js +2 -0
  10. package/react/actions/smartDesktopDesignerActions.js.map +1 -1
  11. package/react/actions/toolbarActions.js.map +1 -1
  12. package/react/actions/workspaceActions.js.map +1 -1
  13. package/react/assets/css/advancedAppLauncher.css +636 -636
  14. package/react/assets/css/appCatalog.css +1069 -1069
  15. package/react/assets/css/authentication.css +78 -78
  16. package/react/assets/css/button.css +220 -220
  17. package/react/assets/css/core/formElements.css +23 -23
  18. package/react/assets/css/core/icons.css +69 -69
  19. package/react/assets/css/core/notifications.css +75 -75
  20. package/react/assets/css/core/windowFrame.css +36 -36
  21. package/react/assets/css/dashbar.css +78 -78
  22. package/react/assets/css/defaultTheme.css +356 -356
  23. package/react/assets/css/dialogs.css +158 -158
  24. package/react/assets/css/favorites.css +101 -101
  25. package/react/assets/css/finsemble.css +38 -38
  26. package/react/assets/css/focus.css +4 -4
  27. package/react/assets/css/font-finance.css +385 -385
  28. package/react/assets/css/fonts/Open_Sans/LICENSE.txt +202 -202
  29. package/react/assets/css/fonts/Open_Sans/OpenSans-Definition.css +118 -118
  30. package/react/assets/css/fonts/font-finance.svg +124 -124
  31. package/react/assets/css/fonts/icons-reference.html +1174 -1174
  32. package/react/assets/css/linkerWindow.css +124 -124
  33. package/react/assets/css/menus.css +195 -195
  34. package/react/assets/css/notificationsCenter.css +597 -597
  35. package/react/assets/css/processMonitor.css +213 -213
  36. package/react/assets/css/search.css +128 -128
  37. package/react/assets/css/shared/animations.css +99 -99
  38. package/react/assets/css/tags.css +136 -136
  39. package/react/assets/css/toolbar.css +413 -413
  40. package/react/assets/css/userPreferences.css +538 -538
  41. package/react/assets/css/windowTitleBar.css +653 -652
  42. package/react/assets/icons/always-on-top.svg +20 -0
  43. package/react/assets/icons/caret.svg +7 -7
  44. package/react/assets/icons/check-square.svg +5 -5
  45. package/react/assets/icons/check.svg +3 -3
  46. package/react/assets/icons/chevron-left.svg +3 -3
  47. package/react/assets/icons/chevron-right.svg +3 -3
  48. package/react/assets/icons/close.svg +11 -0
  49. package/react/assets/icons/code-block.svg +15 -0
  50. package/react/assets/icons/copy.svg +10 -10
  51. package/react/assets/icons/documentation.svg +20 -0
  52. package/react/assets/icons/exclamation-circle.svg +4 -4
  53. package/react/assets/icons/external-link.svg +12 -12
  54. package/react/assets/icons/flag.svg +10 -10
  55. package/react/assets/icons/folder.svg +3 -3
  56. package/react/assets/icons/font.svg +3 -3
  57. package/react/assets/icons/globe.svg +3 -3
  58. package/react/assets/icons/hdd.svg +9 -9
  59. package/react/assets/icons/key.svg +10 -10
  60. package/react/assets/icons/life-ring.svg +3 -3
  61. package/react/assets/icons/linker.svg +18 -0
  62. package/react/assets/icons/lock.svg +5 -5
  63. package/react/assets/icons/magic.svg +15 -15
  64. package/react/assets/icons/maximize.svg +16 -0
  65. package/react/assets/icons/minimize.svg +15 -0
  66. package/react/assets/icons/moon.svg +10 -10
  67. package/react/assets/icons/paint-roller.svg +3 -3
  68. package/react/assets/icons/pencil.svg +10 -10
  69. package/react/assets/icons/plus.svg +3 -3
  70. package/react/assets/icons/question-circle.svg +5 -5
  71. package/react/assets/icons/search.svg +3 -3
  72. package/react/assets/icons/sun.svg +9 -9
  73. package/react/assets/icons/times.svg +3 -3
  74. package/react/assets/icons/toggle-off.svg +6 -6
  75. package/react/assets/icons/toggle-on.svg +6 -6
  76. package/react/assets/icons/toolbar.svg +12 -12
  77. package/react/assets/icons/tools.svg +3 -3
  78. package/react/assets/icons/trash.svg +12 -12
  79. package/react/assets/icons/upload.svg +10 -10
  80. package/react/assets/icons/window.svg +3 -3
  81. package/react/assets/img/finsemble-display.png +0 -0
  82. package/react/componentTemplateGenerator.js +85 -85
  83. package/react/componentTemplateGenerator.js.map +1 -1
  84. package/react/components/FinsembleProvider.js.map +1 -1
  85. package/react/components/appCatalog/AppCatalog.js.map +1 -1
  86. package/react/components/appCatalog/AppCatalogComponent.js.map +1 -1
  87. package/react/components/appCatalog/components/AppCard.js.map +1 -1
  88. package/react/components/appCatalog/components/AppList.js.map +1 -1
  89. package/react/components/appCatalog/components/AppResults.js.map +1 -1
  90. package/react/components/appCatalog/components/Carousel.js.map +1 -1
  91. package/react/components/appCatalog/components/EmptyResults.js.map +1 -1
  92. package/react/components/appCatalog/components/Hero.js.map +1 -1
  93. package/react/components/appCatalog/components/Home.js.map +1 -1
  94. package/react/components/appCatalog/components/SearchBar.js.map +1 -1
  95. package/react/components/appCatalog/components/Showcase/AppDescription.js.map +1 -1
  96. package/react/components/appCatalog/components/Showcase/AppDevNotes.js.map +1 -1
  97. package/react/components/appCatalog/components/Showcase/AppShowcase.js.map +1 -1
  98. package/react/components/appCatalog/components/Showcase/Header.js.map +1 -1
  99. package/react/components/appCatalog/components/Showcase/ImageCarousel.js.map +1 -1
  100. package/react/components/appCatalog/components/Showcase/Modal.js.map +1 -1
  101. package/react/components/appCatalog/components/Showcase/ReleaseNotes.js.map +1 -1
  102. package/react/components/appCatalog/components/Showcase/SupportNotes.js.map +1 -1
  103. package/react/components/appCatalog/components/Showcase/VersionNotes.js.map +1 -1
  104. package/react/components/appCatalog/components/Showcase/defaults.js.map +1 -1
  105. package/react/components/appCatalog/components/Tag.js.map +1 -1
  106. package/react/components/appCatalog/components/Toast.js.map +1 -1
  107. package/react/components/appCatalog/components/helpers.js.map +1 -1
  108. package/react/components/appCatalog/index.js.map +1 -1
  109. package/react/components/appCatalog/modules/AppDirectory.js.map +1 -1
  110. package/react/components/appCatalog/modules/FDC3.d.ts +1 -1
  111. package/react/components/appCatalog/modules/FDC3.js.map +1 -1
  112. package/react/components/appCatalog/stores/appStore.d.ts +2 -2
  113. package/react/components/appCatalog/stores/appStore.js.map +1 -1
  114. package/react/components/appCatalog/stores/storeActions.js.map +1 -1
  115. package/react/components/common/Accordion.js +1 -1
  116. package/react/components/common/Accordion.js.map +1 -1
  117. package/react/components/common/Button.js.map +1 -1
  118. package/react/components/common/ButtonIcon.js.map +1 -1
  119. package/react/components/common/ButtonRow.js.map +1 -1
  120. package/react/components/common/ButtonTile.js.map +1 -1
  121. package/react/components/common/Checkbox.js +1 -1
  122. package/react/components/common/Checkbox.js.map +1 -1
  123. package/react/components/common/ColorPicker.js.map +1 -1
  124. package/react/components/common/DropZone.js +3 -1
  125. package/react/components/common/DropZone.js.map +1 -1
  126. package/react/components/common/DropdownButton.js.map +1 -1
  127. package/react/components/common/FileInput.d.ts +2 -1
  128. package/react/components/common/FileInput.js +9 -4
  129. package/react/components/common/FileInput.js.map +1 -1
  130. package/react/components/common/FinsembleIcon.d.ts +1 -1
  131. package/react/components/common/FinsembleIcon.js +15 -1
  132. package/react/components/common/FinsembleIcon.js.map +1 -1
  133. package/react/components/common/FinsembleSelect.js +1 -1
  134. package/react/components/common/FinsembleSelect.js.map +1 -1
  135. package/react/components/common/FinsembleToggle.js.map +1 -1
  136. package/react/components/common/Header.js +3 -1
  137. package/react/components/common/Header.js.map +1 -1
  138. package/react/components/common/ImagePreview.js.map +1 -1
  139. package/react/components/common/InputTable.js.map +1 -1
  140. package/react/components/common/LoadingSpinner.js.map +1 -1
  141. package/react/components/common/Tab.js.map +1 -1
  142. package/react/components/common/Tooltip.js +3 -1
  143. package/react/components/common/Tooltip.js.map +1 -1
  144. package/react/components/common/css/accordion.css +99 -89
  145. package/react/components/common/css/application-edit-page.css +324 -223
  146. package/react/components/common/css/application-list.css +53 -47
  147. package/react/components/common/css/button.css +166 -166
  148. package/react/components/common/css/checkbox.css +30 -31
  149. package/react/components/common/css/color-picker.css +52 -52
  150. package/react/components/common/css/drop-zone.css +17 -17
  151. package/react/components/common/css/file-input.css +65 -49
  152. package/react/components/common/css/header.css +30 -32
  153. package/react/components/common/css/icon.css +13 -13
  154. package/react/components/common/css/image-preview.css +57 -57
  155. package/react/components/common/css/loading-spinner.css +39 -39
  156. package/react/components/common/css/preload-edit-page.css +37 -0
  157. package/react/components/common/css/selector.css +51 -51
  158. package/react/components/common/css/styles.css +127 -128
  159. package/react/components/common/css/tab.css +56 -56
  160. package/react/components/common/css/toggle.css +32 -32
  161. package/react/components/common/css/tooltip.css +78 -78
  162. package/react/components/common/file_helpers.js.map +1 -1
  163. package/react/components/common/fixtures/FinsembleIcon.css +4 -4
  164. package/react/components/common/helpers.js.map +1 -1
  165. package/react/components/common/stories/Accordion.stories.js.map +1 -1
  166. package/react/components/common/stories/Button.stories.js.map +1 -1
  167. package/react/components/common/stories/ButtonIcon.stories.js.map +1 -1
  168. package/react/components/common/stories/ButtonRow.stories.js.map +1 -1
  169. package/react/components/common/stories/ButtonTile.stories.js.map +1 -1
  170. package/react/components/common/stories/Checkbox.stories.js.map +1 -1
  171. package/react/components/common/stories/ColorPicker.stories.js.map +1 -1
  172. package/react/components/common/stories/DropZone.stories.js.map +1 -1
  173. package/react/components/common/stories/DropdownButton.stories.js.map +1 -1
  174. package/react/components/common/stories/FileInput.stories.d.ts +2 -1
  175. package/react/components/common/stories/FileInput.stories.js +6 -0
  176. package/react/components/common/stories/FileInput.stories.js.map +1 -1
  177. package/react/components/common/stories/FinsembleIcon.stories.js.map +1 -1
  178. package/react/components/common/stories/FinsembleSelect.stories.js.map +1 -1
  179. package/react/components/common/stories/FinsembleToggle.stories.js.map +1 -1
  180. package/react/components/common/stories/Header.stories.js.map +1 -1
  181. package/react/components/common/stories/ImagePreview.stories.js.map +1 -1
  182. package/react/components/common/stories/InputTable.stories.js.map +1 -1
  183. package/react/components/common/stories/LoadingSpinner.stories.js.map +1 -1
  184. package/react/components/common/stories/Tab.stories.js.map +1 -1
  185. package/react/components/common/stories/Tooltip.stories.js.map +1 -1
  186. package/react/components/common/tests/Accordion.spec.js.map +1 -1
  187. package/react/components/common/tests/ButtonRow.spec.js.map +1 -1
  188. package/react/components/common/tests/Checkbox.spec.js.map +1 -1
  189. package/react/components/common/tests/ColorPicker.spec.js.map +1 -1
  190. package/react/components/common/tests/DropZone.spec.js.map +1 -1
  191. package/react/components/common/tests/FileInput.spec.js +20 -5
  192. package/react/components/common/tests/FileInput.spec.js.map +1 -1
  193. package/react/components/common/tests/FinsembleSelect.spec.js.map +1 -1
  194. package/react/components/common/tests/FinsembleToggle.spec.js.map +1 -1
  195. package/react/components/common/tests/Header.spec.js +6 -2
  196. package/react/components/common/tests/Header.spec.js.map +1 -1
  197. package/react/components/common/tests/ImagePreview.spec.js.map +1 -1
  198. package/react/components/common/tests/InputTable.spec.js.map +1 -1
  199. package/react/components/common/tests/Tab.spec.js.map +1 -1
  200. package/react/components/common/tests/Tooltip.spec.js.map +1 -1
  201. package/react/components/favorites/FavoriteMaker.js.map +1 -1
  202. package/react/components/favorites/FavoritesShell.js.map +1 -1
  203. package/react/components/favorites/FavoritesShell.spec.js.map +1 -1
  204. package/react/components/favorites/FavoritesShell.stories.js.map +1 -1
  205. package/react/components/favorites/index.js.map +1 -1
  206. package/react/components/fdc3Resolver/ResolverContainer.js.map +1 -1
  207. package/react/components/fdc3Resolver/ResolverDialog.css +126 -126
  208. package/react/components/fdc3Resolver/ResolverDialog.js.map +1 -1
  209. package/react/components/fdc3Resolver/ResolverDialog.spec.js.map +1 -1
  210. package/react/components/fdc3Resolver/ResolverDialog.stories.js.map +1 -1
  211. package/react/components/icon/Icon.js.map +1 -1
  212. package/react/components/icon/index.js.map +1 -1
  213. package/react/components/legacyControls/FinsembleDialog.js.map +1 -1
  214. package/react/components/legacyControls/FinsembleDialogButton.js +1 -1
  215. package/react/components/legacyControls/FinsembleDialogButton.js.map +1 -1
  216. package/react/components/legacyControls/FinsembleDialogQuestion.js.map +1 -1
  217. package/react/components/legacyControls/FinsembleDialogTextInput.js.map +1 -1
  218. package/react/components/legacyControls/FinsembleDnDContext.d.ts +2 -1
  219. package/react/components/legacyControls/FinsembleDnDContext.js +8 -6
  220. package/react/components/legacyControls/FinsembleDnDContext.js.map +1 -1
  221. package/react/components/legacyControls/FinsembleDraggable.js.map +1 -1
  222. package/react/components/legacyControls/FinsembleHoverDetector.js.map +1 -1
  223. package/react/components/legacyControls/FinsembleMenuSection.js.map +1 -1
  224. package/react/components/legacyControls/stories/FinsembleDialog.stories.js.map +1 -1
  225. package/react/components/legacyControls/stories/FinsembleDialogButton.stories.js.map +1 -1
  226. package/react/components/legacyControls/stories/FinsembleDialogQuestion.stories.js.map +1 -1
  227. package/react/components/legacyControls/stories/FinsembleDialogTextInput.stories.js.map +1 -1
  228. package/react/components/legacyControls/tests/FinsembleDialog.spec.js.map +1 -1
  229. package/react/components/legacyControls/tests/FinsembleDialogButton.spec.js.map +1 -1
  230. package/react/components/legacyControls/tests/FinsembleDialogQuestion.spec.js.map +1 -1
  231. package/react/components/legacyControls/tests/FinsembleDialogTextInput.spec.js.map +1 -1
  232. package/react/components/linker/LinkerMenu.js.map +1 -1
  233. package/react/components/linker/LinkerMenuDeprecated.js.map +1 -1
  234. package/react/components/linker/index.js.map +1 -1
  235. package/react/components/linker/remoteRedux.d.ts +1 -1
  236. package/react/components/linker/remoteRedux.js.map +1 -1
  237. package/react/components/menu/Menu.d.ts +1 -0
  238. package/react/components/menu/Menu.js.map +1 -1
  239. package/react/components/menu/MenuAutoResizer.d.ts +2 -1
  240. package/react/components/menu/MenuAutoResizer.js +3 -2
  241. package/react/components/menu/MenuAutoResizer.js.map +1 -1
  242. package/react/components/menu/MenuContent.js.map +1 -1
  243. package/react/components/menu/MenuHotKey.js.map +1 -1
  244. package/react/components/menu/MenuItem.js.map +1 -1
  245. package/react/components/menu/MenuPortal.js +118 -92
  246. package/react/components/menu/MenuPortal.js.map +1 -1
  247. package/react/components/menu/MenuShell.d.ts +1 -0
  248. package/react/components/menu/MenuShell.js +3 -2
  249. package/react/components/menu/MenuShell.js.map +1 -1
  250. package/react/components/menu/MenuToggle.js.map +1 -1
  251. package/react/components/menu/index.js.map +1 -1
  252. package/react/components/menu/keyboardNavigation.js.map +1 -1
  253. package/react/components/menu/menuContext.d.ts +1 -0
  254. package/react/components/menu/menuContext.js.map +1 -1
  255. package/react/components/menu/menuHelpers.d.ts +1 -1
  256. package/react/components/menu/menuHelpers.js +2 -2
  257. package/react/components/menu/menuHelpers.js.map +1 -1
  258. package/react/components/notifications/components/NoNotifications.js.map +1 -1
  259. package/react/components/notifications/components/drawer/Drawer.js.map +1 -1
  260. package/react/components/notifications/components/drawer/DrawerControls.js.map +1 -1
  261. package/react/components/notifications/components/drawer/DrawerHeader.js.map +1 -1
  262. package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js.map +1 -1
  263. package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js +20 -27
  264. package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js.map +1 -1
  265. package/react/components/notifications/components/shared/CheckButton.d.ts +1 -1
  266. package/react/components/notifications/components/shared/CheckButton.js.map +1 -1
  267. package/react/components/notifications/components/shared/IconButton.js.map +1 -1
  268. package/react/components/notifications/components/shared/NotificationCardShell.d.ts +1 -1
  269. package/react/components/notifications/components/shared/NotificationCardShell.js +1 -1
  270. package/react/components/notifications/components/shared/NotificationCardShell.js.map +1 -1
  271. package/react/components/notifications/components/shared/OverflowMenu.d.ts +1 -1
  272. package/react/components/notifications/components/shared/OverflowMenu.js.map +1 -1
  273. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyActions.d.ts +1 -1
  274. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyActions.js.map +1 -1
  275. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyContentLogo.js.map +1 -1
  276. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.d.ts +1 -1
  277. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.js.map +1 -1
  278. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.d.ts +1 -1
  279. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.js.map +1 -1
  280. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderLogo.js.map +1 -1
  281. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderShell.d.ts +1 -1
  282. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderShell.js.map +1 -1
  283. package/react/components/notifications/components/views/CardView.js.map +1 -1
  284. package/react/components/notifications/components/views/ListView.d.ts +1 -1
  285. package/react/components/notifications/components/views/ListView.js +1 -1
  286. package/react/components/notifications/components/views/ListView.js.map +1 -1
  287. package/react/components/notifications/components/views/NotificationDetailsView.d.ts +1 -1
  288. package/react/components/notifications/components/views/NotificationDetailsView.js.map +1 -1
  289. package/react/components/notifications/constants.js.map +1 -1
  290. package/react/components/notifications/icons/Card.js.map +1 -1
  291. package/react/components/notifications/icons/Chevron.js.map +1 -1
  292. package/react/components/notifications/icons/CloseIcon.js.map +1 -1
  293. package/react/components/notifications/icons/EnvelopeClose.js.map +1 -1
  294. package/react/components/notifications/icons/EnvelopeOpen.js.map +1 -1
  295. package/react/components/notifications/icons/SnoozeIcon.js.map +1 -1
  296. package/react/components/notifications/index.js.map +1 -1
  297. package/react/components/notifications/notificationsContext.js.map +1 -1
  298. package/react/components/notifications/types.d.ts +1 -1
  299. package/react/components/notifications/types.js.map +1 -1
  300. package/react/components/notifications/utils.d.ts +1 -1
  301. package/react/components/notifications/utils.js.map +1 -1
  302. package/react/components/processMonitor/ProcessMonitor.js.map +1 -1
  303. package/react/components/processMonitor/ProcessMonitorTypes.js.map +1 -1
  304. package/react/components/processMonitor/components/ChildWindow.js.map +1 -1
  305. package/react/components/processMonitor/components/ListHeader.d.ts +1 -1
  306. package/react/components/processMonitor/components/ListHeader.js.map +1 -1
  307. package/react/components/processMonitor/components/ProcessStatistics.js.map +1 -1
  308. package/react/components/processMonitor/constants.js.map +1 -1
  309. package/react/components/processMonitor/helpers.js.map +1 -1
  310. package/react/components/processMonitor/helpers.spec.js.map +1 -1
  311. package/react/components/processMonitor/index.js.map +1 -1
  312. package/react/components/processMonitor/stores/ProcessMonitorStore.d.ts +4 -3
  313. package/react/components/processMonitor/stores/ProcessMonitorStore.js +51 -50
  314. package/react/components/processMonitor/stores/ProcessMonitorStore.js.map +1 -1
  315. package/react/components/quickComponentForm/QuickComponentForm.js.map +1 -1
  316. package/react/components/quickComponentForm/index.js.map +1 -1
  317. package/react/components/quickComponentForm/quickComponent.css +3 -3
  318. package/react/components/search/Highlight.js.map +1 -1
  319. package/react/components/search/Highlight.spec.js.map +1 -1
  320. package/react/components/search/Highlight.stories.js.map +1 -1
  321. package/react/components/search/Search.js.map +1 -1
  322. package/react/components/search/SearchBestMatch.js.map +1 -1
  323. package/react/components/search/SearchInput.js.map +1 -1
  324. package/react/components/search/SearchProviderResults.js.map +1 -1
  325. package/react/components/search/SearchResult.js +4 -3
  326. package/react/components/search/SearchResult.js.map +1 -1
  327. package/react/components/search/SearchResults.js.map +1 -1
  328. package/react/components/search/index.js.map +1 -1
  329. package/react/components/shared/Animate.js.map +1 -1
  330. package/react/components/shared/BellIcon.js.map +1 -1
  331. package/react/components/shared/BellIconCrossed.js.map +1 -1
  332. package/react/components/shared/Button.js.map +1 -1
  333. package/react/components/shared/ConditionalWrapper.js.map +1 -1
  334. package/react/components/shared/DefaultDropdownButton.js.map +1 -1
  335. package/react/components/shared/NavigationButton.js.map +1 -1
  336. package/react/components/shared/Tag.js.map +1 -1
  337. package/react/components/shared/TagsMenu.js.map +1 -1
  338. package/react/components/shared/addProtocolToValidURL.js.map +1 -1
  339. package/react/components/shared/linkerUtil.js.map +1 -1
  340. package/react/components/shared/openQuitConfirmationDialog.js.map +1 -1
  341. package/react/components/shared/tests/DefaultDropdownButton.spec.js.map +1 -1
  342. package/react/components/shared/tests/addProtocolToValidURL.spec.js.map +1 -1
  343. package/react/components/shared/validateURL.js.map +1 -1
  344. package/react/components/shared/validateURL.spec.js.map +1 -1
  345. package/react/components/singleInputDialog/SingleInputDialog.css +3 -3
  346. package/react/components/singleInputDialog/SingleInputDialog.js.map +1 -1
  347. package/react/components/singleInputDialog/SingleInputDialog.spec.js.map +1 -1
  348. package/react/components/singleInputDialog/SingleInputDialog.stories.js.map +1 -1
  349. package/react/components/singleInputDialog/index.js.map +1 -1
  350. package/react/components/smartDesktopDesigner/AddApp.d.ts +2 -2
  351. package/react/components/smartDesktopDesigner/AddApp.js +28 -17
  352. package/react/components/smartDesktopDesigner/AddApp.js.map +1 -1
  353. package/react/components/smartDesktopDesigner/AppEditAccess.js.map +1 -1
  354. package/react/components/smartDesktopDesigner/AppEditPage.d.ts +2 -2
  355. package/react/components/smartDesktopDesigner/AppEditPage.js +311 -242
  356. package/react/components/smartDesktopDesigner/AppEditPage.js.map +1 -1
  357. package/react/components/smartDesktopDesigner/Appearance.css +35 -28
  358. package/react/components/smartDesktopDesigner/Appearance.helpers.js.map +1 -1
  359. package/react/components/smartDesktopDesigner/Appearance.js +1 -1
  360. package/react/components/smartDesktopDesigner/Appearance.js.map +1 -1
  361. package/react/components/smartDesktopDesigner/Application.d.ts +10 -3
  362. package/react/components/smartDesktopDesigner/Application.js +37 -44
  363. package/react/components/smartDesktopDesigner/Application.js.map +1 -1
  364. package/react/components/smartDesktopDesigner/Applications.d.ts +2 -0
  365. package/react/components/smartDesktopDesigner/Applications.js +29 -20
  366. package/react/components/smartDesktopDesigner/Applications.js.map +1 -1
  367. package/react/components/smartDesktopDesigner/AssetsPage.css +26 -26
  368. package/react/components/smartDesktopDesigner/AssetsPage.js.map +1 -1
  369. package/react/components/smartDesktopDesigner/Authentication.js +2 -9
  370. package/react/components/smartDesktopDesigner/Authentication.js.map +1 -1
  371. package/react/components/smartDesktopDesigner/AuthenticationProviderConfig.js +1 -1
  372. package/react/components/smartDesktopDesigner/AuthenticationProviderConfig.js.map +1 -1
  373. package/react/components/smartDesktopDesigner/Content.js.map +1 -1
  374. package/react/components/smartDesktopDesigner/ContentHeader.d.ts +5 -0
  375. package/react/components/smartDesktopDesigner/ContentHeader.js +10 -0
  376. package/react/components/smartDesktopDesigner/ContentHeader.js.map +1 -0
  377. package/react/components/smartDesktopDesigner/CurrentView.js.map +1 -1
  378. package/react/components/smartDesktopDesigner/EditPreload.d.ts +14 -0
  379. package/react/components/smartDesktopDesigner/EditPreload.js +169 -0
  380. package/react/components/smartDesktopDesigner/EditPreload.js.map +1 -0
  381. package/react/components/smartDesktopDesigner/Export.js +5 -5
  382. package/react/components/smartDesktopDesigner/Export.js.map +1 -1
  383. package/react/components/smartDesktopDesigner/ExportCloud.d.ts +3 -1
  384. package/react/components/smartDesktopDesigner/ExportCloud.js +4 -4
  385. package/react/components/smartDesktopDesigner/ExportCloud.js.map +1 -1
  386. package/react/components/smartDesktopDesigner/ExportDeployInfo.js.map +1 -1
  387. package/react/components/smartDesktopDesigner/ExportZip.d.ts +3 -1
  388. package/react/components/smartDesktopDesigner/ExportZip.js +8 -3
  389. package/react/components/smartDesktopDesigner/ExportZip.js.map +1 -1
  390. package/react/components/smartDesktopDesigner/GettingStarted.d.ts +1 -0
  391. package/react/components/smartDesktopDesigner/GettingStarted.js +11 -22
  392. package/react/components/smartDesktopDesigner/GettingStarted.js.map +1 -1
  393. package/react/components/smartDesktopDesigner/ItemList.d.ts +17 -0
  394. package/react/components/smartDesktopDesigner/ItemList.js +58 -0
  395. package/react/components/smartDesktopDesigner/ItemList.js.map +1 -0
  396. package/react/components/smartDesktopDesigner/Navigation.js.map +1 -1
  397. package/react/components/smartDesktopDesigner/OptionalSettingsView.d.ts +11 -0
  398. package/react/components/smartDesktopDesigner/OptionalSettingsView.js +71 -0
  399. package/react/components/smartDesktopDesigner/OptionalSettingsView.js.map +1 -0
  400. package/react/components/smartDesktopDesigner/Preloads.d.ts +8 -0
  401. package/react/components/smartDesktopDesigner/Preloads.js +26 -0
  402. package/react/components/smartDesktopDesigner/Preloads.js.map +1 -0
  403. package/react/components/smartDesktopDesigner/ProjectErrors.js.map +1 -1
  404. package/react/components/smartDesktopDesigner/Publish.js.map +1 -1
  405. package/react/components/smartDesktopDesigner/PublishProgress.js.map +1 -1
  406. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.d.ts +1 -1
  407. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js +34 -3
  408. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js.map +1 -1
  409. package/react/components/smartDesktopDesigner/ThemePage.css +109 -109
  410. package/react/components/smartDesktopDesigner/ThemePage.js +0 -7
  411. package/react/components/smartDesktopDesigner/ThemePage.js.map +1 -1
  412. package/react/components/smartDesktopDesigner/Themes.js +0 -2
  413. package/react/components/smartDesktopDesigner/Themes.js.map +1 -1
  414. package/react/components/smartDesktopDesigner/Toolbar.js +16 -18
  415. package/react/components/smartDesktopDesigner/Toolbar.js.map +1 -1
  416. package/react/components/smartDesktopDesigner/View.js +1 -1
  417. package/react/components/smartDesktopDesigner/View.js.map +1 -1
  418. package/react/components/smartDesktopDesigner/common/fsbl_functions.d.ts +1 -1
  419. package/react/components/smartDesktopDesigner/common/fsbl_functions.js +2 -2
  420. package/react/components/smartDesktopDesigner/common/fsbl_functions.js.map +1 -1
  421. package/react/components/smartDesktopDesigner/common/getCSSVars.js.map +1 -1
  422. package/react/components/smartDesktopDesigner/common/views.js +27 -3
  423. package/react/components/smartDesktopDesigner/common/views.js.map +1 -1
  424. package/react/components/smartDesktopDesigner/css/appearance.css +21 -18
  425. package/react/components/smartDesktopDesigner/css/applications.css +167 -167
  426. package/react/components/smartDesktopDesigner/css/authentication.css +119 -130
  427. package/react/components/smartDesktopDesigner/css/buttons.css +12 -12
  428. package/react/components/smartDesktopDesigner/css/export.css +176 -167
  429. package/react/components/smartDesktopDesigner/css/getting-started.css +28 -8
  430. package/react/components/smartDesktopDesigner/css/nav.css +120 -109
  431. package/react/components/smartDesktopDesigner/css/project-errors.css +15 -15
  432. package/react/components/smartDesktopDesigner/css/project-header.css +124 -121
  433. package/react/components/smartDesktopDesigner/css/styles.css +178 -179
  434. package/react/components/smartDesktopDesigner/css/views.css +23 -17
  435. package/react/components/smartDesktopDesigner/fixtures/apps.d.ts +1 -1
  436. package/react/components/smartDesktopDesigner/fixtures/apps.js +23 -1
  437. package/react/components/smartDesktopDesigner/fixtures/apps.js.map +1 -1
  438. package/react/components/smartDesktopDesigner/fixtures/authenticationProps.js.map +1 -1
  439. package/react/components/smartDesktopDesigner/fixtures/configTemplate.js.map +1 -1
  440. package/react/components/smartDesktopDesigner/fixtures/exportProps.js.map +1 -1
  441. package/react/components/smartDesktopDesigner/fixtures/preloads.d.ts +22 -0
  442. package/react/components/smartDesktopDesigner/fixtures/preloads.js +40 -0
  443. package/react/components/smartDesktopDesigner/fixtures/preloads.js.map +1 -0
  444. package/react/components/smartDesktopDesigner/fixtures/projectErrorsProps.js.map +1 -1
  445. package/react/components/smartDesktopDesigner/fixtures/publishProgress.d.ts +1 -1
  446. package/react/components/smartDesktopDesigner/fixtures/publishProgress.js.map +1 -1
  447. package/react/components/smartDesktopDesigner/fixtures/themeProps.js.map +1 -1
  448. package/react/components/smartDesktopDesigner/fixtures/views.js +14 -6
  449. package/react/components/smartDesktopDesigner/fixtures/views.js.map +1 -1
  450. package/react/components/smartDesktopDesigner/sdd_helpers.js +1 -1
  451. package/react/components/smartDesktopDesigner/sdd_helpers.js.map +1 -1
  452. package/react/components/smartDesktopDesigner/stories/AppEditPage.stories.d.ts +2 -1
  453. package/react/components/smartDesktopDesigner/stories/AppEditPage.stories.js +2 -0
  454. package/react/components/smartDesktopDesigner/stories/AppEditPage.stories.js.map +1 -1
  455. package/react/components/smartDesktopDesigner/stories/Appearance.stories.js.map +1 -1
  456. package/react/components/smartDesktopDesigner/stories/Applications.stories.js.map +1 -1
  457. package/react/components/smartDesktopDesigner/stories/AssetsPage.stories.js.map +1 -1
  458. package/react/components/smartDesktopDesigner/stories/Authentication.stories.js.map +1 -1
  459. package/react/components/smartDesktopDesigner/stories/ContentHeader.stories.d.ts +10 -0
  460. package/react/components/smartDesktopDesigner/stories/ContentHeader.stories.js +13 -0
  461. package/react/components/smartDesktopDesigner/stories/ContentHeader.stories.js.map +1 -0
  462. package/react/components/smartDesktopDesigner/stories/EditPreload.stories.d.ts +11 -0
  463. package/react/components/smartDesktopDesigner/stories/EditPreload.stories.js +35 -0
  464. package/react/components/smartDesktopDesigner/stories/EditPreload.stories.js.map +1 -0
  465. package/react/components/smartDesktopDesigner/stories/Export.stories.js.map +1 -1
  466. package/react/components/smartDesktopDesigner/stories/ExportCloud.stories.d.ts +1 -1
  467. package/react/components/smartDesktopDesigner/stories/ExportCloud.stories.js +1 -1
  468. package/react/components/smartDesktopDesigner/stories/ExportCloud.stories.js.map +1 -1
  469. package/react/components/smartDesktopDesigner/stories/ExportZip.stories.d.ts +1 -1
  470. package/react/components/smartDesktopDesigner/stories/ExportZip.stories.js +1 -1
  471. package/react/components/smartDesktopDesigner/stories/ExportZip.stories.js.map +1 -1
  472. package/react/components/smartDesktopDesigner/stories/GettingStarted.stories.js.map +1 -1
  473. package/react/components/smartDesktopDesigner/stories/ItemList.stories.d.ts +16 -0
  474. package/react/components/smartDesktopDesigner/stories/{ApplicationList.stories.js → ItemList.stories.js} +30 -23
  475. package/react/components/smartDesktopDesigner/stories/ItemList.stories.js.map +1 -0
  476. package/react/components/smartDesktopDesigner/stories/Navigation.stories.js.map +1 -1
  477. package/react/components/smartDesktopDesigner/stories/OptionalSettingsView.stories.d.ts +11 -0
  478. package/react/components/smartDesktopDesigner/stories/OptionalSettingsView.stories.js +28 -0
  479. package/react/components/smartDesktopDesigner/stories/OptionalSettingsView.stories.js.map +1 -0
  480. package/react/components/smartDesktopDesigner/stories/Preloads.stories.d.ts +11 -0
  481. package/react/components/smartDesktopDesigner/stories/Preloads.stories.js +31 -0
  482. package/react/components/smartDesktopDesigner/stories/Preloads.stories.js.map +1 -0
  483. package/react/components/smartDesktopDesigner/stories/ProjectErrors.stories.js.map +1 -1
  484. package/react/components/smartDesktopDesigner/stories/Publish.stories.js.map +1 -1
  485. package/react/components/smartDesktopDesigner/stories/PublishProgress.stories.js.map +1 -1
  486. package/react/components/smartDesktopDesigner/stories/SmartDesktopDesigner.stories.js +7 -1
  487. package/react/components/smartDesktopDesigner/stories/SmartDesktopDesigner.stories.js.map +1 -1
  488. package/react/components/smartDesktopDesigner/stories/ThemePage.stories.js.map +1 -1
  489. package/react/components/smartDesktopDesigner/stories/Themes.stories.js.map +1 -1
  490. package/react/components/smartDesktopDesigner/stories/Toolbar.stories.js.map +1 -1
  491. package/react/components/smartDesktopDesigner/tests/AppEditPage.spec.js +1100 -311
  492. package/react/components/smartDesktopDesigner/tests/AppEditPage.spec.js.map +1 -1
  493. package/react/components/smartDesktopDesigner/tests/{ApplicationList.spec.d.ts → Application.spec.d.ts} +0 -0
  494. package/react/components/smartDesktopDesigner/tests/Application.spec.js +1496 -0
  495. package/react/components/smartDesktopDesigner/tests/Application.spec.js.map +1 -0
  496. package/react/components/smartDesktopDesigner/tests/Applications.spec.d.ts +1 -1
  497. package/react/components/smartDesktopDesigner/tests/Applications.spec.js +94 -7
  498. package/react/components/smartDesktopDesigner/tests/Applications.spec.js.map +1 -1
  499. package/react/components/smartDesktopDesigner/tests/Authentication.spec.js.map +1 -1
  500. package/react/components/smartDesktopDesigner/tests/ContentHeader.spec.d.ts +1 -0
  501. package/react/components/smartDesktopDesigner/tests/ContentHeader.spec.js +31 -0
  502. package/react/components/smartDesktopDesigner/tests/ContentHeader.spec.js.map +1 -0
  503. package/react/components/smartDesktopDesigner/tests/EditPreload.spec.d.ts +1 -0
  504. package/react/components/smartDesktopDesigner/tests/EditPreload.spec.js +61 -0
  505. package/react/components/smartDesktopDesigner/tests/EditPreload.spec.js.map +1 -0
  506. package/react/components/smartDesktopDesigner/tests/Export.spec.js +95 -0
  507. package/react/components/smartDesktopDesigner/tests/Export.spec.js.map +1 -1
  508. package/react/components/smartDesktopDesigner/tests/ExportZip.spec.js +7 -0
  509. package/react/components/smartDesktopDesigner/tests/ExportZip.spec.js.map +1 -1
  510. package/react/components/smartDesktopDesigner/tests/ItemList.spec.d.ts +1 -0
  511. package/react/components/smartDesktopDesigner/tests/{ApplicationList.spec.js → ItemList.spec.js} +8 -8
  512. package/react/components/smartDesktopDesigner/tests/ItemList.spec.js.map +1 -0
  513. package/react/components/smartDesktopDesigner/tests/Navigation.spec.js.map +1 -1
  514. package/react/components/smartDesktopDesigner/tests/Preloads.spec.d.ts +1 -0
  515. package/react/components/smartDesktopDesigner/tests/Preloads.spec.js +47 -0
  516. package/react/components/smartDesktopDesigner/tests/Preloads.spec.js.map +1 -0
  517. package/react/components/smartDesktopDesigner/tests/ProjectErrors.spec.js +1 -1
  518. package/react/components/smartDesktopDesigner/tests/ProjectErrors.spec.js.map +1 -1
  519. package/react/components/smartDesktopDesigner/tests/Publish.spec.js.map +1 -1
  520. package/react/components/smartDesktopDesigner/tests/PublishProgess.spec.js.map +1 -1
  521. package/react/components/smartDesktopDesigner/tests/SmartDesktopDesigner.spec.js +7 -30
  522. package/react/components/smartDesktopDesigner/tests/SmartDesktopDesigner.spec.js.map +1 -1
  523. package/react/components/smartDesktopDesigner/tests/Themes.spec.js.map +1 -1
  524. package/react/components/smartDesktopDesigner/tests/Toolbar.spec.d.ts +1 -1
  525. package/react/components/smartDesktopDesigner/tests/Toolbar.spec.js +5 -6
  526. package/react/components/smartDesktopDesigner/tests/Toolbar.spec.js.map +1 -1
  527. package/react/components/smartDesktopDesigner/tests/a11y_helper.js.map +1 -1
  528. package/react/components/smartDesktopDesigner/tests/sdd_helpers.spec.js +1 -0
  529. package/react/components/smartDesktopDesigner/tests/sdd_helpers.spec.js.map +1 -1
  530. package/react/components/smartDesktopDesigner/themeDefinitions.js.map +1 -1
  531. package/react/components/system/System.js.map +1 -1
  532. package/react/components/system/System.spec.js.map +1 -1
  533. package/react/components/system/System.stories.js.map +1 -1
  534. package/react/components/system/SystemTrayComponentShell.js.map +1 -1
  535. package/react/components/system/index.js.map +1 -1
  536. package/react/components/toolbar/AutoArrange.js.map +1 -1
  537. package/react/components/toolbar/DragHandle.js.map +1 -1
  538. package/react/components/toolbar/DragHandle.spec.d.ts +1 -0
  539. package/react/components/toolbar/DragHandle.spec.js +31 -0
  540. package/react/components/toolbar/DragHandle.spec.js.map +1 -0
  541. package/react/components/toolbar/DragHandle.stories.d.ts +13 -0
  542. package/react/components/toolbar/DragHandle.stories.js +39 -0
  543. package/react/components/toolbar/DragHandle.stories.js.map +1 -0
  544. package/react/components/toolbar/MinimizeAll.js.map +1 -1
  545. package/react/components/toolbar/MinimizeAll.spec.js.map +1 -1
  546. package/react/components/toolbar/MinimizeAll.stories.js.map +1 -1
  547. package/react/components/toolbar/NotificationControl.js.map +1 -1
  548. package/react/components/toolbar/RevealAll.js.map +1 -1
  549. package/react/components/toolbar/RevealAll.spec.js.map +1 -1
  550. package/react/components/toolbar/RevealAll.stories.js.map +1 -1
  551. package/react/components/toolbar/ToolbarIcon.js.map +1 -1
  552. package/react/components/toolbar/ToolbarSection.js.map +1 -1
  553. package/react/components/toolbar/ToolbarShell.js.map +1 -1
  554. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.d.ts +1 -1
  555. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.js.map +1 -1
  556. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncherMenu.js.map +1 -1
  557. package/react/components/toolbar/advancedAppLauncher/components/AddNewAppForm.js.map +1 -1
  558. package/react/components/toolbar/advancedAppLauncher/components/AddNewFolder.js.map +1 -1
  559. package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.js.map +1 -1
  560. package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.js.map +1 -1
  561. package/react/components/toolbar/advancedAppLauncher/components/AppTagsList.js.map +1 -1
  562. package/react/components/toolbar/advancedAppLauncher/components/Content.d.ts +1 -1
  563. package/react/components/toolbar/advancedAppLauncher/components/Content.js.map +1 -1
  564. package/react/components/toolbar/advancedAppLauncher/components/FilterSort.js.map +1 -1
  565. package/react/components/toolbar/advancedAppLauncher/components/FoldersList.d.ts +1 -1
  566. package/react/components/toolbar/advancedAppLauncher/components/FoldersList.js +47 -45
  567. package/react/components/toolbar/advancedAppLauncher/components/FoldersList.js.map +1 -1
  568. package/react/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.js.map +1 -1
  569. package/react/components/toolbar/advancedAppLauncher/components/NoAppsFound.js.map +1 -1
  570. package/react/components/toolbar/advancedAppLauncher/components/SearchBox.js.map +1 -1
  571. package/react/components/toolbar/advancedAppLauncher/components/SortBy.js.map +1 -1
  572. package/react/components/toolbar/advancedAppLauncher/components/TagsList.d.ts +1 -1
  573. package/react/components/toolbar/advancedAppLauncher/components/TagsList.js.map +1 -1
  574. package/react/components/toolbar/advancedAppLauncher/components/TagsMenu.js.map +1 -1
  575. package/react/components/toolbar/advancedAppLauncher/components/ToggleFavoriteDropdown.js.map +1 -1
  576. package/react/components/toolbar/advancedAppLauncher/modules/AppDirectory.js.map +1 -1
  577. package/react/components/toolbar/advancedAppLauncher/modules/FDC3.js.map +1 -1
  578. package/react/components/toolbar/advancedAppLauncher/stores/LauncherStore.d.ts +2 -2
  579. package/react/components/toolbar/advancedAppLauncher/stores/LauncherStore.js.map +1 -1
  580. package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js.map +1 -1
  581. package/react/components/toolbar/advancedAppLauncher/utils/sort-functions.js.map +1 -1
  582. package/react/components/toolbar/appLauncher/AppLauncherMenu.js.map +1 -1
  583. package/react/components/toolbar/appLauncher/DynamicAppLauncher.js.map +1 -1
  584. package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.d.ts +1 -0
  585. package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.js.map +1 -1
  586. package/react/components/toolbar/appLauncher/appLauncher.css +30 -30
  587. package/react/components/toolbar/appLauncher/components/componentList.d.ts +2 -2
  588. package/react/components/toolbar/appLauncher/components/componentList.js.map +1 -1
  589. package/react/components/toolbar/appLauncher/stores/appLauncherStore.d.ts +3 -2
  590. package/react/components/toolbar/appLauncher/stores/appLauncherStore.js +17 -34
  591. package/react/components/toolbar/appLauncher/stores/appLauncherStore.js.map +1 -1
  592. package/react/components/toolbar/dashbar/Dashbar.js +9 -12
  593. package/react/components/toolbar/dashbar/Dashbar.js.map +1 -1
  594. package/react/components/toolbar/dashbar/DashbarItem.js.map +1 -1
  595. package/react/components/toolbar/index.js.map +1 -1
  596. package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.d.ts +2 -2
  597. package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.js.map +1 -1
  598. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.d.ts +1 -1
  599. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js.map +1 -1
  600. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.js.map +1 -1
  601. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.d.ts +1 -1
  602. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.js.map +1 -1
  603. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.d.ts +4 -4
  604. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js +1 -1
  605. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js.map +1 -1
  606. package/react/components/toolbar/workspaceManagementMenu/workspaceManagementMenu.css +90 -90
  607. package/react/components/userPreferences/NotificationsPreferencesContext.js.map +1 -1
  608. package/react/components/userPreferences/UserPreferenceTypes.js.map +1 -1
  609. package/react/components/userPreferences/UserPreferences.js.map +1 -1
  610. package/react/components/userPreferences/UserPreferencesBase.js.map +1 -1
  611. package/react/components/userPreferences/UserPreferencesWrapper.js.map +1 -1
  612. package/react/components/userPreferences/components/ContentSection.js.map +1 -1
  613. package/react/components/userPreferences/components/LeftNav.js.map +1 -1
  614. package/react/components/userPreferences/components/content/DashbarEditor.js.map +1 -1
  615. package/react/components/userPreferences/components/content/DashbarEditorItem.js.map +1 -1
  616. package/react/components/userPreferences/components/content/General.js.map +1 -1
  617. package/react/components/userPreferences/components/content/Notifications.js.map +1 -1
  618. package/react/components/userPreferences/components/content/Workspaces.d.ts +1 -1
  619. package/react/components/userPreferences/components/content/Workspaces.js +1 -1
  620. package/react/components/userPreferences/components/content/Workspaces.js.map +1 -1
  621. package/react/components/userPreferences/components/content/notificationViews/NotificationsPreferencesHome.js.map +1 -1
  622. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourceTypes.js.map +1 -1
  623. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourcesPreferences.js.map +1 -1
  624. package/react/components/userPreferences/components/content/notificationViews/notificationViewsUtils.js.map +1 -1
  625. package/react/components/userPreferences/components/general/ScheduledRestart.js.map +1 -1
  626. package/react/components/userPreferences/components/workspaces/WorkspaceButton.js.map +1 -1
  627. package/react/components/userPreferences/components/workspaces/WorkspaceComponents.js.map +1 -1
  628. package/react/components/userPreferences/components/workspaces/WorkspaceItem.js.map +1 -1
  629. package/react/components/userPreferences/components/workspaces/WorkspaceItemList.js.map +1 -1
  630. package/react/components/userPreferences/index.js.map +1 -1
  631. package/react/components/userPreferences/stores/UserPreferencesStore.d.ts +1 -1
  632. package/react/components/userPreferences/stores/UserPreferencesStore.js.map +1 -1
  633. package/react/components/userPreferences/stories/DashbarEditor.stories.js.map +1 -1
  634. package/react/components/userPreferences/stories/DashbarEditorItem.stories.js.map +1 -1
  635. package/react/components/userPreferences/stories/General.stories.js.map +1 -1
  636. package/react/components/userPreferences/stories/Notifications.stories.js.map +1 -1
  637. package/react/components/userPreferences/stories/NotificationsSourceTypes.stories.js.map +1 -1
  638. package/react/components/userPreferences/stories/NotificationsSources.stories.js.map +1 -1
  639. package/react/components/userPreferences/stories/UserPreferences.stories.js.map +1 -1
  640. package/react/components/userPreferences/stories/WorkspaceButton.stories.js.map +1 -1
  641. package/react/components/userPreferences/stories/WorkspaceComponents.stories.js.map +1 -1
  642. package/react/components/userPreferences/stories/WorkspaceItem.stories.js.map +1 -1
  643. package/react/components/userPreferences/stories/WorkspaceItemList.stories.js.map +1 -1
  644. package/react/components/userPreferences/stories/Workspaces.stories.js.map +1 -1
  645. package/react/components/userPreferences/tests/ContentSection.spec.js.map +1 -1
  646. package/react/components/userPreferences/tests/DashbarEditor.spec.js.map +1 -1
  647. package/react/components/userPreferences/tests/DashbarEditorItem.spec.js.map +1 -1
  648. package/react/components/userPreferences/tests/General.spec.js.map +1 -1
  649. package/react/components/userPreferences/tests/LeftNav.spec.js.map +1 -1
  650. package/react/components/userPreferences/tests/NotificationSourceTypes.spec.js.map +1 -1
  651. package/react/components/userPreferences/tests/Notifications.spec.js.map +1 -1
  652. package/react/components/userPreferences/tests/NotificationsPreferencesHome.spec.js.map +1 -1
  653. package/react/components/userPreferences/tests/NotificationsSourcesPreferences.spec.js.map +1 -1
  654. package/react/components/userPreferences/tests/ScheduledRestart.spec.js +1 -1
  655. package/react/components/userPreferences/tests/ScheduledRestart.spec.js.map +1 -1
  656. package/react/components/userPreferences/tests/WorkspaceButton.spec.js.map +1 -1
  657. package/react/components/userPreferences/tests/WorkspaceComponents.spec.js.map +1 -1
  658. package/react/components/userPreferences/tests/WorkspaceItem.spec.js.map +1 -1
  659. package/react/components/userPreferences/tests/WorkspaceItemList.spec.js.map +1 -1
  660. package/react/components/utils.js.map +1 -1
  661. package/react/components/windowTitleBar/WindowTitleBarShell.d.ts +4 -2
  662. package/react/components/windowTitleBar/WindowTitleBarShell.js +60 -59
  663. package/react/components/windowTitleBar/WindowTitleBarShell.js.map +1 -1
  664. package/react/components/windowTitleBar/components/center/Tab.d.ts +0 -1
  665. package/react/components/windowTitleBar/components/center/Tab.js +2 -2
  666. package/react/components/windowTitleBar/components/center/Tab.js.map +1 -1
  667. package/react/components/windowTitleBar/components/center/TabList.d.ts +2 -3
  668. package/react/components/windowTitleBar/components/center/TabList.js +19 -82
  669. package/react/components/windowTitleBar/components/center/TabList.js.map +1 -1
  670. package/react/components/windowTitleBar/components/center/TabRegion.js.map +1 -1
  671. package/react/components/windowTitleBar/components/left/LinkerButton.js.map +1 -1
  672. package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.js.map +1 -1
  673. package/react/components/windowTitleBar/components/left/LinkerGroups.js.map +1 -1
  674. package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.js.map +1 -1
  675. package/react/components/windowTitleBar/components/left/ShareButton.js.map +1 -1
  676. package/react/components/windowTitleBar/components/right/AlwaysOnTopButton.js.map +1 -1
  677. package/react/components/windowTitleBar/components/right/CloseButton.js.map +1 -1
  678. package/react/components/windowTitleBar/components/right/GroupingButton.js.map +1 -1
  679. package/react/components/windowTitleBar/components/right/MaximizeButton.d.ts +7 -0
  680. package/react/components/windowTitleBar/components/right/MaximizeButton.js +8 -2
  681. package/react/components/windowTitleBar/components/right/MaximizeButton.js.map +1 -1
  682. package/react/components/windowTitleBar/components/right/MinimizeButton.js.map +1 -1
  683. package/react/components/windowTitleBar/components/windowTitle.d.ts +9 -6
  684. package/react/components/windowTitleBar/components/windowTitle.js +154 -45
  685. package/react/components/windowTitleBar/components/windowTitle.js.map +1 -1
  686. package/react/components/windowTitleBar/index.js.map +1 -1
  687. package/react/components/windowTitleBar/stores/windowTitleBarStore.d.ts +3 -3
  688. package/react/components/windowTitleBar/stores/windowTitleBarStore.js +213 -217
  689. package/react/components/windowTitleBar/stores/windowTitleBarStore.js.map +1 -1
  690. package/react/components/windowTitleBar/stores/windowTitleBarStoreDefaults.js.map +1 -1
  691. package/react/components/windowTitleBar/windowTitleBarContext.js.map +1 -1
  692. package/react/components/yesNoDialog/Timer.spec.js.map +1 -1
  693. package/react/components/yesNoDialog/Timer.stories.js.map +1 -1
  694. package/react/components/yesNoDialog/YesNoDialog.css +3 -3
  695. package/react/components/yesNoDialog/YesNoDialog.js.map +1 -1
  696. package/react/components/yesNoDialog/YesNoDialog.spec.js.map +1 -1
  697. package/react/components/yesNoDialog/YesNoDialog.stories.js.map +1 -1
  698. package/react/components/yesNoDialog/index.js.map +1 -1
  699. package/react/components/yesNoDialog/timer.js.map +1 -1
  700. package/react/enzymeSetup.js.map +1 -1
  701. package/react/hooks/index.js.map +1 -1
  702. package/react/hooks/useAuth.js.map +1 -1
  703. package/react/hooks/useDashbar.js.map +1 -1
  704. package/react/hooks/useDeepEffect.js.map +1 -1
  705. package/react/hooks/useFavorites.js.map +1 -1
  706. package/react/hooks/useFavoritesShell.js.map +1 -1
  707. package/react/hooks/useHotkey.js.map +1 -1
  708. package/react/hooks/useLinker.js.map +1 -1
  709. package/react/hooks/useMenu.js.map +1 -1
  710. package/react/hooks/useNotifications.d.ts +1 -1
  711. package/react/hooks/useNotifications.js.map +1 -1
  712. package/react/hooks/useOutsideClickDetector.js.map +1 -1
  713. package/react/hooks/usePubSub.js.map +1 -1
  714. package/react/hooks/useSearch.js.map +1 -1
  715. package/react/hooks/useToolbar.js.map +1 -1
  716. package/react/hooks/useWorkspace.js.map +1 -1
  717. package/react/reducers/favoriteReducer.js.map +1 -1
  718. package/react/reducers/linkerReducer.js.map +1 -1
  719. package/react/reducers/menuReducer.js.map +1 -1
  720. package/react/reducers/rootReducer.d.ts +11 -3
  721. package/react/reducers/rootReducer.js.map +1 -1
  722. package/react/reducers/searchReducer.js.map +1 -1
  723. package/react/reducers/smartDesktopDesignerReducer.js +8 -0
  724. package/react/reducers/smartDesktopDesignerReducer.js.map +1 -1
  725. package/react/reducers/toolbarReducer.js.map +1 -1
  726. package/react/reducers/workspaceReducer.js.map +1 -1
  727. package/react/store.d.ts +22 -6
  728. package/react/store.js.map +1 -1
  729. package/react/types/advancedAppLauncherTypes.js.map +1 -1
  730. package/react/types/dashbarTypes.js.map +1 -1
  731. package/react/types/favoriteTypes.js.map +1 -1
  732. package/react/types/fdc3.d.ts +2 -2
  733. package/react/types/fdc3.js.map +1 -1
  734. package/react/types/hotkeyTypes.js.map +1 -1
  735. package/react/types/iconTypes.js.map +1 -1
  736. package/react/types/linkerTypes.js.map +1 -1
  737. package/react/types/searchTypes.d.ts +1 -8
  738. package/react/types/searchTypes.js.map +1 -1
  739. package/react/types/smartDesktopDesignerTypes.d.ts +8 -2
  740. package/react/types/smartDesktopDesignerTypes.js.map +1 -1
  741. package/react/types/windowTitleBar.d.ts +4 -2
  742. package/react/types/windowTitleBar.js.map +1 -1
  743. package/react/types/workspaceTypes.js.map +1 -1
  744. package/react/components/common/FontSizeSelector.d.ts +0 -7
  745. package/react/components/common/FontSizeSelector.js +0 -42
  746. package/react/components/common/FontSizeSelector.js.map +0 -1
  747. package/react/components/common/stories/FontSizeSelector.stories.d.ts +0 -12
  748. package/react/components/common/stories/FontSizeSelector.stories.js +0 -24
  749. package/react/components/common/stories/FontSizeSelector.stories.js.map +0 -1
  750. package/react/components/smartDesktopDesigner/ApplicationList.d.ts +0 -15
  751. package/react/components/smartDesktopDesigner/ApplicationList.js +0 -56
  752. package/react/components/smartDesktopDesigner/ApplicationList.js.map +0 -1
  753. package/react/components/smartDesktopDesigner/stories/ApplicationList.stories.d.ts +0 -15
  754. package/react/components/smartDesktopDesigner/stories/ApplicationList.stories.js.map +0 -1
  755. package/react/components/smartDesktopDesigner/tests/ApplicationList.spec.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ProcessStatistics.js","sourceRoot":"","sources":["../../../../src/components/processMonitor/components/ProcessStatistics.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport { Actions } from \"../stores/ProcessMonitorStore\";\r\nimport { HIGH_CPU, HIGH_MEMORY_USAGE, MODERATE_CPU_USAGE, MODERATE_MEMORY_USAGE, TO_MB } from \"../constants\";\r\nimport { bytesToSize, roundDecimalToPrecision } from \"../helpers\";\r\nimport { ProcessType, ViewModeEnums, ModeStatsType } from \"../ProcessMonitorTypes\";\r\n//Not used right now. Currently using alerts. This is for the future.\r\n\r\ninterface IProps {\r\n\tmode: ViewModeEnums;\r\n\tfields: ModeStatsType[];\r\n\tstats: ProcessType[\"statistics\"];\r\n}\r\n\r\n/**\r\n * Given a number, will return modifier classes that change the background. High usage === red. Moderate === orange.\r\n */\r\nfunction getClassesForStat(number: number | undefined, statType: string) {\r\n\tlet classes = \"statistic\",\r\n\t\thigh_comparison = HIGH_MEMORY_USAGE * TO_MB,\r\n\t\tmoderate_comparison = MODERATE_MEMORY_USAGE * TO_MB;\r\n\r\n\tif (typeof number === \"undefined\") {\r\n\t\treturn classes;\r\n\t}\r\n\r\n\tif (statType === \"CPU\") {\r\n\t\t(high_comparison = HIGH_CPU), (moderate_comparison = MODERATE_CPU_USAGE);\r\n\t}\r\n\tif (number > high_comparison) {\r\n\t\tclasses = `${classes} high-usage`;\r\n\t} else if (number > moderate_comparison) {\r\n\t\tclasses = `${classes} moderate-usage`;\r\n\t}\r\n\treturn classes;\r\n}\r\n\r\n/**\r\n * Outputs something nice. 102423465243 outputs whatever that number is in KB/MB/GB.\r\n * 0.35123 will output 0.35% for CPU.\r\n */\r\nfunction prettyPrint(number: number | undefined, statType: string) {\r\n\tif (typeof number === \"undefined\") {\r\n\t\treturn \"\";\r\n\t}\r\n\r\n\tif (statType === \"CPU\") {\r\n\t\t//make it a percent.\r\n\t\treturn `${roundDecimalToPrecision(number, 2)}%`;\r\n\t} else if (statType !== \"PID\") {\r\n\t\treturn bytesToSize(number);\r\n\t} else {\r\n\t\treturn number;\r\n\t}\r\n}\r\n\r\nexport default class ProcessStatistics extends React.Component<IProps> {\r\n\tconstructor(props: IProps) {\r\n\t\tsuper(props);\r\n\t}\r\n\r\n\trender() {\r\n\t\t//simple mode: CPU, memory\r\n\t\t//Advanced mode: add Peak Memory.\r\n\t\treturn (\r\n\t\t\t<div className=\"process-row\">\r\n\t\t\t\t<div className=\"process-name\">\r\n\t\t\t\t\t{/* In simple mode, we print out \"Group 1\", \"Group 2\", etc. The belief is that end users don't care about our wonderful process names (\"e.g., Default-Agent-62-4421). In advanced mode, you get the actual name of the process. */}\r\n\t\t\t\t\t{this.props.mode === ViewModeEnums.SIMPLE ? \"Process Group\" : this.props.stats.name}\r\n\t\t\t\t</div>\r\n\t\t\t\t<div className=\"process-statistics\">\r\n\t\t\t\t\t{this.props.fields.map((field, i) => (\r\n\t\t\t\t\t\t<div key={i} className={getClassesForStat(this.props.stats[field.value], field.label)}>\r\n\t\t\t\t\t\t\t{prettyPrint(this.props.stats[field.value], field.label)}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t))}\r\n\t\t\t\t\t<div className=\"statistic process-actions\">\r\n\t\t\t\t\t\t{this.props.stats.type === \"Tab\" && typeof this.props.stats.uuid === \"string\" ? (\r\n\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\tclassName=\" terminate fsbl-button-negative process-action\"\r\n\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\tconst { uuid } = this.props.stats;\r\n\t\t\t\t\t\t\t\t\tif (uuid) {\r\n\t\t\t\t\t\t\t\t\t\tActions.terminateProcess({ uuid });\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\ttabIndex={0}\r\n\t\t\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\t\t\tonKeyDown={(e: React.KeyboardEvent) => {\r\n\t\t\t\t\t\t\t\t\tif (e.key === \"Enter\" || e.key === \" \") {\r\n\t\t\t\t\t\t\t\t\t\tconst { uuid } = this.props.stats;\r\n\t\t\t\t\t\t\t\t\t\tif (uuid) {\r\n\t\t\t\t\t\t\t\t\t\t\tActions.terminateProcess({ uuid });\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\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\tTerminate\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t) : null}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n}\r\n"]}
1
+ {"version":3,"file":"ProcessStatistics.js","sourceRoot":"","sources":["../../../../src/components/processMonitor/components/ProcessStatistics.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { Actions } from \"../stores/ProcessMonitorStore\";\nimport { HIGH_CPU, HIGH_MEMORY_USAGE, MODERATE_CPU_USAGE, MODERATE_MEMORY_USAGE, TO_MB } from \"../constants\";\nimport { bytesToSize, roundDecimalToPrecision } from \"../helpers\";\nimport { ProcessType, ViewModeEnums, ModeStatsType } from \"../ProcessMonitorTypes\";\n//Not used right now. Currently using alerts. This is for the future.\n\ninterface IProps {\n\tmode: ViewModeEnums;\n\tfields: ModeStatsType[];\n\tstats: ProcessType[\"statistics\"];\n}\n\n/**\n * Given a number, will return modifier classes that change the background. High usage === red. Moderate === orange.\n */\nfunction getClassesForStat(number: number | undefined, statType: string) {\n\tlet classes = \"statistic\",\n\t\thigh_comparison = HIGH_MEMORY_USAGE * TO_MB,\n\t\tmoderate_comparison = MODERATE_MEMORY_USAGE * TO_MB;\n\n\tif (typeof number === \"undefined\") {\n\t\treturn classes;\n\t}\n\n\tif (statType === \"CPU\") {\n\t\t(high_comparison = HIGH_CPU), (moderate_comparison = MODERATE_CPU_USAGE);\n\t}\n\tif (number > high_comparison) {\n\t\tclasses = `${classes} high-usage`;\n\t} else if (number > moderate_comparison) {\n\t\tclasses = `${classes} moderate-usage`;\n\t}\n\treturn classes;\n}\n\n/**\n * Outputs something nice. 102423465243 outputs whatever that number is in KB/MB/GB.\n * 0.35123 will output 0.35% for CPU.\n */\nfunction prettyPrint(number: number | undefined, statType: string) {\n\tif (typeof number === \"undefined\") {\n\t\treturn \"\";\n\t}\n\n\tif (statType === \"CPU\") {\n\t\t//make it a percent.\n\t\treturn `${roundDecimalToPrecision(number, 2)}%`;\n\t} else if (statType !== \"PID\") {\n\t\treturn bytesToSize(number);\n\t} else {\n\t\treturn number;\n\t}\n}\n\nexport default class ProcessStatistics extends React.Component<IProps> {\n\tconstructor(props: IProps) {\n\t\tsuper(props);\n\t}\n\n\trender() {\n\t\t//simple mode: CPU, memory\n\t\t//Advanced mode: add Peak Memory.\n\t\treturn (\n\t\t\t<div className=\"process-row\">\n\t\t\t\t<div className=\"process-name\">\n\t\t\t\t\t{/* In simple mode, we print out \"Group 1\", \"Group 2\", etc. The belief is that end users don't care about our wonderful process names (\"e.g., Default-Agent-62-4421). In advanced mode, you get the actual name of the process. */}\n\t\t\t\t\t{this.props.mode === ViewModeEnums.SIMPLE ? \"Process Group\" : this.props.stats.name}\n\t\t\t\t</div>\n\t\t\t\t<div className=\"process-statistics\">\n\t\t\t\t\t{this.props.fields.map((field, i) => (\n\t\t\t\t\t\t<div key={i} className={getClassesForStat(this.props.stats[field.value], field.label)}>\n\t\t\t\t\t\t\t{prettyPrint(this.props.stats[field.value], field.label)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\t\t\t\t\t<div className=\"statistic process-actions\">\n\t\t\t\t\t\t{this.props.stats.type === \"Tab\" && typeof this.props.stats.uuid === \"string\" ? (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName=\" terminate fsbl-button-negative process-action\"\n\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\tconst { uuid } = this.props.stats;\n\t\t\t\t\t\t\t\t\tif (uuid) {\n\t\t\t\t\t\t\t\t\t\tActions.terminateProcess({ uuid });\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\ttabIndex={0}\n\t\t\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\t\t\tonKeyDown={(e: React.KeyboardEvent) => {\n\t\t\t\t\t\t\t\t\tif (e.key === \"Enter\" || e.key === \" \") {\n\t\t\t\t\t\t\t\t\t\tconst { uuid } = this.props.stats;\n\t\t\t\t\t\t\t\t\t\tif (uuid) {\n\t\t\t\t\t\t\t\t\t\t\tActions.terminateProcess({ uuid });\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tTerminate\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/components/processMonitor/constants.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,sBAAsB,GAAoB;IACtD,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE;IACnC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE;CAC5C,CAAC;AAGF,MAAM,CAAC,MAAM,wBAAwB,GAAoB;IACxD,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE;IACnC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE;IAC5C,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,oBAAoB,EAAE;IACrD,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE;CACpC,CAAC;AAGF,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,CAAC;AAC3B,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAGpC,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AACzC,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAGrC,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAC;AAE7B,MAAM,WAAW,GAAgB;IAChC,OAAO,EAAE,KAAK;IACd,UAAU,EAAE,EAAE;CACd,CAAC;AAEF,sBAAsB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;IACvC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,WAAW,CAAC;AAKxC,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAC;AAKxC,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,MAAM,CAAC,OAAO,cAAc,OAAO,CAAC,CAAC","sourcesContent":["import { ProcessType, ModeStatsType } from \"./ProcessMonitorTypes\";\r\n\r\n// Stats to be displayed in simple mode\r\nexport const SIMPLE_MODE_STATISTICS: ModeStatsType[] = [\r\n\t{ label: \"CPU\", value: \"cpuUsage\" },\r\n\t{ label: \"Memory\", value: \"workingSetSize\" },\r\n];\r\n\r\n// Stats to be diesplayed in advanced mode\r\nexport const ADVANCED_MODE_STATISTICS: ModeStatsType[] = [\r\n\t{ label: \"CPU\", value: \"cpuUsage\" },\r\n\t{ label: \"Memory\", value: \"workingSetSize\" },\r\n\t{ label: \"Peak Memory\", value: \"peakWorkingSetSize\" },\r\n\t{ label: \"PID\", value: \"processId\" },\r\n];\r\n\r\n// These are percentages\r\nexport const HIGH_CPU = 10;\r\nexport const MODERATE_CPU_USAGE = 5;\r\n\r\n// Usage in MB\r\nexport const MODERATE_MEMORY_USAGE = 250;\r\nexport const HIGH_MEMORY_USAGE = 400;\r\n\r\n// Constant to convert megabytes (250) to bytes (250,000,000). Conversion is approximate.\r\nexport const TO_MB = 1000000;\r\n\r\nconst emptyTotals: ProcessType = {\r\n\tvisible: false,\r\n\tstatistics: {},\r\n};\r\n// Just an object to hold the UI over until we get real information from the system.\r\nSIMPLE_MODE_STATISTICS.forEach((stat) => {\r\n\temptyTotals.statistics[stat.value] = 0;\r\n});\r\n\r\nexport const EMPTY_TOTALS = emptyTotals;\r\n\r\n/**\r\n * Delimiter between window name and view identifier. Can be used in constructing view names as well as matching view names\r\n */\r\nexport const VIEW_DELIMITER = \": view-\";\r\n\r\n/**\r\n * RegExp for matching on view names or capturing the window name portion of the view\r\n */\r\nexport const VIEW_NAME_REGEXP = new RegExp(`(.*)${VIEW_DELIMITER}\\\\d+$`);\r\n"]}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/components/processMonitor/constants.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,sBAAsB,GAAoB;IACtD,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE;IACnC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE;CAC5C,CAAC;AAGF,MAAM,CAAC,MAAM,wBAAwB,GAAoB;IACxD,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE;IACnC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE;IAC5C,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,oBAAoB,EAAE;IACrD,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE;CACpC,CAAC;AAGF,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,CAAC;AAC3B,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAGpC,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AACzC,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAGrC,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAC;AAE7B,MAAM,WAAW,GAAgB;IAChC,OAAO,EAAE,KAAK;IACd,UAAU,EAAE,EAAE;CACd,CAAC;AAEF,sBAAsB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;IACvC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,WAAW,CAAC;AAKxC,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAC;AAKxC,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,MAAM,CAAC,OAAO,cAAc,OAAO,CAAC,CAAC","sourcesContent":["import { ProcessType, ModeStatsType } from \"./ProcessMonitorTypes\";\n\n// Stats to be displayed in simple mode\nexport const SIMPLE_MODE_STATISTICS: ModeStatsType[] = [\n\t{ label: \"CPU\", value: \"cpuUsage\" },\n\t{ label: \"Memory\", value: \"workingSetSize\" },\n];\n\n// Stats to be diesplayed in advanced mode\nexport const ADVANCED_MODE_STATISTICS: ModeStatsType[] = [\n\t{ label: \"CPU\", value: \"cpuUsage\" },\n\t{ label: \"Memory\", value: \"workingSetSize\" },\n\t{ label: \"Peak Memory\", value: \"peakWorkingSetSize\" },\n\t{ label: \"PID\", value: \"processId\" },\n];\n\n// These are percentages\nexport const HIGH_CPU = 10;\nexport const MODERATE_CPU_USAGE = 5;\n\n// Usage in MB\nexport const MODERATE_MEMORY_USAGE = 250;\nexport const HIGH_MEMORY_USAGE = 400;\n\n// Constant to convert megabytes (250) to bytes (250,000,000). Conversion is approximate.\nexport const TO_MB = 1000000;\n\nconst emptyTotals: ProcessType = {\n\tvisible: false,\n\tstatistics: {},\n};\n// Just an object to hold the UI over until we get real information from the system.\nSIMPLE_MODE_STATISTICS.forEach((stat) => {\n\temptyTotals.statistics[stat.value] = 0;\n});\n\nexport const EMPTY_TOTALS = emptyTotals;\n\n/**\n * Delimiter between window name and view identifier. Can be used in constructing view names as well as matching view names\n */\nexport const VIEW_DELIMITER = \": view-\";\n\n/**\n * RegExp for matching on view names or capturing the window name portion of the view\n */\nexport const VIEW_NAME_REGEXP = new RegExp(`(.*)${VIEW_DELIMITER}\\\\d+$`);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/components/processMonitor/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAIvF,MAAM,UAAU,YAAY,CAAC,GAAW;IACvC,OAAO,CACN,GAAG;SACD,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC;SAE1B,OAAO,CAAC,IAAI,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CACrD,CAAC;AACH,CAAC;AAID,MAAM,UAAU,WAAW,CAAC,KAAa;IACxC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IAGhC,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAGhD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAGvD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/D,CAAC;AAMD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAiB,EAAE,IAAiB,EAAe,EAAE;IAChF,MAAM,UAAU,GAAwC,EAAE,CAAC;IAC3D,sBAAsB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;;QACvC,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,WAAW,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,WAAW,EAAE;YAC7G,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;YACnC,OAAO;SACP;QAED,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,mCAAI,CAAC,CAAC,GAAG,CAAC,MAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,mCAAI,CAAC,CAAC,CAAC;IAClG,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,IAAI,GAAG,QAAQ,CAAC;IAC3B,UAAU,CAAC,IAAI,GAAG,QAAQ,CAAC;IAE3B,OAAO;QACN,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,UAAU;KACV,CAAC;AACH,CAAC,CAAC;AAMF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,MAAc,EAAE,SAAiB,EAAU,EAAE;IAEpF,MAAM,aAAa,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IACvD,MAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACvD,OAAO,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;AACvD,CAAC,CAAC;AAUF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAwB,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,cAAc,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;AAS7G,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAoB,EAAU,EAAE;IAC/D,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;QAEzB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAE,CAAC,CAAC,CAAC,CAAC;KAC7C;IACD,OAAO,IAAI,CAAC,IAAI,CAAC;AAClB,CAAC,CAAC","sourcesContent":["import { SIMPLE_MODE_STATISTICS, VIEW_NAME_REGEXP, VIEW_DELIMITER } from \"./constants\";\r\nimport { ProcessStatisticsType, ProcessType } from \"./ProcessMonitorTypes\";\r\n\r\n// This Is Proper Case\r\nexport function toProperCase(str: string) {\r\n\treturn (\r\n\t\tstr\r\n\t\t\t.replace(/([A-Z])/g, \" $1\")\r\n\t\t\t// uppercase the first character\r\n\t\t\t.replace(/^./, (char: string) => char.toUpperCase())\r\n\t);\r\n}\r\n/**\r\n * Given a number, will return a nice string, 1,024 will return 1KB, 100 will return 100 Bytes, and so on.\r\n */\r\nexport function bytesToSize(bytes: number) {\r\n\tif (bytes == 0) return \"0 Byte\";\r\n\r\n\t// Size powers, in English\r\n\tconst sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\"];\r\n\r\n\t// Determine the size power for the number of bytes\r\n\tconst i = Math.floor(Math.log(bytes) / Math.log(1024));\r\n\r\n\t// Return the size, rounded\r\n\treturn `${Math.round(bytes / Math.pow(1024, i))} ${sizes[i]}`;\r\n}\r\n\r\n/**\r\n * Handler for Array.reduce. It takes the array of statistics and sums each value.\r\n * This outputs an object that has total CPU and memory consumption.\r\n */\r\nexport const statReducer = (prev: ProcessType, curr: ProcessType): ProcessType => {\r\n\tconst statistics: ProcessStatisticsType[\"statistics\"] = {};\r\n\tSIMPLE_MODE_STATISTICS.forEach((stat) => {\r\n\t\tif (typeof prev.statistics[stat.value] === \"undefined\" || typeof curr.statistics[stat.value] === \"undefined\") {\r\n\t\t\tstatistics[stat.value] = undefined;\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tstatistics[stat.value] = (prev.statistics[stat.value] ?? 0) + (curr.statistics[stat.value] ?? 0);\r\n\t});\r\n\r\n\tstatistics.name = \"Totals\";\r\n\tstatistics.uuid = \"Totals\";\r\n\r\n\treturn {\r\n\t\tvisible: curr.visible,\r\n\t\tstatistics,\r\n\t};\r\n};\r\n\r\n/**\r\n * Convenience function for rounding decimals to a given precision\r\n * Note that \"precision\" here means \"number of digits to the right of the decimal point\"\r\n */\r\nexport const roundDecimalToPrecision = (number: number, precision: number): number => {\r\n\t// Example: number = .12345, precision = 2\r\n\tconst shiftedNumber = number * Math.pow(10, precision); // example: 12.345\r\n\tconst roundedShiftedNumber = Math.round(shiftedNumber); // example: 12\r\n\treturn roundedShiftedNumber / Math.pow(10, precision); // example: .12\r\n};\r\n\r\ntype WindowViewItemType = {\r\n\twindowName: string;\r\n\tviewId: string;\r\n};\r\n/**\r\n * Gives a standard name for a view, given a window or view object\r\n * @returns string\r\n */\r\nexport const getViewName = (item: WindowViewItemType) => `${item.windowName}${VIEW_DELIMITER}${item.viewId}`;\r\n\r\ntype ViewObjectType = {\r\n\ttype: string;\r\n\tname: string;\r\n};\r\n/**\r\n * Returns the name of the parent window for the view by stripping the standard view identifier, or else return the supplied name if item is not a view\r\n */\r\nexport const getViewBaseName = (view: ViewObjectType): string => {\r\n\tif (view.type === \"view\") {\r\n\t\t// The `!` is TS's non-null assertion operator\r\n\t\treturn view.name.match(VIEW_NAME_REGEXP)![1];\r\n\t}\r\n\treturn view.name;\r\n};\r\n"]}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/components/processMonitor/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAIvF,MAAM,UAAU,YAAY,CAAC,GAAW;IACvC,OAAO,CACN,GAAG;SACD,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC;SAE1B,OAAO,CAAC,IAAI,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CACrD,CAAC;AACH,CAAC;AAID,MAAM,UAAU,WAAW,CAAC,KAAa;IACxC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IAGhC,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAGhD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAGvD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/D,CAAC;AAMD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAiB,EAAE,IAAiB,EAAe,EAAE;IAChF,MAAM,UAAU,GAAwC,EAAE,CAAC;IAC3D,sBAAsB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;;QACvC,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,WAAW,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,WAAW,EAAE;YAC7G,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;YACnC,OAAO;SACP;QAED,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,mCAAI,CAAC,CAAC,GAAG,CAAC,MAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,mCAAI,CAAC,CAAC,CAAC;IAClG,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,IAAI,GAAG,QAAQ,CAAC;IAC3B,UAAU,CAAC,IAAI,GAAG,QAAQ,CAAC;IAE3B,OAAO;QACN,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,UAAU;KACV,CAAC;AACH,CAAC,CAAC;AAMF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,MAAc,EAAE,SAAiB,EAAU,EAAE;IAEpF,MAAM,aAAa,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IACvD,MAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACvD,OAAO,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;AACvD,CAAC,CAAC;AAUF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAwB,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,cAAc,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;AAS7G,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAoB,EAAU,EAAE;IAC/D,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;QAEzB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAE,CAAC,CAAC,CAAC,CAAC;KAC7C;IACD,OAAO,IAAI,CAAC,IAAI,CAAC;AAClB,CAAC,CAAC","sourcesContent":["import { SIMPLE_MODE_STATISTICS, VIEW_NAME_REGEXP, VIEW_DELIMITER } from \"./constants\";\nimport { ProcessStatisticsType, ProcessType } from \"./ProcessMonitorTypes\";\n\n// This Is Proper Case\nexport function toProperCase(str: string) {\n\treturn (\n\t\tstr\n\t\t\t.replace(/([A-Z])/g, \" $1\")\n\t\t\t// uppercase the first character\n\t\t\t.replace(/^./, (char: string) => char.toUpperCase())\n\t);\n}\n/**\n * Given a number, will return a nice string, 1,024 will return 1KB, 100 will return 100 Bytes, and so on.\n */\nexport function bytesToSize(bytes: number) {\n\tif (bytes == 0) return \"0 Byte\";\n\n\t// Size powers, in English\n\tconst sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\"];\n\n\t// Determine the size power for the number of bytes\n\tconst i = Math.floor(Math.log(bytes) / Math.log(1024));\n\n\t// Return the size, rounded\n\treturn `${Math.round(bytes / Math.pow(1024, i))} ${sizes[i]}`;\n}\n\n/**\n * Handler for Array.reduce. It takes the array of statistics and sums each value.\n * This outputs an object that has total CPU and memory consumption.\n */\nexport const statReducer = (prev: ProcessType, curr: ProcessType): ProcessType => {\n\tconst statistics: ProcessStatisticsType[\"statistics\"] = {};\n\tSIMPLE_MODE_STATISTICS.forEach((stat) => {\n\t\tif (typeof prev.statistics[stat.value] === \"undefined\" || typeof curr.statistics[stat.value] === \"undefined\") {\n\t\t\tstatistics[stat.value] = undefined;\n\t\t\treturn;\n\t\t}\n\n\t\tstatistics[stat.value] = (prev.statistics[stat.value] ?? 0) + (curr.statistics[stat.value] ?? 0);\n\t});\n\n\tstatistics.name = \"Totals\";\n\tstatistics.uuid = \"Totals\";\n\n\treturn {\n\t\tvisible: curr.visible,\n\t\tstatistics,\n\t};\n};\n\n/**\n * Convenience function for rounding decimals to a given precision\n * Note that \"precision\" here means \"number of digits to the right of the decimal point\"\n */\nexport const roundDecimalToPrecision = (number: number, precision: number): number => {\n\t// Example: number = .12345, precision = 2\n\tconst shiftedNumber = number * Math.pow(10, precision); // example: 12.345\n\tconst roundedShiftedNumber = Math.round(shiftedNumber); // example: 12\n\treturn roundedShiftedNumber / Math.pow(10, precision); // example: .12\n};\n\ntype WindowViewItemType = {\n\twindowName: string;\n\tviewId: string;\n};\n/**\n * Gives a standard name for a view, given a window or view object\n * @returns string\n */\nexport const getViewName = (item: WindowViewItemType) => `${item.windowName}${VIEW_DELIMITER}${item.viewId}`;\n\ntype ViewObjectType = {\n\ttype: string;\n\tname: string;\n};\n/**\n * Returns the name of the parent window for the view by stripping the standard view identifier, or else return the supplied name if item is not a view\n */\nexport const getViewBaseName = (view: ViewObjectType): string => {\n\tif (view.type === \"view\") {\n\t\t// The `!` is TS's non-null assertion operator\n\t\treturn view.name.match(VIEW_NAME_REGEXP)![1];\n\t}\n\treturn view.name;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.spec.js","sourceRoot":"","sources":["../../../src/components/processMonitor/helpers.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAEjE,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;QACtB;YACC,CAAC,CAAC,EAAE,QAAQ,CAAC;YACb,CAAC,CAAC,EAAE,SAAS,CAAC;YACd,CAAC,IAAI,EAAE,YAAY,CAAC;YACpB,CAAC,IAAI,EAAE,MAAM,CAAC;YACd,CAAC,IAAI,EAAE,MAAM,CAAC;YACd,CAAC,IAAI,GAAG,GAAG,EAAE,MAAM,CAAC;YACpB,CAAC,IAAI,GAAG,GAAG,EAAE,MAAM,CAAC;YACpB,CAAC,IAAI,GAAG,CAAC,EAAE,MAAM,CAAC;YAClB,CAAC,IAAI,GAAG,IAAI,EAAE,SAAS,CAAC;YACxB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC;YAC3B,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC;YAC3B,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC;SAC3B,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE;YAC7B,MAAM,CAAC,WAAW,CAAC,KAAe,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QAClC;YACC,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC;YACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACT,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACX,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;YACb,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;YACb,CAAC,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC;YACjB,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC;YAClB,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC;YACnB,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC;YACpB,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;YACrB,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;YACrB,CAAC,UAAU,EAAE,CAAC,EAAE,OAAO,CAAC;SACxB,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,EAAE;YACnD,MAAM,CAAC,uBAAuB,CAAC,WAAqB,EAAE,cAAwB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtG,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["import { describe, it } from \"mocha\";\r\nimport { expect } from \"chai\";\r\n\r\nimport { bytesToSize, roundDecimalToPrecision } from \"./helpers\";\r\n\r\ndescribe(\"Process Monitor helpers\", () => {\r\n\tit(\"bytesToSize\", () => {\r\n\t\t[\r\n\t\t\t[0, \"0 Byte\"],\r\n\t\t\t[1, \"1 Bytes\"],\r\n\t\t\t[1023, \"1023 Bytes\"],\r\n\t\t\t[1024, \"1 KB\"],\r\n\t\t\t[1025, \"1 KB\"],\r\n\t\t\t[1024 * 1.4, \"1 KB\"],\r\n\t\t\t[1024 * 1.5, \"2 KB\"],\r\n\t\t\t[1024 * 2, \"2 KB\"],\r\n\t\t\t[1024 * 1000, \"1000 KB\"],\r\n\t\t\t[Math.pow(1024, 2), \"1 MB\"],\r\n\t\t\t[Math.pow(1024, 3), \"1 GB\"],\r\n\t\t\t[Math.pow(1024, 4), \"1 TB\"],\r\n\t\t].forEach(([input, output]) => {\r\n\t\t\texpect(bytesToSize(input as number)).to.be.equal(output);\r\n\t\t});\r\n\t});\r\n\r\n\tit(\"roundDecimalToPrecision\", () => {\r\n\t\t[\r\n\t\t\t[1000, 2, 1000],\r\n\t\t\t[1, 2, 1],\r\n\t\t\t[0, 1, 0],\r\n\t\t\t[1, 0, 1],\r\n\t\t\t[0.5, 0, 1],\r\n\t\t\t[0.5, 1, 0.5],\r\n\t\t\t[0.5, 2, 0.5],\r\n\t\t\t[0.12345, 1, 0.1],\r\n\t\t\t[0.12345, 2, 0.12],\r\n\t\t\t[0.12345, 3, 0.123],\r\n\t\t\t[0.12345, 4, 0.1235],\r\n\t\t\t[0.12345, 5, 0.12345],\r\n\t\t\t[0.12345, 6, 0.12345],\r\n\t\t\t[1000.12345, 2, 1000.12],\r\n\t\t].forEach(([inputNumber, inputPrecision, output]) => {\r\n\t\t\texpect(roundDecimalToPrecision(inputNumber as number, inputPrecision as number)).to.be.equal(output);\r\n\t\t});\r\n\t});\r\n});\r\n"]}
1
+ {"version":3,"file":"helpers.spec.js","sourceRoot":"","sources":["../../../src/components/processMonitor/helpers.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAEjE,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;QACtB;YACC,CAAC,CAAC,EAAE,QAAQ,CAAC;YACb,CAAC,CAAC,EAAE,SAAS,CAAC;YACd,CAAC,IAAI,EAAE,YAAY,CAAC;YACpB,CAAC,IAAI,EAAE,MAAM,CAAC;YACd,CAAC,IAAI,EAAE,MAAM,CAAC;YACd,CAAC,IAAI,GAAG,GAAG,EAAE,MAAM,CAAC;YACpB,CAAC,IAAI,GAAG,GAAG,EAAE,MAAM,CAAC;YACpB,CAAC,IAAI,GAAG,CAAC,EAAE,MAAM,CAAC;YAClB,CAAC,IAAI,GAAG,IAAI,EAAE,SAAS,CAAC;YACxB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC;YAC3B,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC;YAC3B,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC;SAC3B,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE;YAC7B,MAAM,CAAC,WAAW,CAAC,KAAe,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QAClC;YACC,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC;YACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACT,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACX,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;YACb,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;YACb,CAAC,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC;YACjB,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC;YAClB,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC;YACnB,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC;YACpB,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;YACrB,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;YACrB,CAAC,UAAU,EAAE,CAAC,EAAE,OAAO,CAAC;SACxB,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,EAAE;YACnD,MAAM,CAAC,uBAAuB,CAAC,WAAqB,EAAE,cAAwB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtG,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["import { describe, it } from \"mocha\";\nimport { expect } from \"chai\";\n\nimport { bytesToSize, roundDecimalToPrecision } from \"./helpers\";\n\ndescribe(\"Process Monitor helpers\", () => {\n\tit(\"bytesToSize\", () => {\n\t\t[\n\t\t\t[0, \"0 Byte\"],\n\t\t\t[1, \"1 Bytes\"],\n\t\t\t[1023, \"1023 Bytes\"],\n\t\t\t[1024, \"1 KB\"],\n\t\t\t[1025, \"1 KB\"],\n\t\t\t[1024 * 1.4, \"1 KB\"],\n\t\t\t[1024 * 1.5, \"2 KB\"],\n\t\t\t[1024 * 2, \"2 KB\"],\n\t\t\t[1024 * 1000, \"1000 KB\"],\n\t\t\t[Math.pow(1024, 2), \"1 MB\"],\n\t\t\t[Math.pow(1024, 3), \"1 GB\"],\n\t\t\t[Math.pow(1024, 4), \"1 TB\"],\n\t\t].forEach(([input, output]) => {\n\t\t\texpect(bytesToSize(input as number)).to.be.equal(output);\n\t\t});\n\t});\n\n\tit(\"roundDecimalToPrecision\", () => {\n\t\t[\n\t\t\t[1000, 2, 1000],\n\t\t\t[1, 2, 1],\n\t\t\t[0, 1, 0],\n\t\t\t[1, 0, 1],\n\t\t\t[0.5, 0, 1],\n\t\t\t[0.5, 1, 0.5],\n\t\t\t[0.5, 2, 0.5],\n\t\t\t[0.12345, 1, 0.1],\n\t\t\t[0.12345, 2, 0.12],\n\t\t\t[0.12345, 3, 0.123],\n\t\t\t[0.12345, 4, 0.1235],\n\t\t\t[0.12345, 5, 0.12345],\n\t\t\t[0.12345, 6, 0.12345],\n\t\t\t[1000.12345, 2, 1000.12],\n\t\t].forEach(([inputNumber, inputPrecision, output]) => {\n\t\t\texpect(roundDecimalToPrecision(inputNumber as number, inputPrecision as number)).to.be.equal(output);\n\t\t});\n\t});\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/processMonitor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC","sourcesContent":["export { ProcessMonitor } from \"./ProcessMonitor\";\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/processMonitor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC","sourcesContent":["export { ProcessMonitor } from \"./ProcessMonitor\";\n"]}
@@ -1,9 +1,10 @@
1
1
  import { ChildWindowType, ProcessType } from "../ProcessMonitorTypes";
2
- import StoreModel from "@finsemble/finsemble-core/types/clients/StoreModel";
3
- import { StandardCallback, StandardError } from "@finsemble/finsemble-core/types/types";
4
- import { ProcessInfo } from "@finsemble/finsemble-core/types/FEA";
2
+ import StoreModel from "@finsemble/finsemble-api/types/clients/StoreModel";
3
+ import { StandardCallback, StandardError } from "@finsemble/finsemble-api/types/types";
4
+ import { ProcessInfo } from "@finsemble/finsemble-api/types/FEA";
5
5
  declare let ProcessMonitorStore: StoreModel | undefined;
6
6
  declare type VoidCallback = () => void;
7
+ export declare let storeWrapper: StoreModel | null | undefined;
7
8
  declare const Actions: {
8
9
  initialize: (cb: VoidCallback) => void;
9
10
  getInitialData: () => void;
@@ -10,13 +10,14 @@ const DEFAULT_STORE_DATA = {
10
10
  },
11
11
  };
12
12
  const MAGIC_NUMBER_TERMINATION_TIMEOUT = 4000;
13
+ export let storeWrapper;
13
14
  function createLocalStore(done) {
14
15
  FSBL.Clients.DistributedStoreClient.createStore({
15
16
  store: "Finsemble-ProcessMonitor-Local-Store",
16
17
  values: DEFAULT_STORE_DATA,
17
18
  }, (err, store) => {
18
19
  ProcessMonitorStore = store;
19
- module.exports.Store = store;
20
+ storeWrapper = store;
20
21
  done();
21
22
  });
22
23
  }
@@ -63,58 +64,58 @@ const Actions = {
63
64
  });
64
65
  },
65
66
  createDataModel: (processes, cb) => {
66
- let procs = [];
67
- let mode = ProcessMonitorStore === null || ProcessMonitorStore === void 0 ? void 0 : ProcessMonitorStore.getValue({ field: "viewMode" });
68
- for (const proc of processes) {
69
- if (mode === "simple" &&
70
- (proc.name.toLowerCase().includes("service") ||
71
- proc.name.toLowerCase().includes("system") ||
72
- proc.name.toLowerCase().includes("unnamed"))) {
73
- procs.push({
74
- statistics: proc,
75
- visible: false,
76
- });
77
- }
78
- else {
79
- const childWindows = [...proc.windows, ...proc.views]
80
- .filter((item) => {
81
- const name = "name" in item ? item.name : item.windowName;
82
- if (!(mode === "simple" &&
83
- (name.toLowerCase().includes("service") ||
84
- name.toLowerCase().includes("system") ||
85
- name.toLowerCase().includes("unnamed")))) {
86
- return true;
87
- }
88
- return false;
89
- })
90
- .map((item) => {
91
- return {
92
- name: "name" in item
93
- ? item.name
94
- : getViewName({
95
- windowName: item.windowName,
96
- viewId: String(item.id),
97
- }),
98
- type: "name" in item ? "window" : "view",
99
- };
100
- })
101
- .sort((a, b) => {
102
- if (a.name < b.name)
103
- return -1;
104
- if (a.name > b.name)
105
- return 1;
106
- return 0;
67
+ const mode = ProcessMonitorStore === null || ProcessMonitorStore === void 0 ? void 0 : ProcessMonitorStore.getValue({ field: "viewMode" });
68
+ const sortWindow = (a, b) => {
69
+ if (a.name < b.name)
70
+ return -1;
71
+ if (a.name > b.name)
72
+ return 1;
73
+ return 0;
74
+ };
75
+ const viewOrWindowToProc = (item) => {
76
+ const name = "name" in item
77
+ ? item.name
78
+ : getViewName({
79
+ windowName: item.windowName,
80
+ viewId: String(item.id),
107
81
  });
108
- procs.push({
82
+ return {
83
+ name,
84
+ type: "name" in item ? "window" : "view",
85
+ };
86
+ };
87
+ const allowAdvanced = (item) => {
88
+ const windowName = "name" in item ? item.name.toLowerCase() : item.windowName.toLowerCase();
89
+ const windowIsService = windowName.includes("service");
90
+ const windowIsSystem = windowName.includes("system");
91
+ const windowIsUnnamed = windowName.includes("unnamed");
92
+ const windowIsSimple = windowIsService || windowIsSystem || windowIsUnnamed;
93
+ return mode !== "simple" || !windowIsSimple;
94
+ };
95
+ const procs = processes.map((proc) => {
96
+ const procName = proc.name.toLowerCase();
97
+ const isService = procName.includes("service");
98
+ const isSystem = procName.includes("system");
99
+ const isUnnamed = procName.includes("unnamed");
100
+ const procIsSimple = isService || isSystem || isUnnamed;
101
+ if (mode === "simple" && procIsSimple) {
102
+ return {
109
103
  statistics: proc,
110
- visible: true,
111
- type: proc.type,
112
- childWindows,
113
- });
104
+ visible: false,
105
+ };
114
106
  }
115
- }
116
- procs = Actions.sortProcesses(procs);
117
- cb(procs);
107
+ const childWindows = [...proc.windows, ...proc.views]
108
+ .filter(allowAdvanced)
109
+ .map(viewOrWindowToProc)
110
+ .sort(sortWindow);
111
+ return {
112
+ statistics: proc,
113
+ visible: true,
114
+ type: proc.type,
115
+ childWindows,
116
+ };
117
+ });
118
+ cb(Actions.sortProcesses(procs));
118
119
  },
119
120
  sortProcesses: (procs) => {
120
121
  let currentSort = ProcessMonitorStore === null || ProcessMonitorStore === void 0 ? void 0 : ProcessMonitorStore.getValue({ field: "sort" });
@@ -1 +1 @@
1
- {"version":3,"file":"ProcessMonitorStore.js","sourceRoot":"","sources":["../../../../src/components/processMonitor/stores/ProcessMonitorStore.ts"],"names":[],"mappings":"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","sourcesContent":["import { getViewName, getViewBaseName } from \"../helpers\";\r\nimport { ChildWindowType, ProcessType, SortObjectType } from \"../ProcessMonitorTypes\";\r\nimport StoreModel from \"@finsemble/finsemble-core/types/clients/StoreModel\";\r\nimport { StandardCallback, StandardError } from \"@finsemble/finsemble-core/types/types\";\r\nimport { ProcessInfo } from \"@finsemble/finsemble-core/types/FEA\";\r\nimport { FinsembleWindow } from \"@finsemble/finsemble-core/types/main\";\r\nimport async from \"async\";\r\n\r\nlet ProcessMonitorStore: StoreModel | undefined;\r\n\r\ntype VoidCallback = () => void;\r\n\r\n//Regex code taken from https://gist.github.com/mattheyan/46a230da86a0894a5ff654b9139ec5f2\r\nconst DEFAULT_SORT_DIRECTION = \"ascending\";\r\nconst DEFAULT_STORE_DATA = {\r\n\tviewMode: \"simple\",\r\n\tsort: {\r\n\t\tfield: \"name\",\r\n\t\tdirection: \"ascending\",\r\n\t},\r\n};\r\nconst MAGIC_NUMBER_TERMINATION_TIMEOUT = 4000;\r\n\r\nfunction createLocalStore(done: VoidCallback) {\r\n\tFSBL.Clients.DistributedStoreClient.createStore(\r\n\t\t{\r\n\t\t\tstore: \"Finsemble-ProcessMonitor-Local-Store\",\r\n\t\t\tvalues: DEFAULT_STORE_DATA,\r\n\t\t},\r\n\t\t(err: StandardError, store?: StoreModel) => {\r\n\t\t\tProcessMonitorStore = store;\r\n\t\t\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\tlet mode = ProcessMonitorStore?.getValue({ field: \"viewMode\" });\r\n\r\n\t\tfor (const proc of processes) {\r\n\t\t\tif (\r\n\t\t\t\tmode === \"simple\" &&\r\n\t\t\t\t(proc.name.toLowerCase().includes(\"service\") ||\r\n\t\t\t\t\tproc.name.toLowerCase().includes(\"system\") ||\r\n\t\t\t\t\tproc.name.toLowerCase().includes(\"unnamed\"))\r\n\t\t\t) {\r\n\t\t\t\tprocs.push({\r\n\t\t\t\t\tstatistics: proc,\r\n\t\t\t\t\tvisible: false,\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tconst childWindows: ChildWindowType[] = [...proc.windows, ...proc.views]\r\n\t\t\t\t\t.filter((item) => {\r\n\t\t\t\t\t\tconst name: string = \"name\" in item ? item.name : item.windowName;\r\n\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t!(\r\n\t\t\t\t\t\t\t\tmode === \"simple\" &&\r\n\t\t\t\t\t\t\t\t(name.toLowerCase().includes(\"service\") ||\r\n\t\t\t\t\t\t\t\t\tname.toLowerCase().includes(\"system\") ||\r\n\t\t\t\t\t\t\t\t\tname.toLowerCase().includes(\"unnamed\"))\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.map((item) => {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tname:\r\n\t\t\t\t\t\t\t\t\"name\" in item\r\n\t\t\t\t\t\t\t\t\t? item.name\r\n\t\t\t\t\t\t\t\t\t: getViewName({\r\n\t\t\t\t\t\t\t\t\t\t\twindowName: item.windowName,\r\n\t\t\t\t\t\t\t\t\t\t\tviewId: String(item.id),\r\n\t\t\t\t\t\t\t\t\t }),\r\n\t\t\t\t\t\t\ttype: \"name\" in item ? \"window\" : \"view\",\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.sort((a, b) => {\r\n\t\t\t\t\t\tif (a.name < b.name) return -1;\r\n\t\t\t\t\t\tif (a.name > b.name) return 1;\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\tprocs.push({\r\n\t\t\t\t\tstatistics: proc,\r\n\t\t\t\t\tvisible: true,\r\n\t\t\t\t\ttype: proc.type,\r\n\t\t\t\t\tchildWindows,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tprocs = Actions.sortProcesses(procs);\r\n\t\tcb(procs);\r\n\t},\r\n\r\n\t/**\r\n\t * Sorting function. Handles ascending and descending.\r\n\t */\r\n\tsortProcesses: (procs: ProcessType[]) => {\r\n\t\tlet currentSort: SortObjectType = ProcessMonitorStore?.getValue({ field: \"sort\" });\r\n\t\tlet sortFN = (a: ProcessType, b: ProcessType) => {\r\n\t\t\tlet aValue = a.statistics[currentSort.field];\r\n\t\t\tlet bValue = b.statistics[currentSort.field];\r\n\r\n\t\t\tif (typeof aValue === \"undefined\" || typeof bValue === \"undefined\") {\r\n\t\t\t\treturn 0;\r\n\t\t\t}\r\n\r\n\t\t\t//Comparing upper and lowercase names makes the sort look wrong. we equalize all strings here.\r\n\t\t\tif (typeof aValue === \"string\") {\r\n\t\t\t\taValue = aValue.toLowerCase();\r\n\t\t\t}\r\n\t\t\tif (typeof bValue === \"string\") {\r\n\t\t\t\tbValue = bValue.toLowerCase();\r\n\t\t\t}\r\n\r\n\t\t\tif (currentSort.direction === \"ascending\") {\r\n\t\t\t\tif (aValue < bValue) return -1;\r\n\t\t\t\tif (aValue > bValue) return 1;\r\n\t\t\t\treturn 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (aValue > bValue) return -1;\r\n\t\t\tif (aValue < bValue) return 1;\r\n\t\t\treturn 0;\r\n\t\t};\r\n\t\treturn procs.sort(sortFN);\r\n\t},\r\n\r\n\t/**\r\n\t * Toggles advanced/simple mode\r\n\t */\r\n\ttoggleViewMode: () => {\r\n\t\tconst mode = ProcessMonitorStore?.getValue({ field: \"viewMode\" });\r\n\t\tProcessMonitorStore?.setValue({\r\n\t\t\tfield: \"viewMode\",\r\n\t\t\tvalue: mode === \"advanced\" ? \"simple\" : \"advanced\",\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * Gets the current \"flashing\" state - whether the process monitor is currently flashing a window\r\n\t */\r\n\tgetFlashingState: (cb?: StandardCallback) => {\r\n\t\tProcessMonitorStore?.getValue(\"flashing\", cb);\r\n\t},\r\n\r\n\t/**\r\n\t * Gets the current \"flashing\" state for the process monitor\r\n\t */\r\n\tsetFlashingState: (value: boolean, cb?: StandardCallback) => {\r\n\t\tProcessMonitorStore?.setValue({ field: \"flashing\", value }, cb);\r\n\t},\r\n\r\n\t/**\r\n\t * Make the window flash a couple of times so that the user can identify it.\r\n\t */\r\n\tidentifyWindow: function (winID: ChildWindowType) {\r\n\t\tif (winID.name.includes(\"Service\")) return;\r\n\t\t// If the item clicked is a view, the window for that view should flash, thus we need to get that window's name here\r\n\t\tconst baseName = getViewBaseName(winID);\r\n\r\n\t\tthis.setFlashingState(true);\r\n\r\n\t\tconst OPACITY_ANIMATION_DURATION = 200;\r\n\t\tFSBL.FinsembleWindow.getInstance({ name: baseName }, (err: StandardError, win: FinsembleWindow) => {\r\n\t\t\tlet windowState = \"hidden\";\r\n\t\t\tfunction flash(n: any, done: any) {\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\twin.hide(() => {\r\n\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\twin.show(() => {\r\n\t\t\t\t\t\t\t\tdone(null);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}, OPACITY_ANIMATION_DURATION / 1.5);\r\n\t\t\t\t\t});\r\n\t\t\t\t}, OPACITY_ANIMATION_DURATION / 1.5);\r\n\t\t\t}\r\n\t\t\twin.isShowing({}, (error: StandardError, isVisible) => {\r\n\t\t\t\t//cache the visible state of the window prior to making it flash. If it was hidden before, hide it when the flashing is done.\r\n\t\t\t\twindowState = isVisible ? \"visible\" : \"hidden\";\r\n\t\t\t\twin.show(() => {\r\n\t\t\t\t\twin.bringToFront(() => {\r\n\t\t\t\t\t\t//Flash 5 times, in series.\r\n\t\t\t\t\t\tasync.timesSeries(5, flash, () => {\r\n\t\t\t\t\t\t\tif (windowState === \"hidden\") {\r\n\t\t\t\t\t\t\t\twin.hide();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tthis.setFlashingState(false);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * Terminates a process. Prompts first. If it fails to terminate the process, displays an error message.\r\n\t */\r\n\tterminateProcess: (AppIdentifier: { uuid: string }, force = false) => {\r\n\t\t// AppIdentifier should be of type ChildWindow, but that has `uuid` as optional, and\r\n\t\t// uuid is required for this function\r\n\r\n\t\tconst app = FSBL.System.Application.wrap(AppIdentifier.uuid);\r\n\t\t/**\r\n\t\t * This whole routine is a little hectic because of all of the closures - but there's a method to the madness. Here's the logic.\r\n\t\t *\r\n\t\t * 1st time we try to close: Politely close the window. If that fails, recurse, but pass \"force\" === true.\r\n\t\t * 2nd time, we try to forceClose the process. If that fails, we will terminate the process forcibly, which isn't graceful.\r\n\t\t */\r\n\r\n\t\tconst onCloseFailure = () => {\r\n\t\t\t//If Actions.terminateProcess is invoked with force === true, that means that we tried to force close the process, and it failed. So we will terminate it. If not, we will try to force close (the else block).\r\n\t\t\tif (force) {\r\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n\t\t\t\tterminateProcess();\r\n\t\t\t} else {\r\n\t\t\t\t//If we've already tried to close the process once, but it failed, we'll try to terminate it. The first attempt is a close, which is more graceful.\r\n\t\t\t\tActions.terminateProcess(AppIdentifier, true);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tconst forceCloseProcess = () => {\r\n\t\t\t//If the process fails to close in 4 seconds, we will call this method again, but try to force close it.\r\n\t\t\tconst closeTimeout = setTimeout(() => {\r\n\t\t\t\tonCloseFailure();\r\n\t\t\t}, MAGIC_NUMBER_TERMINATION_TIMEOUT);\r\n\r\n\t\t\tconst onCloseSuccess = () => {\r\n\t\t\t\tclearTimeout(closeTimeout);\r\n\t\t\t};\r\n\t\t\tapp.close(force, onCloseSuccess, onCloseFailure);\r\n\t\t};\r\n\r\n\t\tconst terminateProcess = () => {\r\n\t\t\t// Should never get into here, but just in case the process is hung, we'll show an error message to the user.\r\n\t\t\tapp.terminate(\r\n\t\t\t\t() => {},\r\n\t\t\t\t() => {\r\n\t\t\t\t\tFSBL.Clients.DialogManager.open(\r\n\t\t\t\t\t\t\"yesNo\",\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\ttitle: \"Error\",\r\n\t\t\t\t\t\t\tquestion: \"The process that you are attempting to close is unresponsive. Please contact support.\",\r\n\t\t\t\t\t\t\taffirmativeButtonLabel: \"Okay\",\r\n\t\t\t\t\t\t\tshowCancelButton: false,\r\n\t\t\t\t\t\t\tshowNegativeButton: false,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t() => {}\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t};\r\n\r\n\t\t// If we're force closing, no need to prompt the user (which is what happens below);\r\n\t\tif (force) {\r\n\t\t\treturn forceCloseProcess();\r\n\t\t}\r\n\r\n\t\t//Ask user if they're sure. If they says \"yes\", close it.\r\n\t\tFSBL.Clients.DialogManager.open(\r\n\t\t\t\"yesNo\",\r\n\t\t\t{\r\n\t\t\t\ttitle: \"Terminate Process?\",\r\n\t\t\t\tquestion: \"Terminating the process may close other apps. Are you sure you want to continue?\",\r\n\t\t\t\taffirmativeResponseLabel: \"Terminate\",\r\n\t\t\t\tshowNegativeButton: false,\r\n\t\t\t},\r\n\t\t\t(err: StandardError, response: { choice: string }) => {\r\n\t\t\t\tif (err || response.choice === \"affirmative\") {\r\n\t\t\t\t\tforceCloseProcess();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t},\r\n\r\n\t/**\r\n\t * This function exists to make the UI feel snappy. May take a second or so for the window to close properly and for the change to flow to system.getProcessList. To make that lag go away, we immediately render the change.\r\n\t */\r\n\tremoveWindowLocally: function (winID: { uuid: string; name: string }) {\r\n\t\tlet procs: ProcessType[] = ProcessMonitorStore?.getValue({ field: \"processList\" });\r\n\t\tprocs = procs.map((proc) => {\r\n\t\t\tif (proc.childWindows) {\r\n\t\t\t\tconst cwIndex = proc.childWindows.findIndex((cw) => cw.name === winID.name);\r\n\t\t\t\tproc.childWindows.splice(cwIndex, 1);\r\n\t\t\t}\r\n\t\t\treturn proc;\r\n\t\t});\r\n\t\tProcessMonitorStore?.setValue({ field: \"processList\", value: procs });\r\n\t},\r\n\r\n\t/**\r\n\t * Try to close the window. If that fails, try to force close the window. If that fails, ask if they'd like to terminate the parent process.\r\n\t */\r\n\tcloseWindow: function (winID: { uuid: string; name: string }, force = false) {\r\n\t\tconst win = FSBL.System.Window.wrap(winID.uuid, winID.name);\r\n\r\n\t\t//Make the UI feel snappy.\r\n\t\tActions.removeWindowLocally(winID);\r\n\r\n\t\tconst onCloseFailure = () => {\r\n\t\t\t//If Actions.closeWindow was called with force === true, and the close failed, give the user the opportunity to terminate the process.\r\n\t\t\tif (force) {\r\n\t\t\t\tFSBL.Clients.DialogManager.open(\r\n\t\t\t\t\t\"yesNo\",\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: \"Terminate Process?\",\r\n\t\t\t\t\t\tquestion:\r\n\t\t\t\t\t\t\t\"The app that you are attempting to close is unresponsive. Would you like to terminate the process? Terminating the process may close other apps.\",\r\n\t\t\t\t\t\taffirmativeResponseLabel: \"Terminate\",\r\n\t\t\t\t\t\tshowNegativeButton: false,\r\n\t\t\t\t\t},\r\n\t\t\t\t\t(err: StandardError, response: { choice: string }) => {\r\n\t\t\t\t\t\tif (err || response.choice === \"affirmative\") {\r\n\t\t\t\t\t\t\treturn Actions.terminateProcess({ uuid: winID.uuid }, true);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t} else {\r\n\t\t\t\tActions.closeWindow(winID, true);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t//If we can't close within 4 seconds, something's wrong - try to force close it.\r\n\t\tconst closeTimeout = setTimeout(() => {\r\n\t\t\tonCloseFailure();\r\n\t\t}, MAGIC_NUMBER_TERMINATION_TIMEOUT);\r\n\r\n\t\tconst onCloseSuccess = () => {\r\n\t\t\tclearTimeout(closeTimeout);\r\n\t\t};\r\n\r\n\t\twin.close(force, onCloseSuccess, onCloseFailure);\r\n\t},\r\n};\r\n\r\nexport { ProcessMonitorStore as Store, Actions };\r\n"]}
1
+ {"version":3,"file":"ProcessMonitorStore.js","sourceRoot":"","sources":["../../../../src/components/processMonitor/stores/ProcessMonitorStore.ts"],"names":[],"mappings":"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","sourcesContent":["import { getViewName, getViewBaseName } from \"../helpers\";\nimport { ChildWindowType, ProcessType, SortObjectType } from \"../ProcessMonitorTypes\";\nimport StoreModel from \"@finsemble/finsemble-api/types/clients/StoreModel\";\nimport { StandardCallback, StandardError } from \"@finsemble/finsemble-api/types/types\";\nimport { ProcessInfo } from \"@finsemble/finsemble-api/types/FEA\";\nimport { FinsembleWindow } from \"@finsemble/finsemble-api/types/main\";\nimport async from \"async\";\n\nlet ProcessMonitorStore: StoreModel | undefined;\n\ntype VoidCallback = () => void;\n\n//Regex code taken from https://gist.github.com/mattheyan/46a230da86a0894a5ff654b9139ec5f2\nconst DEFAULT_SORT_DIRECTION = \"ascending\";\nconst DEFAULT_STORE_DATA = {\n\tviewMode: \"simple\",\n\tsort: {\n\t\tfield: \"name\",\n\t\tdirection: \"ascending\",\n\t},\n};\nconst MAGIC_NUMBER_TERMINATION_TIMEOUT = 4000;\n\nexport let storeWrapper: StoreModel | null | undefined;\n\nfunction createLocalStore(done: VoidCallback) {\n\tFSBL.Clients.DistributedStoreClient.createStore(\n\t\t{\n\t\t\tstore: \"Finsemble-ProcessMonitor-Local-Store\",\n\t\t\tvalues: DEFAULT_STORE_DATA,\n\t\t},\n\t\t(err: StandardError, store?: StoreModel) => {\n\t\t\tProcessMonitorStore = store;\n\t\t\tstoreWrapper = store;\n\t\t\tdone();\n\t\t}\n\t);\n}\n\nconst Actions = {\n\t/**\n\t * Creates the local store, then gets the first cut at stats for the process list.\n\t */\n\tinitialize: (cb: VoidCallback) => {\n\t\tcreateLocalStore(() => {\n\t\t\tActions.getInitialData();\n\t\t\tcb();\n\t\t});\n\t},\n\n\t/**\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.\n\t */\n\tgetInitialData: () => {\n\t\tFSBL.System.getProcessList(Actions.extractData);\n\t\tsetInterval(() => {\n\t\t\tFSBL.System.getProcessList(Actions.extractData);\n\t\t}, 1000);\n\t},\n\n\t/**\n\t * Sets the sort field; if it's the same field as we had previously, we flip the sort direction.\n\t */\n\tsetSort: (field: string) => {\n\t\tconst currentSort = ProcessMonitorStore?.getValue({ field: \"sort\" });\n\t\tlet procs = ProcessMonitorStore?.getValue({ field: \"processList\" });\n\t\tlet newSort;\n\t\t//If it's the same field as before, flip the direction\n\t\tif (currentSort.field === field) {\n\t\t\tnewSort = currentSort;\n\t\t\tif (currentSort.direction == \"ascending\") {\n\t\t\t\tnewSort.direction = \"descending\";\n\t\t\t} else {\n\t\t\t\tnewSort.direction = \"ascending\";\n\t\t\t}\n\t\t} else {\n\t\t\tnewSort = {\n\t\t\t\tfield,\n\t\t\t\tdirection: DEFAULT_SORT_DIRECTION,\n\t\t\t};\n\t\t}\n\n\t\tProcessMonitorStore?.setValue({ field: \"sort\", value: newSort }, () => {\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.\n\t\t\tprocs = Actions.sortProcesses(procs);\n\t\t\tProcessMonitorStore?.setValue({ field: \"processList\", value: procs });\n\t\t});\n\t},\n\n\t/**\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.\n\t */\n\textractData: (processes: ProcessInfo[]) => {\n\t\tActions.createDataModel(processes, (procs) => {\n\t\t\t//set store.\n\t\t\tProcessMonitorStore?.setValue({ field: \"processList\", value: procs });\n\t\t});\n\t},\n\n\t/**\n\t * Converts the system.getProcessList response into something that's easily render-able.\n\t */\n\tcreateDataModel: (processes: ProcessInfo[], cb: (procs: ProcessType[]) => void) => {\n\t\tconst mode = ProcessMonitorStore?.getValue({ field: \"viewMode\" });\n\n\t\ttype ViewOrWindow = ProcessInfo[\"windows\"][0] | ProcessInfo[\"views\"][0];\n\n\t\tconst sortWindow = (a: { name: string }, b: { name: string }) => {\n\t\t\tif (a.name < b.name) return -1;\n\t\t\tif (a.name > b.name) return 1;\n\t\t\treturn 0;\n\t\t};\n\n\t\tconst viewOrWindowToProc = (item: ViewOrWindow) => {\n\t\t\tconst name =\n\t\t\t\t\"name\" in item\n\t\t\t\t\t? item.name\n\t\t\t\t\t: getViewName({\n\t\t\t\t\t\t\twindowName: item.windowName,\n\t\t\t\t\t\t\tviewId: String(item.id),\n\t\t\t\t\t });\n\t\t\treturn {\n\t\t\t\tname,\n\t\t\t\ttype: \"name\" in item ? \"window\" : \"view\",\n\t\t\t};\n\t\t};\n\n\t\tconst allowAdvanced = (item: ViewOrWindow) => {\n\t\t\tconst windowName: string = \"name\" in item ? item.name.toLowerCase() : item.windowName.toLowerCase();\n\t\t\tconst windowIsService = windowName.includes(\"service\");\n\t\t\tconst windowIsSystem = windowName.includes(\"system\");\n\t\t\tconst windowIsUnnamed = windowName.includes(\"unnamed\");\n\t\t\tconst windowIsSimple = windowIsService || windowIsSystem || windowIsUnnamed;\n\t\t\treturn mode !== \"simple\" || !windowIsSimple;\n\t\t};\n\n\t\tconst procs: ProcessType[] = processes.map((proc) => {\n\t\t\tconst procName = proc.name.toLowerCase();\n\t\t\tconst isService = procName.includes(\"service\");\n\t\t\tconst isSystem = procName.includes(\"system\");\n\t\t\tconst isUnnamed = procName.includes(\"unnamed\");\n\t\t\tconst procIsSimple = isService || isSystem || isUnnamed;\n\t\t\tif (mode === \"simple\" && procIsSimple) {\n\t\t\t\treturn {\n\t\t\t\t\tstatistics: proc,\n\t\t\t\t\tvisible: false,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst childWindows: ChildWindowType[] = [...proc.windows, ...proc.views]\n\t\t\t\t.filter(allowAdvanced)\n\t\t\t\t.map(viewOrWindowToProc)\n\t\t\t\t.sort(sortWindow);\n\n\t\t\treturn {\n\t\t\t\tstatistics: proc,\n\t\t\t\tvisible: true,\n\t\t\t\ttype: proc.type,\n\t\t\t\tchildWindows,\n\t\t\t};\n\t\t});\n\n\t\tcb(Actions.sortProcesses(procs));\n\t},\n\n\t/**\n\t * Sorting function. Handles ascending and descending.\n\t */\n\tsortProcesses: (procs: ProcessType[]) => {\n\t\tlet currentSort: SortObjectType = ProcessMonitorStore?.getValue({ field: \"sort\" });\n\t\tlet sortFN = (a: ProcessType, b: ProcessType) => {\n\t\t\tlet aValue = a.statistics[currentSort.field];\n\t\t\tlet bValue = b.statistics[currentSort.field];\n\n\t\t\tif (typeof aValue === \"undefined\" || typeof bValue === \"undefined\") {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\t//Comparing upper and lowercase names makes the sort look wrong. we equalize all strings here.\n\t\t\tif (typeof aValue === \"string\") {\n\t\t\t\taValue = aValue.toLowerCase();\n\t\t\t}\n\t\t\tif (typeof bValue === \"string\") {\n\t\t\t\tbValue = bValue.toLowerCase();\n\t\t\t}\n\n\t\t\tif (currentSort.direction === \"ascending\") {\n\t\t\t\tif (aValue < bValue) return -1;\n\t\t\t\tif (aValue > bValue) return 1;\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\tif (aValue > bValue) return -1;\n\t\t\tif (aValue < bValue) return 1;\n\t\t\treturn 0;\n\t\t};\n\t\treturn procs.sort(sortFN);\n\t},\n\n\t/**\n\t * Toggles advanced/simple mode\n\t */\n\ttoggleViewMode: () => {\n\t\tconst mode = ProcessMonitorStore?.getValue({ field: \"viewMode\" });\n\t\tProcessMonitorStore?.setValue({\n\t\t\tfield: \"viewMode\",\n\t\t\tvalue: mode === \"advanced\" ? \"simple\" : \"advanced\",\n\t\t});\n\t},\n\n\t/**\n\t * Gets the current \"flashing\" state - whether the process monitor is currently flashing a window\n\t */\n\tgetFlashingState: (cb?: StandardCallback) => {\n\t\tProcessMonitorStore?.getValue(\"flashing\", cb);\n\t},\n\n\t/**\n\t * Gets the current \"flashing\" state for the process monitor\n\t */\n\tsetFlashingState: (value: boolean, cb?: StandardCallback) => {\n\t\tProcessMonitorStore?.setValue({ field: \"flashing\", value }, cb);\n\t},\n\n\t/**\n\t * Make the window flash a couple of times so that the user can identify it.\n\t */\n\tidentifyWindow: function (winID: ChildWindowType) {\n\t\tif (winID.name.includes(\"Service\")) return;\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\n\t\tconst baseName = getViewBaseName(winID);\n\n\t\tthis.setFlashingState(true);\n\n\t\tconst OPACITY_ANIMATION_DURATION = 200;\n\t\tFSBL.FinsembleWindow.getInstance({ name: baseName }, (err: StandardError, win: FinsembleWindow) => {\n\t\t\tlet windowState = \"hidden\";\n\t\t\tfunction flash(n: any, done: any) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\twin.hide(() => {\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\twin.show(() => {\n\t\t\t\t\t\t\t\tdone(null);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}, OPACITY_ANIMATION_DURATION / 1.5);\n\t\t\t\t\t});\n\t\t\t\t}, OPACITY_ANIMATION_DURATION / 1.5);\n\t\t\t}\n\t\t\twin.isShowing({}, (error: StandardError, isVisible) => {\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.\n\t\t\t\twindowState = isVisible ? \"visible\" : \"hidden\";\n\t\t\t\twin.show(() => {\n\t\t\t\t\twin.bringToFront(() => {\n\t\t\t\t\t\t//Flash 5 times, in series.\n\t\t\t\t\t\tasync.timesSeries(5, flash, () => {\n\t\t\t\t\t\t\tif (windowState === \"hidden\") {\n\t\t\t\t\t\t\t\twin.hide();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthis.setFlashingState(false);\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n\t * Terminates a process. Prompts first. If it fails to terminate the process, displays an error message.\n\t */\n\tterminateProcess: (AppIdentifier: { uuid: string }, force = false) => {\n\t\t// AppIdentifier should be of type ChildWindow, but that has `uuid` as optional, and\n\t\t// uuid is required for this function\n\n\t\tconst app = FSBL.System.Application.wrap(AppIdentifier.uuid);\n\t\t/**\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.\n\t\t *\n\t\t * 1st time we try to close: Politely close the window. If that fails, recurse, but pass \"force\" === true.\n\t\t * 2nd time, we try to forceClose the process. If that fails, we will terminate the process forcibly, which isn't graceful.\n\t\t */\n\n\t\tconst onCloseFailure = () => {\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).\n\t\t\tif (force) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\t\tterminateProcess();\n\t\t\t} else {\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.\n\t\t\t\tActions.terminateProcess(AppIdentifier, true);\n\t\t\t}\n\t\t};\n\n\t\tconst forceCloseProcess = () => {\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.\n\t\t\tconst closeTimeout = setTimeout(() => {\n\t\t\t\tonCloseFailure();\n\t\t\t}, MAGIC_NUMBER_TERMINATION_TIMEOUT);\n\n\t\t\tconst onCloseSuccess = () => {\n\t\t\t\tclearTimeout(closeTimeout);\n\t\t\t};\n\t\t\tapp.close(force, onCloseSuccess, onCloseFailure);\n\t\t};\n\n\t\tconst terminateProcess = () => {\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.\n\t\t\tapp.terminate(\n\t\t\t\t() => {},\n\t\t\t\t() => {\n\t\t\t\t\tFSBL.Clients.DialogManager.open(\n\t\t\t\t\t\t\"yesNo\",\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttitle: \"Error\",\n\t\t\t\t\t\t\tquestion: \"The process that you are attempting to close is unresponsive. Please contact support.\",\n\t\t\t\t\t\t\taffirmativeButtonLabel: \"Okay\",\n\t\t\t\t\t\t\tshowCancelButton: false,\n\t\t\t\t\t\t\tshowNegativeButton: false,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => {}\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t);\n\t\t};\n\n\t\t// If we're force closing, no need to prompt the user (which is what happens below);\n\t\tif (force) {\n\t\t\treturn forceCloseProcess();\n\t\t}\n\n\t\t//Ask user if they're sure. If they says \"yes\", close it.\n\t\tFSBL.Clients.DialogManager.open(\n\t\t\t\"yesNo\",\n\t\t\t{\n\t\t\t\ttitle: \"Terminate Process?\",\n\t\t\t\tquestion: \"Terminating the process may close other apps. Are you sure you want to continue?\",\n\t\t\t\taffirmativeResponseLabel: \"Terminate\",\n\t\t\t\tshowNegativeButton: false,\n\t\t\t},\n\t\t\t(err: StandardError, response: { choice: string }) => {\n\t\t\t\tif (err || response.choice === \"affirmative\") {\n\t\t\t\t\tforceCloseProcess();\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t},\n\n\t/**\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.\n\t */\n\tremoveWindowLocally: function (winID: { uuid: string; name: string }) {\n\t\tlet procs: ProcessType[] = ProcessMonitorStore?.getValue({ field: \"processList\" });\n\t\tprocs = procs.map((proc) => {\n\t\t\tif (proc.childWindows) {\n\t\t\t\tconst cwIndex = proc.childWindows.findIndex((cw) => cw.name === winID.name);\n\t\t\t\tproc.childWindows.splice(cwIndex, 1);\n\t\t\t}\n\t\t\treturn proc;\n\t\t});\n\t\tProcessMonitorStore?.setValue({ field: \"processList\", value: procs });\n\t},\n\n\t/**\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.\n\t */\n\tcloseWindow: function (winID: { uuid: string; name: string }, force = false) {\n\t\tconst win = FSBL.System.Window.wrap(winID.uuid, winID.name);\n\n\t\t//Make the UI feel snappy.\n\t\tActions.removeWindowLocally(winID);\n\n\t\tconst onCloseFailure = () => {\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.\n\t\t\tif (force) {\n\t\t\t\tFSBL.Clients.DialogManager.open(\n\t\t\t\t\t\"yesNo\",\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle: \"Terminate Process?\",\n\t\t\t\t\t\tquestion:\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.\",\n\t\t\t\t\t\taffirmativeResponseLabel: \"Terminate\",\n\t\t\t\t\t\tshowNegativeButton: false,\n\t\t\t\t\t},\n\t\t\t\t\t(err: StandardError, response: { choice: string }) => {\n\t\t\t\t\t\tif (err || response.choice === \"affirmative\") {\n\t\t\t\t\t\t\treturn Actions.terminateProcess({ uuid: winID.uuid }, true);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tActions.closeWindow(winID, true);\n\t\t\t}\n\t\t};\n\n\t\t//If we can't close within 4 seconds, something's wrong - try to force close it.\n\t\tconst closeTimeout = setTimeout(() => {\n\t\t\tonCloseFailure();\n\t\t}, MAGIC_NUMBER_TERMINATION_TIMEOUT);\n\n\t\tconst onCloseSuccess = () => {\n\t\t\tclearTimeout(closeTimeout);\n\t\t};\n\n\t\twin.close(force, onCloseSuccess, onCloseFailure);\n\t},\n};\n\nexport { ProcessMonitorStore as Store, Actions };\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"QuickComponentForm.js","sourceRoot":"","sources":["../../../src/components/quickComponentForm/QuickComponentForm.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport { FinsembleDialog } from \"../legacyControls/FinsembleDialog\";\r\nimport { FinsembleDialogTextInput } from \"../legacyControls/FinsembleDialogTextInput\";\r\nimport { FinsembleDialogButton } from \"../legacyControls/FinsembleDialogButton\";\r\nimport \"../../assets/css/dialogs.css\";\r\nimport \"./quickComponent.css\";\r\nimport { isValidURL } from \"../shared/validateURL\";\r\nimport { addProtocolToValidURL } from \"../shared/addProtocolToValidURL\";\r\n\r\ninterface IProps {}\r\n\r\ninterface IState {\r\n\tname: string;\r\n\turl: string;\r\n}\r\n\r\n// @deprecated - Quick Components will be removed in a future version\r\nclass QuickComponentFormBase extends React.Component<IProps, IState> {\r\n\tconstructor(props: IProps) {\r\n\t\tsuper(props);\r\n\t\tFSBL.Clients.Logger.system.deprecated(\r\n\t\t\t\"Quick Components have been deprecated and will not be available in a future release.\"\r\n\t\t);\r\n\t\tthis.state = {\r\n\t\t\tname: \"\",\r\n\t\t\turl: \"\",\r\n\t\t};\r\n\t\tthis.save = this.save.bind(this);\r\n\t\tthis.cancel = this.cancel.bind(this);\r\n\t\tthis.setName = this.setName.bind(this);\r\n\t\tthis.setURL = this.setURL.bind(this);\r\n\t\tthis.onkeydown = this.onkeydown.bind(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Adds eventListeners on keydown, sets the height of the component.\r\n\t */\r\n\tcomponentDidMount() {\r\n\t\tFSBL.Clients.WindowClient.fitToDOM();\r\n\t\tdocument.body.addEventListener(\"keydown\", this.onkeydown);\r\n\t\tFSBL.Clients.WindowClient.setAlwaysOnTop(true);\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tdocument.body.removeEventListener(\"keydown\", this.onkeydown);\r\n\t}\r\n\r\n\t/**\r\n\t * Matches the enter and escape keys with the corresponding function to invoke.\r\n\t */\r\n\tonkeydown(e: KeyboardEvent) {\r\n\t\tif (e.code === \"Enter\" && e.shiftKey === false) {\r\n\t\t\tthis.save();\r\n\t\t}\r\n\r\n\t\tif (e.code === \"Escape\") {\r\n\t\t\tthis.cancel();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Hides the window when the save button is clicked.\r\n\t */\r\n\thideWindow() {\r\n\t\tfinsembleWindow.hide();\r\n\t}\r\n\r\n\t/**\r\n\t * Persists the quick component to storage.\r\n\t */\r\n\tsave() {\r\n\t\tif (!this.state) return FSBL.Clients.DialogManager.respondToOpener({});\r\n\t\tlet { name, url } = this.state;\r\n\t\tif (!name || !url) return FSBL.Clients.DialogManager.respondToOpener({});\r\n\r\n\t\tif (!isValidURL(url)) {\r\n\t\t\treturn FSBL.Clients.DialogManager.respondToOpener({\r\n\t\t\t\terror: \"Invalid URL\",\r\n\t\t\t});\r\n\t\t}\r\n\t\tconst urlWithProtocol = addProtocolToValidURL(url);\r\n\r\n\t\tFSBL.Clients.LauncherClient.addUserDefinedComponent(\r\n\t\t\t{\r\n\t\t\t\tname: name,\r\n\t\t\t\turl: urlWithProtocol,\r\n\t\t\t},\r\n\t\t\t(err: Error | string | null | undefined) => {\r\n\t\t\t\tif (err) {\r\n\t\t\t\t\tconsole.error(err);\r\n\t\t\t\t}\r\n\t\t\t\t// FSBL.Clients.WindowClient.close(false);\r\n\t\t\t\tFSBL.Clients.DialogManager.respondToOpener({});\r\n\t\t\t}\r\n\t\t);\r\n\t\tArray.from(document.querySelectorAll(\"input\")).forEach((el) => (el.value = \"\"));\r\n\t\tthis.setState({\r\n\t\t\tname: \"\",\r\n\t\t\turl: \"\",\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Kills the window.\r\n\t */\r\n\tcancel() {\r\n\t\tArray.from(document.querySelectorAll(\"input\")).forEach((el) => (el.value = \"\"));\r\n\r\n\t\tFSBL.Clients.DialogManager.respondToOpener({});\r\n\t}\r\n\r\n\tsetName(e: React.ChangeEvent<HTMLInputElement>) {\r\n\t\tthis.setState({ name: e.target.value });\r\n\t}\r\n\r\n\tsetURL(e: React.ChangeEvent<HTMLInputElement>) {\r\n\t\tthis.setState({ url: e.target.value });\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<FinsembleDialog\r\n\t\t\t\tbehaviorOnResponse=\"hide\"\r\n\t\t\t\tonShowRequested={() => {\r\n\t\t\t\t\tFSBL.Clients.WindowClient.fitToDOM(null, () => {\r\n\t\t\t\t\t\tFSBL.Clients.DialogManager.showDialog();\r\n\t\t\t\t\t});\r\n\t\t\t\t}}\r\n\t\t\t\tisModal={true}\r\n\t\t\t>\r\n\t\t\t\t<div className=\"dialog-title\">Enter a name and URL for your app.</div>\r\n\t\t\t\t<FinsembleDialogTextInput\r\n\t\t\t\t\tonInputChange={this.setName}\r\n\t\t\t\t\tplaceholder=\"Name\"\r\n\t\t\t\t\tautoFocus\r\n\t\t\t\t\tvalue={this.state.name}\r\n\t\t\t\t\tfocusOnShow={true}\r\n\t\t\t\t/>\r\n\t\t\t\t<FinsembleDialogTextInput\r\n\t\t\t\t\tonInputChange={this.setURL}\r\n\t\t\t\t\tplaceholder=\"URL\"\r\n\t\t\t\t\tvalue={this.state.url}\r\n\t\t\t\t\tautoFocus={false}\r\n\t\t\t\t/>\r\n\t\t\t\t<div className=\"button-wrapper\">\r\n\t\t\t\t\t<FinsembleDialogButton className=\"fsbl-button-neutral\" onClick={this.cancel} show={true}>\r\n\t\t\t\t\t\tCancel\r\n\t\t\t\t\t</FinsembleDialogButton>\r\n\r\n\t\t\t\t\t<FinsembleDialogButton className=\"fsbl-button-affirmative\" onClick={this.save} show={true}>\r\n\t\t\t\t\t\tConfirm\r\n\t\t\t\t\t</FinsembleDialogButton>\r\n\t\t\t\t</div>\r\n\t\t\t</FinsembleDialog>\r\n\t\t);\r\n\t}\r\n}\r\n\r\n/**\r\n * A form that allows the user to add a quick component. It provides one field for the name of the quick component, and another field for its URL.\r\n */\r\nexport const QuickComponentForm = () => <QuickComponentFormBase />;\r\n"]}
1
+ {"version":3,"file":"QuickComponentForm.js","sourceRoot":"","sources":["../../../src/components/quickComponentForm/QuickComponentForm.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { FinsembleDialog } from \"../legacyControls/FinsembleDialog\";\nimport { FinsembleDialogTextInput } from \"../legacyControls/FinsembleDialogTextInput\";\nimport { FinsembleDialogButton } from \"../legacyControls/FinsembleDialogButton\";\nimport \"../../assets/css/dialogs.css\";\nimport \"./quickComponent.css\";\nimport { isValidURL } from \"../shared/validateURL\";\nimport { addProtocolToValidURL } from \"../shared/addProtocolToValidURL\";\n\ninterface IProps {}\n\ninterface IState {\n\tname: string;\n\turl: string;\n}\n\n// @deprecated - Quick Components will be removed in a future version\nclass QuickComponentFormBase extends React.Component<IProps, IState> {\n\tconstructor(props: IProps) {\n\t\tsuper(props);\n\t\tFSBL.Clients.Logger.system.deprecated(\n\t\t\t\"Quick Components have been deprecated and will not be available in a future release.\"\n\t\t);\n\t\tthis.state = {\n\t\t\tname: \"\",\n\t\t\turl: \"\",\n\t\t};\n\t\tthis.save = this.save.bind(this);\n\t\tthis.cancel = this.cancel.bind(this);\n\t\tthis.setName = this.setName.bind(this);\n\t\tthis.setURL = this.setURL.bind(this);\n\t\tthis.onkeydown = this.onkeydown.bind(this);\n\t}\n\n\t/**\n\t * Adds eventListeners on keydown, sets the height of the component.\n\t */\n\tcomponentDidMount() {\n\t\tFSBL.Clients.WindowClient.fitToDOM();\n\t\tdocument.body.addEventListener(\"keydown\", this.onkeydown);\n\t\tFSBL.Clients.WindowClient.setAlwaysOnTop(true);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tdocument.body.removeEventListener(\"keydown\", this.onkeydown);\n\t}\n\n\t/**\n\t * Matches the enter and escape keys with the corresponding function to invoke.\n\t */\n\tonkeydown(e: KeyboardEvent) {\n\t\tif (e.code === \"Enter\" && e.shiftKey === false) {\n\t\t\tthis.save();\n\t\t}\n\n\t\tif (e.code === \"Escape\") {\n\t\t\tthis.cancel();\n\t\t}\n\t}\n\n\t/**\n\t * Hides the window when the save button is clicked.\n\t */\n\thideWindow() {\n\t\tfinsembleWindow.hide();\n\t}\n\n\t/**\n\t * Persists the quick component to storage.\n\t */\n\tsave() {\n\t\tif (!this.state) return FSBL.Clients.DialogManager.respondToOpener({});\n\t\tlet { name, url } = this.state;\n\t\tif (!name || !url) return FSBL.Clients.DialogManager.respondToOpener({});\n\n\t\tif (!isValidURL(url)) {\n\t\t\treturn FSBL.Clients.DialogManager.respondToOpener({\n\t\t\t\terror: \"Invalid URL\",\n\t\t\t});\n\t\t}\n\t\tconst urlWithProtocol = addProtocolToValidURL(url);\n\n\t\tFSBL.Clients.LauncherClient.addUserDefinedComponent(\n\t\t\t{\n\t\t\t\tname: name,\n\t\t\t\turl: urlWithProtocol,\n\t\t\t},\n\t\t\t(err: Error | string | null | undefined) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tconsole.error(err);\n\t\t\t\t}\n\t\t\t\t// FSBL.Clients.WindowClient.close(false);\n\t\t\t\tFSBL.Clients.DialogManager.respondToOpener({});\n\t\t\t}\n\t\t);\n\t\tArray.from(document.querySelectorAll(\"input\")).forEach((el) => (el.value = \"\"));\n\t\tthis.setState({\n\t\t\tname: \"\",\n\t\t\turl: \"\",\n\t\t});\n\t}\n\n\t/**\n\t * Kills the window.\n\t */\n\tcancel() {\n\t\tArray.from(document.querySelectorAll(\"input\")).forEach((el) => (el.value = \"\"));\n\n\t\tFSBL.Clients.DialogManager.respondToOpener({});\n\t}\n\n\tsetName(e: React.ChangeEvent<HTMLInputElement>) {\n\t\tthis.setState({ name: e.target.value });\n\t}\n\n\tsetURL(e: React.ChangeEvent<HTMLInputElement>) {\n\t\tthis.setState({ url: e.target.value });\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<FinsembleDialog\n\t\t\t\tbehaviorOnResponse=\"hide\"\n\t\t\t\tonShowRequested={() => {\n\t\t\t\t\tFSBL.Clients.WindowClient.fitToDOM(null, () => {\n\t\t\t\t\t\tFSBL.Clients.DialogManager.showDialog();\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tisModal={true}\n\t\t\t>\n\t\t\t\t<div className=\"dialog-title\">Enter a name and URL for your app.</div>\n\t\t\t\t<FinsembleDialogTextInput\n\t\t\t\t\tonInputChange={this.setName}\n\t\t\t\t\tplaceholder=\"Name\"\n\t\t\t\t\tautoFocus\n\t\t\t\t\tvalue={this.state.name}\n\t\t\t\t\tfocusOnShow={true}\n\t\t\t\t/>\n\t\t\t\t<FinsembleDialogTextInput\n\t\t\t\t\tonInputChange={this.setURL}\n\t\t\t\t\tplaceholder=\"URL\"\n\t\t\t\t\tvalue={this.state.url}\n\t\t\t\t\tautoFocus={false}\n\t\t\t\t/>\n\t\t\t\t<div className=\"button-wrapper\">\n\t\t\t\t\t<FinsembleDialogButton className=\"fsbl-button-neutral\" onClick={this.cancel} show={true}>\n\t\t\t\t\t\tCancel\n\t\t\t\t\t</FinsembleDialogButton>\n\n\t\t\t\t\t<FinsembleDialogButton className=\"fsbl-button-affirmative\" onClick={this.save} show={true}>\n\t\t\t\t\t\tConfirm\n\t\t\t\t\t</FinsembleDialogButton>\n\t\t\t\t</div>\n\t\t\t</FinsembleDialog>\n\t\t);\n\t}\n}\n\n/**\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.\n */\nexport const QuickComponentForm = () => <QuickComponentFormBase />;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/quickComponentForm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC","sourcesContent":["export { QuickComponentForm } from \"./QuickComponentForm\";\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/quickComponentForm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC","sourcesContent":["export { QuickComponentForm } from \"./QuickComponentForm\";\n"]}
@@ -1,3 +1,3 @@
1
- body {
2
- margin: 0px;
3
- }
1
+ body {
2
+ margin: 0px;
3
+ }
@@ -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,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"]}
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\";\n\nexport type HighlightProps = {\n\tmatchAgainst: string;\n\ttext: string;\n};\n\n/**\n *Encode characters of string\n *\n * @param {string} str - String to be encoded\n * @returns {string} String with all characters encoded\n */\nconst encodeStringChars = (str: string) => `&#${str.charCodeAt(0)};`;\n\n/**\n *Sanitize string for HTML to prevent XSS attack\n *\n * @param {*} str\n * @return {*}\n */\nconst sanitizeHTML = (str: string) => str?.replace(/[^\\w. ]/gi, encodeStringChars);\n\n/**\n * Highlights matching areas of a query against a piece of text, and then renders them\n * on the screen with a highlighted class. The matching is case insensitive.\n * NOTE: This calls dangerouslySetInnerHTML and contains a potential exploit for XSS. Use with caution\n * when rendering externally-supplied content.\n */\nexport const Highlight = (props: HighlightProps) => {\n\tconst { matchAgainst, text } = props;\n\n\tconst escapedMatch = matchAgainst.replace(/([.*+?^${}()|[\\]\\\\])/g, encodeStringChars);\n\n\tconst sanitizedHtml = sanitizeHTML(text);\n\tlet regex: RegExp | string;\n\n\t// Catch unexpected cases where some combination of characters break the RegExp\n\ttry {\n\t\tregex = new RegExp(`(${escapedMatch || sanitizedHtml})`, \"gi\");\n\t} catch (e) {\n\t\tregex = escapedMatch;\n\t\tconsole.error(\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.`\n\t\t);\n\t}\n\n\tconst itemHtml = sanitizedHtml?.replace(regex, `<span class=\"highlight\">$1</span>`);\n\n\treturn (\n\t\t<span\n\t\t\tdangerouslySetInnerHTML={{\n\t\t\t\t__html: itemHtml,\n\t\t\t}}\n\t\t></span>\n\t);\n};\n"]}
@@ -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,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"]}
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\";\nimport { mount } from \"enzyme\";\nimport { describe, it } from \"mocha\";\nimport { expect } from \"chai\";\nimport { Start, RegularExpression, NoHighlight } from \"./Highlight.stories\";\nimport { HighlightProps } from \"./Highlight\";\nimport { enzymeQuerySelectorWrapper } from \"../utils\";\n\ndescribe(\"<Highlight/>\", () => {\n\tit(\"should contain a highlight section if there's a match\", () => {\n\t\tconst wrapper = mount(<Start {...(Start.args as HighlightProps)} />);\n\t\tconst element = enzymeQuerySelectorWrapper(wrapper, \".highlight\");\n\t\texpect(element).to.not.be.null;\n\t});\n\tit(\"should not contain a highlight section if there's no match\", () => {\n\t\tconst wrapper = mount(<NoHighlight {...(NoHighlight.args as HighlightProps)} />);\n\t\tconst element = enzymeQuerySelectorWrapper(wrapper, \".highlight\");\n\t\texpect(element).to.be.null;\n\t});\n\tit(\"should not throw an error if an invalid regular expression is used as the match string\", () => {\n\t\tmount(<RegularExpression {...(RegularExpression.args as HighlightProps)} />);\n\t});\n});\n"]}
@@ -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,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
+ {"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\";\nimport { Highlight, HighlightProps } from \"./Highlight\";\nimport \"../../assets/css/search.css\";\nimport { Story } from \"@storybook/react/types-6-0\";\n\nexport default {\n\ttitle: \"Toolbar/Highlight\",\n\tcomponent: Highlight,\n};\n\nconst Template: Story<HighlightProps> = (args: HighlightProps) => <Highlight {...args} />;\n\nexport const Start = Template.bind({});\nStart.args = {\n\tmatchAgainst: \"Example\",\n\ttext: \"Example chart apps\",\n};\n\nexport const MiddleWord = Template.bind({});\nMiddleWord.args = {\n\tmatchAgainst: \"Chart\",\n\ttext: \"Example chart apps\",\n};\n\nexport const MiddleText = Template.bind({});\nMiddleText.args = {\n\tmatchAgainst: \"amp\",\n\ttext: \"Example chart apps\",\n};\n\nexport const LastWord = Template.bind({});\nLastWord.args = {\n\tmatchAgainst: \"ps\",\n\ttext: \"Example chart apps\",\n};\n\nexport const RegularExpression = Template.bind({});\nRegularExpression.args = {\n\tmatchAgainst: \"+\",\n\ttext: \"A+B\",\n};\n\nexport const NoHighlight = Template.bind({});\nNoHighlight.args = {\n\tmatchAgainst: \"Not Present\",\n\ttext: \"Hello World\",\n};\n"]}
@@ -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,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"]}
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\";\nimport { Menu } from \"../menu/Menu\";\nimport { MenuProps } from \"../menu/Menu\";\nimport { SearchResults } from \"./SearchResults\";\nimport { SearchInput } from \"./SearchInput\";\nimport \"../../assets/css/search.css\";\n\nconst Search: React.FunctionComponent<MenuProps> = ({\n\twidth = 330,\n\tclassName = \"search-menu\",\n\tid = \"SearchMenu\",\n\t...otherProps\n}) => {\n\tconst completeProps = {\n\t\t...otherProps,\n\t\twidth,\n\t\tclassName,\n\t\tid,\n\t\ttitle: otherProps.title ?? <i className=\"ff-search\"></i>,\n\t};\n\n\treturn (\n\t\t<Menu {...completeProps}>\n\t\t\t<SearchInput />\n\t\t\t<SearchResults />\n\t\t</Menu>\n\t);\n};\nexport { Search };\n"]}
@@ -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,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,0CAAE,OAAO,CAAC,CAAC,MAAwB,EAAE,EAAE;gBACxD,IAAI,SAAS,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE;oBACzD,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 || result.score < bestMatch.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,IAAI,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE;oBACzD,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\";\nimport { SearchResult } from \"./SearchResult\";\nimport { SearchProviderResponse, SearchResultType } from \"../../types/searchTypes\";\nimport { useSearch } from \"../../hooks/useSearch\";\n\n/**\n * Iterates through the responses from every search provider\n * and returns the item with the highest score.\n * Half of the time this makes sense. The other half\n * it doesn't make sense. It's all built on Fuse JS and how\n * it grades the 'score' of a query to an entity.\n */\nconst findBestMatch = (searchProviderResponses: SearchProviderResponse[] | null) => {\n\tif (searchProviderResponses) {\n\t\tlet bestMatch: SearchResultType | null = null;\n\t\tsearchProviderResponses.forEach((providerInfo: SearchProviderResponse) => {\n\t\t\tproviderInfo?.data?.forEach((result: SearchResultType) => {\n\t\t\t\tif (bestMatch === null || result.score < bestMatch.score) {\n\t\t\t\t\tbestMatch = result;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\treturn bestMatch;\n\t}\n\treturn null;\n};\n\n/**\n * Simple component that renders a menu item for the entity that\n * best matches the user's query.\n */\nexport const SearchBestMatch = () => {\n\tconst { searchResults, searchQuery, resetSearch } = useSearch();\n\tconst bestMatchData = findBestMatch(searchResults);\n\tif (!bestMatchData) return null;\n\n\treturn (\n\t\t<div>\n\t\t\t<div className=\"search-title\">Best Match</div>\n\t\t\t<SearchResult resetSearch={resetSearch} data={bestMatchData} searchQuery={searchQuery} />\n\t\t</div>\n\t);\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SearchInput.js","sourceRoot":"","sources":["../../../src/components/search/SearchInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAOlD,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE;IAC/B,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE,CAAC;IAEpC,MAAM,YAAY,GAAQ,SAAS,EAAE,CAAC;IACtC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE,CAAC;IAEjD,MAAM,oBAAoB,GAAG,GAAG,EAAE;QACjC,WAAW,EAAE,CAAC;QACd,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,CAAsC,EAAE,EAAE;QACpE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,OAAO,CACN,6BAAK,SAAS,EAAC,oBAAoB;QAClC,6BAAK,SAAS,EAAC,eAAe;YAC7B,8BAAM,SAAS,EAAC,qBAAqB;gBACpC,2BAAG,SAAS,EAAC,WAAW,GAAG,CACrB;YACP,+BACC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAC,MAAM,EACX,WAAW,EAAC,QAAQ,EACpB,SAAS,EAAC,cAAc,EACxB,KAAK,EAAE,WAAW,IAAI,EAAE,EACxB,SAAS,QACT,QAAQ,EAAE,iBAAiB,GAC1B;YACD,WAAW,IAAI,CACf,8BAAM,SAAS,EAAC,uCAAuC,EAAC,OAAO,EAAE,oBAAoB;gBACpF,2BAAG,SAAS,EAAC,UAAU,GAAG,CACpB,CACP,CACI,CACD,CACN,CAAC;AACH,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\r\nimport { createRef } from \"react\";\r\nimport { useSearch } from \"../../hooks/useSearch\";\r\n\r\n/**\r\n * This is the search input field for the search menu.\r\n * It will trigger calls to the searchMenu via the hook passed in\r\n * through props.\r\n */\r\nexport const SearchInput = () => {\r\n\tconst { searchQuery } = useSearch();\r\n\t// the ref is needed so we can provide focus after clearing the search.\r\n\tconst textInputRef: any = createRef();\r\n\tconst { updateQuery, resetSearch } = useSearch();\r\n\r\n\tconst onClearSearchClicked = () => {\r\n\t\tresetSearch();\r\n\t\ttextInputRef.current.focus();\r\n\t};\r\n\r\n\tconst handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n\t\tupdateQuery(e.target.value);\r\n\t};\r\n\r\n\treturn (\r\n\t\t<div className=\"menu-item no-hover\">\r\n\t\t\t<div className=\"menu-item-row\">\r\n\t\t\t\t<span className=\"search-icon-wrapper\">\r\n\t\t\t\t\t<i className=\"ff-search\" />\r\n\t\t\t\t</span>\r\n\t\t\t\t<input\r\n\t\t\t\t\tref={textInputRef}\r\n\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\tplaceholder=\"Search\"\r\n\t\t\t\t\tclassName=\"search-input\"\r\n\t\t\t\t\tvalue={searchQuery || \"\"}\r\n\t\t\t\t\tautoFocus\r\n\t\t\t\t\tonChange={handleInputChange}\r\n\t\t\t\t/>\r\n\t\t\t\t{searchQuery && (\r\n\t\t\t\t\t<span className=\"clear-search menu-item-row-push-right\" onClick={onClearSearchClicked}>\r\n\t\t\t\t\t\t<i className=\"ff-close\" />\r\n\t\t\t\t\t</span>\r\n\t\t\t\t)}\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t);\r\n};\r\n"]}
1
+ {"version":3,"file":"SearchInput.js","sourceRoot":"","sources":["../../../src/components/search/SearchInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAOlD,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE;IAC/B,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE,CAAC;IAEpC,MAAM,YAAY,GAAQ,SAAS,EAAE,CAAC;IACtC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE,CAAC;IAEjD,MAAM,oBAAoB,GAAG,GAAG,EAAE;QACjC,WAAW,EAAE,CAAC;QACd,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,CAAsC,EAAE,EAAE;QACpE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,OAAO,CACN,6BAAK,SAAS,EAAC,oBAAoB;QAClC,6BAAK,SAAS,EAAC,eAAe;YAC7B,8BAAM,SAAS,EAAC,qBAAqB;gBACpC,2BAAG,SAAS,EAAC,WAAW,GAAG,CACrB;YACP,+BACC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAC,MAAM,EACX,WAAW,EAAC,QAAQ,EACpB,SAAS,EAAC,cAAc,EACxB,KAAK,EAAE,WAAW,IAAI,EAAE,EACxB,SAAS,QACT,QAAQ,EAAE,iBAAiB,GAC1B;YACD,WAAW,IAAI,CACf,8BAAM,SAAS,EAAC,uCAAuC,EAAC,OAAO,EAAE,oBAAoB;gBACpF,2BAAG,SAAS,EAAC,UAAU,GAAG,CACpB,CACP,CACI,CACD,CACN,CAAC;AACH,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\nimport { createRef } from \"react\";\nimport { useSearch } from \"../../hooks/useSearch\";\n\n/**\n * This is the search input field for the search menu.\n * It will trigger calls to the searchMenu via the hook passed in\n * through props.\n */\nexport const SearchInput = () => {\n\tconst { searchQuery } = useSearch();\n\t// the ref is needed so we can provide focus after clearing the search.\n\tconst textInputRef: any = createRef();\n\tconst { updateQuery, resetSearch } = useSearch();\n\n\tconst onClearSearchClicked = () => {\n\t\tresetSearch();\n\t\ttextInputRef.current.focus();\n\t};\n\n\tconst handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n\t\tupdateQuery(e.target.value);\n\t};\n\n\treturn (\n\t\t<div className=\"menu-item no-hover\">\n\t\t\t<div className=\"menu-item-row\">\n\t\t\t\t<span className=\"search-icon-wrapper\">\n\t\t\t\t\t<i className=\"ff-search\" />\n\t\t\t\t</span>\n\t\t\t\t<input\n\t\t\t\t\tref={textInputRef}\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tplaceholder=\"Search\"\n\t\t\t\t\tclassName=\"search-input\"\n\t\t\t\t\tvalue={searchQuery || \"\"}\n\t\t\t\t\tautoFocus\n\t\t\t\t\tonChange={handleInputChange}\n\t\t\t\t/>\n\t\t\t\t{searchQuery && (\n\t\t\t\t\t<span className=\"clear-search menu-item-row-push-right\" onClick={onClearSearchClicked}>\n\t\t\t\t\t\t<i className=\"ff-close\" />\n\t\t\t\t\t</span>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n"]}
@@ -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,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"]}
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\";\nimport { SearchResult } from \"./SearchResult\";\nimport { SearchProviderResponse, SearchResultType } from \"../../types/searchTypes\";\nimport { useSearch } from \"../../hooks/useSearch\";\n\nexport const SearchProviderResults: React.FunctionComponent<{\n\tproviderResponse: SearchProviderResponse;\n}> = ({ providerResponse }) => {\n\tconst { searchQuery, resetSearch } = useSearch();\n\n\tconst clickResetSearch = () => {\n\t\tresetSearch();\n\t};\n\t// Removes empty results then sorts by *lowest* score (search results are retuned from Finsemble where lowest is best)\n\t// This uses fuse.js which uses the \"bitap\" algorithm\n\tconst providerResults = providerResponse?.data\n\t\t?.filter((r: SearchResultType) => r)\n\t\t.sort((a: SearchResultType, b: SearchResultType) => a.score - b.score);\n\n\tconst providerClick = () => {\n\t\tFSBL.Clients.SearchClient.invokeProviderAction(providerResponse.provider);\n\t\tresetSearch();\n\t\tfinsembleWindow.blur();\n\t};\n\treturn (\n\t\t<>\n\t\t\t{providerResponse && (\n\t\t\t\t<div className=\"search-title\">\n\t\t\t\t\t{providerResponse.provider.displayName}\n\t\t\t\t\t{providerResponse.provider.providerActionTitle && (\n\t\t\t\t\t\t<div className=\"provider-title\" onClick={providerClick}>\n\t\t\t\t\t\t\t{providerResponse.provider.providerActionTitle}\n\t\t\t\t\t\t\t<div className=\"ff-arrow-right arrow_right_grey\"></div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{providerResults?.map((individualResult, i: number) => (\n\t\t\t\t<SearchResult key={i} resetSearch={clickResetSearch} searchQuery={searchQuery} data={individualResult} />\n\t\t\t))}\n\t\t</>\n\t);\n};\n"]}
@@ -3,11 +3,12 @@ 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
+ var _a, _b, _c;
7
7
  const { data, searchQuery, resetSearch } = props;
8
8
  const displayName = (_a = data.displayName) !== null && _a !== void 0 ? _a : data.name;
9
9
  const onSearchResultClicked = () => {
10
- FSBL.Clients.SearchClient.invokeItemAction(data, data.actions[0]);
10
+ var _a;
11
+ FSBL.Clients.SearchClient.invokeItemAction(data, (_a = data.actions) === null || _a === void 0 ? void 0 : _a[0]);
11
12
  resetSearch();
12
13
  };
13
14
  const onActionClicked = (action) => {
@@ -27,7 +28,7 @@ export const SearchResult = (props) => {
27
28
  React.createElement("div", { className: "menu-item-row" },
28
29
  React.createElement(Icon, Object.assign({}, icon)),
29
30
  React.createElement(Highlight, { text: displayName, matchAgainst: searchQuery || "" }),
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) => {
31
+ ((_b = data.actions) === null || _b === void 0 ? void 0 : _b.length) > 1 && (React.createElement("div", { className: "search-actions" }, (_c = data.actions) === null || _c === void 0 ? void 0 : _c.map((action, i) => (React.createElement("div", { key: `actionbtn${i}`, className: "search-actions actionButton", onClick: (e) => {
31
32
  e.preventDefault();
32
33
  e.stopPropagation();
33
34
  onActionClicked(action);