qpp-style 0.0.9 → 0.0.10

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 (456) hide show
  1. package/.eslintrc.js +28 -28
  2. package/.husky/pre-commit +5 -0
  3. package/README.md +45 -0
  4. package/components/Accordion/index.jsx +35 -43
  5. package/components/Alert/index.js +53 -0
  6. package/components/Breadcrumb/index.js +4 -4
  7. package/components/Button/index.js +17 -6
  8. package/components/CalloutBox/index.js +109 -0
  9. package/components/Card/index.js +137 -0
  10. package/components/Details/DetailsIcons.js +50 -0
  11. package/components/Details/index.js +53 -0
  12. package/components/Dropdown/index.js +85 -0
  13. package/components/DropdownButton/Menu.js +25 -0
  14. package/components/DropdownButton/MenuButton.js +41 -0
  15. package/components/DropdownButton/MenuItem.js +25 -0
  16. package/components/DropdownButton/MenuItemLink.js +27 -0
  17. package/components/Error/Collapsible.jsx +2 -2
  18. package/components/Footer/FooterUI.jsx +175 -177
  19. package/components/Footer/footer.js +2 -12
  20. package/components/GovBanner/index.js +117 -0
  21. package/components/Header/HeaderAccountMenu.jsx +49 -75
  22. package/components/Header/HeaderContainer.jsx +46 -34
  23. package/components/Header/HeaderLogo.jsx +40 -17
  24. package/components/Header/HeaderMenuButton.js +38 -12
  25. package/components/Header/HeaderMenuItem.jsx +204 -64
  26. package/components/Header/HeaderMenuLink.js +46 -10
  27. package/components/Header/HeaderMenuSignOutButton.js +46 -10
  28. package/components/Header/HeaderMobileButton.js +15 -6
  29. package/components/Header/HeaderUI.jsx +118 -117
  30. package/components/Header/HelpIcon.jsx +7 -5
  31. package/components/Header/ImpersonatorBanner.jsx +81 -0
  32. package/components/Header/header.js +2 -0
  33. package/components/Header/hooks.js +53 -1
  34. package/components/Header/utag-helpers.js +9 -0
  35. package/components/Infotip/Infotip.jsx +6 -10
  36. package/components/Infotip/InfotipContent.jsx +46 -0
  37. package/components/Infotip/InfotipIcon.jsx +3 -3
  38. package/components/Link/index.js +61 -0
  39. package/components/Modal/Modal.jsx +53 -40
  40. package/components/Modal/index.jsx +11 -11
  41. package/components/NotificationBanner/CollapsedView.js +39 -0
  42. package/components/NotificationBanner/ExpandedView.js +45 -0
  43. package/components/NotificationBanner/index.js +219 -30
  44. package/components/Search/index.js +98 -0
  45. package/components/SessionDialog/sessionDialog.js +26 -0
  46. package/components/SessionDialogUI.jsx +34 -26
  47. package/components/SideNav/AnimationGroup/AnimationGroup.jsx +9 -2
  48. package/components/SideNav/Chart/ScoreChart.jsx +1 -1
  49. package/components/SideNav/Chart/__tests__/ScoreChart.test.js +3 -12
  50. package/components/SideNav/Chart/__tests__/__snapshots__/ScoreChart.test.js.snap +144 -35
  51. package/components/SideNav/Chart/index.js +1 -1
  52. package/components/SideNav/Content/LevelOneContent.jsx +145 -255
  53. package/components/SideNav/Content/LevelTwoContent.jsx +12 -10
  54. package/components/SideNav/Content/SelectRole/index.js +77 -0
  55. package/components/SideNav/Content/SelectRole/utils.js +140 -0
  56. package/components/SideNav/Details/PracticeDetails.jsx +4 -0
  57. package/components/SideNav/Links/CmsSwitchLink.jsx +1 -1
  58. package/components/SideNav/Links/NavLinkContainer.jsx +29 -34
  59. package/components/SideNav/Links/NavLinkDrawer.jsx +100 -17
  60. package/components/SideNav/Links/NavLinkInline.jsx +7 -2
  61. package/components/SideNav/SideNav.md +28 -27
  62. package/components/SideNav/UI/SideNavUI.jsx +122 -129
  63. package/components/SideNav/UI/default-content.json +117 -0
  64. package/components/SideNav/helpers.js +316 -4
  65. package/components/Tabs/TabPanel.js +5 -0
  66. package/components/Tabs/Tabs.js +73 -0
  67. package/components/TextInput/index.js +137 -0
  68. package/components/hooks/useGetConfig.js +75 -0
  69. package/components/index.js +103 -9
  70. package/coverage/clover.xml +1465 -41
  71. package/coverage/coverage-final.json +72 -1
  72. package/coverage/lcov-report/block-navigation.js +8 -0
  73. package/coverage/lcov-report/components/Accordion/index.html +26 -21
  74. package/coverage/lcov-report/components/Accordion/index.jsx.html +106 -131
  75. package/coverage/lcov-report/{SideNav/Chart → components/Button}/index.html +29 -24
  76. package/coverage/lcov-report/{Error/Collapsible.jsx.html → components/Button/index.js.html} +125 -114
  77. package/coverage/lcov-report/components/Error/Collapsible.jsx.html +92 -87
  78. package/coverage/lcov-report/components/Error/ErrorUI.jsx.html +32 -33
  79. package/coverage/lcov-report/components/Error/index.html +11 -6
  80. package/coverage/lcov-report/components/Footer/FooterUI.jsx.html +200 -189
  81. package/coverage/lcov-report/components/Footer/SocialLinks.jsx.html +24 -61
  82. package/coverage/lcov-report/components/Footer/Subscribe.jsx.html +18 -13
  83. package/coverage/lcov-report/components/Footer/index.html +35 -45
  84. package/coverage/lcov-report/components/{InfoModal → GovBanner}/index.html +27 -22
  85. package/coverage/lcov-report/components/{InfoModal/index.jsx.html → GovBanner/index.js.html} +157 -122
  86. package/coverage/lcov-report/components/Header/HeaderAccountMenu.jsx.html +93 -520
  87. package/coverage/lcov-report/components/Header/HeaderCancel.jsx.html +19 -23
  88. package/coverage/lcov-report/components/Header/HeaderContainer.jsx.html +280 -0
  89. package/coverage/lcov-report/components/{SideNav/Links/NavLinkContainer.jsx.html → Header/HeaderLogo.jsx.html} +78 -67
  90. package/coverage/lcov-report/components/{SideNav/Links/NavItemInline.jsx.html → Header/HeaderMenuButton.js.html} +71 -78
  91. package/coverage/lcov-report/components/{SideNav/Links/NavLinkDrawer.jsx.html → Header/HeaderMenuItem.jsx.html} +291 -268
  92. package/coverage/lcov-report/components/Header/HeaderMenuLink.js.html +253 -0
  93. package/coverage/lcov-report/components/Header/HeaderMenuSignOutButton.js.html +271 -0
  94. package/coverage/lcov-report/components/{SideNav/Links/NavLinkToggle.jsx.html → Header/HeaderMobileButton.js.html} +64 -47
  95. package/coverage/lcov-report/components/Header/HeaderUI.jsx.html +176 -756
  96. package/coverage/lcov-report/components/Header/HelpIcon.jsx.html +181 -0
  97. package/coverage/lcov-report/{Accordion/index.jsx.html → components/Header/ImpersonatorBanner.jsx.html} +109 -167
  98. package/coverage/lcov-report/components/Header/NavigationButtonIcon.jsx.html +24 -19
  99. package/coverage/lcov-report/components/Header/hooks.js.html +283 -0
  100. package/coverage/lcov-report/components/Header/index.html +203 -33
  101. package/coverage/lcov-report/components/{SideNav/Links/index.js.html → Header/utag-helpers.js.html} +35 -42
  102. package/coverage/lcov-report/components/Infotip/Infotip.jsx.html +53 -48
  103. package/coverage/lcov-report/components/Infotip/InfotipIcon.jsx.html +37 -32
  104. package/coverage/lcov-report/components/Infotip/index.html +8 -3
  105. package/coverage/lcov-report/components/Infotip/index.js.html +8 -3
  106. package/coverage/lcov-report/components/Modal/LegacyModal.jsx.html +301 -0
  107. package/coverage/lcov-report/{HeaderUI.jsx.html → components/Modal/Modal.jsx.html} +169 -257
  108. package/coverage/lcov-report/components/Modal/index.html +146 -0
  109. package/coverage/lcov-report/components/{SideNav/Details/IndividualDetails.jsx.html → Modal/index.jsx.html} +50 -42
  110. package/coverage/lcov-report/components/NotificationBanner/CollapsedView.js.html +202 -0
  111. package/coverage/lcov-report/components/NotificationBanner/ExpandedView.js.html +220 -0
  112. package/coverage/lcov-report/components/NotificationBanner/index.html +58 -23
  113. package/coverage/lcov-report/components/{SideNav/Content/LevelTwoContent.jsx.html → NotificationBanner/index.js.html} +292 -272
  114. package/coverage/lcov-report/components/SanitizedContent/index.html +8 -3
  115. package/coverage/lcov-report/components/SanitizedContent/index.jsx.html +475 -50
  116. package/coverage/lcov-report/components/SessionDialogUI.jsx.html +248 -255
  117. package/coverage/lcov-report/components/SideNav/Chart/ScoreChart.jsx.html +272 -408
  118. package/coverage/lcov-report/components/SideNav/Chart/index.html +28 -38
  119. package/coverage/lcov-report/components/SideNav/Content/SelectRole/index.html +116 -0
  120. package/coverage/lcov-report/components/SideNav/Content/SelectRole/utils.js.html +505 -0
  121. package/coverage/lcov-report/components/SideNav/helpers.js.html +987 -46
  122. package/coverage/lcov-report/components/SideNav/index.html +24 -19
  123. package/coverage/lcov-report/components/Tooltip/Tooltip.jsx.html +70 -65
  124. package/coverage/lcov-report/components/Tooltip/index.html +8 -3
  125. package/coverage/lcov-report/components/Tooltip/index.js.html +8 -3
  126. package/coverage/lcov-report/components/Tooltip/position.js.html +57 -64
  127. package/coverage/lcov-report/components/hooks/index.html +116 -0
  128. package/coverage/lcov-report/components/hooks/useGetConfig.js.html +310 -0
  129. package/coverage/lcov-report/components/index.html +10 -5
  130. package/coverage/lcov-report/index.html +401 -21
  131. package/coverage/lcov-report/{Error/ErrorUI.jsx.html → lib/Chevron.jsx.html} +44 -42
  132. package/coverage/lcov-report/lib/SvgComponents.jsx.html +1840 -0
  133. package/coverage/lcov-report/lib/index.html +34 -14
  134. package/coverage/lcov-report/react/components/Accordion/index.html +26 -21
  135. package/coverage/lcov-report/react/components/Accordion/index.jsx.html +67 -86
  136. package/coverage/lcov-report/react/components/{FlashNotification → Button}/index.html +23 -33
  137. package/coverage/lcov-report/{components/SideNav/Links/NavLinkInline.jsx.html → react/components/Button/index.js.html} +119 -120
  138. package/coverage/lcov-report/react/components/{Tabs → Dropdown}/index.html +23 -33
  139. package/coverage/lcov-report/react/components/{InfoModal/index.jsx.html → Dropdown/index.js.html} +102 -154
  140. package/coverage/lcov-report/react/components/Error/Collapsible.jsx.html +26 -21
  141. package/coverage/lcov-report/react/components/Error/ErrorUI.jsx.html +11 -6
  142. package/coverage/lcov-report/react/components/Error/error.js.html +8 -3
  143. package/coverage/lcov-report/react/components/Error/index.html +11 -6
  144. package/coverage/lcov-report/react/components/Footer/FooterUI.jsx.html +196 -194
  145. package/coverage/lcov-report/react/components/Footer/LegacyFooterUI.jsx.html +9 -4
  146. package/coverage/lcov-report/react/components/Footer/SocialLinks.jsx.html +18 -13
  147. package/coverage/lcov-report/react/components/Footer/Subscribe.jsx.html +18 -13
  148. package/coverage/lcov-report/react/components/Footer/footer.js.html +12 -37
  149. package/coverage/lcov-report/react/components/Footer/index.html +35 -45
  150. package/coverage/lcov-report/react/components/{InfoModal → GovBanner}/index.html +27 -22
  151. package/coverage/lcov-report/react/components/{Tabs/TabsUI.jsx.html → GovBanner/index.js.html} +146 -153
  152. package/coverage/lcov-report/react/components/Header/HeaderAccountMenu.jsx.html +81 -154
  153. package/coverage/lcov-report/react/components/Header/HeaderCancel.jsx.html +15 -10
  154. package/coverage/lcov-report/react/components/Header/HeaderContainer.jsx.html +91 -50
  155. package/coverage/lcov-report/react/components/Header/HeaderLogo.jsx.html +105 -31
  156. package/coverage/lcov-report/react/components/Header/HeaderMenuButton.js.html +109 -26
  157. package/coverage/lcov-report/react/components/Header/HeaderMenuItem.jsx.html +510 -85
  158. package/coverage/lcov-report/react/components/Header/HeaderMenuLink.js.html +137 -24
  159. package/coverage/lcov-report/react/components/Header/HeaderMenuSignOutButton.js.html +134 -21
  160. package/coverage/lcov-report/react/components/Header/HeaderMobileButton.js.html +56 -24
  161. package/coverage/lcov-report/react/components/Header/HeaderUI.jsx.html +172 -179
  162. package/coverage/lcov-report/react/components/Header/HelpIcon.jsx.html +30 -19
  163. package/coverage/lcov-report/react/components/Header/ImpersonatorBanner.jsx.html +331 -0
  164. package/coverage/lcov-report/react/components/Header/NavigationButtonIcon.jsx.html +9 -4
  165. package/coverage/lcov-report/react/components/Header/header.js.html +15 -4
  166. package/coverage/lcov-report/react/components/Header/hooks.js.html +187 -26
  167. package/coverage/lcov-report/react/components/Header/index.html +157 -122
  168. package/coverage/lcov-report/react/components/{Spinner/index.js.html → Header/utag-helpers.js.html} +26 -21
  169. package/coverage/lcov-report/react/components/Infotip/Infotip.jsx.html +12 -7
  170. package/coverage/lcov-report/react/components/{Tabs/tabs.js.html → Infotip/InfotipContent.jsx.html} +83 -48
  171. package/coverage/lcov-report/react/components/Infotip/InfotipIcon.jsx.html +12 -7
  172. package/coverage/lcov-report/react/components/Infotip/index.html +8 -3
  173. package/coverage/lcov-report/react/components/Infotip/index.js.html +8 -3
  174. package/coverage/lcov-report/react/components/{FlashNotification/FlashNotificationUI.jsx.html → Modal/LegacyModal.jsx.html} +89 -84
  175. package/coverage/lcov-report/react/components/Modal/Modal.jsx.html +505 -0
  176. package/coverage/lcov-report/react/components/Modal/index.html +52 -17
  177. package/coverage/lcov-report/react/components/Modal/index.jsx.html +38 -201
  178. package/coverage/lcov-report/{components/SideNav/Links/CmsSwitchLink.jsx.html → react/components/NotificationBanner/CollapsedView.js.html} +52 -50
  179. package/coverage/lcov-report/{components/SideNav/Details/PracticeDetails.jsx.html → react/components/NotificationBanner/ExpandedView.js.html} +74 -57
  180. package/coverage/lcov-report/react/components/NotificationBanner/index.html +56 -21
  181. package/coverage/lcov-report/react/components/NotificationBanner/index.js.html +615 -43
  182. package/coverage/lcov-report/react/components/SanitizedContent/index.html +8 -3
  183. package/coverage/lcov-report/react/components/SanitizedContent/index.jsx.html +12 -7
  184. package/coverage/lcov-report/react/components/{Spinner → SessionDialog}/index.html +11 -6
  185. package/coverage/lcov-report/react/components/{FlashNotification/index.js.html → SessionDialog/sessionDialog.js.html} +35 -42
  186. package/coverage/lcov-report/react/components/SessionDialogUI.jsx.html +80 -51
  187. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +38 -12
  188. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/index.html +18 -13
  189. package/coverage/lcov-report/react/components/SideNav/Chart/ScoreChart.jsx.html +67 -56
  190. package/coverage/lcov-report/react/components/SideNav/Chart/index.html +26 -21
  191. package/coverage/lcov-report/react/components/SideNav/Chart/index.js.html +9 -4
  192. package/coverage/lcov-report/react/components/SideNav/Content/LevelOneContent.jsx.html +189 -514
  193. package/coverage/lcov-report/react/components/SideNav/Content/LevelTwoContent.jsx.html +28 -17
  194. package/coverage/lcov-report/{components/SideNav/Details → react/components/SideNav/Content/SelectRole}/index.html +42 -52
  195. package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/index.js.html +316 -0
  196. package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/utils.js.html +505 -0
  197. package/coverage/lcov-report/react/components/SideNav/Content/index.html +32 -27
  198. package/coverage/lcov-report/react/components/SideNav/Content/index.js.html +8 -3
  199. package/coverage/lcov-report/react/components/SideNav/Details/IndividualDetails.jsx.html +10 -5
  200. package/coverage/lcov-report/react/components/SideNav/Details/PracticeDetails.jsx.html +26 -9
  201. package/coverage/lcov-report/react/components/SideNav/Details/index.html +23 -18
  202. package/coverage/lcov-report/react/components/SideNav/Details/index.js.html +8 -3
  203. package/coverage/lcov-report/react/components/SideNav/Links/CmsSwitchLink.jsx.html +9 -4
  204. package/coverage/lcov-report/react/components/SideNav/Links/NavItemInline.jsx.html +8 -3
  205. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkContainer.jsx.html +54 -64
  206. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkDrawer.jsx.html +281 -27
  207. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkInline.jsx.html +66 -46
  208. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkToggle.jsx.html +8 -3
  209. package/coverage/lcov-report/react/components/SideNav/Links/index.html +44 -39
  210. package/coverage/lcov-report/react/components/SideNav/Links/index.js.html +8 -3
  211. package/coverage/lcov-report/react/components/SideNav/UI/SideNavUI.jsx.html +165 -181
  212. package/coverage/lcov-report/react/components/SideNav/UI/index.html +28 -23
  213. package/coverage/lcov-report/react/components/SideNav/UI/index.js.html +8 -3
  214. package/coverage/lcov-report/react/components/SideNav/helpers.js.html +967 -26
  215. package/coverage/lcov-report/react/components/SideNav/index.html +27 -22
  216. package/coverage/lcov-report/react/components/SideNav/index.js.html +8 -3
  217. package/coverage/lcov-report/react/components/Tooltip/Tooltip.jsx.html +20 -15
  218. package/coverage/lcov-report/react/components/Tooltip/index.html +8 -3
  219. package/coverage/lcov-report/react/components/Tooltip/index.js.html +8 -3
  220. package/coverage/lcov-report/react/components/Tooltip/position.js.html +22 -17
  221. package/coverage/lcov-report/{components/SideNav/AnimationGroup → react/components/hooks}/index.html +29 -24
  222. package/coverage/lcov-report/react/components/hooks/useGetConfig.js.html +310 -0
  223. package/coverage/lcov-report/react/components/index.html +10 -5
  224. package/coverage/lcov-report/react/index.html +20 -15
  225. package/coverage/lcov-report/react/index.js.html +29 -9
  226. package/coverage/lcov-report/react/lib/Chevron.jsx.html +181 -0
  227. package/coverage/lcov-report/react/lib/SvgComponents.jsx.html +221 -132
  228. package/coverage/lcov-report/react/lib/index.html +32 -27
  229. package/coverage/lcov-report/react/lib/svg-definitions.svg.html +8 -3
  230. package/coverage/lcov-report/react/session/index.html +32 -27
  231. package/coverage/lcov-report/react/session/index.js.html +8 -3
  232. package/coverage/lcov-report/react/session/logout.js.html +122 -18
  233. package/coverage/lcov-report/react/session/refresh.js.html +12 -7
  234. package/coverage/lcov-report/react/session/ttl.js.html +9 -4
  235. package/coverage/lcov-report/session/index.html +50 -45
  236. package/coverage/lcov-report/session/index.js.html +8 -3
  237. package/coverage/lcov-report/session/logout.js.html +144 -49
  238. package/coverage/lcov-report/session/refresh.js.html +41 -36
  239. package/coverage/lcov-report/session/ttl.js.html +34 -29
  240. package/coverage/lcov-report/sorter.js +26 -0
  241. package/coverage/lcov.info +3189 -46
  242. package/dist/browser.js +1 -1
  243. package/dist/browser.js.LICENSE.txt +1 -7
  244. package/dist/browser.js.map +1 -1
  245. package/dist/index.js +1 -1
  246. package/dist/index.js.LICENSE.txt +1 -7
  247. package/dist/index.js.map +1 -1
  248. package/dist/react/index.js +1 -1
  249. package/dist/react/index.js.LICENSE.txt +16 -16
  250. package/dist/react/index.js.map +1 -1
  251. package/fonts/PublicSans-Black.ttf +0 -0
  252. package/fonts/PublicSans-BlackItalic.ttf +0 -0
  253. package/fonts/PublicSans-Bold.ttf +0 -0
  254. package/fonts/PublicSans-BoldItalic.ttf +0 -0
  255. package/fonts/PublicSans-ExtraBold.ttf +0 -0
  256. package/fonts/PublicSans-ExtraBoldItalic.ttf +0 -0
  257. package/fonts/PublicSans-ExtraLight.ttf +0 -0
  258. package/fonts/PublicSans-ExtraLightItalic.ttf +0 -0
  259. package/fonts/PublicSans-Italic.ttf +0 -0
  260. package/fonts/PublicSans-Light.ttf +0 -0
  261. package/fonts/PublicSans-LightItalic.ttf +0 -0
  262. package/fonts/PublicSans-Medium.ttf +0 -0
  263. package/fonts/PublicSans-MediumItalic.ttf +0 -0
  264. package/fonts/PublicSans-Regular.ttf +0 -0
  265. package/fonts/PublicSans-SemiBold.ttf +0 -0
  266. package/fonts/PublicSans-SemiBoldItalic.ttf +0 -0
  267. package/fonts/PublicSans-Thin.ttf +0 -0
  268. package/fonts/PublicSans-ThinItalic.ttf +0 -0
  269. package/images/icon-dot-gov.svg +1 -0
  270. package/images/icon-https.svg +1 -0
  271. package/images/icons/close-x.svg +6 -0
  272. package/images/icons/svg/arrow-down.svg +3 -0
  273. package/images/icons/svg/arrow-download.svg +1 -0
  274. package/images/icons/svg/arrow-right.svg +1 -0
  275. package/images/icons/svg/arrow-up.svg +3 -0
  276. package/images/icons/svg/block.svg +5 -0
  277. package/images/icons/svg/calendar.svg +1 -0
  278. package/images/icons/svg/check-circle.svg +5 -0
  279. package/images/icons/svg/checkmark.svg +7 -0
  280. package/images/icons/svg/chevron-down.svg +11 -0
  281. package/images/icons/svg/chevron-left.svg +12 -0
  282. package/images/icons/svg/chevron-right.svg +12 -0
  283. package/images/icons/svg/chevron-up.svg +12 -0
  284. package/images/icons/svg/clipboard.svg +1 -0
  285. package/images/icons/svg/close.svg +1 -0
  286. package/images/icons/svg/divide.svg +13 -0
  287. package/images/icons/svg/doctors-and-clinicians-preview.svg +10 -0
  288. package/images/icons/svg/download.svg +1 -0
  289. package/images/icons/svg/dropdown-arrow.svg +1 -0
  290. package/images/icons/svg/equals.svg +13 -0
  291. package/images/icons/svg/exclamation.svg +11 -0
  292. package/images/icons/svg/external.svg +1 -0
  293. package/images/icons/svg/file-download.svg +1 -0
  294. package/images/icons/svg/file-upload.svg +1 -0
  295. package/images/icons/svg/info.svg +20 -0
  296. package/images/icons/svg/manage-user-access.svg +8 -0
  297. package/images/icons/svg/multiply.svg +12 -0
  298. package/images/icons/svg/performance-feedback.svg +1 -0
  299. package/images/icons/svg/plus.svg +12 -0
  300. package/images/icons/svg/preview.svg +17 -0
  301. package/images/icons/svg/print.svg +1 -0
  302. package/images/icons/svg/registration.svg +8 -0
  303. package/images/icons/svg/reporting.svg +17 -0
  304. package/images/icons/svg/save-disk.svg +5 -0
  305. package/images/icons/svg/search.svg +1 -0
  306. package/images/icons/svg/subtract.svg +15 -0
  307. package/images/icons/svg/targeted-review.svg +15 -0
  308. package/images/icons/svg/tooltip-question.svg +1 -0
  309. package/images/icons/svg/trash.svg +1 -0
  310. package/images/icons/svg/upload.svg +1 -0
  311. package/images/us_flag_small.png +0 -0
  312. package/index.js +5 -0
  313. package/jest.config.js +139 -132
  314. package/lib/Chevron.jsx +32 -0
  315. package/lib/SvgComponents.jsx +197 -49
  316. package/package.json +60 -78
  317. package/session/logout.js +35 -2
  318. package/styles/_global.scss +63 -62
  319. package/styles/_main.scss +6 -0
  320. package/styles/_qpp-style.scss +0 -3
  321. package/styles/components/_accordion.scss +249 -246
  322. package/styles/components/_autocomplete.scss +0 -3
  323. package/styles/components/_spinner.scss +0 -2
  324. package/styles/components/_tables.scss +77 -67
  325. package/styles/components/_text.scss +102 -102
  326. package/styles/components/_variables.scss +12 -12
  327. package/styles/qppds/base/_backgrounds.scss +1 -6
  328. package/styles/qppds/base/_fonts.scss +24 -0
  329. package/styles/qppds/base/_icon.scss +31 -0
  330. package/styles/qppds/base/_layout.scss +5 -0
  331. package/styles/qppds/base/_typography.scss +77 -43
  332. package/styles/qppds/base/index.scss +3 -6
  333. package/styles/qppds/components/_alert.scss +101 -0
  334. package/styles/qppds/components/_breadcrumbs.scss +42 -10
  335. package/styles/qppds/components/_button.scss +38 -12
  336. package/styles/qppds/components/_card.scss +175 -0
  337. package/styles/qppds/components/_checkbox.scss +199 -0
  338. package/styles/qppds/components/_circular-loader.scss +47 -0
  339. package/styles/qppds/components/_details.scss +90 -0
  340. package/styles/qppds/components/_dropdown-menu.scss +125 -0
  341. package/styles/qppds/components/_dropdown.scss +5 -0
  342. package/styles/qppds/components/_footer.scss +606 -0
  343. package/styles/qppds/components/_gov-banner.scss +344 -0
  344. package/styles/{components → qppds/components}/_header.scss +460 -24
  345. package/styles/qppds/components/_link.scss +32 -9
  346. package/styles/qppds/components/_modal.scss +61 -21
  347. package/styles/qppds/components/_page-header.scss +65 -2
  348. package/styles/qppds/components/_pagination.scss +227 -0
  349. package/styles/qppds/components/_process-list.scss +104 -0
  350. package/styles/qppds/components/_radio-button.scss +184 -0
  351. package/styles/qppds/components/_search.scss +118 -0
  352. package/styles/{components → qppds/components}/_sidebar.scss +2 -0
  353. package/styles/qppds/components/_step-indicator.scss +190 -0
  354. package/styles/qppds/components/_table.scss +157 -0
  355. package/styles/qppds/components/_tabs.scss +197 -0
  356. package/styles/qppds/components/_text-input.scss +60 -0
  357. package/styles/qppds/components/index.scss +18 -0
  358. package/styles/{components → qppds/components}/sidebar/_links.scss +48 -1
  359. package/styles/qppds/components/sidebar/_select-role-dropdown.scss +21 -0
  360. package/styles/{components → qppds/components}/sidebar/_sidebar-animation.scss +4 -0
  361. package/styles/qppds/components/sidebar/_sidebar.scss +146 -0
  362. package/styles/qppds/settings/_functions.scss +3 -1
  363. package/styles/qppds/settings/mixins/_borders.scss +6 -0
  364. package/styles/qppds/settings/mixins/_focus.scss +7 -1
  365. package/styles/qppds/settings/mixins/_icons.scss +39 -4
  366. package/styles/qppds/settings/mixins/_index.scss +3 -0
  367. package/styles/qppds/settings/mixins/_layout.scss +46 -7
  368. package/styles/qppds/settings/mixins/_table.scss +91 -0
  369. package/styles/qppds/settings/mixins/_type.scss +89 -0
  370. package/styles/qppds/settings/variables/_color.scss +47 -1
  371. package/styles/qppds/settings/variables/_index.scss +2 -1
  372. package/styles/qppds/settings/variables/_layout.scss +34 -9
  373. package/styles/qppds/settings/variables/_type.scss +41 -0
  374. package/styles/qppds/settings/variables/_z-index.scss +8 -0
  375. package/styles/qppds/utilities/_background-color.scss +4 -0
  376. package/styles/qppds/utilities/_color.scss +24 -0
  377. package/styles/qppds/utilities/{_display-visability.scss → _display-visibility.scss} +8 -0
  378. package/styles/qppds/utilities/_flexbox.scss +113 -0
  379. package/styles/qppds/utilities/_font-family.scss +4 -0
  380. package/styles/qppds/utilities/_gap.scss +38 -0
  381. package/styles/qppds/utilities/_height.scss +79 -0
  382. package/styles/qppds/utilities/_list-style.scss +18 -0
  383. package/styles/qppds/utilities/_position.scss +24 -0
  384. package/styles/qppds/utilities/_text-align.scss +40 -0
  385. package/styles/qppds/utilities/_text-transform.scss +7 -0
  386. package/styles/qppds/utilities/_truncate.scss +5 -5
  387. package/styles/qppds/utilities/_vertical-align.scss +72 -0
  388. package/styles/qppds/utilities/_width.scss +38 -1
  389. package/styles/qppds/utilities/index.scss +8 -2
  390. package/svgo.config.js +14 -0
  391. package/test/components/Accordion.test.js +4 -13
  392. package/test/components/ErrorUI.test.js +10 -46
  393. package/test/components/FooterUI.test.js +0 -30
  394. package/test/components/HeaderUI.test.js +32 -40
  395. package/test/components/Infotip.test.js +18 -12
  396. package/test/components/SessionDialogUI.test.js +55 -70
  397. package/test-setup.js +0 -8
  398. package/webpack.config.js +29 -39
  399. package/webpack.config.react.js +7 -18
  400. package/.storybook/.babelrc +0 -4
  401. package/.storybook/main.js +0 -88
  402. package/.storybook/preview-head.html +0 -9
  403. package/.storybook/preview.js +0 -5
  404. package/Session.vim +0 -83
  405. package/components/Accordion/Accordion.stories.js +0 -20
  406. package/components/Breadcrumb/Breadcrumb.stories.js +0 -58
  407. package/components/Button/Button.stories.js +0 -125
  408. package/components/Footer/Footer.stories.js +0 -20
  409. package/components/Footer/LegacyFooterUI.jsx +0 -194
  410. package/components/Header/Header.stories.js +0 -32
  411. package/components/InfoModal/InfoModal.stories.js +0 -98
  412. package/components/InfoModal/index.jsx +0 -104
  413. package/components/Infotip/Infotip.stories.js +0 -50
  414. package/components/Modal/Modal.stories.js +0 -159
  415. package/components/NotificationBanner/NotificationBanner.stories.js +0 -22
  416. package/components/NotificationBanner/NotificationBannerUI.jsx +0 -282
  417. package/components/SideNav/SideNav.stories.js +0 -397
  418. package/components/Spinner/index.js +0 -9
  419. package/components/Tabs/TabsUI.jsx +0 -118
  420. package/components/Tabs/tabs.js +0 -36
  421. package/components/Tooltip/Tooltip.jsx +0 -88
  422. package/components/Tooltip/Tooltip.stories.js +0 -80
  423. package/components/Tooltip/index.js +0 -3
  424. package/components/Tooltip/position.js +0 -68
  425. package/components/UnwrappedSpinner/index.js +0 -8
  426. package/components/UnwrappedTabs/TabPanelUI.jsx +0 -16
  427. package/components/UnwrappedTabs/TabsUI.jsx +0 -82
  428. package/coverage/lcov-report/Accordion/index.html +0 -111
  429. package/coverage/lcov-report/Error/index.html +0 -126
  430. package/coverage/lcov-report/ScoreChart.jsx.html +0 -1025
  431. package/coverage/lcov-report/SideNav/Chart/ScoreChart.jsx.html +0 -1025
  432. package/coverage/lcov-report/components/Footer/LegacyFooterUI.jsx.html +0 -668
  433. package/coverage/lcov-report/components/NotificationBanner/NotificationBannerUI.jsx.html +0 -1010
  434. package/coverage/lcov-report/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +0 -131
  435. package/coverage/lcov-report/components/SideNav/Chart/index.js.html +0 -89
  436. package/coverage/lcov-report/components/SideNav/Content/LevelOneContent.jsx.html +0 -1007
  437. package/coverage/lcov-report/components/SideNav/Content/index.html +0 -141
  438. package/coverage/lcov-report/components/SideNav/Content/index.js.html +0 -92
  439. package/coverage/lcov-report/components/SideNav/Details/index.js.html +0 -92
  440. package/coverage/lcov-report/components/SideNav/Links/index.html +0 -201
  441. package/coverage/lcov-report/components/SideNav/UI/SideNavUI.jsx.html +0 -1298
  442. package/coverage/lcov-report/components/SideNav/UI/index.html +0 -126
  443. package/coverage/lcov-report/components/SideNav/UI/index.js.html +0 -89
  444. package/coverage/lcov-report/lib/svg-definitions.svg.html +0 -1319
  445. package/coverage/lcov-report/react/components/NotificationBanner/NotificationBannerUI.jsx.html +0 -926
  446. package/styles/components/_footer.scss +0 -593
  447. package/styles/components/_header_backup.scss +0 -574
  448. package/styles/components/sidebar/_sidebar.scss +0 -141
  449. package/test/components/Tooltip.test.js +0 -147
  450. package/test/components/__snapshots__/Accordion.test.js.snap +0 -11439
  451. package/test/components/__snapshots__/HeaderUI.test.js.snap +0 -3
  452. /package/styles/{components → qppds/components}/sidebar/_animations.scss +0 -0
  453. /package/styles/{components → qppds/components}/sidebar/_cms.scss +0 -0
  454. /package/styles/{components → qppds/components}/sidebar/_details.scss +0 -0
  455. /package/styles/{components → qppds/components}/sidebar/_sidebar-tooltip.scss +0 -0
  456. /package/styles/{components → qppds/components}/sidebar/project-specific/_wi.scss +0 -0
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">11.43% </span>
26
+ <span class="strong">73.33% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>4/35</span>
28
+ <span class='fraction'>33/45</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">0% </span>
33
+ <span class="strong">60% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/17</span>
35
+ <span class='fraction'>6/10</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">0% </span>
40
+ <span class="strong">56.25% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/11</span>
42
+ <span class='fraction'>9/16</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">11.43% </span>
47
+ <span class="strong">77.5% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>4/35</span>
49
+ <span class='fraction'>31/40</span>
50
50
  </div>
