@finsemble/finsemble-ui 6.6.1 → 7.0.0-beta-X

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 (902) hide show
  1. package/package.json +31 -43
  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 +4 -11
  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 -48
  32. package/react/assets/css/finsemble.css +6 -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 +15 -3
  36. package/react/assets/css/menus.css +12 -12
  37. package/react/assets/css/notificationsCenter.css +49 -33
  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 +40 -0
  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 +29 -26
  45. package/react/assets/css/windowTitleBar.css +86 -40
  46. package/react/assets/icons/server.svg +26 -0
  47. package/react/componentTemplateGenerator.js +3 -2
  48. package/react/componentTemplateGenerator.js.map +1 -1
  49. package/react/components/FinsembleProvider.d.ts +7 -0
  50. package/react/components/FinsembleProvider.js +2 -0
  51. package/react/components/FinsembleProvider.js.map +1 -1
  52. package/react/components/appCatalog/AppCatalog.d.ts +4 -0
  53. package/react/components/appCatalog/AppCatalog.js +4 -0
  54. package/react/components/appCatalog/AppCatalog.js.map +1 -1
  55. package/react/components/appCatalog/AppCatalogComponent.d.ts +58 -0
  56. package/react/components/appCatalog/AppCatalogComponent.js +70 -1
  57. package/react/components/appCatalog/AppCatalogComponent.js.map +1 -1
  58. package/react/components/appCatalog/components/AppCard.d.ts +35 -0
  59. package/react/components/appCatalog/components/AppCard.js +42 -0
  60. package/react/components/appCatalog/components/AppCard.js.map +1 -1
  61. package/react/components/appCatalog/components/AppResults.d.ts +10 -0
  62. package/react/components/appCatalog/components/AppResults.js +24 -0
  63. package/react/components/appCatalog/components/AppResults.js.map +1 -1
  64. package/react/components/appCatalog/components/Carousel.d.ts +26 -0
  65. package/react/components/appCatalog/components/Carousel.js +34 -0
  66. package/react/components/appCatalog/components/Carousel.js.map +1 -1
  67. package/react/components/appCatalog/components/EmptyResults.d.ts +4 -0
  68. package/react/components/appCatalog/components/EmptyResults.js +8 -0
  69. package/react/components/appCatalog/components/EmptyResults.js.map +1 -1
  70. package/react/components/appCatalog/components/Hero.d.ts +15 -0
  71. package/react/components/appCatalog/components/Hero.js +15 -0
  72. package/react/components/appCatalog/components/Hero.js.map +1 -1
  73. package/react/components/appCatalog/components/Home.d.ts +6 -4
  74. package/react/components/appCatalog/components/Home.js +10 -0
  75. package/react/components/appCatalog/components/Home.js.map +1 -1
  76. package/react/components/appCatalog/components/SearchBar.d.ts +31 -0
  77. package/react/components/appCatalog/components/SearchBar.js +33 -0
  78. package/react/components/appCatalog/components/SearchBar.js.map +1 -1
  79. package/react/components/appCatalog/components/Showcase/AppDescription.d.ts +5 -0
  80. package/react/components/appCatalog/components/Showcase/AppDescription.js +9 -0
  81. package/react/components/appCatalog/components/Showcase/AppDescription.js.map +1 -1
  82. package/react/components/appCatalog/components/Showcase/AppDevNotes.d.ts +7 -0
  83. package/react/components/appCatalog/components/Showcase/AppDevNotes.js +15 -0
  84. package/react/components/appCatalog/components/Showcase/AppDevNotes.js.map +1 -1
  85. package/react/components/appCatalog/components/Showcase/AppShowcase.d.ts +17 -0
  86. package/react/components/appCatalog/components/Showcase/AppShowcase.js +25 -0
  87. package/react/components/appCatalog/components/Showcase/AppShowcase.js.map +1 -1
  88. package/react/components/appCatalog/components/Showcase/Header.d.ts +7 -0
  89. package/react/components/appCatalog/components/Showcase/Header.js +12 -0
  90. package/react/components/appCatalog/components/Showcase/Header.js.map +1 -1
  91. package/react/components/appCatalog/components/Showcase/ImageCarousel.d.ts +7 -0
  92. package/react/components/appCatalog/components/Showcase/ImageCarousel.js +11 -0
  93. package/react/components/appCatalog/components/Showcase/ImageCarousel.js.map +1 -1
  94. package/react/components/appCatalog/components/Showcase/Modal.d.ts +10 -0
  95. package/react/components/appCatalog/components/Showcase/Modal.js +10 -0
  96. package/react/components/appCatalog/components/Showcase/Modal.js.map +1 -1
  97. package/react/components/appCatalog/components/Showcase/ReleaseNotes.d.ts +5 -0
  98. package/react/components/appCatalog/components/Showcase/ReleaseNotes.js +9 -0
  99. package/react/components/appCatalog/components/Showcase/ReleaseNotes.js.map +1 -1
  100. package/react/components/appCatalog/components/Showcase/SupportNotes.d.ts +6 -0
  101. package/react/components/appCatalog/components/Showcase/SupportNotes.js +11 -0
  102. package/react/components/appCatalog/components/Showcase/SupportNotes.js.map +1 -1
  103. package/react/components/appCatalog/components/Showcase/VersionNotes.d.ts +5 -0
  104. package/react/components/appCatalog/components/Showcase/VersionNotes.js +9 -0
  105. package/react/components/appCatalog/components/Showcase/VersionNotes.js.map +1 -1
  106. package/react/components/appCatalog/components/Tag.d.ts +6 -0
  107. package/react/components/appCatalog/components/Tag.js +10 -0
  108. package/react/components/appCatalog/components/Tag.js.map +1 -1
  109. package/react/components/appCatalog/components/Toast.d.ts +5 -0
  110. package/react/components/appCatalog/components/Toast.js +9 -0
  111. package/react/components/appCatalog/components/Toast.js.map +1 -1
  112. package/react/components/appCatalog/components/helpers.js +1 -0
  113. package/react/components/appCatalog/components/helpers.js.map +1 -1
  114. package/react/components/appCatalog/modules/AppDirectory.d.ts +5 -0
  115. package/react/components/appCatalog/modules/AppDirectory.js +5 -0
  116. package/react/components/appCatalog/modules/AppDirectory.js.map +1 -1
  117. package/react/components/appCatalog/modules/FDC3.d.ts +37 -0
  118. package/react/components/appCatalog/modules/FDC3.js +40 -0
  119. package/react/components/appCatalog/modules/FDC3.js.map +1 -1
  120. package/react/components/appCatalog/stores/appStore.js +1 -0
  121. package/react/components/appCatalog/stores/appStore.js.map +1 -1
  122. package/react/components/appCatalog/stores/storeActions.d.ts +91 -0
  123. package/react/components/appCatalog/stores/storeActions.js +116 -1
  124. package/react/components/appCatalog/stores/storeActions.js.map +1 -1
  125. package/react/components/common/ButtonIcon.js +1 -1
  126. package/react/components/common/ButtonIcon.js.map +1 -1
  127. package/react/components/common/ButtonRow.js +2 -2
  128. package/react/components/common/ButtonRow.js.map +1 -1
  129. package/react/components/common/Checkbox.d.ts +1 -0
  130. package/react/components/common/Checkbox.js +3 -3
  131. package/react/components/common/Checkbox.js.map +1 -1
  132. package/react/components/common/ColorPicker.d.ts +5 -0
  133. package/react/components/common/ColorPicker.js +56 -15
  134. package/react/components/common/ColorPicker.js.map +1 -1
  135. package/react/components/common/DropZone.d.ts +11 -0
  136. package/react/components/common/DropZone.js +21 -1
  137. package/react/components/common/DropZone.js.map +1 -1
  138. package/react/components/common/DropdownButton.d.ts +4 -0
  139. package/react/components/common/DropdownButton.js +4 -0
  140. package/react/components/common/DropdownButton.js.map +1 -1
  141. package/react/components/common/ErrorBoundary.d.ts +34 -0
  142. package/react/components/common/ErrorBoundary.js +43 -0
  143. package/react/components/common/ErrorBoundary.js.map +1 -0
  144. package/react/components/common/FileInput.d.ts +8 -1
  145. package/react/components/common/FileInput.js +19 -4
  146. package/react/components/common/FileInput.js.map +1 -1
  147. package/react/components/common/FinsembleIcon.d.ts +13 -2
  148. package/react/components/common/FinsembleIcon.js +61 -5
  149. package/react/components/common/FinsembleIcon.js.map +1 -1
  150. package/react/components/common/FinsembleLink.d.ts +6 -0
  151. package/react/components/common/FinsembleLink.js +12 -0
  152. package/react/components/common/FinsembleLink.js.map +1 -0
  153. package/react/components/common/FinsembleSelect.js +5 -1
  154. package/react/components/common/FinsembleSelect.js.map +1 -1
  155. package/react/components/common/FinsembleToggle.d.ts +1 -2
  156. package/react/components/common/FinsembleToggle.js +2 -6
  157. package/react/components/common/FinsembleToggle.js.map +1 -1
  158. package/react/components/common/FinsembleToggleButtonBar.d.ts +13 -0
  159. package/react/components/common/FinsembleToggleButtonBar.js +44 -0
  160. package/react/components/common/FinsembleToggleButtonBar.js.map +1 -0
  161. package/react/components/common/InputTable.d.ts +10 -3
  162. package/react/components/common/InputTable.js +20 -13
  163. package/react/components/common/InputTable.js.map +1 -1
  164. package/react/components/common/Tab.js +36 -5
  165. package/react/components/common/Tab.js.map +1 -1
  166. package/react/components/common/TimeSelect.js +34 -3
  167. package/react/components/common/TimeSelect.js.map +1 -1
  168. package/react/components/common/Tooltip.js +2 -0
  169. package/react/components/common/Tooltip.js.map +1 -1
  170. package/react/components/common/css/FinsembleToggle.css +22 -0
  171. package/react/components/common/css/accordion.css +9 -6
  172. package/react/components/common/css/application-edit-page.css +48 -45
  173. package/react/components/common/css/button.css +10 -5
  174. package/react/components/common/css/color-picker.css +3 -3
  175. package/react/components/common/css/drop-zone.css +2 -6
  176. package/react/components/common/css/file-input.css +5 -5
  177. package/react/components/common/css/header.css +3 -2
  178. package/react/components/common/css/icon.css +1 -1
  179. package/react/components/common/css/loading-spinner.css +7 -12
  180. package/react/components/common/css/selector.css +4 -4
  181. package/react/components/common/css/styles.css +22 -16
  182. package/react/components/common/css/tab.css +14 -14
  183. package/react/components/common/css/time-select.css +2 -1
  184. package/react/components/common/css/toggle.css +4 -12
  185. package/react/components/common/css/tooltip.css +2 -3
  186. package/react/components/common/file_helpers.js +2 -0
  187. package/react/components/common/file_helpers.js.map +1 -1
  188. package/react/components/common/helpers.js +12 -1
  189. package/react/components/common/helpers.js.map +1 -1
  190. package/react/components/common/stories/ColorPicker.stories.js +9 -11
  191. package/react/components/common/stories/ColorPicker.stories.js.map +1 -1
  192. package/react/components/common/stories/FileInput.stories.d.ts +3 -1
  193. package/react/components/common/stories/FileInput.stories.js +12 -0
  194. package/react/components/common/stories/FileInput.stories.js.map +1 -1
  195. package/react/components/common/stories/FinsembleToggle.stories.d.ts +1 -2
  196. package/react/components/common/stories/FinsembleToggle.stories.js +0 -7
  197. package/react/components/common/stories/FinsembleToggle.stories.js.map +1 -1
  198. package/react/components/common/stories/FinsembleToggleButtonBar.stories.d.ts +14 -0
  199. package/react/components/common/stories/FinsembleToggleButtonBar.stories.js +97 -0
  200. package/react/components/common/stories/FinsembleToggleButtonBar.stories.js.map +1 -0
  201. package/react/components/common/stories/InputTable.stories.d.ts +4 -3
  202. package/react/components/common/stories/InputTable.stories.js +18 -8
  203. package/react/components/common/stories/InputTable.stories.js.map +1 -1
  204. package/react/components/common/tests/Accordion.spec.js +6 -0
  205. package/react/components/common/tests/Accordion.spec.js.map +1 -1
  206. package/react/components/common/tests/ButtonRow.spec.js +5 -0
  207. package/react/components/common/tests/ButtonRow.spec.js.map +1 -1
  208. package/react/components/common/tests/Checkbox.spec.js +1 -0
  209. package/react/components/common/tests/Checkbox.spec.js.map +1 -1
  210. package/react/components/common/tests/ColorPicker.spec.js +6 -0
  211. package/react/components/common/tests/ColorPicker.spec.js.map +1 -1
  212. package/react/components/common/tests/DropZone.spec.js +1 -0
  213. package/react/components/common/tests/DropZone.spec.js.map +1 -1
  214. package/react/components/common/tests/FileInput.spec.js +22 -0
  215. package/react/components/common/tests/FileInput.spec.js.map +1 -1
  216. package/react/components/common/tests/FinsembleSelect.spec.js +1 -0
  217. package/react/components/common/tests/FinsembleSelect.spec.js.map +1 -1
  218. package/react/components/common/tests/FinsembleToggle.spec.js +2 -6
  219. package/react/components/common/tests/FinsembleToggle.spec.js.map +1 -1
  220. package/react/components/common/tests/FinsembleToggleButtonBar.spec.d.ts +1 -0
  221. package/react/components/common/tests/FinsembleToggleButtonBar.spec.js +41 -0
  222. package/react/components/common/tests/FinsembleToggleButtonBar.spec.js.map +1 -0
  223. package/react/components/common/tests/InputTable.spec.js +3 -3
  224. package/react/components/common/tests/InputTable.spec.js.map +1 -1
  225. package/react/components/common/tests/TimeSelect.spec.js +4 -0
  226. package/react/components/common/tests/TimeSelect.spec.js.map +1 -1
  227. package/react/components/common/tests/Tooltip.spec.js +16 -0
  228. package/react/components/common/tests/Tooltip.spec.js.map +1 -1
  229. package/react/components/favorites/FavoriteMaker.d.ts +8 -0
  230. package/react/components/favorites/FavoriteMaker.js +10 -1
  231. package/react/components/favorites/FavoriteMaker.js.map +1 -1
  232. package/react/components/favorites/FavoritesShell.d.ts +4 -0
  233. package/react/components/favorites/FavoritesShell.js +13 -1
  234. package/react/components/favorites/FavoritesShell.js.map +1 -1
  235. package/react/components/favorites/FavoritesShell.spec.js +3 -0
  236. package/react/components/favorites/FavoritesShell.spec.js.map +1 -1
  237. package/react/components/fdc3Resolver/ResolverContainer.js +12 -7
  238. package/react/components/fdc3Resolver/ResolverContainer.js.map +1 -1
  239. package/react/components/fdc3Resolver/ResolverDialog.css +16 -3
  240. package/react/components/fdc3Resolver/ResolverDialog.js +7 -2
  241. package/react/components/fdc3Resolver/ResolverDialog.js.map +1 -1
  242. package/react/components/fdc3Resolver/ResolverDialog.spec.js +3 -2
  243. package/react/components/fdc3Resolver/ResolverDialog.spec.js.map +1 -1
  244. package/react/components/fdc3Resolver/ResolverDialog.stories.js +2 -0
  245. package/react/components/fdc3Resolver/ResolverDialog.stories.js.map +1 -1
  246. package/react/components/icon/Icon.d.ts +14 -1
  247. package/react/components/icon/Icon.js +42 -1
  248. package/react/components/icon/Icon.js.map +1 -1
  249. package/react/components/legacyControls/FinsembleDialog.d.ts +4 -0
  250. package/react/components/legacyControls/FinsembleDialog.js +16 -1
  251. package/react/components/legacyControls/FinsembleDialog.js.map +1 -1
  252. package/react/components/legacyControls/FinsembleDialogButton.d.ts +3 -0
  253. package/react/components/legacyControls/FinsembleDialogButton.js +6 -1
  254. package/react/components/legacyControls/FinsembleDialogButton.js.map +1 -1
  255. package/react/components/legacyControls/FinsembleDialogQuestion.d.ts +7 -0
  256. package/react/components/legacyControls/FinsembleDialogQuestion.js +7 -0
  257. package/react/components/legacyControls/FinsembleDialogQuestion.js.map +1 -1
  258. package/react/components/legacyControls/FinsembleDialogTextInput.d.ts +3 -0
  259. package/react/components/legacyControls/FinsembleDialogTextInput.js +14 -0
  260. package/react/components/legacyControls/FinsembleDialogTextInput.js.map +1 -1
  261. package/react/components/legacyControls/FinsembleDnDContext.d.ts +19 -0
  262. package/react/components/legacyControls/FinsembleDnDContext.js +133 -8
  263. package/react/components/legacyControls/FinsembleDnDContext.js.map +1 -1
  264. package/react/components/legacyControls/FinsembleDraggable.d.ts +3 -0
  265. package/react/components/legacyControls/FinsembleDraggable.js +3 -0
  266. package/react/components/legacyControls/FinsembleDraggable.js.map +1 -1
  267. package/react/components/legacyControls/FinsembleHoverDetector.d.ts +15 -0
  268. package/react/components/legacyControls/FinsembleHoverDetector.js +26 -1
  269. package/react/components/legacyControls/FinsembleHoverDetector.js.map +1 -1
  270. package/react/components/legacyControls/FinsembleMenuSection.d.ts +4 -0
  271. package/react/components/legacyControls/FinsembleMenuSection.js +38 -0
  272. package/react/components/legacyControls/FinsembleMenuSection.js.map +1 -1
  273. package/react/components/legacyControls/tests/FinsembleDialogButton.spec.js +1 -0
  274. package/react/components/legacyControls/tests/FinsembleDialogButton.spec.js.map +1 -1
  275. package/react/components/legacyControls/tests/FinsembleDialogTextInput.spec.js +1 -0
  276. package/react/components/legacyControls/tests/FinsembleDialogTextInput.spec.js.map +1 -1
  277. package/react/components/linker/LinkerMenu.d.ts +3 -0
  278. package/react/components/linker/LinkerMenu.js +21 -0
  279. package/react/components/linker/LinkerMenu.js.map +1 -1
  280. package/react/components/linker/LinkerMenuDeprecated.d.ts +3 -0
  281. package/react/components/linker/LinkerMenuDeprecated.js +9 -0
  282. package/react/components/linker/LinkerMenuDeprecated.js.map +1 -1
  283. package/react/components/linker/remoteRedux.js +1 -0
  284. package/react/components/linker/remoteRedux.js.map +1 -1
  285. package/react/components/menu/Menu.d.ts +15 -0
  286. package/react/components/menu/Menu.js +15 -0
  287. package/react/components/menu/Menu.js.map +1 -1
  288. package/react/components/menu/MenuAutoResizer.d.ts +7 -0
  289. package/react/components/menu/MenuAutoResizer.js +27 -0
  290. package/react/components/menu/MenuAutoResizer.js.map +1 -1
  291. package/react/components/menu/MenuContent.d.ts +4 -0
  292. package/react/components/menu/MenuContent.js +4 -0
  293. package/react/components/menu/MenuContent.js.map +1 -1
  294. package/react/components/menu/MenuHotKey.d.ts +14 -0
  295. package/react/components/menu/MenuHotKey.js +15 -0
  296. package/react/components/menu/MenuHotKey.js.map +1 -1
  297. package/react/components/menu/MenuItem.d.ts +8 -0
  298. package/react/components/menu/MenuItem.js +13 -2
  299. package/react/components/menu/MenuItem.js.map +1 -1
  300. package/react/components/menu/MenuPortal.js +125 -24
  301. package/react/components/menu/MenuPortal.js.map +1 -1
  302. package/react/components/menu/MenuShell.d.ts +16 -0
  303. package/react/components/menu/MenuShell.js +26 -0
  304. package/react/components/menu/MenuShell.js.map +1 -1
  305. package/react/components/menu/MenuToggle.d.ts +3 -0
  306. package/react/components/menu/MenuToggle.js +5 -2
  307. package/react/components/menu/MenuToggle.js.map +1 -1
  308. package/react/components/menu/keyboardNavigation.d.ts +13 -22
  309. package/react/components/menu/keyboardNavigation.js +165 -160
  310. package/react/components/menu/keyboardNavigation.js.map +1 -1
  311. package/react/components/menu/menuContext.d.ts +6 -0
  312. package/react/components/menu/menuContext.js +6 -0
  313. package/react/components/menu/menuContext.js.map +1 -1
  314. package/react/components/menu/menuHelpers.d.ts +22 -0
  315. package/react/components/menu/menuHelpers.js +58 -1
  316. package/react/components/menu/menuHelpers.js.map +1 -1
  317. package/react/components/notifications/components/drawer/DrawerControls.js +47 -25
  318. package/react/components/notifications/components/drawer/DrawerControls.js.map +1 -1
  319. package/react/components/notifications/components/drawer/DrawerHeader.js +5 -0
  320. package/react/components/notifications/components/drawer/DrawerHeader.js.map +1 -1
  321. package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js +37 -6
  322. package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js.map +1 -1
  323. package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js +17 -10
  324. package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js.map +1 -1
  325. package/react/components/notifications/components/shared/CheckButton.js +19 -8
  326. package/react/components/notifications/components/shared/CheckButton.js.map +1 -1
  327. package/react/components/notifications/components/shared/NotificationCardShell.d.ts +9 -0
  328. package/react/components/notifications/components/shared/NotificationCardShell.js +15 -7
  329. package/react/components/notifications/components/shared/NotificationCardShell.js.map +1 -1
  330. package/react/components/notifications/components/shared/OverflowMenu.d.ts +4 -0
  331. package/react/components/notifications/components/shared/OverflowMenu.js +16 -2
  332. package/react/components/notifications/components/shared/OverflowMenu.js.map +1 -1
  333. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.js +2 -1
  334. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.js.map +1 -1
  335. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderShell.js +2 -1
  336. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderShell.js.map +1 -1
  337. package/react/components/notifications/components/views/CardView.js +8 -3
  338. package/react/components/notifications/components/views/CardView.js.map +1 -1
  339. package/react/components/notifications/components/views/ListView.js +11 -1
  340. package/react/components/notifications/components/views/ListView.js.map +1 -1
  341. package/react/components/notifications/notificationsContext.d.ts +4 -0
  342. package/react/components/notifications/notificationsContext.js +4 -0
  343. package/react/components/notifications/notificationsContext.js.map +1 -1
  344. package/react/components/notifications/types.d.ts +6 -0
  345. package/react/components/notifications/types.js.map +1 -1
  346. package/react/components/notifications/utils.d.ts +4 -0
  347. package/react/components/notifications/utils.js +4 -0
  348. package/react/components/notifications/utils.js.map +1 -1
  349. package/react/components/processMonitor/ProcessMonitor.d.ts +3 -0
  350. package/react/components/processMonitor/ProcessMonitor.js +21 -3
  351. package/react/components/processMonitor/ProcessMonitor.js.map +1 -1
  352. package/react/components/processMonitor/components/ChildWindow.d.ts +3 -0
  353. package/react/components/processMonitor/components/ChildWindow.js +5 -0
  354. package/react/components/processMonitor/components/ChildWindow.js.map +1 -1
  355. package/react/components/processMonitor/components/ListHeader.d.ts +5 -0
  356. package/react/components/processMonitor/components/ListHeader.js +7 -0
  357. package/react/components/processMonitor/components/ListHeader.js.map +1 -1
  358. package/react/components/processMonitor/components/ProcessStatistics.js +12 -3
  359. package/react/components/processMonitor/components/ProcessStatistics.js.map +1 -1
  360. package/react/components/processMonitor/constants.js +6 -0
  361. package/react/components/processMonitor/constants.js.map +1 -1
  362. package/react/components/processMonitor/helpers.d.ts +13 -0
  363. package/react/components/processMonitor/helpers.js +27 -6
  364. package/react/components/processMonitor/helpers.js.map +1 -1
  365. package/react/components/processMonitor/helpers.spec.js +7 -3
  366. package/react/components/processMonitor/helpers.spec.js.map +1 -1
  367. package/react/components/processMonitor/stores/ProcessMonitorStore.d.ts +39 -0
  368. package/react/components/processMonitor/stores/ProcessMonitorStore.js +50 -0
  369. package/react/components/processMonitor/stores/ProcessMonitorStore.js.map +1 -1
  370. package/react/components/quickComponentForm/QuickComponentForm.d.ts +3 -0
  371. package/react/components/quickComponentForm/QuickComponentForm.js +20 -0
  372. package/react/components/quickComponentForm/QuickComponentForm.js.map +1 -1
  373. package/react/components/quickComponentForm/quickComponent.css +1 -1
  374. package/react/components/sdd/AddApp.d.ts +7 -4
  375. package/react/components/sdd/AddApp.js +144 -34
  376. package/react/components/sdd/AddApp.js.map +1 -1
  377. package/react/components/sdd/AppEditAccess.d.ts +4 -3
  378. package/react/components/sdd/AppEditAccess.js +8 -0
  379. package/react/components/sdd/AppEditAccess.js.map +1 -1
  380. package/react/components/sdd/AppEditPage.d.ts +6 -4
  381. package/react/components/sdd/AppEditPage.js +205 -393
  382. package/react/components/sdd/AppEditPage.js.map +1 -1
  383. package/react/components/sdd/Appearance.css +1 -1
  384. package/react/components/sdd/Appearance.d.ts +2 -1
  385. package/react/components/sdd/Appearance.js +18 -7
  386. package/react/components/sdd/Appearance.js.map +1 -1
  387. package/react/components/sdd/Application.d.ts +5 -4
  388. package/react/components/sdd/Application.js +94 -44
  389. package/react/components/sdd/Application.js.map +1 -1
  390. package/react/components/sdd/Applications.d.ts +12 -11
  391. package/react/components/sdd/Applications.js +110 -15
  392. package/react/components/sdd/Applications.js.map +1 -1
  393. package/react/components/sdd/AssetsPage.css +3 -3
  394. package/react/components/sdd/Authentication.js +1 -6
  395. package/react/components/sdd/Authentication.js.map +1 -1
  396. package/react/components/sdd/AuthenticationProviderConfig.js +5 -3
  397. package/react/components/sdd/AuthenticationProviderConfig.js.map +1 -1
  398. package/react/components/sdd/EditPreload.d.ts +4 -3
  399. package/react/components/sdd/EditPreload.js +49 -22
  400. package/react/components/sdd/EditPreload.js.map +1 -1
  401. package/react/components/sdd/Export.d.ts +7 -6
  402. package/react/components/sdd/Export.js +4 -3
  403. package/react/components/sdd/Export.js.map +1 -1
  404. package/react/components/sdd/ExportCloud.js +4 -0
  405. package/react/components/sdd/ExportCloud.js.map +1 -1
  406. package/react/components/sdd/GettingStarted.js +3 -3
  407. package/react/components/sdd/GettingStarted.js.map +1 -1
  408. package/react/components/sdd/Navigation.js +28 -4
  409. package/react/components/sdd/Navigation.js.map +1 -1
  410. package/react/components/sdd/OptionalSettingsView.d.ts +6 -5
  411. package/react/components/sdd/OptionalSettingsView.js +2 -10
  412. package/react/components/sdd/OptionalSettingsView.js.map +1 -1
  413. package/react/components/sdd/ProjectErrors.js +1 -1
  414. package/react/components/sdd/ProjectErrors.js.map +1 -1
  415. package/react/components/sdd/Publish.js +4 -2
  416. package/react/components/sdd/Publish.js.map +1 -1
  417. package/react/components/sdd/PublishProgress.js +11 -1
  418. package/react/components/sdd/PublishProgress.js.map +1 -1
  419. package/react/components/sdd/SmartDesktopDesigner.d.ts +17 -16
  420. package/react/components/sdd/SmartDesktopDesigner.js +54 -34
  421. package/react/components/sdd/SmartDesktopDesigner.js.map +1 -1
  422. package/react/components/sdd/ThemePage.css +6 -23
  423. package/react/components/sdd/ThemePage.js +8 -5
  424. package/react/components/sdd/ThemePage.js.map +1 -1
  425. package/react/components/sdd/Themes.d.ts +2 -1
  426. package/react/components/sdd/Themes.js +4 -2
  427. package/react/components/sdd/Themes.js.map +1 -1
  428. package/react/components/sdd/Toolbar.d.ts +5 -4
  429. package/react/components/sdd/Toolbar.js +18 -9
  430. package/react/components/sdd/Toolbar.js.map +1 -1
  431. package/react/components/sdd/appEditPage/Behavior.d.ts +34 -0
  432. package/react/components/sdd/appEditPage/Behavior.js +134 -0
  433. package/react/components/sdd/appEditPage/Behavior.js.map +1 -0
  434. package/react/components/sdd/appEditPage/Component.d.ts +22 -0
  435. package/react/components/sdd/appEditPage/Component.js +76 -0
  436. package/react/components/sdd/appEditPage/Component.js.map +1 -0
  437. package/react/components/sdd/appEditPage/DebugToolkit.d.ts +9 -0
  438. package/react/components/sdd/appEditPage/DebugToolkit.js +20 -0
  439. package/react/components/sdd/appEditPage/DebugToolkit.js.map +1 -0
  440. package/react/components/sdd/appEditPage/Interop.d.ts +10 -0
  441. package/react/components/sdd/appEditPage/Interop.js +40 -0
  442. package/react/components/sdd/appEditPage/Interop.js.map +1 -0
  443. package/react/components/sdd/appEditPage/Position.d.ts +18 -0
  444. package/react/components/sdd/appEditPage/Position.js +72 -0
  445. package/react/components/sdd/appEditPage/Position.js.map +1 -0
  446. package/react/components/sdd/appEditPage/Preloads.d.ts +9 -0
  447. package/react/components/sdd/appEditPage/Preloads.js +16 -0
  448. package/react/components/sdd/appEditPage/Preloads.js.map +1 -0
  449. package/react/components/sdd/appEditPage/SelectConnect.d.ts +15 -0
  450. package/react/components/sdd/appEditPage/SelectConnect.js +28 -0
  451. package/react/components/sdd/appEditPage/SelectConnect.js.map +1 -0
  452. package/react/components/sdd/appEditPage/Workspace.d.ts +12 -0
  453. package/react/components/sdd/appEditPage/Workspace.js +30 -0
  454. package/react/components/sdd/appEditPage/Workspace.js.map +1 -0
  455. package/react/components/sdd/common/getCSSVars.js +7 -2
  456. package/react/components/sdd/common/getCSSVars.js.map +1 -1
  457. package/react/components/sdd/common/setPreloadDefaults.d.ts +1 -1
  458. package/react/components/sdd/common/setPreloadDefaults.js +9 -4
  459. package/react/components/sdd/common/setPreloadDefaults.js.map +1 -1
  460. package/react/components/sdd/common/views.js +7 -4
  461. package/react/components/sdd/common/views.js.map +1 -1
  462. package/react/components/sdd/css/addApp.css +65 -0
  463. package/react/components/sdd/css/appearance.css +6 -0
  464. package/react/components/sdd/css/applications.css +27 -34
  465. package/react/components/sdd/css/authentication.css +7 -6
  466. package/react/components/sdd/css/buttons.css +1 -1
  467. package/react/components/sdd/css/export.css +5 -3
  468. package/react/components/sdd/css/getting-started.css +2 -2
  469. package/react/components/sdd/css/nav.css +11 -14
  470. package/react/components/sdd/css/project-header.css +5 -7
  471. package/react/components/sdd/css/styles.css +29 -23
  472. package/react/components/sdd/css/views.css +4 -3
  473. package/react/components/sdd/fixtures/apps.js +12 -0
  474. package/react/components/sdd/fixtures/apps.js.map +1 -1
  475. package/react/components/sdd/fixtures/authenticationProps.js +15 -1
  476. package/react/components/sdd/fixtures/authenticationProps.js.map +1 -1
  477. package/react/components/sdd/fixtures/configTemplate.js +1 -0
  478. package/react/components/sdd/fixtures/configTemplate.js.map +1 -1
  479. package/react/components/sdd/fixtures/preloads.js +14 -12
  480. package/react/components/sdd/fixtures/preloads.js.map +1 -1
  481. package/react/components/sdd/fixtures/publishProgress.js +40 -0
  482. package/react/components/sdd/fixtures/publishProgress.js.map +1 -1
  483. package/react/components/sdd/sdd_helpers.d.ts +6 -0
  484. package/react/components/sdd/sdd_helpers.js +6 -0
  485. package/react/components/sdd/sdd_helpers.js.map +1 -1
  486. package/react/components/sdd/smartDesktopClient.d.ts +466 -0
  487. package/react/components/sdd/smartDesktopClient.js +906 -0
  488. package/react/components/sdd/smartDesktopClient.js.map +1 -0
  489. package/react/components/sdd/smartDesktopClient.spec.d.ts +1 -0
  490. package/react/components/sdd/smartDesktopClient.spec.js +64 -0
  491. package/react/components/sdd/smartDesktopClient.spec.js.map +1 -0
  492. package/react/components/sdd/stories/AddApp.stories.d.ts +11 -0
  493. package/react/components/sdd/stories/AddApp.stories.js +26 -0
  494. package/react/components/sdd/stories/AddApp.stories.js.map +1 -0
  495. package/react/components/sdd/stories/AppEditPage.stories.d.ts +5 -1
  496. package/react/components/sdd/stories/AppEditPage.stories.js +5 -0
  497. package/react/components/sdd/stories/AppEditPage.stories.js.map +1 -1
  498. package/react/components/sdd/stories/Appearance.stories.d.ts +1 -1
  499. package/react/components/sdd/stories/Appearance.stories.js +2 -0
  500. package/react/components/sdd/stories/Appearance.stories.js.map +1 -1
  501. package/react/components/sdd/stories/Authentication.stories.js +2 -16
  502. package/react/components/sdd/stories/Authentication.stories.js.map +1 -1
  503. package/react/components/sdd/stories/OptionalSettingsView.stories.js +1 -1
  504. package/react/components/sdd/stories/OptionalSettingsView.stories.js.map +1 -1
  505. package/react/components/sdd/stories/SmartDesktopDesigner.stories.d.ts +1 -1
  506. package/react/components/sdd/stories/SmartDesktopDesigner.stories.js +3 -0
  507. package/react/components/sdd/stories/SmartDesktopDesigner.stories.js.map +1 -1
  508. package/react/components/sdd/stories/Themes.stories.d.ts +1 -1
  509. package/react/components/sdd/stories/Themes.stories.js +1 -0
  510. package/react/components/sdd/stories/Themes.stories.js.map +1 -1
  511. package/react/components/sdd/tests/AddApp.spec.d.ts +1 -0
  512. package/react/components/sdd/tests/AddApp.spec.js +133 -0
  513. package/react/components/sdd/tests/AddApp.spec.js.map +1 -0
  514. package/react/components/sdd/tests/AppEditPage.spec.js +108 -23
  515. package/react/components/sdd/tests/AppEditPage.spec.js.map +1 -1
  516. package/react/components/sdd/tests/Application.spec.js +351 -369
  517. package/react/components/sdd/tests/Application.spec.js.map +1 -1
  518. package/react/components/sdd/tests/Applications.spec.d.ts +1 -1
  519. package/react/components/sdd/tests/Applications.spec.js +30 -50
  520. package/react/components/sdd/tests/Applications.spec.js.map +1 -1
  521. package/react/components/sdd/tests/Authentication.spec.js +8 -1
  522. package/react/components/sdd/tests/Authentication.spec.js.map +1 -1
  523. package/react/components/sdd/tests/ContentHeader.spec.js +2 -0
  524. package/react/components/sdd/tests/ContentHeader.spec.js.map +1 -1
  525. package/react/components/sdd/tests/EditPreload.spec.js +63 -7
  526. package/react/components/sdd/tests/EditPreload.spec.js.map +1 -1
  527. package/react/components/sdd/tests/Export.spec.js +8 -1
  528. package/react/components/sdd/tests/Export.spec.js.map +1 -1
  529. package/react/components/sdd/tests/ItemList.spec.js +4 -0
  530. package/react/components/sdd/tests/ItemList.spec.js.map +1 -1
  531. package/react/components/sdd/tests/Navigation.spec.js +2 -2
  532. package/react/components/sdd/tests/Navigation.spec.js.map +1 -1
  533. package/react/components/sdd/tests/OptionalSettingsView.spec.js +264 -0
  534. package/react/components/sdd/tests/OptionalSettingsView.spec.js.map +1 -1
  535. package/react/components/sdd/tests/ProjectErrors.spec.js +3 -1
  536. package/react/components/sdd/tests/ProjectErrors.spec.js.map +1 -1
  537. package/react/components/sdd/tests/SmartDesktopDesigner.spec.js +2 -2
  538. package/react/components/sdd/tests/SmartDesktopDesigner.spec.js.map +1 -1
  539. package/react/components/sdd/tests/Themes.spec.js +1 -1
  540. package/react/components/sdd/tests/Themes.spec.js.map +1 -1
  541. package/react/components/sdd/tests/Toolbar.spec.js +53 -0
  542. package/react/components/sdd/tests/Toolbar.spec.js.map +1 -1
  543. package/react/components/sdd/tests/a11y_helper.js +8 -0
  544. package/react/components/sdd/tests/a11y_helper.js.map +1 -1
  545. package/react/components/search/Highlight.d.ts +6 -0
  546. package/react/components/search/Highlight.js +19 -0
  547. package/react/components/search/Highlight.js.map +1 -1
  548. package/react/components/search/Highlight.stories.js +1 -1
  549. package/react/components/search/Highlight.stories.js.map +1 -1
  550. package/react/components/search/Search.js +1 -1
  551. package/react/components/search/Search.js.map +1 -1
  552. package/react/components/search/SearchBestMatch.d.ts +4 -0
  553. package/react/components/search/SearchBestMatch.js +11 -0
  554. package/react/components/search/SearchBestMatch.js.map +1 -1
  555. package/react/components/search/SearchInput.d.ts +5 -0
  556. package/react/components/search/SearchInput.js +6 -0
  557. package/react/components/search/SearchInput.js.map +1 -1
  558. package/react/components/search/SearchProviderResults.js +2 -0
  559. package/react/components/search/SearchProviderResults.js.map +1 -1
  560. package/react/components/search/SearchResult.d.ts +5 -0
  561. package/react/components/search/SearchResult.js +6 -0
  562. package/react/components/search/SearchResult.js.map +1 -1
  563. package/react/components/search/SearchResult.spec.d.ts +1 -0
  564. package/react/components/search/SearchResult.spec.js +46 -0
  565. package/react/components/search/SearchResult.spec.js.map +1 -0
  566. package/react/components/search/SearchResult.stories.d.ts +16 -0
  567. package/react/components/search/SearchResult.stories.js +113 -0
  568. package/react/components/search/SearchResult.stories.js.map +1 -0
  569. package/react/components/search/SearchResults.js +5 -1
  570. package/react/components/search/SearchResults.js.map +1 -1
  571. package/react/components/search/SearchResults.spec.d.ts +1 -0
  572. package/react/components/search/SearchResults.spec.js +35 -0
  573. package/react/components/search/SearchResults.spec.js.map +1 -0
  574. package/react/components/search/SearchResults.stories.d.ts +11 -0
  575. package/react/components/search/SearchResults.stories.js +458 -0
  576. package/react/components/search/SearchResults.stories.js.map +1 -0
  577. package/react/components/shared/Animate.d.ts +5 -0
  578. package/react/components/shared/Animate.js +12 -1
  579. package/react/components/shared/Animate.js.map +1 -1
  580. package/react/components/shared/DefaultDropdownButton.js +26 -6
  581. package/react/components/shared/DefaultDropdownButton.js.map +1 -1
  582. package/react/components/shared/Tag.d.ts +0 -4
  583. package/react/components/shared/Tag.js +4 -0
  584. package/react/components/shared/Tag.js.map +1 -1
  585. package/react/components/shared/TagsMenu.d.ts +6 -0
  586. package/react/components/shared/TagsMenu.js +7 -0
  587. package/react/components/shared/TagsMenu.js.map +1 -1
  588. package/react/components/shared/addProtocolToValidURL.d.ts +6 -0
  589. package/react/components/shared/addProtocolToValidURL.js +6 -0
  590. package/react/components/shared/addProtocolToValidURL.js.map +1 -1
  591. package/react/components/shared/openQuitConfirmationDialog.d.ts +1 -1
  592. package/react/components/shared/openQuitConfirmationDialog.js +4 -4
  593. package/react/components/shared/openQuitConfirmationDialog.js.map +1 -1
  594. package/react/components/shared/tests/DefaultDropdownButton.spec.js +12 -0
  595. package/react/components/shared/tests/DefaultDropdownButton.spec.js.map +1 -1
  596. package/react/components/shared/tests/addProtocolToValidURL.spec.js +1 -0
  597. package/react/components/shared/tests/addProtocolToValidURL.spec.js.map +1 -1
  598. package/react/components/shared/validateURL.d.ts +18 -0
  599. package/react/components/shared/validateURL.js +24 -5
  600. package/react/components/shared/validateURL.js.map +1 -1
  601. package/react/components/singleInputDialog/SingleInputDialog.css +1 -1
  602. package/react/components/singleInputDialog/SingleInputDialog.d.ts +3 -0
  603. package/react/components/singleInputDialog/SingleInputDialog.js +46 -0
  604. package/react/components/singleInputDialog/SingleInputDialog.js.map +1 -1
  605. package/react/components/singleInputDialog/SingleInputDialog.stories.js +2 -2
  606. package/react/components/singleInputDialog/SingleInputDialog.stories.js.map +1 -1
  607. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.d.ts +1 -16
  608. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js +5 -3
  609. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js.map +1 -1
  610. package/react/components/system/System.d.ts +22 -0
  611. package/react/components/system/System.js +23 -1
  612. package/react/components/system/System.js.map +1 -1
  613. package/react/components/system/System.stories.js +1 -0
  614. package/react/components/system/System.stories.js.map +1 -1
  615. package/react/components/system/SystemTrayComponentShell.d.ts +6 -0
  616. package/react/components/system/SystemTrayComponentShell.js +9 -0
  617. package/react/components/system/SystemTrayComponentShell.js.map +1 -1
  618. package/react/components/toolbar/AutoArrange.d.ts +5 -0
  619. package/react/components/toolbar/AutoArrange.js +8 -1
  620. package/react/components/toolbar/AutoArrange.js.map +1 -1
  621. package/react/components/toolbar/AutoArrange.spec.js +10 -4
  622. package/react/components/toolbar/AutoArrange.spec.js.map +1 -1
  623. package/react/components/toolbar/AutoArrange.stories.js +1 -0
  624. package/react/components/toolbar/AutoArrange.stories.js.map +1 -1
  625. package/react/components/toolbar/DragHandle.d.ts +4 -0
  626. package/react/components/toolbar/DragHandle.js +11 -0
  627. package/react/components/toolbar/DragHandle.js.map +1 -1
  628. package/react/components/toolbar/DragHandle.spec.js +1 -0
  629. package/react/components/toolbar/DragHandle.spec.js.map +1 -1
  630. package/react/components/toolbar/DragHandle.stories.js +1 -0
  631. package/react/components/toolbar/DragHandle.stories.js.map +1 -1
  632. package/react/components/toolbar/MinimizeAll.d.ts +4 -0
  633. package/react/components/toolbar/MinimizeAll.js +7 -1
  634. package/react/components/toolbar/MinimizeAll.js.map +1 -1
  635. package/react/components/toolbar/MinimizeAll.spec.js +1 -0
  636. package/react/components/toolbar/MinimizeAll.spec.js.map +1 -1
  637. package/react/components/toolbar/MinimizeAll.stories.js +1 -0
  638. package/react/components/toolbar/MinimizeAll.stories.js.map +1 -1
  639. package/react/components/toolbar/NotificationControl.d.ts +5 -0
  640. package/react/components/toolbar/NotificationControl.js +8 -1
  641. package/react/components/toolbar/NotificationControl.js.map +1 -1
  642. package/react/components/toolbar/RevealAll.d.ts +4 -0
  643. package/react/components/toolbar/RevealAll.js +7 -1
  644. package/react/components/toolbar/RevealAll.js.map +1 -1
  645. package/react/components/toolbar/RevealAll.spec.js +1 -0
  646. package/react/components/toolbar/RevealAll.spec.js.map +1 -1
  647. package/react/components/toolbar/RevealAll.stories.js +1 -0
  648. package/react/components/toolbar/RevealAll.stories.js.map +1 -1
  649. package/react/components/toolbar/SddButton.d.ts +4 -0
  650. package/react/components/toolbar/SddButton.js +4 -0
  651. package/react/components/toolbar/SddButton.js.map +1 -1
  652. package/react/components/toolbar/ToolbarIcon.d.ts +4 -0
  653. package/react/components/toolbar/ToolbarIcon.js +6 -2
  654. package/react/components/toolbar/ToolbarIcon.js.map +1 -1
  655. package/react/components/toolbar/ToolbarSection.d.ts +8 -9
  656. package/react/components/toolbar/ToolbarSection.js +21 -7
  657. package/react/components/toolbar/ToolbarSection.js.map +1 -1
  658. package/react/components/toolbar/ToolbarShell.d.ts +5 -0
  659. package/react/components/toolbar/ToolbarShell.js +7 -0
  660. package/react/components/toolbar/ToolbarShell.js.map +1 -1
  661. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.d.ts +16 -0
  662. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.js +20 -0
  663. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.js.map +1 -1
  664. package/react/components/toolbar/advancedAppLauncher/components/AddNewAppForm.d.ts +52 -0
  665. package/react/components/toolbar/advancedAppLauncher/components/AddNewAppForm.js +58 -0
  666. package/react/components/toolbar/advancedAppLauncher/components/AddNewAppForm.js.map +1 -1
  667. package/react/components/toolbar/advancedAppLauncher/components/AddNewFolder.d.ts +5 -0
  668. package/react/components/toolbar/advancedAppLauncher/components/AddNewFolder.js +5 -0
  669. package/react/components/toolbar/advancedAppLauncher/components/AddNewFolder.js.map +1 -1
  670. package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.d.ts +27 -0
  671. package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.js +49 -0
  672. package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.js.map +1 -1
  673. package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.d.ts +13 -0
  674. package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.js +21 -10
  675. package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.js.map +1 -1
  676. package/react/components/toolbar/advancedAppLauncher/components/Content.d.ts +5 -0
  677. package/react/components/toolbar/advancedAppLauncher/components/Content.js +19 -0
  678. package/react/components/toolbar/advancedAppLauncher/components/Content.js.map +1 -1
  679. package/react/components/toolbar/advancedAppLauncher/components/FilterSort.d.ts +4 -0
  680. package/react/components/toolbar/advancedAppLauncher/components/FilterSort.js +4 -0
  681. package/react/components/toolbar/advancedAppLauncher/components/FilterSort.js.map +1 -1
  682. package/react/components/toolbar/advancedAppLauncher/components/FoldersList.d.ts +16 -0
  683. package/react/components/toolbar/advancedAppLauncher/components/FoldersList.js +39 -0
  684. package/react/components/toolbar/advancedAppLauncher/components/FoldersList.js.map +1 -1
  685. package/react/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.d.ts +4 -0
  686. package/react/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.js +9 -0
  687. package/react/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.js.map +1 -1
  688. package/react/components/toolbar/advancedAppLauncher/components/SearchBox.js +3 -0
  689. package/react/components/toolbar/advancedAppLauncher/components/SearchBox.js.map +1 -1
  690. package/react/components/toolbar/advancedAppLauncher/components/TagsMenu.d.ts +6 -0
  691. package/react/components/toolbar/advancedAppLauncher/components/TagsMenu.js +7 -0
  692. package/react/components/toolbar/advancedAppLauncher/components/TagsMenu.js.map +1 -1
  693. package/react/components/toolbar/advancedAppLauncher/components/ToggleFavoriteDropdown.d.ts +5 -0
  694. package/react/components/toolbar/advancedAppLauncher/components/ToggleFavoriteDropdown.js +5 -0
  695. package/react/components/toolbar/advancedAppLauncher/components/ToggleFavoriteDropdown.js.map +1 -1
  696. package/react/components/toolbar/advancedAppLauncher/modules/AppDirectory.d.ts +5 -0
  697. package/react/components/toolbar/advancedAppLauncher/modules/AppDirectory.js +5 -0
  698. package/react/components/toolbar/advancedAppLauncher/modules/AppDirectory.js.map +1 -1
  699. package/react/components/toolbar/advancedAppLauncher/modules/FDC3.d.ts +37 -0
  700. package/react/components/toolbar/advancedAppLauncher/modules/FDC3.js +40 -0
  701. package/react/components/toolbar/advancedAppLauncher/modules/FDC3.js.map +1 -1
  702. package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.d.ts +3 -0
  703. package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js +83 -1
  704. package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js.map +1 -1
  705. package/react/components/toolbar/advancedAppLauncher/utils/sort-functions.d.ts +10 -0
  706. package/react/components/toolbar/advancedAppLauncher/utils/sort-functions.js +12 -3
  707. package/react/components/toolbar/advancedAppLauncher/utils/sort-functions.js.map +1 -1
  708. package/react/components/toolbar/appLauncher/AppLauncherMenu.d.ts +18 -0
  709. package/react/components/toolbar/appLauncher/AppLauncherMenu.js +20 -0
  710. package/react/components/toolbar/appLauncher/AppLauncherMenu.js.map +1 -1
  711. package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.d.ts +9 -0
  712. package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.js +12 -0
  713. package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.js.map +1 -1
  714. package/react/components/toolbar/appLauncher/appLauncher.css +1 -1
  715. package/react/components/toolbar/appLauncher/components/componentList.d.ts +3 -0
  716. package/react/components/toolbar/appLauncher/components/componentList.js +17 -3
  717. package/react/components/toolbar/appLauncher/components/componentList.js.map +1 -1
  718. package/react/components/toolbar/appLauncher/stores/appLauncherStore.d.ts +6 -0
  719. package/react/components/toolbar/appLauncher/stores/appLauncherStore.js +26 -0
  720. package/react/components/toolbar/appLauncher/stores/appLauncherStore.js.map +1 -1
  721. package/react/components/toolbar/dashbar/Dashbar.js +91 -15
  722. package/react/components/toolbar/dashbar/Dashbar.js.map +1 -1
  723. package/react/components/toolbar/dashbar/DashbarItem.js +5 -0
  724. package/react/components/toolbar/dashbar/DashbarItem.js.map +1 -1
  725. package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.d.ts +8 -1
  726. package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.js +7 -0
  727. package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.js.map +1 -1
  728. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.d.ts +17 -1
  729. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js +21 -1
  730. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js.map +1 -1
  731. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.d.ts +26 -0
  732. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.js +29 -0
  733. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.js.map +1 -1
  734. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.d.ts +6 -1
  735. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.js +6 -0
  736. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.js.map +1 -1
  737. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.d.ts +78 -2
  738. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js +191 -40
  739. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js.map +1 -1
  740. package/react/components/toolbar/workspaceManagementMenu/workspaceManagementMenu.css +8 -18
  741. package/react/components/userPreferences/NotificationsPreferencesContext.d.ts +4 -0
  742. package/react/components/userPreferences/NotificationsPreferencesContext.js +4 -0
  743. package/react/components/userPreferences/NotificationsPreferencesContext.js.map +1 -1
  744. package/react/components/userPreferences/UserPreferenceTypes.d.ts +3 -0
  745. package/react/components/userPreferences/UserPreferences.d.ts +8 -0
  746. package/react/components/userPreferences/UserPreferences.js +8 -0
  747. package/react/components/userPreferences/UserPreferences.js.map +1 -1
  748. package/react/components/userPreferences/UserPreferencesBase.js +4 -0
  749. package/react/components/userPreferences/UserPreferencesBase.js.map +1 -1
  750. package/react/components/userPreferences/components/ContentSection.d.ts +5 -0
  751. package/react/components/userPreferences/components/ContentSection.js +1 -1
  752. package/react/components/userPreferences/components/ContentSection.js.map +1 -1
  753. package/react/components/userPreferences/components/LeftNav.d.ts +4 -0
  754. package/react/components/userPreferences/components/content/DashbarEditor.js +3 -0
  755. package/react/components/userPreferences/components/content/DashbarEditor.js.map +1 -1
  756. package/react/components/userPreferences/components/content/Notifications.js +3 -0
  757. package/react/components/userPreferences/components/content/Notifications.js.map +1 -1
  758. package/react/components/userPreferences/components/content/Workspaces.d.ts +14 -2
  759. package/react/components/userPreferences/components/content/Workspaces.js +78 -38
  760. package/react/components/userPreferences/components/content/Workspaces.js.map +1 -1
  761. package/react/components/userPreferences/components/content/notificationViews/NotificationsPreferencesHome.js +7 -3
  762. package/react/components/userPreferences/components/content/notificationViews/NotificationsPreferencesHome.js.map +1 -1
  763. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourceTypes.js +3 -0
  764. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourceTypes.js.map +1 -1
  765. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourcesPreferences.js +3 -0
  766. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourcesPreferences.js.map +1 -1
  767. package/react/components/userPreferences/components/general/ScheduledClose.js +26 -5
  768. package/react/components/userPreferences/components/general/ScheduledClose.js.map +1 -1
  769. package/react/components/userPreferences/components/workspaces/WorkspaceButton.js +1 -1
  770. package/react/components/userPreferences/components/workspaces/WorkspaceButton.js.map +1 -1
  771. package/react/components/userPreferences/components/workspaces/WorkspaceItem.d.ts +1 -1
  772. package/react/components/userPreferences/components/workspaces/WorkspaceItem.js +20 -10
  773. package/react/components/userPreferences/components/workspaces/WorkspaceItem.js.map +1 -1
  774. package/react/components/userPreferences/stores/UserPreferencesStore.d.ts +18 -1
  775. package/react/components/userPreferences/stores/UserPreferencesStore.js +35 -6
  776. package/react/components/userPreferences/stores/UserPreferencesStore.js.map +1 -1
  777. package/react/components/userPreferences/tests/LeftNav.spec.js +15 -1
  778. package/react/components/userPreferences/tests/LeftNav.spec.js.map +1 -1
  779. package/react/components/userPreferences/tests/NotificationsPreferencesHome.spec.js +1 -0
  780. package/react/components/userPreferences/tests/NotificationsPreferencesHome.spec.js.map +1 -1
  781. package/react/components/userPreferences/tests/UserPreferencesBase.spec.d.ts +1 -0
  782. package/react/components/userPreferences/tests/UserPreferencesBase.spec.js +42 -0
  783. package/react/components/userPreferences/tests/UserPreferencesBase.spec.js.map +1 -0
  784. package/react/components/userPreferences/tests/Workspace.spec.d.ts +1 -0
  785. package/react/components/userPreferences/tests/Workspace.spec.js +139 -0
  786. package/react/components/userPreferences/tests/Workspace.spec.js.map +1 -0
  787. package/react/components/windowTitleBar/WindowTitleBarShell.d.ts +130 -2
  788. package/react/components/windowTitleBar/WindowTitleBarShell.js +386 -27
  789. package/react/components/windowTitleBar/WindowTitleBarShell.js.map +1 -1
  790. package/react/components/windowTitleBar/components/center/Tab.d.ts +3 -0
  791. package/react/components/windowTitleBar/components/center/Tab.js +3 -0
  792. package/react/components/windowTitleBar/components/center/Tab.js.map +1 -1
  793. package/react/components/windowTitleBar/components/center/TabList.d.ts +90 -0
  794. package/react/components/windowTitleBar/components/center/TabList.js +170 -4
  795. package/react/components/windowTitleBar/components/center/TabList.js.map +1 -1
  796. package/react/components/windowTitleBar/components/left/LinkerButton.d.ts +9 -1
  797. package/react/components/windowTitleBar/components/left/LinkerButton.js +27 -5
  798. package/react/components/windowTitleBar/components/left/LinkerButton.js.map +1 -1
  799. package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.d.ts +47 -0
  800. package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.js +76 -1
  801. package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.js.map +1 -1
  802. package/react/components/windowTitleBar/components/left/LinkerGroups.d.ts +4 -0
  803. package/react/components/windowTitleBar/components/left/LinkerGroups.js +5 -0
  804. package/react/components/windowTitleBar/components/left/LinkerGroups.js.map +1 -1
  805. package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.d.ts +18 -0
  806. package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.js +49 -0
  807. package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.js.map +1 -1
  808. package/react/components/windowTitleBar/components/left/ShareButton.d.ts +17 -0
  809. package/react/components/windowTitleBar/components/left/ShareButton.js +39 -0
  810. package/react/components/windowTitleBar/components/left/ShareButton.js.map +1 -1
  811. package/react/components/windowTitleBar/components/right/AlwaysOnTopButton.js +4 -0
  812. package/react/components/windowTitleBar/components/right/AlwaysOnTopButton.js.map +1 -1
  813. package/react/components/windowTitleBar/components/right/CloseButton.d.ts +27 -0
  814. package/react/components/windowTitleBar/components/right/CloseButton.js +27 -0
  815. package/react/components/windowTitleBar/components/right/CloseButton.js.map +1 -1
  816. package/react/components/windowTitleBar/components/right/GroupingButton.d.ts +37 -0
  817. package/react/components/windowTitleBar/components/right/GroupingButton.js +40 -0
  818. package/react/components/windowTitleBar/components/right/GroupingButton.js.map +1 -1
  819. package/react/components/windowTitleBar/components/right/MaximizeButton.d.ts +46 -0
  820. package/react/components/windowTitleBar/components/right/MaximizeButton.js +54 -0
  821. package/react/components/windowTitleBar/components/right/MaximizeButton.js.map +1 -1
  822. package/react/components/windowTitleBar/components/right/MinimizeButton.d.ts +26 -0
  823. package/react/components/windowTitleBar/components/right/MinimizeButton.js +26 -0
  824. package/react/components/windowTitleBar/components/right/MinimizeButton.js.map +1 -1
  825. package/react/components/windowTitleBar/components/windowTitle.d.ts +40 -0
  826. package/react/components/windowTitleBar/components/windowTitle.js +245 -48
  827. package/react/components/windowTitleBar/components/windowTitle.js.map +1 -1
  828. package/react/components/windowTitleBar/stores/windowTitleBarStore.d.ts +5 -0
  829. package/react/components/windowTitleBar/stores/windowTitleBarStore.js +81 -6
  830. package/react/components/windowTitleBar/stores/windowTitleBarStore.js.map +1 -1
  831. package/react/components/yesNoDialog/YesNoDialog.css +1 -1
  832. package/react/components/yesNoDialog/YesNoDialog.d.ts +3 -0
  833. package/react/components/yesNoDialog/YesNoDialog.js +64 -1
  834. package/react/components/yesNoDialog/YesNoDialog.js.map +1 -1
  835. package/react/components/yesNoDialog/YesNoDialog.spec.js +4 -0
  836. package/react/components/yesNoDialog/YesNoDialog.spec.js.map +1 -1
  837. package/react/components/yesNoDialog/YesNoDialog.stories.js +2 -2
  838. package/react/components/yesNoDialog/YesNoDialog.stories.js.map +1 -1
  839. package/react/components/yesNoDialog/timer.js +2 -0
  840. package/react/components/yesNoDialog/timer.js.map +1 -1
  841. package/react/enzymeSetup.js +10 -0
  842. package/react/enzymeSetup.js.map +1 -1
  843. package/react/hooks/useDashbar.js +10 -0
  844. package/react/hooks/useDashbar.js.map +1 -1
  845. package/react/hooks/useDeepEffect.d.ts +4 -0
  846. package/react/hooks/useDeepEffect.js +21 -0
  847. package/react/hooks/useDeepEffect.js.map +1 -1
  848. package/react/hooks/useFavorites.d.ts +15 -0
  849. package/react/hooks/useFavorites.js +3 -0
  850. package/react/hooks/useFavorites.js.map +1 -1
  851. package/react/hooks/useFavoritesShell.d.ts +4 -0
  852. package/react/hooks/useFavoritesShell.js +23 -0
  853. package/react/hooks/useFavoritesShell.js.map +1 -1
  854. package/react/hooks/useHotkey.d.ts +6 -0
  855. package/react/hooks/useHotkey.js +9 -0
  856. package/react/hooks/useHotkey.js.map +1 -1
  857. package/react/hooks/useLinker.js +14 -0
  858. package/react/hooks/useLinker.js.map +1 -1
  859. package/react/hooks/useMenu.d.ts +29 -0
  860. package/react/hooks/useMenu.js +12 -1
  861. package/react/hooks/useMenu.js.map +1 -1
  862. package/react/hooks/useNotifications.d.ts +44 -0
  863. package/react/hooks/useNotifications.js +104 -12
  864. package/react/hooks/useNotifications.js.map +1 -1
  865. package/react/hooks/useOutsideClickDetector.d.ts +3 -0
  866. package/react/hooks/useOutsideClickDetector.js +3 -0
  867. package/react/hooks/useOutsideClickDetector.js.map +1 -1
  868. package/react/hooks/usePubSub.d.ts +17 -0
  869. package/react/hooks/usePubSub.js +18 -0
  870. package/react/hooks/usePubSub.js.map +1 -1
  871. package/react/hooks/useSearch.d.ts +5 -0
  872. package/react/hooks/useSearch.js +30 -0
  873. package/react/hooks/useSearch.js.map +1 -1
  874. package/react/hooks/useToolbar.d.ts +1 -1
  875. package/react/hooks/useToolbar.js +54 -2
  876. package/react/hooks/useToolbar.js.map +1 -1
  877. package/react/reducers/favoriteReducer.d.ts +3 -0
  878. package/react/reducers/linkerReducer.d.ts +3 -0
  879. package/react/reducers/linkerReducer.js +4 -0
  880. package/react/reducers/linkerReducer.js.map +1 -1
  881. package/react/reducers/menuReducer.d.ts +28 -0
  882. package/react/reducers/menuReducer.js +34 -0
  883. package/react/reducers/menuReducer.js.map +1 -1
  884. package/react/reducers/rootReducer.d.ts +2 -2
  885. package/react/reducers/rootReducer.js +3 -0
  886. package/react/reducers/rootReducer.js.map +1 -1
  887. package/react/reducers/searchReducer.d.ts +7 -0
  888. package/react/reducers/searchReducer.js +6 -0
  889. package/react/reducers/searchReducer.js.map +1 -1
  890. package/react/reducers/workspaceReducer.js +1 -0
  891. package/react/reducers/workspaceReducer.js.map +1 -1
  892. package/react/store.d.ts +8 -4
  893. package/react/store.js +11 -0
  894. package/react/store.js.map +1 -1
  895. package/react/tsconfig.tsbuildinfo +1 -0
  896. package/react/types/fdc3.d.ts +2 -0
  897. package/react/types/linkerTypes.d.ts +13 -0
  898. package/react/types/linkerTypes.js +1 -0
  899. package/react/types/linkerTypes.js.map +1 -1
  900. package/react/types/smartDesktopDesignerTypes.d.ts +8 -0
  901. package/react/types/smartDesktopDesignerTypes.js.map +1 -1
  902. package/react/types/workspaceTypes.d.ts +8 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ColorPicker.spec.js","sourceRoot":"","sources":["../../../../src/components/common/tests/ColorPicker.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { ReactWrapper, mount } from \"enzyme\";\nimport { describe, it } from \"mocha\";\nimport { expect } from \"chai\";\nimport { ColorPickerProps } from \"../ColorPicker\";\nimport { EmptyField, ValidColor } from \"../stories/ColorPicker.stories\";\n\nfunction getColorInputElement(wrapper: ReactWrapper): ReactWrapper {\n\t// Return the color picker control DOM element.\n\treturn wrapper.find(\"input[type='color']\").at(0);\n}\n\nfunction getColorInputValue(wrapper: ReactWrapper): ReactWrapper {\n\t// Return the current value of the color picker control.\n\treturn getColorInputElement(wrapper).prop(\"value\");\n}\n\nfunction changeColorInput(wrapper: ReactWrapper, newColor: string) {\n\t// Simulate changing the color picker control.\n\tgetColorInputElement(wrapper).simulate(\"change\", {\n\t\ttarget: {\n\t\t\tvalue: newColor,\n\t\t},\n\t});\n}\n\nfunction getTextInputElement(wrapper: ReactWrapper | ReactWrapper): ReactWrapper | ReactWrapper {\n\t// Return the text input field DOM element.\n\treturn wrapper.find(\"input[type='text']\");\n}\n\nfunction getTextInputValue(wrapper: ReactWrapper): ReactWrapper {\n\t// Return the current value of the text input field.\n\treturn getTextInputElement(wrapper).prop(\"value\");\n}\n\nfunction changeTextInput(wrapper: ReactWrapper | ReactWrapper, newColor: string) {\n\t// Simulate changing the text input field.\n\tgetTextInputElement(wrapper).simulate(\"change\", {\n\t\ttarget: {\n\t\t\tvalue: newColor,\n\t\t},\n\t});\n}\n\ndescribe(\"<ColorPicker/>\", () => {\n\tit(\"should display matching color values for both the color and text inputs\", () => {\n\t\tconst wrapper = mount(<ValidColor {...(ValidColor.args as ColorPickerProps)} />);\n\n\t\texpect(getColorInputValue(wrapper)).to.equal(getTextInputValue(wrapper));\n\t});\n\n\tit(\"should default to black when no color is provided\", () => {\n\t\tconst BLACK = \"#000000\";\n\n\t\tconst wrapper = mount(<EmptyField {...(EmptyField.args as ColorPickerProps)} />);\n\n\t\texpect(getColorInputValue(wrapper)).to.equal(BLACK);\n\t\texpect(getTextInputValue(wrapper)).to.equal(BLACK);\n\t});\n\n\tit(\"should update the text field when the color picker is changed\", () => {\n\t\tconst NEW_COLOR = \"#00aa00\";\n\n\t\tconst wrapper = mount(<EmptyField {...(EmptyField.args as ColorPickerProps)} />);\n\t\tchangeColorInput(wrapper, NEW_COLOR);\n\n\t\texpect(getColorInputValue(wrapper)).to.equal(NEW_COLOR);\n\t\texpect(getTextInputValue(wrapper)).to.equal(NEW_COLOR);\n\t});\n\n\tit(\"should update the color picker when the text field is changed\", () => {\n\t\tconst NEW_COLOR = \"#0000cc\";\n\n\t\tconst wrapper = mount(<EmptyField {...(EmptyField.args as ColorPickerProps)} />);\n\t\tchangeTextInput(wrapper, NEW_COLOR);\n\n\t\texpect(getColorInputValue(wrapper)).to.equal(NEW_COLOR);\n\t\texpect(getTextInputValue(wrapper)).to.equal(NEW_COLOR);\n\t});\n\n\tit(\"should display an error when an invalid color is selected\", () => {\n\t\tconst NEW_COLOR = \"#ZZZZZZ\";\n\n\t\tconst wrapper = mount(<ValidColor {...(ValidColor.args as ColorPickerProps)} />);\n\t\tchangeTextInput(wrapper, NEW_COLOR);\n\n\t\texpect(getTextInputElement(wrapper).prop(\"aria-invalid\")).to.be.true;\n\t});\n\n\tit(\"should display no error when a valid color is selected\", () => {\n\t\tconst NEW_COLOR = \"#abc123\";\n\n\t\tconst wrapper = mount(<ValidColor {...(ValidColor.args as ColorPickerProps)} />);\n\t\tchangeTextInput(wrapper, NEW_COLOR);\n\n\t\texpect(getTextInputElement(wrapper).prop(\"aria-invalid\")).to.be.false;\n\t});\n\n\tit(\"should trigger an event when a valid color is selected\", () => {\n\t\tconst ORIGINAL_COLOR = \"#123456\";\n\t\tconst NEW_COLOR = \"#abc123\";\n\t\tvar currentColorState = ORIGINAL_COLOR;\n\n\t\tconst wrapper = mount(\n\t\t\t<EmptyField\n\t\t\t\tstartColor={ORIGINAL_COLOR}\n\t\t\t\tupdateColor={(newColor) => {\n\t\t\t\t\tcurrentColorState = newColor;\n\t\t\t\t}}\n\t\t\t/>\n\t\t);\n\t\tchangeTextInput(wrapper, NEW_COLOR);\n\n\t\texpect(currentColorState).to.equal(NEW_COLOR);\n\t});\n\n\tit(\"should not trigger any event when an invalid color is selected\", () => {\n\t\tconst ORIGINAL_COLOR = \"#123456\";\n\t\tconst NEW_COLOR = \"foobar\";\n\t\tvar currentColorState = ORIGINAL_COLOR;\n\n\t\tconst wrapper = mount(\n\t\t\t<EmptyField\n\t\t\t\tstartColor={ORIGINAL_COLOR}\n\t\t\t\tupdateColor={(newColor) => {\n\t\t\t\t\tcurrentColorState = newColor;\n\t\t\t\t}}\n\t\t\t/>\n\t\t);\n\t\tchangeTextInput(wrapper, NEW_COLOR);\n\n\t\texpect(currentColorState).to.equal(ORIGINAL_COLOR);\n\t});\n});\n"]}
