@finsemble/finsemble-ui 6.1.4 → 6.1.5

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 (504) hide show
  1. package/README.md +28 -28
  2. package/package.json +1 -1
  3. package/react/actions/favoriteActions.js.map +1 -1
  4. package/react/actions/linkerActions.js.map +1 -1
  5. package/react/actions/menuActions.js.map +1 -1
  6. package/react/actions/rootActions.js.map +1 -1
  7. package/react/actions/searchActions.js.map +1 -1
  8. package/react/actions/smartDesktopDesignerActions.js.map +1 -1
  9. package/react/actions/toolbarActions.js.map +1 -1
  10. package/react/actions/workspaceActions.js.map +1 -1
  11. package/react/assets/css/advancedAppLauncher.css +636 -636
  12. package/react/assets/css/appCatalog.css +1069 -1069
  13. package/react/assets/css/authentication.css +78 -78
  14. package/react/assets/css/button.css +219 -219
  15. package/react/assets/css/core/formElements.css +23 -23
  16. package/react/assets/css/core/icons.css +69 -69
  17. package/react/assets/css/core/notifications.css +75 -75
  18. package/react/assets/css/core/windowFrame.css +36 -36
  19. package/react/assets/css/dashbar.css +78 -78
  20. package/react/assets/css/defaultTheme.css +356 -356
  21. package/react/assets/css/dialogs.css +158 -158
  22. package/react/assets/css/favorites.css +101 -101
  23. package/react/assets/css/finsemble.css +38 -38
  24. package/react/assets/css/focus.css +4 -4
  25. package/react/assets/css/font-finance.css +385 -385
  26. package/react/assets/css/fonts/Open_Sans/LICENSE.txt +202 -202
  27. package/react/assets/css/fonts/Open_Sans/OpenSans-Definition.css +118 -118
  28. package/react/assets/css/fonts/font-finance.svg +124 -124
  29. package/react/assets/css/fonts/icons-reference.html +1174 -1174
  30. package/react/assets/css/linkerWindow.css +124 -124
  31. package/react/assets/css/menus.css +195 -195
  32. package/react/assets/css/notificationsCenter.css +594 -594
  33. package/react/assets/css/processMonitor.css +213 -213
  34. package/react/assets/css/search.css +128 -128
  35. package/react/assets/css/shared/animations.css +99 -99
  36. package/react/assets/css/tags.css +136 -136
  37. package/react/assets/css/toolbar.css +413 -413
  38. package/react/assets/css/userPreferences.css +565 -565
  39. package/react/assets/css/windowTitleBar.css +619 -619
  40. package/react/assets/icons/check.svg +3 -3
  41. package/react/assets/icons/chevron-left.svg +3 -3
  42. package/react/assets/icons/chevron-right.svg +3 -3
  43. package/react/assets/icons/copy.svg +10 -10
  44. package/react/assets/icons/exclamation-circle.svg +4 -4
  45. package/react/assets/icons/external-link.svg +12 -12
  46. package/react/assets/icons/flag.svg +10 -10
  47. package/react/assets/icons/folder.svg +3 -3
  48. package/react/assets/icons/font.svg +3 -3
  49. package/react/assets/icons/globe.svg +3 -3
  50. package/react/assets/icons/hdd.svg +9 -9
  51. package/react/assets/icons/key.svg +10 -10
  52. package/react/assets/icons/life-ring.svg +3 -3
  53. package/react/assets/icons/magic.svg +15 -15
  54. package/react/assets/icons/moon.svg +10 -10
  55. package/react/assets/icons/paint-roller.svg +3 -3
  56. package/react/assets/icons/pencil.svg +10 -10
  57. package/react/assets/icons/plus.svg +3 -3
  58. package/react/assets/icons/question-circle.svg +5 -5
  59. package/react/assets/icons/search.svg +3 -3
  60. package/react/assets/icons/sun.svg +9 -9
  61. package/react/assets/icons/times.svg +3 -3
  62. package/react/assets/icons/toggle-off.svg +6 -6
  63. package/react/assets/icons/toggle-on.svg +6 -6
  64. package/react/assets/icons/tools.svg +3 -3
  65. package/react/assets/icons/trash.svg +12 -12
  66. package/react/assets/icons/upload.svg +10 -10
  67. package/react/assets/icons/window.svg +3 -3
  68. package/react/componentTemplateGenerator.js +85 -85
  69. package/react/componentTemplateGenerator.js.map +1 -1
  70. package/react/components/FinsembleProvider.js.map +1 -1
  71. package/react/components/appCatalog/AppCatalog.js.map +1 -1
  72. package/react/components/appCatalog/AppCatalogComponent.js.map +1 -1
  73. package/react/components/appCatalog/components/AppCard.js.map +1 -1
  74. package/react/components/appCatalog/components/AppList.js.map +1 -1
  75. package/react/components/appCatalog/components/AppResults.js.map +1 -1
  76. package/react/components/appCatalog/components/Carousel.js.map +1 -1
  77. package/react/components/appCatalog/components/EmptyResults.js.map +1 -1
  78. package/react/components/appCatalog/components/Hero.js.map +1 -1
  79. package/react/components/appCatalog/components/Home.js.map +1 -1
  80. package/react/components/appCatalog/components/SearchBar.js.map +1 -1
  81. package/react/components/appCatalog/components/Showcase/AppDescription.js.map +1 -1
  82. package/react/components/appCatalog/components/Showcase/AppDevNotes.js.map +1 -1
  83. package/react/components/appCatalog/components/Showcase/AppShowcase.js.map +1 -1
  84. package/react/components/appCatalog/components/Showcase/Header.js.map +1 -1
  85. package/react/components/appCatalog/components/Showcase/ImageCarousel.js.map +1 -1
  86. package/react/components/appCatalog/components/Showcase/Modal.js.map +1 -1
  87. package/react/components/appCatalog/components/Showcase/ReleaseNotes.js.map +1 -1
  88. package/react/components/appCatalog/components/Showcase/SupportNotes.js.map +1 -1
  89. package/react/components/appCatalog/components/Showcase/VersionNotes.js.map +1 -1
  90. package/react/components/appCatalog/components/Showcase/defaults.js.map +1 -1
  91. package/react/components/appCatalog/components/Tag.js.map +1 -1
  92. package/react/components/appCatalog/components/Toast.js.map +1 -1
  93. package/react/components/appCatalog/components/helpers.js.map +1 -1
  94. package/react/components/appCatalog/index.js.map +1 -1
  95. package/react/components/appCatalog/modules/AppDirectory.js.map +1 -1
  96. package/react/components/appCatalog/modules/FDC3.js.map +1 -1
  97. package/react/components/appCatalog/stores/appStore.js.map +1 -1
  98. package/react/components/appCatalog/stores/storeActions.js.map +1 -1
  99. package/react/components/common/Button.js.map +1 -1
  100. package/react/components/common/ButtonIcon.js.map +1 -1
  101. package/react/components/common/ButtonTile.js.map +1 -1
  102. package/react/components/common/ColorPicker.js.map +1 -1
  103. package/react/components/common/DropZone.js.map +1 -1
  104. package/react/components/common/DropdownButton.js.map +1 -1
  105. package/react/components/common/FileInput.js.map +1 -1
  106. package/react/components/common/FinsembleIcon.js.map +1 -1
  107. package/react/components/common/FinsembleSelect.js.map +1 -1
  108. package/react/components/common/FinsembleToggle.js.map +1 -1
  109. package/react/components/common/FontSizeSelector.js.map +1 -1
  110. package/react/components/common/Header.js.map +1 -1
  111. package/react/components/common/ImagePreview.js.map +1 -1
  112. package/react/components/common/LoadingSpinner.js.map +1 -1
  113. package/react/components/common/Tab.js.map +1 -1
  114. package/react/components/common/Tooltip.js.map +1 -1
  115. package/react/components/common/css/application-edit-page.css +117 -117
  116. package/react/components/common/css/application-list.css +47 -47
  117. package/react/components/common/css/button.css +164 -164
  118. package/react/components/common/css/color-picker.css +52 -52
  119. package/react/components/common/css/drop-zone.css +17 -17
  120. package/react/components/common/css/file-input.css +49 -49
  121. package/react/components/common/css/header.css +43 -43
  122. package/react/components/common/css/icon.css +13 -13
  123. package/react/components/common/css/image-preview.css +57 -57
  124. package/react/components/common/css/loading-spinner.css +39 -39
  125. package/react/components/common/css/selector.css +51 -51
  126. package/react/components/common/css/styles.css +128 -128
  127. package/react/components/common/css/tab.css +56 -56
  128. package/react/components/common/css/toggle.css +32 -32
  129. package/react/components/common/css/tooltip.css +68 -68
  130. package/react/components/common/file_helpers.js.map +1 -1
  131. package/react/components/common/fixtures/FinsembleIcon.css +4 -4
  132. package/react/components/common/helpers.js.map +1 -1
  133. package/react/components/common/stories/Button.stories.js.map +1 -1
  134. package/react/components/common/stories/ButtonIcon.stories.js.map +1 -1
  135. package/react/components/common/stories/ButtonTile.stories.js.map +1 -1
  136. package/react/components/common/stories/ColorPicker.stories.js.map +1 -1
  137. package/react/components/common/stories/DropZone.stories.js.map +1 -1
  138. package/react/components/common/stories/FileInput.stories.js.map +1 -1
  139. package/react/components/common/stories/FinsembleIcon.stories.js.map +1 -1
  140. package/react/components/common/stories/FinsembleSelect.stories.js.map +1 -1
  141. package/react/components/common/stories/FinsembleToggle.stories.js.map +1 -1
  142. package/react/components/common/stories/FontSizeSelector.stories.js.map +1 -1
  143. package/react/components/common/stories/Header.stories.js.map +1 -1
  144. package/react/components/common/stories/ImagePreview.stories.js.map +1 -1
  145. package/react/components/common/stories/LoadingSpinner.stories.js.map +1 -1
  146. package/react/components/common/stories/Tab.stories.js.map +1 -1
  147. package/react/components/common/stories/Tooltip.stories.js.map +1 -1
  148. package/react/components/common/tests/ColorPicker.spec.js.map +1 -1
  149. package/react/components/common/tests/DropZone.spec.js.map +1 -1
  150. package/react/components/common/tests/FileInput.spec.js.map +1 -1
  151. package/react/components/common/tests/FinsembleSelect.spec.js.map +1 -1
  152. package/react/components/common/tests/FinsembleToggle.spec.js.map +1 -1
  153. package/react/components/common/tests/Header.spec.js.map +1 -1
  154. package/react/components/common/tests/ImagePreview.spec.js.map +1 -1
  155. package/react/components/common/tests/Tab.spec.js.map +1 -1
  156. package/react/components/common/tests/Tooltip.spec.js.map +1 -1
  157. package/react/components/favorites/FavoriteMaker.js.map +1 -1
  158. package/react/components/favorites/FavoritesShell.js.map +1 -1
  159. package/react/components/favorites/FavoritesShell.spec.js.map +1 -1
  160. package/react/components/favorites/FavoritesShell.stories.js.map +1 -1
  161. package/react/components/favorites/index.js.map +1 -1
  162. package/react/components/fdc3Resolver/ResolverContainer.js.map +1 -1
  163. package/react/components/fdc3Resolver/ResolverDialog.css +125 -125
  164. package/react/components/fdc3Resolver/ResolverDialog.js.map +1 -1
  165. package/react/components/fdc3Resolver/ResolverDialog.spec.js.map +1 -1
  166. package/react/components/fdc3Resolver/ResolverDialog.stories.js.map +1 -1
  167. package/react/components/icon/Icon.js.map +1 -1
  168. package/react/components/icon/index.js.map +1 -1
  169. package/react/components/legacyControls/FinsembleDialog.js.map +1 -1
  170. package/react/components/legacyControls/FinsembleDialogButton.js.map +1 -1
  171. package/react/components/legacyControls/FinsembleDialogQuestion.js.map +1 -1
  172. package/react/components/legacyControls/FinsembleDialogTextInput.js.map +1 -1
  173. package/react/components/legacyControls/FinsembleDnDContext.js.map +1 -1
  174. package/react/components/legacyControls/FinsembleDraggable.js.map +1 -1
  175. package/react/components/legacyControls/FinsembleHoverDetector.js.map +1 -1
  176. package/react/components/legacyControls/FinsembleMenuSection.js.map +1 -1
  177. package/react/components/legacyControls/stories/FinsembleDialog.stories.js.map +1 -1
  178. package/react/components/legacyControls/stories/FinsembleDialogButton.stories.js.map +1 -1
  179. package/react/components/legacyControls/stories/FinsembleDialogQuestion.stories.js.map +1 -1
  180. package/react/components/legacyControls/stories/FinsembleDialogTextInput.stories.js.map +1 -1
  181. package/react/components/legacyControls/tests/FinsembleDialog.spec.js.map +1 -1
  182. package/react/components/legacyControls/tests/FinsembleDialogButton.spec.js.map +1 -1
  183. package/react/components/legacyControls/tests/FinsembleDialogQuestion.spec.js.map +1 -1
  184. package/react/components/legacyControls/tests/FinsembleDialogTextInput.spec.js.map +1 -1
  185. package/react/components/linker/LinkerMenu.js.map +1 -1
  186. package/react/components/linker/LinkerMenuDeprecated.js.map +1 -1
  187. package/react/components/linker/index.js.map +1 -1
  188. package/react/components/linker/remoteRedux.js.map +1 -1
  189. package/react/components/menu/Menu.js.map +1 -1
  190. package/react/components/menu/MenuAutoResizer.js.map +1 -1
  191. package/react/components/menu/MenuContent.js.map +1 -1
  192. package/react/components/menu/MenuHotKey.js.map +1 -1
  193. package/react/components/menu/MenuItem.js.map +1 -1
  194. package/react/components/menu/MenuPortal.js.map +1 -1
  195. package/react/components/menu/MenuShell.js.map +1 -1
  196. package/react/components/menu/MenuToggle.js.map +1 -1
  197. package/react/components/menu/index.js.map +1 -1
  198. package/react/components/menu/keyboardNavigation.js.map +1 -1
  199. package/react/components/menu/menuContext.js.map +1 -1
  200. package/react/components/menu/menuHelpers.js.map +1 -1
  201. package/react/components/notifications/components/NoNotifications.js.map +1 -1
  202. package/react/components/notifications/components/drawer/Drawer.js.map +1 -1
  203. package/react/components/notifications/components/drawer/DrawerControls.js.map +1 -1
  204. package/react/components/notifications/components/drawer/DrawerHeader.js.map +1 -1
  205. package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js.map +1 -1
  206. package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js.map +1 -1
  207. package/react/components/notifications/components/shared/CheckButton.js.map +1 -1
  208. package/react/components/notifications/components/shared/IconButton.js.map +1 -1
  209. package/react/components/notifications/components/shared/NotificationCardShell.js +1 -1
  210. package/react/components/notifications/components/shared/NotificationCardShell.js.map +1 -1
  211. package/react/components/notifications/components/shared/OverflowMenu.js.map +1 -1
  212. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyActions.js.map +1 -1
  213. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyContentLogo.js.map +1 -1
  214. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.js.map +1 -1
  215. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.js.map +1 -1
  216. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderLogo.js.map +1 -1
  217. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderShell.js.map +1 -1
  218. package/react/components/notifications/components/views/CardView.js.map +1 -1
  219. package/react/components/notifications/components/views/ListView.js +1 -1
  220. package/react/components/notifications/components/views/ListView.js.map +1 -1
  221. package/react/components/notifications/components/views/NotificationDetailsView.js.map +1 -1
  222. package/react/components/notifications/constants.js.map +1 -1
  223. package/react/components/notifications/icons/Card.js.map +1 -1
  224. package/react/components/notifications/icons/Chevron.js.map +1 -1
  225. package/react/components/notifications/icons/CloseIcon.js.map +1 -1
  226. package/react/components/notifications/icons/EnvelopeClose.js.map +1 -1
  227. package/react/components/notifications/icons/EnvelopeOpen.js.map +1 -1
  228. package/react/components/notifications/icons/SnoozeIcon.js.map +1 -1
  229. package/react/components/notifications/index.js.map +1 -1
  230. package/react/components/notifications/notificationsContext.js.map +1 -1
  231. package/react/components/notifications/types.js.map +1 -1
  232. package/react/components/notifications/utils.js.map +1 -1
  233. package/react/components/processMonitor/ProcessMonitor.js.map +1 -1
  234. package/react/components/processMonitor/components/ChildWindow.js.map +1 -1
  235. package/react/components/processMonitor/components/ChildWindows.js.map +1 -1
  236. package/react/components/processMonitor/components/ListHeader.js.map +1 -1
  237. package/react/components/processMonitor/components/ProcessStatistics.js.map +1 -1
  238. package/react/components/processMonitor/constants.js.map +1 -1
  239. package/react/components/processMonitor/helpers.js.map +1 -1
  240. package/react/components/processMonitor/index.js.map +1 -1
  241. package/react/components/processMonitor/stores/ProcessMonitorStore.js.map +1 -1
  242. package/react/components/quickComponentForm/QuickComponentForm.js.map +1 -1
  243. package/react/components/quickComponentForm/index.js.map +1 -1
  244. package/react/components/quickComponentForm/quickComponent.css +3 -3
  245. package/react/components/search/Highlight.js.map +1 -1
  246. package/react/components/search/Highlight.spec.js.map +1 -1
  247. package/react/components/search/Highlight.stories.js.map +1 -1
  248. package/react/components/search/Search.js.map +1 -1
  249. package/react/components/search/SearchBestMatch.js.map +1 -1
  250. package/react/components/search/SearchInput.js.map +1 -1
  251. package/react/components/search/SearchProviderResults.js.map +1 -1
  252. package/react/components/search/SearchResult.js.map +1 -1
  253. package/react/components/search/SearchResults.js.map +1 -1
  254. package/react/components/search/index.js.map +1 -1
  255. package/react/components/shared/Animate.js.map +1 -1
  256. package/react/components/shared/BellIcon.js.map +1 -1
  257. package/react/components/shared/BellIconCrossed.js.map +1 -1
  258. package/react/components/shared/Button.js.map +1 -1
  259. package/react/components/shared/ConditionalWrapper.js.map +1 -1
  260. package/react/components/shared/DefaultDropdownButton.js.map +1 -1
  261. package/react/components/shared/NavigationButton.js.map +1 -1
  262. package/react/components/shared/Tag.js.map +1 -1
  263. package/react/components/shared/TagsMenu.js.map +1 -1
  264. package/react/components/shared/addProtocolToValidURL.js.map +1 -1
  265. package/react/components/shared/addProtocolToValidURL.spec.js.map +1 -1
  266. package/react/components/shared/linkerUtil.js.map +1 -1
  267. package/react/components/shared/openQuitConfirmationDialog.js.map +1 -1
  268. package/react/components/shared/validateURL.js.map +1 -1
  269. package/react/components/shared/validateURL.spec.js.map +1 -1
  270. package/react/components/singleInputDialog/SingleInputDialog.css +3 -3
  271. package/react/components/singleInputDialog/SingleInputDialog.js.map +1 -1
  272. package/react/components/singleInputDialog/SingleInputDialog.spec.js.map +1 -1
  273. package/react/components/singleInputDialog/SingleInputDialog.stories.js.map +1 -1
  274. package/react/components/singleInputDialog/index.js.map +1 -1
  275. package/react/components/smartDesktopDesigner/AppEditPage.js.map +1 -1
  276. package/react/components/smartDesktopDesigner/Appearance.css +94 -94
  277. package/react/components/smartDesktopDesigner/Appearance.helpers.js.map +1 -1
  278. package/react/components/smartDesktopDesigner/Appearance.js.map +1 -1
  279. package/react/components/smartDesktopDesigner/Application.js.map +1 -1
  280. package/react/components/smartDesktopDesigner/ApplicationEdit.js.map +1 -1
  281. package/react/components/smartDesktopDesigner/ApplicationList.js.map +1 -1
  282. package/react/components/smartDesktopDesigner/ApplicationSetup.js.map +1 -1
  283. package/react/components/smartDesktopDesigner/Applications.js.map +1 -1
  284. package/react/components/smartDesktopDesigner/AssetsPage.css +26 -26
  285. package/react/components/smartDesktopDesigner/AssetsPage.js.map +1 -1
  286. package/react/components/smartDesktopDesigner/Authentication.js.map +1 -1
  287. package/react/components/smartDesktopDesigner/AuthenticationProviderConfig.js.map +1 -1
  288. package/react/components/smartDesktopDesigner/Content.js.map +1 -1
  289. package/react/components/smartDesktopDesigner/CurrentView.js.map +1 -1
  290. package/react/components/smartDesktopDesigner/Export.js.map +1 -1
  291. package/react/components/smartDesktopDesigner/ExportCloud.js.map +1 -1
  292. package/react/components/smartDesktopDesigner/ExportDeployInfo.js.map +1 -1
  293. package/react/components/smartDesktopDesigner/ExportZip.js.map +1 -1
  294. package/react/components/smartDesktopDesigner/GettingStarted.js.map +1 -1
  295. package/react/components/smartDesktopDesigner/Navigation.js.map +1 -1
  296. package/react/components/smartDesktopDesigner/ProjectErrors.js.map +1 -1
  297. package/react/components/smartDesktopDesigner/ProjectHeader.js.map +1 -1
  298. package/react/components/smartDesktopDesigner/Publish.js.map +1 -1
  299. package/react/components/smartDesktopDesigner/PublishProgress.js.map +1 -1
  300. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js.map +1 -1
  301. package/react/components/smartDesktopDesigner/ThemePage.css +110 -110
  302. package/react/components/smartDesktopDesigner/ThemePage.js.map +1 -1
  303. package/react/components/smartDesktopDesigner/Themes.js.map +1 -1
  304. package/react/components/smartDesktopDesigner/View.js.map +1 -1
  305. package/react/components/smartDesktopDesigner/common/fsbl_functions.js.map +1 -1
  306. package/react/components/smartDesktopDesigner/common/getCSSVars.js.map +1 -1
  307. package/react/components/smartDesktopDesigner/common/views.js +2 -2
  308. package/react/components/smartDesktopDesigner/common/views.js.map +1 -1
  309. package/react/components/smartDesktopDesigner/css/appearance.css +10 -10
  310. package/react/components/smartDesktopDesigner/css/applications.css +89 -89
  311. package/react/components/smartDesktopDesigner/css/authentication.css +125 -125
  312. package/react/components/smartDesktopDesigner/css/buttons.css +12 -12
  313. package/react/components/smartDesktopDesigner/css/export.css +163 -163
  314. package/react/components/smartDesktopDesigner/css/getting-started.css +6 -6
  315. package/react/components/smartDesktopDesigner/css/nav.css +93 -93
  316. package/react/components/smartDesktopDesigner/css/project-errors.css +15 -15
  317. package/react/components/smartDesktopDesigner/css/project-header.css +121 -121
  318. package/react/components/smartDesktopDesigner/css/styles.css +179 -179
  319. package/react/components/smartDesktopDesigner/css/views.css +16 -16
  320. package/react/components/smartDesktopDesigner/fixtures/applicationEditProps.js.map +1 -1
  321. package/react/components/smartDesktopDesigner/fixtures/applicationSetupProps.js.map +1 -1
  322. package/react/components/smartDesktopDesigner/fixtures/applicationsProps.js.map +1 -1
  323. package/react/components/smartDesktopDesigner/fixtures/apps.js.map +1 -1
  324. package/react/components/smartDesktopDesigner/fixtures/authenticationProps.js.map +1 -1
  325. package/react/components/smartDesktopDesigner/fixtures/configTemplate.js.map +1 -1
  326. package/react/components/smartDesktopDesigner/fixtures/exportProps.js.map +1 -1
  327. package/react/components/smartDesktopDesigner/fixtures/projectErrorsProps.js.map +1 -1
  328. package/react/components/smartDesktopDesigner/fixtures/publishProgress.js.map +1 -1
  329. package/react/components/smartDesktopDesigner/fixtures/themeProps.js.map +1 -1
  330. package/react/components/smartDesktopDesigner/fixtures/views.js.map +1 -1
  331. package/react/components/smartDesktopDesigner/sdd_helpers.js.map +1 -1
  332. package/react/components/smartDesktopDesigner/stories/AppEditPage.stories.js.map +1 -1
  333. package/react/components/smartDesktopDesigner/stories/Appearance.stories.js.map +1 -1
  334. package/react/components/smartDesktopDesigner/stories/ApplicationEdit.stories.js.map +1 -1
  335. package/react/components/smartDesktopDesigner/stories/ApplicationList.stories.js.map +1 -1
  336. package/react/components/smartDesktopDesigner/stories/ApplicationSetup.stories.js.map +1 -1
  337. package/react/components/smartDesktopDesigner/stories/Applications.stories.js.map +1 -1
  338. package/react/components/smartDesktopDesigner/stories/AssetsPage.stories.js.map +1 -1
  339. package/react/components/smartDesktopDesigner/stories/Authentication.stories.js.map +1 -1
  340. package/react/components/smartDesktopDesigner/stories/Export.stories.js.map +1 -1
  341. package/react/components/smartDesktopDesigner/stories/ExportCloud.stories.js.map +1 -1
  342. package/react/components/smartDesktopDesigner/stories/ExportZip.stories.js.map +1 -1
  343. package/react/components/smartDesktopDesigner/stories/GettingStarted.stories.js.map +1 -1
  344. package/react/components/smartDesktopDesigner/stories/Navigation.stories.js.map +1 -1
  345. package/react/components/smartDesktopDesigner/stories/ProjectErrors.stories.js.map +1 -1
  346. package/react/components/smartDesktopDesigner/stories/ProjectHeader.stories.js.map +1 -1
  347. package/react/components/smartDesktopDesigner/stories/Publish.stories.js.map +1 -1
  348. package/react/components/smartDesktopDesigner/stories/PublishProgress.stories.js.map +1 -1
  349. package/react/components/smartDesktopDesigner/stories/SmartDesktopDesigner.stories.js.map +1 -1
  350. package/react/components/smartDesktopDesigner/stories/ThemePage.stories.js.map +1 -1
  351. package/react/components/smartDesktopDesigner/stories/Themes.stories.js.map +1 -1
  352. package/react/components/smartDesktopDesigner/tests/AppEditPage.spec.js.map +1 -1
  353. package/react/components/smartDesktopDesigner/tests/ApplicationEdit.spec.js.map +1 -1
  354. package/react/components/smartDesktopDesigner/tests/ApplicationList.spec.js.map +1 -1
  355. package/react/components/smartDesktopDesigner/tests/ApplicationSetup.spec.js.map +1 -1
  356. package/react/components/smartDesktopDesigner/tests/Applications.spec.js.map +1 -1
  357. package/react/components/smartDesktopDesigner/tests/Authentication.spec.js.map +1 -1
  358. package/react/components/smartDesktopDesigner/tests/Export.spec.js.map +1 -1
  359. package/react/components/smartDesktopDesigner/tests/ExportZip.spec.js.map +1 -1
  360. package/react/components/smartDesktopDesigner/tests/Navigation.spec.js.map +1 -1
  361. package/react/components/smartDesktopDesigner/tests/ProjectErrors.spec.js.map +1 -1
  362. package/react/components/smartDesktopDesigner/tests/ProjectHeader.spec.js.map +1 -1
  363. package/react/components/smartDesktopDesigner/tests/Publish.spec.js.map +1 -1
  364. package/react/components/smartDesktopDesigner/tests/PublishProgess.spec.js.map +1 -1
  365. package/react/components/smartDesktopDesigner/tests/SmartDesktopDesigner.spec.js.map +1 -1
  366. package/react/components/smartDesktopDesigner/tests/Themes.spec.js.map +1 -1
  367. package/react/components/smartDesktopDesigner/tests/a11y_helper.js +3 -3
  368. package/react/components/smartDesktopDesigner/tests/a11y_helper.js.map +1 -1
  369. package/react/components/smartDesktopDesigner/themeDefinitions.js.map +1 -1
  370. package/react/components/system/System.js.map +1 -1
  371. package/react/components/system/System.spec.js.map +1 -1
  372. package/react/components/system/System.stories.js.map +1 -1
  373. package/react/components/system/SystemTrayComponentShell.js.map +1 -1
  374. package/react/components/system/index.js.map +1 -1
  375. package/react/components/toolbar/AutoArrange.js.map +1 -1
  376. package/react/components/toolbar/DragHandle.js.map +1 -1
  377. package/react/components/toolbar/MinimizeAll.js.map +1 -1
  378. package/react/components/toolbar/MinimizeAll.spec.js.map +1 -1
  379. package/react/components/toolbar/MinimizeAll.stories.js.map +1 -1
  380. package/react/components/toolbar/NotificationControl.js.map +1 -1
  381. package/react/components/toolbar/RevealAll.js.map +1 -1
  382. package/react/components/toolbar/RevealAll.spec.js.map +1 -1
  383. package/react/components/toolbar/RevealAll.stories.js.map +1 -1
  384. package/react/components/toolbar/ToolbarIcon.js.map +1 -1
  385. package/react/components/toolbar/ToolbarSection.js.map +1 -1
  386. package/react/components/toolbar/ToolbarShell.js.map +1 -1
  387. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.js.map +1 -1
  388. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncherMenu.js.map +1 -1
  389. package/react/components/toolbar/advancedAppLauncher/components/AddNewAppForm.js.map +1 -1
  390. package/react/components/toolbar/advancedAppLauncher/components/AddNewFolder.js.map +1 -1
  391. package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.js.map +1 -1
  392. package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.js.map +1 -1
  393. package/react/components/toolbar/advancedAppLauncher/components/AppTagsList.js.map +1 -1
  394. package/react/components/toolbar/advancedAppLauncher/components/Content.js.map +1 -1
  395. package/react/components/toolbar/advancedAppLauncher/components/FilterSort.js.map +1 -1
  396. package/react/components/toolbar/advancedAppLauncher/components/FoldersList.js.map +1 -1
  397. package/react/components/toolbar/advancedAppLauncher/components/LeftNav.js.map +1 -1
  398. package/react/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.js.map +1 -1
  399. package/react/components/toolbar/advancedAppLauncher/components/NoAppsFound.js.map +1 -1
  400. package/react/components/toolbar/advancedAppLauncher/components/SearchBox.js.map +1 -1
  401. package/react/components/toolbar/advancedAppLauncher/components/SortBy.js.map +1 -1
  402. package/react/components/toolbar/advancedAppLauncher/components/TagsList.js.map +1 -1
  403. package/react/components/toolbar/advancedAppLauncher/components/TagsMenu.js.map +1 -1
  404. package/react/components/toolbar/advancedAppLauncher/components/ToggleFavoriteDropdown.js.map +1 -1
  405. package/react/components/toolbar/advancedAppLauncher/modules/AppDirectory.js.map +1 -1
  406. package/react/components/toolbar/advancedAppLauncher/modules/FDC3.js.map +1 -1
  407. package/react/components/toolbar/advancedAppLauncher/stores/LauncherStore.js.map +1 -1
  408. package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js.map +1 -1
  409. package/react/components/toolbar/advancedAppLauncher/utils/sort-functions.js.map +1 -1
  410. package/react/components/toolbar/appLauncher/AppLauncherMenu.js.map +1 -1
  411. package/react/components/toolbar/appLauncher/DynamicAppLauncher.js.map +1 -1
  412. package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.js.map +1 -1
  413. package/react/components/toolbar/appLauncher/appLauncher.css +30 -30
  414. package/react/components/toolbar/appLauncher/components/componentList.js.map +1 -1
  415. package/react/components/toolbar/appLauncher/stores/appLauncherStore.js.map +1 -1
  416. package/react/components/toolbar/dashbar/Dashbar.js.map +1 -1
  417. package/react/components/toolbar/dashbar/DashbarItem.js.map +1 -1
  418. package/react/components/toolbar/index.js.map +1 -1
  419. package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.js.map +1 -1
  420. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js.map +1 -1
  421. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.js.map +1 -1
  422. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.js.map +1 -1
  423. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js.map +1 -1
  424. package/react/components/toolbar/workspaceManagementMenu/workspaceManagementMenu.css +94 -94
  425. package/react/components/userPreferences/NotificationsPreferencesContext.js.map +1 -1
  426. package/react/components/userPreferences/UserPreferences.js.map +1 -1
  427. package/react/components/userPreferences/UserPreferencesBase.js.map +1 -1
  428. package/react/components/userPreferences/components/Checkbox.js.map +1 -1
  429. package/react/components/userPreferences/components/ContentSection.js.map +1 -1
  430. package/react/components/userPreferences/components/LeftNav.js.map +1 -1
  431. package/react/components/userPreferences/components/content/DashbarEditor.js.map +1 -1
  432. package/react/components/userPreferences/components/content/General.js.map +1 -1
  433. package/react/components/userPreferences/components/content/Notifications.js.map +1 -1
  434. package/react/components/userPreferences/components/content/Workspaces.js.map +1 -1
  435. package/react/components/userPreferences/components/content/notificationViews/NotificationsPreferencesHome.js.map +1 -1
  436. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourceTypes.js.map +1 -1
  437. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourcesPreferences.js.map +1 -1
  438. package/react/components/userPreferences/components/content/notificationViews/notificationViewsUtils.js.map +1 -1
  439. package/react/components/userPreferences/components/general/ScheduledRestart.js.map +1 -1
  440. package/react/components/userPreferences/index.js.map +1 -1
  441. package/react/components/userPreferences/stores/UserPreferencesStore.js.map +1 -1
  442. package/react/components/userPreferences/stories/DashbarEditor.stories.js.map +1 -1
  443. package/react/components/utils.js.map +1 -1
  444. package/react/components/windowTitleBar/WindowTitleBarShell.js.map +1 -1
  445. package/react/components/windowTitleBar/components/center/Tab.js.map +1 -1
  446. package/react/components/windowTitleBar/components/center/TabList.js.map +1 -1
  447. package/react/components/windowTitleBar/components/center/TabRegion.js.map +1 -1
  448. package/react/components/windowTitleBar/components/left/LinkerButton.js.map +1 -1
  449. package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.js.map +1 -1
  450. package/react/components/windowTitleBar/components/left/LinkerGroups.js.map +1 -1
  451. package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.js.map +1 -1
  452. package/react/components/windowTitleBar/components/left/ShareButton.js.map +1 -1
  453. package/react/components/windowTitleBar/components/right/AlwaysOnTopButton.js.map +1 -1
  454. package/react/components/windowTitleBar/components/right/CloseButton.js.map +1 -1
  455. package/react/components/windowTitleBar/components/right/GroupingButton.js.map +1 -1
  456. package/react/components/windowTitleBar/components/right/MaximizeButton.js.map +1 -1
  457. package/react/components/windowTitleBar/components/right/MinimizeButton.js.map +1 -1
  458. package/react/components/windowTitleBar/components/windowTitle.js.map +1 -1
  459. package/react/components/windowTitleBar/index.js.map +1 -1
  460. package/react/components/windowTitleBar/stores/windowTitleBarStore.js.map +1 -1
  461. package/react/components/windowTitleBar/stores/windowTitleBarStoreDefaults.js.map +1 -1
  462. package/react/components/windowTitleBar/windowTitleBarContext.js.map +1 -1
  463. package/react/components/yesNoDialog/Timer.spec.js.map +1 -1
  464. package/react/components/yesNoDialog/Timer.stories.js.map +1 -1
  465. package/react/components/yesNoDialog/YesNoDialog.css +3 -3
  466. package/react/components/yesNoDialog/YesNoDialog.js.map +1 -1
  467. package/react/components/yesNoDialog/YesNoDialog.spec.js.map +1 -1
  468. package/react/components/yesNoDialog/YesNoDialog.stories.js.map +1 -1
  469. package/react/components/yesNoDialog/index.js.map +1 -1
  470. package/react/components/yesNoDialog/timer.js.map +1 -1
  471. package/react/enzymeSetup.js.map +1 -1
  472. package/react/hooks/index.js.map +1 -1
  473. package/react/hooks/useAuth.js.map +1 -1
  474. package/react/hooks/useDeepEffect.js.map +1 -1
  475. package/react/hooks/useFavorites.js.map +1 -1
  476. package/react/hooks/useFavoritesShell.js.map +1 -1
  477. package/react/hooks/useHotkey.js.map +1 -1
  478. package/react/hooks/useLinker.js.map +1 -1
  479. package/react/hooks/useMenu.js.map +1 -1
  480. package/react/hooks/useNotifications.js.map +1 -1
  481. package/react/hooks/useOutsideClickDetector.js.map +1 -1
  482. package/react/hooks/usePubSub.js.map +1 -1
  483. package/react/hooks/useSearch.js.map +1 -1
  484. package/react/hooks/useToolbar.js.map +1 -1
  485. package/react/hooks/useWorkspace.js.map +1 -1
  486. package/react/reducers/favoriteReducer.js.map +1 -1
  487. package/react/reducers/linkerReducer.js.map +1 -1
  488. package/react/reducers/menuReducer.js.map +1 -1
  489. package/react/reducers/rootReducer.js.map +1 -1
  490. package/react/reducers/searchReducer.js.map +1 -1
  491. package/react/reducers/smartDesktopDesignerReducer.js.map +1 -1
  492. package/react/reducers/toolbarReducer.js.map +1 -1
  493. package/react/reducers/workspaceReducer.js.map +1 -1
  494. package/react/store.js.map +1 -1
  495. package/react/types/advancedAppLauncherTypes.js.map +1 -1
  496. package/react/types/dashbarTypes.js.map +1 -1
  497. package/react/types/favoriteTypes.js.map +1 -1
  498. package/react/types/fdc3.js.map +1 -1
  499. package/react/types/hotkeyTypes.js.map +1 -1
  500. package/react/types/iconTypes.js.map +1 -1
  501. package/react/types/linkerTypes.js.map +1 -1
  502. package/react/types/searchTypes.js.map +1 -1
  503. package/react/types/smartDesktopDesignerTypes.js.map +1 -1
  504. package/react/types/workspaceTypes.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"FoldersList.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/components/FoldersList.jsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport storeActions from \"../stores/StoreActions\";\r\nimport { getStore } from \"../stores/LauncherStore\";\r\nimport { useFavorites } from \"../../../../hooks/useFavorites\";\r\nimport { FinsembleDraggable } from \"../../../legacyControls/FinsembleDraggable\";\r\nimport { FinsembleDnDContext } from \"../../../legacyControls/FinsembleDnDContext\";\r\nconst { ADVANCED_APP_LAUNCHER, DASHBOARDS, FAVORITES } = storeActions.getConstants();\r\n\r\nconst dragDisabled = storeActions.getDragDisabled();\r\n\r\nexport default class FoldersList extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tthis.state = {\r\n\t\t\tfoldersList: storeActions.getFoldersList(),\r\n\t\t\tactiveFolder: storeActions.getActiveFolderName(),\r\n\t\t\trenamingFolder: null,\r\n\t\t\tfolderNameInput: \"\",\r\n\t\t\tisNameError: false,\r\n\t\t};\r\n\t\t// Reference to ontainer element of folder list\r\n\t\tthis.listDiv = React.createRef();\r\n\t\tthis.renameFolder = this.renameFolder.bind(this);\r\n\t\tthis.changeFolderName = this.changeFolderName.bind(this);\r\n\t\tthis.cancelEdit = this.cancelEdit.bind(this);\r\n\t\tthis.onFoldersListUpdate = this.onFoldersListUpdate.bind(this);\r\n\t\tthis.keyPressed = this.keyPressed.bind(this);\r\n\t\tthis.deleteFolder = this.deleteFolder.bind(this);\r\n\t\tthis.onFocusRemove = this.onFocusRemove.bind(this);\r\n\t\tthis.onDragEnd = this.onDragEnd.bind(this);\r\n\t\tthis.onMouseMove = this.onMouseMove.bind(this);\r\n\t\tthis.animateErrorInput = this.animateErrorInput.bind(this);\r\n\r\n\t\t// The last known mouse Y position\r\n\t\tthis.mouseY = null;\r\n\r\n\t\t//Reference to a folder name input in error\r\n\t\tthis.errorInput = React.createRef();\r\n\t}\r\n\r\n\tanimateErrorInput() {\r\n\t\tif (this.errorInput.current) {\r\n\t\t\tthis.errorInput.current.classList.remove(\"error\");\r\n\t\t\tconst flickerInput = setTimeout(() => {\r\n\t\t\t\tif (this.errorInput.current) {\r\n\t\t\t\t\tthis.errorInput.current.classList.add(\"error\");\r\n\t\t\t\t}\r\n\t\t\t\tclearTimeout(flickerInput);\r\n\t\t\t}, 500);\r\n\t\t}\r\n\t}\r\n\r\n\tcancelEdit() {\r\n\t\tconsole.log(\"cancelling edit\");\r\n\t\tthis.setState({\r\n\t\t\trenamingFolder: null,\r\n\t\t\tisNameError: false,\r\n\t\t\tfolderNameInput: \"\",\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Keeps a track of the last mouse's clientY position\r\n\t * @param {MouseEvent} event The mouse move event\r\n\t */\r\n\tonMouseMove(event) {\r\n\t\tthis.mouseY = event.clientY;\r\n\t}\r\n\r\n\tonDragEnd({ oldIndex, newIndex }) {\r\n\t\tstoreActions.reorderFolders(oldIndex, newIndex);\r\n\t}\r\n\r\n\tonAppDrop(event, folder) {\r\n\t\tevent.preventDefault();\r\n\t\tconst app = JSON.parse(event.dataTransfer.getData(\"app\"));\r\n\t\t// Do not do anything if its Advanced App Launcher or dashboards folder\r\n\t\tif ([ADVANCED_APP_LAUNCHER, DASHBOARDS].indexOf(folder) < 0) {\r\n\t\t\tstoreActions.addAppToFolder(folder, app);\r\n\t\t}\r\n\t}\r\n\r\n\tonFoldersListUpdate(error, data) {\r\n\t\tthis.setState({\r\n\t\t\tfoldersList: data.value,\r\n\t\t});\r\n\t}\r\n\r\n\tonFolderClicked(event, folder) {\r\n\t\tgetStore().setValue(\r\n\t\t\t{\r\n\t\t\t\tfield: \"activeFolder\",\r\n\t\t\t\tvalue: folder,\r\n\t\t\t},\r\n\t\t\t(error, data) => {\r\n\t\t\t\tthis.setState({\r\n\t\t\t\t\tactiveFolder: folder,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tonFocusRemove(event) {\r\n\t\tif (this.state.isNameError) {\r\n\t\t\tthis.animateErrorInput();\r\n\t\t}\r\n\t\t// If focus removed and nothing was type, then just hide\r\n\t\t// and consider it a rename cancel\r\n\t\tif (!this.state.folderNameInput) {\r\n\t\t\t// Cancel rename\r\n\t\t\tthis.setState({\r\n\t\t\t\trenamingFolder: null,\r\n\t\t\t\tisNameError: false,\r\n\t\t\t\tfolderNameInput: \"\",\r\n\t\t\t});\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t// Finally, all good and so we can rename the folder\r\n\t\tthis.attemptRename();\r\n\t}\r\n\r\n\tUNSAFE_componentWillMount() {\r\n\t\tgetStore().addListener({ field: \"appFolders.list\" }, this.onFoldersListUpdate);\r\n\t\tdocument.addEventListener(\"mousemove\", this.onMouseMove);\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tgetStore().addListener({ field: \"appFolders.list\" }, this.onFoldersListUpdate);\r\n\t\tdocument.removeEventListener(\"mousemove\", this.onMouseMove);\r\n\t}\r\n\r\n\trenameFolder(name, e) {\r\n\t\te.preventDefault();\r\n\t\te.stopPropagation();\r\n\t\tif (!this.state.isNameError) {\r\n\t\t\tthis.setState({\r\n\t\t\t\trenamingFolder: name,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tchangeFolderName(e) {\r\n\t\tthis.setState({\r\n\t\t\tfolderNameInput: e.target.value,\r\n\t\t});\r\n\t}\r\n\r\n\tdeleteFolder(name, e) {\r\n\t\te.stopPropagation();\r\n\t\te.preventDefault();\r\n\t\t// Do not attempt to delete if user is renaming a folder\r\n\t\t!this.state.renamingFolder && storeActions.deleteFolder(name);\r\n\t}\r\n\r\n\tkeyPressed(e) {\r\n\t\tif (e.key === \"Enter\") {\r\n\t\t\tthis.attemptRename();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * To be called when user press Enter or when focus is removed\r\n\t */\r\n\tattemptRename() {\r\n\t\tconst folders = storeActions.getFolders();\r\n\t\tconst input = this.state.folderNameInput.trim();\r\n\t\tconst oldName = this.state.renamingFolder;\r\n\t\tlet newName = input;\r\n\t\t// Check user input to make sure its at least 1 character\r\n\t\t// made of string, number or both\r\n\t\tif (!/^([a-zA-Z0-9\\s]{1,})$/.test(input)) {\r\n\t\t\t// Do not rename\r\n\t\t\tconsole.warn(\"A valid folder name is required. /^([a-zA-Z0-9s]{1,})$/\");\r\n\t\t\treturn this.setState({\r\n\t\t\t\tisNameError: true,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t// Check if the submission is the same text as the old name.\r\n\t\t// If false, renaming will be skipped\r\n\t\tlet nameChanged = true;\r\n\t\t// We no longer allow leading or trailing spaces, but the trim on the oldName needs to remain for any existing folders\r\n\t\tif (oldName.trim() === newName) nameChanged = false;\r\n\r\n\t\t// Names must be unique, folders cant share same names\r\n\t\tif (folders[newName]) {\r\n\t\t\tlet repeatedFolderIndex = 0;\r\n\t\t\tdo {\r\n\t\t\t\trepeatedFolderIndex++;\r\n\t\t\t} while (Object.keys(folders).includes(`${newName}(${repeatedFolderIndex})`));\r\n\t\t\tnewName = `${newName}(${repeatedFolderIndex})`;\r\n\t\t}\r\n\r\n\t\tthis.setState(\r\n\t\t\t{\r\n\t\t\t\tfolderNameInput: \"\",\r\n\t\t\t\trenamingFolder: null,\r\n\t\t\t\tisNameError: false,\r\n\t\t\t},\r\n\t\t\t() => {\r\n\t\t\t\tif (nameChanged) {\r\n\t\t\t\t\tstoreActions.renameFolder(oldName, newName);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Given some data, renders the basic folder structure that cannot be unordered. Used for orderable folders too. Those just get wrapped in a Draggable\r\n\t * @param {*} folder\r\n\t * @param {*} folderName\r\n\t * @param {*} index\r\n\t */\r\n\trenderFolder(folder, folderName, index) {\r\n\t\tlet className = \"complex-menu-section-toggle\";\r\n\t\tif (this.state.activeFolder === folderName) {\r\n\t\t\tclassName = `${className} active-section-toggle`;\r\n\t\t}\r\n\t\tif (folder.icon) {\r\n\t\t\tclassName = `${className} folder-with-icon`;\r\n\t\t}\r\n\r\n\t\tconst { canDelete, canEdit } = folder;\r\n\r\n\t\tlet nameField,\r\n\t\t\tisEditing = false;\r\n\t\tif (this.state.renamingFolder === folderName && canEdit) {\r\n\t\t\tconst { isNameError } = this.state;\r\n\t\t\tnameField = (\r\n\t\t\t\t<input\r\n\t\t\t\t\tid=\"rename\"\r\n\t\t\t\t\tvalue={this.state.folderNameInput}\r\n\t\t\t\t\tonChange={this.changeFolderName}\r\n\t\t\t\t\tonKeyPress={this.keyPressed}\r\n\t\t\t\t\tonBlur={this.onFocusRemove}\r\n\t\t\t\t\tclassName={isNameError ? \"error\" : \"\"}\r\n\t\t\t\t\tautoFocus\r\n\t\t\t\t\tref={isNameError ? this.errorInput : null}\r\n\t\t\t\t/>\r\n\t\t\t);\r\n\t\t\tisEditing = true;\r\n\t\t} else if (folderName === \"Advanced App Launcher\") {\r\n\t\t\tnameField = \"App Launcher\";\r\n\t\t} else {\r\n\t\t\tnameField = folderName;\r\n\t\t}\r\n\r\n\t\tconst RenderFolder = (props) => {\r\n\t\t\tconst { addFavorite, isFavorited, favorites } = useFavorites();\r\n\t\t\t// If an app is dropped in the Favorites folder, favorite the app\r\n\t\t\tconst onDrop = (e) => {\r\n\t\t\t\tprops.onDrop(e);\r\n\t\t\t\tconst app = JSON.parse(e.dataTransfer.getData(\"app\"));\r\n\t\t\t\tif (folderName === FAVORITES && !isFavorited(app.name)) {\r\n\t\t\t\t\tconst favoriteApp = {\r\n\t\t\t\t\t\tid: app.name,\r\n\t\t\t\t\t\tcategory: \"Application\",\r\n\t\t\t\t\t\tname: app.name,\r\n\t\t\t\t\t\ticon: app.icon,\r\n\t\t\t\t\t};\r\n\t\t\t\t\taddFavorite(favoriteApp);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\t// When favorites changes remove all items from the favorites folder and re-add all current favorites.\r\n\t\t\tReact.useEffect(() => {\r\n\t\t\t\tconst existingFavApps = storeActions.getAllAppsFromFolder(FAVORITES);\r\n\t\t\t\tObject.values(existingFavApps).forEach((app) => {\r\n\t\t\t\t\tif (!favorites.some((fav) => fav.name === app.name)) {\r\n\t\t\t\t\t\tstoreActions.removeAppFromFolder(\"Favorites\", app);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tfavorites.forEach((fav) => {\r\n\t\t\t\t\tconst app = storeActions.findAppByField(\"name\", fav.name);\r\n\t\t\t\t\t// may have things other than favorites in here.\r\n\t\t\t\t\tif (app) {\r\n\t\t\t\t\t\tstoreActions.addAppToFolder(\"Favorites\", app);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}, [favorites]);\r\n\t\t\treturn (\r\n\t\t\t\t<div {...props} onDrop={onDrop}>\r\n\t\t\t\t\t{props.children}\r\n\t\t\t\t</div>\r\n\t\t\t);\r\n\t\t};\r\n\r\n\t\tconst showIcon = canEdit || canDelete;\r\n\r\n\t\tlet buttons;\r\n\t\tif (showIcon) {\r\n\t\t\tif (isEditing) {\r\n\t\t\t\t// We can't use onClick for these buttons because onBlur causes a re-render of these buttons which means mousedown and mouseup\r\n\t\t\t\t// technically don't fire on the same button. This means onClick is never fired, so we trigger the buttons on mousedown instead.\r\n\t\t\t\t// For more information see: https://www.eventbrite.com/engineering/a-story-of-a-react-re-rendering-bug/\r\n\t\t\t\tbuttons = (\r\n\t\t\t\t\t<span className=\"folder-action-icons\">\r\n\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\tid=\"confirm-edit\"\r\n\t\t\t\t\t\t\tclassName=\"ff-check-mark-2\"\r\n\t\t\t\t\t\t\ttitle=\"Accept Rename\"\r\n\t\t\t\t\t\t\tonMouseDown={this.attemptRename.bind(this)}\r\n\t\t\t\t\t\t></i>\r\n\t\t\t\t\t\t<i id=\"cancel-edit\" className=\"ff-close\" title=\"Cancel\" onMouseDown={this.cancelEdit.bind(this)}></i>\r\n\t\t\t\t\t</span>\r\n\t\t\t\t);\r\n\t\t\t} else {\r\n\t\t\t\tbuttons = (\r\n\t\t\t\t\t<span className=\"folder-action-icons\">\r\n\t\t\t\t\t\t{canEdit && (\r\n\t\t\t\t\t\t\t<i className=\"ff-adp-edit\" title=\"Rename\" onClick={this.renameFolder.bind(this, folderName)}></i>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t{canDelete && (\r\n\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\tclassName=\"ff-adp-trash-outline\"\r\n\t\t\t\t\t\t\t\ttitle=\"Delete Folder\"\r\n\t\t\t\t\t\t\t\tonClick={this.deleteFolder.bind(this, folderName)}\r\n\t\t\t\t\t\t\t></i>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// This DOM will be rendered within a draggable (if the folder can be dragged), and a plain ol div if it cannot be dragged.\r\n\t\treturn (\r\n\t\t\t<RenderFolder\r\n\t\t\t\tonDragOver={(event) => event.preventDefault()}\r\n\t\t\t\tonDrop={(event) => this.onAppDrop(event, folderName)}\r\n\t\t\t\tonClick={(event) => this.onFolderClicked(event, folderName)}\r\n\t\t\t\tclassName={className}\r\n\t\t\t\tkey={index}\r\n\t\t\t\ttitle={folderName}\r\n\t\t\t>\r\n\t\t\t\t<div className=\"left-nav-label\">\r\n\t\t\t\t\t{folder.icon && <i className={folder.icon}></i>}\r\n\t\t\t\t\t<div className=\"folder-name\">{nameField}</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t{buttons}\r\n\t\t\t</RenderFolder>\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Render all folders that cannot be reordered.\r\n\t */\r\n\trenderUnorderableFolders() {\r\n\t\tconst folders = storeActions.getFolders();\r\n\t\tconst unorderableFolders = this.state.foldersList.filter(\r\n\t\t\t(folderName) => dragDisabled.includes(folderName) && folderName in folders\r\n\t\t);\r\n\t\treturn unorderableFolders.map((folderName, index) => {\r\n\t\t\tconst folder = folders[folderName];\r\n\t\t\tfolder.icon = null;\r\n\t\t\treturn this.renderFolder(folder, folderName, index);\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Renders all folders that can be reordered (user created folders).\r\n\t */\r\n\trenderOrderableFolders() {\r\n\t\tconst folders = storeActions.getFolders();\r\n\t\tconst orderableFolders = this.state.foldersList.filter(\r\n\t\t\t(folderName) => !dragDisabled.includes(folderName) && folderName in folders\r\n\t\t);\r\n\t\treturn orderableFolders.map((folderName, index) => {\r\n\t\t\tconst folder = folders[folderName];\r\n\t\t\treturn (\r\n\t\t\t\t<FinsembleDraggable draggableId={folderName} key={index} index={index}>\r\n\t\t\t\t\t{this.renderFolder(folder, folderName, index)}\r\n\t\t\t\t</FinsembleDraggable>\r\n\t\t\t);\r\n\t\t});\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<div className=\"top\">\r\n\t\t\t\t<div className=\"folder-list\" ref={this.listDiv}>\r\n\t\t\t\t\t{this.renderUnorderableFolders()}\r\n\t\t\t\t\t<FinsembleDnDContext onDragEnd={this.onDragEnd}>{this.renderOrderableFolders()}</FinsembleDnDContext>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n}\r\n"]}
