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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (749) hide show
  1. package/package.json +27 -22
  2. package/react/actions/smartDesktopDesignerActions.d.ts +7 -8
  3. package/react/actions/smartDesktopDesignerActions.js.map +1 -1
  4. package/react/actions/toolbarActions.d.ts +2 -3
  5. package/react/actions/toolbarActions.js.map +1 -1
  6. package/react/assets/css/button.css +2 -1
  7. package/react/assets/css/notificationsCenter.css +4 -2
  8. package/react/assets/css/userPreferences.css +1 -0
  9. package/react/assets/css/windowTitleBar.css +33 -1
  10. package/react/componentTemplateGenerator.js.map +1 -1
  11. package/react/components/FinsembleProvider.js +1 -1
  12. package/react/components/FinsembleProvider.js.map +1 -1
  13. package/react/components/appCatalog/AppCatalogComponent.js +7 -13
  14. package/react/components/appCatalog/AppCatalogComponent.js.map +1 -1
  15. package/react/components/appCatalog/components/AppList.d.ts +7 -1
  16. package/react/components/appCatalog/components/AppList.js +1 -1
  17. package/react/components/appCatalog/components/AppList.js.map +1 -1
  18. package/react/components/appCatalog/components/AppResults.d.ts +10 -8
  19. package/react/components/appCatalog/components/AppResults.js +1 -1
  20. package/react/components/appCatalog/components/AppResults.js.map +1 -1
  21. package/react/components/appCatalog/components/Carousel.js +1 -1
  22. package/react/components/appCatalog/components/Carousel.js.map +1 -1
  23. package/react/components/appCatalog/components/EmptyResults.d.ts +2 -1
  24. package/react/components/appCatalog/components/EmptyResults.js +2 -4
  25. package/react/components/appCatalog/components/EmptyResults.js.map +1 -1
  26. package/react/components/appCatalog/components/Hero.d.ts +24 -4
  27. package/react/components/appCatalog/components/Hero.js +2 -1
  28. package/react/components/appCatalog/components/Hero.js.map +1 -1
  29. package/react/components/appCatalog/components/Home.d.ts +18 -4
  30. package/react/components/appCatalog/components/Home.js.map +1 -1
  31. package/react/components/appCatalog/components/SearchBar.d.ts +20 -7
  32. package/react/components/appCatalog/components/SearchBar.js +4 -7
  33. package/react/components/appCatalog/components/SearchBar.js.map +1 -1
  34. package/react/components/appCatalog/components/Showcase/AppDescription.d.ts +5 -3
  35. package/react/components/appCatalog/components/Showcase/AppDescription.js +4 -6
  36. package/react/components/appCatalog/components/Showcase/AppDescription.js.map +1 -1
  37. package/react/components/appCatalog/components/Showcase/AppDevNotes.d.ts +5 -4
  38. package/react/components/appCatalog/components/Showcase/AppDevNotes.js.map +1 -1
  39. package/react/components/appCatalog/components/Showcase/AppShowcase.js +1 -1
  40. package/react/components/appCatalog/components/Showcase/AppShowcase.js.map +1 -1
  41. package/react/components/appCatalog/components/Showcase/Header.d.ts +13 -5
  42. package/react/components/appCatalog/components/Showcase/Header.js +2 -2
  43. package/react/components/appCatalog/components/Showcase/Header.js.map +1 -1
  44. package/react/components/appCatalog/components/Showcase/Modal.d.ts +7 -4
  45. package/react/components/appCatalog/components/Showcase/Modal.js +6 -6
  46. package/react/components/appCatalog/components/Showcase/Modal.js.map +1 -1
  47. package/react/components/appCatalog/components/Showcase/defaults.d.ts +3 -3
  48. package/react/components/appCatalog/components/Showcase/defaults.js.map +1 -1
  49. package/react/components/appCatalog/components/Tag.d.ts +6 -4
  50. package/react/components/appCatalog/components/Tag.js.map +1 -1
  51. package/react/components/appCatalog/components/Toast.d.ts +5 -3
  52. package/react/components/appCatalog/components/Toast.js +5 -5
  53. package/react/components/appCatalog/components/Toast.js.map +1 -1
  54. package/react/components/appCatalog/components/helpers.js +2 -1
  55. package/react/components/appCatalog/components/helpers.js.map +1 -1
  56. package/react/components/appCatalog/modules/AppDirectory.d.ts +5 -1
  57. package/react/components/appCatalog/modules/AppDirectory.js.map +1 -1
  58. package/react/components/appCatalog/modules/FDC3.d.ts +12 -11
  59. package/react/components/appCatalog/modules/FDC3.js +39 -48
  60. package/react/components/appCatalog/modules/FDC3.js.map +1 -1
  61. package/react/components/appCatalog/stores/appStore.d.ts +9 -2
  62. package/react/components/appCatalog/stores/appStore.js +10 -4
  63. package/react/components/appCatalog/stores/appStore.js.map +1 -1
  64. package/react/components/appCatalog/stores/storeActions.js +96 -98
  65. package/react/components/appCatalog/stores/storeActions.js.map +1 -1
  66. package/react/components/common/Button.d.ts +4 -4
  67. package/react/components/common/Button.js +1 -1
  68. package/react/components/common/Button.js.map +1 -1
  69. package/react/components/common/ButtonIcon.js +1 -1
  70. package/react/components/common/ButtonIcon.js.map +1 -1
  71. package/react/components/common/ColorPicker.js +1 -1
  72. package/react/components/common/ColorPicker.js.map +1 -1
  73. package/react/components/common/DropZone.d.ts +0 -5
  74. package/react/components/common/DropZone.js.map +1 -1
  75. package/react/components/common/DropdownButton.js +1 -1
  76. package/react/components/common/DropdownButton.js.map +1 -1
  77. package/react/components/common/FileInput.d.ts +0 -5
  78. package/react/components/common/FileInput.js +7 -9
  79. package/react/components/common/FileInput.js.map +1 -1
  80. package/react/components/common/FinsembleIcon.d.ts +2 -2
  81. package/react/components/common/FinsembleIcon.js.map +1 -1
  82. package/react/components/common/FinsembleSelect.js +2 -5
  83. package/react/components/common/FinsembleSelect.js.map +1 -1
  84. package/react/components/common/FinsembleToggle.js +2 -2
  85. package/react/components/common/FinsembleToggle.js.map +1 -1
  86. package/react/components/common/FontSizeSelector.js +2 -2
  87. package/react/components/common/FontSizeSelector.js.map +1 -1
  88. package/react/components/common/ImagePreview.js +2 -2
  89. package/react/components/common/ImagePreview.js.map +1 -1
  90. package/react/components/common/Tab.js +2 -1
  91. package/react/components/common/Tab.js.map +1 -1
  92. package/react/components/common/file_helpers.js +3 -2
  93. package/react/components/common/file_helpers.js.map +1 -1
  94. package/react/components/common/helpers.js +12 -10
  95. package/react/components/common/helpers.js.map +1 -1
  96. package/react/components/common/stories/Button.stories.js +1 -1
  97. package/react/components/common/stories/Button.stories.js.map +1 -1
  98. package/react/components/common/stories/ButtonIcon.stories.js +1 -1
  99. package/react/components/common/stories/ButtonIcon.stories.js.map +1 -1
  100. package/react/components/common/stories/ButtonRow.stories.js +2 -2
  101. package/react/components/common/stories/ButtonRow.stories.js.map +1 -1
  102. package/react/components/common/stories/ButtonTile.stories.js +1 -1
  103. package/react/components/common/stories/ButtonTile.stories.js.map +1 -1
  104. package/react/components/common/stories/Checkbox.stories.js +1 -1
  105. package/react/components/common/stories/Checkbox.stories.js.map +1 -1
  106. package/react/components/common/stories/ColorPicker.stories.js +1 -1
  107. package/react/components/common/stories/ColorPicker.stories.js.map +1 -1
  108. package/react/components/common/stories/DropZone.stories.js +1 -1
  109. package/react/components/common/stories/DropZone.stories.js.map +1 -1
  110. package/react/components/common/stories/FinsembleIcon.stories.js.map +1 -1
  111. package/react/components/common/stories/FinsembleSelect.stories.js +1 -1
  112. package/react/components/common/stories/FinsembleSelect.stories.js.map +1 -1
  113. package/react/components/common/stories/FinsembleToggle.stories.js +3 -1
  114. package/react/components/common/stories/FinsembleToggle.stories.js.map +1 -1
  115. package/react/components/common/stories/FontSizeSelector.stories.js +1 -1
  116. package/react/components/common/stories/FontSizeSelector.stories.js.map +1 -1
  117. package/react/components/common/stories/Header.stories.js +1 -1
  118. package/react/components/common/stories/Header.stories.js.map +1 -1
  119. package/react/components/common/tests/Checkbox.spec.js +4 -4
  120. package/react/components/common/tests/Checkbox.spec.js.map +1 -1
  121. package/react/components/common/tests/ColorPicker.spec.js +6 -6
  122. package/react/components/common/tests/ColorPicker.spec.js.map +1 -1
  123. package/react/components/common/tests/DropZone.spec.js +4 -4
  124. package/react/components/common/tests/DropZone.spec.js.map +1 -1
  125. package/react/components/common/tests/FileInput.spec.js +5 -5
  126. package/react/components/common/tests/FileInput.spec.js.map +1 -1
  127. package/react/components/common/tests/FinsembleSelect.spec.js +12 -11
  128. package/react/components/common/tests/FinsembleSelect.spec.js.map +1 -1
  129. package/react/components/common/tests/FinsembleToggle.spec.js +8 -2
  130. package/react/components/common/tests/FinsembleToggle.spec.js.map +1 -1
  131. package/react/components/common/tests/Header.spec.js +3 -3
  132. package/react/components/common/tests/Header.spec.js.map +1 -1
  133. package/react/components/common/tests/ImagePreview.spec.js +8 -8
  134. package/react/components/common/tests/ImagePreview.spec.js.map +1 -1
  135. package/react/components/common/tests/Tab.spec.js +3 -3
  136. package/react/components/common/tests/Tab.spec.js.map +1 -1
  137. package/react/components/common/tests/Tooltip.spec.js +5 -5
  138. package/react/components/common/tests/Tooltip.spec.js.map +1 -1
  139. package/react/components/favorites/FavoriteMaker.d.ts +0 -5
  140. package/react/components/favorites/FavoriteMaker.js +1 -1
  141. package/react/components/favorites/FavoriteMaker.js.map +1 -1
  142. package/react/components/favorites/FavoritesShell.js +1 -1
  143. package/react/components/favorites/FavoritesShell.js.map +1 -1
  144. package/react/components/favorites/FavoritesShell.spec.js +7 -7
  145. package/react/components/favorites/FavoritesShell.spec.js.map +1 -1
  146. package/react/components/favorites/FavoritesShell.stories.js +5 -4
  147. package/react/components/favorites/FavoritesShell.stories.js.map +1 -1
  148. package/react/components/fdc3Resolver/ResolverContainer.js +2 -1
  149. package/react/components/fdc3Resolver/ResolverContainer.js.map +1 -1
  150. package/react/components/fdc3Resolver/ResolverDialog.js +13 -13
  151. package/react/components/fdc3Resolver/ResolverDialog.js.map +1 -1
  152. package/react/components/fdc3Resolver/ResolverDialog.spec.js +5 -5
  153. package/react/components/fdc3Resolver/ResolverDialog.spec.js.map +1 -1
  154. package/react/components/fdc3Resolver/ResolverDialog.stories.js +1 -1
  155. package/react/components/fdc3Resolver/ResolverDialog.stories.js.map +1 -1
  156. package/react/components/icon/Icon.js +5 -4
  157. package/react/components/icon/Icon.js.map +1 -1
  158. package/react/components/legacyControls/FinsembleDialog.js +0 -1
  159. package/react/components/legacyControls/FinsembleDialog.js.map +1 -1
  160. package/react/components/legacyControls/FinsembleDialogButton.d.ts +1 -1
  161. package/react/components/legacyControls/FinsembleDialogButton.js +4 -3
  162. package/react/components/legacyControls/FinsembleDialogButton.js.map +1 -1
  163. package/react/components/legacyControls/FinsembleDialogQuestion.js +2 -1
  164. package/react/components/legacyControls/FinsembleDialogQuestion.js.map +1 -1
  165. package/react/components/legacyControls/FinsembleDialogTextInput.d.ts +1 -1
  166. package/react/components/legacyControls/FinsembleDialogTextInput.js +8 -5
  167. package/react/components/legacyControls/FinsembleDialogTextInput.js.map +1 -1
  168. package/react/components/legacyControls/FinsembleDnDContext.js +34 -22
  169. package/react/components/legacyControls/FinsembleDnDContext.js.map +1 -1
  170. package/react/components/legacyControls/FinsembleDraggable.js +3 -3
  171. package/react/components/legacyControls/FinsembleDraggable.js.map +1 -1
  172. package/react/components/legacyControls/FinsembleHoverDetector.js +2 -1
  173. package/react/components/legacyControls/FinsembleHoverDetector.js.map +1 -1
  174. package/react/components/legacyControls/FinsembleMenuSection.js +9 -5
  175. package/react/components/legacyControls/FinsembleMenuSection.js.map +1 -1
  176. package/react/components/legacyControls/stories/FinsembleDialog.stories.js +1 -1
  177. package/react/components/legacyControls/stories/FinsembleDialog.stories.js.map +1 -1
  178. package/react/components/legacyControls/stories/FinsembleDialogButton.stories.js +1 -1
  179. package/react/components/legacyControls/stories/FinsembleDialogButton.stories.js.map +1 -1
  180. package/react/components/legacyControls/stories/FinsembleDialogQuestion.stories.js +1 -1
  181. package/react/components/legacyControls/stories/FinsembleDialogQuestion.stories.js.map +1 -1
  182. package/react/components/legacyControls/stories/FinsembleDialogTextInput.stories.js +1 -1
  183. package/react/components/legacyControls/stories/FinsembleDialogTextInput.stories.js.map +1 -1
  184. package/react/components/legacyControls/tests/FinsembleDialog.spec.js +1 -1
  185. package/react/components/legacyControls/tests/FinsembleDialog.spec.js.map +1 -1
  186. package/react/components/legacyControls/tests/FinsembleDialogButton.spec.js +8 -7
  187. package/react/components/legacyControls/tests/FinsembleDialogButton.spec.js.map +1 -1
  188. package/react/components/legacyControls/tests/FinsembleDialogQuestion.spec.js +7 -5
  189. package/react/components/legacyControls/tests/FinsembleDialogQuestion.spec.js.map +1 -1
  190. package/react/components/legacyControls/tests/FinsembleDialogTextInput.spec.js +13 -12
  191. package/react/components/legacyControls/tests/FinsembleDialogTextInput.spec.js.map +1 -1
  192. package/react/components/linker/LinkerMenu.js +4 -3
  193. package/react/components/linker/LinkerMenu.js.map +1 -1
  194. package/react/components/linker/LinkerMenuDeprecated.js +1 -1
  195. package/react/components/linker/LinkerMenuDeprecated.js.map +1 -1
  196. package/react/components/linker/remoteRedux.d.ts +10 -42
  197. package/react/components/linker/remoteRedux.js.map +1 -1
  198. package/react/components/menu/Menu.d.ts +1 -1
  199. package/react/components/menu/Menu.js +1 -1
  200. package/react/components/menu/Menu.js.map +1 -1
  201. package/react/components/menu/MenuAutoResizer.js.map +1 -1
  202. package/react/components/menu/MenuContent.js +1 -2
  203. package/react/components/menu/MenuContent.js.map +1 -1
  204. package/react/components/menu/MenuHotKey.js +1 -1
  205. package/react/components/menu/MenuHotKey.js.map +1 -1
  206. package/react/components/menu/MenuPortal.js +7 -6
  207. package/react/components/menu/MenuPortal.js.map +1 -1
  208. package/react/components/menu/keyboardNavigation.js +14 -15
  209. package/react/components/menu/keyboardNavigation.js.map +1 -1
  210. package/react/components/notifications/components/NoNotifications.js +2 -4
  211. package/react/components/notifications/components/NoNotifications.js.map +1 -1
  212. package/react/components/notifications/components/drawer/Drawer.js +2 -4
  213. package/react/components/notifications/components/drawer/Drawer.js.map +1 -1
  214. package/react/components/notifications/components/drawer/DrawerControls.js +3 -5
  215. package/react/components/notifications/components/drawer/DrawerControls.js.map +1 -1
  216. package/react/components/notifications/components/drawer/DrawerHeader.js +1 -4
  217. package/react/components/notifications/components/drawer/DrawerHeader.js.map +1 -1
  218. package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js +64 -79
  219. package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js.map +1 -1
  220. package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js +15 -13
  221. package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js.map +1 -1
  222. package/react/components/notifications/components/shared/CheckButton.d.ts +2 -2
  223. package/react/components/notifications/components/shared/CheckButton.js.map +1 -1
  224. package/react/components/notifications/components/shared/IconButton.js +3 -5
  225. package/react/components/notifications/components/shared/IconButton.js.map +1 -1
  226. package/react/components/notifications/components/shared/NotificationCardShell.d.ts +3 -2
  227. package/react/components/notifications/components/shared/NotificationCardShell.js.map +1 -1
  228. package/react/components/notifications/components/shared/OverflowMenu.d.ts +2 -1
  229. package/react/components/notifications/components/shared/OverflowMenu.js +6 -5
  230. package/react/components/notifications/components/shared/OverflowMenu.js.map +1 -1
  231. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyActions.d.ts +3 -2
  232. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyActions.js +2 -2
  233. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyActions.js.map +1 -1
  234. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.d.ts +3 -2
  235. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.js.map +1 -1
  236. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.d.ts +3 -2
  237. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.js +2 -4
  238. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.js.map +1 -1
  239. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderShell.d.ts +3 -2
  240. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderShell.js.map +1 -1
  241. package/react/components/notifications/components/views/CardView.js +15 -24
  242. package/react/components/notifications/components/views/CardView.js.map +1 -1
  243. package/react/components/notifications/components/views/ListView.d.ts +2 -2
  244. package/react/components/notifications/components/views/ListView.js +9 -9
  245. package/react/components/notifications/components/views/ListView.js.map +1 -1
  246. package/react/components/notifications/components/views/NotificationDetailsView.d.ts +2 -2
  247. package/react/components/notifications/components/views/NotificationDetailsView.js +2 -6
  248. package/react/components/notifications/components/views/NotificationDetailsView.js.map +1 -1
  249. package/react/components/notifications/constants.d.ts +0 -13
  250. package/react/components/notifications/constants.js.map +1 -1
  251. package/react/components/notifications/types.d.ts +7 -6
  252. package/react/components/notifications/types.js.map +1 -1
  253. package/react/components/notifications/utils.d.ts +6 -4
  254. package/react/components/notifications/utils.js +26 -32
  255. package/react/components/notifications/utils.js.map +1 -1
  256. package/react/components/processMonitor/ProcessMonitor.d.ts +3 -1
  257. package/react/components/processMonitor/ProcessMonitor.js +24 -14
  258. package/react/components/processMonitor/ProcessMonitor.js.map +1 -1
  259. package/react/components/processMonitor/ProcessMonitorTypes.d.ts +33 -0
  260. package/react/components/processMonitor/ProcessMonitorTypes.js +6 -0
  261. package/react/components/processMonitor/ProcessMonitorTypes.js.map +1 -0
  262. package/react/components/processMonitor/components/ChildWindow.d.ts +10 -3
  263. package/react/components/processMonitor/components/ChildWindow.js +29 -10
  264. package/react/components/processMonitor/components/ChildWindow.js.map +1 -1
  265. package/react/components/processMonitor/components/ListHeader.d.ts +18 -4
  266. package/react/components/processMonitor/components/ListHeader.js +11 -3
  267. package/react/components/processMonitor/components/ListHeader.js.map +1 -1
  268. package/react/components/processMonitor/components/ProcessStatistics.d.ts +11 -3
  269. package/react/components/processMonitor/components/ProcessStatistics.js +35 -18
  270. package/react/components/processMonitor/components/ProcessStatistics.js.map +1 -1
  271. package/react/components/processMonitor/constants.d.ts +11 -16
  272. package/react/components/processMonitor/constants.js +6 -1
  273. package/react/components/processMonitor/constants.js.map +1 -1
  274. package/react/components/processMonitor/helpers.d.ts +14 -6
  275. package/react/components/processMonitor/helpers.js +31 -23
  276. package/react/components/processMonitor/helpers.js.map +1 -1
  277. package/react/components/processMonitor/helpers.spec.d.ts +1 -0
  278. package/react/components/processMonitor/helpers.spec.js +44 -0
  279. package/react/components/processMonitor/helpers.spec.js.map +1 -0
  280. package/react/components/processMonitor/stores/ProcessMonitorStore.d.ts +31 -15
  281. package/react/components/processMonitor/stores/ProcessMonitorStore.js +104 -95
  282. package/react/components/processMonitor/stores/ProcessMonitorStore.js.map +1 -1
  283. package/react/components/quickComponentForm/QuickComponentForm.d.ts +4 -1
  284. package/react/components/quickComponentForm/QuickComponentForm.js +14 -15
  285. package/react/components/quickComponentForm/QuickComponentForm.js.map +1 -1
  286. package/react/components/search/Highlight.js +2 -2
  287. package/react/components/search/Highlight.js.map +1 -1
  288. package/react/components/search/Highlight.spec.js +3 -3
  289. package/react/components/search/Highlight.spec.js.map +1 -1
  290. package/react/components/search/Highlight.stories.js +1 -1
  291. package/react/components/search/Highlight.stories.js.map +1 -1
  292. package/react/components/search/Search.js +17 -8
  293. package/react/components/search/Search.js.map +1 -1
  294. package/react/components/search/SearchBestMatch.js +3 -5
  295. package/react/components/search/SearchBestMatch.js.map +1 -1
  296. package/react/components/search/SearchProviderResults.js +4 -5
  297. package/react/components/search/SearchProviderResults.js.map +1 -1
  298. package/react/components/search/SearchResult.js +3 -2
  299. package/react/components/search/SearchResult.js.map +1 -1
  300. package/react/components/search/SearchResults.js +1 -1
  301. package/react/components/search/SearchResults.js.map +1 -1
  302. package/react/components/shared/Button.js +2 -4
  303. package/react/components/shared/Button.js.map +1 -1
  304. package/react/components/shared/DefaultDropdownButton.js +58 -13
  305. package/react/components/shared/DefaultDropdownButton.js.map +1 -1
  306. package/react/components/shared/NavigationButton.js +9 -11
  307. package/react/components/shared/NavigationButton.js.map +1 -1
  308. package/react/components/shared/Tag.d.ts +11 -1
  309. package/react/components/shared/Tag.js.map +1 -1
  310. package/react/components/shared/TagsMenu.d.ts +26 -6
  311. package/react/components/shared/TagsMenu.js.map +1 -1
  312. package/react/components/shared/linkerUtil.d.ts +3 -1
  313. package/react/components/shared/linkerUtil.js.map +1 -1
  314. package/react/components/shared/tests/DefaultDropdownButton.spec.js.map +1 -1
  315. package/react/components/shared/tests/addProtocolToValidURL.spec.js.map +1 -1
  316. package/react/components/singleInputDialog/SingleInputDialog.js +0 -2
  317. package/react/components/singleInputDialog/SingleInputDialog.js.map +1 -1
  318. package/react/components/singleInputDialog/SingleInputDialog.spec.js +6 -6
  319. package/react/components/singleInputDialog/SingleInputDialog.spec.js.map +1 -1
  320. package/react/components/singleInputDialog/SingleInputDialog.stories.js +1 -1
  321. package/react/components/singleInputDialog/SingleInputDialog.stories.js.map +1 -1
  322. package/react/components/smartDesktopDesigner/AppEditAccess.d.ts +1 -1
  323. package/react/components/smartDesktopDesigner/AppEditAccess.js +17 -34
  324. package/react/components/smartDesktopDesigner/AppEditAccess.js.map +1 -1
  325. package/react/components/smartDesktopDesigner/AppEditPage.d.ts +4 -4
  326. package/react/components/smartDesktopDesigner/AppEditPage.js +2 -2
  327. package/react/components/smartDesktopDesigner/AppEditPage.js.map +1 -1
  328. package/react/components/smartDesktopDesigner/Appearance.js +3 -5
  329. package/react/components/smartDesktopDesigner/Appearance.js.map +1 -1
  330. package/react/components/smartDesktopDesigner/Application.d.ts +7 -5
  331. package/react/components/smartDesktopDesigner/Application.js +78 -92
  332. package/react/components/smartDesktopDesigner/Application.js.map +1 -1
  333. package/react/components/smartDesktopDesigner/ApplicationEdit.d.ts +4 -1
  334. package/react/components/smartDesktopDesigner/ApplicationEdit.js +68 -51
  335. package/react/components/smartDesktopDesigner/ApplicationEdit.js.map +1 -1
  336. package/react/components/smartDesktopDesigner/ApplicationList.d.ts +4 -2
  337. package/react/components/smartDesktopDesigner/ApplicationList.js +23 -20
  338. package/react/components/smartDesktopDesigner/ApplicationList.js.map +1 -1
  339. package/react/components/smartDesktopDesigner/ApplicationSetup.d.ts +4 -3
  340. package/react/components/smartDesktopDesigner/ApplicationSetup.js +8 -20
  341. package/react/components/smartDesktopDesigner/ApplicationSetup.js.map +1 -1
  342. package/react/components/smartDesktopDesigner/Applications.d.ts +3 -2
  343. package/react/components/smartDesktopDesigner/Applications.js +73 -62
  344. package/react/components/smartDesktopDesigner/Applications.js.map +1 -1
  345. package/react/components/smartDesktopDesigner/Authentication.js +2 -8
  346. package/react/components/smartDesktopDesigner/Authentication.js.map +1 -1
  347. package/react/components/smartDesktopDesigner/AuthenticationProviderConfig.js +1 -8
  348. package/react/components/smartDesktopDesigner/AuthenticationProviderConfig.js.map +1 -1
  349. package/react/components/smartDesktopDesigner/Content.js.map +1 -1
  350. package/react/components/smartDesktopDesigner/CurrentView.js +1 -1
  351. package/react/components/smartDesktopDesigner/CurrentView.js.map +1 -1
  352. package/react/components/smartDesktopDesigner/Export.js +3 -3
  353. package/react/components/smartDesktopDesigner/Export.js.map +1 -1
  354. package/react/components/smartDesktopDesigner/ExportCloud.js +1 -1
  355. package/react/components/smartDesktopDesigner/ExportCloud.js.map +1 -1
  356. package/react/components/smartDesktopDesigner/ExportDeployInfo.js +1 -1
  357. package/react/components/smartDesktopDesigner/ExportDeployInfo.js.map +1 -1
  358. package/react/components/smartDesktopDesigner/ExportZip.js +0 -1
  359. package/react/components/smartDesktopDesigner/ExportZip.js.map +1 -1
  360. package/react/components/smartDesktopDesigner/GettingStarted.d.ts +1 -1
  361. package/react/components/smartDesktopDesigner/GettingStarted.js +1 -1
  362. package/react/components/smartDesktopDesigner/GettingStarted.js.map +1 -1
  363. package/react/components/smartDesktopDesigner/ProjectHeader.d.ts +1 -1
  364. package/react/components/smartDesktopDesigner/ProjectHeader.js +1 -1
  365. package/react/components/smartDesktopDesigner/ProjectHeader.js.map +1 -1
  366. package/react/components/smartDesktopDesigner/Publish.js +1 -1
  367. package/react/components/smartDesktopDesigner/Publish.js.map +1 -1
  368. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.d.ts +0 -11
  369. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js +18 -31
  370. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js.map +1 -1
  371. package/react/components/smartDesktopDesigner/Themes.js +2 -8
  372. package/react/components/smartDesktopDesigner/Themes.js.map +1 -1
  373. package/react/components/smartDesktopDesigner/View.js.map +1 -1
  374. package/react/components/smartDesktopDesigner/common/getCSSVars.d.ts +1 -2
  375. package/react/components/smartDesktopDesigner/common/getCSSVars.js +2 -2
  376. package/react/components/smartDesktopDesigner/common/getCSSVars.js.map +1 -1
  377. package/react/components/smartDesktopDesigner/common/views.d.ts +1 -1
  378. package/react/components/smartDesktopDesigner/common/views.js +8 -18
  379. package/react/components/smartDesktopDesigner/common/views.js.map +1 -1
  380. package/react/components/smartDesktopDesigner/fixtures/applicationEditProps.js +16 -24
  381. package/react/components/smartDesktopDesigner/fixtures/applicationEditProps.js.map +1 -1
  382. package/react/components/smartDesktopDesigner/fixtures/applicationSetupProps.js +8 -9
  383. package/react/components/smartDesktopDesigner/fixtures/applicationSetupProps.js.map +1 -1
  384. package/react/components/smartDesktopDesigner/fixtures/apps.d.ts +4 -70
  385. package/react/components/smartDesktopDesigner/fixtures/apps.js +20 -31
  386. package/react/components/smartDesktopDesigner/fixtures/apps.js.map +1 -1
  387. package/react/components/smartDesktopDesigner/fixtures/authenticationProps.js +6 -9
  388. package/react/components/smartDesktopDesigner/fixtures/authenticationProps.js.map +1 -1
  389. package/react/components/smartDesktopDesigner/fixtures/exportProps.js +5 -5
  390. package/react/components/smartDesktopDesigner/fixtures/exportProps.js.map +1 -1
  391. package/react/components/smartDesktopDesigner/fixtures/publishProgress.d.ts +2 -1
  392. package/react/components/smartDesktopDesigner/fixtures/publishProgress.js.map +1 -1
  393. package/react/components/smartDesktopDesigner/fixtures/themeProps.d.ts +5 -5
  394. package/react/components/smartDesktopDesigner/fixtures/themeProps.js +6 -7
  395. package/react/components/smartDesktopDesigner/fixtures/themeProps.js.map +1 -1
  396. package/react/components/smartDesktopDesigner/fixtures/views.js +4 -4
  397. package/react/components/smartDesktopDesigner/fixtures/views.js.map +1 -1
  398. package/react/components/smartDesktopDesigner/sdd_helpers.js +2 -1
  399. package/react/components/smartDesktopDesigner/sdd_helpers.js.map +1 -1
  400. package/react/components/smartDesktopDesigner/stories/AppEditPage.stories.d.ts +3 -4
  401. package/react/components/smartDesktopDesigner/stories/AppEditPage.stories.js +14 -20
  402. package/react/components/smartDesktopDesigner/stories/AppEditPage.stories.js.map +1 -1
  403. package/react/components/smartDesktopDesigner/stories/Appearance.stories.js +7 -7
  404. package/react/components/smartDesktopDesigner/stories/Appearance.stories.js.map +1 -1
  405. package/react/components/smartDesktopDesigner/stories/ApplicationEdit.stories.js +3 -7
  406. package/react/components/smartDesktopDesigner/stories/ApplicationEdit.stories.js.map +1 -1
  407. package/react/components/smartDesktopDesigner/stories/ApplicationList.stories.js +9 -2
  408. package/react/components/smartDesktopDesigner/stories/ApplicationList.stories.js.map +1 -1
  409. package/react/components/smartDesktopDesigner/stories/ApplicationSetup.stories.js +3 -10
  410. package/react/components/smartDesktopDesigner/stories/ApplicationSetup.stories.js.map +1 -1
  411. package/react/components/smartDesktopDesigner/stories/Applications.stories.js +1 -1
  412. package/react/components/smartDesktopDesigner/stories/Applications.stories.js.map +1 -1
  413. package/react/components/smartDesktopDesigner/stories/Authentication.stories.js +18 -36
  414. package/react/components/smartDesktopDesigner/stories/Authentication.stories.js.map +1 -1
  415. package/react/components/smartDesktopDesigner/stories/Export.stories.js +2 -2
  416. package/react/components/smartDesktopDesigner/stories/Export.stories.js.map +1 -1
  417. package/react/components/smartDesktopDesigner/stories/ExportCloud.stories.js +2 -2
  418. package/react/components/smartDesktopDesigner/stories/ExportCloud.stories.js.map +1 -1
  419. package/react/components/smartDesktopDesigner/stories/ExportZip.stories.js +5 -11
  420. package/react/components/smartDesktopDesigner/stories/ExportZip.stories.js.map +1 -1
  421. package/react/components/smartDesktopDesigner/stories/GettingStarted.stories.d.ts +1 -1
  422. package/react/components/smartDesktopDesigner/stories/GettingStarted.stories.js +1 -1
  423. package/react/components/smartDesktopDesigner/stories/GettingStarted.stories.js.map +1 -1
  424. package/react/components/smartDesktopDesigner/stories/Navigation.stories.js +1 -1
  425. package/react/components/smartDesktopDesigner/stories/Navigation.stories.js.map +1 -1
  426. package/react/components/smartDesktopDesigner/stories/ProjectErrors.stories.js +2 -4
  427. package/react/components/smartDesktopDesigner/stories/ProjectErrors.stories.js.map +1 -1
  428. package/react/components/smartDesktopDesigner/stories/ProjectHeader.stories.d.ts +1 -1
  429. package/react/components/smartDesktopDesigner/stories/ProjectHeader.stories.js +1 -1
  430. package/react/components/smartDesktopDesigner/stories/ProjectHeader.stories.js.map +1 -1
  431. package/react/components/smartDesktopDesigner/stories/Publish.stories.js +13 -28
  432. package/react/components/smartDesktopDesigner/stories/Publish.stories.js.map +1 -1
  433. package/react/components/smartDesktopDesigner/stories/PublishProgress.stories.js +1 -1
  434. package/react/components/smartDesktopDesigner/stories/PublishProgress.stories.js.map +1 -1
  435. package/react/components/smartDesktopDesigner/stories/SmartDesktopDesigner.stories.js +3 -3
  436. package/react/components/smartDesktopDesigner/stories/SmartDesktopDesigner.stories.js.map +1 -1
  437. package/react/components/smartDesktopDesigner/stories/Themes.stories.js +1 -1
  438. package/react/components/smartDesktopDesigner/stories/Themes.stories.js.map +1 -1
  439. package/react/components/smartDesktopDesigner/tests/AppEditPage.spec.js +32 -32
  440. package/react/components/smartDesktopDesigner/tests/AppEditPage.spec.js.map +1 -1
  441. package/react/components/smartDesktopDesigner/tests/ApplicationEdit.spec.js +6 -5
  442. package/react/components/smartDesktopDesigner/tests/ApplicationEdit.spec.js.map +1 -1
  443. package/react/components/smartDesktopDesigner/tests/ApplicationList.spec.js +11 -11
  444. package/react/components/smartDesktopDesigner/tests/ApplicationList.spec.js.map +1 -1
  445. package/react/components/smartDesktopDesigner/tests/ApplicationSetup.spec.js +9 -7
  446. package/react/components/smartDesktopDesigner/tests/ApplicationSetup.spec.js.map +1 -1
  447. package/react/components/smartDesktopDesigner/tests/Applications.spec.js +35 -35
  448. package/react/components/smartDesktopDesigner/tests/Applications.spec.js.map +1 -1
  449. package/react/components/smartDesktopDesigner/tests/Authentication.spec.js +6 -18
  450. package/react/components/smartDesktopDesigner/tests/Authentication.spec.js.map +1 -1
  451. package/react/components/smartDesktopDesigner/tests/Export.spec.js +14 -22
  452. package/react/components/smartDesktopDesigner/tests/Export.spec.js.map +1 -1
  453. package/react/components/smartDesktopDesigner/tests/ExportZip.spec.js +2 -6
  454. package/react/components/smartDesktopDesigner/tests/ExportZip.spec.js.map +1 -1
  455. package/react/components/smartDesktopDesigner/tests/Navigation.spec.js +2 -2
  456. package/react/components/smartDesktopDesigner/tests/Navigation.spec.js.map +1 -1
  457. package/react/components/smartDesktopDesigner/tests/ProjectErrors.spec.js +2 -2
  458. package/react/components/smartDesktopDesigner/tests/ProjectErrors.spec.js.map +1 -1
  459. package/react/components/smartDesktopDesigner/tests/ProjectHeader.spec.js +2 -2
  460. package/react/components/smartDesktopDesigner/tests/ProjectHeader.spec.js.map +1 -1
  461. package/react/components/smartDesktopDesigner/tests/Publish.spec.js +3 -10
  462. package/react/components/smartDesktopDesigner/tests/Publish.spec.js.map +1 -1
  463. package/react/components/smartDesktopDesigner/tests/PublishProgess.spec.js +2 -6
  464. package/react/components/smartDesktopDesigner/tests/PublishProgess.spec.js.map +1 -1
  465. package/react/components/smartDesktopDesigner/tests/SmartDesktopDesigner.spec.js +3 -3
  466. package/react/components/smartDesktopDesigner/tests/SmartDesktopDesigner.spec.js.map +1 -1
  467. package/react/components/smartDesktopDesigner/tests/Themes.spec.js +7 -7
  468. package/react/components/smartDesktopDesigner/tests/Themes.spec.js.map +1 -1
  469. package/react/components/smartDesktopDesigner/tests/a11y_helper.js +4 -5
  470. package/react/components/smartDesktopDesigner/tests/a11y_helper.js.map +1 -1
  471. package/react/components/system/System.spec.js +1 -1
  472. package/react/components/system/System.spec.js.map +1 -1
  473. package/react/components/system/SystemTrayComponentShell.js +1 -1
  474. package/react/components/system/SystemTrayComponentShell.js.map +1 -1
  475. package/react/components/toolbar/MinimizeAll.spec.js +5 -5
  476. package/react/components/toolbar/MinimizeAll.spec.js.map +1 -1
  477. package/react/components/toolbar/NotificationControl.js +3 -2
  478. package/react/components/toolbar/NotificationControl.js.map +1 -1
  479. package/react/components/toolbar/RevealAll.spec.js +5 -5
  480. package/react/components/toolbar/RevealAll.spec.js.map +1 -1
  481. package/react/components/toolbar/ToolbarIcon.js +14 -2
  482. package/react/components/toolbar/ToolbarIcon.js.map +1 -1
  483. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.d.ts +22 -5
  484. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.js +11 -6
  485. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.js.map +1 -1
  486. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncherMenu.js +21 -9
  487. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncherMenu.js.map +1 -1
  488. package/react/components/toolbar/advancedAppLauncher/components/AddNewAppForm.d.ts +33 -10
  489. package/react/components/toolbar/advancedAppLauncher/components/AddNewAppForm.js +41 -10
  490. package/react/components/toolbar/advancedAppLauncher/components/AddNewAppForm.js.map +1 -1
  491. package/react/components/toolbar/advancedAppLauncher/components/AddNewFolder.d.ts +3 -3
  492. package/react/components/toolbar/advancedAppLauncher/components/AddNewFolder.js +0 -3
  493. package/react/components/toolbar/advancedAppLauncher/components/AddNewFolder.js.map +1 -1
  494. package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.d.ts +24 -8
  495. package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.js +4 -2
  496. package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.js.map +1 -1
  497. package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.d.ts +18 -4
  498. package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.js +7 -5
  499. package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.js.map +1 -1
  500. package/react/components/toolbar/advancedAppLauncher/components/AppTagsList.d.ts +14 -6
  501. package/react/components/toolbar/advancedAppLauncher/components/AppTagsList.js +2 -3
  502. package/react/components/toolbar/advancedAppLauncher/components/AppTagsList.js.map +1 -1
  503. package/react/components/toolbar/advancedAppLauncher/components/Content.d.ts +30 -13
  504. package/react/components/toolbar/advancedAppLauncher/components/Content.js +35 -37
  505. package/react/components/toolbar/advancedAppLauncher/components/Content.js.map +1 -1
  506. package/react/components/toolbar/advancedAppLauncher/components/FilterSort.d.ts +15 -5
  507. package/react/components/toolbar/advancedAppLauncher/components/FilterSort.js +4 -3
  508. package/react/components/toolbar/advancedAppLauncher/components/FilterSort.js.map +1 -1
  509. package/react/components/toolbar/advancedAppLauncher/components/FoldersList.d.ts +38 -21
  510. package/react/components/toolbar/advancedAppLauncher/components/FoldersList.js +14 -9
  511. package/react/components/toolbar/advancedAppLauncher/components/FoldersList.js.map +1 -1
  512. package/react/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.d.ts +18 -3
  513. package/react/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.js +8 -4
  514. package/react/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.js.map +1 -1
  515. package/react/components/toolbar/advancedAppLauncher/components/NoAppsFound.d.ts +10 -3
  516. package/react/components/toolbar/advancedAppLauncher/components/NoAppsFound.js +1 -3
  517. package/react/components/toolbar/advancedAppLauncher/components/NoAppsFound.js.map +1 -1
  518. package/react/components/toolbar/advancedAppLauncher/components/SearchBox.d.ts +15 -6
  519. package/react/components/toolbar/advancedAppLauncher/components/SearchBox.js +11 -6
  520. package/react/components/toolbar/advancedAppLauncher/components/SearchBox.js.map +1 -1
  521. package/react/components/toolbar/advancedAppLauncher/components/SortBy.d.ts +11 -4
  522. package/react/components/toolbar/advancedAppLauncher/components/SortBy.js +3 -2
  523. package/react/components/toolbar/advancedAppLauncher/components/SortBy.js.map +1 -1
  524. package/react/components/toolbar/advancedAppLauncher/components/TagsList.d.ts +18 -6
  525. package/react/components/toolbar/advancedAppLauncher/components/TagsList.js +2 -2
  526. package/react/components/toolbar/advancedAppLauncher/components/TagsList.js.map +1 -1
  527. package/react/components/toolbar/advancedAppLauncher/components/TagsMenu.d.ts +20 -4
  528. package/react/components/toolbar/advancedAppLauncher/components/TagsMenu.js +2 -4
  529. package/react/components/toolbar/advancedAppLauncher/components/TagsMenu.js.map +1 -1
  530. package/react/components/toolbar/advancedAppLauncher/modules/AppDirectory.js.map +1 -1
  531. package/react/components/toolbar/advancedAppLauncher/modules/FDC3.d.ts +15 -10
  532. package/react/components/toolbar/advancedAppLauncher/modules/FDC3.js +19 -30
  533. package/react/components/toolbar/advancedAppLauncher/modules/FDC3.js.map +1 -1
  534. package/react/components/toolbar/advancedAppLauncher/stores/LauncherStore.d.ts +5 -2
  535. package/react/components/toolbar/advancedAppLauncher/stores/LauncherStore.js +1 -1
  536. package/react/components/toolbar/advancedAppLauncher/stores/LauncherStore.js.map +1 -1
  537. package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.d.ts +87 -59
  538. package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js +51 -54
  539. package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js.map +1 -1
  540. package/react/components/toolbar/advancedAppLauncher/utils/sort-functions.d.ts +7 -6
  541. package/react/components/toolbar/advancedAppLauncher/utils/sort-functions.js +11 -13
  542. package/react/components/toolbar/advancedAppLauncher/utils/sort-functions.js.map +1 -1
  543. package/react/components/toolbar/appLauncher/AppLauncherMenu.d.ts +3 -3
  544. package/react/components/toolbar/appLauncher/AppLauncherMenu.js +1 -1
  545. package/react/components/toolbar/appLauncher/AppLauncherMenu.js.map +1 -1
  546. package/react/components/toolbar/appLauncher/DynamicAppLauncher.js.map +1 -1
  547. package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.d.ts +25 -3
  548. package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.js +4 -11
  549. package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.js.map +1 -1
  550. package/react/components/toolbar/appLauncher/components/componentList.d.ts +34 -6
  551. package/react/components/toolbar/appLauncher/components/componentList.js +25 -22
  552. package/react/components/toolbar/appLauncher/components/componentList.js.map +1 -1
  553. package/react/components/toolbar/appLauncher/stores/appLauncherStore.d.ts +32 -32
  554. package/react/components/toolbar/appLauncher/stores/appLauncherStore.js +43 -65
  555. package/react/components/toolbar/appLauncher/stores/appLauncherStore.js.map +1 -1
  556. package/react/components/toolbar/dashbar/Dashbar.js +143 -125
  557. package/react/components/toolbar/dashbar/Dashbar.js.map +1 -1
  558. package/react/components/toolbar/dashbar/DashbarItem.js +4 -5
  559. package/react/components/toolbar/dashbar/DashbarItem.js.map +1 -1
  560. package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.d.ts +28 -5
  561. package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.js +17 -23
  562. package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.js.map +1 -1
  563. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.d.ts +25 -3
  564. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js.map +1 -1
  565. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.d.ts +13 -8
  566. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.js +2 -2
  567. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.js.map +1 -1
  568. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.d.ts +16 -8
  569. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.js +0 -3
  570. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.js.map +1 -1
  571. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.d.ts +66 -11
  572. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js +103 -153
  573. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js.map +1 -1
  574. package/react/components/toolbar/workspaceManagementMenu/workspaceManagementMenu.css +0 -4
  575. package/react/components/userPreferences/UserPreferenceTypes.d.ts +5 -0
  576. package/react/components/userPreferences/UserPreferenceTypes.js +2 -0
  577. package/react/components/userPreferences/UserPreferenceTypes.js.map +1 -0
  578. package/react/components/userPreferences/UserPreferencesBase.js +2 -2
  579. package/react/components/userPreferences/UserPreferencesBase.js.map +1 -1
  580. package/react/components/userPreferences/UserPreferencesWrapper.js +1 -1
  581. package/react/components/userPreferences/UserPreferencesWrapper.js.map +1 -1
  582. package/react/components/userPreferences/components/ContentSection.js +1 -1
  583. package/react/components/userPreferences/components/ContentSection.js.map +1 -1
  584. package/react/components/userPreferences/components/LeftNav.d.ts +1 -1
  585. package/react/components/userPreferences/components/LeftNav.js +1 -1
  586. package/react/components/userPreferences/components/LeftNav.js.map +1 -1
  587. package/react/components/userPreferences/components/content/DashbarEditor.js +4 -4
  588. package/react/components/userPreferences/components/content/DashbarEditor.js.map +1 -1
  589. package/react/components/userPreferences/components/content/Notifications.js +2 -0
  590. package/react/components/userPreferences/components/content/Notifications.js.map +1 -1
  591. package/react/components/userPreferences/components/content/Workspaces.d.ts +51 -14
  592. package/react/components/userPreferences/components/content/Workspaces.js +96 -90
  593. package/react/components/userPreferences/components/content/Workspaces.js.map +1 -1
  594. package/react/components/userPreferences/components/content/notificationViews/NotificationsPreferencesHome.js +48 -51
  595. package/react/components/userPreferences/components/content/notificationViews/NotificationsPreferencesHome.js.map +1 -1
  596. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourceTypes.js +9 -9
  597. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourceTypes.js.map +1 -1
  598. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourcesPreferences.js +4 -6
  599. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourcesPreferences.js.map +1 -1
  600. package/react/components/userPreferences/components/content/notificationViews/notificationViewsUtils.js +6 -6
  601. package/react/components/userPreferences/components/content/notificationViews/notificationViewsUtils.js.map +1 -1
  602. package/react/components/userPreferences/components/general/ScheduledRestart.js +0 -1
  603. package/react/components/userPreferences/components/general/ScheduledRestart.js.map +1 -1
  604. package/react/components/userPreferences/components/workspaces/WorkspaceButton.d.ts +3 -4
  605. package/react/components/userPreferences/components/workspaces/WorkspaceButton.js +5 -1
  606. package/react/components/userPreferences/components/workspaces/WorkspaceButton.js.map +1 -1
  607. package/react/components/userPreferences/components/workspaces/WorkspaceComponents.js +8 -5
  608. package/react/components/userPreferences/components/workspaces/WorkspaceComponents.js.map +1 -1
  609. package/react/components/userPreferences/components/workspaces/WorkspaceItem.d.ts +1 -1
  610. package/react/components/userPreferences/components/workspaces/WorkspaceItem.js +24 -9
  611. package/react/components/userPreferences/components/workspaces/WorkspaceItem.js.map +1 -1
  612. package/react/components/userPreferences/components/workspaces/WorkspaceItemList.js +16 -2
  613. package/react/components/userPreferences/components/workspaces/WorkspaceItemList.js.map +1 -1
  614. package/react/components/userPreferences/stores/UserPreferencesStore.d.ts +12 -12
  615. package/react/components/userPreferences/stores/UserPreferencesStore.js +10 -17
  616. package/react/components/userPreferences/stores/UserPreferencesStore.js.map +1 -1
  617. package/react/components/userPreferences/stories/DashbarEditor.stories.js +1 -1
  618. package/react/components/userPreferences/stories/DashbarEditor.stories.js.map +1 -1
  619. package/react/components/userPreferences/stories/DashbarEditorItem.stories.js +1 -1
  620. package/react/components/userPreferences/stories/DashbarEditorItem.stories.js.map +1 -1
  621. package/react/components/userPreferences/stories/General.stories.js.map +1 -1
  622. package/react/components/userPreferences/stories/NotificationsSourceTypes.stories.js +1 -1
  623. package/react/components/userPreferences/stories/NotificationsSourceTypes.stories.js.map +1 -1
  624. package/react/components/userPreferences/stories/NotificationsSources.stories.js +1 -1
  625. package/react/components/userPreferences/stories/NotificationsSources.stories.js.map +1 -1
  626. package/react/components/userPreferences/stories/UserPreferences.stories.d.ts +1 -1
  627. package/react/components/userPreferences/stories/UserPreferences.stories.js +1 -1
  628. package/react/components/userPreferences/stories/UserPreferences.stories.js.map +1 -1
  629. package/react/components/userPreferences/stories/WorkspaceButton.stories.d.ts +5 -9
  630. package/react/components/userPreferences/stories/WorkspaceButton.stories.js +10 -3
  631. package/react/components/userPreferences/stories/WorkspaceButton.stories.js.map +1 -1
  632. package/react/components/userPreferences/stories/WorkspaceItem.stories.js +2 -2
  633. package/react/components/userPreferences/stories/WorkspaceItem.stories.js.map +1 -1
  634. package/react/components/userPreferences/stories/WorkspaceItemList.stories.js.map +1 -1
  635. package/react/components/userPreferences/stories/Workspaces.stories.js +2 -2
  636. package/react/components/userPreferences/stories/Workspaces.stories.js.map +1 -1
  637. package/react/components/userPreferences/tests/ContentSection.spec.js.map +1 -1
  638. package/react/components/userPreferences/tests/DashbarEditor.spec.js.map +1 -1
  639. package/react/components/userPreferences/tests/DashbarEditorItem.spec.js.map +1 -1
  640. package/react/components/userPreferences/tests/General.spec.js.map +1 -1
  641. package/react/components/userPreferences/tests/LeftNav.spec.js.map +1 -1
  642. package/react/components/userPreferences/tests/NotificationSourceTypes.spec.js.map +1 -1
  643. package/react/components/userPreferences/tests/Notifications.spec.js.map +1 -1
  644. package/react/components/userPreferences/tests/NotificationsPreferencesHome.spec.js.map +1 -1
  645. package/react/components/userPreferences/tests/NotificationsSourcesPreferences.spec.js.map +1 -1
  646. package/react/components/userPreferences/tests/ScheduledRestart.spec.js.map +1 -1
  647. package/react/components/userPreferences/tests/WorkspaceButton.spec.js +17 -3
  648. package/react/components/userPreferences/tests/WorkspaceButton.spec.js.map +1 -1
  649. package/react/components/userPreferences/tests/WorkspaceComponents.spec.js +1 -1
  650. package/react/components/userPreferences/tests/WorkspaceComponents.spec.js.map +1 -1
  651. package/react/components/userPreferences/tests/WorkspaceItem.spec.js.map +1 -1
  652. package/react/components/userPreferences/tests/WorkspaceItemList.spec.js.map +1 -1
  653. package/react/components/utils.js +1 -1
  654. package/react/components/utils.js.map +1 -1
  655. package/react/components/windowTitleBar/WindowTitleBarShell.d.ts +58 -31
  656. package/react/components/windowTitleBar/WindowTitleBarShell.js +47 -50
  657. package/react/components/windowTitleBar/WindowTitleBarShell.js.map +1 -1
  658. package/react/components/windowTitleBar/components/center/Tab.d.ts +28 -7
  659. package/react/components/windowTitleBar/components/center/Tab.js +11 -4
  660. package/react/components/windowTitleBar/components/center/Tab.js.map +1 -1
  661. package/react/components/windowTitleBar/components/center/TabList.d.ts +43 -30
  662. package/react/components/windowTitleBar/components/center/TabList.js +179 -66
  663. package/react/components/windowTitleBar/components/center/TabList.js.map +1 -1
  664. package/react/components/windowTitleBar/components/left/LinkerButton.js +5 -4
  665. package/react/components/windowTitleBar/components/left/LinkerButton.js.map +1 -1
  666. package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.d.ts +1 -21
  667. package/react/components/windowTitleBar/components/left/LinkerGroups.js +6 -8
  668. package/react/components/windowTitleBar/components/left/LinkerGroups.js.map +1 -1
  669. package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.js +2 -1
  670. package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.js.map +1 -1
  671. package/react/components/windowTitleBar/components/left/ShareButton.d.ts +1 -21
  672. package/react/components/windowTitleBar/components/right/CloseButton.d.ts +12 -25
  673. package/react/components/windowTitleBar/components/right/CloseButton.js.map +1 -1
  674. package/react/components/windowTitleBar/components/right/GroupingButton.d.ts +17 -26
  675. package/react/components/windowTitleBar/components/right/GroupingButton.js +2 -2
  676. package/react/components/windowTitleBar/components/right/GroupingButton.js.map +1 -1
  677. package/react/components/windowTitleBar/components/right/MaximizeButton.d.ts +16 -26
  678. package/react/components/windowTitleBar/components/right/MaximizeButton.js +7 -9
  679. package/react/components/windowTitleBar/components/right/MaximizeButton.js.map +1 -1
  680. package/react/components/windowTitleBar/components/right/MinimizeButton.d.ts +12 -25
  681. package/react/components/windowTitleBar/components/right/MinimizeButton.js.map +1 -1
  682. package/react/components/windowTitleBar/components/windowTitle.d.ts +2 -1
  683. package/react/components/windowTitleBar/components/windowTitle.js +22 -10
  684. package/react/components/windowTitleBar/components/windowTitle.js.map +1 -1
  685. package/react/components/windowTitleBar/stores/windowTitleBarStore.d.ts +56 -44
  686. package/react/components/windowTitleBar/stores/windowTitleBarStore.js +96 -64
  687. package/react/components/windowTitleBar/stores/windowTitleBarStore.js.map +1 -1
  688. package/react/components/windowTitleBar/stores/windowTitleBarStoreDefaults.d.ts +42 -44
  689. package/react/components/windowTitleBar/stores/windowTitleBarStoreDefaults.js.map +1 -1
  690. package/react/components/windowTitleBar/windowTitleBarContext.d.ts +9 -9
  691. package/react/components/windowTitleBar/windowTitleBarContext.js +2 -4
  692. package/react/components/windowTitleBar/windowTitleBarContext.js.map +1 -1
  693. package/react/components/yesNoDialog/Timer.spec.js +2 -2
  694. package/react/components/yesNoDialog/Timer.spec.js.map +1 -1
  695. package/react/components/yesNoDialog/Timer.stories.js +1 -1
  696. package/react/components/yesNoDialog/Timer.stories.js.map +1 -1
  697. package/react/components/yesNoDialog/YesNoDialog.spec.js +5 -5
  698. package/react/components/yesNoDialog/YesNoDialog.spec.js.map +1 -1
  699. package/react/components/yesNoDialog/YesNoDialog.stories.js +1 -1
  700. package/react/components/yesNoDialog/YesNoDialog.stories.js.map +1 -1
  701. package/react/hooks/useFavoritesShell.js +1 -3
  702. package/react/hooks/useFavoritesShell.js.map +1 -1
  703. package/react/hooks/useLinker.js +4 -4
  704. package/react/hooks/useLinker.js.map +1 -1
  705. package/react/hooks/useMenu.js +2 -2
  706. package/react/hooks/useMenu.js.map +1 -1
  707. package/react/hooks/useNotifications.d.ts +8 -8
  708. package/react/hooks/useNotifications.js +30 -30
  709. package/react/hooks/useNotifications.js.map +1 -1
  710. package/react/hooks/usePubSub.js +3 -5
  711. package/react/hooks/usePubSub.js.map +1 -1
  712. package/react/hooks/useSearch.js +1 -1
  713. package/react/hooks/useSearch.js.map +1 -1
  714. package/react/hooks/useToolbar.js +16 -35
  715. package/react/hooks/useToolbar.js.map +1 -1
  716. package/react/hooks/useWorkspace.js +1 -1
  717. package/react/hooks/useWorkspace.js.map +1 -1
  718. package/react/reducers/favoriteReducer.js +1 -1
  719. package/react/reducers/favoriteReducer.js.map +1 -1
  720. package/react/reducers/linkerReducer.js.map +1 -1
  721. package/react/reducers/rootReducer.d.ts +3 -4
  722. package/react/reducers/toolbarReducer.js +1 -1
  723. package/react/reducers/toolbarReducer.js.map +1 -1
  724. package/react/store.d.ts +6 -7
  725. package/react/store.js.map +1 -1
  726. package/react/types/advancedAppLauncherTypes.d.ts +28 -1
  727. package/react/types/advancedAppLauncherTypes.js.map +1 -1
  728. package/react/types/favoriteTypes.d.ts +1 -1
  729. package/react/types/favoriteTypes.js.map +1 -1
  730. package/react/types/fdc3.d.ts +22 -0
  731. package/react/types/fdc3.js.map +1 -1
  732. package/react/types/searchTypes.d.ts +3 -0
  733. package/react/types/searchTypes.js.map +1 -1
  734. package/react/types/smartDesktopDesignerTypes.d.ts +11 -9
  735. package/react/types/smartDesktopDesignerTypes.js.map +1 -1
  736. package/react/types/windowTitleBar.d.ts +47 -0
  737. package/react/types/windowTitleBar.js +2 -0
  738. package/react/types/windowTitleBar.js.map +1 -0
  739. package/react/types/workspaceTypes.d.ts +19 -0
  740. package/react/types/workspaceTypes.js.map +1 -1
  741. package/react/components/processMonitor/components/ChildWindows.d.ts +0 -4
  742. package/react/components/processMonitor/components/ChildWindows.js +0 -11
  743. package/react/components/processMonitor/components/ChildWindows.js.map +0 -1
  744. package/react/components/smartDesktopDesigner/fixtures/applicationsProps.d.ts +0 -2
  745. package/react/components/smartDesktopDesigner/fixtures/applicationsProps.js +0 -88
  746. package/react/components/smartDesktopDesigner/fixtures/applicationsProps.js.map +0 -1
  747. package/react/components/toolbar/advancedAppLauncher/components/LeftNav.d.ts +0 -4
  748. package/react/components/toolbar/advancedAppLauncher/components/LeftNav.js +0 -14
  749. package/react/components/toolbar/advancedAppLauncher/components/LeftNav.js.map +0 -1