1
+ {"version":3,"file":"ColorPicker.spec.js","sourceRoot":"","sources":["../../../../src/components/common/tests/ColorPicker.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { ReactWrapper, mount } from \"enzyme\";\nimport { describe, it } from \"mocha\";\nimport { expect } from \"chai\";\nimport { ColorPickerProps } from \"../ColorPicker\";\nimport { EmptyField, ValidColor } from \"../stories/ColorPicker.stories\";\n\nfunction getColorInputElement(wrapper: ReactWrapper): ReactWrapper {\n\t// Return the color picker control DOM element.\n\treturn wrapper.find(\"input[type='color']\").at(0);\n}\n\nfunction getColorInputValue(wrapper: ReactWrapper): ReactWrapper {\n\t// Return the current value of the color picker control.\n\treturn getColorInputElement(wrapper).prop(\"value\");\n}\n\nfunction changeColorInput(wrapper: ReactWrapper, newColor: string) {\n\t// Simulate changing the color picker control.\n\tgetColorInputElement(wrapper).simulate(\"change\", {\n\t\ttarget: {\n\t\t\tvalue: newColor,\n\t\t},\n\t});\n}\n\nfunction getTextInputElement(wrapper: ReactWrapper | ReactWrapper): ReactWrapper | ReactWrapper {\n\t// Return the text input field DOM element.\n\treturn wrapper.find(\"input[type='text']\");\n}\n\nfunction getTextInputValue(wrapper: ReactWrapper): ReactWrapper {\n\t// Return the current value of the text input field.\n\treturn getTextInputElement(wrapper).prop(\"value\");\n}\n\nfunction changeTextInput(wrapper: ReactWrapper | ReactWrapper, newColor: string) {\n\t// Simulate changing the text input field.\n\tgetTextInputElement(wrapper).simulate(\"change\", {\n\t\ttarget: {\n\t\t\tvalue: newColor,\n\t\t},\n\t});\n}\n\ndescribe(\"<ColorPicker/>\", () => {\n\tit(\"should display matching color values for both the color and text inputs\", () => {\n\t\tconst wrapper = mount(<ValidColor {...(ValidColor.args as ColorPickerProps)} />);\n\n\t\texpect(getColorInputValue(wrapper)).to.equal(getTextInputValue(wrapper));\n\t});\n\n\tit(\"should default to black when no color is provided\", () => {\n\t\tconst BLACK = \"#000000\";\n\n\t\tconst wrapper = mount(<EmptyField {...(EmptyField.args as ColorPickerProps)} />);\n\n\t\texpect(getColorInputValue(wrapper)).to.equal(BLACK);\n\t\texpect(getTextInputValue(wrapper)).to.equal(BLACK);\n\t});\n\n\tit(\"should update the text field when the color picker is changed\", () => {\n\t\tconst NEW_COLOR = \"#00aa00\";\n\n\t\tconst wrapper = mount(<EmptyField {...(EmptyField.args as ColorPickerProps)} />);\n\t\tchangeColorInput(wrapper, NEW_COLOR);\n\n\t\texpect(getColorInputValue(wrapper)).to.equal(NEW_COLOR);\n\t\texpect(getTextInputValue(wrapper)).to.equal(NEW_COLOR);\n\t});\n\n\tit(\"should update the color picker when the text field is changed\", () => {\n\t\tconst NEW_COLOR = \"#0000cc\";\n\n\t\tconst wrapper = mount(<EmptyField {...(EmptyField.args as ColorPickerProps)} />);\n\t\tchangeTextInput(wrapper, NEW_COLOR);\n\n\t\texpect(getColorInputValue(wrapper)).to.equal(NEW_COLOR);\n\t\texpect(getTextInputValue(wrapper)).to.equal(NEW_COLOR);\n\t});\n\n\tit(\"should display an error when an invalid color is selected\", () => {\n\t\tconst NEW_COLOR = \"#ZZZZZZ\";\n\n\t\tconst wrapper = mount(<ValidColor {...(ValidColor.args as ColorPickerProps)} />);\n\t\tchangeTextInput(wrapper, NEW_COLOR);\n\n\t\texpect(getTextInputElement(wrapper).prop(\"aria-invalid\")).to.be.true;\n\t});\n\n\tit(\"should display no error when a valid color is selected\", () => {\n\t\tconst NEW_COLOR = \"#abc123\";\n\n\t\tconst wrapper = mount(<ValidColor {...(ValidColor.args as ColorPickerProps)} />);\n\t\tchangeTextInput(wrapper, NEW_COLOR);\n\n\t\texpect(getTextInputElement(wrapper).prop(\"aria-invalid\")).to.be.false;\n\t});\n\n\tit(\"should trigger an event when a valid color is selected\", () => {\n\t\tconst ORIGINAL_COLOR = \"#123456\";\n\t\tconst NEW_COLOR = \"#abc123\";\n\t\tvar currentColorState = ORIGINAL_COLOR;\n\n\t\tconst wrapper = mount(\n\t\t\t<EmptyField\n\t\t\t\tstartColor={ORIGINAL_COLOR}\n\t\t\t\tupdateColor={(newColor) => {\n\t\t\t\t\tcurrentColorState = newColor;\n\t\t\t\t}}\n\t\t\t/>\n\t\t);\n\t\tchangeTextInput(wrapper, NEW_COLOR);\n\n\t\texpect(currentColorState).to.equal(NEW_COLOR);\n\t});\n\n\tit(\"should not trigger any event when an invalid color is selected\", () => {\n\t\tconst ORIGINAL_COLOR = \"#123456\";\n\t\tconst NEW_COLOR = \"foobar\";\n\t\tvar currentColorState = ORIGINAL_COLOR;\n\n\t\tconst wrapper = mount(\n\t\t\t<EmptyField\n\t\t\t\tstartColor={ORIGINAL_COLOR}\n\t\t\t\tupdateColor={(newColor) => {\n\t\t\t\t\tcurrentColorState = newColor;\n\t\t\t\t}}\n\t\t\t/>\n\t\t);\n\t\tchangeTextInput(wrapper, NEW_COLOR);\n\n\t\texpect(currentColorState).to.equal(ORIGINAL_COLOR);\n\t});\n});\n"]}
@@ -4,6 +4,7 @@ import { describe, it } from "mocha";
4
4
  import { expect } from "chai";