1
+ {"version":3,"file":"FoldersList.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/components/FoldersList.jsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport storeActions from \"../stores/StoreActions\";\nimport { getStore } from \"../stores/LauncherStore\";\nimport { useFavorites } from \"../../../../hooks/useFavorites\";\nimport { FinsembleDraggable } from \"../../../legacyControls/FinsembleDraggable\";\nimport { FinsembleDnDContext } from \"../../../legacyControls/FinsembleDnDContext\";\nconst { ADVANCED_APP_LAUNCHER, DASHBOARDS, FAVORITES } = storeActions.getConstants();\n\nconst dragDisabled = storeActions.getDragDisabled();\n\nexport default class FoldersList extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tfoldersList: storeActions.getFoldersList(),\n\t\t\tactiveFolder: storeActions.getActiveFolderName(),\n\t\t\trenamingFolder: null,\n\t\t\tfolderNameInput: \"\",\n\t\t\tisNameError: false,\n\t\t};\n\t\t// Reference to ontainer element of folder list\n\t\tthis.listDiv = React.createRef();\n\t\tthis.renameFolder = this.renameFolder.bind(this);\n\t\tthis.changeFolderName = this.changeFolderName.bind(this);\n\t\tthis.cancelEdit = this.cancelEdit.bind(this);\n\t\tthis.onFoldersListUpdate = this.onFoldersListUpdate.bind(this);\n\t\tthis.keyPressed = this.keyPressed.bind(this);\n\t\tthis.deleteFolder = this.deleteFolder.bind(this);\n\t\tthis.onFocusRemove = this.onFocusRemove.bind(this);\n\t\tthis.onDragEnd = this.onDragEnd.bind(this);\n\t\tthis.onMouseMove = this.onMouseMove.bind(this);\n\t\tthis.animateErrorInput = this.animateErrorInput.bind(this);\n\n\t\t// The last known mouse Y position\n\t\tthis.mouseY = null;\n\n\t\t//Reference to a folder name input in error\n\t\tthis.errorInput = React.createRef();\n\t}\n\n\tanimateErrorInput() {\n\t\tif (this.errorInput.current) {\n\t\t\tthis.errorInput.current.classList.remove(\"error\");\n\t\t\tconst flickerInput = setTimeout(() => {\n\t\t\t\tif (this.errorInput.current) {\n\t\t\t\t\tthis.errorInput.current.classList.add(\"error\");\n\t\t\t\t}\n\t\t\t\tclearTimeout(flickerInput);\n\t\t\t}, 500);\n\t\t}\n\t}\n\n\tcancelEdit() {\n\t\tconsole.log(\"cancelling edit\");\n\t\tthis.setState({\n\t\t\trenamingFolder: null,\n\t\t\tisNameError: false,\n\t\t\tfolderNameInput: \"\",\n\t\t});\n\t}\n\n\t/**\n\t * Keeps a track of the last mouse's clientY position\n\t * @param {MouseEvent} event The mouse move event\n\t */\n\tonMouseMove(event) {\n\t\tthis.mouseY = event.clientY;\n\t}\n\n\tonDragEnd({ oldIndex, newIndex }) {\n\t\tstoreActions.reorderFolders(oldIndex, newIndex);\n\t}\n\n\tonAppDrop(event, folder) {\n\t\tevent.preventDefault();\n\t\tconst app = JSON.parse(event.dataTransfer.getData(\"app\"));\n\t\t// Do not do anything if its Advanced App Launcher or dashboards folder\n\t\tif ([ADVANCED_APP_LAUNCHER, DASHBOARDS].indexOf(folder) < 0) {\n\t\t\tstoreActions.addAppToFolder(folder, app);\n\t\t}\n\t}\n\n\tonFoldersListUpdate(error, data) {\n\t\tthis.setState({\n\t\t\tfoldersList: data.value,\n\t\t});\n\t}\n\n\tonFolderClicked(event, folder) {\n\t\tgetStore().setValue(\n\t\t\t{\n\t\t\t\tfield: \"activeFolder\",\n\t\t\t\tvalue: folder,\n\t\t\t},\n\t\t\t(error, data) => {\n\t\t\t\tthis.setState({\n\t\t\t\t\tactiveFolder: folder,\n\t\t\t\t});\n\t\t\t}\n\t\t);\n\t}\n\n\tonFocusRemove(event) {\n\t\tif (this.state.isNameError) {\n\t\t\tthis.animateErrorInput();\n\t\t}\n\t\t// If focus removed and nothing was type, then just hide\n\t\t// and consider it a rename cancel\n\t\tif (!this.state.folderNameInput) {\n\t\t\t// Cancel rename\n\t\t\tthis.setState({\n\t\t\t\trenamingFolder: null,\n\t\t\t\tisNameError: false,\n\t\t\t\tfolderNameInput: \"\",\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\t// Finally, all good and so we can rename the folder\n\t\tthis.attemptRename();\n\t}\n\n\tUNSAFE_componentWillMount() {\n\t\tgetStore().addListener({ field: \"appFolders.list\" }, this.onFoldersListUpdate);\n\t\tdocument.addEventListener(\"mousemove\", this.onMouseMove);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tgetStore().addListener({ field: \"appFolders.list\" }, this.onFoldersListUpdate);\n\t\tdocument.removeEventListener(\"mousemove\", this.onMouseMove);\n\t}\n\n\trenameFolder(name, e) {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\tif (!this.state.isNameError) {\n\t\t\tthis.setState({\n\t\t\t\trenamingFolder: name,\n\t\t\t});\n\t\t}\n\t}\n\n\tchangeFolderName(e) {\n\t\tthis.setState({\n\t\t\tfolderNameInput: e.target.value,\n\t\t});\n\t}\n\n\tdeleteFolder(name, e) {\n\t\te.stopPropagation();\n\t\te.preventDefault();\n\t\t// Do not attempt to delete if user is renaming a folder\n\t\t!this.state.renamingFolder && storeActions.deleteFolder(name);\n\t}\n\n\tkeyPressed(e) {\n\t\tif (e.key === \"Enter\") {\n\t\t\tthis.attemptRename();\n\t\t}\n\t}\n\n\t/**\n\t * To be called when user press Enter or when focus is removed\n\t */\n\tattemptRename() {\n\t\tconst folders = storeActions.getFolders();\n\t\tconst input = this.state.folderNameInput.trim();\n\t\tconst oldName = this.state.renamingFolder;\n\t\tlet newName = input;\n\t\t// Check user input to make sure its at least 1 character\n\t\t// made of string, number or both\n\t\tif (!/^([a-zA-Z0-9\\s]{1,})$/.test(input)) {\n\t\t\t// Do not rename\n\t\t\tconsole.warn(\"A valid folder name is required. /^([a-zA-Z0-9s]{1,})$/\");\n\t\t\treturn this.setState({\n\t\t\t\tisNameError: true,\n\t\t\t});\n\t\t}\n\n\t\t// Check if the submission is the same text as the old name.\n\t\t// If false, renaming will be skipped\n\t\tlet nameChanged = true;\n\t\t// We no longer allow leading or trailing spaces, but the trim on the oldName needs to remain for any existing folders\n\t\tif (oldName.trim() === newName) nameChanged = false;\n\n\t\t// Names must be unique, folders cant share same names\n\t\tif (folders[newName]) {\n\t\t\tlet repeatedFolderIndex = 0;\n\t\t\tdo {\n\t\t\t\trepeatedFolderIndex++;\n\t\t\t} while (Object.keys(folders).includes(`${newName}(${repeatedFolderIndex})`));\n\t\t\tnewName = `${newName}(${repeatedFolderIndex})`;\n\t\t}\n\n\t\tthis.setState(\n\t\t\t{\n\t\t\t\tfolderNameInput: \"\",\n\t\t\t\trenamingFolder: null,\n\t\t\t\tisNameError: false,\n\t\t\t},\n\t\t\t() => {\n\t\t\t\tif (nameChanged) {\n\t\t\t\t\tstoreActions.renameFolder(oldName, newName);\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n\n\t/**\n\t * Given some data, renders the basic folder structure that cannot be unordered. Used for orderable folders too. Those just get wrapped in a Draggable\n\t * @param {*} folder\n\t * @param {*} folderName\n\t * @param {*} index\n\t */\n\trenderFolder(folder, folderName, index) {\n\t\tlet className = \"complex-menu-section-toggle\";\n\t\tif (this.state.activeFolder === folderName) {\n\t\t\tclassName = `${className} active-section-toggle`;\n\t\t}\n\t\tif (folder.icon) {\n\t\t\tclassName = `${className} folder-with-icon`;\n\t\t}\n\n\t\tconst { canDelete, canEdit } = folder;\n\n\t\tlet nameField,\n\t\t\tisEditing = false;\n\t\tif (this.state.renamingFolder === folderName && canEdit) {\n\t\t\tconst { isNameError } = this.state;\n\t\t\tnameField = (\n\t\t\t\t<input\n\t\t\t\t\tid=\"rename\"\n\t\t\t\t\tvalue={this.state.folderNameInput}\n\t\t\t\t\tonChange={this.changeFolderName}\n\t\t\t\t\tonKeyPress={this.keyPressed}\n\t\t\t\t\tonBlur={this.onFocusRemove}\n\t\t\t\t\tclassName={isNameError ? \"error\" : \"\"}\n\t\t\t\t\tautoFocus\n\t\t\t\t\tref={isNameError ? this.errorInput : null}\n\t\t\t\t/>\n\t\t\t);\n\t\t\tisEditing = true;\n\t\t} else if (folderName === \"Advanced App Launcher\") {\n\t\t\tnameField = \"App Launcher\";\n\t\t} else {\n\t\t\tnameField = folderName;\n\t\t}\n\n\t\tconst RenderFolder = (props) => {\n\t\t\tconst { addFavorite, isFavorited, favorites } = useFavorites();\n\t\t\t// If an app is dropped in the Favorites folder, favorite the app\n\t\t\tconst onDrop = (e) => {\n\t\t\t\tprops.onDrop(e);\n\t\t\t\tconst app = JSON.parse(e.dataTransfer.getData(\"app\"));\n\t\t\t\tif (folderName === FAVORITES && !isFavorited(app.name)) {\n\t\t\t\t\tconst favoriteApp = {\n\t\t\t\t\t\tid: app.name,\n\t\t\t\t\t\tcategory: \"Application\",\n\t\t\t\t\t\tname: app.name,\n\t\t\t\t\t\ticon: app.icon,\n\t\t\t\t\t};\n\t\t\t\t\taddFavorite(favoriteApp);\n\t\t\t\t}\n\t\t\t};\n\t\t\t// When favorites changes remove all items from the favorites folder and re-add all current favorites.\n\t\t\tReact.useEffect(() => {\n\t\t\t\tconst existingFavApps = storeActions.getAllAppsFromFolder(FAVORITES);\n\t\t\t\tObject.values(existingFavApps).forEach((app) => {\n\t\t\t\t\tif (!favorites.some((fav) => fav.name === app.name)) {\n\t\t\t\t\t\tstoreActions.removeAppFromFolder(\"Favorites\", app);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tfavorites.forEach((fav) => {\n\t\t\t\t\tconst app = storeActions.findAppByField(\"name\", fav.name);\n\t\t\t\t\t// may have things other than favorites in here.\n\t\t\t\t\tif (app) {\n\t\t\t\t\t\tstoreActions.addAppToFolder(\"Favorites\", app);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}, [favorites]);\n\t\t\treturn (\n\t\t\t\t<div {...props} onDrop={onDrop}>\n\t\t\t\t\t{props.children}\n\t\t\t\t</div>\n\t\t\t);\n\t\t};\n\n\t\tconst showIcon = canEdit || canDelete;\n\n\t\tlet buttons;\n\t\tif (showIcon) {\n\t\t\tif (isEditing) {\n\t\t\t\t// We can't use onClick for these buttons because onBlur causes a re-render of these buttons which means mousedown and mouseup\n\t\t\t\t// technically don't fire on the same button. This means onClick is never fired, so we trigger the buttons on mousedown instead.\n\t\t\t\t// For more information see: https://www.eventbrite.com/engineering/a-story-of-a-react-re-rendering-bug/\n\t\t\t\tbuttons = (\n\t\t\t\t\t<span className=\"folder-action-icons\">\n\t\t\t\t\t\t<i\n\t\t\t\t\t\t\tid=\"confirm-edit\"\n\t\t\t\t\t\t\tclassName=\"ff-check-mark-2\"\n\t\t\t\t\t\t\ttitle=\"Accept Rename\"\n\t\t\t\t\t\t\tonMouseDown={this.attemptRename.bind(this)}\n\t\t\t\t\t\t></i>\n\t\t\t\t\t\t<i id=\"cancel-edit\" className=\"ff-close\" title=\"Cancel\" onMouseDown={this.cancelEdit.bind(this)}></i>\n\t\t\t\t\t</span>\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tbuttons = (\n\t\t\t\t\t<span className=\"folder-action-icons\">\n\t\t\t\t\t\t{canEdit && (\n\t\t\t\t\t\t\t<i className=\"ff-adp-edit\" title=\"Rename\" onClick={this.renameFolder.bind(this, folderName)}></i>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{canDelete && (\n\t\t\t\t\t\t\t<i\n\t\t\t\t\t\t\t\tclassName=\"ff-adp-trash-outline\"\n\t\t\t\t\t\t\t\ttitle=\"Delete Folder\"\n\t\t\t\t\t\t\t\tonClick={this.deleteFolder.bind(this, folderName)}\n\t\t\t\t\t\t\t></i>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</span>\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\t// This DOM will be rendered within a draggable (if the folder can be dragged), and a plain ol div if it cannot be dragged.\n\t\treturn (\n\t\t\t<RenderFolder\n\t\t\t\tonDragOver={(event) => event.preventDefault()}\n\t\t\t\tonDrop={(event) => this.onAppDrop(event, folderName)}\n\t\t\t\tonClick={(event) => this.onFolderClicked(event, folderName)}\n\t\t\t\tclassName={className}\n\t\t\t\tkey={index}\n\t\t\t\ttitle={folderName}\n\t\t\t>\n\t\t\t\t<div className=\"left-nav-label\">\n\t\t\t\t\t{folder.icon && <i className={folder.icon}></i>}\n\t\t\t\t\t<div className=\"folder-name\">{nameField}</div>\n\t\t\t\t</div>\n\t\t\t\t{buttons}\n\t\t\t</RenderFolder>\n\t\t);\n\t}\n\n\t/**\n\t * Render all folders that cannot be reordered.\n\t */\n\trenderUnorderableFolders() {\n\t\tconst folders = storeActions.getFolders();\n\t\tconst unorderableFolders = this.state.foldersList.filter(\n\t\t\t(folderName) => dragDisabled.includes(folderName) && folderName in folders\n\t\t);\n\t\treturn unorderableFolders.map((folderName, index) => {\n\t\t\tconst folder = folders[folderName];\n\t\t\tfolder.icon = null;\n\t\t\treturn this.renderFolder(folder, folderName, index);\n\t\t});\n\t}\n\n\t/**\n\t * Renders all folders that can be reordered (user created folders).\n\t */\n\trenderOrderableFolders() {\n\t\tconst folders = storeActions.getFolders();\n\t\tconst orderableFolders = this.state.foldersList.filter(\n\t\t\t(folderName) => !dragDisabled.includes(folderName) && folderName in folders\n\t\t);\n\t\treturn orderableFolders.map((folderName, index) => {\n\t\t\tconst folder = folders[folderName];\n\t\t\treturn (\n\t\t\t\t<FinsembleDraggable draggableId={folderName} key={index} index={index}>\n\t\t\t\t\t{this.renderFolder(folder, folderName, index)}\n\t\t\t\t</FinsembleDraggable>\n\t\t\t);\n\t\t});\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<div className=\"top\">\n\t\t\t\t<div className=\"folder-list\" ref={this.listDiv}>\n\t\t\t\t\t{this.renderUnorderableFolders()}\n\t\t\t\t\t<FinsembleDnDContext onDragEnd={this.onDragEnd}>{this.renderOrderableFolders()}</FinsembleDnDContext>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"LeftNav.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/components/LeftNav.jsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAEtD,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,KAAK,CAAC,SAAS;IACnD,YAAY,KAAK;QAChB,KAAK,CAAC,KAAK,CAAC,CAAC;IACd,CAAC;IAED,MAAM;QACL,OAAO,CACN,6BAAK,SAAS,EAAC,uBAAuB;YACrC,oBAAC,WAAW,OAAG;YACf,oBAAC,kBAAkB,OAAK,IAAI,CAAC,KAAK,GAAI,CACjC,CACN,CAAC;IACH,CAAC;CACD","sourcesContent":["import React from \"react\";\r\nimport FoldersList from \"./FoldersList\";\r\nimport LeftNavBottomLinks from \"./LeftNavBottomLinks\";\r\n\r\nexport default class LeftNav extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<div className=\"complex-menu-left-nav\">\r\n\t\t\t\t<FoldersList />\r\n\t\t\t\t<LeftNavBottomLinks {...this.props} />\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n}\r\n"]}
1
+ {"version":3,"file":"LeftNav.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/components/LeftNav.jsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAEtD,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,KAAK,CAAC,SAAS;IACnD,YAAY,KAAK;QAChB,KAAK,CAAC,KAAK,CAAC,CAAC;IACd,CAAC;IAED,MAAM;QACL,OAAO,CACN,6BAAK,SAAS,EAAC,uBAAuB;YACrC,oBAAC,WAAW,OAAG;YACf,oBAAC,kBAAkB,OAAK,IAAI,CAAC,KAAK,GAAI,CACjC,CACN,CAAC;IACH,CAAC;CACD","sourcesContent":["import React from \"react\";\nimport FoldersList from \"./FoldersList\";\nimport LeftNavBottomLinks from \"./LeftNavBottomLinks\";\n\nexport default class LeftNav extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<div className=\"complex-menu-left-nav\">\n\t\t\t\t<FoldersList />\n\t\t\t\t<LeftNavBottomLinks {...this.props} />\n\t\t\t</div>\n\t\t);\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"LeftNavBottomLinks.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.jsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport { getStore } from \"../stores/LauncherStore\";\r\nimport AddNewFolder from \"./AddNewFolder\";\r\n\r\nexport default class LeftNavBottomLinks extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tthis.state = {\r\n\t\t\tbottomEntries: [\r\n\t\t\t\t{ name: \"New App\", click: \"showAddAppForm\" },\r\n\t\t\t\t{\r\n\t\t\t\t\tname: \"Restore Defaults\",\r\n\t\t\t\t\ticon: \"ff-arrow-back\",\r\n\t\t\t\t\tclick: \"removeStore\",\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t};\r\n\r\n\t\t// Display the menu item for adding a quick component only if the prop has been explicitly\r\n\t\t// turned on. This is passed all the way down from AdvancedAppLauncher.\r\n\t\t// DEPRECATED: Quick Components is deprecated and will be removed in a future version\r\n\t\tif (props.enableQuickComponents) {\r\n\t\t\tthis.state.bottomEntries.push({\r\n\t\t\t\tname: \"App Catalog\",\r\n\t\t\t\ticon: \"ff-list\",\r\n\t\t\t\tclick: \"openAppMarket\",\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tUNSAFE_componentWillMount() {\r\n\t\t// If user configures the advanced app launcher to use the app catalog, add app catalog button to the bottom entries of the\r\n\t\t// advanced app launcher menu.\r\n\t\tfinsembleWindow.getOptions((_, opts) => {\r\n\t\t\tconst useAppCatalog = opts?.customData?.component?.useAppCatalog;\r\n\t\t\tif (useAppCatalog) {\r\n\t\t\t\tthis.setState((prevState) => {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tbottomEntries: [\r\n\t\t\t\t\t\t\t...prevState.bottomEntries,\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tname: \"App Catalog\",\r\n\t\t\t\t\t\t\t\ticon: \"ff-list\",\r\n\t\t\t\t\t\t\t\tclick: \"openAppMarket\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t],\r\n\t\t\t\t\t};\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Sets isFormVisible to true in store so that main component\r\n\t * renders the AddNewAppForm component or removes it\r\n\t */\r\n\tshowAddAppForm() {\r\n\t\tgetStore().setValue(\r\n\t\t\t{\r\n\t\t\t\tfield: \"isFormVisible\",\r\n\t\t\t\tvalue: true,\r\n\t\t\t},\r\n\t\t\t(error) => {\r\n\t\t\t\terror && console.log(\"Failed to set isFormVisible to true\");\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tremoveStore() {\r\n\t\tFSBL.Clients.DialogManager.open(\r\n\t\t\t\"yesNo\",\r\n\t\t\t{\r\n\t\t\t\tmonitor: \"primary\",\r\n\t\t\t\ttitle: \"Restore App Launcher?\",\r\n\t\t\t\tquestion: \"The application will restart and restore the app launcher to its default state.\",\r\n\t\t\t\tshowTimer: false,\r\n\t\t\t\tincludeNegative: false,\r\n\t\t\t\tincludeCancel: true,\r\n\t\t\t\tshowCancelButton: true,\r\n\t\t\t\tshowNegativeButton: false,\r\n\t\t\t\taffirmativeResponseLabel: \"Restore\",\r\n\t\t\t},\r\n\t\t\t(err, response) => {\r\n\t\t\t\tconst { choice } = response;\r\n\t\t\t\tif (choice) {\r\n\t\t\t\t\tswitch (choice) {\r\n\t\t\t\t\t\tcase \"affirmative\":\r\n\t\t\t\t\t\t\tFSBL.Clients.DistributedStoreClient.removeStore(\r\n\t\t\t\t\t\t\t\t{ store: \"Finsemble-AppLauncher-Store\", global: true },\r\n\t\t\t\t\t\t\t\t() => {\r\n\t\t\t\t\t\t\t\t\tFSBL.restartApplication();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\tcase \"negative\":\r\n\t\t\t\t\t\tcase \"cancel\":\r\n\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<div className=\"bottom\">\r\n\t\t\t\t<AddNewFolder />\r\n\t\t\t\t{this.state.bottomEntries.map((entry, index) => {\r\n\t\t\t\t\tlet handler = entry.click ? this[entry.click] || this.props[entry.click] : Function.prototype;\r\n\t\t\t\t\tlet className = entry.icon ? `${entry.icon} complex-menu-action` : \"ff-plus-2 complex-menu-action\";\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t<div className={className} key={index} onClick={handler}>\r\n\t\t\t\t\t\t\t{entry.name}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t);\r\n\t\t\t\t})}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n}\r\n"]}
1
+ {"version":3,"file":"LeftNavBottomLinks.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.jsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { getStore } from \"../stores/LauncherStore\";\nimport AddNewFolder from \"./AddNewFolder\";\n\nexport default class LeftNavBottomLinks extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tbottomEntries: [\n\t\t\t\t{ name: \"New App\", click: \"showAddAppForm\" },\n\t\t\t\t{\n\t\t\t\t\tname: \"Restore Defaults\",\n\t\t\t\t\ticon: \"ff-arrow-back\",\n\t\t\t\t\tclick: \"removeStore\",\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\n\t\t// Display the menu item for adding a quick component only if the prop has been explicitly\n\t\t// turned on. This is passed all the way down from AdvancedAppLauncher.\n\t\t// DEPRECATED: Quick Components is deprecated and will be removed in a future version\n\t\tif (props.enableQuickComponents) {\n\t\t\tthis.state.bottomEntries.push({\n\t\t\t\tname: \"App Catalog\",\n\t\t\t\ticon: \"ff-list\",\n\t\t\t\tclick: \"openAppMarket\",\n\t\t\t});\n\t\t}\n\t}\n\n\tUNSAFE_componentWillMount() {\n\t\t// If user configures the advanced app launcher to use the app catalog, add app catalog button to the bottom entries of the\n\t\t// advanced app launcher menu.\n\t\tfinsembleWindow.getOptions((_, opts) => {\n\t\t\tconst useAppCatalog = opts?.customData?.component?.useAppCatalog;\n\t\t\tif (useAppCatalog) {\n\t\t\t\tthis.setState((prevState) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tbottomEntries: [\n\t\t\t\t\t\t\t...prevState.bottomEntries,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: \"App Catalog\",\n\t\t\t\t\t\t\t\ticon: \"ff-list\",\n\t\t\t\t\t\t\t\tclick: \"openAppMarket\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Sets isFormVisible to true in store so that main component\n\t * renders the AddNewAppForm component or removes it\n\t */\n\tshowAddAppForm() {\n\t\tgetStore().setValue(\n\t\t\t{\n\t\t\t\tfield: \"isFormVisible\",\n\t\t\t\tvalue: true,\n\t\t\t},\n\t\t\t(error) => {\n\t\t\t\terror && console.log(\"Failed to set isFormVisible to true\");\n\t\t\t}\n\t\t);\n\t}\n\n\tremoveStore() {\n\t\tFSBL.Clients.DialogManager.open(\n\t\t\t\"yesNo\",\n\t\t\t{\n\t\t\t\tmonitor: \"primary\",\n\t\t\t\ttitle: \"Restore App Launcher?\",\n\t\t\t\tquestion: \"The application will restart and restore the app launcher to its default state.\",\n\t\t\t\tshowTimer: false,\n\t\t\t\tincludeNegative: false,\n\t\t\t\tincludeCancel: true,\n\t\t\t\tshowCancelButton: true,\n\t\t\t\tshowNegativeButton: false,\n\t\t\t\taffirmativeResponseLabel: \"Restore\",\n\t\t\t},\n\t\t\t(err, response) => {\n\t\t\t\tconst { choice } = response;\n\t\t\t\tif (choice) {\n\t\t\t\t\tswitch (choice) {\n\t\t\t\t\t\tcase \"affirmative\":\n\t\t\t\t\t\t\tFSBL.Clients.DistributedStoreClient.removeStore(\n\t\t\t\t\t\t\t\t{ store: \"Finsemble-AppLauncher-Store\", global: true },\n\t\t\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\t\t\tFSBL.restartApplication();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\tcase \"negative\":\n\t\t\t\t\t\tcase \"cancel\":\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<div className=\"bottom\">\n\t\t\t\t<AddNewFolder />\n\t\t\t\t{this.state.bottomEntries.map((entry, index) => {\n\t\t\t\t\tlet handler = entry.click ? this[entry.click] || this.props[entry.click] : Function.prototype;\n\t\t\t\t\tlet className = entry.icon ? `${entry.icon} complex-menu-action` : \"ff-plus-2 complex-menu-action\";\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div className={className} key={index} onClick={handler}>\n\t\t\t\t\t\t\t{entry.name}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t);\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"NoAppsFound.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/components/NoAppsFound.jsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,KAAK,CAAC,SAAS;IACvD,YAAY,KAAK;QAChB,KAAK,CAAC,KAAK,CAAC,CAAC;IACd,CAAC;IAED,MAAM;QACL,OAAO,CACN,6BAAK,SAAS,EAAC,YAAY,IACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YAC1C,OAAO,8BAAM,GAAG,EAAE,KAAK,IAAG,OAAO,CAAQ,CAAC;QAC3C,CAAC,CAAC,CACG,CACN,CAAC;IACH,CAAC;CACD","sourcesContent":["import React from \"react\";\r\n\r\nexport default class NoAppsFound extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<div className=\"no-results\">\r\n\t\t\t\t{this.props.message.map((message, index) => {\r\n\t\t\t\t\treturn <span key={index}>{message}</span>;\r\n\t\t\t\t})}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n}\r\n"]}
1
+ {"version":3,"file":"NoAppsFound.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/components/NoAppsFound.jsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,KAAK,CAAC,SAAS;IACvD,YAAY,KAAK;QAChB,KAAK,CAAC,KAAK,CAAC,CAAC;IACd,CAAC;IAED,MAAM;QACL,OAAO,CACN,6BAAK,SAAS,EAAC,YAAY,IACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YAC1C,OAAO,8BAAM,GAAG,EAAE,KAAK,IAAG,OAAO,CAAQ,CAAC;QAC3C,CAAC,CAAC,CACG,CACN,CAAC;IACH,CAAC;CACD","sourcesContent":["import React from \"react\";\n\nexport default class NoAppsFound extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<div className=\"no-results\">\n\t\t\t\t{this.props.message.map((message, index) => {\n\t\t\t\t\treturn <span key={index}>{message}</span>;\n\t\t\t\t})}\n\t\t\t</div>\n\t\t);\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SearchBox.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/components/SearchBox.jsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAElD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,KAAK,CAAC,SAAS;IACrD,YAAY,KAAK;QAChB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG;YACZ,MAAM,EAAE,YAAY,CAAC,aAAa,EAAE;SACpC,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IAKD,QAAQ,CAAC,KAAK;QACb,QAAQ,EAAE,CAAC,QAAQ,CAAC;YACnB,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;SACzB,CAAC,CAAC;IACJ,CAAC;IAED,WAAW;QACV,QAAQ,EAAE,CAAC,QAAQ,CAAC;YACnB,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE,IAAI;SACX,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,EAAE,CAAC;IACd,CAAC;IAED,mBAAmB,CAAC,CAAC,EAAE,MAAM;QAC5B,IAAI,CAAC,QAAQ,CAAC;YACb,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;SAC1B,CAAC,CAAC;IACJ,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;IAED,yBAAyB;QACxB,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC3E,CAAC;IAED,oBAAoB;QACnB,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM;QACL,OAAO,CACN,6BAAK,SAAS,EAAC,YAAY;YAC1B,2BAAG,SAAS,EAAC,WAAW,GAAG;YAC3B,+BACC,QAAQ,QACR,SAAS,EAAC,WAAW,EACrB,GAAG,EAAE,IAAI,CAAC,SAAS,EACnB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EACxB,IAAI,EAAC,MAAM,EACX,WAAW,EAAC,QAAQ,EACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ,GACtB;YACF,gCAAQ,SAAS,EAAC,YAAY,EAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAC,OAAO,GAAU,CAC3E,CACN,CAAC;IACH,CAAC;CACD","sourcesContent":["import React from \"react\";\r\nimport { getStore } from \"../stores/LauncherStore\";\r\nimport storeActions from \"../stores/StoreActions\";\r\n\r\nexport default class SearchBox extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tthis.textInput = React.createRef();\r\n\t\tthis.state = {\r\n\t\t\tsearch: storeActions.getSearchText(),\r\n\t\t};\r\n\t\tthis.onSearch = this.onSearch.bind(this);\r\n\t\tthis.clearSearch = this.clearSearch.bind(this);\r\n\t\tthis.focus = this.focus.bind(this);\r\n\t\tthis.onFilterTextUpdated = this.onFilterTextUpdated.bind(this);\r\n\t}\r\n\r\n\t// Push value to store, which will come back to us via an update.\r\n\t// This redirection is necessary so that other parts of the program can\r\n\t// change filterText and the searchBox will actually update.\r\n\tonSearch(event) {\r\n\t\tgetStore().setValue({\r\n\t\t\tfield: \"filterText\",\r\n\t\t\tvalue: event.target.value,\r\n\t\t});\r\n\t}\r\n\r\n\tclearSearch() {\r\n\t\tgetStore().setValue({\r\n\t\t\tfield: \"filterText\",\r\n\t\t\tvalue: null,\r\n\t\t});\r\n\t\tthis.focus();\r\n\t}\r\n\r\n\tonFilterTextUpdated(e, update) {\r\n\t\tthis.setState({\r\n\t\t\tsearch: update.value || \"\",\r\n\t\t});\r\n\t}\r\n\r\n\tfocus() {\r\n\t\tthis.textInput.current.focus();\r\n\t}\r\n\r\n\tUNSAFE_componentWillMount() {\r\n\t\tgetStore().addListener({ field: \"filterText\" }, this.onFilterTextUpdated);\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tgetStore().removeListener({ field: \"filterText\" }, this.onFilterTextUpdated);\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<div className=\"search-box\">\r\n\t\t\t\t<i className=\"ff-search\" />\r\n\t\t\t\t<input\r\n\t\t\t\t\trequired\r\n\t\t\t\t\tclassName=\"input-box\"\r\n\t\t\t\t\tref={this.textInput}\r\n\t\t\t\t\tvalue={this.state.search}\r\n\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\tplaceholder=\"Search\"\r\n\t\t\t\t\tonChange={this.onSearch}\r\n\t\t\t\t/>\r\n\t\t\t\t<button className=\"close-icon\" onClick={this.clearSearch} type=\"reset\"></button>\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n}\r\n"]}
1
+ {"version":3,"file":"SearchBox.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/components/SearchBox.jsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAElD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,KAAK,CAAC,SAAS;IACrD,YAAY,KAAK;QAChB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG;YACZ,MAAM,EAAE,YAAY,CAAC,aAAa,EAAE;SACpC,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IAKD,QAAQ,CAAC,KAAK;QACb,QAAQ,EAAE,CAAC,QAAQ,CAAC;YACnB,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;SACzB,CAAC,CAAC;IACJ,CAAC;IAED,WAAW;QACV,QAAQ,EAAE,CAAC,QAAQ,CAAC;YACnB,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE,IAAI;SACX,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,EAAE,CAAC;IACd,CAAC;IAED,mBAAmB,CAAC,CAAC,EAAE,MAAM;QAC5B,IAAI,CAAC,QAAQ,CAAC;YACb,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;SAC1B,CAAC,CAAC;IACJ,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;IAED,yBAAyB;QACxB,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC3E,CAAC;IAED,oBAAoB;QACnB,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM;QACL,OAAO,CACN,6BAAK,SAAS,EAAC,YAAY;YAC1B,2BAAG,SAAS,EAAC,WAAW,GAAG;YAC3B,+BACC,QAAQ,QACR,SAAS,EAAC,WAAW,EACrB,GAAG,EAAE,IAAI,CAAC,SAAS,EACnB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EACxB,IAAI,EAAC,MAAM,EACX,WAAW,EAAC,QAAQ,EACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ,GACtB;YACF,gCAAQ,SAAS,EAAC,YAAY,EAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAC,OAAO,GAAU,CAC3E,CACN,CAAC;IACH,CAAC;CACD","sourcesContent":["import React from \"react\";\nimport { getStore } from \"../stores/LauncherStore\";\nimport storeActions from \"../stores/StoreActions\";\n\nexport default class SearchBox extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.textInput = React.createRef();\n\t\tthis.state = {\n\t\t\tsearch: storeActions.getSearchText(),\n\t\t};\n\t\tthis.onSearch = this.onSearch.bind(this);\n\t\tthis.clearSearch = this.clearSearch.bind(this);\n\t\tthis.focus = this.focus.bind(this);\n\t\tthis.onFilterTextUpdated = this.onFilterTextUpdated.bind(this);\n\t}\n\n\t// Push value to store, which will come back to us via an update.\n\t// This redirection is necessary so that other parts of the program can\n\t// change filterText and the searchBox will actually update.\n\tonSearch(event) {\n\t\tgetStore().setValue({\n\t\t\tfield: \"filterText\",\n\t\t\tvalue: event.target.value,\n\t\t});\n\t}\n\n\tclearSearch() {\n\t\tgetStore().setValue({\n\t\t\tfield: \"filterText\",\n\t\t\tvalue: null,\n\t\t});\n\t\tthis.focus();\n\t}\n\n\tonFilterTextUpdated(e, update) {\n\t\tthis.setState({\n\t\t\tsearch: update.value || \"\",\n\t\t});\n\t}\n\n\tfocus() {\n\t\tthis.textInput.current.focus();\n\t}\n\n\tUNSAFE_componentWillMount() {\n\t\tgetStore().addListener({ field: \"filterText\" }, this.onFilterTextUpdated);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tgetStore().removeListener({ field: \"filterText\" }, this.onFilterTextUpdated);\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<div className=\"search-box\">\n\t\t\t\t<i className=\"ff-search\" />\n\t\t\t\t<input\n\t\t\t\t\trequired\n\t\t\t\t\tclassName=\"input-box\"\n\t\t\t\t\tref={this.textInput}\n\t\t\t\t\tvalue={this.state.search}\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tplaceholder=\"Search\"\n\t\t\t\t\tonChange={this.onSearch}\n\t\t\t\t/>\n\t\t\t\t<button className=\"close-icon\" onClick={this.clearSearch} type=\"reset\"></button>\n\t\t\t</div>\n\t\t);\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SortBy.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/components/SortBy.jsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAClD,OAAO,aAAa,MAAM,yBAAyB,CAAC;AAEpD,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,KAAK,CAAC,SAAS;IAClD,YAAY,KAAK;QAChB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG;YACZ,MAAM,EAAE,YAAY,CAAC,SAAS,EAAE;SAChC,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,aAAa,CAAC,MAAM;QACnB,IAAI,CAAC,QAAQ,CACZ;YACC,MAAM,EAAE,MAAM;SACd,EACD,GAAG,EAAE;YACJ,QAAQ,EAAE,CAAC,QAAQ,CAAC;gBACnB,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;aACxB,CAAC,CAAC;QACJ,CAAC,CACD,CAAC;IACH,CAAC;IAED,iBAAiB;QAChB,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACvD,IAAI,OAAO,GAAG,sBAAsB,CAAC;YACrC,IAAI,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM;gBAAE,OAAO,IAAI,QAAQ,CAAC;YACtD,OAAO,CACN,8BAAM,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,OAAO,IAC7E,MAAM,CACD,CACP,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,MAAM;QACL,OAAO,6BAAK,SAAS,EAAC,MAAM;;YAAW,IAAI,CAAC,iBAAiB,EAAE,CAAO,CAAC;IACxE,CAAC;CACD","sourcesContent":["import React from \"react\";\r\nimport { getStore } from \"../stores/LauncherStore\";\r\nimport storeActions from \"../stores/StoreActions\";\r\nimport sortFunctions from \"../utils/sort-functions\";\r\n\r\nexport default class SortBy extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tthis.state = {\r\n\t\t\tsortBy: storeActions.getSortBy(),\r\n\t\t};\r\n\t\tthis.onOptionClick = this.onOptionClick.bind(this);\r\n\t}\r\n\r\n\tonOptionClick(option) {\r\n\t\tthis.setState(\r\n\t\t\t{\r\n\t\t\t\tsortBy: option,\r\n\t\t\t},\r\n\t\t\t() => {\r\n\t\t\t\tgetStore().setValue({\r\n\t\t\t\t\tfield: \"sortBy\",\r\n\t\t\t\t\tvalue: this.state.sortBy,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\trenderOptionsList() {\r\n\t\treturn Object.keys(sortFunctions).map((option, index) => {\r\n\t\t\tlet classes = \"sort-option pointer \";\r\n\t\t\tif (option === this.state.sortBy) classes += \"active\";\r\n\t\t\treturn (\r\n\t\t\t\t<span key={index} onClick={() => this.onOptionClick(option)} className={classes}>\r\n\t\t\t\t\t{option}\r\n\t\t\t\t</span>\r\n\t\t\t);\r\n\t\t});\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn <div className=\"sort\">Sort by: {this.renderOptionsList()}</div>;\r\n\t}\r\n}\r\n"]}
1
+ {"version":3,"file":"SortBy.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/components/SortBy.jsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAClD,OAAO,aAAa,MAAM,yBAAyB,CAAC;AAEpD,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,KAAK,CAAC,SAAS;IAClD,YAAY,KAAK;QAChB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG;YACZ,MAAM,EAAE,YAAY,CAAC,SAAS,EAAE;SAChC,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,aAAa,CAAC,MAAM;QACnB,IAAI,CAAC,QAAQ,CACZ;YACC,MAAM,EAAE,MAAM;SACd,EACD,GAAG,EAAE;YACJ,QAAQ,EAAE,CAAC,QAAQ,CAAC;gBACnB,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;aACxB,CAAC,CAAC;QACJ,CAAC,CACD,CAAC;IACH,CAAC;IAED,iBAAiB;QAChB,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACvD,IAAI,OAAO,GAAG,sBAAsB,CAAC;YACrC,IAAI,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM;gBAAE,OAAO,IAAI,QAAQ,CAAC;YACtD,OAAO,CACN,8BAAM,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,OAAO,IAC7E,MAAM,CACD,CACP,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,MAAM;QACL,OAAO,6BAAK,SAAS,EAAC,MAAM;;YAAW,IAAI,CAAC,iBAAiB,EAAE,CAAO,CAAC;IACxE,CAAC;CACD","sourcesContent":["import React from \"react\";\nimport { getStore } from \"../stores/LauncherStore\";\nimport storeActions from \"../stores/StoreActions\";\nimport sortFunctions from \"../utils/sort-functions\";\n\nexport default class SortBy extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tsortBy: storeActions.getSortBy(),\n\t\t};\n\t\tthis.onOptionClick = this.onOptionClick.bind(this);\n\t}\n\n\tonOptionClick(option) {\n\t\tthis.setState(\n\t\t\t{\n\t\t\t\tsortBy: option,\n\t\t\t},\n\t\t\t() => {\n\t\t\t\tgetStore().setValue({\n\t\t\t\t\tfield: \"sortBy\",\n\t\t\t\t\tvalue: this.state.sortBy,\n\t\t\t\t});\n\t\t\t}\n\t\t);\n\t}\n\n\trenderOptionsList() {\n\t\treturn Object.keys(sortFunctions).map((option, index) => {\n\t\t\tlet classes = \"sort-option pointer \";\n\t\t\tif (option === this.state.sortBy) classes += \"active\";\n\t\t\treturn (\n\t\t\t\t<span key={index} onClick={() => this.onOptionClick(option)} className={classes}>\n\t\t\t\t\t{option}\n\t\t\t\t</span>\n\t\t\t);\n\t\t});\n\t}\n\n\trender() {\n\t\treturn <div className=\"sort\">Sort by: {this.renderOptionsList()}</div>;\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"TagsList.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/components/TagsList.jsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,qBAAqB,CAAC;AACtC,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,IAAI,KAAK,CAAC;AAEV,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,KAAK,CAAC,SAAS;IACpD,YAAY,KAAK;QAChB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG;YACZ,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE;SAC5B,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,KAAK,GAAG,QAAQ,EAAE,CAAC;IACpB,CAAC;IAED,WAAW,CAAC,GAAG;QACd,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,eAAe,CAAC,KAAK,EAAE,IAAI;QAC1B,IAAI,CAAC,QAAQ,CAAC;YACb,IAAI,EAAE,IAAI,CAAC,KAAK;SAChB,CAAC,CAAC;IACJ,CAAC;IAED,iBAAiB;QAChB,KAAK,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAC1E,CAAC;IAED,oBAAoB;QACnB,KAAK,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAC7E,CAAC;IAED,cAAc;QACb,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,oBAAC,GAAG,IAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,WAAW,GAAI,CAAC,CAAC;IACzG,CAAC;IAED,MAAM;QACL,OAAO,6BAAK,SAAS,EAAC,WAAW,IAAE,IAAI,CAAC,cAAc,EAAE,CAAO,CAAC;IACjE,CAAC;CACD","sourcesContent":["import React from \"react\";\r\nimport Tag from \"../../../shared/Tag\";\r\nimport storeActions from \"../stores/StoreActions\";\r\nimport { getStore } from \"../stores/LauncherStore\";\r\n\r\nlet store;\r\n\r\nexport default class TagsList extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tthis.state = {\r\n\t\t\ttags: storeActions.getTags(),\r\n\t\t};\r\n\t\tthis.onTagDelete = this.onTagDelete.bind(this);\r\n\t\tthis.onTagListUpdate = this.onTagListUpdate.bind(this);\r\n\t\tstore = getStore();\r\n\t}\r\n\r\n\tonTagDelete(tag) {\r\n\t\tstoreActions.deleteTag(tag);\r\n\t}\r\n\r\n\tonTagListUpdate(error, data) {\r\n\t\tthis.setState({\r\n\t\t\ttags: data.value,\r\n\t\t});\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tstore.addListener({ field: \"activeLauncherTags\" }, this.onTagListUpdate);\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tstore.removeListener({ field: \"activeLauncherTags\" }, this.onTagListUpdate);\r\n\t}\r\n\r\n\trenderTagsList() {\r\n\t\tif (!this.state.tags) return null;\r\n\t\treturn this.state.tags.map((tag, index) => <Tag key={index} name={tag} removeTag={this.onTagDelete} />);\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn <div className=\"tags-list\">{this.renderTagsList()}</div>;\r\n\t}\r\n}\r\n"]}
1
+ {"version":3,"file":"TagsList.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/components/TagsList.jsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,qBAAqB,CAAC;AACtC,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,IAAI,KAAK,CAAC;AAEV,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,KAAK,CAAC,SAAS;IACpD,YAAY,KAAK;QAChB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG;YACZ,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE;SAC5B,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,KAAK,GAAG,QAAQ,EAAE,CAAC;IACpB,CAAC;IAED,WAAW,CAAC,GAAG;QACd,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,eAAe,CAAC,KAAK,EAAE,IAAI;QAC1B,IAAI,CAAC,QAAQ,CAAC;YACb,IAAI,EAAE,IAAI,CAAC,KAAK;SAChB,CAAC,CAAC;IACJ,CAAC;IAED,iBAAiB;QAChB,KAAK,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAC1E,CAAC;IAED,oBAAoB;QACnB,KAAK,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAC7E,CAAC;IAED,cAAc;QACb,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,oBAAC,GAAG,IAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,WAAW,GAAI,CAAC,CAAC;IACzG,CAAC;IAED,MAAM;QACL,OAAO,6BAAK,SAAS,EAAC,WAAW,IAAE,IAAI,CAAC,cAAc,EAAE,CAAO,CAAC;IACjE,CAAC;CACD","sourcesContent":["import React from \"react\";\nimport Tag from \"../../../shared/Tag\";\nimport storeActions from \"../stores/StoreActions\";\nimport { getStore } from \"../stores/LauncherStore\";\n\nlet store;\n\nexport default class TagsList extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\ttags: storeActions.getTags(),\n\t\t};\n\t\tthis.onTagDelete = this.onTagDelete.bind(this);\n\t\tthis.onTagListUpdate = this.onTagListUpdate.bind(this);\n\t\tstore = getStore();\n\t}\n\n\tonTagDelete(tag) {\n\t\tstoreActions.deleteTag(tag);\n\t}\n\n\tonTagListUpdate(error, data) {\n\t\tthis.setState({\n\t\t\ttags: data.value,\n\t\t});\n\t}\n\n\tcomponentDidMount() {\n\t\tstore.addListener({ field: \"activeLauncherTags\" }, this.onTagListUpdate);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tstore.removeListener({ field: \"activeLauncherTags\" }, this.onTagListUpdate);\n\t}\n\n\trenderTagsList() {\n\t\tif (!this.state.tags) return null;\n\t\treturn this.state.tags.map((tag, index) => <Tag key={index} name={tag} removeTag={this.onTagDelete} />);\n\t}\n\n\trender() {\n\t\treturn <div className=\"tags-list\">{this.renderTagsList()}</div>;\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"TagsMenu.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/components/TagsMenu.jsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,KAAK,CAAC,SAAS;IACpD,YAAY,KAAK;QAChB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG;YACZ,SAAS,EAAE,KAAK;SAChB,CAAC;QAEF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,UAAU;QACT,IAAI,CAAC,QAAQ,CAAC;YACb,SAAS,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS;SAChC,CAAC,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,IAAI;QACf,IAAI,CAAC,QAAQ,CAAC;YACb,SAAS,EAAE,KAAK;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,UAAU;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACzE,OAAO,CACN,6BACC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EACzE,SAAS,EAAC,WAAW,EACrB,KAAK,EAAE,MAAM;YAEb;gBACE,GAAG;gBACH,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBAC1B,OAAO,CACN,4BAAI,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IACnD,IAAI,CACD,CACL,CAAC;gBACH,CAAC,CAAC;gBAAE,GAAG,CACH,CACA,CACN,CAAC;IACH,CAAC;IACD,MAAM;QACL,OAAO,CACN,6BAAK,SAAS,EAAC,mBAAmB,EAAC,OAAO,EAAE,IAAI,CAAC,UAAU;YAC1D;gBACC,2BAAG,SAAS,EAAC,QAAQ,GAAG;gBACvB,IAAI,CAAC,KAAK,CAAC,KAAK,CACX;YACN,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CACrC,CACN,CAAC;IACH,CAAC;CACD","sourcesContent":["/*!\r\n * Copyright 2018 by ChartIQ, Inc.\r\n * All rights reserved.\r\n *\r\n */\r\n\r\nimport React from \"react\";\r\n\r\n/**\r\n * A reusable fly out component for tags and any other lists\r\n * This component creates a button with a customizable label\r\n * and an item click handler.\r\n * Example: <TagsMenu label=\"Tags\" align=\"left\" list={list} onItemClick={handler}/>\r\n **/\r\nexport default class TagsMenu extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tthis.state = {\r\n\t\t\tisVisible: false,\r\n\t\t};\r\n\t\t// Bind context\r\n\t\tthis.toggleMenu = this.toggleMenu.bind(this);\r\n\t\tthis.onItemClick = this.onItemClick.bind(this);\r\n\t}\r\n\r\n\ttoggleMenu() {\r\n\t\tthis.setState({\r\n\t\t\tisVisible: !this.state.isVisible,\r\n\t\t});\r\n\t}\r\n\r\n\tonItemClick(item) {\r\n\t\tthis.setState({\r\n\t\t\tisVisible: false,\r\n\t\t});\r\n\t\tthis.props.onItemClick(item);\r\n\t}\r\n\r\n\trenderList() {\r\n\t\tconst items = this.props.list;\r\n\t\tconst styles = this.props.align === \"right\" ? { right: 0 } : { left: 0 };\r\n\t\treturn (\r\n\t\t\t<div\r\n\t\t\t\tonMouseLeave={this.state.isVisible ? this.toggleMenu : Function.prototype}\r\n\t\t\t\tclassName=\"tags-menu\"\r\n\t\t\t\tstyle={styles}\r\n\t\t\t>\r\n\t\t\t\t<ul>\r\n\t\t\t\t\t{\" \"}\r\n\t\t\t\t\t{items.map((item, index) => {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<li key={index} onClick={() => this.onItemClick(item)}>\r\n\t\t\t\t\t\t\t\t{item}\r\n\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})}{\" \"}\r\n\t\t\t\t</ul>\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<div className=\"tags-menu-wrapper\" onClick={this.toggleMenu}>\r\n\t\t\t\t<span>\r\n\t\t\t\t\t<i className=\"ff-tag\" />\r\n\t\t\t\t\t{this.props.label}\r\n\t\t\t\t</span>\r\n\t\t\t\t{this.state.isVisible && this.renderList()}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n}\r\n"]}
1
+ {"version":3,"file":"TagsMenu.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/components/TagsMenu.jsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,KAAK,CAAC,SAAS;IACpD,YAAY,KAAK;QAChB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG;YACZ,SAAS,EAAE,KAAK;SAChB,CAAC;QAEF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,UAAU;QACT,IAAI,CAAC,QAAQ,CAAC;YACb,SAAS,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS;SAChC,CAAC,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,IAAI;QACf,IAAI,CAAC,QAAQ,CAAC;YACb,SAAS,EAAE,KAAK;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,UAAU;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACzE,OAAO,CACN,6BACC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EACzE,SAAS,EAAC,WAAW,EACrB,KAAK,EAAE,MAAM;YAEb;gBACE,GAAG;gBACH,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBAC1B,OAAO,CACN,4BAAI,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IACnD,IAAI,CACD,CACL,CAAC;gBACH,CAAC,CAAC;gBAAE,GAAG,CACH,CACA,CACN,CAAC;IACH,CAAC;IACD,MAAM;QACL,OAAO,CACN,6BAAK,SAAS,EAAC,mBAAmB,EAAC,OAAO,EAAE,IAAI,CAAC,UAAU;YAC1D;gBACC,2BAAG,SAAS,EAAC,QAAQ,GAAG;gBACvB,IAAI,CAAC,KAAK,CAAC,KAAK,CACX;YACN,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CACrC,CACN,CAAC;IACH,CAAC;CACD","sourcesContent":["/*!\n * Copyright 2018 by ChartIQ, Inc.\n * All rights reserved.\n *\n */\n\nimport React from \"react\";\n\n/**\n * A reusable fly out component for tags and any other lists\n * This component creates a button with a customizable label\n * and an item click handler.\n * Example: <TagsMenu label=\"Tags\" align=\"left\" list={list} onItemClick={handler}/>\n **/\nexport default class TagsMenu extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tisVisible: false,\n\t\t};\n\t\t// Bind context\n\t\tthis.toggleMenu = this.toggleMenu.bind(this);\n\t\tthis.onItemClick = this.onItemClick.bind(this);\n\t}\n\n\ttoggleMenu() {\n\t\tthis.setState({\n\t\t\tisVisible: !this.state.isVisible,\n\t\t});\n\t}\n\n\tonItemClick(item) {\n\t\tthis.setState({\n\t\t\tisVisible: false,\n\t\t});\n\t\tthis.props.onItemClick(item);\n\t}\n\n\trenderList() {\n\t\tconst items = this.props.list;\n\t\tconst styles = this.props.align === \"right\" ? { right: 0 } : { left: 0 };\n\t\treturn (\n\t\t\t<div\n\t\t\t\tonMouseLeave={this.state.isVisible ? this.toggleMenu : Function.prototype}\n\t\t\t\tclassName=\"tags-menu\"\n\t\t\t\tstyle={styles}\n\t\t\t>\n\t\t\t\t<ul>\n\t\t\t\t\t{\" \"}\n\t\t\t\t\t{items.map((item, index) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<li key={index} onClick={() => this.onItemClick(item)}>\n\t\t\t\t\t\t\t\t{item}\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}{\" \"}\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t);\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<div className=\"tags-menu-wrapper\" onClick={this.toggleMenu}>\n\t\t\t\t<span>\n\t\t\t\t\t<i className=\"ff-tag\" />\n\t\t\t\t\t{this.props.label}\n\t\t\t\t</span>\n\t\t\t\t{this.state.isVisible && this.renderList()}\n\t\t\t</div>\n\t\t);\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleFavoriteDropdown.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/components/ToggleFavoriteDropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAQ9D,MAAM,CAAC,MAAM,sBAAsB,GAA8C,CAAC,KAAK,EAAE,EAAE;IAC1F,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,YAAY,EAAE,CAAC;IACpE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAErD,MAAM,cAAc,GAAG,CAAC,CAAmB,EAAE,EAAE;QAC9C,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,WAAW,CAAC,EAAE,CAAC,EAAE;YACpB,cAAc,CAAC,EAAE,CAAC,CAAC;SACnB;aAAM;YACN,WAAW,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;SAC1C;QAED,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAA6B,EAAE,EAAE;YACnD,OAAO,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QACxC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC;IAElE,OAAO,6BAAK,OAAO,EAAE,cAAc,IAAG,aAAa,CAAO,CAAC;AAC5D,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\r\nimport { useFavorites } from \"../../../../hooks/useFavorites\";\r\nimport { FavoriteDropdown } from \"../../../../types/advancedAppLauncherTypes\";\r\n\r\n/**\r\n * Toggles the Favorite on/off when selected from the dropdown menu, then adds or removes it from the favorites folder.\r\n * After selection the dropdown menu is closed.\r\n * @param props\r\n */\r\nexport const ToggleFavoriteDropdown: React.FunctionComponent<FavoriteDropdown> = (props) => {\r\n\tconst { isFavorited, addFavorite, removeFavorite } = useFavorites();\r\n\tconst { id, category, name, icon, instance } = props;\r\n\r\n\tconst toggleFavorite = (e: React.MouseEvent) => {\r\n\t\te.preventDefault();\r\n\t\te.stopPropagation();\r\n\t\tif (isFavorited(id)) {\r\n\t\t\tremoveFavorite(id);\r\n\t\t} else {\r\n\t\t\taddFavorite({ id, category, name, icon });\r\n\t\t}\r\n\r\n\t\tinstance.setState((state: { isVisible: boolean }) => {\r\n\t\t\treturn { isVisible: !state.isVisible };\r\n\t\t});\r\n\t};\r\n\r\n\tconst favoriteValue = isFavorited(id) ? \"Unfavorite\" : \"Favorite\";\r\n\r\n\treturn <div onClick={toggleFavorite}>{favoriteValue}</div>;\r\n};\r\n"]}
1
+ {"version":3,"file":"ToggleFavoriteDropdown.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/components/ToggleFavoriteDropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAQ9D,MAAM,CAAC,MAAM,sBAAsB,GAA8C,CAAC,KAAK,EAAE,EAAE;IAC1F,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,YAAY,EAAE,CAAC;IACpE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAErD,MAAM,cAAc,GAAG,CAAC,CAAmB,EAAE,EAAE;QAC9C,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,WAAW,CAAC,EAAE,CAAC,EAAE;YACpB,cAAc,CAAC,EAAE,CAAC,CAAC;SACnB;aAAM;YACN,WAAW,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;SAC1C;QAED,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAA6B,EAAE,EAAE;YACnD,OAAO,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QACxC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC;IAElE,OAAO,6BAAK,OAAO,EAAE,cAAc,IAAG,aAAa,CAAO,CAAC;AAC5D,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\nimport { useFavorites } from \"../../../../hooks/useFavorites\";\nimport { FavoriteDropdown } from \"../../../../types/advancedAppLauncherTypes\";\n\n/**\n * Toggles the Favorite on/off when selected from the dropdown menu, then adds or removes it from the favorites folder.\n * After selection the dropdown menu is closed.\n * @param props\n */\nexport const ToggleFavoriteDropdown: React.FunctionComponent<FavoriteDropdown> = (props) => {\n\tconst { isFavorited, addFavorite, removeFavorite } = useFavorites();\n\tconst { id, category, name, icon, instance } = props;\n\n\tconst toggleFavorite = (e: React.MouseEvent) => {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\tif (isFavorited(id)) {\n\t\t\tremoveFavorite(id);\n\t\t} else {\n\t\t\taddFavorite({ id, category, name, icon });\n\t\t}\n\n\t\tinstance.setState((state: { isVisible: boolean }) => {\n\t\t\treturn { isVisible: !state.isVisible };\n\t\t});\n\t};\n\n\tconst favoriteValue = isFavorited(id) ? \"Unfavorite\" : \"Favorite\";\n\n\treturn <div onClick={toggleFavorite}>{favoriteValue}</div>;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"AppDirectory.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/modules/AppDirectory.js"],"names":[],"mappings":"AAKA,MAAM,CAAC,OAAO,OAAO,YAAY;IAChC,YAAY,MAAM;QACjB,OAAO,MAAM,CAAC;IACf,CAAC;CACD","sourcesContent":["/**\r\n * Copyright 2018 by ChartIQ, Inc.\r\n * All rights reserved.\r\n * To be implemented..\r\n */\r\nexport default class AppDirectory {\r\n\tconstructor(client) {\r\n\t\treturn client;\r\n\t}\r\n}\r\n"]}
1
+ {"version":3,"file":"AppDirectory.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/modules/AppDirectory.js"],"names":[],"mappings":"AAKA,MAAM,CAAC,OAAO,OAAO,YAAY;IAChC,YAAY,MAAM;QACjB,OAAO,MAAM,CAAC;IACf,CAAC;CACD","sourcesContent":["/**\n * Copyright 2018 by ChartIQ, Inc.\n * All rights reserved.\n * To be implemented..\n */\nexport default class AppDirectory {\n\tconstructor(client) {\n\t\treturn client;\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"FDC3.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/modules/FDC3.js"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * Copyright 2018 by ChartIQ, Inc.\r\n * All rights reserved.\r\n *\r\n * FDC3 App directory client, I will be using fetch()\r\n * to make calls to the app directory web service, even though I'm\r\n * not sure where did fetch() come from, will investigate later\r\n */\r\nexport default class FDC3 {\r\n\tconstructor(config = {}, creds = {}) {\r\n\t\tif (!config.url) {\r\n\t\t\tthrow new Error(\"Please specify the url of the app directory.\");\r\n\t\t}\r\n\t\tthis.creds = creds;\r\n\t\tthis.config = {\r\n\t\t\turl: config.url.replace(/\\/+$/, \"\"),\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * Http get wrapper\r\n\t * @param {string} path The restful method path\r\n\t * @param {function} done The callback function\r\n\t */\r\n\t_get(path, done) {\r\n\t\tfetch(this.config.url + path, {\r\n\t\t\tmethod: \"GET\",\r\n\t\t})\r\n\t\t\t.then((response) => {\r\n\t\t\t\tresponse.json().then((data) => {\r\n\t\t\t\t\t// We are expecting 200 here for data\r\n\t\t\t\t\tif (response.status !== 200) {\r\n\t\t\t\t\t\t// We have a problem, data as error message\r\n\t\t\t\t\t\tdone(data);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// All good, no problem\r\n\t\t\t\t\t\tdone(null, data);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tdone({\r\n\t\t\t\t\tmessage: `Request failed ${error.message}`,\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t *\r\n\t * @param {string} path The restful method path\r\n\t * @param {object} params The post data\r\n\t * @param {function} done The callback function\r\n\t */\r\n\t_post(path, params, done) {\r\n\t\tfetch(this.config.url + path, {\r\n\t\t\tmethod: \"POST\",\r\n\t\t\tcredentials: \"include\",\r\n\t\t\tbody: JSON.stringify(params),\r\n\t\t\theaders: {\r\n\t\t\t\t\"Content-Type\": \"application/json\",\r\n\t\t\t},\r\n\t\t})\r\n\t\t\t.then((response) => {\r\n\t\t\t\tresponse.json().then((data) => {\r\n\t\t\t\t\t// We are expecting 200 here for data\r\n\t\t\t\t\tif (response.status !== 200) {\r\n\t\t\t\t\t\t// We have a problem, data as error message\r\n\t\t\t\t\t\tdone(data);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// All good, no problem\r\n\t\t\t\t\t\tdone(null, data);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tdone({\r\n\t\t\t\t\tmessage: `Request failed ${error.message}`,\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Returns all applications\r\n\t * @param {function} callback The optional callback function\r\n\t */\r\n\tgetAll(callback) {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tthis._get(\"/apps/\", (error, data) => {\r\n\t\t\t\tif (error) {\r\n\t\t\t\t\treject(error);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tresolve(data.applications);\r\n\t\t\t\t}\r\n\t\t\t\tif (callback) {\r\n\t\t\t\t\tcallback(error, !error && data.applications);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a single application in results\r\n\t * @param {string} appId The app id\r\n\t */\r\n\tget(appId, callback) {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tthis._get(`/apps/${appId}`, (error, data) => {\r\n\t\t\t\tif (error) {\r\n\t\t\t\t\treject(error);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tresolve(data.applications[0]);\r\n\t\t\t\t}\r\n\t\t\t\tif (callback) {\r\n\t\t\t\t\tcallback(error, !error && data.applications[0]);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Returns unique tags\r\n\t * @param {function} callback The optional callback function\r\n\t */\r\n\tgetTags(callback) {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tthis._get(\"/tags/\", (error, data) => {\r\n\t\t\t\tif (error) {\r\n\t\t\t\t\treject(error);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tresolve(data.tags);\r\n\t\t\t\t}\r\n\t\t\t\tif (callback) {\r\n\t\t\t\t\tcallback(error, !error && data.tags);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a list of applications based on text and filter\r\n\t * @param {object} params The search criteria\r\n\t * @param {function} callback The callback function\r\n\t * @example search({text: 'blah', filter: {tag: 'newrelease'}})\r\n\t */\r\n\tsearch(params, callback) {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tthis._post(\"/apps/search\", params, (error, data) => {\r\n\t\t\t\tif (error) {\r\n\t\t\t\t\treject(error);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tresolve(data.applications);\r\n\t\t\t\t}\r\n\t\t\t\tif (callback) {\r\n\t\t\t\t\tcallback(error, !error && data.applications);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n}\r\n"]}
1
+ {"version":3,"file":"FDC3.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/modules/FDC3.js"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright 2018 by ChartIQ, Inc.\n * All rights reserved.\n *\n * FDC3 App directory client, I will be using fetch()\n * to make calls to the app directory web service, even though I'm\n * not sure where did fetch() come from, will investigate later\n */\nexport default class FDC3 {\n\tconstructor(config = {}, creds = {}) {\n\t\tif (!config.url) {\n\t\t\tthrow new Error(\"Please specify the url of the app directory.\");\n\t\t}\n\t\tthis.creds = creds;\n\t\tthis.config = {\n\t\t\turl: config.url.replace(/\\/+$/, \"\"),\n\t\t};\n\t}\n\n\t/**\n\t * Http get wrapper\n\t * @param {string} path The restful method path\n\t * @param {function} done The callback function\n\t */\n\t_get(path, done) {\n\t\tfetch(this.config.url + path, {\n\t\t\tmethod: \"GET\",\n\t\t})\n\t\t\t.then((response) => {\n\t\t\t\tresponse.json().then((data) => {\n\t\t\t\t\t// We are expecting 200 here for data\n\t\t\t\t\tif (response.status !== 200) {\n\t\t\t\t\t\t// We have a problem, data as error message\n\t\t\t\t\t\tdone(data);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// All good, no problem\n\t\t\t\t\t\tdone(null, data);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tdone({\n\t\t\t\t\tmessage: `Request failed ${error.message}`,\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\t/**\n\t *\n\t * @param {string} path The restful method path\n\t * @param {object} params The post data\n\t * @param {function} done The callback function\n\t */\n\t_post(path, params, done) {\n\t\tfetch(this.config.url + path, {\n\t\t\tmethod: \"POST\",\n\t\t\tcredentials: \"include\",\n\t\t\tbody: JSON.stringify(params),\n\t\t\theaders: {\n\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t},\n\t\t})\n\t\t\t.then((response) => {\n\t\t\t\tresponse.json().then((data) => {\n\t\t\t\t\t// We are expecting 200 here for data\n\t\t\t\t\tif (response.status !== 200) {\n\t\t\t\t\t\t// We have a problem, data as error message\n\t\t\t\t\t\tdone(data);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// All good, no problem\n\t\t\t\t\t\tdone(null, data);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tdone({\n\t\t\t\t\tmessage: `Request failed ${error.message}`,\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\t/**\n\t * Returns all applications\n\t * @param {function} callback The optional callback function\n\t */\n\tgetAll(callback) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis._get(\"/apps/\", (error, data) => {\n\t\t\t\tif (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t} else {\n\t\t\t\t\tresolve(data.applications);\n\t\t\t\t}\n\t\t\t\tif (callback) {\n\t\t\t\t\tcallback(error, !error && data.applications);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Returns a single application in results\n\t * @param {string} appId The app id\n\t */\n\tget(appId, callback) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis._get(`/apps/${appId}`, (error, data) => {\n\t\t\t\tif (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t} else {\n\t\t\t\t\tresolve(data.applications[0]);\n\t\t\t\t}\n\t\t\t\tif (callback) {\n\t\t\t\t\tcallback(error, !error && data.applications[0]);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Returns unique tags\n\t * @param {function} callback The optional callback function\n\t */\n\tgetTags(callback) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis._get(\"/tags/\", (error, data) => {\n\t\t\t\tif (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t} else {\n\t\t\t\t\tresolve(data.tags);\n\t\t\t\t}\n\t\t\t\tif (callback) {\n\t\t\t\t\tcallback(error, !error && data.tags);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Returns a list of applications based on text and filter\n\t * @param {object} params The search criteria\n\t * @param {function} callback The callback function\n\t * @example search({text: 'blah', filter: {tag: 'newrelease'}})\n\t */\n\tsearch(params, callback) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis._post(\"/apps/search\", params, (error, data) => {\n\t\t\t\tif (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t} else {\n\t\t\t\t\tresolve(data.applications);\n\t\t\t\t}\n\t\t\t\tif (callback) {\n\t\t\t\t\tcallback(error, !error && data.applications);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"LauncherStore.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/stores/LauncherStore.js"],"names":[],"mappings":"AAAA,IAAI,aAAa,CAAC;AAElB,MAAM,IAAI,GAAG;IACZ,KAAK,EAAE,eAAe;IACtB,KAAK,EAAE,uBAAuB;CAC9B,CAAC;AAEF,SAAS,WAAW,CAAC,IAAI;IACxB,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAC3C;QACC,KAAK,EAAE,6BAA6B;QACpC,MAAM,EAAE,IAAI;KACZ,EACD,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAChB,aAAa,GAAG,KAAK,CAAC;QACtB,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC3B,CAAC,CACD,CAAC;AACH,CAAC;AAED,SAAS,QAAQ;IAChB,OAAO,aAAa,CAAC;AACtB,CAAC;AAED,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC","sourcesContent":["let launcherStore;\r\n\r\nconst data = {\r\n\tfield: \"defaultFolder\",\r\n\tvalue: \"Advanced App Launcher\",\r\n};\r\n\r\nfunction createStore(done) {\r\n\tFSBL.Clients.DistributedStoreClient.getStore(\r\n\t\t{\r\n\t\t\tstore: \"Finsemble-AppLauncher-Store\",\r\n\t\t\tglobal: true,\r\n\t\t},\r\n\t\t(error, store) => {\r\n\t\t\tlauncherStore = store;\r\n\t\t\tlauncherStore.setValue(data);\r\n\t\t\tdone(null, launcherStore);\r\n\t\t}\r\n\t);\r\n}\r\n\r\nfunction getStore() {\r\n\treturn launcherStore;\r\n}\r\n\r\nexport { createStore, getStore };\r\n"]}
1
+ {"version":3,"file":"LauncherStore.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/stores/LauncherStore.js"],"names":[],"mappings":"AAAA,IAAI,aAAa,CAAC;AAElB,MAAM,IAAI,GAAG;IACZ,KAAK,EAAE,eAAe;IACtB,KAAK,EAAE,uBAAuB;CAC9B,CAAC;AAEF,SAAS,WAAW,CAAC,IAAI;IACxB,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAC3C;QACC,KAAK,EAAE,6BAA6B;QACpC,MAAM,EAAE,IAAI;KACZ,EACD,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAChB,aAAa,GAAG,KAAK,CAAC;QACtB,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC3B,CAAC,CACD,CAAC;AACH,CAAC;AAED,SAAS,QAAQ;IAChB,OAAO,aAAa,CAAC;AACtB,CAAC;AAED,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC","sourcesContent":["let launcherStore;\n\nconst data = {\n\tfield: \"defaultFolder\",\n\tvalue: \"Advanced App Launcher\",\n};\n\nfunction createStore(done) {\n\tFSBL.Clients.DistributedStoreClient.getStore(\n\t\t{\n\t\t\tstore: \"Finsemble-AppLauncher-Store\",\n\t\t\tglobal: true,\n\t\t},\n\t\t(error, store) => {\n\t\t\tlauncherStore = store;\n\t\t\tlauncherStore.setValue(data);\n\t\t\tdone(null, launcherStore);\n\t\t}\n\t);\n}\n\nfunction getStore() {\n\treturn launcherStore;\n}\n\nexport { createStore, getStore };\n"]}
@@ -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.js"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\nimport { findIndex } from \"lodash\";\nimport { getStore } from \"./LauncherStore\";\nimport AppDirectory from \"../modules/AppDirectory\";\nimport FDC3 from \"../modules/FDC3\";\nimport { iconFromConfig } from \"../../../icon/Icon\";\nconst async = require(\"async\");\nlet FDC3Client;\nlet appd;\nlet appDEndpoint;\n\nexport default {\n\tinitialize,\n\taddApp,\n\taddNewFolder,\n\taddAppToFolder,\n\tremoveAppFromFolder,\n\trenameFolder,\n\tdeleteFolder,\n\tdeleteApp,\n\tdeleteTag,\n\treorderFolders,\n\tgetFolders,\n\tgetFoldersList,\n\tgetActiveFolderName,\n\tgetActiveFolder,\n\tgetSingleFolder,\n\tgetAllAppsTags,\n\tgetAllApps,\n\tgetAllAppsFromFolder,\n\tgetFormStatus,\n\tgetSearchText,\n\tgetSortBy,\n\taddTag,\n\tgetTags,\n\tgetApp,\n\tgetDragDisabled,\n\tgetConstants,\n\tfindAppByField,\n\tgetApps,\n\trefreshAppDefinitions,\n};\n\nconst data = {};\nconst ADVANCED_APP_LAUNCHER = \"Advanced App Launcher\";\nconst NEW_FOLDER_NAME = \"New folder\";\n// returns names of default folders.\nfunction getConstants() {\n\tconst DASHBOARDS = \"Dashboards\";\n\tconst FAVORITES = \"Favorites\";\n\treturn { ADVANCED_APP_LAUNCHER, DASHBOARDS, FAVORITES };\n}\n\n// Add to here if you want to disable dragging on a folder.\nfunction getDragDisabled() {\n\tconst { DASHBOARDS, FAVORITES } = getConstants();\n\treturn [ADVANCED_APP_LAUNCHER, DASHBOARDS, FAVORITES];\n}\n\nfunction initialize(callback = Function.prototype) {\n\tFSBL.Clients.ConfigClient.getValue({ field: \"finsemble.appDirectoryEndpoint\" }, (err, appDirectoryEndpoint) => {\n\t\t// cache value globally to be used in the event that we need to fetch data for a given component.\n\t\tappDEndpoint = appDirectoryEndpoint;\n\t\tconst store = getStore();\n\t\tdata.folders = store.values.appFolders.folders;\n\t\tdata.foldersList = store.values.appFolders.list;\n\t\tvalidateFolderDataStructure();\n\t\tdata.apps = store.values.appDefinitions;\n\t\tdata.tags = store.values.activeLauncherTags;\n\t\tdata.activeFolder = store.values.activeFolder;\n\t\tdata.filterText = store.values.filterText;\n\t\tdata.sortBy = store.values.sortBy;\n\t\tdata.isFormVisible = store.values.isFormVisible;\n\t\tdata.configComponents = {};\n\n\t\t// Add listeners to keep our copy up to date\n\t\tstore.addListener({ field: \"appFolders.folders\" }, (foldersErr, dt) => {\n\t\t\tdata.folders = dt.value;\n\t\t});\n\t\tstore.addListener({ field: \"appFolders.list\" }, (folderListErr, dt) => (data.foldersList = dt.value));\n\t\tstore.addListener({ field: \"appDefinitions\" }, (appDefinitionsErr, dt) => (data.apps = dt.value));\n\t\tstore.addListener({ field: \"activeFolder\" }, (activeFolderErr, dt) => {\n\t\t\tdata.activeFolder = dt.value;\n\t\t});\n\t\tstore.addListener({ field: \"isFormVisible\" }, (visibilityErr, dt) => (data.isFormVisible = dt.value));\n\t\tstore.addListener({ field: \"sortBy\" }, (sortErr, dt) => (data.sortBy = dt.value));\n\t\tstore.addListener({ field: \"activeLauncherTags\" }, (launcherTagsErr, dt) => (data.tags = dt.value));\n\t\tstore.addListener({ field: \"filterText\" }, (filterTextErr, dt) => (data.filterText = dt.value));\n\n\t\tFSBL.Clients.RouterClient.subscribe(\"Launcher.update\", (err, response) => {\n\t\t\tFSBL.Clients.Logger.debug(\"list updated\", err, response);\n\t\t\tif (err) {\n\t\t\t\treturn console.error(err);\n\t\t\t}\n\t\t\trefreshAppDefinitions(response.data.componentList);\n\t\t});\n\n\t\tFSBL.Clients.RouterClient.subscribe(\"Finsemble.Service.State.launcherService\", (unsubscribeErr, response) => {\n\t\t\tif (unsubscribeErr) {\n\t\t\t\tFSBL.Clients.Logger.error(\n\t\t\t\t\t\"App Launcher encountered an error unsubscribing from the launcher service\",\n\t\t\t\t\tunsubscribeErr\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tloadInstalledComponentsFromStore(() => {\n\t\t\t\t// We load our stored components(config driven) here\n\t\t\t\tloadInstalledConfigComponents(() => {\n\t\t\t\t\tupdateAppsInFolders(callback);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n}\n\n// This gets a specific app in FDC3 and returns the results\nfunction getApp(appID, cb = Function.prototype) {\n\tappd\n\t\t.get(appID)\n\t\t.then((app) => cb(null, app))\n\t\t.catch((err) => cb(err));\n}\n// Check to see if an app is already in our list of apps\nfunction appInAppList(appName) {\n\tlet app = findAppByField(\"name\", appName);\n\treturn Boolean(app);\n}\n\n/**\n * Ensures all 'apps' properties on folders conform\n * to the new structure (Array vs object)\n */\nfunction validateFolderDataStructure() {\n\tObject.keys(data.folders).map((folderName) => {\n\t\tconst folder = data.folders[folderName];\n\t\tif (!Array.isArray(folder.apps)) {\n\t\t\tconst warning =\n\t\t\t\t\"Application Launcher Persistent Store has data stored in deprecated format. Please check distributedStore configs\";\n\t\t\t// If the structure is wrong, notify the user in hopes that the foundation will be fixed\n\t\t\tFSBL.Clients.Logger.warn(warning);\n\t\t\tFSBL.UserNotification.alert(\"system\", \"ONCE-SINCE-STARTUP\", \"Distributed Store Type Mismatch\", warning);\n\t\t\tconst newApps = [];\n\t\t\tObject.values(folder.apps).map((app) => {\n\t\t\t\tnewApps.push(app);\n\t\t\t});\n\t\t\tfolder.apps = newApps;\n\t\t}\n\t});\n\t_setFolders();\n}\n\n// Update apps in folders with updated config information\nfunction updateAppsInFolders(cb = Function.prototype) {\n\t// Loop through folders and update apps with new info\n\tconst { ADVANCED_APP_LAUNCHER: advancedAppLauncherFolderName } = getConstants();\n\tObject.keys(data.folders).map((folderName) => {\n\t\tif (folderName === advancedAppLauncherFolderName) return;\n\t\telse {\n\t\t\tconst folder = data.folders[folderName];\n\t\t\tObject.values(data.configComponents).map((configComp) => {\n\t\t\t\tlet index = -1;\n\t\t\t\tfolder.apps.map((folderApp, i) => {\n\t\t\t\t\tif (folderApp.appID.toString().trim() === configComp.appID.toString().trim()) {\n\t\t\t\t\t\tindex = i;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (index > -1) {\n\t\t\t\t\tdata.folders[folderName].apps.splice(index, 1, configComp);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t_setFolders(cb);\n}\n\n/**\n * Given a component config, will return tags, or an empty array.\n *\n * @param {*} componentConfig\n * @returns\n */\nfunction extractTagsFromFinsembleComponentConfig(componentConfig) {\n\tif (!componentConfig.foreign) return [];\n\tif (!componentConfig.foreign.components) return [];\n\tif (!componentConfig.foreign.components[\"App Launcher\"]) return [];\n\n\tconst { tags } = componentConfig.foreign.components[\"App Launcher\"];\n\n\tif (tags) {\n\t\tif (typeof tags === \"string\") {\n\t\t\treturn [tags];\n\t\t}\n\t\treturn tags;\n\t}\n\n\treturn [];\n}\n/**\n * Instantiates classes needed to interact with the appD server.\n * Only done when needed. If there are no components with source 'FDC3', this code will not execute.\n */\nfunction lazyLoadAppD() {\n\tif (!FDC3Client) FDC3Client = new FDC3({ url: appDEndpoint });\n\tif (!appd) appd = new AppDirectory(FDC3Client);\n}\n\n/**\n * Here we load apps from FDC3\n * @param {*} cb\n */\nfunction loadInstalledComponentsFromStore(cb = Function.prototype) {\n\tasync.map(\n\t\tObject.values(data.apps),\n\t\t(component, componentDone) => {\n\t\t\t// Load FDC3 components here\n\t\t\tif (component.source && component.source === \"FDC3\") {\n\t\t\t\tlazyLoadAppD();\n\t\t\t\t// get the app info so we can load it into the launcher\n\t\t\t\treturn getApp(component.appID, (err, app) => {\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\t// don't want to kill this;\n\t\t\t\t\t\tdeleteApp(component.appID);\n\t\t\t\t\t\tconsole.error(\"there was an error loading from FDC3\", component, err);\n\t\t\t\t\t}\n\t\t\t\t\treturn componentDone();\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Assumption - component is always a user defined component\n\t\t\t// when testing I was never able to get any other component types in this method\n\t\t\tFSBL.Clients.LauncherClient.addUserDefinedComponent(component, (compAddErr) => {\n\t\t\t\tif (compAddErr) {\n\t\t\t\t\tconsole.warn(\"Failed to add new app:\", compAddErr);\n\t\t\t\t}\n\t\t\t\tcomponentDone(compAddErr);\n\t\t\t});\n\t\t},\n\t\t(err) => {\n\t\t\tcb(err);\n\t\t}\n\t);\n}\n\n// We load our apps that were loaded from the config.\nfunction loadInstalledConfigComponents(cb = Function.prototype) {\n\t// Get the list of components from the launcher service\n\tFSBL.Clients.LauncherClient.getComponentList((err, componentList) => {\n\t\t/*\n\t\t * Update the folders under the \"App\" menu and delete any apps in the folder\n\t\t * that are no longer in the config and are not user defined components.\n\t\t */\n\t\trefreshAppDefinitions(componentList);\n\t\tcb();\n\t});\n}\n\nfunction getApps() {\n\treturn data.apps;\n}\n\nfunction refreshAppDefinitions(componentList) {\n\tconst componentTypeList = Object.keys(componentList);\n\n\tconst { folders } = data;\n\t// Get the user defined apps\n\tconst apps = Object.keys(data.apps);\n\tObject.keys(folders).forEach((folderName) => {\n\t\tfolders[folderName].apps.map((configDefinedApp, i) => {\n\t\t\tconst { name, appID } = configDefinedApp;\n\t\t\t// If the component is not in the config component list and is not a user defined component\n\t\t\tif (!componentTypeList.includes(name) && !apps.includes(appID)) {\n\t\t\t\t// Delete app from the folder\n\t\t\t\tfolders[folderName].apps.splice(i, 1);\n\t\t\t}\n\t\t});\n\t});\n\n\tcomponentTypeList.map((componentType) => {\n\t\tconst component = componentList[componentType];\n\t\tif (component && component.component) {\n\t\t\tconst launchableByUser = component?.foreign?.components?.[\"App Launcher\"]?.launchableByUser;\n\n\t\t\tconst displayName = component.component.displayName ?? componentType;\n\t\t\tconst iconObject = iconFromConfig(component?.foreign?.components?.Toolbar, displayName);\n\t\t\t// Make sure the app is launchable by user\n\t\t\tif (launchableByUser && !component.component.isUserDefined) {\n\t\t\t\tdata.configComponents[componentType] = {\n\t\t\t\t\tappID: componentType,\n\t\t\t\t\ticon: iconObject,\n\t\t\t\t\tname: componentType,\n\t\t\t\t\tdisplayName,\n\t\t\t\t\tsource: \"config\",\n\t\t\t\t\ttags: extractTagsFromFinsembleComponentConfig(component),\n\t\t\t\t};\n\t\t\t} else if (!launchableByUser && data.configComponents[componentType]) {\n\t\t\t\tdelete data.configComponents[componentType];\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction _setValue(field, value, cb) {\n\tgetStore().setValue(\n\t\t{\n\t\t\tfield: field,\n\t\t\tvalue: value,\n\t\t},\n\t\t(error, data) => {\n\t\t\tif (error) {\n\t\t\t\tFSBL.Clients.Logger.error(`Advanced App Launcher: Failed to save: ${field}:${value}`);\n\t\t\t\t// TODO\n\t\t\t\t// Should probably return with an error so the calling function knows to move on\n\t\t\t\t// Don't want to deal with unforeseen circumstances by doing that now\n\t\t\t} else {\n\t\t\t\tcb && cb();\n\t\t\t}\n\t\t}\n\t);\n}\n\nfunction _setFolders(cb = Function.prototype) {\n\t_setValue(\"appFolders.folders\", data.folders, (err, data) => {\n\t\tif (err) {\n\t\t\tFSBL.Clients.Logger.error(`Advanced App Launcher: Failed to set folders: ${err}`);\n\t\t\treturn;\n\t\t}\n\n\t\tcb();\n\t});\n}\n\nfunction _findAppIndexInFolders(appID, folderName) {\n\treturn findIndex(data.folders[folderName].apps, (app) => app.appID === appID);\n}\n\nfunction getFolders() {\n\treturn data.folders;\n}\n\nfunction getFoldersList() {\n\treturn data.foldersList;\n}\n\nfunction getAllApps() {\n\tlet mergedApps = Object.assign({}, data.apps, data.configComponents);\n\treturn mergedApps;\n}\n\nfunction getFormStatus() {\n\treturn data.isFormVisible;\n}\n\nfunction getSingleFolder(folderName) {\n\treturn data.folders[folderName];\n}\n\nfunction reorderFolders(destIndex, srcIndex) {\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.\n\tconst dragDisabled = getDragDisabled();\n\tconst unorderableFolders = data.foldersList.filter((folderName) => dragDisabled.includes(folderName));\n\tconst orderableFolders = data.foldersList.filter((folderName) => !dragDisabled.includes(folderName));\n\tconst movedFolder = orderableFolders[destIndex];\n\tconst remainingItems = orderableFolders.filter((item, index) => index !== destIndex);\n\tdata.foldersList = [\n\t\t...unorderableFolders,\n\t\t...remainingItems.slice(0, srcIndex),\n\t\tmovedFolder,\n\t\t...remainingItems.slice(srcIndex),\n\t];\n\t_setValue(\"appFolders.list\", data.foldersList);\n\treturn data.foldersList;\n}\n\nfunction addApp(app = {}, cb) {\n\tconst appID = `${new Date().getTime()}`;\n\tconst folder = data.activeFolder;\n\tconst newAppData = {\n\t\tappID,\n\t\ttags: app.tags !== \"\" ? app.tags.split(\",\") : [],\n\t\tname: app.name,\n\t\turl: app.url,\n\t\ttype: \"component\",\n\t\tcanDelete: true,\n\t};\n\n\t/**\n\t * Note, the advanced app launcher can currently only keep track of apps that\n\t * are added by itself. Apps added by the basic launcher, or any other means,\n\t * will not be detected. A reconciliation process would need to be added that\n\t * listens on the distributed store similar to how the basic app launcher works.\n\t *\n\t * FSBL.Clients.RouterClient.subscribe(\"Launcher.update\", (err, response) => {\n\t\t\tFSBL.Clients.Logger.debug(\"list updated\", err, response);\n\t\t\tif (err) {\n\t\t\t\treturn console.error(err);\n\t\t\t}\n\t\t\tself.filterComponents(response.data.componentList);\n\t\t});\n\t */\n\tFSBL.Clients.LauncherClient.addUserDefinedComponent(newAppData, (compAddErr) => {\n\t\tif (compAddErr) {\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\n\t\t\tcb({ code: \"failed_to_add_app\", message: compAddErr });\n\t\t\tconsole.warn(\"Failed to add new app:\", compAddErr);\n\t\t\treturn;\n\t\t}\n\t\tdata.apps[appID] = newAppData;\n\n\t\t// Add to ADVANCED_APP_LAUNCHER folder\n\t\tdata.folders[ADVANCED_APP_LAUNCHER].apps.push(newAppData);\n\n\t\t// Check if we need to add to another folder as well\n\t\tif (folder !== ADVANCED_APP_LAUNCHER) {\n\t\t\tdata.folders[folder].apps.push(newAppData);\n\t\t}\n\t\t// Save appDefinitions and then folders\n\t\t_setValue(\"appDefinitions\", data.apps, () => {\n\t\t\t_setFolders();\n\t\t\tcb && cb();\n\t\t});\n\t});\n}\n\nfunction deleteApp(appID) {\n\t// Delete app from any folder that has it\n\tfor (const key in data.folders) {\n\t\tconst appIndex = _findAppIndexInFolders(appID, key);\n\t\tdata.folders[key].apps.splice(appIndex, 1);\n\t}\n\n\t// Delete app from the apps list\n\tFSBL.Clients.LauncherClient.removeUserDefinedComponent(data.apps[appID], () => {\n\t\tdelete data.apps[appID];\n\t\t// Save appDefinitions and then folders\n\t\t_setValue(\"appDefinitions\", data.apps, () => {\n\t\t\t_setFolders();\n\t\t});\n\t});\n}\n\nfunction addNewFolder(name) {\n\t// Each new folder is given a number, lets store them here\n\t// to get the highest one and then increment\n\t// result of this will be [0, 1, 2] etc\n\tconst newFoldersNums = [\n\t\t0,\n\t\t// Find folders that have a name of \"New folder\" or \"New folder #\"\n\t\t...data.foldersList\n\t\t\t.filter((folder) => folder.startsWith(NEW_FOLDER_NAME))\n\t\t\t.map((folder) => {\n\t\t\t\tconst numbers = folder.match(/\\d+/g) || [];\n\t\t\t\treturn Math.max.apply(this, numbers);\n\t\t\t}),\n\t];\n\tconst highestFolderNumber = Math.max.apply(this, newFoldersNums);\n\tconst folderName = name ?? `${NEW_FOLDER_NAME} ${highestFolderNumber + 1}`;\n\tconst newFolder = {\n\t\tdisableUserRemove: true,\n\t\ticon: \"ff-adp-hamburger\",\n\t\tcanEdit: true,\n\t\tcanDelete: true,\n\t\tapps: [],\n\t};\n\tdata.folders[folderName] = newFolder;\n\t_setFolders(() => {\n\t\t// Update folders order if adding was successful\n\t\tdata.foldersList.push(folderName);\n\t\t_setValue(\"appFolders.list\", data.foldersList);\n\t});\n}\n\nfunction deleteFolder(folderName) {\n\t// Check if user is trying to delete the active folder\n\tif (folderName === data.activeFolder) {\n\t\tdata.activeFolder = ADVANCED_APP_LAUNCHER;\n\t\t_setValue(\"activeFolder\", data.activeFolder);\n\t}\n\n\tdelete data.folders[folderName] &&\n\t\t_setFolders(() => {\n\t\t\t// Update the order of folders\n\t\t\tconst index = data.foldersList.indexOf(folderName);\n\t\t\tdata.foldersList.splice(index, 1);\n\t\t\t_setValue(\"appFolders.list\", data.foldersList);\n\t\t});\n}\n\nfunction renameFolder(oldName, newName) {\n\tlet indexOfOld = data.foldersList.findIndex((folderName) => folderName === oldName);\n\n\tif (indexOfOld > -1) {\n\t\tlet oldFolder = data.folders[oldName];\n\t\tdata.folders[newName] = oldFolder;\n\t\tdata.foldersList.splice(indexOfOld, 1, newName);\n\n\t\t_setFolders(() => {\n\t\t\t_setValue(\"appFolders.list\", data.foldersList);\n\n\t\t\tif (data.activeFolder === oldName) {\n\t\t\t\t_setValue(\"activeFolder\", newName);\n\t\t\t}\n\n\t\t\tdelete data.folders[oldName];\n\t\t});\n\t}\n}\n\nfunction addAppToFolder(folderName, app) {\n\tconst appIndex = _findAppIndexInFolders(app.appID, folderName);\n\n\tif (appIndex < 0) {\n\t\tdata.folders[folderName].apps.push({\n\t\t\tname: app.name,\n\t\t\tdisplayName: app.displayName,\n\t\t\tappID: app.appID,\n\t\t});\n\t\t_setFolders();\n\t}\n}\n\nfunction removeAppFromFolder(folderName, app) {\n\tconst appIndex = _findAppIndexInFolders(app.appID, folderName);\n\tdata.folders[folderName].apps.splice(appIndex, 1);\n\t_setFolders();\n}\n\nfunction getAllAppsFromFolder(folderName) {\n\treturn data.folders[folderName].apps;\n}\n\n/**\n * Given a field, search through FDC3 apps and apps pulled in via config and return that app.\n * */\nfunction findAppByField(field, value) {\n\treturn (\n\t\tObject.values(data.apps).find((app) => (app ? app[field] === value : false)) ||\n\t\tObject.values(data.configComponents).find((app) => (app ? app[field] === value : false))\n\t);\n}\n\nfunction getActiveFolder() {\n\tconst folder = data.folders[data.activeFolder];\n\n\tif (!folder) {\n\t\tFSBL.Clients.Logger.error(`activeFolder:\"${data.activeFolder}\" not found! Defaulting to empty folder`);\n\t\treturn {\n\t\t\tname: data.activeFolder,\n\t\t\tapps: [],\n\t\t};\n\t}\n\n\tObject.values(folder.apps).forEach((app) => {\n\t\tconst appData = findAppByField(\"appID\", app.appID);\n\t\tif (!appData) {\n\t\t\tapp.tags = [];\n\t\t} else {\n\t\t\tapp.tags = appData.tags;\n\t\t}\n\t});\n\t// Need a name for the AppDefinition/AppActionsMenu rendering\n\tfolder.name = data.activeFolder;\n\treturn folder;\n}\n\nfunction getActiveFolderName() {\n\treturn data.activeFolder;\n}\n\nfunction getSearchText() {\n\treturn data.filterText;\n}\n\nfunction getSortBy() {\n\treturn data.sortBy;\n}\n\nfunction getTags() {\n\treturn data.tags;\n}\n\nfunction getAllAppsTags() {\n\tlet tags = [];\n\t// Pull tags from applications installed via FDC3 and the component config.\n\tconst apps = Object.values(data.apps).concat(Object.values(data.configComponents));\n\n\tapps.forEach((app) => {\n\t\ttags = tags.concat(app.tags);\n\t});\n\t// return unique ones only\n\treturn tags.filter((tag, index) => tags.indexOf(tag) === index);\n}\n\nfunction addTag(tag) {\n\t// Push new tag to list\n\tdata.tags.indexOf(tag) < 0 && data.tags.push(tag);\n\t// Update tags in store\n\t_setValue(\"activeLauncherTags\", data.tags);\n}\n\nfunction deleteTag(tag) {\n\t// Push new tag to list\n\tdata.tags.splice(data.tags.indexOf(tag), 1);\n\t// Update tags in store\n\t_setValue(\"activeLauncherTags\", data.tags);\n}\n"]}
@@ -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.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\";\nimport { findIndex } from \"lodash\";\n\nexport const findAppIndexInFolder = (appID, folderName) => {\n\tconst folder = storeActions.getSingleFolder(folderName);\n\treturn findIndex(folder.apps, (app) => app.appID === appID);\n};\n\nexport const isAppInFavorites = (appID) => {\n\tconst index = findAppIndexInFolder(appID, \"Favorites\");\n\n\tif (index < 0) return false;\n\treturn true;\n};\n\nexport default {\n\t/**\n\t * Sorts list by name alphabetically\n\t */\n\tAlphabetical: (list) => list.sort((a, b) => a.name.localeCompare(b.name)),\n\n\t/**\n\t * Sorts a list of application by Favorites.\n\t * It gets a list of apps from Favorites folder\n\t * then in the sort function, it checks where a, b apps\n\t * are in favorite folder or not, giving a lower index\n\t * for apps that are in Favorite folder\n\t */\n\tFavorites: (list) => {\n\t\treturn list.sort((a, b) => {\n\t\t\tconst aInFavorites = isAppInFavorites(a.appID);\n\t\t\tconst bInFavorites = isAppInFavorites(b.appID);\n\t\t\t// a component being in favorites means it is \"less than\" another component not in favorites, so return -1\n\t\t\tif (aInFavorites && !bInFavorites) {\n\t\t\t\treturn -1;\n\t\t\t} else if (!aInFavorites && bInFavorites) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\treturn a.name.localeCompare(b.name);\n\t\t});\n\t},\n};\n"]}
@@ -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;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\";\nimport { StaticAppLauncherMenu } from \"./StaticAppLauncherMenu\";\nimport { DynamicAppLauncher } from \"./DynamicAppLauncher\";\n\ntype AppLauncherMenu = {\n\tenableQuickComponents?: boolean; // DEPRECATED: Quick Components will be removed in a future version\n\ttitle?: string;\n\tcomponentFilter?: string[];\n\tsuppressFavorites?: boolean;\n\tdynamic?: boolean;\n};\n\n/**\n * The menu, or collection of menus, that lists all configured Finsemble applications, and provides\n * the ability to launch any listed app.\n *\n * @param {boolean} [enableQuickComponents=false] DEPRECATED: Set to true to allow users to create their own components\n * @param {string} [title] The title of the menu, as viewed in the toolbar\n * @param {string[]} [componentFilter] Custom list of menu items to display\n * @param {boolean} [suppressFavorites=false]\n * @param {boolean} [dynamic=false] If dynamic=true, get list of menus from manifest, as well as listening for updates to list\n */\nexport const AppLauncherMenu = (props: AppLauncherMenu) => {\n\tif (props.dynamic) {\n\t\treturn <DynamicAppLauncher />;\n\t} else {\n\t\treturn <StaticAppLauncherMenu {...props} />;\n\t}\n};\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,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":["/*!\n * Copyright 2017 by ChartIQ, Inc.\n * All rights reserved.\n */\n\nimport React, { useEffect, useState } from \"react\";\nimport { MenuObjType, MenuType } from \"../../../types/smartDesktopDesignerTypes\";\nimport { StaticAppLauncherMenu } from \"./StaticAppLauncherMenu\";\n\nexport const DynamicAppLauncher = () => {\n\tconst [menus, setMenus] = useState<MenuType>({});\n\n\tconst updateMenu = () => {\n\t\tFSBL.Clients.ConfigClient.getValue(\"finsemble.toolbarMenus\").then(({ data }: { err: any; data: any }) => {\n\t\t\tsetMenus(data);\n\t\t});\n\t};\n\n\tuseEffect(() => {\n\t\tupdateMenu();\n\n\t\t// Listen for notifications that the menu has changed\n\t\tFSBL.Clients.ConfigClient.addListener({ field: \"finsemble.toolbarMenus\" }, updateMenu);\n\t}, []);\n\n\treturn (\n\t\t<>\n\t\t\t{Object.values(menus)\n\t\t\t\t.filter((menuObj: MenuObjType) => menuObj.applications.length > 0)\n\t\t\t\t.sort((a: MenuObjType, b: MenuObjType) => a.position - b.position)\n\t\t\t\t.map((menuObj: MenuObjType, index: number) => (\n\t\t\t\t\t<StaticAppLauncherMenu\n\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\tid={`AppLauncher-${index}`}\n\t\t\t\t\t\ttitle={menuObj.displayName}\n\t\t\t\t\t\tcomponentFilter={menuObj.applications}\n\t\t\t\t\t\tsuppressFavorites={true}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t</>\n\t);\n};\n"]}