qpp-style 0.0.8 → 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 (462) 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/Breadcrumb.md +28 -0
  7. package/components/Breadcrumb/index.js +69 -11
  8. package/components/Button/index.js +90 -0
  9. package/components/CalloutBox/index.js +109 -0
  10. package/components/Card/index.js +137 -0
  11. package/components/Details/DetailsIcons.js +50 -0
  12. package/components/Details/index.js +53 -0
  13. package/components/Dropdown/index.js +85 -0
  14. package/components/DropdownButton/Menu.js +25 -0
  15. package/components/DropdownButton/MenuButton.js +41 -0
  16. package/components/DropdownButton/MenuItem.js +25 -0
  17. package/components/DropdownButton/MenuItemLink.js +27 -0
  18. package/components/Error/Collapsible.jsx +2 -2
  19. package/components/Footer/FooterUI.jsx +175 -177
  20. package/components/Footer/footer.js +2 -12
  21. package/components/GovBanner/index.js +117 -0
  22. package/components/Header/HeaderAccountMenu.jsx +63 -234
  23. package/components/Header/HeaderCancel.jsx +5 -10
  24. package/components/Header/HeaderContainer.jsx +74 -0
  25. package/components/Header/HeaderLogo.jsx +42 -0
  26. package/components/Header/HeaderMenuButton.js +50 -0
  27. package/components/Header/HeaderMenuItem.jsx +239 -0
  28. package/components/Header/HeaderMenuLink.js +56 -0
  29. package/components/Header/HeaderMenuSignOutButton.js +62 -0
  30. package/components/Header/HeaderMobileButton.js +37 -0
  31. package/components/Header/HeaderUI.jsx +130 -361
  32. package/components/Header/HelpIcon.jsx +32 -0
  33. package/components/Header/ImpersonatorBanner.jsx +81 -0
  34. package/components/Header/default-content.json +158 -87
  35. package/components/Header/header.js +2 -0
  36. package/components/Header/hooks.js +66 -0
  37. package/components/Header/utag-helpers.js +9 -0
  38. package/components/Infotip/Infotip.jsx +6 -10
  39. package/components/Infotip/InfotipContent.jsx +46 -0
  40. package/components/Infotip/InfotipIcon.jsx +3 -3
  41. package/components/Link/index.js +61 -0
  42. package/components/Modal/LegacyModal.jsx +72 -0
  43. package/components/Modal/Modal.jsx +140 -0
  44. package/components/Modal/index.jsx +13 -63
  45. package/components/NotificationBanner/CollapsedView.js +39 -0
  46. package/components/NotificationBanner/ExpandedView.js +45 -0
  47. package/components/NotificationBanner/index.js +219 -30
  48. package/components/Search/index.js +98 -0
  49. package/components/SessionDialog/sessionDialog.js +26 -0
  50. package/components/SessionDialogUI.jsx +34 -26
  51. package/components/SideNav/AnimationGroup/AnimationGroup.jsx +10 -4
  52. package/components/SideNav/Chart/ScoreChart.jsx +81 -109
  53. package/components/SideNav/Chart/__tests__/ScoreChart.test.js +3 -12
  54. package/components/SideNav/Chart/__tests__/__snapshots__/ScoreChart.test.js.snap +144 -35
  55. package/components/SideNav/Chart/index.js +1 -1
  56. package/components/SideNav/Content/LevelOneContent.jsx +146 -258
  57. package/components/SideNav/Content/LevelTwoContent.jsx +6 -4
  58. package/components/SideNav/Content/SelectRole/index.js +77 -0
  59. package/components/SideNav/Content/SelectRole/utils.js +140 -0
  60. package/components/SideNav/Details/PracticeDetails.jsx +4 -0
  61. package/components/SideNav/Links/CmsSwitchLink.jsx +1 -1
  62. package/components/SideNav/Links/NavLinkContainer.jsx +29 -34
  63. package/components/SideNav/Links/NavLinkDrawer.jsx +192 -124
  64. package/components/SideNav/Links/NavLinkInline.jsx +7 -2
  65. package/components/SideNav/Links/NavLinkToggle.jsx +1 -1
  66. package/components/SideNav/SideNav.md +28 -27
  67. package/components/SideNav/UI/SideNavUI.jsx +198 -268
  68. package/components/SideNav/UI/default-content.json +117 -0
  69. package/components/SideNav/helpers.js +316 -4
  70. package/components/Tabs/TabPanel.js +5 -0
  71. package/components/Tabs/Tabs.js +73 -0
  72. package/components/TextInput/index.js +137 -0
  73. package/components/hooks/useGetConfig.js +75 -0
  74. package/components/index.js +106 -9
  75. package/coverage/clover.xml +1194 -748
  76. package/coverage/coverage-final.json +72 -50
  77. package/coverage/lcov-report/block-navigation.js +8 -0
  78. package/coverage/lcov-report/components/Accordion/index.html +26 -21
  79. package/coverage/lcov-report/components/Accordion/index.jsx.html +106 -131
  80. package/coverage/lcov-report/{SideNav/Chart → components/Button}/index.html +29 -24
  81. package/coverage/lcov-report/{Error/Collapsible.jsx.html → components/Button/index.js.html} +125 -114
  82. package/coverage/lcov-report/components/Error/Collapsible.jsx.html +92 -87
  83. package/coverage/lcov-report/components/Error/ErrorUI.jsx.html +32 -33
  84. package/coverage/lcov-report/components/Error/index.html +11 -6
  85. package/coverage/lcov-report/components/Footer/FooterUI.jsx.html +200 -189
  86. package/coverage/lcov-report/components/Footer/SocialLinks.jsx.html +24 -61
  87. package/coverage/lcov-report/components/Footer/Subscribe.jsx.html +18 -13
  88. package/coverage/lcov-report/components/Footer/index.html +35 -45
  89. package/coverage/lcov-report/components/{InfoModal → GovBanner}/index.html +27 -22
  90. package/coverage/lcov-report/components/{InfoModal/index.jsx.html → GovBanner/index.js.html} +157 -122
  91. package/coverage/lcov-report/components/Header/HeaderAccountMenu.jsx.html +93 -520
  92. package/coverage/lcov-report/components/Header/HeaderCancel.jsx.html +19 -23
  93. package/coverage/lcov-report/components/Header/HeaderContainer.jsx.html +280 -0
  94. package/coverage/lcov-report/components/Header/HeaderLogo.jsx.html +211 -0
  95. package/coverage/lcov-report/components/Header/HeaderMenuButton.js.html +235 -0
  96. package/coverage/lcov-report/components/{Footer/LegacyFooterUI.jsx.html → Header/HeaderMenuItem.jsx.html} +334 -200
  97. package/coverage/lcov-report/components/Header/HeaderMenuLink.js.html +253 -0
  98. package/coverage/lcov-report/components/Header/HeaderMenuSignOutButton.js.html +271 -0
  99. package/coverage/lcov-report/components/Header/HeaderMobileButton.js.html +196 -0
  100. package/coverage/lcov-report/components/Header/HeaderUI.jsx.html +176 -756
  101. package/coverage/lcov-report/components/Header/HelpIcon.jsx.html +181 -0
  102. package/coverage/lcov-report/{Accordion/index.jsx.html → components/Header/ImpersonatorBanner.jsx.html} +109 -167
  103. package/coverage/lcov-report/components/Header/NavigationButtonIcon.jsx.html +24 -19
  104. package/coverage/lcov-report/components/Header/hooks.js.html +283 -0
  105. package/coverage/lcov-report/components/Header/index.html +203 -33
  106. package/coverage/lcov-report/components/{SideNav/Links/index.js.html → Header/utag-helpers.js.html} +35 -42
  107. package/coverage/lcov-report/components/Infotip/Infotip.jsx.html +53 -48
  108. package/coverage/lcov-report/components/Infotip/InfotipIcon.jsx.html +37 -32
  109. package/coverage/lcov-report/components/Infotip/index.html +8 -3
  110. package/coverage/lcov-report/components/Infotip/index.js.html +8 -3
  111. package/coverage/lcov-report/components/Modal/LegacyModal.jsx.html +301 -0
  112. package/coverage/lcov-report/components/Modal/Modal.jsx.html +505 -0
  113. package/coverage/lcov-report/components/Modal/index.html +146 -0
  114. package/coverage/lcov-report/components/{SideNav/Details/IndividualDetails.jsx.html → Modal/index.jsx.html} +50 -42
  115. package/coverage/lcov-report/components/NotificationBanner/CollapsedView.js.html +202 -0
  116. package/coverage/lcov-report/components/NotificationBanner/ExpandedView.js.html +220 -0
  117. package/coverage/lcov-report/components/NotificationBanner/index.html +58 -23
  118. package/coverage/lcov-report/components/{SideNav/Content/LevelTwoContent.jsx.html → NotificationBanner/index.js.html} +292 -272
  119. package/coverage/lcov-report/components/SanitizedContent/index.html +8 -3
  120. package/coverage/lcov-report/components/SanitizedContent/index.jsx.html +475 -50
  121. package/coverage/lcov-report/components/SessionDialogUI.jsx.html +248 -255
  122. package/coverage/lcov-report/components/SideNav/Chart/ScoreChart.jsx.html +272 -408
  123. package/coverage/lcov-report/components/SideNav/Chart/index.html +28 -38
  124. package/coverage/lcov-report/components/SideNav/Content/SelectRole/index.html +116 -0
  125. package/coverage/lcov-report/components/SideNav/Content/SelectRole/utils.js.html +505 -0
  126. package/coverage/lcov-report/components/SideNav/helpers.js.html +987 -46
  127. package/coverage/lcov-report/components/SideNav/index.html +24 -19
  128. package/coverage/lcov-report/components/Tooltip/Tooltip.jsx.html +70 -65
  129. package/coverage/lcov-report/components/Tooltip/index.html +8 -3
  130. package/coverage/lcov-report/components/Tooltip/index.js.html +8 -3
  131. package/coverage/lcov-report/components/Tooltip/position.js.html +57 -64
  132. package/coverage/lcov-report/components/hooks/index.html +116 -0
  133. package/coverage/lcov-report/components/hooks/useGetConfig.js.html +310 -0
  134. package/coverage/lcov-report/components/index.html +10 -5
  135. package/coverage/lcov-report/index.html +249 -154
  136. package/coverage/lcov-report/{Error/ErrorUI.jsx.html → lib/Chevron.jsx.html} +44 -42
  137. package/coverage/lcov-report/lib/SvgComponents.jsx.html +1840 -0
  138. package/coverage/lcov-report/lib/index.html +34 -14
  139. package/coverage/lcov-report/react/components/Accordion/index.html +26 -21
  140. package/coverage/lcov-report/react/components/Accordion/index.jsx.html +106 -131
  141. package/coverage/lcov-report/react/components/{FlashNotification → Button}/index.html +23 -33
  142. package/coverage/lcov-report/{components/SideNav/Links/NavLinkInline.jsx.html → react/components/Button/index.js.html} +119 -120
  143. package/coverage/lcov-report/react/components/{Tabs → Dropdown}/index.html +23 -33
  144. package/coverage/lcov-report/react/components/{InfoModal/index.jsx.html → Dropdown/index.js.html} +103 -155
  145. package/coverage/lcov-report/react/components/Error/Collapsible.jsx.html +92 -87
  146. package/coverage/lcov-report/react/components/Error/ErrorUI.jsx.html +32 -33
  147. package/coverage/lcov-report/react/components/Error/error.js.html +25 -20
  148. package/coverage/lcov-report/react/components/Error/index.html +11 -6
  149. package/coverage/lcov-report/react/components/Footer/FooterUI.jsx.html +200 -189
  150. package/coverage/lcov-report/react/components/Footer/LegacyFooterUI.jsx.html +14 -15
  151. package/coverage/lcov-report/react/components/Footer/SocialLinks.jsx.html +18 -13
  152. package/coverage/lcov-report/react/components/Footer/Subscribe.jsx.html +18 -13
  153. package/coverage/lcov-report/react/components/Footer/footer.js.html +12 -34
  154. package/coverage/lcov-report/react/components/Footer/index.html +35 -45
  155. package/coverage/lcov-report/react/components/{InfoModal → GovBanner}/index.html +27 -22
  156. package/coverage/lcov-report/react/components/{Tabs/TabsUI.jsx.html → GovBanner/index.js.html} +146 -153
  157. package/coverage/lcov-report/react/components/Header/HeaderAccountMenu.jsx.html +93 -520
  158. package/coverage/lcov-report/react/components/Header/HeaderCancel.jsx.html +19 -23
  159. package/coverage/lcov-report/react/components/Header/HeaderContainer.jsx.html +307 -0
  160. package/coverage/lcov-report/{components/SideNav/Links/CmsSwitchLink.jsx.html → react/components/Header/HeaderLogo.jsx.html} +64 -53
  161. package/coverage/lcov-report/{components/SideNav/Links/NavItemInline.jsx.html → react/components/Header/HeaderMenuButton.js.html} +64 -71
  162. package/coverage/lcov-report/{components/SideNav/Links/NavLinkDrawer.jsx.html → react/components/Header/HeaderMenuItem.jsx.html} +284 -261
  163. package/coverage/lcov-report/react/components/Header/HeaderMenuLink.js.html +253 -0
  164. package/coverage/lcov-report/react/components/Header/HeaderMenuSignOutButton.js.html +271 -0
  165. package/coverage/lcov-report/{components/SideNav/Links/NavLinkToggle.jsx.html → react/components/Header/HeaderMobileButton.js.html} +58 -41
  166. package/coverage/lcov-report/react/components/Header/HeaderUI.jsx.html +189 -745
  167. package/coverage/lcov-report/react/components/Header/HelpIcon.jsx.html +181 -0
  168. package/coverage/lcov-report/react/components/Header/ImpersonatorBanner.jsx.html +331 -0
  169. package/coverage/lcov-report/react/components/Header/NavigationButtonIcon.jsx.html +18 -13
  170. package/coverage/lcov-report/react/components/Header/header.js.html +18 -4
  171. package/coverage/lcov-report/react/components/Header/hooks.js.html +283 -0
  172. package/coverage/lcov-report/react/components/Header/index.html +205 -35
  173. package/coverage/lcov-report/react/components/{Spinner/index.js.html → Header/utag-helpers.js.html} +26 -21
  174. package/coverage/lcov-report/react/components/Infotip/Infotip.jsx.html +53 -48
  175. package/coverage/lcov-report/{components/SideNav/Links/NavLinkContainer.jsx.html → react/components/Infotip/InfotipContent.jsx.html} +83 -60
  176. package/coverage/lcov-report/react/components/Infotip/InfotipIcon.jsx.html +37 -32
  177. package/coverage/lcov-report/react/components/Infotip/index.html +8 -3
  178. package/coverage/lcov-report/react/components/Infotip/index.js.html +8 -3
  179. package/coverage/lcov-report/react/components/{FlashNotification/FlashNotificationUI.jsx.html → Modal/LegacyModal.jsx.html} +89 -84
  180. package/coverage/lcov-report/react/components/Modal/Modal.jsx.html +505 -0
  181. package/coverage/lcov-report/react/components/Modal/index.html +52 -17
  182. package/coverage/lcov-report/react/components/Modal/index.jsx.html +38 -201
  183. package/coverage/lcov-report/react/components/{Tabs/tabs.js.html → NotificationBanner/CollapsedView.js.html} +61 -47
  184. package/coverage/lcov-report/{components/SideNav/Details/PracticeDetails.jsx.html → react/components/NotificationBanner/ExpandedView.js.html} +74 -57
  185. package/coverage/lcov-report/react/components/NotificationBanner/index.html +58 -23
  186. package/coverage/lcov-report/react/components/NotificationBanner/index.js.html +615 -43
  187. package/coverage/lcov-report/react/components/SanitizedContent/index.html +8 -3
  188. package/coverage/lcov-report/react/components/SanitizedContent/index.jsx.html +478 -53
  189. package/coverage/lcov-report/react/components/{Spinner → SessionDialog}/index.html +11 -6
  190. package/coverage/lcov-report/react/components/{FlashNotification/index.js.html → SessionDialog/sessionDialog.js.html} +35 -42
  191. package/coverage/lcov-report/react/components/SessionDialogUI.jsx.html +248 -255
  192. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +53 -18
  193. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/index.html +18 -13
  194. package/coverage/lcov-report/react/components/SideNav/Chart/ScoreChart.jsx.html +272 -402
  195. package/coverage/lcov-report/react/components/SideNav/Chart/index.html +28 -23
  196. package/coverage/lcov-report/react/components/SideNav/Chart/index.js.html +9 -4
  197. package/coverage/lcov-report/react/components/SideNav/Content/LevelOneContent.jsx.html +190 -521
  198. package/coverage/lcov-report/react/components/SideNav/Content/LevelTwoContent.jsx.html +23 -12
  199. package/coverage/lcov-report/{components/SideNav/Details → react/components/SideNav/Content/SelectRole}/index.html +42 -52
  200. package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/index.js.html +316 -0
  201. package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/utils.js.html +505 -0
  202. package/coverage/lcov-report/react/components/SideNav/Content/index.html +32 -27
  203. package/coverage/lcov-report/react/components/SideNav/Content/index.js.html +8 -3
  204. package/coverage/lcov-report/react/components/SideNav/Details/IndividualDetails.jsx.html +20 -24
  205. package/coverage/lcov-report/react/components/SideNav/Details/PracticeDetails.jsx.html +54 -37
  206. package/coverage/lcov-report/react/components/SideNav/Details/index.html +23 -18
  207. package/coverage/lcov-report/react/components/SideNav/Details/index.js.html +8 -3
  208. package/coverage/lcov-report/react/components/SideNav/Links/CmsSwitchLink.jsx.html +9 -4
  209. package/coverage/lcov-report/react/components/SideNav/Links/NavItemInline.jsx.html +8 -3
  210. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkContainer.jsx.html +56 -57
  211. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkDrawer.jsx.html +351 -142
  212. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkInline.jsx.html +60 -40
  213. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkToggle.jsx.html +9 -4
  214. package/coverage/lcov-report/react/components/SideNav/Links/index.html +44 -39
  215. package/coverage/lcov-report/react/components/SideNav/Links/index.js.html +8 -3
  216. package/coverage/lcov-report/react/components/SideNav/UI/SideNavUI.jsx.html +243 -433
  217. package/coverage/lcov-report/react/components/SideNav/UI/index.html +28 -23
  218. package/coverage/lcov-report/react/components/SideNav/UI/index.js.html +8 -3
  219. package/coverage/lcov-report/react/components/SideNav/helpers.js.html +958 -17
  220. package/coverage/lcov-report/react/components/SideNav/index.html +27 -22
  221. package/coverage/lcov-report/react/components/SideNav/index.js.html +8 -3
  222. package/coverage/lcov-report/react/components/Tooltip/Tooltip.jsx.html +70 -65
  223. package/coverage/lcov-report/react/components/Tooltip/index.html +8 -3
  224. package/coverage/lcov-report/react/components/Tooltip/index.js.html +8 -3
  225. package/coverage/lcov-report/react/components/Tooltip/position.js.html +57 -64
  226. package/coverage/lcov-report/{components/SideNav/AnimationGroup → react/components/hooks}/index.html +29 -24
  227. package/coverage/lcov-report/react/components/hooks/useGetConfig.js.html +310 -0
  228. package/coverage/lcov-report/react/components/index.html +10 -5
  229. package/coverage/lcov-report/react/index.html +20 -15
  230. package/coverage/lcov-report/react/index.js.html +29 -9
  231. package/coverage/lcov-report/react/lib/Chevron.jsx.html +181 -0
  232. package/coverage/lcov-report/react/lib/SvgComponents.jsx.html +195 -106
  233. package/coverage/lcov-report/react/lib/index.html +37 -17
  234. package/coverage/lcov-report/react/lib/svg-definitions.svg.html +57 -916
  235. package/coverage/lcov-report/react/session/index.html +32 -27
  236. package/coverage/lcov-report/react/session/index.js.html +8 -3
  237. package/coverage/lcov-report/react/session/logout.js.html +121 -17
  238. package/coverage/lcov-report/react/session/refresh.js.html +11 -6
  239. package/coverage/lcov-report/react/session/ttl.js.html +8 -3
  240. package/coverage/lcov-report/session/index.html +50 -45
  241. package/coverage/lcov-report/session/index.js.html +8 -3
  242. package/coverage/lcov-report/session/logout.js.html +144 -49
  243. package/coverage/lcov-report/session/refresh.js.html +41 -36
  244. package/coverage/lcov-report/session/ttl.js.html +34 -29
  245. package/coverage/lcov-report/sorter.js +26 -0
  246. package/coverage/lcov.info +2427 -1491
  247. package/dist/browser.js +1 -1
  248. package/dist/browser.js.LICENSE.txt +1 -7
  249. package/dist/browser.js.map +1 -1
  250. package/dist/index.js +1 -1
  251. package/dist/index.js.LICENSE.txt +1 -7
  252. package/dist/index.js.map +1 -1
  253. package/dist/react/index.js +1 -1
  254. package/dist/react/index.js.LICENSE.txt +16 -16
  255. package/dist/react/index.js.map +1 -1
  256. package/fonts/PublicSans-Black.ttf +0 -0
  257. package/fonts/PublicSans-BlackItalic.ttf +0 -0
  258. package/fonts/PublicSans-Bold.ttf +0 -0
  259. package/fonts/PublicSans-BoldItalic.ttf +0 -0
  260. package/fonts/PublicSans-ExtraBold.ttf +0 -0
  261. package/fonts/PublicSans-ExtraBoldItalic.ttf +0 -0
  262. package/fonts/PublicSans-ExtraLight.ttf +0 -0
  263. package/fonts/PublicSans-ExtraLightItalic.ttf +0 -0
  264. package/fonts/PublicSans-Italic.ttf +0 -0
  265. package/fonts/PublicSans-Light.ttf +0 -0
  266. package/fonts/PublicSans-LightItalic.ttf +0 -0
  267. package/fonts/PublicSans-Medium.ttf +0 -0
  268. package/fonts/PublicSans-MediumItalic.ttf +0 -0
  269. package/fonts/PublicSans-Regular.ttf +0 -0
  270. package/fonts/PublicSans-SemiBold.ttf +0 -0
  271. package/fonts/PublicSans-SemiBoldItalic.ttf +0 -0
  272. package/fonts/PublicSans-Thin.ttf +0 -0
  273. package/fonts/PublicSans-ThinItalic.ttf +0 -0
  274. package/images/icon-dot-gov.svg +1 -0
  275. package/images/icon-https.svg +1 -0
  276. package/images/icons/close-x.svg +6 -0
  277. package/images/icons/svg/arrow-down.svg +3 -0
  278. package/images/icons/svg/arrow-download.svg +1 -0
  279. package/images/icons/svg/arrow-right.svg +1 -0
  280. package/images/icons/svg/arrow-up.svg +3 -0
  281. package/images/icons/svg/block.svg +5 -0
  282. package/images/icons/svg/calendar.svg +1 -0
  283. package/images/icons/svg/check-circle.svg +5 -0
  284. package/images/icons/svg/checkmark.svg +7 -0
  285. package/images/icons/svg/chevron-down.svg +11 -0
  286. package/images/icons/svg/chevron-left.svg +12 -0
  287. package/images/icons/svg/chevron-right.svg +12 -0
  288. package/images/icons/svg/chevron-up.svg +12 -0
  289. package/images/icons/svg/clipboard.svg +1 -0
  290. package/images/icons/svg/close.svg +1 -0
  291. package/images/icons/svg/divide.svg +13 -0
  292. package/images/icons/svg/doctors-and-clinicians-preview.svg +10 -0
  293. package/images/icons/svg/download.svg +1 -0
  294. package/images/icons/svg/dropdown-arrow.svg +1 -0
  295. package/images/icons/svg/equals.svg +13 -0
  296. package/images/icons/svg/exclamation.svg +11 -0
  297. package/images/icons/svg/external.svg +1 -0
  298. package/images/icons/svg/file-download.svg +1 -0
  299. package/images/icons/svg/file-upload.svg +1 -0
  300. package/images/icons/svg/info.svg +20 -0
  301. package/images/icons/svg/manage-user-access.svg +8 -0
  302. package/images/icons/svg/multiply.svg +12 -0
  303. package/images/icons/svg/performance-feedback.svg +1 -0
  304. package/images/icons/svg/plus.svg +12 -0
  305. package/images/icons/svg/preview.svg +17 -0
  306. package/images/icons/svg/print.svg +1 -0
  307. package/images/icons/svg/registration.svg +8 -0
  308. package/images/icons/svg/reporting.svg +17 -0
  309. package/images/icons/svg/save-disk.svg +5 -0
  310. package/images/icons/svg/search.svg +1 -0
  311. package/images/icons/svg/subtract.svg +15 -0
  312. package/images/icons/svg/targeted-review.svg +15 -0
  313. package/images/icons/svg/tooltip-question.svg +1 -0
  314. package/images/icons/svg/trash.svg +1 -0
  315. package/images/icons/svg/upload.svg +1 -0
  316. package/images/us_flag_small.png +0 -0
  317. package/index.js +5 -0
  318. package/jest.config.js +138 -134
  319. package/lib/Chevron.jsx +32 -0
  320. package/lib/SvgComponents.jsx +197 -49
  321. package/package.json +62 -77
  322. package/session/logout.js +35 -2
  323. package/styles/_global.scss +63 -62
  324. package/styles/_main.scss +6 -0
  325. package/styles/_qpp-style.scss +0 -3
  326. package/styles/components/_accordion.scss +249 -246
  327. package/styles/components/_autocomplete.scss +0 -3
  328. package/styles/components/_modals.scss +9 -9
  329. package/styles/components/_spinner.scss +0 -2
  330. package/styles/components/_tables.scss +77 -67
  331. package/styles/components/_text.scss +102 -102
  332. package/styles/components/_variables.scss +12 -12
  333. package/styles/qppds/base/_backgrounds.scss +7 -0
  334. package/styles/qppds/base/_fonts.scss +24 -0
  335. package/styles/qppds/base/_icon.scss +31 -0
  336. package/styles/qppds/base/_layout.scss +5 -0
  337. package/styles/qppds/base/_typography.scss +78 -44
  338. package/styles/qppds/base/index.scss +4 -5
  339. package/styles/qppds/components/_alert.scss +101 -0
  340. package/styles/qppds/components/_breadcrumbs.scss +42 -6
  341. package/styles/qppds/components/_button.scss +129 -11
  342. package/styles/qppds/components/_card.scss +175 -0
  343. package/styles/qppds/components/_checkbox.scss +199 -0
  344. package/styles/qppds/components/_circular-loader.scss +47 -0
  345. package/styles/qppds/components/_details.scss +90 -0
  346. package/styles/qppds/components/_dropdown-menu.scss +125 -0
  347. package/styles/qppds/components/_dropdown.scss +7 -1
  348. package/styles/qppds/components/_footer.scss +606 -0
  349. package/styles/qppds/components/_gov-banner.scss +344 -0
  350. package/styles/qppds/components/_header.scss +913 -0
  351. package/styles/qppds/components/_link.scss +52 -0
  352. package/styles/qppds/components/_modal.scss +118 -0
  353. package/styles/qppds/components/_page-header.scss +65 -2
  354. package/styles/qppds/components/_pagination.scss +227 -0
  355. package/styles/qppds/components/_process-list.scss +104 -0
  356. package/styles/qppds/components/_radio-button.scss +184 -0
  357. package/styles/qppds/components/_search.scss +118 -0
  358. package/styles/{components → qppds/components}/_sidebar.scss +2 -0
  359. package/styles/qppds/components/_step-indicator.scss +190 -0
  360. package/styles/qppds/components/_table.scss +157 -0
  361. package/styles/qppds/components/_tabs.scss +197 -0
  362. package/styles/qppds/components/_text-input.scss +60 -0
  363. package/styles/qppds/components/index.scss +20 -0
  364. package/styles/{components → qppds/components}/sidebar/_links.scss +48 -1
  365. package/styles/qppds/components/sidebar/_select-role-dropdown.scss +21 -0
  366. package/styles/qppds/components/sidebar/_sidebar-animation.scss +125 -0
  367. package/styles/qppds/components/sidebar/_sidebar.scss +146 -0
  368. package/styles/{components → qppds/components}/sidebar/project-specific/_wi.scss +1 -37
  369. package/styles/qppds/settings/_functions.scss +3 -1
  370. package/styles/qppds/settings/mixins/_borders.scss +6 -0
  371. package/styles/qppds/settings/mixins/_focus.scss +28 -0
  372. package/styles/qppds/settings/mixins/_icons.scss +39 -4
  373. package/styles/qppds/settings/mixins/_index.scss +4 -0
  374. package/styles/qppds/settings/mixins/_layout.scss +46 -7
  375. package/styles/qppds/settings/mixins/_table.scss +91 -0
  376. package/styles/qppds/settings/mixins/_type.scss +89 -0
  377. package/styles/qppds/settings/variables/_color.scss +47 -1
  378. package/styles/qppds/settings/variables/_index.scss +2 -1
  379. package/styles/qppds/settings/variables/_layout.scss +34 -9
  380. package/styles/qppds/settings/variables/_type.scss +41 -0
  381. package/styles/qppds/settings/variables/_z-index.scss +8 -0
  382. package/styles/qppds/utilities/_background-color.scss +4 -0
  383. package/styles/qppds/utilities/_color.scss +28 -0
  384. package/styles/qppds/utilities/{_display-visability.scss → _display-visibility.scss} +8 -0
  385. package/styles/qppds/utilities/_flexbox.scss +113 -0
  386. package/styles/qppds/utilities/_font-family.scss +4 -0
  387. package/styles/qppds/utilities/_gap.scss +38 -0
  388. package/styles/qppds/utilities/_height.scss +79 -0
  389. package/styles/qppds/utilities/_list-style.scss +18 -0
  390. package/styles/qppds/utilities/_position.scss +24 -0
  391. package/styles/qppds/utilities/_text-align.scss +40 -0
  392. package/styles/qppds/utilities/_text-transform.scss +7 -0
  393. package/styles/qppds/utilities/_truncate.scss +5 -5
  394. package/styles/qppds/utilities/_vertical-align.scss +72 -0
  395. package/styles/qppds/utilities/_width.scss +38 -1
  396. package/styles/qppds/utilities/index.scss +8 -2
  397. package/styles/third-party/legacy-bootstrap/_dropdowns.scss +0 -1
  398. package/svgo.config.js +14 -0
  399. package/test/components/Accordion.test.js +4 -13
  400. package/test/components/ErrorUI.test.js +10 -46
  401. package/test/components/FooterUI.test.js +0 -30
  402. package/test/components/HeaderUI.test.js +33 -15
  403. package/test/components/Infotip.test.js +18 -12
  404. package/test/components/SessionDialogUI.test.js +55 -70
  405. package/test/components/SideNavUI.test.js +6 -13
  406. package/test-setup.js +1 -3
  407. package/webpack.config.js +29 -39
  408. package/webpack.config.react.js +7 -18
  409. package/.storybook/.babelrc +0 -4
  410. package/.storybook/main.js +0 -89
  411. package/.storybook/preview-head.html +0 -9
  412. package/.storybook/preview.js +0 -16
  413. package/components/Accordion/Accordion.stories.js +0 -20
  414. package/components/Breadcrumb/Breadcrumb.js +0 -58
  415. package/components/Breadcrumb/Breadcrumb.stories.js +0 -62
  416. package/components/Breadcrumb/LegacyBreadcrumb.js +0 -46
  417. package/components/Footer/Footer.stories.js +0 -22
  418. package/components/Footer/LegacyFooterUI.jsx +0 -194
  419. package/components/Header/Header.stories.js +0 -32
  420. package/components/InfoModal/InfoModal.stories.js +0 -98
  421. package/components/InfoModal/index.jsx +0 -104
  422. package/components/Infotip/Infotip.stories.js +0 -58
  423. package/components/NotificationBanner/NotificationBanner.stories.js +0 -24
  424. package/components/NotificationBanner/NotificationBannerUI.jsx +0 -282
  425. package/components/SideNav/SideNav.stories.js +0 -320
  426. package/components/Spinner/index.js +0 -9
  427. package/components/Tabs/TabsUI.jsx +0 -118
  428. package/components/Tabs/tabs.js +0 -36
  429. package/components/Tooltip/Tooltip.jsx +0 -88
  430. package/components/Tooltip/Tooltip.stories.js +0 -90
  431. package/components/Tooltip/index.js +0 -3
  432. package/components/Tooltip/position.js +0 -68
  433. package/components/UnwrappedSpinner/index.js +0 -8
  434. package/components/UnwrappedTabs/TabPanelUI.jsx +0 -16
  435. package/components/UnwrappedTabs/TabsUI.jsx +0 -82
  436. package/coverage/lcov-report/Accordion/index.html +0 -111
  437. package/coverage/lcov-report/Error/index.html +0 -126
  438. package/coverage/lcov-report/ScoreChart.jsx.html +0 -1025
  439. package/coverage/lcov-report/SideNav/Chart/ScoreChart.jsx.html +0 -1025
  440. package/coverage/lcov-report/components/NotificationBanner/NotificationBannerUI.jsx.html +0 -1010
  441. package/coverage/lcov-report/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +0 -131
  442. package/coverage/lcov-report/components/SideNav/Chart/index.js.html +0 -89
  443. package/coverage/lcov-report/components/SideNav/Content/LevelOneContent.jsx.html +0 -1007
  444. package/coverage/lcov-report/components/SideNav/Content/index.html +0 -141
  445. package/coverage/lcov-report/components/SideNav/Content/index.js.html +0 -92
  446. package/coverage/lcov-report/components/SideNav/Details/index.js.html +0 -92
  447. package/coverage/lcov-report/components/SideNav/Links/index.html +0 -201
  448. package/coverage/lcov-report/components/SideNav/UI/SideNavUI.jsx.html +0 -1298
  449. package/coverage/lcov-report/components/SideNav/UI/index.html +0 -126
  450. package/coverage/lcov-report/components/SideNav/UI/index.js.html +0 -89
  451. package/coverage/lcov-report/lib/svg-definitions.svg.html +0 -1319
  452. package/coverage/lcov-report/react/components/NotificationBanner/NotificationBannerUI.jsx.html +0 -926
  453. package/styles/components/_footer.scss +0 -593
  454. package/styles/components/_header.scss +0 -526
  455. package/styles/components/sidebar/_sidebar-animation.scss +0 -85
  456. package/styles/components/sidebar/_sidebar.scss +0 -141
  457. package/test/components/Tooltip.test.js +0 -147
  458. package/test/components/__snapshots__/Accordion.test.js.snap +0 -11439
  459. /package/styles/{components → qppds/components}/sidebar/_animations.scss +0 -0
  460. /package/styles/{components → qppds/components}/sidebar/_cms.scss +0 -0
  461. /package/styles/{components → qppds/components}/sidebar/_details.scss +0 -0
  462. /package/styles/{components → qppds/components}/sidebar/_sidebar-tooltip.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">30.56% </span>
