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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (755) hide show
  1. package/README.md +28 -28
  2. package/package.json +20 -19
  3. package/react/actions/favoriteActions.js.map +1 -1
  4. package/react/actions/linkerActions.js.map +1 -1
  5. package/react/actions/menuActions.js.map +1 -1
  6. package/react/actions/rootActions.js.map +1 -1
  7. package/react/actions/searchActions.js.map +1 -1
  8. package/react/actions/smartDesktopDesignerActions.d.ts +6 -2
  9. package/react/actions/smartDesktopDesignerActions.js +2 -0
  10. package/react/actions/smartDesktopDesignerActions.js.map +1 -1
  11. package/react/actions/toolbarActions.js.map +1 -1
  12. package/react/actions/workspaceActions.js.map +1 -1
  13. package/react/assets/css/advancedAppLauncher.css +636 -636
  14. package/react/assets/css/appCatalog.css +1069 -1069
  15. package/react/assets/css/authentication.css +78 -78
  16. package/react/assets/css/button.css +220 -220
  17. package/react/assets/css/core/formElements.css +23 -23
  18. package/react/assets/css/core/icons.css +69 -69
  19. package/react/assets/css/core/notifications.css +75 -75
  20. package/react/assets/css/core/windowFrame.css +36 -36
  21. package/react/assets/css/dashbar.css +78 -78
  22. package/react/assets/css/defaultTheme.css +356 -356
  23. package/react/assets/css/dialogs.css +158 -158
  24. package/react/assets/css/favorites.css +101 -101
  25. package/react/assets/css/finsemble.css +38 -38
  26. package/react/assets/css/focus.css +4 -4
  27. package/react/assets/css/font-finance.css +385 -385
  28. package/react/assets/css/fonts/Open_Sans/LICENSE.txt +202 -202
  29. package/react/assets/css/fonts/Open_Sans/OpenSans-Definition.css +118 -118
  30. package/react/assets/css/fonts/font-finance.svg +124 -124
  31. package/react/assets/css/fonts/icons-reference.html +1174 -1174
  32. package/react/assets/css/linkerWindow.css +124 -124
  33. package/react/assets/css/menus.css +195 -195
  34. package/react/assets/css/notificationsCenter.css +597 -597
  35. package/react/assets/css/processMonitor.css +213 -213
  36. package/react/assets/css/search.css +128 -128
  37. package/react/assets/css/shared/animations.css +99 -99
  38. package/react/assets/css/tags.css +136 -136
  39. package/react/assets/css/toolbar.css +413 -413
  40. package/react/assets/css/userPreferences.css +538 -538
  41. package/react/assets/css/windowTitleBar.css +653 -652
  42. package/react/assets/icons/always-on-top.svg +20 -0
  43. package/react/assets/icons/caret.svg +7 -7
  44. package/react/assets/icons/check-square.svg +5 -5
  45. package/react/assets/icons/check.svg +3 -3
  46. package/react/assets/icons/chevron-left.svg +3 -3
  47. package/react/assets/icons/chevron-right.svg +3 -3
  48. package/react/assets/icons/close.svg +11 -0
  49. package/react/assets/icons/code-block.svg +15 -0
  50. package/react/assets/icons/copy.svg +10 -10
  51. package/react/assets/icons/documentation.svg +20 -0
  52. package/react/assets/icons/exclamation-circle.svg +4 -4
  53. package/react/assets/icons/external-link.svg +12 -12
  54. package/react/assets/icons/flag.svg +10 -10
  55. package/react/assets/icons/folder.svg +3 -3
  56. package/react/assets/icons/font.svg +3 -3
  57. package/react/assets/icons/globe.svg +3 -3
  58. package/react/assets/icons/hdd.svg +9 -9
  59. package/react/assets/icons/key.svg +10 -10
  60. package/react/assets/icons/life-ring.svg +3 -3
  61. package/react/assets/icons/linker.svg +18 -0
  62. package/react/assets/icons/lock.svg +5 -5
  63. package/react/assets/icons/magic.svg +15 -15
  64. package/react/assets/icons/maximize.svg +16 -0
  65. package/react/assets/icons/minimize.svg +15 -0
  66. package/react/assets/icons/moon.svg +10 -10
  67. package/react/assets/icons/paint-roller.svg +3 -3
  68. package/react/assets/icons/pencil.svg +10 -10
  69. package/react/assets/icons/plus.svg +3 -3
  70. package/react/assets/icons/question-circle.svg +5 -5
  71. package/react/assets/icons/search.svg +3 -3
  72. package/react/assets/icons/sun.svg +9 -9
  73. package/react/assets/icons/times.svg +3 -3
  74. package/react/assets/icons/toggle-off.svg +6 -6
  75. package/react/assets/icons/toggle-on.svg +6 -6
  76. package/react/assets/icons/toolbar.svg +12 -12
  77. package/react/assets/icons/tools.svg +3 -3
  78. package/react/assets/icons/trash.svg +12 -12
  79. package/react/assets/icons/upload.svg +10 -10
  80. package/react/assets/icons/window.svg +3 -3
  81. package/react/assets/img/finsemble-display.png +0 -0
  82. package/react/componentTemplateGenerator.js +85 -85
  83. package/react/componentTemplateGenerator.js.map +1 -1
  84. package/react/components/FinsembleProvider.js.map +1 -1
  85. package/react/components/appCatalog/AppCatalog.js.map +1 -1
  86. package/react/components/appCatalog/AppCatalogComponent.js.map +1 -1
  87. package/react/components/appCatalog/components/AppCard.js.map +1 -1
  88. package/react/components/appCatalog/components/AppList.js.map +1 -1
  89. package/react/components/appCatalog/components/AppResults.js.map +1 -1
  90. package/react/components/appCatalog/components/Carousel.js.map +1 -1
  91. package/react/components/appCatalog/components/EmptyResults.js.map +1 -1
  92. package/react/components/appCatalog/components/Hero.js.map +1 -1
  93. package/react/components/appCatalog/components/Home.js.map +1 -1
  94. package/react/components/appCatalog/components/SearchBar.js.map +1 -1
  95. package/react/components/appCatalog/components/Showcase/AppDescription.js.map +1 -1
  96. package/react/components/appCatalog/components/Showcase/AppDevNotes.js.map +1 -1
  97. package/react/components/appCatalog/components/Showcase/AppShowcase.js.map +1 -1
  98. package/react/components/appCatalog/components/Showcase/Header.js.map +1 -1
  99. package/react/components/appCatalog/components/Showcase/ImageCarousel.js.map +1 -1
  100. package/react/components/appCatalog/components/Showcase/Modal.js.map +1 -1
  101. package/react/components/appCatalog/components/Showcase/ReleaseNotes.js.map +1 -1
  102. package/react/components/appCatalog/components/Showcase/SupportNotes.js.map +1 -1
  103. package/react/components/appCatalog/components/Showcase/VersionNotes.js.map +1 -1
  104. package/react/components/appCatalog/components/Showcase/defaults.js.map +1 -1
  105. package/react/components/appCatalog/components/Tag.js.map +1 -1
  106. package/react/components/appCatalog/components/Toast.js.map +1 -1
  107. package/react/components/appCatalog/components/helpers.js.map +1 -1
  108. package/react/components/appCatalog/index.js.map +1 -1
  109. package/react/components/appCatalog/modules/AppDirectory.js.map +1 -1
  110. package/react/components/appCatalog/modules/FDC3.d.ts +1 -1
  111. package/react/components/appCatalog/modules/FDC3.js.map +1 -1
  112. package/react/components/appCatalog/stores/appStore.d.ts +2 -2
  113. package/react/components/appCatalog/stores/appStore.js.map +1 -1
  114. package/react/components/appCatalog/stores/storeActions.js.map +1 -1
  115. package/react/components/common/Accordion.js +1 -1
  116. package/react/components/common/Accordion.js.map +1 -1
  117. package/react/components/common/Button.js.map +1 -1
  118. package/react/components/common/ButtonIcon.js.map +1 -1
  119. package/react/components/common/ButtonRow.js.map +1 -1
  120. package/react/components/common/ButtonTile.js.map +1 -1
  121. package/react/components/common/Checkbox.js +1 -1
  122. package/react/components/common/Checkbox.js.map +1 -1
  123. package/react/components/common/ColorPicker.js.map +1 -1
  124. package/react/components/common/DropZone.js +3 -1
  125. package/react/components/common/DropZone.js.map +1 -1
  126. package/react/components/common/DropdownButton.js.map +1 -1
  127. package/react/components/common/FileInput.d.ts +2 -1
  128. package/react/components/common/FileInput.js +9 -4
  129. package/react/components/common/FileInput.js.map +1 -1
  130. package/react/components/common/FinsembleIcon.d.ts +1 -1
  131. package/react/components/common/FinsembleIcon.js +15 -1
  132. package/react/components/common/FinsembleIcon.js.map +1 -1
  133. package/react/components/common/FinsembleSelect.js +1 -1
  134. package/react/components/common/FinsembleSelect.js.map +1 -1
  135. package/react/components/common/FinsembleToggle.js.map +1 -1
  136. package/react/components/common/Header.js +3 -1
  137. package/react/components/common/Header.js.map +1 -1
  138. package/react/components/common/ImagePreview.js.map +1 -1
  139. package/react/components/common/InputTable.js.map +1 -1
  140. package/react/components/common/LoadingSpinner.js.map +1 -1
  141. package/react/components/common/Tab.js.map +1 -1
  142. package/react/components/common/Tooltip.js +3 -1
  143. package/react/components/common/Tooltip.js.map +1 -1
  144. package/react/components/common/css/accordion.css +99 -89
  145. package/react/components/common/css/application-edit-page.css +324 -223
  146. package/react/components/common/css/application-list.css +53 -47
  147. package/react/components/common/css/button.css +166 -166
  148. package/react/components/common/css/checkbox.css +30 -31
  149. package/react/components/common/css/color-picker.css +52 -52
  150. package/react/components/common/css/drop-zone.css +17 -17
  151. package/react/components/common/css/file-input.css +65 -49
  152. package/react/components/common/css/header.css +30 -32
  153. package/react/components/common/css/icon.css +13 -13
  154. package/react/components/common/css/image-preview.css +57 -57
  155. package/react/components/common/css/loading-spinner.css +39 -39
  156. package/react/components/common/css/preload-edit-page.css +37 -0
  157. package/react/components/common/css/selector.css +51 -51
  158. package/react/components/common/css/styles.css +127 -128
  159. package/react/components/common/css/tab.css +56 -56
  160. package/react/components/common/css/toggle.css +32 -32
  161. package/react/components/common/css/tooltip.css +78 -78
  162. package/react/components/common/file_helpers.js.map +1 -1
  163. package/react/components/common/fixtures/FinsembleIcon.css +4 -4
  164. package/react/components/common/helpers.js.map +1 -1
  165. package/react/components/common/stories/Accordion.stories.js.map +1 -1
  166. package/react/components/common/stories/Button.stories.js.map +1 -1
  167. package/react/components/common/stories/ButtonIcon.stories.js.map +1 -1
  168. package/react/components/common/stories/ButtonRow.stories.js.map +1 -1
  169. package/react/components/common/stories/ButtonTile.stories.js.map +1 -1
  170. package/react/components/common/stories/Checkbox.stories.js.map +1 -1
  171. package/react/components/common/stories/ColorPicker.stories.js.map +1 -1
  172. package/react/components/common/stories/DropZone.stories.js.map +1 -1
  173. package/react/components/common/stories/DropdownButton.stories.js.map +1 -1
  174. package/react/components/common/stories/FileInput.stories.d.ts +2 -1
  175. package/react/components/common/stories/FileInput.stories.js +6 -0
  176. package/react/components/common/stories/FileInput.stories.js.map +1 -1
  177. package/react/components/common/stories/FinsembleIcon.stories.js.map +1 -1
  178. package/react/components/common/stories/FinsembleSelect.stories.js.map +1 -1
  179. package/react/components/common/stories/FinsembleToggle.stories.js.map +1 -1
  180. package/react/components/common/stories/Header.stories.js.map +1 -1
  181. package/react/components/common/stories/ImagePreview.stories.js.map +1 -1
  182. package/react/components/common/stories/InputTable.stories.js.map +1 -1
  183. package/react/components/common/stories/LoadingSpinner.stories.js.map +1 -1
  184. package/react/components/common/stories/Tab.stories.js.map +1 -1
  185. package/react/components/common/stories/Tooltip.stories.js.map +1 -1
  186. package/react/components/common/tests/Accordion.spec.js.map +1 -1
  187. package/react/components/common/tests/ButtonRow.spec.js.map +1 -1
  188. package/react/components/common/tests/Checkbox.spec.js.map +1 -1
  189. package/react/components/common/tests/ColorPicker.spec.js.map +1 -1
  190. package/react/components/common/tests/DropZone.spec.js.map +1 -1
  191. package/react/components/common/tests/FileInput.spec.js +20 -5
  192. package/react/components/common/tests/FileInput.spec.js.map +1 -1
  193. package/react/components/common/tests/FinsembleSelect.spec.js.map +1 -1
  194. package/react/components/common/tests/FinsembleToggle.spec.js.map +1 -1
  195. package/react/components/common/tests/Header.spec.js +6 -2
  196. package/react/components/common/tests/Header.spec.js.map +1 -1
  197. package/react/components/common/tests/ImagePreview.spec.js.map +1 -1
  198. package/react/components/common/tests/InputTable.spec.js.map +1 -1
  199. package/react/components/common/tests/Tab.spec.js.map +1 -1
  200. package/react/components/common/tests/Tooltip.spec.js.map +1 -1
  201. package/react/components/favorites/FavoriteMaker.js.map +1 -1
  202. package/react/components/favorites/FavoritesShell.js.map +1 -1
  203. package/react/components/favorites/FavoritesShell.spec.js.map +1 -1
  204. package/react/components/favorites/FavoritesShell.stories.js.map +1 -1
  205. package/react/components/favorites/index.js.map +1 -1
  206. package/react/components/fdc3Resolver/ResolverContainer.js.map +1 -1
  207. package/react/components/fdc3Resolver/ResolverDialog.css +126 -126
  208. package/react/components/fdc3Resolver/ResolverDialog.js.map +1 -1
  209. package/react/components/fdc3Resolver/ResolverDialog.spec.js.map +1 -1
  210. package/react/components/fdc3Resolver/ResolverDialog.stories.js.map +1 -1
  211. package/react/components/icon/Icon.js.map +1 -1
  212. package/react/components/icon/index.js.map +1 -1
  213. package/react/components/legacyControls/FinsembleDialog.js.map +1 -1
  214. package/react/components/legacyControls/FinsembleDialogButton.js +1 -1
  215. package/react/components/legacyControls/FinsembleDialogButton.js.map +1 -1
  216. package/react/components/legacyControls/FinsembleDialogQuestion.js.map +1 -1
  217. package/react/components/legacyControls/FinsembleDialogTextInput.js.map +1 -1
  218. package/react/components/legacyControls/FinsembleDnDContext.d.ts +2 -1
  219. package/react/components/legacyControls/FinsembleDnDContext.js +8 -6
  220. package/react/components/legacyControls/FinsembleDnDContext.js.map +1 -1
  221. package/react/components/legacyControls/FinsembleDraggable.js.map +1 -1
  222. package/react/components/legacyControls/FinsembleHoverDetector.js.map +1 -1
  223. package/react/components/legacyControls/FinsembleMenuSection.js.map +1 -1
  224. package/react/components/legacyControls/stories/FinsembleDialog.stories.js.map +1 -1
  225. package/react/components/legacyControls/stories/FinsembleDialogButton.stories.js.map +1 -1
  226. package/react/components/legacyControls/stories/FinsembleDialogQuestion.stories.js.map +1 -1
  227. package/react/components/legacyControls/stories/FinsembleDialogTextInput.stories.js.map +1 -1
  228. package/react/components/legacyControls/tests/FinsembleDialog.spec.js.map +1 -1
  229. package/react/components/legacyControls/tests/FinsembleDialogButton.spec.js.map +1 -1
  230. package/react/components/legacyControls/tests/FinsembleDialogQuestion.spec.js.map +1 -1
  231. package/react/components/legacyControls/tests/FinsembleDialogTextInput.spec.js.map +1 -1
  232. package/react/components/linker/LinkerMenu.js.map +1 -1
  233. package/react/components/linker/LinkerMenuDeprecated.js.map +1 -1
  234. package/react/components/linker/index.js.map +1 -1
  235. package/react/components/linker/remoteRedux.d.ts +1 -1
  236. package/react/components/linker/remoteRedux.js.map +1 -1
  237. package/react/components/menu/Menu.d.ts +1 -0
  238. package/react/components/menu/Menu.js.map +1 -1
  239. package/react/components/menu/MenuAutoResizer.d.ts +2 -1
  240. package/react/components/menu/MenuAutoResizer.js +3 -2
  241. package/react/components/menu/MenuAutoResizer.js.map +1 -1
  242. package/react/components/menu/MenuContent.js.map +1 -1
  243. package/react/components/menu/MenuHotKey.js.map +1 -1
  244. package/react/components/menu/MenuItem.js.map +1 -1
  245. package/react/components/menu/MenuPortal.js +118 -92
  246. package/react/components/menu/MenuPortal.js.map +1 -1
  247. package/react/components/menu/MenuShell.d.ts +1 -0
  248. package/react/components/menu/MenuShell.js +3 -2
  249. package/react/components/menu/MenuShell.js.map +1 -1
  250. package/react/components/menu/MenuToggle.js.map +1 -1
  251. package/react/components/menu/index.js.map +1 -1
  252. package/react/components/menu/keyboardNavigation.js.map +1 -1
  253. package/react/components/menu/menuContext.d.ts +1 -0
  254. package/react/components/menu/menuContext.js.map +1 -1
  255. package/react/components/menu/menuHelpers.d.ts +1 -1
  256. package/react/components/menu/menuHelpers.js +2 -2
  257. package/react/components/menu/menuHelpers.js.map +1 -1
  258. package/react/components/notifications/components/NoNotifications.js.map +1 -1
  259. package/react/components/notifications/components/drawer/Drawer.js.map +1 -1
  260. package/react/components/notifications/components/drawer/DrawerControls.js.map +1 -1
  261. package/react/components/notifications/components/drawer/DrawerHeader.js.map +1 -1
  262. package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js.map +1 -1
  263. package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js +20 -27
  264. package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js.map +1 -1
  265. package/react/components/notifications/components/shared/CheckButton.d.ts +1 -1
  266. package/react/components/notifications/components/shared/CheckButton.js.map +1 -1
  267. package/react/components/notifications/components/shared/IconButton.js.map +1 -1
  268. package/react/components/notifications/components/shared/NotificationCardShell.d.ts +1 -1
  269. package/react/components/notifications/components/shared/NotificationCardShell.js +1 -1
  270. package/react/components/notifications/components/shared/NotificationCardShell.js.map +1 -1
  271. package/react/components/notifications/components/shared/OverflowMenu.d.ts +1 -1
  272. package/react/components/notifications/components/shared/OverflowMenu.js.map +1 -1
  273. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyActions.d.ts +1 -1
  274. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyActions.js.map +1 -1
  275. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyContentLogo.js.map +1 -1
  276. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.d.ts +1 -1
  277. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.js.map +1 -1
  278. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.d.ts +1 -1
  279. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.js.map +1 -1
  280. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderLogo.js.map +1 -1
  281. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderShell.d.ts +1 -1
  282. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderShell.js.map +1 -1
  283. package/react/components/notifications/components/views/CardView.js.map +1 -1
  284. package/react/components/notifications/components/views/ListView.d.ts +1 -1
  285. package/react/components/notifications/components/views/ListView.js +1 -1
  286. package/react/components/notifications/components/views/ListView.js.map +1 -1
  287. package/react/components/notifications/components/views/NotificationDetailsView.d.ts +1 -1
  288. package/react/components/notifications/components/views/NotificationDetailsView.js.map +1 -1
  289. package/react/components/notifications/constants.js.map +1 -1
  290. package/react/components/notifications/icons/Card.js.map +1 -1
  291. package/react/components/notifications/icons/Chevron.js.map +1 -1
  292. package/react/components/notifications/icons/CloseIcon.js.map +1 -1
  293. package/react/components/notifications/icons/EnvelopeClose.js.map +1 -1
  294. package/react/components/notifications/icons/EnvelopeOpen.js.map +1 -1
  295. package/react/components/notifications/icons/SnoozeIcon.js.map +1 -1
  296. package/react/components/notifications/index.js.map +1 -1
  297. package/react/components/notifications/notificationsContext.js.map +1 -1
  298. package/react/components/notifications/types.d.ts +1 -1
  299. package/react/components/notifications/types.js.map +1 -1
  300. package/react/components/notifications/utils.d.ts +1 -1
  301. package/react/components/notifications/utils.js.map +1 -1
  302. package/react/components/processMonitor/ProcessMonitor.js.map +1 -1
  303. package/react/components/processMonitor/ProcessMonitorTypes.js.map +1 -1
  304. package/react/components/processMonitor/components/ChildWindow.js.map +1 -1
  305. package/react/components/processMonitor/components/ListHeader.d.ts +1 -1
  306. package/react/components/processMonitor/components/ListHeader.js.map +1 -1
  307. package/react/components/processMonitor/components/ProcessStatistics.js.map +1 -1
  308. package/react/components/processMonitor/constants.js.map +1 -1
  309. package/react/components/processMonitor/helpers.js.map +1 -1
  310. package/react/components/processMonitor/helpers.spec.js.map +1 -1
  311. package/react/components/processMonitor/index.js.map +1 -1
  312. package/react/components/processMonitor/stores/ProcessMonitorStore.d.ts +4 -3
  313. package/react/components/processMonitor/stores/ProcessMonitorStore.js +51 -50
  314. package/react/components/processMonitor/stores/ProcessMonitorStore.js.map +1 -1
  315. package/react/components/quickComponentForm/QuickComponentForm.js.map +1 -1
  316. package/react/components/quickComponentForm/index.js.map +1 -1
  317. package/react/components/quickComponentForm/quickComponent.css +3 -3
  318. package/react/components/search/Highlight.js.map +1 -1
  319. package/react/components/search/Highlight.spec.js.map +1 -1
  320. package/react/components/search/Highlight.stories.js.map +1 -1
  321. package/react/components/search/Search.js.map +1 -1
  322. package/react/components/search/SearchBestMatch.js.map +1 -1
  323. package/react/components/search/SearchInput.js.map +1 -1
  324. package/react/components/search/SearchProviderResults.js.map +1 -1
  325. package/react/components/search/SearchResult.js +4 -3
  326. package/react/components/search/SearchResult.js.map +1 -1
  327. package/react/components/search/SearchResults.js.map +1 -1
  328. package/react/components/search/index.js.map +1 -1
  329. package/react/components/shared/Animate.js.map +1 -1
  330. package/react/components/shared/BellIcon.js.map +1 -1
  331. package/react/components/shared/BellIconCrossed.js.map +1 -1
  332. package/react/components/shared/Button.js.map +1 -1
  333. package/react/components/shared/ConditionalWrapper.js.map +1 -1
  334. package/react/components/shared/DefaultDropdownButton.js.map +1 -1
  335. package/react/components/shared/NavigationButton.js.map +1 -1
  336. package/react/components/shared/Tag.js.map +1 -1
  337. package/react/components/shared/TagsMenu.js.map +1 -1
  338. package/react/components/shared/addProtocolToValidURL.js.map +1 -1
  339. package/react/components/shared/linkerUtil.js.map +1 -1
  340. package/react/components/shared/openQuitConfirmationDialog.js.map +1 -1
  341. package/react/components/shared/tests/DefaultDropdownButton.spec.js.map +1 -1
  342. package/react/components/shared/tests/addProtocolToValidURL.spec.js.map +1 -1
  343. package/react/components/shared/validateURL.js.map +1 -1
  344. package/react/components/shared/validateURL.spec.js.map +1 -1
  345. package/react/components/singleInputDialog/SingleInputDialog.css +3 -3
  346. package/react/components/singleInputDialog/SingleInputDialog.js.map +1 -1
  347. package/react/components/singleInputDialog/SingleInputDialog.spec.js.map +1 -1
  348. package/react/components/singleInputDialog/SingleInputDialog.stories.js.map +1 -1
  349. package/react/components/singleInputDialog/index.js.map +1 -1
  350. package/react/components/smartDesktopDesigner/AddApp.d.ts +2 -2
  351. package/react/components/smartDesktopDesigner/AddApp.js +28 -17
  352. package/react/components/smartDesktopDesigner/AddApp.js.map +1 -1
  353. package/react/components/smartDesktopDesigner/AppEditAccess.js.map +1 -1
  354. package/react/components/smartDesktopDesigner/AppEditPage.d.ts +2 -2
  355. package/react/components/smartDesktopDesigner/AppEditPage.js +311 -242
  356. package/react/components/smartDesktopDesigner/AppEditPage.js.map +1 -1
  357. package/react/components/smartDesktopDesigner/Appearance.css +35 -28
  358. package/react/components/smartDesktopDesigner/Appearance.helpers.js.map +1 -1
  359. package/react/components/smartDesktopDesigner/Appearance.js +1 -1
  360. package/react/components/smartDesktopDesigner/Appearance.js.map +1 -1
  361. package/react/components/smartDesktopDesigner/Application.d.ts +10 -3
  362. package/react/components/smartDesktopDesigner/Application.js +37 -44
  363. package/react/components/smartDesktopDesigner/Application.js.map +1 -1
  364. package/react/components/smartDesktopDesigner/Applications.d.ts +2 -0
  365. package/react/components/smartDesktopDesigner/Applications.js +29 -20
  366. package/react/components/smartDesktopDesigner/Applications.js.map +1 -1
  367. package/react/components/smartDesktopDesigner/AssetsPage.css +26 -26
  368. package/react/components/smartDesktopDesigner/AssetsPage.js.map +1 -1
  369. package/react/components/smartDesktopDesigner/Authentication.js +2 -9
  370. package/react/components/smartDesktopDesigner/Authentication.js.map +1 -1
  371. package/react/components/smartDesktopDesigner/AuthenticationProviderConfig.js +1 -1
  372. package/react/components/smartDesktopDesigner/AuthenticationProviderConfig.js.map +1 -1
  373. package/react/components/smartDesktopDesigner/Content.js.map +1 -1
  374. package/react/components/smartDesktopDesigner/ContentHeader.d.ts +5 -0
  375. package/react/components/smartDesktopDesigner/ContentHeader.js +10 -0
  376. package/react/components/smartDesktopDesigner/ContentHeader.js.map +1 -0
  377. package/react/components/smartDesktopDesigner/CurrentView.js.map +1 -1
  378. package/react/components/smartDesktopDesigner/EditPreload.d.ts +14 -0
  379. package/react/components/smartDesktopDesigner/EditPreload.js +169 -0
  380. package/react/components/smartDesktopDesigner/EditPreload.js.map +1 -0
  381. package/react/components/smartDesktopDesigner/Export.js +5 -5
  382. package/react/components/smartDesktopDesigner/Export.js.map +1 -1
  383. package/react/components/smartDesktopDesigner/ExportCloud.d.ts +3 -1
  384. package/react/components/smartDesktopDesigner/ExportCloud.js +4 -4
  385. package/react/components/smartDesktopDesigner/ExportCloud.js.map +1 -1
  386. package/react/components/smartDesktopDesigner/ExportDeployInfo.js.map +1 -1
  387. package/react/components/smartDesktopDesigner/ExportZip.d.ts +3 -1
  388. package/react/components/smartDesktopDesigner/ExportZip.js +8 -3
  389. package/react/components/smartDesktopDesigner/ExportZip.js.map +1 -1
  390. package/react/components/smartDesktopDesigner/GettingStarted.d.ts +1 -0
  391. package/react/components/smartDesktopDesigner/GettingStarted.js +11 -22
  392. package/react/components/smartDesktopDesigner/GettingStarted.js.map +1 -1
  393. package/react/components/smartDesktopDesigner/ItemList.d.ts +17 -0
  394. package/react/components/smartDesktopDesigner/ItemList.js +58 -0
  395. package/react/components/smartDesktopDesigner/ItemList.js.map +1 -0
  396. package/react/components/smartDesktopDesigner/Navigation.js.map +1 -1
  397. package/react/components/smartDesktopDesigner/OptionalSettingsView.d.ts +11 -0
  398. package/react/components/smartDesktopDesigner/OptionalSettingsView.js +71 -0
  399. package/react/components/smartDesktopDesigner/OptionalSettingsView.js.map +1 -0
  400. package/react/components/smartDesktopDesigner/Preloads.d.ts +8 -0
  401. package/react/components/smartDesktopDesigner/Preloads.js +26 -0
  402. package/react/components/smartDesktopDesigner/Preloads.js.map +1 -0
  403. package/react/components/smartDesktopDesigner/ProjectErrors.js.map +1 -1
  404. package/react/components/smartDesktopDesigner/Publish.js.map +1 -1
  405. package/react/components/smartDesktopDesigner/PublishProgress.js.map +1 -1
  406. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.d.ts +1 -1
  407. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js +34 -3
  408. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js.map +1 -1
  409. package/react/components/smartDesktopDesigner/ThemePage.css +109 -109
  410. package/react/components/smartDesktopDesigner/ThemePage.js +0 -7
  411. package/react/components/smartDesktopDesigner/ThemePage.js.map +1 -1
  412. package/react/components/smartDesktopDesigner/Themes.js +0 -2
  413. package/react/components/smartDesktopDesigner/Themes.js.map +1 -1
  414. package/react/components/smartDesktopDesigner/Toolbar.js +16 -18
  415. package/react/components/smartDesktopDesigner/Toolbar.js.map +1 -1
  416. package/react/components/smartDesktopDesigner/View.js +1 -1
  417. package/react/components/smartDesktopDesigner/View.js.map +1 -1
  418. package/react/components/smartDesktopDesigner/common/fsbl_functions.d.ts +1 -1
  419. package/react/components/smartDesktopDesigner/common/fsbl_functions.js +2 -2
  420. package/react/components/smartDesktopDesigner/common/fsbl_functions.js.map +1 -1
  421. package/react/components/smartDesktopDesigner/common/getCSSVars.js.map +1 -1
  422. package/react/components/smartDesktopDesigner/common/views.js +27 -3
  423. package/react/components/smartDesktopDesigner/common/views.js.map +1 -1
  424. package/react/components/smartDesktopDesigner/css/appearance.css +21 -18
  425. package/react/components/smartDesktopDesigner/css/applications.css +167 -167
  426. package/react/components/smartDesktopDesigner/css/authentication.css +119 -130
  427. package/react/components/smartDesktopDesigner/css/buttons.css +12 -12
  428. package/react/components/smartDesktopDesigner/css/export.css +176 -167
  429. package/react/components/smartDesktopDesigner/css/getting-started.css +28 -8
  430. package/react/components/smartDesktopDesigner/css/nav.css +120 -109
  431. package/react/components/smartDesktopDesigner/css/project-errors.css +15 -15
  432. package/react/components/smartDesktopDesigner/css/project-header.css +124 -121
  433. package/react/components/smartDesktopDesigner/css/styles.css +178 -179
  434. package/react/components/smartDesktopDesigner/css/views.css +23 -17
  435. package/react/components/smartDesktopDesigner/fixtures/apps.d.ts +1 -1
  436. package/react/components/smartDesktopDesigner/fixtures/apps.js +23 -1
  437. package/react/components/smartDesktopDesigner/fixtures/apps.js.map +1 -1
  438. package/react/components/smartDesktopDesigner/fixtures/authenticationProps.js.map +1 -1
  439. package/react/components/smartDesktopDesigner/fixtures/configTemplate.js.map +1 -1
  440. package/react/components/smartDesktopDesigner/fixtures/exportProps.js.map +1 -1
  441. package/react/components/smartDesktopDesigner/fixtures/preloads.d.ts +22 -0
  442. package/react/components/smartDesktopDesigner/fixtures/preloads.js +40 -0
  443. package/react/components/smartDesktopDesigner/fixtures/preloads.js.map +1 -0
  444. package/react/components/smartDesktopDesigner/fixtures/projectErrorsProps.js.map +1 -1
  445. package/react/components/smartDesktopDesigner/fixtures/publishProgress.d.ts +1 -1
  446. package/react/components/smartDesktopDesigner/fixtures/publishProgress.js.map +1 -1
  447. package/react/components/smartDesktopDesigner/fixtures/themeProps.js.map +1 -1
  448. package/react/components/smartDesktopDesigner/fixtures/views.js +14 -6
  449. package/react/components/smartDesktopDesigner/fixtures/views.js.map +1 -1
  450. package/react/components/smartDesktopDesigner/sdd_helpers.js +1 -1
  451. package/react/components/smartDesktopDesigner/sdd_helpers.js.map +1 -1
  452. package/react/components/smartDesktopDesigner/stories/AppEditPage.stories.d.ts +2 -1
  453. package/react/components/smartDesktopDesigner/stories/AppEditPage.stories.js +2 -0
  454. package/react/components/smartDesktopDesigner/stories/AppEditPage.stories.js.map +1 -1
  455. package/react/components/smartDesktopDesigner/stories/Appearance.stories.js.map +1 -1
  456. package/react/components/smartDesktopDesigner/stories/Applications.stories.js.map +1 -1
  457. package/react/components/smartDesktopDesigner/stories/AssetsPage.stories.js.map +1 -1
  458. package/react/components/smartDesktopDesigner/stories/Authentication.stories.js.map +1 -1
  459. package/react/components/smartDesktopDesigner/stories/ContentHeader.stories.d.ts +10 -0
  460. package/react/components/smartDesktopDesigner/stories/ContentHeader.stories.js +13 -0
  461. package/react/components/smartDesktopDesigner/stories/ContentHeader.stories.js.map +1 -0
  462. package/react/components/smartDesktopDesigner/stories/EditPreload.stories.d.ts +11 -0
  463. package/react/components/smartDesktopDesigner/stories/EditPreload.stories.js +35 -0
  464. package/react/components/smartDesktopDesigner/stories/EditPreload.stories.js.map +1 -0
  465. package/react/components/smartDesktopDesigner/stories/Export.stories.js.map +1 -1
  466. package/react/components/smartDesktopDesigner/stories/ExportCloud.stories.d.ts +1 -1
  467. package/react/components/smartDesktopDesigner/stories/ExportCloud.stories.js +1 -1
  468. package/react/components/smartDesktopDesigner/stories/ExportCloud.stories.js.map +1 -1
  469. package/react/components/smartDesktopDesigner/stories/ExportZip.stories.d.ts +1 -1
  470. package/react/components/smartDesktopDesigner/stories/ExportZip.stories.js +1 -1
  471. package/react/components/smartDesktopDesigner/stories/ExportZip.stories.js.map +1 -1
  472. package/react/components/smartDesktopDesigner/stories/GettingStarted.stories.js.map +1 -1
  473. package/react/components/smartDesktopDesigner/stories/ItemList.stories.d.ts +16 -0
  474. package/react/components/smartDesktopDesigner/stories/{ApplicationList.stories.js → ItemList.stories.js} +30 -23
  475. package/react/components/smartDesktopDesigner/stories/ItemList.stories.js.map +1 -0
  476. package/react/components/smartDesktopDesigner/stories/Navigation.stories.js.map +1 -1
  477. package/react/components/smartDesktopDesigner/stories/OptionalSettingsView.stories.d.ts +11 -0
  478. package/react/components/smartDesktopDesigner/stories/OptionalSettingsView.stories.js +28 -0
  479. package/react/components/smartDesktopDesigner/stories/OptionalSettingsView.stories.js.map +1 -0
  480. package/react/components/smartDesktopDesigner/stories/Preloads.stories.d.ts +11 -0
  481. package/react/components/smartDesktopDesigner/stories/Preloads.stories.js +31 -0
  482. package/react/components/smartDesktopDesigner/stories/Preloads.stories.js.map +1 -0
  483. package/react/components/smartDesktopDesigner/stories/ProjectErrors.stories.js.map +1 -1
  484. package/react/components/smartDesktopDesigner/stories/Publish.stories.js.map +1 -1
  485. package/react/components/smartDesktopDesigner/stories/PublishProgress.stories.js.map +1 -1
  486. package/react/components/smartDesktopDesigner/stories/SmartDesktopDesigner.stories.js +7 -1
  487. package/react/components/smartDesktopDesigner/stories/SmartDesktopDesigner.stories.js.map +1 -1
  488. package/react/components/smartDesktopDesigner/stories/ThemePage.stories.js.map +1 -1
  489. package/react/components/smartDesktopDesigner/stories/Themes.stories.js.map +1 -1
  490. package/react/components/smartDesktopDesigner/stories/Toolbar.stories.js.map +1 -1
  491. package/react/components/smartDesktopDesigner/tests/AppEditPage.spec.js +1100 -311
  492. package/react/components/smartDesktopDesigner/tests/AppEditPage.spec.js.map +1 -1
  493. package/react/components/smartDesktopDesigner/tests/{ApplicationList.spec.d.ts → Application.spec.d.ts} +0 -0
  494. package/react/components/smartDesktopDesigner/tests/Application.spec.js +1496 -0
  495. package/react/components/smartDesktopDesigner/tests/Application.spec.js.map +1 -0
  496. package/react/components/smartDesktopDesigner/tests/Applications.spec.d.ts +1 -1
  497. package/react/components/smartDesktopDesigner/tests/Applications.spec.js +94 -7
  498. package/react/components/smartDesktopDesigner/tests/Applications.spec.js.map +1 -1
  499. package/react/components/smartDesktopDesigner/tests/Authentication.spec.js.map +1 -1
  500. package/react/components/smartDesktopDesigner/tests/ContentHeader.spec.d.ts +1 -0
  501. package/react/components/smartDesktopDesigner/tests/ContentHeader.spec.js +31 -0
  502. package/react/components/smartDesktopDesigner/tests/ContentHeader.spec.js.map +1 -0
  503. package/react/components/smartDesktopDesigner/tests/EditPreload.spec.d.ts +1 -0
  504. package/react/components/smartDesktopDesigner/tests/EditPreload.spec.js +61 -0
  505. package/react/components/smartDesktopDesigner/tests/EditPreload.spec.js.map +1 -0
  506. package/react/components/smartDesktopDesigner/tests/Export.spec.js +95 -0
  507. package/react/components/smartDesktopDesigner/tests/Export.spec.js.map +1 -1
  508. package/react/components/smartDesktopDesigner/tests/ExportZip.spec.js +7 -0
  509. package/react/components/smartDesktopDesigner/tests/ExportZip.spec.js.map +1 -1
  510. package/react/components/smartDesktopDesigner/tests/ItemList.spec.d.ts +1 -0
  511. package/react/components/smartDesktopDesigner/tests/{ApplicationList.spec.js → ItemList.spec.js} +8 -8
  512. package/react/components/smartDesktopDesigner/tests/ItemList.spec.js.map +1 -0
  513. package/react/components/smartDesktopDesigner/tests/Navigation.spec.js.map +1 -1
  514. package/react/components/smartDesktopDesigner/tests/Preloads.spec.d.ts +1 -0
  515. package/react/components/smartDesktopDesigner/tests/Preloads.spec.js +47 -0
  516. package/react/components/smartDesktopDesigner/tests/Preloads.spec.js.map +1 -0
  517. package/react/components/smartDesktopDesigner/tests/ProjectErrors.spec.js +1 -1
  518. package/react/components/smartDesktopDesigner/tests/ProjectErrors.spec.js.map +1 -1
  519. package/react/components/smartDesktopDesigner/tests/Publish.spec.js.map +1 -1
  520. package/react/components/smartDesktopDesigner/tests/PublishProgess.spec.js.map +1 -1
  521. package/react/components/smartDesktopDesigner/tests/SmartDesktopDesigner.spec.js +7 -30
  522. package/react/components/smartDesktopDesigner/tests/SmartDesktopDesigner.spec.js.map +1 -1
  523. package/react/components/smartDesktopDesigner/tests/Themes.spec.js.map +1 -1
  524. package/react/components/smartDesktopDesigner/tests/Toolbar.spec.d.ts +1 -1
  525. package/react/components/smartDesktopDesigner/tests/Toolbar.spec.js +5 -6
  526. package/react/components/smartDesktopDesigner/tests/Toolbar.spec.js.map +1 -1
  527. package/react/components/smartDesktopDesigner/tests/a11y_helper.js.map +1 -1
  528. package/react/components/smartDesktopDesigner/tests/sdd_helpers.spec.js +1 -0
  529. package/react/components/smartDesktopDesigner/tests/sdd_helpers.spec.js.map +1 -1
  530. package/react/components/smartDesktopDesigner/themeDefinitions.js.map +1 -1
  531. package/react/components/system/System.js.map +1 -1
  532. package/react/components/system/System.spec.js.map +1 -1
  533. package/react/components/system/System.stories.js.map +1 -1
  534. package/react/components/system/SystemTrayComponentShell.js.map +1 -1
  535. package/react/components/system/index.js.map +1 -1
  536. package/react/components/toolbar/AutoArrange.js.map +1 -1
  537. package/react/components/toolbar/DragHandle.js.map +1 -1
  538. package/react/components/toolbar/DragHandle.spec.d.ts +1 -0
  539. package/react/components/toolbar/DragHandle.spec.js +31 -0
  540. package/react/components/toolbar/DragHandle.spec.js.map +1 -0
  541. package/react/components/toolbar/DragHandle.stories.d.ts +13 -0
  542. package/react/components/toolbar/DragHandle.stories.js +39 -0
  543. package/react/components/toolbar/DragHandle.stories.js.map +1 -0
  544. package/react/components/toolbar/MinimizeAll.js.map +1 -1
  545. package/react/components/toolbar/MinimizeAll.spec.js.map +1 -1
  546. package/react/components/toolbar/MinimizeAll.stories.js.map +1 -1
  547. package/react/components/toolbar/NotificationControl.js.map +1 -1
  548. package/react/components/toolbar/RevealAll.js.map +1 -1
  549. package/react/components/toolbar/RevealAll.spec.js.map +1 -1
  550. package/react/components/toolbar/RevealAll.stories.js.map +1 -1
  551. package/react/components/toolbar/ToolbarIcon.js.map +1 -1
  552. package/react/components/toolbar/ToolbarSection.js.map +1 -1
  553. package/react/components/toolbar/ToolbarShell.js.map +1 -1
  554. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.d.ts +1 -1
  555. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.js.map +1 -1
  556. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncherMenu.js.map +1 -1
  557. package/react/components/toolbar/advancedAppLauncher/components/AddNewAppForm.js.map +1 -1
  558. package/react/components/toolbar/advancedAppLauncher/components/AddNewFolder.js.map +1 -1
  559. package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.js.map +1 -1
  560. package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.js.map +1 -1
  561. package/react/components/toolbar/advancedAppLauncher/components/AppTagsList.js.map +1 -1
  562. package/react/components/toolbar/advancedAppLauncher/components/Content.d.ts +1 -1
  563. package/react/components/toolbar/advancedAppLauncher/components/Content.js.map +1 -1
  564. package/react/components/toolbar/advancedAppLauncher/components/FilterSort.js.map +1 -1
  565. package/react/components/toolbar/advancedAppLauncher/components/FoldersList.d.ts +1 -1
  566. package/react/components/toolbar/advancedAppLauncher/components/FoldersList.js +47 -45
  567. package/react/components/toolbar/advancedAppLauncher/components/FoldersList.js.map +1 -1
  568. package/react/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.js.map +1 -1
  569. package/react/components/toolbar/advancedAppLauncher/components/NoAppsFound.js.map +1 -1
  570. package/react/components/toolbar/advancedAppLauncher/components/SearchBox.js.map +1 -1
  571. package/react/components/toolbar/advancedAppLauncher/components/SortBy.js.map +1 -1
  572. package/react/components/toolbar/advancedAppLauncher/components/TagsList.d.ts +1 -1
  573. package/react/components/toolbar/advancedAppLauncher/components/TagsList.js.map +1 -1
  574. package/react/components/toolbar/advancedAppLauncher/components/TagsMenu.js.map +1 -1
  575. package/react/components/toolbar/advancedAppLauncher/components/ToggleFavoriteDropdown.js.map +1 -1
  576. package/react/components/toolbar/advancedAppLauncher/modules/AppDirectory.js.map +1 -1
  577. package/react/components/toolbar/advancedAppLauncher/modules/FDC3.js.map +1 -1
  578. package/react/components/toolbar/advancedAppLauncher/stores/LauncherStore.d.ts +2 -2
  579. package/react/components/toolbar/advancedAppLauncher/stores/LauncherStore.js.map +1 -1
  580. package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js.map +1 -1
  581. package/react/components/toolbar/advancedAppLauncher/utils/sort-functions.js.map +1 -1
  582. package/react/components/toolbar/appLauncher/AppLauncherMenu.js.map +1 -1
  583. package/react/components/toolbar/appLauncher/DynamicAppLauncher.js.map +1 -1
  584. package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.d.ts +1 -0
  585. package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.js.map +1 -1
  586. package/react/components/toolbar/appLauncher/appLauncher.css +30 -30
  587. package/react/components/toolbar/appLauncher/components/componentList.d.ts +2 -2
  588. package/react/components/toolbar/appLauncher/components/componentList.js.map +1 -1
  589. package/react/components/toolbar/appLauncher/stores/appLauncherStore.d.ts +3 -2
  590. package/react/components/toolbar/appLauncher/stores/appLauncherStore.js +17 -34
  591. package/react/components/toolbar/appLauncher/stores/appLauncherStore.js.map +1 -1
  592. package/react/components/toolbar/dashbar/Dashbar.js +9 -12
  593. package/react/components/toolbar/dashbar/Dashbar.js.map +1 -1
  594. package/react/components/toolbar/dashbar/DashbarItem.js.map +1 -1
  595. package/react/components/toolbar/index.js.map +1 -1
  596. package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.d.ts +2 -2
  597. package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.js.map +1 -1
  598. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.d.ts +1 -1
  599. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js.map +1 -1
  600. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.js.map +1 -1
  601. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.d.ts +1 -1
  602. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.js.map +1 -1
  603. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.d.ts +4 -4
  604. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js +1 -1
  605. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js.map +1 -1
  606. package/react/components/toolbar/workspaceManagementMenu/workspaceManagementMenu.css +90 -90
  607. package/react/components/userPreferences/NotificationsPreferencesContext.js.map +1 -1
  608. package/react/components/userPreferences/UserPreferenceTypes.js.map +1 -1
  609. package/react/components/userPreferences/UserPreferences.js.map +1 -1
  610. package/react/components/userPreferences/UserPreferencesBase.js.map +1 -1
  611. package/react/components/userPreferences/UserPreferencesWrapper.js.map +1 -1
  612. package/react/components/userPreferences/components/ContentSection.js.map +1 -1
  613. package/react/components/userPreferences/components/LeftNav.js.map +1 -1
  614. package/react/components/userPreferences/components/content/DashbarEditor.js.map +1 -1
  615. package/react/components/userPreferences/components/content/DashbarEditorItem.js.map +1 -1
  616. package/react/components/userPreferences/components/content/General.js.map +1 -1
  617. package/react/components/userPreferences/components/content/Notifications.js.map +1 -1
  618. package/react/components/userPreferences/components/content/Workspaces.d.ts +1 -1
  619. package/react/components/userPreferences/components/content/Workspaces.js +1 -1
  620. package/react/components/userPreferences/components/content/Workspaces.js.map +1 -1
  621. package/react/components/userPreferences/components/content/notificationViews/NotificationsPreferencesHome.js.map +1 -1
  622. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourceTypes.js.map +1 -1
  623. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourcesPreferences.js.map +1 -1
  624. package/react/components/userPreferences/components/content/notificationViews/notificationViewsUtils.js.map +1 -1
  625. package/react/components/userPreferences/components/general/ScheduledRestart.js.map +1 -1
  626. package/react/components/userPreferences/components/workspaces/WorkspaceButton.js.map +1 -1
  627. package/react/components/userPreferences/components/workspaces/WorkspaceComponents.js.map +1 -1
  628. package/react/components/userPreferences/components/workspaces/WorkspaceItem.js.map +1 -1
  629. package/react/components/userPreferences/components/workspaces/WorkspaceItemList.js.map +1 -1
  630. package/react/components/userPreferences/index.js.map +1 -1
  631. package/react/components/userPreferences/stores/UserPreferencesStore.d.ts +1 -1
  632. package/react/components/userPreferences/stores/UserPreferencesStore.js.map +1 -1
  633. package/react/components/userPreferences/stories/DashbarEditor.stories.js.map +1 -1
  634. package/react/components/userPreferences/stories/DashbarEditorItem.stories.js.map +1 -1
  635. package/react/components/userPreferences/stories/General.stories.js.map +1 -1
  636. package/react/components/userPreferences/stories/Notifications.stories.js.map +1 -1
  637. package/react/components/userPreferences/stories/NotificationsSourceTypes.stories.js.map +1 -1
  638. package/react/components/userPreferences/stories/NotificationsSources.stories.js.map +1 -1
  639. package/react/components/userPreferences/stories/UserPreferences.stories.js.map +1 -1
  640. package/react/components/userPreferences/stories/WorkspaceButton.stories.js.map +1 -1
  641. package/react/components/userPreferences/stories/WorkspaceComponents.stories.js.map +1 -1
  642. package/react/components/userPreferences/stories/WorkspaceItem.stories.js.map +1 -1
  643. package/react/components/userPreferences/stories/WorkspaceItemList.stories.js.map +1 -1
  644. package/react/components/userPreferences/stories/Workspaces.stories.js.map +1 -1
  645. package/react/components/userPreferences/tests/ContentSection.spec.js.map +1 -1
  646. package/react/components/userPreferences/tests/DashbarEditor.spec.js.map +1 -1
  647. package/react/components/userPreferences/tests/DashbarEditorItem.spec.js.map +1 -1
  648. package/react/components/userPreferences/tests/General.spec.js.map +1 -1
  649. package/react/components/userPreferences/tests/LeftNav.spec.js.map +1 -1
  650. package/react/components/userPreferences/tests/NotificationSourceTypes.spec.js.map +1 -1
  651. package/react/components/userPreferences/tests/Notifications.spec.js.map +1 -1
  652. package/react/components/userPreferences/tests/NotificationsPreferencesHome.spec.js.map +1 -1
  653. package/react/components/userPreferences/tests/NotificationsSourcesPreferences.spec.js.map +1 -1
  654. package/react/components/userPreferences/tests/ScheduledRestart.spec.js +1 -1
  655. package/react/components/userPreferences/tests/ScheduledRestart.spec.js.map +1 -1
  656. package/react/components/userPreferences/tests/WorkspaceButton.spec.js.map +1 -1
  657. package/react/components/userPreferences/tests/WorkspaceComponents.spec.js.map +1 -1
  658. package/react/components/userPreferences/tests/WorkspaceItem.spec.js.map +1 -1
  659. package/react/components/userPreferences/tests/WorkspaceItemList.spec.js.map +1 -1
  660. package/react/components/utils.js.map +1 -1
  661. package/react/components/windowTitleBar/WindowTitleBarShell.d.ts +4 -2
  662. package/react/components/windowTitleBar/WindowTitleBarShell.js +60 -59
  663. package/react/components/windowTitleBar/WindowTitleBarShell.js.map +1 -1
  664. package/react/components/windowTitleBar/components/center/Tab.d.ts +0 -1
  665. package/react/components/windowTitleBar/components/center/Tab.js +2 -2
  666. package/react/components/windowTitleBar/components/center/Tab.js.map +1 -1
  667. package/react/components/windowTitleBar/components/center/TabList.d.ts +2 -3
  668. package/react/components/windowTitleBar/components/center/TabList.js +19 -82
  669. package/react/components/windowTitleBar/components/center/TabList.js.map +1 -1
  670. package/react/components/windowTitleBar/components/center/TabRegion.js.map +1 -1
  671. package/react/components/windowTitleBar/components/left/LinkerButton.js.map +1 -1
  672. package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.js.map +1 -1
  673. package/react/components/windowTitleBar/components/left/LinkerGroups.js.map +1 -1
  674. package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.js.map +1 -1
  675. package/react/components/windowTitleBar/components/left/ShareButton.js.map +1 -1
  676. package/react/components/windowTitleBar/components/right/AlwaysOnTopButton.js.map +1 -1
  677. package/react/components/windowTitleBar/components/right/CloseButton.js.map +1 -1
  678. package/react/components/windowTitleBar/components/right/GroupingButton.js.map +1 -1
  679. package/react/components/windowTitleBar/components/right/MaximizeButton.d.ts +7 -0
  680. package/react/components/windowTitleBar/components/right/MaximizeButton.js +8 -2
  681. package/react/components/windowTitleBar/components/right/MaximizeButton.js.map +1 -1
  682. package/react/components/windowTitleBar/components/right/MinimizeButton.js.map +1 -1
  683. package/react/components/windowTitleBar/components/windowTitle.d.ts +9 -6
  684. package/react/components/windowTitleBar/components/windowTitle.js +154 -45
  685. package/react/components/windowTitleBar/components/windowTitle.js.map +1 -1
  686. package/react/components/windowTitleBar/index.js.map +1 -1
  687. package/react/components/windowTitleBar/stores/windowTitleBarStore.d.ts +3 -3
  688. package/react/components/windowTitleBar/stores/windowTitleBarStore.js +213 -217
  689. package/react/components/windowTitleBar/stores/windowTitleBarStore.js.map +1 -1
  690. package/react/components/windowTitleBar/stores/windowTitleBarStoreDefaults.js.map +1 -1
  691. package/react/components/windowTitleBar/windowTitleBarContext.js.map +1 -1
  692. package/react/components/yesNoDialog/Timer.spec.js.map +1 -1
  693. package/react/components/yesNoDialog/Timer.stories.js.map +1 -1
  694. package/react/components/yesNoDialog/YesNoDialog.css +3 -3
  695. package/react/components/yesNoDialog/YesNoDialog.js.map +1 -1
  696. package/react/components/yesNoDialog/YesNoDialog.spec.js.map +1 -1
  697. package/react/components/yesNoDialog/YesNoDialog.stories.js.map +1 -1
  698. package/react/components/yesNoDialog/index.js.map +1 -1
  699. package/react/components/yesNoDialog/timer.js.map +1 -1
  700. package/react/enzymeSetup.js.map +1 -1
  701. package/react/hooks/index.js.map +1 -1
  702. package/react/hooks/useAuth.js.map +1 -1
  703. package/react/hooks/useDashbar.js.map +1 -1
  704. package/react/hooks/useDeepEffect.js.map +1 -1
  705. package/react/hooks/useFavorites.js.map +1 -1
  706. package/react/hooks/useFavoritesShell.js.map +1 -1
  707. package/react/hooks/useHotkey.js.map +1 -1
  708. package/react/hooks/useLinker.js.map +1 -1
  709. package/react/hooks/useMenu.js.map +1 -1
  710. package/react/hooks/useNotifications.d.ts +1 -1
  711. package/react/hooks/useNotifications.js.map +1 -1
  712. package/react/hooks/useOutsideClickDetector.js.map +1 -1
  713. package/react/hooks/usePubSub.js.map +1 -1
  714. package/react/hooks/useSearch.js.map +1 -1
  715. package/react/hooks/useToolbar.js.map +1 -1
  716. package/react/hooks/useWorkspace.js.map +1 -1
  717. package/react/reducers/favoriteReducer.js.map +1 -1
  718. package/react/reducers/linkerReducer.js.map +1 -1
  719. package/react/reducers/menuReducer.js.map +1 -1
  720. package/react/reducers/rootReducer.d.ts +11 -3
  721. package/react/reducers/rootReducer.js.map +1 -1
  722. package/react/reducers/searchReducer.js.map +1 -1
  723. package/react/reducers/smartDesktopDesignerReducer.js +8 -0
  724. package/react/reducers/smartDesktopDesignerReducer.js.map +1 -1
  725. package/react/reducers/toolbarReducer.js.map +1 -1
  726. package/react/reducers/workspaceReducer.js.map +1 -1
  727. package/react/store.d.ts +22 -6
  728. package/react/store.js.map +1 -1
  729. package/react/types/advancedAppLauncherTypes.js.map +1 -1
  730. package/react/types/dashbarTypes.js.map +1 -1
  731. package/react/types/favoriteTypes.js.map +1 -1
  732. package/react/types/fdc3.d.ts +2 -2
  733. package/react/types/fdc3.js.map +1 -1
  734. package/react/types/hotkeyTypes.js.map +1 -1
  735. package/react/types/iconTypes.js.map +1 -1
  736. package/react/types/linkerTypes.js.map +1 -1
  737. package/react/types/searchTypes.d.ts +1 -8
  738. package/react/types/searchTypes.js.map +1 -1
  739. package/react/types/smartDesktopDesignerTypes.d.ts +8 -2
  740. package/react/types/smartDesktopDesignerTypes.js.map +1 -1
  741. package/react/types/windowTitleBar.d.ts +4 -2
  742. package/react/types/windowTitleBar.js.map +1 -1
  743. package/react/types/workspaceTypes.js.map +1 -1
  744. package/react/components/common/FontSizeSelector.d.ts +0 -7
  745. package/react/components/common/FontSizeSelector.js +0 -42
  746. package/react/components/common/FontSizeSelector.js.map +0 -1
  747. package/react/components/common/stories/FontSizeSelector.stories.d.ts +0 -12
  748. package/react/components/common/stories/FontSizeSelector.stories.js +0 -24
  749. package/react/components/common/stories/FontSizeSelector.stories.js.map +0 -1
  750. package/react/components/smartDesktopDesigner/ApplicationList.d.ts +0 -15
  751. package/react/components/smartDesktopDesigner/ApplicationList.js +0 -56
  752. package/react/components/smartDesktopDesigner/ApplicationList.js.map +0 -1
  753. package/react/components/smartDesktopDesigner/stories/ApplicationList.stories.d.ts +0 -15
  754. package/react/components/smartDesktopDesigner/stories/ApplicationList.stories.js.map +0 -1
  755. package/react/components/smartDesktopDesigner/tests/ApplicationList.spec.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"AppEditPage.spec.js","sourceRoot":"","sources":["../../../../src/components/smartDesktopDesigner/tests/AppEditPage.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\";\r\nimport { mount } from \"enzyme\";\r\nimport { afterEach, describe, it } from \"mocha\";\r\nimport { expect } from \"chai\";\r\nimport sinon from \"sinon\";\r\nimport { AppEditPageProps } from \"../AppEditPage\";\r\nimport { Page, EmptyPage } from \"../stories/AppEditPage.stories\";\r\nimport { accessibilityAssessor } from \"./a11y_helper\";\r\n\r\ndescribe(\"<AppEditPage/>\", () => {\r\n\tafterEach(() => {\r\n\t\tsinon.restore();\r\n\t});\r\n\r\n\tit.skip(\"should pass accessibility scans (Page)\", async function () {\r\n\t\tthis.timeout(5000);\r\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\r\n\r\n\t\texpect(await accessibilityAssessor(wrapper)).to.be.true;\r\n\t});\r\n\r\n\tit.skip(\"should pass accessibility scans (EmptyPage)\", async () => {\r\n\t\tconst wrapper = mount(<EmptyPage {...(EmptyPage.args as AppEditPageProps)} />);\r\n\r\n\t\texpect(await accessibilityAssessor(wrapper)).to.be.true;\r\n\t});\r\n\r\n\tit(\"should display starting name in Name field, if name field is set\", () => {\r\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\r\n\r\n\t\texpect(wrapper.find(\"#app-name\").first().prop(\"value\")).to.equal(\"Test\");\r\n\t});\r\n\tit(\"should not display starting name in Name field, if no name field is set\", () => {\r\n\t\tconst wrapper = mount(<EmptyPage {...(EmptyPage.args as AppEditPageProps)} />);\r\n\r\n\t\texpect(wrapper.find(\"#app-name\").first().prop(\"value\")).to.equal(\"\");\r\n\t});\r\n\tit(\"should display Name as a valid field, even if the given name is duplicate\", () => {\r\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\r\n\r\n\t\tconst appName = wrapper.find(\"#app-name\").at(0);\r\n\t\tappName.simulate(\"change\", {\r\n\t\t\ttarget: {\r\n\t\t\t\tvalue: \"Used\",\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\texpect(wrapper.find(\"#app-name\").at(0).prop(\"value\")).to.equal(\"Used\");\r\n\t\texpect(!!wrapper.find(\"#app-name\").at(0).prop(\"aria-invalid\")).to.be.false;\r\n\t});\r\n\tit(\"should display invalid state for Web URL if provided URL is invalid\", () => {\r\n\t\tconst wrapper = mount(<EmptyPage {...(EmptyPage.args as AppEditPageProps)} />);\r\n\r\n\t\twrapper\r\n\t\t\t.find(\"#app-url\")\r\n\t\t\t.at(0)\r\n\t\t\t.simulate(\"change\", {\r\n\t\t\t\ttarget: {\r\n\t\t\t\t\tvalue: \"invalid\",\r\n\t\t\t\t},\r\n\t\t\t});\r\n\r\n\t\texpect(wrapper.find(\"#app-url\").at(0).prop(\"aria-invalid\")).to.be.true;\r\n\t});\r\n\tit(\"should display invalid state for width if provided a negative number\", () => {\r\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\r\n\r\n\t\twrapper\r\n\t\t\t.find(\"#app-width\")\r\n\t\t\t.at(0)\r\n\t\t\t.simulate(\"change\", {\r\n\t\t\t\ttarget: {\r\n\t\t\t\t\tvalue: \"-999\",\r\n\t\t\t\t},\r\n\t\t\t});\r\n\r\n\t\texpect(wrapper.find(\"#app-width\").at(0).prop(\"aria-invalid\")).to.be.true;\r\n\t});\r\n\tit(\"should display invalid state for width if provided an empty value\", () => {\r\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\r\n\r\n\t\twrapper\r\n\t\t\t.find(\"#app-width\")\r\n\t\t\t.at(0)\r\n\t\t\t.simulate(\"change\", {\r\n\t\t\t\ttarget: {\r\n\t\t\t\t\tvalue: \"\",\r\n\t\t\t\t},\r\n\t\t\t});\r\n\r\n\t\texpect(wrapper.find(\"#app-width\").at(0).prop(\"aria-invalid\")).to.be.true;\r\n\t});\r\n\tit(\"should display invalid state for height if provided a negative number\", () => {\r\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\r\n\r\n\t\twrapper\r\n\t\t\t.find(\"#app-height\")\r\n\t\t\t.at(0)\r\n\t\t\t.simulate(\"change\", {\r\n\t\t\t\ttarget: {\r\n\t\t\t\t\tvalue: \"-999\",\r\n\t\t\t\t},\r\n\t\t\t});\r\n\r\n\t\texpect(wrapper.find(\"#app-height\").at(0).prop(\"aria-invalid\")).to.be.true;\r\n\t});\r\n\tit(\"should display invalid state for height if provided an empty value\", () => {\r\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\r\n\r\n\t\twrapper\r\n\t\t\t.find(\"#app-height\")\r\n\t\t\t.at(0)\r\n\t\t\t.simulate(\"change\", {\r\n\t\t\t\ttarget: {\r\n\t\t\t\t\tvalue: \"\",\r\n\t\t\t\t},\r\n\t\t\t});\r\n\r\n\t\texpect(wrapper.find(\"#app-height\").at(0).prop(\"aria-invalid\")).to.be.true;\r\n\t});\r\n\tit(\"should display only Web URL if App type = Web\", () => {\r\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\r\n\t\twrapper\r\n\t\t\t.find(\"#app-type-web\")\r\n\t\t\t.at(0)\r\n\t\t\t.simulate(\"change\", {\r\n\t\t\t\ttarget: {\r\n\t\t\t\t\tvalue: \"web\",\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\texpect(wrapper.contains(\"Web URL\")).to.be.true;\r\n\t\texpect(wrapper.contains(\"File Path\")).to.be.false;\r\n\t});\r\n\tit(\"should display only File Path, API Access and Arguments if App type = Native\", () => {\r\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\r\n\t\twrapper\r\n\t\t\t.find(\"#app-type-web\")\r\n\t\t\t.at(0)\r\n\t\t\t.simulate(\"change\", {\r\n\t\t\t\ttarget: {\r\n\t\t\t\t\tvalue: \"native\",\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\texpect(wrapper.contains(\"File Path\")).to.be.true;\r\n\t\texpect(wrapper.contains(\"Arguments\")).to.be.true;\r\n\t\texpect(wrapper.contains(\"API access\")).to.be.true;\r\n\t\texpect(wrapper.contains(\"Web URL\")).to.be.false;\r\n\t});\r\n\r\n\tit(\"should have a disabled Save button if the name field is emptied\", () => {\r\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\r\n\t\twrapper\r\n\t\t\t.find(\"#app-name\")\r\n\t\t\t.at(0)\r\n\t\t\t.simulate(\"change\", {\r\n\t\t\t\ttarget: {\r\n\t\t\t\t\tvalue: \"\",\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\texpect(wrapper.find(\"button\").last().prop(\"disabled\")).to.be.true;\r\n\t});\r\n\tit(\"should have a disabled Save button if the Web URL field is emptied\", () => {\r\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\r\n\t\twrapper\r\n\t\t\t.find(\"#app-type-web\")\r\n\t\t\t.at(0)\r\n\t\t\t.simulate(\"change\", {\r\n\t\t\t\ttarget: {\r\n\t\t\t\t\tvalue: \"web\",\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\twrapper\r\n\t\t\t.find(\"#app-url\")\r\n\t\t\t.at(0)\r\n\t\t\t.simulate(\"change\", {\r\n\t\t\t\ttarget: {\r\n\t\t\t\t\tvalue: \"\",\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\texpect(wrapper.find(\"button\").last().prop(\"disabled\")).to.be.true;\r\n\t});\r\n\tit(\"should have a disabled Save button if the Web URL field is emptied\", () => {\r\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\r\n\t\twrapper\r\n\t\t\t.find(\"#app-type-web\")\r\n\t\t\t.at(0)\r\n\t\t\t.simulate(\"change\", {\r\n\t\t\t\ttarget: {\r\n\t\t\t\t\tvalue: \"web\",\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\twrapper\r\n\t\t\t.find(\"#app-url\")\r\n\t\t\t.at(0)\r\n\t\t\t.simulate(\"change\", {\r\n\t\t\t\ttarget: {\r\n\t\t\t\t\tvalue: \"\",\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\texpect(wrapper.find(\"button\").last().prop(\"disabled\")).to.be.true;\r\n\t});\r\n\tit(\"should have a disabled Save button if the width field is emptied\", () => {\r\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\r\n\t\twrapper\r\n\t\t\t.find(\"#app-width\")\r\n\t\t\t.at(0)\r\n\t\t\t.simulate(\"change\", {\r\n\t\t\t\ttarget: {\r\n\t\t\t\t\tvalue: \"\",\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\texpect(wrapper.find(\"button\").last().prop(\"disabled\")).to.be.true;\r\n\t});\r\n\tit(\"should have a disabled Save button if the height field is emptied\", () => {\r\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\r\n\t\twrapper\r\n\t\t\t.find(\"#app-height\")\r\n\t\t\t.at(0)\r\n\t\t\t.simulate(\"change\", {\r\n\t\t\t\ttarget: {\r\n\t\t\t\t\tvalue: \"\",\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\texpect(wrapper.find(\"button\").last().prop(\"disabled\")).to.be.true;\r\n\t});\r\n\tit(\"should have a disabled Save button if the width field is negative\", () => {\r\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\r\n\t\twrapper\r\n\t\t\t.find(\"#app-width\")\r\n\t\t\t.at(0)\r\n\t\t\t.simulate(\"change\", {\r\n\t\t\t\ttarget: {\r\n\t\t\t\t\tvalue: \"-999\",\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\texpect(wrapper.find(\"button\").last().prop(\"disabled\")).to.be.true;\r\n\t});\r\n\tit(\"should have a disabled Save button if the height field is negative\", () => {\r\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\r\n\t\twrapper\r\n\t\t\t.find(\"#app-height\")\r\n\t\t\t.at(0)\r\n\t\t\t.simulate(\"change\", {\r\n\t\t\t\ttarget: {\r\n\t\t\t\t\tvalue: \"-999\",\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\texpect(wrapper.find(\"button\").last().prop(\"disabled\")).to.be.true;\r\n\t});\r\n\r\n\tit(\"should call the passed-in cancel function when the cancel button is clicked\", () => {\r\n\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"cancelFn\");\r\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\r\n\r\n\t\tconst collection = wrapper.find(\"button\");\r\n\t\tcollection.at(collection.length - 2).simulate(\"click\");\r\n\t\texpect(buttonSpy.calledOnce).to.be.true;\r\n\t});\r\n\tit(\"should call the passed-in Remove Application function when the Remove Application button is clicked\", () => {\r\n\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"removeApplicationFn\");\r\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\r\n\r\n\t\tconst collection = wrapper.find(\"button\");\r\n\t\tcollection.at(collection.length - 3).simulate(\"click\");\r\n\t\texpect(buttonSpy.calledOnce).to.be.true;\r\n\t\tsinon.restore();\r\n\t});\r\n\tit(\"should call the passed-in submit function with relevant data when the submit button is clicked\", () => {\r\n\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"submitFn\");\r\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\r\n\r\n\t\twrapper.find(\"button\").last().simulate(\"click\");\r\n\t\texpect(buttonSpy.calledOnce).to.be.true;\r\n\t\texpect(buttonSpy.firstCall.args[0]).to.deep.equal({\r\n\t\t\tname: \"Test\",\r\n\t\t\tabstractPosition: 0,\r\n\t\t\taddToWorkspace: true,\r\n\t\t\tallowAutoArrange: true,\r\n\t\t\tallowGrouping: true,\r\n\t\t\tallowMaximize: true,\r\n\t\t\tallowMinimize: true,\r\n\t\t\tallowSnapping: true,\r\n\t\t\tallowTabbing: true,\r\n\t\t\tallowTiling: true,\r\n\t\t\talwaysOnTop: false,\r\n\t\t\tappArguments: \"\",\r\n\t\t\tappType: \"web\",\r\n\t\t\tautoConnect: true,\r\n\t\t\tdescription: \"\",\r\n\t\t\tenableAOT: false,\r\n\t\t\tenableTitleBar: true,\r\n\t\t\tgrpc: false,\r\n\t\t\theight: 600,\r\n\t\t\thideClose: false,\r\n\t\t\thideMaximize: false,\r\n\t\t\thideMinimize: false,\r\n\t\t\ticonURL: \"\",\r\n\t\t\tintents: [],\r\n\t\t\tisEvergreen: false,\r\n\t\t\tlaunchableByUser: true,\r\n\t\t\tnative_windowSpawnTimeout: 30,\r\n\t\t\topacity: 1,\r\n\t\t\tpath: \"\",\r\n\t\t\tpersistPath: true,\r\n\t\t\tpersistURL: true,\r\n\t\t\tresizable: true,\r\n\t\t\trules: [],\r\n\t\t\tsecurity: \"trusted\",\r\n\t\t\tsingleton: false,\r\n\t\t\tspawnOnStartup: false,\r\n\t\t\turl: \"http://www.google.com\",\r\n\t\t\twidth: 1280,\r\n\t\t});\r\n\t});\r\n\r\n\tit(\"should click submit button when pressing enter on Name field\", () => {\r\n\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"submitFn\");\r\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\r\n\t\twrapper\r\n\t\t\t.find(\"#app-name\")\r\n\t\t\t.at(0)\r\n\t\t\t.simulate(\"keydown\", {\r\n\t\t\t\tkey: \"Enter\",\r\n\t\t\t\tpreventDefault: () => {},\r\n\t\t\t});\r\n\t\texpect(buttonSpy.calledOnce).to.be.true;\r\n\t});\r\n\tit(\"should not click submit button when pressing a key other than enter on Name field\", () => {\r\n\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"submitFn\");\r\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\r\n\t\twrapper\r\n\t\t\t.find(\"#app-name\")\r\n\t\t\t.at(0)\r\n\t\t\t.simulate(\"keydown\", {\r\n\t\t\t\tkey: \"a\",\r\n\t\t\t\tpreventDefault: () => {},\r\n\t\t\t});\r\n\t\texpect(buttonSpy.calledOnce).to.be.false;\r\n\t});\r\n\tit(\"should not submit when pressing enter on Name field IF the submit button is disabled\", () => {\r\n\t\tconst buttonSpy = sinon.spy(EmptyPage.args as AppEditPageProps, \"submitFn\");\r\n\t\tconst wrapper = mount(<EmptyPage {...(EmptyPage.args as AppEditPageProps)} />);\r\n\t\twrapper\r\n\t\t\t.find(\"#app-name\")\r\n\t\t\t.at(0)\r\n\t\t\t.simulate(\"keydown\", {\r\n\t\t\t\tkey: \"Enter\",\r\n\t\t\t\tpreventDefault: () => {},\r\n\t\t\t});\r\n\t\texpect(buttonSpy.calledOnce).to.be.false;\r\n\t});\r\n\tit(\"should click submit button when pressing enter on App type web field\", () => {\r\n\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"submitFn\");\r\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\r\n\t\twrapper\r\n\t\t\t.find(\"#app-type-web\")\r\n\t\t\t.at(0)\r\n\t\t\t.simulate(\"keydown\", {\r\n\t\t\t\tkey: \"Enter\",\r\n\t\t\t\tpreventDefault: () => {},\r\n\t\t\t});\r\n\t\texpect(buttonSpy.calledOnce).to.be.true;\r\n\t});\r\n\tit(\"should click submit button when pressing enter on App type native field\", () => {\r\n\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"submitFn\");\r\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\r\n\t\twrapper\r\n\t\t\t.find(\"#app-type-native\")\r\n\t\t\t.at(0)\r\n\t\t\t.simulate(\"keydown\", {\r\n\t\t\t\tkey: \"Enter\",\r\n\t\t\t\tpreventDefault: () => {},\r\n\t\t\t});\r\n\t\texpect(buttonSpy.calledOnce).to.be.true;\r\n\t});\r\n\tit(\"should click submit button when pressing enter on Web URL field\", () => {\r\n\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"submitFn\");\r\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\r\n\t\twrapper\r\n\t\t\t.find(\"#app-url\")\r\n\t\t\t.at(0)\r\n\t\t\t.simulate(\"keydown\", {\r\n\t\t\t\tkey: \"Enter\",\r\n\t\t\t\tpreventDefault: () => {},\r\n\t\t\t});\r\n\t\texpect(buttonSpy.calledOnce).to.be.true;\r\n\t});\r\n});\r\n"]}