51
51
 
52
52
 
@@ -54,8 +54,14 @@
54
54
  <p class="quiet">
55
55
  Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
57
63
  </div>
58
- <div class='status-line low'></div>
64
+ <div class='status-line medium'></div>
59
65
  <pre><table class="coverage">
60
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
61
67
  <a name='L2'></a><a href='#L2'>2</a>
@@ -224,11 +230,7 @@
224
230
  <a name='L165'></a><a href='#L165'>165</a>
225
231
  <a name='L166'></a><a href='#L166'>166</a>
226
232
  <a name='L167'></a><a href='#L167'>167</a>
227
- <a name='L168'></a><a href='#L168'>168</a>
228
- <a name='L169'></a><a href='#L169'>169</a>
229
- <a name='L170'></a><a href='#L170'>170</a>
230
- <a name='L171'></a><a href='#L171'>171</a>
231
- <a name='L172'></a><a href='#L172'>172</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
233
+ <a name='L168'></a><a href='#L168'>168</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
232
234
  <span class="cline-any cline-neutral">&nbsp;</span>
233
235
  <span class="cline-any cline-neutral">&nbsp;</span>
234
236
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -240,9 +242,8 @@
240
242
  <span class="cline-any cline-neutral">&nbsp;</span>
241
243
  <span class="cline-any cline-neutral">&nbsp;</span>
