qpp-style 9.8.7 → 9.9.1

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 (143) hide show
  1. package/components/Header/HeaderUI.jsx +2 -0
  2. package/components/Header/ImpersonatorBanner.jsx +55 -0
  3. package/components/SideNav/Content/LevelOneContent.jsx +9 -3
  4. package/components/SideNav/UI/default-content.json +4 -0
  5. package/coverage/clover.xml +288 -923
  6. package/coverage/coverage-final.json +18 -61
  7. package/coverage/lcov-report/components/SanitizedContent/index.html +1 -1
  8. package/coverage/lcov-report/components/SanitizedContent/index.jsx.html +1 -1
  9. package/coverage/lcov-report/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +31 -10
  10. package/coverage/lcov-report/components/SideNav/AnimationGroup/index.html +11 -11
  11. package/coverage/lcov-report/components/SideNav/Chart/ScoreChart.jsx.html +94 -94
  12. package/coverage/lcov-report/components/SideNav/Chart/index.html +21 -21
  13. package/coverage/lcov-report/components/SideNav/Chart/index.js.html +1 -1
  14. package/coverage/lcov-report/components/SideNav/Content/LevelOneContent.jsx.html +173 -503
  15. package/coverage/lcov-report/components/SideNav/Content/LevelTwoContent.jsx.html +19 -13
  16. package/coverage/lcov-report/components/SideNav/Content/index.html +21 -21
  17. package/coverage/lcov-report/components/SideNav/Content/index.js.html +1 -1
  18. package/coverage/lcov-report/components/SideNav/Details/IndividualDetails.jsx.html +1 -1
  19. package/coverage/lcov-report/components/SideNav/Details/PracticeDetails.jsx.html +19 -7
  20. package/coverage/lcov-report/components/SideNav/Details/index.html +13 -13
  21. package/coverage/lcov-report/components/SideNav/Details/index.js.html +1 -1
  22. package/coverage/lcov-report/components/SideNav/Links/CmsSwitchLink.jsx.html +1 -1
  23. package/coverage/lcov-report/components/SideNav/Links/NavItemInline.jsx.html +1 -1
  24. package/coverage/lcov-report/components/SideNav/Links/NavLinkContainer.jsx.html +46 -61
  25. package/coverage/lcov-report/components/SideNav/Links/NavLinkDrawer.jsx.html +189 -21
  26. package/coverage/lcov-report/components/SideNav/Links/NavLinkInline.jsx.html +41 -41
  27. package/coverage/lcov-report/components/SideNav/Links/NavLinkToggle.jsx.html +1 -1
  28. package/coverage/lcov-report/components/SideNav/Links/index.html +37 -37
  29. package/coverage/lcov-report/components/SideNav/Links/index.js.html +1 -1
  30. package/coverage/lcov-report/components/SideNav/UI/SideNavUI.jsx.html +145 -169
  31. package/coverage/lcov-report/components/SideNav/UI/index.html +21 -21
  32. package/coverage/lcov-report/components/SideNav/UI/index.js.html +1 -1
  33. package/coverage/lcov-report/components/SideNav/helpers.js.html +15 -9
  34. package/coverage/lcov-report/components/SideNav/index.html +11 -11
  35. package/coverage/lcov-report/components/hooks/index.html +111 -0
  36. package/coverage/lcov-report/components/hooks/useGetConfig.js.html +302 -0
  37. package/coverage/lcov-report/index.html +91 -271
  38. package/coverage/lcov-report/lib/SvgComponents.jsx.html +60 -60
  39. package/coverage/lcov-report/lib/index.html +15 -30
  40. package/coverage/lcov-report/lib/svg-definitions.svg.html +1 -1
  41. package/coverage/lcov-report/react/components/Accordion/index.html +1 -1
  42. package/coverage/lcov-report/react/components/Accordion/index.jsx.html +1 -1
  43. package/coverage/lcov-report/react/components/Button/index.html +111 -0
  44. package/coverage/lcov-report/react/components/Button/index.js.html +350 -0
  45. package/coverage/lcov-report/react/components/Error/Collapsible.jsx.html +1 -1
  46. package/coverage/lcov-report/react/components/Error/ErrorUI.jsx.html +1 -1
  47. package/coverage/lcov-report/react/components/Error/error.js.html +1 -1
  48. package/coverage/lcov-report/react/components/Error/index.html +1 -1
  49. package/coverage/lcov-report/react/components/Footer/FooterUI.jsx.html +160 -118
  50. package/coverage/lcov-report/react/components/Footer/LegacyFooterUI.jsx.html +1 -1
  51. package/coverage/lcov-report/react/components/Footer/SocialLinks.jsx.html +1 -1
  52. package/coverage/lcov-report/react/components/Footer/Subscribe.jsx.html +1 -1
  53. package/coverage/lcov-report/react/components/Footer/footer.js.html +1 -1
  54. package/coverage/lcov-report/react/components/Footer/index.html +19 -19
  55. package/coverage/lcov-report/react/components/Header/HeaderAccountMenu.jsx.html +1 -1
  56. package/coverage/lcov-report/react/components/Header/HeaderCancel.jsx.html +1 -1
  57. package/coverage/lcov-report/react/components/Header/HeaderContainer.jsx.html +14 -5
  58. package/coverage/lcov-report/react/components/Header/HeaderLogo.jsx.html +1 -1
  59. package/coverage/lcov-report/react/components/Header/HeaderMenuButton.js.html +1 -1
  60. package/coverage/lcov-report/react/components/Header/HeaderMenuItem.jsx.html +1 -1
  61. package/coverage/lcov-report/react/components/Header/HeaderMenuLink.js.html +1 -1
  62. package/coverage/lcov-report/react/components/Header/HeaderMenuSignOutButton.js.html +1 -1
  63. package/coverage/lcov-report/react/components/Header/HeaderMobileButton.js.html +1 -1
  64. package/coverage/lcov-report/react/components/Header/HeaderUI.jsx.html +23 -2
  65. package/coverage/lcov-report/react/components/Header/HelpIcon.jsx.html +1 -1
  66. package/coverage/lcov-report/react/components/Header/ImpersonatorBanner.jsx.html +245 -0
  67. package/coverage/lcov-report/react/components/Header/NavigationButtonIcon.jsx.html +1 -1
  68. package/coverage/lcov-report/react/components/Header/header.js.html +8 -2
  69. package/coverage/lcov-report/react/components/Header/hooks.js.html +1 -1
  70. package/coverage/lcov-report/react/components/Header/index.html +25 -10
  71. package/coverage/lcov-report/react/components/Header/utag-helpers.js.html +1 -1
  72. package/coverage/lcov-report/react/components/Infotip/Infotip.jsx.html +1 -1
  73. package/coverage/lcov-report/react/components/Infotip/InfotipIcon.jsx.html +1 -1
  74. package/coverage/lcov-report/react/components/Infotip/index.html +1 -1
  75. package/coverage/lcov-report/react/components/Infotip/index.js.html +1 -1
  76. package/coverage/lcov-report/react/components/Modal/LegacyModal.jsx.html +1 -1
  77. package/coverage/lcov-report/react/components/Modal/Modal.jsx.html +1 -1
  78. package/coverage/lcov-report/react/components/Modal/index.html +1 -1
  79. package/coverage/lcov-report/react/components/Modal/index.jsx.html +1 -1
  80. package/coverage/lcov-report/react/components/NotificationBanner/index.html +1 -1
  81. package/coverage/lcov-report/react/components/NotificationBanner/index.js.html +1 -1
  82. package/coverage/lcov-report/react/components/SanitizedContent/index.html +1 -1
  83. package/coverage/lcov-report/react/components/SanitizedContent/index.jsx.html +1 -1
  84. package/coverage/lcov-report/react/components/SessionDialog/index.html +1 -1
  85. package/coverage/lcov-report/react/components/SessionDialog/sessionDialog.js.html +1 -1
  86. package/coverage/lcov-report/react/components/SessionDialogUI.jsx.html +1 -1
  87. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +31 -16
  88. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/index.html +21 -21
  89. package/coverage/lcov-report/react/components/SideNav/Chart/ScoreChart.jsx.html +1 -1
  90. package/coverage/lcov-report/react/components/SideNav/Chart/index.html +1 -1
  91. package/coverage/lcov-report/react/components/SideNav/Chart/index.js.html +1 -1
  92. package/coverage/lcov-report/react/components/SideNav/Content/LevelOneContent.jsx.html +126 -36
  93. package/coverage/lcov-report/react/components/SideNav/Content/LevelTwoContent.jsx.html +1 -1
  94. package/coverage/lcov-report/react/components/SideNav/Content/index.html +20 -20
  95. package/coverage/lcov-report/react/components/SideNav/Content/index.js.html +1 -1
  96. package/coverage/lcov-report/react/components/SideNav/Details/IndividualDetails.jsx.html +1 -1
  97. package/coverage/lcov-report/react/components/SideNav/Details/PracticeDetails.jsx.html +1 -1
  98. package/coverage/lcov-report/react/components/SideNav/Details/index.html +1 -1
  99. package/coverage/lcov-report/react/components/SideNav/Details/index.js.html +1 -1
  100. package/coverage/lcov-report/react/components/SideNav/Links/CmsSwitchLink.jsx.html +1 -1
  101. package/coverage/lcov-report/react/components/SideNav/Links/NavItemInline.jsx.html +1 -1
  102. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkContainer.jsx.html +18 -18
  103. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkDrawer.jsx.html +149 -17
  104. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkInline.jsx.html +1 -1
  105. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkToggle.jsx.html +1 -1
  106. package/coverage/lcov-report/react/components/SideNav/Links/index.html +28 -28
  107. package/coverage/lcov-report/react/components/SideNav/Links/index.js.html +1 -1
  108. package/coverage/lcov-report/react/components/SideNav/UI/SideNavUI.jsx.html +49 -22
  109. package/coverage/lcov-report/react/components/SideNav/UI/index.html +21 -21
  110. package/coverage/lcov-report/react/components/SideNav/UI/index.js.html +1 -1
  111. package/coverage/lcov-report/react/components/SideNav/helpers.js.html +3 -3
  112. package/coverage/lcov-report/react/components/SideNav/index.html +1 -1
  113. package/coverage/lcov-report/react/components/SideNav/index.js.html +1 -1
  114. package/coverage/lcov-report/react/components/Tooltip/Tooltip.jsx.html +1 -1
  115. package/coverage/lcov-report/react/components/Tooltip/index.html +1 -1
  116. package/coverage/lcov-report/react/components/Tooltip/index.js.html +1 -1
  117. package/coverage/lcov-report/react/components/Tooltip/position.js.html +1 -1
  118. package/coverage/lcov-report/react/components/hooks/index.html +1 -1
  119. package/coverage/lcov-report/react/components/hooks/useGetConfig.js.html +7 -7
  120. package/coverage/lcov-report/react/components/index.html +1 -1
  121. package/coverage/lcov-report/react/index.html +1 -1
  122. package/coverage/lcov-report/react/index.js.html +1 -1
  123. package/coverage/lcov-report/react/lib/Chevron.jsx.html +1 -1
  124. package/coverage/lcov-report/react/lib/SvgComponents.jsx.html +1 -1
  125. package/coverage/lcov-report/react/lib/index.html +1 -1
  126. package/coverage/lcov-report/react/lib/svg-definitions.svg.html +1 -1
  127. package/coverage/lcov-report/react/session/index.html +17 -17
  128. package/coverage/lcov-report/react/session/index.js.html +1 -1
  129. package/coverage/lcov-report/react/session/logout.js.html +38 -11
  130. package/coverage/lcov-report/react/session/refresh.js.html +1 -1
  131. package/coverage/lcov-report/react/session/ttl.js.html +1 -1
  132. package/coverage/lcov.info +518 -1896
  133. package/dist/browser.js +1 -1
  134. package/dist/browser.js.LICENSE.txt +17 -0
  135. package/dist/browser.js.map +1 -1
  136. package/dist/index.js +1 -1
  137. package/dist/index.js.LICENSE.txt +17 -0
  138. package/dist/index.js.map +1 -1
  139. package/dist/react/index.js +1 -1
  140. package/dist/react/index.js.map +1 -1
  141. package/package.json +1 -1
  142. package/session/logout.js +11 -2
  143. package/styles/qppds/components/_modal.scss +15 -1
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">66.04% </span>
26
+ <span class="strong">56.76% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>35/53</span>
28
+ <span class='fraction'>21/37</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">41.86% </span>
33
+ <span class="strong">30% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>18/43</span>
35
+ <span class='fraction'>12/40</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
40
+ <span class="strong">20% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>1/1</span>
42
+ <span class='fraction'>1/5</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">66.04% </span>
47
+ <span class="strong">56.76% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>35/53</span>
49
+ <span class='fraction'>21/37</span>
50
50
  </div>
