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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (787) hide show
  1. package/package.json +13 -11
  2. package/react/actions/favoriteActions.d.ts +1 -0
  3. package/react/actions/favoriteActions.js +1 -0
  4. package/react/actions/favoriteActions.js.map +1 -1
  5. package/react/actions/menuActions.d.ts +1 -0
  6. package/react/actions/menuActions.js +1 -0
  7. package/react/actions/menuActions.js.map +1 -1
  8. package/react/actions/rootActions.d.ts +1 -0
  9. package/react/actions/rootActions.js +1 -0
  10. package/react/actions/rootActions.js.map +1 -1
  11. package/react/actions/searchActions.d.ts +1 -0
  12. package/react/actions/searchActions.js +1 -0
  13. package/react/actions/searchActions.js.map +1 -1
  14. package/react/actions/toolbarActions.d.ts +34 -0
  15. package/react/actions/toolbarActions.js +17 -0
  16. package/react/actions/toolbarActions.js.map +1 -1
  17. package/react/actions/workspaceActions.d.ts +1 -0
  18. package/react/actions/workspaceActions.js +1 -0
  19. package/react/actions/workspaceActions.js.map +1 -1
  20. package/react/assets/css/advancedAppLauncher.css +22 -19
  21. package/react/assets/css/appCatalog.css +67 -72
  22. package/react/assets/css/authentication.css +4 -3
  23. package/react/assets/css/button.css +3 -10
  24. package/react/assets/css/core/formElements.css +1 -1
  25. package/react/assets/css/core/icons.css +3 -2
  26. package/react/assets/css/core/notifications.css +2 -2
  27. package/react/assets/css/core/windowFrame.css +9 -9
  28. package/react/assets/css/dashbar.css +1 -1
  29. package/react/assets/css/defaultTheme.css +9 -53
  30. package/react/assets/css/dialogs.css +13 -11
  31. package/react/assets/css/favorites.css +3 -1
  32. package/react/assets/css/finsemble.css +3 -2
  33. package/react/assets/css/font-finance.css +233 -120
  34. package/react/assets/css/fonts/Open_Sans/OpenSans-Definition.css +10 -10
  35. package/react/assets/css/linkerWindow.css +2 -2
  36. package/react/assets/css/menus.css +10 -10
  37. package/react/assets/css/notificationsCenter.css +16 -31
  38. package/react/assets/css/processMonitor.css +7 -4
  39. package/react/assets/css/search.css +1 -1
  40. package/react/assets/css/shared/animations.css +10 -4
  41. package/react/assets/css/shared/common.css +2 -2
  42. package/react/assets/css/tags.css +10 -10
  43. package/react/assets/css/toolbar.css +22 -19
  44. package/react/assets/css/userPreferences.css +12 -14
  45. package/react/assets/css/windowTitleBar.css +75 -36
  46. package/react/componentTemplateGenerator.js +3 -2
  47. package/react/componentTemplateGenerator.js.map +1 -1
  48. package/react/components/FinsembleProvider.d.ts +7 -0
  49. package/react/components/FinsembleProvider.js +2 -0
  50. package/react/components/FinsembleProvider.js.map +1 -1
  51. package/react/components/appCatalog/AppCatalog.d.ts +4 -0
  52. package/react/components/appCatalog/AppCatalog.js +4 -0
  53. package/react/components/appCatalog/AppCatalog.js.map +1 -1
  54. package/react/components/appCatalog/AppCatalogComponent.d.ts +58 -0
  55. package/react/components/appCatalog/AppCatalogComponent.js +70 -1
  56. package/react/components/appCatalog/AppCatalogComponent.js.map +1 -1
  57. package/react/components/appCatalog/components/AppCard.d.ts +35 -0
  58. package/react/components/appCatalog/components/AppCard.js +42 -0
  59. package/react/components/appCatalog/components/AppCard.js.map +1 -1
  60. package/react/components/appCatalog/components/AppResults.d.ts +10 -0
  61. package/react/components/appCatalog/components/AppResults.js +24 -0
  62. package/react/components/appCatalog/components/AppResults.js.map +1 -1
  63. package/react/components/appCatalog/components/Carousel.d.ts +26 -0
  64. package/react/components/appCatalog/components/Carousel.js +34 -0
  65. package/react/components/appCatalog/components/Carousel.js.map +1 -1
  66. package/react/components/appCatalog/components/EmptyResults.d.ts +4 -0
  67. package/react/components/appCatalog/components/EmptyResults.js +8 -0
  68. package/react/components/appCatalog/components/EmptyResults.js.map +1 -1
  69. package/react/components/appCatalog/components/Hero.d.ts +15 -0
  70. package/react/components/appCatalog/components/Hero.js +15 -0
  71. package/react/components/appCatalog/components/Hero.js.map +1 -1
  72. package/react/components/appCatalog/components/Home.d.ts +6 -4
  73. package/react/components/appCatalog/components/Home.js +10 -0
  74. package/react/components/appCatalog/components/Home.js.map +1 -1
  75. package/react/components/appCatalog/components/SearchBar.d.ts +31 -0
  76. package/react/components/appCatalog/components/SearchBar.js +33 -0
  77. package/react/components/appCatalog/components/SearchBar.js.map +1 -1
  78. package/react/components/appCatalog/components/Showcase/AppDescription.d.ts +5 -0
  79. package/react/components/appCatalog/components/Showcase/AppDescription.js +9 -0
  80. package/react/components/appCatalog/components/Showcase/AppDescription.js.map +1 -1
  81. package/react/components/appCatalog/components/Showcase/AppDevNotes.d.ts +7 -0
  82. package/react/components/appCatalog/components/Showcase/AppDevNotes.js +15 -0
  83. package/react/components/appCatalog/components/Showcase/AppDevNotes.js.map +1 -1
  84. package/react/components/appCatalog/components/Showcase/AppShowcase.d.ts +17 -0
  85. package/react/components/appCatalog/components/Showcase/AppShowcase.js +25 -0
  86. package/react/components/appCatalog/components/Showcase/AppShowcase.js.map +1 -1
  87. package/react/components/appCatalog/components/Showcase/Header.d.ts +7 -0
  88. package/react/components/appCatalog/components/Showcase/Header.js +12 -0
  89. package/react/components/appCatalog/components/Showcase/Header.js.map +1 -1
  90. package/react/components/appCatalog/components/Showcase/ImageCarousel.d.ts +7 -0
  91. package/react/components/appCatalog/components/Showcase/ImageCarousel.js +11 -0
  92. package/react/components/appCatalog/components/Showcase/ImageCarousel.js.map +1 -1
  93. package/react/components/appCatalog/components/Showcase/Modal.d.ts +10 -0
  94. package/react/components/appCatalog/components/Showcase/Modal.js +10 -0
  95. package/react/components/appCatalog/components/Showcase/Modal.js.map +1 -1
  96. package/react/components/appCatalog/components/Showcase/ReleaseNotes.d.ts +5 -0
  97. package/react/components/appCatalog/components/Showcase/ReleaseNotes.js +9 -0
  98. package/react/components/appCatalog/components/Showcase/ReleaseNotes.js.map +1 -1
  99. package/react/components/appCatalog/components/Showcase/SupportNotes.d.ts +6 -0
  100. package/react/components/appCatalog/components/Showcase/SupportNotes.js +11 -0
  101. package/react/components/appCatalog/components/Showcase/SupportNotes.js.map +1 -1
  102. package/react/components/appCatalog/components/Showcase/VersionNotes.d.ts +5 -0
  103. package/react/components/appCatalog/components/Showcase/VersionNotes.js +9 -0
  104. package/react/components/appCatalog/components/Showcase/VersionNotes.js.map +1 -1
  105. package/react/components/appCatalog/components/Tag.d.ts +6 -0
  106. package/react/components/appCatalog/components/Tag.js +10 -0
  107. package/react/components/appCatalog/components/Tag.js.map +1 -1
  108. package/react/components/appCatalog/components/Toast.d.ts +5 -0
  109. package/react/components/appCatalog/components/Toast.js +9 -0
  110. package/react/components/appCatalog/components/Toast.js.map +1 -1
  111. package/react/components/appCatalog/components/helpers.js +1 -0
  112. package/react/components/appCatalog/components/helpers.js.map +1 -1
  113. package/react/components/appCatalog/modules/AppDirectory.d.ts +5 -0
  114. package/react/components/appCatalog/modules/AppDirectory.js +5 -0
  115. package/react/components/appCatalog/modules/AppDirectory.js.map +1 -1
  116. package/react/components/appCatalog/modules/FDC3.d.ts +37 -0
  117. package/react/components/appCatalog/modules/FDC3.js +40 -0
  118. package/react/components/appCatalog/modules/FDC3.js.map +1 -1
  119. package/react/components/appCatalog/stores/appStore.js +1 -0
  120. package/react/components/appCatalog/stores/appStore.js.map +1 -1
  121. package/react/components/appCatalog/stores/storeActions.d.ts +91 -0
  122. package/react/components/appCatalog/stores/storeActions.js +116 -1
  123. package/react/components/appCatalog/stores/storeActions.js.map +1 -1
  124. package/react/components/common/Checkbox.d.ts +1 -0
  125. package/react/components/common/Checkbox.js +2 -2
  126. package/react/components/common/Checkbox.js.map +1 -1
  127. package/react/components/common/ColorPicker.d.ts +5 -0
  128. package/react/components/common/ColorPicker.js +40 -0
  129. package/react/components/common/ColorPicker.js.map +1 -1
  130. package/react/components/common/DropZone.d.ts +11 -0
  131. package/react/components/common/DropZone.js +21 -1
  132. package/react/components/common/DropZone.js.map +1 -1
  133. package/react/components/common/DropdownButton.d.ts +4 -0
  134. package/react/components/common/DropdownButton.js +4 -0
  135. package/react/components/common/DropdownButton.js.map +1 -1
  136. package/react/components/common/ErrorBoundary.d.ts +18 -0
  137. package/react/components/common/ErrorBoundary.js +21 -0
  138. package/react/components/common/ErrorBoundary.js.map +1 -1
  139. package/react/components/common/FileInput.d.ts +8 -1
  140. package/react/components/common/FileInput.js +19 -4
  141. package/react/components/common/FileInput.js.map +1 -1
  142. package/react/components/common/FinsembleIcon.d.ts +10 -0
  143. package/react/components/common/FinsembleIcon.js +51 -2
  144. package/react/components/common/FinsembleIcon.js.map +1 -1
  145. package/react/components/common/FinsembleSelect.js +5 -1
  146. package/react/components/common/FinsembleSelect.js.map +1 -1
  147. package/react/components/common/FinsembleToggleButtonBar.js +1 -1
  148. package/react/components/common/FinsembleToggleButtonBar.js.map +1 -1
  149. package/react/components/common/InputTable.d.ts +7 -0
  150. package/react/components/common/InputTable.js +7 -0
  151. package/react/components/common/InputTable.js.map +1 -1
  152. package/react/components/common/Tab.js +3 -0
  153. package/react/components/common/Tab.js.map +1 -1
  154. package/react/components/common/TimeSelect.js +24 -0
  155. package/react/components/common/TimeSelect.js.map +1 -1
  156. package/react/components/common/Tooltip.js +2 -0
  157. package/react/components/common/Tooltip.js.map +1 -1
  158. package/react/components/common/css/accordion.css +9 -6
  159. package/react/components/common/css/application-edit-page.css +39 -44
  160. package/react/components/common/css/button.css +10 -5
  161. package/react/components/common/css/color-picker.css +3 -3
  162. package/react/components/common/css/drop-zone.css +2 -6
  163. package/react/components/common/css/file-input.css +5 -5
  164. package/react/components/common/css/header.css +3 -2
  165. package/react/components/common/css/icon.css +1 -1
  166. package/react/components/common/css/loading-spinner.css +7 -12
  167. package/react/components/common/css/selector.css +4 -4
  168. package/react/components/common/css/styles.css +22 -16
  169. package/react/components/common/css/tab.css +8 -8
  170. package/react/components/common/css/time-select.css +1 -0
  171. package/react/components/common/css/toggle.css +4 -4
  172. package/react/components/common/css/tooltip.css +2 -3
  173. package/react/components/common/file_helpers.js +2 -0
  174. package/react/components/common/file_helpers.js.map +1 -1
  175. package/react/components/common/helpers.js +1 -0
  176. package/react/components/common/helpers.js.map +1 -1
  177. package/react/components/common/stories/ColorPicker.stories.js +3 -0
  178. package/react/components/common/stories/ColorPicker.stories.js.map +1 -1
  179. package/react/components/common/stories/FileInput.stories.d.ts +3 -1
  180. package/react/components/common/stories/FileInput.stories.js +12 -0
  181. package/react/components/common/stories/FileInput.stories.js.map +1 -1
  182. package/react/components/common/tests/Accordion.spec.js +6 -0
  183. package/react/components/common/tests/Accordion.spec.js.map +1 -1
  184. package/react/components/common/tests/Checkbox.spec.js +1 -0
  185. package/react/components/common/tests/Checkbox.spec.js.map +1 -1
  186. package/react/components/common/tests/ColorPicker.spec.js +6 -0
  187. package/react/components/common/tests/ColorPicker.spec.js.map +1 -1
  188. package/react/components/common/tests/DropZone.spec.js +1 -0
  189. package/react/components/common/tests/DropZone.spec.js.map +1 -1
  190. package/react/components/common/tests/FileInput.spec.js +22 -0
  191. package/react/components/common/tests/FileInput.spec.js.map +1 -1
  192. package/react/components/common/tests/FinsembleSelect.spec.js +1 -0
  193. package/react/components/common/tests/FinsembleSelect.spec.js.map +1 -1
  194. package/react/components/common/tests/FinsembleToggle.spec.js +1 -0
  195. package/react/components/common/tests/FinsembleToggle.spec.js.map +1 -1
  196. package/react/components/common/tests/FinsembleToggleButtonBar.spec.js +1 -0
  197. package/react/components/common/tests/FinsembleToggleButtonBar.spec.js.map +1 -1
  198. package/react/components/common/tests/TimeSelect.spec.js +4 -0
  199. package/react/components/common/tests/TimeSelect.spec.js.map +1 -1
  200. package/react/components/common/tests/Tooltip.spec.js +16 -0
  201. package/react/components/common/tests/Tooltip.spec.js.map +1 -1
  202. package/react/components/favorites/FavoriteMaker.d.ts +8 -0
  203. package/react/components/favorites/FavoriteMaker.js +9 -0
  204. package/react/components/favorites/FavoriteMaker.js.map +1 -1
  205. package/react/components/favorites/FavoritesShell.d.ts +4 -0
  206. package/react/components/favorites/FavoritesShell.js +13 -1
  207. package/react/components/favorites/FavoritesShell.js.map +1 -1
  208. package/react/components/favorites/FavoritesShell.spec.js +3 -0
  209. package/react/components/favorites/FavoritesShell.spec.js.map +1 -1
  210. package/react/components/fdc3Resolver/ResolverContainer.js +8 -0
  211. package/react/components/fdc3Resolver/ResolverContainer.js.map +1 -1
  212. package/react/components/fdc3Resolver/ResolverDialog.css +16 -3
  213. package/react/components/fdc3Resolver/ResolverDialog.js +7 -2
  214. package/react/components/fdc3Resolver/ResolverDialog.js.map +1 -1
  215. package/react/components/fdc3Resolver/ResolverDialog.spec.js +3 -2
  216. package/react/components/fdc3Resolver/ResolverDialog.spec.js.map +1 -1
  217. package/react/components/fdc3Resolver/ResolverDialog.stories.js +2 -0
  218. package/react/components/fdc3Resolver/ResolverDialog.stories.js.map +1 -1
  219. package/react/components/icon/Icon.d.ts +13 -0
  220. package/react/components/icon/Icon.js +34 -0
  221. package/react/components/icon/Icon.js.map +1 -1
  222. package/react/components/legacyControls/FinsembleDialog.d.ts +4 -0
  223. package/react/components/legacyControls/FinsembleDialog.js +15 -0
  224. package/react/components/legacyControls/FinsembleDialog.js.map +1 -1
  225. package/react/components/legacyControls/FinsembleDialogButton.d.ts +3 -0
  226. package/react/components/legacyControls/FinsembleDialogButton.js +6 -1
  227. package/react/components/legacyControls/FinsembleDialogButton.js.map +1 -1
  228. package/react/components/legacyControls/FinsembleDialogQuestion.d.ts +7 -0
  229. package/react/components/legacyControls/FinsembleDialogQuestion.js +7 -0
  230. package/react/components/legacyControls/FinsembleDialogQuestion.js.map +1 -1
  231. package/react/components/legacyControls/FinsembleDialogTextInput.d.ts +3 -0
  232. package/react/components/legacyControls/FinsembleDialogTextInput.js +14 -0
  233. package/react/components/legacyControls/FinsembleDialogTextInput.js.map +1 -1
  234. package/react/components/legacyControls/FinsembleDnDContext.d.ts +19 -0
  235. package/react/components/legacyControls/FinsembleDnDContext.js +126 -1
  236. package/react/components/legacyControls/FinsembleDnDContext.js.map +1 -1
  237. package/react/components/legacyControls/FinsembleDraggable.d.ts +3 -0
  238. package/react/components/legacyControls/FinsembleDraggable.js +3 -0
  239. package/react/components/legacyControls/FinsembleDraggable.js.map +1 -1
  240. package/react/components/legacyControls/FinsembleHoverDetector.d.ts +15 -0
  241. package/react/components/legacyControls/FinsembleHoverDetector.js +26 -1
  242. package/react/components/legacyControls/FinsembleHoverDetector.js.map +1 -1
  243. package/react/components/legacyControls/FinsembleMenuSection.d.ts +4 -0
  244. package/react/components/legacyControls/FinsembleMenuSection.js +38 -0
  245. package/react/components/legacyControls/FinsembleMenuSection.js.map +1 -1
  246. package/react/components/legacyControls/tests/FinsembleDialogButton.spec.js +1 -0
  247. package/react/components/legacyControls/tests/FinsembleDialogButton.spec.js.map +1 -1
  248. package/react/components/legacyControls/tests/FinsembleDialogTextInput.spec.js +1 -0
  249. package/react/components/legacyControls/tests/FinsembleDialogTextInput.spec.js.map +1 -1
  250. package/react/components/linker/LinkerMenu.d.ts +3 -0
  251. package/react/components/linker/LinkerMenu.js +21 -0
  252. package/react/components/linker/LinkerMenu.js.map +1 -1
  253. package/react/components/linker/LinkerMenuDeprecated.d.ts +3 -0
  254. package/react/components/linker/LinkerMenuDeprecated.js +9 -0
  255. package/react/components/linker/LinkerMenuDeprecated.js.map +1 -1
  256. package/react/components/menu/Menu.d.ts +15 -0
  257. package/react/components/menu/Menu.js +15 -0
  258. package/react/components/menu/Menu.js.map +1 -1
  259. package/react/components/menu/MenuAutoResizer.d.ts +7 -0
  260. package/react/components/menu/MenuAutoResizer.js +27 -0
  261. package/react/components/menu/MenuAutoResizer.js.map +1 -1
  262. package/react/components/menu/MenuContent.d.ts +4 -0
  263. package/react/components/menu/MenuContent.js +4 -0
  264. package/react/components/menu/MenuContent.js.map +1 -1
  265. package/react/components/menu/MenuHotKey.d.ts +14 -0
  266. package/react/components/menu/MenuHotKey.js +15 -0
  267. package/react/components/menu/MenuHotKey.js.map +1 -1
  268. package/react/components/menu/MenuItem.d.ts +8 -0
  269. package/react/components/menu/MenuItem.js +13 -2
  270. package/react/components/menu/MenuItem.js.map +1 -1
  271. package/react/components/menu/MenuPortal.js +112 -2
  272. package/react/components/menu/MenuPortal.js.map +1 -1
  273. package/react/components/menu/MenuShell.d.ts +16 -0
  274. package/react/components/menu/MenuShell.js +26 -0
  275. package/react/components/menu/MenuShell.js.map +1 -1
  276. package/react/components/menu/MenuToggle.d.ts +3 -0
  277. package/react/components/menu/MenuToggle.js +3 -0
  278. package/react/components/menu/MenuToggle.js.map +1 -1
  279. package/react/components/menu/keyboardNavigation.d.ts +12 -0
  280. package/react/components/menu/keyboardNavigation.js +55 -0
  281. package/react/components/menu/keyboardNavigation.js.map +1 -1
  282. package/react/components/menu/menuContext.d.ts +6 -0
  283. package/react/components/menu/menuContext.js +6 -0
  284. package/react/components/menu/menuContext.js.map +1 -1
  285. package/react/components/menu/menuHelpers.d.ts +22 -0
  286. package/react/components/menu/menuHelpers.js +58 -1
  287. package/react/components/menu/menuHelpers.js.map +1 -1
  288. package/react/components/notifications/components/drawer/DrawerControls.js +8 -0
  289. package/react/components/notifications/components/drawer/DrawerControls.js.map +1 -1
  290. package/react/components/notifications/components/drawer/DrawerHeader.js +5 -0
  291. package/react/components/notifications/components/drawer/DrawerHeader.js.map +1 -1
  292. package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js +18 -0
  293. package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js.map +1 -1
  294. package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js +3 -0
  295. package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js.map +1 -1
  296. package/react/components/notifications/components/shared/CheckButton.js +1 -1
  297. package/react/components/notifications/components/shared/CheckButton.js.map +1 -1
  298. package/react/components/notifications/components/shared/NotificationCardShell.d.ts +9 -0
  299. package/react/components/notifications/components/shared/NotificationCardShell.js +13 -6
  300. package/react/components/notifications/components/shared/NotificationCardShell.js.map +1 -1
  301. package/react/components/notifications/components/shared/OverflowMenu.d.ts +4 -0
  302. package/react/components/notifications/components/shared/OverflowMenu.js +16 -2
  303. package/react/components/notifications/components/shared/OverflowMenu.js.map +1 -1
  304. package/react/components/notifications/components/views/CardView.js +3 -0
  305. package/react/components/notifications/components/views/CardView.js.map +1 -1
  306. package/react/components/notifications/components/views/ListView.js +8 -0
  307. package/react/components/notifications/components/views/ListView.js.map +1 -1
  308. package/react/components/notifications/notificationsContext.d.ts +4 -0
  309. package/react/components/notifications/notificationsContext.js +4 -0
  310. package/react/components/notifications/notificationsContext.js.map +1 -1
  311. package/react/components/notifications/types.d.ts +3 -0
  312. package/react/components/notifications/utils.d.ts +4 -0
  313. package/react/components/notifications/utils.js +4 -0
  314. package/react/components/notifications/utils.js.map +1 -1
  315. package/react/components/processMonitor/ProcessMonitor.d.ts +3 -0
  316. package/react/components/processMonitor/ProcessMonitor.js +17 -2
  317. package/react/components/processMonitor/ProcessMonitor.js.map +1 -1
  318. package/react/components/processMonitor/components/ChildWindow.d.ts +3 -0
  319. package/react/components/processMonitor/components/ChildWindow.js +5 -0
  320. package/react/components/processMonitor/components/ChildWindow.js.map +1 -1
  321. package/react/components/processMonitor/components/ListHeader.d.ts +5 -0
  322. package/react/components/processMonitor/components/ListHeader.js +7 -0
  323. package/react/components/processMonitor/components/ListHeader.js.map +1 -1
  324. package/react/components/processMonitor/components/ProcessStatistics.js +12 -1
  325. package/react/components/processMonitor/components/ProcessStatistics.js.map +1 -1
  326. package/react/components/processMonitor/constants.js +6 -0
  327. package/react/components/processMonitor/constants.js.map +1 -1
  328. package/react/components/processMonitor/helpers.d.ts +13 -0
  329. package/react/components/processMonitor/helpers.js +23 -3
  330. package/react/components/processMonitor/helpers.js.map +1 -1
  331. package/react/components/processMonitor/stores/ProcessMonitorStore.d.ts +39 -0
  332. package/react/components/processMonitor/stores/ProcessMonitorStore.js +50 -0
  333. package/react/components/processMonitor/stores/ProcessMonitorStore.js.map +1 -1
  334. package/react/components/quickComponentForm/QuickComponentForm.d.ts +3 -0
  335. package/react/components/quickComponentForm/QuickComponentForm.js +20 -0
  336. package/react/components/quickComponentForm/QuickComponentForm.js.map +1 -1
  337. package/react/components/quickComponentForm/quickComponent.css +1 -1
  338. package/react/components/sdd/AddApp.d.ts +4 -2
  339. package/react/components/sdd/AddApp.js +57 -49
  340. package/react/components/sdd/AddApp.js.map +1 -1
  341. package/react/components/sdd/AppEditAccess.js +8 -0
  342. package/react/components/sdd/AppEditAccess.js.map +1 -1
  343. package/react/components/sdd/AppEditPage.d.ts +2 -1
  344. package/react/components/sdd/AppEditPage.js +148 -361
  345. package/react/components/sdd/AppEditPage.js.map +1 -1
  346. package/react/components/sdd/Appearance.css +1 -1
  347. package/react/components/sdd/Appearance.js +3 -0
  348. package/react/components/sdd/Appearance.js.map +1 -1
  349. package/react/components/sdd/Application.js +39 -7
  350. package/react/components/sdd/Application.js.map +1 -1
  351. package/react/components/sdd/Applications.js +89 -13
  352. package/react/components/sdd/Applications.js.map +1 -1
  353. package/react/components/sdd/AssetsPage.css +3 -3
  354. package/react/components/sdd/EditPreload.js +10 -0
  355. package/react/components/sdd/EditPreload.js.map +1 -1
  356. package/react/components/sdd/ExportCloud.js +4 -0
  357. package/react/components/sdd/ExportCloud.js.map +1 -1
  358. package/react/components/sdd/Publish.js +2 -0
  359. package/react/components/sdd/Publish.js.map +1 -1
  360. package/react/components/sdd/PublishProgress.js +11 -1
  361. package/react/components/sdd/PublishProgress.js.map +1 -1
  362. package/react/components/sdd/SmartDesktopDesigner.js +17 -0
  363. package/react/components/sdd/SmartDesktopDesigner.js.map +1 -1
  364. package/react/components/sdd/ThemePage.css +6 -23
  365. package/react/components/sdd/ThemePage.js +1 -1
  366. package/react/components/sdd/ThemePage.js.map +1 -1
  367. package/react/components/sdd/Themes.js +2 -0
  368. package/react/components/sdd/Themes.js.map +1 -1
  369. package/react/components/sdd/Toolbar.js +7 -0
  370. package/react/components/sdd/Toolbar.js.map +1 -1
  371. package/react/components/sdd/appEditPage/Behavior.d.ts +34 -0
  372. package/react/components/sdd/appEditPage/Behavior.js +134 -0
  373. package/react/components/sdd/appEditPage/Behavior.js.map +1 -0
  374. package/react/components/sdd/appEditPage/Component.d.ts +22 -0
  375. package/react/components/sdd/appEditPage/Component.js +76 -0
  376. package/react/components/sdd/appEditPage/Component.js.map +1 -0
  377. package/react/components/sdd/appEditPage/DebugToolkit.d.ts +9 -0
  378. package/react/components/sdd/appEditPage/DebugToolkit.js +20 -0
  379. package/react/components/sdd/appEditPage/DebugToolkit.js.map +1 -0
  380. package/react/components/sdd/appEditPage/Interop.d.ts +10 -0
  381. package/react/components/sdd/appEditPage/Interop.js +40 -0
  382. package/react/components/sdd/appEditPage/Interop.js.map +1 -0
  383. package/react/components/sdd/appEditPage/Position.d.ts +18 -0
  384. package/react/components/sdd/appEditPage/Position.js +72 -0
  385. package/react/components/sdd/appEditPage/Position.js.map +1 -0
  386. package/react/components/sdd/appEditPage/Preloads.d.ts +9 -0
  387. package/react/components/sdd/appEditPage/Preloads.js +16 -0
  388. package/react/components/sdd/appEditPage/Preloads.js.map +1 -0
  389. package/react/components/sdd/appEditPage/SelectConnect.d.ts +15 -0
  390. package/react/components/sdd/appEditPage/SelectConnect.js +28 -0
  391. package/react/components/sdd/appEditPage/SelectConnect.js.map +1 -0
  392. package/react/components/sdd/appEditPage/Workspace.d.ts +12 -0
  393. package/react/components/sdd/appEditPage/Workspace.js +30 -0
  394. package/react/components/sdd/appEditPage/Workspace.js.map +1 -0
  395. package/react/components/sdd/common/getCSSVars.js +7 -2
  396. package/react/components/sdd/common/getCSSVars.js.map +1 -1
  397. package/react/components/sdd/common/setPreloadDefaults.js +4 -0
  398. package/react/components/sdd/common/setPreloadDefaults.js.map +1 -1
  399. package/react/components/sdd/css/addApp.css +18 -5
  400. package/react/components/sdd/css/appearance.css +6 -0
  401. package/react/components/sdd/css/applications.css +27 -14
  402. package/react/components/sdd/css/authentication.css +7 -6
  403. package/react/components/sdd/css/buttons.css +1 -1
  404. package/react/components/sdd/css/export.css +5 -3
  405. package/react/components/sdd/css/getting-started.css +2 -2
  406. package/react/components/sdd/css/nav.css +8 -11
  407. package/react/components/sdd/css/project-header.css +5 -7
  408. package/react/components/sdd/css/styles.css +29 -23
  409. package/react/components/sdd/css/views.css +4 -3
  410. package/react/components/sdd/fixtures/apps.js +12 -0
  411. package/react/components/sdd/fixtures/apps.js.map +1 -1
  412. package/react/components/sdd/fixtures/configTemplate.js +1 -0
  413. package/react/components/sdd/fixtures/configTemplate.js.map +1 -1
  414. package/react/components/sdd/fixtures/publishProgress.js +40 -0
  415. package/react/components/sdd/fixtures/publishProgress.js.map +1 -1
  416. package/react/components/sdd/sdd_helpers.d.ts +6 -0
  417. package/react/components/sdd/sdd_helpers.js +6 -0
  418. package/react/components/sdd/sdd_helpers.js.map +1 -1
  419. package/react/components/sdd/smartDesktopClient.d.ts +303 -0
  420. package/react/components/sdd/smartDesktopClient.js +334 -1
  421. package/react/components/sdd/smartDesktopClient.js.map +1 -1
  422. package/react/components/sdd/smartDesktopClient.spec.js +5 -2
  423. package/react/components/sdd/smartDesktopClient.spec.js.map +1 -1
  424. package/react/components/sdd/stories/AddApp.stories.d.ts +2 -1
  425. package/react/components/sdd/stories/AddApp.stories.js +8 -0
  426. package/react/components/sdd/stories/AddApp.stories.js.map +1 -1
  427. package/react/components/sdd/stories/AppEditPage.stories.d.ts +3 -1
  428. package/react/components/sdd/stories/AppEditPage.stories.js +3 -0
  429. package/react/components/sdd/stories/AppEditPage.stories.js.map +1 -1
  430. package/react/components/sdd/stories/Appearance.stories.js +1 -0
  431. package/react/components/sdd/stories/Appearance.stories.js.map +1 -1
  432. package/react/components/sdd/tests/AddApp.spec.js +40 -3
  433. package/react/components/sdd/tests/AddApp.spec.js.map +1 -1
  434. package/react/components/sdd/tests/AppEditPage.spec.js +16 -0
  435. package/react/components/sdd/tests/AppEditPage.spec.js.map +1 -1
  436. package/react/components/sdd/tests/Application.spec.js +33 -438
  437. package/react/components/sdd/tests/Application.spec.js.map +1 -1
  438. package/react/components/sdd/tests/Applications.spec.d.ts +1 -1
  439. package/react/components/sdd/tests/Applications.spec.js +29 -5
  440. package/react/components/sdd/tests/Applications.spec.js.map +1 -1
  441. package/react/components/sdd/tests/Authentication.spec.js +7 -0
  442. package/react/components/sdd/tests/Authentication.spec.js.map +1 -1
  443. package/react/components/sdd/tests/ContentHeader.spec.js +2 -0
  444. package/react/components/sdd/tests/ContentHeader.spec.js.map +1 -1
  445. package/react/components/sdd/tests/EditPreload.spec.js +13 -0
  446. package/react/components/sdd/tests/EditPreload.spec.js.map +1 -1
  447. package/react/components/sdd/tests/Export.spec.js +2 -1
  448. package/react/components/sdd/tests/Export.spec.js.map +1 -1
  449. package/react/components/sdd/tests/ItemList.spec.js +4 -0
  450. package/react/components/sdd/tests/ItemList.spec.js.map +1 -1
  451. package/react/components/sdd/tests/OptionalSettingsView.spec.js +29 -0
  452. package/react/components/sdd/tests/OptionalSettingsView.spec.js.map +1 -1
  453. package/react/components/sdd/tests/ProjectErrors.spec.js +2 -0
  454. package/react/components/sdd/tests/ProjectErrors.spec.js.map +1 -1
  455. package/react/components/sdd/tests/Themes.spec.js +1 -1
  456. package/react/components/sdd/tests/Themes.spec.js.map +1 -1
  457. package/react/components/sdd/tests/Toolbar.spec.js +53 -0
  458. package/react/components/sdd/tests/Toolbar.spec.js.map +1 -1
  459. package/react/components/sdd/tests/a11y_helper.js +8 -0
  460. package/react/components/sdd/tests/a11y_helper.js.map +1 -1
  461. package/react/components/search/Highlight.d.ts +6 -0
  462. package/react/components/search/Highlight.js +19 -0
  463. package/react/components/search/Highlight.js.map +1 -1
  464. package/react/components/search/SearchBestMatch.d.ts +4 -0
  465. package/react/components/search/SearchBestMatch.js +11 -0
  466. package/react/components/search/SearchBestMatch.js.map +1 -1
  467. package/react/components/search/SearchInput.d.ts +5 -0
  468. package/react/components/search/SearchInput.js +6 -0
  469. package/react/components/search/SearchInput.js.map +1 -1
  470. package/react/components/search/SearchProviderResults.js +2 -0
  471. package/react/components/search/SearchProviderResults.js.map +1 -1
  472. package/react/components/search/SearchResult.js +6 -0
  473. package/react/components/search/SearchResult.js.map +1 -1
  474. package/react/components/search/SearchResult.spec.js +7 -0
  475. package/react/components/search/SearchResult.spec.js.map +1 -1
  476. package/react/components/search/SearchResult.stories.js +4 -0
  477. package/react/components/search/SearchResult.stories.js.map +1 -1
  478. package/react/components/search/SearchResults.js +5 -1
  479. package/react/components/search/SearchResults.js.map +1 -1
  480. package/react/components/search/SearchResults.spec.js +7 -0
  481. package/react/components/search/SearchResults.spec.js.map +1 -1
  482. package/react/components/shared/Animate.d.ts +5 -0
  483. package/react/components/shared/Animate.js +12 -1
  484. package/react/components/shared/Animate.js.map +1 -1
  485. package/react/components/shared/DefaultDropdownButton.js +9 -0
  486. package/react/components/shared/DefaultDropdownButton.js.map +1 -1
  487. package/react/components/shared/Tag.d.ts +0 -4
  488. package/react/components/shared/Tag.js +4 -0
  489. package/react/components/shared/Tag.js.map +1 -1
  490. package/react/components/shared/TagsMenu.d.ts +6 -0
  491. package/react/components/shared/TagsMenu.js +7 -0
  492. package/react/components/shared/TagsMenu.js.map +1 -1
  493. package/react/components/shared/addProtocolToValidURL.d.ts +6 -0
  494. package/react/components/shared/addProtocolToValidURL.js +6 -0
  495. package/react/components/shared/addProtocolToValidURL.js.map +1 -1
  496. package/react/components/shared/openQuitConfirmationDialog.d.ts +1 -1
  497. package/react/components/shared/openQuitConfirmationDialog.js +4 -4
  498. package/react/components/shared/openQuitConfirmationDialog.js.map +1 -1
  499. package/react/components/shared/tests/addProtocolToValidURL.spec.js +1 -0
  500. package/react/components/shared/tests/addProtocolToValidURL.spec.js.map +1 -1
  501. package/react/components/shared/validateURL.d.ts +18 -0
  502. package/react/components/shared/validateURL.js +24 -5
  503. package/react/components/shared/validateURL.js.map +1 -1
  504. package/react/components/singleInputDialog/SingleInputDialog.css +1 -1
  505. package/react/components/singleInputDialog/SingleInputDialog.d.ts +3 -0
  506. package/react/components/singleInputDialog/SingleInputDialog.js +44 -0
  507. package/react/components/singleInputDialog/SingleInputDialog.js.map +1 -1
  508. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js +6 -0
  509. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js.map +1 -1
  510. package/react/components/system/System.d.ts +22 -0
  511. package/react/components/system/System.js +23 -1
  512. package/react/components/system/System.js.map +1 -1
  513. package/react/components/system/System.stories.js +1 -0
  514. package/react/components/system/System.stories.js.map +1 -1
  515. package/react/components/system/SystemTrayComponentShell.d.ts +6 -0
  516. package/react/components/system/SystemTrayComponentShell.js +9 -0
  517. package/react/components/system/SystemTrayComponentShell.js.map +1 -1
  518. package/react/components/toolbar/AutoArrange.d.ts +5 -0
  519. package/react/components/toolbar/AutoArrange.js +8 -1
  520. package/react/components/toolbar/AutoArrange.js.map +1 -1
  521. package/react/components/toolbar/AutoArrange.spec.js +1 -0
  522. package/react/components/toolbar/AutoArrange.spec.js.map +1 -1
  523. package/react/components/toolbar/AutoArrange.stories.js +1 -0
  524. package/react/components/toolbar/AutoArrange.stories.js.map +1 -1
  525. package/react/components/toolbar/DragHandle.d.ts +4 -0
  526. package/react/components/toolbar/DragHandle.js +11 -0
  527. package/react/components/toolbar/DragHandle.js.map +1 -1
  528. package/react/components/toolbar/DragHandle.spec.js +1 -0
  529. package/react/components/toolbar/DragHandle.spec.js.map +1 -1
  530. package/react/components/toolbar/DragHandle.stories.js +1 -0
  531. package/react/components/toolbar/DragHandle.stories.js.map +1 -1
  532. package/react/components/toolbar/MinimizeAll.d.ts +4 -0
  533. package/react/components/toolbar/MinimizeAll.js +7 -1
  534. package/react/components/toolbar/MinimizeAll.js.map +1 -1
  535. package/react/components/toolbar/MinimizeAll.spec.js +1 -0
  536. package/react/components/toolbar/MinimizeAll.spec.js.map +1 -1
  537. package/react/components/toolbar/MinimizeAll.stories.js +1 -0
  538. package/react/components/toolbar/MinimizeAll.stories.js.map +1 -1
  539. package/react/components/toolbar/NotificationControl.d.ts +5 -0
  540. package/react/components/toolbar/NotificationControl.js +8 -1
  541. package/react/components/toolbar/NotificationControl.js.map +1 -1
  542. package/react/components/toolbar/RevealAll.d.ts +4 -0
  543. package/react/components/toolbar/RevealAll.js +7 -1
  544. package/react/components/toolbar/RevealAll.js.map +1 -1
  545. package/react/components/toolbar/RevealAll.spec.js +1 -0
  546. package/react/components/toolbar/RevealAll.spec.js.map +1 -1
  547. package/react/components/toolbar/RevealAll.stories.js +1 -0
  548. package/react/components/toolbar/RevealAll.stories.js.map +1 -1
  549. package/react/components/toolbar/SddButton.d.ts +4 -0
  550. package/react/components/toolbar/SddButton.js +4 -0
  551. package/react/components/toolbar/SddButton.js.map +1 -1
  552. package/react/components/toolbar/ToolbarIcon.d.ts +4 -0
  553. package/react/components/toolbar/ToolbarIcon.js +4 -0
  554. package/react/components/toolbar/ToolbarIcon.js.map +1 -1
  555. package/react/components/toolbar/ToolbarSection.d.ts +7 -0
  556. package/react/components/toolbar/ToolbarSection.js +19 -1
  557. package/react/components/toolbar/ToolbarSection.js.map +1 -1
  558. package/react/components/toolbar/ToolbarShell.d.ts +5 -0
  559. package/react/components/toolbar/ToolbarShell.js +7 -0
  560. package/react/components/toolbar/ToolbarShell.js.map +1 -1
  561. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.d.ts +16 -0
  562. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.js +20 -0
  563. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.js.map +1 -1
  564. package/react/components/toolbar/advancedAppLauncher/components/AddNewAppForm.d.ts +52 -0
  565. package/react/components/toolbar/advancedAppLauncher/components/AddNewAppForm.js +58 -0
  566. package/react/components/toolbar/advancedAppLauncher/components/AddNewAppForm.js.map +1 -1
  567. package/react/components/toolbar/advancedAppLauncher/components/AddNewFolder.d.ts +5 -0
  568. package/react/components/toolbar/advancedAppLauncher/components/AddNewFolder.js +5 -0
  569. package/react/components/toolbar/advancedAppLauncher/components/AddNewFolder.js.map +1 -1
  570. package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.d.ts +27 -0
  571. package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.js +49 -0
  572. package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.js.map +1 -1
  573. package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.d.ts +13 -0
  574. package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.js +14 -0
  575. package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.js.map +1 -1
  576. package/react/components/toolbar/advancedAppLauncher/components/Content.d.ts +5 -0
  577. package/react/components/toolbar/advancedAppLauncher/components/Content.js +19 -0
  578. package/react/components/toolbar/advancedAppLauncher/components/Content.js.map +1 -1
  579. package/react/components/toolbar/advancedAppLauncher/components/FilterSort.d.ts +4 -0
  580. package/react/components/toolbar/advancedAppLauncher/components/FilterSort.js +4 -0
  581. package/react/components/toolbar/advancedAppLauncher/components/FilterSort.js.map +1 -1
  582. package/react/components/toolbar/advancedAppLauncher/components/FoldersList.d.ts +16 -0
  583. package/react/components/toolbar/advancedAppLauncher/components/FoldersList.js +39 -0
  584. package/react/components/toolbar/advancedAppLauncher/components/FoldersList.js.map +1 -1
  585. package/react/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.d.ts +4 -0
  586. package/react/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.js +9 -0
  587. package/react/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.js.map +1 -1
  588. package/react/components/toolbar/advancedAppLauncher/components/SearchBox.js +3 -0
  589. package/react/components/toolbar/advancedAppLauncher/components/SearchBox.js.map +1 -1
  590. package/react/components/toolbar/advancedAppLauncher/components/TagsMenu.d.ts +6 -0
  591. package/react/components/toolbar/advancedAppLauncher/components/TagsMenu.js +7 -0
  592. package/react/components/toolbar/advancedAppLauncher/components/TagsMenu.js.map +1 -1
  593. package/react/components/toolbar/advancedAppLauncher/components/ToggleFavoriteDropdown.d.ts +5 -0
  594. package/react/components/toolbar/advancedAppLauncher/components/ToggleFavoriteDropdown.js +5 -0
  595. package/react/components/toolbar/advancedAppLauncher/components/ToggleFavoriteDropdown.js.map +1 -1
  596. package/react/components/toolbar/advancedAppLauncher/modules/AppDirectory.d.ts +5 -0
  597. package/react/components/toolbar/advancedAppLauncher/modules/AppDirectory.js +5 -0
  598. package/react/components/toolbar/advancedAppLauncher/modules/AppDirectory.js.map +1 -1
  599. package/react/components/toolbar/advancedAppLauncher/modules/FDC3.d.ts +37 -0
  600. package/react/components/toolbar/advancedAppLauncher/modules/FDC3.js +40 -0
  601. package/react/components/toolbar/advancedAppLauncher/modules/FDC3.js.map +1 -1
  602. package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.d.ts +3 -0
  603. package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js +82 -0
  604. package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js.map +1 -1
  605. package/react/components/toolbar/advancedAppLauncher/utils/sort-functions.d.ts +10 -0
  606. package/react/components/toolbar/advancedAppLauncher/utils/sort-functions.js +11 -0
  607. package/react/components/toolbar/advancedAppLauncher/utils/sort-functions.js.map +1 -1
  608. package/react/components/toolbar/appLauncher/AppLauncherMenu.d.ts +18 -0
  609. package/react/components/toolbar/appLauncher/AppLauncherMenu.js +20 -0
  610. package/react/components/toolbar/appLauncher/AppLauncherMenu.js.map +1 -1
  611. package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.d.ts +9 -0
  612. package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.js +12 -0
  613. package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.js.map +1 -1
  614. package/react/components/toolbar/appLauncher/appLauncher.css +1 -1
  615. package/react/components/toolbar/appLauncher/components/componentList.d.ts +3 -0
  616. package/react/components/toolbar/appLauncher/components/componentList.js +17 -3
  617. package/react/components/toolbar/appLauncher/components/componentList.js.map +1 -1
  618. package/react/components/toolbar/appLauncher/stores/appLauncherStore.d.ts +6 -0
  619. package/react/components/toolbar/appLauncher/stores/appLauncherStore.js +26 -0
  620. package/react/components/toolbar/appLauncher/stores/appLauncherStore.js.map +1 -1
  621. package/react/components/toolbar/dashbar/Dashbar.js +70 -3
  622. package/react/components/toolbar/dashbar/Dashbar.js.map +1 -1
  623. package/react/components/toolbar/dashbar/DashbarItem.js +5 -0
  624. package/react/components/toolbar/dashbar/DashbarItem.js.map +1 -1
  625. package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.d.ts +7 -0
  626. package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.js +7 -0
  627. package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.js.map +1 -1
  628. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.d.ts +16 -0
  629. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js +20 -0
  630. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js.map +1 -1
  631. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.d.ts +26 -0
  632. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.js +29 -0
  633. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.js.map +1 -1
  634. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.d.ts +5 -0
  635. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.js +6 -0
  636. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.js.map +1 -1
  637. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.d.ts +76 -0
  638. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js +140 -1
  639. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js.map +1 -1
  640. package/react/components/toolbar/workspaceManagementMenu/workspaceManagementMenu.css +8 -18
  641. package/react/components/userPreferences/NotificationsPreferencesContext.d.ts +4 -0
  642. package/react/components/userPreferences/NotificationsPreferencesContext.js +4 -0
  643. package/react/components/userPreferences/NotificationsPreferencesContext.js.map +1 -1
  644. package/react/components/userPreferences/UserPreferenceTypes.d.ts +3 -0
  645. package/react/components/userPreferences/UserPreferences.d.ts +8 -0
  646. package/react/components/userPreferences/UserPreferences.js +8 -0
  647. package/react/components/userPreferences/UserPreferences.js.map +1 -1
  648. package/react/components/userPreferences/UserPreferencesBase.js +4 -0
  649. package/react/components/userPreferences/UserPreferencesBase.js.map +1 -1
  650. package/react/components/userPreferences/components/ContentSection.d.ts +5 -0
  651. package/react/components/userPreferences/components/LeftNav.d.ts +4 -0
  652. package/react/components/userPreferences/components/content/DashbarEditor.js +3 -0
  653. package/react/components/userPreferences/components/content/DashbarEditor.js.map +1 -1
  654. package/react/components/userPreferences/components/content/Notifications.js +3 -0
  655. package/react/components/userPreferences/components/content/Notifications.js.map +1 -1
  656. package/react/components/userPreferences/components/content/Workspaces.d.ts +12 -0
  657. package/react/components/userPreferences/components/content/Workspaces.js +33 -1
  658. package/react/components/userPreferences/components/content/Workspaces.js.map +1 -1
  659. package/react/components/userPreferences/components/content/notificationViews/NotificationsPreferencesHome.js +3 -0
  660. package/react/components/userPreferences/components/content/notificationViews/NotificationsPreferencesHome.js.map +1 -1
  661. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourceTypes.js +3 -0
  662. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourceTypes.js.map +1 -1
  663. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourcesPreferences.js +3 -0
  664. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourcesPreferences.js.map +1 -1
  665. package/react/components/userPreferences/components/general/ScheduledClose.js +11 -0
  666. package/react/components/userPreferences/components/general/ScheduledClose.js.map +1 -1
  667. package/react/components/userPreferences/components/workspaces/WorkspaceItem.js +3 -0
  668. package/react/components/userPreferences/components/workspaces/WorkspaceItem.js.map +1 -1
  669. package/react/components/userPreferences/stores/UserPreferencesStore.d.ts +17 -0
  670. package/react/components/userPreferences/stores/UserPreferencesStore.js +27 -0
  671. package/react/components/userPreferences/stores/UserPreferencesStore.js.map +1 -1
  672. package/react/components/userPreferences/tests/NotificationsPreferencesHome.spec.js +1 -0
  673. package/react/components/userPreferences/tests/NotificationsPreferencesHome.spec.js.map +1 -1
  674. package/react/components/userPreferences/tests/Workspace.spec.js +20 -0
  675. package/react/components/userPreferences/tests/Workspace.spec.js.map +1 -1
  676. package/react/components/windowTitleBar/WindowTitleBarShell.d.ts +124 -0
  677. package/react/components/windowTitleBar/WindowTitleBarShell.js +284 -35
  678. package/react/components/windowTitleBar/WindowTitleBarShell.js.map +1 -1
  679. package/react/components/windowTitleBar/components/center/Tab.d.ts +3 -0
  680. package/react/components/windowTitleBar/components/center/Tab.js +3 -0
  681. package/react/components/windowTitleBar/components/center/Tab.js.map +1 -1
  682. package/react/components/windowTitleBar/components/center/TabList.d.ts +90 -0
  683. package/react/components/windowTitleBar/components/center/TabList.js +170 -4
  684. package/react/components/windowTitleBar/components/center/TabList.js.map +1 -1
  685. package/react/components/windowTitleBar/components/left/LinkerButton.d.ts +9 -1
  686. package/react/components/windowTitleBar/components/left/LinkerButton.js +25 -9
  687. package/react/components/windowTitleBar/components/left/LinkerButton.js.map +1 -1
  688. package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.d.ts +47 -0
  689. package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.js +76 -1
  690. package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.js.map +1 -1
  691. package/react/components/windowTitleBar/components/left/LinkerGroups.d.ts +4 -0
  692. package/react/components/windowTitleBar/components/left/LinkerGroups.js +5 -0
  693. package/react/components/windowTitleBar/components/left/LinkerGroups.js.map +1 -1
  694. package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.d.ts +18 -0
  695. package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.js +49 -0
  696. package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.js.map +1 -1
  697. package/react/components/windowTitleBar/components/left/ShareButton.d.ts +17 -0
  698. package/react/components/windowTitleBar/components/left/ShareButton.js +39 -0
  699. package/react/components/windowTitleBar/components/left/ShareButton.js.map +1 -1
  700. package/react/components/windowTitleBar/components/right/AlwaysOnTopButton.js +4 -0
  701. package/react/components/windowTitleBar/components/right/AlwaysOnTopButton.js.map +1 -1
  702. package/react/components/windowTitleBar/components/right/CloseButton.d.ts +27 -0
  703. package/react/components/windowTitleBar/components/right/CloseButton.js +27 -0
  704. package/react/components/windowTitleBar/components/right/CloseButton.js.map +1 -1
  705. package/react/components/windowTitleBar/components/right/GroupingButton.d.ts +37 -0
  706. package/react/components/windowTitleBar/components/right/GroupingButton.js +40 -0
  707. package/react/components/windowTitleBar/components/right/GroupingButton.js.map +1 -1
  708. package/react/components/windowTitleBar/components/right/MaximizeButton.d.ts +46 -0
  709. package/react/components/windowTitleBar/components/right/MaximizeButton.js +54 -0
  710. package/react/components/windowTitleBar/components/right/MaximizeButton.js.map +1 -1
  711. package/react/components/windowTitleBar/components/right/MinimizeButton.d.ts +26 -0
  712. package/react/components/windowTitleBar/components/right/MinimizeButton.js +26 -0
  713. package/react/components/windowTitleBar/components/right/MinimizeButton.js.map +1 -1
  714. package/react/components/windowTitleBar/components/windowTitle.d.ts +40 -0
  715. package/react/components/windowTitleBar/components/windowTitle.js +172 -10
  716. package/react/components/windowTitleBar/components/windowTitle.js.map +1 -1
  717. package/react/components/windowTitleBar/stores/windowTitleBarStore.d.ts +5 -0
  718. package/react/components/windowTitleBar/stores/windowTitleBarStore.js +72 -1
  719. package/react/components/windowTitleBar/stores/windowTitleBarStore.js.map +1 -1
  720. package/react/components/yesNoDialog/YesNoDialog.css +1 -1
  721. package/react/components/yesNoDialog/YesNoDialog.d.ts +3 -0
  722. package/react/components/yesNoDialog/YesNoDialog.js +63 -0
  723. package/react/components/yesNoDialog/YesNoDialog.js.map +1 -1
  724. package/react/components/yesNoDialog/YesNoDialog.spec.js +4 -0
  725. package/react/components/yesNoDialog/YesNoDialog.spec.js.map +1 -1
  726. package/react/components/yesNoDialog/timer.js +2 -0
  727. package/react/components/yesNoDialog/timer.js.map +1 -1
  728. package/react/enzymeSetup.js +5 -0
  729. package/react/enzymeSetup.js.map +1 -1
  730. package/react/hooks/useDashbar.js +10 -0
  731. package/react/hooks/useDashbar.js.map +1 -1
  732. package/react/hooks/useDeepEffect.d.ts +4 -0
  733. package/react/hooks/useDeepEffect.js +21 -0
  734. package/react/hooks/useDeepEffect.js.map +1 -1
  735. package/react/hooks/useFavorites.d.ts +15 -0
  736. package/react/hooks/useFavorites.js +3 -0
  737. package/react/hooks/useFavorites.js.map +1 -1
  738. package/react/hooks/useFavoritesShell.d.ts +4 -0
  739. package/react/hooks/useFavoritesShell.js +23 -0
  740. package/react/hooks/useFavoritesShell.js.map +1 -1
  741. package/react/hooks/useHotkey.d.ts +6 -0
  742. package/react/hooks/useHotkey.js +9 -0
  743. package/react/hooks/useHotkey.js.map +1 -1
  744. package/react/hooks/useLinker.js +14 -0
  745. package/react/hooks/useLinker.js.map +1 -1
  746. package/react/hooks/useMenu.d.ts +29 -0
  747. package/react/hooks/useMenu.js +12 -1
  748. package/react/hooks/useMenu.js.map +1 -1
  749. package/react/hooks/useNotifications.d.ts +44 -0
  750. package/react/hooks/useNotifications.js +90 -0
  751. package/react/hooks/useNotifications.js.map +1 -1
  752. package/react/hooks/useOutsideClickDetector.d.ts +3 -0
  753. package/react/hooks/useOutsideClickDetector.js +3 -0
  754. package/react/hooks/useOutsideClickDetector.js.map +1 -1
  755. package/react/hooks/usePubSub.d.ts +17 -0
  756. package/react/hooks/usePubSub.js +18 -0
  757. package/react/hooks/usePubSub.js.map +1 -1
  758. package/react/hooks/useSearch.d.ts +5 -0
  759. package/react/hooks/useSearch.js +30 -0
  760. package/react/hooks/useSearch.js.map +1 -1
  761. package/react/hooks/useToolbar.js +52 -0
  762. package/react/hooks/useToolbar.js.map +1 -1
  763. package/react/reducers/favoriteReducer.d.ts +3 -0
  764. package/react/reducers/linkerReducer.d.ts +3 -0
  765. package/react/reducers/linkerReducer.js +4 -0
  766. package/react/reducers/linkerReducer.js.map +1 -1
  767. package/react/reducers/menuReducer.d.ts +28 -0
  768. package/react/reducers/menuReducer.js +34 -0
  769. package/react/reducers/menuReducer.js.map +1 -1
  770. package/react/reducers/rootReducer.js +3 -0
  771. package/react/reducers/rootReducer.js.map +1 -1
  772. package/react/reducers/searchReducer.d.ts +7 -0
  773. package/react/reducers/searchReducer.js +6 -0
  774. package/react/reducers/searchReducer.js.map +1 -1
  775. package/react/reducers/workspaceReducer.js +1 -0
  776. package/react/reducers/workspaceReducer.js.map +1 -1
  777. package/react/store.d.ts +4 -0
  778. package/react/store.js +11 -0
  779. package/react/store.js.map +1 -1
  780. package/react/tsconfig.tsbuildinfo +1 -1
  781. package/react/types/fdc3.d.ts +2 -0
  782. package/react/types/linkerTypes.d.ts +13 -0
  783. package/react/types/linkerTypes.js +1 -0
  784. package/react/types/linkerTypes.js.map +1 -1
  785. package/react/types/smartDesktopDesignerTypes.d.ts +5 -0
  786. package/react/types/smartDesktopDesignerTypes.js.map +1 -1
  787. package/react/types/workspaceTypes.d.ts +8 -0