5
5
  import sinon from "sinon";
6
6
  import { Default } from "../stories/DropZone.stories";
7
+ // Necessary to allow sinon to work with mocked actions (which are shown in the Actions panel in Storybook)
7
8
  import addons, { mockChannel } from "@storybook/addons";
8
9
  addons.setChannel(mockChannel());
9
10
  describe("<DropZone />", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"DropZone.spec.js","sourceRoot":"","sources":["../../../../src/components/common/tests/DropZone.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { mount } from \"enzyme\";\nimport { describe, it } from \"mocha\";\nimport { expect } from \"chai\";\nimport sinon from \"sinon\";\nimport { DropZoneProps } from \"../DropZone\";\nimport { Default } from \"../stories/DropZone.stories\";\n\n// Necessary to allow sinon to work with mocked actions (which are shown in the Actions panel in Storybook)\nimport addons, { mockChannel } from \"@storybook/addons\";\naddons.setChannel(mockChannel());\n\ndescribe(\"<DropZone />\", () => {\n\tafterEach(() => {\n\t\tsinon.restore();\n\t});\n\n\tit(\"should process 1 file\", () => {\n\t\tconst buttonSpy = sinon.spy(Default.args as DropZoneProps, \"processFile\");\n\t\tconst wrapper = mount(<Default {...(Default.args as DropZoneProps)} />);\n\t\twrapper.find(\".dropZone\").simulate(\"drop\", {\n\t\t\tdataTransfer: {\n\t\t\t\tfiles: [{}],\n\t\t\t},\n\t\t});\n\t\texpect(buttonSpy.calledOnce).to.be.true;\n\t});\n\n\tit(\"should process 2 files\", () => {\n\t\tconst buttonSpy = sinon.spy(Default.args as DropZoneProps, \"processFile\");\n\t\tconst wrapper = mount(<Default {...(Default.args as DropZoneProps)} />);\n\t\twrapper.find(\".dropZone\").simulate(\"drop\", {\n\t\t\tdataTransfer: {\n\t\t\t\tfiles: [{}, {}],\n\t\t\t},\n\t\t});\n\t\texpect(buttonSpy.getCall(1)).to.not.be.null;\n\t});\n\n\tit(\"should process 0 files\", () => {\n\t\tconst buttonSpy = sinon.spy(Default.args as DropZoneProps, \"processFile\");\n\t\tconst wrapper = mount(<Default {...(Default.args as DropZoneProps)} />);\n\t\twrapper.find(\".dropZone\").simulate(\"drop\", {\n\t\t\tdataTransfer: {\n\t\t\t\tfiles: [],\n\t\t\t},\n\t\t});\n\t\texpect(buttonSpy.calledOnce).to.be.false;\n\t});\n\n\tit(\"should process 2 mixed files\", () => {\n\t\tconst buttonSpy = sinon.spy(Default.args as DropZoneProps, \"processFile\");\n\t\tconst wrapper = mount(<Default {...(Default.args as DropZoneProps)} />);\n\t\twrapper.find(\".dropZone\").simulate(\"drop\", {\n\t\t\tdataTransfer: {\n\t\t\t\tfiles: [null, {}],\n\t\t\t},\n\t\t});\n\t\texpect(buttonSpy.calledOnce).to.not.be.null;\n\t});\n});\n"]}
