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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (755) hide show
  1. package/README.md +28 -28
  2. package/package.json +20 -19
  3. package/react/actions/favoriteActions.js.map +1 -1
  4. package/react/actions/linkerActions.js.map +1 -1
  5. package/react/actions/menuActions.js.map +1 -1
  6. package/react/actions/rootActions.js.map +1 -1
  7. package/react/actions/searchActions.js.map +1 -1
  8. package/react/actions/smartDesktopDesignerActions.d.ts +6 -2
  9. package/react/actions/smartDesktopDesignerActions.js +2 -0
  10. package/react/actions/smartDesktopDesignerActions.js.map +1 -1
  11. package/react/actions/toolbarActions.js.map +1 -1
  12. package/react/actions/workspaceActions.js.map +1 -1
  13. package/react/assets/css/advancedAppLauncher.css +636 -636
  14. package/react/assets/css/appCatalog.css +1069 -1069
  15. package/react/assets/css/authentication.css +78 -78
  16. package/react/assets/css/button.css +220 -220
  17. package/react/assets/css/core/formElements.css +23 -23
  18. package/react/assets/css/core/icons.css +69 -69
  19. package/react/assets/css/core/notifications.css +75 -75
  20. package/react/assets/css/core/windowFrame.css +36 -36
  21. package/react/assets/css/dashbar.css +78 -78
  22. package/react/assets/css/defaultTheme.css +356 -356
  23. package/react/assets/css/dialogs.css +158 -158
  24. package/react/assets/css/favorites.css +101 -101
  25. package/react/assets/css/finsemble.css +38 -38
  26. package/react/assets/css/focus.css +4 -4
  27. package/react/assets/css/font-finance.css +385 -385
  28. package/react/assets/css/fonts/Open_Sans/LICENSE.txt +202 -202
  29. package/react/assets/css/fonts/Open_Sans/OpenSans-Definition.css +118 -118
  30. package/react/assets/css/fonts/font-finance.svg +124 -124
  31. package/react/assets/css/fonts/icons-reference.html +1174 -1174
  32. package/react/assets/css/linkerWindow.css +124 -124
  33. package/react/assets/css/menus.css +195 -195
  34. package/react/assets/css/notificationsCenter.css +597 -597
  35. package/react/assets/css/processMonitor.css +213 -213
  36. package/react/assets/css/search.css +128 -128
  37. package/react/assets/css/shared/animations.css +99 -99
  38. package/react/assets/css/tags.css +136 -136
  39. package/react/assets/css/toolbar.css +413 -413
  40. package/react/assets/css/userPreferences.css +538 -538
  41. package/react/assets/css/windowTitleBar.css +653 -652
  42. package/react/assets/icons/always-on-top.svg +20 -0
  43. package/react/assets/icons/caret.svg +7 -7
  44. package/react/assets/icons/check-square.svg +5 -5
  45. package/react/assets/icons/check.svg +3 -3
  46. package/react/assets/icons/chevron-left.svg +3 -3
  47. package/react/assets/icons/chevron-right.svg +3 -3
  48. package/react/assets/icons/close.svg +11 -0
  49. package/react/assets/icons/code-block.svg +15 -0
  50. package/react/assets/icons/copy.svg +10 -10
  51. package/react/assets/icons/documentation.svg +20 -0
  52. package/react/assets/icons/exclamation-circle.svg +4 -4
  53. package/react/assets/icons/external-link.svg +12 -12
  54. package/react/assets/icons/flag.svg +10 -10
  55. package/react/assets/icons/folder.svg +3 -3
  56. package/react/assets/icons/font.svg +3 -3
  57. package/react/assets/icons/globe.svg +3 -3
  58. package/react/assets/icons/hdd.svg +9 -9
  59. package/react/assets/icons/key.svg +10 -10
  60. package/react/assets/icons/life-ring.svg +3 -3
  61. package/react/assets/icons/linker.svg +18 -0
  62. package/react/assets/icons/lock.svg +5 -5
  63. package/react/assets/icons/magic.svg +15 -15
  64. package/react/assets/icons/maximize.svg +16 -0
  65. package/react/assets/icons/minimize.svg +15 -0
  66. package/react/assets/icons/moon.svg +10 -10
  67. package/react/assets/icons/paint-roller.svg +3 -3
  68. package/react/assets/icons/pencil.svg +10 -10
  69. package/react/assets/icons/plus.svg +3 -3
  70. package/react/assets/icons/question-circle.svg +5 -5
  71. package/react/assets/icons/search.svg +3 -3
  72. package/react/assets/icons/sun.svg +9 -9
  73. package/react/assets/icons/times.svg +3 -3
  74. package/react/assets/icons/toggle-off.svg +6 -6
  75. package/react/assets/icons/toggle-on.svg +6 -6
  76. package/react/assets/icons/toolbar.svg +12 -12
  77. package/react/assets/icons/tools.svg +3 -3
  78. package/react/assets/icons/trash.svg +12 -12
  79. package/react/assets/icons/upload.svg +10 -10
  80. package/react/assets/icons/window.svg +3 -3
  81. package/react/assets/img/finsemble-display.png +0 -0
  82. package/react/componentTemplateGenerator.js +85 -85
  83. package/react/componentTemplateGenerator.js.map +1 -1
  84. package/react/components/FinsembleProvider.js.map +1 -1
  85. package/react/components/appCatalog/AppCatalog.js.map +1 -1
  86. package/react/components/appCatalog/AppCatalogComponent.js.map +1 -1
  87. package/react/components/appCatalog/components/AppCard.js.map +1 -1
  88. package/react/components/appCatalog/components/AppList.js.map +1 -1
  89. package/react/components/appCatalog/components/AppResults.js.map +1 -1
  90. package/react/components/appCatalog/components/Carousel.js.map +1 -1
  91. package/react/components/appCatalog/components/EmptyResults.js.map +1 -1
  92. package/react/components/appCatalog/components/Hero.js.map +1 -1
  93. package/react/components/appCatalog/components/Home.js.map +1 -1
  94. package/react/components/appCatalog/components/SearchBar.js.map +1 -1
  95. package/react/components/appCatalog/components/Showcase/AppDescription.js.map +1 -1
  96. package/react/components/appCatalog/components/Showcase/AppDevNotes.js.map +1 -1
  97. package/react/components/appCatalog/components/Showcase/AppShowcase.js.map +1 -1
  98. package/react/components/appCatalog/components/Showcase/Header.js.map +1 -1
  99. package/react/components/appCatalog/components/Showcase/ImageCarousel.js.map +1 -1
  100. package/react/components/appCatalog/components/Showcase/Modal.js.map +1 -1
  101. package/react/components/appCatalog/components/Showcase/ReleaseNotes.js.map +1 -1
  102. package/react/components/appCatalog/components/Showcase/SupportNotes.js.map +1 -1
  103. package/react/components/appCatalog/components/Showcase/VersionNotes.js.map +1 -1
  104. package/react/components/appCatalog/components/Showcase/defaults.js.map +1 -1
  105. package/react/components/appCatalog/components/Tag.js.map +1 -1
  106. package/react/components/appCatalog/components/Toast.js.map +1 -1
  107. package/react/components/appCatalog/components/helpers.js.map +1 -1
  108. package/react/components/appCatalog/index.js.map +1 -1
  109. package/react/components/appCatalog/modules/AppDirectory.js.map +1 -1
  110. package/react/components/appCatalog/modules/FDC3.d.ts +1 -1
  111. package/react/components/appCatalog/modules/FDC3.js.map +1 -1
  112. package/react/components/appCatalog/stores/appStore.d.ts +2 -2
  113. package/react/components/appCatalog/stores/appStore.js.map +1 -1
  114. package/react/components/appCatalog/stores/storeActions.js.map +1 -1
  115. package/react/components/common/Accordion.js +1 -1
  116. package/react/components/common/Accordion.js.map +1 -1
  117. package/react/components/common/Button.js.map +1 -1
  118. package/react/components/common/ButtonIcon.js.map +1 -1
  119. package/react/components/common/ButtonRow.js.map +1 -1
  120. package/react/components/common/ButtonTile.js.map +1 -1
  121. package/react/components/common/Checkbox.js +1 -1
  122. package/react/components/common/Checkbox.js.map +1 -1
  123. package/react/components/common/ColorPicker.js.map +1 -1
  124. package/react/components/common/DropZone.js +3 -1
  125. package/react/components/common/DropZone.js.map +1 -1
  126. package/react/components/common/DropdownButton.js.map +1 -1
  127. package/react/components/common/FileInput.d.ts +2 -1
  128. package/react/components/common/FileInput.js +9 -4
  129. package/react/components/common/FileInput.js.map +1 -1
  130. package/react/components/common/FinsembleIcon.d.ts +1 -1
  131. package/react/components/common/FinsembleIcon.js +15 -1
  132. package/react/components/common/FinsembleIcon.js.map +1 -1
  133. package/react/components/common/FinsembleSelect.js +1 -1
  134. package/react/components/common/FinsembleSelect.js.map +1 -1
  135. package/react/components/common/FinsembleToggle.js.map +1 -1
  136. package/react/components/common/Header.js +3 -1
  137. package/react/components/common/Header.js.map +1 -1
  138. package/react/components/common/ImagePreview.js.map +1 -1
  139. package/react/components/common/InputTable.js.map +1 -1
  140. package/react/components/common/LoadingSpinner.js.map +1 -1
  141. package/react/components/common/Tab.js.map +1 -1
  142. package/react/components/common/Tooltip.js +3 -1
  143. package/react/components/common/Tooltip.js.map +1 -1
  144. package/react/components/common/css/accordion.css +99 -89
  145. package/react/components/common/css/application-edit-page.css +324 -223
  146. package/react/components/common/css/application-list.css +53 -47
  147. package/react/components/common/css/button.css +166 -166
  148. package/react/components/common/css/checkbox.css +30 -31
  149. package/react/components/common/css/color-picker.css +52 -52
  150. package/react/components/common/css/drop-zone.css +17 -17
  151. package/react/components/common/css/file-input.css +65 -49
  152. package/react/components/common/css/header.css +30 -32
  153. package/react/components/common/css/icon.css +13 -13
  154. package/react/components/common/css/image-preview.css +57 -57
  155. package/react/components/common/css/loading-spinner.css +39 -39
  156. package/react/components/common/css/preload-edit-page.css +37 -0
  157. package/react/components/common/css/selector.css +51 -51
  158. package/react/components/common/css/styles.css +127 -128
  159. package/react/components/common/css/tab.css +56 -56
  160. package/react/components/common/css/toggle.css +32 -32
  161. package/react/components/common/css/tooltip.css +78 -78
  162. package/react/components/common/file_helpers.js.map +1 -1
  163. package/react/components/common/fixtures/FinsembleIcon.css +4 -4
  164. package/react/components/common/helpers.js.map +1 -1
  165. package/react/components/common/stories/Accordion.stories.js.map +1 -1
  166. package/react/components/common/stories/Button.stories.js.map +1 -1
  167. package/react/components/common/stories/ButtonIcon.stories.js.map +1 -1
  168. package/react/components/common/stories/ButtonRow.stories.js.map +1 -1
  169. package/react/components/common/stories/ButtonTile.stories.js.map +1 -1
  170. package/react/components/common/stories/Checkbox.stories.js.map +1 -1
  171. package/react/components/common/stories/ColorPicker.stories.js.map +1 -1
  172. package/react/components/common/stories/DropZone.stories.js.map +1 -1
  173. package/react/components/common/stories/DropdownButton.stories.js.map +1 -1
  174. package/react/components/common/stories/FileInput.stories.d.ts +2 -1
  175. package/react/components/common/stories/FileInput.stories.js +6 -0
  176. package/react/components/common/stories/FileInput.stories.js.map +1 -1
  177. package/react/components/common/stories/FinsembleIcon.stories.js.map +1 -1
  178. package/react/components/common/stories/FinsembleSelect.stories.js.map +1 -1
  179. package/react/components/common/stories/FinsembleToggle.stories.js.map +1 -1
  180. package/react/components/common/stories/Header.stories.js.map +1 -1
  181. package/react/components/common/stories/ImagePreview.stories.js.map +1 -1
  182. package/react/components/common/stories/InputTable.stories.js.map +1 -1
  183. package/react/components/common/stories/LoadingSpinner.stories.js.map +1 -1
  184. package/react/components/common/stories/Tab.stories.js.map +1 -1
  185. package/react/components/common/stories/Tooltip.stories.js.map +1 -1
  186. package/react/components/common/tests/Accordion.spec.js.map +1 -1
  187. package/react/components/common/tests/ButtonRow.spec.js.map +1 -1
  188. package/react/components/common/tests/Checkbox.spec.js.map +1 -1
  189. package/react/components/common/tests/ColorPicker.spec.js.map +1 -1
  190. package/react/components/common/tests/DropZone.spec.js.map +1 -1
  191. package/react/components/common/tests/FileInput.spec.js +20 -5
  192. package/react/components/common/tests/FileInput.spec.js.map +1 -1
  193. package/react/components/common/tests/FinsembleSelect.spec.js.map +1 -1
  194. package/react/components/common/tests/FinsembleToggle.spec.js.map +1 -1
  195. package/react/components/common/tests/Header.spec.js +6 -2
  196. package/react/components/common/tests/Header.spec.js.map +1 -1
  197. package/react/components/common/tests/ImagePreview.spec.js.map +1 -1
  198. package/react/components/common/tests/InputTable.spec.js.map +1 -1
  199. package/react/components/common/tests/Tab.spec.js.map +1 -1
  200. package/react/components/common/tests/Tooltip.spec.js.map +1 -1
  201. package/react/components/favorites/FavoriteMaker.js.map +1 -1
  202. package/react/components/favorites/FavoritesShell.js.map +1 -1
  203. package/react/components/favorites/FavoritesShell.spec.js.map +1 -1
  204. package/react/components/favorites/FavoritesShell.stories.js.map +1 -1
  205. package/react/components/favorites/index.js.map +1 -1
  206. package/react/components/fdc3Resolver/ResolverContainer.js.map +1 -1
  207. package/react/components/fdc3Resolver/ResolverDialog.css +126 -126
  208. package/react/components/fdc3Resolver/ResolverDialog.js.map +1 -1
  209. package/react/components/fdc3Resolver/ResolverDialog.spec.js.map +1 -1
  210. package/react/components/fdc3Resolver/ResolverDialog.stories.js.map +1 -1
  211. package/react/components/icon/Icon.js.map +1 -1
  212. package/react/components/icon/index.js.map +1 -1
  213. package/react/components/legacyControls/FinsembleDialog.js.map +1 -1
  214. package/react/components/legacyControls/FinsembleDialogButton.js +1 -1
  215. package/react/components/legacyControls/FinsembleDialogButton.js.map +1 -1
  216. package/react/components/legacyControls/FinsembleDialogQuestion.js.map +1 -1
  217. package/react/components/legacyControls/FinsembleDialogTextInput.js.map +1 -1
  218. package/react/components/legacyControls/FinsembleDnDContext.d.ts +2 -1
  219. package/react/components/legacyControls/FinsembleDnDContext.js +8 -6
  220. package/react/components/legacyControls/FinsembleDnDContext.js.map +1 -1
  221. package/react/components/legacyControls/FinsembleDraggable.js.map +1 -1
  222. package/react/components/legacyControls/FinsembleHoverDetector.js.map +1 -1
  223. package/react/components/legacyControls/FinsembleMenuSection.js.map +1 -1
  224. package/react/components/legacyControls/stories/FinsembleDialog.stories.js.map +1 -1
  225. package/react/components/legacyControls/stories/FinsembleDialogButton.stories.js.map +1 -1
  226. package/react/components/legacyControls/stories/FinsembleDialogQuestion.stories.js.map +1 -1
  227. package/react/components/legacyControls/stories/FinsembleDialogTextInput.stories.js.map +1 -1
  228. package/react/components/legacyControls/tests/FinsembleDialog.spec.js.map +1 -1
  229. package/react/components/legacyControls/tests/FinsembleDialogButton.spec.js.map +1 -1
  230. package/react/components/legacyControls/tests/FinsembleDialogQuestion.spec.js.map +1 -1
  231. package/react/components/legacyControls/tests/FinsembleDialogTextInput.spec.js.map +1 -1
  232. package/react/components/linker/LinkerMenu.js.map +1 -1
  233. package/react/components/linker/LinkerMenuDeprecated.js.map +1 -1
  234. package/react/components/linker/index.js.map +1 -1
  235. package/react/components/linker/remoteRedux.d.ts +1 -1
  236. package/react/components/linker/remoteRedux.js.map +1 -1
  237. package/react/components/menu/Menu.d.ts +1 -0
  238. package/react/components/menu/Menu.js.map +1 -1
  239. package/react/components/menu/MenuAutoResizer.d.ts +2 -1
  240. package/react/components/menu/MenuAutoResizer.js +3 -2
  241. package/react/components/menu/MenuAutoResizer.js.map +1 -1
  242. package/react/components/menu/MenuContent.js.map +1 -1
  243. package/react/components/menu/MenuHotKey.js.map +1 -1
  244. package/react/components/menu/MenuItem.js.map +1 -1
  245. package/react/components/menu/MenuPortal.js +118 -92
  246. package/react/components/menu/MenuPortal.js.map +1 -1
  247. package/react/components/menu/MenuShell.d.ts +1 -0
  248. package/react/components/menu/MenuShell.js +3 -2
  249. package/react/components/menu/MenuShell.js.map +1 -1
  250. package/react/components/menu/MenuToggle.js.map +1 -1
  251. package/react/components/menu/index.js.map +1 -1
  252. package/react/components/menu/keyboardNavigation.js.map +1 -1
  253. package/react/components/menu/menuContext.d.ts +1 -0
  254. package/react/components/menu/menuContext.js.map +1 -1
  255. package/react/components/menu/menuHelpers.d.ts +1 -1
  256. package/react/components/menu/menuHelpers.js +2 -2
  257. package/react/components/menu/menuHelpers.js.map +1 -1
  258. package/react/components/notifications/components/NoNotifications.js.map +1 -1
  259. package/react/components/notifications/components/drawer/Drawer.js.map +1 -1
  260. package/react/components/notifications/components/drawer/DrawerControls.js.map +1 -1
  261. package/react/components/notifications/components/drawer/DrawerHeader.js.map +1 -1
  262. package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js.map +1 -1
  263. package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js +20 -27
  264. package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js.map +1 -1
  265. package/react/components/notifications/components/shared/CheckButton.d.ts +1 -1
  266. package/react/components/notifications/components/shared/CheckButton.js.map +1 -1
  267. package/react/components/notifications/components/shared/IconButton.js.map +1 -1
  268. package/react/components/notifications/components/shared/NotificationCardShell.d.ts +1 -1
  269. package/react/components/notifications/components/shared/NotificationCardShell.js +1 -1
  270. package/react/components/notifications/components/shared/NotificationCardShell.js.map +1 -1
  271. package/react/components/notifications/components/shared/OverflowMenu.d.ts +1 -1
  272. package/react/components/notifications/components/shared/OverflowMenu.js.map +1 -1
  273. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyActions.d.ts +1 -1
  274. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyActions.js.map +1 -1
  275. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyContentLogo.js.map +1 -1
  276. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.d.ts +1 -1
  277. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.js.map +1 -1
  278. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.d.ts +1 -1
  279. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.js.map +1 -1
  280. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderLogo.js.map +1 -1
  281. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderShell.d.ts +1 -1
  282. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderShell.js.map +1 -1
  283. package/react/components/notifications/components/views/CardView.js.map +1 -1
  284. package/react/components/notifications/components/views/ListView.d.ts +1 -1
  285. package/react/components/notifications/components/views/ListView.js +1 -1
  286. package/react/components/notifications/components/views/ListView.js.map +1 -1
  287. package/react/components/notifications/components/views/NotificationDetailsView.d.ts +1 -1
  288. package/react/components/notifications/components/views/NotificationDetailsView.js.map +1 -1
  289. package/react/components/notifications/constants.js.map +1 -1
  290. package/react/components/notifications/icons/Card.js.map +1 -1
  291. package/react/components/notifications/icons/Chevron.js.map +1 -1
  292. package/react/components/notifications/icons/CloseIcon.js.map +1 -1
  293. package/react/components/notifications/icons/EnvelopeClose.js.map +1 -1
  294. package/react/components/notifications/icons/EnvelopeOpen.js.map +1 -1
  295. package/react/components/notifications/icons/SnoozeIcon.js.map +1 -1
  296. package/react/components/notifications/index.js.map +1 -1
  297. package/react/components/notifications/notificationsContext.js.map +1 -1
  298. package/react/components/notifications/types.d.ts +1 -1
  299. package/react/components/notifications/types.js.map +1 -1
  300. package/react/components/notifications/utils.d.ts +1 -1
  301. package/react/components/notifications/utils.js.map +1 -1
  302. package/react/components/processMonitor/ProcessMonitor.js.map +1 -1
  303. package/react/components/processMonitor/ProcessMonitorTypes.js.map +1 -1
  304. package/react/components/processMonitor/components/ChildWindow.js.map +1 -1
  305. package/react/components/processMonitor/components/ListHeader.d.ts +1 -1
  306. package/react/components/processMonitor/components/ListHeader.js.map +1 -1
  307. package/react/components/processMonitor/components/ProcessStatistics.js.map +1 -1
  308. package/react/components/processMonitor/constants.js.map +1 -1
  309. package/react/components/processMonitor/helpers.js.map +1 -1
  310. package/react/components/processMonitor/helpers.spec.js.map +1 -1
  311. package/react/components/processMonitor/index.js.map +1 -1
  312. package/react/components/processMonitor/stores/ProcessMonitorStore.d.ts +4 -3
  313. package/react/components/processMonitor/stores/ProcessMonitorStore.js +51 -50
  314. package/react/components/processMonitor/stores/ProcessMonitorStore.js.map +1 -1
  315. package/react/components/quickComponentForm/QuickComponentForm.js.map +1 -1
  316. package/react/components/quickComponentForm/index.js.map +1 -1
  317. package/react/components/quickComponentForm/quickComponent.css +3 -3
  318. package/react/components/search/Highlight.js.map +1 -1
  319. package/react/components/search/Highlight.spec.js.map +1 -1
  320. package/react/components/search/Highlight.stories.js.map +1 -1
  321. package/react/components/search/Search.js.map +1 -1
  322. package/react/components/search/SearchBestMatch.js.map +1 -1
  323. package/react/components/search/SearchInput.js.map +1 -1
  324. package/react/components/search/SearchProviderResults.js.map +1 -1
  325. package/react/components/search/SearchResult.js +4 -3
  326. package/react/components/search/SearchResult.js.map +1 -1
  327. package/react/components/search/SearchResults.js.map +1 -1
  328. package/react/components/search/index.js.map +1 -1
  329. package/react/components/shared/Animate.js.map +1 -1
  330. package/react/components/shared/BellIcon.js.map +1 -1
  331. package/react/components/shared/BellIconCrossed.js.map +1 -1
  332. package/react/components/shared/Button.js.map +1 -1
  333. package/react/components/shared/ConditionalWrapper.js.map +1 -1
  334. package/react/components/shared/DefaultDropdownButton.js.map +1 -1
  335. package/react/components/shared/NavigationButton.js.map +1 -1
  336. package/react/components/shared/Tag.js.map +1 -1
  337. package/react/components/shared/TagsMenu.js.map +1 -1
  338. package/react/components/shared/addProtocolToValidURL.js.map +1 -1
  339. package/react/components/shared/linkerUtil.js.map +1 -1
  340. package/react/components/shared/openQuitConfirmationDialog.js.map +1 -1
  341. package/react/components/shared/tests/DefaultDropdownButton.spec.js.map +1 -1
  342. package/react/components/shared/tests/addProtocolToValidURL.spec.js.map +1 -1
  343. package/react/components/shared/validateURL.js.map +1 -1
  344. package/react/components/shared/validateURL.spec.js.map +1 -1
  345. package/react/components/singleInputDialog/SingleInputDialog.css +3 -3
  346. package/react/components/singleInputDialog/SingleInputDialog.js.map +1 -1
  347. package/react/components/singleInputDialog/SingleInputDialog.spec.js.map +1 -1
  348. package/react/components/singleInputDialog/SingleInputDialog.stories.js.map +1 -1
  349. package/react/components/singleInputDialog/index.js.map +1 -1
  350. package/react/components/smartDesktopDesigner/AddApp.d.ts +2 -2
  351. package/react/components/smartDesktopDesigner/AddApp.js +28 -17
  352. package/react/components/smartDesktopDesigner/AddApp.js.map +1 -1
  353. package/react/components/smartDesktopDesigner/AppEditAccess.js.map +1 -1
  354. package/react/components/smartDesktopDesigner/AppEditPage.d.ts +2 -2
  355. package/react/components/smartDesktopDesigner/AppEditPage.js +311 -242
  356. package/react/components/smartDesktopDesigner/AppEditPage.js.map +1 -1
  357. package/react/components/smartDesktopDesigner/Appearance.css +35 -28
  358. package/react/components/smartDesktopDesigner/Appearance.helpers.js.map +1 -1
  359. package/react/components/smartDesktopDesigner/Appearance.js +1 -1
  360. package/react/components/smartDesktopDesigner/Appearance.js.map +1 -1
  361. package/react/components/smartDesktopDesigner/Application.d.ts +10 -3
  362. package/react/components/smartDesktopDesigner/Application.js +37 -44
  363. package/react/components/smartDesktopDesigner/Application.js.map +1 -1
  364. package/react/components/smartDesktopDesigner/Applications.d.ts +2 -0
  365. package/react/components/smartDesktopDesigner/Applications.js +29 -20
  366. package/react/components/smartDesktopDesigner/Applications.js.map +1 -1
  367. package/react/components/smartDesktopDesigner/AssetsPage.css +26 -26
  368. package/react/components/smartDesktopDesigner/AssetsPage.js.map +1 -1
  369. package/react/components/smartDesktopDesigner/Authentication.js +2 -9
  370. package/react/components/smartDesktopDesigner/Authentication.js.map +1 -1
  371. package/react/components/smartDesktopDesigner/AuthenticationProviderConfig.js +1 -1
  372. package/react/components/smartDesktopDesigner/AuthenticationProviderConfig.js.map +1 -1
  373. package/react/components/smartDesktopDesigner/Content.js.map +1 -1
  374. package/react/components/smartDesktopDesigner/ContentHeader.d.ts +5 -0
  375. package/react/components/smartDesktopDesigner/ContentHeader.js +10 -0
  376. package/react/components/smartDesktopDesigner/ContentHeader.js.map +1 -0
  377. package/react/components/smartDesktopDesigner/CurrentView.js.map +1 -1
  378. package/react/components/smartDesktopDesigner/EditPreload.d.ts +14 -0
  379. package/react/components/smartDesktopDesigner/EditPreload.js +169 -0
  380. package/react/components/smartDesktopDesigner/EditPreload.js.map +1 -0
  381. package/react/components/smartDesktopDesigner/Export.js +5 -5
  382. package/react/components/smartDesktopDesigner/Export.js.map +1 -1
  383. package/react/components/smartDesktopDesigner/ExportCloud.d.ts +3 -1
  384. package/react/components/smartDesktopDesigner/ExportCloud.js +4 -4
  385. package/react/components/smartDesktopDesigner/ExportCloud.js.map +1 -1
  386. package/react/components/smartDesktopDesigner/ExportDeployInfo.js.map +1 -1
  387. package/react/components/smartDesktopDesigner/ExportZip.d.ts +3 -1
  388. package/react/components/smartDesktopDesigner/ExportZip.js +8 -3
  389. package/react/components/smartDesktopDesigner/ExportZip.js.map +1 -1
  390. package/react/components/smartDesktopDesigner/GettingStarted.d.ts +1 -0
  391. package/react/components/smartDesktopDesigner/GettingStarted.js +11 -22
  392. package/react/components/smartDesktopDesigner/GettingStarted.js.map +1 -1
  393. package/react/components/smartDesktopDesigner/ItemList.d.ts +17 -0
  394. package/react/components/smartDesktopDesigner/ItemList.js +58 -0
  395. package/react/components/smartDesktopDesigner/ItemList.js.map +1 -0
  396. package/react/components/smartDesktopDesigner/Navigation.js.map +1 -1
  397. package/react/components/smartDesktopDesigner/OptionalSettingsView.d.ts +11 -0
  398. package/react/components/smartDesktopDesigner/OptionalSettingsView.js +71 -0
  399. package/react/components/smartDesktopDesigner/OptionalSettingsView.js.map +1 -0
  400. package/react/components/smartDesktopDesigner/Preloads.d.ts +8 -0
  401. package/react/components/smartDesktopDesigner/Preloads.js +26 -0
  402. package/react/components/smartDesktopDesigner/Preloads.js.map +1 -0
  403. package/react/components/smartDesktopDesigner/ProjectErrors.js.map +1 -1
  404. package/react/components/smartDesktopDesigner/Publish.js.map +1 -1
  405. package/react/components/smartDesktopDesigner/PublishProgress.js.map +1 -1
  406. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.d.ts +1 -1
  407. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js +34 -3
  408. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js.map +1 -1
  409. package/react/components/smartDesktopDesigner/ThemePage.css +109 -109
  410. package/react/components/smartDesktopDesigner/ThemePage.js +0 -7
  411. package/react/components/smartDesktopDesigner/ThemePage.js.map +1 -1
  412. package/react/components/smartDesktopDesigner/Themes.js +0 -2
  413. package/react/components/smartDesktopDesigner/Themes.js.map +1 -1
  414. package/react/components/smartDesktopDesigner/Toolbar.js +16 -18
  415. package/react/components/smartDesktopDesigner/Toolbar.js.map +1 -1
  416. package/react/components/smartDesktopDesigner/View.js +1 -1
  417. package/react/components/smartDesktopDesigner/View.js.map +1 -1
  418. package/react/components/smartDesktopDesigner/common/fsbl_functions.d.ts +1 -1
  419. package/react/components/smartDesktopDesigner/common/fsbl_functions.js +2 -2
  420. package/react/components/smartDesktopDesigner/common/fsbl_functions.js.map +1 -1
  421. package/react/components/smartDesktopDesigner/common/getCSSVars.js.map +1 -1
  422. package/react/components/smartDesktopDesigner/common/views.js +27 -3
  423. package/react/components/smartDesktopDesigner/common/views.js.map +1 -1
  424. package/react/components/smartDesktopDesigner/css/appearance.css +21 -18
  425. package/react/components/smartDesktopDesigner/css/applications.css +167 -167
  426. package/react/components/smartDesktopDesigner/css/authentication.css +119 -130
  427. package/react/components/smartDesktopDesigner/css/buttons.css +12 -12
  428. package/react/components/smartDesktopDesigner/css/export.css +176 -167
  429. package/react/components/smartDesktopDesigner/css/getting-started.css +28 -8
  430. package/react/components/smartDesktopDesigner/css/nav.css +120 -109
  431. package/react/components/smartDesktopDesigner/css/project-errors.css +15 -15
  432. package/react/components/smartDesktopDesigner/css/project-header.css +124 -121
  433. package/react/components/smartDesktopDesigner/css/styles.css +178 -179
  434. package/react/components/smartDesktopDesigner/css/views.css +23 -17
  435. package/react/components/smartDesktopDesigner/fixtures/apps.d.ts +1 -1
  436. package/react/components/smartDesktopDesigner/fixtures/apps.js +23 -1
  437. package/react/components/smartDesktopDesigner/fixtures/apps.js.map +1 -1
  438. package/react/components/smartDesktopDesigner/fixtures/authenticationProps.js.map +1 -1
  439. package/react/components/smartDesktopDesigner/fixtures/configTemplate.js.map +1 -1
  440. package/react/components/smartDesktopDesigner/fixtures/exportProps.js.map +1 -1
  441. package/react/components/smartDesktopDesigner/fixtures/preloads.d.ts +22 -0
  442. package/react/components/smartDesktopDesigner/fixtures/preloads.js +40 -0
  443. package/react/components/smartDesktopDesigner/fixtures/preloads.js.map +1 -0
  444. package/react/components/smartDesktopDesigner/fixtures/projectErrorsProps.js.map +1 -1
  445. package/react/components/smartDesktopDesigner/fixtures/publishProgress.d.ts +1 -1
  446. package/react/components/smartDesktopDesigner/fixtures/publishProgress.js.map +1 -1
  447. package/react/components/smartDesktopDesigner/fixtures/themeProps.js.map +1 -1
  448. package/react/components/smartDesktopDesigner/fixtures/views.js +14 -6
  449. package/react/components/smartDesktopDesigner/fixtures/views.js.map +1 -1
  450. package/react/components/smartDesktopDesigner/sdd_helpers.js +1 -1
  451. package/react/components/smartDesktopDesigner/sdd_helpers.js.map +1 -1
  452. package/react/components/smartDesktopDesigner/stories/AppEditPage.stories.d.ts +2 -1
  453. package/react/components/smartDesktopDesigner/stories/AppEditPage.stories.js +2 -0
  454. package/react/components/smartDesktopDesigner/stories/AppEditPage.stories.js.map +1 -1
  455. package/react/components/smartDesktopDesigner/stories/Appearance.stories.js.map +1 -1
  456. package/react/components/smartDesktopDesigner/stories/Applications.stories.js.map +1 -1
  457. package/react/components/smartDesktopDesigner/stories/AssetsPage.stories.js.map +1 -1
  458. package/react/components/smartDesktopDesigner/stories/Authentication.stories.js.map +1 -1
  459. package/react/components/smartDesktopDesigner/stories/ContentHeader.stories.d.ts +10 -0
  460. package/react/components/smartDesktopDesigner/stories/ContentHeader.stories.js +13 -0
  461. package/react/components/smartDesktopDesigner/stories/ContentHeader.stories.js.map +1 -0
  462. package/react/components/smartDesktopDesigner/stories/EditPreload.stories.d.ts +11 -0
  463. package/react/components/smartDesktopDesigner/stories/EditPreload.stories.js +35 -0
  464. package/react/components/smartDesktopDesigner/stories/EditPreload.stories.js.map +1 -0
  465. package/react/components/smartDesktopDesigner/stories/Export.stories.js.map +1 -1
  466. package/react/components/smartDesktopDesigner/stories/ExportCloud.stories.d.ts +1 -1
  467. package/react/components/smartDesktopDesigner/stories/ExportCloud.stories.js +1 -1
  468. package/react/components/smartDesktopDesigner/stories/ExportCloud.stories.js.map +1 -1
  469. package/react/components/smartDesktopDesigner/stories/ExportZip.stories.d.ts +1 -1
  470. package/react/components/smartDesktopDesigner/stories/ExportZip.stories.js +1 -1
  471. package/react/components/smartDesktopDesigner/stories/ExportZip.stories.js.map +1 -1
  472. package/react/components/smartDesktopDesigner/stories/GettingStarted.stories.js.map +1 -1
  473. package/react/components/smartDesktopDesigner/stories/ItemList.stories.d.ts +16 -0
  474. package/react/components/smartDesktopDesigner/stories/{ApplicationList.stories.js → ItemList.stories.js} +30 -23
  475. package/react/components/smartDesktopDesigner/stories/ItemList.stories.js.map +1 -0
  476. package/react/components/smartDesktopDesigner/stories/Navigation.stories.js.map +1 -1
  477. package/react/components/smartDesktopDesigner/stories/OptionalSettingsView.stories.d.ts +11 -0
  478. package/react/components/smartDesktopDesigner/stories/OptionalSettingsView.stories.js +28 -0
  479. package/react/components/smartDesktopDesigner/stories/OptionalSettingsView.stories.js.map +1 -0
  480. package/react/components/smartDesktopDesigner/stories/Preloads.stories.d.ts +11 -0
  481. package/react/components/smartDesktopDesigner/stories/Preloads.stories.js +31 -0
  482. package/react/components/smartDesktopDesigner/stories/Preloads.stories.js.map +1 -0
  483. package/react/components/smartDesktopDesigner/stories/ProjectErrors.stories.js.map +1 -1
  484. package/react/components/smartDesktopDesigner/stories/Publish.stories.js.map +1 -1
  485. package/react/components/smartDesktopDesigner/stories/PublishProgress.stories.js.map +1 -1
  486. package/react/components/smartDesktopDesigner/stories/SmartDesktopDesigner.stories.js +7 -1
  487. package/react/components/smartDesktopDesigner/stories/SmartDesktopDesigner.stories.js.map +1 -1
  488. package/react/components/smartDesktopDesigner/stories/ThemePage.stories.js.map +1 -1
  489. package/react/components/smartDesktopDesigner/stories/Themes.stories.js.map +1 -1
  490. package/react/components/smartDesktopDesigner/stories/Toolbar.stories.js.map +1 -1
  491. package/react/components/smartDesktopDesigner/tests/AppEditPage.spec.js +1100 -311
  492. package/react/components/smartDesktopDesigner/tests/AppEditPage.spec.js.map +1 -1
  493. package/react/components/smartDesktopDesigner/tests/{ApplicationList.spec.d.ts → Application.spec.d.ts} +0 -0
  494. package/react/components/smartDesktopDesigner/tests/Application.spec.js +1496 -0
  495. package/react/components/smartDesktopDesigner/tests/Application.spec.js.map +1 -0
  496. package/react/components/smartDesktopDesigner/tests/Applications.spec.d.ts +1 -1
  497. package/react/components/smartDesktopDesigner/tests/Applications.spec.js +94 -7
  498. package/react/components/smartDesktopDesigner/tests/Applications.spec.js.map +1 -1
  499. package/react/components/smartDesktopDesigner/tests/Authentication.spec.js.map +1 -1
  500. package/react/components/smartDesktopDesigner/tests/ContentHeader.spec.d.ts +1 -0
  501. package/react/components/smartDesktopDesigner/tests/ContentHeader.spec.js +31 -0
  502. package/react/components/smartDesktopDesigner/tests/ContentHeader.spec.js.map +1 -0
  503. package/react/components/smartDesktopDesigner/tests/EditPreload.spec.d.ts +1 -0
  504. package/react/components/smartDesktopDesigner/tests/EditPreload.spec.js +61 -0
  505. package/react/components/smartDesktopDesigner/tests/EditPreload.spec.js.map +1 -0
  506. package/react/components/smartDesktopDesigner/tests/Export.spec.js +95 -0
  507. package/react/components/smartDesktopDesigner/tests/Export.spec.js.map +1 -1
  508. package/react/components/smartDesktopDesigner/tests/ExportZip.spec.js +7 -0
  509. package/react/components/smartDesktopDesigner/tests/ExportZip.spec.js.map +1 -1
  510. package/react/components/smartDesktopDesigner/tests/ItemList.spec.d.ts +1 -0
  511. package/react/components/smartDesktopDesigner/tests/{ApplicationList.spec.js → ItemList.spec.js} +8 -8
  512. package/react/components/smartDesktopDesigner/tests/ItemList.spec.js.map +1 -0
  513. package/react/components/smartDesktopDesigner/tests/Navigation.spec.js.map +1 -1
  514. package/react/components/smartDesktopDesigner/tests/Preloads.spec.d.ts +1 -0
  515. package/react/components/smartDesktopDesigner/tests/Preloads.spec.js +47 -0
  516. package/react/components/smartDesktopDesigner/tests/Preloads.spec.js.map +1 -0
  517. package/react/components/smartDesktopDesigner/tests/ProjectErrors.spec.js +1 -1
  518. package/react/components/smartDesktopDesigner/tests/ProjectErrors.spec.js.map +1 -1
  519. package/react/components/smartDesktopDesigner/tests/Publish.spec.js.map +1 -1
  520. package/react/components/smartDesktopDesigner/tests/PublishProgess.spec.js.map +1 -1
  521. package/react/components/smartDesktopDesigner/tests/SmartDesktopDesigner.spec.js +7 -30
  522. package/react/components/smartDesktopDesigner/tests/SmartDesktopDesigner.spec.js.map +1 -1
  523. package/react/components/smartDesktopDesigner/tests/Themes.spec.js.map +1 -1
  524. package/react/components/smartDesktopDesigner/tests/Toolbar.spec.d.ts +1 -1
  525. package/react/components/smartDesktopDesigner/tests/Toolbar.spec.js +5 -6
  526. package/react/components/smartDesktopDesigner/tests/Toolbar.spec.js.map +1 -1
  527. package/react/components/smartDesktopDesigner/tests/a11y_helper.js.map +1 -1
  528. package/react/components/smartDesktopDesigner/tests/sdd_helpers.spec.js +1 -0
  529. package/react/components/smartDesktopDesigner/tests/sdd_helpers.spec.js.map +1 -1
  530. package/react/components/smartDesktopDesigner/themeDefinitions.js.map +1 -1
  531. package/react/components/system/System.js.map +1 -1
  532. package/react/components/system/System.spec.js.map +1 -1
  533. package/react/components/system/System.stories.js.map +1 -1
  534. package/react/components/system/SystemTrayComponentShell.js.map +1 -1
  535. package/react/components/system/index.js.map +1 -1
  536. package/react/components/toolbar/AutoArrange.js.map +1 -1
  537. package/react/components/toolbar/DragHandle.js.map +1 -1
  538. package/react/components/toolbar/DragHandle.spec.d.ts +1 -0
  539. package/react/components/toolbar/DragHandle.spec.js +31 -0
  540. package/react/components/toolbar/DragHandle.spec.js.map +1 -0
  541. package/react/components/toolbar/DragHandle.stories.d.ts +13 -0
  542. package/react/components/toolbar/DragHandle.stories.js +39 -0
  543. package/react/components/toolbar/DragHandle.stories.js.map +1 -0
  544. package/react/components/toolbar/MinimizeAll.js.map +1 -1
  545. package/react/components/toolbar/MinimizeAll.spec.js.map +1 -1
  546. package/react/components/toolbar/MinimizeAll.stories.js.map +1 -1
  547. package/react/components/toolbar/NotificationControl.js.map +1 -1
  548. package/react/components/toolbar/RevealAll.js.map +1 -1
  549. package/react/components/toolbar/RevealAll.spec.js.map +1 -1
  550. package/react/components/toolbar/RevealAll.stories.js.map +1 -1
  551. package/react/components/toolbar/ToolbarIcon.js.map +1 -1
  552. package/react/components/toolbar/ToolbarSection.js.map +1 -1
  553. package/react/components/toolbar/ToolbarShell.js.map +1 -1
  554. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.d.ts +1 -1
  555. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.js.map +1 -1
  556. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncherMenu.js.map +1 -1
  557. package/react/components/toolbar/advancedAppLauncher/components/AddNewAppForm.js.map +1 -1
  558. package/react/components/toolbar/advancedAppLauncher/components/AddNewFolder.js.map +1 -1
  559. package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.js.map +1 -1
  560. package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.js.map +1 -1
  561. package/react/components/toolbar/advancedAppLauncher/components/AppTagsList.js.map +1 -1
  562. package/react/components/toolbar/advancedAppLauncher/components/Content.d.ts +1 -1
  563. package/react/components/toolbar/advancedAppLauncher/components/Content.js.map +1 -1
  564. package/react/components/toolbar/advancedAppLauncher/components/FilterSort.js.map +1 -1
  565. package/react/components/toolbar/advancedAppLauncher/components/FoldersList.d.ts +1 -1
  566. package/react/components/toolbar/advancedAppLauncher/components/FoldersList.js +47 -45
  567. package/react/components/toolbar/advancedAppLauncher/components/FoldersList.js.map +1 -1
  568. package/react/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.js.map +1 -1
  569. package/react/components/toolbar/advancedAppLauncher/components/NoAppsFound.js.map +1 -1
  570. package/react/components/toolbar/advancedAppLauncher/components/SearchBox.js.map +1 -1
  571. package/react/components/toolbar/advancedAppLauncher/components/SortBy.js.map +1 -1
  572. package/react/components/toolbar/advancedAppLauncher/components/TagsList.d.ts +1 -1
  573. package/react/components/toolbar/advancedAppLauncher/components/TagsList.js.map +1 -1
  574. package/react/components/toolbar/advancedAppLauncher/components/TagsMenu.js.map +1 -1
  575. package/react/components/toolbar/advancedAppLauncher/components/ToggleFavoriteDropdown.js.map +1 -1
  576. package/react/components/toolbar/advancedAppLauncher/modules/AppDirectory.js.map +1 -1
  577. package/react/components/toolbar/advancedAppLauncher/modules/FDC3.js.map +1 -1
  578. package/react/components/toolbar/advancedAppLauncher/stores/LauncherStore.d.ts +2 -2
  579. package/react/components/toolbar/advancedAppLauncher/stores/LauncherStore.js.map +1 -1
  580. package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js.map +1 -1
  581. package/react/components/toolbar/advancedAppLauncher/utils/sort-functions.js.map +1 -1
  582. package/react/components/toolbar/appLauncher/AppLauncherMenu.js.map +1 -1
  583. package/react/components/toolbar/appLauncher/DynamicAppLauncher.js.map +1 -1
  584. package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.d.ts +1 -0
  585. package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.js.map +1 -1
  586. package/react/components/toolbar/appLauncher/appLauncher.css +30 -30
  587. package/react/components/toolbar/appLauncher/components/componentList.d.ts +2 -2
  588. package/react/components/toolbar/appLauncher/components/componentList.js.map +1 -1
  589. package/react/components/toolbar/appLauncher/stores/appLauncherStore.d.ts +3 -2
  590. package/react/components/toolbar/appLauncher/stores/appLauncherStore.js +17 -34
  591. package/react/components/toolbar/appLauncher/stores/appLauncherStore.js.map +1 -1
  592. package/react/components/toolbar/dashbar/Dashbar.js +9 -12
  593. package/react/components/toolbar/dashbar/Dashbar.js.map +1 -1
  594. package/react/components/toolbar/dashbar/DashbarItem.js.map +1 -1
  595. package/react/components/toolbar/index.js.map +1 -1
  596. package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.d.ts +2 -2
  597. package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.js.map +1 -1
  598. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.d.ts +1 -1
  599. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js.map +1 -1
  600. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.js.map +1 -1
  601. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.d.ts +1 -1
  602. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.js.map +1 -1
  603. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.d.ts +4 -4
  604. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js +1 -1
  605. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js.map +1 -1
  606. package/react/components/toolbar/workspaceManagementMenu/workspaceManagementMenu.css +90 -90
  607. package/react/components/userPreferences/NotificationsPreferencesContext.js.map +1 -1
  608. package/react/components/userPreferences/UserPreferenceTypes.js.map +1 -1
  609. package/react/components/userPreferences/UserPreferences.js.map +1 -1
  610. package/react/components/userPreferences/UserPreferencesBase.js.map +1 -1
  611. package/react/components/userPreferences/UserPreferencesWrapper.js.map +1 -1
  612. package/react/components/userPreferences/components/ContentSection.js.map +1 -1
  613. package/react/components/userPreferences/components/LeftNav.js.map +1 -1
  614. package/react/components/userPreferences/components/content/DashbarEditor.js.map +1 -1
  615. package/react/components/userPreferences/components/content/DashbarEditorItem.js.map +1 -1
  616. package/react/components/userPreferences/components/content/General.js.map +1 -1
  617. package/react/components/userPreferences/components/content/Notifications.js.map +1 -1
  618. package/react/components/userPreferences/components/content/Workspaces.d.ts +1 -1
  619. package/react/components/userPreferences/components/content/Workspaces.js +1 -1
  620. package/react/components/userPreferences/components/content/Workspaces.js.map +1 -1
  621. package/react/components/userPreferences/components/content/notificationViews/NotificationsPreferencesHome.js.map +1 -1
  622. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourceTypes.js.map +1 -1
  623. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourcesPreferences.js.map +1 -1
  624. package/react/components/userPreferences/components/content/notificationViews/notificationViewsUtils.js.map +1 -1
  625. package/react/components/userPreferences/components/general/ScheduledRestart.js.map +1 -1
  626. package/react/components/userPreferences/components/workspaces/WorkspaceButton.js.map +1 -1
  627. package/react/components/userPreferences/components/workspaces/WorkspaceComponents.js.map +1 -1
  628. package/react/components/userPreferences/components/workspaces/WorkspaceItem.js.map +1 -1
  629. package/react/components/userPreferences/components/workspaces/WorkspaceItemList.js.map +1 -1
  630. package/react/components/userPreferences/index.js.map +1 -1
  631. package/react/components/userPreferences/stores/UserPreferencesStore.d.ts +1 -1
  632. package/react/components/userPreferences/stores/UserPreferencesStore.js.map +1 -1
  633. package/react/components/userPreferences/stories/DashbarEditor.stories.js.map +1 -1
  634. package/react/components/userPreferences/stories/DashbarEditorItem.stories.js.map +1 -1
  635. package/react/components/userPreferences/stories/General.stories.js.map +1 -1
  636. package/react/components/userPreferences/stories/Notifications.stories.js.map +1 -1
  637. package/react/components/userPreferences/stories/NotificationsSourceTypes.stories.js.map +1 -1
  638. package/react/components/userPreferences/stories/NotificationsSources.stories.js.map +1 -1
  639. package/react/components/userPreferences/stories/UserPreferences.stories.js.map +1 -1
  640. package/react/components/userPreferences/stories/WorkspaceButton.stories.js.map +1 -1
  641. package/react/components/userPreferences/stories/WorkspaceComponents.stories.js.map +1 -1
  642. package/react/components/userPreferences/stories/WorkspaceItem.stories.js.map +1 -1
  643. package/react/components/userPreferences/stories/WorkspaceItemList.stories.js.map +1 -1
  644. package/react/components/userPreferences/stories/Workspaces.stories.js.map +1 -1
  645. package/react/components/userPreferences/tests/ContentSection.spec.js.map +1 -1
  646. package/react/components/userPreferences/tests/DashbarEditor.spec.js.map +1 -1
  647. package/react/components/userPreferences/tests/DashbarEditorItem.spec.js.map +1 -1
  648. package/react/components/userPreferences/tests/General.spec.js.map +1 -1
  649. package/react/components/userPreferences/tests/LeftNav.spec.js.map +1 -1
  650. package/react/components/userPreferences/tests/NotificationSourceTypes.spec.js.map +1 -1
  651. package/react/components/userPreferences/tests/Notifications.spec.js.map +1 -1
  652. package/react/components/userPreferences/tests/NotificationsPreferencesHome.spec.js.map +1 -1
  653. package/react/components/userPreferences/tests/NotificationsSourcesPreferences.spec.js.map +1 -1
  654. package/react/components/userPreferences/tests/ScheduledRestart.spec.js +1 -1
  655. package/react/components/userPreferences/tests/ScheduledRestart.spec.js.map +1 -1
  656. package/react/components/userPreferences/tests/WorkspaceButton.spec.js.map +1 -1
  657. package/react/components/userPreferences/tests/WorkspaceComponents.spec.js.map +1 -1
  658. package/react/components/userPreferences/tests/WorkspaceItem.spec.js.map +1 -1
  659. package/react/components/userPreferences/tests/WorkspaceItemList.spec.js.map +1 -1
  660. package/react/components/utils.js.map +1 -1
  661. package/react/components/windowTitleBar/WindowTitleBarShell.d.ts +4 -2
  662. package/react/components/windowTitleBar/WindowTitleBarShell.js +60 -59
  663. package/react/components/windowTitleBar/WindowTitleBarShell.js.map +1 -1
  664. package/react/components/windowTitleBar/components/center/Tab.d.ts +0 -1
  665. package/react/components/windowTitleBar/components/center/Tab.js +2 -2
  666. package/react/components/windowTitleBar/components/center/Tab.js.map +1 -1
  667. package/react/components/windowTitleBar/components/center/TabList.d.ts +2 -3
  668. package/react/components/windowTitleBar/components/center/TabList.js +19 -82
  669. package/react/components/windowTitleBar/components/center/TabList.js.map +1 -1
  670. package/react/components/windowTitleBar/components/center/TabRegion.js.map +1 -1
  671. package/react/components/windowTitleBar/components/left/LinkerButton.js.map +1 -1
  672. package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.js.map +1 -1
  673. package/react/components/windowTitleBar/components/left/LinkerGroups.js.map +1 -1
  674. package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.js.map +1 -1
  675. package/react/components/windowTitleBar/components/left/ShareButton.js.map +1 -1
  676. package/react/components/windowTitleBar/components/right/AlwaysOnTopButton.js.map +1 -1
  677. package/react/components/windowTitleBar/components/right/CloseButton.js.map +1 -1
  678. package/react/components/windowTitleBar/components/right/GroupingButton.js.map +1 -1
  679. package/react/components/windowTitleBar/components/right/MaximizeButton.d.ts +7 -0
  680. package/react/components/windowTitleBar/components/right/MaximizeButton.js +8 -2
  681. package/react/components/windowTitleBar/components/right/MaximizeButton.js.map +1 -1
  682. package/react/components/windowTitleBar/components/right/MinimizeButton.js.map +1 -1
  683. package/react/components/windowTitleBar/components/windowTitle.d.ts +9 -6
  684. package/react/components/windowTitleBar/components/windowTitle.js +154 -45
  685. package/react/components/windowTitleBar/components/windowTitle.js.map +1 -1
  686. package/react/components/windowTitleBar/index.js.map +1 -1
  687. package/react/components/windowTitleBar/stores/windowTitleBarStore.d.ts +3 -3
  688. package/react/components/windowTitleBar/stores/windowTitleBarStore.js +213 -217
  689. package/react/components/windowTitleBar/stores/windowTitleBarStore.js.map +1 -1
  690. package/react/components/windowTitleBar/stores/windowTitleBarStoreDefaults.js.map +1 -1
  691. package/react/components/windowTitleBar/windowTitleBarContext.js.map +1 -1
  692. package/react/components/yesNoDialog/Timer.spec.js.map +1 -1
  693. package/react/components/yesNoDialog/Timer.stories.js.map +1 -1
  694. package/react/components/yesNoDialog/YesNoDialog.css +3 -3
  695. package/react/components/yesNoDialog/YesNoDialog.js.map +1 -1
  696. package/react/components/yesNoDialog/YesNoDialog.spec.js.map +1 -1
  697. package/react/components/yesNoDialog/YesNoDialog.stories.js.map +1 -1
  698. package/react/components/yesNoDialog/index.js.map +1 -1
  699. package/react/components/yesNoDialog/timer.js.map +1 -1
  700. package/react/enzymeSetup.js.map +1 -1
  701. package/react/hooks/index.js.map +1 -1
  702. package/react/hooks/useAuth.js.map +1 -1
  703. package/react/hooks/useDashbar.js.map +1 -1
  704. package/react/hooks/useDeepEffect.js.map +1 -1
  705. package/react/hooks/useFavorites.js.map +1 -1
  706. package/react/hooks/useFavoritesShell.js.map +1 -1
  707. package/react/hooks/useHotkey.js.map +1 -1
  708. package/react/hooks/useLinker.js.map +1 -1
  709. package/react/hooks/useMenu.js.map +1 -1
  710. package/react/hooks/useNotifications.d.ts +1 -1
  711. package/react/hooks/useNotifications.js.map +1 -1
  712. package/react/hooks/useOutsideClickDetector.js.map +1 -1
  713. package/react/hooks/usePubSub.js.map +1 -1
  714. package/react/hooks/useSearch.js.map +1 -1
  715. package/react/hooks/useToolbar.js.map +1 -1
  716. package/react/hooks/useWorkspace.js.map +1 -1
  717. package/react/reducers/favoriteReducer.js.map +1 -1
  718. package/react/reducers/linkerReducer.js.map +1 -1
  719. package/react/reducers/menuReducer.js.map +1 -1
  720. package/react/reducers/rootReducer.d.ts +11 -3
  721. package/react/reducers/rootReducer.js.map +1 -1
  722. package/react/reducers/searchReducer.js.map +1 -1
  723. package/react/reducers/smartDesktopDesignerReducer.js +8 -0
  724. package/react/reducers/smartDesktopDesignerReducer.js.map +1 -1
  725. package/react/reducers/toolbarReducer.js.map +1 -1
  726. package/react/reducers/workspaceReducer.js.map +1 -1
  727. package/react/store.d.ts +22 -6
  728. package/react/store.js.map +1 -1
  729. package/react/types/advancedAppLauncherTypes.js.map +1 -1
  730. package/react/types/dashbarTypes.js.map +1 -1
  731. package/react/types/favoriteTypes.js.map +1 -1
  732. package/react/types/fdc3.d.ts +2 -2
  733. package/react/types/fdc3.js.map +1 -1
  734. package/react/types/hotkeyTypes.js.map +1 -1
  735. package/react/types/iconTypes.js.map +1 -1
  736. package/react/types/linkerTypes.js.map +1 -1
  737. package/react/types/searchTypes.d.ts +1 -8
  738. package/react/types/searchTypes.js.map +1 -1
  739. package/react/types/smartDesktopDesignerTypes.d.ts +8 -2
  740. package/react/types/smartDesktopDesignerTypes.js.map +1 -1
  741. package/react/types/windowTitleBar.d.ts +4 -2
  742. package/react/types/windowTitleBar.js.map +1 -1
  743. package/react/types/workspaceTypes.js.map +1 -1
  744. package/react/components/common/FontSizeSelector.d.ts +0 -7
  745. package/react/components/common/FontSizeSelector.js +0 -42
  746. package/react/components/common/FontSizeSelector.js.map +0 -1
  747. package/react/components/common/stories/FontSizeSelector.stories.d.ts +0 -12
  748. package/react/components/common/stories/FontSizeSelector.stories.js +0 -24
  749. package/react/components/common/stories/FontSizeSelector.stories.js.map +0 -1
  750. package/react/components/smartDesktopDesigner/ApplicationList.d.ts +0 -15
  751. package/react/components/smartDesktopDesigner/ApplicationList.js +0 -56
  752. package/react/components/smartDesktopDesigner/ApplicationList.js.map +0 -1
  753. package/react/components/smartDesktopDesigner/stories/ApplicationList.stories.d.ts +0 -15
  754. package/react/components/smartDesktopDesigner/stories/ApplicationList.stories.js.map +0 -1
  755. package/react/components/smartDesktopDesigner/tests/ApplicationList.spec.js.map +0 -1