@@ -3,12 +3,16 @@ import { mount } from "enzyme";
3
3
  import { describe, it } from "mocha";
4
4
  import { expect } from "chai";
5
5
  import { Default, Empty } from "../stories/OptionalSettingsView.stories";
6
+ // For running accessibility scans
6
7
  import { accessibilityAssessor } from "./a11y_helper";
7
8
  import { waitTick } from "../sdd_helpers";
9
+ // For testing user interactions (like click events):
8
10
  import sinon from "sinon";
11
+ // Necessary to allow sinon to work with mocked actions (which are shown in the Actions panel in Storybook)
9
12
  import addons, { mockChannel } from "@storybook/addons";
10
13
  addons.setChannel(mockChannel());
11
14
  describe("<OptionalSettingsView/>", () => {
15
+ // Used to clear after each interactive test using sinon
12
16
  afterEach(() => {
13
17
  sinon.restore();
14
18
  });
@@ -38,17 +42,20 @@ describe("<OptionalSettingsView/>", () => {
38
42
  expect(delete_buttons.length, "There are also 2 delete buttons").to.equal(2);
39
43
  });
40
44
  describe("Check app config updates", async () => {
45
+ /*** WARNING!!: Tests are not independent and must go in this order ***/
41
46
  it("Removing a preload", async () => {
42
47
  var _a, _b;
43
48
  const buttonSpy = sinon.spy(Default.args, "updateApp");
44
49
  const wrapper = mount(React.createElement(Default, Object.assign({}, Default.args)));
45
50
  await waitTick();
46
51
  wrapper.update();
52
+ // Click list item
47
53
  expect(wrapper.find(".app-list-row .app-name").at(1).text(), "First item name").to.equal("zoom");
48
54
  wrapper.find(".app-list-row").at(1).simulate("click");
49
55
  await waitTick();
50
56
  wrapper.update();
51
57
  wrapper.find(".emperorOption [type='checkbox']").at(0).simulate("change");
58
+ // Click save button
52
59
  wrapper.find(".app-actions-right-wrapper .button-container-secondary button").simulate("click");
53
60
  await waitTick();
54
61
  expect(buttonSpy.args.length, "Expect updateApp to be called once, because only one app was updated").to.equal(1);
@@ -66,6 +73,7 @@ describe("<OptionalSettingsView/>", () => {
66
73
  await waitTick();
67
74
  wrapper.update();
68
75
  wrapper.find(".emperorOption [type='checkbox']").at(0).simulate("change");
76
+ // Click save button
69
77
  wrapper.find(".app-actions-right-wrapper .button-container-secondary button").simulate("click");
70
78
  await waitTick();
71
79
  expect(buttonSpy.args.length, "Expect updateApp to be called once, because only one app was updated").to.equal(1);
@@ -87,6 +95,7 @@ describe("<OptionalSettingsView/>", () => {
87
95
  value: "zoom2",
88
96
  },
89
97
  });
98
+ // Click save button
90
99
  wrapper.find(".app-actions-right-wrapper .button-container-secondary button").simulate("click");
91
100
  await waitTick();
92
101
  expect(buttonSpy.args.length, "Expect updateApp to be called once, because only one app was updated").to.equal(1);
@@ -103,6 +112,7 @@ describe("<OptionalSettingsView/>", () => {
103
112
  wrapper.find(".app-list-row").at(1).simulate("click");
104
113
  await waitTick();
105
114
  wrapper.update();
115
+ // Click save button
106
116
  wrapper.find(".app-actions-right-wrapper .button-container-secondary button").simulate("click");
107
117
  await waitTick();
108
118
  expect(buttonSpy.args.length, "Expect updateApp to not be called").to.equal(0);
@@ -116,13 +126,16 @@ describe("<OptionalSettingsView/>", () => {
116
126
  wrapper.find(".app-list-row").at(0).simulate("click");
117
127
  await waitTick();
118
128
  wrapper.update();
129
+ // Rename "native-overrides" to "native-overrides2"
119
130
  wrapper.find("#preload-alias").simulate("change", {
120
131
  target: {
121
132
  value: "native-overrides2",
122
133
  },
123
134
  });
135
+ // Add this preload to "Example Charts App"
124
136
  wrapper.find(".emperorOption [type='checkbox']").at(0).simulate("change");
125
137
  expect(wrapper.find(".emperorOption [type='checkbox']").at(0).prop("checked")).to.be.true;
138
+ // Click save button
126
139
  wrapper.find(".app-actions-right-wrapper .button-container-secondary button").simulate("click");
127
140
  await waitTick();
128
141
  expect(buttonSpy.args.length, "Expect updateApp to be called once, because only one app was updated").to.equal(1);
@@ -140,13 +153,16 @@ describe("<OptionalSettingsView/>", () => {
140
153
  wrapper.find(".app-list-row").at(0).simulate("click");
141
154
  await waitTick();
142
155
  wrapper.update();
156
+ // Rename "native-overrides2" to "native-overrides3"
143
157
  wrapper.find("#preload-alias").simulate("change", {
144
158
  target: {
145
159
  value: "native-overrides3",
146
160
  },
147
161
  });
162
+ // Remove this preload to "Example Charts App"
148
163
  wrapper.find(".emperorOption [type='checkbox']").at(0).simulate("change");
149
164
  expect(wrapper.find(".emperorOption [type='checkbox']").at(0).prop("checked")).to.be.false;
165
+ // Click save button
150
166
  wrapper.find(".app-actions-right-wrapper .button-container-secondary button").simulate("click");
151
167
  await waitTick();
152
168
  expect(buttonSpy.args.length, "Expect updateApp to be called once, because only one app was updated").to.equal(1);
@@ -162,24 +178,29 @@ describe("<OptionalSettingsView/>", () => {
162
178
  const wrapper = mount(React.createElement(Default, Object.assign({}, Default.args)));
163
179
  await waitTick();
164
180
  wrapper.update();
181
+ // Click Add button
165
182
  wrapper.find(".button-container-primary button").simulate("click");
166
183
  await waitTick();
167
184
  wrapper.update();
185
+ // Alias name
168
186
  wrapper.find("#preload-alias").simulate("change", {
169
187
  target: {
170
188
  value: "test",
171
189
  },
172
190
  });
191
+ // URL name
173
192
  wrapper.find("#preload-url").simulate("change", {
174
193
  target: {
175
194
  value: "https://assets.finsemble.com/preloads/testPreload.js",
176
195
  },
177
196
  });
197
+ // Assign "Load for" to "All apps"
178
198
  wrapper.find("input[name='preload-usage'][value='all']").simulate("change", {
179
199
  target: {
180
200
  value: "all",
181
201
  },
182
202
  });
203
+ // Click save button
183
204
  wrapper.find(".app-actions-right-wrapper .button-container-secondary button").simulate("click");
184
205
  await waitTick();
185
206
  expect(savePreloadSpy.calledOnce).to.be.true;
@@ -196,13 +217,16 @@ describe("<OptionalSettingsView/>", () => {
196
217
  const wrapper = mount(React.createElement(Default, Object.assign({}, Default.args)));
197
218
  await waitTick();
198
219
  wrapper.update();
220
+ // Click list item
199
221
  expect(wrapper.find(".app-list-row .app-name").at(1).text(), "First item name").to.equal("test");
200
222
  wrapper.find(".app-list-row").at(1).simulate("click");
223
+ // URL name
201
224
  wrapper.find("#preload-url").simulate("change", {
202
225
  target: {
203
226
  value: "http://assets.finsemble.com/preloads/testPreload.js",
204
227
  },
205
228
  });
229
+ // Click save button
206
230
  wrapper.find(".app-actions-right-wrapper .button-container-secondary button").simulate("click");
207
231
  await waitTick();
208
232
  expect(savePreloadSpy.calledOnce).to.be.true;
@@ -219,13 +243,16 @@ describe("<OptionalSettingsView/>", () => {
219
243
  const wrapper = mount(React.createElement(Default, Object.assign({}, Default.args)));
220
244
  await waitTick();
221
245
  wrapper.update();
246
+ // Click list item
222
247
  expect(wrapper.find(".app-list-row .app-name").at(1).text(), "First item name").to.equal("test");
223
248
  wrapper.find(".app-list-row").at(1).simulate("click");
249
+ // Alias name
224
250
  wrapper.find("#preload-alias").simulate("change", {
225
251
  target: {
226
252
  value: "test2",
227
253
  },
228
254
  });
255
+ // Click save button
229
256
  wrapper.find(".app-actions-right-wrapper .button-container-secondary button").simulate("click");
230
257
  await waitTick();
231
258
  expect(savePreloadSpy.calledOnce).to.be.true;
@@ -243,8 +270,10 @@ describe("<OptionalSettingsView/>", () => {
243
270
  const wrapper = mount(React.createElement(Default, Object.assign({}, Default.args)));
244
271
  await waitTick();
245
272
  wrapper.update();
273
+ // Click list item
246
274
  expect(wrapper.find(".app-list-row .app-name").at(1).text(), "First item name").to.equal("test2");
247
275
  wrapper.find(".app-list-row").at(1).simulate("click");
276
+ // Click save button
248
277
  wrapper.find(".button-container-danger button").simulate("click");
249
278
  await waitTick();
250
279
  expect(savePreloadSpy.calledOnce).to.be.false;
@@ -1 +1 @@
1
- {"version":3,"file":"OptionalSettingsView.spec.js","sourceRoot":"","sources":["../../../../src/components/sdd/tests/OptionalSettingsView.spec.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACxD,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;AAEjC,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IAExC,SAAS,CAAC,GAAG,EAAE;QACd,KAAK,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,OAAO,oBAAM,OAAO,CAAC,IAAkC,EAAI,CAAC,CAAC;QACpF,MAAM,CAAC,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,KAAK,oBAAM,KAAK,CAAC,IAAkC,EAAI,CAAC,CAAC;QAEhF,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACxD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAE3D,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACpF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACnG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,MAAM,EAAE,EAAE,uCAAuC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAClH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,OAAO,oBAAM,OAAO,CAAC,IAAkC,EAAI,CAAC,CAAC;QACpF,MAAM,QAAQ,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,EAAE,CAAC;QAEjB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7D,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAEvD,MAAM,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QACnD,MAAM,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEvC,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QAC1E,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,iCAAiC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QAG/C,EAAE,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;;YACnC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAiC,EAAE,WAAW,CAAC,CAAC;YACpF,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,OAAO,oBAAM,OAAO,CAAC,IAAkC,EAAI,CAAC,CAAC;YACpF,MAAM,QAAQ,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,EAAE,CAAC;YAEjB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACjG,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,QAAQ,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,EAAE,CAAC;YAEjB,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAG1E,OAAO,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAChG,MAAM,QAAQ,EAAE,CAAC;YAEjB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,sEAAsE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAClH,MAAM,CAAC,YAAY,EAAE,gBAAgB,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3D,MAAM,CAAC,YAAY,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YAC3E,MAAM,CACL,MAAA,MAAA,gBAAgB,CAAC,QAAQ,0CAAE,SAAS,0CAAE,OAAO,EAC7C,uDAAuD,CACvD,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;;YACjC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAiC,EAAE,WAAW,CAAC,CAAC;YACpF,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,OAAO,oBAAM,OAAO,CAAC,IAAkC,EAAI,CAAC,CAAC;YACpF,MAAM,QAAQ,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,EAAE,CAAC;YAEjB,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,QAAQ,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,EAAE,CAAC;YAEjB,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAG1E,OAAO,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAChG,MAAM,QAAQ,EAAE,CAAC;YAEjB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,sEAAsE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAClH,MAAM,CAAC,YAAY,EAAE,gBAAgB,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3D,MAAM,CAAC,YAAY,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YAC3E,MAAM,CACL,MAAA,MAAA,gBAAgB,CAAC,QAAQ,0CAAE,SAAS,0CAAE,OAAO,EAC7C,uDAAuD,CACvD,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;;YACnC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAiC,EAAE,WAAW,CAAC,CAAC;YACpF,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,OAAO,oBAAM,OAAO,CAAC,IAAkC,EAAI,CAAC,CAAC;YACpF,MAAM,QAAQ,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,EAAE,CAAC;YAEjB,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,QAAQ,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,EAAE,CAAC;YAEjB,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBACjD,MAAM,EAAE;oBACP,KAAK,EAAE,OAAO;iBACd;aACD,CAAC,CAAC;YAGH,OAAO,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAChG,MAAM,QAAQ,EAAE,CAAC;YAEjB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,sEAAsE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAClH,MAAM,CAAC,YAAY,EAAE,gBAAgB,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3D,MAAM,CAAC,YAAY,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YAC3E,MAAM,CACL,MAAA,MAAA,gBAAgB,CAAC,QAAQ,0CAAE,SAAS,0CAAE,OAAO,EAC7C,uDAAuD,CACvD,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACtB,MAAM,CACL,MAAA,MAAA,gBAAgB,CAAC,QAAQ,0CAAE,SAAS,0CAAE,OAAO,EAC7C,uDAAuD,CACvD,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;YACrF,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAiC,EAAE,WAAW,CAAC,CAAC;YACpF,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,OAAO,oBAAM,OAAO,CAAC,IAAkC,EAAI,CAAC,CAAC;YACpF,MAAM,QAAQ,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,EAAE,CAAC;YAEjB,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,QAAQ,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,EAAE,CAAC;YAGjB,OAAO,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAChG,MAAM,QAAQ,EAAE,CAAC;YAEjB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,mCAAmC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;;YAC5C,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAiC,EAAE,WAAW,CAAC,CAAC;YACpF,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,OAAO,oBAAM,OAAO,CAAC,IAAkC,EAAI,CAAC,CAAC;YACpF,MAAM,QAAQ,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,EAAE,CAAC;YAEjB,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,QAAQ,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,EAAE,CAAC;YAGjB,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBACjD,MAAM,EAAE;oBACP,KAAK,EAAE,mBAAmB;iBAC1B;aACD,CAAC,CAAC;YAGH,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC1E,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAG1F,OAAO,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAChG,MAAM,QAAQ,EAAE,CAAC;YAEjB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,sEAAsE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAClH,MAAM,CAAC,YAAY,EAAE,gBAAgB,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3D,MAAM,CAAC,YAAY,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YAC3E,MAAM,CACL,MAAA,MAAA,gBAAgB,CAAC,QAAQ,0CAAE,SAAS,0CAAE,OAAO,EAC7C,uDAAuD,CACvD,CAAC,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YAClC,MAAM,CACL,MAAA,MAAA,gBAAgB,CAAC,QAAQ,0CAAE,SAAS,0CAAE,OAAO,EAC7C,uDAAuD,CACvD,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;;YAC9C,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAiC,EAAE,WAAW,CAAC,CAAC;YACpF,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,OAAO,oBAAM,OAAO,CAAC,IAAkC,EAAI,CAAC,CAAC;YACpF,MAAM,QAAQ,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,EAAE,CAAC;YAEjB,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,QAAQ,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,EAAE,CAAC;YAGjB,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBACjD,MAAM,EAAE;oBACP,KAAK,EAAE,mBAAmB;iBAC1B;aACD,CAAC,CAAC;YAGH,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC1E,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YAG3F,OAAO,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAChG,MAAM,QAAQ,EAAE,CAAC;YAEjB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,sEAAsE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAClH,MAAM,CAAC,YAAY,EAAE,gBAAgB,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3D,MAAM,CAAC,YAAY,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YAC3E,MAAM,CACL,MAAA,MAAA,gBAAgB,CAAC,QAAQ,0CAAE,SAAS,0CAAE,OAAO,EAC7C,uDAAuD,CACvD,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YACtC,MAAM,CACL,MAAA,MAAA,gBAAgB,CAAC,QAAQ,0CAAE,SAAS,0CAAE,OAAO,EAC7C,uDAAuD,CACvD,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QAC7C,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;YACrC,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAiC,EAAE,aAAa,CAAC,CAAC;YAC3F,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,OAAO,oBAAM,OAAO,CAAC,IAAkC,EAAI,CAAC,CAAC;YACpF,MAAM,QAAQ,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,EAAE,CAAC;YAGjB,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACnE,MAAM,QAAQ,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,EAAE,CAAC;YAGjB,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBACjD,MAAM,EAAE;oBACP,KAAK,EAAE,MAAM;iBACb;aACD,CAAC,CAAC;YAGH,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBAC/C,MAAM,EAAE;oBACP,KAAK,EAAE,sDAAsD;iBAC7D;aACD,CAAC,CAAC;YAGH,OAAO,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBAC3E,MAAM,EAAE;oBACP,KAAK,EAAE,KAAK;iBACZ;aACD,CAAC,CAAC;YAGH,OAAO,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAChG,MAAM,QAAQ,EAAE,CAAC;YAEjB,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAE7C,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7D,MAAM,CAAC,QAAQ,EAAE,2CAA2C,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YAC1E,MAAM,CAAC,QAAQ,EAAE,2BAA2B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/D,MAAM,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gBACrD,GAAG,EAAE,sDAAsD;gBAC3D,QAAQ,EAAE,KAAK;aACf,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;YAC1C,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAiC,EAAE,aAAa,CAAC,CAAC;YAC3F,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,OAAO,oBAAM,OAAO,CAAC,IAAkC,EAAI,CAAC,CAAC;YACpF,MAAM,QAAQ,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,EAAE,CAAC;YAGjB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACjG,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAGtD,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBAC/C,MAAM,EAAE;oBACP,KAAK,EAAE,qDAAqD;iBAC5D;aACD,CAAC,CAAC;YAGH,OAAO,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAChG,MAAM,QAAQ,EAAE,CAAC;YAEjB,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAE7C,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7D,MAAM,CAAC,QAAQ,EAAE,2BAA2B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/D,MAAM,CAAC,QAAQ,EAAE,2BAA2B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/D,MAAM,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gBACrD,GAAG,EAAE,qDAAqD;gBAC1D,QAAQ,EAAE,KAAK;aACf,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;YAC/B,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAiC,EAAE,aAAa,CAAC,CAAC;YAC3F,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,OAAO,oBAAM,OAAO,CAAC,IAAkC,EAAI,CAAC,CAAC;YACpF,MAAM,QAAQ,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,EAAE,CAAC;YAGjB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACjG,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAGtD,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBACjD,MAAM,EAAE;oBACP,KAAK,EAAE,OAAO;iBACd;aACD,CAAC,CAAC;YAGH,OAAO,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAChG,MAAM,QAAQ,EAAE,CAAC;YAEjB,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAE7C,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7D,MAAM,CAAC,QAAQ,EAAE,2BAA2B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/D,MAAM,CAAC,QAAQ,EAAE,2BAA2B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAChE,MAAM,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gBACrD,GAAG,EAAE,qDAAqD;gBAC1D,QAAQ,EAAE,KAAK;aACf,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAiC,EAAE,aAAa,CAAC,CAAC;YAC3F,MAAM,gBAAgB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAiC,EAAE,eAAe,CAAC,CAAC;YAC/F,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,OAAO,oBAAM,OAAO,CAAC,IAAkC,EAAI,CAAC,CAAC;YACpF,MAAM,QAAQ,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,EAAE,CAAC;YAGjB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAClG,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAGtD,OAAO,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAClE,MAAM,QAAQ,EAAE,CAAC;YAEjB,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YAC9C,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAE/C,MAAM,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\nimport { mount } from \"enzyme\";\nimport { describe, it } from \"mocha\";\nimport { expect } from \"chai\";\nimport { OptionalSettingsViewProps } from \"../OptionalSettingsView\";\nimport { Default, Empty } from \"../stories/OptionalSettingsView.stories\";\n\n// For running accessibility scans\nimport { accessibilityAssessor } from \"./a11y_helper\";\nimport { waitTick } from \"../sdd_helpers\";\n\n// For testing user interactions (like click events):\nimport sinon from \"sinon\";\n// Necessary to allow sinon to work with mocked actions (which are shown in the Actions panel in Storybook)\nimport addons, { mockChannel } from \"@storybook/addons\";\naddons.setChannel(mockChannel());\n\ndescribe(\"<OptionalSettingsView/>\", () => {\n\t// Used to clear after each interactive test using sinon\n\tafterEach(() => {\n\t\tsinon.restore();\n\t});\n\n\tit(\"should pass accessibility scans\", async () => {\n\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\texpect(await accessibilityAssessor(wrapper)).to.be.true;\n\t});\n\n\tit(\"should be empty when there are no preloads\", async () => {\n\t\tconst wrapper = mount(<Empty {...(Empty.args as OptionalSettingsViewProps)} />);\n\n\t\tconst button = wrapper.find(\"button\").last();\n\t\texpect(button.exists(), \"The button exists\").to.be.true;\n\t\texpect(button.text(), \"The button's text\").to.equal(\"Add\");\n\n\t\texpect(wrapper.find(\".app-list-empty\").exists(), \"Empty message exists\").to.be.true;\n\t\texpect(wrapper.find(\".app-list-empty\").text(), \"Empty message text\").to.contain(\"to add preloads\");\n\t\texpect(wrapper.find(\".app-list-empty.no-dropzone\").exists(), \"Empty message has no dropzone styling\").to.be.true;\n\t});\n\n\tit(\"should show preload aliases if there are registered preloads\", async () => {\n\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\tconst names = wrapper.find(\".app-name\");\n\t\texpect(names.length, \"There are 2 names listed\").to.equal(2);\n\t\tconst names_as_text = names.map((elem) => elem.text());\n\n\t\texpect(names_as_text).includes(\"native-overrides\");\n\t\texpect(names_as_text).includes(\"zoom\");\n\n\t\tconst delete_buttons = wrapper.find(\".button-container-icon.icon-delete\");\n\t\texpect(delete_buttons.length, \"There are also 2 delete buttons\").to.equal(2);\n\t});\n\n\tdescribe(\"Check app config updates\", async () => {\n\t\t/*** WARNING!!: Tests are not independent and must go in this order ***/\n\n\t\tit(\"Removing a preload\", async () => {\n\t\t\tconst buttonSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"updateApp\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\t\t\t// Click list item\n\t\t\texpect(wrapper.find(\".app-list-row .app-name\").at(1).text(), \"First item name\").to.equal(\"zoom\");\n\t\t\twrapper.find(\".app-list-row\").at(1).simulate(\"click\");\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\twrapper.find(\".emperorOption [type='checkbox']\").at(0).simulate(\"change\");\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(buttonSpy.args.length, \"Expect updateApp to be called once, because only one app was updated\").to.equal(1);\n\t\t\tconst [updatedAppId, updatedAppConfig] = buttonSpy.args[0];\n\t\t\texpect(updatedAppId, \"Which app was added\").to.equal(\"Example Charts App\");\n\t\t\texpect(\n\t\t\t\tupdatedAppConfig.manifest?.component?.preload,\n\t\t\t\t\"what should preload config for this app look like now\"\n\t\t\t).to.not.include(\"zoom\");\n\t\t});\n\t\tit(\"Adding a preload\", async () => {\n\t\t\tconst buttonSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"updateApp\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\twrapper.find(\".app-list-row\").at(1).simulate(\"click\");\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\twrapper.find(\".emperorOption [type='checkbox']\").at(0).simulate(\"change\");\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(buttonSpy.args.length, \"Expect updateApp to be called once, because only one app was updated\").to.equal(1);\n\t\t\tconst [updatedAppId, updatedAppConfig] = buttonSpy.args[0];\n\t\t\texpect(updatedAppId, \"Which app was added\").to.equal(\"Example Charts App\");\n\t\t\texpect(\n\t\t\t\tupdatedAppConfig.manifest?.component?.preload,\n\t\t\t\t\"what should preload config for this app look like now\"\n\t\t\t).to.include(\"zoom\");\n\t\t});\n\t\tit(\"Renaming a preload\", async () => {\n\t\t\tconst buttonSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"updateApp\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\twrapper.find(\".app-list-row\").at(1).simulate(\"click\");\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\twrapper.find(\"#preload-alias\").simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"zoom2\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(buttonSpy.args.length, \"Expect updateApp to be called once, because only one app was updated\").to.equal(1);\n\t\t\tconst [updatedAppId, updatedAppConfig] = buttonSpy.args[0];\n\t\t\texpect(updatedAppId, \"Which app was added\").to.equal(\"Example Charts App\");\n\t\t\texpect(\n\t\t\t\tupdatedAppConfig.manifest?.component?.preload,\n\t\t\t\t\"what should preload config for this app look like now\"\n\t\t\t).to.include(\"zoom2\");\n\t\t\texpect(\n\t\t\t\tupdatedAppConfig.manifest?.component?.preload,\n\t\t\t\t\"what should preload config for this app look like now\"\n\t\t\t).to.not.include(\"zoom\");\n\t\t});\n\t\tit(\"Unchanged preload (for apps that do and don't have the preload added\", async () => {\n\t\t\tconst buttonSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"updateApp\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\twrapper.find(\".app-list-row\").at(1).simulate(\"click\");\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(buttonSpy.args.length, \"Expect updateApp to not be called\").to.equal(0);\n\t\t});\n\t\tit(\"Renaming + adding a preload\", async () => {\n\t\t\tconst buttonSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"updateApp\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\twrapper.find(\".app-list-row\").at(0).simulate(\"click\");\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\t// Rename \"native-overrides\" to \"native-overrides2\"\n\t\t\twrapper.find(\"#preload-alias\").simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"native-overrides2\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// Add this preload to \"Example Charts App\"\n\t\t\twrapper.find(\".emperorOption [type='checkbox']\").at(0).simulate(\"change\");\n\t\t\texpect(wrapper.find(\".emperorOption [type='checkbox']\").at(0).prop(\"checked\")).to.be.true;\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(buttonSpy.args.length, \"Expect updateApp to be called once, because only one app was updated\").to.equal(1);\n\t\t\tconst [updatedAppId, updatedAppConfig] = buttonSpy.args[0];\n\t\t\texpect(updatedAppId, \"Which app was added\").to.equal(\"Example Charts App\");\n\t\t\texpect(\n\t\t\t\tupdatedAppConfig.manifest?.component?.preload,\n\t\t\t\t\"what should preload config for this app look like now\"\n\t\t\t).to.include(\"native-overrides2\");\n\t\t\texpect(\n\t\t\t\tupdatedAppConfig.manifest?.component?.preload,\n\t\t\t\t\"what should preload config for this app look like now\"\n\t\t\t).to.not.include(\"native-overrides\");\n\t\t});\n\t\tit(\"Renaming + removing a preload\", async () => {\n\t\t\tconst buttonSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"updateApp\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\twrapper.find(\".app-list-row\").at(0).simulate(\"click\");\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\t// Rename \"native-overrides2\" to \"native-overrides3\"\n\t\t\twrapper.find(\"#preload-alias\").simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"native-overrides3\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// Remove this preload to \"Example Charts App\"\n\t\t\twrapper.find(\".emperorOption [type='checkbox']\").at(0).simulate(\"change\");\n\t\t\texpect(wrapper.find(\".emperorOption [type='checkbox']\").at(0).prop(\"checked\")).to.be.false;\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(buttonSpy.args.length, \"Expect updateApp to be called once, because only one app was updated\").to.equal(1);\n\t\t\tconst [updatedAppId, updatedAppConfig] = buttonSpy.args[0];\n\t\t\texpect(updatedAppId, \"Which app was added\").to.equal(\"Example Charts App\");\n\t\t\texpect(\n\t\t\t\tupdatedAppConfig.manifest?.component?.preload,\n\t\t\t\t\"what should preload config for this app look like now\"\n\t\t\t).to.not.include(\"native-overrides2\");\n\t\t\texpect(\n\t\t\t\tupdatedAppConfig.manifest?.component?.preload,\n\t\t\t\t\"what should preload config for this app look like now\"\n\t\t\t).to.not.include(\"native-overrides3\");\n\t\t});\n\t});\n\n\tdescribe(\"Check submitted values\", async () => {\n\t\tit(\"Adding a new preload\", async () => {\n\t\t\tconst savePreloadSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"savePreload\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\t// Click Add button\n\t\t\twrapper.find(\".button-container-primary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\t// Alias name\n\t\t\twrapper.find(\"#preload-alias\").simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"test\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// URL name\n\t\t\twrapper.find(\"#preload-url\").simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"https://assets.finsemble.com/preloads/testPreload.js\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// Assign \"Load for\" to \"All apps\"\n\t\t\twrapper.find(\"input[name='preload-usage'][value='all']\").simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"all\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(savePreloadSpy.calledOnce).to.be.true;\n\n\t\t\tconst [oldAlias, newAlias, details] = savePreloadSpy.args[0];\n\t\t\texpect(oldAlias, \"No previous alias when it's a new preload\").to.be.empty;\n\t\t\texpect(newAlias, \"alias is the same as name\").to.equal(\"test\");\n\t\t\texpect(details, \"Passed along details\").to.deep.equal({\n\t\t\t\turl: \"https://assets.finsemble.com/preloads/testPreload.js\",\n\t\t\t\tautoload: \"all\",\n\t\t\t});\n\t\t});\n\t\tit(\"Modifying a preload's URL\", async () => {\n\t\t\tconst savePreloadSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"savePreload\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\t// Click list item\n\t\t\texpect(wrapper.find(\".app-list-row .app-name\").at(1).text(), \"First item name\").to.equal(\"test\");\n\t\t\twrapper.find(\".app-list-row\").at(1).simulate(\"click\");\n\n\t\t\t// URL name\n\t\t\twrapper.find(\"#preload-url\").simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"http://assets.finsemble.com/preloads/testPreload.js\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(savePreloadSpy.calledOnce).to.be.true;\n\n\t\t\tconst [oldAlias, newAlias, details] = savePreloadSpy.args[0];\n\t\t\texpect(oldAlias, \"alias is the same as name\").to.equal(\"test\");\n\t\t\texpect(newAlias, \"alias is the same as name\").to.equal(\"test\");\n\t\t\texpect(details, \"Passed along details\").to.deep.equal({\n\t\t\t\turl: \"http://assets.finsemble.com/preloads/testPreload.js\",\n\t\t\t\tautoload: \"all\",\n\t\t\t});\n\t\t});\n\t\tit(\"Rename a value\", async () => {\n\t\t\tconst savePreloadSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"savePreload\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\t// Click list item\n\t\t\texpect(wrapper.find(\".app-list-row .app-name\").at(1).text(), \"First item name\").to.equal(\"test\");\n\t\t\twrapper.find(\".app-list-row\").at(1).simulate(\"click\");\n\n\t\t\t// Alias name\n\t\t\twrapper.find(\"#preload-alias\").simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"test2\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(savePreloadSpy.calledOnce).to.be.true;\n\n\t\t\tconst [oldAlias, newAlias, details] = savePreloadSpy.args[0];\n\t\t\texpect(oldAlias, \"alias is the same as name\").to.equal(\"test\");\n\t\t\texpect(newAlias, \"alias is the same as name\").to.equal(\"test2\");\n\t\t\texpect(details, \"Passed along details\").to.deep.equal({\n\t\t\t\turl: \"http://assets.finsemble.com/preloads/testPreload.js\",\n\t\t\t\tautoload: \"all\",\n\t\t\t});\n\t\t});\n\t\tit(\"Delete preload from the Preload edit page\", async () => {\n\t\t\tconst savePreloadSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"savePreload\");\n\t\t\tconst deletePreloadSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"deletePreload\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\t// Click list item\n\t\t\texpect(wrapper.find(\".app-list-row .app-name\").at(1).text(), \"First item name\").to.equal(\"test2\");\n\t\t\twrapper.find(\".app-list-row\").at(1).simulate(\"click\");\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".button-container-danger button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(savePreloadSpy.calledOnce).to.be.false;\n\t\t\texpect(deletePreloadSpy.calledOnce).to.be.true;\n\n\t\t\tconst [alias] = deletePreloadSpy.args[0];\n\t\t\texpect(alias, \"alias of deleted app\").to.equal(\"test2\");\n\t\t});\n\t});\n});\n"]}
1
+ {"version":3,"file":"OptionalSettingsView.spec.js","sourceRoot":"","sources":["../../../../src/components/sdd/tests/OptionalSettingsView.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { mount } from \"enzyme\";\nimport { describe, it } from \"mocha\";\nimport { expect } from \"chai\";\nimport { OptionalSettingsViewProps } from \"../OptionalSettingsView\";\nimport { Default, Empty } from \"../stories/OptionalSettingsView.stories\";\n\n// For running accessibility scans\nimport { accessibilityAssessor } from \"./a11y_helper\";\nimport { waitTick } from \"../sdd_helpers\";\n\n// For testing user interactions (like click events):\nimport sinon from \"sinon\";\n// Necessary to allow sinon to work with mocked actions (which are shown in the Actions panel in Storybook)\nimport addons, { mockChannel } from \"@storybook/addons\";\naddons.setChannel(mockChannel());\n\ndescribe(\"<OptionalSettingsView/>\", () => {\n\t// Used to clear after each interactive test using sinon\n\tafterEach(() => {\n\t\tsinon.restore();\n\t});\n\n\tit(\"should pass accessibility scans\", async () => {\n\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\texpect(await accessibilityAssessor(wrapper)).to.be.true;\n\t});\n\n\tit(\"should be empty when there are no preloads\", async () => {\n\t\tconst wrapper = mount(<Empty {...(Empty.args as OptionalSettingsViewProps)} />);\n\n\t\tconst button = wrapper.find(\"button\").last();\n\t\texpect(button.exists(), \"The button exists\").to.be.true;\n\t\texpect(button.text(), \"The button's text\").to.equal(\"Add\");\n\n\t\texpect(wrapper.find(\".app-list-empty\").exists(), \"Empty message exists\").to.be.true;\n\t\texpect(wrapper.find(\".app-list-empty\").text(), \"Empty message text\").to.contain(\"to add preloads\");\n\t\texpect(wrapper.find(\".app-list-empty.no-dropzone\").exists(), \"Empty message has no dropzone styling\").to.be.true;\n\t});\n\n\tit(\"should show preload aliases if there are registered preloads\", async () => {\n\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\tconst names = wrapper.find(\".app-name\");\n\t\texpect(names.length, \"There are 2 names listed\").to.equal(2);\n\t\tconst names_as_text = names.map((elem) => elem.text());\n\n\t\texpect(names_as_text).includes(\"native-overrides\");\n\t\texpect(names_as_text).includes(\"zoom\");\n\n\t\tconst delete_buttons = wrapper.find(\".button-container-icon.icon-delete\");\n\t\texpect(delete_buttons.length, \"There are also 2 delete buttons\").to.equal(2);\n\t});\n\n\tdescribe(\"Check app config updates\", async () => {\n\t\t/*** WARNING!!: Tests are not independent and must go in this order ***/\n\n\t\tit(\"Removing a preload\", async () => {\n\t\t\tconst buttonSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"updateApp\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\t\t\t// Click list item\n\t\t\texpect(wrapper.find(\".app-list-row .app-name\").at(1).text(), \"First item name\").to.equal(\"zoom\");\n\t\t\twrapper.find(\".app-list-row\").at(1).simulate(\"click\");\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\twrapper.find(\".emperorOption [type='checkbox']\").at(0).simulate(\"change\");\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(buttonSpy.args.length, \"Expect updateApp to be called once, because only one app was updated\").to.equal(1);\n\t\t\tconst [updatedAppId, updatedAppConfig] = buttonSpy.args[0];\n\t\t\texpect(updatedAppId, \"Which app was added\").to.equal(\"Example Charts App\");\n\t\t\texpect(\n\t\t\t\tupdatedAppConfig.manifest?.component?.preload,\n\t\t\t\t\"what should preload config for this app look like now\"\n\t\t\t).to.not.include(\"zoom\");\n\t\t});\n\t\tit(\"Adding a preload\", async () => {\n\t\t\tconst buttonSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"updateApp\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\twrapper.find(\".app-list-row\").at(1).simulate(\"click\");\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\twrapper.find(\".emperorOption [type='checkbox']\").at(0).simulate(\"change\");\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(buttonSpy.args.length, \"Expect updateApp to be called once, because only one app was updated\").to.equal(1);\n\t\t\tconst [updatedAppId, updatedAppConfig] = buttonSpy.args[0];\n\t\t\texpect(updatedAppId, \"Which app was added\").to.equal(\"Example Charts App\");\n\t\t\texpect(\n\t\t\t\tupdatedAppConfig.manifest?.component?.preload,\n\t\t\t\t\"what should preload config for this app look like now\"\n\t\t\t).to.include(\"zoom\");\n\t\t});\n\t\tit(\"Renaming a preload\", async () => {\n\t\t\tconst buttonSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"updateApp\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\twrapper.find(\".app-list-row\").at(1).simulate(\"click\");\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\twrapper.find(\"#preload-alias\").simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"zoom2\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(buttonSpy.args.length, \"Expect updateApp to be called once, because only one app was updated\").to.equal(1);\n\t\t\tconst [updatedAppId, updatedAppConfig] = buttonSpy.args[0];\n\t\t\texpect(updatedAppId, \"Which app was added\").to.equal(\"Example Charts App\");\n\t\t\texpect(\n\t\t\t\tupdatedAppConfig.manifest?.component?.preload,\n\t\t\t\t\"what should preload config for this app look like now\"\n\t\t\t).to.include(\"zoom2\");\n\t\t\texpect(\n\t\t\t\tupdatedAppConfig.manifest?.component?.preload,\n\t\t\t\t\"what should preload config for this app look like now\"\n\t\t\t).to.not.include(\"zoom\");\n\t\t});\n\t\tit(\"Unchanged preload (for apps that do and don't have the preload added\", async () => {\n\t\t\tconst buttonSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"updateApp\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\twrapper.find(\".app-list-row\").at(1).simulate(\"click\");\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(buttonSpy.args.length, \"Expect updateApp to not be called\").to.equal(0);\n\t\t});\n\t\tit(\"Renaming + adding a preload\", async () => {\n\t\t\tconst buttonSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"updateApp\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\twrapper.find(\".app-list-row\").at(0).simulate(\"click\");\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\t// Rename \"native-overrides\" to \"native-overrides2\"\n\t\t\twrapper.find(\"#preload-alias\").simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"native-overrides2\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// Add this preload to \"Example Charts App\"\n\t\t\twrapper.find(\".emperorOption [type='checkbox']\").at(0).simulate(\"change\");\n\t\t\texpect(wrapper.find(\".emperorOption [type='checkbox']\").at(0).prop(\"checked\")).to.be.true;\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(buttonSpy.args.length, \"Expect updateApp to be called once, because only one app was updated\").to.equal(1);\n\t\t\tconst [updatedAppId, updatedAppConfig] = buttonSpy.args[0];\n\t\t\texpect(updatedAppId, \"Which app was added\").to.equal(\"Example Charts App\");\n\t\t\texpect(\n\t\t\t\tupdatedAppConfig.manifest?.component?.preload,\n\t\t\t\t\"what should preload config for this app look like now\"\n\t\t\t).to.include(\"native-overrides2\");\n\t\t\texpect(\n\t\t\t\tupdatedAppConfig.manifest?.component?.preload,\n\t\t\t\t\"what should preload config for this app look like now\"\n\t\t\t).to.not.include(\"native-overrides\");\n\t\t});\n\t\tit(\"Renaming + removing a preload\", async () => {\n\t\t\tconst buttonSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"updateApp\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\twrapper.find(\".app-list-row\").at(0).simulate(\"click\");\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\t// Rename \"native-overrides2\" to \"native-overrides3\"\n\t\t\twrapper.find(\"#preload-alias\").simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"native-overrides3\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// Remove this preload to \"Example Charts App\"\n\t\t\twrapper.find(\".emperorOption [type='checkbox']\").at(0).simulate(\"change\");\n\t\t\texpect(wrapper.find(\".emperorOption [type='checkbox']\").at(0).prop(\"checked\")).to.be.false;\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(buttonSpy.args.length, \"Expect updateApp to be called once, because only one app was updated\").to.equal(1);\n\t\t\tconst [updatedAppId, updatedAppConfig] = buttonSpy.args[0];\n\t\t\texpect(updatedAppId, \"Which app was added\").to.equal(\"Example Charts App\");\n\t\t\texpect(\n\t\t\t\tupdatedAppConfig.manifest?.component?.preload,\n\t\t\t\t\"what should preload config for this app look like now\"\n\t\t\t).to.not.include(\"native-overrides2\");\n\t\t\texpect(\n\t\t\t\tupdatedAppConfig.manifest?.component?.preload,\n\t\t\t\t\"what should preload config for this app look like now\"\n\t\t\t).to.not.include(\"native-overrides3\");\n\t\t});\n\t});\n\n\tdescribe(\"Check submitted values\", async () => {\n\t\tit(\"Adding a new preload\", async () => {\n\t\t\tconst savePreloadSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"savePreload\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\t// Click Add button\n\t\t\twrapper.find(\".button-container-primary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\t// Alias name\n\t\t\twrapper.find(\"#preload-alias\").simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"test\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// URL name\n\t\t\twrapper.find(\"#preload-url\").simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"https://assets.finsemble.com/preloads/testPreload.js\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// Assign \"Load for\" to \"All apps\"\n\t\t\twrapper.find(\"input[name='preload-usage'][value='all']\").simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"all\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(savePreloadSpy.calledOnce).to.be.true;\n\n\t\t\tconst [oldAlias, newAlias, details] = savePreloadSpy.args[0];\n\t\t\texpect(oldAlias, \"No previous alias when it's a new preload\").to.be.empty;\n\t\t\texpect(newAlias, \"alias is the same as name\").to.equal(\"test\");\n\t\t\texpect(details, \"Passed along details\").to.deep.equal({\n\t\t\t\turl: \"https://assets.finsemble.com/preloads/testPreload.js\",\n\t\t\t\tautoload: \"all\",\n\t\t\t});\n\t\t});\n\t\tit(\"Modifying a preload's URL\", async () => {\n\t\t\tconst savePreloadSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"savePreload\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\t// Click list item\n\t\t\texpect(wrapper.find(\".app-list-row .app-name\").at(1).text(), \"First item name\").to.equal(\"test\");\n\t\t\twrapper.find(\".app-list-row\").at(1).simulate(\"click\");\n\n\t\t\t// URL name\n\t\t\twrapper.find(\"#preload-url\").simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"http://assets.finsemble.com/preloads/testPreload.js\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(savePreloadSpy.calledOnce).to.be.true;\n\n\t\t\tconst [oldAlias, newAlias, details] = savePreloadSpy.args[0];\n\t\t\texpect(oldAlias, \"alias is the same as name\").to.equal(\"test\");\n\t\t\texpect(newAlias, \"alias is the same as name\").to.equal(\"test\");\n\t\t\texpect(details, \"Passed along details\").to.deep.equal({\n\t\t\t\turl: \"http://assets.finsemble.com/preloads/testPreload.js\",\n\t\t\t\tautoload: \"all\",\n\t\t\t});\n\t\t});\n\t\tit(\"Rename a value\", async () => {\n\t\t\tconst savePreloadSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"savePreload\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\t// Click list item\n\t\t\texpect(wrapper.find(\".app-list-row .app-name\").at(1).text(), \"First item name\").to.equal(\"test\");\n\t\t\twrapper.find(\".app-list-row\").at(1).simulate(\"click\");\n\n\t\t\t// Alias name\n\t\t\twrapper.find(\"#preload-alias\").simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"test2\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(savePreloadSpy.calledOnce).to.be.true;\n\n\t\t\tconst [oldAlias, newAlias, details] = savePreloadSpy.args[0];\n\t\t\texpect(oldAlias, \"alias is the same as name\").to.equal(\"test\");\n\t\t\texpect(newAlias, \"alias is the same as name\").to.equal(\"test2\");\n\t\t\texpect(details, \"Passed along details\").to.deep.equal({\n\t\t\t\turl: \"http://assets.finsemble.com/preloads/testPreload.js\",\n\t\t\t\tautoload: \"all\",\n\t\t\t});\n\t\t});\n\t\tit(\"Delete preload from the Preload edit page\", async () => {\n\t\t\tconst savePreloadSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"savePreload\");\n\t\t\tconst deletePreloadSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"deletePreload\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\t// Click list item\n\t\t\texpect(wrapper.find(\".app-list-row .app-name\").at(1).text(), \"First item name\").to.equal(\"test2\");\n\t\t\twrapper.find(\".app-list-row\").at(1).simulate(\"click\");\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".button-container-danger button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(savePreloadSpy.calledOnce).to.be.false;\n\t\t\texpect(deletePreloadSpy.calledOnce).to.be.true;\n\n\t\t\tconst [alias] = deletePreloadSpy.args[0];\n\t\t\texpect(alias, \"alias of deleted app\").to.equal(\"test2\");\n\t\t});\n\t});\n});\n"]}
@@ -21,6 +21,7 @@ describe("<ProjectErrors/>", () => {
21
21
  doClick(wrapper.find(ADD_MENU_BUTTON).at(0), "ADD_MENU_BUTTON");
22
22
  await waitTick();
23
23
  wrapper.update();
24
+ // Set name as "Charts"
24
25
  wrapper
25
26
  .find("#menu-name")
26
27
  .at(0)
@@ -29,6 +30,7 @@ describe("<ProjectErrors/>", () => {
29
30
  value: "Charts",
30
31
  },
31
32
  });
33
+ // Click Save
32
34
  wrapper.find(SAVE_MENU_BUTTON).at(0).simulate("click");
33
35
  await waitTick();
34
36
  wrapper.update();
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectErrors.spec.js","sourceRoot":"","sources":["../../../../src/components/sdd/tests/ProjectErrors.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { mount, ReactWrapper } from \"enzyme\";\nimport { describe, it } from \"mocha\";\nimport { expect } from \"chai\";\nimport { DefaultSDD } from \"../stories/SmartDesktopDesigner.stories\";\nimport { waitTick } from \"../sdd_helpers\";\nimport { SmartDesktopDesignerProps } from \"../SmartDesktopDesigner\";\nimport { ACTIVE_TAB_APP_LIST_TABLE_ROW } from \"./Applications.spec\";\n\nconst PROJECT_NAME_INPUT = \"#project-name\",\n\tPROJECT_NAME_WARNING = \".project-name-error-icon\",\n\tTOOLBAR_TAB = \"#toolbar-nav-link\",\n\tADD_MENU_BUTTON = \"[data-label='Menus'] .button-container-primary.icon-before-add button\",\n\tSAVE_MENU_BUTTON = \".app-edit-actions-right .button-container-secondary button\",\n\tEMPTY_MENU_NAV_WARNING = \"#toolbar-nav-link .nav-error-icon\",\n\tPUBLISH_TAB = \"#export-nav-link\",\n\tPROJECT_ERROR = \".project-errors-container .project-error\";\n\nconst doClick = (element: ReactWrapper, name: string) => {\n\texpect(element.length, name).to.be.greaterThan(0);\n\n\telement.simulate(\"click\");\n};\n\ndescribe(\"<ProjectErrors/>\", () => {\n\tit(\"should show project errors for invalid SDD sections\", async () => {\n\t\tconst wrapper = mount(<DefaultSDD {...(DefaultSDD.args as SmartDesktopDesignerProps)} />);\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\tdoClick(wrapper.find(TOOLBAR_TAB).at(0), \"TOOLBAR_TAB\");\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\tdoClick(wrapper.find(ADD_MENU_BUTTON).at(0), \"ADD_MENU_BUTTON\");\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\t// Set name as \"Charts\"\n\t\twrapper\n\t\t\t.find(\"#menu-name\")\n\t\t\t.at(0)\n\t\t\t.simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"Charts\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t// Click Save\n\t\twrapper.find(SAVE_MENU_BUTTON).at(0).simulate(\"click\");\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\texpect(wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).length, \"Menu list shows 1 empty menu\").to.be.equal(1);\n\n\t\texpect(wrapper.find(EMPTY_MENU_NAV_WARNING).length, \"Empty Menu Nav Warning\").to.equal(0);\n\n\t\twrapper.find(PUBLISH_TAB).at(0).simulate(\"click\");\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\texpect(wrapper.find(EMPTY_MENU_NAV_WARNING).length, \"Empty Menu Nav Warning\").to.equal(1);\n\t\texpect(wrapper.find(PROJECT_ERROR).length, \"Project Errors\").to.equal(1);\n\t});\n});\n"]}
1
+ {"version":3,"file":"ProjectErrors.spec.js","sourceRoot":"","sources":["../../../../src/components/sdd/tests/ProjectErrors.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { mount, ReactWrapper } from \"enzyme\";\nimport { describe, it } from \"mocha\";\nimport { expect } from \"chai\";\nimport { DefaultSDD } from \"../stories/SmartDesktopDesigner.stories\";\nimport { waitTick } from \"../sdd_helpers\";\nimport { SmartDesktopDesignerProps } from \"../SmartDesktopDesigner\";\nimport { ACTIVE_TAB_APP_LIST_TABLE_ROW } from \"./Applications.spec\";\n\nconst PROJECT_NAME_INPUT = \"#project-name\",\n\tPROJECT_NAME_WARNING = \".project-name-error-icon\",\n\tTOOLBAR_TAB = \"#toolbar-nav-link\",\n\tADD_MENU_BUTTON = \"[data-label='Menus'] .button-container-primary.icon-before-add button\",\n\tSAVE_MENU_BUTTON = \".app-edit-actions-right .button-container-secondary button\",\n\tEMPTY_MENU_NAV_WARNING = \"#toolbar-nav-link .nav-error-icon\",\n\tPUBLISH_TAB = \"#export-nav-link\",\n\tPROJECT_ERROR = \".project-errors-container .project-error\";\n\nconst doClick = (element: ReactWrapper, name: string) => {\n\texpect(element.length, name).to.be.greaterThan(0);\n\n\telement.simulate(\"click\");\n};\n\ndescribe(\"<ProjectErrors/>\", () => {\n\tit(\"should show project errors for invalid SDD sections\", async () => {\n\t\tconst wrapper = mount(<DefaultSDD {...(DefaultSDD.args as SmartDesktopDesignerProps)} />);\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\tdoClick(wrapper.find(TOOLBAR_TAB).at(0), \"TOOLBAR_TAB\");\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\tdoClick(wrapper.find(ADD_MENU_BUTTON).at(0), \"ADD_MENU_BUTTON\");\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\t// Set name as \"Charts\"\n\t\twrapper\n\t\t\t.find(\"#menu-name\")\n\t\t\t.at(0)\n\t\t\t.simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"Charts\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t// Click Save\n\t\twrapper.find(SAVE_MENU_BUTTON).at(0).simulate(\"click\");\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\texpect(wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).length, \"Menu list shows 1 empty menu\").to.be.equal(1);\n\n\t\texpect(wrapper.find(EMPTY_MENU_NAV_WARNING).length, \"Empty Menu Nav Warning\").to.equal(0);\n\n\t\twrapper.find(PUBLISH_TAB).at(0).simulate(\"click\");\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\texpect(wrapper.find(EMPTY_MENU_NAV_WARNING).length, \"Empty Menu Nav Warning\").to.equal(1);\n\t\texpect(wrapper.find(PROJECT_ERROR).length, \"Project Errors\").to.equal(1);\n\t});\n});\n"]}
@@ -12,7 +12,7 @@ describe("<Themes/>", () => {
12
12
  it.skip("should pass accessibility scans", async () => {
13
13
  const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
14
14
  expect(await accessibilityAssessor(wrapper)).to.be.true;
15
- }).timeout(5000);
15
+ }).timeout(5000); // This scan is very heavy (4s)
16
16
  it("should change tab panels with the tab 'Images' is chosen", () => {
17
17
  const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
18
18
  wrapper.find("[role='tab']").at(1).simulate("click");
@@ -1 +1 @@
1
- {"version":3,"file":"Themes.spec.js","sourceRoot":"","sources":["../../../../src/components/sdd/tests/Themes.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 { ThemeProps } from \"../Themes\";\nimport { Page } from \"../stories/Themes.stories\";\nimport { accessibilityAssessor } from \"./a11y_helper\";\n\ndescribe(\"<Themes/>\", () => {\n\tafterEach(() => {\n\t\tsinon.restore();\n\t});\n\tit.skip(\"should pass accessibility scans\", async () => {\n\t\tconst wrapper = mount(<Page {...(Page.args as ThemeProps)} />);\n\n\t\texpect(await accessibilityAssessor(wrapper)).to.be.true;\n\t}).timeout(5000); // This scan is very heavy (4s)\n\n\tit(\"should change tab panels with the tab 'Images' is chosen\", () => {\n\t\tconst wrapper = mount(<Page {...(Page.args as ThemeProps)} />);\n\t\twrapper.find(\"[role='tab']\").at(1).simulate(\"click\");\n\t\texpect(wrapper.find(\".visible .images-section\").exists()).to.be.true;\n\t\texpect(wrapper.find(\".visible .theme-settings\").exists()).to.be.false;\n\t});\n\tit(\"should change tab panels with the tab 'Themes' is chosen\", () => {\n\t\tconst wrapper = mount(<Page {...(Page.args as ThemeProps)} />);\n\t\twrapper.find(\"[role='tab']\").at(0).simulate(\"click\");\n\t\texpect(wrapper.find(\".visible .images-section\").exists()).to.be.false;\n\t\texpect(wrapper.find(\".visible .theme-settings\").exists()).to.be.true;\n\t});\n\tit(\"should launch an Are You Sure dialog when the Dark Theme button is clicked\", () => {\n\t\tconst buttonSpy = sinon.spy(Page.args as ThemeProps, \"areYouSure\");\n\t\tconst wrapper = mount(<Page {...(Page.args as ThemeProps)} />);\n\t\twrapper.find(\".template-row button\").at(0).simulate(\"click\");\n\t\texpect(buttonSpy.calledOnce).to.be.true;\n\t});\n\tit(\"should launch an Are You Sure dialog when the Light Theme button is clicked\", () => {\n\t\tconst buttonSpy = sinon.spy(Page.args as ThemeProps, \"areYouSure\");\n\t\tconst wrapper = mount(<Page {...(Page.args as ThemeProps)} />);\n\t\twrapper.find(\".template-row button\").at(1).simulate(\"click\");\n\t\texpect(buttonSpy.calledOnce).to.be.true;\n\t});\n\tit(\"should change the color values when the Light Theme is chosen\", () => {\n\t\tconst wrapper = mount(<Page {...(Page.args as ThemeProps)} />);\n\t\twrapper.find(\".template-row button\").at(1).simulate(\"click\");\n\t\texpect(wrapper.find(\"[type='color']\").first().prop(\"value\")).to.equal(\"#2C2C2C\");\n\t});\n\tit(\"should change the color values when the Dark Theme is chosen\", () => {\n\t\tconst wrapper = mount(<Page {...(Page.args as ThemeProps)} />);\n\t\twrapper.find(\".template-row button\").at(1).simulate(\"click\");\n\t\twrapper.find(\".template-row button\").at(0).simulate(\"click\");\n\t\texpect(wrapper.find(\"[type='color']\").first().prop(\"value\")).to.equal(\"#ffffff\");\n\t});\n});\n"]}
1
+ {"version":3,"file":"Themes.spec.js","sourceRoot":"","sources":["../../../../src/components/sdd/tests/Themes.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 { ThemeProps } from \"../Themes\";\nimport { Page } from \"../stories/Themes.stories\";\nimport { accessibilityAssessor } from \"./a11y_helper\";\n\ndescribe(\"<Themes/>\", () => {\n\tafterEach(() => {\n\t\tsinon.restore();\n\t});\n\tit.skip(\"should pass accessibility scans\", async () => {\n\t\tconst wrapper = mount(<Page {...(Page.args as ThemeProps)} />);\n\n\t\texpect(await accessibilityAssessor(wrapper)).to.be.true;\n\t}).timeout(5000); // This scan is very heavy (4s)\n\n\tit(\"should change tab panels with the tab 'Images' is chosen\", () => {\n\t\tconst wrapper = mount(<Page {...(Page.args as ThemeProps)} />);\n\t\twrapper.find(\"[role='tab']\").at(1).simulate(\"click\");\n\t\texpect(wrapper.find(\".visible .images-section\").exists()).to.be.true;\n\t\texpect(wrapper.find(\".visible .theme-settings\").exists()).to.be.false;\n\t});\n\tit(\"should change tab panels with the tab 'Themes' is chosen\", () => {\n\t\tconst wrapper = mount(<Page {...(Page.args as ThemeProps)} />);\n\t\twrapper.find(\"[role='tab']\").at(0).simulate(\"click\");\n\t\texpect(wrapper.find(\".visible .images-section\").exists()).to.be.false;\n\t\texpect(wrapper.find(\".visible .theme-settings\").exists()).to.be.true;\n\t});\n\tit(\"should launch an Are You Sure dialog when the Dark Theme button is clicked\", () => {\n\t\tconst buttonSpy = sinon.spy(Page.args as ThemeProps, \"areYouSure\");\n\t\tconst wrapper = mount(<Page {...(Page.args as ThemeProps)} />);\n\t\twrapper.find(\".template-row button\").at(0).simulate(\"click\");\n\t\texpect(buttonSpy.calledOnce).to.be.true;\n\t});\n\tit(\"should launch an Are You Sure dialog when the Light Theme button is clicked\", () => {\n\t\tconst buttonSpy = sinon.spy(Page.args as ThemeProps, \"areYouSure\");\n\t\tconst wrapper = mount(<Page {...(Page.args as ThemeProps)} />);\n\t\twrapper.find(\".template-row button\").at(1).simulate(\"click\");\n\t\texpect(buttonSpy.calledOnce).to.be.true;\n\t});\n\tit(\"should change the color values when the Light Theme is chosen\", () => {\n\t\tconst wrapper = mount(<Page {...(Page.args as ThemeProps)} />);\n\t\twrapper.find(\".template-row button\").at(1).simulate(\"click\");\n\t\texpect(wrapper.find(\"[type='color']\").first().prop(\"value\")).to.equal(\"#2C2C2C\");\n\t});\n\tit(\"should change the color values when the Dark Theme is chosen\", () => {\n\t\tconst wrapper = mount(<Page {...(Page.args as ThemeProps)} />);\n\t\twrapper.find(\".template-row button\").at(1).simulate(\"click\");\n\t\twrapper.find(\".template-row button\").at(0).simulate(\"click\");\n\t\texpect(wrapper.find(\"[type='color']\").first().prop(\"value\")).to.equal(\"#ffffff\");\n\t});\n});\n"]}
@@ -5,7 +5,9 @@ import { expect } from "chai";
5
5
  import { DefaultApplications, EmptyApplications, Long } from "../stories/Toolbar.stories";
6
6
  import { getToolbarArgs } from "../fixtures/apps";
7
7
  import { waitTick } from "../sdd_helpers";
8
+ // For running accessibility scans
8
9
  import { accessibilityAssessor } from "./a11y_helper";
10
+ // Necessary to allow sinon to work with mocked actions (which are shown in the Actions panel in Storybook)
9
11
  import addons, { mockChannel } from "@storybook/addons";
10
12
  addons.setChannel(mockChannel());
11
13
  export const ADD_NEW_APP_BUTTON = ".icon-before-add button", ACTIVE_TAB_APP_LIST_TABLE_ROW = ".app-list-row", APP_LIST_EMPTY_MESSAGE = ".app-list-empty", PAGE_HEADER = ".view-title .leftSide", PAGE_HEADER_BUTTON = ".view-title .leftSide button", SETUP_WIZARD_BUTTON = ".tile-type-buttons .icon-wizard button", SETUP_MANUAL_BUTTON = ".tile-type-buttons .icon-manual button", APP_ACCESS_RULE = ".app-edit-access-item", APP_ACCESS_BLOCKED = ".app-edit-access-blocked", QUICK_ADD_APP = ".quick-add-app", QUICK_ADD_APP_URL = ".quick-add-app #app-url", QUICK_ADD_APP_BUTTON = ".save-button-container button";
@@ -14,6 +16,7 @@ const preventable = {
14
16
  stopPropagation: () => { },
15
17
  };
16
18
  describe("SDD: <Toolbar /> - Menu tab", () => {
19
+ // Example accessibility scan
17
20
  it("should pass accessibility scans", async () => {
18
21
  const wrapper = mount(React.createElement(DefaultApplications, Object.assign({}, DefaultApplications.args)));
19
22
  expect(await accessibilityAssessor(wrapper)).to.be.true;
@@ -113,8 +116,11 @@ describe("SDD: <Toolbar /> - Menu tab", () => {
113
116
  const wrapper = mount(React.createElement(DefaultApplications, Object.assign({}, getToolbarArgs("default"))));
114
117
  await waitTick();
115
118
  wrapper.update();
119
+ // Click "Add" button
116
120
  wrapper.find(ADD_NEW_APP_BUTTON).first().simulate("click");
121
+ // Click "Back" button
117
122
  wrapper.find("button").first().simulate("click");
123
+ // expect(wrapper.find(".visible div[data-label='Menus']").exists(), "Menus Tab is visible").to.be.true;
118
124
  expect(wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).length, "Still only 1 menu in list").to.be.equal(1);
119
125
  });
120
126
  it("MenuEdit: click Add New, then click Cancel, then see menu list has not changed", async () => {
@@ -122,7 +128,9 @@ describe("SDD: <Toolbar /> - Menu tab", () => {
122
128
  await waitTick();
123
129
  wrapper.update();
124
130
  expect(wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).length, "Only 1 menu in list").to.be.equal(1);
131
+ // Click "Add" button
125
132
  wrapper.find(ADD_NEW_APP_BUTTON).first().simulate("click");
133
+ // Click "Back" button
126
134
  wrapper.find("button").first().simulate("click");
127
135
  expect(wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).length, "Still only 1 menu in list").to.be.equal(1);
128
136
  });
@@ -131,7 +139,9 @@ describe("SDD: <Toolbar /> - Menu tab", () => {
131
139
  await waitTick();
132
140
  wrapper.update();
133
141
  expect(wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).length, "Only 1 menu in list").to.be.equal(1);
142
+ // Click "Add" button
134
143
  wrapper.find(ADD_NEW_APP_BUTTON).first().simulate("click");
144
+ // Set name as "Charts"
135
145
  wrapper
136
146
  .find("#menu-name")
137
147
  .at(0)
@@ -140,8 +150,10 @@ describe("SDD: <Toolbar /> - Menu tab", () => {
140
150
  value: "Charts",
141
151
  },
142
152
  });
153
+ // Check "Example Charts App"
143
154
  wrapper.find("input[type='checkbox']").at(0).simulate("change");
144
155
  console.log(6);
156
+ // Click Save
145
157
  wrapper.find("button").at(1).simulate("click");
146
158
  await waitTick();
147
159
  wrapper.update();
@@ -151,7 +163,9 @@ describe("SDD: <Toolbar /> - Menu tab", () => {
151
163
  const wrapper = mount(React.createElement(DefaultApplications, Object.assign({}, getToolbarArgs("default"))));
152
164
  await waitTick();
153
165
  wrapper.update();
166
+ // Click Examples
154
167
  wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).at(0).simulate("click");
168
+ // Change name to Hello World
155
169
  wrapper
156
170
  .find("#menu-name")
157
171
  .at(0)
@@ -160,29 +174,39 @@ describe("SDD: <Toolbar /> - Menu tab", () => {
160
174
  value: "Hello World",
161
175
  },
162
176
  });
177
+ // Click Save
163
178
  wrapper.find("button").at(1).simulate("click");
164
179
  await waitTick();
165
180
  wrapper.update();
181
+ // Confirm name is Hello World
166
182
  expect(wrapper.find("[role='listitem']").at(0).text()).contains("Hello World");
167
183
  });
168
184
  it("selected applications changes to a menu should persist", async () => {
169
185
  const wrapper = mount(React.createElement(DefaultApplications, Object.assign({}, getToolbarArgs("default"))));
170
186
  await waitTick();
171
187
  wrapper.update();
188
+ // Click Examples
172
189
  wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).at(0).simulate("click");
190
+ // Select items
173
191
  wrapper.find("input[type='checkbox']").at(2).simulate("change");
192
+ // Click save
174
193
  wrapper.find("button").at(1).simulate("click");
175
194
  await waitTick();
176
195
  wrapper.update();
196
+ // Click examples
177
197
  wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).at(0).simulate("click");
198
+ // Confirm items still present
178
199
  expect(wrapper.find("input[type='checkbox']").at(2).prop("checked")).to.be.true;
179
200
  });
180
201
  it("should not persist menu name when saving multiple menus", async () => {
181
202
  const wrapper = mount(React.createElement(DefaultApplications, Object.assign({}, getToolbarArgs("default"))));
203
+ // Click "Add" button
182
204
  wrapper.find(ADD_NEW_APP_BUTTON).first().simulate("click");
183
205
  await waitTick();
206
+ // Confirm name field is empty
184
207
  wrapper.update();
185
208
  expect(wrapper.find("#menu-name").first().prop("value")).to.be.empty;
209
+ // Change name to Test
186
210
  wrapper
187
211
  .find("#menu-name")
188
212
  .at(0)
@@ -191,13 +215,42 @@ describe("SDD: <Toolbar /> - Menu tab", () => {
191
215
  value: "Test",
192
216
  },
193
217
  });
218
+ // Click save
194
219
  wrapper.find("button").at(1).simulate("click");
195
220
  await waitTick();
196
221
  wrapper.update();
222
+ // Click "Add" button
197
223
  wrapper.find(ADD_NEW_APP_BUTTON).first().simulate("click");
198
224
  await waitTick();
225
+ // Confirm name field is empty
199
226
  wrapper.update();
200
227
  expect(wrapper.find("#menu-name").first().prop("value")).to.be.empty;
201
228
  });
229
+ // it("should show a warning icon if an empty menu is created", async () => {
230
+ // const wrapper = mount(<DefaultApplications {...getToolbarArgs("default")} />);
231
+ // // Click "Add" button
232
+ // wrapper.find(ADD_NEW_APP_BUTTON).first().simulate("click");
233
+ // await waitTick();
234
+ // // Confirm name field is empty
235
+ // wrapper.update();
236
+ // expect(wrapper.find("#menu-name").first().prop("value")).to.be.empty;
237
+ // // Change name to Test
238
+ // wrapper
239
+ // .find("#menu-name")
240
+ // .at(0)
241
+ // .simulate("change", {
242
+ // target: {
243
+ // value: "Test",
244
+ // },
245
+ // });
246
+ // // Click save
247
+ // wrapper.find("button").at(1).simulate("click");
248
+ // await waitTick();
249
+ // wrapper.update();
250
+ // expect(
251
+ // wrapper.find(".app-list-row").at(1).find(".tooltip-icon-warn").exists(),
252
+ // "Warning tooltip present in 2nd row"
253
+ // ).to.be.true;
254
+ // });
202
255
  });
203
256
  //# sourceMappingURL=Toolbar.spec.js.map