1
+ {"version":3,"file":"DropZone.spec.js","sourceRoot":"","sources":["../../../../src/components/common/tests/DropZone.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { mount } from \"enzyme\";\nimport { describe, it } from \"mocha\";\nimport { expect } from \"chai\";\nimport sinon from \"sinon\";\nimport { DropZoneProps } from \"../DropZone\";\nimport { Default } from \"../stories/DropZone.stories\";\n\n// Necessary to allow sinon to work with mocked actions (which are shown in the Actions panel in Storybook)\nimport addons, { mockChannel } from \"@storybook/addons\";\naddons.setChannel(mockChannel());\n\ndescribe(\"<DropZone />\", () => {\n\tafterEach(() => {\n\t\tsinon.restore();\n\t});\n\n\tit(\"should process 1 file\", () => {\n\t\tconst buttonSpy = sinon.spy(Default.args as DropZoneProps, \"processFile\");\n\t\tconst wrapper = mount(<Default {...(Default.args as DropZoneProps)} />);\n\t\twrapper.find(\".dropZone\").simulate(\"drop\", {\n\t\t\tdataTransfer: {\n\t\t\t\tfiles: [{}],\n\t\t\t},\n\t\t});\n\t\texpect(buttonSpy.calledOnce).to.be.true;\n\t});\n\n\tit(\"should process 2 files\", () => {\n\t\tconst buttonSpy = sinon.spy(Default.args as DropZoneProps, \"processFile\");\n\t\tconst wrapper = mount(<Default {...(Default.args as DropZoneProps)} />);\n\t\twrapper.find(\".dropZone\").simulate(\"drop\", {\n\t\t\tdataTransfer: {\n\t\t\t\tfiles: [{}, {}],\n\t\t\t},\n\t\t});\n\t\texpect(buttonSpy.getCall(1)).to.not.be.null;\n\t});\n\n\tit(\"should process 0 files\", () => {\n\t\tconst buttonSpy = sinon.spy(Default.args as DropZoneProps, \"processFile\");\n\t\tconst wrapper = mount(<Default {...(Default.args as DropZoneProps)} />);\n\t\twrapper.find(\".dropZone\").simulate(\"drop\", {\n\t\t\tdataTransfer: {\n\t\t\t\tfiles: [],\n\t\t\t},\n\t\t});\n\t\texpect(buttonSpy.calledOnce).to.be.false;\n\t});\n\n\tit(\"should process 2 mixed files\", () => {\n\t\tconst buttonSpy = sinon.spy(Default.args as DropZoneProps, \"processFile\");\n\t\tconst wrapper = mount(<Default {...(Default.args as DropZoneProps)} />);\n\t\twrapper.find(\".dropZone\").simulate(\"drop\", {\n\t\t\tdataTransfer: {\n\t\t\t\tfiles: [null, {}],\n\t\t\t},\n\t\t});\n\t\texpect(buttonSpy.calledOnce).to.not.be.null;\n\t});\n});\n"]}
@@ -3,12 +3,14 @@ import { mount } from "enzyme";
3
3
  import { describe, it } from "mocha";