@@ -6,6 +6,52 @@ import { FinsembleDraggable } from "../../../legacyControls/FinsembleDraggable";
6
6
  import { FinsembleDnDContext } from "../../../legacyControls/FinsembleDnDContext";
7
7
  const { ADVANCED_APP_LAUNCHER, DASHBOARDS, FAVORITES } = storeActions.getConstants();
8
8
  const dragDisabled = storeActions.getDragDisabled();
9
+ const RenderButtons = (props) => {
10
+ if (!props.showIcon)
11
+ return React.createElement(React.Fragment, null);
12
+ const { isEditing, canEdit, canDelete, attemptRename, cancelEdit, renameFolder, deleteFolder } = props;
13
+ if (isEditing) {
14
+ return (React.createElement("span", { className: "folder-action-icons" },
15
+ React.createElement("i", { id: "confirm-edit", className: "ff-check-mark-2", title: "Accept Rename", onMouseDown: attemptRename }),
16
+ React.createElement("i", { id: "cancel-edit", className: "ff-close", title: "Cancel", onMouseDown: cancelEdit })));
17
+ }
18
+ else {
19
+ return (React.createElement("span", { className: "folder-action-icons" },
20
+ canEdit && React.createElement("i", { className: "ff-adp-edit", title: "Rename", onClick: renameFolder }),
21
+ canDelete && React.createElement("i", { className: "ff-adp-trash-outline", title: "Delete Folder", onClick: deleteFolder })));
22
+ }
23
+ };
24
+ const RenderFolder = (props) => {
25
+ const { addFavorite, isFavorited, favorites } = useFavorites();
26
+ const onDrop = (e) => {
27
+ props.onDrop(e);
28
+ const app = JSON.parse(e.dataTransfer.getData("app"));
29
+ if (props.title === FAVORITES && !isFavorited(app.name)) {
30
+ const favoriteApp = {
31
+ id: app.name,
32
+ category: "Application",
33
+ name: app.name,
34
+ icon: app.icon,
35
+ };
36
+ addFavorite(favoriteApp);
37
+ }
38
+ };
39
+ React.useEffect(() => {
40
+ const existingFavApps = storeActions.getAllAppsFromFolder(FAVORITES);
41
+ Object.values(existingFavApps).forEach((app) => {
42
+ if (!favorites.some((fav) => fav.name === app.name)) {
43
+ storeActions.removeAppFromFolder("Favorites", app);
44
+ }
45
+ });
46
+ favorites.forEach((fav) => {
47
+ const app = storeActions.findAppByField("name", fav.name) || storeActions.findAppByField("displayName", fav.name);
48
+ if (app) {
49
+ storeActions.addAppToFolder("Favorites", app);
50
+ }
51
+ });
52
+ }, [favorites]);
53
+ return (React.createElement("div", Object.assign({}, props, { onDrop: onDrop }), props.children));
54
+ };
9
55
  export default class FoldersList extends React.Component {
10
56
  constructor(props) {
11
57
  super(props);
@@ -180,56 +226,12 @@ export default class FoldersList extends React.Component {
180
226
  else {
181
227
  nameField = folderName;
182
228
  }
183
- const RenderFolder = (props) => {
184
- const { addFavorite, isFavorited, favorites } = useFavorites();
185
- const onDrop = (e) => {
186
- props.onDrop(e);
187
- const app = JSON.parse(e.dataTransfer.getData("app"));
188
- if (folderName === FAVORITES && !isFavorited(app.name)) {
189
- const favoriteApp = {
190
- id: app.name,
191
- category: "Application",
192
- name: app.name,
193
- icon: app.icon,
194
- };
195
- addFavorite(favoriteApp);
196
- }
197
- };
198
- React.useEffect(() => {
199
- const existingFavApps = storeActions.getAllAppsFromFolder(FAVORITES);
200
- Object.values(existingFavApps).forEach((app) => {
201
- if (!favorites.some((fav) => fav.name === app.name)) {
202
- storeActions.removeAppFromFolder("Favorites", app);
203
- }
204
- });
205
- favorites.forEach((fav) => {
206
- const app = storeActions.findAppByField("name", fav.name) || storeActions.findAppByField("displayName", fav.name);
207
- if (app) {
208
- storeActions.addAppToFolder("Favorites", app);
209
- }
210
- });
211
- }, [favorites]);
212
- return (React.createElement("div", Object.assign({}, props, { onDrop: onDrop }), props.children));
213
- };
214
229
  const showIcon = canEdit || canDelete;
215
- let buttons;
216
- if (showIcon) {
217
- if (isEditing) {
218
- buttons = (React.createElement("span", { className: "folder-action-icons" },
219
- React.createElement("i", { id: "confirm-edit", className: "ff-check-mark-2", title: "Accept Rename", onMouseDown: this.attemptRename.bind(this) }),
220
- React.createElement("i", { id: "cancel-edit", className: "ff-close", title: "Cancel", onMouseDown: this.cancelEdit.bind(this) })));
221
- }
222
- else {
223
- buttons = (React.createElement("span", { className: "folder-action-icons" },
224
- canEdit && (React.createElement("i", { className: "ff-adp-edit", title: "Rename", onClick: this.renameFolder.bind(this, folderName) })),
225
- canDelete && (React.createElement("i", { className: "ff-adp-trash-outline", title: "Delete Folder", onClick: this.deleteFolder.bind(this, folderName) }))));
226
- }
227
- }
228
230
  return (React.createElement(RenderFolder, { onDragOver: (event) => event.preventDefault(), onDrop: (event) => this.onAppDrop(event, folderName), onClick: (event) => this.onFolderClicked(event, folderName), className: className, key: index, title: folderName },
229
231
  React.createElement("div", { className: "left-nav-label" },
230
232
  folder.icon && React.createElement("i", { className: folder.icon }),
231
233
  React.createElement("div", { className: "folder-name" }, nameField)),
232
- buttons));
234
+ React.createElement(RenderButtons, { showIcon: showIcon, isEditing: isEditing, canEdit: canEdit, canDelete: canDelete, attemptRename: () => this.attemptRename(), cancelEdit: () => this.cancelEdit(), renameFolder: (event) => this.renameFolder(folderName, event), deleteFolder: (event) => this.deleteFolder(folderName, event) })));
233
235
  }