51
51
 
52
52
 
@@ -256,117 +256,7 @@
256
256
  <a name='L197'></a><a href='#L197'>197</a>
257
257
  <a name='L198'></a><a href='#L198'>198</a>
258
258
  <a name='L199'></a><a href='#L199'>199</a>
259
- <a name='L200'></a><a href='#L200'>200</a>
260
- <a name='L201'></a><a href='#L201'>201</a>
261
- <a name='L202'></a><a href='#L202'>202</a>
262
- <a name='L203'></a><a href='#L203'>203</a>
263
- <a name='L204'></a><a href='#L204'>204</a>
264
- <a name='L205'></a><a href='#L205'>205</a>
265
- <a name='L206'></a><a href='#L206'>206</a>
266
- <a name='L207'></a><a href='#L207'>207</a>
267
- <a name='L208'></a><a href='#L208'>208</a>
268
- <a name='L209'></a><a href='#L209'>209</a>
269
- <a name='L210'></a><a href='#L210'>210</a>
270
- <a name='L211'></a><a href='#L211'>211</a>
271
- <a name='L212'></a><a href='#L212'>212</a>
272
- <a name='L213'></a><a href='#L213'>213</a>
273
- <a name='L214'></a><a href='#L214'>214</a>
274
- <a name='L215'></a><a href='#L215'>215</a>
275
- <a name='L216'></a><a href='#L216'>216</a>
276
- <a name='L217'></a><a href='#L217'>217</a>
277
- <a name='L218'></a><a href='#L218'>218</a>
278
- <a name='L219'></a><a href='#L219'>219</a>
279
- <a name='L220'></a><a href='#L220'>220</a>
280
- <a name='L221'></a><a href='#L221'>221</a>
281
- <a name='L222'></a><a href='#L222'>222</a>
282
- <a name='L223'></a><a href='#L223'>223</a>
283
- <a name='L224'></a><a href='#L224'>224</a>
284
- <a name='L225'></a><a href='#L225'>225</a>
285
- <a name='L226'></a><a href='#L226'>226</a>
286
- <a name='L227'></a><a href='#L227'>227</a>
287
- <a name='L228'></a><a href='#L228'>228</a>
288
- <a name='L229'></a><a href='#L229'>229</a>
289
- <a name='L230'></a><a href='#L230'>230</a>
290
- <a name='L231'></a><a href='#L231'>231</a>
291
- <a name='L232'></a><a href='#L232'>232</a>
292
- <a name='L233'></a><a href='#L233'>233</a>
293
- <a name='L234'></a><a href='#L234'>234</a>
294
- <a name='L235'></a><a href='#L235'>235</a>
295
- <a name='L236'></a><a href='#L236'>236</a>
296
- <a name='L237'></a><a href='#L237'>237</a>
297
- <a name='L238'></a><a href='#L238'>238</a>
298
- <a name='L239'></a><a href='#L239'>239</a>
299
- <a name='L240'></a><a href='#L240'>240</a>
300
- <a name='L241'></a><a href='#L241'>241</a>
301
- <a name='L242'></a><a href='#L242'>242</a>
302
- <a name='L243'></a><a href='#L243'>243</a>
303
- <a name='L244'></a><a href='#L244'>244</a>
304
- <a name='L245'></a><a href='#L245'>245</a>
305
- <a name='L246'></a><a href='#L246'>246</a>
306
- <a name='L247'></a><a href='#L247'>247</a>
307
- <a name='L248'></a><a href='#L248'>248</a>
308
- <a name='L249'></a><a href='#L249'>249</a>
309
- <a name='L250'></a><a href='#L250'>250</a>
310
- <a name='L251'></a><a href='#L251'>251</a>
311
- <a name='L252'></a><a href='#L252'>252</a>
312
- <a name='L253'></a><a href='#L253'>253</a>
313
- <a name='L254'></a><a href='#L254'>254</a>
314
- <a name='L255'></a><a href='#L255'>255</a>
315
- <a name='L256'></a><a href='#L256'>256</a>
316
- <a name='L257'></a><a href='#L257'>257</a>
317
- <a name='L258'></a><a href='#L258'>258</a>
318
- <a name='L259'></a><a href='#L259'>259</a>
319
- <a name='L260'></a><a href='#L260'>260</a>
320
- <a name='L261'></a><a href='#L261'>261</a>
321
- <a name='L262'></a><a href='#L262'>262</a>
322
- <a name='L263'></a><a href='#L263'>263</a>
323
- <a name='L264'></a><a href='#L264'>264</a>
324
- <a name='L265'></a><a href='#L265'>265</a>
325
- <a name='L266'></a><a href='#L266'>266</a>
326
- <a name='L267'></a><a href='#L267'>267</a>
327
- <a name='L268'></a><a href='#L268'>268</a>
328
- <a name='L269'></a><a href='#L269'>269</a>
329
- <a name='L270'></a><a href='#L270'>270</a>
330
- <a name='L271'></a><a href='#L271'>271</a>
331
- <a name='L272'></a><a href='#L272'>272</a>
332
- <a name='L273'></a><a href='#L273'>273</a>
333
- <a name='L274'></a><a href='#L274'>274</a>
334
- <a name='L275'></a><a href='#L275'>275</a>
335
- <a name='L276'></a><a href='#L276'>276</a>
336
- <a name='L277'></a><a href='#L277'>277</a>
337
- <a name='L278'></a><a href='#L278'>278</a>
338
- <a name='L279'></a><a href='#L279'>279</a>
339
- <a name='L280'></a><a href='#L280'>280</a>
340
- <a name='L281'></a><a href='#L281'>281</a>
341
- <a name='L282'></a><a href='#L282'>282</a>
342
- <a name='L283'></a><a href='#L283'>283</a>
343
- <a name='L284'></a><a href='#L284'>284</a>
344
- <a name='L285'></a><a href='#L285'>285</a>
345
- <a name='L286'></a><a href='#L286'>286</a>
346
- <a name='L287'></a><a href='#L287'>287</a>
347
- <a name='L288'></a><a href='#L288'>288</a>
348
- <a name='L289'></a><a href='#L289'>289</a>
349
- <a name='L290'></a><a href='#L290'>290</a>
350
- <a name='L291'></a><a href='#L291'>291</a>
351
- <a name='L292'></a><a href='#L292'>292</a>
352
- <a name='L293'></a><a href='#L293'>293</a>
353
- <a name='L294'></a><a href='#L294'>294</a>
354
- <a name='L295'></a><a href='#L295'>295</a>
355
- <a name='L296'></a><a href='#L296'>296</a>
356
- <a name='L297'></a><a href='#L297'>297</a>
357
- <a name='L298'></a><a href='#L298'>298</a>
358
- <a name='L299'></a><a href='#L299'>299</a>
359
- <a name='L300'></a><a href='#L300'>300</a>
360
- <a name='L301'></a><a href='#L301'>301</a>
361
- <a name='L302'></a><a href='#L302'>302</a>
362
- <a name='L303'></a><a href='#L303'>303</a>
363
- <a name='L304'></a><a href='#L304'>304</a>
364
- <a name='L305'></a><a href='#L305'>305</a>
365
- <a name='L306'></a><a href='#L306'>306</a>
366
- <a name='L307'></a><a href='#L307'>307</a>
367
- <a name='L308'></a><a href='#L308'>308</a>
368
- <a name='L309'></a><a href='#L309'>309</a>
369
- <a name='L310'></a><a href='#L310'>310</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
259
+ <a name='L200'></a><a href='#L200'>200</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
370
260
  <span class="cline-any cline-neutral">&nbsp;</span>