4
4
  import { expect } from "chai";
5
5
  import { EmptyField, PreFilledField, PreFilledInvalidField, PreFilledFieldNoClearing, } from "../stories/FileInput.stories";
6
+ // For testing user interactions (like click events):
6
7
  import sinon from "sinon";
7
8
  const locators = {
8
9
  displayPath: ".file-input-value-input",
9
10
  clearButton: ".finsemble-icon-times",
10
11
  };
11
12
  describe("<FileInput/>", () => {
13
+ // Used to clear after each interactive test using sinon
12
14
  afterEach(() => {
13
15
  sinon.restore();
14
16
  });
@@ -46,5 +48,25 @@ describe("<FileInput/>", () => {
46
48
  expect(wrapper.find(locators.displayPath).text()).to.equal("ThisIsATest.png");
47
49
  expect(wrapper.find(locators.clearButton).exists()).to.be.false;
48
50
  });
51
+ // it("should update the display when the file is changed", () => {
52
+ // const oldFileName = "old.txt";
53
+ // const newFileName = "newimage/png";
54
+ // const uploadFunction = (fileObject: File) =>
55
+ // new Promise((resolve) => {
56
+ // resolve({
57
+ // err: "",
58
+ // path: fileObject.name,
59
+ // });
60
+ // });
61
+ // const wrapper = mount(<FileInput uploadFunction value={oldFileName} acceptTypes={["image/png", "image/jpg", "image/ico"]} />);
62
+ // wrapper.find("input[type='file']").simulate('change', {
63
+ // target: {
64
+ // files: [
65
+ // newFileName
66
+ // ]
67
+ // }
68
+ // });
69
+ // expect(wrapper.find("input[type='text']").prop("value")).to.equal(newFileName);
70
+ // });
49
71
  });
50
72
  //# sourceMappingURL=FileInput.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FileInput.spec.js","sourceRoot":"","sources":["../../../../src/components/common/tests/FileInput.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 { FileInputProps } from \"../FileInput\";\nimport {\n\tEmptyField,\n\tPreFilledField,\n\tPreFilledInvalidField,\n\tPreFilledFieldNoClearing,\n} from \"../stories/FileInput.stories\";\n\n// For testing user interactions (like click events):\nimport sinon from \"sinon\";\n\nconst locators = {\n\tdisplayPath: \".file-input-value-input\",\n\tclearButton: \".finsemble-icon-times\",\n};\n\ndescribe(\"<FileInput/>\", () => {\n\t// Used to clear after each interactive test using sinon\n\tafterEach(() => {\n\t\tsinon.restore();\n\t});\n\n\tit(\"should display an empty string in its default state\", () => {\n\t\tconst wrapper = mount(<EmptyField {...(EmptyField.args as FileInputProps)} />);\n\t\texpect(wrapper.find(locators.displayPath).text()).to.equal(\"\");\n\t});\n\n\tit(\"should display the chosen file name\", () => {\n\t\tconst wrapper = mount(<PreFilledField {...(PreFilledField.args as FileInputProps)} />);\n\t\texpect(wrapper.find(locators.displayPath).text()).to.equal(\"ThisIsATest.png\");\n\t\texpect(wrapper.find(locators.clearButton).exists(), \"Clear button displayed\").to.be.true;\n\t});\n\n\tit(\"should display an error for invalid file types\", () => {\n\t\tconst wrapper = mount(<PreFilledInvalidField {...(PreFilledInvalidField.args as FileInputProps)} />);\n\t\texpect(wrapper.find(locators.displayPath).is(\".invalid\")).to.be.true;\n\t});\n\n\tit(\"should display no error for valid file types\", () => {\n\t\tconst wrapper = mount(<PreFilledField {...(PreFilledField.args as FileInputProps)} />);\n\t\texpect(wrapper.find(locators.displayPath).is(\".invalid\")).to.be.false;\n\t});\n\n\tit(\"should display no error when no file is chosen\", () => {\n\t\tconst wrapper = mount(<EmptyField {...(EmptyField.args as FileInputProps)} />);\n\t\texpect(wrapper.find(locators.displayPath).is(\".invalid\")).to.be.false;\n\t});\n\n\tit(\"should call onSetValue when file is cleared\", () => {\n\t\tconst spy = sinon.spy();\n\t\tconst wrapper = mount(<PreFilledField onSetValue={spy} {...(PreFilledField.args as FileInputProps)} />);\n\t\twrapper.find(\".button-container-icon button\").simulate(\"click\");\n\n\t\texpect(spy.calledOnce).to.be.true;\n\t\texpect(spy.args[0], \"onSetValue returned with a value of an empty string\").to.deep.equal([\"\"]);\n\t\texpect(wrapper.find(\".file-input-value-input\").text(), \"The filename field was emptied\").to.be.empty;\n\t});\n\n\tit(\"should not display the clear button when allowClearing=false\", () => {\n\t\tconst wrapper = mount(<PreFilledFieldNoClearing {...(PreFilledFieldNoClearing.args as FileInputProps)} />);\n\t\texpect(wrapper.find(locators.displayPath).text()).to.equal(\"ThisIsATest.png\");\n\t\texpect(wrapper.find(locators.clearButton).exists()).to.be.false;\n\t});\n\n\t// it(\"should update the display when the file is changed\", () => {\n\t// \tconst oldFileName = \"old.txt\";\n\t// \tconst newFileName = \"newimage/png\";\n\n\t// \tconst uploadFunction = (fileObject: File) =>\n\t// \t\tnew Promise((resolve) => {\n\t// \t\t\tresolve({\n\t// \t\t\t\terr: \"\",\n\t// \t\t\t\tpath: fileObject.name,\n\t// \t\t\t});\n\t// \t\t});\n\n\t// \tconst wrapper = mount(<FileInput uploadFunction value={oldFileName} acceptTypes={[\"image/png\", \"image/jpg\", \"image/ico\"]} />);\n\t// \twrapper.find(\"input[type='file']\").simulate('change', {\n\t// \t\ttarget: {\n\t// \t\t\tfiles: [\n\t// \t\t\t\tnewFileName\n\t// \t\t\t]\n\t// \t\t}\n\t// \t});\n\n\t// \texpect(wrapper.find(\"input[type='text']\").prop(\"value\")).to.equal(newFileName);\n\t// });\n});\n"]}
1
+ {"version":3,"file":"FileInput.spec.js","sourceRoot":"","sources":["../../../../src/components/common/tests/FileInput.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 { FileInputProps } from \"../FileInput\";\nimport {\n\tEmptyField,\n\tPreFilledField,\n\tPreFilledInvalidField,\n\tPreFilledFieldNoClearing,\n} from \"../stories/FileInput.stories\";\n\n// For testing user interactions (like click events):\nimport sinon from \"sinon\";\n\nconst locators = {\n\tdisplayPath: \".file-input-value-input\",\n\tclearButton: \".finsemble-icon-times\",\n};\n\ndescribe(\"<FileInput/>\", () => {\n\t// Used to clear after each interactive test using sinon\n\tafterEach(() => {\n\t\tsinon.restore();\n\t});\n\n\tit(\"should display an empty string in its default state\", () => {\n\t\tconst wrapper = mount(<EmptyField {...(EmptyField.args as FileInputProps)} />);\n\t\texpect(wrapper.find(locators.displayPath).text()).to.equal(\"\");\n\t});\n\n\tit(\"should display the chosen file name\", () => {\n\t\tconst wrapper = mount(<PreFilledField {...(PreFilledField.args as FileInputProps)} />);\n\t\texpect(wrapper.find(locators.displayPath).text()).to.equal(\"ThisIsATest.png\");\n\t\texpect(wrapper.find(locators.clearButton).exists(), \"Clear button displayed\").to.be.true;\n\t});\n\n\tit(\"should display an error for invalid file types\", () => {\n\t\tconst wrapper = mount(<PreFilledInvalidField {...(PreFilledInvalidField.args as FileInputProps)} />);\n\t\texpect(wrapper.find(locators.displayPath).is(\".invalid\")).to.be.true;\n\t});\n\n\tit(\"should display no error for valid file types\", () => {\n\t\tconst wrapper = mount(<PreFilledField {...(PreFilledField.args as FileInputProps)} />);\n\t\texpect(wrapper.find(locators.displayPath).is(\".invalid\")).to.be.false;\n\t});\n\n\tit(\"should display no error when no file is chosen\", () => {\n\t\tconst wrapper = mount(<EmptyField {...(EmptyField.args as FileInputProps)} />);\n\t\texpect(wrapper.find(locators.displayPath).is(\".invalid\")).to.be.false;\n\t});\n\n\tit(\"should call onSetValue when file is cleared\", () => {\n\t\tconst spy = sinon.spy();\n\t\tconst wrapper = mount(<PreFilledField onSetValue={spy} {...(PreFilledField.args as FileInputProps)} />);\n\t\twrapper.find(\".button-container-icon button\").simulate(\"click\");\n\n\t\texpect(spy.calledOnce).to.be.true;\n\t\texpect(spy.args[0], \"onSetValue returned with a value of an empty string\").to.deep.equal([\"\"]);\n\t\texpect(wrapper.find(\".file-input-value-input\").text(), \"The filename field was emptied\").to.be.empty;\n\t});\n\n\tit(\"should not display the clear button when allowClearing=false\", () => {\n\t\tconst wrapper = mount(<PreFilledFieldNoClearing {...(PreFilledFieldNoClearing.args as FileInputProps)} />);\n\t\texpect(wrapper.find(locators.displayPath).text()).to.equal(\"ThisIsATest.png\");\n\t\texpect(wrapper.find(locators.clearButton).exists()).to.be.false;\n\t});\n\n\t// it(\"should update the display when the file is changed\", () => {\n\t// \tconst oldFileName = \"old.txt\";\n\t// \tconst newFileName = \"newimage/png\";\n\n\t// \tconst uploadFunction = (fileObject: File) =>\n\t// \t\tnew Promise((resolve) => {\n\t// \t\t\tresolve({\n\t// \t\t\t\terr: \"\",\n\t// \t\t\t\tpath: fileObject.name,\n\t// \t\t\t});\n\t// \t\t});\n\n\t// \tconst wrapper = mount(<FileInput uploadFunction value={oldFileName} acceptTypes={[\"image/png\", \"image/jpg\", \"image/ico\"]} />);\n\t// \twrapper.find(\"input[type='file']\").simulate('change', {\n\t// \t\ttarget: {\n\t// \t\t\tfiles: [\n\t// \t\t\t\tnewFileName\n\t// \t\t\t]\n\t// \t\t}\n\t// \t});\n\n\t// \texpect(wrapper.find(\"input[type='text']\").prop(\"value\")).to.equal(newFileName);\n\t// });\n});\n"]}
@@ -4,6 +4,7 @@ import { describe, it } from "mocha";
4
4
  import { expect } from "chai";
5
5
  import sinon from "sinon";
6
6
  import { Sample, SeperateValuesFromText, PreSelected, PreSelectedValues, InvalidPreSelected, Searchable, } from "../stories/FinsembleSelect.stories";
7
+ // Necessary to allow sinon to work with mocked actions (which are shown in the Actions panel in Storybook)
7
8
  import addons, { mockChannel } from "@storybook/addons";
8
9
  import { waitTime } from "../../sdd/sdd_helpers";
9
10
  addons.setChannel(mockChannel());
@@ -1 +1 @@
1
- {"version":3,"file":"FinsembleSelect.spec.js","sourceRoot":"","sources":["../../../../src/components/common/tests/FinsembleSelect.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { mount } from \"enzyme\";\nimport { describe, it } from \"mocha\";\nimport { expect } from \"chai\";\nimport sinon from \"sinon\";\nimport { FinsembleSelectProps } from \"../FinsembleSelect\";\nimport {\n\tSample,\n\tSeperateValuesFromText,\n\tPreSelected,\n\tPreSelectedValues,\n\tInvalidPreSelected,\n\tSearchable,\n} from \"../stories/FinsembleSelect.stories\";\n\n// Necessary to allow sinon to work with mocked actions (which are shown in the Actions panel in Storybook)\nimport addons, { mockChannel } from \"@storybook/addons\";\nimport { waitTime } from \"../../sdd/sdd_helpers\";\naddons.setChannel(mockChannel());\n\ndescribe(\"<FinsembleSelect/>\", () => {\n\tafterEach(() => {\n\t\tsinon.restore();\n\t});\n\n\tit(\"should display text and a checkbox\", () => {\n\t\tconst wrapper = mount(<Sample {...(Sample.args as FinsembleSelectProps)} />);\n\n\t\texpect(wrapper.find(\".emperorOption span\").exists(), \"Options have text\").to.be.true;\n\t\texpect(wrapper.find(\".emperorOption input[type='checkbox']\").exists(), \"Options have checkboxes\").to.be.true;\n\t});\n\tit(\"should call a function when checkbox is checked\", () => {\n\t\tconst buttonSpy = sinon.spy(Sample.args as FinsembleSelectProps, \"updateCallback\");\n\t\tconst wrapper = mount(<Sample {...(Sample.args as FinsembleSelectProps)} />);\n\t\twrapper.find(\".emperorOption input[type='checkbox']\").at(1).simulate(\"change\");\n\t\texpect(buttonSpy.getCall(0)).to.not.be.null;\n\t});\n\tit(\"should return all items checked when multiple items have been checked\", () => {\n\t\tconst buttonSpy = sinon.spy(Sample.args as FinsembleSelectProps, \"updateCallback\");\n\t\tconst wrapper = mount(<Sample {...(Sample.args as FinsembleSelectProps)} />);\n\t\twrapper.find(\".emperorOption input[type='checkbox']\").at(0).simulate(\"change\");\n\t\twrapper.find(\".emperorOption input[type='checkbox']\").at(2).simulate(\"change\");\n\t\texpect(buttonSpy.getCall(1).args[0]).lengthOf(2);\n\t});\n\tit(\"should limit checked selection\", () => {\n\t\tconst buttonSpy = sinon.spy(Sample.args as FinsembleSelectProps, \"updateCallback\");\n\t\tconst wrapper = mount(<Sample {...{ ...(Sample.args as FinsembleSelectProps), limit: 2 }} />);\n\t\twrapper.find(\".emperorOption input[type='checkbox']\").at(0).simulate(\"change\");\n\t\twrapper.find(\".emperorOption input[type='checkbox']\").at(1).simulate(\"change\");\n\t\twrapper.find(\".emperorOption input[type='checkbox']\").at(2).simulate(\"change\");\n\t\texpect(buttonSpy.getCall(1).args[0]).lengthOf(2);\n\t});\n\tit(\"should return values, not display text, if values are provided\", () => {\n\t\tconst buttonSpy = sinon.spy(SeperateValuesFromText.args as FinsembleSelectProps, \"updateCallback\");\n\t\tconst wrapper = mount(<SeperateValuesFromText {...(SeperateValuesFromText.args as FinsembleSelectProps)} />);\n\t\twrapper.find(\".emperorOption input[type='checkbox']\").at(0).simulate(\"change\");\n\t\texpect(buttonSpy.getCall(0).args[0]).to.deep.equal([\"1\"]);\n\t});\n\tit(\"should start with selected items if pre-selected items are provided\", () => {\n\t\tconst wrapper = mount(<PreSelected {...(PreSelected.args as FinsembleSelectProps)} />);\n\t\texpect(wrapper.find(\".emperorOption input[type='checkbox']\").at(1).prop(\"checked\")).to.be.true;\n\t});\n\tit(\"should show selected items if pre-selected items are provided after initial render\", async () => {\n\t\tconst wrapper = mount(<PreSelected {...(Sample.args as FinsembleSelectProps)} />);\n\n\t\tawait waitTime(10);\n\n\t\twrapper.setProps({ selected: PreSelected.args?.selected });\n\n\t\twrapper.update();\n\n\t\texpect(wrapper.find(\".emperorOption input[type='checkbox']\").at(1).prop(\"checked\")).to.be.true;\n\t});\n\tit(\"should start with selected values if both values and pre-selected values are provided\", () => {\n\t\tconst wrapper = mount(<PreSelectedValues {...(PreSelectedValues.args as FinsembleSelectProps)} />);\n\t\texpect(wrapper.find(\".emperorOption input[type='checkbox']\").at(0).prop(\"checked\")).to.be.false;\n\t\texpect(wrapper.find(\".emperorOption input[type='checkbox']\").at(1).prop(\"checked\")).to.be.true;\n\t\texpect(wrapper.find(\".emperorOption input[type='checkbox']\").at(2).prop(\"checked\")).to.be.true;\n\t\texpect(wrapper.find(\".emperorOption input[type='checkbox']\").at(3).prop(\"checked\")).to.be.false;\n\t});\n\tit(\"should ignore invalid pre-selected items\", () => {\n\t\tconst wrapper = mount(<InvalidPreSelected {...(InvalidPreSelected.args as FinsembleSelectProps)} />);\n\t\texpect(wrapper.find(\".emperorOption input[type='checkbox']\").at(0).prop(\"checked\")).to.be.false;\n\t\texpect(wrapper.find(\".emperorOption input[type='checkbox']\").at(1).prop(\"checked\")).to.be.false;\n\t\texpect(wrapper.find(\".emperorOption input[type='checkbox']\").at(2).prop(\"checked\")).to.be.false;\n\t\texpect(wrapper.find(\".emperorOption input[type='checkbox']\").at(3).prop(\"checked\")).to.be.false;\n\t});\n\tit(\"should filter list on input (case-insensitive)\", () => {\n\t\tconst buttonSpy = sinon.spy(Searchable.args as FinsembleSelectProps, \"updateCallback\");\n\t\tconst wrapper = mount(<Searchable {...(Searchable.args as FinsembleSelectProps)} />);\n\t\twrapper\n\t\t\t.find(\"input.search\")\n\t\t\t.at(0)\n\t\t\t.simulate(\"input\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"north\",\n\t\t\t\t},\n\t\t\t});\n\t\texpect(wrapper.find(\".emperorOption\")).lengthOf(2);\n\t\twrapper.find(\".emperorOption input[type='checkbox']\").at(0).simulate(\"change\");\n\t\texpect(buttonSpy.getCall(0).args[0]).to.deep.equal([\"NC\"]);\n\t});\n});\n"]}
1
+ {"version":3,"file":"FinsembleSelect.spec.js","sourceRoot":"","sources":["../../../../src/components/common/tests/FinsembleSelect.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { mount } from \"enzyme\";\nimport { describe, it } from \"mocha\";\nimport { expect } from \"chai\";\nimport sinon from \"sinon\";\nimport { FinsembleSelectProps } from \"../FinsembleSelect\";\nimport {\n\tSample,\n\tSeperateValuesFromText,\n\tPreSelected,\n\tPreSelectedValues,\n\tInvalidPreSelected,\n\tSearchable,\n} from \"../stories/FinsembleSelect.stories\";\n\n// Necessary to allow sinon to work with mocked actions (which are shown in the Actions panel in Storybook)\nimport addons, { mockChannel } from \"@storybook/addons\";\nimport { waitTime } from \"../../sdd/sdd_helpers\";\naddons.setChannel(mockChannel());\n\ndescribe(\"<FinsembleSelect/>\", () => {\n\tafterEach(() => {\n\t\tsinon.restore();\n\t});\n\n\tit(\"should display text and a checkbox\", () => {\n\t\tconst wrapper = mount(<Sample {...(Sample.args as FinsembleSelectProps)} />);\n\n\t\texpect(wrapper.find(\".emperorOption span\").exists(), \"Options have text\").to.be.true;\n\t\texpect(wrapper.find(\".emperorOption input[type='checkbox']\").exists(), \"Options have checkboxes\").to.be.true;\n\t});\n\tit(\"should call a function when checkbox is checked\", () => {\n\t\tconst buttonSpy = sinon.spy(Sample.args as FinsembleSelectProps, \"updateCallback\");\n\t\tconst wrapper = mount(<Sample {...(Sample.args as FinsembleSelectProps)} />);\n\t\twrapper.find(\".emperorOption input[type='checkbox']\").at(1).simulate(\"change\");\n\t\texpect(buttonSpy.getCall(0)).to.not.be.null;\n\t});\n\tit(\"should return all items checked when multiple items have been checked\", () => {\n\t\tconst buttonSpy = sinon.spy(Sample.args as FinsembleSelectProps, \"updateCallback\");\n\t\tconst wrapper = mount(<Sample {...(Sample.args as FinsembleSelectProps)} />);\n\t\twrapper.find(\".emperorOption input[type='checkbox']\").at(0).simulate(\"change\");\n\t\twrapper.find(\".emperorOption input[type='checkbox']\").at(2).simulate(\"change\");\n\t\texpect(buttonSpy.getCall(1).args[0]).lengthOf(2);\n\t});\n\tit(\"should limit checked selection\", () => {\n\t\tconst buttonSpy = sinon.spy(Sample.args as FinsembleSelectProps, \"updateCallback\");\n\t\tconst wrapper = mount(<Sample {...{ ...(Sample.args as FinsembleSelectProps), limit: 2 }} />);\n\t\twrapper.find(\".emperorOption input[type='checkbox']\").at(0).simulate(\"change\");\n\t\twrapper.find(\".emperorOption input[type='checkbox']\").at(1).simulate(\"change\");\n\t\twrapper.find(\".emperorOption input[type='checkbox']\").at(2).simulate(\"change\");\n\t\texpect(buttonSpy.getCall(1).args[0]).lengthOf(2);\n\t});\n\tit(\"should return values, not display text, if values are provided\", () => {\n\t\tconst buttonSpy = sinon.spy(SeperateValuesFromText.args as FinsembleSelectProps, \"updateCallback\");\n\t\tconst wrapper = mount(<SeperateValuesFromText {...(SeperateValuesFromText.args as FinsembleSelectProps)} />);\n\t\twrapper.find(\".emperorOption input[type='checkbox']\").at(0).simulate(\"change\");\n\t\texpect(buttonSpy.getCall(0).args[0]).to.deep.equal([\"1\"]);\n\t});\n\tit(\"should start with selected items if pre-selected items are provided\", () => {\n\t\tconst wrapper = mount(<PreSelected {...(PreSelected.args as FinsembleSelectProps)} />);\n\t\texpect(wrapper.find(\".emperorOption input[type='checkbox']\").at(1).prop(\"checked\")).to.be.true;\n\t});\n\tit(\"should show selected items if pre-selected items are provided after initial render\", async () => {\n\t\tconst wrapper = mount(<PreSelected {...(Sample.args as FinsembleSelectProps)} />);\n\n\t\tawait waitTime(10);\n\n\t\twrapper.setProps({ selected: PreSelected.args?.selected });\n\n\t\twrapper.update();\n\n\t\texpect(wrapper.find(\".emperorOption input[type='checkbox']\").at(1).prop(\"checked\")).to.be.true;\n\t});\n\tit(\"should start with selected values if both values and pre-selected values are provided\", () => {\n\t\tconst wrapper = mount(<PreSelectedValues {...(PreSelectedValues.args as FinsembleSelectProps)} />);\n\t\texpect(wrapper.find(\".emperorOption input[type='checkbox']\").at(0).prop(\"checked\")).to.be.false;\n\t\texpect(wrapper.find(\".emperorOption input[type='checkbox']\").at(1).prop(\"checked\")).to.be.true;\n\t\texpect(wrapper.find(\".emperorOption input[type='checkbox']\").at(2).prop(\"checked\")).to.be.true;\n\t\texpect(wrapper.find(\".emperorOption input[type='checkbox']\").at(3).prop(\"checked\")).to.be.false;\n\t});\n\tit(\"should ignore invalid pre-selected items\", () => {\n\t\tconst wrapper = mount(<InvalidPreSelected {...(InvalidPreSelected.args as FinsembleSelectProps)} />);\n\t\texpect(wrapper.find(\".emperorOption input[type='checkbox']\").at(0).prop(\"checked\")).to.be.false;\n\t\texpect(wrapper.find(\".emperorOption input[type='checkbox']\").at(1).prop(\"checked\")).to.be.false;\n\t\texpect(wrapper.find(\".emperorOption input[type='checkbox']\").at(2).prop(\"checked\")).to.be.false;\n\t\texpect(wrapper.find(\".emperorOption input[type='checkbox']\").at(3).prop(\"checked\")).to.be.false;\n\t});\n\tit(\"should filter list on input (case-insensitive)\", () => {\n\t\tconst buttonSpy = sinon.spy(Searchable.args as FinsembleSelectProps, \"updateCallback\");\n\t\tconst wrapper = mount(<Searchable {...(Searchable.args as FinsembleSelectProps)} />);\n\t\twrapper\n\t\t\t.find(\"input.search\")\n\t\t\t.at(0)\n\t\t\t.simulate(\"input\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"north\",\n\t\t\t\t},\n\t\t\t});\n\t\texpect(wrapper.find(\".emperorOption\")).lengthOf(2);\n\t\twrapper.find(\".emperorOption input[type='checkbox']\").at(0).simulate(\"change\");\n\t\texpect(buttonSpy.getCall(0).args[0]).to.deep.equal([\"NC\"]);\n\t});\n});\n"]}
@@ -3,8 +3,9 @@ import { mount } from "enzyme";
3
3
  import { describe, it } from "mocha";