242
244
  <span class="cline-any cline-neutral">&nbsp;</span>
243
- <span class="cline-any cline-yes">1x</span>
244
245
  <span class="cline-any cline-neutral">&nbsp;</span>
245
- <span class="cline-any cline-yes">1x</span>
246
+ <span class="cline-any cline-yes">2x</span>
246
247
  <span class="cline-any cline-neutral">&nbsp;</span>
247
248
  <span class="cline-any cline-neutral">&nbsp;</span>
248
249
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -252,80 +253,75 @@
252
253
  <span class="cline-any cline-neutral">&nbsp;</span>
253
254
  <span class="cline-any cline-neutral">&nbsp;</span>
254
255
  <span class="cline-any cline-neutral">&nbsp;</span>
256
+ <span class="cline-any cline-yes">3x</span>
257
+ <span class="cline-any cline-yes">3x</span>
255
258
  <span class="cline-any cline-neutral">&nbsp;</span>
259
+ <span class="cline-any cline-yes">3x</span>
256
260
  <span class="cline-any cline-neutral">&nbsp;</span>
261
+ <span class="cline-any cline-yes">3x</span>
257
262
  <span class="cline-any cline-neutral">&nbsp;</span>
258
- <span class="cline-any cline-no">&nbsp;</span>
259
- <span class="cline-any cline-no">&nbsp;</span>
260
- <span class="cline-any cline-no">&nbsp;</span>
261
263
  <span class="cline-any cline-neutral">&nbsp;</span>