371
261
  <span class="cline-any cline-neutral">&nbsp;</span>
372
262
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -380,8 +270,6 @@
380
270
  <span class="cline-any cline-neutral">&nbsp;</span>
381
271
  <span class="cline-any cline-neutral">&nbsp;</span>
382
272
  <span class="cline-any cline-neutral">&nbsp;</span>
383
- <span class="cline-any cline-yes">1x</span>
384
- <span class="cline-any cline-neutral">&nbsp;</span>
385
273
  <span class="cline-any cline-neutral">&nbsp;</span>
386
274
  <span class="cline-any cline-neutral">&nbsp;</span>
387
275
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -393,46 +281,16 @@
393
281
  <span class="cline-any cline-neutral">&nbsp;</span>
394
282
  <span class="cline-any cline-neutral">&nbsp;</span>
395
283
  <span class="cline-any cline-neutral">&nbsp;</span>
396
- <span class="cline-any cline-yes">1x</span>
397
- <span class="cline-any cline-yes">1x</span>
398
- <span class="cline-any cline-yes">1x</span>
399
- <span class="cline-any cline-yes">1x</span>
400
- <span class="cline-any cline-yes">1x</span>
401
- <span class="cline-any cline-yes">1x</span>
402
- <span class="cline-any cline-yes">1x</span>
403
- <span class="cline-any cline-neutral">&nbsp;</span>
404
- <span class="cline-any cline-yes">1x</span>
405
- <span class="cline-any cline-yes">1x</span>
406
- <span class="cline-any cline-yes">1x</span>
407
- <span class="cline-any cline-neutral">&nbsp;</span>
408
- <span class="cline-any cline-neutral">&nbsp;</span>
409
- <span class="cline-any cline-yes">1x</span>
410
- <span class="cline-any cline-no">&nbsp;</span>
411
- <span class="cline-any cline-neutral">&nbsp;</span>
412
- <span class="cline-any cline-neutral">&nbsp;</span>
413
- <span class="cline-any cline-yes">1x</span>
414
- <span class="cline-any cline-no">&nbsp;</span>
415
- <span class="cline-any cline-neutral">&nbsp;</span>
416
- <span class="cline-any cline-neutral">&nbsp;</span>
417
- <span class="cline-any cline-yes">1x</span>
418
- <span class="cline-any cline-no">&nbsp;</span>
419
284
  <span class="cline-any cline-neutral">&nbsp;</span>
420
285
  <span class="cline-any cline-neutral">&nbsp;</span>