4
4
  import { expect } from "chai";
5
5
  import sinon from "sinon";
6
- import { Checked, Unchecked, TextLabels } from "../stories/FinsembleToggle.stories";
6
+ import { Checked, Unchecked } from "../stories/FinsembleToggle.stories";
7
7
  import { accessibilityAssessor } from "../../sdd/tests/a11y_helper";
8
+ // Necessary to allow sinon to work with mocked actions (which are shown in the Actions panel in Storybook)
8
9
  import addons, { mockChannel } from "@storybook/addons";
9
10
  import { waitTime } from "../../sdd/sdd_helpers";
10
11
  addons.setChannel(mockChannel());
@@ -24,10 +25,5 @@ describe("<FinsembleToggle/>", () => {
24
25
  wrapper.update();
25
26
  expect(wrapper.find("input[type='checkbox']").at(0).prop("checked")).to.be.true;
26
27
  });
27
- it("should display checked labels", async () => {
28
- const wrapper = mount(React.createElement(TextLabels, Object.assign({}, TextLabels.args)));
29
- expect(wrapper.find(".toggle-text-label").at(0).text()).to.equal("Daily");
30
- expect(wrapper.find(".toggle-text-label").at(1).text()).to.equal("Weekly");
31
- });
32
28
  });
33
29
  //# sourceMappingURL=FinsembleToggle.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FinsembleToggle.spec.js","sourceRoot":"","sources":["../../../../src/components/common/tests/FinsembleToggle.spec.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,OAAO,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;AAEjC,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IACnC,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,SAAS,oBAAM,SAAS,CAAC,IAA6B,EAAI,CAAC,CAAC;QAEnF,MAAM,CAAC,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;;QACxF,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,SAAS,oBAAM,SAAS,CAAC,IAA6B,EAAI,CAAC,CAAC;QAEnF,MAAM,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEnB,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,MAAA,OAAO,CAAC,IAAI,0CAAE,OAAO,EAAE,CAAC,CAAC;QAErD,OAAO,CAAC,MAAM,EAAE,CAAC;QAEjB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACjF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,UAAU,oBAAM,UAAU,CAAC,IAA6B,EAAI,CAAC,CAAC;QACrF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1E,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC5E,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 sinon from \"sinon\";\nimport { FinsembleToggleProps } from \"../FinsembleToggle\";\nimport { Checked, Unchecked, TextLabels } from \"../stories/FinsembleToggle.stories\";\nimport { accessibilityAssessor } from \"../../sdd/tests/a11y_helper\";\n\n// Necessary to allow sinon to work with mocked actions (which are shown in the Actions panel in Storybook)\nimport addons, { mockChannel } from \"@storybook/addons\";\nimport { waitTime } from \"../../sdd/sdd_helpers\";\naddons.setChannel(mockChannel());\n\ndescribe(\"<FinsembleToggle/>\", () => {\n\tafterEach(() => {\n\t\tsinon.restore();\n\t});\n\n\tit(\"should pass accessibility scans\", async () => {\n\t\tconst wrapper = mount(<Unchecked {...(Unchecked.args as FinsembleToggleProps)} />);\n\n\t\texpect(await accessibilityAssessor(wrapper)).to.be.true;\n\t});\n\n\tit(\"should be checked items if checked prop is updated after initial render\", async () => {\n\t\tconst wrapper = mount(<Unchecked {...(Unchecked.args as FinsembleToggleProps)} />);\n\n\t\tawait waitTime(10);\n\n\t\twrapper.setProps({ checked: Checked.args?.checked });\n\n\t\twrapper.update();\n\n\t\texpect(wrapper.find(\"input[type='checkbox']\").at(0).prop(\"checked\")).to.be.true;\n\t});\n\n\tit(\"should display checked labels\", async () => {\n\t\tconst wrapper = mount(<TextLabels {...(TextLabels.args as FinsembleToggleProps)} />);\n\t\texpect(wrapper.find(\".toggle-text-label\").at(0).text()).to.equal(\"Daily\");\n\t\texpect(wrapper.find(\".toggle-text-label\").at(1).text()).to.equal(\"Weekly\");\n\t});\n});\n"]}
1
+ {"version":3,"file":"FinsembleToggle.spec.js","sourceRoot":"","sources":["../../../../src/components/common/tests/FinsembleToggle.spec.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,2GAA2G;AAC3G,OAAO,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;AAEjC,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IACnC,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,SAAS,oBAAM,SAAS,CAAC,IAA6B,EAAI,CAAC,CAAC;QAEnF,MAAM,CAAC,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;;QACxF,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,SAAS,oBAAM,SAAS,CAAC,IAA6B,EAAI,CAAC,CAAC;QAEnF,MAAM,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEnB,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,MAAA,OAAO,CAAC,IAAI,0CAAE,OAAO,EAAE,CAAC,CAAC;QAErD,OAAO,CAAC,MAAM,EAAE,CAAC;QAEjB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACjF,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\nimport { mount } from \"enzyme\";\nimport { describe, it } from \"mocha\";\nimport { expect } from \"chai\";\nimport sinon from \"sinon\";\nimport { FinsembleToggleProps } from \"../FinsembleToggle\";\nimport { Checked, Unchecked } from \"../stories/FinsembleToggle.stories\";\nimport { accessibilityAssessor } from \"../../sdd/tests/a11y_helper\";\n\n// Necessary to allow sinon to work with mocked actions (which are shown in the Actions panel in Storybook)\nimport addons, { mockChannel } from \"@storybook/addons\";\nimport { waitTime } from \"../../sdd/sdd_helpers\";\naddons.setChannel(mockChannel());\n\ndescribe(\"<FinsembleToggle/>\", () => {\n\tafterEach(() => {\n\t\tsinon.restore();\n\t});\n\n\tit(\"should pass accessibility scans\", async () => {\n\t\tconst wrapper = mount(<Unchecked {...(Unchecked.args as FinsembleToggleProps)} />);\n\n\t\texpect(await accessibilityAssessor(wrapper)).to.be.true;\n\t});\n\n\tit(\"should be checked items if checked prop is updated after initial render\", async () => {\n\t\tconst wrapper = mount(<Unchecked {...(Unchecked.args as FinsembleToggleProps)} />);\n\n\t\tawait waitTime(10);\n\n\t\twrapper.setProps({ checked: Checked.args?.checked });\n\n\t\twrapper.update();\n\n\t\texpect(wrapper.find(\"input[type='checkbox']\").at(0).prop(\"checked\")).to.be.true;\n\t});\n});\n"]}
@@ -0,0 +1,41 @@
1
+ import * as React from "react";
2
+ import { mount } from "enzyme";
3
+ import { describe, it } from "mocha";
4
+ import { expect } from "chai";
5
+ import sinon from "sinon";
6
+ import { TextLabels, MoreThanTwo, LabelsWithChildren } from "../stories/FinsembleToggleButtonBar.stories";
7
+ import { accessibilityAssessor } from "../../sdd/tests/a11y_helper";
8
+ // Necessary to allow sinon to work with mocked actions (which are shown in the Actions panel in Storybook)
9
+ import addons, { mockChannel } from "@storybook/addons";
10
+ addons.setChannel(mockChannel());
11
+ describe("<FinsembleToggleButtonBar/>", () => {
12
+ afterEach(() => {
13
+ sinon.restore();
14
+ });
15
+ it("should pass accessibility scans", async () => {
16
+ const wrapper = mount(React.createElement(TextLabels, Object.assign({}, TextLabels.args)));
17
+ expect(await accessibilityAssessor(wrapper)).to.be.true;
18
+ });
19
+ it("Initial item should display checked initially", async () => {
20
+ const wrapper = mount(React.createElement(TextLabels, Object.assign({}, TextLabels.args)));
21
+ expect(wrapper.find(".toggle-text-label").at(0).prop("aria-checked"), "The first toggle is checked").to.be.true;
22
+ expect(wrapper.find(".toggle-text-label").at(1).prop("aria-checked"), "The second toggle is not checked").to.be
23
+ .false;
24
+ });
25
+ it("Clicking an item returns the value presented", async () => {
26
+ const buttonSpy = sinon.spy(TextLabels.args, "onChange");
27
+ const wrapper = mount(React.createElement(TextLabels, Object.assign({}, TextLabels.args)));
28
+ wrapper.find(".toggle-text-label").at(1).simulate("click");
29
+ expect(buttonSpy.calledOnce, "The onChange callback was called").to.be.true;
30
+ expect(buttonSpy.args[0][0], "The value assigned to button #2 is the value returned when it's clicked").to.be.false;
31
+ });
32
+ it("More than 2 items should display", async () => {
33
+ const wrapper = mount(React.createElement(MoreThanTwo, Object.assign({}, MoreThanTwo.args)));
34
+ expect(wrapper.find(".toggle-text-label").length, "There are 4 toggle buttons").to.equal(4);
35
+ });
36
+ it("LabelsWithChildren should include icons in their display", async () => {
37
+ const wrapper = mount(React.createElement(LabelsWithChildren, Object.assign({}, LabelsWithChildren.args)));
38
+ expect(wrapper.find(".toggle-text-label").at(0).find(".finsemble-icon").exists(), "There's an icon in the first button").to.be.true;
39
+ });
40
+ });
41
+ //# sourceMappingURL=FinsembleToggleButtonBar.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FinsembleToggleButtonBar.spec.js","sourceRoot":"","sources":["../../../../src/components/common/tests/FinsembleToggleButtonBar.spec.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AAC1G,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,2GAA2G;AAC3G,OAAO,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACxD,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;AAEjC,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC5C,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,UAAU,oBAAM,UAAU,CAAC,IAAsC,EAAI,CAAC,CAAC;QAE9F,MAAM,CAAC,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,UAAU,oBAAM,UAAU,CAAC,IAAsC,EAAI,CAAC,CAAC;QAE9F,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,6BAA6B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAChH,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,kCAAkC,CAAC,CAAC,EAAE,CAAC,EAAE;aAC7G,KAAK,CAAC;IACT,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAqC,EAAE,UAAU,CAAC,CAAC;QAC1F,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,UAAU,oBAAM,UAAU,CAAC,IAAsC,EAAI,CAAC,CAAC;QAE9F,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC3D,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,kCAAkC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC5E,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,yEAAyE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IACrH,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,WAAW,oBAAM,WAAW,CAAC,IAAsC,EAAI,CAAC,CAAC;QAEhG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,kBAAkB,oBAAM,kBAAkB,CAAC,IAAsC,EAAI,CAAC,CAAC;QAE9G,MAAM,CACL,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,EACzE,qCAAqC,CACrC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACd,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 sinon from \"sinon\";\nimport { FinsembleToggleButtonBarProps } from \"../FinsembleToggleButtonBar\";\nimport { TextLabels, MoreThanTwo, LabelsWithChildren } from \"../stories/FinsembleToggleButtonBar.stories\";\nimport { accessibilityAssessor } from \"../../sdd/tests/a11y_helper\";\n\n// Necessary to allow sinon to work with mocked actions (which are shown in the Actions panel in Storybook)\nimport addons, { mockChannel } from \"@storybook/addons\";\naddons.setChannel(mockChannel());\n\ndescribe(\"<FinsembleToggleButtonBar/>\", () => {\n\tafterEach(() => {\n\t\tsinon.restore();\n\t});\n\n\tit(\"should pass accessibility scans\", async () => {\n\t\tconst wrapper = mount(<TextLabels {...(TextLabels.args as FinsembleToggleButtonBarProps)} />);\n\n\t\texpect(await accessibilityAssessor(wrapper)).to.be.true;\n\t});\n\n\tit(\"Initial item should display checked initially\", async () => {\n\t\tconst wrapper = mount(<TextLabels {...(TextLabels.args as FinsembleToggleButtonBarProps)} />);\n\n\t\texpect(wrapper.find(\".toggle-text-label\").at(0).prop(\"aria-checked\"), \"The first toggle is checked\").to.be.true;\n\t\texpect(wrapper.find(\".toggle-text-label\").at(1).prop(\"aria-checked\"), \"The second toggle is not checked\").to.be\n\t\t\t.false;\n\t});\n\tit(\"Clicking an item returns the value presented\", async () => {\n\t\tconst buttonSpy = sinon.spy(TextLabels.args as FinsembleToggleButtonBarProps, \"onChange\");\n\t\tconst wrapper = mount(<TextLabels {...(TextLabels.args as FinsembleToggleButtonBarProps)} />);\n\n\t\twrapper.find(\".toggle-text-label\").at(1).simulate(\"click\");\n\t\texpect(buttonSpy.calledOnce, \"The onChange callback was called\").to.be.true;\n\t\texpect(buttonSpy.args[0][0], \"The value assigned to button #2 is the value returned when it's clicked\").to.be.false;\n\t});\n\tit(\"More than 2 items should display\", async () => {\n\t\tconst wrapper = mount(<MoreThanTwo {...(MoreThanTwo.args as FinsembleToggleButtonBarProps)} />);\n\n\t\texpect(wrapper.find(\".toggle-text-label\").length, \"There are 4 toggle buttons\").to.equal(4);\n\t});\n\tit(\"LabelsWithChildren should include icons in their display\", async () => {\n\t\tconst wrapper = mount(<LabelsWithChildren {...(LabelsWithChildren.args as FinsembleToggleButtonBarProps)} />);\n\n\t\texpect(\n\t\t\twrapper.find(\".toggle-text-label\").at(0).find(\".finsemble-icon\").exists(),\n\t\t\t\"There's an icon in the first button\"\n\t\t).to.be.true;\n\t});\n});\n"]}
@@ -93,7 +93,7 @@ describe("<InputTable/>", () => {
93
93
  expect(wrapper.find("input").at(2).props().value).to.equal("");
94
94
  });