264
+ <span class="cline-any cline-yes">1x</span>
262
265
  <span class="cline-any cline-no">&nbsp;</span>
263
266
  <span class="cline-any cline-no">&nbsp;</span>
264
- <span class="cline-any cline-no">&nbsp;</span>
265
- <span class="cline-any cline-neutral">&nbsp;</span>
266
- <span class="cline-any cline-no">&nbsp;</span>
267
- <span class="cline-any cline-neutral">&nbsp;</span>
268
- <span class="cline-any cline-neutral">&nbsp;</span>
269
- <span class="cline-any cline-neutral">&nbsp;</span>
270
- <span class="cline-any cline-neutral">&nbsp;</span>
271
267
  <span class="cline-any cline-neutral">&nbsp;</span>
272
268
  <span class="cline-any cline-neutral">&nbsp;</span>
273
269
  <span class="cline-any cline-no">&nbsp;</span>
274
- <span class="cline-any cline-no">&nbsp;</span>
275
- <span class="cline-any cline-neutral">&nbsp;</span>
276
270
  <span class="cline-any cline-neutral">&nbsp;</span>
277
- <span class="cline-any cline-no">&nbsp;</span>
278
271
  <span class="cline-any cline-neutral">&nbsp;</span>
279
272
  <span class="cline-any cline-neutral">&nbsp;</span>
