@finsemble/finsemble-ui 7.0.0 → 7.1.0-beta.2

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 (787) hide show
  1. package/package.json +13 -11
  2. package/react/actions/favoriteActions.d.ts +1 -0
  3. package/react/actions/favoriteActions.js +1 -0
  4. package/react/actions/favoriteActions.js.map +1 -1
  5. package/react/actions/menuActions.d.ts +1 -0
  6. package/react/actions/menuActions.js +1 -0
  7. package/react/actions/menuActions.js.map +1 -1
  8. package/react/actions/rootActions.d.ts +1 -0
  9. package/react/actions/rootActions.js +1 -0
  10. package/react/actions/rootActions.js.map +1 -1
  11. package/react/actions/searchActions.d.ts +1 -0
  12. package/react/actions/searchActions.js +1 -0
  13. package/react/actions/searchActions.js.map +1 -1
  14. package/react/actions/toolbarActions.d.ts +34 -0
  15. package/react/actions/toolbarActions.js +17 -0
  16. package/react/actions/toolbarActions.js.map +1 -1
  17. package/react/actions/workspaceActions.d.ts +1 -0
  18. package/react/actions/workspaceActions.js +1 -0
  19. package/react/actions/workspaceActions.js.map +1 -1
  20. package/react/assets/css/advancedAppLauncher.css +22 -19
  21. package/react/assets/css/appCatalog.css +67 -72
  22. package/react/assets/css/authentication.css +4 -3
  23. package/react/assets/css/button.css +3 -10
  24. package/react/assets/css/core/formElements.css +1 -1
  25. package/react/assets/css/core/icons.css +3 -2
  26. package/react/assets/css/core/notifications.css +2 -2
  27. package/react/assets/css/core/windowFrame.css +9 -9
  28. package/react/assets/css/dashbar.css +1 -1
  29. package/react/assets/css/defaultTheme.css +9 -53
  30. package/react/assets/css/dialogs.css +13 -11
  31. package/react/assets/css/favorites.css +3 -1
  32. package/react/assets/css/finsemble.css +3 -2
  33. package/react/assets/css/font-finance.css +233 -120
  34. package/react/assets/css/fonts/Open_Sans/OpenSans-Definition.css +10 -10
  35. package/react/assets/css/linkerWindow.css +2 -2
  36. package/react/assets/css/menus.css +10 -10
  37. package/react/assets/css/notificationsCenter.css +16 -31
  38. package/react/assets/css/processMonitor.css +7 -4
  39. package/react/assets/css/search.css +1 -1
  40. package/react/assets/css/shared/animations.css +10 -4
  41. package/react/assets/css/shared/common.css +2 -2
  42. package/react/assets/css/tags.css +10 -10
  43. package/react/assets/css/toolbar.css +22 -19
  44. package/react/assets/css/userPreferences.css +12 -14
  45. package/react/assets/css/windowTitleBar.css +75 -36
  46. package/react/componentTemplateGenerator.js +3 -2
  47. package/react/componentTemplateGenerator.js.map +1 -1
  48. package/react/components/FinsembleProvider.d.ts +7 -0
  49. package/react/components/FinsembleProvider.js +2 -0
  50. package/react/components/FinsembleProvider.js.map +1 -1
  51. package/react/components/appCatalog/AppCatalog.d.ts +4 -0
  52. package/react/components/appCatalog/AppCatalog.js +4 -0
  53. package/react/components/appCatalog/AppCatalog.js.map +1 -1
  54. package/react/components/appCatalog/AppCatalogComponent.d.ts +58 -0
  55. package/react/components/appCatalog/AppCatalogComponent.js +70 -1
  56. package/react/components/appCatalog/AppCatalogComponent.js.map +1 -1
  57. package/react/components/appCatalog/components/AppCard.d.ts +35 -0
  58. package/react/components/appCatalog/components/AppCard.js +42 -0
  59. package/react/components/appCatalog/components/AppCard.js.map +1 -1
  60. package/react/components/appCatalog/components/AppResults.d.ts +10 -0
  61. package/react/components/appCatalog/components/AppResults.js +24 -0
  62. package/react/components/appCatalog/components/AppResults.js.map +1 -1
  63. package/react/components/appCatalog/components/Carousel.d.ts +26 -0
  64. package/react/components/appCatalog/components/Carousel.js +34 -0
  65. package/react/components/appCatalog/components/Carousel.js.map +1 -1
  66. package/react/components/appCatalog/components/EmptyResults.d.ts +4 -0
  67. package/react/components/appCatalog/components/EmptyResults.js +8 -0
  68. package/react/components/appCatalog/components/EmptyResults.js.map +1 -1
  69. package/react/components/appCatalog/components/Hero.d.ts +15 -0
  70. package/react/components/appCatalog/components/Hero.js +15 -0
  71. package/react/components/appCatalog/components/Hero.js.map +1 -1
  72. package/react/components/appCatalog/components/Home.d.ts +6 -4
  73. package/react/components/appCatalog/components/Home.js +10 -0
  74. package/react/components/appCatalog/components/Home.js.map +1 -1
  75. package/react/components/appCatalog/components/SearchBar.d.ts +31 -0
  76. package/react/components/appCatalog/components/SearchBar.js +33 -0
  77. package/react/components/appCatalog/components/SearchBar.js.map +1 -1
  78. package/react/components/appCatalog/components/Showcase/AppDescription.d.ts +5 -0
  79. package/react/components/appCatalog/components/Showcase/AppDescription.js +9 -0
  80. package/react/components/appCatalog/components/Showcase/AppDescription.js.map +1 -1
  81. package/react/components/appCatalog/components/Showcase/AppDevNotes.d.ts +7 -0
  82. package/react/components/appCatalog/components/Showcase/AppDevNotes.js +15 -0
  83. package/react/components/appCatalog/components/Showcase/AppDevNotes.js.map +1 -1
  84. package/react/components/appCatalog/components/Showcase/AppShowcase.d.ts +17 -0
  85. package/react/components/appCatalog/components/Showcase/AppShowcase.js +25 -0
  86. package/react/components/appCatalog/components/Showcase/AppShowcase.js.map +1 -1
  87. package/react/components/appCatalog/components/Showcase/Header.d.ts +7 -0
  88. package/react/components/appCatalog/components/Showcase/Header.js +12 -0
  89. package/react/components/appCatalog/components/Showcase/Header.js.map +1 -1
  90. package/react/components/appCatalog/components/Showcase/ImageCarousel.d.ts +7 -0
  91. package/react/components/appCatalog/components/Showcase/ImageCarousel.js +11 -0
  92. package/react/components/appCatalog/components/Showcase/ImageCarousel.js.map +1 -1
  93. package/react/components/appCatalog/components/Showcase/Modal.d.ts +10 -0
  94. package/react/components/appCatalog/components/Showcase/Modal.js +10 -0
  95. package/react/components/appCatalog/components/Showcase/Modal.js.map +1 -1
  96. package/react/components/appCatalog/components/Showcase/ReleaseNotes.d.ts +5 -0
  97. package/react/components/appCatalog/components/Showcase/ReleaseNotes.js +9 -0
  98. package/react/components/appCatalog/components/Showcase/ReleaseNotes.js.map +1 -1
  99. package/react/components/appCatalog/components/Showcase/SupportNotes.d.ts +6 -0
  100. package/react/components/appCatalog/components/Showcase/SupportNotes.js +11 -0
  101. package/react/components/appCatalog/components/Showcase/SupportNotes.js.map +1 -1
  102. package/react/components/appCatalog/components/Showcase/VersionNotes.d.ts +5 -0
  103. package/react/components/appCatalog/components/Showcase/VersionNotes.js +9 -0
  104. package/react/components/appCatalog/components/Showcase/VersionNotes.js.map +1 -1
  105. package/react/components/appCatalog/components/Tag.d.ts +6 -0
  106. package/react/components/appCatalog/components/Tag.js +10 -0
  107. package/react/components/appCatalog/components/Tag.js.map +1 -1
  108. package/react/components/appCatalog/components/Toast.d.ts +5 -0
  109. package/react/components/appCatalog/components/Toast.js +9 -0
  110. package/react/components/appCatalog/components/Toast.js.map +1 -1
  111. package/react/components/appCatalog/components/helpers.js +1 -0
  112. package/react/components/appCatalog/components/helpers.js.map +1 -1
  113. package/react/components/appCatalog/modules/AppDirectory.d.ts +5 -0
  114. package/react/components/appCatalog/modules/AppDirectory.js +5 -0
  115. package/react/components/appCatalog/modules/AppDirectory.js.map +1 -1
  116. package/react/components/appCatalog/modules/FDC3.d.ts +37 -0
  117. package/react/components/appCatalog/modules/FDC3.js +40 -0
  118. package/react/components/appCatalog/modules/FDC3.js.map +1 -1
  119. package/react/components/appCatalog/stores/appStore.js +1 -0
  120. package/react/components/appCatalog/stores/appStore.js.map +1 -1
  121. package/react/components/appCatalog/stores/storeActions.d.ts +91 -0
  122. package/react/components/appCatalog/stores/storeActions.js +116 -1
  123. package/react/components/appCatalog/stores/storeActions.js.map +1 -1
  124. package/react/components/common/Checkbox.d.ts +1 -0
  125. package/react/components/common/Checkbox.js +2 -2
  126. package/react/components/common/Checkbox.js.map +1 -1
  127. package/react/components/common/ColorPicker.d.ts +5 -0
  128. package/react/components/common/ColorPicker.js +40 -0
  129. package/react/components/common/ColorPicker.js.map +1 -1
  130. package/react/components/common/DropZone.d.ts +11 -0
  131. package/react/components/common/DropZone.js +21 -1
  132. package/react/components/common/DropZone.js.map +1 -1
  133. package/react/components/common/DropdownButton.d.ts +4 -0
  134. package/react/components/common/DropdownButton.js +4 -0
  135. package/react/components/common/DropdownButton.js.map +1 -1
  136. package/react/components/common/ErrorBoundary.d.ts +18 -0
  137. package/react/components/common/ErrorBoundary.js +21 -0
  138. package/react/components/common/ErrorBoundary.js.map +1 -1
  139. package/react/components/common/FileInput.d.ts +8 -1
  140. package/react/components/common/FileInput.js +19 -4
  141. package/react/components/common/FileInput.js.map +1 -1
  142. package/react/components/common/FinsembleIcon.d.ts +10 -0
  143. package/react/components/common/FinsembleIcon.js +51 -2
  144. package/react/components/common/FinsembleIcon.js.map +1 -1
  145. package/react/components/common/FinsembleSelect.js +5 -1
  146. package/react/components/common/FinsembleSelect.js.map +1 -1
  147. package/react/components/common/FinsembleToggleButtonBar.js +1 -1
  148. package/react/components/common/FinsembleToggleButtonBar.js.map +1 -1
  149. package/react/components/common/InputTable.d.ts +7 -0
  150. package/react/components/common/InputTable.js +7 -0
  151. package/react/components/common/InputTable.js.map +1 -1
  152. package/react/components/common/Tab.js +3 -0
  153. package/react/components/common/Tab.js.map +1 -1
  154. package/react/components/common/TimeSelect.js +24 -0
  155. package/react/components/common/TimeSelect.js.map +1 -1
  156. package/react/components/common/Tooltip.js +2 -0
  157. package/react/components/common/Tooltip.js.map +1 -1
  158. package/react/components/common/css/accordion.css +9 -6
  159. package/react/components/common/css/application-edit-page.css +39 -44
  160. package/react/components/common/css/button.css +10 -5
  161. package/react/components/common/css/color-picker.css +3 -3
  162. package/react/components/common/css/drop-zone.css +2 -6
  163. package/react/components/common/css/file-input.css +5 -5
  164. package/react/components/common/css/header.css +3 -2
  165. package/react/components/common/css/icon.css +1 -1
  166. package/react/components/common/css/loading-spinner.css +7 -12
  167. package/react/components/common/css/selector.css +4 -4
  168. package/react/components/common/css/styles.css +22 -16
  169. package/react/components/common/css/tab.css +8 -8
  170. package/react/components/common/css/time-select.css +1 -0
  171. package/react/components/common/css/toggle.css +4 -4
  172. package/react/components/common/css/tooltip.css +2 -3
  173. package/react/components/common/file_helpers.js +2 -0
  174. package/react/components/common/file_helpers.js.map +1 -1
  175. package/react/components/common/helpers.js +1 -0
  176. package/react/components/common/helpers.js.map +1 -1
  177. package/react/components/common/stories/ColorPicker.stories.js +3 -0
  178. package/react/components/common/stories/ColorPicker.stories.js.map +1 -1
  179. package/react/components/common/stories/FileInput.stories.d.ts +3 -1
  180. package/react/components/common/stories/FileInput.stories.js +12 -0
  181. package/react/components/common/stories/FileInput.stories.js.map +1 -1
  182. package/react/components/common/tests/Accordion.spec.js +6 -0
  183. package/react/components/common/tests/Accordion.spec.js.map +1 -1
  184. package/react/components/common/tests/Checkbox.spec.js +1 -0
  185. package/react/components/common/tests/Checkbox.spec.js.map +1 -1
  186. package/react/components/common/tests/ColorPicker.spec.js +6 -0
  187. package/react/components/common/tests/ColorPicker.spec.js.map +1 -1
  188. package/react/components/common/tests/DropZone.spec.js +1 -0
  189. package/react/components/common/tests/DropZone.spec.js.map +1 -1
  190. package/react/components/common/tests/FileInput.spec.js +22 -0
  191. package/react/components/common/tests/FileInput.spec.js.map +1 -1
  192. package/react/components/common/tests/FinsembleSelect.spec.js +1 -0
  193. package/react/components/common/tests/FinsembleSelect.spec.js.map +1 -1
  194. package/react/components/common/tests/FinsembleToggle.spec.js +1 -0
  195. package/react/components/common/tests/FinsembleToggle.spec.js.map +1 -1
  196. package/react/components/common/tests/FinsembleToggleButtonBar.spec.js +1 -0
  197. package/react/components/common/tests/FinsembleToggleButtonBar.spec.js.map +1 -1
  198. package/react/components/common/tests/TimeSelect.spec.js +4 -0
  199. package/react/components/common/tests/TimeSelect.spec.js.map +1 -1
  200. package/react/components/common/tests/Tooltip.spec.js +16 -0
  201. package/react/components/common/tests/Tooltip.spec.js.map +1 -1
  202. package/react/components/favorites/FavoriteMaker.d.ts +8 -0
  203. package/react/components/favorites/FavoriteMaker.js +9 -0
  204. package/react/components/favorites/FavoriteMaker.js.map +1 -1
  205. package/react/components/favorites/FavoritesShell.d.ts +4 -0
  206. package/react/components/favorites/FavoritesShell.js +13 -1
  207. package/react/components/favorites/FavoritesShell.js.map +1 -1
  208. package/react/components/favorites/FavoritesShell.spec.js +3 -0
  209. package/react/components/favorites/FavoritesShell.spec.js.map +1 -1
  210. package/react/components/fdc3Resolver/ResolverContainer.js +8 -0
  211. package/react/components/fdc3Resolver/ResolverContainer.js.map +1 -1
  212. package/react/components/fdc3Resolver/ResolverDialog.css +16 -3
  213. package/react/components/fdc3Resolver/ResolverDialog.js +7 -2
  214. package/react/components/fdc3Resolver/ResolverDialog.js.map +1 -1
  215. package/react/components/fdc3Resolver/ResolverDialog.spec.js +3 -2
  216. package/react/components/fdc3Resolver/ResolverDialog.spec.js.map +1 -1
  217. package/react/components/fdc3Resolver/ResolverDialog.stories.js +2 -0
  218. package/react/components/fdc3Resolver/ResolverDialog.stories.js.map +1 -1
  219. package/react/components/icon/Icon.d.ts +13 -0
  220. package/react/components/icon/Icon.js +34 -0
  221. package/react/components/icon/Icon.js.map +1 -1
  222. package/react/components/legacyControls/FinsembleDialog.d.ts +4 -0
  223. package/react/components/legacyControls/FinsembleDialog.js +15 -0
  224. package/react/components/legacyControls/FinsembleDialog.js.map +1 -1
  225. package/react/components/legacyControls/FinsembleDialogButton.d.ts +3 -0
  226. package/react/components/legacyControls/FinsembleDialogButton.js +6 -1
  227. package/react/components/legacyControls/FinsembleDialogButton.js.map +1 -1
  228. package/react/components/legacyControls/FinsembleDialogQuestion.d.ts +7 -0
  229. package/react/components/legacyControls/FinsembleDialogQuestion.js +7 -0
  230. package/react/components/legacyControls/FinsembleDialogQuestion.js.map +1 -1
  231. package/react/components/legacyControls/FinsembleDialogTextInput.d.ts +3 -0
  232. package/react/components/legacyControls/FinsembleDialogTextInput.js +14 -0
  233. package/react/components/legacyControls/FinsembleDialogTextInput.js.map +1 -1
  234. package/react/components/legacyControls/FinsembleDnDContext.d.ts +19 -0
  235. package/react/components/legacyControls/FinsembleDnDContext.js +126 -1
  236. package/react/components/legacyControls/FinsembleDnDContext.js.map +1 -1
  237. package/react/components/legacyControls/FinsembleDraggable.d.ts +3 -0
  238. package/react/components/legacyControls/FinsembleDraggable.js +3 -0
  239. package/react/components/legacyControls/FinsembleDraggable.js.map +1 -1
  240. package/react/components/legacyControls/FinsembleHoverDetector.d.ts +15 -0
  241. package/react/components/legacyControls/FinsembleHoverDetector.js +26 -1
  242. package/react/components/legacyControls/FinsembleHoverDetector.js.map +1 -1
  243. package/react/components/legacyControls/FinsembleMenuSection.d.ts +4 -0
  244. package/react/components/legacyControls/FinsembleMenuSection.js +38 -0
  245. package/react/components/legacyControls/FinsembleMenuSection.js.map +1 -1
  246. package/react/components/legacyControls/tests/FinsembleDialogButton.spec.js +1 -0
  247. package/react/components/legacyControls/tests/FinsembleDialogButton.spec.js.map +1 -1
  248. package/react/components/legacyControls/tests/FinsembleDialogTextInput.spec.js +1 -0
  249. package/react/components/legacyControls/tests/FinsembleDialogTextInput.spec.js.map +1 -1
  250. package/react/components/linker/LinkerMenu.d.ts +3 -0
  251. package/react/components/linker/LinkerMenu.js +21 -0
  252. package/react/components/linker/LinkerMenu.js.map +1 -1
  253. package/react/components/linker/LinkerMenuDeprecated.d.ts +3 -0
  254. package/react/components/linker/LinkerMenuDeprecated.js +9 -0
  255. package/react/components/linker/LinkerMenuDeprecated.js.map +1 -1
  256. package/react/components/menu/Menu.d.ts +15 -0
  257. package/react/components/menu/Menu.js +15 -0
  258. package/react/components/menu/Menu.js.map +1 -1
  259. package/react/components/menu/MenuAutoResizer.d.ts +7 -0
  260. package/react/components/menu/MenuAutoResizer.js +27 -0
  261. package/react/components/menu/MenuAutoResizer.js.map +1 -1
  262. package/react/components/menu/MenuContent.d.ts +4 -0
  263. package/react/components/menu/MenuContent.js +4 -0
  264. package/react/components/menu/MenuContent.js.map +1 -1
  265. package/react/components/menu/MenuHotKey.d.ts +14 -0
  266. package/react/components/menu/MenuHotKey.js +15 -0
  267. package/react/components/menu/MenuHotKey.js.map +1 -1
  268. package/react/components/menu/MenuItem.d.ts +8 -0
  269. package/react/components/menu/MenuItem.js +13 -2
  270. package/react/components/menu/MenuItem.js.map +1 -1
  271. package/react/components/menu/MenuPortal.js +112 -2
  272. package/react/components/menu/MenuPortal.js.map +1 -1
  273. package/react/components/menu/MenuShell.d.ts +16 -0
  274. package/react/components/menu/MenuShell.js +26 -0
  275. package/react/components/menu/MenuShell.js.map +1 -1
  276. package/react/components/menu/MenuToggle.d.ts +3 -0
  277. package/react/components/menu/MenuToggle.js +3 -0
  278. package/react/components/menu/MenuToggle.js.map +1 -1
  279. package/react/components/menu/keyboardNavigation.d.ts +12 -0
  280. package/react/components/menu/keyboardNavigation.js +55 -0
  281. package/react/components/menu/keyboardNavigation.js.map +1 -1
  282. package/react/components/menu/menuContext.d.ts +6 -0
  283. package/react/components/menu/menuContext.js +6 -0
  284. package/react/components/menu/menuContext.js.map +1 -1
  285. package/react/components/menu/menuHelpers.d.ts +22 -0
  286. package/react/components/menu/menuHelpers.js +58 -1
  287. package/react/components/menu/menuHelpers.js.map +1 -1
  288. package/react/components/notifications/components/drawer/DrawerControls.js +8 -0
  289. package/react/components/notifications/components/drawer/DrawerControls.js.map +1 -1
  290. package/react/components/notifications/components/drawer/DrawerHeader.js +5 -0
  291. package/react/components/notifications/components/drawer/DrawerHeader.js.map +1 -1
  292. package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js +18 -0
  293. package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js.map +1 -1
  294. package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js +3 -0
  295. package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js.map +1 -1
  296. package/react/components/notifications/components/shared/CheckButton.js +1 -1
  297. package/react/components/notifications/components/shared/CheckButton.js.map +1 -1
  298. package/react/components/notifications/components/shared/NotificationCardShell.d.ts +9 -0
  299. package/react/components/notifications/components/shared/NotificationCardShell.js +13 -6
  300. package/react/components/notifications/components/shared/NotificationCardShell.js.map +1 -1
  301. package/react/components/notifications/components/shared/OverflowMenu.d.ts +4 -0
  302. package/react/components/notifications/components/shared/OverflowMenu.js +16 -2
  303. package/react/components/notifications/components/shared/OverflowMenu.js.map +1 -1
  304. package/react/components/notifications/components/views/CardView.js +3 -0
  305. package/react/components/notifications/components/views/CardView.js.map +1 -1
  306. package/react/components/notifications/components/views/ListView.js +8 -0
  307. package/react/components/notifications/components/views/ListView.js.map +1 -1
  308. package/react/components/notifications/notificationsContext.d.ts +4 -0
  309. package/react/components/notifications/notificationsContext.js +4 -0
  310. package/react/components/notifications/notificationsContext.js.map +1 -1
  311. package/react/components/notifications/types.d.ts +3 -0
  312. package/react/components/notifications/utils.d.ts +4 -0
  313. package/react/components/notifications/utils.js +4 -0
  314. package/react/components/notifications/utils.js.map +1 -1
  315. package/react/components/processMonitor/ProcessMonitor.d.ts +3 -0
  316. package/react/components/processMonitor/ProcessMonitor.js +17 -2
  317. package/react/components/processMonitor/ProcessMonitor.js.map +1 -1
  318. package/react/components/processMonitor/components/ChildWindow.d.ts +3 -0
  319. package/react/components/processMonitor/components/ChildWindow.js +5 -0
  320. package/react/components/processMonitor/components/ChildWindow.js.map +1 -1
  321. package/react/components/processMonitor/components/ListHeader.d.ts +5 -0
  322. package/react/components/processMonitor/components/ListHeader.js +7 -0
  323. package/react/components/processMonitor/components/ListHeader.js.map +1 -1
  324. package/react/components/processMonitor/components/ProcessStatistics.js +12 -1
  325. package/react/components/processMonitor/components/ProcessStatistics.js.map +1 -1
  326. package/react/components/processMonitor/constants.js +6 -0
  327. package/react/components/processMonitor/constants.js.map +1 -1
  328. package/react/components/processMonitor/helpers.d.ts +13 -0
  329. package/react/components/processMonitor/helpers.js +23 -3
  330. package/react/components/processMonitor/helpers.js.map +1 -1
  331. package/react/components/processMonitor/stores/ProcessMonitorStore.d.ts +39 -0
  332. package/react/components/processMonitor/stores/ProcessMonitorStore.js +50 -0
  333. package/react/components/processMonitor/stores/ProcessMonitorStore.js.map +1 -1
  334. package/react/components/quickComponentForm/QuickComponentForm.d.ts +3 -0
  335. package/react/components/quickComponentForm/QuickComponentForm.js +20 -0
  336. package/react/components/quickComponentForm/QuickComponentForm.js.map +1 -1
  337. package/react/components/quickComponentForm/quickComponent.css +1 -1
  338. package/react/components/sdd/AddApp.d.ts +4 -2
  339. package/react/components/sdd/AddApp.js +57 -49
  340. package/react/components/sdd/AddApp.js.map +1 -1
  341. package/react/components/sdd/AppEditAccess.js +8 -0
  342. package/react/components/sdd/AppEditAccess.js.map +1 -1
  343. package/react/components/sdd/AppEditPage.d.ts +2 -1
  344. package/react/components/sdd/AppEditPage.js +148 -361
  345. package/react/components/sdd/AppEditPage.js.map +1 -1
  346. package/react/components/sdd/Appearance.css +1 -1
  347. package/react/components/sdd/Appearance.js +3 -0
  348. package/react/components/sdd/Appearance.js.map +1 -1
  349. package/react/components/sdd/Application.js +39 -7
  350. package/react/components/sdd/Application.js.map +1 -1
  351. package/react/components/sdd/Applications.js +89 -13
  352. package/react/components/sdd/Applications.js.map +1 -1
  353. package/react/components/sdd/AssetsPage.css +3 -3
  354. package/react/components/sdd/EditPreload.js +10 -0
  355. package/react/components/sdd/EditPreload.js.map +1 -1
  356. package/react/components/sdd/ExportCloud.js +4 -0
  357. package/react/components/sdd/ExportCloud.js.map +1 -1
  358. package/react/components/sdd/Publish.js +2 -0
  359. package/react/components/sdd/Publish.js.map +1 -1
  360. package/react/components/sdd/PublishProgress.js +11 -1
  361. package/react/components/sdd/PublishProgress.js.map +1 -1
  362. package/react/components/sdd/SmartDesktopDesigner.js +17 -0
  363. package/react/components/sdd/SmartDesktopDesigner.js.map +1 -1
  364. package/react/components/sdd/ThemePage.css +6 -23
  365. package/react/components/sdd/ThemePage.js +1 -1
  366. package/react/components/sdd/ThemePage.js.map +1 -1
  367. package/react/components/sdd/Themes.js +2 -0
  368. package/react/components/sdd/Themes.js.map +1 -1
  369. package/react/components/sdd/Toolbar.js +7 -0
  370. package/react/components/sdd/Toolbar.js.map +1 -1
  371. package/react/components/sdd/appEditPage/Behavior.d.ts +34 -0
  372. package/react/components/sdd/appEditPage/Behavior.js +134 -0
  373. package/react/components/sdd/appEditPage/Behavior.js.map +1 -0
  374. package/react/components/sdd/appEditPage/Component.d.ts +22 -0
  375. package/react/components/sdd/appEditPage/Component.js +76 -0
  376. package/react/components/sdd/appEditPage/Component.js.map +1 -0
  377. package/react/components/sdd/appEditPage/DebugToolkit.d.ts +9 -0
  378. package/react/components/sdd/appEditPage/DebugToolkit.js +20 -0
  379. package/react/components/sdd/appEditPage/DebugToolkit.js.map +1 -0
  380. package/react/components/sdd/appEditPage/Interop.d.ts +10 -0
  381. package/react/components/sdd/appEditPage/Interop.js +40 -0
  382. package/react/components/sdd/appEditPage/Interop.js.map +1 -0
  383. package/react/components/sdd/appEditPage/Position.d.ts +18 -0
  384. package/react/components/sdd/appEditPage/Position.js +72 -0
  385. package/react/components/sdd/appEditPage/Position.js.map +1 -0
  386. package/react/components/sdd/appEditPage/Preloads.d.ts +9 -0
  387. package/react/components/sdd/appEditPage/Preloads.js +16 -0
  388. package/react/components/sdd/appEditPage/Preloads.js.map +1 -0
  389. package/react/components/sdd/appEditPage/SelectConnect.d.ts +15 -0
  390. package/react/components/sdd/appEditPage/SelectConnect.js +28 -0
  391. package/react/components/sdd/appEditPage/SelectConnect.js.map +1 -0
  392. package/react/components/sdd/appEditPage/Workspace.d.ts +12 -0
  393. package/react/components/sdd/appEditPage/Workspace.js +30 -0
  394. package/react/components/sdd/appEditPage/Workspace.js.map +1 -0
  395. package/react/components/sdd/common/getCSSVars.js +7 -2
  396. package/react/components/sdd/common/getCSSVars.js.map +1 -1
  397. package/react/components/sdd/common/setPreloadDefaults.js +4 -0
  398. package/react/components/sdd/common/setPreloadDefaults.js.map +1 -1
  399. package/react/components/sdd/css/addApp.css +18 -5
  400. package/react/components/sdd/css/appearance.css +6 -0
  401. package/react/components/sdd/css/applications.css +27 -14
  402. package/react/components/sdd/css/authentication.css +7 -6
  403. package/react/components/sdd/css/buttons.css +1 -1
  404. package/react/components/sdd/css/export.css +5 -3
  405. package/react/components/sdd/css/getting-started.css +2 -2
  406. package/react/components/sdd/css/nav.css +8 -11
  407. package/react/components/sdd/css/project-header.css +5 -7
  408. package/react/components/sdd/css/styles.css +29 -23
  409. package/react/components/sdd/css/views.css +4 -3
  410. package/react/components/sdd/fixtures/apps.js +12 -0
  411. package/react/components/sdd/fixtures/apps.js.map +1 -1
  412. package/react/components/sdd/fixtures/configTemplate.js +1 -0
  413. package/react/components/sdd/fixtures/configTemplate.js.map +1 -1
  414. package/react/components/sdd/fixtures/publishProgress.js +40 -0
  415. package/react/components/sdd/fixtures/publishProgress.js.map +1 -1
  416. package/react/components/sdd/sdd_helpers.d.ts +6 -0
  417. package/react/components/sdd/sdd_helpers.js +6 -0
  418. package/react/components/sdd/sdd_helpers.js.map +1 -1
  419. package/react/components/sdd/smartDesktopClient.d.ts +303 -0
  420. package/react/components/sdd/smartDesktopClient.js +334 -1
  421. package/react/components/sdd/smartDesktopClient.js.map +1 -1
  422. package/react/components/sdd/smartDesktopClient.spec.js +5 -2
  423. package/react/components/sdd/smartDesktopClient.spec.js.map +1 -1
  424. package/react/components/sdd/stories/AddApp.stories.d.ts +2 -1
  425. package/react/components/sdd/stories/AddApp.stories.js +8 -0
  426. package/react/components/sdd/stories/AddApp.stories.js.map +1 -1
  427. package/react/components/sdd/stories/AppEditPage.stories.d.ts +3 -1
  428. package/react/components/sdd/stories/AppEditPage.stories.js +3 -0
  429. package/react/components/sdd/stories/AppEditPage.stories.js.map +1 -1
  430. package/react/components/sdd/stories/Appearance.stories.js +1 -0
  431. package/react/components/sdd/stories/Appearance.stories.js.map +1 -1
  432. package/react/components/sdd/tests/AddApp.spec.js +40 -3
  433. package/react/components/sdd/tests/AddApp.spec.js.map +1 -1
  434. package/react/components/sdd/tests/AppEditPage.spec.js +16 -0
  435. package/react/components/sdd/tests/AppEditPage.spec.js.map +1 -1
  436. package/react/components/sdd/tests/Application.spec.js +33 -438
  437. package/react/components/sdd/tests/Application.spec.js.map +1 -1
  438. package/react/components/sdd/tests/Applications.spec.d.ts +1 -1
  439. package/react/components/sdd/tests/Applications.spec.js +29 -5
  440. package/react/components/sdd/tests/Applications.spec.js.map +1 -1
  441. package/react/components/sdd/tests/Authentication.spec.js +7 -0
  442. package/react/components/sdd/tests/Authentication.spec.js.map +1 -1
  443. package/react/components/sdd/tests/ContentHeader.spec.js +2 -0
  444. package/react/components/sdd/tests/ContentHeader.spec.js.map +1 -1
  445. package/react/components/sdd/tests/EditPreload.spec.js +13 -0
  446. package/react/components/sdd/tests/EditPreload.spec.js.map +1 -1
  447. package/react/components/sdd/tests/Export.spec.js +2 -1
  448. package/react/components/sdd/tests/Export.spec.js.map +1 -1
  449. package/react/components/sdd/tests/ItemList.spec.js +4 -0
  450. package/react/components/sdd/tests/ItemList.spec.js.map +1 -1
  451. package/react/components/sdd/tests/OptionalSettingsView.spec.js +29 -0
  452. package/react/components/sdd/tests/OptionalSettingsView.spec.js.map +1 -1
  453. package/react/components/sdd/tests/ProjectErrors.spec.js +2 -0
  454. package/react/components/sdd/tests/ProjectErrors.spec.js.map +1 -1
  455. package/react/components/sdd/tests/Themes.spec.js +1 -1
  456. package/react/components/sdd/tests/Themes.spec.js.map +1 -1
  457. package/react/components/sdd/tests/Toolbar.spec.js +53 -0
  458. package/react/components/sdd/tests/Toolbar.spec.js.map +1 -1
  459. package/react/components/sdd/tests/a11y_helper.js +8 -0
  460. package/react/components/sdd/tests/a11y_helper.js.map +1 -1
  461. package/react/components/search/Highlight.d.ts +6 -0
  462. package/react/components/search/Highlight.js +19 -0
  463. package/react/components/search/Highlight.js.map +1 -1
  464. package/react/components/search/SearchBestMatch.d.ts +4 -0
  465. package/react/components/search/SearchBestMatch.js +11 -0
  466. package/react/components/search/SearchBestMatch.js.map +1 -1
  467. package/react/components/search/SearchInput.d.ts +5 -0
  468. package/react/components/search/SearchInput.js +6 -0
  469. package/react/components/search/SearchInput.js.map +1 -1
  470. package/react/components/search/SearchProviderResults.js +2 -0
  471. package/react/components/search/SearchProviderResults.js.map +1 -1
  472. package/react/components/search/SearchResult.js +6 -0
  473. package/react/components/search/SearchResult.js.map +1 -1
  474. package/react/components/search/SearchResult.spec.js +7 -0
  475. package/react/components/search/SearchResult.spec.js.map +1 -1
  476. package/react/components/search/SearchResult.stories.js +4 -0
  477. package/react/components/search/SearchResult.stories.js.map +1 -1
  478. package/react/components/search/SearchResults.js +5 -1
  479. package/react/components/search/SearchResults.js.map +1 -1
  480. package/react/components/search/SearchResults.spec.js +7 -0
  481. package/react/components/search/SearchResults.spec.js.map +1 -1
  482. package/react/components/shared/Animate.d.ts +5 -0
  483. package/react/components/shared/Animate.js +12 -1
  484. package/react/components/shared/Animate.js.map +1 -1
  485. package/react/components/shared/DefaultDropdownButton.js +9 -0
  486. package/react/components/shared/DefaultDropdownButton.js.map +1 -1
  487. package/react/components/shared/Tag.d.ts +0 -4
  488. package/react/components/shared/Tag.js +4 -0
  489. package/react/components/shared/Tag.js.map +1 -1
  490. package/react/components/shared/TagsMenu.d.ts +6 -0
  491. package/react/components/shared/TagsMenu.js +7 -0
  492. package/react/components/shared/TagsMenu.js.map +1 -1
  493. package/react/components/shared/addProtocolToValidURL.d.ts +6 -0
  494. package/react/components/shared/addProtocolToValidURL.js +6 -0
  495. package/react/components/shared/addProtocolToValidURL.js.map +1 -1
  496. package/react/components/shared/openQuitConfirmationDialog.d.ts +1 -1
  497. package/react/components/shared/openQuitConfirmationDialog.js +4 -4
  498. package/react/components/shared/openQuitConfirmationDialog.js.map +1 -1
  499. package/react/components/shared/tests/addProtocolToValidURL.spec.js +1 -0
  500. package/react/components/shared/tests/addProtocolToValidURL.spec.js.map +1 -1
  501. package/react/components/shared/validateURL.d.ts +18 -0
  502. package/react/components/shared/validateURL.js +24 -5
  503. package/react/components/shared/validateURL.js.map +1 -1
  504. package/react/components/singleInputDialog/SingleInputDialog.css +1 -1
  505. package/react/components/singleInputDialog/SingleInputDialog.d.ts +3 -0
  506. package/react/components/singleInputDialog/SingleInputDialog.js +44 -0
  507. package/react/components/singleInputDialog/SingleInputDialog.js.map +1 -1
  508. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js +6 -0
  509. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js.map +1 -1
  510. package/react/components/system/System.d.ts +22 -0
  511. package/react/components/system/System.js +23 -1
  512. package/react/components/system/System.js.map +1 -1
  513. package/react/components/system/System.stories.js +1 -0
  514. package/react/components/system/System.stories.js.map +1 -1
  515. package/react/components/system/SystemTrayComponentShell.d.ts +6 -0
  516. package/react/components/system/SystemTrayComponentShell.js +9 -0
  517. package/react/components/system/SystemTrayComponentShell.js.map +1 -1
  518. package/react/components/toolbar/AutoArrange.d.ts +5 -0
  519. package/react/components/toolbar/AutoArrange.js +8 -1
  520. package/react/components/toolbar/AutoArrange.js.map +1 -1
  521. package/react/components/toolbar/AutoArrange.spec.js +1 -0
  522. package/react/components/toolbar/AutoArrange.spec.js.map +1 -1
  523. package/react/components/toolbar/AutoArrange.stories.js +1 -0
  524. package/react/components/toolbar/AutoArrange.stories.js.map +1 -1
  525. package/react/components/toolbar/DragHandle.d.ts +4 -0
  526. package/react/components/toolbar/DragHandle.js +11 -0
  527. package/react/components/toolbar/DragHandle.js.map +1 -1
  528. package/react/components/toolbar/DragHandle.spec.js +1 -0
  529. package/react/components/toolbar/DragHandle.spec.js.map +1 -1
  530. package/react/components/toolbar/DragHandle.stories.js +1 -0
  531. package/react/components/toolbar/DragHandle.stories.js.map +1 -1
  532. package/react/components/toolbar/MinimizeAll.d.ts +4 -0
  533. package/react/components/toolbar/MinimizeAll.js +7 -1
  534. package/react/components/toolbar/MinimizeAll.js.map +1 -1
  535. package/react/components/toolbar/MinimizeAll.spec.js +1 -0
  536. package/react/components/toolbar/MinimizeAll.spec.js.map +1 -1
  537. package/react/components/toolbar/MinimizeAll.stories.js +1 -0
  538. package/react/components/toolbar/MinimizeAll.stories.js.map +1 -1
  539. package/react/components/toolbar/NotificationControl.d.ts +5 -0
  540. package/react/components/toolbar/NotificationControl.js +8 -1
  541. package/react/components/toolbar/NotificationControl.js.map +1 -1
  542. package/react/components/toolbar/RevealAll.d.ts +4 -0
  543. package/react/components/toolbar/RevealAll.js +7 -1
  544. package/react/components/toolbar/RevealAll.js.map +1 -1
  545. package/react/components/toolbar/RevealAll.spec.js +1 -0
  546. package/react/components/toolbar/RevealAll.spec.js.map +1 -1
  547. package/react/components/toolbar/RevealAll.stories.js +1 -0
  548. package/react/components/toolbar/RevealAll.stories.js.map +1 -1
  549. package/react/components/toolbar/SddButton.d.ts +4 -0
  550. package/react/components/toolbar/SddButton.js +4 -0
  551. package/react/components/toolbar/SddButton.js.map +1 -1
  552. package/react/components/toolbar/ToolbarIcon.d.ts +4 -0
  553. package/react/components/toolbar/ToolbarIcon.js +4 -0
  554. package/react/components/toolbar/ToolbarIcon.js.map +1 -1
  555. package/react/components/toolbar/ToolbarSection.d.ts +7 -0
  556. package/react/components/toolbar/ToolbarSection.js +19 -1
  557. package/react/components/toolbar/ToolbarSection.js.map +1 -1
  558. package/react/components/toolbar/ToolbarShell.d.ts +5 -0
  559. package/react/components/toolbar/ToolbarShell.js +7 -0
  560. package/react/components/toolbar/ToolbarShell.js.map +1 -1
  561. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.d.ts +16 -0
  562. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.js +20 -0
  563. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.js.map +1 -1
  564. package/react/components/toolbar/advancedAppLauncher/components/AddNewAppForm.d.ts +52 -0
  565. package/react/components/toolbar/advancedAppLauncher/components/AddNewAppForm.js +58 -0
  566. package/react/components/toolbar/advancedAppLauncher/components/AddNewAppForm.js.map +1 -1
  567. package/react/components/toolbar/advancedAppLauncher/components/AddNewFolder.d.ts +5 -0
  568. package/react/components/toolbar/advancedAppLauncher/components/AddNewFolder.js +5 -0
  569. package/react/components/toolbar/advancedAppLauncher/components/AddNewFolder.js.map +1 -1
  570. package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.d.ts +27 -0
  571. package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.js +49 -0
  572. package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.js.map +1 -1
  573. package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.d.ts +13 -0
  574. package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.js +14 -0
  575. package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.js.map +1 -1
  576. package/react/components/toolbar/advancedAppLauncher/components/Content.d.ts +5 -0
  577. package/react/components/toolbar/advancedAppLauncher/components/Content.js +19 -0
  578. package/react/components/toolbar/advancedAppLauncher/components/Content.js.map +1 -1
  579. package/react/components/toolbar/advancedAppLauncher/components/FilterSort.d.ts +4 -0
  580. package/react/components/toolbar/advancedAppLauncher/components/FilterSort.js +4 -0
  581. package/react/components/toolbar/advancedAppLauncher/components/FilterSort.js.map +1 -1
  582. package/react/components/toolbar/advancedAppLauncher/components/FoldersList.d.ts +16 -0
  583. package/react/components/toolbar/advancedAppLauncher/components/FoldersList.js +39 -0
  584. package/react/components/toolbar/advancedAppLauncher/components/FoldersList.js.map +1 -1
  585. package/react/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.d.ts +4 -0
  586. package/react/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.js +9 -0
  587. package/react/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.js.map +1 -1
  588. package/react/components/toolbar/advancedAppLauncher/components/SearchBox.js +3 -0
  589. package/react/components/toolbar/advancedAppLauncher/components/SearchBox.js.map +1 -1
  590. package/react/components/toolbar/advancedAppLauncher/components/TagsMenu.d.ts +6 -0
  591. package/react/components/toolbar/advancedAppLauncher/components/TagsMenu.js +7 -0
  592. package/react/components/toolbar/advancedAppLauncher/components/TagsMenu.js.map +1 -1
  593. package/react/components/toolbar/advancedAppLauncher/components/ToggleFavoriteDropdown.d.ts +5 -0
  594. package/react/components/toolbar/advancedAppLauncher/components/ToggleFavoriteDropdown.js +5 -0
  595. package/react/components/toolbar/advancedAppLauncher/components/ToggleFavoriteDropdown.js.map +1 -1
  596. package/react/components/toolbar/advancedAppLauncher/modules/AppDirectory.d.ts +5 -0
  597. package/react/components/toolbar/advancedAppLauncher/modules/AppDirectory.js +5 -0
  598. package/react/components/toolbar/advancedAppLauncher/modules/AppDirectory.js.map +1 -1
  599. package/react/components/toolbar/advancedAppLauncher/modules/FDC3.d.ts +37 -0
  600. package/react/components/toolbar/advancedAppLauncher/modules/FDC3.js +40 -0
  601. package/react/components/toolbar/advancedAppLauncher/modules/FDC3.js.map +1 -1
  602. package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.d.ts +3 -0
  603. package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js +82 -0
  604. package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js.map +1 -1
  605. package/react/components/toolbar/advancedAppLauncher/utils/sort-functions.d.ts +10 -0
  606. package/react/components/toolbar/advancedAppLauncher/utils/sort-functions.js +11 -0
  607. package/react/components/toolbar/advancedAppLauncher/utils/sort-functions.js.map +1 -1
  608. package/react/components/toolbar/appLauncher/AppLauncherMenu.d.ts +18 -0
  609. package/react/components/toolbar/appLauncher/AppLauncherMenu.js +20 -0
  610. package/react/components/toolbar/appLauncher/AppLauncherMenu.js.map +1 -1
  611. package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.d.ts +9 -0
  612. package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.js +12 -0
  613. package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.js.map +1 -1
  614. package/react/components/toolbar/appLauncher/appLauncher.css +1 -1
  615. package/react/components/toolbar/appLauncher/components/componentList.d.ts +3 -0
  616. package/react/components/toolbar/appLauncher/components/componentList.js +17 -3
  617. package/react/components/toolbar/appLauncher/components/componentList.js.map +1 -1
  618. package/react/components/toolbar/appLauncher/stores/appLauncherStore.d.ts +6 -0
  619. package/react/components/toolbar/appLauncher/stores/appLauncherStore.js +26 -0
  620. package/react/components/toolbar/appLauncher/stores/appLauncherStore.js.map +1 -1
  621. package/react/components/toolbar/dashbar/Dashbar.js +70 -3
  622. package/react/components/toolbar/dashbar/Dashbar.js.map +1 -1
  623. package/react/components/toolbar/dashbar/DashbarItem.js +5 -0
  624. package/react/components/toolbar/dashbar/DashbarItem.js.map +1 -1
  625. package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.d.ts +7 -0
  626. package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.js +7 -0
  627. package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.js.map +1 -1
  628. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.d.ts +16 -0
  629. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js +20 -0
  630. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js.map +1 -1
  631. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.d.ts +26 -0
  632. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.js +29 -0
  633. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.js.map +1 -1
  634. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.d.ts +5 -0
  635. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.js +6 -0
  636. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.js.map +1 -1
  637. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.d.ts +76 -0
  638. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js +140 -1
  639. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js.map +1 -1
  640. package/react/components/toolbar/workspaceManagementMenu/workspaceManagementMenu.css +8 -18
  641. package/react/components/userPreferences/NotificationsPreferencesContext.d.ts +4 -0
  642. package/react/components/userPreferences/NotificationsPreferencesContext.js +4 -0
  643. package/react/components/userPreferences/NotificationsPreferencesContext.js.map +1 -1
  644. package/react/components/userPreferences/UserPreferenceTypes.d.ts +3 -0
  645. package/react/components/userPreferences/UserPreferences.d.ts +8 -0
  646. package/react/components/userPreferences/UserPreferences.js +8 -0
  647. package/react/components/userPreferences/UserPreferences.js.map +1 -1
  648. package/react/components/userPreferences/UserPreferencesBase.js +4 -0
  649. package/react/components/userPreferences/UserPreferencesBase.js.map +1 -1
  650. package/react/components/userPreferences/components/ContentSection.d.ts +5 -0
  651. package/react/components/userPreferences/components/LeftNav.d.ts +4 -0
  652. package/react/components/userPreferences/components/content/DashbarEditor.js +3 -0
  653. package/react/components/userPreferences/components/content/DashbarEditor.js.map +1 -1
  654. package/react/components/userPreferences/components/content/Notifications.js +3 -0
  655. package/react/components/userPreferences/components/content/Notifications.js.map +1 -1
  656. package/react/components/userPreferences/components/content/Workspaces.d.ts +12 -0
  657. package/react/components/userPreferences/components/content/Workspaces.js +33 -1
  658. package/react/components/userPreferences/components/content/Workspaces.js.map +1 -1
  659. package/react/components/userPreferences/components/content/notificationViews/NotificationsPreferencesHome.js +3 -0
  660. package/react/components/userPreferences/components/content/notificationViews/NotificationsPreferencesHome.js.map +1 -1
  661. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourceTypes.js +3 -0
  662. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourceTypes.js.map +1 -1
  663. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourcesPreferences.js +3 -0
  664. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourcesPreferences.js.map +1 -1
  665. package/react/components/userPreferences/components/general/ScheduledClose.js +11 -0
  666. package/react/components/userPreferences/components/general/ScheduledClose.js.map +1 -1
  667. package/react/components/userPreferences/components/workspaces/WorkspaceItem.js +3 -0
  668. package/react/components/userPreferences/components/workspaces/WorkspaceItem.js.map +1 -1
  669. package/react/components/userPreferences/stores/UserPreferencesStore.d.ts +17 -0
  670. package/react/components/userPreferences/stores/UserPreferencesStore.js +27 -0
  671. package/react/components/userPreferences/stores/UserPreferencesStore.js.map +1 -1
  672. package/react/components/userPreferences/tests/NotificationsPreferencesHome.spec.js +1 -0
  673. package/react/components/userPreferences/tests/NotificationsPreferencesHome.spec.js.map +1 -1
  674. package/react/components/userPreferences/tests/Workspace.spec.js +20 -0
  675. package/react/components/userPreferences/tests/Workspace.spec.js.map +1 -1
  676. package/react/components/windowTitleBar/WindowTitleBarShell.d.ts +124 -0
  677. package/react/components/windowTitleBar/WindowTitleBarShell.js +284 -35
  678. package/react/components/windowTitleBar/WindowTitleBarShell.js.map +1 -1
  679. package/react/components/windowTitleBar/components/center/Tab.d.ts +3 -0
  680. package/react/components/windowTitleBar/components/center/Tab.js +3 -0
  681. package/react/components/windowTitleBar/components/center/Tab.js.map +1 -1
  682. package/react/components/windowTitleBar/components/center/TabList.d.ts +90 -0
  683. package/react/components/windowTitleBar/components/center/TabList.js +170 -4
  684. package/react/components/windowTitleBar/components/center/TabList.js.map +1 -1
  685. package/react/components/windowTitleBar/components/left/LinkerButton.d.ts +9 -1
  686. package/react/components/windowTitleBar/components/left/LinkerButton.js +25 -9
  687. package/react/components/windowTitleBar/components/left/LinkerButton.js.map +1 -1
  688. package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.d.ts +47 -0
  689. package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.js +76 -1
  690. package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.js.map +1 -1
  691. package/react/components/windowTitleBar/components/left/LinkerGroups.d.ts +4 -0
  692. package/react/components/windowTitleBar/components/left/LinkerGroups.js +5 -0
  693. package/react/components/windowTitleBar/components/left/LinkerGroups.js.map +1 -1
  694. package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.d.ts +18 -0
  695. package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.js +49 -0
  696. package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.js.map +1 -1
  697. package/react/components/windowTitleBar/components/left/ShareButton.d.ts +17 -0
  698. package/react/components/windowTitleBar/components/left/ShareButton.js +39 -0
  699. package/react/components/windowTitleBar/components/left/ShareButton.js.map +1 -1
  700. package/react/components/windowTitleBar/components/right/AlwaysOnTopButton.js +4 -0
  701. package/react/components/windowTitleBar/components/right/AlwaysOnTopButton.js.map +1 -1
  702. package/react/components/windowTitleBar/components/right/CloseButton.d.ts +27 -0
  703. package/react/components/windowTitleBar/components/right/CloseButton.js +27 -0
  704. package/react/components/windowTitleBar/components/right/CloseButton.js.map +1 -1
  705. package/react/components/windowTitleBar/components/right/GroupingButton.d.ts +37 -0
  706. package/react/components/windowTitleBar/components/right/GroupingButton.js +40 -0
  707. package/react/components/windowTitleBar/components/right/GroupingButton.js.map +1 -1
  708. package/react/components/windowTitleBar/components/right/MaximizeButton.d.ts +46 -0
  709. package/react/components/windowTitleBar/components/right/MaximizeButton.js +54 -0
  710. package/react/components/windowTitleBar/components/right/MaximizeButton.js.map +1 -1
  711. package/react/components/windowTitleBar/components/right/MinimizeButton.d.ts +26 -0
  712. package/react/components/windowTitleBar/components/right/MinimizeButton.js +26 -0
  713. package/react/components/windowTitleBar/components/right/MinimizeButton.js.map +1 -1
  714. package/react/components/windowTitleBar/components/windowTitle.d.ts +40 -0
  715. package/react/components/windowTitleBar/components/windowTitle.js +172 -10
  716. package/react/components/windowTitleBar/components/windowTitle.js.map +1 -1
  717. package/react/components/windowTitleBar/stores/windowTitleBarStore.d.ts +5 -0
  718. package/react/components/windowTitleBar/stores/windowTitleBarStore.js +72 -1
  719. package/react/components/windowTitleBar/stores/windowTitleBarStore.js.map +1 -1
  720. package/react/components/yesNoDialog/YesNoDialog.css +1 -1
  721. package/react/components/yesNoDialog/YesNoDialog.d.ts +3 -0
  722. package/react/components/yesNoDialog/YesNoDialog.js +63 -0
  723. package/react/components/yesNoDialog/YesNoDialog.js.map +1 -1
  724. package/react/components/yesNoDialog/YesNoDialog.spec.js +4 -0
  725. package/react/components/yesNoDialog/YesNoDialog.spec.js.map +1 -1
  726. package/react/components/yesNoDialog/timer.js +2 -0
  727. package/react/components/yesNoDialog/timer.js.map +1 -1
  728. package/react/enzymeSetup.js +5 -0
  729. package/react/enzymeSetup.js.map +1 -1
  730. package/react/hooks/useDashbar.js +10 -0
  731. package/react/hooks/useDashbar.js.map +1 -1
  732. package/react/hooks/useDeepEffect.d.ts +4 -0
  733. package/react/hooks/useDeepEffect.js +21 -0
  734. package/react/hooks/useDeepEffect.js.map +1 -1
  735. package/react/hooks/useFavorites.d.ts +15 -0
  736. package/react/hooks/useFavorites.js +3 -0
  737. package/react/hooks/useFavorites.js.map +1 -1
  738. package/react/hooks/useFavoritesShell.d.ts +4 -0
  739. package/react/hooks/useFavoritesShell.js +23 -0
  740. package/react/hooks/useFavoritesShell.js.map +1 -1
  741. package/react/hooks/useHotkey.d.ts +6 -0
  742. package/react/hooks/useHotkey.js +9 -0
  743. package/react/hooks/useHotkey.js.map +1 -1
  744. package/react/hooks/useLinker.js +14 -0
  745. package/react/hooks/useLinker.js.map +1 -1
  746. package/react/hooks/useMenu.d.ts +29 -0
  747. package/react/hooks/useMenu.js +12 -1
  748. package/react/hooks/useMenu.js.map +1 -1
  749. package/react/hooks/useNotifications.d.ts +44 -0
  750. package/react/hooks/useNotifications.js +90 -0
  751. package/react/hooks/useNotifications.js.map +1 -1
  752. package/react/hooks/useOutsideClickDetector.d.ts +3 -0
  753. package/react/hooks/useOutsideClickDetector.js +3 -0
  754. package/react/hooks/useOutsideClickDetector.js.map +1 -1
  755. package/react/hooks/usePubSub.d.ts +17 -0
  756. package/react/hooks/usePubSub.js +18 -0
  757. package/react/hooks/usePubSub.js.map +1 -1
  758. package/react/hooks/useSearch.d.ts +5 -0
  759. package/react/hooks/useSearch.js +30 -0
  760. package/react/hooks/useSearch.js.map +1 -1
  761. package/react/hooks/useToolbar.js +52 -0
  762. package/react/hooks/useToolbar.js.map +1 -1
  763. package/react/reducers/favoriteReducer.d.ts +3 -0
  764. package/react/reducers/linkerReducer.d.ts +3 -0
  765. package/react/reducers/linkerReducer.js +4 -0
  766. package/react/reducers/linkerReducer.js.map +1 -1
  767. package/react/reducers/menuReducer.d.ts +28 -0
  768. package/react/reducers/menuReducer.js +34 -0
  769. package/react/reducers/menuReducer.js.map +1 -1
  770. package/react/reducers/rootReducer.js +3 -0
  771. package/react/reducers/rootReducer.js.map +1 -1
  772. package/react/reducers/searchReducer.d.ts +7 -0
  773. package/react/reducers/searchReducer.js +6 -0
  774. package/react/reducers/searchReducer.js.map +1 -1
  775. package/react/reducers/workspaceReducer.js +1 -0
  776. package/react/reducers/workspaceReducer.js.map +1 -1
  777. package/react/store.d.ts +4 -0
  778. package/react/store.js +11 -0
  779. package/react/store.js.map +1 -1
  780. package/react/tsconfig.tsbuildinfo +1 -1
  781. package/react/types/fdc3.d.ts +2 -0
  782. package/react/types/linkerTypes.d.ts +13 -0
  783. package/react/types/linkerTypes.js +1 -0
  784. package/react/types/linkerTypes.js.map +1 -1
  785. package/react/types/smartDesktopDesignerTypes.d.ts +5 -0
  786. package/react/types/smartDesktopDesignerTypes.js.map +1 -1
  787. package/react/types/workspaceTypes.d.ts +8 -0