421
- <span class="cline-any cline-yes">1x</span>
422
- <span class="cline-any cline-no">&nbsp;</span>
423
286
  <span class="cline-any cline-neutral">&nbsp;</span>
424
287
  <span class="cline-any cline-neutral">&nbsp;</span>
425
- <span class="cline-any cline-yes">1x</span>
426
- <span class="cline-any cline-no">&nbsp;</span>
427
288
  <span class="cline-any cline-neutral">&nbsp;</span>
428
289
  <span class="cline-any cline-neutral">&nbsp;</span>
429
290
  <span class="cline-any cline-neutral">&nbsp;</span>
430
- <span class="cline-any cline-yes">1x</span>
431
- <span class="cline-any cline-yes">1x</span>
432
291
  <span class="cline-any cline-neutral">&nbsp;</span>
433
292
  <span class="cline-any cline-yes">1x</span>
434
293
  <span class="cline-any cline-no">&nbsp;</span>
435
- <span class="cline-any cline-no">&nbsp;</span>
436
294
  <span class="cline-any cline-neutral">&nbsp;</span>
437
295
  <span class="cline-any cline-neutral">&nbsp;</span>
438
296
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -442,9 +300,6 @@
442
300
  <span class="cline-any cline-neutral">&nbsp;</span>
443
301
  <span class="cline-any cline-neutral">&nbsp;</span>
444
302
  <span class="cline-any cline-neutral">&nbsp;</span>
445
- <span class="cline-any cline-no">&nbsp;</span>
446
- <span class="cline-any cline-no">&nbsp;</span>
447
- <span class="cline-any cline-neutral">&nbsp;</span>
448
303
  <span class="cline-any cline-neutral">&nbsp;</span>
449
304
  <span class="cline-any cline-neutral">&nbsp;</span>
450
305
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -455,17 +310,11 @@
455
310
  <span class="cline-any cline-neutral">&nbsp;</span>
456
311
  <span class="cline-any cline-neutral">&nbsp;</span>
457
312
  <span class="cline-any cline-neutral">&nbsp;</span>
458
- <span class="cline-any cline-no">&nbsp;</span>
459
- <span class="cline-any cline-neutral">&nbsp;</span>
460
- <span class="cline-any cline-neutral">&nbsp;</span>
461
- <span class="cline-any cline-neutral">&nbsp;</span>
462
- <span class="cline-any cline-neutral">&nbsp;</span>
463
- <span class="cline-any cline-neutral">&nbsp;</span>
464
313
  <span class="cline-any cline-neutral">&nbsp;</span>
314
+ <span class="cline-any cline-yes">1x</span>
465
315
  <span class="cline-any cline-neutral">&nbsp;</span>
466
316
  <span class="cline-any cline-neutral">&nbsp;</span>
467
317
  <span class="cline-any cline-neutral">&nbsp;</span>
468
- <span class="cline-any cline-no">&nbsp;</span>
469
318
  <span class="cline-any cline-neutral">&nbsp;</span>
470
319
  <span class="cline-any cline-neutral">&nbsp;</span>
471
320
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -478,90 +327,29 @@
478
327
  <span class="cline-any cline-neutral">&nbsp;</span>
479
328
  <span class="cline-any cline-yes">1x</span>
480
329
  <span class="cline-any cline-neutral">&nbsp;</span>
481
- <span class="cline-any cline-neutral">&nbsp;</span>
482
- <span class="cline-any cline-neutral">&nbsp;</span>
483
- <span class="cline-any cline-neutral">&nbsp;</span>
484
- <span class="cline-any cline-neutral">&nbsp;</span>
485
- <span class="cline-any cline-neutral">&nbsp;</span>
486
- <span class="cline-any cline-neutral">&nbsp;</span>
487
- <span class="cline-any cline-neutral">&nbsp;</span>
488
- <span class="cline-any cline-neutral">&nbsp;</span>
489
- <span class="cline-any cline-neutral">&nbsp;</span>
490
- <span class="cline-any cline-neutral">&nbsp;</span>
491
- <span class="cline-any cline-neutral">&nbsp;</span>
492
330
  <span class="cline-any cline-yes">1x</span>
493
331
  <span class="cline-any cline-yes">1x</span>
494
- <span class="cline-any cline-neutral">&nbsp;</span>
495
- <span class="cline-any cline-neutral">&nbsp;</span>
496
- <span class="cline-any cline-neutral">&nbsp;</span>
497
- <span class="cline-any cline-neutral">&nbsp;</span>
498
- <span class="cline-any cline-neutral">&nbsp;</span>
499
- <span class="cline-any cline-neutral">&nbsp;</span>
500
- <span class="cline-any cline-neutral">&nbsp;</span>
501
- <span class="cline-any cline-neutral">&nbsp;</span>
502
- <span class="cline-any cline-neutral">&nbsp;</span>
503
- <span class="cline-any cline-neutral">&nbsp;</span>
504
- <span class="cline-any cline-neutral">&nbsp;</span>
505
332
  <span class="cline-any cline-yes">1x</span>
506
- <span class="cline-any cline-neutral">&nbsp;</span>
507
- <span class="cline-any cline-no">&nbsp;</span>
508
- <span class="cline-any cline-no">&nbsp;</span>
509
- <span class="cline-any cline-neutral">&nbsp;</span>
510
- <span class="cline-any cline-neutral">&nbsp;</span>
511
- <span class="cline-any cline-neutral">&nbsp;</span>
512
- <span class="cline-any cline-neutral">&nbsp;</span>
513
- <span class="cline-any cline-neutral">&nbsp;</span>
514
- <span class="cline-any cline-neutral">&nbsp;</span>
515
- <span class="cline-any cline-neutral">&nbsp;</span>
516
- <span class="cline-any cline-neutral">&nbsp;</span>
517
- <span class="cline-any cline-neutral">&nbsp;</span>
518
- <span class="cline-any cline-neutral">&nbsp;</span>
333
+ <span class="cline-any cline-yes">1x</span>
519
334
  <span class="cline-any cline-neutral">&nbsp;</span>
520
335
  <span class="cline-any cline-neutral">&nbsp;</span>
521
336
  <span class="cline-any cline-yes">1x</span>
522
337
  <span class="cline-any cline-yes">1x</span>
523
- <span class="cline-any cline-neutral">&nbsp;</span>
524
- <span class="cline-any cline-neutral">&nbsp;</span>
525
- <span class="cline-any cline-neutral">&nbsp;</span>
526
- <span class="cline-any cline-neutral">&nbsp;</span>
527
- <span class="cline-any cline-neutral">&nbsp;</span>
528
- <span class="cline-any cline-neutral">&nbsp;</span>
529
- <span class="cline-any cline-neutral">&nbsp;</span>
530
- <span class="cline-any cline-neutral">&nbsp;</span>
531
- <span class="cline-any cline-neutral">&nbsp;</span>
532
- <span class="cline-any cline-neutral">&nbsp;</span>
533
- <span class="cline-any cline-neutral">&nbsp;</span>
534
- <span class="cline-any cline-neutral">&nbsp;</span>
535
- <span class="cline-any cline-neutral">&nbsp;</span>
536
338
  <span class="cline-any cline-yes">1x</span>
