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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (755) hide show
  1. package/README.md +28 -28
  2. package/package.json +20 -19
  3. package/react/actions/favoriteActions.js.map +1 -1
  4. package/react/actions/linkerActions.js.map +1 -1
  5. package/react/actions/menuActions.js.map +1 -1
  6. package/react/actions/rootActions.js.map +1 -1
  7. package/react/actions/searchActions.js.map +1 -1
  8. package/react/actions/smartDesktopDesignerActions.d.ts +6 -2
  9. package/react/actions/smartDesktopDesignerActions.js +2 -0
  10. package/react/actions/smartDesktopDesignerActions.js.map +1 -1
  11. package/react/actions/toolbarActions.js.map +1 -1
  12. package/react/actions/workspaceActions.js.map +1 -1
  13. package/react/assets/css/advancedAppLauncher.css +636 -636
  14. package/react/assets/css/appCatalog.css +1069 -1069
  15. package/react/assets/css/authentication.css +78 -78
  16. package/react/assets/css/button.css +220 -220
  17. package/react/assets/css/core/formElements.css +23 -23
  18. package/react/assets/css/core/icons.css +69 -69
  19. package/react/assets/css/core/notifications.css +75 -75
  20. package/react/assets/css/core/windowFrame.css +36 -36
  21. package/react/assets/css/dashbar.css +78 -78
  22. package/react/assets/css/defaultTheme.css +356 -356
  23. package/react/assets/css/dialogs.css +158 -158
  24. package/react/assets/css/favorites.css +101 -101
  25. package/react/assets/css/finsemble.css +38 -38
  26. package/react/assets/css/focus.css +4 -4
  27. package/react/assets/css/font-finance.css +385 -385
  28. package/react/assets/css/fonts/Open_Sans/LICENSE.txt +202 -202
  29. package/react/assets/css/fonts/Open_Sans/OpenSans-Definition.css +118 -118
  30. package/react/assets/css/fonts/font-finance.svg +124 -124
  31. package/react/assets/css/fonts/icons-reference.html +1174 -1174
  32. package/react/assets/css/linkerWindow.css +124 -124
  33. package/react/assets/css/menus.css +195 -195
  34. package/react/assets/css/notificationsCenter.css +597 -597
  35. package/react/assets/css/processMonitor.css +213 -213
  36. package/react/assets/css/search.css +128 -128
  37. package/react/assets/css/shared/animations.css +99 -99
  38. package/react/assets/css/tags.css +136 -136
  39. package/react/assets/css/toolbar.css +413 -413
  40. package/react/assets/css/userPreferences.css +538 -538
  41. package/react/assets/css/windowTitleBar.css +653 -652
  42. package/react/assets/icons/always-on-top.svg +20 -0
  43. package/react/assets/icons/caret.svg +7 -7
  44. package/react/assets/icons/check-square.svg +5 -5
  45. package/react/assets/icons/check.svg +3 -3
  46. package/react/assets/icons/chevron-left.svg +3 -3
  47. package/react/assets/icons/chevron-right.svg +3 -3
  48. package/react/assets/icons/close.svg +11 -0
  49. package/react/assets/icons/code-block.svg +15 -0
  50. package/react/assets/icons/copy.svg +10 -10
  51. package/react/assets/icons/documentation.svg +20 -0
  52. package/react/assets/icons/exclamation-circle.svg +4 -4
  53. package/react/assets/icons/external-link.svg +12 -12
  54. package/react/assets/icons/flag.svg +10 -10
  55. package/react/assets/icons/folder.svg +3 -3
  56. package/react/assets/icons/font.svg +3 -3
  57. package/react/assets/icons/globe.svg +3 -3
  58. package/react/assets/icons/hdd.svg +9 -9
  59. package/react/assets/icons/key.svg +10 -10
  60. package/react/assets/icons/life-ring.svg +3 -3
  61. package/react/assets/icons/linker.svg +18 -0
  62. package/react/assets/icons/lock.svg +5 -5
  63. package/react/assets/icons/magic.svg +15 -15
  64. package/react/assets/icons/maximize.svg +16 -0
  65. package/react/assets/icons/minimize.svg +15 -0
  66. package/react/assets/icons/moon.svg +10 -10
  67. package/react/assets/icons/paint-roller.svg +3 -3
  68. package/react/assets/icons/pencil.svg +10 -10
  69. package/react/assets/icons/plus.svg +3 -3
  70. package/react/assets/icons/question-circle.svg +5 -5
  71. package/react/assets/icons/search.svg +3 -3
  72. package/react/assets/icons/sun.svg +9 -9
  73. package/react/assets/icons/times.svg +3 -3
  74. package/react/assets/icons/toggle-off.svg +6 -6
  75. package/react/assets/icons/toggle-on.svg +6 -6
  76. package/react/assets/icons/toolbar.svg +12 -12
  77. package/react/assets/icons/tools.svg +3 -3
  78. package/react/assets/icons/trash.svg +12 -12
  79. package/react/assets/icons/upload.svg +10 -10
  80. package/react/assets/icons/window.svg +3 -3
  81. package/react/assets/img/finsemble-display.png +0 -0
  82. package/react/componentTemplateGenerator.js +85 -85
  83. package/react/componentTemplateGenerator.js.map +1 -1
  84. package/react/components/FinsembleProvider.js.map +1 -1
  85. package/react/components/appCatalog/AppCatalog.js.map +1 -1
  86. package/react/components/appCatalog/AppCatalogComponent.js.map +1 -1
  87. package/react/components/appCatalog/components/AppCard.js.map +1 -1
  88. package/react/components/appCatalog/components/AppList.js.map +1 -1
  89. package/react/components/appCatalog/components/AppResults.js.map +1 -1
  90. package/react/components/appCatalog/components/Carousel.js.map +1 -1
  91. package/react/components/appCatalog/components/EmptyResults.js.map +1 -1
  92. package/react/components/appCatalog/components/Hero.js.map +1 -1
  93. package/react/components/appCatalog/components/Home.js.map +1 -1
  94. package/react/components/appCatalog/components/SearchBar.js.map +1 -1
  95. package/react/components/appCatalog/components/Showcase/AppDescription.js.map +1 -1
  96. package/react/components/appCatalog/components/Showcase/AppDevNotes.js.map +1 -1
  97. package/react/components/appCatalog/components/Showcase/AppShowcase.js.map +1 -1
  98. package/react/components/appCatalog/components/Showcase/Header.js.map +1 -1
  99. package/react/components/appCatalog/components/Showcase/ImageCarousel.js.map +1 -1
  100. package/react/components/appCatalog/components/Showcase/Modal.js.map +1 -1
  101. package/react/components/appCatalog/components/Showcase/ReleaseNotes.js.map +1 -1
  102. package/react/components/appCatalog/components/Showcase/SupportNotes.js.map +1 -1
  103. package/react/components/appCatalog/components/Showcase/VersionNotes.js.map +1 -1
  104. package/react/components/appCatalog/components/Showcase/defaults.js.map +1 -1
  105. package/react/components/appCatalog/components/Tag.js.map +1 -1
  106. package/react/components/appCatalog/components/Toast.js.map +1 -1
  107. package/react/components/appCatalog/components/helpers.js.map +1 -1
  108. package/react/components/appCatalog/index.js.map +1 -1
  109. package/react/components/appCatalog/modules/AppDirectory.js.map +1 -1
  110. package/react/components/appCatalog/modules/FDC3.d.ts +1 -1
  111. package/react/components/appCatalog/modules/FDC3.js.map +1 -1
  112. package/react/components/appCatalog/stores/appStore.d.ts +2 -2
  113. package/react/components/appCatalog/stores/appStore.js.map +1 -1
  114. package/react/components/appCatalog/stores/storeActions.js.map +1 -1
  115. package/react/components/common/Accordion.js +1 -1
  116. package/react/components/common/Accordion.js.map +1 -1
  117. package/react/components/common/Button.js.map +1 -1
  118. package/react/components/common/ButtonIcon.js.map +1 -1
  119. package/react/components/common/ButtonRow.js.map +1 -1
  120. package/react/components/common/ButtonTile.js.map +1 -1
  121. package/react/components/common/Checkbox.js +1 -1
  122. package/react/components/common/Checkbox.js.map +1 -1
  123. package/react/components/common/ColorPicker.js.map +1 -1
  124. package/react/components/common/DropZone.js +3 -1
  125. package/react/components/common/DropZone.js.map +1 -1
  126. package/react/components/common/DropdownButton.js.map +1 -1
  127. package/react/components/common/FileInput.d.ts +2 -1
  128. package/react/components/common/FileInput.js +9 -4
  129. package/react/components/common/FileInput.js.map +1 -1
  130. package/react/components/common/FinsembleIcon.d.ts +1 -1
  131. package/react/components/common/FinsembleIcon.js +15 -1
  132. package/react/components/common/FinsembleIcon.js.map +1 -1
  133. package/react/components/common/FinsembleSelect.js +1 -1
  134. package/react/components/common/FinsembleSelect.js.map +1 -1
  135. package/react/components/common/FinsembleToggle.js.map +1 -1
  136. package/react/components/common/Header.js +3 -1
  137. package/react/components/common/Header.js.map +1 -1
  138. package/react/components/common/ImagePreview.js.map +1 -1
  139. package/react/components/common/InputTable.js.map +1 -1
  140. package/react/components/common/LoadingSpinner.js.map +1 -1
  141. package/react/components/common/Tab.js.map +1 -1
  142. package/react/components/common/Tooltip.js +3 -1
  143. package/react/components/common/Tooltip.js.map +1 -1
  144. package/react/components/common/css/accordion.css +99 -89
  145. package/react/components/common/css/application-edit-page.css +324 -223
  146. package/react/components/common/css/application-list.css +53 -47
  147. package/react/components/common/css/button.css +166 -166
  148. package/react/components/common/css/checkbox.css +30 -31
  149. package/react/components/common/css/color-picker.css +52 -52
  150. package/react/components/common/css/drop-zone.css +17 -17
  151. package/react/components/common/css/file-input.css +65 -49
  152. package/react/components/common/css/header.css +30 -32
  153. package/react/components/common/css/icon.css +13 -13
  154. package/react/components/common/css/image-preview.css +57 -57
  155. package/react/components/common/css/loading-spinner.css +39 -39
  156. package/react/components/common/css/preload-edit-page.css +37 -0
  157. package/react/components/common/css/selector.css +51 -51
  158. package/react/components/common/css/styles.css +127 -128
  159. package/react/components/common/css/tab.css +56 -56
  160. package/react/components/common/css/toggle.css +32 -32
  161. package/react/components/common/css/tooltip.css +78 -78
  162. package/react/components/common/file_helpers.js.map +1 -1
  163. package/react/components/common/fixtures/FinsembleIcon.css +4 -4
  164. package/react/components/common/helpers.js.map +1 -1
  165. package/react/components/common/stories/Accordion.stories.js.map +1 -1
  166. package/react/components/common/stories/Button.stories.js.map +1 -1
  167. package/react/components/common/stories/ButtonIcon.stories.js.map +1 -1
  168. package/react/components/common/stories/ButtonRow.stories.js.map +1 -1
  169. package/react/components/common/stories/ButtonTile.stories.js.map +1 -1
  170. package/react/components/common/stories/Checkbox.stories.js.map +1 -1
  171. package/react/components/common/stories/ColorPicker.stories.js.map +1 -1
  172. package/react/components/common/stories/DropZone.stories.js.map +1 -1
  173. package/react/components/common/stories/DropdownButton.stories.js.map +1 -1
  174. package/react/components/common/stories/FileInput.stories.d.ts +2 -1
  175. package/react/components/common/stories/FileInput.stories.js +6 -0
  176. package/react/components/common/stories/FileInput.stories.js.map +1 -1
  177. package/react/components/common/stories/FinsembleIcon.stories.js.map +1 -1
  178. package/react/components/common/stories/FinsembleSelect.stories.js.map +1 -1
  179. package/react/components/common/stories/FinsembleToggle.stories.js.map +1 -1
  180. package/react/components/common/stories/Header.stories.js.map +1 -1
  181. package/react/components/common/stories/ImagePreview.stories.js.map +1 -1
  182. package/react/components/common/stories/InputTable.stories.js.map +1 -1
  183. package/react/components/common/stories/LoadingSpinner.stories.js.map +1 -1
  184. package/react/components/common/stories/Tab.stories.js.map +1 -1
  185. package/react/components/common/stories/Tooltip.stories.js.map +1 -1
  186. package/react/components/common/tests/Accordion.spec.js.map +1 -1
  187. package/react/components/common/tests/ButtonRow.spec.js.map +1 -1
  188. package/react/components/common/tests/Checkbox.spec.js.map +1 -1
  189. package/react/components/common/tests/ColorPicker.spec.js.map +1 -1
  190. package/react/components/common/tests/DropZone.spec.js.map +1 -1
  191. package/react/components/common/tests/FileInput.spec.js +20 -5
  192. package/react/components/common/tests/FileInput.spec.js.map +1 -1
  193. package/react/components/common/tests/FinsembleSelect.spec.js.map +1 -1
  194. package/react/components/common/tests/FinsembleToggle.spec.js.map +1 -1
  195. package/react/components/common/tests/Header.spec.js +6 -2
  196. package/react/components/common/tests/Header.spec.js.map +1 -1
  197. package/react/components/common/tests/ImagePreview.spec.js.map +1 -1
  198. package/react/components/common/tests/InputTable.spec.js.map +1 -1
  199. package/react/components/common/tests/Tab.spec.js.map +1 -1
  200. package/react/components/common/tests/Tooltip.spec.js.map +1 -1
  201. package/react/components/favorites/FavoriteMaker.js.map +1 -1
  202. package/react/components/favorites/FavoritesShell.js.map +1 -1
  203. package/react/components/favorites/FavoritesShell.spec.js.map +1 -1
  204. package/react/components/favorites/FavoritesShell.stories.js.map +1 -1
  205. package/react/components/favorites/index.js.map +1 -1
  206. package/react/components/fdc3Resolver/ResolverContainer.js.map +1 -1
  207. package/react/components/fdc3Resolver/ResolverDialog.css +126 -126
  208. package/react/components/fdc3Resolver/ResolverDialog.js.map +1 -1
  209. package/react/components/fdc3Resolver/ResolverDialog.spec.js.map +1 -1
  210. package/react/components/fdc3Resolver/ResolverDialog.stories.js.map +1 -1
  211. package/react/components/icon/Icon.js.map +1 -1
  212. package/react/components/icon/index.js.map +1 -1
  213. package/react/components/legacyControls/FinsembleDialog.js.map +1 -1
  214. package/react/components/legacyControls/FinsembleDialogButton.js +1 -1
  215. package/react/components/legacyControls/FinsembleDialogButton.js.map +1 -1
  216. package/react/components/legacyControls/FinsembleDialogQuestion.js.map +1 -1
  217. package/react/components/legacyControls/FinsembleDialogTextInput.js.map +1 -1
  218. package/react/components/legacyControls/FinsembleDnDContext.d.ts +2 -1
  219. package/react/components/legacyControls/FinsembleDnDContext.js +8 -6
  220. package/react/components/legacyControls/FinsembleDnDContext.js.map +1 -1
  221. package/react/components/legacyControls/FinsembleDraggable.js.map +1 -1
  222. package/react/components/legacyControls/FinsembleHoverDetector.js.map +1 -1
  223. package/react/components/legacyControls/FinsembleMenuSection.js.map +1 -1
  224. package/react/components/legacyControls/stories/FinsembleDialog.stories.js.map +1 -1
  225. package/react/components/legacyControls/stories/FinsembleDialogButton.stories.js.map +1 -1
  226. package/react/components/legacyControls/stories/FinsembleDialogQuestion.stories.js.map +1 -1
  227. package/react/components/legacyControls/stories/FinsembleDialogTextInput.stories.js.map +1 -1
  228. package/react/components/legacyControls/tests/FinsembleDialog.spec.js.map +1 -1
  229. package/react/components/legacyControls/tests/FinsembleDialogButton.spec.js.map +1 -1
  230. package/react/components/legacyControls/tests/FinsembleDialogQuestion.spec.js.map +1 -1
  231. package/react/components/legacyControls/tests/FinsembleDialogTextInput.spec.js.map +1 -1
  232. package/react/components/linker/LinkerMenu.js.map +1 -1
  233. package/react/components/linker/LinkerMenuDeprecated.js.map +1 -1
  234. package/react/components/linker/index.js.map +1 -1
  235. package/react/components/linker/remoteRedux.d.ts +1 -1
  236. package/react/components/linker/remoteRedux.js.map +1 -1
  237. package/react/components/menu/Menu.d.ts +1 -0
  238. package/react/components/menu/Menu.js.map +1 -1
  239. package/react/components/menu/MenuAutoResizer.d.ts +2 -1
  240. package/react/components/menu/MenuAutoResizer.js +3 -2
  241. package/react/components/menu/MenuAutoResizer.js.map +1 -1
  242. package/react/components/menu/MenuContent.js.map +1 -1
  243. package/react/components/menu/MenuHotKey.js.map +1 -1
  244. package/react/components/menu/MenuItem.js.map +1 -1
  245. package/react/components/menu/MenuPortal.js +118 -92
  246. package/react/components/menu/MenuPortal.js.map +1 -1
  247. package/react/components/menu/MenuShell.d.ts +1 -0
  248. package/react/components/menu/MenuShell.js +3 -2
  249. package/react/components/menu/MenuShell.js.map +1 -1
  250. package/react/components/menu/MenuToggle.js.map +1 -1
  251. package/react/components/menu/index.js.map +1 -1
  252. package/react/components/menu/keyboardNavigation.js.map +1 -1
  253. package/react/components/menu/menuContext.d.ts +1 -0
  254. package/react/components/menu/menuContext.js.map +1 -1
  255. package/react/components/menu/menuHelpers.d.ts +1 -1
  256. package/react/components/menu/menuHelpers.js +2 -2
  257. package/react/components/menu/menuHelpers.js.map +1 -1
  258. package/react/components/notifications/components/NoNotifications.js.map +1 -1
  259. package/react/components/notifications/components/drawer/Drawer.js.map +1 -1
  260. package/react/components/notifications/components/drawer/DrawerControls.js.map +1 -1
  261. package/react/components/notifications/components/drawer/DrawerHeader.js.map +1 -1
  262. package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js.map +1 -1
  263. package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js +20 -27
  264. package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js.map +1 -1
  265. package/react/components/notifications/components/shared/CheckButton.d.ts +1 -1
  266. package/react/components/notifications/components/shared/CheckButton.js.map +1 -1
  267. package/react/components/notifications/components/shared/IconButton.js.map +1 -1
  268. package/react/components/notifications/components/shared/NotificationCardShell.d.ts +1 -1
  269. package/react/components/notifications/components/shared/NotificationCardShell.js +1 -1
  270. package/react/components/notifications/components/shared/NotificationCardShell.js.map +1 -1
  271. package/react/components/notifications/components/shared/OverflowMenu.d.ts +1 -1
  272. package/react/components/notifications/components/shared/OverflowMenu.js.map +1 -1
  273. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyActions.d.ts +1 -1
  274. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyActions.js.map +1 -1
  275. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyContentLogo.js.map +1 -1
  276. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.d.ts +1 -1
  277. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.js.map +1 -1
  278. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.d.ts +1 -1
  279. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.js.map +1 -1
  280. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderLogo.js.map +1 -1
  281. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderShell.d.ts +1 -1
  282. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderShell.js.map +1 -1
  283. package/react/components/notifications/components/views/CardView.js.map +1 -1
  284. package/react/components/notifications/components/views/ListView.d.ts +1 -1
  285. package/react/components/notifications/components/views/ListView.js +1 -1
  286. package/react/components/notifications/components/views/ListView.js.map +1 -1
  287. package/react/components/notifications/components/views/NotificationDetailsView.d.ts +1 -1
  288. package/react/components/notifications/components/views/NotificationDetailsView.js.map +1 -1
  289. package/react/components/notifications/constants.js.map +1 -1
  290. package/react/components/notifications/icons/Card.js.map +1 -1
  291. package/react/components/notifications/icons/Chevron.js.map +1 -1
  292. package/react/components/notifications/icons/CloseIcon.js.map +1 -1
  293. package/react/components/notifications/icons/EnvelopeClose.js.map +1 -1
  294. package/react/components/notifications/icons/EnvelopeOpen.js.map +1 -1
  295. package/react/components/notifications/icons/SnoozeIcon.js.map +1 -1
  296. package/react/components/notifications/index.js.map +1 -1
  297. package/react/components/notifications/notificationsContext.js.map +1 -1
  298. package/react/components/notifications/types.d.ts +1 -1
  299. package/react/components/notifications/types.js.map +1 -1
  300. package/react/components/notifications/utils.d.ts +1 -1
  301. package/react/components/notifications/utils.js.map +1 -1
  302. package/react/components/processMonitor/ProcessMonitor.js.map +1 -1
  303. package/react/components/processMonitor/ProcessMonitorTypes.js.map +1 -1
  304. package/react/components/processMonitor/components/ChildWindow.js.map +1 -1
  305. package/react/components/processMonitor/components/ListHeader.d.ts +1 -1
  306. package/react/components/processMonitor/components/ListHeader.js.map +1 -1
  307. package/react/components/processMonitor/components/ProcessStatistics.js.map +1 -1
  308. package/react/components/processMonitor/constants.js.map +1 -1
  309. package/react/components/processMonitor/helpers.js.map +1 -1
  310. package/react/components/processMonitor/helpers.spec.js.map +1 -1
  311. package/react/components/processMonitor/index.js.map +1 -1
  312. package/react/components/processMonitor/stores/ProcessMonitorStore.d.ts +4 -3
  313. package/react/components/processMonitor/stores/ProcessMonitorStore.js +51 -50
  314. package/react/components/processMonitor/stores/ProcessMonitorStore.js.map +1 -1
  315. package/react/components/quickComponentForm/QuickComponentForm.js.map +1 -1
  316. package/react/components/quickComponentForm/index.js.map +1 -1
  317. package/react/components/quickComponentForm/quickComponent.css +3 -3
  318. package/react/components/search/Highlight.js.map +1 -1
  319. package/react/components/search/Highlight.spec.js.map +1 -1
  320. package/react/components/search/Highlight.stories.js.map +1 -1
  321. package/react/components/search/Search.js.map +1 -1
  322. package/react/components/search/SearchBestMatch.js.map +1 -1
  323. package/react/components/search/SearchInput.js.map +1 -1
  324. package/react/components/search/SearchProviderResults.js.map +1 -1
  325. package/react/components/search/SearchResult.js +4 -3
  326. package/react/components/search/SearchResult.js.map +1 -1
  327. package/react/components/search/SearchResults.js.map +1 -1
  328. package/react/components/search/index.js.map +1 -1
  329. package/react/components/shared/Animate.js.map +1 -1
  330. package/react/components/shared/BellIcon.js.map +1 -1
  331. package/react/components/shared/BellIconCrossed.js.map +1 -1
  332. package/react/components/shared/Button.js.map +1 -1
  333. package/react/components/shared/ConditionalWrapper.js.map +1 -1
  334. package/react/components/shared/DefaultDropdownButton.js.map +1 -1
  335. package/react/components/shared/NavigationButton.js.map +1 -1
  336. package/react/components/shared/Tag.js.map +1 -1
  337. package/react/components/shared/TagsMenu.js.map +1 -1
  338. package/react/components/shared/addProtocolToValidURL.js.map +1 -1
  339. package/react/components/shared/linkerUtil.js.map +1 -1
  340. package/react/components/shared/openQuitConfirmationDialog.js.map +1 -1
  341. package/react/components/shared/tests/DefaultDropdownButton.spec.js.map +1 -1
  342. package/react/components/shared/tests/addProtocolToValidURL.spec.js.map +1 -1
  343. package/react/components/shared/validateURL.js.map +1 -1
  344. package/react/components/shared/validateURL.spec.js.map +1 -1
  345. package/react/components/singleInputDialog/SingleInputDialog.css +3 -3
  346. package/react/components/singleInputDialog/SingleInputDialog.js.map +1 -1
  347. package/react/components/singleInputDialog/SingleInputDialog.spec.js.map +1 -1
  348. package/react/components/singleInputDialog/SingleInputDialog.stories.js.map +1 -1
  349. package/react/components/singleInputDialog/index.js.map +1 -1
  350. package/react/components/smartDesktopDesigner/AddApp.d.ts +2 -2
  351. package/react/components/smartDesktopDesigner/AddApp.js +28 -17
  352. package/react/components/smartDesktopDesigner/AddApp.js.map +1 -1
  353. package/react/components/smartDesktopDesigner/AppEditAccess.js.map +1 -1
  354. package/react/components/smartDesktopDesigner/AppEditPage.d.ts +2 -2
  355. package/react/components/smartDesktopDesigner/AppEditPage.js +311 -242
  356. package/react/components/smartDesktopDesigner/AppEditPage.js.map +1 -1
  357. package/react/components/smartDesktopDesigner/Appearance.css +35 -28
  358. package/react/components/smartDesktopDesigner/Appearance.helpers.js.map +1 -1
  359. package/react/components/smartDesktopDesigner/Appearance.js +1 -1
  360. package/react/components/smartDesktopDesigner/Appearance.js.map +1 -1
  361. package/react/components/smartDesktopDesigner/Application.d.ts +10 -3
  362. package/react/components/smartDesktopDesigner/Application.js +37 -44
  363. package/react/components/smartDesktopDesigner/Application.js.map +1 -1
  364. package/react/components/smartDesktopDesigner/Applications.d.ts +2 -0
  365. package/react/components/smartDesktopDesigner/Applications.js +29 -20
  366. package/react/components/smartDesktopDesigner/Applications.js.map +1 -1
  367. package/react/components/smartDesktopDesigner/AssetsPage.css +26 -26
  368. package/react/components/smartDesktopDesigner/AssetsPage.js.map +1 -1
  369. package/react/components/smartDesktopDesigner/Authentication.js +2 -9
  370. package/react/components/smartDesktopDesigner/Authentication.js.map +1 -1
  371. package/react/components/smartDesktopDesigner/AuthenticationProviderConfig.js +1 -1
  372. package/react/components/smartDesktopDesigner/AuthenticationProviderConfig.js.map +1 -1
  373. package/react/components/smartDesktopDesigner/Content.js.map +1 -1
  374. package/react/components/smartDesktopDesigner/ContentHeader.d.ts +5 -0
  375. package/react/components/smartDesktopDesigner/ContentHeader.js +10 -0
  376. package/react/components/smartDesktopDesigner/ContentHeader.js.map +1 -0
  377. package/react/components/smartDesktopDesigner/CurrentView.js.map +1 -1
  378. package/react/components/smartDesktopDesigner/EditPreload.d.ts +14 -0
  379. package/react/components/smartDesktopDesigner/EditPreload.js +169 -0
  380. package/react/components/smartDesktopDesigner/EditPreload.js.map +1 -0
  381. package/react/components/smartDesktopDesigner/Export.js +5 -5
  382. package/react/components/smartDesktopDesigner/Export.js.map +1 -1
  383. package/react/components/smartDesktopDesigner/ExportCloud.d.ts +3 -1
  384. package/react/components/smartDesktopDesigner/ExportCloud.js +4 -4
  385. package/react/components/smartDesktopDesigner/ExportCloud.js.map +1 -1
  386. package/react/components/smartDesktopDesigner/ExportDeployInfo.js.map +1 -1
  387. package/react/components/smartDesktopDesigner/ExportZip.d.ts +3 -1
  388. package/react/components/smartDesktopDesigner/ExportZip.js +8 -3
  389. package/react/components/smartDesktopDesigner/ExportZip.js.map +1 -1
  390. package/react/components/smartDesktopDesigner/GettingStarted.d.ts +1 -0
  391. package/react/components/smartDesktopDesigner/GettingStarted.js +11 -22
  392. package/react/components/smartDesktopDesigner/GettingStarted.js.map +1 -1
  393. package/react/components/smartDesktopDesigner/ItemList.d.ts +17 -0
  394. package/react/components/smartDesktopDesigner/ItemList.js +58 -0
  395. package/react/components/smartDesktopDesigner/ItemList.js.map +1 -0
  396. package/react/components/smartDesktopDesigner/Navigation.js.map +1 -1
  397. package/react/components/smartDesktopDesigner/OptionalSettingsView.d.ts +11 -0
  398. package/react/components/smartDesktopDesigner/OptionalSettingsView.js +71 -0
  399. package/react/components/smartDesktopDesigner/OptionalSettingsView.js.map +1 -0
  400. package/react/components/smartDesktopDesigner/Preloads.d.ts +8 -0
  401. package/react/components/smartDesktopDesigner/Preloads.js +26 -0
  402. package/react/components/smartDesktopDesigner/Preloads.js.map +1 -0
  403. package/react/components/smartDesktopDesigner/ProjectErrors.js.map +1 -1
  404. package/react/components/smartDesktopDesigner/Publish.js.map +1 -1
  405. package/react/components/smartDesktopDesigner/PublishProgress.js.map +1 -1
  406. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.d.ts +1 -1
  407. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js +34 -3
  408. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js.map +1 -1
  409. package/react/components/smartDesktopDesigner/ThemePage.css +109 -109
  410. package/react/components/smartDesktopDesigner/ThemePage.js +0 -7
  411. package/react/components/smartDesktopDesigner/ThemePage.js.map +1 -1
  412. package/react/components/smartDesktopDesigner/Themes.js +0 -2
  413. package/react/components/smartDesktopDesigner/Themes.js.map +1 -1
  414. package/react/components/smartDesktopDesigner/Toolbar.js +16 -18
  415. package/react/components/smartDesktopDesigner/Toolbar.js.map +1 -1
  416. package/react/components/smartDesktopDesigner/View.js +1 -1
  417. package/react/components/smartDesktopDesigner/View.js.map +1 -1
  418. package/react/components/smartDesktopDesigner/common/fsbl_functions.d.ts +1 -1
  419. package/react/components/smartDesktopDesigner/common/fsbl_functions.js +2 -2
  420. package/react/components/smartDesktopDesigner/common/fsbl_functions.js.map +1 -1
  421. package/react/components/smartDesktopDesigner/common/getCSSVars.js.map +1 -1
  422. package/react/components/smartDesktopDesigner/common/views.js +27 -3
  423. package/react/components/smartDesktopDesigner/common/views.js.map +1 -1
  424. package/react/components/smartDesktopDesigner/css/appearance.css +21 -18
  425. package/react/components/smartDesktopDesigner/css/applications.css +167 -167
  426. package/react/components/smartDesktopDesigner/css/authentication.css +119 -130
  427. package/react/components/smartDesktopDesigner/css/buttons.css +12 -12
  428. package/react/components/smartDesktopDesigner/css/export.css +176 -167
  429. package/react/components/smartDesktopDesigner/css/getting-started.css +28 -8
  430. package/react/components/smartDesktopDesigner/css/nav.css +120 -109
  431. package/react/components/smartDesktopDesigner/css/project-errors.css +15 -15
  432. package/react/components/smartDesktopDesigner/css/project-header.css +124 -121
  433. package/react/components/smartDesktopDesigner/css/styles.css +178 -179
  434. package/react/components/smartDesktopDesigner/css/views.css +23 -17
  435. package/react/components/smartDesktopDesigner/fixtures/apps.d.ts +1 -1
  436. package/react/components/smartDesktopDesigner/fixtures/apps.js +23 -1
  437. package/react/components/smartDesktopDesigner/fixtures/apps.js.map +1 -1
  438. package/react/components/smartDesktopDesigner/fixtures/authenticationProps.js.map +1 -1
  439. package/react/components/smartDesktopDesigner/fixtures/configTemplate.js.map +1 -1
  440. package/react/components/smartDesktopDesigner/fixtures/exportProps.js.map +1 -1
  441. package/react/components/smartDesktopDesigner/fixtures/preloads.d.ts +22 -0
  442. package/react/components/smartDesktopDesigner/fixtures/preloads.js +40 -0
  443. package/react/components/smartDesktopDesigner/fixtures/preloads.js.map +1 -0
  444. package/react/components/smartDesktopDesigner/fixtures/projectErrorsProps.js.map +1 -1
  445. package/react/components/smartDesktopDesigner/fixtures/publishProgress.d.ts +1 -1
  446. package/react/components/smartDesktopDesigner/fixtures/publishProgress.js.map +1 -1
  447. package/react/components/smartDesktopDesigner/fixtures/themeProps.js.map +1 -1
  448. package/react/components/smartDesktopDesigner/fixtures/views.js +14 -6
  449. package/react/components/smartDesktopDesigner/fixtures/views.js.map +1 -1
  450. package/react/components/smartDesktopDesigner/sdd_helpers.js +1 -1
  451. package/react/components/smartDesktopDesigner/sdd_helpers.js.map +1 -1
  452. package/react/components/smartDesktopDesigner/stories/AppEditPage.stories.d.ts +2 -1
  453. package/react/components/smartDesktopDesigner/stories/AppEditPage.stories.js +2 -0
  454. package/react/components/smartDesktopDesigner/stories/AppEditPage.stories.js.map +1 -1
  455. package/react/components/smartDesktopDesigner/stories/Appearance.stories.js.map +1 -1
  456. package/react/components/smartDesktopDesigner/stories/Applications.stories.js.map +1 -1
  457. package/react/components/smartDesktopDesigner/stories/AssetsPage.stories.js.map +1 -1
  458. package/react/components/smartDesktopDesigner/stories/Authentication.stories.js.map +1 -1
  459. package/react/components/smartDesktopDesigner/stories/ContentHeader.stories.d.ts +10 -0
  460. package/react/components/smartDesktopDesigner/stories/ContentHeader.stories.js +13 -0
  461. package/react/components/smartDesktopDesigner/stories/ContentHeader.stories.js.map +1 -0
  462. package/react/components/smartDesktopDesigner/stories/EditPreload.stories.d.ts +11 -0
  463. package/react/components/smartDesktopDesigner/stories/EditPreload.stories.js +35 -0
  464. package/react/components/smartDesktopDesigner/stories/EditPreload.stories.js.map +1 -0
  465. package/react/components/smartDesktopDesigner/stories/Export.stories.js.map +1 -1
  466. package/react/components/smartDesktopDesigner/stories/ExportCloud.stories.d.ts +1 -1
  467. package/react/components/smartDesktopDesigner/stories/ExportCloud.stories.js +1 -1
  468. package/react/components/smartDesktopDesigner/stories/ExportCloud.stories.js.map +1 -1
  469. package/react/components/smartDesktopDesigner/stories/ExportZip.stories.d.ts +1 -1
  470. package/react/components/smartDesktopDesigner/stories/ExportZip.stories.js +1 -1
  471. package/react/components/smartDesktopDesigner/stories/ExportZip.stories.js.map +1 -1
  472. package/react/components/smartDesktopDesigner/stories/GettingStarted.stories.js.map +1 -1
  473. package/react/components/smartDesktopDesigner/stories/ItemList.stories.d.ts +16 -0
  474. package/react/components/smartDesktopDesigner/stories/{ApplicationList.stories.js → ItemList.stories.js} +30 -23
  475. package/react/components/smartDesktopDesigner/stories/ItemList.stories.js.map +1 -0
  476. package/react/components/smartDesktopDesigner/stories/Navigation.stories.js.map +1 -1
  477. package/react/components/smartDesktopDesigner/stories/OptionalSettingsView.stories.d.ts +11 -0
  478. package/react/components/smartDesktopDesigner/stories/OptionalSettingsView.stories.js +28 -0
  479. package/react/components/smartDesktopDesigner/stories/OptionalSettingsView.stories.js.map +1 -0
  480. package/react/components/smartDesktopDesigner/stories/Preloads.stories.d.ts +11 -0
  481. package/react/components/smartDesktopDesigner/stories/Preloads.stories.js +31 -0
  482. package/react/components/smartDesktopDesigner/stories/Preloads.stories.js.map +1 -0
  483. package/react/components/smartDesktopDesigner/stories/ProjectErrors.stories.js.map +1 -1
  484. package/react/components/smartDesktopDesigner/stories/Publish.stories.js.map +1 -1
  485. package/react/components/smartDesktopDesigner/stories/PublishProgress.stories.js.map +1 -1
  486. package/react/components/smartDesktopDesigner/stories/SmartDesktopDesigner.stories.js +7 -1
  487. package/react/components/smartDesktopDesigner/stories/SmartDesktopDesigner.stories.js.map +1 -1
  488. package/react/components/smartDesktopDesigner/stories/ThemePage.stories.js.map +1 -1
  489. package/react/components/smartDesktopDesigner/stories/Themes.stories.js.map +1 -1
  490. package/react/components/smartDesktopDesigner/stories/Toolbar.stories.js.map +1 -1
  491. package/react/components/smartDesktopDesigner/tests/AppEditPage.spec.js +1100 -311
  492. package/react/components/smartDesktopDesigner/tests/AppEditPage.spec.js.map +1 -1
  493. package/react/components/smartDesktopDesigner/tests/{ApplicationList.spec.d.ts → Application.spec.d.ts} +0 -0
  494. package/react/components/smartDesktopDesigner/tests/Application.spec.js +1496 -0
  495. package/react/components/smartDesktopDesigner/tests/Application.spec.js.map +1 -0
  496. package/react/components/smartDesktopDesigner/tests/Applications.spec.d.ts +1 -1
  497. package/react/components/smartDesktopDesigner/tests/Applications.spec.js +94 -7
  498. package/react/components/smartDesktopDesigner/tests/Applications.spec.js.map +1 -1
  499. package/react/components/smartDesktopDesigner/tests/Authentication.spec.js.map +1 -1
  500. package/react/components/smartDesktopDesigner/tests/ContentHeader.spec.d.ts +1 -0
  501. package/react/components/smartDesktopDesigner/tests/ContentHeader.spec.js +31 -0
  502. package/react/components/smartDesktopDesigner/tests/ContentHeader.spec.js.map +1 -0
  503. package/react/components/smartDesktopDesigner/tests/EditPreload.spec.d.ts +1 -0
  504. package/react/components/smartDesktopDesigner/tests/EditPreload.spec.js +61 -0
  505. package/react/components/smartDesktopDesigner/tests/EditPreload.spec.js.map +1 -0
  506. package/react/components/smartDesktopDesigner/tests/Export.spec.js +95 -0
  507. package/react/components/smartDesktopDesigner/tests/Export.spec.js.map +1 -1
  508. package/react/components/smartDesktopDesigner/tests/ExportZip.spec.js +7 -0
  509. package/react/components/smartDesktopDesigner/tests/ExportZip.spec.js.map +1 -1
  510. package/react/components/smartDesktopDesigner/tests/ItemList.spec.d.ts +1 -0
  511. package/react/components/smartDesktopDesigner/tests/{ApplicationList.spec.js → ItemList.spec.js} +8 -8
  512. package/react/components/smartDesktopDesigner/tests/ItemList.spec.js.map +1 -0
  513. package/react/components/smartDesktopDesigner/tests/Navigation.spec.js.map +1 -1
  514. package/react/components/smartDesktopDesigner/tests/Preloads.spec.d.ts +1 -0
  515. package/react/components/smartDesktopDesigner/tests/Preloads.spec.js +47 -0
  516. package/react/components/smartDesktopDesigner/tests/Preloads.spec.js.map +1 -0
  517. package/react/components/smartDesktopDesigner/tests/ProjectErrors.spec.js +1 -1
  518. package/react/components/smartDesktopDesigner/tests/ProjectErrors.spec.js.map +1 -1
  519. package/react/components/smartDesktopDesigner/tests/Publish.spec.js.map +1 -1
  520. package/react/components/smartDesktopDesigner/tests/PublishProgess.spec.js.map +1 -1
  521. package/react/components/smartDesktopDesigner/tests/SmartDesktopDesigner.spec.js +7 -30
  522. package/react/components/smartDesktopDesigner/tests/SmartDesktopDesigner.spec.js.map +1 -1
  523. package/react/components/smartDesktopDesigner/tests/Themes.spec.js.map +1 -1
  524. package/react/components/smartDesktopDesigner/tests/Toolbar.spec.d.ts +1 -1
  525. package/react/components/smartDesktopDesigner/tests/Toolbar.spec.js +5 -6
  526. package/react/components/smartDesktopDesigner/tests/Toolbar.spec.js.map +1 -1
  527. package/react/components/smartDesktopDesigner/tests/a11y_helper.js.map +1 -1
  528. package/react/components/smartDesktopDesigner/tests/sdd_helpers.spec.js +1 -0
  529. package/react/components/smartDesktopDesigner/tests/sdd_helpers.spec.js.map +1 -1
  530. package/react/components/smartDesktopDesigner/themeDefinitions.js.map +1 -1
  531. package/react/components/system/System.js.map +1 -1
  532. package/react/components/system/System.spec.js.map +1 -1
  533. package/react/components/system/System.stories.js.map +1 -1
  534. package/react/components/system/SystemTrayComponentShell.js.map +1 -1
  535. package/react/components/system/index.js.map +1 -1
  536. package/react/components/toolbar/AutoArrange.js.map +1 -1
  537. package/react/components/toolbar/DragHandle.js.map +1 -1
  538. package/react/components/toolbar/DragHandle.spec.d.ts +1 -0
  539. package/react/components/toolbar/DragHandle.spec.js +31 -0
  540. package/react/components/toolbar/DragHandle.spec.js.map +1 -0
  541. package/react/components/toolbar/DragHandle.stories.d.ts +13 -0
  542. package/react/components/toolbar/DragHandle.stories.js +39 -0
  543. package/react/components/toolbar/DragHandle.stories.js.map +1 -0
  544. package/react/components/toolbar/MinimizeAll.js.map +1 -1
  545. package/react/components/toolbar/MinimizeAll.spec.js.map +1 -1
  546. package/react/components/toolbar/MinimizeAll.stories.js.map +1 -1
  547. package/react/components/toolbar/NotificationControl.js.map +1 -1
  548. package/react/components/toolbar/RevealAll.js.map +1 -1
  549. package/react/components/toolbar/RevealAll.spec.js.map +1 -1
  550. package/react/components/toolbar/RevealAll.stories.js.map +1 -1
  551. package/react/components/toolbar/ToolbarIcon.js.map +1 -1
  552. package/react/components/toolbar/ToolbarSection.js.map +1 -1
  553. package/react/components/toolbar/ToolbarShell.js.map +1 -1
  554. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.d.ts +1 -1
  555. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.js.map +1 -1
  556. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncherMenu.js.map +1 -1
  557. package/react/components/toolbar/advancedAppLauncher/components/AddNewAppForm.js.map +1 -1
  558. package/react/components/toolbar/advancedAppLauncher/components/AddNewFolder.js.map +1 -1
  559. package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.js.map +1 -1
  560. package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.js.map +1 -1
  561. package/react/components/toolbar/advancedAppLauncher/components/AppTagsList.js.map +1 -1
  562. package/react/components/toolbar/advancedAppLauncher/components/Content.d.ts +1 -1
  563. package/react/components/toolbar/advancedAppLauncher/components/Content.js.map +1 -1
  564. package/react/components/toolbar/advancedAppLauncher/components/FilterSort.js.map +1 -1
  565. package/react/components/toolbar/advancedAppLauncher/components/FoldersList.d.ts +1 -1
  566. package/react/components/toolbar/advancedAppLauncher/components/FoldersList.js +47 -45
  567. package/react/components/toolbar/advancedAppLauncher/components/FoldersList.js.map +1 -1
  568. package/react/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.js.map +1 -1
  569. package/react/components/toolbar/advancedAppLauncher/components/NoAppsFound.js.map +1 -1
  570. package/react/components/toolbar/advancedAppLauncher/components/SearchBox.js.map +1 -1
  571. package/react/components/toolbar/advancedAppLauncher/components/SortBy.js.map +1 -1
  572. package/react/components/toolbar/advancedAppLauncher/components/TagsList.d.ts +1 -1
  573. package/react/components/toolbar/advancedAppLauncher/components/TagsList.js.map +1 -1
  574. package/react/components/toolbar/advancedAppLauncher/components/TagsMenu.js.map +1 -1
  575. package/react/components/toolbar/advancedAppLauncher/components/ToggleFavoriteDropdown.js.map +1 -1
  576. package/react/components/toolbar/advancedAppLauncher/modules/AppDirectory.js.map +1 -1
  577. package/react/components/toolbar/advancedAppLauncher/modules/FDC3.js.map +1 -1
  578. package/react/components/toolbar/advancedAppLauncher/stores/LauncherStore.d.ts +2 -2
  579. package/react/components/toolbar/advancedAppLauncher/stores/LauncherStore.js.map +1 -1
  580. package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js.map +1 -1
  581. package/react/components/toolbar/advancedAppLauncher/utils/sort-functions.js.map +1 -1
  582. package/react/components/toolbar/appLauncher/AppLauncherMenu.js.map +1 -1
  583. package/react/components/toolbar/appLauncher/DynamicAppLauncher.js.map +1 -1
  584. package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.d.ts +1 -0
  585. package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.js.map +1 -1
  586. package/react/components/toolbar/appLauncher/appLauncher.css +30 -30
  587. package/react/components/toolbar/appLauncher/components/componentList.d.ts +2 -2
  588. package/react/components/toolbar/appLauncher/components/componentList.js.map +1 -1
  589. package/react/components/toolbar/appLauncher/stores/appLauncherStore.d.ts +3 -2
  590. package/react/components/toolbar/appLauncher/stores/appLauncherStore.js +17 -34
  591. package/react/components/toolbar/appLauncher/stores/appLauncherStore.js.map +1 -1
  592. package/react/components/toolbar/dashbar/Dashbar.js +9 -12
  593. package/react/components/toolbar/dashbar/Dashbar.js.map +1 -1
  594. package/react/components/toolbar/dashbar/DashbarItem.js.map +1 -1
  595. package/react/components/toolbar/index.js.map +1 -1
  596. package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.d.ts +2 -2
  597. package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.js.map +1 -1
  598. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.d.ts +1 -1
  599. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js.map +1 -1
  600. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.js.map +1 -1
  601. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.d.ts +1 -1
  602. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.js.map +1 -1
  603. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.d.ts +4 -4
  604. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js +1 -1
  605. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js.map +1 -1
  606. package/react/components/toolbar/workspaceManagementMenu/workspaceManagementMenu.css +90 -90
  607. package/react/components/userPreferences/NotificationsPreferencesContext.js.map +1 -1
  608. package/react/components/userPreferences/UserPreferenceTypes.js.map +1 -1
  609. package/react/components/userPreferences/UserPreferences.js.map +1 -1
  610. package/react/components/userPreferences/UserPreferencesBase.js.map +1 -1
  611. package/react/components/userPreferences/UserPreferencesWrapper.js.map +1 -1
  612. package/react/components/userPreferences/components/ContentSection.js.map +1 -1
  613. package/react/components/userPreferences/components/LeftNav.js.map +1 -1
  614. package/react/components/userPreferences/components/content/DashbarEditor.js.map +1 -1
  615. package/react/components/userPreferences/components/content/DashbarEditorItem.js.map +1 -1
  616. package/react/components/userPreferences/components/content/General.js.map +1 -1
  617. package/react/components/userPreferences/components/content/Notifications.js.map +1 -1
  618. package/react/components/userPreferences/components/content/Workspaces.d.ts +1 -1
  619. package/react/components/userPreferences/components/content/Workspaces.js +1 -1
  620. package/react/components/userPreferences/components/content/Workspaces.js.map +1 -1
  621. package/react/components/userPreferences/components/content/notificationViews/NotificationsPreferencesHome.js.map +1 -1
  622. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourceTypes.js.map +1 -1
  623. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourcesPreferences.js.map +1 -1
  624. package/react/components/userPreferences/components/content/notificationViews/notificationViewsUtils.js.map +1 -1
  625. package/react/components/userPreferences/components/general/ScheduledRestart.js.map +1 -1
  626. package/react/components/userPreferences/components/workspaces/WorkspaceButton.js.map +1 -1
  627. package/react/components/userPreferences/components/workspaces/WorkspaceComponents.js.map +1 -1
  628. package/react/components/userPreferences/components/workspaces/WorkspaceItem.js.map +1 -1
  629. package/react/components/userPreferences/components/workspaces/WorkspaceItemList.js.map +1 -1
  630. package/react/components/userPreferences/index.js.map +1 -1
  631. package/react/components/userPreferences/stores/UserPreferencesStore.d.ts +1 -1
  632. package/react/components/userPreferences/stores/UserPreferencesStore.js.map +1 -1
  633. package/react/components/userPreferences/stories/DashbarEditor.stories.js.map +1 -1
  634. package/react/components/userPreferences/stories/DashbarEditorItem.stories.js.map +1 -1
  635. package/react/components/userPreferences/stories/General.stories.js.map +1 -1
  636. package/react/components/userPreferences/stories/Notifications.stories.js.map +1 -1
  637. package/react/components/userPreferences/stories/NotificationsSourceTypes.stories.js.map +1 -1
  638. package/react/components/userPreferences/stories/NotificationsSources.stories.js.map +1 -1
  639. package/react/components/userPreferences/stories/UserPreferences.stories.js.map +1 -1
  640. package/react/components/userPreferences/stories/WorkspaceButton.stories.js.map +1 -1
  641. package/react/components/userPreferences/stories/WorkspaceComponents.stories.js.map +1 -1
  642. package/react/components/userPreferences/stories/WorkspaceItem.stories.js.map +1 -1
  643. package/react/components/userPreferences/stories/WorkspaceItemList.stories.js.map +1 -1
  644. package/react/components/userPreferences/stories/Workspaces.stories.js.map +1 -1
  645. package/react/components/userPreferences/tests/ContentSection.spec.js.map +1 -1
  646. package/react/components/userPreferences/tests/DashbarEditor.spec.js.map +1 -1
  647. package/react/components/userPreferences/tests/DashbarEditorItem.spec.js.map +1 -1
  648. package/react/components/userPreferences/tests/General.spec.js.map +1 -1
  649. package/react/components/userPreferences/tests/LeftNav.spec.js.map +1 -1
  650. package/react/components/userPreferences/tests/NotificationSourceTypes.spec.js.map +1 -1
  651. package/react/components/userPreferences/tests/Notifications.spec.js.map +1 -1
  652. package/react/components/userPreferences/tests/NotificationsPreferencesHome.spec.js.map +1 -1
  653. package/react/components/userPreferences/tests/NotificationsSourcesPreferences.spec.js.map +1 -1
  654. package/react/components/userPreferences/tests/ScheduledRestart.spec.js +1 -1
  655. package/react/components/userPreferences/tests/ScheduledRestart.spec.js.map +1 -1
  656. package/react/components/userPreferences/tests/WorkspaceButton.spec.js.map +1 -1
  657. package/react/components/userPreferences/tests/WorkspaceComponents.spec.js.map +1 -1
  658. package/react/components/userPreferences/tests/WorkspaceItem.spec.js.map +1 -1
  659. package/react/components/userPreferences/tests/WorkspaceItemList.spec.js.map +1 -1
  660. package/react/components/utils.js.map +1 -1
  661. package/react/components/windowTitleBar/WindowTitleBarShell.d.ts +4 -2
  662. package/react/components/windowTitleBar/WindowTitleBarShell.js +60 -59
  663. package/react/components/windowTitleBar/WindowTitleBarShell.js.map +1 -1
  664. package/react/components/windowTitleBar/components/center/Tab.d.ts +0 -1
  665. package/react/components/windowTitleBar/components/center/Tab.js +2 -2
  666. package/react/components/windowTitleBar/components/center/Tab.js.map +1 -1
  667. package/react/components/windowTitleBar/components/center/TabList.d.ts +2 -3
  668. package/react/components/windowTitleBar/components/center/TabList.js +19 -82
  669. package/react/components/windowTitleBar/components/center/TabList.js.map +1 -1
  670. package/react/components/windowTitleBar/components/center/TabRegion.js.map +1 -1
  671. package/react/components/windowTitleBar/components/left/LinkerButton.js.map +1 -1
  672. package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.js.map +1 -1
  673. package/react/components/windowTitleBar/components/left/LinkerGroups.js.map +1 -1
  674. package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.js.map +1 -1
  675. package/react/components/windowTitleBar/components/left/ShareButton.js.map +1 -1
  676. package/react/components/windowTitleBar/components/right/AlwaysOnTopButton.js.map +1 -1
  677. package/react/components/windowTitleBar/components/right/CloseButton.js.map +1 -1
  678. package/react/components/windowTitleBar/components/right/GroupingButton.js.map +1 -1
  679. package/react/components/windowTitleBar/components/right/MaximizeButton.d.ts +7 -0
  680. package/react/components/windowTitleBar/components/right/MaximizeButton.js +8 -2
  681. package/react/components/windowTitleBar/components/right/MaximizeButton.js.map +1 -1
  682. package/react/components/windowTitleBar/components/right/MinimizeButton.js.map +1 -1
  683. package/react/components/windowTitleBar/components/windowTitle.d.ts +9 -6
  684. package/react/components/windowTitleBar/components/windowTitle.js +154 -45
  685. package/react/components/windowTitleBar/components/windowTitle.js.map +1 -1
  686. package/react/components/windowTitleBar/index.js.map +1 -1
  687. package/react/components/windowTitleBar/stores/windowTitleBarStore.d.ts +3 -3
  688. package/react/components/windowTitleBar/stores/windowTitleBarStore.js +213 -217
  689. package/react/components/windowTitleBar/stores/windowTitleBarStore.js.map +1 -1
  690. package/react/components/windowTitleBar/stores/windowTitleBarStoreDefaults.js.map +1 -1
  691. package/react/components/windowTitleBar/windowTitleBarContext.js.map +1 -1
  692. package/react/components/yesNoDialog/Timer.spec.js.map +1 -1
  693. package/react/components/yesNoDialog/Timer.stories.js.map +1 -1
  694. package/react/components/yesNoDialog/YesNoDialog.css +3 -3
  695. package/react/components/yesNoDialog/YesNoDialog.js.map +1 -1
  696. package/react/components/yesNoDialog/YesNoDialog.spec.js.map +1 -1
  697. package/react/components/yesNoDialog/YesNoDialog.stories.js.map +1 -1
  698. package/react/components/yesNoDialog/index.js.map +1 -1
  699. package/react/components/yesNoDialog/timer.js.map +1 -1
  700. package/react/enzymeSetup.js.map +1 -1
  701. package/react/hooks/index.js.map +1 -1
  702. package/react/hooks/useAuth.js.map +1 -1
  703. package/react/hooks/useDashbar.js.map +1 -1
  704. package/react/hooks/useDeepEffect.js.map +1 -1
  705. package/react/hooks/useFavorites.js.map +1 -1
  706. package/react/hooks/useFavoritesShell.js.map +1 -1
  707. package/react/hooks/useHotkey.js.map +1 -1
  708. package/react/hooks/useLinker.js.map +1 -1
  709. package/react/hooks/useMenu.js.map +1 -1
  710. package/react/hooks/useNotifications.d.ts +1 -1
  711. package/react/hooks/useNotifications.js.map +1 -1
  712. package/react/hooks/useOutsideClickDetector.js.map +1 -1
  713. package/react/hooks/usePubSub.js.map +1 -1
  714. package/react/hooks/useSearch.js.map +1 -1
  715. package/react/hooks/useToolbar.js.map +1 -1
  716. package/react/hooks/useWorkspace.js.map +1 -1
  717. package/react/reducers/favoriteReducer.js.map +1 -1
  718. package/react/reducers/linkerReducer.js.map +1 -1
  719. package/react/reducers/menuReducer.js.map +1 -1
  720. package/react/reducers/rootReducer.d.ts +11 -3
  721. package/react/reducers/rootReducer.js.map +1 -1
  722. package/react/reducers/searchReducer.js.map +1 -1
  723. package/react/reducers/smartDesktopDesignerReducer.js +8 -0
  724. package/react/reducers/smartDesktopDesignerReducer.js.map +1 -1
  725. package/react/reducers/toolbarReducer.js.map +1 -1
  726. package/react/reducers/workspaceReducer.js.map +1 -1
  727. package/react/store.d.ts +22 -6
  728. package/react/store.js.map +1 -1
  729. package/react/types/advancedAppLauncherTypes.js.map +1 -1
  730. package/react/types/dashbarTypes.js.map +1 -1
  731. package/react/types/favoriteTypes.js.map +1 -1
  732. package/react/types/fdc3.d.ts +2 -2
  733. package/react/types/fdc3.js.map +1 -1
  734. package/react/types/hotkeyTypes.js.map +1 -1
  735. package/react/types/iconTypes.js.map +1 -1
  736. package/react/types/linkerTypes.js.map +1 -1
  737. package/react/types/searchTypes.d.ts +1 -8
  738. package/react/types/searchTypes.js.map +1 -1
  739. package/react/types/smartDesktopDesignerTypes.d.ts +8 -2
  740. package/react/types/smartDesktopDesignerTypes.js.map +1 -1
  741. package/react/types/windowTitleBar.d.ts +4 -2
  742. package/react/types/windowTitleBar.js.map +1 -1
  743. package/react/types/workspaceTypes.js.map +1 -1
  744. package/react/components/common/FontSizeSelector.d.ts +0 -7
  745. package/react/components/common/FontSizeSelector.js +0 -42
  746. package/react/components/common/FontSizeSelector.js.map +0 -1
  747. package/react/components/common/stories/FontSizeSelector.stories.d.ts +0 -12
  748. package/react/components/common/stories/FontSizeSelector.stories.js +0 -24
  749. package/react/components/common/stories/FontSizeSelector.stories.js.map +0 -1
  750. package/react/components/smartDesktopDesigner/ApplicationList.d.ts +0 -15
  751. package/react/components/smartDesktopDesigner/ApplicationList.js +0 -56
  752. package/react/components/smartDesktopDesigner/ApplicationList.js.map +0 -1
  753. package/react/components/smartDesktopDesigner/stories/ApplicationList.stories.d.ts +0 -15
  754. package/react/components/smartDesktopDesigner/stories/ApplicationList.stories.js.map +0 -1
  755. package/react/components/smartDesktopDesigner/tests/ApplicationList.spec.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"FinsembleDialogButton.spec.js","sourceRoot":"","sources":["../../../../src/components/legacyControls/tests/FinsembleDialogButton.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\";\r\nimport { mount } from \"enzyme\";\r\nimport { describe, it } from \"mocha\";\r\nimport { expect } from \"chai\";\r\nimport sinon from \"sinon\";\r\nimport { Basic, NoChildren, NoShow, CustomClass, AltButtonSize, tmp } from \"../stories/FinsembleDialogButton.stories\";\r\nimport { FinsembleDialogButtonProps } from \"../FinsembleDialogButton\";\r\n\r\n// Necessary to allow sinon to work with mocked actions (which are shown in the Actions panel in Storybook)\r\nimport addons, { mockChannel } from \"@storybook/addons\";\r\naddons.setChannel(mockChannel());\r\n\r\ndescribe(\"<FinsembleDialogButton/>\", () => {\r\n\tit(\"should display text\", () => {\r\n\t\tconst wrapper = mount(<Basic {...(Basic.args as FinsembleDialogButtonProps & tmp)} />);\r\n\t\texpect(wrapper.find(\"div\").text()).to.equal(\"Test\");\r\n\t});\r\n\r\n\tit(\"should not be visible if show is false\", () => {\r\n\t\tconst wrapper = mount(<NoShow {...(NoShow.args as FinsembleDialogButtonProps & tmp)} />);\r\n\t\texpect(wrapper.find(\"div\").exists()).to.be.false;\r\n\t});\r\n\r\n\tit(\"should not display text if none is provided\", () => {\r\n\t\tconst wrapper = mount(<NoChildren {...(NoChildren.args as FinsembleDialogButtonProps & tmp)} />);\r\n\t\texpect(wrapper.find(\"div\").text()).to.be.empty;\r\n\t});\r\n\r\n\tit(\"should include custom class if provided\", () => {\r\n\t\tconst wrapper = mount(<CustomClass {...(CustomClass.args as FinsembleDialogButtonProps & tmp)} />);\r\n\t\texpect(wrapper.find(\"div\").prop(\"className\")).to.contain(CustomClass.args?.className);\r\n\t});\r\n\r\n\tit(\"should include alternative button size if provided\", () => {\r\n\t\tconst wrapper = mount(<AltButtonSize {...(AltButtonSize.args as FinsembleDialogButtonProps & tmp)} />);\r\n\t\texpect(wrapper.find(\"div\").prop(\"className\")).to.contain(\"fsbl-button-lg\");\r\n\t});\r\n\r\n\tit(\"should call button click action if available\", () => {\r\n\t\tconst buttonSpy = sinon.spy(Basic.args as FinsembleDialogButtonProps, \"onClick\");\r\n\t\tconst wrapper = mount(<Basic {...(Basic.args as FinsembleDialogButtonProps & tmp)} />);\r\n\t\twrapper.find(\"div\").simulate(\"click\");\r\n\t\texpect(buttonSpy.calledOnce).to.be.true;\r\n\t});\r\n});\r\n"]}
