@finsemble/finsemble-ui 7.0.1 → 7.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (788) 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 +36 -3
  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.d.ts +1 -1
  668. package/react/components/userPreferences/components/workspaces/WorkspaceItem.js +20 -10
  669. package/react/components/userPreferences/components/workspaces/WorkspaceItem.js.map +1 -1
  670. package/react/components/userPreferences/stores/UserPreferencesStore.d.ts +17 -0
  671. package/react/components/userPreferences/stores/UserPreferencesStore.js +27 -0
  672. package/react/components/userPreferences/stores/UserPreferencesStore.js.map +1 -1
  673. package/react/components/userPreferences/tests/NotificationsPreferencesHome.spec.js +1 -0
  674. package/react/components/userPreferences/tests/NotificationsPreferencesHome.spec.js.map +1 -1
  675. package/react/components/userPreferences/tests/Workspace.spec.js +20 -0
  676. package/react/components/userPreferences/tests/Workspace.spec.js.map +1 -1
  677. package/react/components/windowTitleBar/WindowTitleBarShell.d.ts +111 -0
  678. package/react/components/windowTitleBar/WindowTitleBarShell.js +218 -47
  679. package/react/components/windowTitleBar/WindowTitleBarShell.js.map +1 -1
  680. package/react/components/windowTitleBar/components/center/Tab.d.ts +3 -0
  681. package/react/components/windowTitleBar/components/center/Tab.js +3 -0
  682. package/react/components/windowTitleBar/components/center/Tab.js.map +1 -1
  683. package/react/components/windowTitleBar/components/center/TabList.d.ts +90 -0
  684. package/react/components/windowTitleBar/components/center/TabList.js +170 -4
  685. package/react/components/windowTitleBar/components/center/TabList.js.map +1 -1
  686. package/react/components/windowTitleBar/components/left/LinkerButton.d.ts +9 -1
  687. package/react/components/windowTitleBar/components/left/LinkerButton.js +25 -9
  688. package/react/components/windowTitleBar/components/left/LinkerButton.js.map +1 -1
  689. package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.d.ts +47 -0
  690. package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.js +76 -1
  691. package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.js.map +1 -1
  692. package/react/components/windowTitleBar/components/left/LinkerGroups.d.ts +4 -0
  693. package/react/components/windowTitleBar/components/left/LinkerGroups.js +5 -0
  694. package/react/components/windowTitleBar/components/left/LinkerGroups.js.map +1 -1
  695. package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.d.ts +18 -0
  696. package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.js +49 -0
  697. package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.js.map +1 -1
  698. package/react/components/windowTitleBar/components/left/ShareButton.d.ts +17 -0
  699. package/react/components/windowTitleBar/components/left/ShareButton.js +39 -0
  700. package/react/components/windowTitleBar/components/left/ShareButton.js.map +1 -1
  701. package/react/components/windowTitleBar/components/right/AlwaysOnTopButton.js +4 -0
  702. package/react/components/windowTitleBar/components/right/AlwaysOnTopButton.js.map +1 -1
  703. package/react/components/windowTitleBar/components/right/CloseButton.d.ts +27 -0
  704. package/react/components/windowTitleBar/components/right/CloseButton.js +27 -0
  705. package/react/components/windowTitleBar/components/right/CloseButton.js.map +1 -1
  706. package/react/components/windowTitleBar/components/right/GroupingButton.d.ts +37 -0
  707. package/react/components/windowTitleBar/components/right/GroupingButton.js +40 -0
  708. package/react/components/windowTitleBar/components/right/GroupingButton.js.map +1 -1
  709. package/react/components/windowTitleBar/components/right/MaximizeButton.d.ts +46 -0
  710. package/react/components/windowTitleBar/components/right/MaximizeButton.js +54 -0
  711. package/react/components/windowTitleBar/components/right/MaximizeButton.js.map +1 -1
  712. package/react/components/windowTitleBar/components/right/MinimizeButton.d.ts +26 -0
  713. package/react/components/windowTitleBar/components/right/MinimizeButton.js +26 -0
  714. package/react/components/windowTitleBar/components/right/MinimizeButton.js.map +1 -1
  715. package/react/components/windowTitleBar/components/windowTitle.d.ts +40 -0
  716. package/react/components/windowTitleBar/components/windowTitle.js +172 -10
  717. package/react/components/windowTitleBar/components/windowTitle.js.map +1 -1
  718. package/react/components/windowTitleBar/stores/windowTitleBarStore.d.ts +5 -0
  719. package/react/components/windowTitleBar/stores/windowTitleBarStore.js +72 -1
  720. package/react/components/windowTitleBar/stores/windowTitleBarStore.js.map +1 -1
  721. package/react/components/yesNoDialog/YesNoDialog.css +1 -1
  722. package/react/components/yesNoDialog/YesNoDialog.d.ts +3 -0
  723. package/react/components/yesNoDialog/YesNoDialog.js +63 -0
  724. package/react/components/yesNoDialog/YesNoDialog.js.map +1 -1
  725. package/react/components/yesNoDialog/YesNoDialog.spec.js +4 -0
  726. package/react/components/yesNoDialog/YesNoDialog.spec.js.map +1 -1
  727. package/react/components/yesNoDialog/timer.js +2 -0
  728. package/react/components/yesNoDialog/timer.js.map +1 -1
  729. package/react/enzymeSetup.js +5 -0
  730. package/react/enzymeSetup.js.map +1 -1
  731. package/react/hooks/useDashbar.js +10 -0
  732. package/react/hooks/useDashbar.js.map +1 -1
  733. package/react/hooks/useDeepEffect.d.ts +4 -0
  734. package/react/hooks/useDeepEffect.js +21 -0
  735. package/react/hooks/useDeepEffect.js.map +1 -1
  736. package/react/hooks/useFavorites.d.ts +15 -0
  737. package/react/hooks/useFavorites.js +3 -0
  738. package/react/hooks/useFavorites.js.map +1 -1
  739. package/react/hooks/useFavoritesShell.d.ts +4 -0
  740. package/react/hooks/useFavoritesShell.js +23 -0
  741. package/react/hooks/useFavoritesShell.js.map +1 -1
  742. package/react/hooks/useHotkey.d.ts +6 -0
  743. package/react/hooks/useHotkey.js +9 -0
  744. package/react/hooks/useHotkey.js.map +1 -1
  745. package/react/hooks/useLinker.js +14 -0
  746. package/react/hooks/useLinker.js.map +1 -1
  747. package/react/hooks/useMenu.d.ts +29 -0
  748. package/react/hooks/useMenu.js +12 -1
  749. package/react/hooks/useMenu.js.map +1 -1
  750. package/react/hooks/useNotifications.d.ts +44 -0
  751. package/react/hooks/useNotifications.js +100 -4
  752. package/react/hooks/useNotifications.js.map +1 -1
  753. package/react/hooks/useOutsideClickDetector.d.ts +3 -0
  754. package/react/hooks/useOutsideClickDetector.js +3 -0
  755. package/react/hooks/useOutsideClickDetector.js.map +1 -1
  756. package/react/hooks/usePubSub.d.ts +17 -0
  757. package/react/hooks/usePubSub.js +18 -0
  758. package/react/hooks/usePubSub.js.map +1 -1
  759. package/react/hooks/useSearch.d.ts +5 -0
  760. package/react/hooks/useSearch.js +30 -0
  761. package/react/hooks/useSearch.js.map +1 -1
  762. package/react/hooks/useToolbar.js +52 -0
  763. package/react/hooks/useToolbar.js.map +1 -1
  764. package/react/reducers/favoriteReducer.d.ts +3 -0
  765. package/react/reducers/linkerReducer.d.ts +3 -0
  766. package/react/reducers/linkerReducer.js +4 -0
  767. package/react/reducers/linkerReducer.js.map +1 -1
  768. package/react/reducers/menuReducer.d.ts +28 -0
  769. package/react/reducers/menuReducer.js +34 -0
  770. package/react/reducers/menuReducer.js.map +1 -1
  771. package/react/reducers/rootReducer.js +3 -0
  772. package/react/reducers/rootReducer.js.map +1 -1
  773. package/react/reducers/searchReducer.d.ts +7 -0
  774. package/react/reducers/searchReducer.js +6 -0
  775. package/react/reducers/searchReducer.js.map +1 -1
  776. package/react/reducers/workspaceReducer.js +1 -0
  777. package/react/reducers/workspaceReducer.js.map +1 -1
  778. package/react/store.d.ts +4 -0
  779. package/react/store.js +11 -0
  780. package/react/store.js.map +1 -1
  781. package/react/tsconfig.tsbuildinfo +1 -1
  782. package/react/types/fdc3.d.ts +2 -0
  783. package/react/types/linkerTypes.d.ts +13 -0
  784. package/react/types/linkerTypes.js +1 -0
  785. package/react/types/linkerTypes.js.map +1 -1
  786. package/react/types/smartDesktopDesignerTypes.d.ts +5 -0
  787. package/react/types/smartDesktopDesignerTypes.js.map +1 -1
  788. package/react/types/workspaceTypes.d.ts +8 -0
@@ -1,9 +1,22 @@
1
1
  import * as React from "react";
2
2
  import { services } from "@finsemble/finsemble-api";
3
3
  declare type IconDescriptor = services.window.types.IconDescriptor;
4
+ /**
5
+ * Converts a Finsemble config entry to an Icon type that can be used to create <Icon> components.
6
+ * @param config A finsemble icon config entry as derived by the launcher (e.g. "icons.toolBar", "icons.taskbar" or "icons.titleBar")
7
+ * @param title The title for the icon
8
+ */
4
9
  export declare const iconFromConfig: (config: any, title: string, appD: any) => IconDescriptor;
5
10
  declare type IconProps = IconDescriptor & {
6
11
  className?: string;
7
12
  };
13
+ /**
14
+ * An icon to accompany Finsemble components or workspaces.
15
+ * @param {string} [imageType] - "fonticon" | "url" | "initials" - Determines how the icon is generated.
16
+ * @param {string} [path] - The path of the image.
17
+ * @param {string} [name] - Used if imageType is "initials" to generate a text based icon.
18
+ * @param {string} [category] - This will appear on the `data-category` attribute which can be used to drive CSS.
19
+ * @param {string} [className] - Optional class to be appended.
20
+ */
8
21
  export declare const Icon: React.FunctionComponent<Partial<IconProps>>;
9
22
  export {};