26
+ <span class="strong">50% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>22/72</span>
28
+ <span class='fraction'>21/42</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">6.67% </span>
33
+ <span class="strong">10% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>4/60</span>
35
+ <span class='fraction'>4/40</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">29.41% </span>
40
+ <span class="strong">35.71% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>5/17</span>
42
+ <span class='fraction'>5/14</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">30.99% </span>
47
+ <span class="strong">50% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>22/71</span>
49
+ <span class='fraction'>21/42</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>
@@ -391,72 +397,7 @@
391
397
  <a name='L332'></a><a href='#L332'>332</a>
392
398
  <a name='L333'></a><a href='#L333'>333</a>
393
399
  <a name='L334'></a><a href='#L334'>334</a>
394
- <a name='L335'></a><a href='#L335'>335</a>
395
- <a name='L336'></a><a href='#L336'>336</a>
396
- <a name='L337'></a><a href='#L337'>337</a>
397
- <a name='L338'></a><a href='#L338'>338</a>
398
- <a name='L339'></a><a href='#L339'>339</a>
399
- <a name='L340'></a><a href='#L340'>340</a>
400
- <a name='L341'></a><a href='#L341'>341</a>
401
- <a name='L342'></a><a href='#L342'>342</a>
402
- <a name='L343'></a><a href='#L343'>343</a>
403
- <a name='L344'></a><a href='#L344'>344</a>
404
- <a name='L345'></a><a href='#L345'>345</a>
405
- <a name='L346'></a><a href='#L346'>346</a>
406
- <a name='L347'></a><a href='#L347'>347</a>
407
- <a name='L348'></a><a href='#L348'>348</a>
408
- <a name='L349'></a><a href='#L349'>349</a>
409
- <a name='L350'></a><a href='#L350'>350</a>
410
- <a name='L351'></a><a href='#L351'>351</a>
411
- <a name='L352'></a><a href='#L352'>352</a>
412
- <a name='L353'></a><a href='#L353'>353</a>
413
- <a name='L354'></a><a href='#L354'>354</a>
414
- <a name='L355'></a><a href='#L355'>355</a>
415
- <a name='L356'></a><a href='#L356'>356</a>
416
- <a name='L357'></a><a href='#L357'>357</a>
417
- <a name='L358'></a><a href='#L358'>358</a>
418
- <a name='L359'></a><a href='#L359'>359</a>
419
- <a name='L360'></a><a href='#L360'>360</a>
420
- <a name='L361'></a><a href='#L361'>361</a>
421
- <a name='L362'></a><a href='#L362'>362</a>
422
- <a name='L363'></a><a href='#L363'>363</a>
423
- <a name='L364'></a><a href='#L364'>364</a>
424
- <a name='L365'></a><a href='#L365'>365</a>
425
- <a name='L366'></a><a href='#L366'>366</a>
426
- <a name='L367'></a><a href='#L367'>367</a>
427
- <a name='L368'></a><a href='#L368'>368</a>
428
- <a name='L369'></a><a href='#L369'>369</a>
429
- <a name='L370'></a><a href='#L370'>370</a>
430
- <a name='L371'></a><a href='#L371'>371</a>
431
- <a name='L372'></a><a href='#L372'>372</a>
432
- <a name='L373'></a><a href='#L373'>373</a>
433
- <a name='L374'></a><a href='#L374'>374</a>
434
- <a name='L375'></a><a href='#L375'>375</a>
435
- <a name='L376'></a><a href='#L376'>376</a>
436
- <a name='L377'></a><a href='#L377'>377</a>
437
- <a name='L378'></a><a href='#L378'>378</a>
438
- <a name='L379'></a><a href='#L379'>379</a>
439
- <a name='L380'></a><a href='#L380'>380</a>
440
- <a name='L381'></a><a href='#L381'>381</a>
441
- <a name='L382'></a><a href='#L382'>382</a>
442
- <a name='L383'></a><a href='#L383'>383</a>
443
- <a name='L384'></a><a href='#L384'>384</a>
444
- <a name='L385'></a><a href='#L385'>385</a>
445
- <a name='L386'></a><a href='#L386'>386</a>
446
- <a name='L387'></a><a href='#L387'>387</a>
447
- <a name='L388'></a><a href='#L388'>388</a>
448
- <a name='L389'></a><a href='#L389'>389</a>
449
- <a name='L390'></a><a href='#L390'>390</a>
450
- <a name='L391'></a><a href='#L391'>391</a>
451
- <a name='L392'></a><a href='#L392'>392</a>
452
- <a name='L393'></a><a href='#L393'>393</a>
453
- <a name='L394'></a><a href='#L394'>394</a>
454
- <a name='L395'></a><a href='#L395'>395</a>
455
- <a name='L396'></a><a href='#L396'>396</a>
456
- <a name='L397'></a><a href='#L397'>397</a>
457
- <a name='L398'></a><a href='#L398'>398</a>
458
- <a name='L399'></a><a href='#L399'>399</a>
459
- <a name='L400'></a><a href='#L400'>400</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
400
+ <a name='L335'></a><a href='#L335'>335</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
460
401
  <span class="cline-any cline-neutral">&nbsp;</span>