234
236
  renderUnorderableFolders() {
235
237
  const folders = storeActions.getFolders();
@@ -1 +1 @@
1
- {"version":3,"file":"FoldersList.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/components/FoldersList.tsx"],"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\nimport { FavoriteCategory, FolderAppType, FoldersType, FolderType } from \"../../../../types/advancedAppLauncherTypes\";\r\nimport { StandardError } from \"@finsemble/finsemble-core/types/types\";\r\nconst { ADVANCED_APP_LAUNCHER, DASHBOARDS, FAVORITES } = storeActions.getConstants();\r\n\r\nconst dragDisabled = storeActions.getDragDisabled();\r\n\r\ninterface IProps {}\r\n\r\ninterface IState {\r\n\tfoldersList: FoldersType[\"list\"];\r\n\tactiveFolder: string;\r\n\trenamingFolder: any | null;\r\n\tfolderNameInput: string;\r\n\tisNameError: boolean;\r\n}\r\nexport default class FoldersList extends React.Component<IProps, IState> {\r\n\tlistDiv: React.RefObject<HTMLDivElement> | undefined;\r\n\r\n\terrorInput: React.RefObject<HTMLInputElement> | undefined;\r\n\r\n\tmouseY: number | null;\r\n\r\n\tconstructor(props: IProps) {\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: MouseEvent) {\r\n\t\tthis.mouseY = event.clientY;\r\n\t}\r\n\r\n\tonDragEnd({ oldIndex, newIndex }: { oldIndex: number; newIndex: number }) {\r\n\t\tstoreActions.reorderFolders(oldIndex, newIndex);\r\n\t}\r\n\r\n\tonAppDrop(event: React.DragEvent, folder: string) {\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: StandardError, data: { value: FoldersType[\"list\"] }) {\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: React.MouseEvent, folder: string) {\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() => {\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() {\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: string, e: React.MouseEvent) {\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: React.ChangeEvent<HTMLInputElement>) {\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: string, e: React.MouseEvent) {\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: React.KeyboardEvent<HTMLInputElement>) {\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 */\r\n\trenderFolder(folder: FolderType, folderName: string, index: number) {\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\ttype RenderFolderProps = {\r\n\t\t\tonDragOver: (e: React.DragEvent<HTMLDivElement>) => void;\r\n\t\t\tonDrop: (e: React.DragEvent<HTMLDivElement>) => void;\r\n\t\t\tonClick: (event: React.MouseEvent) => void;\r\n\t\t\tclassName: string;\r\n\t\t\tchildren?: React.ReactNode;\r\n\t\t\ttitle: string;\r\n\t\t};\r\n\t\tconst RenderFolder = (props: RenderFolderProps) => {\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: React.DragEvent<HTMLDivElement>) => {\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\" as FavoriteCategory,\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: FolderAppType[] = 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 =\r\n\t\t\t\t\t\tstoreActions.findAppByField(\"name\", fav.name) || storeActions.findAppByField(\"displayName\", 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: React.DragEvent) => event.preventDefault()}\r\n\t\t\t\tonDrop={(event: React.DragEvent) => this.onAppDrop(event, folderName)}\r\n\t\t\t\tonClick={(event: React.MouseEvent) => 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: FoldersType[\"folders\"] = storeActions.getFolders();\r\n\t\tconst unorderableFolders: string[] = 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: string, index) => {\r\n\t\t\tconst folder: FolderType = folders[folderName];\r\n\t\t\tfolder.icon = \"\";\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.tsx"],"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\";\nimport { FavoriteCategory, FolderAppType, FoldersType, FolderType } from \"../../../../types/advancedAppLauncherTypes\";\nimport { StandardError } from \"@finsemble/finsemble-api/types/types\";\nconst { ADVANCED_APP_LAUNCHER, DASHBOARDS, FAVORITES } = storeActions.getConstants();\n\nconst dragDisabled = storeActions.getDragDisabled();\n\ninterface IProps {}\n\ninterface IState {\n\tfoldersList: FoldersType[\"list\"];\n\tactiveFolder: string;\n\trenamingFolder: any | null;\n\tfolderNameInput: string;\n\tisNameError: boolean;\n}\n\ntype RenderFolderProps = {\n\tonDragOver: (e: React.DragEvent<HTMLDivElement>) => void;\n\tonDrop: (e: React.DragEvent<HTMLDivElement>) => void;\n\tonClick: (event: React.MouseEvent) => void;\n\tclassName: string;\n\tchildren?: React.ReactNode;\n\ttitle: string;\n};\n\nconst RenderButtons = (props: any) => {\n\tif (!props.showIcon) return <></>;\n\n\tconst { isEditing, canEdit, canDelete, attemptRename, cancelEdit, renameFolder, deleteFolder } = props;\n\n\tif (isEditing) {\n\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// 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// For more information see: https://www.eventbrite.com/engineering/a-story-of-a-react-re-rendering-bug/\n\t\treturn (\n\t\t\t<span className=\"folder-action-icons\">\n\t\t\t\t<i id=\"confirm-edit\" className=\"ff-check-mark-2\" title=\"Accept Rename\" onMouseDown={attemptRename}></i>\n\t\t\t\t<i id=\"cancel-edit\" className=\"ff-close\" title=\"Cancel\" onMouseDown={cancelEdit}></i>\n\t\t\t</span>\n\t\t);\n\t} else {\n\t\treturn (\n\t\t\t<span className=\"folder-action-icons\">\n\t\t\t\t{canEdit && <i className=\"ff-adp-edit\" title=\"Rename\" onClick={renameFolder}></i>}\n\t\t\t\t{canDelete && <i className=\"ff-adp-trash-outline\" title=\"Delete Folder\" onClick={deleteFolder}></i>}\n\t\t\t</span>\n\t\t);\n\t}\n};\n\nconst RenderFolder = (props: RenderFolderProps) => {\n\tconst { addFavorite, isFavorited, favorites } = useFavorites();\n\t// If an app is dropped in the Favorites folder, favorite the app\n\tconst onDrop = (e: React.DragEvent<HTMLDivElement>) => {\n\t\tprops.onDrop(e);\n\t\tconst app = JSON.parse(e.dataTransfer.getData(\"app\"));\n\t\tif (props.title === FAVORITES && !isFavorited(app.name)) {\n\t\t\tconst favoriteApp = {\n\t\t\t\tid: app.name,\n\t\t\t\tcategory: \"Application\" as FavoriteCategory,\n\t\t\t\tname: app.name,\n\t\t\t\ticon: app.icon,\n\t\t\t};\n\t\t\taddFavorite(favoriteApp);\n\t\t}\n\t};\n\t// When favorites changes remove all items from the favorites folder and re-add all current favorites.\n\tReact.useEffect(() => {\n\t\tconst existingFavApps: FolderAppType[] = storeActions.getAllAppsFromFolder(FAVORITES);\n\t\tObject.values(existingFavApps).forEach((app) => {\n\t\t\tif (!favorites.some((fav) => fav.name === app.name)) {\n\t\t\t\tstoreActions.removeAppFromFolder(\"Favorites\", app);\n\t\t\t}\n\t\t});\n\t\tfavorites.forEach((fav) => {\n\t\t\tconst app = storeActions.findAppByField(\"name\", fav.name) || storeActions.findAppByField(\"displayName\", fav.name);\n\t\t\t// may have things other than favorites in here.\n\t\t\tif (app) {\n\t\t\t\tstoreActions.addAppToFolder(\"Favorites\", app);\n\t\t\t}\n\t\t});\n\t}, [favorites]);\n\treturn (\n\t\t<div {...props} onDrop={onDrop}>\n\t\t\t{props.children}\n\t\t</div>\n\t);\n};\n\nexport default class FoldersList extends React.Component<IProps, IState> {\n\tlistDiv: React.RefObject<HTMLDivElement> | undefined;\n\n\terrorInput: React.RefObject<HTMLInputElement> | undefined;\n\n\tmouseY: number | null;\n\n\tconstructor(props: IProps) {\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: MouseEvent) {\n\t\tthis.mouseY = event.clientY;\n\t}\n\n\tonDragEnd({ oldIndex, newIndex }: { oldIndex: number; newIndex: number }) {\n\t\tstoreActions.reorderFolders(oldIndex, newIndex);\n\t}\n\n\tonAppDrop(event: React.DragEvent, folder: string) {\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: StandardError, data: { value: FoldersType[\"list\"] }) {\n\t\tthis.setState({\n\t\t\tfoldersList: data.value,\n\t\t});\n\t}\n\n\tonFolderClicked(event: React.MouseEvent, folder: string) {\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() => {\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() {\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: string, e: React.MouseEvent) {\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: React.ChangeEvent<HTMLInputElement>) {\n\t\tthis.setState({\n\t\t\tfolderNameInput: e.target.value,\n\t\t});\n\t}\n\n\tdeleteFolder(name: string, e: React.MouseEvent) {\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: React.KeyboardEvent<HTMLInputElement>) {\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 */\n\trenderFolder(folder: FolderType, folderName: string, index: number) {\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 showIcon = canEdit || canDelete;\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: React.DragEvent) => event.preventDefault()}\n\t\t\t\tonDrop={(event: React.DragEvent) => this.onAppDrop(event, folderName)}\n\t\t\t\tonClick={(event: React.MouseEvent) => 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<RenderButtons\n\t\t\t\t\tshowIcon={showIcon}\n\t\t\t\t\tisEditing={isEditing}\n\t\t\t\t\tcanEdit={canEdit}\n\t\t\t\t\tcanDelete={canDelete}\n\t\t\t\t\tattemptRename={() => this.attemptRename()}\n\t\t\t\t\tcancelEdit={() => this.cancelEdit()}\n\t\t\t\t\trenameFolder={(event: React.DragEvent) => this.renameFolder(folderName, event)}\n\t\t\t\t\tdeleteFolder={(event: React.DragEvent) => this.deleteFolder(folderName, event)}\n\t\t\t\t/>\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: FoldersType[\"folders\"] = storeActions.getFolders();\n\t\tconst unorderableFolders: string[] = this.state.foldersList.filter(\n\t\t\t(folderName) => dragDisabled.includes(folderName) && folderName in folders\n\t\t);\n\t\treturn unorderableFolders.map((folderName: string, index) => {\n\t\t\tconst folder: FolderType = folders[folderName];\n\t\t\tfolder.icon = \"\";\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":"LeftNavBottomLinks.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.tsx"],"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\ninterface IProps {\r\n\tenableQuickComponents: boolean;\r\n\topenAppMarket: () => void;\r\n\t[prop: string]: string | boolean | (() => void);\r\n}\r\n\r\ninterface IState {\r\n\tbottomEntries: {\r\n\t\tname: string;\r\n\t\tclick: string;\r\n\t\ticon?: string;\r\n\t}[];\r\n}\r\n\r\nexport default class LeftNavBottomLinks extends React.Component<IProps, IState> {\r\n\tconstructor(props: IProps) {\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((err, 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\r\n\t\t\t\t\t\t? (this as { [key: string]: any })[entry.click] || this.props[entry.click]\r\n\t\t\t\t\t\t: 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.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { getStore } from \"../stores/LauncherStore\";\nimport AddNewFolder from \"./AddNewFolder\";\n\ninterface IProps {\n\tenableQuickComponents: boolean;\n\topenAppMarket: () => void;\n\t[prop: string]: string | boolean | (() => void);\n}\n\ninterface IState {\n\tbottomEntries: {\n\t\tname: string;\n\t\tclick: string;\n\t\ticon?: string;\n\t}[];\n}\n\nexport default class LeftNavBottomLinks extends React.Component<IProps, IState> {\n\tconstructor(props: IProps) {\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((err, 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\n\t\t\t\t\t\t? (this as { [key: string]: any })[entry.click] || this.props[entry.click]\n\t\t\t\t\t\t: 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.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,KAAK,CAAC,SAAyB;IACvE,YAAY,KAAa;QACxB,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,CAAC,CAC3C,8BAAM,GAAG,EAAE,KAAK,IAAG,OAAO,CAAQ,CAClC,CAAC,CACG,CACN,CAAC;IACH,CAAC;CACD","sourcesContent":["import React from \"react\";\r\n\r\ninterface IProps {\r\n\tmessage: (string | JSX.Element)[];\r\n}\r\n\r\ninterface IState {}\r\n\r\nexport default class NoAppsFound extends React.Component<IProps, IState> {\r\n\tconstructor(props: IProps) {\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\t<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.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,KAAK,CAAC,SAAyB;IACvE,YAAY,KAAa;QACxB,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,CAAC,CAC3C,8BAAM,GAAG,EAAE,KAAK,IAAG,OAAO,CAAQ,CAClC,CAAC,CACG,CACN,CAAC;IACH,CAAC;CACD","sourcesContent":["import React from \"react\";\n\ninterface IProps {\n\tmessage: (string | JSX.Element)[];\n}\n\ninterface IState {}\n\nexport default class NoAppsFound extends React.Component<IProps, IState> {\n\tconstructor(props: IProps) {\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\t<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.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAQlD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,KAAK,CAAC,SAAyB;IAGrE,YAAY,KAAa;QACxB,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,KAA0C;;QAClD,MAAA,QAAQ,EAAE,0CAAE,QAAQ,CAAC;YACpB,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;SACzB,CAAC,CAAC;IACJ,CAAC;IAED,WAAW;;QACV,MAAA,QAAQ,EAAE,0CAAE,QAAQ,CAAC;YACpB,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE,IAAI;SACX,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,EAAE,CAAC;IACd,CAAC;IAED,mBAAmB,CAAC,KAAU,EAAE,MAAW;QAC1C,IAAI,CAAC,QAAQ,CAAC;YACb,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;SAC1B,CAAC,CAAC;IACJ,CAAC;IAED,KAAK;;QACJ,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,OAAO,0CAAE,KAAK,EAAE,CAAC;IAClC,CAAC;IAED,yBAAyB;;QACxB,MAAA,QAAQ,EAAE,0CAAE,WAAW,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC5E,CAAC;IAED,oBAAoB;;QACnB,MAAA,QAAQ,EAAE,0CAAE,cAAc,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC/E,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\ninterface IProps {}\r\n\r\ninterface IState {\r\n\tsearch: string;\r\n}\r\n\r\nexport default class SearchBox extends React.Component<IProps, IState> {\r\n\ttextInput: React.RefObject<HTMLInputElement> | undefined;\r\n\r\n\tconstructor(props: IProps) {\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: React.ChangeEvent<HTMLInputElement>) {\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(error: any, update: any) {\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.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAQlD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,KAAK,CAAC,SAAyB;IAGrE,YAAY,KAAa;QACxB,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,KAA0C;;QAClD,MAAA,QAAQ,EAAE,0CAAE,QAAQ,CAAC;YACpB,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;SACzB,CAAC,CAAC;IACJ,CAAC;IAED,WAAW;;QACV,MAAA,QAAQ,EAAE,0CAAE,QAAQ,CAAC;YACpB,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE,IAAI;SACX,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,EAAE,CAAC;IACd,CAAC;IAED,mBAAmB,CAAC,KAAU,EAAE,MAAW;QAC1C,IAAI,CAAC,QAAQ,CAAC;YACb,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;SAC1B,CAAC,CAAC;IACJ,CAAC;IAED,KAAK;;QACJ,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,OAAO,0CAAE,KAAK,EAAE,CAAC;IAClC,CAAC;IAED,yBAAyB;;QACxB,MAAA,QAAQ,EAAE,0CAAE,WAAW,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC5E,CAAC;IAED,oBAAoB;;QACnB,MAAA,QAAQ,EAAE,0CAAE,cAAc,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC/E,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\ninterface IProps {}\n\ninterface IState {\n\tsearch: string;\n}\n\nexport default class SearchBox extends React.Component<IProps, IState> {\n\ttextInput: React.RefObject<HTMLInputElement> | undefined;\n\n\tconstructor(props: IProps) {\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: React.ChangeEvent<HTMLInputElement>) {\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(error: any, update: any) {\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.tsx"],"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;AAOpD,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,KAAK,CAAC,SAAyB;IAClE,YAAY,KAAa;QACxB,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,MAAc;QAC3B,IAAI,CAAC,QAAQ,CACZ;YACC,MAAM,EAAE,MAAM;SACd,EACD,GAAG,EAAE;;YACJ,MAAA,QAAQ,EAAE,0CAAE,QAAQ,CAAC;gBACpB,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,GAAG,GAAG,OAAO,SAAS,CAAC;YAChE,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\ninterface IProps {}\r\ninterface IState {\r\n\tsortBy: string;\r\n}\r\n\r\nexport default class SortBy extends React.Component<IProps, IState> {\r\n\tconstructor(props: IProps) {\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: string) {\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 = `${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.tsx"],"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;AAOpD,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,KAAK,CAAC,SAAyB;IAClE,YAAY,KAAa;QACxB,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,MAAc;QAC3B,IAAI,CAAC,QAAQ,CACZ;YACC,MAAM,EAAE,MAAM;SACd,EACD,GAAG,EAAE;;YACJ,MAAA,QAAQ,EAAE,0CAAE,QAAQ,CAAC;gBACpB,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,GAAG,GAAG,OAAO,SAAS,CAAC;YAChE,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\ninterface IProps {}\ninterface IState {\n\tsortBy: string;\n}\n\nexport default class SortBy extends React.Component<IProps, IState> {\n\tconstructor(props: IProps) {\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: string) {\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 = `${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,5 +1,5 @@
1
1
  import React from "react";