@@ -1,4 +1,9 @@
1
1
  import * as React from "react";
2
+ /**
3
+ * Converts a Finsemble config entry to an Icon type that can be used to create <Icon> components.
4
+ * @param config A finsemble icon config entry as derived by the launcher (e.g. "icons.toolBar", "icons.taskbar" or "icons.titleBar")
5
+ * @param title The title for the icon
6
+ */
2
7
  export const iconFromConfig = (config, title, appD) => {
3
8
  var _a;
4
9
  if (((_a = appD === null || appD === void 0 ? void 0 : appD.icons) === null || _a === void 0 ? void 0 : _a.length) > 0 && appD.icons[0].src) {
@@ -7,11 +12,13 @@ export const iconFromConfig = (config, title, appD) => {
7
12
  path: appD.icons[0].src,
8
13
  };
9
14
  }
15
+ // Our default icon. The <Icon> component can generate an "initials" icon based just off of the `name`
10
16
  const defaultIcon = {
11
17
  imageType: "initials",
12
18
  name: title,
13
19
  category: "Application",
14
20
  };
21
+ // Use iconography if available in the app's icon config entry
15
22
  if (config === null || config === void 0 ? void 0 : config.iconClass) {
16
23
  return {
17
24
  imageType: "fonticon",
@@ -36,17 +43,32 @@ const deriveClasses = (imageType, className = "") => {
36
43
  }
37
44
  return classes;
38
45
  };
46
+ /**
47
+ * Derives two initials from a given name based on some simple heuristics.
48
+ */
39
49
  const avatarInitialsFromName = (name) => {
50
+ // Significant words are over three characters
40
51
  const significantWords = name
41
52
  .toUpperCase()
42
53
  .split(" ")
43
54
  .flatMap((str) => (str.length > 3 ? [str] : []));
55
+ // If no significant words then just return first two characters of the original name
44
56
  if (significantWords.length === 0)
45
57
  return name.substr(0, 2);
58
+ // If only one significant word then return its first two characters
46
59
  if (significantWords.length === 1)
47
60
  return significantWords[0].substr(0, 2);
61
+ // Return the first character of the first two significant words
48
62
  return significantWords[0].substr(0, 1).concat(significantWords[1].substr(0, 1));
49
63
  };
64
+ /**
65
+ * An icon to accompany Finsemble components or workspaces.
66
+ * @param {string} [imageType] - "fonticon" | "url" | "initials" - Determines how the icon is generated.
67
+ * @param {string} [path] - The path of the image.
68
+ * @param {string} [name] - Used if imageType is "initials" to generate a text based icon.
69
+ * @param {string} [category] - This will appear on the `data-category` attribute which can be used to drive CSS.
70
+ * @param {string} [className] - Optional class to be appended.
71
+ */
50
72
  export const Icon = (props) => {
51
73
  var _a, _b;
52
74
  let avatar;
@@ -64,4 +86,16 @@ export const Icon = (props) => {
64
86
  const classes = deriveClasses(imageType, props.className);
65
87
  return (React.createElement("div", { className: classes, "data-category": props.category }, avatar));
66
88
  };
89
+ /*
90
+ export const CategoryIcon: React.FunctionComponent<CategoryIconProps> = (props) => {
91
+ let className = "";
92
+ if(props.category == "Application")
93
+ className=`entity-component ${props.className}`;
94
+ if(props.category == "Workspace")
95
+ className=`entity-workspace ${props.className}`;
96
+ return (
97
+ <Icon {...props} {...className} />
98
+ )
99
+ }
100
+ */
67
101
  //# sourceMappingURL=Icon.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Icon.js","sourceRoot":"","sources":["../../../src/components/icon/Icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAW,EAAE,KAAa,EAAE,IAAS,EAAkB,EAAE;;IACvF,IAAI,CAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,0CAAE,MAAM,IAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;QACjD,OAAO;YACN,SAAS,EAAE,KAAK;YAChB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG;SACvB,CAAC;KACF;IAGD,MAAM,WAAW,GAAmB;QACnC,SAAS,EAAE,UAAU;QACrB,IAAI,EAAE,KAAK;QACX,QAAQ,EAAE,aAAa;KACvB,CAAC;IAGF,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,EAAE;QACtB,OAAO;YACN,SAAS,EAAE,UAAU;YACrB,IAAI,EAAE,MAAM,CAAC,SAAS;SACtB,CAAC;KACF;IACD,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,EAAE;QACpB,OAAO;YACN,SAAS,EAAE,KAAK;YAChB,IAAI,EAAE,MAAM,CAAC,OAAO;SACpB,CAAC;KACF;IACD,OAAO,WAAW,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,SAAiB,EAAE,YAAoB,EAAE,EAAU,EAAE;IAC3E,IAAI,OAAO,GAAG,uBAAuB,SAAS,EAAE,CAAC;IACjD,IAAI,SAAS,KAAK,KAAK,EAAE;QACxB,OAAO,GAAG,GAAG,OAAO,kBAAkB,CAAC;KACvC;SAAM;QACN,OAAO,GAAG,GAAG,OAAO,cAAc,CAAC;KACnC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC,CAAC;AASF,MAAM,sBAAsB,GAAG,CAAC,IAAY,EAAU,EAAE;IAEvD,MAAM,gBAAgB,GAAG,IAAI;SAC3B,WAAW,EAAE;SACb,KAAK,CAAC,GAAG,CAAC;SACV,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAGlD,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAG5D,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAG3E,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAClF,CAAC,CAAC;AAUF,MAAM,CAAC,MAAM,IAAI,GAAgD,CAAC,KAAK,EAAE,EAAE;;IAC1E,IAAI,MAAM,CAAC;IACX,IAAI,KAAK,CAAC,SAAS,KAAK,UAAU,EAAE;QACnC,MAAM,IAAI,GAAG,MAAA,KAAK,CAAC,IAAI,mCAAI,EAAE,CAAC;QAC9B,MAAM,GAAG,kCAAO,sBAAsB,CAAC,IAAI,CAAC,CAAQ,CAAC;KACrD;IACD,IAAI,KAAK,CAAC,SAAS,KAAK,UAAU,EAAE;QACnC,MAAM,GAAG,2BAAG,SAAS,EAAE,KAAK,CAAC,IAAI,GAAM,CAAC;KACxC;IACD,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,EAAE;QAC9B,MAAM,GAAG,6BAAK,GAAG,EAAE,KAAK,CAAC,IAAI,GAAI,CAAC;KAClC;IACD,MAAM,SAAS,GAAG,MAAA,KAAK,CAAC,SAAS,mCAAI,UAAU,CAAC;IAChD,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAE1D,OAAO,CACN,6BAAK,SAAS,EAAE,OAAO,mBAAiB,KAAK,CAAC,QAAQ,IACpD,MAAM,CACF,CACN,CAAC;AACH,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\nimport { services } from \"@finsemble/finsemble-api\";\n\ntype IconDescriptor = services.window.types.IconDescriptor;\n\n/**\n * Converts a Finsemble config entry to an Icon type that can be used to create <Icon> components.\n * @param config A finsemble icon config entry as derived by the launcher (e.g. \"icons.toolBar\", \"icons.taskbar\" or \"icons.titleBar\")\n * @param title The title for the icon\n */\nexport const iconFromConfig = (config: any, title: string, appD: any): IconDescriptor => {\n\tif (appD?.icons?.length > 0 && appD.icons[0].src) {\n\t\treturn {\n\t\t\timageType: \"url\",\n\t\t\tpath: appD.icons[0].src,\n\t\t};\n\t}\n\n\t// Our default icon. The <Icon> component can generate an \"initials\" icon based just off of the `name`\n\tconst defaultIcon: IconDescriptor = {\n\t\timageType: \"initials\",\n\t\tname: title,\n\t\tcategory: \"Application\",\n\t};\n\n\t// Use iconography if available in the app's icon config entry\n\tif (config?.iconClass) {\n\t\treturn {\n\t\t\timageType: \"fonticon\",\n\t\t\tpath: config.iconClass,\n\t\t};\n\t}\n\tif (config?.iconURL) {\n\t\treturn {\n\t\t\timageType: \"url\",\n\t\t\tpath: config.iconURL,\n\t\t};\n\t}\n\treturn defaultIcon;\n};\n\nconst deriveClasses = (imageType: string, className: string = \"\"): string => {\n\tlet classes = `icon-avatar-wrapper ${className}`;\n\tif (imageType === \"url\") {\n\t\tclasses = `${classes} entity-with-img`;\n\t} else {\n\t\tclasses = `${classes} icon-avatar`;\n\t}\n\treturn classes;\n};\n\ntype IconProps = IconDescriptor & {\n\tclassName?: string;\n};\n\n/**\n * Derives two initials from a given name based on some simple heuristics.\n */\nconst avatarInitialsFromName = (name: string): string => {\n\t// Significant words are over three characters\n\tconst significantWords = name\n\t\t.toUpperCase()\n\t\t.split(\" \")\n\t\t.flatMap((str) => (str.length > 3 ? [str] : []));\n\n\t// If no significant words then just return first two characters of the original name\n\tif (significantWords.length === 0) return name.substr(0, 2);\n\n\t// If only one significant word then return its first two characters\n\tif (significantWords.length === 1) return significantWords[0].substr(0, 2);\n\n\t// Return the first character of the first two significant words\n\treturn significantWords[0].substr(0, 1).concat(significantWords[1].substr(0, 1));\n};\n\n/**\n * An icon to accompany Finsemble components or workspaces.\n * @param {string} [imageType] - \"fonticon\" | \"url\" | \"initials\" - Determines how the icon is generated.\n * @param {string} [path] - The path of the image.\n * @param {string} [name] - Used if imageType is \"initials\" to generate a text based icon.\n * @param {string} [category] - This will appear on the `data-category` attribute which can be used to drive CSS.\n * @param {string} [className] - Optional class to be appended.\n */\nexport const Icon: React.FunctionComponent<Partial<IconProps>> = (props) => {\n\tlet avatar;\n\tif (props.imageType === \"initials\") {\n\t\tconst name = props.name ?? \"\";\n\t\tavatar = <span>{avatarInitialsFromName(name)}</span>;\n\t}\n\tif (props.imageType === \"fonticon\") {\n\t\tavatar = <i className={props.path}></i>;\n\t}\n\tif (props.imageType === \"url\") {\n\t\tavatar = <img src={props.path} />;\n\t}\n\tconst imageType = props.imageType ?? \"initials\";\n\tconst classes = deriveClasses(imageType, props.className);\n\n\treturn (\n\t\t<div className={classes} data-category={props.category}>\n\t\t\t{avatar}\n\t\t</div>\n\t);\n};\n\n/*\nexport const CategoryIcon: React.FunctionComponent<CategoryIconProps> = (props) => {\n\tlet className = \"\";\n\tif(props.category == \"Application\")\n\t\tclassName=`entity-component ${props.className}`;\n\tif(props.category == \"Workspace\")\n\t\tclassName=`entity-workspace ${props.className}`;\n\treturn (\n\t\t<Icon {...props} {...className} />\n\t)\n}\n*/\n"]}
1
+ {"version":3,"file":"Icon.js","sourceRoot":"","sources":["../../../src/components/icon/Icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAW,EAAE,KAAa,EAAE,IAAS,EAAkB,EAAE;;IACvF,IAAI,CAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,0CAAE,MAAM,IAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;QACjD,OAAO;YACN,SAAS,EAAE,KAAK;YAChB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG;SACvB,CAAC;KACF;IAED,sGAAsG;IACtG,MAAM,WAAW,GAAmB;QACnC,SAAS,EAAE,UAAU;QACrB,IAAI,EAAE,KAAK;QACX,QAAQ,EAAE,aAAa;KACvB,CAAC;IAEF,8DAA8D;IAC9D,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,EAAE;QACtB,OAAO;YACN,SAAS,EAAE,UAAU;YACrB,IAAI,EAAE,MAAM,CAAC,SAAS;SACtB,CAAC;KACF;IACD,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,EAAE;QACpB,OAAO;YACN,SAAS,EAAE,KAAK;YAChB,IAAI,EAAE,MAAM,CAAC,OAAO;SACpB,CAAC;KACF;IACD,OAAO,WAAW,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,SAAiB,EAAE,YAAoB,EAAE,EAAU,EAAE;IAC3E,IAAI,OAAO,GAAG,uBAAuB,SAAS,EAAE,CAAC;IACjD,IAAI,SAAS,KAAK,KAAK,EAAE;QACxB,OAAO,GAAG,GAAG,OAAO,kBAAkB,CAAC;KACvC;SAAM;QACN,OAAO,GAAG,GAAG,OAAO,cAAc,CAAC;KACnC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC,CAAC;AAMF;;GAEG;AACH,MAAM,sBAAsB,GAAG,CAAC,IAAY,EAAU,EAAE;IACvD,8CAA8C;IAC9C,MAAM,gBAAgB,GAAG,IAAI;SAC3B,WAAW,EAAE;SACb,KAAK,CAAC,GAAG,CAAC;SACV,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAElD,qFAAqF;IACrF,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5D,oEAAoE;IACpE,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE3E,gEAAgE;IAChE,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAClF,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,IAAI,GAAgD,CAAC,KAAK,EAAE,EAAE;;IAC1E,IAAI,MAAM,CAAC;IACX,IAAI,KAAK,CAAC,SAAS,KAAK,UAAU,EAAE;QACnC,MAAM,IAAI,GAAG,MAAA,KAAK,CAAC,IAAI,mCAAI,EAAE,CAAC;QAC9B,MAAM,GAAG,kCAAO,sBAAsB,CAAC,IAAI,CAAC,CAAQ,CAAC;KACrD;IACD,IAAI,KAAK,CAAC,SAAS,KAAK,UAAU,EAAE;QACnC,MAAM,GAAG,2BAAG,SAAS,EAAE,KAAK,CAAC,IAAI,GAAM,CAAC;KACxC;IACD,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,EAAE;QAC9B,MAAM,GAAG,6BAAK,GAAG,EAAE,KAAK,CAAC,IAAI,GAAI,CAAC;KAClC;IACD,MAAM,SAAS,GAAG,MAAA,KAAK,CAAC,SAAS,mCAAI,UAAU,CAAC;IAChD,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAE1D,OAAO,CACN,6BAAK,SAAS,EAAE,OAAO,mBAAiB,KAAK,CAAC,QAAQ,IACpD,MAAM,CACF,CACN,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;;;;;;EAWE","sourcesContent":["import * as React from \"react\";\nimport { services } from \"@finsemble/finsemble-api\";\n\ntype IconDescriptor = services.window.types.IconDescriptor;\n\n/**\n * Converts a Finsemble config entry to an Icon type that can be used to create <Icon> components.\n * @param config A finsemble icon config entry as derived by the launcher (e.g. \"icons.toolBar\", \"icons.taskbar\" or \"icons.titleBar\")\n * @param title The title for the icon\n */\nexport const iconFromConfig = (config: any, title: string, appD: any): IconDescriptor => {\n\tif (appD?.icons?.length > 0 && appD.icons[0].src) {\n\t\treturn {\n\t\t\timageType: \"url\",\n\t\t\tpath: appD.icons[0].src,\n\t\t};\n\t}\n\n\t// Our default icon. The <Icon> component can generate an \"initials\" icon based just off of the `name`\n\tconst defaultIcon: IconDescriptor = {\n\t\timageType: \"initials\",\n\t\tname: title,\n\t\tcategory: \"Application\",\n\t};\n\n\t// Use iconography if available in the app's icon config entry\n\tif (config?.iconClass) {\n\t\treturn {\n\t\t\timageType: \"fonticon\",\n\t\t\tpath: config.iconClass,\n\t\t};\n\t}\n\tif (config?.iconURL) {\n\t\treturn {\n\t\t\timageType: \"url\",\n\t\t\tpath: config.iconURL,\n\t\t};\n\t}\n\treturn defaultIcon;\n};\n\nconst deriveClasses = (imageType: string, className: string = \"\"): string => {\n\tlet classes = `icon-avatar-wrapper ${className}`;\n\tif (imageType === \"url\") {\n\t\tclasses = `${classes} entity-with-img`;\n\t} else {\n\t\tclasses = `${classes} icon-avatar`;\n\t}\n\treturn classes;\n};\n\ntype IconProps = IconDescriptor & {\n\tclassName?: string;\n};\n\n/**\n * Derives two initials from a given name based on some simple heuristics.\n */\nconst avatarInitialsFromName = (name: string): string => {\n\t// Significant words are over three characters\n\tconst significantWords = name\n\t\t.toUpperCase()\n\t\t.split(\" \")\n\t\t.flatMap((str) => (str.length > 3 ? [str] : []));\n\n\t// If no significant words then just return first two characters of the original name\n\tif (significantWords.length === 0) return name.substr(0, 2);\n\n\t// If only one significant word then return its first two characters\n\tif (significantWords.length === 1) return significantWords[0].substr(0, 2);\n\n\t// Return the first character of the first two significant words\n\treturn significantWords[0].substr(0, 1).concat(significantWords[1].substr(0, 1));\n};\n\n/**\n * An icon to accompany Finsemble components or workspaces.\n * @param {string} [imageType] - \"fonticon\" | \"url\" | \"initials\" - Determines how the icon is generated.\n * @param {string} [path] - The path of the image.\n * @param {string} [name] - Used if imageType is \"initials\" to generate a text based icon.\n * @param {string} [category] - This will appear on the `data-category` attribute which can be used to drive CSS.\n * @param {string} [className] - Optional class to be appended.\n */\nexport const Icon: React.FunctionComponent<Partial<IconProps>> = (props) => {\n\tlet avatar;\n\tif (props.imageType === \"initials\") {\n\t\tconst name = props.name ?? \"\";\n\t\tavatar = <span>{avatarInitialsFromName(name)}</span>;\n\t}\n\tif (props.imageType === \"fonticon\") {\n\t\tavatar = <i className={props.path}></i>;\n\t}\n\tif (props.imageType === \"url\") {\n\t\tavatar = <img src={props.path} />;\n\t}\n\tconst imageType = props.imageType ?? \"initials\";\n\tconst classes = deriveClasses(imageType, props.className);\n\n\treturn (\n\t\t<div className={classes} data-category={props.category}>\n\t\t\t{avatar}\n\t\t</div>\n\t);\n};\n\n/*\nexport const CategoryIcon: React.FunctionComponent<CategoryIconProps> = (props) => {\n\tlet className = \"\";\n\tif(props.category == \"Application\")\n\t\tclassName=`entity-component ${props.className}`;\n\tif(props.category == \"Workspace\")\n\t\tclassName=`entity-workspace ${props.className}`;\n\treturn (\n\t\t<Icon {...props} {...className} />\n\t)\n}\n*/\n"]}
@@ -11,4 +11,8 @@ export declare type FinsembleDialogProps = {
11
11
  className?: string;
12
12
  children?: any;
13
13
  };
14
+ /**
15
+ * This is a component that adds some baked in behavior that is common accross several
16
+ * of the finsemble dialogs. Hiding/closing on blur, timing out, etc.
17
+ */
14
18
  export declare const FinsembleDialog: React.FunctionComponent<FinsembleDialogProps>;
@@ -4,9 +4,17 @@
4
4
  */
5
5
  import * as React from "react";
6
6
  const DIALOG_BASE_CLASS = "dialog";
7
+ /**
8
+ * This is a component that adds some baked in behavior that is common accross several
9
+ * of the finsemble dialogs. Hiding/closing on blur, timing out, etc.
10
+ */
7
11
  export const FinsembleDialog = (props) => {
8
12
  let { userInputTimeout, onShowRequested, isModal, className, children } = props;
9
13
  const handleKeyDown = (e) => {
14
+ // If the user hits escape then hide the window
15
+ // openerMessage won't be null if data is in transit to the originating window, in which
16
+ // case we bypass the hide() -- this is some sort of race condition from a long time ago
17
+ // that is not fully understood
10
18
  if (e.key === "Escape" && FSBL.Clients.DialogManager.openerMessage === null) {
11
19
  finsembleWindow.hide();
12
20
  }
@@ -17,10 +25,17 @@ export const FinsembleDialog = (props) => {
17
25
  if (typeof onShowRequested === "undefined") {
18
26
  throw new Error("No onShowRequested passed to FinsembleDialog. Pass onShowRequested as a property to the FinsembleDialog component.");
19
27
  }
28
+ /*if (typeof behaviorOnResponse === "undefined") {
29
+ behaviorOnResponse = "hide";
30
+ }*/
20
31
  if (typeof userInputTimeout === "undefined") {
21
32
  userInputTimeout = 10000;
22
33
  }
23
34
  FSBL.Clients.DialogManager.userInputTimeout = userInputTimeout;
35
+ //FSBL.Clients.DialogManager.behaviorOnResponse = behaviorOnResponse;
36
+ /**
37
+ * Registers some event listeners the first time this component is rendered.
38
+ */
24
39
  React.useEffect(() => {
25
40
  document.body.addEventListener("keydown", handleKeyDown);
26
41
  document.body.className = `${document.body.className} dialog`;
@@ -1 +1 @@
1
- {"version":3,"file":"FinsembleDialog.js","sourceRoot":"","sources":["../../../src/components/legacyControls/FinsembleDialog.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAcnC,MAAM,CAAC,MAAM,eAAe,GAAkD,CAAC,KAAU,EAAE,EAAE;IAC5F,IAAI,EAAE,gBAAgB,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAEhF,MAAM,aAAa,GAAG,CAAC,CAAgB,EAAE,EAAE;QAK1C,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,KAAK,IAAI,EAAE;YAC5E,eAAe,CAAC,IAAI,EAAE,CAAC;SACvB;IACF,CAAC,CAAC;IAEF,eAAe,CAAC,cAAc,CAAC;QAC9B,WAAW,EAAE,IAAI;KACjB,CAAC,CAAC;IAEH,IAAI,OAAO,eAAe,KAAK,WAAW,EAAE;QAC3C,MAAM,IAAI,KAAK,CACd,oHAAoH,CACpH,CAAC;KACF;IAMD,IAAI,OAAO,gBAAgB,KAAK,WAAW,EAAE;QAC5C,gBAAgB,GAAG,KAAK,CAAC;KACzB;IAED,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAM/D,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACpB,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACzD,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC;QAE9D,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC;QAEnE,IAAI,OAAO,EAAE;YACZ,eAAe,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YAChF,eAAe,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;SACjF;QAED,OAAO,GAAG,EAAE;YACX,IAAI,OAAO,EAAE;gBACZ,eAAe,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gBACnF,eAAe,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;aACpF;QACF,CAAC,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,OAAO,GAAG,GAAG,SAAS,IAAI,iBAAiB,EAAE,CAAC;IACpD,OAAO,6BAAK,SAAS,EAAE,OAAO,IAAG,QAAQ,CAAO,CAAC;AAClD,CAAC,CAAC","sourcesContent":["/*!\n * Copyright 2017 by ChartIQ, Inc.\n * All rights reserved.\n */\n\nimport * as React from \"react\";\nconst DIALOG_BASE_CLASS = \"dialog\";\nexport type FinsembleDialogProps = {\n\tbehaviorOnResponse?: \"close\" | \"hide\";\n\tuserInputTimeout?: number;\n\tonShowRequested?: (err: any, response: any) => void;\n\tisModal: boolean;\n\tclassName?: string;\n\tchildren?: any;\n};\n\n/**\n * This is a component that adds some baked in behavior that is common accross several\n * of the finsemble dialogs. Hiding/closing on blur, timing out, etc.\n */\nexport const FinsembleDialog: React.FunctionComponent<FinsembleDialogProps> = (props: any) => {\n\tlet { userInputTimeout, onShowRequested, isModal, className, children } = props;\n\n\tconst handleKeyDown = (e: KeyboardEvent) => {\n\t\t// If the user hits escape then hide the window\n\t\t// openerMessage won't be null if data is in transit to the originating window, in which\n\t\t// case we bypass the hide() -- this is some sort of race condition from a long time ago\n\t\t// that is not fully understood\n\t\tif (e.key === \"Escape\" && FSBL.Clients.DialogManager.openerMessage === null) {\n\t\t\tfinsembleWindow.hide();\n\t\t}\n\t};\n\n\tfinsembleWindow.setAlwaysOnTop({\n\t\talwaysOnTop: true,\n\t});\n\n\tif (typeof onShowRequested === \"undefined\") {\n\t\tthrow new Error(\n\t\t\t\"No onShowRequested passed to FinsembleDialog. Pass onShowRequested as a property to the FinsembleDialog component.\"\n\t\t);\n\t}\n\n\t/*if (typeof behaviorOnResponse === \"undefined\") {\n\t\tbehaviorOnResponse = \"hide\";\n\t}*/\n\n\tif (typeof userInputTimeout === \"undefined\") {\n\t\tuserInputTimeout = 10000;\n\t}\n\n\tFSBL.Clients.DialogManager.userInputTimeout = userInputTimeout;\n\t//FSBL.Clients.DialogManager.behaviorOnResponse = behaviorOnResponse;\n\n\t/**\n\t * Registers some event listeners the first time this component is rendered.\n\t */\n\tReact.useEffect(() => {\n\t\tdocument.body.addEventListener(\"keydown\", handleKeyDown);\n\t\tdocument.body.className = `${document.body.className} dialog`;\n\n\t\tFSBL.Clients.DialogManager.registerDialogCallback(onShowRequested);\n\n\t\tif (isModal) {\n\t\t\tfinsembleWindow.addEventListener(\"shown\", FSBL.Clients.DialogManager.showModal);\n\t\t\tfinsembleWindow.addEventListener(\"hidden\", FSBL.Clients.DialogManager.hideModal);\n\t\t}\n\n\t\treturn () => {\n\t\t\tif (isModal) {\n\t\t\t\tfinsembleWindow.removeEventListener(\"shown\", FSBL.Clients.DialogManager.showModal);\n\t\t\t\tfinsembleWindow.removeEventListener(\"hidden\", FSBL.Clients.DialogManager.hideModal);\n\t\t\t}\n\t\t};\n\t}, []);\n\n\tconst classes = `${className} ${DIALOG_BASE_CLASS}`;\n\treturn <div className={classes}>{children}</div>;\n};\n"]}
1
+ {"version":3,"file":"FinsembleDialog.js","sourceRoot":"","sources":["../../../src/components/legacyControls/FinsembleDialog.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAUnC;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAkD,CAAC,KAAU,EAAE,EAAE;IAC5F,IAAI,EAAE,gBAAgB,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAEhF,MAAM,aAAa,GAAG,CAAC,CAAgB,EAAE,EAAE;QAC1C,+CAA+C;QAC/C,wFAAwF;QACxF,wFAAwF;QACxF,+BAA+B;QAC/B,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,KAAK,IAAI,EAAE;YAC5E,eAAe,CAAC,IAAI,EAAE,CAAC;SACvB;IACF,CAAC,CAAC;IAEF,eAAe,CAAC,cAAc,CAAC;QAC9B,WAAW,EAAE,IAAI;KACjB,CAAC,CAAC;IAEH,IAAI,OAAO,eAAe,KAAK,WAAW,EAAE;QAC3C,MAAM,IAAI,KAAK,CACd,oHAAoH,CACpH,CAAC;KACF;IAED;;OAEG;IAEH,IAAI,OAAO,gBAAgB,KAAK,WAAW,EAAE;QAC5C,gBAAgB,GAAG,KAAK,CAAC;KACzB;IAED,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAC/D,qEAAqE;IAErE;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACpB,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACzD,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC;QAE9D,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC;QAEnE,IAAI,OAAO,EAAE;YACZ,eAAe,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YAChF,eAAe,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;SACjF;QAED,OAAO,GAAG,EAAE;YACX,IAAI,OAAO,EAAE;gBACZ,eAAe,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gBACnF,eAAe,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;aACpF;QACF,CAAC,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,OAAO,GAAG,GAAG,SAAS,IAAI,iBAAiB,EAAE,CAAC;IACpD,OAAO,6BAAK,SAAS,EAAE,OAAO,IAAG,QAAQ,CAAO,CAAC;AAClD,CAAC,CAAC","sourcesContent":["/*!\n * Copyright 2017 by ChartIQ, Inc.\n * All rights reserved.\n */\n\nimport * as React from \"react\";\nconst DIALOG_BASE_CLASS = \"dialog\";\nexport type FinsembleDialogProps = {\n\tbehaviorOnResponse?: \"close\" | \"hide\";\n\tuserInputTimeout?: number;\n\tonShowRequested?: (err: any, response: any) => void;\n\tisModal: boolean;\n\tclassName?: string;\n\tchildren?: any;\n};\n\n/**\n * This is a component that adds some baked in behavior that is common accross several\n * of the finsemble dialogs. Hiding/closing on blur, timing out, etc.\n */\nexport const FinsembleDialog: React.FunctionComponent<FinsembleDialogProps> = (props: any) => {\n\tlet { userInputTimeout, onShowRequested, isModal, className, children } = props;\n\n\tconst handleKeyDown = (e: KeyboardEvent) => {\n\t\t// If the user hits escape then hide the window\n\t\t// openerMessage won't be null if data is in transit to the originating window, in which\n\t\t// case we bypass the hide() -- this is some sort of race condition from a long time ago\n\t\t// that is not fully understood\n\t\tif (e.key === \"Escape\" && FSBL.Clients.DialogManager.openerMessage === null) {\n\t\t\tfinsembleWindow.hide();\n\t\t}\n\t};\n\n\tfinsembleWindow.setAlwaysOnTop({\n\t\talwaysOnTop: true,\n\t});\n\n\tif (typeof onShowRequested === \"undefined\") {\n\t\tthrow new Error(\n\t\t\t\"No onShowRequested passed to FinsembleDialog. Pass onShowRequested as a property to the FinsembleDialog component.\"\n\t\t);\n\t}\n\n\t/*if (typeof behaviorOnResponse === \"undefined\") {\n\t\tbehaviorOnResponse = \"hide\";\n\t}*/\n\n\tif (typeof userInputTimeout === \"undefined\") {\n\t\tuserInputTimeout = 10000;\n\t}\n\n\tFSBL.Clients.DialogManager.userInputTimeout = userInputTimeout;\n\t//FSBL.Clients.DialogManager.behaviorOnResponse = behaviorOnResponse;\n\n\t/**\n\t * Registers some event listeners the first time this component is rendered.\n\t */\n\tReact.useEffect(() => {\n\t\tdocument.body.addEventListener(\"keydown\", handleKeyDown);\n\t\tdocument.body.className = `${document.body.className} dialog`;\n\n\t\tFSBL.Clients.DialogManager.registerDialogCallback(onShowRequested);\n\n\t\tif (isModal) {\n\t\t\tfinsembleWindow.addEventListener(\"shown\", FSBL.Clients.DialogManager.showModal);\n\t\t\tfinsembleWindow.addEventListener(\"hidden\", FSBL.Clients.DialogManager.hideModal);\n\t\t}\n\n\t\treturn () => {\n\t\t\tif (isModal) {\n\t\t\t\tfinsembleWindow.removeEventListener(\"shown\", FSBL.Clients.DialogManager.showModal);\n\t\t\t\tfinsembleWindow.removeEventListener(\"hidden\", FSBL.Clients.DialogManager.hideModal);\n\t\t\t}\n\t\t};\n\t}, []);\n\n\tconst classes = `${className} ${DIALOG_BASE_CLASS}`;\n\treturn <div className={classes}>{children}</div>;\n};\n"]}
@@ -9,4 +9,7 @@ export declare type FinsembleDialogButtonProps = {
9
9
  show?: boolean;
10
10
  onClick?: Function;
11
11
  };
12
+ /**
13
+ * Button that is rendered on a dialog.
14
+ */
12
15
  export declare const FinsembleDialogButton: React.FunctionComponent<FinsembleDialogButtonProps>;
@@ -3,9 +3,14 @@
3
3
  * All rights reserved.
4
4
  */
5
5
  import * as React from "react";
6
+ /**
7
+ * Button that is rendered on a dialog.
8
+ */
6
9
  export const FinsembleDialogButton = (props) => {
10
+ // Default size is medium.
7
11
  var _a, _b;
8
- const size = (_a = props.buttonSize) !== null && _a !== void 0 ? _a : "md";
12
+ // [Julianna Langston, 2021-04-19] I don't think this is being used, since the css class `fsbl-button-md` doesn't exist anywhere. Candidate for removal, along with associated prop.
13
+ const size = (_a = props.buttonSize) !== null && _a !== void 0 ? _a : "md"; // `fsbl-button-md` css doesn't exist anywhere?
9
14
  const classes = `fsbl-button fsbl-button-${size} ${(_b = props.className) !== null && _b !== void 0 ? _b : ""}`;
10
15
  return props.show !== false ? (React.createElement("div", { className: classes, onClick: props.onClick }, props.children)) : null;
11
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"FinsembleDialogButton.js","sourceRoot":"","sources":["../../../src/components/legacyControls/FinsembleDialogButton.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,MAAM,CAAC,MAAM,qBAAqB,GAAwD,CAAC,KAAU,EAAE,EAAE;;IAIxG,MAAM,IAAI,GAAG,MAAA,KAAK,CAAC,UAAU,mCAAI,IAAI,CAAC;IACtC,MAAM,OAAO,GAAG,2BAA2B,IAAI,IAAI,MAAA,KAAK,CAAC,SAAS,mCAAI,EAAE,EAAE,CAAC;IAC3E,OAAO,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAC7B,6BAAK,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,IAC7C,KAAK,CAAC,QAAQ,CACV,CACN,CAAC,CAAC,CAAC,IAAI,CAAC;AACV,CAAC,CAAC","sourcesContent":["/*!\n * Copyright 2017 by ChartIQ, Inc.\n * All rights reserved.\n */\n\nimport * as React from \"react\";\n\nexport type FinsembleDialogButtonProps = {\n\tbuttonSize?: string;\n\tclassName?: string;\n\tshow?: boolean;\n\tonClick?: Function;\n};\n\n/**\n * Button that is rendered on a dialog.\n */\nexport const FinsembleDialogButton: React.FunctionComponent<FinsembleDialogButtonProps> = (props: any) => {\n\t// Default size is medium.\n\n\t// [Julianna Langston, 2021-04-19] I don't think this is being used, since the css class `fsbl-button-md` doesn't exist anywhere. Candidate for removal, along with associated prop.\n\tconst size = props.buttonSize ?? \"md\"; // `fsbl-button-md` css doesn't exist anywhere?\n\tconst classes = `fsbl-button fsbl-button-${size} ${props.className ?? \"\"}`;\n\treturn props.show !== false ? (\n\t\t<div className={classes} onClick={props.onClick}>\n\t\t\t{props.children}\n\t\t</div>\n\t) : null;\n};\n"]}
1
+ {"version":3,"file":"FinsembleDialogButton.js","sourceRoot":"","sources":["../../../src/components/legacyControls/FinsembleDialogButton.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAwD,CAAC,KAAU,EAAE,EAAE;IACxG,0BAA0B;;IAE1B,oLAAoL;IACpL,MAAM,IAAI,GAAG,MAAA,KAAK,CAAC,UAAU,mCAAI,IAAI,CAAC,CAAC,+CAA+C;IACtF,MAAM,OAAO,GAAG,2BAA2B,IAAI,IAAI,MAAA,KAAK,CAAC,SAAS,mCAAI,EAAE,EAAE,CAAC;IAC3E,OAAO,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAC7B,6BAAK,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,IAC7C,KAAK,CAAC,QAAQ,CACV,CACN,CAAC,CAAC,CAAC,IAAI,CAAC;AACV,CAAC,CAAC","sourcesContent":["/*!\n * Copyright 2017 by ChartIQ, Inc.\n * All rights reserved.\n */\n\nimport * as React from \"react\";\n\nexport type FinsembleDialogButtonProps = {\n\tbuttonSize?: string;\n\tclassName?: string;\n\tshow?: boolean;\n\tonClick?: Function;\n};\n\n/**\n * Button that is rendered on a dialog.\n */\nexport const FinsembleDialogButton: React.FunctionComponent<FinsembleDialogButtonProps> = (props: any) => {\n\t// Default size is medium.\n\n\t// [Julianna Langston, 2021-04-19] I don't think this is being used, since the css class `fsbl-button-md` doesn't exist anywhere. Candidate for removal, along with associated prop.\n\tconst size = props.buttonSize ?? \"md\"; // `fsbl-button-md` css doesn't exist anywhere?\n\tconst classes = `fsbl-button fsbl-button-${size} ${props.className ?? \"\"}`;\n\treturn props.show !== false ? (\n\t\t<div className={classes} onClick={props.onClick}>\n\t\t\t{props.children}\n\t\t</div>\n\t) : null;\n};\n"]}
@@ -1,6 +1,13 @@
1
+ /*!
2
+ * Copyright 2017 by ChartIQ, Inc.
3
+ * All rights reserved.
4
+ */
1
5
  import * as React from "react";
2
6
  export declare type FinsembleDialogQuestionProps = {
3
7
  className?: string;
4
8
  question?: string;
5
9
  };
10
+ /**
11
+ * This component is essentially just a component that adds classes so the styling looks good on dialogs.
12
+ */
6
13
  export declare const FinsembleDialogQuestion: React.FunctionComponent<FinsembleDialogQuestionProps>;
@@ -1,5 +1,12 @@
1
+ /*!
2
+ * Copyright 2017 by ChartIQ, Inc.
3
+ * All rights reserved.
4
+ */
1
5
  import * as React from "react";
2
6
  const DIALOG_QUESTION_BASE_CLASS = "dialog-question";
7
+ /**
8
+ * This component is essentially just a component that adds classes so the styling looks good on dialogs.
9
+ */
3
10
  export const FinsembleDialogQuestion = (props) => {
4
11
  var _a;
5
12
  const classes = `${(_a = props.className) !== null && _a !== void 0 ? _a : ""} ${DIALOG_QUESTION_BASE_CLASS}`;
@@ -1 +1 @@
1
- {"version":3,"file":"FinsembleDialogQuestion.js","sourceRoot":"","sources":["../../../src/components/legacyControls/FinsembleDialogQuestion.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,MAAM,0BAA0B,GAAG,iBAAiB,CAAC;AAUrD,MAAM,CAAC,MAAM,uBAAuB,GAA0D,CAAC,KAAU,EAAE,EAAE;;IAC5G,MAAM,OAAO,GAAG,GAAG,MAAA,KAAK,CAAC,SAAS,mCAAI,EAAE,IAAI,0BAA0B,EAAE,CAAC;IACzE,OAAO,CACN,6BAAK,SAAS,EAAE,OAAO;QACrB,KAAK,CAAC,QAAQ;QACd,KAAK,CAAC,QAAQ,CACV,CACN,CAAC;AACH,CAAC,CAAC","sourcesContent":["/*!\n * Copyright 2017 by ChartIQ, Inc.\n * All rights reserved.\n */\nimport * as React from \"react\";\nconst DIALOG_QUESTION_BASE_CLASS = \"dialog-question\";\n\nexport type FinsembleDialogQuestionProps = {\n\tclassName?: string;\n\tquestion?: string;\n};\n\n/**\n * This component is essentially just a component that adds classes so the styling looks good on dialogs.\n */\nexport const FinsembleDialogQuestion: React.FunctionComponent<FinsembleDialogQuestionProps> = (props: any) => {\n\tconst classes = `${props.className ?? \"\"} ${DIALOG_QUESTION_BASE_CLASS}`;\n\treturn (\n\t\t<div className={classes}>\n\t\t\t{props.question}\n\t\t\t{props.children}\n\t\t</div>\n\t);\n};\n"]}
1
+ {"version":3,"file":"FinsembleDialogQuestion.js","sourceRoot":"","sources":["../../../src/components/legacyControls/FinsembleDialogQuestion.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,MAAM,0BAA0B,GAAG,iBAAiB,CAAC;AAOrD;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAA0D,CAAC,KAAU,EAAE,EAAE;;IAC5G,MAAM,OAAO,GAAG,GAAG,MAAA,KAAK,CAAC,SAAS,mCAAI,EAAE,IAAI,0BAA0B,EAAE,CAAC;IACzE,OAAO,CACN,6BAAK,SAAS,EAAE,OAAO;QACrB,KAAK,CAAC,QAAQ;QACd,KAAK,CAAC,QAAQ,CACV,CACN,CAAC;AACH,CAAC,CAAC","sourcesContent":["/*!\n * Copyright 2017 by ChartIQ, Inc.\n * All rights reserved.\n */\nimport * as React from \"react\";\nconst DIALOG_QUESTION_BASE_CLASS = \"dialog-question\";\n\nexport type FinsembleDialogQuestionProps = {\n\tclassName?: string;\n\tquestion?: string;\n};\n\n/**\n * This component is essentially just a component that adds classes so the styling looks good on dialogs.\n */\nexport const FinsembleDialogQuestion: React.FunctionComponent<FinsembleDialogQuestionProps> = (props: any) => {\n\tconst classes = `${props.className ?? \"\"} ${DIALOG_QUESTION_BASE_CLASS}`;\n\treturn (\n\t\t<div className={classes}>\n\t\t\t{props.question}\n\t\t\t{props.children}\n\t\t</div>\n\t);\n};\n"]}
@@ -14,4 +14,7 @@ export declare type FinsembleDialogTextInputProps = {
14
14
  onInputChange: React.ChangeEventHandler;
15
15
  inputPattern?: string;
16
16
  };
17
+ /**
18
+ * A big text field that's shown on dialogs.
19
+ */
17
20
  export declare const FinsembleDialogTextInput: React.FunctionComponent<FinsembleDialogTextInputProps>;
@@ -4,16 +4,25 @@
4
4
  */
5
5
  import * as React from "react";
6
6
  const DIALOG_INPUT_BASE_CLASS = "dialog-input";
7
+ /**
8
+ * A big text field that's shown on dialogs.
9
+ */
7
10
  export const FinsembleDialogTextInput = (props) => {
8
11
  var _a, _b, _c;
9
12
  const [textValue, setTextValue] = React.useState((_a = props.value) !== null && _a !== void 0 ? _a : "");
10
13
  const textInput = React.useRef(null);
11
14
  const inputPatternRegEx = props.inputPattern ? new RegExp(props.inputPattern) : undefined;
15
+ /**
16
+ * Focuses the input field.
17
+ */
12
18
  const focusInput = () => {
13
19
  var _a;
14
20
  if ((_a = textInput === null || textInput === void 0 ? void 0 : textInput.current) === null || _a === void 0 ? void 0 : _a.focus)
15
21
  textInput.current.focus();
16
22
  };
23
+ /**
24
+ * Listens for the shown event so it can focus the input.
25
+ */
17
26
  React.useEffect(() => {
18
27
  if (props.focusOnShow) {
19
28
  finsembleWindow.addEventListener("shown", focusInput);
@@ -32,6 +41,11 @@ export const FinsembleDialogTextInput = (props) => {
32
41
  }, [props.value]);
33
42
  const placeholder = (_b = props.placeholder) !== null && _b !== void 0 ? _b : "";
34
43
  const classes = `${(_c = props.className) !== null && _c !== void 0 ? _c : ""} ${DIALOG_INPUT_BASE_CLASS}`;
44
+ /**
45
+ * If the input is a match for the props.inputPattern regular expression, then pass on the change
46
+ *
47
+ * @param {React.ChangeEvent<HTMLInputElement>} e
48
+ */
35
49
  const changeEvent = (e) => {
36
50
  if (inputPatternRegEx === undefined || e.target.value.match(inputPatternRegEx)) {
37
51
  props.onInputChange(e);
@@ -1 +1 @@
1
- {"version":3,"file":"FinsembleDialogTextInput.js","sourceRoot":"","sources":["../../../src/components/legacyControls/FinsembleDialogTextInput.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,MAAM,uBAAuB,GAAG,cAAc,CAAC;AAiB/C,MAAM,CAAC,MAAM,wBAAwB,GAA2D,CAAC,KAAK,EAAE,EAAE;;IACzG,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAS,MAAA,KAAK,CAAC,KAAK,mCAAI,EAAE,CAAC,CAAC;IAC5E,MAAM,SAAS,GAAgC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClE,MAAM,iBAAiB,GAAuB,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAI9G,MAAM,UAAU,GAAG,GAAG,EAAE;;QACvB,IAAI,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,0CAAE,KAAK;YAAE,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC1D,CAAC,CAAC;IAKF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACpB,IAAI,KAAK,CAAC,WAAW,EAAE;YACtB,eAAe,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;SACtD;QACD,OAAO,GAAG,EAAE;YACX,IAAI,KAAK,CAAC,WAAW,EAAE;gBACtB,eAAe,CAAC,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;aACzD;QACF,CAAC,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IAExB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;;QACpB,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE;YAC9B,YAAY,CAAC,MAAA,KAAK,CAAC,KAAK,mCAAI,EAAE,CAAC,CAAC;SAChC;IACF,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAElB,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,WAAW,mCAAI,EAAE,CAAC;IAC5C,MAAM,OAAO,GAAG,GAAG,MAAA,KAAK,CAAC,SAAS,mCAAI,EAAE,IAAI,uBAAuB,EAAE,CAAC;IAOtE,MAAM,WAAW,GAAG,CAAC,CAAsC,EAAE,EAAE;QAC9D,IAAI,iBAAiB,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE;YAC/E,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACvB,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAC7B;aAAM;YACN,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAC/B,oCAAoC,CAAC,CAAC,MAAM,CAAC,KAAK,iDAAiD,KAAK,CAAC,YAAY,GAAG,CACxH,CAAC;SACF;IACF,CAAC,CAAC;IAEF,OAAO,CACN,6BAAK,SAAS,EAAE,OAAO;QACtB,+BAAO,OAAO,EAAC,cAAc,IAAE,KAAK,CAAC,UAAU,IAAI,EAAE,CAAS;QAC9D,6BAAK,SAAS,EAAC,YAAY;YAC1B,+BACC,EAAE,EAAC,cAAc,EACjB,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,IAAI,EAAC,MAAM,EACX,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,QAAQ,EAAE,WAAW,EACrB,WAAW,EAAE,WAAW,EACxB,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,SAAS,GACf,CACG;QACL,KAAK,CAAC,QAAQ,CACV,CACN,CAAC;AACH,CAAC,CAAC","sourcesContent":["/*!\n * Copyright 2017 by ChartIQ, Inc.\n * All rights reserved.\n */\n\nimport * as React from \"react\";\nconst DIALOG_INPUT_BASE_CLASS = \"dialog-input\";\n\nexport type FinsembleDialogTextInputProps = {\n\tclassName?: string;\n\tmaxLength?: number;\n\tplaceholder?: string;\n\tautoFocus?: boolean;\n\tfocusOnShow?: boolean;\n\tinputLabel?: string;\n\tvalue?: string;\n\tonInputChange: React.ChangeEventHandler;\n\tinputPattern?: string;\n};\n\n/**\n * A big text field that's shown on dialogs.\n */\nexport const FinsembleDialogTextInput: React.FunctionComponent<FinsembleDialogTextInputProps> = (props) => {\n\tconst [textValue, setTextValue] = React.useState<string>(props.value ?? \"\");\n\tconst textInput: React.Ref<HTMLInputElement> = React.useRef(null);\n\tconst inputPatternRegEx: RegExp | undefined = props.inputPattern ? new RegExp(props.inputPattern) : undefined;\n\t/**\n\t * Focuses the input field.\n\t */\n\tconst focusInput = () => {\n\t\tif (textInput?.current?.focus) textInput.current.focus();\n\t};\n\n\t/**\n\t * Listens for the shown event so it can focus the input.\n\t */\n\tReact.useEffect(() => {\n\t\tif (props.focusOnShow) {\n\t\t\tfinsembleWindow.addEventListener(\"shown\", focusInput);\n\t\t}\n\t\treturn () => {\n\t\t\tif (props.focusOnShow) {\n\t\t\t\tfinsembleWindow.removeEventListener(\"shown\", focusInput);\n\t\t\t}\n\t\t};\n\t}, [props.focusOnShow]);\n\n\tReact.useEffect(() => {\n\t\tif (props.value !== textValue) {\n\t\t\tsetTextValue(props.value ?? \"\");\n\t\t}\n\t}, [props.value]);\n\n\tconst placeholder = props.placeholder ?? \"\";\n\tconst classes = `${props.className ?? \"\"} ${DIALOG_INPUT_BASE_CLASS}`;\n\n\t/**\n\t * If the input is a match for the props.inputPattern regular expression, then pass on the change\n\t *\n\t * @param {React.ChangeEvent<HTMLInputElement>} e\n\t */\n\tconst changeEvent = (e: React.ChangeEvent<HTMLInputElement>) => {\n\t\tif (inputPatternRegEx === undefined || e.target.value.match(inputPatternRegEx)) {\n\t\t\tprops.onInputChange(e);\n\t\t\tsetTextValue(e.target.value);\n\t\t} else {\n\t\t\tFSBL.Clients.Logger.system.debug(\n\t\t\t\t`FinsembleDialogTextInput: input '${e.target.value}' failed to match against props.inputPattern '${props.inputPattern}'`\n\t\t\t);\n\t\t}\n\t};\n\n\treturn (\n\t\t<div className={classes}>\n\t\t\t<label htmlFor=\"single-input\">{props.inputLabel || \"\"}</label>\n\t\t\t<div className=\"form-group\">\n\t\t\t\t<input\n\t\t\t\t\tid=\"single-input\"\n\t\t\t\t\tautoFocus={props.autoFocus}\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tmaxLength={props.maxLength}\n\t\t\t\t\tonChange={changeEvent}\n\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\tref={textInput}\n\t\t\t\t\tvalue={textValue}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t{props.children}\n\t\t</div>\n\t);\n};\n"]}
1
+ {"version":3,"file":"FinsembleDialogTextInput.js","sourceRoot":"","sources":["../../../src/components/legacyControls/FinsembleDialogTextInput.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,MAAM,uBAAuB,GAAG,cAAc,CAAC;AAc/C;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAA2D,CAAC,KAAK,EAAE,EAAE;;IACzG,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAS,MAAA,KAAK,CAAC,KAAK,mCAAI,EAAE,CAAC,CAAC;IAC5E,MAAM,SAAS,GAAgC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClE,MAAM,iBAAiB,GAAuB,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9G;;OAEG;IACH,MAAM,UAAU,GAAG,GAAG,EAAE;;QACvB,IAAI,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,0CAAE,KAAK;YAAE,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC1D,CAAC,CAAC;IAEF;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACpB,IAAI,KAAK,CAAC,WAAW,EAAE;YACtB,eAAe,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;SACtD;QACD,OAAO,GAAG,EAAE;YACX,IAAI,KAAK,CAAC,WAAW,EAAE;gBACtB,eAAe,CAAC,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;aACzD;QACF,CAAC,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IAExB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;;QACpB,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE;YAC9B,YAAY,CAAC,MAAA,KAAK,CAAC,KAAK,mCAAI,EAAE,CAAC,CAAC;SAChC;IACF,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAElB,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,WAAW,mCAAI,EAAE,CAAC;IAC5C,MAAM,OAAO,GAAG,GAAG,MAAA,KAAK,CAAC,SAAS,mCAAI,EAAE,IAAI,uBAAuB,EAAE,CAAC;IAEtE;;;;OAIG;IACH,MAAM,WAAW,GAAG,CAAC,CAAsC,EAAE,EAAE;QAC9D,IAAI,iBAAiB,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE;YAC/E,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACvB,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAC7B;aAAM;YACN,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAC/B,oCAAoC,CAAC,CAAC,MAAM,CAAC,KAAK,iDAAiD,KAAK,CAAC,YAAY,GAAG,CACxH,CAAC;SACF;IACF,CAAC,CAAC;IAEF,OAAO,CACN,6BAAK,SAAS,EAAE,OAAO;QACtB,+BAAO,OAAO,EAAC,cAAc,IAAE,KAAK,CAAC,UAAU,IAAI,EAAE,CAAS;QAC9D,6BAAK,SAAS,EAAC,YAAY;YAC1B,+BACC,EAAE,EAAC,cAAc,EACjB,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,IAAI,EAAC,MAAM,EACX,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,QAAQ,EAAE,WAAW,EACrB,WAAW,EAAE,WAAW,EACxB,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,SAAS,GACf,CACG;QACL,KAAK,CAAC,QAAQ,CACV,CACN,CAAC;AACH,CAAC,CAAC","sourcesContent":["/*!\n * Copyright 2017 by ChartIQ, Inc.\n * All rights reserved.\n */\n\nimport * as React from \"react\";\nconst DIALOG_INPUT_BASE_CLASS = \"dialog-input\";\n\nexport type FinsembleDialogTextInputProps = {\n\tclassName?: string;\n\tmaxLength?: number;\n\tplaceholder?: string;\n\tautoFocus?: boolean;\n\tfocusOnShow?: boolean;\n\tinputLabel?: string;\n\tvalue?: string;\n\tonInputChange: React.ChangeEventHandler;\n\tinputPattern?: string;\n};\n\n/**\n * A big text field that's shown on dialogs.\n */\nexport const FinsembleDialogTextInput: React.FunctionComponent<FinsembleDialogTextInputProps> = (props) => {\n\tconst [textValue, setTextValue] = React.useState<string>(props.value ?? \"\");\n\tconst textInput: React.Ref<HTMLInputElement> = React.useRef(null);\n\tconst inputPatternRegEx: RegExp | undefined = props.inputPattern ? new RegExp(props.inputPattern) : undefined;\n\t/**\n\t * Focuses the input field.\n\t */\n\tconst focusInput = () => {\n\t\tif (textInput?.current?.focus) textInput.current.focus();\n\t};\n\n\t/**\n\t * Listens for the shown event so it can focus the input.\n\t */\n\tReact.useEffect(() => {\n\t\tif (props.focusOnShow) {\n\t\t\tfinsembleWindow.addEventListener(\"shown\", focusInput);\n\t\t}\n\t\treturn () => {\n\t\t\tif (props.focusOnShow) {\n\t\t\t\tfinsembleWindow.removeEventListener(\"shown\", focusInput);\n\t\t\t}\n\t\t};\n\t}, [props.focusOnShow]);\n\n\tReact.useEffect(() => {\n\t\tif (props.value !== textValue) {\n\t\t\tsetTextValue(props.value ?? \"\");\n\t\t}\n\t}, [props.value]);\n\n\tconst placeholder = props.placeholder ?? \"\";\n\tconst classes = `${props.className ?? \"\"} ${DIALOG_INPUT_BASE_CLASS}`;\n\n\t/**\n\t * If the input is a match for the props.inputPattern regular expression, then pass on the change\n\t *\n\t * @param {React.ChangeEvent<HTMLInputElement>} e\n\t */\n\tconst changeEvent = (e: React.ChangeEvent<HTMLInputElement>) => {\n\t\tif (inputPatternRegEx === undefined || e.target.value.match(inputPatternRegEx)) {\n\t\t\tprops.onInputChange(e);\n\t\t\tsetTextValue(e.target.value);\n\t\t} else {\n\t\t\tFSBL.Clients.Logger.system.debug(\n\t\t\t\t`FinsembleDialogTextInput: input '${e.target.value}' failed to match against props.inputPattern '${props.inputPattern}'`\n\t\t\t);\n\t\t}\n\t};\n\n\treturn (\n\t\t<div className={classes}>\n\t\t\t<label htmlFor=\"single-input\">{props.inputLabel || \"\"}</label>\n\t\t\t<div className=\"form-group\">\n\t\t\t\t<input\n\t\t\t\t\tid=\"single-input\"\n\t\t\t\t\tautoFocus={props.autoFocus}\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tmaxLength={props.maxLength}\n\t\t\t\t\tonChange={changeEvent}\n\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\tref={textInput}\n\t\t\t\t\tvalue={textValue}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t{props.children}\n\t\t</div>\n\t);\n};\n"]}
@@ -22,5 +22,24 @@ declare type FinsembleDnDContextProps = {
22
22
  className?: string;
23
23
  metadata?: Record<string, any> | undefined;
24
24
  };
25
+ /**
26
+ * The FinsembleDnDContext allows for all of the Draggable and Droppable components to work.
27
+ * It wraps its children and allows them to do draggy and droppy things.
28
+ * It also allows for horizontal containers to provide scrolling functionality.
29
+ * @param props
30
+ * @param props.id ID for the container that wraps the sortable container
31
+ * @param props.allowHorizontalScroll whether the DND context should allow for horizontal scrolling
32
+ * @param props.showScrollButtonsTooltip
33
+ * @param props.leftButtonTooltip Tooltip for left scroll button
34
+ * @param props.rightButtonTooltip Tooltip for right scroll button
35
+ * @param props.chevronScrollDistance how far clicking the chevrons should push the content forward or backwards
36
+ * @param props.onDragEnd handler for sorting
37
+ * @param props.onDragBegin handler for sorting
38
+ * @param props.onDragOver
39
+ * @param props.onLayoutUpdate handler for rendering. Invokes on useLayoutEffect
40
+ * @param props.distance how far the user has to drag an element to trigger sorting behavior
41
+ * @param props.axis whether to sort vertically or horizontally.
42
+ * @param props.className optional styles to pass the the sortable container
43
+ */
25
44
  export declare const FinsembleDnDContext: React.FunctionComponent<FinsembleDnDContextProps>;
26
45
  export {};
@@ -27,12 +27,25 @@ const DEFAULT_CONTAINER_MEASUREMENTS = {
27
27
  offsetWidth: 0,
28
28
  };
29
29
  const DEFAULT_CHEVRON_SCROLL_DISTANCE = 60;
30
+ /**
31
+ * Listens for resize events on the DOM and changes whether we should render the scrolling chevrons.
32
+ * @param overflowStateSetter
33
+ */
30
34
  const addResizeHandler = (overflowStateSetter) => () => {
31
35
  window.addEventListener("resize", overflowStateSetter);
32
36
  return () => {
33
37
  window.removeEventListener("resize", overflowStateSetter);
34
38
  };
35
39
  };
40
+ /**
41
+ * Scrolls forward or back
42
+ * @param containerRef
43
+ * @param distance How far to move
44
+ * @param state Current scroll state
45
+ * @param stateSetters Scroll state setters
46
+ * @param scrollDir Whether we're scrolling forward or backwards
47
+ * @param deltaY The scroll amount that came from the `wheel` event.
48
+ */
36
49
  const scrollHorizontally = (distance, state, stateSetters, scrollDir, deltaY) => {
37
50
  const { setScrollLeft } = stateSetters;
38
51
  const { containerScrollLeft, containerMeasurements } = state;
@@ -47,15 +60,20 @@ const scrollHorizontally = (distance, state, stateSetters, scrollDir, deltaY) =>
47
60
  delta = Math.max(-1, Math.min(1, scrollDir));
48
61
  }
49
62
  let fakeItemWidth = 0;
63
+ // advance the scroll position 40 px forward or back, depending on the mouse wheel direction.
64
+ // eslint-disable-next-line no-mixed-operators
50
65
  let newScrollLeft = containerScrollLeft - delta * distance;
51
66
  if (scrollAmount >= distance) {
52
67
  return fakeItemWidth;
53
68
  }
69
+ // See the links inside of the main body of FinsembleDnDContext if offsetLeft/Width are unfamiliar to you
54
70
  const rightEdgeOfScrollingViewport = containerMeasurements.offsetLeft + containerMeasurements.offsetWidth + newScrollLeft;
55
71
  const rightMostEdgeOfScrollingArea = containerMeasurements.offsetLeft + containerMeasurements.scrollWidth;
72
+ // if we've scrolled beyond the right-most edge of the area, calculate the fake item width
56
73
  if (rightEdgeOfScrollingViewport > rightMostEdgeOfScrollingArea) {
57
74
  fakeItemWidth = newScrollLeft - (containerMeasurements.scrollWidth - containerMeasurements.clientWidth);
58
75
  }
76
+ // if we've scrolled past the left-most area, set the scrollLeft to the leftMost edge of the region.
59
77
  if (newScrollLeft < 0)
60
78
  newScrollLeft = 0;
61
79
  if (newScrollLeft !== containerScrollLeft) {
@@ -63,6 +81,10 @@ const scrollHorizontally = (distance, state, stateSetters, scrollDir, deltaY) =>
63
81
  }
64
82
  return fakeItemWidth;
65
83
  };
84
+ /**
85
+ * Simple component that renders the left and right chevrons.
86
+ * @param props
87
+ */
66
88
  const ScrollingChevron = (props) => {
67
89
  const { isDisabled, chevronDirection, showToolTip, title, scrollFunction } = props;
68
90
  const classNames = `scroll-button ff-chevron-${chevronDirection} ${isDisabled ? "greyedOut" : null}`;
@@ -70,6 +92,25 @@ const ScrollingChevron = (props) => {
70
92
  return (React.createElement("div", { className: "chevron-container", title: toolTip },
71
93
  React.createElement("i", { className: classNames, onClick: scrollFunction })));
72
94
  };
95
+ /**
96
+ * The FinsembleDnDContext allows for all of the Draggable and Droppable components to work.
97
+ * It wraps its children and allows them to do draggy and droppy things.
98
+ * It also allows for horizontal containers to provide scrolling functionality.
99
+ * @param props
100
+ * @param props.id ID for the container that wraps the sortable container
101
+ * @param props.allowHorizontalScroll whether the DND context should allow for horizontal scrolling
102
+ * @param props.showScrollButtonsTooltip
103
+ * @param props.leftButtonTooltip Tooltip for left scroll button
104
+ * @param props.rightButtonTooltip Tooltip for right scroll button
105
+ * @param props.chevronScrollDistance how far clicking the chevrons should push the content forward or backwards
106
+ * @param props.onDragEnd handler for sorting
107
+ * @param props.onDragBegin handler for sorting
108
+ * @param props.onDragOver
109
+ * @param props.onLayoutUpdate handler for rendering. Invokes on useLayoutEffect
110
+ * @param props.distance how far the user has to drag an element to trigger sorting behavior
111
+ * @param props.axis whether to sort vertically or horizontally.
112
+ * @param props.className optional styles to pass the the sortable container
113
+ */
73
114
  export const FinsembleDnDContext = (props) => {
74
115
  var _a, _b, _c, _d, _e, _f, _g, _h;
75
116
  const { allowHorizontalScroll } = props;
@@ -77,29 +118,88 @@ export const FinsembleDnDContext = (props) => {
77
118
  const onDragBegin = (_b = props.onDragStart) !== null && _b !== void 0 ? _b : defaultOnDragBegin;
78
119
  const onDragMove = (_c = props.onDragMove) !== null && _c !== void 0 ? _c : defaultOnDrag;
79
120
  const onDragOver = (_d = props.onDragOver) !== null && _d !== void 0 ? _d : defaultOnDragOver;
121
+ // This is the numberr of pixels that a draggable element has to be dragged before the sorting kicks in.
80
122
  const distance = (_e = props.distance) !== null && _e !== void 0 ? _e : SORT_CONTAINER_DRAG_DISTANCE;
81
123
  const onLayoutUpdate = (_f = props.onLayoutUpdate) !== null && _f !== void 0 ? _f : defaultOnLayoutUpdate;
124
+ // This is the stateful variable that holds the active 'scrollLeft' property for the DOM node
125
+ // that's rendered inside of the sort container.
82
126
  const [containerScrollLeft, setContainerScrollLeft] = React.useState(0);
127
+ // read the comment in doForceUpdate to understand this.
128
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
83
129
  const [forceUpdate, setForceUpdate] = React.useState(0);
130
+ // Index of current visible left item
84
131
  const [leftItemIndex, setLeftItemIndex] = React.useState(0);
132
+ // Width of fake right (last) item to align the position of the left item
85
133
  const [fakeItemWidth, setFakeItemWidth] = React.useState(0);
86
134
  const containerRef = React.useRef(null);
135
+ // An object with all of the measurements that we'll need to set chevron visibility.
136
+ // If you don't understand client vs offset vs scrollWidth/Left,
137
+ // go check out this image https://i.stack.imgur.com/Cl1IA.png
138
+ // Here's an interactive version too: https://jsfiddle.net/y8Y32/25/
87
139
  const containerMeasurements = containerRef.current
88
140
  ? {
89
141
  clientLeft: containerRef.current.clientLeft,
90
142
  clientWidth: containerRef.current.clientWidth,
91
143
  offsetLeft: containerRef.current.offsetLeft,
92
144
  offsetWidth: containerRef.current.offsetWidth,
145
+ // not using the actual container's scrollLeft because it may not have been set yet.
146
+ // this uses the scrollLeft we have set in state.
93
147
  scrollLeft: containerScrollLeft,
94
148
  scrollWidth: containerRef.current.scrollWidth,
95
149
  }
96
150
  : DEFAULT_CONTAINER_MEASUREMENTS;
97
151
  const chevronScrollDistance = (_g = props.chevronScrollDistance) !== null && _g !== void 0 ? _g : DEFAULT_CHEVRON_SCROLL_DISTANCE;
98
- const isOverflowPresent = containerMeasurements.clientWidth !== 0 &&
152
+ // Whether the elements inside of the DND container have overflowed the clientWidth.
153
+ const isOverflowPresent =
154
+ // Explicitly made this !== 0 instead of just checking whether clientWidth was truthy
155
+ // so it was clear why this check was here. If it's not clear,
156
+ // if the clientWidth of the containerRef is 0, we should not have any chevrons. Ever.
157
+ // A client width of 0 indicates that the Ref's children haven't fully rendered.
158
+ containerMeasurements.clientWidth !== 0 &&
159
+ // On a monitor that's scaled at 100%, when clientWidth and scrollWidth are the same
160
+ // there is no overflow present. When monitors are NOT scaled at 100%,
161
+ // there's a chance that these two numbers are off.
99
162
  Math.abs(containerMeasurements.clientWidth - containerMeasurements.scrollWidth) > 0;
100
163
  const showChevrons = allowHorizontalScroll && isOverflowPresent;
164
+ // disabled === 'grayed out' and onClick won't fire. When you've scrolled all the way to the left,
165
+ // the left chevron is disabled. If you've scrolled all the way to the right, the right chevron is disabled
101
166
  const leftChevronDisabled = !!(showChevrons && containerScrollLeft === 0);
102
167
  const rightChevronDisabled = !!(showChevrons &&
168
+ /**
169
+ * This is a calculation that figures out where the right edge of the current viewport is.
170
+ * It's a little tricky to imagine. So look at this diagram.
171
+ +-------------------------------------------scrollWidth-------------------------------------------+
172
+ |----------------------------------------------------|
173
+ | |
174
+ +-------------------------------------------------------------------------------------------------+
175
+ |(0) |(200) |(200) |(300)
176
+ | | | |
177
+ | | | |
178
+ | | | |
179
+ | | | |
180
+ | | | |
181
+ | | | |
182
+ | | | |
183
+ | | | |
184
+ | | | |
185
+ | | | |
186
+ | | | (A) |
187
+ +-------------------------------------------------------------------------------------------------+
188
+ | |
189
+ +----------------------clientWidth-------------------+
190
+ ^ ^
191
+ | |
192
+ | |
193
+ | |
194
+ + +
195
+ scrollLeft = 100 scrollRight = 200
196
+
197
+ * The numbers in parens are the numbers for the 'scroll box'. We're trying to figure out where the point labeled (A) is located.
198
+ *
199
+ * Walking through the calculation, we take the scrollWidth and subtract the scrollLeft. This gives us the right edge of the scroll box.
200
+ * offsetWidth is effectively the right edge of the element. If the right edge of the scroll box and the right edge of the element are the same number,
201
+ * then we cannot scroll any further, and the chevron should be disabled.
202
+ */
103
203
  containerMeasurements.scrollWidth - containerScrollLeft - containerMeasurements.offsetWidth === 0);
104
204
  const scrollFunctionState = {
105
205
  containerScrollLeft,
@@ -108,6 +208,9 @@ export const FinsembleDnDContext = (props) => {
108
208
  const scrollFunctionStateSetters = {
109
209
  setScrollLeft: setContainerScrollLeft,
110
210
  };
211
+ /**
212
+ * Left Chevron's onClickHandler
213
+ */
111
214
  const scrollToLeft = () => {
112
215
  var _a, _b;
113
216
  if (leftChevronDisabled)
@@ -119,6 +222,9 @@ export const FinsembleDnDContext = (props) => {
119
222
  setLeftItemIndex(leftItemIndex - 1);
120
223
  }
121
224
  };
225
+ /**
226
+ * Right Chevron's onClickHandler
227
+ */
122
228
  const scrollToRight = () => {
123
229
  var _a, _b;
124
230
  if (rightChevronDisabled)
@@ -130,9 +236,14 @@ export const FinsembleDnDContext = (props) => {
130
236
  setLeftItemIndex(leftItemIndex + 1);
131
237
  }
132
238
  };
239
+ /**
240
+ * "wheel" handler. scrolls forward or backwards
241
+ * @param event
242
+ */
133
243
  const scrollme = (event) => {
134
244
  if (!event.nativeEvent.deltaY)
135
245
  return;
246
+ // do scroll only if the container is overflowed
136
247
  if (isOverflowPresent) {
137
248
  event.nativeEvent.deltaY < 0 ? scrollToLeft() : scrollToRight();
138
249
  }
@@ -141,22 +252,36 @@ export const FinsembleDnDContext = (props) => {
141
252
  if (props.allowHorizontalScroll && containerRef.current)
142
253
  containerRef.current.scrollLeft = containerScrollLeft;
143
254
  };
255
+ // This function increments `forceUpdate`, which is a piece of state that's irrelevant to the
256
+ // rendering of this component. After a resize, we need to re-measure the DOM so we can figure out if
257
+ // the chevrons are necessary. Because no state changes on a resize. the component doesn't rerender.
258
+ // This function will change state, which will cause a re-rendering, and the component will be re-measured.
144
259
  const doForceUpdate = () => {
145
260
  setForceUpdate((currentValueOfForceUpdate) => currentValueOfForceUpdate + 1);
146
261
  };
262
+ // This function is needed for correct positioning after resizing the window.
147
263
  const scrollToInitialState = () => {
148
264
  const calculatedFakeItemWidth = scrollHorizontally(containerScrollLeft, scrollFunctionState, scrollFunctionStateSetters, 1);
149
265
  setFakeItemWidth(calculatedFakeItemWidth);
150
266
  setLeftItemIndex(0);
151
267
  setContainerScrollLeft(0);
152
268
  };
269
+ // After every render, set the actual DOM element's scrollLeft to be whatever we calculated during the previous render.
153
270
  React.useLayoutEffect(doDOMManipulation);
271
+ // after the children change, we need to force an update so that we can re-measure the DOM after the render happens
272
+ // without this, adding and removing elements from the DNDContext won't recalculate whether the chevrons should render
154
273
  React.useEffect(doForceUpdate, [props.children]);
274
+ // Whenever the window resizes, force an update so that the DOM is re-measured.
155
275
  React.useEffect(addResizeHandler(doForceUpdate), []);
276
+ // Whenever the window resizes, scroll widgets to the left.
156
277
  React.useEffect(addResizeHandler(scrollToInitialState), []);
278
+ /**
279
+ * Actual container that provides drag and drop functionality
280
+ */
157
281
  const SortContainer = SortableContainer((sortableContainerProps) => (React.createElement("div", { onWheel: scrollme, ref: containerRef, className: props.className },
158
282
  sortableContainerProps.children,
159
283
  React.createElement("div", { style: { width: `${fakeItemWidth}px`, flexShrink: 0 } }))));
284
+ // After every render, call onLayoutUpdate function
160
285
  React.useLayoutEffect(() => {
161
286
  onLayoutUpdate();
162
287
  }, [SortContainer]);