1
+ {"version":3,"file":"AppEditPage.spec.js","sourceRoot":"","sources":["../../../../src/components/smartDesktopDesigner/tests/AppEditPage.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { mount } from \"enzyme\";\nimport { afterEach, describe, it } from \"mocha\";\nimport { expect } from \"chai\";\nimport sinon from \"sinon\";\nimport { AppEditPageProps } from \"../AppEditPage\";\nimport { Page, EmptyPage, NativePage, PageWithIconURL } from \"../stories/AppEditPage.stories\";\n\nconst defaults = {\n\tname: \"Test\",\n\tabstractPosition: 0,\n\taddToWorkspace: true,\n\tallowAutoArrange: true,\n\tallowGrouping: true,\n\tallowMaximize: true,\n\tallowMinimize: true,\n\tallowSnapping: true,\n\tallowTabbing: true,\n\tallowTiling: true,\n\talwaysOnTop: false,\n\tappArguments: \"\",\n\tappType: \"web\",\n\tautoConnect: false,\n\tdescription: \"\",\n\tenableAOT: false,\n\tenableTitleBar: true,\n\theight: 600,\n\thideClose: false,\n\thideMaximize: false,\n\thideMinimize: false,\n\ticonURL: \"\",\n\tintents: [],\n\tisEvergreen: false,\n\tlaunchableByUser: true,\n\tnative_windowSpawnTimeout: 30,\n\topacity: 1,\n\tpath: \"\",\n\tpersistPath: true,\n\tpersistURL: true,\n\tpreloads: [],\n\tresizable: true,\n\trules: [],\n\tsecurity: \"trusted\",\n\tsingleton: false,\n\tspawnOnStartup: false,\n\turl: \"http://www.google.com\",\n\twidth: 1280,\n};\n\nconst testPresetInputValue = (appDataKey: string, selector: string, starter = Page, presetValue = \"Test\") => {\n\tconst args = {\n\t\t...starter.args,\n\t\tappData: {\n\t\t\t...starter.args?.appData,\n\t\t\t[appDataKey]: presetValue,\n\t\t},\n\t} as AppEditPageProps;\n\tconst wrapper = mount(<Page {...args} />);\n\n\texpect(wrapper.find(selector).prop(\"value\")).to.equal(presetValue);\n};\nconst testSaveInputValue = (\n\tappDataKey: string,\n\tselector: string,\n\tnative = false,\n\tnewValue: string | number = \"New value\"\n) => {\n\tconst starter = native ? NativePage : Page;\n\tconst buttonSpy = sinon.spy(starter.args as AppEditPageProps, \"submitFn\");\n\tconst wrapper = mount(<Page {...(starter.args as AppEditPageProps)} />);\n\twrapper\n\t\t.find(selector)\n\t\t.at(0)\n\t\t.simulate(\"change\", {\n\t\t\ttarget: {\n\t\t\t\tvalue: newValue,\n\t\t\t},\n\t\t});\n\n\tconst collection = wrapper.find(\"button\");\n\tcollection.at(collection.length - 1).simulate(\"click\");\n\texpect(buttonSpy.args[0][0]).to.deep.equal({\n\t\t...defaults,\n\t\t...(native\n\t\t\t? {\n\t\t\t\t\tappType: \"native\",\n\t\t\t\t\tpath: \"test.exe\",\n\t\t\t }\n\t\t\t: {}),\n\t\t[appDataKey]: newValue,\n\t});\n};\nconst testSubmitOnEnter = (selector: string, starter = Page) => {\n\tconst buttonSpy = sinon.spy(starter.args as AppEditPageProps, \"submitFn\");\n\tconst wrapper = mount(<Page {...(starter.args as AppEditPageProps)} />);\n\twrapper\n\t\t.find(selector)\n\t\t.at(0)\n\t\t.simulate(\"keydown\", {\n\t\t\tkey: \"Enter\",\n\t\t\tpreventDefault: () => {},\n\t\t});\n\texpect(buttonSpy.calledOnce).to.be.true;\n};\nconst flipCheckbox = (appDataKey: string, label: string, presetValue: boolean) => {\n\tconst args = {\n\t\t...Page.args,\n\t\tappData: {\n\t\t\t...Page.args?.appData,\n\t\t\t[appDataKey]: presetValue,\n\t\t},\n\t} as AppEditPageProps;\n\tconst buttonSpy = sinon.spy(args as AppEditPageProps, \"submitFn\");\n\tconst wrapper = mount(<Page {...args} />);\n\n\twrapper.find(`[role='checkbox'][aria-label='${label}']`).simulate(\"click\");\n\tconst collection = wrapper.find(\"button\");\n\tconst saveButton = collection.at(collection.length - 1);\n\tsaveButton.simulate(\"click\");\n\texpect(buttonSpy.args[0][0]).to.deep.equal({\n\t\t...defaults,\n\t\t[appDataKey]: !presetValue,\n\t});\n};\nconst presetCheckbox = (\n\tappDataKey: string,\n\tlabel: string,\n\tpresetValue: boolean = true,\n\texpectedValue: boolean = true\n) => {\n\tconst args = {\n\t\t...Page.args,\n\t\tappData: {\n\t\t\t...Page.args?.appData,\n\t\t\t[appDataKey]: presetValue,\n\t\t},\n\t} as AppEditPageProps;\n\tconst wrapper = mount(<Page {...args} />);\n\n\texpect(wrapper.find(`[role='checkbox'][aria-label='${label}']`).prop(\"aria-checked\")).to.equal(expectedValue);\n};\nconst checkUniqueRadioButtons = (name: string, numberOfButtons: number, starter = Page) => {\n\tconst wrapper = mount(<Page {...(starter.args as AppEditPageProps)} />);\n\n\tconst locator = `input[type='radio'][name='${name}']`;\n\n\tfor (let i = 0; i < numberOfButtons; i++) {\n\t\twrapper.find(locator).at(i).simulate(\"change\");\n\n\t\tfor (let j = 0; j < numberOfButtons; j++) {\n\t\t\texpect(\n\t\t\t\twrapper.find(locator).at(j).prop(\"checked\"),\n\t\t\t\t`When radio #${i + 1} is clicked, is radio #${j + 1} checked?`\n\t\t\t).to.equal(i === j);\n\t\t}\n\t}\n};\nconst presetRadioButtons = (name: string, presetData: { [key: string]: any }, radioChecked: boolean[]) => {\n\tconst args = {\n\t\t...Page.args,\n\t\tappData: {\n\t\t\t...Page.args?.appData,\n\t\t\t...presetData,\n\t\t},\n\t} as AppEditPageProps;\n\tconst wrapper = mount(<Page {...args} />);\n\n\tradioChecked.forEach((radioButton, key) => {\n\t\texpect(wrapper.find(`input[type='radio'][name='${name}']`).at(key).prop(\"checked\")).to.equal(radioButton);\n\t});\n};\nconst saveRadioButton = (\n\tname: string,\n\tbuttonNumberChecked: number,\n\tsavedValues: { [key: string]: any },\n\tstarter = Page\n) => {\n\tconst buttonSpy = sinon.spy(starter.args as AppEditPageProps, \"submitFn\");\n\tconst wrapper = mount(<Page {...(starter.args as AppEditPageProps)} />);\n\twrapper.find(`input[type='radio'][name='${name}']`).at(buttonNumberChecked).simulate(\"change\");\n\n\tconst collection = wrapper.find(\"button\");\n\tconst saveButton = collection.at(collection.length - 1);\n\tsaveButton.simulate(\"click\");\n\n\tconst savedValue = buttonSpy.args[0][0];\n\tfor (let key in savedValues) {\n\t\t// @ts-ignore\n\t\texpect(savedValue[key]).to.equal(savedValues[key]);\n\t}\n};\n\ndescribe(\"<AppEditPage/>\", () => {\n\tafterEach(() => {\n\t\tsinon.restore();\n\t});\n\n\t// Not using accessibility scans on this page, since the parent component <Applications /> is running them\n\n\tit(\"should call the passed-in cancel function when the cancel button is clicked\", () => {\n\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"cancelFn\");\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\tconst collection = wrapper.find(\"button\");\n\t\tcollection.at(collection.length - 2).simulate(\"click\");\n\t\texpect(buttonSpy.calledOnce).to.be.true;\n\t});\n\tit(\"should call the passed-in Remove Application function when the Remove Application button is clicked\", () => {\n\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"removeApplicationFn\");\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\tconst collection = wrapper.find(\"button\");\n\t\tcollection.at(collection.length - 3).simulate(\"click\");\n\t\texpect(buttonSpy.calledOnce).to.be.true;\n\t\tsinon.restore();\n\t});\n\tit(\"should call the passed-in submit function with relevant data when the submit button is clicked\", () => {\n\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"submitFn\");\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\twrapper.find(\"button\").last().simulate(\"click\");\n\t\texpect(buttonSpy.calledOnce).to.be.true;\n\t\texpect(buttonSpy.firstCall.args[0]).to.deep.equal(defaults);\n\t});\n\n\tdescribe(\"Web versus native apps\", () => {\n\t\tit(\"If App type = web, show web-only apps and don't show native-only apps\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\texpect(wrapper.contains(\"App URL\")).to.be.true;\n\t\t\texpect(wrapper.contains(\"File path\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"Arguments\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"API access\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"Launch timeout\")).to.be.false;\n\t\t\texpect(wrapper.find(\"#persist-url\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#persist-path\").exists()).to.be.false;\n\t\t});\n\t\tit(\"If App type = native, show native-only apps and don't show web-only apps\", () => {\n\t\t\tconst wrapper = mount(<NativePage {...(NativePage.args as AppEditPageProps)} />);\n\t\t\texpect(wrapper.contains(\"App URL\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"File path\")).to.be.true;\n\t\t\texpect(wrapper.contains(\"Arguments\")).to.be.true;\n\t\t\texpect(wrapper.contains(\"API access\")).to.be.true;\n\t\t\texpect(wrapper.contains(\"Launch timeout\")).to.be.true;\n\t\t\texpect(wrapper.find(\"#persist-url\").exists()).to.be.false;\n\t\t\texpect(wrapper.find(\"#persist-path\").exists()).to.be.true;\n\t\t});\n\t});\n\n\tdescribe(\"Name\", () => {\n\t\tafterEach(() => {\n\t\t\tsinon.restore();\n\t\t});\n\t\tit(\"should save correctly when edited\", () => {\n\t\t\ttestSaveInputValue(\"name\", \"#app-name\");\n\t\t});\n\t\tit(\"should display starting name in Name field, if name field is set\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\t\texpect(wrapper.find(\"#app-name\").first().prop(\"value\")).to.equal(\"Test\");\n\t\t});\n\t\tit(\"should not display starting name in Name field, if no name field is set\", () => {\n\t\t\tconst wrapper = mount(<EmptyPage {...(EmptyPage.args as AppEditPageProps)} />);\n\n\t\t\texpect(wrapper.find(\"#app-name\").first().prop(\"value\")).to.equal(\"\");\n\t\t});\n\t\tit(\"should display Name as a valid field, even if the given name is duplicate\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\t\tconst appName = wrapper.find(\"#app-name\").at(0);\n\t\t\tappName.simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"Used\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\texpect(wrapper.find(\"#app-name\").at(0).prop(\"value\")).to.equal(\"Used\");\n\t\t\texpect(!!wrapper.find(\"#app-name\").at(0).prop(\"aria-invalid\")).to.be.false;\n\t\t});\n\t\tit(\"should have a disabled Save button if the name field is emptied\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(\"#app-name\")\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"\",\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\texpect(wrapper.find(\"button\").last().prop(\"disabled\")).to.be.true;\n\t\t});\n\t\tit(\"should click submit button when pressing enter on Name field\", () => {\n\t\t\ttestSubmitOnEnter(\"#app-name\");\n\t\t});\n\t\tit(\"should not click submit button when pressing a key other than enter on Name field\", () => {\n\t\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"submitFn\");\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(\"#app-name\")\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"keydown\", {\n\t\t\t\t\tkey: \"a\",\n\t\t\t\t\tpreventDefault: () => {},\n\t\t\t\t});\n\t\t\texpect(buttonSpy.calledOnce).to.be.false;\n\t\t});\n\t\tit(\"should not submit when pressing enter on Name field IF the submit button is disabled\", () => {\n\t\t\tconst buttonSpy = sinon.spy(EmptyPage.args as AppEditPageProps, \"submitFn\");\n\t\t\tconst wrapper = mount(<EmptyPage {...(EmptyPage.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(\"#app-name\")\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"keydown\", {\n\t\t\t\t\tkey: \"Enter\",\n\t\t\t\t\tpreventDefault: () => {},\n\t\t\t\t});\n\t\t\texpect(buttonSpy.calledOnce).to.be.false;\n\t\t});\n\t});\n\tdescribe(\"Icon URL\", () => {\n\t\tconst appDataKey = \"iconURL\";\n\t\tconst selector = \"#app-icon-url\";\n\t\tconst imageSelector = \".app-icon\";\n\t\tit(\"should save correctly when edited\", () => {\n\t\t\ttestSaveInputValue(appDataKey, selector);\n\t\t});\n\t\tit(\"should display pre-set values\", () => {\n\t\t\ttestPresetInputValue(appDataKey, selector);\n\t\t});\n\t\tit(\"should submit on enter\", () => {\n\t\t\ttestSubmitOnEnter(selector);\n\t\t});\n\t\tit(\"should display icon when icon url is provided\", () => {\n\t\t\tconst wrapper = mount(<PageWithIconURL {...(PageWithIconURL.args as AppEditPageProps)} />);\n\n\t\t\texpect(wrapper.find(imageSelector).exists()).to.be.true;\n\t\t});\n\t\tit(\"should not display icon when no icon url is provided\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\t\texpect(wrapper.find(imageSelector).exists()).to.be.false;\n\t\t});\n\t\tit(\"when icon url field is emptied, the icon should disappear\", () => {\n\t\t\tconst wrapper = mount(<PageWithIconURL {...(PageWithIconURL.args as AppEditPageProps)} />);\n\n\t\t\twrapper.find(selector).simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\texpect(wrapper.find(imageSelector).exists()).to.be.false;\n\t\t});\n\t\tit(\"when icon url field gets a value, the icon should start displaying\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\t\twrapper.find(selector).simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"https://assets.finsemble.com/components/fdc3-workbench/fdc3-icon-256.png\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\texpect(wrapper.find(imageSelector).exists()).to.be.true;\n\t\t});\n\t});\n\tdescribe(\"API Access\", () => {\n\t\tafterEach(() => {\n\t\t\tsinon.restore();\n\t\t});\n\n\t\tconst name = \"api-access\";\n\t\tconst nativeParams = {\n\t\t\tappType: \"native\",\n\t\t};\n\t\tconst assimilationParams = {\n\t\t\tappType: \"assimilation\",\n\t\t};\n\t\tit.skip(\"should display correctly when preset: With API Access\", () => {\n\t\t\tpresetRadioButtons(name, nativeParams, [true, false]);\n\t\t});\n\t\tit.skip(\"should display correctly when preset: Without API Access\", () => {\n\t\t\tpresetRadioButtons(name, assimilationParams, [false, true]);\n\t\t});\n\t\tit(\"should save correctly when edited: With API Access\", () => {\n\t\t\tsaveRadioButton(name, 0, nativeParams, NativePage);\n\t\t});\n\t\tit(\"should save correctly when edited: Without API Access\", () => {\n\t\t\tsaveRadioButton(name, 1, assimilationParams, NativePage);\n\t\t});\n\t\tit(\"confirm that the radio buttons stay independent\", () => {\n\t\t\tcheckUniqueRadioButtons(name, 2, NativePage);\n\t\t});\n\t\tit(\"should submit on enter: Yes\", () => {\n\t\t\ttestSubmitOnEnter(\"#api-access-yes\", NativePage);\n\t\t});\n\t\tit(\"should submit on enter: No\", () => {\n\t\t\ttestSubmitOnEnter(\"#api-access-no\", NativePage);\n\t\t});\n\t});\n\tdescribe(\"App URL\", () => {\n\t\tconst appDataKey = \"url\";\n\t\tconst selector = \"#app-url\";\n\t\tit(\"should save correctly when edited\", () => {\n\t\t\ttestSaveInputValue(appDataKey, selector);\n\t\t});\n\t\tit.skip(\"should display pre-set values\", () => {\n\t\t\ttestPresetInputValue(appDataKey, selector);\n\t\t});\n\t\tit(\"should submit on enter\", () => {\n\t\t\ttestSubmitOnEnter(selector);\n\t\t});\n\t\tit(\"should have a disabled Save button if the App URL field is emptied\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(\"#app-url\")\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"\",\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\texpect(wrapper.find(\"button\").last().prop(\"disabled\")).to.be.true;\n\t\t});\n\t\tit(\"should display invalid state for App URL if provided URL is invalid\", () => {\n\t\t\tconst wrapper = mount(<EmptyPage {...(EmptyPage.args as AppEditPageProps)} />);\n\n\t\t\twrapper\n\t\t\t\t.find(\"#app-url\")\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"invalid\",\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\texpect(wrapper.find(\"#app-url\").at(0).prop(\"aria-invalid\")).to.be.true;\n\t\t});\n\t\tit(\"should click submit button when pressing enter on App URL field\", () => {\n\t\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"submitFn\");\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(\"#app-url\")\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"keydown\", {\n\t\t\t\t\tkey: \"Enter\",\n\t\t\t\t\tpreventDefault: () => {},\n\t\t\t\t});\n\t\t\texpect(buttonSpy.calledOnce).to.be.true;\n\t\t});\n\t});\n\tdescribe.skip(\"File path\", () => {\n\t\t// Couldn't get tests for manipulating input[type=file] to work right\n\t\t// should save correctly when edited\n\t\t// should display pre-set values\n\t\t// is required (enables/disables Save button when invalid)\n\t\t// shows invalid state\n\t});\n\tdescribe(\"Arguments\", () => {\n\t\tconst appDataKey = \"appArguments\";\n\t\tconst selector = \"#app-arguments\";\n\t\tit(\"should save correctly when edited\", () => {\n\t\t\ttestSaveInputValue(appDataKey, selector, true);\n\t\t});\n\t\tit(\"should display pre-set values\", () => {\n\t\t\ttestPresetInputValue(appDataKey, selector, NativePage);\n\t\t});\n\t\tit(\"should submit on enter\", () => {\n\t\t\ttestSubmitOnEnter(selector, NativePage);\n\t\t});\n\t\tit(\"is not required (Save button is enabled if empty)\", () => {\n\t\t\tconst wrapper = mount(<NativePage {...(NativePage.args as AppEditPageProps)} />);\n\t\t\texpect(wrapper.find(selector).prop(\"value\")).to.be.empty;\n\t\t\tconst collection = wrapper.find(\"button\");\n\t\t\tconst saveButton = collection.at(collection.length - 1);\n\t\t\texpect(saveButton.prop(\"disabled\")).to.be.false;\n\t\t});\n\t});\n\tdescribe(\"Description\", () => {\n\t\tconst appDataKey = \"description\";\n\t\tconst selector = \"#app-description\";\n\t\tit(\"should save correctly when edited\", () => {\n\t\t\ttestSaveInputValue(appDataKey, selector);\n\t\t});\n\t\tit(\"should display pre-set values\", () => {\n\t\t\ttestPresetInputValue(appDataKey, selector);\n\t\t});\n\t\tit(\"is not required (Save button is enabled if empty)\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\texpect(wrapper.find(selector).prop(\"value\")).to.be.empty;\n\t\t\tconst collection = wrapper.find(\"button\");\n\t\t\tconst saveButton = collection.at(collection.length - 1);\n\t\t\texpect(saveButton.prop(\"disabled\")).to.be.false;\n\t\t});\n\t});\n\tdescribe(\"Select Connect\", () => {\n\t\t// @todo write test: should save correctly when edited (radio buttons and box) - issue with how <AppEditAccess /> is set up, so it always appears empty in tests\n\t\tit(\"should display preset value (undefined rules)\", () => {\n\t\t\tconst args = {\n\t\t\t\t...Page.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...Page.args?.appData,\n\t\t\t\t\trules: undefined,\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<Page {...(args as AppEditPageProps)} />);\n\n\t\t\texpect(\n\t\t\t\twrapper.find(\"input[name='interop-trust'][value='true']\").prop(\"checked\"),\n\t\t\t\t\"Radio button 'trust all apps' is checked\"\n\t\t\t).to.be.true;\n\t\t\texpect(wrapper.find(\".app-edit-access\").exists(), \"Display SelectConnect listbox\").to.be.false;\n\t\t});\n\t\tit(\"should display preset value (empty rules)\", () => {\n\t\t\tconst args = {\n\t\t\t\t...Page.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...Page.args?.appData,\n\t\t\t\t\trules: [],\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<Page {...(args as AppEditPageProps)} />);\n\n\t\t\texpect(\n\t\t\t\twrapper.find(\"input[name='interop-trust'][value='true']\").prop(\"checked\"),\n\t\t\t\t\"Radio button 'trust all apps' is checked\"\n\t\t\t).to.be.true;\n\t\t\texpect(wrapper.find(\".app-edit-access\").exists(), \"Display SelectConnect listbox\").to.be.false;\n\t\t});\n\t\tit(\"should display preset value (rules without authorize)\", () => {\n\t\t\tconst args = {\n\t\t\t\t...Page.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...Page.args?.appData,\n\t\t\t\t\trules: [\n\t\t\t\t\t\t{ contextType: \"fdc3.instrument\", cc: \"#Workspace\" },\n\t\t\t\t\t\t{ contextType: \"layout\", fwd: \"#Workspace\" },\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<Page {...(args as AppEditPageProps)} />);\n\n\t\t\texpect(\n\t\t\t\twrapper.find(\"input[name='interop-trust'][value='true']\").prop(\"checked\"),\n\t\t\t\t\"Radio button 'trust all apps' is checked\"\n\t\t\t).to.be.true;\n\t\t\texpect(wrapper.find(\".app-edit-access\").exists(), \"Display SelectConnect listbox\").to.be.false;\n\t\t});\n\t\tit(\"should display preset value (rules with authorize)\", () => {\n\t\t\tconst args = {\n\t\t\t\t...Page.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...Page.args?.appData,\n\t\t\t\t\trules: [{ authorize: [{ name: \"ChartIQ Example App\" }] }],\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<Page {...(args as AppEditPageProps)} />);\n\n\t\t\texpect(\n\t\t\t\twrapper.find(\"input[name='interop-trust'][value='false']\").prop(\"checked\"),\n\t\t\t\t\"Radio button 'trust selected apps' is checked\"\n\t\t\t).to.be.true;\n\t\t\texpect(wrapper.find(\".app-edit-access\").exists(), \"Display SelectConnect listbox\").to.be.true;\n\t\t\t// AppEditAccess is tested independently (and can't be tested on this level because it comes up as empty because it doesn't have a list of apps)\n\t\t});\n\t\tit(\"should display preset value (rules with empty authorize)\", () => {\n\t\t\tconst args = {\n\t\t\t\t...Page.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...Page.args?.appData,\n\t\t\t\t\trules: [{ authorize: [] }],\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<Page {...(args as AppEditPageProps)} />);\n\n\t\t\texpect(\n\t\t\t\twrapper.find(\"input[name='interop-trust'][value='false']\").prop(\"checked\"),\n\t\t\t\t\"Radio button 'trust selected apps' is checked\"\n\t\t\t).to.be.true;\n\t\t\texpect(wrapper.find(\".app-edit-access\").exists(), \"Display SelectConnect listbox\").to.be.true;\n\t\t\t// AppEditAccess is tested independently\n\t\t});\n\t\tit.skip(\"confirm that the radio buttons stay independent\", () => {\n\t\t\tcheckUniqueRadioButtons(\"interop-trust\", 2);\n\t\t});\n\t});\n\tdescribe(\"Width\", () => {\n\t\tconst appDataKey = \"width\";\n\t\tconst selector = \"#app-width\";\n\t\tit(\"should save correctly when edited\", () => {\n\t\t\ttestSaveInputValue(appDataKey, selector, false, 200);\n\t\t});\n\t\tit(\"should display pre-set values\", () => {\n\t\t\ttestPresetInputValue(appDataKey, selector, Page, \"200\");\n\t\t});\n\t\tit(\"should display invalid state for width if provided a negative number\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\t\twrapper\n\t\t\t\t.find(selector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"-999\",\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\texpect(wrapper.find(selector).at(0).prop(\"aria-invalid\")).to.be.true;\n\t\t});\n\t\tit(\"should display invalid state for width if provided an empty value\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\t\twrapper\n\t\t\t\t.find(selector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"\",\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\texpect(wrapper.find(selector).at(0).prop(\"aria-invalid\")).to.be.true;\n\t\t});\n\t\tit(\"should display invalid state for non-numeric value\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\t\twrapper\n\t\t\t\t.find(selector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"abc\",\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\texpect(wrapper.find(selector).at(0).prop(\"aria-invalid\")).to.be.true;\n\t\t});\n\t\tit(\"should have a disabled Save button if the width field is emptied\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(selector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"\",\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\texpect(wrapper.find(\"button\").last().prop(\"disabled\")).to.be.true;\n\t\t});\n\t\tit(\"should have a disabled Save button if the width field is negative\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(selector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"-999\",\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\texpect(wrapper.find(\"button\").last().prop(\"disabled\")).to.be.true;\n\t\t});\n\t});\n\tdescribe(\"Height\", () => {\n\t\tconst appDataKey = \"height\";\n\t\tconst selector = \"#app-height\";\n\t\tit(\"should save correctly when edited\", () => {\n\t\t\ttestSaveInputValue(appDataKey, selector, false, 200);\n\t\t});\n\t\tit(\"should display pre-set values\", () => {\n\t\t\ttestPresetInputValue(appDataKey, selector, Page, \"200\");\n\t\t});\n\t\tit(\"should display invalid state for width if provided a negative number\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\t\twrapper\n\t\t\t\t.find(selector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"-999\",\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\texpect(wrapper.find(selector).at(0).prop(\"aria-invalid\")).to.be.true;\n\t\t});\n\t\tit(\"should display invalid state for width if provided an empty value\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\t\twrapper\n\t\t\t\t.find(selector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"\",\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\texpect(wrapper.find(selector).at(0).prop(\"aria-invalid\")).to.be.true;\n\t\t});\n\t\tit(\"should display invalid state for non-numeric value\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\t\twrapper\n\t\t\t\t.find(selector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"abc\",\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\texpect(wrapper.find(\"#app-height\").at(0).prop(\"aria-invalid\")).to.be.true;\n\t\t});\n\t\tit(\"should have a disabled Save button if the height field is emptied\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(selector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"\",\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\texpect(wrapper.find(\"button\").last().prop(\"disabled\")).to.be.true;\n\t\t});\n\t\tit(\"should have a disabled Save button if the height field is negative\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(selector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"-999\",\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\texpect(wrapper.find(\"button\").last().prop(\"disabled\")).to.be.true;\n\t\t});\n\t});\n\tdescribe(\"Lock dimensions\", () => {\n\t\tconst label = \"Lock dimensions\";\n\t\tconst appDataKey = \"resizable\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, false);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Position\", () => {\n\t\tit(\"should save correctly when edited\", () => {\n\t\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"submitFn\");\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\t\twrapper.find(\".position-entry [role='combobox']\").simulate(\"click\");\n\t\t\twrapper.find(\".position-entry .finsemble-dropdown__btn-option\").at(4).simulate(\"click\");\n\n\t\t\tconst collection = wrapper.find(\"button\");\n\t\t\tcollection.at(collection.length - 1).simulate(\"click\");\n\t\t\texpect(buttonSpy.args[0][0]).to.deep.equal({\n\t\t\t\t...defaults,\n\t\t\t\tabstractPosition: 4,\n\t\t\t});\n\t\t});\n\t\tit(\"should display pre-set values\", () => {\n\t\t\tconst args = {\n\t\t\t\t...Page.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...Page.args?.appData,\n\t\t\t\t\tabstractPosition: 5,\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<Page {...(args as AppEditPageProps)} />);\n\n\t\t\texpect(wrapper.find(\".position-entry .finsemble-dropdown__btn-label\").text()).to.equal(\"Center\");\n\t\t});\n\t});\n\tdescribe(\"Opacity\", () => {\n\t\tconst appDataKey = \"opacity\";\n\t\tconst rangeSelector = \".app-edit-range\";\n\t\tconst inputSelector = \"#app-opacity\";\n\t\tit(\"should display correctly when preset (input range)\", () => {\n\t\t\ttestPresetInputValue(appDataKey, rangeSelector, Page, \"30\");\n\t\t});\n\t\tit(\"should display correctly when preset (input field)\", () => {\n\t\t\tconst args = {\n\t\t\t\t...Page.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...Page.args?.appData,\n\t\t\t\t\t[appDataKey]: 0.3,\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<Page {...args} />);\n\n\t\t\texpect(wrapper.find(inputSelector).prop(\"value\")).to.equal(30);\n\t\t});\n\t\tit(\"should save correctly when edited (input range)\", () => {\n\t\t\ttestSaveInputValue(appDataKey, rangeSelector, false, 30);\n\t\t});\n\t\tit(\"should save correctly when edited (input field) - value saved is 1/100 of what is entered\", () => {\n\t\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"submitFn\");\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(inputSelector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: 30,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\tconst collection = wrapper.find(\"button\");\n\t\t\tcollection.at(collection.length - 1).simulate(\"click\");\n\t\t\texpect(buttonSpy.args[0][0]).to.deep.equal({\n\t\t\t\t...defaults,\n\t\t\t\t[appDataKey]: 0.3,\n\t\t\t});\n\t\t});\n\t\tit(\"When editing the range field, the text box updates\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(inputSelector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: 70,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\texpect(wrapper.find(rangeSelector).prop(\"value\")).to.equal(0.7);\n\t\t});\n\t\tit(\"When editing the text box, the range field updates\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(rangeSelector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: 0.7,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\texpect(wrapper.find(inputSelector).prop(\"value\")).to.equal(70);\n\t\t});\n\t});\n\tdescribe(\"Auto arrange\", () => {\n\t\tconst label = \"Auto arrange\";\n\t\tconst appDataKey = \"allowAutoArrange\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Grouping\", () => {\n\t\tconst label = \"Grouping\";\n\t\tconst appDataKey = \"allowGrouping\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Snapping\", () => {\n\t\tconst label = \"Snapping\";\n\t\tconst appDataKey = \"allowSnapping\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Tabs\", () => {\n\t\tconst label = \"Tabs\";\n\t\tconst appDataKey = \"allowTabbing\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Tiling\", () => {\n\t\tconst label = \"Tiling\";\n\t\tconst appDataKey = \"allowTiling\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Show title bar\", () => {\n\t\tconst label = \"Show title bar\";\n\t\tconst appDataKey = \"enableTitleBar\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Always on top\", () => {\n\t\tconst name = \"alwaysOnTop\";\n\t\tconst enableParams = {\n\t\t\talwaysOnTop: true,\n\t\t\tenableAOT: false,\n\t\t};\n\t\tconst showParams = {\n\t\t\talwaysOnTop: false,\n\t\t\tenableAOT: true,\n\t\t};\n\t\tconst disableParams = {\n\t\t\talwaysOnTop: false,\n\t\t\tenableAOT: false,\n\t\t};\n\t\tit(\"should display correctly when preset: Enable\", () => {\n\t\t\tpresetRadioButtons(name, enableParams, [true, false, false]);\n\t\t});\n\t\tit(\"should display correctly when preset: Show in titlebar\", () => {\n\t\t\tpresetRadioButtons(name, showParams, [false, true, false]);\n\t\t});\n\t\tit(\"should display correctly when preset: Disable\", () => {\n\t\t\tpresetRadioButtons(name, disableParams, [false, false, true]);\n\t\t});\n\t\tit(\"should save correctly when edited: Enable\", () => {\n\t\t\tsaveRadioButton(name, 0, enableParams);\n\t\t});\n\t\tit(\"should save correctly when edited: Show in titlebar\", () => {\n\t\t\tsaveRadioButton(name, 1, showParams);\n\t\t});\n\t\tit(\"should save correctly when edited: Disable\", () => {\n\t\t\tsaveRadioButton(name, 2, disableParams);\n\t\t});\n\t\tit(\"confirm that the radio buttons stay independent\", () => {\n\t\t\tcheckUniqueRadioButtons(name, 3);\n\t\t});\n\t});\n\tdescribe(\"Minimize\", () => {\n\t\tconst name = \"minimize\";\n\t\tconst enableParams = {\n\t\t\tallowMinimize: true,\n\t\t\thideMinimize: false,\n\t\t};\n\t\tconst hideParams = {\n\t\t\tallowMinimize: true,\n\t\t\thideMinimize: true,\n\t\t};\n\t\tconst disableParams = {\n\t\t\tallowMinimize: false,\n\t\t\thideMinimize: true,\n\t\t};\n\t\tit(\"should display correctly when preset: Enable\", () => {\n\t\t\tpresetRadioButtons(name, enableParams, [true, false, false]);\n\t\t});\n\t\tit(\"should display correctly when preset: Hide from titlebar\", () => {\n\t\t\tpresetRadioButtons(name, hideParams, [false, true, false]);\n\t\t});\n\t\tit(\"should display correctly when preset: Disable\", () => {\n\t\t\tpresetRadioButtons(name, disableParams, [false, false, true]);\n\t\t});\n\t\tit(\"should save correctly when edited: Enable\", () => {\n\t\t\tsaveRadioButton(name, 0, enableParams);\n\t\t});\n\t\tit(\"should save correctly when edited: Hide from titlebar\", () => {\n\t\t\tsaveRadioButton(name, 1, hideParams);\n\t\t});\n\t\tit(\"should save correctly when edited: Disable\", () => {\n\t\t\tsaveRadioButton(name, 2, disableParams);\n\t\t});\n\t\tit(\"confirm that the radio buttons stay independent\", () => {\n\t\t\tcheckUniqueRadioButtons(name, 3);\n\t\t});\n\t});\n\tdescribe(\"Maximize\", () => {\n\t\tconst name = \"maximize\";\n\t\tconst enableParams = {\n\t\t\tallowMaximize: true,\n\t\t\thideMaximize: false,\n\t\t};\n\t\tconst hideParams = {\n\t\t\tallowMaximize: true,\n\t\t\thideMaximize: true,\n\t\t};\n\t\tconst disableParams = {\n\t\t\tallowMaximize: false,\n\t\t\thideMaximize: true,\n\t\t};\n\t\tit(\"should display correctly when preset: Enable\", () => {\n\t\t\tpresetRadioButtons(name, enableParams, [true, false, false]);\n\t\t});\n\t\tit(\"should display correctly when preset: Hide from titlebar\", () => {\n\t\t\tpresetRadioButtons(name, hideParams, [false, true, false]);\n\t\t});\n\t\tit(\"should display correctly when preset: Disable\", () => {\n\t\t\tpresetRadioButtons(name, disableParams, [false, false, true]);\n\t\t});\n\t\tit(\"should save correctly when edited: Enable\", () => {\n\t\t\tsaveRadioButton(name, 0, enableParams);\n\t\t});\n\t\tit(\"should save correctly when edited: Hide from titlebar\", () => {\n\t\t\tsaveRadioButton(name, 1, hideParams);\n\t\t});\n\t\tit(\"should save correctly when edited: Disable\", () => {\n\t\t\tsaveRadioButton(name, 2, disableParams);\n\t\t});\n\t\tit(\"confirm that the radio buttons stay independent\", () => {\n\t\t\tcheckUniqueRadioButtons(name, 3);\n\t\t});\n\t});\n\tdescribe(\"Close\", () => {\n\t\tconst name = \"close\";\n\t\tconst enableParams = {\n\t\t\thideClose: false,\n\t\t};\n\t\tconst disableParams = {\n\t\t\thideClose: true,\n\t\t};\n\t\tit(\"should display correctly when preset: Enable\", () => {\n\t\t\tpresetRadioButtons(name, enableParams, [true, false]);\n\t\t});\n\t\tit(\"should display correctly when preset: Disable\", () => {\n\t\t\tpresetRadioButtons(name, disableParams, [false, true]);\n\t\t});\n\t\tit(\"should save correctly when edited: Enable\", () => {\n\t\t\tsaveRadioButton(name, 0, enableParams);\n\t\t});\n\t\tit(\"should save correctly when edited: Disable\", () => {\n\t\t\tsaveRadioButton(name, 1, disableParams);\n\t\t});\n\t\tit(\"confirm that the radio buttons stay independent\", () => {\n\t\t\tcheckUniqueRadioButtons(name, 2);\n\t\t});\n\t});\n\tdescribe(\"Display linker\", () => {\n\t\tconst name = \"linker\";\n\t\tconst enableParams = {\n\t\t\tautoConnect: true,\n\t\t};\n\t\tconst disableParams = {\n\t\t\tautoConnect: false,\n\t\t};\n\t\tit(\"should display correctly when preset: Always\", () => {\n\t\t\tpresetRadioButtons(name, enableParams, [true, false]);\n\t\t});\n\t\tit(\"should display correctly when preset: FDC3 API use\", () => {\n\t\t\tpresetRadioButtons(name, disableParams, [false, true]);\n\t\t});\n\t\tit(\"should save correctly when edited: Always\", () => {\n\t\t\tsaveRadioButton(name, 0, enableParams);\n\t\t});\n\t\tit(\"should save correctly when edited: FDC3 API use\", () => {\n\t\t\tsaveRadioButton(name, 1, disableParams);\n\t\t});\n\t\tit(\"confirm that the radio buttons stay independent\", () => {\n\t\t\tcheckUniqueRadioButtons(name, 2);\n\t\t});\n\t});\n\tdescribe(\"Intents\", () => {\n\t\tit(\"should save correctly when edited (adding an intent)\", () => {\n\t\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"submitFn\");\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(\".inputTable input\")\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"ViewChart\",\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\twrapper\n\t\t\t\t.find(\".inputTable input\")\n\t\t\t\t.at(1)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"View Chart\",\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\twrapper\n\t\t\t\t.find(\".inputTable input\")\n\t\t\t\t.at(2)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"fdc3.instrument\",\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\tconst collection = wrapper.find(\"button\");\n\t\t\tcollection.at(collection.length - 1).simulate(\"click\");\n\t\t\texpect(buttonSpy.args[0][0]).to.deep.equal({\n\t\t\t\t...defaults,\n\t\t\t\tintents: [{ name: \"ViewChart\", displayName: \"View Chart\", contexts: [\"fdc3.instrument\"] }],\n\t\t\t});\n\t\t});\n\t\tit(\"should save correctly when edited (adding just an intent name)\", () => {\n\t\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"submitFn\");\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(\".inputTable input\")\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"ViewChart\",\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\tconst collection = wrapper.find(\"button\");\n\t\t\tcollection.at(collection.length - 1).simulate(\"click\");\n\t\t\texpect(buttonSpy.args[0][0]).to.deep.equal({\n\t\t\t\t...defaults,\n\t\t\t\tintents: [{ name: \"ViewChart\", displayName: \"\", contexts: [\"\"] }],\n\t\t\t});\n\t\t});\n\t\tit(\"should save correctly when edited (removing an intent)\", () => {\n\t\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"submitFn\");\n\t\t\tconst args = {\n\t\t\t\t...Page.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...Page.args?.appData,\n\t\t\t\t\tintents: [{ name: \"ViewChart\", displayName: \"View Chart\", contexts: [\"fdc3.instrument\"] }],\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<Page {...(args as AppEditPageProps)} />);\n\t\t\twrapper.find(\".inputTable button[title='Remove row']\").at(0).simulate(\"click\");\n\n\t\t\tconst collection = wrapper.find(\"button\");\n\t\t\tcollection.at(collection.length - 1).simulate(\"click\");\n\t\t\texpect(buttonSpy.args[0][0]).to.deep.equal({\n\t\t\t\t...defaults,\n\t\t\t\tintents: [],\n\t\t\t});\n\t\t});\n\t\tit(\"should display preset values (empty list of intents)\", () => {\n\t\t\tconst args = {\n\t\t\t\t...Page.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...Page.args?.appData,\n\t\t\t\t\tintents: [],\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<Page {...(args as AppEditPageProps)} />);\n\n\t\t\texpect(wrapper.find(\".inputTable tr\"), \"List of rows\").to.be.lengthOf(2);\n\t\t\texpect(wrapper.find(\".inputTable input\").at(0).prop(\"value\"), \"Intent table, input field 1\").to.be.empty;\n\t\t\texpect(wrapper.find(\".inputTable input\").at(1).prop(\"value\"), \"Intent table, input field 2\").to.be.empty;\n\t\t\texpect(wrapper.find(\".inputTable input\").at(2).prop(\"value\"), \"Intent table, input field 3\").to.be.empty;\n\t\t});\n\t\tit(\"should display preset values (with 1 intent)\", () => {\n\t\t\tconst args = {\n\t\t\t\t...Page.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...Page.args?.appData,\n\t\t\t\t\tintents: [{ name: \"ViewChart\", displayName: \"View Chart\", contexts: [\"fdc3.instrument\"] }],\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<Page {...(args as AppEditPageProps)} />);\n\n\t\t\texpect(wrapper.find(\".inputTable tr\"), \"List of rows\").to.be.lengthOf(3);\n\t\t\texpect(wrapper.find(\".inputTable input\").at(0).prop(\"value\"), \"Intent table, input field 1\").to.equal(\n\t\t\t\t\"ViewChart\"\n\t\t\t);\n\t\t\texpect(wrapper.find(\".inputTable input\").at(1).prop(\"value\"), \"Intent table, input field 2\").to.equal(\n\t\t\t\t\"View Chart\"\n\t\t\t);\n\t\t\texpect(wrapper.find(\".inputTable input\").at(2).prop(\"value\"), \"Intent table, input field 3\").to.equal(\n\t\t\t\t\"fdc3.instrument\"\n\t\t\t);\n\t\t\texpect(wrapper.find(\".inputTable input\").at(3).prop(\"value\"), \"Intent table, input field 4\").to.be.empty;\n\t\t\texpect(wrapper.find(\".inputTable input\").at(4).prop(\"value\"), \"Intent table, input field 5\").to.be.empty;\n\t\t\texpect(wrapper.find(\".inputTable input\").at(5).prop(\"value\"), \"Intent table, input field 6\").to.be.empty;\n\t\t});\n\t\tit(\"should display preset values (multiple contexts for an intent)\", () => {\n\t\t\tconst args = {\n\t\t\t\t...Page.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...Page.args?.appData,\n\t\t\t\t\tintents: [{ name: \"ViewChart\", displayName: \"View Chart\", contexts: [\"fdc3.instrument\", \"custom.symbol\"] }],\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<Page {...(args as AppEditPageProps)} />);\n\n\t\t\texpect(wrapper.find(\".inputTable tr\"), \"List of rows\").to.be.lengthOf(3);\n\t\t\texpect(wrapper.find(\".inputTable input\").at(0).prop(\"value\"), \"Intent table, input field 1\").to.equal(\n\t\t\t\t\"ViewChart\"\n\t\t\t);\n\t\t\texpect(wrapper.find(\".inputTable input\").at(1).prop(\"value\"), \"Intent table, input field 2\").to.equal(\n\t\t\t\t\"View Chart\"\n\t\t\t);\n\t\t\texpect(wrapper.find(\".inputTable input\").at(2).prop(\"value\"), \"Intent table, input field 3\").to.equal(\n\t\t\t\t\"fdc3.instrument, custom.symbol\"\n\t\t\t);\n\t\t});\n\t});\n\tdescribe(\"Set security\", () => {\n\t\tconst name = \"security\";\n\t\tconst enableParams = {\n\t\t\tsecurity: \"trusted\",\n\t\t};\n\t\tconst disableParams = {\n\t\t\tsecurity: \"untrusted\",\n\t\t};\n\t\tit(\"should display correctly when preset: Trusted\", () => {\n\t\t\tpresetRadioButtons(name, enableParams, [true, false]);\n\t\t});\n\t\tit(\"should display correctly when preset: Untrusted\", () => {\n\t\t\tpresetRadioButtons(name, disableParams, [false, true]);\n\t\t});\n\t\tit(\"should save correctly when edited: Trusted\", () => {\n\t\t\tsaveRadioButton(name, 0, enableParams);\n\t\t});\n\t\tit.skip(\"should save correctly when edited: Untrusted\", () => {\n\t\t\tsaveRadioButton(name, 1, disableParams);\n\t\t});\n\t\tit.skip(\"confirm that the radio buttons stay independent\", () => {\n\t\t\tcheckUniqueRadioButtons(name, 2);\n\t\t});\n\t});\n\tdescribe(\"Launch timeout\", () => {\n\t\tconst appDataKey = \"native_windowSpawnTimeout\";\n\t\tconst selector = \"#launch-timeout\";\n\t\tit(\"should save correctly when edited\", () => {\n\t\t\ttestSaveInputValue(appDataKey, selector, true, 200);\n\t\t});\n\t\tit(\"should display pre-set values\", () => {\n\t\t\ttestPresetInputValue(appDataKey, selector, NativePage, \"200\");\n\t\t});\n\t});\n\tdescribe(\"Only one instance\", () => {\n\t\tconst label = \"Only one instance\";\n\t\tconst appDataKey = \"singleton\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Launch at startup\", () => {\n\t\tconst label = \"Launch at startup\";\n\t\tconst appDataKey = \"spawnOnStartup\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Include in Apps menu\", () => {\n\t\tconst label = \"Include in Apps menu\";\n\t\tconst appDataKey = \"launchableByUser\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Persist across workspaces\", () => {\n\t\tconst label = \"Persist across workspaces\";\n\t\tconst appDataKey = \"isEvergreen\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Add to workspaces\", () => {\n\t\tconst label = \"Add to workspace\";\n\t\tconst appDataKey = \"addToWorkspace\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Persist the location\", () => {\n\t\tconst label = \"Persist the location\";\n\t\tconst appDataKey = \"persistURL\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n});\n"]}