@@ -38,7 +38,7 @@ export default {
38
38
  getApps,
39
39
  refreshAppDefinitions,
40
40
  };
41
- const data = {};
41
+ let data = {};
42
42
  const ADVANCED_APP_LAUNCHER = "Advanced App Launcher";
43
43
  const NEW_FOLDER_NAME = "New folder";
44
44
  function getConstants() {
@@ -51,31 +51,31 @@ function getDragDisabled() {
51
51
  return [ADVANCED_APP_LAUNCHER, DASHBOARDS, FAVORITES];
52
52
  }
53
53
  function initialize(callback = Function.prototype) {
54
- FSBL.Clients.ConfigClient.getValue({ field: "finsemble.appDirectoryEndpoint" }, (err, appDirectoryEndpoint) => {
54
+ FSBL.Clients.ConfigClient.getValue({ field: "finsemble.appDirectoryEndpoint" }, (_, appDirectoryEndpoint) => {
55
55
  appDEndpoint = appDirectoryEndpoint;
56
56
  const store = getStore();
57
- data.folders = store.values.appFolders.folders;
58
- data.foldersList = store.values.appFolders.list;
57
+ data.folders = store === null || store === void 0 ? void 0 : store.values.appFolders.folders;
58
+ data.foldersList = store === null || store === void 0 ? void 0 : store.values.appFolders.list;
59
59
  validateFolderDataStructure();
60
- data.apps = store.values.appDefinitions;
61
- data.tags = store.values.activeLauncherTags;
62
- data.activeFolder = store.values.activeFolder;
63
- data.filterText = store.values.filterText;
64
- data.sortBy = store.values.sortBy;
65
- data.isFormVisible = store.values.isFormVisible;
60
+ data.apps = store === null || store === void 0 ? void 0 : store.values.appDefinitions;
61
+ data.tags = store === null || store === void 0 ? void 0 : store.values.activeLauncherTags;
62
+ data.activeFolder = store === null || store === void 0 ? void 0 : store.values.activeFolder;
63
+ data.filterText = store === null || store === void 0 ? void 0 : store.values.filterText;
64
+ data.sortBy = store === null || store === void 0 ? void 0 : store.values.sortBy;
65
+ data.isFormVisible = store === null || store === void 0 ? void 0 : store.values.isFormVisible;
66
66
  data.configComponents = {};
67
- store.addListener({ field: "appFolders.folders" }, (foldersErr, dt) => {
67
+ store === null || store === void 0 ? void 0 : store.addListener({ field: "appFolders.folders" }, (foldersErr, dt) => {
68
68
  data.folders = dt.value;
69
69
  });
70
- store.addListener({ field: "appFolders.list" }, (folderListErr, dt) => (data.foldersList = dt.value));
71
- store.addListener({ field: "appDefinitions" }, (appDefinitionsErr, dt) => (data.apps = dt.value));
72
- store.addListener({ field: "activeFolder" }, (activeFolderErr, dt) => {
70
+ store === null || store === void 0 ? void 0 : store.addListener({ field: "appFolders.list" }, (folderListErr, dt) => (data.foldersList = dt.value));
71
+ store === null || store === void 0 ? void 0 : store.addListener({ field: "appDefinitions" }, (appDefinitionsErr, dt) => (data.apps = dt.value));
72
+ store === null || store === void 0 ? void 0 : store.addListener({ field: "activeFolder" }, (activeFolderErr, dt) => {
73
73
  data.activeFolder = dt.value;
74
74
  });
75
- store.addListener({ field: "isFormVisible" }, (visibilityErr, dt) => (data.isFormVisible = dt.value));
76
- store.addListener({ field: "sortBy" }, (sortErr, dt) => (data.sortBy = dt.value));
77
- store.addListener({ field: "activeLauncherTags" }, (launcherTagsErr, dt) => (data.tags = dt.value));
78
- store.addListener({ field: "filterText" }, (filterTextErr, dt) => (data.filterText = dt.value));
75
+ store === null || store === void 0 ? void 0 : store.addListener({ field: "isFormVisible" }, (visibilityErr, dt) => (data.isFormVisible = dt.value));
76
+ store === null || store === void 0 ? void 0 : store.addListener({ field: "sortBy" }, (sortErr, dt) => (data.sortBy = dt.value));
77
+ store === null || store === void 0 ? void 0 : store.addListener({ field: "activeLauncherTags" }, (launcherTagsErr, dt) => (data.tags = dt.value));
78
+ store === null || store === void 0 ? void 0 : store.addListener({ field: "filterText" }, (filterTextErr, dt) => (data.filterText = dt.value));
79
79
  FSBL.Clients.RouterClient.subscribe("Launcher.update", (err, response) => {
80
80
  FSBL.Clients.Logger.debug("list updated", err, response);
81
81
  if (err) {
@@ -83,7 +83,7 @@ function initialize(callback = Function.prototype) {
83
83
  }
84
84
  refreshAppDefinitions(response.data.componentList);
85
85
  });
86
- FSBL.Clients.RouterClient.subscribe("Finsemble.Service.State.launcherService", (unsubscribeErr, response) => {
86
+ FSBL.Clients.RouterClient.subscribe("Finsemble.Service.State.launcherService", (unsubscribeErr) => {
87
87
  if (unsubscribeErr) {
88
88
  FSBL.Clients.Logger.error("App Launcher encountered an error unsubscribing from the launcher service", unsubscribeErr);
89
89
  }
@@ -101,19 +101,15 @@ function getApp(appID, cb = Function.prototype) {
101
101
  .then((app) => cb(null, app))
102
102
  .catch((err) => cb(err));
103
103
  }
104
- function appInAppList(appName) {
105
- let app = findAppByField("name", appName);
106
- return Boolean(app);
107
- }
108
104
  function validateFolderDataStructure() {
109
- Object.keys(data.folders).map((folderName) => {
105
+ Object.keys(data.folders).forEach((folderName) => {
110
106
  const folder = data.folders[folderName];
111
107
  if (!Array.isArray(folder.apps)) {
112
108
  const warning = "Application Launcher Persistent Store has data stored in deprecated format. Please check distributedStore configs";
113
109
  FSBL.Clients.Logger.warn(warning);
114
110
  FSBL.UserNotification.alert("system", "ONCE-SINCE-STARTUP", "Distributed Store Type Mismatch", warning);
115
- const newApps = [];
116
- Object.values(folder.apps).map((app) => {
111
+ let newApps = [];
112
+ Object.values(folder.apps).forEach((app) => {
117
113
  newApps.push(app);
118
114
  });
119
115
  folder.apps = newApps;
@@ -123,14 +119,14 @@ function validateFolderDataStructure() {
123
119
  }
124
120
  function updateAppsInFolders(cb = Function.prototype) {
125
121
  const { ADVANCED_APP_LAUNCHER: advancedAppLauncherFolderName } = getConstants();
126
- Object.keys(data.folders).map((folderName) => {
122
+ Object.keys(data.folders).forEach((folderName) => {
127
123
  if (folderName === advancedAppLauncherFolderName)
128
124
  return;
129
125
  else {
130
126
  const folder = data.folders[folderName];
131
- Object.values(data.configComponents).map((configComp) => {
127
+ Object.values(data.configComponents).forEach((configComp) => {
132
128
  let index = -1;
133
- folder.apps.map((folderApp, i) => {
129
+ folder.apps.forEach((folderApp, i) => {
134
130
  if (folderApp.appID.toString().trim() === configComp.appID.toString().trim()) {
135
131
  index = i;
136
132
  }
@@ -169,7 +165,7 @@ function loadInstalledComponentsFromStore(cb = Function.prototype) {
169
165
  async.map(Object.values(data.apps), (component, componentDone) => {
170
166
  if (component.source && component.source === "FDC3") {
171
167
  lazyLoadAppD();
172
- return getApp(component.appID, (err, app) => {
168
+ return getApp(component.appID, (err) => {
173
169
  if (err) {
174
170
  deleteApp(component.appID);
175
171
  console.error("there was an error loading from FDC3", component, err);
@@ -189,7 +185,7 @@ function loadInstalledComponentsFromStore(cb = Function.prototype) {
189
185
  }
190
186
  function loadInstalledConfigComponents(cb = Function.prototype) {
191
187
  FSBL.Clients.LauncherClient.getComponentList((err, componentList) => {
192
- refreshAppDefinitions(componentList);
188
+ refreshAppDefinitions(componentList || {});
193
189
  cb();
194
190
  });
195
191
  }
@@ -201,19 +197,20 @@ function refreshAppDefinitions(componentList) {
201
197
  const { folders } = data;
202
198
  const apps = Object.keys(data.apps);
203
199
  Object.keys(folders).forEach((folderName) => {
204
- folders[folderName].apps.map((configDefinedApp, i) => {
200
+ folders[folderName].apps.forEach((configDefinedApp, i) => {
205
201
  const { name, appID } = configDefinedApp;
206
202
  if (!componentTypeList.includes(name) && !apps.includes(appID)) {
207
203
  folders[folderName].apps.splice(i, 1);
208
204
  }
209
205
  });
210
206
  });
211
- componentTypeList.map((componentType) => {
212
- const component = componentList[componentType];
207
+ componentTypeList.forEach((componentType) => {
208
+ var _a, _b, _c, _d, _e, _f;
209
+ const component = componentList === null || componentList === void 0 ? void 0 : componentList[componentType];
213
210
  if (component && component.component) {
214
- const launchableByUser = component?.foreign?.components?.["App Launcher"]?.launchableByUser;
215
- const displayName = component.component.displayName ?? componentType;
216
- const iconObject = iconFromConfig(component?.foreign?.components?.Toolbar, displayName);
211
+ const launchableByUser = (_c = (_b = (_a = component === null || component === void 0 ? void 0 : component.foreign) === null || _a === void 0 ? void 0 : _a.components) === null || _b === void 0 ? void 0 : _b["App Launcher"]) === null || _c === void 0 ? void 0 : _c.launchableByUser;
212
+ const displayName = (_d = component.component.displayName) !== null && _d !== void 0 ? _d : componentType;
213
+ const iconObject = iconFromConfig((_f = (_e = component === null || component === void 0 ? void 0 : component.foreign) === null || _e === void 0 ? void 0 : _e.components) === null || _f === void 0 ? void 0 : _f.Toolbar, displayName);
217
214
  if (launchableByUser && !component.component.isUserDefined) {
218
215
  data.configComponents[componentType] = {
219
216
  appID: componentType,
@@ -231,10 +228,11 @@ function refreshAppDefinitions(componentList) {
231
228
  });
232
229
  }
233
230
  function _setValue(field, value, cb) {
234
- getStore().setValue({
231
+ var _a;
232
+ (_a = getStore()) === null || _a === void 0 ? void 0 : _a.setValue({
235
233
  field: field,
236
234
  value: value,
237
- }, (error, data) => {
235
+ }, (error) => {
238
236
  if (error) {
239
237
  FSBL.Clients.Logger.error(`Advanced App Launcher: Failed to save: ${field}:${value}`);
240
238
  }
@@ -244,7 +242,7 @@ function _setValue(field, value, cb) {
244
242
  });
245
243
  }
246
244
  function _setFolders(cb = Function.prototype) {
247
- _setValue("appFolders.folders", data.folders, (err, data) => {
245
+ _setValue("appFolders.folders", data.folders, (err) => {
248
246
  if (err) {
249
247
  FSBL.Clients.Logger.error(`Advanced App Launcher: Failed to set folders: ${err}`);
250
248
  return;
@@ -262,8 +260,7 @@ function getFoldersList() {
262
260
  return data.foldersList;
263
261
  }
264
262
  function getAllApps() {
265
- let mergedApps = Object.assign({}, data.apps, data.configComponents);
266
- return mergedApps;
263
+ return Object.assign({}, data.apps, data.configComponents);
267
264
  }
268
265
  function getFormStatus() {
269
266
  return data.isFormVisible;
@@ -283,7 +280,7 @@ function reorderFolders(destIndex, srcIndex) {
283
280
  movedFolder,
284
281
  ...remainingItems.slice(srcIndex),
285
282
  ];
286
- _setValue("appFolders.list", data.foldersList);
283
+ _setValue("appFolders.list", data.foldersList, () => { });
287
284
  return data.foldersList;
288
285
  }
289
286
  function addApp(app = {}, cb) {
@@ -291,7 +288,7 @@ function addApp(app = {}, cb) {
291
288
  const folder = data.activeFolder;
292
289
  const newAppData = {
293
290
  appID,
294
- tags: app.tags !== "" ? app.tags.split(",") : [],
291
+ tags: app.tags,
295
292
  name: app.name,
296
293
  url: app.url,
297
294
  type: "component",
@@ -333,11 +330,11 @@ function addNewFolder(name) {
333
330
  .filter((folder) => folder.startsWith(NEW_FOLDER_NAME))
334
331
  .map((folder) => {
335
332
  const numbers = folder.match(/\d+/g) || [];
336
- return Math.max.apply(this, numbers);
333
+ return Math.max(...numbers);
337
334
  }),
338
335
  ];
339
- const highestFolderNumber = Math.max.apply(this, newFoldersNums);
340
- const folderName = name ?? `${NEW_FOLDER_NAME} ${highestFolderNumber + 1}`;
336
+ const highestFolderNumber = Math.max(...newFoldersNums);
337
+ const folderName = name !== null && name !== void 0 ? name : `${NEW_FOLDER_NAME} ${highestFolderNumber + 1}`;
341
338
  const newFolder = {
342
339
  disableUserRemove: true,
343
340
  icon: "ff-adp-hamburger",
@@ -348,19 +345,19 @@ function addNewFolder(name) {
348
345
  data.folders[folderName] = newFolder;
349
346
  _setFolders(() => {
350
347
  data.foldersList.push(folderName);
351
- _setValue("appFolders.list", data.foldersList);
348
+ _setValue("appFolders.list", data.foldersList, () => { });
352
349
  });
353
350
  }
354
351
  function deleteFolder(folderName) {
355
352
  if (folderName === data.activeFolder) {
356
353
  data.activeFolder = ADVANCED_APP_LAUNCHER;
357
- _setValue("activeFolder", data.activeFolder);
354
+ _setValue("activeFolder", data.activeFolder, () => { });
358
355
  }
359
356
  delete data.folders[folderName] &&
360
357
  _setFolders(() => {
361
358
  const index = data.foldersList.indexOf(folderName);
362
359
  data.foldersList.splice(index, 1);
363
- _setValue("appFolders.list", data.foldersList);
360
+ _setValue("appFolders.list", data.foldersList, () => { });
364
361
  });
365
362
  }
366
363
  function renameFolder(oldName, newName) {
@@ -370,9 +367,9 @@ function renameFolder(oldName, newName) {
370
367
  data.folders[newName] = oldFolder;
371
368
  data.foldersList.splice(indexOfOld, 1, newName);
372
369
  _setFolders(() => {
373
- _setValue("appFolders.list", data.foldersList);
370
+ _setValue("appFolders.list", data.foldersList, () => { });
374
371
  if (data.activeFolder === oldName) {
375
- _setValue("activeFolder", newName);
372
+ _setValue("activeFolder", newName, () => { });
376
373
  }
377
374
  delete data.folders[oldName];
378
375
  });
@@ -444,10 +441,10 @@ function getAllAppsTags() {
444
441
  }
445
442
  function addTag(tag) {
446
443
  data.tags.indexOf(tag) < 0 && data.tags.push(tag);
447
- _setValue("activeLauncherTags", data.tags);
444
+ _setValue("activeLauncherTags", data.tags, () => { });
448
445
  }
449
446
  function deleteTag(tag) {
450
447
  data.tags.splice(data.tags.indexOf(tag), 1);
451
- _setValue("activeLauncherTags", data.tags);
448
+ _setValue("activeLauncherTags", data.tags, () => { });
452
449
  }
453
450
  //# sourceMappingURL=StoreActions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StoreActions.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/stores/StoreActions.js"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\r\nimport { findIndex } from \"lodash\";\r\nimport { getStore } from \"./LauncherStore\";\r\nimport AppDirectory from \"../modules/AppDirectory\";\r\nimport FDC3 from \"../modules/FDC3\";\r\nimport { iconFromConfig } from \"../../../icon/Icon\";\r\nconst async = require(\"async\");\r\nlet FDC3Client;\r\nlet appd;\r\nlet appDEndpoint;\r\n\r\nexport default {\r\n\tinitialize,\r\n\taddApp,\r\n\taddNewFolder,\r\n\taddAppToFolder,\r\n\tremoveAppFromFolder,\r\n\trenameFolder,\r\n\tdeleteFolder,\r\n\tdeleteApp,\r\n\tdeleteTag,\r\n\treorderFolders,\r\n\tgetFolders,\r\n\tgetFoldersList,\r\n\tgetActiveFolderName,\r\n\tgetActiveFolder,\r\n\tgetSingleFolder,\r\n\tgetAllAppsTags,\r\n\tgetAllApps,\r\n\tgetAllAppsFromFolder,\r\n\tgetFormStatus,\r\n\tgetSearchText,\r\n\tgetSortBy,\r\n\taddTag,\r\n\tgetTags,\r\n\tgetApp,\r\n\tgetDragDisabled,\r\n\tgetConstants,\r\n\tfindAppByField,\r\n\tgetApps,\r\n\trefreshAppDefinitions,\r\n};\r\n\r\nconst data = {};\r\nconst ADVANCED_APP_LAUNCHER = \"Advanced App Launcher\";\r\nconst NEW_FOLDER_NAME = \"New folder\";\r\n// returns names of default folders.\r\nfunction getConstants() {\r\n\tconst DASHBOARDS = \"Dashboards\";\r\n\tconst FAVORITES = \"Favorites\";\r\n\treturn { ADVANCED_APP_LAUNCHER, DASHBOARDS, FAVORITES };\r\n}\r\n\r\n// Add to here if you want to disable dragging on a folder.\r\nfunction getDragDisabled() {\r\n\tconst { DASHBOARDS, FAVORITES } = getConstants();\r\n\treturn [ADVANCED_APP_LAUNCHER, DASHBOARDS, FAVORITES];\r\n}\r\n\r\nfunction initialize(callback = Function.prototype) {\r\n\tFSBL.Clients.ConfigClient.getValue({ field: \"finsemble.appDirectoryEndpoint\" }, (err, appDirectoryEndpoint) => {\r\n\t\t// cache value globally to be used in the event that we need to fetch data for a given component.\r\n\t\tappDEndpoint = appDirectoryEndpoint;\r\n\t\tconst store = getStore();\r\n\t\tdata.folders = store.values.appFolders.folders;\r\n\t\tdata.foldersList = store.values.appFolders.list;\r\n\t\tvalidateFolderDataStructure();\r\n\t\tdata.apps = store.values.appDefinitions;\r\n\t\tdata.tags = store.values.activeLauncherTags;\r\n\t\tdata.activeFolder = store.values.activeFolder;\r\n\t\tdata.filterText = store.values.filterText;\r\n\t\tdata.sortBy = store.values.sortBy;\r\n\t\tdata.isFormVisible = store.values.isFormVisible;\r\n\t\tdata.configComponents = {};\r\n\r\n\t\t// Add listeners to keep our copy up to date\r\n\t\tstore.addListener({ field: \"appFolders.folders\" }, (foldersErr, dt) => {\r\n\t\t\tdata.folders = dt.value;\r\n\t\t});\r\n\t\tstore.addListener({ field: \"appFolders.list\" }, (folderListErr, dt) => (data.foldersList = dt.value));\r\n\t\tstore.addListener({ field: \"appDefinitions\" }, (appDefinitionsErr, dt) => (data.apps = dt.value));\r\n\t\tstore.addListener({ field: \"activeFolder\" }, (activeFolderErr, dt) => {\r\n\t\t\tdata.activeFolder = dt.value;\r\n\t\t});\r\n\t\tstore.addListener({ field: \"isFormVisible\" }, (visibilityErr, dt) => (data.isFormVisible = dt.value));\r\n\t\tstore.addListener({ field: \"sortBy\" }, (sortErr, dt) => (data.sortBy = dt.value));\r\n\t\tstore.addListener({ field: \"activeLauncherTags\" }, (launcherTagsErr, dt) => (data.tags = dt.value));\r\n\t\tstore.addListener({ field: \"filterText\" }, (filterTextErr, dt) => (data.filterText = dt.value));\r\n\r\n\t\tFSBL.Clients.RouterClient.subscribe(\"Launcher.update\", (err, response) => {\r\n\t\t\tFSBL.Clients.Logger.debug(\"list updated\", err, response);\r\n\t\t\tif (err) {\r\n\t\t\t\treturn console.error(err);\r\n\t\t\t}\r\n\t\t\trefreshAppDefinitions(response.data.componentList);\r\n\t\t});\r\n\r\n\t\tFSBL.Clients.RouterClient.subscribe(\"Finsemble.Service.State.launcherService\", (unsubscribeErr, response) => {\r\n\t\t\tif (unsubscribeErr) {\r\n\t\t\t\tFSBL.Clients.Logger.error(\r\n\t\t\t\t\t\"App Launcher encountered an error unsubscribing from the launcher service\",\r\n\t\t\t\t\tunsubscribeErr\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tloadInstalledComponentsFromStore(() => {\r\n\t\t\t\t// We load our stored components(config driven) here\r\n\t\t\t\tloadInstalledConfigComponents(() => {\r\n\t\t\t\t\tupdateAppsInFolders(callback);\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t});\r\n\t});\r\n}\r\n\r\n// This gets a specific app in FDC3 and returns the results\r\nfunction getApp(appID, cb = Function.prototype) {\r\n\tappd\r\n\t\t.get(appID)\r\n\t\t.then((app) => cb(null, app))\r\n\t\t.catch((err) => cb(err));\r\n}\r\n// Check to see if an app is already in our list of apps\r\nfunction appInAppList(appName) {\r\n\tlet app = findAppByField(\"name\", appName);\r\n\treturn Boolean(app);\r\n}\r\n\r\n/**\r\n * Ensures all 'apps' properties on folders conform\r\n * to the new structure (Array vs object)\r\n */\r\nfunction validateFolderDataStructure() {\r\n\tObject.keys(data.folders).map((folderName) => {\r\n\t\tconst folder = data.folders[folderName];\r\n\t\tif (!Array.isArray(folder.apps)) {\r\n\t\t\tconst warning =\r\n\t\t\t\t\"Application Launcher Persistent Store has data stored in deprecated format. Please check distributedStore configs\";\r\n\t\t\t// If the structure is wrong, notify the user in hopes that the foundation will be fixed\r\n\t\t\tFSBL.Clients.Logger.warn(warning);\r\n\t\t\tFSBL.UserNotification.alert(\"system\", \"ONCE-SINCE-STARTUP\", \"Distributed Store Type Mismatch\", warning);\r\n\t\t\tconst newApps = [];\r\n\t\t\tObject.values(folder.apps).map((app) => {\r\n\t\t\t\tnewApps.push(app);\r\n\t\t\t});\r\n\t\t\tfolder.apps = newApps;\r\n\t\t}\r\n\t});\r\n\t_setFolders();\r\n}\r\n\r\n// Update apps in folders with updated config information\r\nfunction updateAppsInFolders(cb = Function.prototype) {\r\n\t// Loop through folders and update apps with new info\r\n\tconst { ADVANCED_APP_LAUNCHER: advancedAppLauncherFolderName } = getConstants();\r\n\tObject.keys(data.folders).map((folderName) => {\r\n\t\tif (folderName === advancedAppLauncherFolderName) return;\r\n\t\telse {\r\n\t\t\tconst folder = data.folders[folderName];\r\n\t\t\tObject.values(data.configComponents).map((configComp) => {\r\n\t\t\t\tlet index = -1;\r\n\t\t\t\tfolder.apps.map((folderApp, i) => {\r\n\t\t\t\t\tif (folderApp.appID.toString().trim() === configComp.appID.toString().trim()) {\r\n\t\t\t\t\t\tindex = i;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (index > -1) {\r\n\t\t\t\t\tdata.folders[folderName].apps.splice(index, 1, configComp);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t});\r\n\t_setFolders(cb);\r\n}\r\n\r\n/**\r\n * Given a component config, will return tags, or an empty array.\r\n *\r\n * @param {*} componentConfig\r\n * @returns\r\n */\r\nfunction extractTagsFromFinsembleComponentConfig(componentConfig) {\r\n\tif (!componentConfig.foreign) return [];\r\n\tif (!componentConfig.foreign.components) return [];\r\n\tif (!componentConfig.foreign.components[\"App Launcher\"]) return [];\r\n\r\n\tconst { tags } = componentConfig.foreign.components[\"App Launcher\"];\r\n\r\n\tif (tags) {\r\n\t\tif (typeof tags === \"string\") {\r\n\t\t\treturn [tags];\r\n\t\t}\r\n\t\treturn tags;\r\n\t}\r\n\r\n\treturn [];\r\n}\r\n/**\r\n * Instantiates classes needed to interact with the appD server.\r\n * Only done when needed. If there are no components with source 'FDC3', this code will not execute.\r\n */\r\nfunction lazyLoadAppD() {\r\n\tif (!FDC3Client) FDC3Client = new FDC3({ url: appDEndpoint });\r\n\tif (!appd) appd = new AppDirectory(FDC3Client);\r\n}\r\n\r\n/**\r\n * Here we load apps from FDC3\r\n * @param {*} cb\r\n */\r\nfunction loadInstalledComponentsFromStore(cb = Function.prototype) {\r\n\tasync.map(\r\n\t\tObject.values(data.apps),\r\n\t\t(component, componentDone) => {\r\n\t\t\t// Load FDC3 components here\r\n\t\t\tif (component.source && component.source === \"FDC3\") {\r\n\t\t\t\tlazyLoadAppD();\r\n\t\t\t\t// get the app info so we can load it into the launcher\r\n\t\t\t\treturn getApp(component.appID, (err, app) => {\r\n\t\t\t\t\tif (err) {\r\n\t\t\t\t\t\t// don't want to kill this;\r\n\t\t\t\t\t\tdeleteApp(component.appID);\r\n\t\t\t\t\t\tconsole.error(\"there was an error loading from FDC3\", component, err);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn componentDone();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t// Assumption - component is always a user defined component\r\n\t\t\t// when testing I was never able to get any other component types in this method\r\n\t\t\tFSBL.Clients.LauncherClient.addUserDefinedComponent(component, (compAddErr) => {\r\n\t\t\t\tif (compAddErr) {\r\n\t\t\t\t\tconsole.warn(\"Failed to add new app:\", compAddErr);\r\n\t\t\t\t}\r\n\t\t\t\tcomponentDone(compAddErr);\r\n\t\t\t});\r\n\t\t},\r\n\t\t(err) => {\r\n\t\t\tcb(err);\r\n\t\t}\r\n\t);\r\n}\r\n\r\n// We load our apps that were loaded from the config.\r\nfunction loadInstalledConfigComponents(cb = Function.prototype) {\r\n\t// Get the list of components from the launcher service\r\n\tFSBL.Clients.LauncherClient.getComponentList((err, componentList) => {\r\n\t\t/*\r\n\t\t * Update the folders under the \"App\" menu and delete any apps in the folder\r\n\t\t * that are no longer in the config and are not user defined components.\r\n\t\t */\r\n\t\trefreshAppDefinitions(componentList);\r\n\t\tcb();\r\n\t});\r\n}\r\n\r\nfunction getApps() {\r\n\treturn data.apps;\r\n}\r\n\r\nfunction refreshAppDefinitions(componentList) {\r\n\tconst componentTypeList = Object.keys(componentList);\r\n\r\n\tconst { folders } = data;\r\n\t// Get the user defined apps\r\n\tconst apps = Object.keys(data.apps);\r\n\tObject.keys(folders).forEach((folderName) => {\r\n\t\tfolders[folderName].apps.map((configDefinedApp, i) => {\r\n\t\t\tconst { name, appID } = configDefinedApp;\r\n\t\t\t// If the component is not in the config component list and is not a user defined component\r\n\t\t\tif (!componentTypeList.includes(name) && !apps.includes(appID)) {\r\n\t\t\t\t// Delete app from the folder\r\n\t\t\t\tfolders[folderName].apps.splice(i, 1);\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n\r\n\tcomponentTypeList.map((componentType) => {\r\n\t\tconst component = componentList[componentType];\r\n\t\tif (component && component.component) {\r\n\t\t\tconst launchableByUser = component?.foreign?.components?.[\"App Launcher\"]?.launchableByUser;\r\n\r\n\t\t\tconst displayName = component.component.displayName ?? componentType;\r\n\t\t\tconst iconObject = iconFromConfig(component?.foreign?.components?.Toolbar, displayName);\r\n\t\t\t// Make sure the app is launchable by user\r\n\t\t\tif (launchableByUser && !component.component.isUserDefined) {\r\n\t\t\t\tdata.configComponents[componentType] = {\r\n\t\t\t\t\tappID: componentType,\r\n\t\t\t\t\ticon: iconObject,\r\n\t\t\t\t\tname: componentType,\r\n\t\t\t\t\tdisplayName,\r\n\t\t\t\t\tsource: \"config\",\r\n\t\t\t\t\ttags: extractTagsFromFinsembleComponentConfig(component),\r\n\t\t\t\t};\r\n\t\t\t} else if (!launchableByUser && data.configComponents[componentType]) {\r\n\t\t\t\tdelete data.configComponents[componentType];\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n}\r\n\r\nfunction _setValue(field, value, cb) {\r\n\tgetStore().setValue(\r\n\t\t{\r\n\t\t\tfield: field,\r\n\t\t\tvalue: value,\r\n\t\t},\r\n\t\t(error, data) => {\r\n\t\t\tif (error) {\r\n\t\t\t\tFSBL.Clients.Logger.error(`Advanced App Launcher: Failed to save: ${field}:${value}`);\r\n\t\t\t\t// TODO\r\n\t\t\t\t// Should probably return with an error so the calling function knows to move on\r\n\t\t\t\t// Don't want to deal with unforeseen circumstances by doing that now\r\n\t\t\t} else {\r\n\t\t\t\tcb && cb();\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n}\r\n\r\nfunction _setFolders(cb = Function.prototype) {\r\n\t_setValue(\"appFolders.folders\", data.folders, (err, data) => {\r\n\t\tif (err) {\r\n\t\t\tFSBL.Clients.Logger.error(`Advanced App Launcher: Failed to set folders: ${err}`);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tcb();\r\n\t});\r\n}\r\n\r\nfunction _findAppIndexInFolders(appID, folderName) {\r\n\treturn findIndex(data.folders[folderName].apps, (app) => app.appID === appID);\r\n}\r\n\r\nfunction getFolders() {\r\n\treturn data.folders;\r\n}\r\n\r\nfunction getFoldersList() {\r\n\treturn data.foldersList;\r\n}\r\n\r\nfunction getAllApps() {\r\n\tlet mergedApps = Object.assign({}, data.apps, data.configComponents);\r\n\treturn mergedApps;\r\n}\r\n\r\nfunction getFormStatus() {\r\n\treturn data.isFormVisible;\r\n}\r\n\r\nfunction getSingleFolder(folderName) {\r\n\treturn data.folders[folderName];\r\n}\r\n\r\nfunction reorderFolders(destIndex, srcIndex) {\r\n\t// There are two types of folders: Those that can be arranged, and those that cannot. We don't want to reorder the folders relative to the unorderable folders. Split them out, and then combine them after doing the filtering/swapping.\r\n\tconst dragDisabled = getDragDisabled();\r\n\tconst unorderableFolders = data.foldersList.filter((folderName) => dragDisabled.includes(folderName));\r\n\tconst orderableFolders = data.foldersList.filter((folderName) => !dragDisabled.includes(folderName));\r\n\tconst movedFolder = orderableFolders[destIndex];\r\n\tconst remainingItems = orderableFolders.filter((item, index) => index !== destIndex);\r\n\tdata.foldersList = [\r\n\t\t...unorderableFolders,\r\n\t\t...remainingItems.slice(0, srcIndex),\r\n\t\tmovedFolder,\r\n\t\t...remainingItems.slice(srcIndex),\r\n\t];\r\n\t_setValue(\"appFolders.list\", data.foldersList);\r\n\treturn data.foldersList;\r\n}\r\n\r\nfunction addApp(app = {}, cb) {\r\n\tconst appID = `${new Date().getTime()}`;\r\n\tconst folder = data.activeFolder;\r\n\tconst newAppData = {\r\n\t\tappID,\r\n\t\ttags: app.tags !== \"\" ? app.tags.split(\",\") : [],\r\n\t\tname: app.name,\r\n\t\turl: app.url,\r\n\t\ttype: \"component\",\r\n\t\tcanDelete: true,\r\n\t};\r\n\r\n\t/**\r\n\t * Note, the advanced app launcher can currently only keep track of apps that\r\n\t * are added by itself. Apps added by the basic launcher, or any other means,\r\n\t * will not be detected. A reconciliation process would need to be added that\r\n\t * listens on the distributed store similar to how the basic app launcher works.\r\n\t *\r\n\t * FSBL.Clients.RouterClient.subscribe(\"Launcher.update\", (err, response) => {\r\n\t\t\tFSBL.Clients.Logger.debug(\"list updated\", err, response);\r\n\t\t\tif (err) {\r\n\t\t\t\treturn console.error(err);\r\n\t\t\t}\r\n\t\t\tself.filterComponents(response.data.componentList);\r\n\t\t});\r\n\t */\r\n\tFSBL.Clients.LauncherClient.addUserDefinedComponent(newAppData, (compAddErr) => {\r\n\t\tif (compAddErr) {\r\n\t\t\t// TODO: We need to handle the error here. If the component failed to add, we should probably fall back and not add to launcher\r\n\t\t\tcb({ code: \"failed_to_add_app\", message: compAddErr });\r\n\t\t\tconsole.warn(\"Failed to add new app:\", compAddErr);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tdata.apps[appID] = newAppData;\r\n\r\n\t\t// Add to ADVANCED_APP_LAUNCHER folder\r\n\t\tdata.folders[ADVANCED_APP_LAUNCHER].apps.push(newAppData);\r\n\r\n\t\t// Check if we need to add to another folder as well\r\n\t\tif (folder !== ADVANCED_APP_LAUNCHER) {\r\n\t\t\tdata.folders[folder].apps.push(newAppData);\r\n\t\t}\r\n\t\t// Save appDefinitions and then folders\r\n\t\t_setValue(\"appDefinitions\", data.apps, () => {\r\n\t\t\t_setFolders();\r\n\t\t\tcb && cb();\r\n\t\t});\r\n\t});\r\n}\r\n\r\nfunction deleteApp(appID) {\r\n\t// Delete app from any folder that has it\r\n\tfor (const key in data.folders) {\r\n\t\tconst appIndex = _findAppIndexInFolders(appID, key);\r\n\t\tdata.folders[key].apps.splice(appIndex, 1);\r\n\t}\r\n\r\n\t// Delete app from the apps list\r\n\tFSBL.Clients.LauncherClient.removeUserDefinedComponent(data.apps[appID], () => {\r\n\t\tdelete data.apps[appID];\r\n\t\t// Save appDefinitions and then folders\r\n\t\t_setValue(\"appDefinitions\", data.apps, () => {\r\n\t\t\t_setFolders();\r\n\t\t});\r\n\t});\r\n}\r\n\r\nfunction addNewFolder(name) {\r\n\t// Each new folder is given a number, lets store them here\r\n\t// to get the highest one and then increment\r\n\t// result of this will be [0, 1, 2] etc\r\n\tconst newFoldersNums = [\r\n\t\t0,\r\n\t\t// Find folders that have a name of \"New folder\" or \"New folder #\"\r\n\t\t...data.foldersList\r\n\t\t\t.filter((folder) => folder.startsWith(NEW_FOLDER_NAME))\r\n\t\t\t.map((folder) => {\r\n\t\t\t\tconst numbers = folder.match(/\\d+/g) || [];\r\n\t\t\t\treturn Math.max.apply(this, numbers);\r\n\t\t\t}),\r\n\t];\r\n\tconst highestFolderNumber = Math.max.apply(this, newFoldersNums);\r\n\tconst folderName = name ?? `${NEW_FOLDER_NAME} ${highestFolderNumber + 1}`;\r\n\tconst newFolder = {\r\n\t\tdisableUserRemove: true,\r\n\t\ticon: \"ff-adp-hamburger\",\r\n\t\tcanEdit: true,\r\n\t\tcanDelete: true,\r\n\t\tapps: [],\r\n\t};\r\n\tdata.folders[folderName] = newFolder;\r\n\t_setFolders(() => {\r\n\t\t// Update folders order if adding was successful\r\n\t\tdata.foldersList.push(folderName);\r\n\t\t_setValue(\"appFolders.list\", data.foldersList);\r\n\t});\r\n}\r\n\r\nfunction deleteFolder(folderName) {\r\n\t// Check if user is trying to delete the active folder\r\n\tif (folderName === data.activeFolder) {\r\n\t\tdata.activeFolder = ADVANCED_APP_LAUNCHER;\r\n\t\t_setValue(\"activeFolder\", data.activeFolder);\r\n\t}\r\n\r\n\tdelete data.folders[folderName] &&\r\n\t\t_setFolders(() => {\r\n\t\t\t// Update the order of folders\r\n\t\t\tconst index = data.foldersList.indexOf(folderName);\r\n\t\t\tdata.foldersList.splice(index, 1);\r\n\t\t\t_setValue(\"appFolders.list\", data.foldersList);\r\n\t\t});\r\n}\r\n\r\nfunction renameFolder(oldName, newName) {\r\n\tlet indexOfOld = data.foldersList.findIndex((folderName) => folderName === oldName);\r\n\r\n\tif (indexOfOld > -1) {\r\n\t\tlet oldFolder = data.folders[oldName];\r\n\t\tdata.folders[newName] = oldFolder;\r\n\t\tdata.foldersList.splice(indexOfOld, 1, newName);\r\n\r\n\t\t_setFolders(() => {\r\n\t\t\t_setValue(\"appFolders.list\", data.foldersList);\r\n\r\n\t\t\tif (data.activeFolder === oldName) {\r\n\t\t\t\t_setValue(\"activeFolder\", newName);\r\n\t\t\t}\r\n\r\n\t\t\tdelete data.folders[oldName];\r\n\t\t});\r\n\t}\r\n}\r\n\r\nfunction addAppToFolder(folderName, app) {\r\n\tconst appIndex = _findAppIndexInFolders(app.appID, folderName);\r\n\r\n\tif (appIndex < 0) {\r\n\t\tdata.folders[folderName].apps.push({\r\n\t\t\tname: app.name,\r\n\t\t\tdisplayName: app.displayName,\r\n\t\t\tappID: app.appID,\r\n\t\t});\r\n\t\t_setFolders();\r\n\t}\r\n}\r\n\r\nfunction removeAppFromFolder(folderName, app) {\r\n\tconst appIndex = _findAppIndexInFolders(app.appID, folderName);\r\n\tdata.folders[folderName].apps.splice(appIndex, 1);\r\n\t_setFolders();\r\n}\r\n\r\nfunction getAllAppsFromFolder(folderName) {\r\n\treturn data.folders[folderName].apps;\r\n}\r\n\r\n/**\r\n * Given a field, search through FDC3 apps and apps pulled in via config and return that app.\r\n * */\r\nfunction findAppByField(field, value) {\r\n\treturn (\r\n\t\tObject.values(data.apps).find((app) => (app ? app[field] === value : false)) ||\r\n\t\tObject.values(data.configComponents).find((app) => (app ? app[field] === value : false))\r\n\t);\r\n}\r\n\r\nfunction getActiveFolder() {\r\n\tconst folder = data.folders[data.activeFolder];\r\n\r\n\tif (!folder) {\r\n\t\tFSBL.Clients.Logger.error(`activeFolder:\"${data.activeFolder}\" not found! Defaulting to empty folder`);\r\n\t\treturn {\r\n\t\t\tname: data.activeFolder,\r\n\t\t\tapps: [],\r\n\t\t};\r\n\t}\r\n\r\n\tObject.values(folder.apps).forEach((app) => {\r\n\t\tconst appData = findAppByField(\"appID\", app.appID);\r\n\t\tif (!appData) {\r\n\t\t\tapp.tags = [];\r\n\t\t} else {\r\n\t\t\tapp.tags = appData.tags;\r\n\t\t}\r\n\t});\r\n\t// Need a name for the AppDefinition/AppActionsMenu rendering\r\n\tfolder.name = data.activeFolder;\r\n\treturn folder;\r\n}\r\n\r\nfunction getActiveFolderName() {\r\n\treturn data.activeFolder;\r\n}\r\n\r\nfunction getSearchText() {\r\n\treturn data.filterText;\r\n}\r\n\r\nfunction getSortBy() {\r\n\treturn data.sortBy;\r\n}\r\n\r\nfunction getTags() {\r\n\treturn data.tags;\r\n}\r\n\r\nfunction getAllAppsTags() {\r\n\tlet tags = [];\r\n\t// Pull tags from applications installed via FDC3 and the component config.\r\n\tconst apps = Object.values(data.apps).concat(Object.values(data.configComponents));\r\n\r\n\tapps.forEach((app) => {\r\n\t\ttags = tags.concat(app.tags);\r\n\t});\r\n\t// return unique ones only\r\n\treturn tags.filter((tag, index) => tags.indexOf(tag) === index);\r\n}\r\n\r\nfunction addTag(tag) {\r\n\t// Push new tag to list\r\n\tdata.tags.indexOf(tag) < 0 && data.tags.push(tag);\r\n\t// Update tags in store\r\n\t_setValue(\"activeLauncherTags\", data.tags);\r\n}\r\n\r\nfunction deleteTag(tag) {\r\n\t// Push new tag to list\r\n\tdata.tags.splice(data.tags.indexOf(tag), 1);\r\n\t// Update tags in store\r\n\t_setValue(\"activeLauncherTags\", data.tags);\r\n}\r\n"]}
1
+ {"version":3,"file":"StoreActions.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/stores/StoreActions.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\r\nimport { findIndex } from \"lodash\";\r\nimport { getStore } from \"./LauncherStore\";\r\nimport AppDirectory from \"../modules/AppDirectory\";\r\nimport FDC3 from \"../modules/FDC3\";\r\nimport { iconFromConfig } from \"../../../icon/Icon\";\r\nimport { FoldersType, FolderAppType } from \"../../../../types/advancedAppLauncherTypes\";\r\nimport { StandardError } from \"@finsemble/finsemble-core/types/types\";\r\nimport sortFunctions from \"../utils/sort-functions\";\r\nconst async = require(\"async\");\r\nlet FDC3Client: FDC3;\r\nlet appd: any;\r\nlet appDEndpoint: any;\r\n\r\ntype ComponentDescriptor = Record<string, any>;\r\ntype ComponentList = Record<string, ComponentDescriptor>;\r\n\r\ntype AppsType = {\r\n\tappID: string;\r\n\ttags: string[];\r\n\tname: string;\r\n\turl: string;\r\n\ttype: string;\r\n\tcanDelete: boolean;\r\n\tdisplayName?: string;\r\n};\r\ntype ConfigType = {\r\n\tappID: string;\r\n\ticon: any;\r\n\tname: string;\r\n\tdisplayName: string;\r\n\tsource: string;\r\n\ttags: string[];\r\n};\r\ntype DataType = {\r\n\tfolders: FoldersType[\"folders\"];\r\n\tfoldersList: FoldersType[\"list\"];\r\n\tapps: {\r\n\t\t[field: string]: AppsType;\r\n\t};\r\n\ttags: string[];\r\n\tactiveFolder: string;\r\n\tfilterText: string;\r\n\tsortBy: keyof typeof sortFunctions;\r\n\tisFormVisible: boolean;\r\n\tconfigComponents: {\r\n\t\t[field: string]: ConfigType;\r\n\t};\r\n};\r\n\r\nexport default {\r\n\tinitialize,\r\n\taddApp,\r\n\taddNewFolder,\r\n\taddAppToFolder,\r\n\tremoveAppFromFolder,\r\n\trenameFolder,\r\n\tdeleteFolder,\r\n\tdeleteApp,\r\n\tdeleteTag,\r\n\treorderFolders,\r\n\tgetFolders,\r\n\tgetFoldersList,\r\n\tgetActiveFolderName,\r\n\tgetActiveFolder,\r\n\tgetSingleFolder,\r\n\tgetAllAppsTags,\r\n\tgetAllApps,\r\n\tgetAllAppsFromFolder,\r\n\tgetFormStatus,\r\n\tgetSearchText,\r\n\tgetSortBy,\r\n\taddTag,\r\n\tgetTags,\r\n\tgetApp,\r\n\tgetDragDisabled,\r\n\tgetConstants,\r\n\tfindAppByField,\r\n\tgetApps,\r\n\trefreshAppDefinitions,\r\n};\r\n\r\nlet data = <DataType>{};\r\nconst ADVANCED_APP_LAUNCHER = \"Advanced App Launcher\";\r\nconst NEW_FOLDER_NAME = \"New folder\";\r\n// returns names of default folders.\r\nfunction getConstants() {\r\n\tconst DASHBOARDS = \"Dashboards\";\r\n\tconst FAVORITES = \"Favorites\";\r\n\treturn { ADVANCED_APP_LAUNCHER, DASHBOARDS, FAVORITES };\r\n}\r\n\r\n// Add to here if you want to disable dragging on a folder.\r\nfunction getDragDisabled() {\r\n\tconst { DASHBOARDS, FAVORITES } = getConstants();\r\n\treturn [ADVANCED_APP_LAUNCHER, DASHBOARDS, FAVORITES];\r\n}\r\n\r\nfunction initialize(callback = Function.prototype) {\r\n\tFSBL.Clients.ConfigClient.getValue({ field: \"finsemble.appDirectoryEndpoint\" }, (_, appDirectoryEndpoint) => {\r\n\t\t// cache value globally to be used in the event that we need to fetch data for a given component.\r\n\t\tappDEndpoint = appDirectoryEndpoint;\r\n\t\tconst store = getStore();\r\n\t\tdata.folders = store?.values.appFolders.folders;\r\n\t\tdata.foldersList = store?.values.appFolders.list;\r\n\t\tvalidateFolderDataStructure();\r\n\t\tdata.apps = store?.values.appDefinitions;\r\n\t\tdata.tags = store?.values.activeLauncherTags;\r\n\t\tdata.activeFolder = store?.values.activeFolder;\r\n\t\tdata.filterText = store?.values.filterText;\r\n\t\tdata.sortBy = store?.values.sortBy;\r\n\t\tdata.isFormVisible = store?.values.isFormVisible;\r\n\t\tdata.configComponents = {};\r\n\r\n\t\t// Add listeners to keep our copy up to date\r\n\t\tstore?.addListener({ field: \"appFolders.folders\" }, (foldersErr, dt) => {\r\n\t\t\tdata.folders = dt.value;\r\n\t\t});\r\n\t\tstore?.addListener({ field: \"appFolders.list\" }, (folderListErr, dt) => (data.foldersList = dt.value));\r\n\t\tstore?.addListener({ field: \"appDefinitions\" }, (appDefinitionsErr, dt) => (data.apps = dt.value));\r\n\t\tstore?.addListener({ field: \"activeFolder\" }, (activeFolderErr, dt) => {\r\n\t\t\tdata.activeFolder = dt.value;\r\n\t\t});\r\n\t\tstore?.addListener({ field: \"isFormVisible\" }, (visibilityErr, dt) => (data.isFormVisible = dt.value));\r\n\t\tstore?.addListener({ field: \"sortBy\" }, (sortErr, dt) => (data.sortBy = dt.value));\r\n\t\tstore?.addListener({ field: \"activeLauncherTags\" }, (launcherTagsErr, dt) => (data.tags = dt.value));\r\n\t\tstore?.addListener({ field: \"filterText\" }, (filterTextErr, dt) => (data.filterText = dt.value));\r\n\r\n\t\tFSBL.Clients.RouterClient.subscribe(\"Launcher.update\", (err, response) => {\r\n\t\t\tFSBL.Clients.Logger.debug(\"list updated\", err, response);\r\n\t\t\tif (err) {\r\n\t\t\t\treturn console.error(err);\r\n\t\t\t}\r\n\t\t\trefreshAppDefinitions(response.data.componentList);\r\n\t\t});\r\n\r\n\t\tFSBL.Clients.RouterClient.subscribe(\"Finsemble.Service.State.launcherService\", (unsubscribeErr) => {\r\n\t\t\tif (unsubscribeErr) {\r\n\t\t\t\tFSBL.Clients.Logger.error(\r\n\t\t\t\t\t\"App Launcher encountered an error unsubscribing from the launcher service\",\r\n\t\t\t\t\tunsubscribeErr\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tloadInstalledComponentsFromStore(() => {\r\n\t\t\t\t// We load our stored components(config driven) here\r\n\t\t\t\tloadInstalledConfigComponents(() => {\r\n\t\t\t\t\tupdateAppsInFolders(callback);\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t});\r\n\t});\r\n}\r\n\r\n// This gets a specific app in FDC3 and returns the results\r\nfunction getApp(appID: string, cb = Function.prototype) {\r\n\tappd\r\n\t\t.get(appID)\r\n\t\t.then((app: any) => cb(null, app))\r\n\t\t.catch((err: StandardError) => cb(err));\r\n}\r\n/**\r\n * Ensures all 'apps' properties on folders conform\r\n * to the new structure (Array vs object)\r\n */\r\nfunction validateFolderDataStructure() {\r\n\tObject.keys(data.folders).forEach((folderName) => {\r\n\t\tconst folder = data.folders[folderName];\r\n\t\tif (!Array.isArray(folder.apps)) {\r\n\t\t\tconst warning =\r\n\t\t\t\t\"Application Launcher Persistent Store has data stored in deprecated format. Please check distributedStore configs\";\r\n\t\t\t// If the structure is wrong, notify the user in hopes that the foundation will be fixed\r\n\t\t\tFSBL.Clients.Logger.warn(warning);\r\n\t\t\tFSBL.UserNotification.alert(\"system\", \"ONCE-SINCE-STARTUP\", \"Distributed Store Type Mismatch\", warning);\r\n\t\t\tlet newApps: FolderAppType[] = [];\r\n\t\t\tObject.values(folder.apps).forEach((app: any) => {\r\n\t\t\t\tnewApps.push(app);\r\n\t\t\t});\r\n\t\t\tfolder.apps = newApps;\r\n\t\t}\r\n\t});\r\n\t_setFolders();\r\n}\r\n\r\n// Update apps in folders with updated config information\r\nfunction updateAppsInFolders(cb = Function.prototype) {\r\n\t// Loop through folders and update apps with new info\r\n\tconst { ADVANCED_APP_LAUNCHER: advancedAppLauncherFolderName } = getConstants();\r\n\tObject.keys(data.folders).forEach((folderName) => {\r\n\t\tif (folderName === advancedAppLauncherFolderName) return;\r\n\t\telse {\r\n\t\t\tconst folder = data.folders[folderName];\r\n\t\t\tObject.values(data.configComponents).forEach((configComp) => {\r\n\t\t\t\tlet index = -1;\r\n\t\t\t\tfolder.apps.forEach((folderApp, i) => {\r\n\t\t\t\t\tif (folderApp.appID.toString().trim() === configComp.appID.toString().trim()) {\r\n\t\t\t\t\t\tindex = i;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (index > -1) {\r\n\t\t\t\t\tdata.folders[folderName].apps.splice(index, 1, configComp);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t});\r\n\t_setFolders(cb);\r\n}\r\n\r\n/**\r\n * Given a component config, will return tags, or an empty array.\r\n *\r\n * @param {*} componentConfig\r\n * @returns\r\n */\r\nfunction extractTagsFromFinsembleComponentConfig(componentConfig: ComponentDescriptor) {\r\n\tif (!componentConfig.foreign) return [];\r\n\tif (!componentConfig.foreign.components) return [];\r\n\tif (!componentConfig.foreign.components[\"App Launcher\"]) return [];\r\n\r\n\tconst { tags } = componentConfig.foreign.components[\"App Launcher\"];\r\n\r\n\tif (tags) {\r\n\t\tif (typeof tags === \"string\") {\r\n\t\t\treturn [tags];\r\n\t\t}\r\n\t\treturn tags;\r\n\t}\r\n\r\n\treturn [];\r\n}\r\n/**\r\n * Instantiates classes needed to interact with the appD server.\r\n * Only done when needed. If there are no components with source 'FDC3', this code will not execute.\r\n */\r\nfunction lazyLoadAppD() {\r\n\tif (!FDC3Client) FDC3Client = new FDC3({ url: appDEndpoint });\r\n\tif (!appd) appd = new AppDirectory(FDC3Client) as FDC3;\r\n}\r\n\r\n/**\r\n * Here we load apps from FDC3\r\n * @param {*} cb\r\n */\r\nfunction loadInstalledComponentsFromStore(cb = Function.prototype) {\r\n\tasync.map(\r\n\t\tObject.values(data.apps),\r\n\t\t(component: any, componentDone: any) => {\r\n\t\t\t// Load FDC3 components here\r\n\t\t\tif (component.source && component.source === \"FDC3\") {\r\n\t\t\t\tlazyLoadAppD();\r\n\t\t\t\t// get the app info so we can load it into the launcher\r\n\t\t\t\treturn getApp(component.appID, (err: StandardError) => {\r\n\t\t\t\t\tif (err) {\r\n\t\t\t\t\t\t// don't want to kill this;\r\n\t\t\t\t\t\tdeleteApp(component.appID);\r\n\t\t\t\t\t\tconsole.error(\"there was an error loading from FDC3\", component, err);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn componentDone();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t// Assumption - component is always a user defined component\r\n\t\t\t// when testing I was never able to get any other component types in this method\r\n\t\t\tFSBL.Clients.LauncherClient.addUserDefinedComponent(component, (compAddErr) => {\r\n\t\t\t\tif (compAddErr) {\r\n\t\t\t\t\tconsole.warn(\"Failed to add new app:\", compAddErr);\r\n\t\t\t\t}\r\n\t\t\t\tcomponentDone(compAddErr);\r\n\t\t\t});\r\n\t\t},\r\n\t\t(err: StandardError) => {\r\n\t\t\tcb(err);\r\n\t\t}\r\n\t);\r\n}\r\n\r\n// We load our apps that were loaded from the config.\r\nfunction loadInstalledConfigComponents(cb = Function.prototype) {\r\n\t// Get the list of components from the launcher service\r\n\tFSBL.Clients.LauncherClient.getComponentList((err, componentList) => {\r\n\t\t/*\r\n\t\t * Update the folders under the \"App\" menu and delete any apps in the folder\r\n\t\t * that are no longer in the config and are not user defined components.\r\n\t\t */\r\n\t\trefreshAppDefinitions(componentList || {});\r\n\t\tcb();\r\n\t});\r\n}\r\n\r\nfunction getApps() {\r\n\treturn data.apps;\r\n}\r\n\r\nfunction refreshAppDefinitions(componentList: ComponentList) {\r\n\tconst componentTypeList = Object.keys(componentList);\r\n\r\n\tconst { folders } = data;\r\n\t// Get the user defined apps\r\n\tconst apps = Object.keys(data.apps);\r\n\tObject.keys(folders).forEach((folderName) => {\r\n\t\tfolders[folderName].apps.forEach((configDefinedApp, i) => {\r\n\t\t\tconst { name, appID } = configDefinedApp;\r\n\t\t\t// If the component is not in the config component list and is not a user defined component\r\n\t\t\tif (!componentTypeList.includes(name) && !apps.includes(appID)) {\r\n\t\t\t\t// Delete app from the folder\r\n\t\t\t\tfolders[folderName].apps.splice(i, 1);\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n\r\n\tcomponentTypeList.forEach((componentType) => {\r\n\t\tconst component = componentList?.[componentType];\r\n\t\tif (component && component.component) {\r\n\t\t\tconst launchableByUser = component?.foreign?.components?.[\"App Launcher\"]?.launchableByUser;\r\n\r\n\t\t\tconst displayName = component.component.displayName ?? componentType;\r\n\t\t\tconst iconObject = iconFromConfig(component?.foreign?.components?.Toolbar, displayName);\r\n\t\t\t// Make sure the app is launchable by user\r\n\t\t\tif (launchableByUser && !component.component.isUserDefined) {\r\n\t\t\t\tdata.configComponents[componentType] = {\r\n\t\t\t\t\tappID: componentType,\r\n\t\t\t\t\ticon: iconObject,\r\n\t\t\t\t\tname: componentType,\r\n\t\t\t\t\tdisplayName,\r\n\t\t\t\t\tsource: \"config\",\r\n\t\t\t\t\ttags: extractTagsFromFinsembleComponentConfig(component),\r\n\t\t\t\t};\r\n\t\t\t} else if (!launchableByUser && data.configComponents[componentType]) {\r\n\t\t\t\tdelete data.configComponents[componentType];\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n}\r\n\r\nfunction _setValue(field: string, value: any, cb: any) {\r\n\tgetStore()?.setValue(\r\n\t\t{\r\n\t\t\tfield: field,\r\n\t\t\tvalue: value,\r\n\t\t},\r\n\t\t(error) => {\r\n\t\t\tif (error) {\r\n\t\t\t\tFSBL.Clients.Logger.error(`Advanced App Launcher: Failed to save: ${field}:${value}`);\r\n\t\t\t} else {\r\n\t\t\t\tcb && cb();\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n}\r\n\r\nfunction _setFolders(cb = Function.prototype) {\r\n\t_setValue(\"appFolders.folders\", data.folders, (err: StandardError) => {\r\n\t\tif (err) {\r\n\t\t\tFSBL.Clients.Logger.error(`Advanced App Launcher: Failed to set folders: ${err}`);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tcb();\r\n\t});\r\n}\r\n\r\nfunction _findAppIndexInFolders(appID: string, folderName: string) {\r\n\treturn findIndex(data.folders[folderName].apps, (app) => app.appID === appID);\r\n}\r\n\r\nfunction getFolders() {\r\n\treturn data.folders;\r\n}\r\n\r\nfunction getFoldersList() {\r\n\treturn data.foldersList;\r\n}\r\n\r\nfunction getAllApps() {\r\n\treturn Object.assign({}, data.apps, data.configComponents);\r\n}\r\n\r\nfunction getFormStatus() {\r\n\treturn data.isFormVisible;\r\n}\r\n\r\nfunction getSingleFolder(folderName: string) {\r\n\treturn data.folders[folderName];\r\n}\r\n\r\nfunction reorderFolders(destIndex: number, srcIndex: number) {\r\n\t// There are two types of folders: Those that can be arranged, and those that cannot. We don't want to reorder the folders relative to the unorderable folders. Split them out, and then combine them after doing the filtering/swapping.\r\n\tconst dragDisabled = getDragDisabled();\r\n\tconst unorderableFolders = data.foldersList.filter((folderName) => dragDisabled.includes(folderName));\r\n\tconst orderableFolders = data.foldersList.filter((folderName) => !dragDisabled.includes(folderName));\r\n\tconst movedFolder = orderableFolders[destIndex];\r\n\tconst remainingItems = orderableFolders.filter((item, index) => index !== destIndex);\r\n\tdata.foldersList = [\r\n\t\t...unorderableFolders,\r\n\t\t...remainingItems.slice(0, srcIndex),\r\n\t\tmovedFolder,\r\n\t\t...remainingItems.slice(srcIndex),\r\n\t];\r\n\t_setValue(\"appFolders.list\", data.foldersList, () => {});\r\n\treturn data.foldersList;\r\n}\r\n\r\nfunction addApp(app = <AppsType>{}, cb: any) {\r\n\tconst appID = `${new Date().getTime()}`;\r\n\tconst folder = data.activeFolder;\r\n\tconst newAppData = {\r\n\t\tappID,\r\n\t\ttags: app.tags,\r\n\t\tname: app.name,\r\n\t\turl: app.url,\r\n\t\ttype: \"component\",\r\n\t\tcanDelete: true,\r\n\t};\r\n\r\n\t/**\r\n\t * Note, the advanced app launcher can currently only keep track of apps that\r\n\t * are added by itself. Apps added by the basic launcher, or any other means,\r\n\t * will not be detected. A reconciliation process would need to be added that\r\n\t * listens on the distributed store similar to how the basic app launcher works.\r\n\t *\r\n\t * FSBL.Clients.RouterClient.subscribe(\"Launcher.update\", (err, response) => {\r\n\t\t\tFSBL.Clients.Logger.debug(\"list updated\", err, response);\r\n\t\t\tif (err) {\r\n\t\t\t\treturn console.error(err);\r\n\t\t\t}\r\n\t\t\tself.filterComponents(response.data.componentList);\r\n\t\t});\r\n\t */\r\n\tFSBL.Clients.LauncherClient.addUserDefinedComponent(newAppData, (compAddErr) => {\r\n\t\tif (compAddErr) {\r\n\t\t\tcb({ code: \"failed_to_add_app\", message: compAddErr });\r\n\t\t\tconsole.warn(\"Failed to add new app:\", compAddErr);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tdata.apps[appID] = newAppData;\r\n\r\n\t\t// Add to ADVANCED_APP_LAUNCHER folder\r\n\t\tdata.folders[ADVANCED_APP_LAUNCHER].apps.push(newAppData);\r\n\r\n\t\t// Check if we need to add to another folder as well\r\n\t\tif (folder !== ADVANCED_APP_LAUNCHER) {\r\n\t\t\tdata.folders[folder].apps.push(newAppData);\r\n\t\t}\r\n\t\t// Save appDefinitions and then folders\r\n\t\t_setValue(\"appDefinitions\", data.apps, () => {\r\n\t\t\t_setFolders();\r\n\t\t\tcb && cb();\r\n\t\t});\r\n\t});\r\n}\r\n\r\nfunction deleteApp(appID: string) {\r\n\t// Delete app from any folder that has it\r\n\tfor (const key in data.folders) {\r\n\t\tconst appIndex = _findAppIndexInFolders(appID, key);\r\n\t\tdata.folders[key].apps.splice(appIndex, 1);\r\n\t}\r\n\r\n\t// Delete app from the apps list\r\n\tFSBL.Clients.LauncherClient.removeUserDefinedComponent(data.apps[appID], () => {\r\n\t\tdelete data.apps[appID];\r\n\t\t// Save appDefinitions and then folders\r\n\t\t_setValue(\"appDefinitions\", data.apps, () => {\r\n\t\t\t_setFolders();\r\n\t\t});\r\n\t});\r\n}\r\n\r\nfunction addNewFolder(name?: string) {\r\n\t// Each new folder is given a number, lets store them here\r\n\t// to get the highest one and then increment\r\n\t// result of this will be [0, 1, 2] etc\r\n\tconst newFoldersNums = [\r\n\t\t0,\r\n\t\t// Find folders that have a name of \"New folder\" or \"New folder #\"\r\n\t\t...data.foldersList\r\n\t\t\t.filter((folder) => folder.startsWith(NEW_FOLDER_NAME))\r\n\t\t\t.map((folder) => {\r\n\t\t\t\tconst numbers: any[] = folder.match(/\\d+/g) || [];\r\n\t\t\t\treturn Math.max(...numbers);\r\n\t\t\t}),\r\n\t];\r\n\tconst highestFolderNumber = Math.max(...newFoldersNums);\r\n\tconst folderName: string = name ?? `${NEW_FOLDER_NAME} ${highestFolderNumber + 1}`;\r\n\tconst newFolder = {\r\n\t\tdisableUserRemove: true,\r\n\t\ticon: \"ff-adp-hamburger\",\r\n\t\tcanEdit: true,\r\n\t\tcanDelete: true,\r\n\t\tapps: [],\r\n\t};\r\n\tdata.folders[folderName] = newFolder;\r\n\t_setFolders(() => {\r\n\t\t// Update folders order if adding was successful\r\n\t\tdata.foldersList.push(folderName);\r\n\t\t_setValue(\"appFolders.list\", data.foldersList, () => {});\r\n\t});\r\n}\r\n\r\nfunction deleteFolder(folderName: string) {\r\n\t// Check if user is trying to delete the active folder\r\n\tif (folderName === data.activeFolder) {\r\n\t\tdata.activeFolder = ADVANCED_APP_LAUNCHER;\r\n\t\t_setValue(\"activeFolder\", data.activeFolder, () => {});\r\n\t}\r\n\r\n\tdelete data.folders[folderName] &&\r\n\t\t_setFolders(() => {\r\n\t\t\t// Update the order of folders\r\n\t\t\tconst index = data.foldersList.indexOf(folderName);\r\n\t\t\tdata.foldersList.splice(index, 1);\r\n\t\t\t_setValue(\"appFolders.list\", data.foldersList, () => {});\r\n\t\t});\r\n}\r\n\r\nfunction renameFolder(oldName: string, newName: string) {\r\n\tlet indexOfOld = data.foldersList.findIndex((folderName) => folderName === oldName);\r\n\r\n\tif (indexOfOld > -1) {\r\n\t\tlet oldFolder = data.folders[oldName];\r\n\t\tdata.folders[newName] = oldFolder;\r\n\t\tdata.foldersList.splice(indexOfOld, 1, newName);\r\n\r\n\t\t_setFolders(() => {\r\n\t\t\t_setValue(\"appFolders.list\", data.foldersList, () => {});\r\n\r\n\t\t\tif (data.activeFolder === oldName) {\r\n\t\t\t\t_setValue(\"activeFolder\", newName, () => {});\r\n\t\t\t}\r\n\r\n\t\t\tdelete data.folders[oldName];\r\n\t\t});\r\n\t}\r\n}\r\n\r\nfunction addAppToFolder(folderName: string, app: FolderAppType) {\r\n\tconst appIndex = _findAppIndexInFolders(app.appID, folderName);\r\n\r\n\tif (appIndex < 0) {\r\n\t\tdata.folders[folderName].apps.push({\r\n\t\t\tname: app.name,\r\n\t\t\tdisplayName: app.displayName,\r\n\t\t\tappID: app.appID,\r\n\t\t});\r\n\t\t_setFolders();\r\n\t}\r\n}\r\n\r\nfunction removeAppFromFolder(folderName: string, app: FolderAppType) {\r\n\tconst appIndex = _findAppIndexInFolders(app.appID, folderName);\r\n\tdata.folders[folderName].apps.splice(appIndex, 1);\r\n\t_setFolders();\r\n}\r\n\r\nfunction getAllAppsFromFolder(folderName: string) {\r\n\treturn data.folders[folderName].apps;\r\n}\r\n\r\n/**\r\n * Given a field, search through FDC3 apps and apps pulled in via config and return that app.\r\n * */\r\nfunction findAppByField(field: keyof AppsType | keyof ConfigType, value: any) {\r\n\treturn (\r\n\t\tObject.values(data.apps).find((app) => (app ? (app as any)[field] === value : false)) ||\r\n\t\tObject.values(data.configComponents).find((app) => (app ? (app as any)[field] === value : false))\r\n\t);\r\n}\r\n\r\nfunction getActiveFolder() {\r\n\tconst folder = data.folders[data.activeFolder];\r\n\r\n\tif (!folder) {\r\n\t\tFSBL.Clients.Logger.error(`activeFolder:\"${data.activeFolder}\" not found! Defaulting to empty folder`);\r\n\t\treturn {\r\n\t\t\tname: data.activeFolder,\r\n\t\t\tapps: [],\r\n\t\t};\r\n\t}\r\n\r\n\tObject.values(folder.apps).forEach((app) => {\r\n\t\tconst appData = findAppByField(\"appID\", app.appID);\r\n\t\tif (!appData) {\r\n\t\t\tapp.tags = [];\r\n\t\t} else {\r\n\t\t\tapp.tags = appData.tags;\r\n\t\t}\r\n\t});\r\n\t// Need a name for the AppDefinition/AppActionsMenu rendering\r\n\tfolder.name = data.activeFolder;\r\n\treturn folder;\r\n}\r\n\r\nfunction getActiveFolderName() {\r\n\treturn data.activeFolder;\r\n}\r\n\r\nfunction getSearchText() {\r\n\treturn data.filterText;\r\n}\r\n\r\nfunction getSortBy() {\r\n\treturn data.sortBy;\r\n}\r\n\r\nfunction getTags() {\r\n\treturn data.tags;\r\n}\r\n\r\nfunction getAllAppsTags() {\r\n\tlet tags: any[] = [];\r\n\t// Pull tags from applications installed via FDC3 and the component config.\r\n\tconst apps = Object.values(data.apps).concat(Object.values(data.configComponents) as any);\r\n\r\n\tapps.forEach((app) => {\r\n\t\ttags = tags.concat(app.tags);\r\n\t});\r\n\t// return unique ones only\r\n\treturn tags.filter((tag, index) => tags.indexOf(tag) === index);\r\n}\r\n\r\nfunction addTag(tag: string) {\r\n\t// Push new tag to list\r\n\tdata.tags.indexOf(tag) < 0 && data.tags.push(tag);\r\n\t// Update tags in store\r\n\t_setValue(\"activeLauncherTags\", data.tags, () => {});\r\n}\r\n\r\nfunction deleteTag(tag: string) {\r\n\t// Push new tag to list\r\n\tdata.tags.splice(data.tags.indexOf(tag), 1);\r\n\t// Update tags in store\r\n\t_setValue(\"activeLauncherTags\", data.tags, () => {});\r\n}\r\n"]}
@@ -1,7 +1,8 @@
1
- export function findAppIndexInFolder(appID: any, folderName: any): number;
2
- export function isAppInFavorites(appID: any): boolean;
3
- declare namespace _default {
4
- function Alphabetical(list: any): any;
5
- function Favorites(list: any): any;
6
- }
1
+ import { FolderAppType } from "../../../../types/advancedAppLauncherTypes";
2
+ export declare const findAppIndexInFolder: (appID: FolderAppType["appID"], folderName: string) => number;
3
+ export declare const isAppInFavorites: (appID: FolderAppType["appID"]) => boolean;
4
+ declare const _default: {
5
+ Alphabetical: (list: FolderAppType[]) => FolderAppType[];
6
+ Favorites: (list: FolderAppType[]) => FolderAppType[];
7
+ };
7
8
  export default _default;
@@ -12,18 +12,16 @@ export const isAppInFavorites = (appID) => {
12
12
  };
13
13
  export default {
14
14
  Alphabetical: (list) => list.sort((a, b) => a.name.localeCompare(b.name)),
15
- Favorites: (list) => {
16
- return list.sort((a, b) => {
17
- const aInFavorites = isAppInFavorites(a.appID);
18
- const bInFavorites = isAppInFavorites(b.appID);
19
- if (aInFavorites && !bInFavorites) {
20
- return -1;
21
- }
22
- else if (!aInFavorites && bInFavorites) {
23
- return 1;
24
- }
25
- return a.name.localeCompare(b.name);
26
- });
27
- },
15
+ Favorites: (list) => list.sort((a, b) => {
16
+ const aInFavorites = isAppInFavorites(a.appID);
17
+ const bInFavorites = isAppInFavorites(b.appID);
18
+ if (aInFavorites && !bInFavorites) {
19
+ return -1;
20
+ }
21
+ else if (!aInFavorites && bInFavorites) {
22
+ return 1;
23
+ }
24
+ return a.name.localeCompare(b.name);
25
+ }),
28
26
  };
29
27
  //# sourceMappingURL=sort-functions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sort-functions.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/utils/sort-functions.js"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;IACzD,MAAM,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IACxD,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;AAC7D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,EAAE;IACzC,MAAM,KAAK,GAAG,oBAAoB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAEvD,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5B,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AAEF,eAAe;IAId,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IASzE,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACzB,MAAM,YAAY,GAAG,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC/C,MAAM,YAAY,GAAG,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAE/C,IAAI,YAAY,IAAI,CAAC,YAAY,EAAE;gBAClC,OAAO,CAAC,CAAC,CAAC;aACV;iBAAM,IAAI,CAAC,YAAY,IAAI,YAAY,EAAE;gBACzC,OAAO,CAAC,CAAC;aACT;YACD,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACJ,CAAC;CACD,CAAC","sourcesContent":["import storeActions from \"../stores/StoreActions\";\r\nimport { findIndex } from \"lodash\";\r\n\r\nexport const findAppIndexInFolder = (appID, folderName) => {\r\n\tconst folder = storeActions.getSingleFolder(folderName);\r\n\treturn findIndex(folder.apps, (app) => app.appID === appID);\r\n};\r\n\r\nexport const isAppInFavorites = (appID) => {\r\n\tconst index = findAppIndexInFolder(appID, \"Favorites\");\r\n\r\n\tif (index < 0) return false;\r\n\treturn true;\r\n};\r\n\r\nexport default {\r\n\t/**\r\n\t * Sorts list by name alphabetically\r\n\t */\r\n\tAlphabetical: (list) => list.sort((a, b) => a.name.localeCompare(b.name)),\r\n\r\n\t/**\r\n\t * Sorts a list of application by Favorites.\r\n\t * It gets a list of apps from Favorites folder\r\n\t * then in the sort function, it checks where a, b apps\r\n\t * are in favorite folder or not, giving a lower index\r\n\t * for apps that are in Favorite folder\r\n\t */\r\n\tFavorites: (list) => {\r\n\t\treturn list.sort((a, b) => {\r\n\t\t\tconst aInFavorites = isAppInFavorites(a.appID);\r\n\t\t\tconst bInFavorites = isAppInFavorites(b.appID);\r\n\t\t\t// a component being in favorites means it is \"less than\" another component not in favorites, so return -1\r\n\t\t\tif (aInFavorites && !bInFavorites) {\r\n\t\t\t\treturn -1;\r\n\t\t\t} else if (!aInFavorites && bInFavorites) {\r\n\t\t\t\treturn 1;\r\n\t\t\t}\r\n\t\t\treturn a.name.localeCompare(b.name);\r\n\t\t});\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"sort-functions.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/utils/sort-functions.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGnC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAA6B,EAAE,UAAkB,EAAE,EAAE;IACzF,MAAM,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IACxD,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAkB,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;AAC5E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAA6B,EAAE,EAAE;IACjE,MAAM,KAAK,GAAG,oBAAoB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAEvD,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5B,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AAEF,eAAe;IAId,YAAY,EAAE,CAAC,IAAqB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAS1F,SAAS,EAAE,CAAC,IAAqB,EAAE,EAAE,CACpC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAClB,MAAM,YAAY,GAAG,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,YAAY,GAAG,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAE/C,IAAI,YAAY,IAAI,CAAC,YAAY,EAAE;YAClC,OAAO,CAAC,CAAC,CAAC;SACV;aAAM,IAAI,CAAC,YAAY,IAAI,YAAY,EAAE;YACzC,OAAO,CAAC,CAAC;SACT;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC,CAAC;CACH,CAAC","sourcesContent":["import storeActions from \"../stores/StoreActions\";\r\nimport { findIndex } from \"lodash\";\r\nimport { FolderAppType } from \"../../../../types/advancedAppLauncherTypes\";\r\n\r\nexport const findAppIndexInFolder = (appID: FolderAppType[\"appID\"], folderName: string) => {\r\n\tconst folder = storeActions.getSingleFolder(folderName);\r\n\treturn findIndex(folder.apps, (app: FolderAppType) => app.appID === appID);\r\n};\r\n\r\nexport const isAppInFavorites = (appID: FolderAppType[\"appID\"]) => {\r\n\tconst index = findAppIndexInFolder(appID, \"Favorites\");\r\n\r\n\tif (index < 0) return false;\r\n\treturn true;\r\n};\r\n\r\nexport default {\r\n\t/**\r\n\t * Sorts list by name alphabetically\r\n\t */\r\n\tAlphabetical: (list: FolderAppType[]) => list.sort((a, b) => a.name.localeCompare(b.name)),\r\n\r\n\t/**\r\n\t * Sorts a list of application by Favorites.\r\n\t * It gets a list of apps from Favorites folder\r\n\t * then in the sort function, it checks where a, b apps\r\n\t * are in favorite folder or not, giving a lower index\r\n\t * for apps that are in Favorite folder\r\n\t */\r\n\tFavorites: (list: FolderAppType[]) =>\r\n\t\tlist.sort((a, b) => {\r\n\t\t\tconst aInFavorites = isAppInFavorites(a.appID);\r\n\t\t\tconst bInFavorites = isAppInFavorites(b.appID);\r\n\t\t\t// a component being in favorites means it is \"less than\" another component not in favorites, so return -1\r\n\t\t\tif (aInFavorites && !bInFavorites) {\r\n\t\t\t\treturn -1;\r\n\t\t\t} else if (!aInFavorites && bInFavorites) {\r\n\t\t\t\treturn 1;\r\n\t\t\t}\r\n\t\t\treturn a.name.localeCompare(b.name);\r\n\t\t}),\r\n};\r\n"]}
@@ -1,10 +1,10 @@
1
1
  /// <reference types="react" />
2
- declare type AppLauncherMenu = {
2
+ import { MenuProps } from "../../menu/Menu";
3
+ declare type AppLauncherMenuType = MenuProps & {
3
4
  enableQuickComponents?: boolean;
4
- title?: string;
5
5
  componentFilter?: string[];
6
6
  suppressFavorites?: boolean;
7
7
  dynamic?: boolean;
8
8
  };
9
- export declare const AppLauncherMenu: (props: AppLauncherMenu) => JSX.Element;
9
+ export declare const AppLauncherMenu: (props: AppLauncherMenuType) => JSX.Element;
10
10
  export {};
@@ -6,7 +6,7 @@ export const AppLauncherMenu = (props) => {
6
6
  return React.createElement(DynamicAppLauncher, null);
7
7
  }
8
8
  else {
9
- return React.createElement(StaticAppLauncherMenu, { ...props });
9
+ return React.createElement(StaticAppLauncherMenu, Object.assign({}, props));
10
10
  }
11
11
  };
12
12
  //# sourceMappingURL=AppLauncherMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AppLauncherMenu.js","sourceRoot":"","sources":["../../../../src/components/toolbar/appLauncher/AppLauncherMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAoB1D,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAsB,EAAE,EAAE;IACzD,IAAI,KAAK,CAAC,OAAO,EAAE;QAClB,OAAO,oBAAC,kBAAkB,OAAG,CAAC;KAC9B;SAAM;QACN,OAAO,oBAAC,qBAAqB,OAAK,KAAK,GAAI,CAAC;KAC5C;AACF,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\r\nimport { StaticAppLauncherMenu } from \"./StaticAppLauncherMenu\";\r\nimport { DynamicAppLauncher } from \"./DynamicAppLauncher\";\r\n\r\ntype AppLauncherMenu = {\r\n\tenableQuickComponents?: boolean; // DEPRECATED: Quick Components will be removed in a future version\r\n\ttitle?: string;\r\n\tcomponentFilter?: string[];\r\n\tsuppressFavorites?: boolean;\r\n\tdynamic?: boolean;\r\n};\r\n\r\n/**\r\n * The menu, or collection of menus, that lists all configured Finsemble applications, and provides\r\n * the ability to launch any listed app.\r\n *\r\n * @param {boolean} [enableQuickComponents=false] DEPRECATED: Set to true to allow users to create their own components\r\n * @param {string} [title] The title of the menu, as viewed in the toolbar\r\n * @param {string[]} [componentFilter] Custom list of menu items to display\r\n * @param {boolean} [suppressFavorites=false]\r\n * @param {boolean} [dynamic=false] If dynamic=true, get list of menus from manifest, as well as listening for updates to list\r\n */\r\nexport const AppLauncherMenu = (props: AppLauncherMenu) => {\r\n\tif (props.dynamic) {\r\n\t\treturn <DynamicAppLauncher />;\r\n\t} else {\r\n\t\treturn <StaticAppLauncherMenu {...props} />;\r\n\t}\r\n};\r\n"]}
1
+ {"version":3,"file":"AppLauncherMenu.js","sourceRoot":"","sources":["../../../../src/components/toolbar/appLauncher/AppLauncherMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AA2B1D,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAA0B,EAAE,EAAE;IAC7D,IAAI,KAAK,CAAC,OAAO,EAAE;QAClB,OAAO,oBAAC,kBAAkB,OAAG,CAAC;KAC9B;SAAM;QACN,OAAO,oBAAC,qBAAqB,oBAAK,KAAK,EAAI,CAAC;KAC5C;AACF,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\r\nimport { StaticAppLauncherMenu } from \"./StaticAppLauncherMenu\";\r\nimport { DynamicAppLauncher } from \"./DynamicAppLauncher\";\r\nimport { MenuProps } from \"../../menu/Menu\";\r\n\r\ntype AppLauncherMenuType = MenuProps & {\r\n\tenableQuickComponents?: boolean; // DEPRECATED: Quick Components will be removed in a future version\r\n\tcomponentFilter?: string[];\r\n\tsuppressFavorites?: boolean;\r\n\tdynamic?: boolean;\r\n};\r\n\r\n/**\r\n * The menu, or collection of menus, that lists all configured Finsemble applications, and provides\r\n * the ability to launch any listed app.\r\n *\r\n * @param {boolean} [enableQuickComponents=false] DEPRECATED: Set to true to allow users to create their own components\r\n * @param {string} [title] The title of the menu that appears in the menu's <MenuToggle> button, as viewed in the toolbar. Can be string or any ReactNode.\r\n * @param {string[]} [componentFilter] Custom list of menu items to display\r\n * @param {boolean} [suppressFavorites=false]\r\n * @param {boolean} [dynamic=false] If dynamic=true, get list of menus from manifest, as well as listening for updates to list\r\n * @param {string} [className] - Custom body class for the menu contents. These classes will be set on the <body> tag for the Menu's drop down window.\r\n * @param {string} [id] - Unique ID for the menu. Defaults to a random string.\r\n * @param {number} [maxHeight=Infinity] - Maximum height of the menu.\r\n * @param {array} [openHotkey] - A hotkey combination to open the menu.\r\n * @param {array} [closeHotkey=[\"escape\"] ] - A hotkey combination to close the menu. Defaults to [\"escape\"].\r\n * @param {number} [width=180] - Custom width for the menu.\r\n * @param {number} [height] - Custom height for the menu. If not set then the height will be automatically calculated based on the content height and available monitor space.\r\n */\r\nexport const AppLauncherMenu = (props: AppLauncherMenuType) => {\r\n\tif (props.dynamic) {\r\n\t\treturn <DynamicAppLauncher />;\r\n\t} else {\r\n\t\treturn <StaticAppLauncherMenu {...props} />;\r\n\t}\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicAppLauncher.js","sourceRoot":"","sources":["../../../../src/components/toolbar/appLauncher/DynamicAppLauncher.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACtC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAW,EAAE,CAAC,CAAC;IAEjD,MAAM,UAAU,GAAG,GAAG,EAAE;QACvB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAA2B,EAAE,EAAE;YACvG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACd,UAAU,EAAE,CAAC;QAGb,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,UAAU,CAAC,CAAC;IACxF,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACN,0CACE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;SACnB,MAAM,CAAC,CAAC,OAAoB,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;SACjE,IAAI,CAAC,CAAC,CAAc,EAAE,CAAc,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;SACjE,GAAG,CAAC,CAAC,OAAoB,EAAE,KAAa,EAAE,EAAE,CAAC,CAC7C,oBAAC,qBAAqB,IACrB,GAAG,EAAE,KAAK,EACV,EAAE,EAAE,eAAe,KAAK,EAAE,EAC1B,KAAK,EAAE,OAAO,CAAC,WAAW,EAC1B,eAAe,EAAE,OAAO,CAAC,YAAY,EACrC,iBAAiB,EAAE,IAAI,GACtB,CACF,CAAC,CACD,CACH,CAAC;AACH,CAAC,CAAC","sourcesContent":["/*!\r\n * Copyright 2017 by ChartIQ, Inc.\r\n * All rights reserved.\r\n */\r\n\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { MenuObjType, MenuType } from \"../../../types/smartDesktopDesignerTypes\";\r\nimport { StaticAppLauncherMenu } from \"./StaticAppLauncherMenu\";\r\n\r\nexport const DynamicAppLauncher = () => {\r\n\tconst [menus, setMenus] = useState<MenuType>({});\r\n\r\n\tconst updateMenu = () => {\r\n\t\tFSBL.Clients.ConfigClient.getValue(\"finsemble.toolbarMenus\").then(({ data }: { err: any; data: any }) => {\r\n\t\t\tsetMenus(data);\r\n\t\t});\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tupdateMenu();\r\n\r\n\t\t// Listen for notifications that the menu has changed\r\n\t\tFSBL.Clients.ConfigClient.addListener({ field: \"finsemble.toolbarMenus\" }, updateMenu);\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t{Object.values(menus)\r\n\t\t\t\t.filter((menuObj: MenuObjType) => menuObj.applications.length > 0)\r\n\t\t\t\t.sort((a: MenuObjType, b: MenuObjType) => a.position - b.position)\r\n\t\t\t\t.map((menuObj: MenuObjType, index: number) => (\r\n\t\t\t\t\t<StaticAppLauncherMenu\r\n\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\tid={`AppLauncher-${index}`}\r\n\t\t\t\t\t\ttitle={menuObj.displayName}\r\n\t\t\t\t\t\tcomponentFilter={menuObj.applications}\r\n\t\t\t\t\t\tsuppressFavorites={true}\r\n\t\t\t\t\t/>\r\n\t\t\t\t))}\r\n\t\t</>\r\n\t);\r\n};\r\n"]}
1
+ {"version":3,"file":"DynamicAppLauncher.js","sourceRoot":"","sources":["../../../../src/components/toolbar/appLauncher/DynamicAppLauncher.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACtC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAW,EAAE,CAAC,CAAC;IAEjD,MAAM,UAAU,GAAG,GAAG,EAAE;QACvB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;YAC9E,QAAQ,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACd,UAAU,EAAE,CAAC;QAGb,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,UAAU,CAAC,CAAC;IACxF,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACN,0CACE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;SACnB,MAAM,CAAC,CAAC,OAAoB,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;SACjE,IAAI,CAAC,CAAC,CAAc,EAAE,CAAc,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;SACjE,GAAG,CAAC,CAAC,OAAoB,EAAE,KAAa,EAAE,EAAE,CAAC,CAC7C,oBAAC,qBAAqB,IACrB,GAAG,EAAE,KAAK,EACV,EAAE,EAAE,eAAe,KAAK,EAAE,EAC1B,KAAK,EAAE,OAAO,CAAC,WAAW,EAC1B,eAAe,EAAE,OAAO,CAAC,YAAY,EACrC,iBAAiB,EAAE,IAAI,GACtB,CACF,CAAC,CACD,CACH,CAAC;AACH,CAAC,CAAC","sourcesContent":["/*!\r\n * Copyright 2017 by ChartIQ, Inc.\r\n * All rights reserved.\r\n */\r\n\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { MenuObjType, MenuType } from \"../../../types/smartDesktopDesignerTypes\";\r\nimport { StaticAppLauncherMenu } from \"./StaticAppLauncherMenu\";\r\n\r\nexport const DynamicAppLauncher = () => {\r\n\tconst [menus, setMenus] = useState<MenuType>({});\r\n\r\n\tconst updateMenu = () => {\r\n\t\tFSBL.Clients.ConfigClient.getValue(\"finsemble.toolbarMenus\").then(({ data }) => {\r\n\t\t\tsetMenus(data);\r\n\t\t});\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tupdateMenu();\r\n\r\n\t\t// Listen for notifications that the menu has changed\r\n\t\tFSBL.Clients.ConfigClient.addListener({ field: \"finsemble.toolbarMenus\" }, updateMenu);\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t{Object.values(menus)\r\n\t\t\t\t.filter((menuObj: MenuObjType) => menuObj.applications.length > 0)\r\n\t\t\t\t.sort((a: MenuObjType, b: MenuObjType) => a.position - b.position)\r\n\t\t\t\t.map((menuObj: MenuObjType, index: number) => (\r\n\t\t\t\t\t<StaticAppLauncherMenu\r\n\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\tid={`AppLauncher-${index}`}\r\n\t\t\t\t\t\ttitle={menuObj.displayName}\r\n\t\t\t\t\t\tcomponentFilter={menuObj.applications}\r\n\t\t\t\t\t\tsuppressFavorites={true}\r\n\t\t\t\t\t/>\r\n\t\t\t\t))}\r\n\t\t</>\r\n\t);\r\n};\r\n"]}
@@ -1,6 +1,28 @@
1
- export class StaticAppLauncherMenu extends React.Component<any, any, any> {
2
- constructor(props: any);
1
+ import * as React from "react";
2
+ import "./appLauncher.css";
3
+ interface IProps {
4
+ className?: string;
5
+ closeHotkey?: Array<string>;
6
+ height?: number;
7
+ id?: string;
8
+ maxHeight?: number;
9
+ openHotkey?: Array<string>;
10
+ width?: number;
11
+ title?: React.ReactNode | string | null;
12
+ enableQuickComponents?: boolean;
13
+ componentFilter?: string[];
14
+ suppressFavorites?: boolean;
15
+ dynamic?: boolean;
16
+ }
17
+ interface IState {
18
+ initialized: boolean;
19
+ }
20
+ export declare class StaticAppLauncherMenu extends React.Component<IProps, IState> {
21
+ constructor(props: IProps);
3
22
  onInitialized(): void;
23
+ componentDidMount(): void;
24
+ componentWillUnmount(): void;
4
25
  openQuickComponent(): void;
26
+ render(): JSX.Element;
5
27
  }
6
- import * as React from "react";
28
+ export {};