95
95
  it("onUpdate is called after an input causes a new row to be added", () => {
96
- const buttonSpy = sinon.spy(StartingData.args, "onUpdate");
96
+ const buttonSpy = sinon.spy(StartingData.args, "setData");
97
97
  const wrapper = mount(React.createElement(StartingData, Object.assign({}, StartingData.args)));
98
98
  expect(buttonSpy.getCall(0).args[0]).to.deep.equal([
99
99
  ["A", "1"],
@@ -123,7 +123,7 @@ describe("<InputTable/>", () => {
123
123
  expect(buttonSpy.getCall(3)).to.be.null;
124
124
  });
125
125
  it("onUpdate is called after an input is edited", () => {
126
- const buttonSpy = sinon.spy(StartingData.args, "onUpdate");
126
+ const buttonSpy = sinon.spy(StartingData.args, "setData");
127
127
  const wrapper = mount(React.createElement(StartingData, Object.assign({}, StartingData.args)));
128
128
  expect(buttonSpy.getCall(0).args[0]).to.deep.equal([
129
129
  ["A", "1"],
@@ -147,7 +147,7 @@ describe("<InputTable/>", () => {
147
147
  expect(buttonSpy.getCall(2)).to.be.null;
148
148
  });
149
149
  it("onUpdate is called after a row is deleted", () => {
150
- const buttonSpy = sinon.spy(StartingData.args, "onUpdate");
150
+ const buttonSpy = sinon.spy(StartingData.args, "setData");
151
151
  const wrapper = mount(React.createElement(StartingData, Object.assign({}, StartingData.args)));
152
152
  expect(buttonSpy.getCall(0).args[0]).to.deep.equal([
153
153
  ["A", "1"],
@@ -1 +1 @@
1
- {"version":3,"file":"InputTable.spec.js","sourceRoot":"","sources":["../../../../src/components/common/tests/InputTable.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { mount } from \"enzyme\";\nimport { describe, it } from \"mocha\";\nimport { expect } from \"chai\";\nimport sinon from \"sinon\";\nimport { Basic, StartingData } from \"../stories/InputTable.stories\";\nimport { InputTableProps } from \"../InputTable\";\n\ndescribe(\"<InputTable/>\", () => {\n\tafterEach(() => {\n\t\tsinon.restore();\n\t});\n\n\tit(\"string table headers display correctly\", () => {\n\t\tconst wrapper = mount(<StartingData {...(StartingData.args as InputTableProps)} />);\n\t\texpect(wrapper.find(\"th\").at(0).text(), \"First header\").to.equal(\"Letter\");\n\t\texpect(wrapper.find(\"th\").at(1).text(), \"Second header\").to.equal(\"Number\");\n\t});\n\tit(\"JSX table headers display correctly\", () => {\n\t\tconst wrapper = mount(<Basic {...(Basic.args as InputTableProps)} />);\n\t\texpect(wrapper.find(\"th\").at(0).text()).to.include(\"Contexts\");\n\t\texpect(wrapper.find(\"th .tooltip-content\").exists()).to.be.true;\n\t});\n\tit(\"providing 2 column headers creates a table with 2 columns of input fields\", () => {\n\t\tconst wrapper = mount(<StartingData {...(StartingData.args as InputTableProps)} />);\n\t\texpect(wrapper.find(\"tr\").at(1).find(\"td input\").length).to.equal(2);\n\t});\n\tit(\"providing 3 column headers creates a table with 3 columns\", () => {\n\t\tconst wrapper = mount(<Basic {...(Basic.args as InputTableProps)} />);\n\t\texpect(wrapper.find(\"tr\").at(1).find(\"td\").length).to.equal(3);\n\t});\n\tit(\"when a component has startingData, that data is displayed, plus an extra row\", () => {\n\t\tconst wrapper = mount(<StartingData {...(StartingData.args as InputTableProps)} />);\n\t\texpect(wrapper.find(\"tr\").length).to.equal(4);\n\t\texpect(wrapper.find(\"tr\").at(1).find(\"td input\").at(0).props().value).to.equal(\"A\");\n\t\texpect(wrapper.find(\"tr\").at(1).find(\"td input\").at(1).props().value).to.equal(\"1\");\n\t\texpect(wrapper.find(\"tr\").at(2).find(\"td input\").at(0).props().value).to.equal(\"B\");\n\t\texpect(wrapper.find(\"tr\").at(2).find(\"td input\").at(1).props().value).to.equal(\"2\");\n\t\texpect(wrapper.find(\"tr\").at(3).find(\"td input\").at(0).props().value).to.equal(\"\");\n\t\texpect(wrapper.find(\"tr\").at(3).find(\"td input\").at(1).props().value).to.equal(\"\");\n\t});\n\tit(\"when a component has no startingData, the table shows only 1 empty row\", () => {\n\t\tconst wrapper = mount(<Basic {...(Basic.args as InputTableProps)} />);\n\t\texpect(wrapper.find(\"tr\").length).to.equal(2);\n\t\texpect(wrapper.find(\"tr\").at(1).find(\"td input\").at(0).props().value).to.equal(\"\");\n\t\texpect(wrapper.find(\"tr\").at(1).find(\"td input\").at(1).props().value).to.equal(\"\");\n\t});\n\tit(\"show no X on the last row of a single-row table\", () => {\n\t\tconst wrapper = mount(<Basic {...(Basic.args as InputTableProps)} />);\n\t\texpect(wrapper.find(\"tr\").length).to.equal(2);\n\t\texpect(wrapper.find(\"tr\").at(1).find(\"td button\").exists()).to.be.false;\n\t});\n\tit(\"show X's on all but the last row of a multi-row table\", () => {\n\t\tconst wrapper = mount(<StartingData {...(StartingData.args as InputTableProps)} />);\n\t\texpect(wrapper.find(\"tr\").length).to.equal(4);\n\t\texpect(wrapper.find(\"tr\").at(1).find(\"td button\").exists()).to.be.true;\n\t\texpect(wrapper.find(\"tr\").at(2).find(\"td button\").exists()).to.be.true;\n\t\texpect(wrapper.find(\"tr\").at(3).find(\"td button\").exists()).to.be.false;\n\t});\n\tit(\"Typing in the last row causes a new row to be created\", () => {\n\t\tconst wrapper = mount(<StartingData {...(StartingData.args as InputTableProps)} />);\n\t\texpect(wrapper.find(\"tr\").length).to.equal(4);\n\t\texpect(wrapper.find(\"input\").length).to.equal(6);\n\t\twrapper\n\t\t\t.find(\"tr\")\n\t\t\t.at(3)\n\t\t\t.find(\"input\")\n\t\t\t.at(0)\n\t\t\t.simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"New text\",\n\t\t\t\t},\n\t\t\t});\n\t\texpect(wrapper.find(\"tr\").length).to.equal(5);\n\t\texpect(wrapper.find(\"input\").length).to.equal(8);\n\t});\n\tit(\"Clicking X on the first row deletes it\", () => {\n\t\tconst wrapper = mount(<StartingData {...(StartingData.args as InputTableProps)} />);\n\t\texpect(wrapper.find(\"tr\").length).to.equal(4);\n\t\texpect(wrapper.find(\"input\").at(0).props().value).to.equal(\"A\");\n\t\texpect(wrapper.find(\"input\").at(2).props().value).to.equal(\"B\");\n\n\t\twrapper.find(\"button\").at(0).simulate(\"click\");\n\t\texpect(wrapper.find(\"tr\").length).to.equal(3);\n\t\texpect(wrapper.find(\"input\").at(0).props().value).to.equal(\"B\");\n\t\texpect(wrapper.find(\"input\").at(2).props().value).to.equal(\"\");\n\t});\n\tit(\"Clicking X on a middle row deletes it\", () => {\n\t\tconst wrapper = mount(<StartingData {...(StartingData.args as InputTableProps)} />);\n\t\texpect(wrapper.find(\"tr\").length).to.equal(4);\n\t\texpect(wrapper.find(\"input\").at(0).props().value).to.equal(\"A\");\n\t\texpect(wrapper.find(\"input\").at(2).props().value).to.equal(\"B\");\n\t\texpect(wrapper.find(\"input\").at(4).props().value).to.equal(\"\");\n\n\t\twrapper.find(\"button\").at(1).simulate(\"click\");\n\t\texpect(wrapper.find(\"tr\").length).to.equal(3);\n\t\texpect(wrapper.find(\"input\").at(0).props().value).to.equal(\"A\");\n\t\texpect(wrapper.find(\"input\").at(2).props().value).to.equal(\"\");\n\t});\n\tit(\"onUpdate is called after an input causes a new row to be added\", () => {\n\t\tconst buttonSpy = sinon.spy(StartingData.args as InputTableProps, \"onUpdate\");\n\t\tconst wrapper = mount(<StartingData {...(StartingData.args as InputTableProps)} />);\n\n\t\texpect(buttonSpy.getCall(0).args[0]).to.deep.equal([\n\t\t\t[\"A\", \"1\"],\n\t\t\t[\"B\", \"2\"],\n\t\t\t[\"\", \"\"],\n\t\t]);\n\t\texpect(buttonSpy.getCall(1)).to.be.null;\n\n\t\twrapper\n\t\t\t.find(\"input\")\n\t\t\t.at(4)\n\t\t\t.simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"New text\",\n\t\t\t\t},\n\t\t\t});\n\n\t\texpect(buttonSpy.getCall(1).args[0]).to.deep.equal([\n\t\t\t[\"A\", \"1\"],\n\t\t\t[\"B\", \"2\"],\n\t\t\t[\"New text\", \"\"],\n\t\t]);\n\n\t\texpect(buttonSpy.getCall(2).args[0]).to.deep.equal([\n\t\t\t[\"A\", \"1\"],\n\t\t\t[\"B\", \"2\"],\n\t\t\t[\"New text\", \"\"],\n\t\t\t[\"\", \"\"],\n\t\t]);\n\t\texpect(buttonSpy.getCall(3)).to.be.null;\n\t});\n\tit(\"onUpdate is called after an input is edited\", () => {\n\t\tconst buttonSpy = sinon.spy(StartingData.args as InputTableProps, \"onUpdate\");\n\t\tconst wrapper = mount(<StartingData {...(StartingData.args as InputTableProps)} />);\n\n\t\texpect(buttonSpy.getCall(0).args[0]).to.deep.equal([\n\t\t\t[\"A\", \"1\"],\n\t\t\t[\"B\", \"2\"],\n\t\t\t[\"\", \"\"],\n\t\t]);\n\t\texpect(buttonSpy.getCall(1)).to.be.null;\n\n\t\twrapper\n\t\t\t.find(\"input\")\n\t\t\t.at(0)\n\t\t\t.simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"New text\",\n\t\t\t\t},\n\t\t\t});\n\n\t\texpect(buttonSpy.getCall(1).args[0]).to.deep.equal([\n\t\t\t[\"New text\", \"1\"],\n\t\t\t[\"B\", \"2\"],\n\t\t\t[\"\", \"\"],\n\t\t]);\n\t\texpect(buttonSpy.getCall(2)).to.be.null;\n\t});\n\tit(\"onUpdate is called after a row is deleted\", () => {\n\t\tconst buttonSpy = sinon.spy(StartingData.args as InputTableProps, \"onUpdate\");\n\t\tconst wrapper = mount(<StartingData {...(StartingData.args as InputTableProps)} />);\n\n\t\texpect(buttonSpy.getCall(0).args[0]).to.deep.equal([\n\t\t\t[\"A\", \"1\"],\n\t\t\t[\"B\", \"2\"],\n\t\t\t[\"\", \"\"],\n\t\t]);\n\t\texpect(buttonSpy.getCall(1)).to.be.null;\n\n\t\twrapper.find(\"button\").at(1).simulate(\"click\");\n\n\t\texpect(buttonSpy.getCall(1).args[0]).to.deep.equal([\n\t\t\t[\"A\", \"1\"],\n\t\t\t[\"\", \"\"],\n\t\t]);\n\t\texpect(buttonSpy.getCall(2)).to.be.null;\n\t});\n});\n"]}
1
+ {"version":3,"file":"InputTable.spec.js","sourceRoot":"","sources":["../../../../src/components/common/tests/InputTable.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { mount } from \"enzyme\";\nimport { describe, it } from \"mocha\";\nimport { expect } from \"chai\";\nimport sinon from \"sinon\";\nimport { Basic, StartingData } from \"../stories/InputTable.stories\";\nimport { InputTableProps } from \"../InputTable\";\n\ndescribe(\"<InputTable/>\", () => {\n\tafterEach(() => {\n\t\tsinon.restore();\n\t});\n\n\tit(\"string table headers display correctly\", () => {\n\t\tconst wrapper = mount(<StartingData {...(StartingData.args as InputTableProps)} />);\n\t\texpect(wrapper.find(\"th\").at(0).text(), \"First header\").to.equal(\"Letter\");\n\t\texpect(wrapper.find(\"th\").at(1).text(), \"Second header\").to.equal(\"Number\");\n\t});\n\tit(\"JSX table headers display correctly\", () => {\n\t\tconst wrapper = mount(<Basic {...(Basic.args as InputTableProps)} />);\n\t\texpect(wrapper.find(\"th\").at(0).text()).to.include(\"Contexts\");\n\t\texpect(wrapper.find(\"th .tooltip-content\").exists()).to.be.true;\n\t});\n\tit(\"providing 2 column headers creates a table with 2 columns of input fields\", () => {\n\t\tconst wrapper = mount(<StartingData {...(StartingData.args as InputTableProps)} />);\n\t\texpect(wrapper.find(\"tr\").at(1).find(\"td input\").length).to.equal(2);\n\t});\n\tit(\"providing 3 column headers creates a table with 3 columns\", () => {\n\t\tconst wrapper = mount(<Basic {...(Basic.args as InputTableProps)} />);\n\t\texpect(wrapper.find(\"tr\").at(1).find(\"td\").length).to.equal(3);\n\t});\n\tit(\"when a component has startingData, that data is displayed, plus an extra row\", () => {\n\t\tconst wrapper = mount(<StartingData {...(StartingData.args as InputTableProps)} />);\n\t\texpect(wrapper.find(\"tr\").length).to.equal(4);\n\t\texpect(wrapper.find(\"tr\").at(1).find(\"td input\").at(0).props().value).to.equal(\"A\");\n\t\texpect(wrapper.find(\"tr\").at(1).find(\"td input\").at(1).props().value).to.equal(\"1\");\n\t\texpect(wrapper.find(\"tr\").at(2).find(\"td input\").at(0).props().value).to.equal(\"B\");\n\t\texpect(wrapper.find(\"tr\").at(2).find(\"td input\").at(1).props().value).to.equal(\"2\");\n\t\texpect(wrapper.find(\"tr\").at(3).find(\"td input\").at(0).props().value).to.equal(\"\");\n\t\texpect(wrapper.find(\"tr\").at(3).find(\"td input\").at(1).props().value).to.equal(\"\");\n\t});\n\tit(\"when a component has no startingData, the table shows only 1 empty row\", () => {\n\t\tconst wrapper = mount(<Basic {...(Basic.args as InputTableProps)} />);\n\t\texpect(wrapper.find(\"tr\").length).to.equal(2);\n\t\texpect(wrapper.find(\"tr\").at(1).find(\"td input\").at(0).props().value).to.equal(\"\");\n\t\texpect(wrapper.find(\"tr\").at(1).find(\"td input\").at(1).props().value).to.equal(\"\");\n\t});\n\tit(\"show no X on the last row of a single-row table\", () => {\n\t\tconst wrapper = mount(<Basic {...(Basic.args as InputTableProps)} />);\n\t\texpect(wrapper.find(\"tr\").length).to.equal(2);\n\t\texpect(wrapper.find(\"tr\").at(1).find(\"td button\").exists()).to.be.false;\n\t});\n\tit(\"show X's on all but the last row of a multi-row table\", () => {\n\t\tconst wrapper = mount(<StartingData {...(StartingData.args as InputTableProps)} />);\n\t\texpect(wrapper.find(\"tr\").length).to.equal(4);\n\t\texpect(wrapper.find(\"tr\").at(1).find(\"td button\").exists()).to.be.true;\n\t\texpect(wrapper.find(\"tr\").at(2).find(\"td button\").exists()).to.be.true;\n\t\texpect(wrapper.find(\"tr\").at(3).find(\"td button\").exists()).to.be.false;\n\t});\n\tit(\"Typing in the last row causes a new row to be created\", () => {\n\t\tconst wrapper = mount(<StartingData {...(StartingData.args as InputTableProps)} />);\n\t\texpect(wrapper.find(\"tr\").length).to.equal(4);\n\t\texpect(wrapper.find(\"input\").length).to.equal(6);\n\t\twrapper\n\t\t\t.find(\"tr\")\n\t\t\t.at(3)\n\t\t\t.find(\"input\")\n\t\t\t.at(0)\n\t\t\t.simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"New text\",\n\t\t\t\t},\n\t\t\t});\n\t\texpect(wrapper.find(\"tr\").length).to.equal(5);\n\t\texpect(wrapper.find(\"input\").length).to.equal(8);\n\t});\n\tit(\"Clicking X on the first row deletes it\", () => {\n\t\tconst wrapper = mount(<StartingData {...(StartingData.args as InputTableProps)} />);\n\t\texpect(wrapper.find(\"tr\").length).to.equal(4);\n\t\texpect(wrapper.find(\"input\").at(0).props().value).to.equal(\"A\");\n\t\texpect(wrapper.find(\"input\").at(2).props().value).to.equal(\"B\");\n\n\t\twrapper.find(\"button\").at(0).simulate(\"click\");\n\t\texpect(wrapper.find(\"tr\").length).to.equal(3);\n\t\texpect(wrapper.find(\"input\").at(0).props().value).to.equal(\"B\");\n\t\texpect(wrapper.find(\"input\").at(2).props().value).to.equal(\"\");\n\t});\n\tit(\"Clicking X on a middle row deletes it\", () => {\n\t\tconst wrapper = mount(<StartingData {...(StartingData.args as InputTableProps)} />);\n\t\texpect(wrapper.find(\"tr\").length).to.equal(4);\n\t\texpect(wrapper.find(\"input\").at(0).props().value).to.equal(\"A\");\n\t\texpect(wrapper.find(\"input\").at(2).props().value).to.equal(\"B\");\n\t\texpect(wrapper.find(\"input\").at(4).props().value).to.equal(\"\");\n\n\t\twrapper.find(\"button\").at(1).simulate(\"click\");\n\t\texpect(wrapper.find(\"tr\").length).to.equal(3);\n\t\texpect(wrapper.find(\"input\").at(0).props().value).to.equal(\"A\");\n\t\texpect(wrapper.find(\"input\").at(2).props().value).to.equal(\"\");\n\t});\n\tit(\"onUpdate is called after an input causes a new row to be added\", () => {\n\t\tconst buttonSpy = sinon.spy(StartingData.args as InputTableProps, \"setData\");\n\t\tconst wrapper = mount(<StartingData {...(StartingData.args as InputTableProps)} />);\n\n\t\texpect(buttonSpy.getCall(0).args[0]).to.deep.equal([\n\t\t\t[\"A\", \"1\"],\n\t\t\t[\"B\", \"2\"],\n\t\t\t[\"\", \"\"],\n\t\t]);\n\t\texpect(buttonSpy.getCall(1)).to.be.null;\n\n\t\twrapper\n\t\t\t.find(\"input\")\n\t\t\t.at(4)\n\t\t\t.simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"New text\",\n\t\t\t\t},\n\t\t\t});\n\n\t\texpect(buttonSpy.getCall(1).args[0]).to.deep.equal([\n\t\t\t[\"A\", \"1\"],\n\t\t\t[\"B\", \"2\"],\n\t\t\t[\"New text\", \"\"],\n\t\t]);\n\n\t\texpect(buttonSpy.getCall(2).args[0]).to.deep.equal([\n\t\t\t[\"A\", \"1\"],\n\t\t\t[\"B\", \"2\"],\n\t\t\t[\"New text\", \"\"],\n\t\t\t[\"\", \"\"],\n\t\t]);\n\t\texpect(buttonSpy.getCall(3)).to.be.null;\n\t});\n\tit(\"onUpdate is called after an input is edited\", () => {\n\t\tconst buttonSpy = sinon.spy(StartingData.args as InputTableProps, \"setData\");\n\t\tconst wrapper = mount(<StartingData {...(StartingData.args as InputTableProps)} />);\n\n\t\texpect(buttonSpy.getCall(0).args[0]).to.deep.equal([\n\t\t\t[\"A\", \"1\"],\n\t\t\t[\"B\", \"2\"],\n\t\t\t[\"\", \"\"],\n\t\t]);\n\t\texpect(buttonSpy.getCall(1)).to.be.null;\n\n\t\twrapper\n\t\t\t.find(\"input\")\n\t\t\t.at(0)\n\t\t\t.simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"New text\",\n\t\t\t\t},\n\t\t\t});\n\n\t\texpect(buttonSpy.getCall(1).args[0]).to.deep.equal([\n\t\t\t[\"New text\", \"1\"],\n\t\t\t[\"B\", \"2\"],\n\t\t\t[\"\", \"\"],\n\t\t]);\n\t\texpect(buttonSpy.getCall(2)).to.be.null;\n\t});\n\tit(\"onUpdate is called after a row is deleted\", () => {\n\t\tconst buttonSpy = sinon.spy(StartingData.args as InputTableProps, \"setData\");\n\t\tconst wrapper = mount(<StartingData {...(StartingData.args as InputTableProps)} />);\n\n\t\texpect(buttonSpy.getCall(0).args[0]).to.deep.equal([\n\t\t\t[\"A\", \"1\"],\n\t\t\t[\"B\", \"2\"],\n\t\t\t[\"\", \"\"],\n\t\t]);\n\t\texpect(buttonSpy.getCall(1)).to.be.null;\n\n\t\twrapper.find(\"button\").at(1).simulate(\"click\");\n\n\t\texpect(buttonSpy.getCall(1).args[0]).to.deep.equal([\n\t\t\t[\"A\", \"1\"],\n\t\t\t[\"\", \"\"],\n\t\t]);\n\t\texpect(buttonSpy.getCall(2)).to.be.null;\n\t});\n});\n"]}
@@ -4,11 +4,15 @@ import { describe, it, afterEach } from "mocha";
4
4
  import { expect } from "chai";
5
5
  import DefaultDropdownButton from "../../shared/DefaultDropdownButton";
6
6
  import { Default, Disabled } from "../stories/TimeSelect.stories";
7
+ // For running accessibility scans
7
8
  import { accessibilityAssessor } from "../../sdd/tests/a11y_helper";
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("<TimeSelect/>", () => {
15
+ // Used to clear after each interactive test using sinon
12
16
  afterEach(() => {
13
17
  sinon.restore();
14
18
  });
@@ -1 +1 @@
1
- {"version":3,"file":"TimeSelect.spec.js","sourceRoot":"","sources":["../../../../src/components/common/tests/TimeSelect.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { mount } from \"enzyme\";\nimport { describe, it, afterEach } from \"mocha\";\nimport { expect } from \"chai\";\nimport { TimeSelectProps } from \"../TimeSelect\";\nimport DefaultDropdownButton from \"../../shared/DefaultDropdownButton\";\nimport { Default, Disabled } from \"../stories/TimeSelect.stories\";\n\n// For running accessibility scans\nimport { accessibilityAssessor } from \"../../sdd/tests/a11y_helper\";\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(\"<TimeSelect/>\", () => {\n\t// Used to clear after each interactive test using sinon\n\tafterEach(() => {\n\t\tsinon.restore();\n\t});\n\n\tit(\"Should set the time from a prop\", async () => {\n\t\tconst wrapper = mount(<Default {...(Default.args as TimeSelectProps)} />);\n\n\t\tconst labels = wrapper.find(\".finsemble-dropdown__btn-label\");\n\n\t\texpect(labels.at(0).text(), \"Correct hour value\").to.equal(\"10\");\n\t\texpect(labels.at(1).text(), \"Correct min value\").to.equal(\"15\");\n\t\texpect(labels.at(2).text(), \"Correct PM value\").to.equal(\"PM\");\n\t});\n\n\tit(\"Should set the time from a prop\", async () => {\n\t\tconst wrapper = mount(<Default initialTime={{ hour: 3, minute: 30 }} />);\n\n\t\tconst labels = wrapper.find(\".finsemble-dropdown__btn-label\");\n\n\t\texpect(labels.at(0).text(), \"Correct hour value\").to.equal(\"3\");\n\t\texpect(labels.at(1).text(), \"Correct min value\").to.equal(\"30\");\n\t\texpect(labels.at(2).text(), \"Correct PM value\").to.equal(\"AM\");\n\t});\n\n\tit(\"Should de disabled\", () => {\n\t\tconst wrapper = mount(<Disabled {...(Disabled.args as TimeSelectProps)} />);\n\t\texpect(wrapper.find(DefaultDropdownButton).at(0).props().enabled).to.be.false;\n\t\texpect(wrapper.find(DefaultDropdownButton).at(1).props().enabled).to.be.false;\n\t\texpect(wrapper.find(DefaultDropdownButton).at(2).props().enabled).to.be.false;\n\t});\n\n\tit(\"Should use a className\", () => {\n\t\tconst wrapper = mount(<Default className=\"custom-class-name\" />);\n\t\texpect(wrapper.find(\".custom-class-name\").exists(), \"Has the custom class name\").to.be.true;\n\t});\n\n\tit(\"Should set the correct hour\", () => {\n\t\tconst change = sinon.spy();\n\t\tconst wrapper = mount(<Default onChange={change} initialTime={Default.args?.initialTime} />);\n\t\twrapper.find(\".finsemble-dropdown__btn\").at(0).simulate(\"click\");\n\t\twrapper.find(\".finsemble-dropdown__btn-option\").at(8).simulate(\"click\");\n\t\texpect(change.calledWith({ hour: 21, minute: 15, meridiem: \"PM\" }), \"Has changed, function should be called\").to.be\n\t\t\t.true;\n\t});\n\n\tit(\"Should set the correct minute\", () => {\n\t\tconst change = sinon.spy();\n\t\tconst wrapper = mount(<Default onChange={change} initialTime={Default.args?.initialTime} />);\n\t\twrapper.find(\".finsemble-dropdown__btn\").at(1).simulate(\"click\");\n\t\twrapper.find(\".finsemble-dropdown__btn-option\").at(0).simulate(\"click\");\n\t\texpect(change.calledWith({ hour: 22, minute: 0, meridiem: \"PM\" }), \"Has changed, function should be called\").to.be\n\t\t\t.true;\n\t});\n\n\tit(\"Should set the correct hour from meridiem\", () => {\n\t\tconst change = sinon.spy();\n\t\tconst wrapper = mount(<Default onChange={change} initialTime={Default.args?.initialTime} />);\n\t\twrapper.find(\".finsemble-dropdown__btn\").at(2).simulate(\"click\");\n\t\twrapper.find(\".finsemble-dropdown__btn-option\").at(0).simulate(\"click\");\n\t\texpect(change.calledWith({ hour: 10, minute: 15, meridiem: \"AM\" }), \"Has changed, function should be called\").to.be\n\t\t\t.true;\n\t});\n\n\tit(\"should pass accessibility scans\", async () => {\n\t\tconst wrapper = mount(<Default {...(Default.args as TimeSelectProps)} />);\n\t\texpect(await accessibilityAssessor(wrapper)).to.be.true;\n\t});\n});\n"]}
1
+ {"version":3,"file":"TimeSelect.spec.js","sourceRoot":"","sources":["../../../../src/components/common/tests/TimeSelect.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { mount } from \"enzyme\";\nimport { describe, it, afterEach } from \"mocha\";\nimport { expect } from \"chai\";\nimport { TimeSelectProps } from \"../TimeSelect\";\nimport DefaultDropdownButton from \"../../shared/DefaultDropdownButton\";\nimport { Default, Disabled } from \"../stories/TimeSelect.stories\";\n\n// For running accessibility scans\nimport { accessibilityAssessor } from \"../../sdd/tests/a11y_helper\";\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(\"<TimeSelect/>\", () => {\n\t// Used to clear after each interactive test using sinon\n\tafterEach(() => {\n\t\tsinon.restore();\n\t});\n\n\tit(\"Should set the time from a prop\", async () => {\n\t\tconst wrapper = mount(<Default {...(Default.args as TimeSelectProps)} />);\n\n\t\tconst labels = wrapper.find(\".finsemble-dropdown__btn-label\");\n\n\t\texpect(labels.at(0).text(), \"Correct hour value\").to.equal(\"10\");\n\t\texpect(labels.at(1).text(), \"Correct min value\").to.equal(\"15\");\n\t\texpect(labels.at(2).text(), \"Correct PM value\").to.equal(\"PM\");\n\t});\n\n\tit(\"Should set the time from a prop\", async () => {\n\t\tconst wrapper = mount(<Default initialTime={{ hour: 3, minute: 30 }} />);\n\n\t\tconst labels = wrapper.find(\".finsemble-dropdown__btn-label\");\n\n\t\texpect(labels.at(0).text(), \"Correct hour value\").to.equal(\"3\");\n\t\texpect(labels.at(1).text(), \"Correct min value\").to.equal(\"30\");\n\t\texpect(labels.at(2).text(), \"Correct PM value\").to.equal(\"AM\");\n\t});\n\n\tit(\"Should de disabled\", () => {\n\t\tconst wrapper = mount(<Disabled {...(Disabled.args as TimeSelectProps)} />);\n\t\texpect(wrapper.find(DefaultDropdownButton).at(0).props().enabled).to.be.false;\n\t\texpect(wrapper.find(DefaultDropdownButton).at(1).props().enabled).to.be.false;\n\t\texpect(wrapper.find(DefaultDropdownButton).at(2).props().enabled).to.be.false;\n\t});\n\n\tit(\"Should use a className\", () => {\n\t\tconst wrapper = mount(<Default className=\"custom-class-name\" />);\n\t\texpect(wrapper.find(\".custom-class-name\").exists(), \"Has the custom class name\").to.be.true;\n\t});\n\n\tit(\"Should set the correct hour\", () => {\n\t\tconst change = sinon.spy();\n\t\tconst wrapper = mount(<Default onChange={change} initialTime={Default.args?.initialTime} />);\n\t\twrapper.find(\".finsemble-dropdown__btn\").at(0).simulate(\"click\");\n\t\twrapper.find(\".finsemble-dropdown__btn-option\").at(8).simulate(\"click\");\n\t\texpect(change.calledWith({ hour: 21, minute: 15, meridiem: \"PM\" }), \"Has changed, function should be called\").to.be\n\t\t\t.true;\n\t});\n\n\tit(\"Should set the correct minute\", () => {\n\t\tconst change = sinon.spy();\n\t\tconst wrapper = mount(<Default onChange={change} initialTime={Default.args?.initialTime} />);\n\t\twrapper.find(\".finsemble-dropdown__btn\").at(1).simulate(\"click\");\n\t\twrapper.find(\".finsemble-dropdown__btn-option\").at(0).simulate(\"click\");\n\t\texpect(change.calledWith({ hour: 22, minute: 0, meridiem: \"PM\" }), \"Has changed, function should be called\").to.be\n\t\t\t.true;\n\t});\n\n\tit(\"Should set the correct hour from meridiem\", () => {\n\t\tconst change = sinon.spy();\n\t\tconst wrapper = mount(<Default onChange={change} initialTime={Default.args?.initialTime} />);\n\t\twrapper.find(\".finsemble-dropdown__btn\").at(2).simulate(\"click\");\n\t\twrapper.find(\".finsemble-dropdown__btn-option\").at(0).simulate(\"click\");\n\t\texpect(change.calledWith({ hour: 10, minute: 15, meridiem: \"AM\" }), \"Has changed, function should be called\").to.be\n\t\t\t.true;\n\t});\n\n\tit(\"should pass accessibility scans\", async () => {\n\t\tconst wrapper = mount(<Default {...(Default.args as TimeSelectProps)} />);\n\t\texpect(await accessibilityAssessor(wrapper)).to.be.true;\n\t});\n});\n"]}
@@ -30,5 +30,21 @@ describe("<Tooltip/>", () => {
30
30
  const wrapper = mount(React.createElement(Info, Object.assign({}, Info.args)));
31
31
  expect(wrapper.find(".tooltip-icon").is(".tooltip-icon-info")).to.be.true;
32
32
  });
33
+ // CANNOT DETECT *ACCURATE* CSS POSITIONING WITH ENZYME
34
+ /*
35
+ it("should display a tooltip to the left when position is left", () => {
36
+ const wrapper = mount(<Left {...(Left.args as TooltipProps)} />);
37
+ wrapper.find(".tooltip").first().simulate("focus");
38
+ const iconNode = wrapper.find(".tooltip-icon").at(0).getDOMNode();
39
+ const iconLeftPx = window.getComputedStyle(iconNode).getPropertyValue("left");
40
+ const iconLeftNum = Number(iconLeftPx.replace("px", ""));
41
+ const contentNode = wrapper.find(".tooltip-content").at(0).getDOMNode();
42
+ const contentLeftPx = window.getComputedStyle(contentNode).getPropertyValue("left");
43
+ const contentLeftNum = Number(contentLeftPx.replace("px", ""));
44
+
45
+ // Both contentLeftnum and iconLeftNum are 0
46
+ expect(contentLeftNum).to.be.lessThan(iconLeftNum);
47
+ });
48
+ */
33
49
  });
34
50
  //# sourceMappingURL=Tooltip.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.spec.js","sourceRoot":"","sources":["../../../../src/components/common/tests/Tooltip.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 { Plain, Info, Error } from \"../stories/Tooltip.stories\";\nimport { TooltipProps } from \"../Tooltip\";\n\ndescribe(\"<Tooltip/>\", () => {\n\tit(\"should display a help icon\", () => {\n\t\tconst wrapper = mount(<Plain {...(Plain.args as TooltipProps)} />);\n\t\texpect(wrapper.exists(\".tooltip-icon\")).to.be.true;\n\t});\n\n\tit(\"should display/hide sample text in a popup when moused over/off\", () => {\n\t\tconst wrapper = mount(<Plain {...(Plain.args as TooltipProps)} />);\n\t\twrapper.find(\".tooltip\").first().simulate(\"mouseover\");\n\t\texpect(wrapper.find(\".tooltip-content\").is(\".visible\")).to.be.true;\n\t\twrapper.find(\".tooltip\").first().simulate(\"mouseleave\");\n\t\texpect(wrapper.find(\".tooltip-content\").is(\".visible\")).to.be.false;\n\t});\n\n\tit(\"should display/hide sample text in a popup when focused/blurred\", () => {\n\t\tconst wrapper = mount(<Plain {...(Plain.args as TooltipProps)} />);\n\t\twrapper.find(\".tooltip\").first().simulate(\"focus\");\n\t\texpect(wrapper.find(\".tooltip-content\").is(\".visible\")).to.be.true;\n\t\twrapper.find(\".tooltip\").first().simulate(\"blur\");\n\t\texpect(wrapper.find(\".tooltip-content\").is(\".visible\")).to.be.false;\n\t});\n\n\tit(\"should display an error icon when type is error\", () => {\n\t\tconst wrapper = mount(<Error {...(Error.args as TooltipProps)} />);\n\t\texpect(wrapper.find(\".tooltip-icon\").is(\".tooltip-icon-error\")).to.be.true;\n\t});\n\n\tit(\"should display an info icon when type is info\", () => {\n\t\tconst wrapper = mount(<Info {...(Info.args as TooltipProps)} />);\n\t\texpect(wrapper.find(\".tooltip-icon\").is(\".tooltip-icon-info\")).to.be.true;\n\t});\n\n\t// CANNOT DETECT *ACCURATE* CSS POSITIONING WITH ENZYME\n\t/*\n it(\"should display a tooltip to the left when position is left\", () => {\n const wrapper = mount(<Left {...(Left.args as TooltipProps)} />);\n wrapper.find(\".tooltip\").first().simulate(\"focus\");\n const iconNode = wrapper.find(\".tooltip-icon\").at(0).getDOMNode();\n const iconLeftPx = window.getComputedStyle(iconNode).getPropertyValue(\"left\");\n const iconLeftNum = Number(iconLeftPx.replace(\"px\", \"\"));\n const contentNode = wrapper.find(\".tooltip-content\").at(0).getDOMNode();\n const contentLeftPx = window.getComputedStyle(contentNode).getPropertyValue(\"left\");\n const contentLeftNum = Number(contentLeftPx.replace(\"px\", \"\"));\n \n // Both contentLeftnum and iconLeftNum are 0\n expect(contentLeftNum).to.be.lessThan(iconLeftNum);\n });\n */\n});\n"]}
1
+ {"version":3,"file":"Tooltip.spec.js","sourceRoot":"","sources":["../../../../src/components/common/tests/Tooltip.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 { Plain, Info, Error } from \"../stories/Tooltip.stories\";\nimport { TooltipProps } from \"../Tooltip\";\n\ndescribe(\"<Tooltip/>\", () => {\n\tit(\"should display a help icon\", () => {\n\t\tconst wrapper = mount(<Plain {...(Plain.args as TooltipProps)} />);\n\t\texpect(wrapper.exists(\".tooltip-icon\")).to.be.true;\n\t});\n\n\tit(\"should display/hide sample text in a popup when moused over/off\", () => {\n\t\tconst wrapper = mount(<Plain {...(Plain.args as TooltipProps)} />);\n\t\twrapper.find(\".tooltip\").first().simulate(\"mouseover\");\n\t\texpect(wrapper.find(\".tooltip-content\").is(\".visible\")).to.be.true;\n\t\twrapper.find(\".tooltip\").first().simulate(\"mouseleave\");\n\t\texpect(wrapper.find(\".tooltip-content\").is(\".visible\")).to.be.false;\n\t});\n\n\tit(\"should display/hide sample text in a popup when focused/blurred\", () => {\n\t\tconst wrapper = mount(<Plain {...(Plain.args as TooltipProps)} />);\n\t\twrapper.find(\".tooltip\").first().simulate(\"focus\");\n\t\texpect(wrapper.find(\".tooltip-content\").is(\".visible\")).to.be.true;\n\t\twrapper.find(\".tooltip\").first().simulate(\"blur\");\n\t\texpect(wrapper.find(\".tooltip-content\").is(\".visible\")).to.be.false;\n\t});\n\n\tit(\"should display an error icon when type is error\", () => {\n\t\tconst wrapper = mount(<Error {...(Error.args as TooltipProps)} />);\n\t\texpect(wrapper.find(\".tooltip-icon\").is(\".tooltip-icon-error\")).to.be.true;\n\t});\n\n\tit(\"should display an info icon when type is info\", () => {\n\t\tconst wrapper = mount(<Info {...(Info.args as TooltipProps)} />);\n\t\texpect(wrapper.find(\".tooltip-icon\").is(\".tooltip-icon-info\")).to.be.true;\n\t});\n\n\t// CANNOT DETECT *ACCURATE* CSS POSITIONING WITH ENZYME\n\t/*\n it(\"should display a tooltip to the left when position is left\", () => {\n const wrapper = mount(<Left {...(Left.args as TooltipProps)} />);\n wrapper.find(\".tooltip\").first().simulate(\"focus\");\n const iconNode = wrapper.find(\".tooltip-icon\").at(0).getDOMNode();\n const iconLeftPx = window.getComputedStyle(iconNode).getPropertyValue(\"left\");\n const iconLeftNum = Number(iconLeftPx.replace(\"px\", \"\"));\n const contentNode = wrapper.find(\".tooltip-content\").at(0).getDOMNode();\n const contentLeftPx = window.getComputedStyle(contentNode).getPropertyValue(\"left\");\n const contentLeftNum = Number(contentLeftPx.replace(\"px\", \"\"));\n \n // Both contentLeftnum and iconLeftNum are 0\n expect(contentLeftNum).to.be.lessThan(iconLeftNum);\n });\n */\n});\n"]}
@@ -4,5 +4,13 @@ declare type FavoriteMakerProps = Favorite & {
4
4
  className?: string;
5
5
  style?: React.CSSProperties;
6
6
  };
7
+ /**
8
+ * Creates a clickable "favorite" that coordinates with the toolbar's pinned <FavoritesShell>.
9
+ * @param {string} [className] - An optional CSS className to append.
10
+ * @param {string} [id] - The unique identifier for the favorite item. This must be consistent across restarts.
11
+ * @param {string} [category] - "Workspace" | "Application". The catagory of the favorite item. Currenly only workspaces and launchable Finsemble applications can be favorited.
12
+ * @param {string} [name] - The name of the favorite item. This will be used for display in the FavoriteShell.
13
+ * @param {IconDescriptor} [icon] - The icon of the favorite item. This displays in the FavoriteShell. It defaults to use the initials of the `name` field as its content.
14
+ */
7
15
  export declare const FavoriteMaker: React.FunctionComponent<FavoriteMakerProps>;
8
16
  export {};