1
+ {"version":3,"file":"FinsembleDialogButton.spec.js","sourceRoot":"","sources":["../../../../src/components/legacyControls/tests/FinsembleDialogButton.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { mount } from \"enzyme\";\nimport { describe, it } from \"mocha\";\nimport { expect } from \"chai\";\nimport sinon from \"sinon\";\nimport { Basic, NoChildren, NoShow, CustomClass, AltButtonSize, tmp } from \"../stories/FinsembleDialogButton.stories\";\nimport { FinsembleDialogButtonProps } from \"../FinsembleDialogButton\";\n\n// Necessary to allow sinon to work with mocked actions (which are shown in the Actions panel in Storybook)\nimport addons, { mockChannel } from \"@storybook/addons\";\naddons.setChannel(mockChannel());\n\ndescribe(\"<FinsembleDialogButton/>\", () => {\n\tit(\"should display text\", () => {\n\t\tconst wrapper = mount(<Basic {...(Basic.args as FinsembleDialogButtonProps & tmp)} />);\n\t\texpect(wrapper.find(\"div\").text()).to.equal(\"Test\");\n\t});\n\n\tit(\"should not be visible if show is false\", () => {\n\t\tconst wrapper = mount(<NoShow {...(NoShow.args as FinsembleDialogButtonProps & tmp)} />);\n\t\texpect(wrapper.find(\"div\").exists()).to.be.false;\n\t});\n\n\tit(\"should not display text if none is provided\", () => {\n\t\tconst wrapper = mount(<NoChildren {...(NoChildren.args as FinsembleDialogButtonProps & tmp)} />);\n\t\texpect(wrapper.find(\"div\").text()).to.be.empty;\n\t});\n\n\tit(\"should include custom class if provided\", () => {\n\t\tconst wrapper = mount(<CustomClass {...(CustomClass.args as FinsembleDialogButtonProps & tmp)} />);\n\t\texpect(wrapper.find(\"div\").prop(\"className\")).to.contain(CustomClass.args?.className);\n\t});\n\n\tit(\"should include alternative button size if provided\", () => {\n\t\tconst wrapper = mount(<AltButtonSize {...(AltButtonSize.args as FinsembleDialogButtonProps & tmp)} />);\n\t\texpect(wrapper.find(\"div\").prop(\"className\")).to.contain(\"fsbl-button-lg\");\n\t});\n\n\tit(\"should call button click action if available\", () => {\n\t\tconst buttonSpy = sinon.spy(Basic.args as FinsembleDialogButtonProps, \"onClick\");\n\t\tconst wrapper = mount(<Basic {...(Basic.args as FinsembleDialogButtonProps & tmp)} />);\n\t\twrapper.find(\"div\").simulate(\"click\");\n\t\texpect(buttonSpy.calledOnce).to.be.true;\n\t});\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"FinsembleDialogQuestion.spec.js","sourceRoot":"","sources":["../../../../src/components/legacyControls/tests/FinsembleDialogQuestion.spec.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAO,MAAM,4CAA4C,CAAC;AAGxE,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC3C,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;;QAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,KAAK,oBAAM,KAAK,CAAC,IAA2C,EAAI,CAAC,CAAC;QACzF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAA,KAAK,CAAC,IAAI,0CAAE,QAAQ,CAAC,CAAC;QACzF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAA,KAAK,CAAC,IAAI,0CAAE,QAAQ,CAAC,CAAC;IAC1F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;;QAClD,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,KAAK,oBAAM,KAAK,CAAC,IAA2C,EAAI,CAAC,CAAC;QACzF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAA,KAAK,CAAC,IAAI,0CAAE,SAAS,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\r\nimport { mount } from \"enzyme\";\r\nimport { describe, it } from \"mocha\";\r\nimport { expect } from \"chai\";\r\nimport { Basic, tmp } from \"../stories/FinsembleDialogQuestion.stories\";\r\nimport { FinsembleDialogQuestionProps } from \"../FinsembleDialogQuestion\";\r\n\r\ndescribe(\"<FinsembleDialogQuestion/>\", () => {\r\n\tit(\"should display text\", () => {\r\n\t\tconst wrapper = mount(<Basic {...(Basic.args as FinsembleDialogQuestionProps & tmp)} />);\r\n\t\texpect(wrapper.find(\"div\").text(), \"Includes question\").to.contain(Basic.args?.question);\r\n\t\texpect(wrapper.find(\"div\").text(), \"Includes children\").to.contain(Basic.args?.children);\r\n\t});\r\n\r\n\tit(\"should include custom class if provided\", () => {\r\n\t\tconst wrapper = mount(<Basic {...(Basic.args as FinsembleDialogQuestionProps & tmp)} />);\r\n\t\texpect(wrapper.find(\"div\").prop(\"className\")).to.contain(Basic.args?.className);\r\n\t});\r\n});\r\n"]}
1
+ {"version":3,"file":"FinsembleDialogQuestion.spec.js","sourceRoot":"","sources":["../../../../src/components/legacyControls/tests/FinsembleDialogQuestion.spec.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAO,MAAM,4CAA4C,CAAC;AAGxE,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC3C,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;;QAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,KAAK,oBAAM,KAAK,CAAC,IAA2C,EAAI,CAAC,CAAC;QACzF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAA,KAAK,CAAC,IAAI,0CAAE,QAAQ,CAAC,CAAC;QACzF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAA,KAAK,CAAC,IAAI,0CAAE,QAAQ,CAAC,CAAC;IAC1F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;;QAClD,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,KAAK,oBAAM,KAAK,CAAC,IAA2C,EAAI,CAAC,CAAC;QACzF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAA,KAAK,CAAC,IAAI,0CAAE,SAAS,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\nimport { mount } from \"enzyme\";\nimport { describe, it } from \"mocha\";\nimport { expect } from \"chai\";\nimport { Basic, tmp } from \"../stories/FinsembleDialogQuestion.stories\";\nimport { FinsembleDialogQuestionProps } from \"../FinsembleDialogQuestion\";\n\ndescribe(\"<FinsembleDialogQuestion/>\", () => {\n\tit(\"should display text\", () => {\n\t\tconst wrapper = mount(<Basic {...(Basic.args as FinsembleDialogQuestionProps & tmp)} />);\n\t\texpect(wrapper.find(\"div\").text(), \"Includes question\").to.contain(Basic.args?.question);\n\t\texpect(wrapper.find(\"div\").text(), \"Includes children\").to.contain(Basic.args?.children);\n\t});\n\n\tit(\"should include custom class if provided\", () => {\n\t\tconst wrapper = mount(<Basic {...(Basic.args as FinsembleDialogQuestionProps & tmp)} />);\n\t\texpect(wrapper.find(\"div\").prop(\"className\")).to.contain(Basic.args?.className);\n\t});\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"FinsembleDialogTextInput.spec.js","sourceRoot":"","sources":["../../../../src/components/legacyControls/tests/FinsembleDialogTextInput.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\";\r\nimport { mount } from \"enzyme\";\r\nimport { describe, it } from \"mocha\";\r\nimport { expect } from \"chai\";\r\nimport sinon from \"sinon\";\r\nimport {\r\n\tBasic,\r\n\tAutoFocus,\r\n\tMaxLength,\r\n\tPlaceholder,\r\n\tWithLabel,\r\n\tWithPresetValue,\r\n\tNumbersOnly,\r\n} from \"../stories/FinsembleDialogTextInput.stories\";\r\nimport { FinsembleDialogTextInputProps } from \"../FinsembleDialogTextInput\";\r\nimport { accessibilityAssessor } from \"../../smartDesktopDesigner/tests/a11y_helper\";\r\n\r\n// Necessary to allow sinon to work with mocked actions (which are shown in the Actions panel in Storybook)\r\nimport addons, { mockChannel } from \"@storybook/addons\";\r\naddons.setChannel(mockChannel());\r\n\r\ndescribe(\"<FinsembleDialogTextInput/>\", () => {\r\n\tafterEach(() => {\r\n\t\tsinon.restore();\r\n\t});\r\n\r\n\tit(\"should pass accessibility tests\", async () => {\r\n\t\tconst wrapper = mount(<WithLabel {...(WithLabel.args as FinsembleDialogTextInputProps)} />);\r\n\t\texpect(await accessibilityAssessor(wrapper)).to.be.true;\r\n\t});\r\n\tit(\"should auto focus when autofocus=true\", () => {\r\n\t\tconst wrapper = mount(<AutoFocus {...(AutoFocus.args as FinsembleDialogTextInputProps)} />);\r\n\t\texpect(wrapper.find(\"input\").prop(\"autoFocus\")).to.be.true;\r\n\t});\r\n\tit(\"should not auto focus when autofocus=false\", () => {\r\n\t\tconst wrapper = mount(<Basic {...(Basic.args as FinsembleDialogTextInputProps)} />);\r\n\t\texpect(wrapper.find(\"input\").prop(\"autoFocus\")).to.be.false;\r\n\t});\r\n\tit(\"should call input callback function\", () => {\r\n\t\tconst buttonSpy = sinon.spy(Basic.args as FinsembleDialogTextInputProps, \"onInputChange\");\r\n\t\tconst wrapper = mount(<Basic {...(Basic.args as FinsembleDialogTextInputProps)} />);\r\n\t\twrapper.find(\"input\").simulate(\"change\", {\r\n\t\t\ttarget: {\r\n\t\t\t\tvalue: \"Text\",\r\n\t\t\t},\r\n\t\t});\r\n\t\texpect(buttonSpy.calledOnce).to.be.true;\r\n\t});\r\n\tit(\"should include label when provided\", () => {\r\n\t\tconst wrapper = mount(<WithLabel {...(WithLabel.args as FinsembleDialogTextInputProps)} />);\r\n\t\texpect(wrapper.find(\"label\").text()).to.not.be.empty;\r\n\t});\r\n\tit(\"should not include label when not provided\", () => {\r\n\t\tconst wrapper = mount(<Basic {...(Basic.args as FinsembleDialogTextInputProps)} />);\r\n\t\texpect(wrapper.find(\"label\").text()).to.be.empty;\r\n\t});\r\n\tit(\"should include placeholder, which is not treated as value\", () => {\r\n\t\tconst wrapper = mount(<Placeholder {...(Placeholder.args as FinsembleDialogTextInputProps)} />);\r\n\t\texpect(wrapper.find(\"input\").prop(\"placeholder\"), \"Has a placeholder property\").to.equal(\r\n\t\t\tPlaceholder.args?.placeholder\r\n\t\t);\r\n\t\texpect(wrapper.find(\"input\").prop(\"value\"), \"Has not set the value property\").to.be.empty;\r\n\t});\r\n\tit(\"should not allow input of greater than maxLength\", () => {\r\n\t\tconst wrapper = mount(<MaxLength {...(MaxLength.args as FinsembleDialogTextInputProps)} />);\r\n\t\texpect(wrapper.find(\"input\").prop(\"maxLength\")).to.equal(5);\r\n\t});\r\n\tit(\"should handle presetValue\", () => {\r\n\t\tconst wrapper = mount(<WithPresetValue {...(WithPresetValue.args as FinsembleDialogTextInputProps)} />);\r\n\t\texpect(wrapper.find(\"input\").prop(\"value\"), \"Has not set the value property\").to.be.not.undefined;\r\n\t});\r\n\tit(\"should not display letter inputs when only numbers are allowed\", () => {\r\n\t\tconst buttonSpy = sinon.spy(NumbersOnly.args as FinsembleDialogTextInputProps, \"onInputChange\");\r\n\t\tconst wrapper = mount(<NumbersOnly {...(NumbersOnly.args as FinsembleDialogTextInputProps)} />);\r\n\t\twrapper.find(\"input\").simulate(\"change\", {\r\n\t\t\ttarget: {\r\n\t\t\t\tvalue: \"123Text\",\r\n\t\t\t},\r\n\t\t});\r\n\t\texpect(buttonSpy.calledOnce).to.be.false;\r\n\t\texpect(wrapper.find(\"input\").prop(\"value\")).to.be.empty;\r\n\t});\r\n\tit(\"should display number inputs when only numbers are allowed\", () => {\r\n\t\tconst inputValue = \"12345\";\r\n\t\tconst buttonSpy = sinon.spy(NumbersOnly.args as FinsembleDialogTextInputProps, \"onInputChange\");\r\n\t\tconst wrapper = mount(<NumbersOnly {...(NumbersOnly.args as FinsembleDialogTextInputProps)} />);\r\n\t\twrapper.find(\"input\").simulate(\"change\", {\r\n\t\t\ttarget: {\r\n\t\t\t\tvalue: inputValue,\r\n\t\t\t},\r\n\t\t});\r\n\t\texpect(buttonSpy.calledOnce).to.be.true;\r\n\t\texpect(wrapper.find(\"input\").prop(\"value\")).to.equal(inputValue);\r\n\t});\r\n});\r\n"]}
1
+ {"version":3,"file":"FinsembleDialogTextInput.spec.js","sourceRoot":"","sources":["../../../../src/components/legacyControls/tests/FinsembleDialogTextInput.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { mount } from \"enzyme\";\nimport { describe, it } from \"mocha\";\nimport { expect } from \"chai\";\nimport sinon from \"sinon\";\nimport {\n\tBasic,\n\tAutoFocus,\n\tMaxLength,\n\tPlaceholder,\n\tWithLabel,\n\tWithPresetValue,\n\tNumbersOnly,\n} from \"../stories/FinsembleDialogTextInput.stories\";\nimport { FinsembleDialogTextInputProps } from \"../FinsembleDialogTextInput\";\nimport { accessibilityAssessor } from \"../../smartDesktopDesigner/tests/a11y_helper\";\n\n// Necessary to allow sinon to work with mocked actions (which are shown in the Actions panel in Storybook)\nimport addons, { mockChannel } from \"@storybook/addons\";\naddons.setChannel(mockChannel());\n\ndescribe(\"<FinsembleDialogTextInput/>\", () => {\n\tafterEach(() => {\n\t\tsinon.restore();\n\t});\n\n\tit(\"should pass accessibility tests\", async () => {\n\t\tconst wrapper = mount(<WithLabel {...(WithLabel.args as FinsembleDialogTextInputProps)} />);\n\t\texpect(await accessibilityAssessor(wrapper)).to.be.true;\n\t});\n\tit(\"should auto focus when autofocus=true\", () => {\n\t\tconst wrapper = mount(<AutoFocus {...(AutoFocus.args as FinsembleDialogTextInputProps)} />);\n\t\texpect(wrapper.find(\"input\").prop(\"autoFocus\")).to.be.true;\n\t});\n\tit(\"should not auto focus when autofocus=false\", () => {\n\t\tconst wrapper = mount(<Basic {...(Basic.args as FinsembleDialogTextInputProps)} />);\n\t\texpect(wrapper.find(\"input\").prop(\"autoFocus\")).to.be.false;\n\t});\n\tit(\"should call input callback function\", () => {\n\t\tconst buttonSpy = sinon.spy(Basic.args as FinsembleDialogTextInputProps, \"onInputChange\");\n\t\tconst wrapper = mount(<Basic {...(Basic.args as FinsembleDialogTextInputProps)} />);\n\t\twrapper.find(\"input\").simulate(\"change\", {\n\t\t\ttarget: {\n\t\t\t\tvalue: \"Text\",\n\t\t\t},\n\t\t});\n\t\texpect(buttonSpy.calledOnce).to.be.true;\n\t});\n\tit(\"should include label when provided\", () => {\n\t\tconst wrapper = mount(<WithLabel {...(WithLabel.args as FinsembleDialogTextInputProps)} />);\n\t\texpect(wrapper.find(\"label\").text()).to.not.be.empty;\n\t});\n\tit(\"should not include label when not provided\", () => {\n\t\tconst wrapper = mount(<Basic {...(Basic.args as FinsembleDialogTextInputProps)} />);\n\t\texpect(wrapper.find(\"label\").text()).to.be.empty;\n\t});\n\tit(\"should include placeholder, which is not treated as value\", () => {\n\t\tconst wrapper = mount(<Placeholder {...(Placeholder.args as FinsembleDialogTextInputProps)} />);\n\t\texpect(wrapper.find(\"input\").prop(\"placeholder\"), \"Has a placeholder property\").to.equal(\n\t\t\tPlaceholder.args?.placeholder\n\t\t);\n\t\texpect(wrapper.find(\"input\").prop(\"value\"), \"Has not set the value property\").to.be.empty;\n\t});\n\tit(\"should not allow input of greater than maxLength\", () => {\n\t\tconst wrapper = mount(<MaxLength {...(MaxLength.args as FinsembleDialogTextInputProps)} />);\n\t\texpect(wrapper.find(\"input\").prop(\"maxLength\")).to.equal(5);\n\t});\n\tit(\"should handle presetValue\", () => {\n\t\tconst wrapper = mount(<WithPresetValue {...(WithPresetValue.args as FinsembleDialogTextInputProps)} />);\n\t\texpect(wrapper.find(\"input\").prop(\"value\"), \"Has not set the value property\").to.be.not.undefined;\n\t});\n\tit(\"should not display letter inputs when only numbers are allowed\", () => {\n\t\tconst buttonSpy = sinon.spy(NumbersOnly.args as FinsembleDialogTextInputProps, \"onInputChange\");\n\t\tconst wrapper = mount(<NumbersOnly {...(NumbersOnly.args as FinsembleDialogTextInputProps)} />);\n\t\twrapper.find(\"input\").simulate(\"change\", {\n\t\t\ttarget: {\n\t\t\t\tvalue: \"123Text\",\n\t\t\t},\n\t\t});\n\t\texpect(buttonSpy.calledOnce).to.be.false;\n\t\texpect(wrapper.find(\"input\").prop(\"value\")).to.be.empty;\n\t});\n\tit(\"should display number inputs when only numbers are allowed\", () => {\n\t\tconst inputValue = \"12345\";\n\t\tconst buttonSpy = sinon.spy(NumbersOnly.args as FinsembleDialogTextInputProps, \"onInputChange\");\n\t\tconst wrapper = mount(<NumbersOnly {...(NumbersOnly.args as FinsembleDialogTextInputProps)} />);\n\t\twrapper.find(\"input\").simulate(\"change\", {\n\t\t\ttarget: {\n\t\t\t\tvalue: inputValue,\n\t\t\t},\n\t\t});\n\t\texpect(buttonSpy.calledOnce).to.be.true;\n\t\texpect(wrapper.find(\"input\").prop(\"value\")).to.equal(inputValue);\n\t});\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"LinkerMenu.js","sourceRoot":"","sources":["../../../src/components/linker/LinkerMenu.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\r\n * Copyright 2020 by ChartIQ, Inc.\r\n * All rights reserved.\r\n */\r\nimport React, { useEffect, useState, useRef } from \"react\";\r\nimport { FinsembleProvider } from \"../FinsembleProvider\";\r\nimport { useDispatch, useSelector, Provider } from \"react-redux\";\r\nimport { LinkerStore, actions, store } from \"./remoteRedux\";\r\nimport \"../../assets/css/linkerWindow.css\";\r\nimport { LinkerElement as LinkerElementDeprecated } from \"./LinkerMenuDeprecated\";\r\n\r\ntype Channel = LinkerStore[\"allChannels\"][0];\r\ntype JoinedChannels = string[];\r\n\r\nconst LinkerElement: React.FunctionComponent = () => {\r\n\tconst state: LinkerStore = useSelector((currentState: any) => currentState);\r\n\tconst dispatch = useDispatch();\r\n\tconst { activeWindowName } = state;\r\n\tconst joinedChannels: JoinedChannels = state?.clients?.[activeWindowName ?? \"\"]?.joinedChannels ?? [];\r\n\tconst allChannels: Channel[] = state?.allChannels ?? [];\r\n\t// Track which menu item has focus for keyboard users\r\n\tconst [focusedMenuIndex, setFocusedMenuIndex] = useState(0);\r\n\tconst containerElement = useRef<HTMLDivElement>(null);\r\n\r\n\tconst hideWindow = () => {\r\n\t\t// Must blur or you end up having to click twice to show the window.\r\n\t\t// If you just hide, the first time the user clicks\r\n\t\t// on the linker button, the blur will trigger, which will hide the window.\r\n\t\tfinsembleWindow.blur();\r\n\t\tfinsembleWindow.hide();\r\n\t\tsetFocusedMenuIndex(0);\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\t// Move focus to container element, so that keystrokes can be captured for keyboard users (accessibility)\r\n\t\tcontainerElement.current && containerElement.current.focus();\r\n\r\n\t\t// Without these events, the linker menu is opened but doesn't focus, so the blur event never fires, and the menu is left\r\n\t\t// orphaned and sad.\r\n\r\n\t\tconst focusWindow = () => {\r\n\t\t\tfinsembleWindow.focus();\r\n\t\t};\r\n\r\n\t\tFSBL.Clients.Logger.system.log(\"Linker component is mounted. Initializing.\");\r\n\t\tfinsembleWindow.addEventListener(\"blurred\", hideWindow);\r\n\t\tfinsembleWindow.addEventListener(\"shown\", focusWindow);\r\n\r\n\t\treturn () => {\r\n\t\t\tFSBL.Clients.Logger.system.log(\"Linker component is unmounted. Cleaning up the event listeners.\");\r\n\t\t\tfinsembleWindow.removeEventListener(\"blurred\", hideWindow);\r\n\t\t\tfinsembleWindow.removeEventListener(\"shown\", focusWindow);\r\n\t\t};\r\n\t}, []);\r\n\r\n\tconst toggleChannel = (name: string) => {\r\n\t\t// These action creators can now be imported from finsemble-core\r\n\t\tif (activeWindowName) {\r\n\t\t\tif (joinedChannels.includes(name)) {\r\n\t\t\t\tdispatch(\r\n\t\t\t\t\tactions.unlinkChannels({\r\n\t\t\t\t\t\ttype: \"linker/unlinkChannels\",\r\n\t\t\t\t\t\tpayload: {\r\n\t\t\t\t\t\t\tchannels: [name],\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tmeta: {\r\n\t\t\t\t\t\t\twindowName: activeWindowName,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t})\r\n\t\t\t\t);\r\n\t\t\t} else {\r\n\t\t\t\tdispatch(\r\n\t\t\t\t\tactions.linkChannels({\r\n\t\t\t\t\t\ttype: \"linker/linkChannels\",\r\n\t\t\t\t\t\tpayload: {\r\n\t\t\t\t\t\t\tchannels: [name],\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tmeta: {\r\n\t\t\t\t\t\t\twindowName: activeWindowName,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t})\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t\thideWindow();\r\n\t};\r\n\r\n\tconst channelElements =\r\n\t\tactiveWindowName &&\r\n\t\tallChannels.map(({ name, cssClassName }, index: number) => {\r\n\t\t\tconst active = joinedChannels.includes(name);\r\n\r\n\t\t\treturn (\r\n\t\t\t\t<div\r\n\t\t\t\t\tkey={name}\r\n\t\t\t\t\tclassName={`channel-wrapper ${cssClassName} ${focusedMenuIndex === index ? \"focused\" : \"\"}`}\r\n\t\t\t\t\tonClick={() => toggleChannel(name)}\r\n\t\t\t\t>\r\n\t\t\t\t\t<div className=\"channel-label\">{name}</div>\r\n\t\t\t\t\t<div className=\"linker-glyph\">{active ? <i className=\"active-linker-group ff-check-mark\"></i> : null}</div>\r\n\t\t\t\t</div>\r\n\t\t\t);\r\n\t\t});\r\n\r\n\tconst manageKeyboardNavigation = (evt: React.KeyboardEvent<HTMLDivElement>) => {\r\n\t\tconst lastChannelIndex = allChannels.length - 1;\r\n\t\tif (evt.key === \"ArrowDown\") {\r\n\t\t\tsetFocusedMenuIndex(focusedMenuIndex >= lastChannelIndex ? 0 : focusedMenuIndex + 1);\r\n\t\t} else if (evt.key === \"ArrowUp\") {\r\n\t\t\tsetFocusedMenuIndex(focusedMenuIndex <= 0 ? lastChannelIndex : focusedMenuIndex - 1);\r\n\t\t} else if (evt.key === \"Enter\") {\r\n\t\t\ttoggleChannel(allChannels[focusedMenuIndex].name);\r\n\t\t} else if (evt.key === \"Escape\") {\r\n\t\t\thideWindow();\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t<div\r\n\t\t\tclassName=\"linkerContainer\"\r\n\t\t\ttabIndex={0}\r\n\t\t\trole=\"menu\"\r\n\t\t\tonKeyDown={manageKeyboardNavigation}\r\n\t\t\tref={containerElement}\r\n\t\t>\r\n\t\t\t{channelElements}\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\n/**\r\n * Picks whether to display the current or deprecated LinkerElement.\r\n * If config `finsemble.servicesConfig.linker.enabled` is set to true then the deprecated version will be used.\r\n *\r\n * This code should be removed once the linkerClient is removed from Finsemble.\r\n */\r\nconst WhichLinker = () => {\r\n\tconst [whichLinker, setWhichLinker] = React.useState(\"\");\r\n\r\n\tuseEffect(() => {\r\n\t\t(async () => {\r\n\t\t\tconst { data } = await FSBL.Clients.ConfigClient.getValue({\r\n\t\t\t\tfield: \"finsemble.servicesConfig.linker.enabled\",\r\n\t\t\t});\r\n\t\t\tif (data) {\r\n\t\t\t\tsetWhichLinker(\"LinkerElementDeprecated\");\r\n\t\t\t} else {\r\n\t\t\t\tsetWhichLinker(\"LinkerElement\");\r\n\t\t\t}\r\n\t\t})();\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t{whichLinker === \"LinkerElement\" && (\r\n\t\t\t\t<Provider store={store}>\r\n\t\t\t\t\t<LinkerElement />\r\n\t\t\t\t</Provider>\r\n\t\t\t)}\r\n\t\t\t{whichLinker === \"LinkerElementDeprecated\" && <LinkerElementDeprecated />}\r\n\t\t</>\r\n\t);\r\n};\r\n\r\n/**\r\n * The Linker icon on the window titlebar that launches the linker menu.\r\n */\r\nexport const LinkerMenu = () => (\r\n\t<FinsembleProvider>\r\n\t\t<WhichLinker />\r\n\t</FinsembleProvider>\r\n);\r\n"]}
1
+ {"version":3,"file":"LinkerMenu.js","sourceRoot":"","sources":["../../../src/components/linker/LinkerMenu.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright 2020 by ChartIQ, Inc.\n * All rights reserved.\n */\nimport React, { useEffect, useState, useRef } from \"react\";\nimport { FinsembleProvider } from \"../FinsembleProvider\";\nimport { useDispatch, useSelector, Provider } from \"react-redux\";\nimport { LinkerStore, actions, store } from \"./remoteRedux\";\nimport \"../../assets/css/linkerWindow.css\";\nimport { LinkerElement as LinkerElementDeprecated } from \"./LinkerMenuDeprecated\";\n\ntype Channel = LinkerStore[\"allChannels\"][0];\ntype JoinedChannels = string[];\n\nconst LinkerElement: React.FunctionComponent = () => {\n\tconst state: LinkerStore = useSelector((currentState: any) => currentState);\n\tconst dispatch = useDispatch();\n\tconst { activeWindowName } = state;\n\tconst joinedChannels: JoinedChannels = state?.clients?.[activeWindowName ?? \"\"]?.joinedChannels ?? [];\n\tconst allChannels: Channel[] = state?.allChannels ?? [];\n\t// Track which menu item has focus for keyboard users\n\tconst [focusedMenuIndex, setFocusedMenuIndex] = useState(0);\n\tconst containerElement = useRef<HTMLDivElement>(null);\n\n\tconst hideWindow = () => {\n\t\t// Must blur or you end up having to click twice to show the window.\n\t\t// If you just hide, the first time the user clicks\n\t\t// on the linker button, the blur will trigger, which will hide the window.\n\t\tfinsembleWindow.blur();\n\t\tfinsembleWindow.hide();\n\t\tsetFocusedMenuIndex(0);\n\t};\n\n\tuseEffect(() => {\n\t\t// Move focus to container element, so that keystrokes can be captured for keyboard users (accessibility)\n\t\tcontainerElement.current && containerElement.current.focus();\n\n\t\t// Without these events, the linker menu is opened but doesn't focus, so the blur event never fires, and the menu is left\n\t\t// orphaned and sad.\n\n\t\tconst focusWindow = () => {\n\t\t\tfinsembleWindow.focus();\n\t\t};\n\n\t\tFSBL.Clients.Logger.system.log(\"Linker component is mounted. Initializing.\");\n\t\tfinsembleWindow.addEventListener(\"blurred\", hideWindow);\n\t\tfinsembleWindow.addEventListener(\"shown\", focusWindow);\n\n\t\treturn () => {\n\t\t\tFSBL.Clients.Logger.system.log(\"Linker component is unmounted. Cleaning up the event listeners.\");\n\t\t\tfinsembleWindow.removeEventListener(\"blurred\", hideWindow);\n\t\t\tfinsembleWindow.removeEventListener(\"shown\", focusWindow);\n\t\t};\n\t}, []);\n\n\tconst toggleChannel = (name: string) => {\n\t\t// These action creators can now be imported from finsemble-core\n\t\tif (activeWindowName) {\n\t\t\tif (joinedChannels.includes(name)) {\n\t\t\t\tdispatch(\n\t\t\t\t\tactions.unlinkChannels({\n\t\t\t\t\t\ttype: \"linker/unlinkChannels\",\n\t\t\t\t\t\tpayload: {\n\t\t\t\t\t\t\tchannels: [name],\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\twindowName: activeWindowName,\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tdispatch(\n\t\t\t\t\tactions.linkChannels({\n\t\t\t\t\t\ttype: \"linker/linkChannels\",\n\t\t\t\t\t\tpayload: {\n\t\t\t\t\t\t\tchannels: [name],\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\twindowName: activeWindowName,\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\thideWindow();\n\t};\n\n\tconst channelElements =\n\t\tactiveWindowName &&\n\t\tallChannels.map(({ name, cssClassName }, index: number) => {\n\t\t\tconst active = joinedChannels.includes(name);\n\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tkey={name}\n\t\t\t\t\tclassName={`channel-wrapper ${cssClassName} ${focusedMenuIndex === index ? \"focused\" : \"\"}`}\n\t\t\t\t\tonClick={() => toggleChannel(name)}\n\t\t\t\t>\n\t\t\t\t\t<div className=\"channel-label\">{name}</div>\n\t\t\t\t\t<div className=\"linker-glyph\">{active ? <i className=\"active-linker-group ff-check-mark\"></i> : null}</div>\n\t\t\t\t</div>\n\t\t\t);\n\t\t});\n\n\tconst manageKeyboardNavigation = (evt: React.KeyboardEvent<HTMLDivElement>) => {\n\t\tconst lastChannelIndex = allChannels.length - 1;\n\t\tif (evt.key === \"ArrowDown\") {\n\t\t\tsetFocusedMenuIndex(focusedMenuIndex >= lastChannelIndex ? 0 : focusedMenuIndex + 1);\n\t\t} else if (evt.key === \"ArrowUp\") {\n\t\t\tsetFocusedMenuIndex(focusedMenuIndex <= 0 ? lastChannelIndex : focusedMenuIndex - 1);\n\t\t} else if (evt.key === \"Enter\") {\n\t\t\ttoggleChannel(allChannels[focusedMenuIndex].name);\n\t\t} else if (evt.key === \"Escape\") {\n\t\t\thideWindow();\n\t\t}\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"linkerContainer\"\n\t\t\ttabIndex={0}\n\t\t\trole=\"menu\"\n\t\t\tonKeyDown={manageKeyboardNavigation}\n\t\t\tref={containerElement}\n\t\t>\n\t\t\t{channelElements}\n\t\t</div>\n\t);\n};\n\n/**\n * Picks whether to display the current or deprecated LinkerElement.\n * If config `finsemble.servicesConfig.linker.enabled` is set to true then the deprecated version will be used.\n *\n * This code should be removed once the linkerClient is removed from Finsemble.\n */\nconst WhichLinker = () => {\n\tconst [whichLinker, setWhichLinker] = React.useState(\"\");\n\n\tuseEffect(() => {\n\t\t(async () => {\n\t\t\tconst { data } = await FSBL.Clients.ConfigClient.getValue({\n\t\t\t\tfield: \"finsemble.servicesConfig.linker.enabled\",\n\t\t\t});\n\t\t\tif (data) {\n\t\t\t\tsetWhichLinker(\"LinkerElementDeprecated\");\n\t\t\t} else {\n\t\t\t\tsetWhichLinker(\"LinkerElement\");\n\t\t\t}\n\t\t})();\n\t}, []);\n\n\treturn (\n\t\t<>\n\t\t\t{whichLinker === \"LinkerElement\" && (\n\t\t\t\t<Provider store={store}>\n\t\t\t\t\t<LinkerElement />\n\t\t\t\t</Provider>\n\t\t\t)}\n\t\t\t{whichLinker === \"LinkerElementDeprecated\" && <LinkerElementDeprecated />}\n\t\t</>\n\t);\n};\n\n/**\n * The Linker icon on the window titlebar that launches the linker menu.\n */\nexport const LinkerMenu = () => (\n\t<FinsembleProvider>\n\t\t<WhichLinker />\n\t</FinsembleProvider>\n);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"LinkerMenuDeprecated.js","sourceRoot":"","sources":["../../../src/components/linker/LinkerMenuDeprecated.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,mCAAmC,CAAC;AAE3C,MAAM,0BAA0B,GAAG,EAAE,CAAC;AACtC,MAAM,4CAA4C,GAAG,wFAAwF,0BAA0B,WAAW,CAAC;AAEnL,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE;IACjC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAC7B,oKAAoK,CACpK,CAAC;IACF,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,SAAS,EAAE,CAAC;IAE7C,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAc,CAAC;IAC/D,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;QACtF,IAAI,KAAK,GAAG,0BAA0B,GAAG,CAAC,EAAE;YAC3C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;YACxE,OAAO;SACP;QACD,MAAM,UAAU,GAAG,eAAe,KAAK,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG;YACb,eAAe,EAAE,KAAK;YACtB,MAAM,EAAE,aAAa,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,KAAK,EAAE;SACtC,CAAC;QACF,OAAO,CACN,6BAAK,GAAG,EAAE,EAAE,EAAE,SAAS,EAAC,iBAAiB,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC;YACxE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,6BAAK,SAAS,EAAC,eAAe,IAAE,IAAI,CAAO,CAAC,CAAC,CAAC,IAAI;YAC9E,6BAAK,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,IACtC,MAAM,CAAC,CAAC,CAAC,2BAAG,SAAS,EAAC,mCAAmC,GAAK,CAAC,CAAC,CAAC,IAAI,CACjE,CACD,CACN,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,6BAAK,SAAS,EAAC,iBAAiB,IAAE,eAAe,CAAO,CAAC;AACjE,CAAC,CAAC;AAKF,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,CAC/B,oBAAC,iBAAiB;IACjB,oBAAC,aAAa,OAAG,CACE,CACpB,CAAC","sourcesContent":["/*!\r\n * Copyright 2020 by ChartIQ, Inc.\r\n * All rights reserved.\r\n *\r\n * This is a deprecated version of LinkerMenu which uses the linkerClient. It is not compatible with FDC3 interop.\r\n */\r\nimport * as React from \"react\";\r\n\r\nimport { Channel } from \"../../types/linkerTypes\";\r\nimport { useLinker } from \"../../hooks/useLinker\";\r\nimport { FinsembleProvider } from \"../FinsembleProvider\";\r\nimport \"../../assets/css/linkerWindow.css\";\r\n\r\nconst MAXIMUM_CHANNEL_SELECTIONS = 20;\r\nconst HIT_MAXIMUM_CHANNEL_SELECTIONS_ERROR_MESSAGE = `Attempted to render more channels than allowed. UI may look bad displaying more than ${MAXIMUM_CHANNEL_SELECTIONS} channels`;\r\n\r\nexport const LinkerElement = () => {\r\n\tFSBL.Clients.Logger.deprecated(\r\n\t\t\"This is a deprecated version of LinkerMenu which uses the linkerClient. It will be removed in a future Finsemble version. It is not compatible with FDC3 interop.\"\r\n\t);\r\n\tconst { state, toggleChannel } = useLinker();\r\n\r\n\tconst allChannels = Object.values(state.channels) as Channel[];\r\n\tconst channelElements = allChannels.map(({ color, border, name, active, id }, index) => {\r\n\t\tif (index > MAXIMUM_CHANNEL_SELECTIONS - 1) {\r\n\t\t\tFSBL.Clients.Logger.error(HIT_MAXIMUM_CHANNEL_SELECTIONS_ERROR_MESSAGE);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst groupClass = `linkerGroup ${color}`;\r\n\t\tconst style = {\r\n\t\t\tbackgroundColor: color,\r\n\t\t\tborder: `1px solid ${border ?? color}`,\r\n\t\t};\r\n\t\treturn (\r\n\t\t\t<div key={id} className=\"channel-wrapper\" onClick={() => toggleChannel(id)}>\r\n\t\t\t\t{state.isAccessibleLinker ? <div className=\"channel-label\">{name}</div> : null}\r\n\t\t\t\t<div className={groupClass} style={style}>\r\n\t\t\t\t\t{active ? <i className=\"active-linker-group ff-check-mark\"></i> : null}\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t);\r\n\t});\r\n\r\n\treturn <div className=\"linkerContainer\">{channelElements}</div>;\r\n};\r\n\r\n/**\r\n * The Linker icon on the window titlebar that launches the linker menu.\r\n */\r\nexport const LinkerMenu = () => (\r\n\t<FinsembleProvider>\r\n\t\t<LinkerElement />\r\n\t</FinsembleProvider>\r\n);\r\n"]}
1
+ {"version":3,"file":"LinkerMenuDeprecated.js","sourceRoot":"","sources":["../../../src/components/linker/LinkerMenuDeprecated.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,mCAAmC,CAAC;AAE3C,MAAM,0BAA0B,GAAG,EAAE,CAAC;AACtC,MAAM,4CAA4C,GAAG,wFAAwF,0BAA0B,WAAW,CAAC;AAEnL,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE;IACjC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAC7B,oKAAoK,CACpK,CAAC;IACF,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,SAAS,EAAE,CAAC;IAE7C,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAc,CAAC;IAC/D,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;QACtF,IAAI,KAAK,GAAG,0BAA0B,GAAG,CAAC,EAAE;YAC3C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;YACxE,OAAO;SACP;QACD,MAAM,UAAU,GAAG,eAAe,KAAK,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG;YACb,eAAe,EAAE,KAAK;YACtB,MAAM,EAAE,aAAa,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,KAAK,EAAE;SACtC,CAAC;QACF,OAAO,CACN,6BAAK,GAAG,EAAE,EAAE,EAAE,SAAS,EAAC,iBAAiB,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC;YACxE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,6BAAK,SAAS,EAAC,eAAe,IAAE,IAAI,CAAO,CAAC,CAAC,CAAC,IAAI;YAC9E,6BAAK,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,IACtC,MAAM,CAAC,CAAC,CAAC,2BAAG,SAAS,EAAC,mCAAmC,GAAK,CAAC,CAAC,CAAC,IAAI,CACjE,CACD,CACN,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,6BAAK,SAAS,EAAC,iBAAiB,IAAE,eAAe,CAAO,CAAC;AACjE,CAAC,CAAC;AAKF,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,CAC/B,oBAAC,iBAAiB;IACjB,oBAAC,aAAa,OAAG,CACE,CACpB,CAAC","sourcesContent":["/*!\n * Copyright 2020 by ChartIQ, Inc.\n * All rights reserved.\n *\n * This is a deprecated version of LinkerMenu which uses the linkerClient. It is not compatible with FDC3 interop.\n */\nimport * as React from \"react\";\n\nimport { Channel } from \"../../types/linkerTypes\";\nimport { useLinker } from \"../../hooks/useLinker\";\nimport { FinsembleProvider } from \"../FinsembleProvider\";\nimport \"../../assets/css/linkerWindow.css\";\n\nconst MAXIMUM_CHANNEL_SELECTIONS = 20;\nconst HIT_MAXIMUM_CHANNEL_SELECTIONS_ERROR_MESSAGE = `Attempted to render more channels than allowed. UI may look bad displaying more than ${MAXIMUM_CHANNEL_SELECTIONS} channels`;\n\nexport const LinkerElement = () => {\n\tFSBL.Clients.Logger.deprecated(\n\t\t\"This is a deprecated version of LinkerMenu which uses the linkerClient. It will be removed in a future Finsemble version. It is not compatible with FDC3 interop.\"\n\t);\n\tconst { state, toggleChannel } = useLinker();\n\n\tconst allChannels = Object.values(state.channels) as Channel[];\n\tconst channelElements = allChannels.map(({ color, border, name, active, id }, index) => {\n\t\tif (index > MAXIMUM_CHANNEL_SELECTIONS - 1) {\n\t\t\tFSBL.Clients.Logger.error(HIT_MAXIMUM_CHANNEL_SELECTIONS_ERROR_MESSAGE);\n\t\t\treturn;\n\t\t}\n\t\tconst groupClass = `linkerGroup ${color}`;\n\t\tconst style = {\n\t\t\tbackgroundColor: color,\n\t\t\tborder: `1px solid ${border ?? color}`,\n\t\t};\n\t\treturn (\n\t\t\t<div key={id} className=\"channel-wrapper\" onClick={() => toggleChannel(id)}>\n\t\t\t\t{state.isAccessibleLinker ? <div className=\"channel-label\">{name}</div> : null}\n\t\t\t\t<div className={groupClass} style={style}>\n\t\t\t\t\t{active ? <i className=\"active-linker-group ff-check-mark\"></i> : null}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t});\n\n\treturn <div className=\"linkerContainer\">{channelElements}</div>;\n};\n\n/**\n * The Linker icon on the window titlebar that launches the linker menu.\n */\nexport const LinkerMenu = () => (\n\t<FinsembleProvider>\n\t\t<LinkerElement />\n\t</FinsembleProvider>\n);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/linker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC","sourcesContent":["export { LinkerMenu } from \"./LinkerMenu\";\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/linker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC","sourcesContent":["export { LinkerMenu } from \"./LinkerMenu\";\n"]}
@@ -1,5 +1,5 @@
1
1
  import { EnhancedStore } from "@reduxjs/toolkit";
2
- import { services } from "@finsemble/finsemble-core";
2
+ import { services } from "@finsemble/finsemble-api";
3
3
  export declare type LinkerStore = services.Interop.types.LinkerStore;
4
4
  export declare type InteropLinkChannels = services.Interop.modules.linker.InteropLinkChannels;
5
5
  export declare type InteropUnlinkChannels = services.Interop.modules.linker.InteropUnlinkChannels;
@@ -1 +1 @@
1
- {"version":3,"file":"remoteRedux.js","sourceRoot":"","sources":["../../../src/components/linker/remoteRedux.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAiB,MAAM,kBAAkB,CAAC;AAQ/E,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;AAE7B,MAAM,YAAY,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC;AAE3C,MAAM,UAAU,GAAgB;IAC/B,OAAO,EAAE,EAAE;IACX,WAAW,EAAE,EAAE;CACf,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAyC,cAAc,CAAC;IACzE,cAAc,EAAE,UAAU;IAC1B,OAAO,EAAE,YAAY;IACrB,SAAS,EAAE;QACV,WAAW,CAAC,yBAAyB,CAAC,EAAE,MAAM,EAAE,sCAAsC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;KAC1G;CACD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG;IACtB,eAAe,EAAE,YAAY,CAA+B,wBAAwB,CAAC;IACrF,YAAY,EAAE,YAAY,CAAsB,qBAAqB,CAAC;IACtE,cAAc,EAAE,YAAY,CAAwB,uBAAuB,CAAC;CAC5E,CAAC","sourcesContent":["import { configureStore, createAction, EnhancedStore } from \"@reduxjs/toolkit\";\r\nimport { services } from \"@finsemble/finsemble-core\";\r\n\r\nexport type LinkerStore = services.Interop.types.LinkerStore;\r\nexport type InteropLinkChannels = services.Interop.modules.linker.InteropLinkChannels;\r\nexport type InteropUnlinkChannels = services.Interop.modules.linker.InteropUnlinkChannels;\r\nexport type InteropLinkerSetActiveWindow = services.Interop.modules.linker.InteropLinkerSetActiveWindow;\r\n\r\nconst { remoteRedux } = FSBL;\r\n\r\nconst dummyReducer = (state: any) => state;\r\n\r\nconst emptyStore: LinkerStore = {\r\n\tclients: {},\r\n\tallChannels: [],\r\n};\r\n\r\nexport const store: EnhancedStore<LinkerStore, any, any> = configureStore({\r\n\tpreloadedState: emptyStore,\r\n\treducer: dummyReducer,\r\n\tenhancers: [\r\n\t\tremoteRedux.remoteReduxClientEnhancer({ server: \"@@finsemble/remoteRedux/InteropStore\", slice: \"linker\" }),\r\n\t],\r\n});\r\n\r\nexport const actions = {\r\n\tsetActiveWindow: createAction<InteropLinkerSetActiveWindow>(\"linker/setActiveWindow\"),\r\n\tlinkChannels: createAction<InteropLinkChannels>(\"linker/linkChannels\"),\r\n\tunlinkChannels: createAction<InteropUnlinkChannels>(\"linker/unlinkChannels\"),\r\n};\r\n"]}
1
+ {"version":3,"file":"remoteRedux.js","sourceRoot":"","sources":["../../../src/components/linker/remoteRedux.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAiB,MAAM,kBAAkB,CAAC;AAQ/E,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;AAE7B,MAAM,YAAY,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC;AAE3C,MAAM,UAAU,GAAgB;IAC/B,OAAO,EAAE,EAAE;IACX,WAAW,EAAE,EAAE;CACf,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAyC,cAAc,CAAC;IACzE,cAAc,EAAE,UAAU;IAC1B,OAAO,EAAE,YAAY;IACrB,SAAS,EAAE;QACV,WAAW,CAAC,yBAAyB,CAAC,EAAE,MAAM,EAAE,sCAAsC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;KAC1G;CACD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG;IACtB,eAAe,EAAE,YAAY,CAA+B,wBAAwB,CAAC;IACrF,YAAY,EAAE,YAAY,CAAsB,qBAAqB,CAAC;IACtE,cAAc,EAAE,YAAY,CAAwB,uBAAuB,CAAC;CAC5E,CAAC","sourcesContent":["import { configureStore, createAction, EnhancedStore } from \"@reduxjs/toolkit\";\nimport { services } from \"@finsemble/finsemble-api\";\n\nexport type LinkerStore = services.Interop.types.LinkerStore;\nexport type InteropLinkChannels = services.Interop.modules.linker.InteropLinkChannels;\nexport type InteropUnlinkChannels = services.Interop.modules.linker.InteropUnlinkChannels;\nexport type InteropLinkerSetActiveWindow = services.Interop.modules.linker.InteropLinkerSetActiveWindow;\n\nconst { remoteRedux } = FSBL;\n\nconst dummyReducer = (state: any) => state;\n\nconst emptyStore: LinkerStore = {\n\tclients: {},\n\tallChannels: [],\n};\n\nexport const store: EnhancedStore<LinkerStore, any, any> = configureStore({\n\tpreloadedState: emptyStore,\n\treducer: dummyReducer,\n\tenhancers: [\n\t\tremoteRedux.remoteReduxClientEnhancer({ server: \"@@finsemble/remoteRedux/InteropStore\", slice: \"linker\" }),\n\t],\n});\n\nexport const actions = {\n\tsetActiveWindow: createAction<InteropLinkerSetActiveWindow>(\"linker/setActiveWindow\"),\n\tlinkChannels: createAction<InteropLinkChannels>(\"linker/linkChannels\"),\n\tunlinkChannels: createAction<InteropUnlinkChannels>(\"linker/unlinkChannels\"),\n};\n"]}
@@ -5,6 +5,7 @@ export declare type MenuProps = {
5
5
  height?: number;
6
6
  id?: string;
7
7
  maxHeight?: number;
8
+ minHeight?: number;
8
9
  openHotkey?: Array<string>;
9
10
  width?: number;
10
11
  title?: React.ReactNode | string;
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../../src/components/menu/Menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AA4B5C,MAAM,CAAC,MAAM,IAAI,GAAuC,CAAC,KAAK,EAAE,EAAE;IACjE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IAElC,OAAO,CACN,oBAAC,SAAS,oBAAK,KAAK;QACnB,oBAAC,UAAU,QAAE,KAAK,CAAc;QAChC,oBAAC,WAAW,QAAE,QAAQ,CAAe,CAC1B,CACZ,CAAC;AACH,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\r\nimport { MenuShell } from \"./MenuShell\";\r\nimport { MenuToggle } from \"./MenuToggle\";\r\nimport { MenuContent } from \"./MenuContent\";\r\n\r\nexport type MenuProps = {\r\n\tclassName?: string;\r\n\tcloseHotkey?: Array<string>;\r\n\theight?: number;\r\n\tid?: string;\r\n\tmaxHeight?: number;\r\n\topenHotkey?: Array<string>;\r\n\twidth?: number;\r\n\ttitle?: React.ReactNode | string;\r\n};\r\n\r\n/**\r\n * A convenience component that fully encapsulates a menu by constructing a <MenuShell> and its contents.\r\n * All of the props are passed to MenuShell.\r\n *\r\n * @param {string} [className] - Custom body class for the menu contents. These classes will be set on the <body> tag for the Menu's drop down window.\r\n * @param {array} [closeHotkey=[\"escape\"] ] - A hotkey combination to close the menu. Defaults to [\"escape\"].\r\n * @param {number} [height] - Custom height for the menu. If not set then the height will be automatically calculated based on the content height and available monitor space.\r\n * @param {string} [id] - Unique ID for the menu. Defaults to a random string.\r\n * @param {number} [maxHeight=Infinity] - Maximum height of the menu.\r\n * @param {array} [openHotkey] - A hotkey combination to open the menu.\r\n * @param {number} [width=180] - Custom width for the menu.\r\n * @param {title} [string] - Name that appears in the menu's <MenuToggle> button.\r\n *\r\n */\r\n\r\nexport const Menu: React.FunctionComponent<MenuProps> = (props) => {\r\n\tconst { children, title } = props;\r\n\r\n\treturn (\r\n\t\t<MenuShell {...props}>\r\n\t\t\t<MenuToggle>{title}</MenuToggle>\r\n\t\t\t<MenuContent>{children}</MenuContent>\r\n\t\t</MenuShell>\r\n\t);\r\n};\r\n"]}
1
+ {"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../../src/components/menu/Menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AA8B5C,MAAM,CAAC,MAAM,IAAI,GAAuC,CAAC,KAAK,EAAE,EAAE;IACjE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IAElC,OAAO,CACN,oBAAC,SAAS,oBAAK,KAAK;QACnB,oBAAC,UAAU,QAAE,KAAK,CAAc;QAChC,oBAAC,WAAW,QAAE,QAAQ,CAAe,CAC1B,CACZ,CAAC;AACH,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\nimport { MenuShell } from \"./MenuShell\";\nimport { MenuToggle } from \"./MenuToggle\";\nimport { MenuContent } from \"./MenuContent\";\n\nexport type MenuProps = {\n\tclassName?: string;\n\tcloseHotkey?: Array<string>;\n\theight?: number;\n\tid?: string;\n\tmaxHeight?: number;\n\tminHeight?: number;\n\topenHotkey?: Array<string>;\n\twidth?: number;\n\ttitle?: React.ReactNode | string;\n};\n\n/**\n * A convenience component that fully encapsulates a menu by constructing a <MenuShell> and its contents.\n * All of the props are passed to MenuShell.\n *\n * @param {string} [className] - Custom body class for the menu contents. These classes will be set on the <body> tag for the Menu's drop down window.\n * @param {array} [closeHotkey=[\"escape\"] ] - A hotkey combination to close the menu. Defaults to [\"escape\"].\n * @param {number} [height] - Custom height for the menu. If not set then the height will be automatically calculated based on the content height and available monitor space.\n * @param {string} [id] - Unique ID for the menu. Defaults to a random string.\n * @param {number} [maxHeight=Infinity] - Maximum height of the menu.\n * @param {number} [minHeight] - Minimum height of the menu\n * @param {array} [openHotkey] - A hotkey combination to open the menu.\n * @param {number} [width=180] - Custom width for the menu.\n * @param {title} [string] - Name that appears in the menu's <MenuToggle> button.\n *\n */\n\nexport const Menu: React.FunctionComponent<MenuProps> = (props) => {\n\tconst { children, title } = props;\n\n\treturn (\n\t\t<MenuShell {...props}>\n\t\t\t<MenuToggle>{title}</MenuToggle>\n\t\t\t<MenuContent>{children}</MenuContent>\n\t\t</MenuShell>\n\t);\n};\n"]}
@@ -4,7 +4,8 @@ export declare class MenuAutoResizer {
4
4
  private childWindow;
5
5
  private menuId;
6
6
  private observer;
7
- constructor(childWindow: Window, menuId: string, width: number, maxHeight?: number);
7
+ private minHeight;
8
+ constructor(childWindow: Window, menuId: string, width: number, maxHeight?: number, minHeight?: number);
8
9
  disconnect(): void;
9
10
  private updateWindowDimensions;
10
11
  }
@@ -1,8 +1,9 @@
1
1
  import { calculateDimensions } from "./menuHelpers";
2
2
  export class MenuAutoResizer {
3
- constructor(childWindow, menuId, width, maxHeight = Infinity) {
3
+ constructor(childWindow, menuId, width, maxHeight = Infinity, minHeight = 0) {
4
4
  this.width = width;
5
5
  this.maxHeight = maxHeight;
6
+ this.minHeight = minHeight;
6
7
  this.childWindow = childWindow;
7
8
  this.menuId = menuId;
8
9
  this.updateWindowDimensions = this.updateWindowDimensions.bind(this);
@@ -21,7 +22,7 @@ export class MenuAutoResizer {
21
22
  if (!document.querySelector(`#${this.menuId}-menu-toggle`)) {
22
23
  return;
23
24
  }
24
- const { left, top, height } = await calculateDimensions(this.childWindow, this.menuId, 0, this.maxHeight);
25
+ const { left, top, height } = await calculateDimensions(this.childWindow, this.menuId, 0, this.maxHeight, this.minHeight);
25
26
  const params = {
26
27
  monitor: "mine",
27
28
  position: "absolute",
@@ -1 +1 @@
1
- {"version":3,"file":"MenuAutoResizer.js","sourceRoot":"","sources":["../../../src/components/menu/MenuAutoResizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AASpD,MAAM,OAAO,eAAe;IAW3B,YAAY,WAAmB,EAAE,MAAc,EAAE,KAAa,EAAE,YAAoB,QAAQ;QAC3F,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAQrE,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAKlE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YAChD,SAAS,EAAE,IAAI;YACf,aAAa,EAAE,KAAK;YACpB,OAAO,EAAE,IAAI;SACb,CAAC,CAAC;QAGH,UAAU,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,UAAU;QACT,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IAC5B,CAAC;IAKO,KAAK,CAAC,sBAAsB;QAInC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,MAAM,cAAc,CAAC,EAAE;YAC3D,OAAO;SACP;QACD,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAE1G,MAAM,MAAM,GAAgB;YAC3B,OAAO,EAAE,MAAM;YACf,QAAQ,EAAE,UAAU;YACpB,IAAI,EAAE,IAAI;YACV,GAAG,EAAE,GAAG;YACR,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,MAAM;YACd,aAAa,EAAE,IAAI;YACnB,gBAAgB,EAAE,aAAa;SAC/B,CAAC;QAOF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;QAC7F,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;CACD","sourcesContent":["import { calculateDimensions } from \"./menuHelpers\";\r\nimport { services } from \"@finsemble/finsemble-core\";\r\n\r\ntype SpawnParams = services.window.types.SpawnParams;\r\n\r\n/**\r\n * To make sure that MenuPortal.tsx remain small\r\n * I have isolated the auto resize logic in this class.\r\n */\r\nexport class MenuAutoResizer {\r\n\tprivate width: number;\r\n\r\n\tprivate maxHeight: number;\r\n\r\n\tprivate childWindow: Window;\r\n\r\n\tprivate menuId: string;\r\n\r\n\tprivate observer: MutationObserver;\r\n\r\n\tconstructor(childWindow: Window, menuId: string, width: number, maxHeight: number = Infinity) {\r\n\t\tthis.width = width;\r\n\t\tthis.maxHeight = maxHeight;\r\n\t\tthis.childWindow = childWindow;\r\n\t\tthis.menuId = menuId;\r\n\t\tthis.updateWindowDimensions = this.updateWindowDimensions.bind(this);\r\n\t\t/* The external window does not have a URL and so its origin\r\n\t\twill not match the toolbar's origin, in that case\r\n\t\twe won't have onload, DOMContentLoaded or any other events.\r\n\t\tThat makes it hard to know when the content are loaded, we cant\r\n\t\teven inject custom JS as it will be already late.\r\n\t\tThe only way to know about a DOM change was MutationObserver!\r\n\t\t*/\r\n\t\tthis.observer = new MutationObserver(this.updateWindowDimensions);\r\n\t\t/* Now we watch for any DOM changes in the childWindow\r\n\t\tKnowing the height of the window contents is crucial for\r\n\t\tmaking decision about its position (below/above the toolbar).\r\n\t\t*/\r\n\t\tthis.observer.observe(this.childWindow.document, {\r\n\t\t\tchildList: true,\r\n\t\t\tcharacterData: false,\r\n\t\t\tsubtree: true,\r\n\t\t});\r\n\r\n\t\t// Initialize the window to the correct height\r\n\t\tsetTimeout(this.updateWindowDimensions, 0);\r\n\t}\r\n\r\n\tdisconnect() {\r\n\t\tthis.observer.disconnect();\r\n\t}\r\n\r\n\t/**\r\n\t * Callback for MutationObserver\r\n\t */\r\n\tprivate async updateWindowDimensions() {\r\n\t\t// If the original menu button has been removed then bypass updating the window dimensions.\r\n\t\t// Probably the menu itself is in the process of being removed but the mutation observer has\r\n\t\t// not yet disconnected\r\n\t\tif (!document.querySelector(`#${this.menuId}-menu-toggle`)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst { left, top, height } = await calculateDimensions(this.childWindow, this.menuId, 0, this.maxHeight);\r\n\r\n\t\tconst params: SpawnParams = {\r\n\t\t\tmonitor: \"mine\",\r\n\t\t\tposition: \"absolute\",\r\n\t\t\tleft: left,\r\n\t\t\ttop: top,\r\n\t\t\twidth: this.width,\r\n\t\t\theight: height,\r\n\t\t\tsetBoundsOnly: true,\r\n\t\t\tforceOntoMonitor: \"monitorRect\",\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * See comment in MenuPortal.tsx on why we use showWindow() here instead of childWindow.moveTo()\r\n\t\t */\r\n\t\t//this.childWindow.moveTo(left, top);\r\n\t\t//this.childWindow.resizeTo(this.width, height);\r\n\t\tFSBL.Clients.LauncherClient.showWindow({ windowName: this.childWindow.window.name }, params);\r\n\t\tthis.childWindow.document.body.setAttribute(\"resizing\", \"false\");\r\n\t}\r\n}\r\n"]}
1
+ {"version":3,"file":"MenuAutoResizer.js","sourceRoot":"","sources":["../../../src/components/menu/MenuAutoResizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AASpD,MAAM,OAAO,eAAe;IAa3B,YAAY,WAAmB,EAAE,MAAc,EAAE,KAAa,EAAE,YAAoB,QAAQ,EAAE,YAAoB,CAAC;QAClH,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAQrE,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAKlE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YAChD,SAAS,EAAE,IAAI;YACf,aAAa,EAAE,KAAK;YACpB,OAAO,EAAE,IAAI;SACb,CAAC,CAAC;QAGH,UAAU,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,UAAU;QACT,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IAC5B,CAAC;IAKO,KAAK,CAAC,sBAAsB;QAInC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,MAAM,cAAc,CAAC,EAAE;YAC3D,OAAO;SACP;QACD,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,mBAAmB,CACtD,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,MAAM,EACX,CAAC,EACD,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,CACd,CAAC;QAEF,MAAM,MAAM,GAAgB;YAC3B,OAAO,EAAE,MAAM;YACf,QAAQ,EAAE,UAAU;YACpB,IAAI,EAAE,IAAI;YACV,GAAG,EAAE,GAAG;YACR,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,MAAM;YACd,aAAa,EAAE,IAAI;YACnB,gBAAgB,EAAE,aAAa;SAC/B,CAAC;QAOF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;QAC7F,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;CACD","sourcesContent":["import { calculateDimensions } from \"./menuHelpers\";\nimport { services } from \"@finsemble/finsemble-api\";\n\ntype SpawnParams = services.window.types.SpawnParams;\n\n/**\n * To make sure that MenuPortal.tsx remain small\n * I have isolated the auto resize logic in this class.\n */\nexport class MenuAutoResizer {\n\tprivate width: number;\n\n\tprivate maxHeight: number;\n\n\tprivate childWindow: Window;\n\n\tprivate menuId: string;\n\n\tprivate observer: MutationObserver;\n\n\tprivate minHeight: number;\n\n\tconstructor(childWindow: Window, menuId: string, width: number, maxHeight: number = Infinity, minHeight: number = 0) {\n\t\tthis.width = width;\n\t\tthis.maxHeight = maxHeight;\n\t\tthis.minHeight = minHeight;\n\t\tthis.childWindow = childWindow;\n\t\tthis.menuId = menuId;\n\t\tthis.updateWindowDimensions = this.updateWindowDimensions.bind(this);\n\t\t/* The external window does not have a URL and so its origin\n\t\twill not match the toolbar's origin, in that case\n\t\twe won't have onload, DOMContentLoaded or any other events.\n\t\tThat makes it hard to know when the content are loaded, we cant\n\t\teven inject custom JS as it will be already late.\n\t\tThe only way to know about a DOM change was MutationObserver!\n\t\t*/\n\t\tthis.observer = new MutationObserver(this.updateWindowDimensions);\n\t\t/* Now we watch for any DOM changes in the childWindow\n\t\tKnowing the height of the window contents is crucial for\n\t\tmaking decision about its position (below/above the toolbar).\n\t\t*/\n\t\tthis.observer.observe(this.childWindow.document, {\n\t\t\tchildList: true,\n\t\t\tcharacterData: false,\n\t\t\tsubtree: true,\n\t\t});\n\n\t\t// Initialize the window to the correct height\n\t\tsetTimeout(this.updateWindowDimensions, 0);\n\t}\n\n\tdisconnect() {\n\t\tthis.observer.disconnect();\n\t}\n\n\t/**\n\t * Callback for MutationObserver\n\t */\n\tprivate async updateWindowDimensions() {\n\t\t// If the original menu button has been removed then bypass updating the window dimensions.\n\t\t// Probably the menu itself is in the process of being removed but the mutation observer has\n\t\t// not yet disconnected\n\t\tif (!document.querySelector(`#${this.menuId}-menu-toggle`)) {\n\t\t\treturn;\n\t\t}\n\t\tconst { left, top, height } = await calculateDimensions(\n\t\t\tthis.childWindow,\n\t\t\tthis.menuId,\n\t\t\t0,\n\t\t\tthis.maxHeight,\n\t\t\tthis.minHeight\n\t\t);\n\n\t\tconst params: SpawnParams = {\n\t\t\tmonitor: \"mine\",\n\t\t\tposition: \"absolute\",\n\t\t\tleft: left,\n\t\t\ttop: top,\n\t\t\twidth: this.width,\n\t\t\theight: height,\n\t\t\tsetBoundsOnly: true,\n\t\t\tforceOntoMonitor: \"monitorRect\",\n\t\t};\n\n\t\t/**\n\t\t * See comment in MenuPortal.tsx on why we use showWindow() here instead of childWindow.moveTo()\n\t\t */\n\t\t//this.childWindow.moveTo(left, top);\n\t\t//this.childWindow.resizeTo(this.width, height);\n\t\tFSBL.Clients.LauncherClient.showWindow({ windowName: this.childWindow.window.name }, params);\n\t\tthis.childWindow.document.body.setAttribute(\"resizing\", \"false\");\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuContent.js","sourceRoot":"","sources":["../../../src/components/menu/MenuContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAM9C,MAAM,CAAC,MAAM,WAAW,GAEnB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;IAC5B,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IACrD,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,EAAE,CAAC;IAEnC,OAAO,CACN,oBAAC,UAAU,IAAC,IAAI,EAAE,YAAY,EAAE;QAC/B,6BAAK,EAAE,EAAE,UAAU,EAAE,SAAS,EAAC,mBAAmB,EAAC,KAAK,EAAE,KAAK,IAC7D,QAAQ,CACJ,CACM,CACb,CAAC;AACH,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\r\nimport { MenuContext } from \"./menuContext\";\r\nimport { MenuPortal } from \"./MenuPortal\";\r\nimport { useMenu } from \"../../hooks/useMenu\";\r\n\r\n/**\r\n * Holds all the menu contents\r\n * @param {string} style - The custom CSS style for the menu. This is necessary because the DOM's style will be lost when this is sent through a React portal.\r\n */\r\nexport const MenuContent: React.FunctionComponent<{\r\n\tstyle?: React.CSSProperties;\r\n}> = ({ children, style }) => {\r\n\tconst { thisMenuId } = React.useContext(MenuContext);\r\n\tconst { isMenuActive } = useMenu();\r\n\r\n\treturn (\r\n\t\t<MenuPortal show={isMenuActive()}>\r\n\t\t\t<div id={thisMenuId} className=\"menu menu-primary\" style={style}>\r\n\t\t\t\t{children}\r\n\t\t\t</div>\r\n\t\t</MenuPortal>\r\n\t);\r\n};\r\n"]}
1
+ {"version":3,"file":"MenuContent.js","sourceRoot":"","sources":["../../../src/components/menu/MenuContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAM9C,MAAM,CAAC,MAAM,WAAW,GAEnB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;IAC5B,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IACrD,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,EAAE,CAAC;IAEnC,OAAO,CACN,oBAAC,UAAU,IAAC,IAAI,EAAE,YAAY,EAAE;QAC/B,6BAAK,EAAE,EAAE,UAAU,EAAE,SAAS,EAAC,mBAAmB,EAAC,KAAK,EAAE,KAAK,IAC7D,QAAQ,CACJ,CACM,CACb,CAAC;AACH,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\nimport { MenuContext } from \"./menuContext\";\nimport { MenuPortal } from \"./MenuPortal\";\nimport { useMenu } from \"../../hooks/useMenu\";\n\n/**\n * Holds all the menu contents\n * @param {string} style - The custom CSS style for the menu. This is necessary because the DOM's style will be lost when this is sent through a React portal.\n */\nexport const MenuContent: React.FunctionComponent<{\n\tstyle?: React.CSSProperties;\n}> = ({ children, style }) => {\n\tconst { thisMenuId } = React.useContext(MenuContext);\n\tconst { isMenuActive } = useMenu();\n\n\treturn (\n\t\t<MenuPortal show={isMenuActive()}>\n\t\t\t<div id={thisMenuId} className=\"menu menu-primary\" style={style}>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t</MenuPortal>\n\t);\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuHotKey.js","sourceRoot":"","sources":["../../../src/components/menu/MenuHotKey.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAgBlD,MAAM,CAAC,MAAM,UAAU,GAGlB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAQ,EAAE;IAC9B,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,OAAO,EAAE,CAAC;IACxD,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAE1B,SAAS,wBAAwB;QAChC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,kBAAkB,CAAC,KAAK,IAAI,EAAE,EAAE,wBAAwB,EAAE,SAAS,CAAC,CAAC;QAG/F,eAAe,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,GAAQ,EAAE,EAAE;YAC/C,IAAI,GAAG,EAAE;gBACR,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC;aACxE;YAED,eAAe,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,EAAE,EAAE;QAC/D,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,KAAK,IAAI,EAAE,EAAE,wBAAwB,CAAC,CAAC;KACjF;IAED,OAAO,IAAI,CAAC;AACb,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\r\nimport { useMenu } from \"../../hooks/useMenu\";\r\nimport { useHotkey } from \"../../hooks/useHotkey\";\r\n\r\n/**\r\n * A component that registers a custom hotkeys pattern for opening and closing the menu.\r\n * This component is used privately by <MenuShell>\r\n *\r\n * Note that a design decision was made to keep registry of \"close\" hotkeys simple.\r\n * We *could* have written extra logic so that the close hotkey is only registered\r\n * when the window is open but that seems unnecessary. Instead, every menu is always\r\n * registered with its hotkey. The net effect is that every menu will dispatch a CLOSE_MENU\r\n * action when \"escape\" is called. This creates a lot of dispatches but results in no operations\r\n * since all the other menus will already be closed. This was preferable over the potential\r\n * complication of logic that registers/unregisters a close hotkey with every menu open/close.\r\n * @param {string[]} [open] - An array of key names for opening the menu.\r\n * @param {string[]} [close=\"escape\" ] - An array of key names for closing the menu. Defaults to `[\"escape\"]` unless overridden with `null`.\r\n */\r\nexport const MenuHotKey: React.FunctionComponent<{\r\n\topen?: string[];\r\n\tclose?: string[];\r\n}> = ({ open, close }): null => {\r\n\tconst { openMenu, closeMenu, isMenuActive } = useMenu();\r\n\tuseHotkey(open, openMenu);\r\n\r\n\tfunction removeHotKeyAndCloseMenu() {\r\n\t\tFSBL.Clients.HotkeyClient.removeGlobalHotkey(close || [], removeHotKeyAndCloseMenu, closeMenu);\r\n\r\n\t\t// Once menu closes, return focus to the component that launched the menu\r\n\t\tfinsembleWindow.bringToFront(null, (err: any) => {\r\n\t\t\tif (err) {\r\n\t\t\t\tFSBL.Clients.Logger.system.error(\"failed to bringToFront, error:\", err);\r\n\t\t\t}\r\n\r\n\t\t\tfinsembleWindow.focus();\r\n\t\t});\r\n\t}\r\n\r\n\tif (Array.isArray(close) && close.length > 0 && isMenuActive()) {\r\n\t\tFSBL.Clients.HotkeyClient.addGlobalHotkey(close || [], removeHotKeyAndCloseMenu);\r\n\t}\r\n\r\n\treturn null;\r\n};\r\n"]}
1
+ {"version":3,"file":"MenuHotKey.js","sourceRoot":"","sources":["../../../src/components/menu/MenuHotKey.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAgBlD,MAAM,CAAC,MAAM,UAAU,GAGlB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAQ,EAAE;IAC9B,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,OAAO,EAAE,CAAC;IACxD,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAE1B,SAAS,wBAAwB;QAChC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,kBAAkB,CAAC,KAAK,IAAI,EAAE,EAAE,wBAAwB,EAAE,SAAS,CAAC,CAAC;QAG/F,eAAe,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,GAAQ,EAAE,EAAE;YAC/C,IAAI,GAAG,EAAE;gBACR,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC;aACxE;YAED,eAAe,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,EAAE,EAAE;QAC/D,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,KAAK,IAAI,EAAE,EAAE,wBAAwB,CAAC,CAAC;KACjF;IAED,OAAO,IAAI,CAAC;AACb,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\nimport { useMenu } from \"../../hooks/useMenu\";\nimport { useHotkey } from \"../../hooks/useHotkey\";\n\n/**\n * A component that registers a custom hotkeys pattern for opening and closing the menu.\n * This component is used privately by <MenuShell>\n *\n * Note that a design decision was made to keep registry of \"close\" hotkeys simple.\n * We *could* have written extra logic so that the close hotkey is only registered\n * when the window is open but that seems unnecessary. Instead, every menu is always\n * registered with its hotkey. The net effect is that every menu will dispatch a CLOSE_MENU\n * action when \"escape\" is called. This creates a lot of dispatches but results in no operations\n * since all the other menus will already be closed. This was preferable over the potential\n * complication of logic that registers/unregisters a close hotkey with every menu open/close.\n * @param {string[]} [open] - An array of key names for opening the menu.\n * @param {string[]} [close=\"escape\" ] - An array of key names for closing the menu. Defaults to `[\"escape\"]` unless overridden with `null`.\n */\nexport const MenuHotKey: React.FunctionComponent<{\n\topen?: string[];\n\tclose?: string[];\n}> = ({ open, close }): null => {\n\tconst { openMenu, closeMenu, isMenuActive } = useMenu();\n\tuseHotkey(open, openMenu);\n\n\tfunction removeHotKeyAndCloseMenu() {\n\t\tFSBL.Clients.HotkeyClient.removeGlobalHotkey(close || [], removeHotKeyAndCloseMenu, closeMenu);\n\n\t\t// Once menu closes, return focus to the component that launched the menu\n\t\tfinsembleWindow.bringToFront(null, (err: any) => {\n\t\t\tif (err) {\n\t\t\t\tFSBL.Clients.Logger.system.error(\"failed to bringToFront, error:\", err);\n\t\t\t}\n\n\t\t\tfinsembleWindow.focus();\n\t\t});\n\t}\n\n\tif (Array.isArray(close) && close.length > 0 && isMenuActive()) {\n\t\tFSBL.Clients.HotkeyClient.addGlobalHotkey(close || [], removeHotKeyAndCloseMenu);\n\t}\n\n\treturn null;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItem.js","sourceRoot":"","sources":["../../../src/components/menu/MenuItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAS9C,MAAM,CAAC,MAAM,QAAQ,GAMhB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,GAAG,WAAW,EAAE,SAAS,EAAE,EAAO,EAAE;IACvF,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,CAAC;IAIhC,MAAM,eAAe,GAAG,GAAG,EAAE;QAE5B,OAAO,IAAI,OAAO,EAAE,CAAC;QAGrB,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC;IACzB,CAAC,CAAC;IAEF,OAAO,CACN,6BAAK,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,IACrF,QAAQ,CACJ,CACN,CAAC;AACH,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\r\nimport { useMenu } from \"../../hooks/useMenu\";\r\n\r\n/**\r\n * Individual menu item.\r\n * @param {function} [onClick] - Custom onClick handler function for when the menu item is clicked.\r\n * @param {string} [className] - Custom css class name for the menu item. Defaults to \"menu-item\".\r\n * @param {string} [style] - Custom css styles for the menu item. This is necessary because the DOM's styles will be lost when this component is sent through a React portal.\r\n * @param {boolean} [noClose=false] - If set to true, prevents the menu from closing when an item is clicked on.\r\n */\r\nexport const MenuItem: React.FunctionComponent<{\r\n\tonClick?: () => void;\r\n\tonKeyDown?: () => void;\r\n\tclassName?: string;\r\n\tstyle?: object;\r\n\tnoClose?: boolean;\r\n}> = ({ children, onClick, style, noClose, className = \"menu-item\", onKeyDown }): any => {\r\n\tconst { closeMenu } = useMenu();\r\n\r\n\t// Combines the passed onClick handler with our\r\n\t// default onClick handler (which closes the menu)\r\n\tconst combinedOnClick = () => {\r\n\t\t// Call the developer's custom onClick handler\r\n\t\tonClick && onClick();\r\n\r\n\t\t// Do not close menu when noClose attributes exist\r\n\t\t!noClose && closeMenu();\r\n\t};\r\n\r\n\treturn (\r\n\t\t<div className={className} onClick={combinedOnClick} style={style} onKeyDown={onKeyDown}>\r\n\t\t\t{children}\r\n\t\t</div>\r\n\t);\r\n};\r\n"]}
1
+ {"version":3,"file":"MenuItem.js","sourceRoot":"","sources":["../../../src/components/menu/MenuItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAS9C,MAAM,CAAC,MAAM,QAAQ,GAMhB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,GAAG,WAAW,EAAE,SAAS,EAAE,EAAO,EAAE;IACvF,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,CAAC;IAIhC,MAAM,eAAe,GAAG,GAAG,EAAE;QAE5B,OAAO,IAAI,OAAO,EAAE,CAAC;QAGrB,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC;IACzB,CAAC,CAAC;IAEF,OAAO,CACN,6BAAK,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,IACrF,QAAQ,CACJ,CACN,CAAC;AACH,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\nimport { useMenu } from \"../../hooks/useMenu\";\n\n/**\n * Individual menu item.\n * @param {function} [onClick] - Custom onClick handler function for when the menu item is clicked.\n * @param {string} [className] - Custom css class name for the menu item. Defaults to \"menu-item\".\n * @param {string} [style] - Custom css styles for the menu item. This is necessary because the DOM's styles will be lost when this component is sent through a React portal.\n * @param {boolean} [noClose=false] - If set to true, prevents the menu from closing when an item is clicked on.\n */\nexport const MenuItem: React.FunctionComponent<{\n\tonClick?: () => void;\n\tonKeyDown?: () => void;\n\tclassName?: string;\n\tstyle?: object;\n\tnoClose?: boolean;\n}> = ({ children, onClick, style, noClose, className = \"menu-item\", onKeyDown }): any => {\n\tconst { closeMenu } = useMenu();\n\n\t// Combines the passed onClick handler with our\n\t// default onClick handler (which closes the menu)\n\tconst combinedOnClick = () => {\n\t\t// Call the developer's custom onClick handler\n\t\tonClick && onClick();\n\n\t\t// Do not close menu when noClose attributes exist\n\t\t!noClose && closeMenu();\n\t};\n\n\treturn (\n\t\t<div className={className} onClick={combinedOnClick} style={style} onKeyDown={onKeyDown}>\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n"]}
@@ -5,12 +5,121 @@ import { KeyboardNavigation } from "./keyboardNavigation";
5
5
  import { MenuAutoResizer } from "./MenuAutoResizer";
6
6
  import { useState, useEffect, useContext, useMemo } from "react";
7
7
  import { useMenu } from "../../hooks/useMenu";
8
- export const MenuPortal = ({ show, children }) => {
9
- const { thisMenuId, menuWidth, menuHeight, className, maxHeight } = useContext(MenuContext);
8
+ const setupEventForwarding = (newWindow) => {
9
+ ["mouseDown", "click", "mouseUp"].forEach((eventName) => {
10
+ newWindow.document.addEventListener(eventName, (event) => {
11
+ document.dispatchEvent(new CustomEvent(`portal:${eventName}`, {
12
+ detail: {
13
+ mouseEvent: new MouseEvent(eventName, event),
14
+ target: event.target,
15
+ },
16
+ }));
17
+ });
18
+ });
19
+ ["keyup", "keydown", "keypress"].forEach((eventName) => {
20
+ newWindow === null || newWindow === void 0 ? void 0 : newWindow.document.addEventListener(eventName, (event) => {
21
+ document.dispatchEvent(new CustomEvent(`portal:${eventName}`, {
22
+ detail: new KeyboardEvent(event.type, event),
23
+ }));
24
+ });
25
+ });
26
+ };
27
+ const insertWindowContent = ({ newWindow, isAutoResizable, className, setElement, menuHeight, }) => {
28
+ newWindow.document.documentElement.className = "menu-portal";
29
+ if (isAutoResizable)
30
+ newWindow.document.body.setAttribute("resizing", "true");
31
+ const containerDiv = document.createElement("div");
32
+ newWindow.document.body.appendChild(containerDiv);
33
+ className === null || className === void 0 ? void 0 : className.split(" ").forEach((name) => newWindow.document.body.classList.add(name));
34
+ setElement(containerDiv);
35
+ injectCSS(newWindow);
36
+ newWindow.portalHeight = menuHeight;
37
+ };
38
+ const useCreateDropdown = ({ keyboardNavigation, setElement, childWindow, setChildWindow, }) => {
39
+ const { thisMenuId, menuWidth, menuHeight, className, maxHeight, minHeight } = useContext(MenuContext);
10
40
  const { blurMenu } = useMenu();
41
+ const isAutoResizable = !menuHeight;
42
+ useEffect(() => {
43
+ let menuAutoResizer = null;
44
+ const features = `height=1,width=${menuWidth},left=0,top=0,opacity=1`;
45
+ const newWindow = window.open(`./menu.html#${thisMenuId}`, undefined, features);
46
+ setChildWindow(newWindow);
47
+ if (newWindow) {
48
+ const onLoad = () => {
49
+ insertWindowContent({ newWindow, isAutoResizable, className, setElement, menuHeight });
50
+ setupEventForwarding(newWindow);
51
+ newWindow.addEventListener("blur", blurMenu);
52
+ if (isAutoResizable)
53
+ menuAutoResizer = new MenuAutoResizer(newWindow, thisMenuId, menuWidth, maxHeight, minHeight);
54
+ };
55
+ newWindow.addEventListener("load", onLoad, true);
56
+ }
57
+ else {
58
+ FSBL.Clients.Logger.system.error(`MenuPortal error: window.open returned null for "./menu.html#${thisMenuId}"`);
59
+ }
60
+ return () => {
61
+ var _a;
62
+ const win = childWindow || (menuAutoResizer === null || menuAutoResizer === void 0 ? void 0 : menuAutoResizer.childWindow);
63
+ const keyboardNav = keyboardNavigation || ((_a = win) === null || _a === void 0 ? void 0 : _a.keyboardNavigation);
64
+ keyboardNav === null || keyboardNav === void 0 ? void 0 : keyboardNav.detach();
65
+ menuAutoResizer === null || menuAutoResizer === void 0 ? void 0 : menuAutoResizer.disconnect();
66
+ win === null || win === void 0 ? void 0 : win.close();
67
+ setChildWindow(null);
68
+ };
69
+ }, [blurMenu, className, menuWidth, menuHeight, maxHeight, thisMenuId]);
70
+ };
71
+ const showHideResizeWindow = async ({ childWindow, keyboardNavigation, show, thisMenuId, menuHeight, maxHeight, minHeight, }) => {
72
+ const finWindow = childWindow.fin.desktop.Window.getCurrent();
73
+ if (show) {
74
+ const { left, top, height } = await calculateDimensions(childWindow, thisMenuId, menuHeight, maxHeight, minHeight);
75
+ const params = {
76
+ position: "absolute",
77
+ left: left,
78
+ top: top,
79
+ height: height,
80
+ forceOntoMonitor: "monitorRect",
81
+ };
82
+ const { name } = childWindow;
83
+ FSBL.Clients.LauncherClient.showWindow({ windowName: name }, params);
84
+ finWindow.focus();
85
+ FSBL.FinsembleWindow.getInstance({ name: name }, (e, fsblWindow) => {
86
+ fsblWindow.setAlwaysOnTop({ alwaysOnTop: true });
87
+ });
88
+ if (keyboardNavigation) {
89
+ childWindow.keyboardNavigation = keyboardNavigation;
90
+ keyboardNavigation.attach();
91
+ }
92
+ }
93
+ else {
94
+ const { name } = childWindow;
95
+ FSBL.FinsembleWindow.getInstance({ name: name }, (e, fsblWindow) => {
96
+ fsblWindow.setAlwaysOnTop({ alwaysOnTop: false });
97
+ });
98
+ finWindow.hide();
99
+ if (keyboardNavigation)
100
+ keyboardNavigation.detach();
101
+ }
102
+ };
103
+ const closePortal = (element) => {
104
+ const { closeMenu } = useMenu();
105
+ const options = {
106
+ childList: true,
107
+ subtree: true,
108
+ };
109
+ const mutationObserver = new MutationObserver((mutations) => {
110
+ mutations.forEach((mutation) => {
111
+ var _a;
112
+ if ((_a = mutation.removedNodes) === null || _a === void 0 ? void 0 : _a.length)
113
+ closeMenu();
114
+ mutationObserver.disconnect();
115
+ });
116
+ });
117
+ mutationObserver.observe(element, options);
118
+ };
119
+ export const MenuPortal = ({ show, children }) => {
120
+ const { thisMenuId, menuHeight, maxHeight, minHeight } = useContext(MenuContext);
11
121
  const [element, setElement] = useState();
12
122
  const [childWindow, setChildWindow] = useState(null);
13
- const isAutoResizable = !menuHeight;
14
123
  const keyboardNavigation = useMemo(() => {
15
124
  if (childWindow)
16
125
  return new KeyboardNavigation(childWindow, ".menu-item");
@@ -20,96 +129,13 @@ export const MenuPortal = ({ show, children }) => {
20
129
  useEffect(() => {
21
130
  if (!childWindow)
22
131
  return;
23
- const runWindowEffects = async () => {
24
- const finWindow = childWindow.fin.desktop.Window.getCurrent();
25
- if (show) {
26
- const { left, top, height } = await calculateDimensions(childWindow, thisMenuId, menuHeight, maxHeight);
27
- const params = {
28
- position: "absolute",
29
- left: left,
30
- top: top,
31
- height: height,
32
- forceOntoMonitor: "monitorRect",
33
- };
34
- const { name } = childWindow;
35
- FSBL.Clients.LauncherClient.showWindow({ windowName: name }, params);
36
- finWindow.focus();
37
- FSBL.FinsembleWindow.getInstance({ name: name }, (e, fsblWindow) => {
38
- fsblWindow.setAlwaysOnTop({ alwaysOnTop: true });
39
- });
40
- if (keyboardNavigation) {
41
- childWindow.keyboardNavigation = keyboardNavigation;
42
- keyboardNavigation.attach();
43
- }
44
- }
45
- else {
46
- const { name } = childWindow;
47
- FSBL.FinsembleWindow.getInstance({ name: name }, (e, fsblWindow) => {
48
- fsblWindow.setAlwaysOnTop({ alwaysOnTop: false });
49
- });
50
- finWindow.hide();
51
- if (keyboardNavigation)
52
- keyboardNavigation.detach();
53
- }
54
- };
55
- runWindowEffects();
132
+ showHideResizeWindow({ childWindow, keyboardNavigation, show, thisMenuId, menuHeight, maxHeight, minHeight });
133
+ return () => { };
56
134
  }, [show]);
57
- useEffect(() => {
58
- let menuAutoResizer = null;
59
- const initMenu = async () => {
60
- const features = `height=1,width=${menuWidth},left=0,top=0,opacity=1`;
61
- let newWindow = window.open(`./menu.html#${thisMenuId}`, undefined, features);
62
- setChildWindow(newWindow);
63
- const insertWindowContent = () => {
64
- if (!newWindow)
65
- return;
66
- newWindow.document.documentElement.className = "menu-portal";
67
- isAutoResizable && newWindow.document.body.setAttribute("resizing", "true");
68
- const containerDiv = document.createElement("div");
69
- newWindow.document.body.appendChild(containerDiv);
70
- className && className.split(" ").forEach((name) => newWindow.document.body.classList.add(name));
71
- setElement(containerDiv);
72
- injectCSS(newWindow);
73
- isAutoResizable && (menuAutoResizer = new MenuAutoResizer(newWindow, thisMenuId, menuWidth, maxHeight));
74
- newWindow.portalHeight = menuHeight;
75
- newWindow.addEventListener("blur", blurMenu);
76
- ["mouseDown", "click", "mouseUp"].forEach((eventName) => {
77
- newWindow === null || newWindow === void 0 ? void 0 : newWindow.document.addEventListener(eventName, (event) => {
78
- document.dispatchEvent(new CustomEvent(`portal:${eventName}`, {
79
- detail: {
80
- mouseEvent: new MouseEvent(eventName, event),
81
- target: event.target,
82
- },
83
- }));
84
- });
85
- });
86
- ["keyup", "keydown", "keypress"].forEach((eventName) => {
87
- newWindow === null || newWindow === void 0 ? void 0 : newWindow.document.addEventListener(eventName, (event) => {
88
- document.dispatchEvent(new CustomEvent(`portal:${eventName}`, {
89
- detail: new KeyboardEvent(event.type, event),
90
- }));
91
- });
92
- });
93
- };
94
- if (newWindow)
95
- newWindow.addEventListener("load", insertWindowContent, true);
96
- };
97
- initMenu();
98
- return () => {
99
- var _a;
100
- const win = childWindow || (menuAutoResizer === null || menuAutoResizer === void 0 ? void 0 : menuAutoResizer.childWindow);
101
- const keyboardNav = keyboardNavigation || ((_a = win) === null || _a === void 0 ? void 0 : _a.keyboardNavigation);
102
- if (keyboardNav)
103
- keyboardNav.detach();
104
- if (menuAutoResizer) {
105
- menuAutoResizer.disconnect();
106
- }
107
- if (win) {
108
- win.close();
109
- setChildWindow(null);
110
- }
111
- };
112
- }, [blurMenu, className, menuWidth, menuHeight, maxHeight, thisMenuId]);
135
+ useCreateDropdown({ keyboardNavigation, childWindow, setElement, setChildWindow });
136
+ const toolbar = document.getElementById("Toolbar-tsx");
137
+ if (toolbar)
138
+ closePortal(toolbar);
113
139
  return element ? ReactDOM.createPortal(children, element) : null;
114
140
  };
115
141
  //# sourceMappingURL=MenuPortal.js.map