@@ -1,6 +1,12 @@
1
1
  import * as React from "react";
2
2
  const { useState, useEffect } = React;
3
+ /**
4
+ * Animate the child component
5
+ * props have default values attached in the component
6
+ * @param props
7
+ */
3
8
  export default function Animate(props) {
9
+ // provide some defaults to ensure it still works even though it is blank
4
10
  const { animateIn, animateOut, displayDuration, animateOutComplete = () => {
5
11
  ("");
6
12
  }, } = props;
@@ -12,11 +18,16 @@ export default function Animate(props) {
12
18
  animateOut && setCSS(animateOut);
13
19
  }, displayDuration);
14
20
  }
21
+ // this will clear Timeout when component unmount like in willComponentUnmount
15
22
  return () => {
16
23
  timer1 && clearTimeout(timer1);
17
24
  animateOut && setCSS(animateOut);
18
25
  };
19
- }, [animateOut, displayDuration, props.displayDuration]);
26
+ }, [animateOut, displayDuration, props.displayDuration]
27
+ // eslint-disable-line
28
+ //useEffect will run only one time
29
+ //if you pass a value to array, like this [data] than clearTimeout will run every time this value changes (useEffect re-run)
30
+ );
20
31
  const hideChildElement = () => {
21
32
  css === animateOut && animateOutComplete();
22
33
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Animate.js","sourceRoot":"","sources":["../../../src/components/shared/Animate.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;AActC,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,KAAY;IAE3C,MAAM,EACL,SAAS,EACT,UAAU,EACV,eAAe,EACf,kBAAkB,GAAG,GAAG,EAAE;QACzB,CAAC,EAAE,CAAC,CAAC;IACN,CAAC,GACD,GAAG,KAAK,CAAC;IACV,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IAEhD,SAAS,CACR,GAAG,EAAE;QACJ,IAAI,MAAM,GAA0B,IAAI,CAAC;QACzC,IAAI,KAAK,CAAC,eAAe,EAAE;YAC1B,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE;gBACxB,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC;YAClC,CAAC,EAAE,eAAe,CAAC,CAAC;SACpB;QAGD,OAAO,GAAG,EAAE;YACX,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;YAC/B,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC,CAAC;IACH,CAAC,EACD,CAAC,UAAU,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC,CAIpD,CAAC;IAEF,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC7B,GAAG,KAAK,UAAU,IAAI,kBAAkB,EAAE,CAAC;IAC5C,CAAC,CAAC;IAEF,OAAO,CACN,6BAAK,SAAS,EAAE,GAAG,EAAE,cAAc,EAAE,gBAAgB,IACnD,KAAK,CAAC,QAAQ,CACV,CACN,CAAC;AACH,CAAC","sourcesContent":["import * as React from \"react\";\nconst { useState, useEffect } = React;\n\ninterface Props {\n\tchildren?: React.PropsWithChildren<any>;\n\tdisplayDuration?: number;\n\tanimateIn?: string;\n\tanimateOut?: string;\n\tanimateOutComplete?: Function;\n}\n/**\n * Animate the child component\n * props have default values attached in the component\n * @param props\n */\nexport default function Animate(props: Props) {\n\t// provide some defaults to ensure it still works even though it is blank\n\tconst {\n\t\tanimateIn,\n\t\tanimateOut,\n\t\tdisplayDuration,\n\t\tanimateOutComplete = () => {\n\t\t\t(\"\");\n\t\t},\n\t} = props;\n\tconst [css, setCSS] = useState(animateIn || \"\");\n\n\tuseEffect(\n\t\t() => {\n\t\t\tlet timer1: null | NodeJS.Timeout = null;\n\t\t\tif (props.displayDuration) {\n\t\t\t\ttimer1 = setTimeout(() => {\n\t\t\t\t\tanimateOut && setCSS(animateOut);\n\t\t\t\t}, displayDuration);\n\t\t\t}\n\n\t\t\t// this will clear Timeout when component unmount like in willComponentUnmount\n\t\t\treturn () => {\n\t\t\t\ttimer1 && clearTimeout(timer1);\n\t\t\t\tanimateOut && setCSS(animateOut);\n\t\t\t};\n\t\t},\n\t\t[animateOut, displayDuration, props.displayDuration]\n\t\t// eslint-disable-line\n\t\t//useEffect will run only one time\n\t\t//if you pass a value to array, like this [data] than clearTimeout will run every time this value changes (useEffect re-run)\n\t);\n\n\tconst hideChildElement = () => {\n\t\tcss === animateOut && animateOutComplete();\n\t};\n\n\treturn (\n\t\t<div className={css} onAnimationEnd={hideChildElement}>\n\t\t\t{props.children}\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"file":"Animate.js","sourceRoot":"","sources":["../../../src/components/shared/Animate.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;AAStC;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,KAAY;IAC3C,yEAAyE;IACzE,MAAM,EACL,SAAS,EACT,UAAU,EACV,eAAe,EACf,kBAAkB,GAAG,GAAG,EAAE;QACzB,CAAC,EAAE,CAAC,CAAC;IACN,CAAC,GACD,GAAG,KAAK,CAAC;IACV,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IAEhD,SAAS,CACR,GAAG,EAAE;QACJ,IAAI,MAAM,GAA0B,IAAI,CAAC;QACzC,IAAI,KAAK,CAAC,eAAe,EAAE;YAC1B,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE;gBACxB,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC;YAClC,CAAC,EAAE,eAAe,CAAC,CAAC;SACpB;QAED,8EAA8E;QAC9E,OAAO,GAAG,EAAE;YACX,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;YAC/B,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC,CAAC;IACH,CAAC,EACD,CAAC,UAAU,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC;IACpD,sBAAsB;IACtB,kCAAkC;IAClC,4HAA4H;KAC5H,CAAC;IAEF,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC7B,GAAG,KAAK,UAAU,IAAI,kBAAkB,EAAE,CAAC;IAC5C,CAAC,CAAC;IAEF,OAAO,CACN,6BAAK,SAAS,EAAE,GAAG,EAAE,cAAc,EAAE,gBAAgB,IACnD,KAAK,CAAC,QAAQ,CACV,CACN,CAAC;AACH,CAAC","sourcesContent":["import * as React from \"react\";\nconst { useState, useEffect } = React;\n\ninterface Props {\n\tchildren?: React.PropsWithChildren<any>;\n\tdisplayDuration?: number;\n\tanimateIn?: string;\n\tanimateOut?: string;\n\tanimateOutComplete?: Function;\n}\n/**\n * Animate the child component\n * props have default values attached in the component\n * @param props\n */\nexport default function Animate(props: Props) {\n\t// provide some defaults to ensure it still works even though it is blank\n\tconst {\n\t\tanimateIn,\n\t\tanimateOut,\n\t\tdisplayDuration,\n\t\tanimateOutComplete = () => {\n\t\t\t(\"\");\n\t\t},\n\t} = props;\n\tconst [css, setCSS] = useState(animateIn || \"\");\n\n\tuseEffect(\n\t\t() => {\n\t\t\tlet timer1: null | NodeJS.Timeout = null;\n\t\t\tif (props.displayDuration) {\n\t\t\t\ttimer1 = setTimeout(() => {\n\t\t\t\t\tanimateOut && setCSS(animateOut);\n\t\t\t\t}, displayDuration);\n\t\t\t}\n\n\t\t\t// this will clear Timeout when component unmount like in willComponentUnmount\n\t\t\treturn () => {\n\t\t\t\ttimer1 && clearTimeout(timer1);\n\t\t\t\tanimateOut && setCSS(animateOut);\n\t\t\t};\n\t\t},\n\t\t[animateOut, displayDuration, props.displayDuration]\n\t\t// eslint-disable-line\n\t\t//useEffect will run only one time\n\t\t//if you pass a value to array, like this [data] than clearTimeout will run every time this value changes (useEffect re-run)\n\t);\n\n\tconst hideChildElement = () => {\n\t\tcss === animateOut && animateOutComplete();\n\t};\n\n\treturn (\n\t\t<div className={css} onAnimationEnd={hideChildElement}>\n\t\t\t{props.children}\n\t\t</div>\n\t);\n}\n"]}
@@ -60,25 +60,32 @@ const DefaultDropdownButton = ({ allowEmpty = true, caretLocation = "left", clas
60
60
  return;
61
61
  }
62
62
  if (optionsVisible) {
63
+ // Keyboard navigation for the expanded combobox options
63
64
  if (e.key === "Enter" || e.key === " ") {
65
+ // Activate the selected option (equiv: click the hovered option)
64
66
  selectOptionByIndex(focusIndex);
65
67
  }
66
68
  else if (e.key === "ArrowDown") {
69
+ // Select next option down (equiv: hover over the next option down)
67
70
  setFocusIndex(focusIndex + 1 >= buttonOptions.length ? buttonOptions.length - 1 : focusIndex + 1);
68
71
  e.preventDefault();
69
72
  }
70
73
  else if (e.key === "ArrowUp") {
74
+ // Select next option up (equiv: hover over the next option up)
71
75
  setFocusIndex(focusIndex - 1 <= 0 ? 0 : focusIndex - 1);
72
76
  e.preventDefault();
73
77
  }
74
78
  else if (e.key === "Escape") {
79
+ // Without activating anything, close the options. (equiv: clicking away)
75
80
  toggleOptionsPanel(false);
76
81
  setFocusIndex(0);
77
82
  e.preventDefault();
78
83
  }
79
84
  }
80
85
  else {
86
+ // Keyboard navigation for a collapsed combobox
81
87
  if (e.key === "Enter" || e.key === " ") {
88
+ // Expand the combobox
82
89
  toggleOptionsPanel(!optionsVisible);
83
90
  setFocusIndex(0);
84
91
  e.preventDefault();
@@ -88,11 +95,13 @@ const DefaultDropdownButton = ({ allowEmpty = true, caretLocation = "left", clas
88
95
  toggleOptionsPanel(!optionsVisible);
89
96
  }
90
97
  else {
98
+ // Cycle between options (down)
91
99
  changeOptionByDirection("down");
92
100
  }
93
101
  e.preventDefault();
94
102
  }
95
103
  else if (e.key === "ArrowUp") {
104
+ // Cycle between options (up)
96
105
  e.preventDefault();
97
106
  changeOptionByDirection("up");
98
107
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultDropdownButton.js","sourceRoot":"","sources":["../../../src/components/shared/DefaultDropdownButton.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect, useMemo, useRef, useState } from \"react\";\nimport \"../../assets/css/button.css\";\nimport { useOutsideClickDetector } from \"../../hooks/useOutsideClickDetector\";\n\nexport interface IFinsembleDefaultDropdownButtonOptionsProps {\n\toptionLabel: string;\n\toptionValue?: any;\n\tclickHandler: Function;\n}\n\nexport interface IFinsembleDefaultDropdownButtonProps {\n\tallowEmpty?: boolean;\n\tbuttonLabel?: string;\n\tcaretLocation?: \"left\" | \"right\";\n\tclassNames?: string;\n\tbuttonOptions: Array<IFinsembleDefaultDropdownButtonOptionsProps>;\n\tdefaultSelection?: IFinsembleDefaultDropdownButtonOptionsProps | null;\n\tenabled?: boolean;\n}\n\nconst emptyOption: IFinsembleDefaultDropdownButtonOptionsProps = {\n\toptionLabel: \"Please select..\",\n\tclickHandler: () => {},\n};\n\nconst DefaultDropdownButton: React.FunctionComponent<IFinsembleDefaultDropdownButtonProps> = ({\n\tallowEmpty = true,\n\tcaretLocation = \"left\",\n\tclassNames = \"\",\n\tbuttonOptions = [],\n\tdefaultSelection = null,\n\tenabled = true,\n\tbuttonLabel = \"Select value\",\n}: IFinsembleDefaultDropdownButtonProps) => {\n\tconst wrapperRef = useRef<HTMLDivElement>(null);\n\tconst uniqueId = useMemo(() => Math.random(), []);\n\tconst [optionsVisible, toggleOptionsPanel] = useState(false);\n\tconst [focusIndex, setFocusIndex] = useState(-1);\n\tuseOutsideClickDetector(wrapperRef, () => toggleOptionsPanel(false));\n\n\tconst [selectedValue, setSelectedValue] = useState<IFinsembleDefaultDropdownButtonOptionsProps | null>(\n\t\tdefaultSelection\n\t);\n\n\tuseEffect(() => {\n\t\tif (defaultSelection) {\n\t\t\tsetSelectedValue(defaultSelection);\n\t\t} else {\n\t\t\tif (allowEmpty) {\n\t\t\t\tif (!buttonOptions.includes(emptyOption)) buttonOptions.unshift(emptyOption);\n\t\t\t\tsetSelectedValue(emptyOption);\n\t\t\t} else {\n\t\t\t\tsetSelectedValue(buttonOptions[0]);\n\t\t\t}\n\t\t}\n\t}, [defaultSelection]);\n\n\tconst selectOptionByIndex = (index: number) => {\n\t\tsetSelectedValue(buttonOptions[index]);\n\t\tif (\"clickHandler\" in buttonOptions[index]) {\n\t\t\tbuttonOptions[index].clickHandler();\n\t\t}\n\t\ttoggleOptionsPanel(false);\n\t};\n\n\tconst changeOptionByDirection = (direction: \"up\" | \"down\") => {\n\t\tif (!selectedValue) {\n\t\t\tif (direction === \"down\") {\n\t\t\t\tselectOptionByIndex(0);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tconst optionLabels = buttonOptions.map((opt) => opt.optionLabel);\n\t\tconst currentOptionIndex = optionLabels.indexOf(selectedValue.optionLabel);\n\n\t\tif (direction === \"up\") {\n\t\t\tconst newIndex = currentOptionIndex - 1;\n\t\t\tselectOptionByIndex(Math.max(0, newIndex));\n\t\t} else {\n\t\t\tconst newIndex = currentOptionIndex + 1;\n\t\t\tselectOptionByIndex(Math.min(newIndex, buttonOptions.length - 1));\n\t\t}\n\t};\n\n\tconst options = buttonOptions.map((option, index) => (\n\t\t<div\n\t\t\tkey={index}\n\t\t\ttabIndex={0}\n\t\t\tclassName=\"finsemble-dropdown__btn-option\"\n\t\t\tonClick={() => {\n\t\t\t\tselectOptionByIndex(index);\n\t\t\t}}\n\t\t\trole=\"option\"\n\t\t\taria-selected={focusIndex === index}\n\t\t>\n\t\t\t{option.optionLabel}\n\t\t</div>\n\t));\n\n\treturn (\n\t\t<div\n\t\t\ttabIndex={enabled ? 0 : -1}\n\t\t\tref={wrapperRef}\n\t\t\trole=\"combobox\"\n\t\t\taria-haspopup={optionsVisible}\n\t\t\taria-expanded={optionsVisible}\n\t\t\taria-owns={`default-dropdown_${uniqueId}`}\n\t\t\taria-label={buttonLabel}\n\t\t\tclassName={`finsemble-dropdown__btn ${classNames} ${optionsVisible ? \"active\" : \"\"}`}\n\t\t\tonClick={enabled ? () => toggleOptionsPanel(!optionsVisible) : () => {}}\n\t\t\tonKeyDown={(e) => {\n\t\t\t\tif (!enabled) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (optionsVisible) {\n\t\t\t\t\t// Keyboard navigation for the expanded combobox options\n\t\t\t\t\tif (e.key === \"Enter\" || e.key === \" \") {\n\t\t\t\t\t\t// Activate the selected option (equiv: click the hovered option)\n\t\t\t\t\t\tselectOptionByIndex(focusIndex);\n\t\t\t\t\t} else if (e.key === \"ArrowDown\") {\n\t\t\t\t\t\t// Select next option down (equiv: hover over the next option down)\n\t\t\t\t\t\tsetFocusIndex(focusIndex + 1 >= buttonOptions.length ? buttonOptions.length - 1 : focusIndex + 1);\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t} else if (e.key === \"ArrowUp\") {\n\t\t\t\t\t\t// Select next option up (equiv: hover over the next option up)\n\t\t\t\t\t\tsetFocusIndex(focusIndex - 1 <= 0 ? 0 : focusIndex - 1);\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t} else if (e.key === \"Escape\") {\n\t\t\t\t\t\t// Without activating anything, close the options. (equiv: clicking away)\n\t\t\t\t\t\ttoggleOptionsPanel(false);\n\t\t\t\t\t\tsetFocusIndex(0);\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Keyboard navigation for a collapsed combobox\n\t\t\t\t\tif (e.key === \"Enter\" || e.key === \" \") {\n\t\t\t\t\t\t// Expand the combobox\n\t\t\t\t\t\ttoggleOptionsPanel(!optionsVisible);\n\t\t\t\t\t\tsetFocusIndex(0);\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t} else if (e.key === \"ArrowDown\") {\n\t\t\t\t\t\tif (e.altKey) {\n\t\t\t\t\t\t\ttoggleOptionsPanel(!optionsVisible);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Cycle between options (down)\n\t\t\t\t\t\t\tchangeOptionByDirection(\"down\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t} else if (e.key === \"ArrowUp\") {\n\t\t\t\t\t\t// Cycle between options (up)\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tchangeOptionByDirection(\"up\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}}\n\t\t>\n\t\t\t{caretLocation === \"left\" ? (\n\t\t\t\t<>\n\t\t\t\t\t<i className={`ff-caret-${optionsVisible ? \"up\" : \"down\"}`} />\n\t\t\t\t\t<span className=\"finsemble-dropdown__btn-label\">\n\t\t\t\t\t\t{selectedValue ? selectedValue.optionLabel : emptyOption.optionLabel}\n\t\t\t\t\t</span>\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t<span className=\"finsemble-dropdown__btn-label\">\n\t\t\t\t\t\t{selectedValue ? selectedValue.optionLabel : emptyOption.optionLabel}\n\t\t\t\t\t</span>\n\t\t\t\t\t<i className={`ff-caret-${optionsVisible ? \"up\" : \"down\"}`} />\n\t\t\t\t</>\n\t\t\t)}\n\t\t\t{optionsVisible ? (\n\t\t\t\t<div id={`default-dropdown_${uniqueId}`} className=\"finsemble-dropdown__btn-options\">\n\t\t\t\t\t{options}\n\t\t\t\t</div>\n\t\t\t) : null}\n\t\t</div>\n\t);\n};\n\nexport default DefaultDropdownButton;\n"]}
1
+ {"version":3,"file":"DefaultDropdownButton.js","sourceRoot":"","sources":["../../../src/components/shared/DefaultDropdownButton.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect, useMemo, useRef, useState } from \"react\";\nimport \"../../assets/css/button.css\";\nimport { useOutsideClickDetector } from \"../../hooks/useOutsideClickDetector\";\n\nexport interface IFinsembleDefaultDropdownButtonOptionsProps {\n\toptionLabel: string;\n\toptionValue?: any;\n\tclickHandler: Function;\n}\n\nexport interface IFinsembleDefaultDropdownButtonProps {\n\tallowEmpty?: boolean;\n\tbuttonLabel?: string;\n\tcaretLocation?: \"left\" | \"right\";\n\tclassNames?: string;\n\tbuttonOptions: Array<IFinsembleDefaultDropdownButtonOptionsProps>;\n\tdefaultSelection?: IFinsembleDefaultDropdownButtonOptionsProps | null;\n\tenabled?: boolean;\n}\n\nconst emptyOption: IFinsembleDefaultDropdownButtonOptionsProps = {\n\toptionLabel: \"Please select..\",\n\tclickHandler: () => {},\n};\n\nconst DefaultDropdownButton: React.FunctionComponent<IFinsembleDefaultDropdownButtonProps> = ({\n\tallowEmpty = true,\n\tcaretLocation = \"left\",\n\tclassNames = \"\",\n\tbuttonOptions = [],\n\tdefaultSelection = null,\n\tenabled = true,\n\tbuttonLabel = \"Select value\",\n}: IFinsembleDefaultDropdownButtonProps) => {\n\tconst wrapperRef = useRef<HTMLDivElement>(null);\n\tconst uniqueId = useMemo(() => Math.random(), []);\n\tconst [optionsVisible, toggleOptionsPanel] = useState(false);\n\tconst [focusIndex, setFocusIndex] = useState(-1);\n\tuseOutsideClickDetector(wrapperRef, () => toggleOptionsPanel(false));\n\n\tconst [selectedValue, setSelectedValue] = useState<IFinsembleDefaultDropdownButtonOptionsProps | null>(\n\t\tdefaultSelection\n\t);\n\n\tuseEffect(() => {\n\t\tif (defaultSelection) {\n\t\t\tsetSelectedValue(defaultSelection);\n\t\t} else {\n\t\t\tif (allowEmpty) {\n\t\t\t\tif (!buttonOptions.includes(emptyOption)) buttonOptions.unshift(emptyOption);\n\t\t\t\tsetSelectedValue(emptyOption);\n\t\t\t} else {\n\t\t\t\tsetSelectedValue(buttonOptions[0]);\n\t\t\t}\n\t\t}\n\t}, [defaultSelection]);\n\n\tconst selectOptionByIndex = (index: number) => {\n\t\tsetSelectedValue(buttonOptions[index]);\n\t\tif (\"clickHandler\" in buttonOptions[index]) {\n\t\t\tbuttonOptions[index].clickHandler();\n\t\t}\n\t\ttoggleOptionsPanel(false);\n\t};\n\n\tconst changeOptionByDirection = (direction: \"up\" | \"down\") => {\n\t\tif (!selectedValue) {\n\t\t\tif (direction === \"down\") {\n\t\t\t\tselectOptionByIndex(0);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tconst optionLabels = buttonOptions.map((opt) => opt.optionLabel);\n\t\tconst currentOptionIndex = optionLabels.indexOf(selectedValue.optionLabel);\n\n\t\tif (direction === \"up\") {\n\t\t\tconst newIndex = currentOptionIndex - 1;\n\t\t\tselectOptionByIndex(Math.max(0, newIndex));\n\t\t} else {\n\t\t\tconst newIndex = currentOptionIndex + 1;\n\t\t\tselectOptionByIndex(Math.min(newIndex, buttonOptions.length - 1));\n\t\t}\n\t};\n\n\tconst options = buttonOptions.map((option, index) => (\n\t\t<div\n\t\t\tkey={index}\n\t\t\ttabIndex={0}\n\t\t\tclassName=\"finsemble-dropdown__btn-option\"\n\t\t\tonClick={() => {\n\t\t\t\tselectOptionByIndex(index);\n\t\t\t}}\n\t\t\trole=\"option\"\n\t\t\taria-selected={focusIndex === index}\n\t\t>\n\t\t\t{option.optionLabel}\n\t\t</div>\n\t));\n\n\treturn (\n\t\t<div\n\t\t\ttabIndex={enabled ? 0 : -1}\n\t\t\tref={wrapperRef}\n\t\t\trole=\"combobox\"\n\t\t\taria-haspopup={optionsVisible}\n\t\t\taria-expanded={optionsVisible}\n\t\t\taria-owns={`default-dropdown_${uniqueId}`}\n\t\t\taria-label={buttonLabel}\n\t\t\tclassName={`finsemble-dropdown__btn ${classNames} ${optionsVisible ? \"active\" : \"\"}`}\n\t\t\tonClick={enabled ? () => toggleOptionsPanel(!optionsVisible) : () => {}}\n\t\t\tonKeyDown={(e) => {\n\t\t\t\tif (!enabled) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (optionsVisible) {\n\t\t\t\t\t// Keyboard navigation for the expanded combobox options\n\t\t\t\t\tif (e.key === \"Enter\" || e.key === \" \") {\n\t\t\t\t\t\t// Activate the selected option (equiv: click the hovered option)\n\t\t\t\t\t\tselectOptionByIndex(focusIndex);\n\t\t\t\t\t} else if (e.key === \"ArrowDown\") {\n\t\t\t\t\t\t// Select next option down (equiv: hover over the next option down)\n\t\t\t\t\t\tsetFocusIndex(focusIndex + 1 >= buttonOptions.length ? buttonOptions.length - 1 : focusIndex + 1);\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t} else if (e.key === \"ArrowUp\") {\n\t\t\t\t\t\t// Select next option up (equiv: hover over the next option up)\n\t\t\t\t\t\tsetFocusIndex(focusIndex - 1 <= 0 ? 0 : focusIndex - 1);\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t} else if (e.key === \"Escape\") {\n\t\t\t\t\t\t// Without activating anything, close the options. (equiv: clicking away)\n\t\t\t\t\t\ttoggleOptionsPanel(false);\n\t\t\t\t\t\tsetFocusIndex(0);\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Keyboard navigation for a collapsed combobox\n\t\t\t\t\tif (e.key === \"Enter\" || e.key === \" \") {\n\t\t\t\t\t\t// Expand the combobox\n\t\t\t\t\t\ttoggleOptionsPanel(!optionsVisible);\n\t\t\t\t\t\tsetFocusIndex(0);\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t} else if (e.key === \"ArrowDown\") {\n\t\t\t\t\t\tif (e.altKey) {\n\t\t\t\t\t\t\ttoggleOptionsPanel(!optionsVisible);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Cycle between options (down)\n\t\t\t\t\t\t\tchangeOptionByDirection(\"down\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t} else if (e.key === \"ArrowUp\") {\n\t\t\t\t\t\t// Cycle between options (up)\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tchangeOptionByDirection(\"up\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}}\n\t\t>\n\t\t\t{caretLocation === \"left\" ? (\n\t\t\t\t<>\n\t\t\t\t\t<i className={`ff-caret-${optionsVisible ? \"up\" : \"down\"}`} />\n\t\t\t\t\t<span className=\"finsemble-dropdown__btn-label\">\n\t\t\t\t\t\t{selectedValue ? selectedValue.optionLabel : emptyOption.optionLabel}\n\t\t\t\t\t</span>\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t<span className=\"finsemble-dropdown__btn-label\">\n\t\t\t\t\t\t{selectedValue ? selectedValue.optionLabel : emptyOption.optionLabel}\n\t\t\t\t\t</span>\n\t\t\t\t\t<i className={`ff-caret-${optionsVisible ? \"up\" : \"down\"}`} />\n\t\t\t\t</>\n\t\t\t)}\n\t\t\t{optionsVisible ? (\n\t\t\t\t<div id={`default-dropdown_${uniqueId}`} className=\"finsemble-dropdown__btn-options\">\n\t\t\t\t\t{options}\n\t\t\t\t</div>\n\t\t\t) : null}\n\t\t</div>\n\t);\n};\n\nexport default DefaultDropdownButton;\n"]}
@@ -1,7 +1,3 @@
1
- /*!
2
- * Copyright 2017 by ChartIQ, Inc.
3
- * All rights reserved.
4
- */
5
1
  /// <reference types="react" />
6
2
  import "../../assets/css/tags.css";
7
3
  declare type TagProps = {
@@ -2,6 +2,10 @@
2
2
  * Copyright 2017 by ChartIQ, Inc.
3
3
  * All rights reserved.
4
4
  */
5
+ /**
6
+ * This component is the name of a component and a pin that will pin that component to all toolbars.
7
+ *
8
+ */
5
9
  import React from "react";
6
10
  import { getTruncatedStringWithEllipses } from "../appCatalog/components/helpers";
7
11
  import "../../assets/css/tags.css";
@@ -1 +1 @@
1
- {"version":3,"file":"Tag.js","sourceRoot":"","sources":["../../../src/components/shared/Tag.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAElF,OAAO,2BAA2B,CAAC;AAOnC,MAAM,GAAG,GAAG,CAAC,KAAe,EAAE,EAAE;IAC/B,MAAM,MAAM,GAAG,GAAG,EAAE;QACnB,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,OAAO,CACN,6BAAK,SAAS,EAAC,SAAS;QACvB,6BAAK,SAAS,EAAC,aAAa;YAC3B,6BAAK,SAAS,EAAC,UAAU,EAAC,KAAK,EAAE,KAAK,CAAC,IAAI,IACzC,8BAA8B,CAAC,KAAK,CAAC,IAAI,CAAC,CACtC;;YAEN,2BAAG,SAAS,EAAC,qBAAqB,EAAC,OAAO,EAAE,MAAM,GAAM,CACnD,CACD,CACN,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,GAAG,CAAC","sourcesContent":["/*!\n * Copyright 2017 by ChartIQ, Inc.\n * All rights reserved.\n */\n/**\n * This component is the name of a component and a pin that will pin that component to all toolbars.\n *\n */\nimport React from \"react\";\n\nimport { getTruncatedStringWithEllipses } from \"../appCatalog/components/helpers\";\n\nimport \"../../assets/css/tags.css\";\n\ntype TagProps = {\n\tname: string;\n\tremoveTag: (tagName: string) => void;\n};\n\nconst Tag = (props: TagProps) => {\n\tconst remove = () => {\n\t\tprops.removeTag(props.name);\n\t};\n\n\treturn (\n\t\t<div className=\"app-tag\">\n\t\t\t<div className=\"tag-content\">\n\t\t\t\t<div className=\"tag-name\" title={props.name}>\n\t\t\t\t\t{getTruncatedStringWithEllipses(props.name)}\n\t\t\t\t</div>\n\t\t\t\t&nbsp;&nbsp;\n\t\t\t\t<i className=\"ff-close tag-delete\" onClick={remove}></i>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default Tag;\n"]}
1
+ {"version":3,"file":"Tag.js","sourceRoot":"","sources":["../../../src/components/shared/Tag.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAElF,OAAO,2BAA2B,CAAC;AAOnC,MAAM,GAAG,GAAG,CAAC,KAAe,EAAE,EAAE;IAC/B,MAAM,MAAM,GAAG,GAAG,EAAE;QACnB,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,OAAO,CACN,6BAAK,SAAS,EAAC,SAAS;QACvB,6BAAK,SAAS,EAAC,aAAa;YAC3B,6BAAK,SAAS,EAAC,UAAU,EAAC,KAAK,EAAE,KAAK,CAAC,IAAI,IACzC,8BAA8B,CAAC,KAAK,CAAC,IAAI,CAAC,CACtC;;YAEN,2BAAG,SAAS,EAAC,qBAAqB,EAAC,OAAO,EAAE,MAAM,GAAM,CACnD,CACD,CACN,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,GAAG,CAAC","sourcesContent":["/*!\n * Copyright 2017 by ChartIQ, Inc.\n * All rights reserved.\n */\n/**\n * This component is the name of a component and a pin that will pin that component to all toolbars.\n *\n */\nimport React from \"react\";\n\nimport { getTruncatedStringWithEllipses } from \"../appCatalog/components/helpers\";\n\nimport \"../../assets/css/tags.css\";\n\ntype TagProps = {\n\tname: string;\n\tremoveTag: (tagName: string) => void;\n};\n\nconst Tag = (props: TagProps) => {\n\tconst remove = () => {\n\t\tprops.removeTag(props.name);\n\t};\n\n\treturn (\n\t\t<div className=\"app-tag\">\n\t\t\t<div className=\"tag-content\">\n\t\t\t\t<div className=\"tag-name\" title={props.name}>\n\t\t\t\t\t{getTruncatedStringWithEllipses(props.name)}\n\t\t\t\t</div>\n\t\t\t\t&nbsp;&nbsp;\n\t\t\t\t<i className=\"ff-close tag-delete\" onClick={remove}></i>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default Tag;\n"]}
@@ -15,6 +15,12 @@ interface IProps {
15
15
  interface IState {
16
16
  isVisible: boolean;
17
17
  }
18
+ /**
19
+ * A reusable fly out component for tags and any other lists
20
+ * This component creates a button with a customizable label
21
+ * and an item click handler.
22
+ * Example: <TagsMenu label="Tags" align="left" list={list} onItemClick={handler}/>
23
+ **/
18
24
  export default class TagsMenu extends React.Component<IProps, IState> {
19
25
  wrapperRef: any;
20
26
  constructor(props: IProps);
@@ -5,12 +5,19 @@
5
5
  */
6
6
  import React from "react";
7
7
  import "../../assets/css/tags.css";
8
+ /**
9
+ * A reusable fly out component for tags and any other lists
10
+ * This component creates a button with a customizable label
11
+ * and an item click handler.
12
+ * Example: <TagsMenu label="Tags" align="left" list={list} onItemClick={handler}/>
13
+ **/
8
14
  export default class TagsMenu extends React.Component {
9
15
  constructor(props) {
10
16
  super(props);
11
17
  this.state = {
12
18
  isVisible: false,
13
19
  };
20
+ // Bind context
14
21
  this.toggleMenu = this.toggleMenu.bind(this);
15
22
  this.onItemClick = this.onItemClick.bind(this);
16
23
  this.setWrapperRef = this.setWrapperRef.bind(this);
@@ -1 +1 @@
1
- {"version":3,"file":"TagsMenu.js","sourceRoot":"","sources":["../../../src/components/shared/TagsMenu.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright 2018 by ChartIQ, Inc.\n * All rights reserved.\n *\n */\n\nimport React from \"react\";\n\nimport \"../../assets/css/tags.css\";\n\ninterface IProps {\n\tactive: string[]; // active tags\n\tlist: string[]; // list of tags\n\tonItemClick: (tag: string) => void;\n\tlabel: string;\n\talign: string;\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\twrapperRef: any;\n\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\tthis.setWrapperRef = this.setWrapperRef.bind(this);\n\t\tthis.handleClickOutside = this.handleClickOutside.bind(this);\n\t}\n\n\tcomponentDidMount() {\n\t\tdocument.addEventListener(\"mousedown\", this.handleClickOutside);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tdocument.removeEventListener(\"mousedown\", this.handleClickOutside);\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\tsetWrapperRef(node: any) {\n\t\tthis.wrapperRef = node;\n\t}\n\n\thandleClickOutside(e: MouseEvent) {\n\t\tif (this.wrapperRef && !this.wrapperRef.contains(e.target)) {\n\t\t\tthis.setState({\n\t\t\t\tisVisible: false,\n\t\t\t});\n\t\t}\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 className=\"tags-menu\" style={styles}>\n\t\t\t\t<ul>\n\t\t\t\t\t{\" \"}\n\t\t\t\t\t{items.sort().map((item, index) => {\n\t\t\t\t\t\tlet active = this.props.active.includes(item);\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<li key={index} onClick={() => this.onItemClick(item)}>\n\t\t\t\t\t\t\t\t{active ? <i className=\"ff-check-mark\" /> : <div className=\"tags-checkmark-wrapper\">&nbsp;</div>}\n\t\t\t\t\t\t\t\t&nbsp;&nbsp;{item}\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}{\" \"}\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t);\n\t}\n\n\trender() {\n\t\tif (this.props.list.length === 0) return <div></div>;\n\t\treturn (\n\t\t\t<div ref={this.setWrapperRef} className=\"tags-menu-wrapper\" onClick={this.toggleMenu}>\n\t\t\t\t<span>\n\t\t\t\t\t{this.props.label}\n\t\t\t\t\t<i className=\"ff-chevron-down\" />\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
+ {"version":3,"file":"TagsMenu.js","sourceRoot":"","sources":["../../../src/components/shared/TagsMenu.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright 2018 by ChartIQ, Inc.\n * All rights reserved.\n *\n */\n\nimport React from \"react\";\n\nimport \"../../assets/css/tags.css\";\n\ninterface IProps {\n\tactive: string[]; // active tags\n\tlist: string[]; // list of tags\n\tonItemClick: (tag: string) => void;\n\tlabel: string;\n\talign: string;\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\twrapperRef: any;\n\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\tthis.setWrapperRef = this.setWrapperRef.bind(this);\n\t\tthis.handleClickOutside = this.handleClickOutside.bind(this);\n\t}\n\n\tcomponentDidMount() {\n\t\tdocument.addEventListener(\"mousedown\", this.handleClickOutside);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tdocument.removeEventListener(\"mousedown\", this.handleClickOutside);\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\tsetWrapperRef(node: any) {\n\t\tthis.wrapperRef = node;\n\t}\n\n\thandleClickOutside(e: MouseEvent) {\n\t\tif (this.wrapperRef && !this.wrapperRef.contains(e.target)) {\n\t\t\tthis.setState({\n\t\t\t\tisVisible: false,\n\t\t\t});\n\t\t}\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 className=\"tags-menu\" style={styles}>\n\t\t\t\t<ul>\n\t\t\t\t\t{\" \"}\n\t\t\t\t\t{items.sort().map((item, index) => {\n\t\t\t\t\t\tlet active = this.props.active.includes(item);\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<li key={index} onClick={() => this.onItemClick(item)}>\n\t\t\t\t\t\t\t\t{active ? <i className=\"ff-check-mark\" /> : <div className=\"tags-checkmark-wrapper\">&nbsp;</div>}\n\t\t\t\t\t\t\t\t&nbsp;&nbsp;{item}\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}{\" \"}\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t);\n\t}\n\n\trender() {\n\t\tif (this.props.list.length === 0) return <div></div>;\n\t\treturn (\n\t\t\t<div ref={this.setWrapperRef} className=\"tags-menu-wrapper\" onClick={this.toggleMenu}>\n\t\t\t\t<span>\n\t\t\t\t\t{this.props.label}\n\t\t\t\t\t<i className=\"ff-chevron-down\" />\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,7 @@
1
+ /**
2
+ * Adds a protocol to a valid URL. booger.io is a valid URL,
3
+ * but if you try to create a new URL object with it, e.g.,
4
+ * `new URL("booger.io"), you'll get a javascript exception. No bueno.
5
+ * @param url
6
+ */
1
7
  export declare function addProtocolToValidURL(url: string): string;
@@ -1,3 +1,9 @@
1
+ /**
2
+ * Adds a protocol to a valid URL. booger.io is a valid URL,
3
+ * but if you try to create a new URL object with it, e.g.,
4
+ * `new URL("booger.io"), you'll get a javascript exception. No bueno.
5
+ * @param url
6
+ */
1
7
  export function addProtocolToValidURL(url) {
2
8
  if (url.includes("://"))
3
9
  return url;
@@ -1 +1 @@
1
- {"version":3,"file":"addProtocolToValidURL.js","sourceRoot":"","sources":["../../../src/components/shared/addProtocolToValidURL.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAChD,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IACpC,OAAO,GAAG,QAAQ,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;AACvC,CAAC","sourcesContent":["/**\n * Adds a protocol to a valid URL. booger.io is a valid URL,\n * but if you try to create a new URL object with it, e.g.,\n * `new URL(\"booger.io\"), you'll get a javascript exception. No bueno.\n * @param url\n */\nexport function addProtocolToValidURL(url: string) {\n\tif (url.includes(\"://\")) return url;\n\treturn `${location.protocol}//${url}`;\n}\n"]}
1
+ {"version":3,"file":"addProtocolToValidURL.js","sourceRoot":"","sources":["../../../src/components/shared/addProtocolToValidURL.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAChD,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IACpC,OAAO,GAAG,QAAQ,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;AACvC,CAAC","sourcesContent":["/**\n * Adds a protocol to a valid URL. booger.io is a valid URL,\n * but if you try to create a new URL object with it, e.g.,\n * `new URL(\"booger.io\"), you'll get a javascript exception. No bueno.\n * @param url\n */\nexport function addProtocolToValidURL(url: string) {\n\tif (url.includes(\"://\")) return url;\n\treturn `${location.protocol}//${url}`;\n}\n"]}
@@ -1 +1 @@
1
- export declare const openQuitConfirmationDialog: () => Promise<void>;
1
+ export declare const openQuitConfirmationDialog: (type?: string) => Promise<void>;
@@ -1,16 +1,16 @@
1
- export const openQuitConfirmationDialog = async () => {
1
+ export const openQuitConfirmationDialog = async (type = "Shutdown") => {
2
2
  let { data: appname } = await FSBL.Clients.ConfigClient.getValue("startup_app.name");
3
3
  if (!appname)
4
4
  appname = "Finsemble";
5
5
  FSBL.Clients.DialogManager.open("yesNo", {
6
- title: `Shutdown ${appname}?`,
6
+ title: `${type} ${appname}?`,
7
7
  monitor: "primary",
8
- question: `Are you sure you want to close ${appname}?`,
8
+ question: `Are you sure you want to ${type === "Restart" ? "restart" : "close"} ${appname}?`,
9
9
  hideModalOnClose: true,
10
10
  showNegativeButton: false,
11
11
  }, (err, response) => {
12
12
  if (response && response.choice === "affirmative") {
13
- FSBL.shutdownApplication();
13
+ type === "Restart" ? FSBL.restartApplication() : FSBL.shutdownApplication();
14
14
  }
15
15
  });
16
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"openQuitConfirmationDialog.js","sourceRoot":"","sources":["../../../src/components/shared/openQuitConfirmationDialog.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,IAAI,EAAE;IACpD,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IACrF,IAAI,CAAC,OAAO;QAAE,OAAO,GAAG,WAAW,CAAC;IAEpC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAC9B,OAAO,EACP;QACC,KAAK,EAAE,YAAY,OAAO,GAAG;QAC7B,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,kCAAkC,OAAO,GAAG;QACtD,gBAAgB,EAAE,IAAI;QACtB,kBAAkB,EAAE,KAAK;KACzB,EACD,CAAC,GAAQ,EAAE,QAA4B,EAAE,EAAE;QAC1C,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,aAAa,EAAE;YAClD,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC3B;IACF,CAAC,CACD,CAAC;AACH,CAAC,CAAC","sourcesContent":["export const openQuitConfirmationDialog = async () => {\n\tlet { data: appname } = await FSBL.Clients.ConfigClient.getValue(\"startup_app.name\");\n\tif (!appname) appname = \"Finsemble\";\n\n\tFSBL.Clients.DialogManager.open(\n\t\t\"yesNo\",\n\t\t{\n\t\t\ttitle: `Shutdown ${appname}?`,\n\t\t\tmonitor: \"primary\",\n\t\t\tquestion: `Are you sure you want to close ${appname}?`,\n\t\t\thideModalOnClose: true,\n\t\t\tshowNegativeButton: false,\n\t\t},\n\t\t(err: any, response: { choice: string }) => {\n\t\t\tif (response && response.choice === \"affirmative\") {\n\t\t\t\tFSBL.shutdownApplication();\n\t\t\t}\n\t\t}\n\t);\n};\n"]}
1
+ {"version":3,"file":"openQuitConfirmationDialog.js","sourceRoot":"","sources":["../../../src/components/shared/openQuitConfirmationDialog.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,EAAE,OAAe,UAAU,EAAE,EAAE;IAC7E,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IACrF,IAAI,CAAC,OAAO;QAAE,OAAO,GAAG,WAAW,CAAC;IAEpC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAC9B,OAAO,EACP;QACC,KAAK,EAAE,GAAG,IAAI,IAAI,OAAO,GAAG;QAC5B,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,4BAA4B,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,GAAG;QAC5F,gBAAgB,EAAE,IAAI;QACtB,kBAAkB,EAAE,KAAK;KACzB,EACD,CAAC,GAAQ,EAAE,QAA4B,EAAE,EAAE;QAC1C,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,aAAa,EAAE;YAClD,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC5E;IACF,CAAC,CACD,CAAC;AACH,CAAC,CAAC","sourcesContent":["export const openQuitConfirmationDialog = async (type: string = \"Shutdown\") => {\n\tlet { data: appname } = await FSBL.Clients.ConfigClient.getValue(\"startup_app.name\");\n\tif (!appname) appname = \"Finsemble\";\n\n\tFSBL.Clients.DialogManager.open(\n\t\t\"yesNo\",\n\t\t{\n\t\t\ttitle: `${type} ${appname}?`,\n\t\t\tmonitor: \"primary\",\n\t\t\tquestion: `Are you sure you want to ${type === \"Restart\" ? \"restart\" : \"close\"} ${appname}?`,\n\t\t\thideModalOnClose: true,\n\t\t\tshowNegativeButton: false,\n\t\t},\n\t\t(err: any, response: { choice: string }) => {\n\t\t\tif (response && response.choice === \"affirmative\") {\n\t\t\t\ttype === \"Restart\" ? FSBL.restartApplication() : FSBL.shutdownApplication();\n\t\t\t}\n\t\t}\n\t);\n};\n"]}
@@ -1,6 +1,7 @@
1
1
  import { describe, it } from "mocha";
2
2
  import { expect } from "chai";
3
3
  import { addProtocolToValidURL } from "../addProtocolToValidURL";
4
+ // Mock global variable location
4
5
  global.location = {
5
6
  protocol: "http:",
6
7
  };
@@ -1 +1 @@
1
- {"version":3,"file":"addProtocolToValidURL.spec.js","sourceRoot":"","sources":["../../../../src/components/shared/tests/addProtocolToValidURL.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGjE,MAAM,CAAC,QAAQ,GAAQ;IACtB,QAAQ,EAAE,OAAO;CACjB,CAAC;AAEF,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC7C,MAAM,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC7F,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QACjE,MAAM,IAAI,GAAG,CAAC,uBAAuB,EAAE,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;QACjF,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACpB,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["import { describe, it } from \"mocha\";\nimport { expect } from \"chai\";\nimport { addProtocolToValidURL } from \"../addProtocolToValidURL\";\n\n// Mock global variable location\nglobal.location = <any>{\n\tprotocol: \"http:\",\n};\n\ndescribe(\"addProtocolToValidURL\", () => {\n\tit(\"should add protocol when necessary\", () => {\n\t\texpect(addProtocolToValidURL(\"www.google.com\"), \"website\").to.equal(\"http://www.google.com\");\n\t\texpect(addProtocolToValidURL(\"blah\"), \"words\").to.equal(\"http://blah\");\n\t});\n\tit(\"should not add protocol to URLs that already have them\", () => {\n\t\tconst urls = [\"http://www.google.com\", \"https://cosaic.io\", \"file:///C:/Users/\"];\n\t\turls.forEach((url) => {\n\t\t\texpect(addProtocolToValidURL(url), url).to.equal(url);\n\t\t});\n\t});\n});\n"]}
1
+ {"version":3,"file":"addProtocolToValidURL.spec.js","sourceRoot":"","sources":["../../../../src/components/shared/tests/addProtocolToValidURL.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,gCAAgC;AAChC,MAAM,CAAC,QAAQ,GAAQ;IACtB,QAAQ,EAAE,OAAO;CACjB,CAAC;AAEF,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC7C,MAAM,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC7F,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QACjE,MAAM,IAAI,GAAG,CAAC,uBAAuB,EAAE,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;QACjF,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACpB,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["import { describe, it } from \"mocha\";\nimport { expect } from \"chai\";\nimport { addProtocolToValidURL } from \"../addProtocolToValidURL\";\n\n// Mock global variable location\nglobal.location = <any>{\n\tprotocol: \"http:\",\n};\n\ndescribe(\"addProtocolToValidURL\", () => {\n\tit(\"should add protocol when necessary\", () => {\n\t\texpect(addProtocolToValidURL(\"www.google.com\"), \"website\").to.equal(\"http://www.google.com\");\n\t\texpect(addProtocolToValidURL(\"blah\"), \"words\").to.equal(\"http://blah\");\n\t});\n\tit(\"should not add protocol to URLs that already have them\", () => {\n\t\tconst urls = [\"http://www.google.com\", \"https://cosaic.io\", \"file:///C:/Users/\"];\n\t\turls.forEach((url) => {\n\t\t\texpect(addProtocolToValidURL(url), url).to.equal(url);\n\t\t});\n\t});\n});\n"]}
@@ -1 +1,19 @@
1
+ /**
2
+ * URL validation regex taken from stack overflow: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url
3
+ *
4
+ * "https://www.google.com" => valid
5
+ * "http://google.com" => valid
6
+ * "http://booger.io" => valid
7
+ * "http://intraneturl" => valid
8
+ * "http://localhost:3375/components/test/index.html" => valid
9
+ * "http://localhost:8089/SLEJSonServiceWeb/commonReact2.jsp?viewid=/lcm.houseacctprodlinexre.wrjs&swfversion=3_0&zone=CollateralManagement&functionName=Collateral%20Management&zoneLabel=Collateral%20Management#/?_k=f3xqnk" => valid
10
+ * "http://127.0.0.1:3375/components/test/index.html" => valid
11
+ * "http://127.0.01:3375/components/test/index.html" => not valid
12
+ * "www.google.com" => not valid
13
+ * "google.com" => not valid
14
+ * "booger.io" => not valid
15
+ * "boog" => not valid
16
+ * NOTE: This function will fail intranet URLs without a top level domain.
17
+ * @param str
18
+ */
1
19
  export declare function isValidURL(str: string): boolean;
@@ -1,11 +1,30 @@
1
+ /**
2
+ * URL validation regex taken from stack overflow: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url
3
+ *
4
+ * "https://www.google.com" => valid
5
+ * "http://google.com" => valid
6
+ * "http://booger.io" => valid
7
+ * "http://intraneturl" => valid
8
+ * "http://localhost:3375/components/test/index.html" => valid
9
+ * "http://localhost:8089/SLEJSonServiceWeb/commonReact2.jsp?viewid=/lcm.houseacctprodlinexre.wrjs&swfversion=3_0&zone=CollateralManagement&functionName=Collateral%20Management&zoneLabel=Collateral%20Management#/?_k=f3xqnk" => valid
10
+ * "http://127.0.0.1:3375/components/test/index.html" => valid
11
+ * "http://127.0.01:3375/components/test/index.html" => not valid
12
+ * "www.google.com" => not valid
13
+ * "google.com" => not valid
14
+ * "booger.io" => not valid
15
+ * "boog" => not valid
16
+ * NOTE: This function will fail intranet URLs without a top level domain.
17
+ * @param str
18
+ */
1
19
  export function isValidURL(str) {
2
20
  if (str === "about:blank")
3
21
  return true;
4
- var pattern = new RegExp("^(https?:\\/\\/)" +
5
- "((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.?)+[a-z]{2,}|" +
6
- "((\\d{1,3}\\.){3}\\d{1,3}))" +
7
- "(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*" +
8
- "(\\?)?([;&a-z\\d\\/#\\?%_.~+=-]*)?", "i");
22
+ var pattern = new RegExp("^(https?:\\/\\/)" + // protocol
23
+ "((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.?)+[a-z]{2,}|" + // domain name
24
+ "((\\d{1,3}\\.){3}\\d{1,3}))" + // OR ip (v4) address
25
+ "(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*" + // port and path
26
+ "(\\?)?([;&a-z\\d\\/#\\?%_.~+=-]*)?", // query string
27
+ "i"); // fragment locator
9
28
  return !!pattern.test(str);
10
29
  }
11
30
  //# sourceMappingURL=validateURL.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validateURL.js","sourceRoot":"","sources":["../../../src/components/shared/validateURL.ts"],"names":[],"mappings":"AAkBA,MAAM,UAAU,UAAU,CAAC,GAAW;IACrC,IAAI,GAAG,KAAK,aAAa;QAAE,OAAO,IAAI,CAAC;IAEvC,IAAI,OAAO,GAAG,IAAI,MAAM,CACvB,kBAAkB;QACjB,mDAAmD;QACnD,6BAA6B;QAC7B,iCAAiC;QACjC,oCAAoC,EACrC,GAAG,CACH,CAAC;IACF,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC","sourcesContent":["/**\n * URL validation regex taken from stack overflow: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n *\n * \"https://www.google.com\" => valid\n * \"http://google.com\" => valid\n * \"http://booger.io\" => valid\n * \"http://intraneturl\" => valid\n * \"http://localhost:3375/components/test/index.html\" => valid\n * \"http://localhost:8089/SLEJSonServiceWeb/commonReact2.jsp?viewid=/lcm.houseacctprodlinexre.wrjs&swfversion=3_0&zone=CollateralManagement&functionName=Collateral%20Management&zoneLabel=Collateral%20Management#/?_k=f3xqnk\" => valid\n * \"http://127.0.0.1:3375/components/test/index.html\" => valid\n * \"http://127.0.01:3375/components/test/index.html\" => not valid\n * \"www.google.com\" => not valid\n * \"google.com\" => not valid\n * \"booger.io\" => not valid\n * \"boog\" => not valid\n * NOTE: This function will fail intranet URLs without a top level domain.\n * @param str\n */\nexport function isValidURL(str: string) {\n\tif (str === \"about:blank\") return true;\n\n\tvar pattern = new RegExp(\n\t\t\"^(https?:\\\\/\\\\/)\" + // protocol\n\t\t\t\"((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.?)+[a-z]{2,}|\" + // domain name\n\t\t\t\"((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))\" + // OR ip (v4) address\n\t\t\t\"(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*\" + // port and path\n\t\t\t\"(\\\\?)?([;&a-z\\\\d\\\\/#\\\\?%_.~+=-]*)?\", // query string\n\t\t\"i\"\n\t); // fragment locator\n\treturn !!pattern.test(str);\n}\n"]}
1
+ {"version":3,"file":"validateURL.js","sourceRoot":"","sources":["../../../src/components/shared/validateURL.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,UAAU,CAAC,GAAW;IACrC,IAAI,GAAG,KAAK,aAAa;QAAE,OAAO,IAAI,CAAC;IAEvC,IAAI,OAAO,GAAG,IAAI,MAAM,CACvB,kBAAkB,GAAG,WAAW;QAC/B,mDAAmD,GAAG,cAAc;QACpE,6BAA6B,GAAG,qBAAqB;QACrD,iCAAiC,GAAG,gBAAgB;QACpD,oCAAoC,EAAE,eAAe;IACtD,GAAG,CACH,CAAC,CAAC,mBAAmB;IACtB,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC","sourcesContent":["/**\n * URL validation regex taken from stack overflow: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n *\n * \"https://www.google.com\" => valid\n * \"http://google.com\" => valid\n * \"http://booger.io\" => valid\n * \"http://intraneturl\" => valid\n * \"http://localhost:3375/components/test/index.html\" => valid\n * \"http://localhost:8089/SLEJSonServiceWeb/commonReact2.jsp?viewid=/lcm.houseacctprodlinexre.wrjs&swfversion=3_0&zone=CollateralManagement&functionName=Collateral%20Management&zoneLabel=Collateral%20Management#/?_k=f3xqnk\" => valid\n * \"http://127.0.0.1:3375/components/test/index.html\" => valid\n * \"http://127.0.01:3375/components/test/index.html\" => not valid\n * \"www.google.com\" => not valid\n * \"google.com\" => not valid\n * \"booger.io\" => not valid\n * \"boog\" => not valid\n * NOTE: This function will fail intranet URLs without a top level domain.\n * @param str\n */\nexport function isValidURL(str: string) {\n\tif (str === \"about:blank\") return true;\n\n\tvar pattern = new RegExp(\n\t\t\"^(https?:\\\\/\\\\/)\" + // protocol\n\t\t\t\"((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.?)+[a-z]{2,}|\" + // domain name\n\t\t\t\"((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))\" + // OR ip (v4) address\n\t\t\t\"(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*\" + // port and path\n\t\t\t\"(\\\\?)?([;&a-z\\\\d\\\\/#\\\\?%_.~+=-]*)?\", // query string\n\t\t\"i\"\n\t); // fragment locator\n\treturn !!pattern.test(str);\n}\n"]}
@@ -1,3 +1,3 @@
1
1
  body {
2
- margin: 0px;
2
+ margin: 0;
3
3
  }
@@ -2,4 +2,7 @@
2
2
  import "./SingleInputDialog.css";
3
3
  import "../../assets/css/finsemble.css";
4
4
  import "../../assets/css/dialogs.css";
5
+ /**
6
+ * A window for collecting input from a user (e.g., a new workspace's name).
7
+ */
5
8
  export declare const SingleInputDialog: () => JSX.Element;
@@ -1,3 +1,7 @@
1
+ /*!
2
+ * Copyright 2017 by ChartIQ, Inc.
3
+ * All rights reserved.
4
+ */
1
5
  import React from "react";
2
6
  import { FinsembleDialog } from "../legacyControls/FinsembleDialog";
3
7
  import { FinsembleDialogTextInput } from "../legacyControls/FinsembleDialogTextInput";
@@ -5,12 +9,19 @@ import { FinsembleDialogButton } from "../legacyControls/FinsembleDialogButton";
5
9
  import "./SingleInputDialog.css";
6
10
  import "../../assets/css/finsemble.css";
7
11
  import "../../assets/css/dialogs.css";
12
+ /**
13
+ * This is our standard input dialog. It gives the user a single button and a text field, and ferries that data back to the window that opened it.
14
+ *
15
+ * @class SingleInputDialog
16
+ * @extends {React.Component}
17
+ */
8
18
  class _SingleInputDialog extends React.Component {
9
19
  constructor(props = {}) {
10
20
  super(props);
11
21
  this.bindCorrectContext();
12
22
  this.state = {
13
23
  affirmativeResponseLabel: "Yes",
24
+ /** Our input uses the HTML autoFocus attribute. This only fires when the element is rendered for the 1st time. Since we re-use the dialogs, the 2nd time the dialog is shown, autoFocus will not trigger. To force it to trigger, we change this boolean when a response is sent back to the opener, which unmounts the element from the dom. The next time the dialog is used, we will render the element again, and autoFocus will trigger. */
14
25
  renderInput: false,
15
26
  inputPlaceholder: "New workspace",
16
27
  };
@@ -22,6 +33,12 @@ class _SingleInputDialog extends React.Component {
22
33
  this.setInputValue = this.setInputValue.bind(this);
23
34
  this.sendResponse = this.sendResponse.bind(this);
24
35
  }
36
+ /**
37
+ * Handles escape and enter.
38
+ *
39
+ * @param {any} e
40
+ * @memberof SingleInputDialog
41
+ */
25
42
  handleKeydownOnBody(e) {
26
43
  if (e.code === "Enter" && e.shiftKey === false) {
27
44
  this.sendResponse("affirmative");
@@ -30,6 +47,13 @@ class _SingleInputDialog extends React.Component {
30
47
  this.sendResponse("cancel");
31
48
  }
32
49
  }
50
+ /**
51
+ * When the opener requests that the dialog show itself, it also passes in initialization data. This function grabs that data, calls setState, and then fits the window to the contents of the DOM. Then we call `showDialog`, which will display the dialog on the proper monitor.
52
+ *
53
+ * @param {any} err
54
+ * @param {any} response
55
+ * @memberof SingleInputDialog
56
+ */
33
57
  onShowRequested(err, response) {
34
58
  let { data } = response;
35
59
  this.setState({
@@ -45,11 +69,22 @@ class _SingleInputDialog extends React.Component {
45
69
  inputPlaceholder: data.inputPlaceholder || this.state.inputPlaceholder,
46
70
  }, this.fitAndShow);
47
71
  }
72
+ /**
73
+ * Fits the contents of the DOM to the window, then calls `showDialog`, which positions the dialog on the proper monitor and toggles the visibility of the window.
74
+ *
75
+ * @memberof SingleInputDialog
76
+ */
48
77
  fitAndShow() {
49
78
  FSBL.Clients.WindowClient.fitToDOM(null, () => {
50
79
  FSBL.Clients.DialogManager.showDialog();
51
80
  });
52
81
  }
82
+ /**
83
+ * Sends user input to the opener.
84
+ *
85
+ * @param {any} response
86
+ * @memberof SingleInputDialog
87
+ */
53
88
  sendResponse(response) {
54
89
  FSBL.Clients.DialogManager.respondToOpener({
55
90
  value: this.state.inputValue,
@@ -62,6 +97,12 @@ class _SingleInputDialog extends React.Component {
62
97
  });
63
98
  Array.from(document.querySelectorAll("input")).forEach((el) => (el.value = ""));
64
99
  }
100
+ /**
101
+ * onChange handler. When the user types, we keep the value up to date in the dialog's state.
102
+ *
103
+ * @param {any} e
104
+ * @memberof SingleInputDialog
105
+ */
65
106
  setInputValue(e) {
66
107
  this.setState({
67
108
  inputValue: e.target.value,
@@ -80,5 +121,8 @@ class _SingleInputDialog extends React.Component {
80
121
  } }, this.state.affirmativeResponseLabel))));
81
122
  }
82
123
  }
124
+ /**
125
+ * A window for collecting input from a user (e.g., a new workspace's name).
126
+ */
83
127
  export const SingleInputDialog = () => React.createElement(_SingleInputDialog, null);
84
128
  //# sourceMappingURL=SingleInputDialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SingleInputDialog.js","sourceRoot":"","sources":["../../../src/components/singleInputDialog/SingleInputDialog.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright 2017 by ChartIQ, Inc.\n * All rights reserved.\n */\nimport React from \"react\";\nimport { FinsembleDialog } from \"../legacyControls/FinsembleDialog\";\nimport { FinsembleDialogTextInput } from \"../legacyControls/FinsembleDialogTextInput\";\nimport { FinsembleDialogButton } from \"../legacyControls/FinsembleDialogButton\";\nimport \"./SingleInputDialog.css\";\nimport \"../../assets/css/finsemble.css\";\nimport \"../../assets/css/dialogs.css\";\n\n// SingleInputDialog and YesNoDialog can be combined. There's a lot of code being repeated between the 2.\n\ninterface IProps {}\ninterface IState {\n\taffirmativeResponseLabel: string;\n\trenderInput: boolean;\n\ttitle?: string;\n\tcancelResponseLabel?: string;\n\tshowCancelButton?: boolean;\n\thideModalOnClose?: boolean;\n\tinputValue?: string | null;\n\tinputPattern?: string;\n\tinputMaxLength?: number;\n\tinputPlaceholder: string;\n}\n\n/**\n * This is our standard input dialog. It gives the user a single button and a text field, and ferries that data back to the window that opened it.\n *\n * @class SingleInputDialog\n * @extends {React.Component}\n */\nclass _SingleInputDialog extends React.Component<IProps, IState> {\n\tconstructor(props = {}) {\n\t\tsuper(props);\n\t\tthis.bindCorrectContext();\n\t\tthis.state = {\n\t\t\taffirmativeResponseLabel: \"Yes\",\n\t\t\t/** Our input uses the HTML autoFocus attribute. This only fires when the element is rendered for the 1st time. Since we re-use the dialogs, the 2nd time the dialog is shown, autoFocus will not trigger. To force it to trigger, we change this boolean when a response is sent back to the opener, which unmounts the element from the dom. The next time the dialog is used, we will render the element again, and autoFocus will trigger. */\n\t\t\trenderInput: false,\n\t\t\tinputPlaceholder: \"New workspace\",\n\t\t};\n\t\tdocument.body.addEventListener(\"keydown\", this.handleKeydownOnBody);\n\t}\n\n\tbindCorrectContext() {\n\t\tthis.handleKeydownOnBody = this.handleKeydownOnBody.bind(this);\n\t\tthis.onShowRequested = this.onShowRequested.bind(this);\n\t\tthis.setInputValue = this.setInputValue.bind(this);\n\t\tthis.sendResponse = this.sendResponse.bind(this);\n\t}\n\n\t/**\n\t * Handles escape and enter.\n\t *\n\t * @param {any} e\n\t * @memberof SingleInputDialog\n\t */\n\thandleKeydownOnBody(e: KeyboardEvent) {\n\t\tif (e.code === \"Enter\" && e.shiftKey === false) {\n\t\t\tthis.sendResponse(\"affirmative\");\n\t\t}\n\n\t\tif (e.code === \"Escape\") {\n\t\t\tthis.sendResponse(\"cancel\");\n\t\t}\n\t}\n\n\t/**\n\t * When the opener requests that the dialog show itself, it also passes in initialization data. This function grabs that data, calls setState, and then fits the window to the contents of the DOM. Then we call `showDialog`, which will display the dialog on the proper monitor.\n\t *\n\t * @param {any} err\n\t * @param {any} response\n\t * @memberof SingleInputDialog\n\t */\n\tonShowRequested(err: any, response: any) {\n\t\tlet { data } = response;\n\t\tthis.setState(\n\t\t\t{\n\t\t\t\ttitle: data.title || \"Title\",\n\t\t\t\tinputValue: null,\n\t\t\t\thideModalOnClose: typeof data.hideModalOnClose === \"undefined\" ? true : data.hideModalOnClose,\n\t\t\t\taffirmativeResponseLabel: data.affirmativeResponseLabel || \"OK\",\n\t\t\t\tcancelResponseLabel: data.cancelResponseLabel || \"Cancel\",\n\t\t\t\tshowCancelButton: typeof data.showCancelButton === \"undefined\" ? false : data.showCancelButton,\n\t\t\t\trenderInput: true,\n\t\t\t\tinputPattern: data.inputPattern,\n\t\t\t\tinputMaxLength: data.inputMaxLength,\n\t\t\t\tinputPlaceholder: data.inputPlaceholder || this.state.inputPlaceholder,\n\t\t\t},\n\t\t\tthis.fitAndShow\n\t\t);\n\t}\n\n\t/**\n\t * Fits the contents of the DOM to the window, then calls `showDialog`, which positions the dialog on the proper monitor and toggles the visibility of the window.\n\t *\n\t * @memberof SingleInputDialog\n\t */\n\tfitAndShow() {\n\t\tFSBL.Clients.WindowClient.fitToDOM(null, () => {\n\t\t\tFSBL.Clients.DialogManager.showDialog();\n\t\t});\n\t}\n\n\t/**\n\t * Sends user input to the opener.\n\t *\n\t * @param {any} response\n\t * @memberof SingleInputDialog\n\t */\n\tsendResponse(response: any) {\n\t\tFSBL.Clients.DialogManager.respondToOpener({\n\t\t\tvalue: this.state.inputValue,\n\t\t\tchoice: response,\n\t\t\thideModalOnClose: this.state.hideModalOnClose,\n\t\t});\n\n\t\tthis.setState({\n\t\t\tinputValue: null,\n\t\t\trenderInput: false,\n\t\t});\n\t\tArray.from(document.querySelectorAll(\"input\")).forEach((el) => (el.value = \"\"));\n\t}\n\n\t/**\n\t * onChange handler. When the user types, we keep the value up to date in the dialog's state.\n\t *\n\t * @param {any} e\n\t * @memberof SingleInputDialog\n\t */\n\tsetInputValue(e: React.ChangeEvent<HTMLInputElement>) {\n\t\tthis.setState({\n\t\t\tinputValue: e.target.value,\n\t\t});\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<FinsembleDialog\n\t\t\t\tuserInputTimeout={10000}\n\t\t\t\tbehaviorOnResponse=\"hide\"\n\t\t\t\tonShowRequested={this.onShowRequested}\n\t\t\t\tisModal={true}\n\t\t\t>\n\t\t\t\t<div className=\"dialog-title\">{this.state.title}</div>\n\t\t\t\t{this.state.renderInput && (\n\t\t\t\t\t<FinsembleDialogTextInput\n\t\t\t\t\t\tonInputChange={this.setInputValue}\n\t\t\t\t\t\tplaceholder={this.state.inputPlaceholder}\n\t\t\t\t\t\tautoFocus={true}\n\t\t\t\t\t\tinputPattern={this.state.inputPattern}\n\t\t\t\t\t\tmaxLength={this.state.inputMaxLength}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t<div className=\"button-wrapper\">\n\t\t\t\t\t{this.state.showCancelButton && (\n\t\t\t\t\t\t<FinsembleDialogButton\n\t\t\t\t\t\t\tclassName=\"fsbl-button-neutral\"\n\t\t\t\t\t\t\tshow={true}\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\tthis.sendResponse(\"cancel\");\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{this.state.cancelResponseLabel}\n\t\t\t\t\t\t</FinsembleDialogButton>\n\t\t\t\t\t)}\n\t\t\t\t\t<FinsembleDialogButton\n\t\t\t\t\t\tclassName=\"fsbl-button-affirmative\"\n\t\t\t\t\t\tshow={true}\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\tthis.sendResponse(\"affirmative\");\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{this.state.affirmativeResponseLabel}\n\t\t\t\t\t</FinsembleDialogButton>\n\t\t\t\t</div>\n\t\t\t</FinsembleDialog>\n\t\t);\n\t}\n}\n\n/**\n * A window for collecting input from a user (e.g., a new workspace's name).\n */\nexport const SingleInputDialog = () => <_SingleInputDialog />;\n"]}
1
+ {"version":3,"file":"SingleInputDialog.js","sourceRoot":"","sources":["../../../src/components/singleInputDialog/SingleInputDialog.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright 2017 by ChartIQ, Inc.\n * All rights reserved.\n */\nimport React from \"react\";\nimport { FinsembleDialog } from \"../legacyControls/FinsembleDialog\";\nimport { FinsembleDialogTextInput } from \"../legacyControls/FinsembleDialogTextInput\";\nimport { FinsembleDialogButton } from \"../legacyControls/FinsembleDialogButton\";\nimport \"./SingleInputDialog.css\";\nimport \"../../assets/css/finsemble.css\";\nimport \"../../assets/css/dialogs.css\";\n\n// SingleInputDialog and YesNoDialog can be combined. There's a lot of code being repeated between the 2.\n\ninterface IProps {}\ninterface IState {\n\taffirmativeResponseLabel: string;\n\trenderInput: boolean;\n\ttitle?: string;\n\tcancelResponseLabel?: string;\n\tshowCancelButton?: boolean;\n\thideModalOnClose?: boolean;\n\tinputValue?: string | null;\n\tinputPattern?: string;\n\tinputMaxLength?: number;\n\tinputPlaceholder: string;\n}\n\n/**\n * This is our standard input dialog. It gives the user a single button and a text field, and ferries that data back to the window that opened it.\n *\n * @class SingleInputDialog\n * @extends {React.Component}\n */\nclass _SingleInputDialog extends React.Component<IProps, IState> {\n\tconstructor(props = {}) {\n\t\tsuper(props);\n\t\tthis.bindCorrectContext();\n\t\tthis.state = {\n\t\t\taffirmativeResponseLabel: \"Yes\",\n\t\t\t/** Our input uses the HTML autoFocus attribute. This only fires when the element is rendered for the 1st time. Since we re-use the dialogs, the 2nd time the dialog is shown, autoFocus will not trigger. To force it to trigger, we change this boolean when a response is sent back to the opener, which unmounts the element from the dom. The next time the dialog is used, we will render the element again, and autoFocus will trigger. */\n\t\t\trenderInput: false,\n\t\t\tinputPlaceholder: \"New workspace\",\n\t\t};\n\t\tdocument.body.addEventListener(\"keydown\", this.handleKeydownOnBody);\n\t}\n\n\tbindCorrectContext() {\n\t\tthis.handleKeydownOnBody = this.handleKeydownOnBody.bind(this);\n\t\tthis.onShowRequested = this.onShowRequested.bind(this);\n\t\tthis.setInputValue = this.setInputValue.bind(this);\n\t\tthis.sendResponse = this.sendResponse.bind(this);\n\t}\n\n\t/**\n\t * Handles escape and enter.\n\t *\n\t * @param {any} e\n\t * @memberof SingleInputDialog\n\t */\n\thandleKeydownOnBody(e: KeyboardEvent) {\n\t\tif (e.code === \"Enter\" && e.shiftKey === false) {\n\t\t\tthis.sendResponse(\"affirmative\");\n\t\t}\n\n\t\tif (e.code === \"Escape\") {\n\t\t\tthis.sendResponse(\"cancel\");\n\t\t}\n\t}\n\n\t/**\n\t * When the opener requests that the dialog show itself, it also passes in initialization data. This function grabs that data, calls setState, and then fits the window to the contents of the DOM. Then we call `showDialog`, which will display the dialog on the proper monitor.\n\t *\n\t * @param {any} err\n\t * @param {any} response\n\t * @memberof SingleInputDialog\n\t */\n\tonShowRequested(err: any, response: any) {\n\t\tlet { data } = response;\n\t\tthis.setState(\n\t\t\t{\n\t\t\t\ttitle: data.title || \"Title\",\n\t\t\t\tinputValue: null,\n\t\t\t\thideModalOnClose: typeof data.hideModalOnClose === \"undefined\" ? true : data.hideModalOnClose,\n\t\t\t\taffirmativeResponseLabel: data.affirmativeResponseLabel || \"OK\",\n\t\t\t\tcancelResponseLabel: data.cancelResponseLabel || \"Cancel\",\n\t\t\t\tshowCancelButton: typeof data.showCancelButton === \"undefined\" ? false : data.showCancelButton,\n\t\t\t\trenderInput: true,\n\t\t\t\tinputPattern: data.inputPattern,\n\t\t\t\tinputMaxLength: data.inputMaxLength,\n\t\t\t\tinputPlaceholder: data.inputPlaceholder || this.state.inputPlaceholder,\n\t\t\t},\n\t\t\tthis.fitAndShow\n\t\t);\n\t}\n\n\t/**\n\t * Fits the contents of the DOM to the window, then calls `showDialog`, which positions the dialog on the proper monitor and toggles the visibility of the window.\n\t *\n\t * @memberof SingleInputDialog\n\t */\n\tfitAndShow() {\n\t\tFSBL.Clients.WindowClient.fitToDOM(null, () => {\n\t\t\tFSBL.Clients.DialogManager.showDialog();\n\t\t});\n\t}\n\n\t/**\n\t * Sends user input to the opener.\n\t *\n\t * @param {any} response\n\t * @memberof SingleInputDialog\n\t */\n\tsendResponse(response: any) {\n\t\tFSBL.Clients.DialogManager.respondToOpener({\n\t\t\tvalue: this.state.inputValue,\n\t\t\tchoice: response,\n\t\t\thideModalOnClose: this.state.hideModalOnClose,\n\t\t});\n\n\t\tthis.setState({\n\t\t\tinputValue: null,\n\t\t\trenderInput: false,\n\t\t});\n\t\tArray.from(document.querySelectorAll(\"input\")).forEach((el) => (el.value = \"\"));\n\t}\n\n\t/**\n\t * onChange handler. When the user types, we keep the value up to date in the dialog's state.\n\t *\n\t * @param {any} e\n\t * @memberof SingleInputDialog\n\t */\n\tsetInputValue(e: React.ChangeEvent<HTMLInputElement>) {\n\t\tthis.setState({\n\t\t\tinputValue: e.target.value,\n\t\t});\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<FinsembleDialog\n\t\t\t\tuserInputTimeout={10000}\n\t\t\t\tbehaviorOnResponse=\"hide\"\n\t\t\t\tonShowRequested={this.onShowRequested}\n\t\t\t\tisModal={true}\n\t\t\t>\n\t\t\t\t<div className=\"dialog-title\">{this.state.title}</div>\n\t\t\t\t{this.state.renderInput && (\n\t\t\t\t\t<FinsembleDialogTextInput\n\t\t\t\t\t\tonInputChange={this.setInputValue}\n\t\t\t\t\t\tplaceholder={this.state.inputPlaceholder}\n\t\t\t\t\t\tautoFocus={true}\n\t\t\t\t\t\tinputPattern={this.state.inputPattern}\n\t\t\t\t\t\tmaxLength={this.state.inputMaxLength}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t<div className=\"button-wrapper\">\n\t\t\t\t\t{this.state.showCancelButton && (\n\t\t\t\t\t\t<FinsembleDialogButton\n\t\t\t\t\t\t\tclassName=\"fsbl-button-neutral\"\n\t\t\t\t\t\t\tshow={true}\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\tthis.sendResponse(\"cancel\");\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{this.state.cancelResponseLabel}\n\t\t\t\t\t\t</FinsembleDialogButton>\n\t\t\t\t\t)}\n\t\t\t\t\t<FinsembleDialogButton\n\t\t\t\t\t\tclassName=\"fsbl-button-affirmative\"\n\t\t\t\t\t\tshow={true}\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\tthis.sendResponse(\"affirmative\");\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{this.state.affirmativeResponseLabel}\n\t\t\t\t\t</FinsembleDialogButton>\n\t\t\t\t</div>\n\t\t\t</FinsembleDialog>\n\t\t);\n\t}\n}\n\n/**\n * A window for collecting input from a user (e.g., a new workspace's name).\n */\nexport const SingleInputDialog = () => <_SingleInputDialog />;\n"]}
@@ -1,3 +1,9 @@
1
+ /**
2
+ * This class is a dummy class that exists only for build compatibility with LTS seed projects.
3
+ *
4
+ * If you rename "SmartDesktopDesigner" to something else (it's been Maker UI, Jumpstart, and DesktopProjectEditor in the past), grep for the following terms (case insensitive):
5
+ * "SmartDesktop", "Smart Desktop", "SDD", "SDServer", "SMART_DESKTOP"
6
+ */
1
7
  import React from "react";
2
8
  export const SmartDesktopDesigner = (props) => React.createElement(React.Fragment, null);
3
9
  //# sourceMappingURL=SmartDesktopDesigner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SmartDesktopDesigner.js","sourceRoot":"","sources":["../../../src/components/smartDesktopDesigner/SmartDesktopDesigner.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,yCAAK,CAAC","sourcesContent":["/**\n * This class is a dummy class that exists only for build compatibility with LTS seed projects.\n *\n * If you rename \"SmartDesktopDesigner\" to something else (it's been Maker UI, Jumpstart, and DesktopProjectEditor in the past), grep for the following terms (case insensitive):\n * \"SmartDesktop\", \"Smart Desktop\", \"SDD\", \"SDServer\", \"SMART_DESKTOP\"\n */\nimport React from \"react\";\n\nexport const SmartDesktopDesigner = (props: any) => <></>;\n"]}
1
+ {"version":3,"file":"SmartDesktopDesigner.js","sourceRoot":"","sources":["../../../src/components/smartDesktopDesigner/SmartDesktopDesigner.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,yCAAK,CAAC","sourcesContent":["/**\n * This class is a dummy class that exists only for build compatibility with LTS seed projects.\n *\n * If you rename \"SmartDesktopDesigner\" to something else (it's been Maker UI, Jumpstart, and DesktopProjectEditor in the past), grep for the following terms (case insensitive):\n * \"SmartDesktop\", \"Smart Desktop\", \"SDD\", \"SDServer\", \"SMART_DESKTOP\"\n */\nimport React from \"react\";\n\nexport const SmartDesktopDesigner = (props: any) => <></>;\n"]}