273
+ <span class="cline-any cline-yes">1x</span>
280
274
  <span class="cline-any cline-neutral">&nbsp;</span>
281
- <span class="cline-any cline-no">&nbsp;</span>
282
275
  <span class="cline-any cline-neutral">&nbsp;</span>
283
- <span class="cline-any cline-no">&nbsp;</span>
284
- <span class="cline-any cline-no">&nbsp;</span>
285
276
  <span class="cline-any cline-neutral">&nbsp;</span>
286
277
  <span class="cline-any cline-neutral">&nbsp;</span>
278
+ <span class="cline-any cline-yes">3x</span>
279
+ <span class="cline-any cline-yes">2x</span>
280
+ <span class="cline-any cline-yes">2x</span>
287
281
  <span class="cline-any cline-neutral">&nbsp;</span>
288
282
  <span class="cline-any cline-neutral">&nbsp;</span>
283
+ <span class="cline-any cline-yes">2x</span>
284
+ <span class="cline-any cline-yes">2x</span>
285
+ <span class="cline-any cline-yes">1x</span>
289
286
  <span class="cline-any cline-neutral">&nbsp;</span>
290
287
  <span class="cline-any cline-no">&nbsp;</span>
291
- <span class="cline-any cline-no">&nbsp;</span>
292
288
  <span class="cline-any cline-neutral">&nbsp;</span>