461
402
  <span class="cline-any cline-neutral">&nbsp;</span>
462
403
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -474,93 +415,83 @@
474
415
  <span class="cline-any cline-neutral">&nbsp;</span>
475
416
  <span class="cline-any cline-neutral">&nbsp;</span>
476
417
  <span class="cline-any cline-neutral">&nbsp;</span>
477
- <span class="cline-any cline-yes">1x</span>
478
- <span class="cline-any cline-yes">1x</span>
479
418
  <span class="cline-any cline-neutral">&nbsp;</span>
419
+ <span class="cline-any cline-yes">2x</span>
480
420
  <span class="cline-any cline-neutral">&nbsp;</span>
481
421
  <span class="cline-any cline-neutral">&nbsp;</span>
482
422
  <span class="cline-any cline-neutral">&nbsp;</span>
483
423
  <span class="cline-any cline-neutral">&nbsp;</span>
484
- <span class="cline-any cline-yes">1x</span>
485
424
  <span class="cline-any cline-neutral">&nbsp;</span>
486
425
  <span class="cline-any cline-neutral">&nbsp;</span>
487
- <span class="cline-any cline-yes">1x</span>
488
- <span class="cline-any cline-yes">1x</span>
489
- <span class="cline-any cline-yes">1x</span>
490
- <span class="cline-any cline-yes">1x</span>
491
- <span class="cline-any cline-yes">1x</span>
492
- <span class="cline-any cline-yes">1x</span>
493
426
  <span class="cline-any cline-neutral">&nbsp;</span>
