@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
@@ -3,360 +3,1149 @@ import { mount } from "enzyme";
3
3
  import { afterEach, describe, it } from "mocha";
4
4
  import { expect } from "chai";
5
5
  import sinon from "sinon";
6
- import { Page, EmptyPage } from "../stories/AppEditPage.stories";
7
- import { accessibilityAssessor } from "./a11y_helper";
6
+ import { Page, EmptyPage, NativePage, PageWithIconURL } from "../stories/AppEditPage.stories";
7
+ const defaults = {
8
+ name: "Test",
9
+ abstractPosition: 0,
10
+ addToWorkspace: true,
11
+ allowAutoArrange: true,
12
+ allowGrouping: true,
13
+ allowMaximize: true,
14
+ allowMinimize: true,
15
+ allowSnapping: true,
16
+ allowTabbing: true,
17
+ allowTiling: true,
18
+ alwaysOnTop: false,
19
+ appArguments: "",
20
+ appType: "web",
21
+ autoConnect: false,
22
+ description: "",
23
+ enableAOT: false,
24
+ enableTitleBar: true,
25
+ height: 600,
26
+ hideClose: false,
27
+ hideMaximize: false,
28
+ hideMinimize: false,
29
+ iconURL: "",
30
+ intents: [],
31
+ isEvergreen: false,
32
+ launchableByUser: true,
33
+ native_windowSpawnTimeout: 30,
34
+ opacity: 1,
35
+ path: "",
36
+ persistPath: true,
37
+ persistURL: true,
38
+ preloads: [],
39
+ resizable: true,
40
+ rules: [],
41
+ security: "trusted",
42
+ singleton: false,
43
+ spawnOnStartup: false,
44
+ url: "http://www.google.com",
45
+ width: 1280,
46
+ };
47
+ const testPresetInputValue = (appDataKey, selector, starter = Page, presetValue = "Test") => {
48
+ var _a;
49
+ const args = Object.assign(Object.assign({}, starter.args), { appData: Object.assign(Object.assign({}, (_a = starter.args) === null || _a === void 0 ? void 0 : _a.appData), { [appDataKey]: presetValue }) });
50
+ const wrapper = mount(React.createElement(Page, Object.assign({}, args)));
51
+ expect(wrapper.find(selector).prop("value")).to.equal(presetValue);
52
+ };
53
+ const testSaveInputValue = (appDataKey, selector, native = false, newValue = "New value") => {
54
+ const starter = native ? NativePage : Page;
55
+ const buttonSpy = sinon.spy(starter.args, "submitFn");
56
+ const wrapper = mount(React.createElement(Page, Object.assign({}, starter.args)));
57
+ wrapper
58
+ .find(selector)
59
+ .at(0)
60
+ .simulate("change", {
61
+ target: {
62
+ value: newValue,
63
+ },
64
+ });
65
+ const collection = wrapper.find("button");
66
+ collection.at(collection.length - 1).simulate("click");
67
+ expect(buttonSpy.args[0][0]).to.deep.equal(Object.assign(Object.assign(Object.assign({}, defaults), (native
68
+ ? {
69
+ appType: "native",
70
+ path: "test.exe",
71
+ }
72
+ : {})), { [appDataKey]: newValue }));
73
+ };
74
+ const testSubmitOnEnter = (selector, starter = Page) => {
75
+ const buttonSpy = sinon.spy(starter.args, "submitFn");
76
+ const wrapper = mount(React.createElement(Page, Object.assign({}, starter.args)));
77
+ wrapper
78
+ .find(selector)
79
+ .at(0)
80
+ .simulate("keydown", {
81
+ key: "Enter",
82
+ preventDefault: () => { },
83
+ });
84
+ expect(buttonSpy.calledOnce).to.be.true;
85
+ };
86
+ const flipCheckbox = (appDataKey, label, presetValue) => {
87
+ var _a;
88
+ const args = Object.assign(Object.assign({}, Page.args), { appData: Object.assign(Object.assign({}, (_a = Page.args) === null || _a === void 0 ? void 0 : _a.appData), { [appDataKey]: presetValue }) });
89
+ const buttonSpy = sinon.spy(args, "submitFn");
90
+ const wrapper = mount(React.createElement(Page, Object.assign({}, args)));
91
+ wrapper.find(`[role='checkbox'][aria-label='${label}']`).simulate("click");
92
+ const collection = wrapper.find("button");
93
+ const saveButton = collection.at(collection.length - 1);
94
+ saveButton.simulate("click");
95
+ expect(buttonSpy.args[0][0]).to.deep.equal(Object.assign(Object.assign({}, defaults), { [appDataKey]: !presetValue }));
96
+ };
97
+ const presetCheckbox = (appDataKey, label, presetValue = true, expectedValue = true) => {
98
+ var _a;
99
+ const args = Object.assign(Object.assign({}, Page.args), { appData: Object.assign(Object.assign({}, (_a = Page.args) === null || _a === void 0 ? void 0 : _a.appData), { [appDataKey]: presetValue }) });
100
+ const wrapper = mount(React.createElement(Page, Object.assign({}, args)));
101
+ expect(wrapper.find(`[role='checkbox'][aria-label='${label}']`).prop("aria-checked")).to.equal(expectedValue);
102
+ };
103
+ const checkUniqueRadioButtons = (name, numberOfButtons, starter = Page) => {
104
+ const wrapper = mount(React.createElement(Page, Object.assign({}, starter.args)));
105
+ const locator = `input[type='radio'][name='${name}']`;
106
+ for (let i = 0; i < numberOfButtons; i++) {
107
+ wrapper.find(locator).at(i).simulate("change");
108
+ for (let j = 0; j < numberOfButtons; j++) {
109
+ expect(wrapper.find(locator).at(j).prop("checked"), `When radio #${i + 1} is clicked, is radio #${j + 1} checked?`).to.equal(i === j);
110
+ }
111
+ }
112
+ };
113
+ const presetRadioButtons = (name, presetData, radioChecked) => {
114
+ var _a;
115
+ const args = Object.assign(Object.assign({}, Page.args), { appData: Object.assign(Object.assign({}, (_a = Page.args) === null || _a === void 0 ? void 0 : _a.appData), presetData) });
116
+ const wrapper = mount(React.createElement(Page, Object.assign({}, args)));
117
+ radioChecked.forEach((radioButton, key) => {
118
+ expect(wrapper.find(`input[type='radio'][name='${name}']`).at(key).prop("checked")).to.equal(radioButton);
119
+ });
120
+ };
121
+ const saveRadioButton = (name, buttonNumberChecked, savedValues, starter = Page) => {
122
+ const buttonSpy = sinon.spy(starter.args, "submitFn");
123
+ const wrapper = mount(React.createElement(Page, Object.assign({}, starter.args)));
124
+ wrapper.find(`input[type='radio'][name='${name}']`).at(buttonNumberChecked).simulate("change");
125
+ const collection = wrapper.find("button");
126
+ const saveButton = collection.at(collection.length - 1);
127
+ saveButton.simulate("click");
128
+ const savedValue = buttonSpy.args[0][0];
129
+ for (let key in savedValues) {
130
+ expect(savedValue[key]).to.equal(savedValues[key]);
131
+ }
132
+ };
8
133
  describe("<AppEditPage/>", () => {
9
134
  afterEach(() => {
10
135
  sinon.restore();
11
136
  });
12
- it.skip("should pass accessibility scans (Page)", async function () {
13
- this.timeout(5000);
137
+ it("should call the passed-in cancel function when the cancel button is clicked", () => {
138
+ const buttonSpy = sinon.spy(Page.args, "cancelFn");
14
139
  const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
15
- expect(await accessibilityAssessor(wrapper)).to.be.true;
140
+ const collection = wrapper.find("button");
141
+ collection.at(collection.length - 2).simulate("click");
142
+ expect(buttonSpy.calledOnce).to.be.true;
16
143
  });
17
- it.skip("should pass accessibility scans (EmptyPage)", async () => {
18
- const wrapper = mount(React.createElement(EmptyPage, Object.assign({}, EmptyPage.args)));
19
- expect(await accessibilityAssessor(wrapper)).to.be.true;
144
+ it("should call the passed-in Remove Application function when the Remove Application button is clicked", () => {
145
+ const buttonSpy = sinon.spy(Page.args, "removeApplicationFn");
146
+ const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
147
+ const collection = wrapper.find("button");
148
+ collection.at(collection.length - 3).simulate("click");
149
+ expect(buttonSpy.calledOnce).to.be.true;
150
+ sinon.restore();
20
151
  });
21
- it("should display starting name in Name field, if name field is set", () => {
152
+ it("should call the passed-in submit function with relevant data when the submit button is clicked", () => {
153
+ const buttonSpy = sinon.spy(Page.args, "submitFn");
22
154
  const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
23
- expect(wrapper.find("#app-name").first().prop("value")).to.equal("Test");
155
+ wrapper.find("button").last().simulate("click");
156
+ expect(buttonSpy.calledOnce).to.be.true;
157
+ expect(buttonSpy.firstCall.args[0]).to.deep.equal(defaults);
24
158
  });
25
- it("should not display starting name in Name field, if no name field is set", () => {
26
- const wrapper = mount(React.createElement(EmptyPage, Object.assign({}, EmptyPage.args)));
27
- expect(wrapper.find("#app-name").first().prop("value")).to.equal("");
159
+ describe("Web versus native apps", () => {
160
+ it("If App type = web, show web-only apps and don't show native-only apps", () => {
161
+ const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
162
+ expect(wrapper.contains("App URL")).to.be.true;
163
+ expect(wrapper.contains("File path")).to.be.false;
164
+ expect(wrapper.contains("Arguments")).to.be.false;
165
+ expect(wrapper.contains("API access")).to.be.false;
166
+ expect(wrapper.contains("Launch timeout")).to.be.false;
167
+ expect(wrapper.find("#persist-url").exists()).to.be.true;
168
+ expect(wrapper.find("#persist-path").exists()).to.be.false;
169
+ });
170
+ it("If App type = native, show native-only apps and don't show web-only apps", () => {
171
+ const wrapper = mount(React.createElement(NativePage, Object.assign({}, NativePage.args)));
172
+ expect(wrapper.contains("App URL")).to.be.false;
173
+ expect(wrapper.contains("File path")).to.be.true;
174
+ expect(wrapper.contains("Arguments")).to.be.true;
175
+ expect(wrapper.contains("API access")).to.be.true;
176
+ expect(wrapper.contains("Launch timeout")).to.be.true;
177
+ expect(wrapper.find("#persist-url").exists()).to.be.false;
178
+ expect(wrapper.find("#persist-path").exists()).to.be.true;
179
+ });
28
180
  });
29
- it("should display Name as a valid field, even if the given name is duplicate", () => {
30
- const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
31
- const appName = wrapper.find("#app-name").at(0);
32
- appName.simulate("change", {
33
- target: {
34
- value: "Used",
35
- },
36
- });
37
- expect(wrapper.find("#app-name").at(0).prop("value")).to.equal("Used");
38
- expect(!!wrapper.find("#app-name").at(0).prop("aria-invalid")).to.be.false;
39
- });
40
- it("should display invalid state for Web URL if provided URL is invalid", () => {
41
- const wrapper = mount(React.createElement(EmptyPage, Object.assign({}, EmptyPage.args)));
42
- wrapper
43
- .find("#app-url")
44
- .at(0)
45
- .simulate("change", {
46
- target: {
47
- value: "invalid",
48
- },
49
- });
50
- expect(wrapper.find("#app-url").at(0).prop("aria-invalid")).to.be.true;
51
- });
52
- it("should display invalid state for width if provided a negative number", () => {
53
- const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
54
- wrapper
55
- .find("#app-width")
56
- .at(0)
57
- .simulate("change", {
58
- target: {
59
- value: "-999",
60
- },
181
+ describe("Name", () => {
182
+ afterEach(() => {
183
+ sinon.restore();
184
+ });
185
+ it("should save correctly when edited", () => {
186
+ testSaveInputValue("name", "#app-name");
187
+ });
188
+ it("should display starting name in Name field, if name field is set", () => {
189
+ const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
190
+ expect(wrapper.find("#app-name").first().prop("value")).to.equal("Test");
191
+ });
192
+ it("should not display starting name in Name field, if no name field is set", () => {
193
+ const wrapper = mount(React.createElement(EmptyPage, Object.assign({}, EmptyPage.args)));
194
+ expect(wrapper.find("#app-name").first().prop("value")).to.equal("");
195
+ });
196
+ it("should display Name as a valid field, even if the given name is duplicate", () => {
197
+ const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
198
+ const appName = wrapper.find("#app-name").at(0);
199
+ appName.simulate("change", {
200
+ target: {
201
+ value: "Used",
202
+ },
203
+ });
204
+ expect(wrapper.find("#app-name").at(0).prop("value")).to.equal("Used");
205
+ expect(!!wrapper.find("#app-name").at(0).prop("aria-invalid")).to.be.false;
206
+ });
207
+ it("should have a disabled Save button if the name field is emptied", () => {
208
+ const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
209
+ wrapper
210
+ .find("#app-name")
211
+ .at(0)
212
+ .simulate("change", {
213
+ target: {
214
+ value: "",
215
+ },
216
+ });
217
+ expect(wrapper.find("button").last().prop("disabled")).to.be.true;
218
+ });
219
+ it("should click submit button when pressing enter on Name field", () => {
220
+ testSubmitOnEnter("#app-name");
221
+ });
222
+ it("should not click submit button when pressing a key other than enter on Name field", () => {
223
+ const buttonSpy = sinon.spy(Page.args, "submitFn");
224
+ const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
225
+ wrapper
226
+ .find("#app-name")
227
+ .at(0)
228
+ .simulate("keydown", {
229
+ key: "a",
230
+ preventDefault: () => { },
231
+ });
232
+ expect(buttonSpy.calledOnce).to.be.false;
233
+ });
234
+ it("should not submit when pressing enter on Name field IF the submit button is disabled", () => {
235
+ const buttonSpy = sinon.spy(EmptyPage.args, "submitFn");
236
+ const wrapper = mount(React.createElement(EmptyPage, Object.assign({}, EmptyPage.args)));
237
+ wrapper
238
+ .find("#app-name")
239
+ .at(0)
240
+ .simulate("keydown", {
241
+ key: "Enter",
242
+ preventDefault: () => { },
243
+ });
244
+ expect(buttonSpy.calledOnce).to.be.false;
61
245
  });
62
- expect(wrapper.find("#app-width").at(0).prop("aria-invalid")).to.be.true;
63
246
  });
64
- it("should display invalid state for width if provided an empty value", () => {
65
- const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
66
- wrapper
67
- .find("#app-width")
68
- .at(0)
69
- .simulate("change", {
70
- target: {
71
- value: "",
72
- },
247
+ describe("Icon URL", () => {
248
+ const appDataKey = "iconURL";
249
+ const selector = "#app-icon-url";
250
+ const imageSelector = ".app-icon";
251
+ it("should save correctly when edited", () => {
252
+ testSaveInputValue(appDataKey, selector);
253
+ });
254
+ it("should display pre-set values", () => {
255
+ testPresetInputValue(appDataKey, selector);
256
+ });
257
+ it("should submit on enter", () => {
258
+ testSubmitOnEnter(selector);
259
+ });
260
+ it("should display icon when icon url is provided", () => {
261
+ const wrapper = mount(React.createElement(PageWithIconURL, Object.assign({}, PageWithIconURL.args)));
262
+ expect(wrapper.find(imageSelector).exists()).to.be.true;
263
+ });
264
+ it("should not display icon when no icon url is provided", () => {
265
+ const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
266
+ expect(wrapper.find(imageSelector).exists()).to.be.false;
267
+ });
268
+ it("when icon url field is emptied, the icon should disappear", () => {
269
+ const wrapper = mount(React.createElement(PageWithIconURL, Object.assign({}, PageWithIconURL.args)));
270
+ wrapper.find(selector).simulate("change", {
271
+ target: {
272
+ value: "",
273
+ },
274
+ });
275
+ expect(wrapper.find(imageSelector).exists()).to.be.false;
276
+ });
277
+ it("when icon url field gets a value, the icon should start displaying", () => {
278
+ const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
279
+ wrapper.find(selector).simulate("change", {
280
+ target: {
281
+ value: "https://assets.finsemble.com/components/fdc3-workbench/fdc3-icon-256.png",
282
+ },
283
+ });
284
+ expect(wrapper.find(imageSelector).exists()).to.be.true;
73
285
  });
74
- expect(wrapper.find("#app-width").at(0).prop("aria-invalid")).to.be.true;
75
286
  });
76
- it("should display invalid state for height if provided a negative number", () => {
77
- const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
78
- wrapper
79
- .find("#app-height")
80
- .at(0)
81
- .simulate("change", {
82
- target: {
83
- value: "-999",
84
- },
287
+ describe("API Access", () => {
288
+ afterEach(() => {
289
+ sinon.restore();
290
+ });
291
+ const name = "api-access";
292
+ const nativeParams = {
293
+ appType: "native",
294
+ };
295
+ const assimilationParams = {
296
+ appType: "assimilation",
297
+ };
298
+ it.skip("should display correctly when preset: With API Access", () => {
299
+ presetRadioButtons(name, nativeParams, [true, false]);
300
+ });
301
+ it.skip("should display correctly when preset: Without API Access", () => {
302
+ presetRadioButtons(name, assimilationParams, [false, true]);
303
+ });
304
+ it("should save correctly when edited: With API Access", () => {
305
+ saveRadioButton(name, 0, nativeParams, NativePage);
306
+ });
307
+ it("should save correctly when edited: Without API Access", () => {
308
+ saveRadioButton(name, 1, assimilationParams, NativePage);
309
+ });
310
+ it("confirm that the radio buttons stay independent", () => {
311
+ checkUniqueRadioButtons(name, 2, NativePage);
312
+ });
313
+ it("should submit on enter: Yes", () => {
314
+ testSubmitOnEnter("#api-access-yes", NativePage);
315
+ });
316
+ it("should submit on enter: No", () => {
317
+ testSubmitOnEnter("#api-access-no", NativePage);
85
318
  });
86
- expect(wrapper.find("#app-height").at(0).prop("aria-invalid")).to.be.true;
87
319
  });
88
- it("should display invalid state for height if provided an empty value", () => {
89
- const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
90
- wrapper
91
- .find("#app-height")
92
- .at(0)
93
- .simulate("change", {
94
- target: {
95
- value: "",
96
- },
320
+ describe("App URL", () => {
321
+ const appDataKey = "url";
322
+ const selector = "#app-url";
323
+ it("should save correctly when edited", () => {
324
+ testSaveInputValue(appDataKey, selector);
325
+ });
326
+ it.skip("should display pre-set values", () => {
327
+ testPresetInputValue(appDataKey, selector);
328
+ });
329
+ it("should submit on enter", () => {
330
+ testSubmitOnEnter(selector);
331
+ });
332
+ it("should have a disabled Save button if the App URL field is emptied", () => {
333
+ const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
334
+ wrapper
335
+ .find("#app-url")
336
+ .at(0)
337
+ .simulate("change", {
338
+ target: {
339
+ value: "",
340
+ },
341
+ });
342
+ expect(wrapper.find("button").last().prop("disabled")).to.be.true;
343
+ });
344
+ it("should display invalid state for App URL if provided URL is invalid", () => {
345
+ const wrapper = mount(React.createElement(EmptyPage, Object.assign({}, EmptyPage.args)));
346
+ wrapper
347
+ .find("#app-url")
348
+ .at(0)
349
+ .simulate("change", {
350
+ target: {
351
+ value: "invalid",
352
+ },
353
+ });
354
+ expect(wrapper.find("#app-url").at(0).prop("aria-invalid")).to.be.true;
355
+ });
356
+ it("should click submit button when pressing enter on App URL field", () => {
357
+ const buttonSpy = sinon.spy(Page.args, "submitFn");
358
+ const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
359
+ wrapper
360
+ .find("#app-url")
361
+ .at(0)
362
+ .simulate("keydown", {
363
+ key: "Enter",
364
+ preventDefault: () => { },
365
+ });
366
+ expect(buttonSpy.calledOnce).to.be.true;
97
367
  });
98
- expect(wrapper.find("#app-height").at(0).prop("aria-invalid")).to.be.true;
99
368
  });
100
- it("should display only Web URL if App type = Web", () => {
101
- const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
102
- wrapper
103
- .find("#app-type-web")
104
- .at(0)
105
- .simulate("change", {
106
- target: {
107
- value: "web",
108
- },
109
- });
110
- expect(wrapper.contains("Web URL")).to.be.true;
111
- expect(wrapper.contains("File Path")).to.be.false;
112
- });
113
- it("should display only File Path, API Access and Arguments if App type = Native", () => {
114
- const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
115
- wrapper
116
- .find("#app-type-web")
117
- .at(0)
118
- .simulate("change", {
119
- target: {
120
- value: "native",
121
- },
122
- });
123
- expect(wrapper.contains("File Path")).to.be.true;
124
- expect(wrapper.contains("Arguments")).to.be.true;
125
- expect(wrapper.contains("API access")).to.be.true;
126
- expect(wrapper.contains("Web URL")).to.be.false;
127
- });
128
- it("should have a disabled Save button if the name field is emptied", () => {
129
- const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
130
- wrapper
131
- .find("#app-name")
132
- .at(0)
133
- .simulate("change", {
134
- target: {
135
- value: "",
136
- },
369
+ describe.skip("File path", () => {
370
+ });
371
+ describe("Arguments", () => {
372
+ const appDataKey = "appArguments";
373
+ const selector = "#app-arguments";
374
+ it("should save correctly when edited", () => {
375
+ testSaveInputValue(appDataKey, selector, true);
376
+ });
377
+ it("should display pre-set values", () => {
378
+ testPresetInputValue(appDataKey, selector, NativePage);
379
+ });
380
+ it("should submit on enter", () => {
381
+ testSubmitOnEnter(selector, NativePage);
382
+ });
383
+ it("is not required (Save button is enabled if empty)", () => {
384
+ const wrapper = mount(React.createElement(NativePage, Object.assign({}, NativePage.args)));
385
+ expect(wrapper.find(selector).prop("value")).to.be.empty;
386
+ const collection = wrapper.find("button");
387
+ const saveButton = collection.at(collection.length - 1);
388
+ expect(saveButton.prop("disabled")).to.be.false;
137
389
  });
138
- expect(wrapper.find("button").last().prop("disabled")).to.be.true;
139
390
  });
140
- it("should have a disabled Save button if the Web URL field is emptied", () => {
141
- const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
142
- wrapper
143
- .find("#app-type-web")
144
- .at(0)
145
- .simulate("change", {
146
- target: {
147
- value: "web",
148
- },
149
- });
150
- wrapper
151
- .find("#app-url")
152
- .at(0)
153
- .simulate("change", {
154
- target: {
155
- value: "",
156
- },
157
- });
158
- expect(wrapper.find("button").last().prop("disabled")).to.be.true;
159
- });
160
- it("should have a disabled Save button if the Web URL field is emptied", () => {
161
- const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
162
- wrapper
163
- .find("#app-type-web")
164
- .at(0)
165
- .simulate("change", {
166
- target: {
167
- value: "web",
168
- },
169
- });
170
- wrapper
171
- .find("#app-url")
172
- .at(0)
173
- .simulate("change", {
174
- target: {
175
- value: "",
176
- },
177
- });
178
- expect(wrapper.find("button").last().prop("disabled")).to.be.true;
179
- });
180
- it("should have a disabled Save button if the width field is emptied", () => {
181
- const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
182
- wrapper
183
- .find("#app-width")
184
- .at(0)
185
- .simulate("change", {
186
- target: {
187
- value: "",
188
- },
391
+ describe("Description", () => {
392
+ const appDataKey = "description";
393
+ const selector = "#app-description";
394
+ it("should save correctly when edited", () => {
395
+ testSaveInputValue(appDataKey, selector);
396
+ });
397
+ it("should display pre-set values", () => {
398
+ testPresetInputValue(appDataKey, selector);
399
+ });
400
+ it("is not required (Save button is enabled if empty)", () => {
401
+ const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
402
+ expect(wrapper.find(selector).prop("value")).to.be.empty;
403
+ const collection = wrapper.find("button");
404
+ const saveButton = collection.at(collection.length - 1);
405
+ expect(saveButton.prop("disabled")).to.be.false;
189
406
  });
190
- expect(wrapper.find("button").last().prop("disabled")).to.be.true;
191
407
  });
192
- it("should have a disabled Save button if the height field is emptied", () => {
193
- const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
194
- wrapper
195
- .find("#app-height")
196
- .at(0)
197
- .simulate("change", {
198
- target: {
199
- value: "",
200
- },
408
+ describe("Select Connect", () => {
409
+ it("should display preset value (undefined rules)", () => {
410
+ var _a;
411
+ const args = Object.assign(Object.assign({}, Page.args), { appData: Object.assign(Object.assign({}, (_a = Page.args) === null || _a === void 0 ? void 0 : _a.appData), { rules: undefined }) });
412
+ const wrapper = mount(React.createElement(Page, Object.assign({}, args)));
413
+ expect(wrapper.find("input[name='interop-trust'][value='true']").prop("checked"), "Radio button 'trust all apps' is checked").to.be.true;
414
+ expect(wrapper.find(".app-edit-access").exists(), "Display SelectConnect listbox").to.be.false;
415
+ });
416
+ it("should display preset value (empty rules)", () => {
417
+ var _a;
418
+ const args = Object.assign(Object.assign({}, Page.args), { appData: Object.assign(Object.assign({}, (_a = Page.args) === null || _a === void 0 ? void 0 : _a.appData), { rules: [] }) });
419
+ const wrapper = mount(React.createElement(Page, Object.assign({}, args)));
420
+ expect(wrapper.find("input[name='interop-trust'][value='true']").prop("checked"), "Radio button 'trust all apps' is checked").to.be.true;
421
+ expect(wrapper.find(".app-edit-access").exists(), "Display SelectConnect listbox").to.be.false;
422
+ });
423
+ it("should display preset value (rules without authorize)", () => {
424
+ var _a;
425
+ const args = Object.assign(Object.assign({}, Page.args), { appData: Object.assign(Object.assign({}, (_a = Page.args) === null || _a === void 0 ? void 0 : _a.appData), { rules: [
426
+ { contextType: "fdc3.instrument", cc: "#Workspace" },
427
+ { contextType: "layout", fwd: "#Workspace" },
428
+ ] }) });
429
+ const wrapper = mount(React.createElement(Page, Object.assign({}, args)));
430
+ expect(wrapper.find("input[name='interop-trust'][value='true']").prop("checked"), "Radio button 'trust all apps' is checked").to.be.true;
431
+ expect(wrapper.find(".app-edit-access").exists(), "Display SelectConnect listbox").to.be.false;
432
+ });
433
+ it("should display preset value (rules with authorize)", () => {
434
+ var _a;
435
+ const args = Object.assign(Object.assign({}, Page.args), { appData: Object.assign(Object.assign({}, (_a = Page.args) === null || _a === void 0 ? void 0 : _a.appData), { rules: [{ authorize: [{ name: "ChartIQ Example App" }] }] }) });
436
+ const wrapper = mount(React.createElement(Page, Object.assign({}, args)));
437
+ expect(wrapper.find("input[name='interop-trust'][value='false']").prop("checked"), "Radio button 'trust selected apps' is checked").to.be.true;
438
+ expect(wrapper.find(".app-edit-access").exists(), "Display SelectConnect listbox").to.be.true;
439
+ });
440
+ it("should display preset value (rules with empty authorize)", () => {
441
+ var _a;
442
+ const args = Object.assign(Object.assign({}, Page.args), { appData: Object.assign(Object.assign({}, (_a = Page.args) === null || _a === void 0 ? void 0 : _a.appData), { rules: [{ authorize: [] }] }) });
443
+ const wrapper = mount(React.createElement(Page, Object.assign({}, args)));
444
+ expect(wrapper.find("input[name='interop-trust'][value='false']").prop("checked"), "Radio button 'trust selected apps' is checked").to.be.true;
445
+ expect(wrapper.find(".app-edit-access").exists(), "Display SelectConnect listbox").to.be.true;
446
+ });
447
+ it.skip("confirm that the radio buttons stay independent", () => {
448
+ checkUniqueRadioButtons("interop-trust", 2);
201
449
  });
202
- expect(wrapper.find("button").last().prop("disabled")).to.be.true;
203
450
  });
204
- it("should have a disabled Save button if the width field is negative", () => {
205
- const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
206
- wrapper
207
- .find("#app-width")
208
- .at(0)
209
- .simulate("change", {
210
- target: {
211
- value: "-999",
212
- },
451
+ describe("Width", () => {
452
+ const appDataKey = "width";
453
+ const selector = "#app-width";
454
+ it("should save correctly when edited", () => {
455
+ testSaveInputValue(appDataKey, selector, false, 200);
456
+ });
457
+ it("should display pre-set values", () => {
458
+ testPresetInputValue(appDataKey, selector, Page, "200");
459
+ });
460
+ it("should display invalid state for width if provided a negative number", () => {
461
+ const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
462
+ wrapper
463
+ .find(selector)
464
+ .at(0)
465
+ .simulate("change", {
466
+ target: {
467
+ value: "-999",
468
+ },
469
+ });
470
+ expect(wrapper.find(selector).at(0).prop("aria-invalid")).to.be.true;
471
+ });
472
+ it("should display invalid state for width if provided an empty value", () => {
473
+ const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
474
+ wrapper
475
+ .find(selector)
476
+ .at(0)
477
+ .simulate("change", {
478
+ target: {
479
+ value: "",
480
+ },
481
+ });
482
+ expect(wrapper.find(selector).at(0).prop("aria-invalid")).to.be.true;
483
+ });
484
+ it("should display invalid state for non-numeric value", () => {
485
+ const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
486
+ wrapper
487
+ .find(selector)
488
+ .at(0)
489
+ .simulate("change", {
490
+ target: {
491
+ value: "abc",
492
+ },
493
+ });
494
+ expect(wrapper.find(selector).at(0).prop("aria-invalid")).to.be.true;
495
+ });
496
+ it("should have a disabled Save button if the width field is emptied", () => {
497
+ const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
498
+ wrapper
499
+ .find(selector)
500
+ .at(0)
501
+ .simulate("change", {
502
+ target: {
503
+ value: "",
504
+ },
505
+ });
506
+ expect(wrapper.find("button").last().prop("disabled")).to.be.true;
507
+ });
508
+ it("should have a disabled Save button if the width field is negative", () => {
509
+ const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
510
+ wrapper
511
+ .find(selector)
512
+ .at(0)
513
+ .simulate("change", {
514
+ target: {
515
+ value: "-999",
516
+ },
517
+ });
518
+ expect(wrapper.find("button").last().prop("disabled")).to.be.true;
213
519
  });
214
- expect(wrapper.find("button").last().prop("disabled")).to.be.true;
215
520
  });
216
- it("should have a disabled Save button if the height field is negative", () => {
217
- const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
218
- wrapper
219
- .find("#app-height")
220
- .at(0)
221
- .simulate("change", {
222
- target: {
223
- value: "-999",
224
- },
521
+ describe("Height", () => {
522
+ const appDataKey = "height";
523
+ const selector = "#app-height";
524
+ it("should save correctly when edited", () => {
525
+ testSaveInputValue(appDataKey, selector, false, 200);
526
+ });
527
+ it("should display pre-set values", () => {
528
+ testPresetInputValue(appDataKey, selector, Page, "200");
529
+ });
530
+ it("should display invalid state for width if provided a negative number", () => {
531
+ const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
532
+ wrapper
533
+ .find(selector)
534
+ .at(0)
535
+ .simulate("change", {
536
+ target: {
537
+ value: "-999",
538
+ },
539
+ });
540
+ expect(wrapper.find(selector).at(0).prop("aria-invalid")).to.be.true;
541
+ });
542
+ it("should display invalid state for width if provided an empty value", () => {
543
+ const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
544
+ wrapper
545
+ .find(selector)
546
+ .at(0)
547
+ .simulate("change", {
548
+ target: {
549
+ value: "",
550
+ },
551
+ });
552
+ expect(wrapper.find(selector).at(0).prop("aria-invalid")).to.be.true;
553
+ });
554
+ it("should display invalid state for non-numeric value", () => {
555
+ const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
556
+ wrapper
557
+ .find(selector)
558
+ .at(0)
559
+ .simulate("change", {
560
+ target: {
561
+ value: "abc",
562
+ },
563
+ });
564
+ expect(wrapper.find("#app-height").at(0).prop("aria-invalid")).to.be.true;
565
+ });
566
+ it("should have a disabled Save button if the height field is emptied", () => {
567
+ const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
568
+ wrapper
569
+ .find(selector)
570
+ .at(0)
571
+ .simulate("change", {
572
+ target: {
573
+ value: "",
574
+ },
575
+ });
576
+ expect(wrapper.find("button").last().prop("disabled")).to.be.true;
577
+ });
578
+ it("should have a disabled Save button if the height field is negative", () => {
579
+ const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
580
+ wrapper
581
+ .find(selector)
582
+ .at(0)
583
+ .simulate("change", {
584
+ target: {
585
+ value: "-999",
586
+ },
587
+ });
588
+ expect(wrapper.find("button").last().prop("disabled")).to.be.true;
225
589
  });
226
- expect(wrapper.find("button").last().prop("disabled")).to.be.true;
227
590
  });
228
- it("should call the passed-in cancel function when the cancel button is clicked", () => {
229
- const buttonSpy = sinon.spy(Page.args, "cancelFn");
230
- const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
231
- const collection = wrapper.find("button");
232
- collection.at(collection.length - 2).simulate("click");
233
- expect(buttonSpy.calledOnce).to.be.true;
591
+ describe("Lock dimensions", () => {
592
+ const label = "Lock dimensions";
593
+ const appDataKey = "resizable";
594
+ it("should display pre-set value: checked", () => {
595
+ presetCheckbox(appDataKey, label, true, false);
596
+ });
597
+ it("should display pre-set value: not checked", () => {
598
+ presetCheckbox(appDataKey, label, false, true);
599
+ });
600
+ it("should save correctly (change to true)", () => {
601
+ flipCheckbox(appDataKey, label, true);
602
+ });
603
+ it("should save correctly (change to true)", () => {
604
+ flipCheckbox(appDataKey, label, false);
605
+ });
234
606
  });
235
- it("should call the passed-in Remove Application function when the Remove Application button is clicked", () => {
236
- const buttonSpy = sinon.spy(Page.args, "removeApplicationFn");
237
- const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
238
- const collection = wrapper.find("button");
239
- collection.at(collection.length - 3).simulate("click");
240
- expect(buttonSpy.calledOnce).to.be.true;
241
- sinon.restore();
607
+ describe("Position", () => {
608
+ it("should save correctly when edited", () => {
609
+ const buttonSpy = sinon.spy(Page.args, "submitFn");
610
+ const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
611
+ wrapper.find(".position-entry [role='combobox']").simulate("click");
612
+ wrapper.find(".position-entry .finsemble-dropdown__btn-option").at(4).simulate("click");
613
+ const collection = wrapper.find("button");
614
+ collection.at(collection.length - 1).simulate("click");
615
+ expect(buttonSpy.args[0][0]).to.deep.equal(Object.assign(Object.assign({}, defaults), { abstractPosition: 4 }));
616
+ });
617
+ it("should display pre-set values", () => {
618
+ var _a;
619
+ const args = Object.assign(Object.assign({}, Page.args), { appData: Object.assign(Object.assign({}, (_a = Page.args) === null || _a === void 0 ? void 0 : _a.appData), { abstractPosition: 5 }) });
620
+ const wrapper = mount(React.createElement(Page, Object.assign({}, args)));
621
+ expect(wrapper.find(".position-entry .finsemble-dropdown__btn-label").text()).to.equal("Center");
622
+ });
242
623
  });
243
- it("should call the passed-in submit function with relevant data when the submit button is clicked", () => {
244
- const buttonSpy = sinon.spy(Page.args, "submitFn");
245
- const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
246
- wrapper.find("button").last().simulate("click");
247
- expect(buttonSpy.calledOnce).to.be.true;
248
- expect(buttonSpy.firstCall.args[0]).to.deep.equal({
249
- name: "Test",
250
- abstractPosition: 0,
251
- addToWorkspace: true,
252
- allowAutoArrange: true,
253
- allowGrouping: true,
254
- allowMaximize: true,
255
- allowMinimize: true,
256
- allowSnapping: true,
257
- allowTabbing: true,
258
- allowTiling: true,
624
+ describe("Opacity", () => {
625
+ const appDataKey = "opacity";
626
+ const rangeSelector = ".app-edit-range";
627
+ const inputSelector = "#app-opacity";
628
+ it("should display correctly when preset (input range)", () => {
629
+ testPresetInputValue(appDataKey, rangeSelector, Page, "30");
630
+ });
631
+ it("should display correctly when preset (input field)", () => {
632
+ var _a;
633
+ const args = Object.assign(Object.assign({}, Page.args), { appData: Object.assign(Object.assign({}, (_a = Page.args) === null || _a === void 0 ? void 0 : _a.appData), { [appDataKey]: 0.3 }) });
634
+ const wrapper = mount(React.createElement(Page, Object.assign({}, args)));
635
+ expect(wrapper.find(inputSelector).prop("value")).to.equal(30);
636
+ });
637
+ it("should save correctly when edited (input range)", () => {
638
+ testSaveInputValue(appDataKey, rangeSelector, false, 30);
639
+ });
640
+ it("should save correctly when edited (input field) - value saved is 1/100 of what is entered", () => {
641
+ const buttonSpy = sinon.spy(Page.args, "submitFn");
642
+ const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
643
+ wrapper
644
+ .find(inputSelector)
645
+ .at(0)
646
+ .simulate("change", {
647
+ target: {
648
+ value: 30,
649
+ },
650
+ });
651
+ const collection = wrapper.find("button");
652
+ collection.at(collection.length - 1).simulate("click");
653
+ expect(buttonSpy.args[0][0]).to.deep.equal(Object.assign(Object.assign({}, defaults), { [appDataKey]: 0.3 }));
654
+ });
655
+ it("When editing the range field, the text box updates", () => {
656
+ const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
657
+ wrapper
658
+ .find(inputSelector)
659
+ .at(0)
660
+ .simulate("change", {
661
+ target: {
662
+ value: 70,
663
+ },
664
+ });
665
+ expect(wrapper.find(rangeSelector).prop("value")).to.equal(0.7);
666
+ });
667
+ it("When editing the text box, the range field updates", () => {
668
+ const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
669
+ wrapper
670
+ .find(rangeSelector)
671
+ .at(0)
672
+ .simulate("change", {
673
+ target: {
674
+ value: 0.7,
675
+ },
676
+ });
677
+ expect(wrapper.find(inputSelector).prop("value")).to.equal(70);
678
+ });
679
+ });
680
+ describe("Auto arrange", () => {
681
+ const label = "Auto arrange";
682
+ const appDataKey = "allowAutoArrange";
683
+ it("should display pre-set value: checked", () => {
684
+ presetCheckbox(appDataKey, label, true, true);
685
+ });
686
+ it("should display pre-set value: not checked", () => {
687
+ presetCheckbox(appDataKey, label, false, false);
688
+ });
689
+ it("should save correctly (change to true)", () => {
690
+ flipCheckbox(appDataKey, label, true);
691
+ });
692
+ it("should save correctly (change to true)", () => {
693
+ flipCheckbox(appDataKey, label, false);
694
+ });
695
+ });
696
+ describe("Grouping", () => {
697
+ const label = "Grouping";
698
+ const appDataKey = "allowGrouping";
699
+ it("should display pre-set value: checked", () => {
700
+ presetCheckbox(appDataKey, label, true, true);
701
+ });
702
+ it("should display pre-set value: not checked", () => {
703
+ presetCheckbox(appDataKey, label, false, false);
704
+ });
705
+ it("should save correctly (change to true)", () => {
706
+ flipCheckbox(appDataKey, label, true);
707
+ });
708
+ it("should save correctly (change to true)", () => {
709
+ flipCheckbox(appDataKey, label, false);
710
+ });
711
+ });
712
+ describe("Snapping", () => {
713
+ const label = "Snapping";
714
+ const appDataKey = "allowSnapping";
715
+ it("should display pre-set value: checked", () => {
716
+ presetCheckbox(appDataKey, label, true, true);
717
+ });
718
+ it("should display pre-set value: not checked", () => {
719
+ presetCheckbox(appDataKey, label, false, false);
720
+ });
721
+ it("should save correctly (change to true)", () => {
722
+ flipCheckbox(appDataKey, label, true);
723
+ });
724
+ it("should save correctly (change to true)", () => {
725
+ flipCheckbox(appDataKey, label, false);
726
+ });
727
+ });
728
+ describe("Tabs", () => {
729
+ const label = "Tabs";
730
+ const appDataKey = "allowTabbing";
731
+ it("should display pre-set value: checked", () => {
732
+ presetCheckbox(appDataKey, label, true, true);
733
+ });
734
+ it("should display pre-set value: not checked", () => {
735
+ presetCheckbox(appDataKey, label, false, false);
736
+ });
737
+ it("should save correctly (change to true)", () => {
738
+ flipCheckbox(appDataKey, label, true);
739
+ });
740
+ it("should save correctly (change to true)", () => {
741
+ flipCheckbox(appDataKey, label, false);
742
+ });
743
+ });
744
+ describe("Tiling", () => {
745
+ const label = "Tiling";
746
+ const appDataKey = "allowTiling";
747
+ it("should display pre-set value: checked", () => {
748
+ presetCheckbox(appDataKey, label, true, true);
749
+ });
750
+ it("should display pre-set value: not checked", () => {
751
+ presetCheckbox(appDataKey, label, false, false);
752
+ });
753
+ it("should save correctly (change to true)", () => {
754
+ flipCheckbox(appDataKey, label, true);
755
+ });
756
+ it("should save correctly (change to true)", () => {
757
+ flipCheckbox(appDataKey, label, false);
758
+ });
759
+ });
760
+ describe("Show title bar", () => {
761
+ const label = "Show title bar";
762
+ const appDataKey = "enableTitleBar";
763
+ it("should display pre-set value: checked", () => {
764
+ presetCheckbox(appDataKey, label, true, true);
765
+ });
766
+ it("should display pre-set value: not checked", () => {
767
+ presetCheckbox(appDataKey, label, false, false);
768
+ });
769
+ it("should save correctly (change to true)", () => {
770
+ flipCheckbox(appDataKey, label, true);
771
+ });
772
+ it("should save correctly (change to true)", () => {
773
+ flipCheckbox(appDataKey, label, false);
774
+ });
775
+ });
776
+ describe("Always on top", () => {
777
+ const name = "alwaysOnTop";
778
+ const enableParams = {
779
+ alwaysOnTop: true,
780
+ enableAOT: false,
781
+ };
782
+ const showParams = {
783
+ alwaysOnTop: false,
784
+ enableAOT: true,
785
+ };
786
+ const disableParams = {
259
787
  alwaysOnTop: false,
260
- appArguments: "",
261
- appType: "web",
262
- autoConnect: true,
263
- description: "",
264
788
  enableAOT: false,
265
- enableTitleBar: true,
266
- grpc: false,
267
- height: 600,
268
- hideClose: false,
269
- hideMaximize: false,
789
+ };
790
+ it("should display correctly when preset: Enable", () => {
791
+ presetRadioButtons(name, enableParams, [true, false, false]);
792
+ });
793
+ it("should display correctly when preset: Show in titlebar", () => {
794
+ presetRadioButtons(name, showParams, [false, true, false]);
795
+ });
796
+ it("should display correctly when preset: Disable", () => {
797
+ presetRadioButtons(name, disableParams, [false, false, true]);
798
+ });
799
+ it("should save correctly when edited: Enable", () => {
800
+ saveRadioButton(name, 0, enableParams);
801
+ });
802
+ it("should save correctly when edited: Show in titlebar", () => {
803
+ saveRadioButton(name, 1, showParams);
804
+ });
805
+ it("should save correctly when edited: Disable", () => {
806
+ saveRadioButton(name, 2, disableParams);
807
+ });
808
+ it("confirm that the radio buttons stay independent", () => {
809
+ checkUniqueRadioButtons(name, 3);
810
+ });
811
+ });
812
+ describe("Minimize", () => {
813
+ const name = "minimize";
814
+ const enableParams = {
815
+ allowMinimize: true,
270
816
  hideMinimize: false,
271
- iconURL: "",
272
- intents: [],
273
- isEvergreen: false,
274
- launchableByUser: true,
275
- native_windowSpawnTimeout: 30,
276
- opacity: 1,
277
- path: "",
278
- persistPath: true,
279
- persistURL: true,
280
- resizable: true,
281
- rules: [],
817
+ };
818
+ const hideParams = {
819
+ allowMinimize: true,
820
+ hideMinimize: true,
821
+ };
822
+ const disableParams = {
823
+ allowMinimize: false,
824
+ hideMinimize: true,
825
+ };
826
+ it("should display correctly when preset: Enable", () => {
827
+ presetRadioButtons(name, enableParams, [true, false, false]);
828
+ });
829
+ it("should display correctly when preset: Hide from titlebar", () => {
830
+ presetRadioButtons(name, hideParams, [false, true, false]);
831
+ });
832
+ it("should display correctly when preset: Disable", () => {
833
+ presetRadioButtons(name, disableParams, [false, false, true]);
834
+ });
835
+ it("should save correctly when edited: Enable", () => {
836
+ saveRadioButton(name, 0, enableParams);
837
+ });
838
+ it("should save correctly when edited: Hide from titlebar", () => {
839
+ saveRadioButton(name, 1, hideParams);
840
+ });
841
+ it("should save correctly when edited: Disable", () => {
842
+ saveRadioButton(name, 2, disableParams);
843
+ });
844
+ it("confirm that the radio buttons stay independent", () => {
845
+ checkUniqueRadioButtons(name, 3);
846
+ });
847
+ });
848
+ describe("Maximize", () => {
849
+ const name = "maximize";
850
+ const enableParams = {
851
+ allowMaximize: true,
852
+ hideMaximize: false,
853
+ };
854
+ const hideParams = {
855
+ allowMaximize: true,
856
+ hideMaximize: true,
857
+ };
858
+ const disableParams = {
859
+ allowMaximize: false,
860
+ hideMaximize: true,
861
+ };
862
+ it("should display correctly when preset: Enable", () => {
863
+ presetRadioButtons(name, enableParams, [true, false, false]);
864
+ });
865
+ it("should display correctly when preset: Hide from titlebar", () => {
866
+ presetRadioButtons(name, hideParams, [false, true, false]);
867
+ });
868
+ it("should display correctly when preset: Disable", () => {
869
+ presetRadioButtons(name, disableParams, [false, false, true]);
870
+ });
871
+ it("should save correctly when edited: Enable", () => {
872
+ saveRadioButton(name, 0, enableParams);
873
+ });
874
+ it("should save correctly when edited: Hide from titlebar", () => {
875
+ saveRadioButton(name, 1, hideParams);
876
+ });
877
+ it("should save correctly when edited: Disable", () => {
878
+ saveRadioButton(name, 2, disableParams);
879
+ });
880
+ it("confirm that the radio buttons stay independent", () => {
881
+ checkUniqueRadioButtons(name, 3);
882
+ });
883
+ });
884
+ describe("Close", () => {
885
+ const name = "close";
886
+ const enableParams = {
887
+ hideClose: false,
888
+ };
889
+ const disableParams = {
890
+ hideClose: true,
891
+ };
892
+ it("should display correctly when preset: Enable", () => {
893
+ presetRadioButtons(name, enableParams, [true, false]);
894
+ });
895
+ it("should display correctly when preset: Disable", () => {
896
+ presetRadioButtons(name, disableParams, [false, true]);
897
+ });
898
+ it("should save correctly when edited: Enable", () => {
899
+ saveRadioButton(name, 0, enableParams);
900
+ });
901
+ it("should save correctly when edited: Disable", () => {
902
+ saveRadioButton(name, 1, disableParams);
903
+ });
904
+ it("confirm that the radio buttons stay independent", () => {
905
+ checkUniqueRadioButtons(name, 2);
906
+ });
907
+ });
908
+ describe("Display linker", () => {
909
+ const name = "linker";
910
+ const enableParams = {
911
+ autoConnect: true,
912
+ };
913
+ const disableParams = {
914
+ autoConnect: false,
915
+ };
916
+ it("should display correctly when preset: Always", () => {
917
+ presetRadioButtons(name, enableParams, [true, false]);
918
+ });
919
+ it("should display correctly when preset: FDC3 API use", () => {
920
+ presetRadioButtons(name, disableParams, [false, true]);
921
+ });
922
+ it("should save correctly when edited: Always", () => {
923
+ saveRadioButton(name, 0, enableParams);
924
+ });
925
+ it("should save correctly when edited: FDC3 API use", () => {
926
+ saveRadioButton(name, 1, disableParams);
927
+ });
928
+ it("confirm that the radio buttons stay independent", () => {
929
+ checkUniqueRadioButtons(name, 2);
930
+ });
931
+ });
932
+ describe("Intents", () => {
933
+ it("should save correctly when edited (adding an intent)", () => {
934
+ const buttonSpy = sinon.spy(Page.args, "submitFn");
935
+ const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
936
+ wrapper
937
+ .find(".inputTable input")
938
+ .at(0)
939
+ .simulate("change", {
940
+ target: {
941
+ value: "ViewChart",
942
+ },
943
+ });
944
+ wrapper
945
+ .find(".inputTable input")
946
+ .at(1)
947
+ .simulate("change", {
948
+ target: {
949
+ value: "View Chart",
950
+ },
951
+ });
952
+ wrapper
953
+ .find(".inputTable input")
954
+ .at(2)
955
+ .simulate("change", {
956
+ target: {
957
+ value: "fdc3.instrument",
958
+ },
959
+ });
960
+ const collection = wrapper.find("button");
961
+ collection.at(collection.length - 1).simulate("click");
962
+ expect(buttonSpy.args[0][0]).to.deep.equal(Object.assign(Object.assign({}, defaults), { intents: [{ name: "ViewChart", displayName: "View Chart", contexts: ["fdc3.instrument"] }] }));
963
+ });
964
+ it("should save correctly when edited (adding just an intent name)", () => {
965
+ const buttonSpy = sinon.spy(Page.args, "submitFn");
966
+ const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
967
+ wrapper
968
+ .find(".inputTable input")
969
+ .at(0)
970
+ .simulate("change", {
971
+ target: {
972
+ value: "ViewChart",
973
+ },
974
+ });
975
+ const collection = wrapper.find("button");
976
+ collection.at(collection.length - 1).simulate("click");
977
+ expect(buttonSpy.args[0][0]).to.deep.equal(Object.assign(Object.assign({}, defaults), { intents: [{ name: "ViewChart", displayName: "", contexts: [""] }] }));
978
+ });
979
+ it("should save correctly when edited (removing an intent)", () => {
980
+ var _a;
981
+ const buttonSpy = sinon.spy(Page.args, "submitFn");
982
+ const args = Object.assign(Object.assign({}, Page.args), { appData: Object.assign(Object.assign({}, (_a = Page.args) === null || _a === void 0 ? void 0 : _a.appData), { intents: [{ name: "ViewChart", displayName: "View Chart", contexts: ["fdc3.instrument"] }] }) });
983
+ const wrapper = mount(React.createElement(Page, Object.assign({}, args)));
984
+ wrapper.find(".inputTable button[title='Remove row']").at(0).simulate("click");
985
+ const collection = wrapper.find("button");
986
+ collection.at(collection.length - 1).simulate("click");
987
+ expect(buttonSpy.args[0][0]).to.deep.equal(Object.assign(Object.assign({}, defaults), { intents: [] }));
988
+ });
989
+ it("should display preset values (empty list of intents)", () => {
990
+ var _a;
991
+ const args = Object.assign(Object.assign({}, Page.args), { appData: Object.assign(Object.assign({}, (_a = Page.args) === null || _a === void 0 ? void 0 : _a.appData), { intents: [] }) });
992
+ const wrapper = mount(React.createElement(Page, Object.assign({}, args)));
993
+ expect(wrapper.find(".inputTable tr"), "List of rows").to.be.lengthOf(2);
994
+ expect(wrapper.find(".inputTable input").at(0).prop("value"), "Intent table, input field 1").to.be.empty;
995
+ expect(wrapper.find(".inputTable input").at(1).prop("value"), "Intent table, input field 2").to.be.empty;
996
+ expect(wrapper.find(".inputTable input").at(2).prop("value"), "Intent table, input field 3").to.be.empty;
997
+ });
998
+ it("should display preset values (with 1 intent)", () => {
999
+ var _a;
1000
+ const args = Object.assign(Object.assign({}, Page.args), { appData: Object.assign(Object.assign({}, (_a = Page.args) === null || _a === void 0 ? void 0 : _a.appData), { intents: [{ name: "ViewChart", displayName: "View Chart", contexts: ["fdc3.instrument"] }] }) });
1001
+ const wrapper = mount(React.createElement(Page, Object.assign({}, args)));
1002
+ expect(wrapper.find(".inputTable tr"), "List of rows").to.be.lengthOf(3);
1003
+ expect(wrapper.find(".inputTable input").at(0).prop("value"), "Intent table, input field 1").to.equal("ViewChart");
1004
+ expect(wrapper.find(".inputTable input").at(1).prop("value"), "Intent table, input field 2").to.equal("View Chart");
1005
+ expect(wrapper.find(".inputTable input").at(2).prop("value"), "Intent table, input field 3").to.equal("fdc3.instrument");
1006
+ expect(wrapper.find(".inputTable input").at(3).prop("value"), "Intent table, input field 4").to.be.empty;
1007
+ expect(wrapper.find(".inputTable input").at(4).prop("value"), "Intent table, input field 5").to.be.empty;
1008
+ expect(wrapper.find(".inputTable input").at(5).prop("value"), "Intent table, input field 6").to.be.empty;
1009
+ });
1010
+ it("should display preset values (multiple contexts for an intent)", () => {
1011
+ var _a;
1012
+ const args = Object.assign(Object.assign({}, Page.args), { appData: Object.assign(Object.assign({}, (_a = Page.args) === null || _a === void 0 ? void 0 : _a.appData), { intents: [{ name: "ViewChart", displayName: "View Chart", contexts: ["fdc3.instrument", "custom.symbol"] }] }) });
1013
+ const wrapper = mount(React.createElement(Page, Object.assign({}, args)));
1014
+ expect(wrapper.find(".inputTable tr"), "List of rows").to.be.lengthOf(3);
1015
+ expect(wrapper.find(".inputTable input").at(0).prop("value"), "Intent table, input field 1").to.equal("ViewChart");
1016
+ expect(wrapper.find(".inputTable input").at(1).prop("value"), "Intent table, input field 2").to.equal("View Chart");
1017
+ expect(wrapper.find(".inputTable input").at(2).prop("value"), "Intent table, input field 3").to.equal("fdc3.instrument, custom.symbol");
1018
+ });
1019
+ });
1020
+ describe("Set security", () => {
1021
+ const name = "security";
1022
+ const enableParams = {
282
1023
  security: "trusted",
283
- singleton: false,
284
- spawnOnStartup: false,
285
- url: "http://www.google.com",
286
- width: 1280,
1024
+ };
1025
+ const disableParams = {
1026
+ security: "untrusted",
1027
+ };
1028
+ it("should display correctly when preset: Trusted", () => {
1029
+ presetRadioButtons(name, enableParams, [true, false]);
1030
+ });
1031
+ it("should display correctly when preset: Untrusted", () => {
1032
+ presetRadioButtons(name, disableParams, [false, true]);
1033
+ });
1034
+ it("should save correctly when edited: Trusted", () => {
1035
+ saveRadioButton(name, 0, enableParams);
1036
+ });
1037
+ it.skip("should save correctly when edited: Untrusted", () => {
1038
+ saveRadioButton(name, 1, disableParams);
1039
+ });
1040
+ it.skip("confirm that the radio buttons stay independent", () => {
1041
+ checkUniqueRadioButtons(name, 2);
287
1042
  });
288
1043
  });
289
- it("should click submit button when pressing enter on Name field", () => {
290
- const buttonSpy = sinon.spy(Page.args, "submitFn");
291
- const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
292
- wrapper
293
- .find("#app-name")
294
- .at(0)
295
- .simulate("keydown", {
296
- key: "Enter",
297
- preventDefault: () => { },
1044
+ describe("Launch timeout", () => {
1045
+ const appDataKey = "native_windowSpawnTimeout";
1046
+ const selector = "#launch-timeout";
1047
+ it("should save correctly when edited", () => {
1048
+ testSaveInputValue(appDataKey, selector, true, 200);
1049
+ });
1050
+ it("should display pre-set values", () => {
1051
+ testPresetInputValue(appDataKey, selector, NativePage, "200");
298
1052
  });
299
- expect(buttonSpy.calledOnce).to.be.true;
300
1053
  });
301
- it("should not click submit button when pressing a key other than enter on Name field", () => {
302
- const buttonSpy = sinon.spy(Page.args, "submitFn");
303
- const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
304
- wrapper
305
- .find("#app-name")
306
- .at(0)
307
- .simulate("keydown", {
308
- key: "a",
309
- preventDefault: () => { },
310
- });
311
- expect(buttonSpy.calledOnce).to.be.false;
312
- });
313
- it("should not submit when pressing enter on Name field IF the submit button is disabled", () => {
314
- const buttonSpy = sinon.spy(EmptyPage.args, "submitFn");
315
- const wrapper = mount(React.createElement(EmptyPage, Object.assign({}, EmptyPage.args)));
316
- wrapper
317
- .find("#app-name")
318
- .at(0)
319
- .simulate("keydown", {
320
- key: "Enter",
321
- preventDefault: () => { },
322
- });
323
- expect(buttonSpy.calledOnce).to.be.false;
324
- });
325
- it("should click submit button when pressing enter on App type web field", () => {
326
- const buttonSpy = sinon.spy(Page.args, "submitFn");
327
- const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
328
- wrapper
329
- .find("#app-type-web")
330
- .at(0)
331
- .simulate("keydown", {
332
- key: "Enter",
333
- preventDefault: () => { },
1054
+ describe("Only one instance", () => {
1055
+ const label = "Only one instance";
1056
+ const appDataKey = "singleton";
1057
+ it("should display pre-set value: checked", () => {
1058
+ presetCheckbox(appDataKey, label, true, true);
1059
+ });
1060
+ it("should display pre-set value: not checked", () => {
1061
+ presetCheckbox(appDataKey, label, false, false);
1062
+ });
1063
+ it("should save correctly (change to true)", () => {
1064
+ flipCheckbox(appDataKey, label, true);
1065
+ });
1066
+ it("should save correctly (change to true)", () => {
1067
+ flipCheckbox(appDataKey, label, false);
334
1068
  });
335
- expect(buttonSpy.calledOnce).to.be.true;
336
1069
  });
337
- it("should click submit button when pressing enter on App type native field", () => {
338
- const buttonSpy = sinon.spy(Page.args, "submitFn");
339
- const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
340
- wrapper
341
- .find("#app-type-native")
342
- .at(0)
343
- .simulate("keydown", {
344
- key: "Enter",
345
- preventDefault: () => { },
1070
+ describe("Launch at startup", () => {
1071
+ const label = "Launch at startup";
1072
+ const appDataKey = "spawnOnStartup";
1073
+ it("should display pre-set value: checked", () => {
1074
+ presetCheckbox(appDataKey, label, true, true);
1075
+ });
1076
+ it("should display pre-set value: not checked", () => {
1077
+ presetCheckbox(appDataKey, label, false, false);
1078
+ });
1079
+ it("should save correctly (change to true)", () => {
1080
+ flipCheckbox(appDataKey, label, true);
1081
+ });
1082
+ it("should save correctly (change to true)", () => {
1083
+ flipCheckbox(appDataKey, label, false);
346
1084
  });
347
- expect(buttonSpy.calledOnce).to.be.true;
348
1085
  });
349
- it("should click submit button when pressing enter on Web URL field", () => {
350
- const buttonSpy = sinon.spy(Page.args, "submitFn");
351
- const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
352
- wrapper
353
- .find("#app-url")
354
- .at(0)
355
- .simulate("keydown", {
356
- key: "Enter",
357
- preventDefault: () => { },
1086
+ describe("Include in Apps menu", () => {
1087
+ const label = "Include in Apps menu";
1088
+ const appDataKey = "launchableByUser";
1089
+ it("should display pre-set value: checked", () => {
1090
+ presetCheckbox(appDataKey, label, true, true);
1091
+ });
1092
+ it("should display pre-set value: not checked", () => {
1093
+ presetCheckbox(appDataKey, label, false, false);
1094
+ });
1095
+ it("should save correctly (change to true)", () => {
1096
+ flipCheckbox(appDataKey, label, true);
1097
+ });
1098
+ it("should save correctly (change to true)", () => {
1099
+ flipCheckbox(appDataKey, label, false);
1100
+ });
1101
+ });
1102
+ describe("Persist across workspaces", () => {
1103
+ const label = "Persist across workspaces";
1104
+ const appDataKey = "isEvergreen";
1105
+ it("should display pre-set value: checked", () => {
1106
+ presetCheckbox(appDataKey, label, true, true);
1107
+ });
1108
+ it("should display pre-set value: not checked", () => {
1109
+ presetCheckbox(appDataKey, label, false, false);
1110
+ });
1111
+ it("should save correctly (change to true)", () => {
1112
+ flipCheckbox(appDataKey, label, true);
1113
+ });
1114
+ it("should save correctly (change to true)", () => {
1115
+ flipCheckbox(appDataKey, label, false);
1116
+ });
1117
+ });
1118
+ describe("Add to workspaces", () => {
1119
+ const label = "Add to workspace";
1120
+ const appDataKey = "addToWorkspace";
1121
+ it("should display pre-set value: checked", () => {
1122
+ presetCheckbox(appDataKey, label, true, true);
1123
+ });
1124
+ it("should display pre-set value: not checked", () => {
1125
+ presetCheckbox(appDataKey, label, false, false);
1126
+ });
1127
+ it("should save correctly (change to true)", () => {
1128
+ flipCheckbox(appDataKey, label, true);
1129
+ });
1130
+ it("should save correctly (change to true)", () => {
1131
+ flipCheckbox(appDataKey, label, false);
1132
+ });
1133
+ });
1134
+ describe("Persist the location", () => {
1135
+ const label = "Persist the location";
1136
+ const appDataKey = "persistURL";
1137
+ it("should display pre-set value: checked", () => {
1138
+ presetCheckbox(appDataKey, label, true, true);
1139
+ });
1140
+ it("should display pre-set value: not checked", () => {
1141
+ presetCheckbox(appDataKey, label, false, false);
1142
+ });
1143
+ it("should save correctly (change to true)", () => {
1144
+ flipCheckbox(appDataKey, label, true);
1145
+ });
1146
+ it("should save correctly (change to true)", () => {
1147
+ flipCheckbox(appDataKey, label, false);
358
1148
  });
359
- expect(buttonSpy.calledOnce).to.be.true;
360
1149
  });
361
1150
  });
362
1151
  //# sourceMappingURL=AppEditPage.spec.js.map