293
- <span class="cline-any cline-no">&nbsp;</span>
289
+ <span class="cline-any cline-yes">1x</span>
294
290
  <span class="cline-any cline-neutral">&nbsp;</span>
291
+ <span class="cline-any cline-yes">2x</span>
292
+ <span class="cline-any cline-yes">2x</span>
293
+ <span class="cline-any cline-yes">2x</span>
295
294
  <span class="cline-any cline-neutral">&nbsp;</span>
296
295
  <span class="cline-any cline-neutral">&nbsp;</span>
297
- <span class="cline-any cline-no">&nbsp;</span>
298
296
  <span class="cline-any cline-neutral">&nbsp;</span>
297
+ <span class="cline-any cline-yes">3x</span>
299
298
  <span class="cline-any cline-neutral">&nbsp;</span>
299
+ <span class="cline-any cline-yes">3x</span>
300
+ <span class="cline-any cline-no">&nbsp;</span>
300
301
  <span class="cline-any cline-neutral">&nbsp;</span>
301
302
  <span class="cline-any cline-neutral">&nbsp;</span>
302
303
  <span class="cline-any cline-neutral">&nbsp;</span>
303
304
  <span class="cline-any cline-neutral">&nbsp;</span>
304
305
  <span class="cline-any cline-neutral">&nbsp;</span>
305
306
  <span class="cline-any cline-neutral">&nbsp;</span>
306
- <span class="cline-any cline-no">&nbsp;</span>
307
307
  <span class="cline-any cline-neutral">&nbsp;</span>
308
308
  <span class="cline-any cline-neutral">&nbsp;</span>
309
+ <span class="cline-any cline-yes">3x</span>
309
310
  <span class="cline-any cline-no">&nbsp;</span>
310
311
  <span class="cline-any cline-neutral">&nbsp;</span>
311
312
  <span class="cline-any cline-neutral">&nbsp;</span>
312
313
  <span class="cline-any cline-neutral">&nbsp;</span>
313
314
  <span class="cline-any cline-neutral">&nbsp;</span>
314
315
  <span class="cline-any cline-neutral">&nbsp;</span>
315
- <span class="cline-any cline-no">&nbsp;</span>
316
- <span class="cline-any cline-no">&nbsp;</span>
317
316
  <span class="cline-any cline-neutral">&nbsp;</span>
318
317
  <span class="cline-any cline-neutral">&nbsp;</span>
319
318
  <span class="cline-any cline-neutral">&nbsp;</span>
320
319
  <span class="cline-any cline-neutral">&nbsp;</span>
321
320
  <span class="cline-any cline-neutral">&nbsp;</span>
322
321
  <span class="cline-any cline-neutral">&nbsp;</span>
323
- <span class="cline-any cline-no">&nbsp;</span>
324
- <span class="cline-any cline-no">&nbsp;</span>
325
322
  <span class="cline-any cline-neutral">&nbsp;</span>
326
- <span class="cline-any cline-neutral">&nbsp;</span>
327
- <span class="cline-any cline-neutral">&nbsp;</span>
328
- <span class="cline-any cline-no">&nbsp;</span>
323
+ <span class="cline-any cline-yes">3x</span>
324
+ <span class="cline-any cline-yes">1x</span>
329
325
  <span class="cline-any cline-neutral">&nbsp;</span>
330
326
  <span class="cline-any cline-neutral">&nbsp;</span>
331
327
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -334,20 +330,19 @@
334
330
  <span class="cline-any cline-neutral">&nbsp;</span>
335
331
  <span class="cline-any cline-neutral">&nbsp;</span>
336
332
  <span class="cline-any cline-no">&nbsp;</span>
337
- <span class="cline-any cline-no">&nbsp;</span>
338
333
  <span class="cline-any cline-neutral">&nbsp;</span>
339
334
  <span class="cline-any cline-neutral">&nbsp;</span>
340
- <span class="cline-any cline-no">&nbsp;</span>
341
335
  <span class="cline-any cline-neutral">&nbsp;</span>
342
336
  <span class="cline-any cline-neutral">&nbsp;</span>
343
337
  <span class="cline-any cline-neutral">&nbsp;</span>
338
+ <span class="cline-any cline-yes">1x</span>
339
+ <span class="cline-any cline-neutral">&nbsp;</span>
344
340
  <span class="cline-any cline-no">&nbsp;</span>
345
341
  <span class="cline-any cline-neutral">&nbsp;</span>
346
342
  <span class="cline-any cline-neutral">&nbsp;</span>
347
343
  <span class="cline-any cline-neutral">&nbsp;</span>
348
344
  <span class="cline-any cline-neutral">&nbsp;</span>
349
345
  <span class="cline-any cline-neutral">&nbsp;</span>
350
- <span class="cline-any cline-no">&nbsp;</span>
351
346
  <span class="cline-any cline-neutral">&nbsp;</span>
352
347
  <span class="cline-any cline-neutral">&nbsp;</span>
353
348
  <span class="cline-any cline-no">&nbsp;</span>
@@ -358,20 +353,23 @@
358
353
  <span class="cline-any cline-neutral">&nbsp;</span>
359
354
  <span class="cline-any cline-neutral">&nbsp;</span>
360
355
  <span class="cline-any cline-neutral">&nbsp;</span>
361
- <span class="cline-any cline-no">&nbsp;</span>
362
- <span class="cline-any cline-neutral">&nbsp;</span>
363
- <span class="cline-any cline-neutral">&nbsp;</span>
364
356
  <span class="cline-any cline-neutral">&nbsp;</span>
365
357
  <span class="cline-any cline-neutral">&nbsp;</span>
358
+ <span class="cline-any cline-yes">3x</span>
359
+ <span class="cline-any cline-yes">3x</span>
360
+ <span class="cline-any cline-yes">3x</span>
361
+ <span class="cline-any cline-yes">3x</span>
362
+ <span class="cline-any cline-yes">2x</span>
366
363
  <span class="cline-any cline-neutral">&nbsp;</span>
367
364
  <span class="cline-any cline-neutral">&nbsp;</span>
365
+ <span class="cline-any cline-yes">3x</span>
368
366
  <span class="cline-any cline-neutral">&nbsp;</span>
369
367
  <span class="cline-any cline-neutral">&nbsp;</span>
370
368
  <span class="cline-any cline-neutral">&nbsp;</span>
371
369
  <span class="cline-any cline-neutral">&nbsp;</span>
372
370
  <span class="cline-any cline-neutral">&nbsp;</span>
373
371
  <span class="cline-any cline-neutral">&nbsp;</span>
374
- <span class="cline-any cline-yes">1x</span>
372
+ <span class="cline-any cline-yes">2x</span>
375
373
  <span class="cline-any cline-neutral">&nbsp;</span>
376
374
  <span class="cline-any cline-neutral">&nbsp;</span>
377
375
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -384,7 +382,7 @@
384
382
  <span class="cline-any cline-neutral">&nbsp;</span>
385
383
  <span class="cline-any cline-neutral">&nbsp;</span>
386
384
  <span class="cline-any cline-neutral">&nbsp;</span>
387
- <span class="cline-any cline-yes">1x</span>
385
+ <span class="cline-any cline-yes">2x</span>
388
386
  <span class="cline-any cline-neutral">&nbsp;</span>
389
387
  <span class="cline-any cline-neutral">&nbsp;</span>
390
388
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -401,150 +399,144 @@
401
399
  <span class="cline-any cline-neutral">&nbsp;</span>