494
427
  <span class="cline-any cline-neutral">&nbsp;</span>
495
428
  <span class="cline-any cline-neutral">&nbsp;</span>
496
- <span class="cline-any cline-yes">1x</span>
497
- <span class="cline-any cline-no">&nbsp;</span>
498
- <span class="cline-any cline-neutral">&nbsp;</span>
499
429
  <span class="cline-any cline-neutral">&nbsp;</span>
500
430
  <span class="cline-any cline-neutral">&nbsp;</span>
501
431
  <span class="cline-any cline-neutral">&nbsp;</span>
502
- <span class="cline-any cline-no">&nbsp;</span>
503
- <span class="cline-any cline-neutral">&nbsp;</span>
432
+ <span class="cline-any cline-yes">1x</span>
433
+ <span class="cline-any cline-yes">1x</span>
434
+ <span class="cline-any cline-yes">1x</span>
504
435
  <span class="cline-any cline-neutral">&nbsp;</span>
436
+ <span class="cline-any cline-yes">1x</span>
505
437
  <span class="cline-any cline-neutral">&nbsp;</span>
438
+ <span class="cline-any cline-yes">1x</span>
439
+ <span class="cline-any cline-no">&nbsp;</span>
440
+ <span class="cline-any cline-no">&nbsp;</span>
506
441
  <span class="cline-any cline-no">&nbsp;</span>
507
442
  <span class="cline-any cline-neutral">&nbsp;</span>
508
443
  <span class="cline-any cline-neutral">&nbsp;</span>
509
444
  <span class="cline-any cline-neutral">&nbsp;</span>
510
- <span class="cline-any cline-neutral">&nbsp;</span>
445
+ <span class="cline-any cline-yes">1x</span>
511
446
  <span class="cline-any cline-no">&nbsp;</span>
512
- <span class="cline-any cline-neutral">&nbsp;</span>
513
447
  <span class="cline-any cline-no">&nbsp;</span>
514
448
  <span class="cline-any cline-no">&nbsp;</span>
515
449
  <span class="cline-any cline-neutral">&nbsp;</span>
516
450
  <span class="cline-any cline-neutral">&nbsp;</span>
517
- <span class="cline-any cline-no">&nbsp;</span>
451
+ <span class="cline-any cline-neutral">&nbsp;</span>
452
+ <span class="cline-any cline-yes">1x</span>
518
453
  <span class="cline-any cline-no">&nbsp;</span>
519
454
  <span class="cline-any cline-neutral">&nbsp;</span>
520
455
  <span class="cline-any cline-neutral">&nbsp;</span>
521
- <span class="cline-any cline-no">&nbsp;</span>
522
- <span class="cline-any cline-no">&nbsp;</span>
456
+ <span class="cline-any cline-yes">1x</span>
457
+ <span class="cline-any cline-yes">1x</span>
523
458
  <span class="cline-any cline-neutral">&nbsp;</span>
524
459
  <span class="cline-any cline-neutral">&nbsp;</span>
525
460
  <span class="cline-any cline-neutral">&nbsp;</span>
526
461
  <span class="cline-any cline-neutral">&nbsp;</span>
527
- <span class="cline-any cline-no">&nbsp;</span>
528
462
  <span class="cline-any cline-neutral">&nbsp;</span>
529
463
  <span class="cline-any cline-neutral">&nbsp;</span>
530
464
  <span class="cline-any cline-neutral">&nbsp;</span>