537
- <span class="cline-any cline-no">&nbsp;</span>
538
- <span class="cline-any cline-neutral">&nbsp;</span>
539
- <span class="cline-any cline-neutral">&nbsp;</span>
540
- <span class="cline-any cline-neutral">&nbsp;</span>
541
- <span class="cline-any cline-neutral">&nbsp;</span>
542
- <span class="cline-any cline-neutral">&nbsp;</span>
543
- <span class="cline-any cline-neutral">&nbsp;</span>
544
- <span class="cline-any cline-neutral">&nbsp;</span>
545
- <span class="cline-any cline-neutral">&nbsp;</span>
546
- <span class="cline-any cline-neutral">&nbsp;</span>
547
- <span class="cline-any cline-neutral">&nbsp;</span>
339
+ <span class="cline-any cline-yes">1x</span>
340
+ <span class="cline-any cline-yes">1x</span>
341
+ <span class="cline-any cline-yes">1x</span>
548
342
  <span class="cline-any cline-neutral">&nbsp;</span>
343
+ <span class="cline-any cline-yes">1x</span>
549
344
  <span class="cline-any cline-neutral">&nbsp;</span>
550
345
  <span class="cline-any cline-yes">1x</span>
346
+ <span class="cline-any cline-yes">1x</span>
347
+ <span class="cline-any cline-yes">1x</span>
551
348
  <span class="cline-any cline-no">&nbsp;</span>
552
349
  <span class="cline-any cline-neutral">&nbsp;</span>
553
350
  <span class="cline-any cline-neutral">&nbsp;</span>
554
351
  <span class="cline-any cline-neutral">&nbsp;</span>
555
352
  <span class="cline-any cline-neutral">&nbsp;</span>
556
- <span class="cline-any cline-neutral">&nbsp;</span>
557
- <span class="cline-any cline-neutral">&nbsp;</span>
558
- <span class="cline-any cline-neutral">&nbsp;</span>
559
- <span class="cline-any cline-neutral">&nbsp;</span>
560
- <span class="cline-any cline-neutral">&nbsp;</span>
561
- <span class="cline-any cline-neutral">&nbsp;</span>
562
- <span class="cline-any cline-neutral">&nbsp;</span>
563
- <span class="cline-any cline-neutral">&nbsp;</span>
564
- <span class="cline-any cline-neutral">&nbsp;</span>
565
353
  <span class="cline-any cline-yes">1x</span>
566
354
  <span class="cline-any cline-neutral">&nbsp;</span>
567
355
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -574,8 +362,6 @@
574
362
  <span class="cline-any cline-neutral">&nbsp;</span>
575
363
  <span class="cline-any cline-neutral">&nbsp;</span>
576
364
  <span class="cline-any cline-neutral">&nbsp;</span>
577
- <span class="cline-any cline-yes">1x</span>
578
- <span class="cline-any cline-no">&nbsp;</span>
579
365
  <span class="cline-any cline-neutral">&nbsp;</span>
580
366
  <span class="cline-any cline-neutral">&nbsp;</span>
581
367
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -592,42 +378,38 @@
592
378
  <span class="cline-any cline-no">&nbsp;</span>
593
379
  <span class="cline-any cline-neutral">&nbsp;</span>
594
380
  <span class="cline-any cline-neutral">&nbsp;</span>
595
- <span class="cline-any cline-neutral">&nbsp;</span>
596
- <span class="cline-any cline-neutral">&nbsp;</span>
597
- <span class="cline-any cline-neutral">&nbsp;</span>
598
- <span class="cline-any cline-neutral">&nbsp;</span>
599
- <span class="cline-any cline-neutral">&nbsp;</span>
600
- <span class="cline-any cline-neutral">&nbsp;</span>
601
- <span class="cline-any cline-neutral">&nbsp;</span>
602
- <span class="cline-any cline-neutral">&nbsp;</span>
603
- <span class="cline-any cline-neutral">&nbsp;</span>
604
- <span class="cline-any cline-neutral">&nbsp;</span>
605
- <span class="cline-any cline-yes">1x</span>
381
+ <span class="cline-any cline-no">&nbsp;</span>
606
382
  <span class="cline-any cline-no">&nbsp;</span>
607
383
  <span class="cline-any cline-neutral">&nbsp;</span>
608
384
  <span class="cline-any cline-neutral">&nbsp;</span>
385
+ <span class="cline-any cline-no">&nbsp;</span>
386
+ <span class="cline-any cline-no">&nbsp;</span>
387
+ <span class="cline-any cline-no">&nbsp;</span>
609
388
  <span class="cline-any cline-neutral">&nbsp;</span>
610
389
  <span class="cline-any cline-neutral">&nbsp;</span>
611
390
  <span class="cline-any cline-neutral">&nbsp;</span>
612
391
  <span class="cline-any cline-neutral">&nbsp;</span>
613
392
  <span class="cline-any cline-neutral">&nbsp;</span>
614
393
  <span class="cline-any cline-neutral">&nbsp;</span>
394
+ <span class="cline-any cline-no">&nbsp;</span>
395
+ <span class="cline-any cline-no">&nbsp;</span>
396
+ <span class="cline-any cline-no">&nbsp;</span>
615
397
  <span class="cline-any cline-neutral">&nbsp;</span>
398
+ <span class="cline-any cline-no">&nbsp;</span>
616
399
  <span class="cline-any cline-neutral">&nbsp;</span>
617
400
  <span class="cline-any cline-neutral">&nbsp;</span>
618
401
  <span class="cline-any cline-neutral">&nbsp;</span>
619
402
  <span class="cline-any cline-neutral">&nbsp;</span>
403
+ <span class="cline-any cline-no">&nbsp;</span>
620
404
  <span class="cline-any cline-neutral">&nbsp;</span>
621
405
  <span class="cline-any cline-neutral">&nbsp;</span>
406
+ <span class="cline-any cline-no">&nbsp;</span>
622
407
  <span class="cline-any cline-neutral">&nbsp;</span>
623
408
  <span class="cline-any cline-neutral">&nbsp;</span>
624
409
  <span class="cline-any cline-neutral">&nbsp;</span>
625
410
  <span class="cline-any cline-neutral">&nbsp;</span>
626
411
  <span class="cline-any cline-neutral">&nbsp;</span>
627
412
  <span class="cline-any cline-neutral">&nbsp;</span>
628
- <span class="cline-any cline-yes">1x</span>
629
- <span class="cline-any cline-neutral">&nbsp;</span>
630
- <span class="cline-any cline-neutral">&nbsp;</span>
631
413
  <span class="cline-any cline-neutral">&nbsp;</span>
632
414
  <span class="cline-any cline-neutral">&nbsp;</span>
633
415
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -635,9 +417,9 @@
635
417
  <span class="cline-any cline-neutral">&nbsp;</span>
636
418
  <span class="cline-any cline-neutral">&nbsp;</span>
637
419
  <span class="cline-any cline-neutral">&nbsp;</span>
420
+ <span class="cline-any cline-no">&nbsp;</span>
638
421
  <span class="cline-any cline-neutral">&nbsp;</span>
639
422
  <span class="cline-any cline-neutral">&nbsp;</span>
640
- <span class="cline-any cline-yes">1x</span>
641
423
  <span class="cline-any cline-neutral">&nbsp;</span>
642
424
  <span class="cline-any cline-neutral">&nbsp;</span>
643
425
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -646,6 +428,7 @@
646
428
  <span class="cline-any cline-neutral">&nbsp;</span>
647
429
  <span class="cline-any cline-neutral">&nbsp;</span>
648
430
  <span class="cline-any cline-neutral">&nbsp;</span>
431
+ <span class="cline-any cline-no">&nbsp;</span>
649
432
  <span class="cline-any cline-neutral">&nbsp;</span>
650
433
  <span class="cline-any cline-neutral">&nbsp;</span>
651
434
  <span class="cline-any cline-yes">1x</span>
@@ -672,298 +455,188 @@
672
455
  <span class="cline-any cline-neutral">&nbsp;</span>
673
456
  <span class="cline-any cline-neutral">&nbsp;</span>