402
400
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { useState, useEffect } from 'react';
403
401
  import PropTypes from 'prop-types';
404
- &nbsp;
402
+ import axios from 'axios';
405
403
  import HeaderAccountMenu from './HeaderAccountMenu.jsx';
406
404
  import HeaderCancel from './HeaderCancel.jsx';
407
- import HeaderContainer from './HeaderContainer'
408
- import HeaderMenuItem from './HeaderMenuItem'
409
- import HeaderMobileButton from './HeaderMobileButton'
410
- import HelpIcon from './HelpIcon'
411
- import defaultHeaderContent from './default-content.json';
412
- &nbsp;
413
- // Time the local storage content item will be active, in minutes
414
- const CONTENT_STORAGE_EXPIRATION_TIMEOUT = 30;
405
+ import HeaderContainer from './HeaderContainer';
406
+ import HeaderMenuItem from './HeaderMenuItem';
407
+ import HeaderMobileButton from './HeaderMobileButton';
408
+ import ImpersonatorBanner from './ImpersonatorBanner';
409
+ import HelpIcon from './HelpIcon';
410
+ import { HeaderStateProvider } from './hooks';
411
+ import defaultContent from './default-content.json';
415
412
  &nbsp;
416
- const HeaderUI = <span class="fstat-no" title="function not covered" >({ </span>
417
- fbpPerformanceYear,
418
- feedbackPerformanceYear,
413
+ const HeaderUI = ({
419
414
  handleCancel,
420
415
  includeSkipToSidebar,
421
416
  isDevPre,
422
417
  isLoginEnabled,
423
- performanceYear,
424
418
  showCancelButton,
425
- showPhysicianCompareLink,
426
- showFacilityBasedPreviewLink,
427
419
  skipToContentId,
420
+ RouterLink,
421
+ isIESupportPage,
428
422
  }) =&gt; {
429
- const [isMobileMenuExpanded, setIsMobileMenuExpanded] = <span class="cstat-no" title="statement not covered" >useState(false)</span>
430
- const [currentOpenMenu, setCurrentOpenMenu] = <span class="cstat-no" title="statement not covered" >useState()</span>
431
- const [content, setContent] = <span class="cstat-no" title="statement not covered" >useState(null);</span>
423
+ const [isMobileMenuExpanded, setIsMobileMenuExpanded] = useState(false);
424
+ const [headerContent, setHeaderContent] = useState({});
432
425
  &nbsp;
433
- const handleToggleMenu = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >na</span>me =&gt; {</span>
434
- <span class="cstat-no" title="statement not covered" > if (currentOpenMenu === name) {</span>
435
- <span class="cstat-no" title="statement not covered" > return setCurrentOpenMenu('')</span>
436
- }
437
- <span class="cstat-no" title="statement not covered" > return setCurrentOpenMenu(name)</span>
438
- }
426
+ const mapContentToRows = (config) =&gt; {
427
+ // Append transposed array to content
428
+ return config?.map((section) =&gt; {
429
+ // Only header items with multiple columns need to be transposed
430
+ // Single column menus' tab order will remain the same
431
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (section.columns?.length &gt; 1) {
432
+ const { columns } = <span class="cstat-no" title="statement not covered" >section;</span>
433
+ <span class="cstat-no" title="statement not covered" > return {</span>
434
+ ...section,
435
+ rows: columns[0].map(<span class="fstat-no" title="function not covered" >(_</span>, colIndex) =&gt;
436
+ <span class="cstat-no" title="statement not covered" > columns.map(<span class="fstat-no" title="function not covered" >(r</span>ow) =&gt; <span class="cstat-no" title="statement not covered" >row[colIndex])</span></span>
437
+ ),
438
+ };
439
+ }
440
+ return { ...section, rows: section.columns };
441
+ });
442
+ };
439
443
  &nbsp;
440
- // The top nav content is populated with the following priority order:
441
- // 1. Use the top nav content in localStorage if it's there
442
- // 2. If not, make a call to get it from the QPPFE endpoint. Hydrate the localStorage item with the response.
443
- // 3. If the call fails, use the default content
444
- <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
445
- const storageContent = <span class="cstat-no" title="statement not covered" >JSON.parse(</span>
446
- localStorage.getItem('qpp_top_nav_content')
447
- );
448
- <span class="cstat-no" title="statement not covered" > if (</span>
449
- storageContent?.content &amp;&amp;
450
- new Date().valueOf() &lt; storageContent.expiration
451
- ) {
452
- <span class="cstat-no" title="statement not covered" > setContent(storageContent.content);</span>
453
- } else {
454
- const origin = <span class="cstat-no" title="statement not covered" >window.location.origin;</span>
455
- <span class="cstat-no" title="statement not covered" > fetch(</span>
456
- !origin.includes('localhost')
457
- ? `${origin}/config/header`
458
- : 'https://qpp.cms.gov/config/header'
459
- )
460
- .then(<span class="fstat-no" title="function not covered" >(r</span>es) =&gt; {
461
- <span class="cstat-no" title="statement not covered" > if (res.ok) {</span>
462
- <span class="cstat-no" title="statement not covered" > return res.json();</span>
463
- } else {
464
- <span class="cstat-no" title="statement not covered" > throw new Error()</span>
465
- }
466
- })
467
- .then(<span class="fstat-no" title="function not covered" >({</span> data = <span class="branch-0 cbranch-no" title="branch not covered" >{} </span>}) =&gt; {
468
- <span class="cstat-no" title="statement not covered" > localStorage.setItem(</span>
469
- 'qpp_top_nav_content',
470
- JSON.stringify({
471
- content: data.content,
472
- expiration:
473
- new Date().valueOf() +
474
- CONTENT_STORAGE_EXPIRATION_TIMEOUT * 60 * 1000,
475
- })
476
- );
477
- <span class="cstat-no" title="statement not covered" > setContent(data.content);</span>
478
- })
479
- .catch(<span class="fstat-no" title="function not covered" >()</span> =&gt; {
480
- <span class="cstat-no" title="statement not covered" > setContent(defaultHeaderContent);</span>
481
- });
444
+ // execute on init render
445
+ useEffect(() =&gt; {
446
+ let cancelRequest = false;
447
+ const { origin } = window.location;
448
+ let navMenuItems;
449
+ async function getHeaderConfig() {
450
+ try {
451
+ const { data } = await axios.get(`${origin}/config/header`);
452
+ navMenuItems = data.data;
453
+ } catch (error) {
454
+ <span class="cstat-no" title="statement not covered" > navMenuItems = { content: defaultContent };</span>
455
+ }
456
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (!cancelRequest) setHeaderContent(navMenuItems);
482
457
  }
458
+ getHeaderConfig();
459
+ return () =&gt; {
460
+ cancelRequest = true;
461
+ };
483
462
  }, []);
484
463
  &nbsp;
464
+ const content = mapContentToRows(headerContent?.content);
485
465
  &nbsp;
486
- <span class="cstat-no" title="statement not covered" > if (showCancelButton) {</span>
487
- <span class="cstat-no" title="statement not covered" > return (</span>
488
- &lt;HeaderContainer showCancelButton skipToContentId={skipToContentId} includeSkipToSidebar={includeSkipToSidebar}&gt;
489
- &lt;HeaderCancel handleCancel={handleCancel} /&gt;
490
- &lt;/HeaderContainer&gt;
491
- )
492
- }
493
- &nbsp;
494
- <span class="cstat-no" title="statement not covered" > if (isDevPre) {</span>
495
- <span class="cstat-no" title="statement not covered" > return (</span>
496
- &lt;HeaderContainer skipToContentId={skipToContentId} includeSkipToSidebar={includeSkipToSidebar}&gt;
497
- &lt;HeaderAccountMenu
498
- isDevPre
499
- handleToggleMenu={<span class="fstat-no" title="function not covered" >()</span> =&gt; <span class="cstat-no" title="statement not covered" >handleToggleMenu("Login")}</span>
500
- isLoginEnabled={isLoginEnabled}
501
- isOpen={currentOpenMenu === "Login"}
502
- /&gt;
503
- &lt;/HeaderContainer&gt;
504
- )
505
- }
506
- &nbsp;
507
- <span class="cstat-no" title="statement not covered" > if (!content) {</span>
508
- <span class="cstat-no" title="statement not covered" > return null;</span>
509
- }
466
+ const displayCancelContent = <span class="fstat-no" title="function not covered" >()</span> =&gt; (
467
+ <span class="cstat-no" title="statement not covered" > &lt;HeaderContainer</span>
468
+ showCancelButton
469
+ skipToContentId={skipToContentId}
470
+ includeSkipToSidebar={includeSkipToSidebar}
471
+ &gt;
472
+ &lt;HeaderCancel handleCancel={handleCancel} /&gt;
473
+ &lt;/HeaderContainer&gt;
474
+ );
510
475
  &nbsp;
511
- <span class="cstat-no" title="statement not covered" > return (</span>
512
- &lt;HeaderContainer skipToContentId={skipToContentId} includeSkipToSidebar={includeSkipToSidebar}&gt;
513
- &lt;HelpIcon /&gt;
514
- &lt;HeaderMobileButton
515
- handleClick={<span class="fstat-no" title="function not covered" >()</span> =&gt; <span class="cstat-no" title="statement not covered" >setIsMobileMenuExpanded(!isMobileMenuExpanded)} </span>
516
- isMobileMenuExpanded={isMobileMenuExpanded}
517
- /&gt;
476
+ const displayDevPreContent = <span class="fstat-no" title="function not covered" >()</span> =&gt; (
477
+ <span class="cstat-no" title="statement not covered" > &lt;HeaderContainer</span>
478
+ isIESupportPage={isIESupportPage}
479
+ skipToContentId={skipToContentId}
480
+ includeSkipToSidebar={includeSkipToSidebar}
481
+ &gt;
518
482
  &lt;nav aria-label="Primary navigation" hidden={!isMobileMenuExpanded}&gt;
519
483
  &lt;ul className="navigation-menu"&gt;
520
- {content.map(<span class="fstat-no" title="function not covered" >he</span>ader =&gt; (
521
- <span class="cstat-no" title="statement not covered" > &lt;HeaderMenuItem </span>
522
- key={header.name}
523
- {...header}
524
- handleToggleMenu={<span class="fstat-no" title="function not covered" >()</span> =&gt; <span class="cstat-no" title="statement not covered" >handleToggleMenu(header.name)}</span>
525
- hasMenu={header.columns.length &gt; 0}
526
- isOpen={currentOpenMenu === header.name}
527
- /&gt;
528
- ))}
529
- &lt;HeaderAccountMenu
530
- fbpPerformanceYear={fbpPerformanceYear}
531
- feedbackPerformanceYear={feedbackPerformanceYear}
532
- handleToggleMenu={<span class="fstat-no" title="function not covered" >()</span> =&gt; <span class="cstat-no" title="statement not covered" >handleToggleMenu("Login")}</span>
533
- isLoginEnabled={isLoginEnabled}
534
- isOpen={currentOpenMenu === "Login"}
535
- performanceYear={performanceYear}
536
- showPhysicianCompareLink={showPhysicianCompareLink}
537
- showFacilityBasedPreviewLink={showFacilityBasedPreviewLink}
538
- /&gt;
484
+ &lt;HeaderAccountMenu isDevPre isLoginEnabled={isLoginEnabled} /&gt;
539
485
  &lt;/ul&gt;
540
486
  &lt;/nav&gt;
541
487
  &lt;/HeaderContainer&gt;
542
- )
543
- }
488
+ );
489
+ &nbsp;
490
+ const displayHeaderContent = () =&gt; (
491
+ &lt;&gt;
492
+ &lt;HeaderContainer
493
+ isIESupportPage={isIESupportPage}
494
+ skipToContentId={skipToContentId}
495
+ includeSkipToSidebar={includeSkipToSidebar}
496
+ &gt;
497
+ &lt;HelpIcon /&gt;
498
+ &lt;HeaderMobileButton
499
+ handleClick={<span class="fstat-no" title="function not covered" >()</span> =&gt; <span class="cstat-no" title="statement not covered" >setIsMobileMenuExpanded(!isMobileMenuExpanded)}</span>
500
+ isMobileMenuExpanded={isMobileMenuExpanded}
501
+ /&gt;
502
+ &lt;nav aria-label="Primary navigation" hidden={!isMobileMenuExpanded}&gt;
503
+ &lt;ul className="navigation-menu navigation-new-style"&gt;
504
+ {content.map((header) =&gt; (
505
+ &lt;HeaderMenuItem
506
+ handleClick={<span class="fstat-no" title="function not covered" >()</span> =&gt; {
507
+ <span class="cstat-no" title="statement not covered" > setIsMobileMenuExpanded(!isMobileMenuExpanded);</span>
508
+ }}
509
+ isMobileMenuExpanded={isMobileMenuExpanded}
510
+ key={header.name}
511
+ {...header}
512
+ /&gt;
513
+ ))}
514
+ &lt;HeaderAccountMenu
515
+ handleClick={<span class="fstat-no" title="function not covered" >()</span> =&gt; <span class="cstat-no" title="statement not covered" >setIsMobileMenuExpanded(!isMobileMenuExpanded)}</span>
516
+ isLoginEnabled={isLoginEnabled}
517
+ /&gt;
518
+ &lt;/ul&gt;
519
+ &lt;/nav&gt;
520
+ &lt;/HeaderContainer&gt;
521
+ &lt;ImpersonatorBanner /&gt;
522
+ &lt;/&gt;
523
+ );
524
+ &nbsp;
525
+ const displayContent = () =&gt; {
526
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (showCancelButton) <span class="cstat-no" title="statement not covered" >return displayCancelContent();</span>
527
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (isDevPre) <span class="cstat-no" title="statement not covered" >return displayDevPreContent();</span>
528
+ if (content?.length) return displayHeaderContent();
529
+ return null;
530
+ };
531
+ &nbsp;
532
+ return (
533
+ &lt;HeaderStateProvider RouterLink={RouterLink} headerContent={headerContent}&gt;
534
+ {displayContent()}
535
+ &lt;/HeaderStateProvider&gt;
536
+ );
537
+ };
544
538
  &nbsp;
545
539
  HeaderUI.propTypes = {
546
- fbpPerformanceYear: PropTypes.string,
547
- feedbackPerformanceYear: PropTypes.string,
548
540
  handleCancel: PropTypes.func,
549
541
  includeSkipToSidebar: PropTypes.bool,
550
542
  isDevPre: PropTypes.bool,
@@ -554,10 +546,10 @@ HeaderUI.propTypes = {
554
546
  showPhysicianCompareLink: PropTypes.bool,
555
547
  showFacilityBasedPreviewLink: PropTypes.bool,
556
548
  skipToContentId: PropTypes.string,
557
- }
549
+ RouterLink: PropTypes.func,
550
+ isIESupportPage: PropTypes.bool,
551
+ };
558
552
  HeaderUI.defaultProps = {
559
- fbpPerformanceYear: null,
560
- feedbackPerformanceYear: null,
561
553
  handleCancel: Function.prototype,
562
554
  includeSkipToSidebar: false,
563
555
  isDevPre: false,
@@ -567,19 +559,20 @@ HeaderUI.defaultProps = {
567
559
  showPhysicianCompareLink: false,
568
560
  showFacilityBasedPreviewLink: false,
569
561
  skipToContentId: null,
570
- }
562
+ RouterLink: null,
563
+ isIESupportPage: false,
564
+ };
571
565
  &nbsp;
572
- export default HeaderUI
566
+ export default HeaderUI;
573
567
  &nbsp;</pre></td></tr></table></pre>
574
568
 
575
569
  <div class='push'></div><!-- for sticky footer -->
576
570
  </div><!-- /wrapper -->
577
571
  <div class='footer quiet pad2 space-top1 center small'>
578
572
  Code coverage generated by
579
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
580
- at Thu Jan 21 2021 15:11:19 GMT-0800 (Pacific Standard Time)
573
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
574
+ at Mon Mar 06 2023 14:49:52 GMT-0800 (Pacific Standard Time)
581
575
  </div>
582
- </div>
583
576
  <script src="../../../prettify.js"></script>
584
577
  <script>
585
578
  window.onload = function () {