531
- <span class="cline-any cline-no">&nbsp;</span>
532
- <span class="cline-any cline-no">&nbsp;</span>
533
- <span class="cline-any cline-no">&nbsp;</span>
534
465
  <span class="cline-any cline-neutral">&nbsp;</span>
535
466
  <span class="cline-any cline-neutral">&nbsp;</span>
536
467
  <span class="cline-any cline-neutral">&nbsp;</span>
537
468
  <span class="cline-any cline-neutral">&nbsp;</span>
538
- <span class="cline-any cline-no">&nbsp;</span>
539
- <span class="cline-any cline-no">&nbsp;</span>
540
- <span class="cline-any cline-no">&nbsp;</span>
541
469
  <span class="cline-any cline-neutral">&nbsp;</span>
542
470
  <span class="cline-any cline-neutral">&nbsp;</span>
543
471
  <span class="cline-any cline-neutral">&nbsp;</span>
544
472
  <span class="cline-any cline-neutral">&nbsp;</span>
545
- <span class="cline-any cline-yes">1x</span>
546
473
  <span class="cline-any cline-neutral">&nbsp;</span>
547
474
  <span class="cline-any cline-neutral">&nbsp;</span>
548
475
  <span class="cline-any cline-neutral">&nbsp;</span>
549
476
  <span class="cline-any cline-neutral">&nbsp;</span>
550
- <span class="cline-any cline-no">&nbsp;</span>
477
+ <span class="cline-any cline-yes">1x</span>
551
478
  <span class="cline-any cline-neutral">&nbsp;</span>
552
479
  <span class="cline-any cline-no">&nbsp;</span>
553
480
  <span class="cline-any cline-no">&nbsp;</span>
554
481
  <span class="cline-any cline-no">&nbsp;</span>
482
+ <span class="cline-any cline-neutral">&nbsp;</span>
555
483
  <span class="cline-any cline-no">&nbsp;</span>
556
484
  <span class="cline-any cline-no">&nbsp;</span>
557
- <span class="cline-any cline-neutral">&nbsp;</span>
558
485
  <span class="cline-any cline-no">&nbsp;</span>
559
486
  <span class="cline-any cline-neutral">&nbsp;</span>
560
487
  <span class="cline-any cline-neutral">&nbsp;</span>
561
488
  <span class="cline-any cline-no">&nbsp;</span>
489
+ <span class="cline-any cline-no">&nbsp;</span>
562
490
  <span class="cline-any cline-neutral">&nbsp;</span>
563
491
  <span class="cline-any cline-neutral">&nbsp;</span>
492
+ <span class="cline-any cline-no">&nbsp;</span>
493
+ <span class="cline-any cline-no">&nbsp;</span>
494
+ <span class="cline-any cline-no">&nbsp;</span>
564
495
  <span class="cline-any cline-neutral">&nbsp;</span>
565
496
  <span class="cline-any cline-neutral">&nbsp;</span>
566
497
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -578,18 +509,6 @@
578
509
  <span class="cline-any cline-neutral">&nbsp;</span>
579
510
  <span class="cline-any cline-neutral">&nbsp;</span>
580
511
  <span class="cline-any cline-neutral">&nbsp;</span>
581
- <span class="cline-any cline-yes">1x</span>
582
- <span class="cline-any cline-neutral">&nbsp;</span>
583
- <span class="cline-any cline-yes">1x</span>
584
- <span class="cline-any cline-yes">1x</span>
585
- <span class="cline-any cline-neutral">&nbsp;</span>
586
- <span class="cline-any cline-yes">1x</span>
587
- <span class="cline-any cline-neutral">&nbsp;</span>
588
- <span class="cline-any cline-neutral">&nbsp;</span>
589
- <span class="cline-any cline-yes">1x</span>
590
- <span class="cline-any cline-neutral">&nbsp;</span>
591
- <span class="cline-any cline-neutral">&nbsp;</span>
592
- <span class="cline-any cline-neutral">&nbsp;</span>
593
512
  <span class="cline-any cline-neutral">&nbsp;</span>
594
513
  <span class="cline-any cline-neutral">&nbsp;</span>
595
514
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -605,7 +524,6 @@
605
524
  <span class="cline-any cline-neutral">&nbsp;</span>
606
525
  <span class="cline-any cline-neutral">&nbsp;</span>
607
526
  <span class="cline-any cline-neutral">&nbsp;</span>
608
- <span class="cline-any cline-no">&nbsp;</span>
609
527
  <span class="cline-any cline-neutral">&nbsp;</span>
610
528
  <span class="cline-any cline-neutral">&nbsp;</span>
611
529
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -618,35 +536,23 @@
618
536
  <span class="cline-any cline-neutral">&nbsp;</span>
619
537
  <span class="cline-any cline-neutral">&nbsp;</span>
620
538
  <span class="cline-any cline-neutral">&nbsp;</span>
621
- <span class="cline-any cline-no">&nbsp;</span>
622
- <span class="cline-any cline-no">&nbsp;</span>
623
539
  <span class="cline-any cline-neutral">&nbsp;</span>
624
540
  <span class="cline-any cline-neutral">&nbsp;</span>
625
541
  <span class="cline-any cline-neutral">&nbsp;</span>
626
- <span class="cline-any cline-no">&nbsp;</span>
627
542
  <span class="cline-any cline-neutral">&nbsp;</span>
628
543
  <span class="cline-any cline-neutral">&nbsp;</span>
629
544
  <span class="cline-any cline-neutral">&nbsp;</span>
630
545
  <span class="cline-any cline-neutral">&nbsp;</span>
631
546
  <span class="cline-any cline-neutral">&nbsp;</span>
632
547
  <span class="cline-any cline-neutral">&nbsp;</span>
633
- <span class="cline-any cline-no">&nbsp;</span>
634
- <span class="cline-any cline-no">&nbsp;</span>
635
- <span class="cline-any cline-no">&nbsp;</span>
636
- <span class="cline-any cline-no">&nbsp;</span>
637
548
  <span class="cline-any cline-neutral">&nbsp;</span>
638
- <span class="cline-any cline-no">&nbsp;</span>
639
- <span class="cline-any cline-no">&nbsp;</span>
640
549
  <span class="cline-any cline-neutral">&nbsp;</span>
641
- <span class="cline-any cline-no">&nbsp;</span>
642
550
  <span class="cline-any cline-neutral">&nbsp;</span>
643
551
  <span class="cline-any cline-neutral">&nbsp;</span>
644
552
  <span class="cline-any cline-neutral">&nbsp;</span>
645
553
  <span class="cline-any cline-neutral">&nbsp;</span>
646
554
  <span class="cline-any cline-neutral">&nbsp;</span>
647
- <span class="cline-any cline-no">&nbsp;</span>
648
555
  <span class="cline-any cline-neutral">&nbsp;</span>
649
- <span class="cline-any cline-no">&nbsp;</span>
650
556
  <span class="cline-any cline-neutral">&nbsp;</span>
651
557
  <span class="cline-any cline-neutral">&nbsp;</span>
652
558
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -660,7 +566,6 @@
660
566
  <span class="cline-any cline-neutral">&nbsp;</span>
661
567
  <span class="cline-any cline-neutral">&nbsp;</span>
662
568
  <span class="cline-any cline-neutral">&nbsp;</span>
663
- <span class="cline-any cline-no">&nbsp;</span>
664
569
  <span class="cline-any cline-neutral">&nbsp;</span>
665
570
  <span class="cline-any cline-neutral">&nbsp;</span>
666
571
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -674,7 +579,6 @@
674
579
  <span class="cline-any cline-neutral">&nbsp;</span>
675
580
  <span class="cline-any cline-neutral">&nbsp;</span>
676
581
  <span class="cline-any cline-neutral">&nbsp;</span>
677
- <span class="cline-any cline-no">&nbsp;</span>
678
582
  <span class="cline-any cline-neutral">&nbsp;</span>
679
583
  <span class="cline-any cline-neutral">&nbsp;</span>
680
584
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -690,7 +594,6 @@
690
594
  <span class="cline-any cline-neutral">&nbsp;</span>
691
595
  <span class="cline-any cline-neutral">&nbsp;</span>
692
596
  <span class="cline-any cline-neutral">&nbsp;</span>
693
- <span class="cline-any cline-no">&nbsp;</span>
694
597
  <span class="cline-any cline-neutral">&nbsp;</span>
695
598
  <span class="cline-any cline-neutral">&nbsp;</span>
696
599
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -699,7 +602,6 @@
699
602
  <span class="cline-any cline-neutral">&nbsp;</span>
700
603
  <span class="cline-any cline-neutral">&nbsp;</span>
701
604
  <span class="cline-any cline-neutral">&nbsp;</span>
702
- <span class="cline-any cline-no">&nbsp;</span>
703
605
  <span class="cline-any cline-neutral">&nbsp;</span>
704
606
  <span class="cline-any cline-neutral">&nbsp;</span>
705
607
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -716,7 +618,6 @@
716
618
  <span class="cline-any cline-neutral">&nbsp;</span>
717
619
  <span class="cline-any cline-neutral">&nbsp;</span>
718
620
  <span class="cline-any cline-neutral">&nbsp;</span>
719
- <span class="cline-any cline-no">&nbsp;</span>
720
621
  <span class="cline-any cline-neutral">&nbsp;</span>
721
622
  <span class="cline-any cline-neutral">&nbsp;</span>
722
623
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -726,15 +627,6 @@
726
627
  <span class="cline-any cline-neutral">&nbsp;</span>
727
628
  <span class="cline-any cline-neutral">&nbsp;</span>
728
629
  <span class="cline-any cline-no">&nbsp;</span>
729
- <span class="cline-any cline-neutral">&nbsp;</span>
730
- <span class="cline-any cline-neutral">&nbsp;</span>
731
- <span class="cline-any cline-neutral">&nbsp;</span>
732
- <span class="cline-any cline-neutral">&nbsp;</span>
733
- <span class="cline-any cline-neutral">&nbsp;</span>
734
- <span class="cline-any cline-neutral">&nbsp;</span>
735
- <span class="cline-any cline-neutral">&nbsp;</span>
736
- <span class="cline-any cline-neutral">&nbsp;</span>
737
- <span class="cline-any cline-neutral">&nbsp;</span>
738
630
  <span class="cline-any cline-no">&nbsp;</span>
739
631
  <span class="cline-any cline-neutral">&nbsp;</span>
740
632
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -745,52 +637,36 @@
745
637
  <span class="cline-any cline-neutral">&nbsp;</span>
746
638
  <span class="cline-any cline-neutral">&nbsp;</span>
747
639
  <span class="cline-any cline-neutral">&nbsp;</span>
748
- <span class="cline-any cline-no">&nbsp;</span>
749
- <span class="cline-any cline-neutral">&nbsp;</span>
750
- <span class="cline-any cline-neutral">&nbsp;</span>
751
- <span class="cline-any cline-neutral">&nbsp;</span>
752
- <span class="cline-any cline-neutral">&nbsp;</span>
753
- <span class="cline-any cline-neutral">&nbsp;</span>
754
- <span class="cline-any cline-neutral">&nbsp;</span>
755
640
  <span class="cline-any cline-neutral">&nbsp;</span>
756
641
  <span class="cline-any cline-neutral">&nbsp;</span>