674
457
  <span class="cline-any cline-neutral">&nbsp;</span>
675
- <span class="cline-any cline-neutral">&nbsp;</span>
676
- <span class="cline-any cline-neutral">&nbsp;</span>
677
- <span class="cline-any cline-neutral">&nbsp;</span>
678
458
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React from 'react';
459
+ import PropTypes from 'prop-types';
679
460
  import cookie from 'cookie';
680
461
  import jwtDecode from 'jwt-decode';
462
+ &nbsp;
681
463
  import { NavLinkContainer, NavLinkInline, NavLinkDrawer } from '../Links';
682
464
  import AnimationGroup from '../AnimationGroup/AnimationGroup';
683
- import * as SVG from '../../../lib/SvgComponents';
465
+ import defaultContent from '../UI/default-content';
684
466
  import {
685
- physicianCompareUrl,
686
- facilityBasedPreviewUrl,
467
+ AccountHomeIcon,
468
+ DashboardIcon,
469
+ FacilityBasedPreviewIcon,
470
+ HardshipIcon,
471
+ HelpSupportIcon,
472
+ ManageUsersIcon,
473
+ MyApplicationsIcon,
474
+ MyTestDataIcon,
475
+ PaymentIcon,
476
+ PhysicianCompareIcon,
477
+ StarIcon,
478
+ TargetIcon,
479
+ IndividualReporting,
480
+ } from '../../../lib/SvgComponents';
481
+ import {
482
+ dashboardUrl,
483
+ facilityBasedPreviewBaseUrl,
687
484
  feedbackUrl,
485
+ manageUrl,
486
+ physicianCompareUrl,
688
487
  reportsPortalUrl,
488
+ submissionsUrl,
689
489
  } from '../helpers';
690
- import PropTypes from 'prop-types';
490
+ &nbsp;
491
+ const getIcon = <span class="fstat-no" title="function not covered" >(u</span>rl) =&gt;
492
+ (<span class="cstat-no" title="statement not covered" >{</span>
493
+ [dashboardUrl]: DashboardIcon,
494
+ [feedbackUrl]: StarIcon,
495
+ [manageUrl]: ManageUsersIcon,
496
+ [physicianCompareUrl]: PhysicianCompareIcon,
497
+ [reportsPortalUrl]: HardshipIcon,
498
+ [submissionsUrl]: AccountHomeIcon,
499
+ [facilityBasedPreviewBaseUrl]: FacilityBasedPreviewIcon,
500
+ '/developers': HelpSupportIcon,
501
+ '/resources/help-and-support': HelpSupportIcon,
502
+ '/user/apm-incentive-payments': PaymentIcon,
503
+ '/user/applications': MyApplicationsIcon,
504
+ '/user/exception/#/landing': HardshipIcon,
505
+ '/user/targeted-review/#/landing': TargetIcon,
506
+ '/user/test-data': MyTestDataIcon,
507
+ '/user/self-nomination/#/landing': IndividualReporting,
508
+ '/reviewer/exception': HardshipIcon,
509
+ '/reviewer/targeted-review': TargetIcon,
510
+ '/reviewer/self-nomination': IndividualReporting,
511
+ }[url] || null);
691
512
  &nbsp;