2
- import { StandardError } from "@finsemble/finsemble-core/types/types";
2
+ import { StandardError } from "@finsemble/finsemble-api/types/types";
3
3
  interface IProps {
4
4
  }
5
5
  interface IState {
@@ -1 +1 @@
1
- {"version":3,"file":"TagsList.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/components/TagsList.tsx"],"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;AAUnD,IAAI,KAA6B,CAAC;AAElC,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,KAAK,CAAC,SAAyB;IACpE,YAAY,KAAa;QACxB,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,GAAW;QACtB,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,eAAe,CAAC,KAAoB,EAAE,IAAyB;QAC9D,IAAI,CAAC,QAAQ,CAAC;YACb,IAAI,EAAE,IAAI,CAAC,KAAK;SAChB,CAAC,CAAC;IACJ,CAAC;IAED,iBAAiB;QAChB,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,WAAW,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAC3E,CAAC;IAED,oBAAoB;QACnB,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,cAAc,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAC9E,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\nimport StoreModel from \"@finsemble/finsemble-core/types/clients/StoreModel\";\r\nimport { StandardError } from \"@finsemble/finsemble-core/types/types\";\r\n\r\ninterface IProps {}\r\n\r\ninterface IState {\r\n\ttags: string[];\r\n}\r\n\r\nlet store: StoreModel | undefined;\r\n\r\nexport default class TagsList extends React.Component<IProps, IState> {\r\n\tconstructor(props: IProps) {\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: string) {\r\n\t\tstoreActions.deleteTag(tag);\r\n\t}\r\n\r\n\tonTagListUpdate(error: StandardError, data: { value: string[] }) {\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.tsx"],"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;AAUnD,IAAI,KAA6B,CAAC;AAElC,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,KAAK,CAAC,SAAyB;IACpE,YAAY,KAAa;QACxB,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,GAAW;QACtB,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,eAAe,CAAC,KAAoB,EAAE,IAAyB;QAC9D,IAAI,CAAC,QAAQ,CAAC;YACb,IAAI,EAAE,IAAI,CAAC,KAAK;SAChB,CAAC,CAAC;IACJ,CAAC;IAED,iBAAiB;QAChB,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,WAAW,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAC3E,CAAC;IAED,oBAAoB;QACnB,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,cAAc,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAC9E,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\";\nimport StoreModel from \"@finsemble/finsemble-api/types/clients/StoreModel\";\nimport { StandardError } from \"@finsemble/finsemble-api/types/types\";\n\ninterface IProps {}\n\ninterface IState {\n\ttags: string[];\n}\n\nlet store: StoreModel | undefined;\n\nexport default class TagsList extends React.Component<IProps, IState> {\n\tconstructor(props: IProps) {\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: string) {\n\t\tstoreActions.deleteTag(tag);\n\t}\n\n\tonTagListUpdate(error: StandardError, data: { value: string[] }) {\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.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAmB1B,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,KAAK,CAAC,SAAyB;IACpE,YAAY,KAAa;QACxB,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,IAAY;QACvB,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,6BAAK,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,GAAE,CAAC,EAAE,SAAS,EAAC,WAAW,EAAC,KAAK,EAAE,MAAM;YACxG;gBACE,GAAG;gBACH,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAC3B,4BAAI,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IACnD,IAAI,CACD,CACL,CAAC;gBAAE,GAAG,CACH,CACA,CACN,CAAC;IACH,CAAC;IAED,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\ninterface IProps {\r\n\tonItemClick: (item: string) => void;\r\n\tlist: string[];\r\n\tlabel: string;\r\n\talign: string;\r\n}\r\n\r\ninterface IState {\r\n\tisVisible: boolean;\r\n}\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<IProps, IState> {\r\n\tconstructor(props: IProps) {\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: string) {\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 onMouseLeave={this.state.isVisible ? this.toggleMenu : () => {}} className=\"tags-menu\" style={styles}>\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\t<li key={index} onClick={() => this.onItemClick(item)}>\r\n\t\t\t\t\t\t\t{item}\r\n\t\t\t\t\t\t</li>\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\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.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAmB1B,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,KAAK,CAAC,SAAyB;IACpE,YAAY,KAAa;QACxB,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,IAAY;QACvB,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,6BAAK,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,GAAE,CAAC,EAAE,SAAS,EAAC,WAAW,EAAC,KAAK,EAAE,MAAM;YACxG;gBACE,GAAG;gBACH,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAC3B,4BAAI,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IACnD,IAAI,CACD,CACL,CAAC;gBAAE,GAAG,CACH,CACA,CACN,CAAC;IACH,CAAC;IAED,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\ninterface IProps {\n\tonItemClick: (item: string) => void;\n\tlist: string[];\n\tlabel: string;\n\talign: string;\n}\n\ninterface IState {\n\tisVisible: boolean;\n}\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<IProps, IState> {\n\tconstructor(props: IProps) {\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: string) {\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 onMouseLeave={this.state.isVisible ? this.toggleMenu : () => {}} className=\"tags-menu\" style={styles}>\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\t<li key={index} onClick={() => this.onItemClick(item)}>\n\t\t\t\t\t\t\t{item}\n\t\t\t\t\t\t</li>\n\t\t\t\t\t))}{\" \"}\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t);\n\t}\n\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.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,OAAO,OAAO,YAAY;IAChC,YAAY,MAAW;QACtB,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\n\r\nexport default class AppDirectory {\r\n\tconstructor(client: any) {\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.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,OAAO,OAAO,YAAY;IAChC,YAAY,MAAW;QACtB,OAAO,MAAM,CAAC;IACf,CAAC;CACD","sourcesContent":["/**\n * Copyright 2018 by ChartIQ, Inc.\n * All rights reserved.\n * To be implemented..\n */\n\nexport default class AppDirectory {\n\tconstructor(client: any) {\n\t\treturn client;\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"FDC3.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/modules/FDC3.ts"],"names":[],"mappings":"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","sourcesContent":["type FDC3ConfigProps = {\r\n\turl?: string;\r\n};\r\n\r\ntype doneCallback = (err: { message: string } | null, data?: any) => void;\r\n\r\nconst handleFdc3Response = (\r\n\tresponse: {\r\n\t\tjson: () => Promise<any>;\r\n\t\tstatus: number;\r\n\t},\r\n\tdone: doneCallback\r\n) => {\r\n\tresponse.json().then((data) => {\r\n\t\t// We are expecting 200 here for data\r\n\t\tif (response.status !== 200) {\r\n\t\t\t// We have a problem, data as error message\r\n\t\t\tdone(data);\r\n\t\t} else {\r\n\t\t\t// All good, no problem\r\n\t\t\tdone(null, data);\r\n\t\t}\r\n\t});\r\n};\r\n\r\nconst handleFdc3Error = (error: Error, done: doneCallback) => {\r\n\tdone({\r\n\t\tmessage: `Request failed ${error.message}`,\r\n\t});\r\n};\r\n\r\n/**\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\tcreds: {};\r\n\r\n\tconfig: FDC3ConfigProps;\r\n\r\n\tconstructor(config: FDC3ConfigProps = {}, 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: string, done: doneCallback) {\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) => handleFdc3Response(response, done))\r\n\t\t\t.catch((error) => handleFdc3Error(error, done));\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: string, params: {}, done: doneCallback) {\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) => handleFdc3Response(response, done))\r\n\t\t\t.catch((error) => handleFdc3Error(error, done));\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: doneCallback) {\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: string, callback: doneCallback) {\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: doneCallback) {\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: doneCallback) {\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.ts"],"names":[],"mappings":"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","sourcesContent":["type FDC3ConfigProps = {\n\turl?: string;\n};\n\ntype doneCallback = (err: { message: string } | null, data?: any) => void;\n\nconst handleFdc3Response = (\n\tresponse: {\n\t\tjson: () => Promise<any>;\n\t\tstatus: number;\n\t},\n\tdone: doneCallback\n) => {\n\tresponse.json().then((data) => {\n\t\t// We are expecting 200 here for data\n\t\tif (response.status !== 200) {\n\t\t\t// We have a problem, data as error message\n\t\t\tdone(data);\n\t\t} else {\n\t\t\t// All good, no problem\n\t\t\tdone(null, data);\n\t\t}\n\t});\n};\n\nconst handleFdc3Error = (error: Error, done: doneCallback) => {\n\tdone({\n\t\tmessage: `Request failed ${error.message}`,\n\t});\n};\n\n/**\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\tcreds: {};\n\n\tconfig: FDC3ConfigProps;\n\n\tconstructor(config: FDC3ConfigProps = {}, 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: string, done: doneCallback) {\n\t\tfetch(this.config.url + path, {\n\t\t\tmethod: \"GET\",\n\t\t})\n\t\t\t.then((response) => handleFdc3Response(response, done))\n\t\t\t.catch((error) => handleFdc3Error(error, done));\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: string, params: {}, done: doneCallback) {\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) => handleFdc3Response(response, done))\n\t\t\t.catch((error) => handleFdc3Error(error, done));\n\t}\n\n\t/**\n\t * Returns all applications\n\t * @param {function} callback The optional callback function\n\t */\n\tgetAll(callback: doneCallback) {\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: string, callback: doneCallback) {\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: doneCallback) {\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: doneCallback) {\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,5 +1,5 @@
1
- import StoreModel from "@finsemble/finsemble-core/types/clients/StoreModel";
2
- import { StandardError } from "@finsemble/finsemble-core/types/types";
1
+ import StoreModel from "@finsemble/finsemble-api/types/clients/StoreModel";
2
+ import { StandardError } from "@finsemble/finsemble-api/types/types";
3
3
  declare function createStore(done: (err: StandardError, store?: StoreModel) => void): void;
4
4
  declare function getStore(): StoreModel | undefined;
5
5
  export { createStore, getStore };
@@ -1 +1 @@
1
- {"version":3,"file":"LauncherStore.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/stores/LauncherStore.ts"],"names":[],"mappings":"AAGA,IAAI,aAAqC,CAAC;AAE1C,MAAM,IAAI,GAAG;IACZ,KAAK,EAAE,eAAe;IACtB,KAAK,EAAE,uBAAuB;CAC9B,CAAC;AAEF,SAAS,WAAW,CAAC,IAAsD;IAC1E,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAC3C;QACC,KAAK,EAAE,6BAA6B;QACpC,MAAM,EAAE,IAAI;KACZ,EACD,CAAC,KAAoB,EAAE,KAAkB,EAAE,EAAE;QAC5C,aAAa,GAAG,KAAK,CAAC;QACtB,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9B,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":["import StoreModel from \"@finsemble/finsemble-core/types/clients/StoreModel\";\r\nimport { StandardError } from \"@finsemble/finsemble-core/types/types\";\r\n\r\nlet launcherStore: StoreModel | undefined;\r\n\r\nconst data = {\r\n\tfield: \"defaultFolder\",\r\n\tvalue: \"Advanced App Launcher\",\r\n};\r\n\r\nfunction createStore(done: (err: StandardError, store?: StoreModel) => void) {\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: StandardError, store?: StoreModel) => {\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.ts"],"names":[],"mappings":"AAGA,IAAI,aAAqC,CAAC;AAE1C,MAAM,IAAI,GAAG;IACZ,KAAK,EAAE,eAAe;IACtB,KAAK,EAAE,uBAAuB;CAC9B,CAAC;AAEF,SAAS,WAAW,CAAC,IAAsD;IAC1E,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAC3C;QACC,KAAK,EAAE,6BAA6B;QACpC,MAAM,EAAE,IAAI;KACZ,EACD,CAAC,KAAoB,EAAE,KAAkB,EAAE,EAAE;QAC5C,aAAa,GAAG,KAAK,CAAC;QACtB,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9B,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":["import StoreModel from \"@finsemble/finsemble-api/types/clients/StoreModel\";\nimport { StandardError } from \"@finsemble/finsemble-api/types/types\";\n\nlet launcherStore: StoreModel | undefined;\n\nconst data = {\n\tfield: \"defaultFolder\",\n\tvalue: \"Advanced App Launcher\",\n};\n\nfunction createStore(done: (err: StandardError, store?: StoreModel) => void) {\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: StandardError, store?: StoreModel) => {\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"]}