757
- <span class="cline-any cline-neutral">&nbsp;</span>
758
- <span class="cline-any cline-neutral">&nbsp;</span>
759
- <span class="cline-any cline-neutral">&nbsp;</span>
760
- <span class="cline-any cline-neutral">&nbsp;</span>
761
- <span class="cline-any cline-neutral">&nbsp;</span>
762
- <span class="cline-any cline-neutral">&nbsp;</span>
763
- <span class="cline-any cline-neutral">&nbsp;</span>
764
- <span class="cline-any cline-no">&nbsp;</span>
765
642
  <span class="cline-any cline-no">&nbsp;</span>
766
643
  <span class="cline-any cline-neutral">&nbsp;</span>
767
644
  <span class="cline-any cline-neutral">&nbsp;</span>
768
645
  <span class="cline-any cline-neutral">&nbsp;</span>
646
+ <span class="cline-any cline-yes">1x</span>
769
647
  <span class="cline-any cline-neutral">&nbsp;</span>
770
648
  <span class="cline-any cline-neutral">&nbsp;</span>
771
649
  <span class="cline-any cline-neutral">&nbsp;</span>
772
650
  <span class="cline-any cline-neutral">&nbsp;</span>
773
651
  <span class="cline-any cline-neutral">&nbsp;</span>
774
652
  <span class="cline-any cline-neutral">&nbsp;</span>
653
+ <span class="cline-any cline-yes">1x</span>
654
+ <span class="cline-any cline-yes">1x</span>
775
655
  <span class="cline-any cline-neutral">&nbsp;</span>
776
656
  <span class="cline-any cline-neutral">&nbsp;</span>
657
+ <span class="cline-any cline-yes">1x</span>
658
+ <span class="cline-any cline-yes">1x</span>
777
659
  <span class="cline-any cline-neutral">&nbsp;</span>
778
660
  <span class="cline-any cline-neutral">&nbsp;</span>
779
- <span class="cline-any cline-no">&nbsp;</span>
780
- <span class="cline-any cline-neutral">&nbsp;</span>
781
- <span class="cline-any cline-neutral">&nbsp;</span>
782
- <span class="cline-any cline-neutral">&nbsp;</span>
783
- <span class="cline-any cline-neutral">&nbsp;</span>
784
- <span class="cline-any cline-yes">1x</span>
785
661
  <span class="cline-any cline-yes">1x</span>
786
662
  <span class="cline-any cline-yes">1x</span>
787
663
  <span class="cline-any cline-neutral">&nbsp;</span>
788
664
  <span class="cline-any cline-neutral">&nbsp;</span>
665
+ <span class="cline-any cline-yes">1x</span>
789
666
  <span class="cline-any cline-neutral">&nbsp;</span>
790
667
  <span class="cline-any cline-neutral">&nbsp;</span>
791
668
  <span class="cline-any cline-neutral">&nbsp;</span>
792
669
  <span class="cline-any cline-neutral">&nbsp;</span>
793
- <span class="cline-any cline-yes">1x</span>
794
670
  <span class="cline-any cline-neutral">&nbsp;</span>
795
671
  <span class="cline-any cline-neutral">&nbsp;</span>
796
672
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -805,12 +681,12 @@
805
681
  <span class="cline-any cline-neutral">&nbsp;</span>
806
682
  <span class="cline-any cline-neutral">&nbsp;</span>
807
683
  <span class="cline-any cline-neutral">&nbsp;</span>
684
+ <span class="cline-any cline-yes">2x</span>
808
685
  <span class="cline-any cline-neutral">&nbsp;</span>
809
686
  <span class="cline-any cline-neutral">&nbsp;</span>
810
687
  <span class="cline-any cline-neutral">&nbsp;</span>
811
688
  <span class="cline-any cline-neutral">&nbsp;</span>
812
689
  <span class="cline-any cline-neutral">&nbsp;</span>
813
- <span class="cline-any cline-yes">2x</span>
814
690
  <span class="cline-any cline-neutral">&nbsp;</span>
815
691
  <span class="cline-any cline-neutral">&nbsp;</span>
816
692
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -827,13 +703,13 @@
827
703
  <span class="cline-any cline-neutral">&nbsp;</span>
828
704
  <span class="cline-any cline-neutral">&nbsp;</span>
829
705
  <span class="cline-any cline-neutral">&nbsp;</span>
706
+ <span class="cline-any cline-yes">2x</span>
830
707
  <span class="cline-any cline-neutral">&nbsp;</span>
831
708
  <span class="cline-any cline-neutral">&nbsp;</span>
832
709
  <span class="cline-any cline-neutral">&nbsp;</span>
833
710
  <span class="cline-any cline-neutral">&nbsp;</span>
834
711
  <span class="cline-any cline-neutral">&nbsp;</span>
835
712
  <span class="cline-any cline-neutral">&nbsp;</span>
836
- <span class="cline-any cline-yes">2x</span>
837
713
  <span class="cline-any cline-neutral">&nbsp;</span>
838
714
  <span class="cline-any cline-neutral">&nbsp;</span>
839
715
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -855,8 +731,10 @@
855
731
  <span class="cline-any cline-neutral">&nbsp;</span>
856
732
  <span class="cline-any cline-neutral">&nbsp;</span>
857
733
  <span class="cline-any cline-neutral">&nbsp;</span>
858
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { Component } from 'react';
734
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { useState, useEffect, useRef } from 'react';
859
735
  import PropTypes from 'prop-types';
736
+ &nbsp;
737
+ import { withGetConfig } from '../../hooks/useGetConfig';
860
738
  import { LevelOneContent, LevelTwoContent } from '../Content';