692
513
  const LevelOneContent = ({
693
514
  isExpanded,
694
- showDevPreDfpLink,
695
- showPhysicianCompareLink,
696
- showFacilityBasedPreviewLink,
697
- showApmIncentivePaymentLink,
698
- performanceYear,
699
- fbpPerformanceYear,
700
- showSelfNomination,
701
515
  config: { linkCallback, useTooltips } = <span class="branch-0 cbranch-no" title="branch not covered" >{},</span>
702
- showReportsPortal,
703
- showTargetedReviewLink,
516
+ levelOneContent,
704
517
  }) =&gt; {
705
- let name = '';
706
- let hasAuthorizations = true;
707
- let isDevPre = false;
708
- let ehrAuthorized = false;
709
- let hasApmPayments = false;
710
- let hasNonRegistryAuthorizations = false;
711
- let cookies = cookie.parse(document.cookie);
712
- &nbsp;
713
- <span class="missing-if-branch" title="else path not taken" >E</span>if (cookies.hasOwnProperty('qpp_auth_token')) {
714
- const { data } = jwtDecode(cookies.qpp_auth_token);
715
- name = `${data.firstName} ${data.lastName}`;
716
- }
518
+ let {
519
+ qpp_has_authorizations,
520
+ user_has_apm_payments,
521
+ qpp_is_dev_pre,
522
+ qpp_ehr_authorized,
523
+ qpp_has_non_registry_authorizations,
524
+ qpp_auth_token,
525
+ qpp_cms_internal_authorized,
526
+ qpp_can_impersonate,
527
+ } = cookie.parse(document.cookie);
717
528
  &nbsp;
718
- <span class="missing-if-branch" title="if path not taken" >I</span>if (cookies.hasOwnProperty('qpp_has_authorizations')) {
719
- <span class="cstat-no" title="statement not covered" > hasAuthorizations = cookies.qpp_has_authorizations === 'true';</span>
720
- }
721
- &nbsp;
722
- <span class="missing-if-branch" title="if path not taken" >I</span>if (cookies.hasOwnProperty('user_has_apm_payments')) {
723
- <span class="cstat-no" title="statement not covered" > hasApmPayments = cookies.user_has_apm_payments === 'true';</span>
724
- }
725
- &nbsp;
726
- <span class="missing-if-branch" title="if path not taken" >I</span>if (cookies.hasOwnProperty('qpp_is_dev_pre')) {
727
- <span class="cstat-no" title="statement not covered" > isDevPre = cookies.qpp_is_dev_pre === 'true';</span>
728
- }
729
- &nbsp;
730
- <span class="missing-if-branch" title="if path not taken" >I</span>if (cookies.hasOwnProperty('qpp_ehr_authorized')) {
731
- <span class="cstat-no" title="statement not covered" > ehrAuthorized = cookies.qpp_ehr_authorized === 'true';</span>
529
+ let name = '';
530
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (qpp_auth_token) {
531
+ const { firstName, lastName } = jwtDecode(qpp_auth_token);
532
+ name = `${firstName} ${lastName}`;
732
533
  }
733
534
  &nbsp;
734
- <span class="missing-if-branch" title="if path not taken" >I</span>if (cookies.hasOwnProperty('qpp_has_non_registry_authorizations')) {
735
- <span class="cstat-no" title="statement not covered" > hasNonRegistryAuthorizations =</span>
736
- cookies.qpp_has_non_registry_authorizations === 'true';
737
- }
535
+ const canImpersonate = qpp_can_impersonate === 'true';
536
+ const hasAuthorizations = qpp_has_authorizations === 'true';
537
+ const hasApmPayments = user_has_apm_payments === 'true';
538
+ const isDevPre = qpp_is_dev_pre === 'true';
539
+ const internalReviewerNames = JSON.parse(qpp_cms_internal_authorized || 'null');
540
+ const ehrAuthorized = qpp_ehr_authorized === 'true';
541
+ const hasNonRegistryAuthorizations =
542
+ qpp_has_non_registry_authorizations === 'true';
738
543
  &nbsp;
739
544
  const linkClass = isExpanded ? 'link-inline' : <span class="branch-1 cbranch-no" title="branch not covered" >'link-collapsed';</span>
740
- const listOfLinks = [];
741
- &nbsp;
742
- <span class="missing-if-branch" title="if path not taken" >I</span>if (isDevPre) {
743
- <span class="cstat-no" title="statement not covered" > if (ehrAuthorized) {</span>
744
- <span class="cstat-no" title="statement not covered" > listOfLinks.push(</span>
745
- &lt;NavLinkInline
746
- icon={&lt;SVG.MyApplicationsIcon /&gt;}
747
- className={linkClass}
748
- url="/user/applications"
749
- label="My Applications"
750
- showLabel={isExpanded}
751
- useTooltips={useTooltips}
752
- /&gt;
753
- );
754
- <span class="cstat-no" title="statement not covered" > if (showDevPreDfpLink) {</span>
755
- <span class="cstat-no" title="statement not covered" > listOfLinks.push(</span>
756
- &lt;NavLinkInline
757
- icon={&lt;SVG.MyTestDataIcon /&gt;}
758
- className={linkClass}
759
- url="/user/test-data"
760
- label="My Test Data"
761
- showLabel={isExpanded}
762
- useTooltips={useTooltips}
763
- /&gt;
764
- );
765
- }
766
- }
767
- <span class="cstat-no" title="statement not covered" > listOfLinks.push(</span>
768
- &lt;NavLinkInline
769
- icon={&lt;SVG.ManageUsersIcon /&gt;}
770
- className={linkClass}
771
- url="/user/manage-access"
772
- label="Manage Access"
773
- showLabel={isExpanded}
774
- useTooltips={useTooltips}
775
- /&gt;
776
- );
777
- <span class="cstat-no" title="statement not covered" > listOfLinks.push(</span>
778
- &lt;NavLinkInline
779
- icon={&lt;SVG.HelpSupportIcon /&gt;}
780
- className={linkClass}
781
- url="/developers"
782
- label="Developer Tools"
783
- showLabel={isExpanded}
784
- useTooltips={useTooltips}
785
- /&gt;
786
- );
787
- } else {
788
- listOfLinks.push(
789
- &lt;NavLinkInline
790
- key="account-dashboard-link"
791
- icon={&lt;SVG.AccountHomeIcon /&gt;}
792
- className={linkClass}
793
- url="/user/submissions"
794
- label="Account Home"
795
- linkCallback={linkCallback}
796
- showLabel={isExpanded}
797
- useTooltips={useTooltips}
798
- /&gt;
799
- );
545
+ let content = isDevPre ? <span class="branch-0 cbranch-no" title="branch not covered" >levelOneContent?.devPre </span>: levelOneContent?.default;
546
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (internalReviewerNames) {
547
+ <span class="cstat-no" title="statement not covered" > content =</span>
548
+ levelOneContent?.internalReviewers || defaultContent.internalReviewers;
549
+ }
800
550
  &nbsp;
801
- <span class="missing-if-branch" title="else path not taken" >E</span>if (hasAuthorizations) {
802
- listOfLinks.push(
803
- &lt;NavLinkInline
804
- key="eligibility-link"
805
- icon={&lt;SVG.DashboardIcon /&gt;}
806
- className={linkClass}
807
- url="/user/dashboard"
808
- label="Eligibility &amp; Reporting"
809
- showLabel={isExpanded}
810
- useTooltips={useTooltips}
811
- /&gt;
812
- );
551
+ // Mapping side nav link urls to the conditions that determine their inclusion in the side nav
552
+ const urlConditionMap = {
553
+ [dashboardUrl]: hasAuthorizations,
554
+ [feedbackUrl]: hasAuthorizations,
555
+ '/user/apm-incentive-payments': hasApmPayments,
556
+ [physicianCompareUrl]: hasNonRegistryAuthorizations,
557
+ [reportsPortalUrl]: hasAuthorizations,
558
+ [facilityBasedPreviewBaseUrl]: hasAuthorizations,
559
+ '/user/impersonate': canImpersonate,
813
560
  &nbsp;
814
- <span class="missing-if-branch" title="if path not taken" >I</span>if (showFacilityBasedPreviewLink) {
815
- const facilityBasedPreviewUrlYear =
816
- <span class="cstat-no" title="statement not covered" > fbpPerformanceYear || performanceYear;</span>
817
- <span class="cstat-no" title="statement not covered" > listOfLinks.push(</span>
818
- &lt;NavLinkInline
819
- icon={&lt;SVG.FacilityBasedPreviewIcon /&gt;}
820
- className={linkClass}
821
- url={facilityBasedPreviewUrl(facilityBasedPreviewUrlYear)}
822
- label="Facility Based Preview"
823
- linkCallback={linkCallback}
824
- showLabel={isExpanded}
825
- useTooltips={useTooltips}
826
- /&gt;
827
- );
828
- }
561
+ '/reviewer/exception': (internalReviewerNames || []).includes(
562
+ 'QPP Targeted Review &amp; Exceptions'
563
+ ),
564
+ '/reviewer/targeted-review': (internalReviewerNames || []).includes(
565
+ 'QPP Targeted Review &amp; Exceptions'
566
+ ),
567
+ '/reviewer/self-nomination': (internalReviewerNames || []).includes(
568
+ 'QPP Self-Nomination'
569
+ ),
829
570
  &nbsp;
830
- <span class="missing-if-branch" title="else path not taken" >E</span>if (performanceYear) {
831
- listOfLinks.push(
832
- &lt;NavLinkInline
833
- icon={&lt;SVG.StarIcon /&gt;}
834
- className={linkClass}
835
- urlExpressionToMatch={`${feedbackUrl}/[0-9][0-9][0-9][0-9]`}
836
- url={feedbackUrl}
837
- label="Performance Feedback"
838
- linkCallback={linkCallback}
839
- showLabel={isExpanded}
840
- useTooltips={useTooltips}
841
- /&gt;
842
- );
843
- }
571
+ // dev pre
572
+ '/user/applications': ehrAuthorized,
573
+ '/user/test-data': ehrAuthorized,
574
+ };
844
575
  &nbsp;
845
- <span class="missing-if-branch" title="if path not taken" >I</span>if (showApmIncentivePaymentLink &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >hasApmPayments)</span> {
846
- <span class="cstat-no" title="statement not covered" > listOfLinks.push(</span>
847
- &lt;NavLinkInline
848
- icon={&lt;SVG.PaymentIcon /&gt;}
849
- className={linkClass}
850
- url="/user/apm-incentive-payments"
851
- label="APM Incentive Payments"
852
- linkCallback={linkCallback}
853
- showLabel={isExpanded}
854
- useTooltips={useTooltips}
855
- /&gt;
856
- );
857
- }
576
+ const navLinks = content.reduce(<span class="fstat-no" title="function not covered" >(a</span>cc, link) =&gt; {
577
+ const { url, label, className, listOfLinks, ...rest } = <span class="cstat-no" title="statement not covered" >link;</span>
858
578
  &nbsp;
859
- <span class="missing-if-branch" title="if path not taken" >I</span>if (showPhysicianCompareLink &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >hasNonRegistryAuthorizations)</span> {
860
- <span class="cstat-no" title="statement not covered" > listOfLinks.push(</span>
861
- &lt;NavLinkInline
862
- icon={&lt;SVG.PhysicianCompareIcon /&gt;}
863
- className={linkClass}
864
- url={physicianCompareUrl}
865
- label="Doctors &amp; Clinicians Preview"
866
- linkCallback={linkCallback}
867
- showLabel={isExpanded}
868
- useTooltips={useTooltips}
869
- /&gt;
870
- );
871
- }
579
+ // Any links failing the corresponding condition in the urlConditionMap are skipped
580
+ <span class="cstat-no" title="statement not covered" > if (url in urlConditionMap &amp;&amp; !urlConditionMap[url]) {</span>
581
+ <span class="cstat-no" title="statement not covered" > return acc;</span>
872
582
  }
873
583
  &nbsp;
874
- listOfLinks.push(
875
- &lt;NavLinkInline
876
- icon={&lt;SVG.HardshipIcon /&gt;}
877
- className={linkClass}
878
- url="/user/exception/#/landing"
879
- label="Exceptions Application"
880
- linkCallback={linkCallback}
881
- showLabel={isExpanded}
882
- useTooltips={useTooltips}
883
- /&gt;
884
- );
885
- &nbsp;
886
- <span class="missing-if-branch" title="if path not taken" >I</span>if (showTargetedReviewLink) {
887
- <span class="cstat-no" title="statement not covered" > listOfLinks.push(</span>
888
- &lt;NavLinkInline
889
- icon={&lt;SVG.TargetIcon /&gt;}
890
- className={linkClass + ' stroke-based-icon'}
891
- url="/user/targeted-review/#/landing"
892
- label="Targeted Review"
893
- linkCallback={linkCallback}
894
- showLabel={isExpanded}
895
- useTooltips={useTooltips}
896
- /&gt;
897
- );
898
- }
584
+ const IconComponent = <span class="cstat-no" title="statement not covered" >getIcon(url);</span>
585
+ const Icon = <span class="cstat-no" title="statement not covered" >IconComponent ? &lt;IconComponent /&gt; : null;</span>
586
+ const sharedProps = <span class="cstat-no" title="statement not covered" >{</span>
587
+ url,
588
+ label,
589
+ linkCallback,
590
+ className: className ? `${linkClass} ${className}` : linkClass,
591
+ };
899
592
  &nbsp;
900
- <span class="missing-if-branch" title="if path not taken" >I</span>if (showReportsPortal) {
901
- <span class="cstat-no" title="statement not covered" > listOfLinks.push(</span>
902
- &lt;NavLinkInline
903
- icon={&lt;SVG.HardshipIcon /&gt;}
904
- className={linkClass}
905
- url={reportsPortalUrl}
906
- label="Reports"
907
- linkCallback={linkCallback}
908
- showLabel={isExpanded}
909
- useTooltips={useTooltips}
910
- /&gt;
911
- );
912
- }
913
- &nbsp;
914
- <span class="missing-if-branch" title="if path not taken" >I</span>if (showSelfNomination) {
915
- <span class="cstat-no" title="statement not covered" > listOfLinks.push(</span>
593
+ const { pathname, hash } = <span class="cstat-no" title="statement not covered" >window.location;</span>
594
+ const filteredListOfLinks = <span class="cstat-no" title="statement not covered" >(listOfLinks || []).filter(<span class="fstat-no" title="function not covered" >(s</span>ublink) =&gt; {</span>
595
+ <span class="cstat-no" title="statement not covered" > return !(sublink.url in urlConditionMap &amp;&amp; !urlConditionMap[sublink.url]);</span>
596
+ });
597
+ <span class="cstat-no" title="statement not covered" > if (</span>
598
+ filteredListOfLinks?.length &gt; 0 &amp;&amp;
599
+ (pathname === url ||
600
+ filteredListOfLinks.some(
601
+ <span class="fstat-no" title="function not covered" > (s</span>ublink) =&gt;
602
+ <span class="cstat-no" title="statement not covered" > pathname === sublink.url || `${pathname}${hash}` === sublink.url</span>
603
+ ))
604
+ ) {
605
+ <span class="cstat-no" title="statement not covered" > acc.push(</span>
916
606
  &lt;NavLinkDrawer
917
- key="connected-clinicians-link"
918
- isAlwaysOpen
919
- url="/user/manage-access"
607
+ key={`nav-drawer-${url}-${label}`}
608
+ leftIcon={Icon}
609
+ listOfLinks={filteredListOfLinks}
920
610
  isExpanded={isExpanded}
921
- openByDefault={true}
922
- leftIcon={&lt;SVG.ManageUsersIcon /&gt;}
923
- className={linkClass}
924
- label="Manage Access"
925
- linkCallback={linkCallback}
926
- listOfLinks={[
927
- {
928
- url: '/user/self-nomination/#/landing',
929
- label: 'Registry/QCDR Self-Nomination',
930
- items: [],
931
- },
932
- ]}
933
611
  staticDrawer={false}
612
+ openByDefault
613
+ isAlwaysOpen
614
+ {...sharedProps}
615
+ {...rest}
934
616
  /&gt;
935
617
  );
936
618
  } else {
937
- listOfLinks.push(
619
+ <span class="cstat-no" title="statement not covered" > acc.push(</span>
938
620
  &lt;NavLinkInline
939
- icon={&lt;SVG.ManageUsersIcon /&gt;}
940
- className={linkClass}
941
- url="/user/manage-access"
942
- label="Manage Access"
943
- showLabel={isExpanded}
621
+ key={`nav-link-${url}-${label}`}
622
+ icon={Icon}
944
623
  useTooltips={useTooltips}
624
+ showLabel={isExpanded}
625
+ {...sharedProps}
626
+ {...rest}
945
627
  /&gt;
946
628
  );
947
629
  }
630
+ <span class="cstat-no" title="statement not covered" > return acc;</span>
631
+ }, []);
948
632
  &nbsp;
949
- listOfLinks.push(
950
- &lt;NavLinkInline
951
- icon={&lt;SVG.HelpSupportIcon /&gt;}
952
- className={linkClass}
953
- url="/resources/help-and-support"
954
- label="Help and Support"
955
- showLabel={isExpanded}
956
- useTooltips={useTooltips}
957
- /&gt;
958
- );
959
- }
960
633
  return (
961
634
  &lt;div className="sidebar-content"&gt;
962
635
  &lt;AnimationGroup display={isExpanded}&gt;
963
636
  &lt;h1 className="label"&gt;{name}&lt;/h1&gt;
964
637
  &lt;/AnimationGroup&gt;
965
638
  &lt;div className="level-one-nav animation-flat"&gt;
966
- &lt;NavLinkContainer listOfLinks={listOfLinks} /&gt;
639
+ &lt;NavLinkContainer listOfLinks={navLinks} /&gt;
967
640
  &lt;/div&gt;
968
641
  &lt;/div&gt;
969
642
  );
@@ -972,15 +645,12 @@ const LevelOneContent = ({
972
645
  LevelOneContent.propTypes = {
973
646
  isExpanded: PropTypes.bool,
974
647
  config: PropTypes.object,
975
- showDevPreDfpLink: PropTypes.bool,
976
- showPhysicianCompareLink: PropTypes.bool,
977
- showFacilityBasedPreviewLink: PropTypes.bool,
978
- showApmIncentivePaymentLink: PropTypes.bool,
979
- performanceYear: PropTypes.string,
980
- fbpPerformanceYear: PropTypes.string,
981
- showSelfNomination: PropTypes.bool,
982
- showReportsPortal: PropTypes.bool,
983
- showTargetedReviewLink: PropTypes.bool,
648
+ levelOneContent: PropTypes.shape({
649
+ default: PropTypes.arrayOf(PropTypes.object),
650
+ devPre: PropTypes.arrayOf(PropTypes.object),
651
+ viewer: PropTypes.arrayOf(PropTypes.object),
652
+ internalReviewers: PropTypes.arrayOf(PropTypes.object),
653
+ }),
984
654
  };
985
655
  &nbsp;
986
656
  export default LevelOneContent;
@@ -991,7 +661,7 @@ export default LevelOneContent;
991
661
  <div class='footer quiet pad2 space-top1 center small'>
992
662
  Code coverage generated by
993
663
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
994
- at Thu Apr 15 2021 16:49:01 GMT-0700 (Pacific Daylight Time)
664
+ at Thu Dec 02 2021 15:57:52 GMT-0800 (Pacific Standard Time)
995
665
  </div>
996
666
  </div>
997
667
  <script src="../../../prettify.js"></script>