861
739
  import {
862
740
  NavLinkContainer,
@@ -866,190 +744,108 @@ import {
866
744
  } from '../Links';
867
745
  import AnimationGroup from '../AnimationGroup/AnimationGroup';
868
746
  import { PracticeDetails, IndividualDetails } from '../Details';
869
- import { ScoreChart } from '../Chart';
747
+ import ScoreChart from '../Chart';
870
748
  import SanitizedContent from '../../SanitizedContent';
871
749
  import * as SvgComponents from '../../../lib/SvgComponents.jsx';
872
750
  import CmsSwitchLink from '../Links/CmsSwitchLink';
751
+ import defaultContent from './default-content';
873
752
  &nbsp;
874
- export default class SideNavUI extends Component {
875
- constructor(props) {
876
- super(props);
877
- this.state = {
878
- isExpanded: props.isExpanded,
879
- currentLevel: props.currentLevel,
880
- linksTopPosition: 0,
881
- items: props.items,
882
- };
883
- this.keys = {
884
- ESC: 27,
885
- };
886
- this._toggleExpanded = this.toggleExpanded.bind(this);
887
- this._expand = this.expand.bind(this);
888
- this._collapseRef = this.collapseRef.bind(this);
889
- this._getDynamicContent = this.getDynamicContent.bind(this);
890
- this._getLevelContent = this.getLevelContent.bind(this);
891
- this._setLinksTopPosition = this.setLinksTopPosition.bind(this);
892
- }
753
+ const SideNavUI = ({
754
+ chartData,
755
+ config,
756
+ currentLevel,
757
+ isAltStyle,
758
+ isExpanded,
759
+ items,
760
+ onCollapsed,
761
+ onExpanded,
762
+ performanceYear,
763
+ showReportingLinks,
764
+ result,
765
+ }) =&gt; {
766
+ const [isExpandedState, setIsExpandedState] = useState(isExpanded);
767
+ const [itemsState, setItemsState] = useState(items);
768
+ const [currentLevelState, setCurrentLevelState] = useState(currentLevel);
893
769
  &nbsp;
894
- componentDidMount() {
895
- setTimeout(<span class="fstat-no" title="function not covered" >()</span> =&gt; {
896
- <span class="cstat-no" title="statement not covered" > this._setLinksTopPosition();</span>
897
- }, 0);
898
- }
770
+ const collapseRef = useRef(null);
899
771
  &nbsp;
900
- <span class="fstat-no" title="function not covered" > co</span>mponentDidUpdate(prevProps, prevState) {
901
- <span class="cstat-no" title="statement not covered" > if (</span>
902
- prevState.items !== this.state.items ||
903
- prevProps.currentLevel !== this.state.currentLevel
904
- ) {
905
- <span class="cstat-no" title="statement not covered" > this._setLinksTopPosition();</span>
772
+ const expand = <span class="fstat-no" title="function not covered" >()</span> =&gt; {
773
+ <span class="cstat-no" title="statement not covered" > setIsExpandedState(true);</span>
774
+ <span class="cstat-no" title="statement not covered" > if (onExpanded) {</span>
775
+ <span class="cstat-no" title="statement not covered" > onExpanded();</span>
906
776
  }
907
- }
908
- &nbsp;
909
- <span class="fstat-no" title="function not covered" > UN</span>SAFE_componentWillReceiveProps(nextProps) {
910
- const { isExpanded, currentLevel, items } = <span class="cstat-no" title="statement not covered" >this.state;</span>
777
+ };
911
778
  &nbsp;
912
- <span class="cstat-no" title="statement not covered" > if (nextProps.isExpanded !== isExpanded) {</span>
913
- <span class="cstat-no" title="statement not covered" > this.setState({ isExpanded: nextProps.isExpanded });</span>
779
+ const collapse = <span class="fstat-no" title="function not covered" >()</span> =&gt; {
780
+ <span class="cstat-no" title="statement not covered" > setIsExpandedState(false);</span>
781
+ <span class="cstat-no" title="statement not covered" > if (onCollapsed) {</span>
782
+ <span class="cstat-no" title="statement not covered" > onCollapsed();</span>
914
783
  }
784
+ };
915
785
  &nbsp;
916
- <span class="cstat-no" title="statement not covered" > if (nextProps.currentLevel !== currentLevel) {</span>
917
- <span class="cstat-no" title="statement not covered" > this.setState({ currentLevel: nextProps.currentLevel });</span>
918
- }
786
+ const toggleExpanded = <span class="fstat-no" title="function not covered" >()</span> =&gt; {
787
+ <span class="cstat-no" title="statement not covered" > isExpandedState ? collapse() : expand();</span>
788
+ };
919
789
  &nbsp;
920
- <span class="cstat-no" title="statement not covered" > if (JSON.stringify(nextProps.items) !== JSON.stringify(items)) {</span>
921
- <span class="cstat-no" title="statement not covered" > this.setState({ items: nextProps.items });</span>
922
- }
923
- }
924
- &nbsp;
925
- <span class="fstat-no" title="function not covered" > to</span>ggleExpanded() {
926
- <span class="cstat-no" title="statement not covered" > this.state.isExpanded ? this.collapse() : this.expand();</span>
927
- }
928
- &nbsp;
929
- <span class="fstat-no" title="function not covered" > ex</span>pand() {
930
- <span class="cstat-no" title="statement not covered" > this.setState({ isExpanded: true });</span>
931
- <span class="cstat-no" title="statement not covered" > if (this.props.onExpanded) {</span>
932
- <span class="cstat-no" title="statement not covered" > this.props.onExpanded();</span>
933
- }
934
- }
935
- &nbsp;
936
- <span class="fstat-no" title="function not covered" > co</span>llapse() {
937
- <span class="cstat-no" title="statement not covered" > this.setState({ isExpanded: false });</span>
938
- <span class="cstat-no" title="statement not covered" > if (this.props.onCollapsed) {</span>
939
- <span class="cstat-no" title="statement not covered" > this.props.onCollapsed();</span>
940
- }
941
- }
942
- &nbsp;
943
- collapseRef(ref) {
944
- this.collapseToggle = ref;
945
- }
946
- &nbsp;
947
- <span class="fstat-no" title="function not covered" > se</span>tLinksTopPosition() {
948
- // loop though children of sidebar-content and add heights, stopping at &lt;nav&gt;
949
- const content = <span class="cstat-no" title="statement not covered" >document.querySelector('#qppSidebar .sidebar-content');</span>
950
- &nbsp;
951
- <span class="cstat-no" title="statement not covered" > if (content) {</span>
952
- let height = <span class="cstat-no" title="statement not covered" >0;</span>
953
- <span class="cstat-no" title="statement not covered" > for (let i = <span class="cstat-no" title="statement not covered" >0;</span> i &lt; content.children.length; i++) {</span>
954
- <span class="cstat-no" title="statement not covered" > if (content.children[i].classList.contains('animation-flat')) {</span>
955
- <span class="cstat-no" title="statement not covered" > break;</span>
956
- }
957
- <span class="cstat-no" title="statement not covered" > height = height + content.children[i].offsetHeight;</span>
958
- }
959
- &nbsp;
960
- <span class="cstat-no" title="statement not covered" > this.setState({ linksTopPosition: height });</span>
961
- }
962
- }
963
- &nbsp;
964
- getLevelContent() {
965
- const {
966
- chartData,
967
- config,
968
- showDevPreDfpLink,
969
- showPhysicianCompareLink,
970
- showFacilityBasedPreviewLink,
971
- showApmIncentivePaymentLink,
972
- showReportingLinks,
973
- performanceYear,
974
- feedbackPerformanceYear,
975
- fbpPerformanceYear,
976
- showSelfNomination,
977
- showReportsPortal,
978
- showExceptionsApplicationLink,
979
- showTargetedReviewLink,
980
- } = this.props;
981
- &nbsp;
982
- const { isExpanded, currentLevel, linksTopPosition } = this.state;
983
- const style = { top: isExpanded ? `${linksTopPosition}px` : <span class="branch-1 cbranch-no" title="branch not covered" >0 </span>};
984
- &nbsp;
985
- switch (currentLevel) {
986
- <span class="branch-0 cbranch-no" title="branch not covered" > default:</span>
987
- case 1: // Home
988
- return (
989
- &lt;LevelOneContent
990
- performanceYear={performanceYear}
991
- feedbackPerformanceYear={feedbackPerformanceYear}
992
- fbpPerformanceYear={fbpPerformanceYear}
993
- isExpanded={isExpanded}
994
- config={config}
995
- showDevPreDfpLink={showDevPreDfpLink}
996
- showPhysicianCompareLink={showPhysicianCompareLink}
997
- showFacilityBasedPreviewLink={showFacilityBasedPreviewLink}
998
- showApmIncentivePaymentLink={showApmIncentivePaymentLink}
999
- showSelfNomination={showSelfNomination}
1000
- showReportsPortal={showReportsPortal}
1001
- style={style}
1002
- showExceptionsApplicationLink={showExceptionsApplicationLink}
1003
- showTargetedReviewLink={showTargetedReviewLink}
1004
- /&gt;
1005
- );
1006
- <span class="branch-2 cbranch-no" title="branch not covered" > case 2: // Group Submission</span>
1007
- <span class="cstat-no" title="statement not covered" > return (</span>
790
+ const getLevelContent = () =&gt; {
791
+ return (
792
+ {
793
+ 2: (
1008
794
  &lt;LevelTwoContent
1009
795
  showReportingLinks={showReportingLinks}
1010
- isExpanded={isExpanded}
796
+ isExpanded={isExpandedState}
1011
797
  chartData={chartData}
1012
798
  config={config}
1013
- style={style}
1014
799
  /&gt;
1015
- );
1016
- }
1017
- }
800
+ ),
801
+ }[currentLevelState] || (
802
+ &lt;LevelOneContent
803
+ levelOneContent={result?.content}
804
+ isExpanded={isExpandedState}
805
+ config={config}
806
+ /&gt;
807
+ )
808
+ );
809
+ };
1018
810
  &nbsp;
1019
- <span class="fstat-no" title="function not covered" > ge</span>tDynamicIcon(icon) {
1020
- const Component = <span class="cstat-no" title="statement not covered" >SvgComponents[icon];</span>
1021
- <span class="cstat-no" title="statement not covered" > return &lt;Component /&gt;</span>
1022
- }
811
+ const getDynamicContent = <span class="fstat-no" title="function not covered" >(c</span>ontentItems, className, recursionId) =&gt; {
812
+ const { openDrawersByDefault, linkActiveFunc, linkCallback, useTooltips } =
813
+ <span class="cstat-no" title="statement not covered" > config;</span>
814
+ let linkClass = <span class="cstat-no" title="statement not covered" >isExpandedState ? 'link-inline' : 'link-collapsed';</span>
815
+ const containerRecursionId = <span class="cstat-no" title="statement not covered" >recursionId || 0;</span>
1023
816
  &nbsp;
1024
- <span class="fstat-no" title="function not covered" > ge</span>tDynamicContent(items, className) {
1025
- const { performanceYear } = <span class="cstat-no" title="statement not covered" >this.props;</span>
1026
- const {
1027
- openDrawersByDefault,
1028
- linkActiveFunc,
1029
- linkCallback,
1030
- animationType,
1031
- useTooltips,
1032
- } = <span class="cstat-no" title="statement not covered" >this.props.config;</span>
1033
- const { isExpanded, linksTopPosition } = <span class="cstat-no" title="statement not covered" >this.state;</span>
1034
- const linkClass = <span class="cstat-no" title="statement not covered" >isExpanded ? 'link-inline' : 'link-collapsed';</span>
1035
- const style = <span class="cstat-no" title="statement not covered" >{ top: isExpanded ? `${linksTopPosition}px` : 0 };</span>
817
+ const getDynamicIcon = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(i</span>con) =&gt; {</span>
818
+ const Component = <span class="cstat-no" title="statement not covered" >SvgComponents[icon];</span>
819
+ <span class="cstat-no" title="statement not covered" > return Component ? &lt;Component /&gt; : null;</span>
820
+ };
1036
821
  &nbsp;
1037
- const itemsMarkup = <span class="cstat-no" title="statement not covered" >items.map(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; {</span>
1038
- <span class="cstat-no" title="statement not covered" > switch (item.type) {</span>
1039
- case 'divider':
1040
- <span class="cstat-no" title="statement not covered" > return (</span>
1041
- &lt;AnimationGroup display={isExpanded}&gt;
1042
- &lt;hr /&gt;
822
+ const hasDarkerBackground = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(d</span>arkerBackground) =&gt; {</span>
823
+ <span class="cstat-no" title="statement not covered" > return darkerBackground ? 'hr-smaller-vertical-spacing' : '';</span>
824
+ };
825
+ &nbsp;
826
+ const itemsMarkup = <span class="cstat-no" title="statement not covered" >(contentItems || []).map(<span class="fstat-no" title="function not covered" >(i</span>tem, index) =&gt; {</span>
827
+ const key = <span class="cstat-no" title="statement not covered" >`${JSON.stringify(item)}-${index}-${containerRecursionId}`;</span>
828
+ <span class="cstat-no" title="statement not covered" > return (</span>
829
+ {
830
+ divider: (
831
+ &lt;AnimationGroup
832
+ display={isExpandedState}
833
+ key={key}
834
+ darkerBackground={item.darkerBackground}
835
+ &gt;
836
+ &lt;hr className={`${hasDarkerBackground(item.darkerBackground)}`} /&gt;
1043
837
  &lt;/AnimationGroup&gt;
1044
- );
1045
- case 'container':
1046
- <span class="cstat-no" title="statement not covered" > return this.getDynamicContent(item.items, item.className);</span>
1047
- case 'linkBack':
1048
- <span class="cstat-no" title="statement not covered" > return (</span>
1049
- &lt;AnimationGroup display={isExpanded}&gt;
838
+ ),
839
+ container: getDynamicContent(
840
+ item.items,
841
+ item.className,
842
+ containerRecursionId + 1
843
+ ),
844
+ linkBack: (
845
+ &lt;AnimationGroup display={isExpandedState} key={key}&gt;
1050
846
  &lt;NavLinkInline
1051
847
  className="link-back"
1052
- icon={this.getDynamicIcon('ChevronLeft')}
848
+ icon={getDynamicIcon('ChevronLeft')}
1053
849
  url={item.url}
1054
850
  label={item.label}
1055
851
  linkCallback={linkCallback}
@@ -1057,13 +853,12 @@ export default class SideNavUI extends Component {
1057
853
  useTooltips={useTooltips}
1058
854
  /&gt;
1059
855
  &lt;/AnimationGroup&gt;
1060
- );
1061
- case 'linkHome':
1062
- <span class="cstat-no" title="statement not covered" > return (</span>
1063
- &lt;AnimationGroup display={isExpanded}&gt;
856
+ ),
857
+ linkHome: (
858
+ &lt;AnimationGroup display={isExpandedState} key={key}&gt;
1064
859
  &lt;NavLinkInline
1065
860
  className="account-home-link"
1066
- icon={this.getDynamicIcon(item.icon)}
861
+ icon={getDynamicIcon(item?.icon)}
1067
862
  url={item.url}
1068
863
  label={item.label}
1069
864
  linkCallback={linkCallback}
@@ -1071,10 +866,13 @@ export default class SideNavUI extends Component {
1071
866
  useTooltips={useTooltips}
1072
867
  /&gt;
1073
868
  &lt;/AnimationGroup&gt;
1074
- );
1075
- case 'practiceDetails':
1076
- <span class="cstat-no" title="statement not covered" > return (</span>
1077
- &lt;AnimationGroup display={isExpanded}&gt;
869
+ ),
870
+ practiceDetails: (
871
+ &lt;AnimationGroup
872
+ display={isExpandedState}
873
+ className={'details'}
874
+ key={key}
875
+ &gt;
1078
876
  &lt;PracticeDetails
1079
877
  practiceName={item.practiceName}
1080
878
  {...(!item.practiceTin
@@ -1085,88 +883,88 @@ export default class SideNavUI extends Component {
1085
883
  : { apmEntityId: item.apmEntityId })}
1086
884
  {...(!item.vgId ? {} : { vgId: item.vgId })}
1087
885
  {...(!item.cpcPlusId ? {} : { cpcPlusId: item.cpcPlusId })}
886
+ {...(!item.pcfId ? {} : { pcfId: item.pcfId })}
1088
887
  /&gt;
1089
888
  &lt;/AnimationGroup&gt;
1090
- );
1091
- case 'individualDetails':
1092
- <span class="cstat-no" title="statement not covered" > return (</span>
1093
- &lt;AnimationGroup display={isExpanded}&gt;
889
+ ),
890
+ individualDetails: (
891
+ &lt;AnimationGroup display={isExpandedState} key={key}&gt;
1094
892
  &lt;IndividualDetails
1095
893
  individualName={item.individualName}
1096
894
  individualNpi={item.individualNpi}
1097
895
  /&gt;
1098
896
  &lt;/AnimationGroup&gt;
1099
- );
1100
- case 'linkDrawer':
1101
- <span class="cstat-no" title="statement not covered" > return (</span>
897
+ ),
898
+ linkDrawer: (
1102
899
  &lt;NavLinkDrawer
1103
- isExpanded={isExpanded}
900
+ key={key}
901
+ isExpanded={isExpandedState}
1104
902
  isAlwaysOpen={item.isAlwaysOpen}
1105
903
  openByDefault={openDrawersByDefault}
1106
904
  rightIcon="chevron-down"
1107
- leftIcon={this.getDynamicIcon(item.icon)}
905
+ leftIcon={getDynamicIcon(item?.icon)}
1108
906
  className={linkClass}
1109
907
  label={item.label}
1110
908
  linkActiveFunc={linkActiveFunc}
1111
909
  linkCallback={linkCallback}
1112
910
  listOfLinks={item.items}
1113
911
  url={item.url}
1114
- sidebarExpand={this._expand}
912
+ sidebarExpand={expand}
913
+ isHighlighted={item.isHighlighted}
914
+ darkerBackground={item.darkerBackground}
915
+ leftBorderHighlightDisabled={item.leftBorderHighlightDisabled}
916
+ hideLabelSection={item.hideLabelSection}
917
+ largerDrawerBottomPadding={item.largerDrawerBottomPadding}
1115
918
  /&gt;
1116
- );
1117
- case 'custom':
1118
- <span class="cstat-no" title="statement not covered" > return (</span>
1119
- &lt;AnimationGroup display={isExpanded}&gt;
919
+ ),
920
+ custom: (
921
+ &lt;AnimationGroup display={isExpandedState} key={key}&gt;
1120
922
  &lt;SanitizedContent
1121
923
  html={item.content}
1122
924
  customClassName={item.customClassName}
1123
925
  /&gt;
1124
926
  &lt;/AnimationGroup&gt;
1125
- );
1126
- case 'chart':
1127
- <span class="cstat-no" title="statement not covered" > return (</span>
1128
- &lt;AnimationGroup display={isExpanded}&gt;
927
+ ),
928
+ chart: (
929
+ &lt;AnimationGroup display={isExpandedState} key={key}&gt;
1129
930
  &lt;ScoreChart
1130
931
  chartData={item.chartData}
1131
932
  linkCallback={linkCallback}
1132
933
  performanceYear={performanceYear}
1133
934
  /&gt;
1134
935
  &lt;/AnimationGroup&gt;
1135
- );
1136
- case 'switchLink':
1137
- <span class="cstat-no" title="statement not covered" > return (</span>
1138
- &lt;AnimationGroup display={isExpanded}&gt;
936
+ ),
937
+ switchLink: (
938
+ &lt;AnimationGroup display={isExpandedState} key={key}&gt;
1139
939
  &lt;CmsSwitchLink
1140
940
  linkCallback={linkCallback}
1141
941
  label={item.label}
1142
942
  url={item.url}
1143
943
  /&gt;
1144
944
  &lt;/AnimationGroup&gt;
1145
- );
1146
- default:
1147
- <span class="cstat-no" title="statement not covered" > return (</span>
1148
- &lt;NavLinkInline
1149
- icon={this.getDynamicIcon(item.icon)}
1150
- className={item.className ? item.className : linkClass}
1151
- url={item.url}
1152
- label={item.label}
1153
- linkCallback={linkCallback}
1154
- showLabel={isExpanded}
1155
- disabled={item.disabled}
1156
- useTooltips={useTooltips}
1157
- target={item.target}
1158
- /&gt;
1159
- );
1160
- }
945
+ ),
946
+ }[item.type] || (
947
+ &lt;NavLinkInline
948
+ key={key}
949
+ icon={getDynamicIcon(item?.icon)}
950
+ className={item.className ? item.className : linkClass}
951
+ url={item.url}
952
+ label={item.label}
953
+ linkCallback={linkCallback}
954
+ showLabel={isExpandedState}
955
+ disabled={item.disabled}
956
+ useTooltips={useTooltips}
957
+ target={item.target}
958
+ /&gt;
959
+ )
960
+ );
1161
961
  });
1162
962
  &nbsp;
1163
963
  <span class="cstat-no" title="statement not covered" > if (className === 'link-container') {</span>
1164
964
  <span class="cstat-no" title="statement not covered" > return (</span>
1165
965
  &lt;div
1166
- style={style}
1167
- className={`${
1168
- animationType ? 'animation-' + animationType : 'animation-flat'
1169
- }`}
966
+ className="animation-flat"
967
+ key={`nav-link-container-${recursionId}`}
1170
968
  &gt;
1171
969
  &lt;NavLinkContainer
1172
970
  listOfLinks={itemsMarkup}
@@ -1177,37 +975,45 @@ export default class SideNavUI extends Component {
1177
975
  } else {
1178
976
  <span class="cstat-no" title="statement not covered" > return &lt;div className={className}&gt;{itemsMarkup}&lt;/div&gt;;</span>
1179
977
  }
1180
- }
978
+ };
1181
979
  &nbsp;
1182
- render() {
1183
- const { isAltStyle, config } = this.props;
1184
- const { isExpanded, items } = this.state;
1185
- const content = items
1186
- ? <span class="branch-0 cbranch-no" title="branch not covered" >this._getDynamicContent(</span>
1187
- items,
1188
- 'sidebar-content' + (isAltStyle ? ' alt-style' : '')
1189
- )
1190
- : this._getLevelContent();
980
+ const content = itemsState
981
+ ? <span class="branch-0 cbranch-no" title="branch not covered" >getDynamicContent(</span>
982
+ itemsState,
983
+ 'sidebar-content' + (isAltStyle ? ' alt-style' : '')
984
+ )
985
+ : getLevelContent();
1191
986
  &nbsp;
1192
- return (
1193
- &lt;aside
1194
- id="qppSidebar"
1195
- tabIndex="-1"
1196
- className={`${isExpanded ? 'sidebar' : <span class="branch-1 cbranch-no" title="branch not covered" >'sidebar closed'}</span> sidebar-${
1197
- config.navClassName
1198
- }`}
1199
- &gt;
1200
- {content}
1201
- &lt;NavLinkToggle
1202
- isAltStyle={isAltStyle}
1203
- collapseRef={this._collapseRef}
1204
- isExpanded={isExpanded}
1205
- onClick={this._toggleExpanded}
1206
- /&gt;
1207
- &lt;/aside&gt;
1208
- );
1209
- }
1210
- }
987
+ useEffect(() =&gt; {
988
+ setIsExpandedState(isExpanded);
989
+ }, [isExpanded]);
990
+ &nbsp;
991
+ useEffect(() =&gt; {
992
+ setCurrentLevelState(currentLevel);
993
+ }, [currentLevel]);
994
+ &nbsp;
995
+ useEffect(() =&gt; {
996
+ setItemsState(items);
997
+ }, [items]);
998
+ &nbsp;
999
+ return (
1000
+ &lt;aside
1001
+ id="qppSidebar"
1002
+ tabIndex="-1"
1003
+ className={`${isExpandedState ? 'sidebar' : <span class="branch-1 cbranch-no" title="branch not covered" >'sidebar closed'}</span> sidebar-${
1004
+ config.navClassName
1005
+ }`}
1006
+ &gt;
1007
+ {content}
1008
+ &lt;NavLinkToggle
1009
+ isAltStyle={isAltStyle}
1010
+ collapseRef={collapseRef}
1011
+ isExpanded={isExpandedState}
1012
+ onClick={toggleExpanded}
1013
+ /&gt;
1014
+ &lt;/aside&gt;
1015
+ );
1016
+ };
1211
1017
  &nbsp;
1212
1018
  SideNavUI.propTypes = {
1213
1019
  currentLevel: PropTypes.number,
@@ -1216,20 +1022,19 @@ SideNavUI.propTypes = {
1216
1022
  onCollapsed: PropTypes.func,
1217
1023
  chartData: PropTypes.object,
1218
1024
  config: PropTypes.object,
1219
- showDevPreDfpLink: PropTypes.bool,
1220
1025
  items: PropTypes.object,
1221
1026
  isAltStyle: PropTypes.bool,
1222
- showPhysicianCompareLink: PropTypes.bool,
1223
- showFacilityBasedPreviewLink: PropTypes.bool,
1224
1027
  showReportingLinks: PropTypes.bool,
1225
- showApmIncentivePaymentLink: PropTypes.bool,
1226
1028
  performanceYear: PropTypes.string,
1227
- feedbackPerformanceYear: PropTypes.string,
1228
- fbpPerformanceYear: PropTypes.string,
1229
- showSelfNomination: PropTypes.bool,
1230
- showReportsPortal: PropTypes.bool,
1231
- showExceptionsApplicationLink: PropTypes.bool,
1232
- showTargetedReviewLink: PropTypes.bool,
1029
+ result: PropTypes.shape({
1030
+ content: PropTypes.shape({
1031
+ default: PropTypes.arrayOf(PropTypes.object),
1032
+ devPre: PropTypes.arrayOf(PropTypes.object),
1033
+ internalReviewers: PropTypes.arrayOf(PropTypes.object),
1034
+ viewer: PropTypes.arrayOf(PropTypes.object),
1035
+ contentManager: PropTypes.arrayOf(PropTypes.object),
1036
+ }),
1037
+ }),
1233
1038
  };
1234
1039
  &nbsp;
1235
1040
  SideNavUI.defaultProps = {
@@ -1239,31 +1044,36 @@ SideNavUI.defaultProps = {
1239
1044
  onCollapsed: <span class="fstat-no" title="function not covered" >()</span> =&gt; {},
1240
1045
  chartData: {},
1241
1046
  config: {},
1242
- showDevPreDfpLink: false,
1243
1047
  items: null,
1244
1048
  isAltStyle: false,
1245
- showPhysicianCompareLink: false,
1246
- showFacilityBasedPreviewLink: false,
1247
- showApmIncentivePaymentLink: false,
1248
1049
  showReportingLinks: false,
1249
1050
  performanceYear: '2017',
1250
- feedbackPerformanceYear: null,
1251
- fbpPerformanceYear: null,
1252
- showSelfNomination: false,
1253
- showReportsPortal: false,
1254
- showExceptionsApplicationLink: false,
1255
- showTargetedReviewLink: false,
1051
+ result: {
1052
+ content: {
1053
+ default: [],
1054
+ devPre: [],
1055
+ internalReviewers: [],
1056
+ viewer: [],
1057
+ contentManager: [],
1058
+ },
1059
+ },
1256
1060
  };
1061
+ &nbsp;
1062
+ export default withGetConfig(SideNavUI, {
1063
+ timeout: 5,
1064
+ url: '/config/side-navigation',
1065
+ localStorageName: 'qpp_side_navigation',
1066
+ defaultContent,
1067
+ });
1257
1068
  &nbsp;</pre></td></tr></table></pre>
1258
1069
 
1259
1070
  <div class='push'></div><!-- for sticky footer -->
1260
1071
  </div><!-- /wrapper -->
1261
1072
  <div class='footer quiet pad2 space-top1 center small'>
1262
1073
  Code coverage generated by
1263
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
1264
- at Mon Oct 05 2020 11:31:16 GMT-0700 (Pacific Daylight Time)
1074
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1075
+ at Mon Mar 06 2023 14:49:52 GMT-0800 (Pacific Standard Time)
1265
1076
  </div>
1266
- </div>
1267
1077
  <script src="../../../../prettify.js"></script>
1268
1078
  <script>
1269
1079
  window.onload = function () {