qpp-style 9.20.0 → 9.20.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/coverage/clover.xml +291 -335
  2. package/coverage/coverage-final.json +71 -72
  3. package/coverage/lcov-report/components/Accordion/index.html +1 -1
  4. package/coverage/lcov-report/components/Accordion/index.jsx.html +4 -4
  5. package/coverage/lcov-report/components/Error/Collapsible.jsx.html +1 -1
  6. package/coverage/lcov-report/components/Error/ErrorUI.jsx.html +1 -1
  7. package/coverage/lcov-report/components/Error/index.html +1 -1
  8. package/coverage/lcov-report/components/Footer/FooterUI.jsx.html +358 -184
  9. package/coverage/lcov-report/components/{Header/HeaderUI.jsx.html → Footer/LegacyFooterUI.jsx.html} +274 -193
  10. package/coverage/lcov-report/components/Footer/SocialLinks.jsx.html +11 -11
  11. package/coverage/lcov-report/components/Footer/Subscribe.jsx.html +11 -11
  12. package/coverage/lcov-report/components/Footer/index.html +44 -29
  13. package/coverage/lcov-report/components/Infotip/Infotip.jsx.html +2 -2
  14. package/coverage/lcov-report/components/Infotip/InfotipIcon.jsx.html +5 -5
  15. package/coverage/lcov-report/components/Infotip/index.html +1 -1
  16. package/coverage/lcov-report/components/Infotip/index.js.html +1 -1
  17. package/coverage/lcov-report/components/Modal/LegacyModal.jsx.html +3 -3
  18. package/coverage/lcov-report/components/Modal/Modal.jsx.html +5 -5
  19. package/coverage/lcov-report/components/Modal/index.html +1 -1
  20. package/coverage/lcov-report/components/Modal/index.jsx.html +5 -5
  21. package/coverage/lcov-report/components/SanitizedContent/index.html +1 -1
  22. package/coverage/lcov-report/components/SanitizedContent/index.jsx.html +1 -1
  23. package/coverage/lcov-report/components/SessionDialogUI.jsx.html +4 -4
  24. package/coverage/lcov-report/components/{NotificationBanner/CollapsedView.js.html → SideNav/AnimationGroup/AnimationGroup.jsx.html} +41 -56
  25. package/coverage/lcov-report/components/{Button → SideNav/AnimationGroup}/index.html +30 -30
  26. package/coverage/lcov-report/components/SideNav/Chart/ScoreChart.jsx.html +7 -7
  27. package/coverage/lcov-report/components/SideNav/Chart/index.html +16 -1
  28. package/coverage/lcov-report/components/SideNav/Chart/index.js.html +94 -0
  29. package/coverage/lcov-report/components/{NotificationBanner/index.js.html → SideNav/Content/LevelOneContent.jsx.html} +244 -283
  30. package/coverage/lcov-report/components/{Header/HeaderMenuItem.jsx.html → SideNav/Content/LevelTwoContent.jsx.html} +236 -305
  31. package/coverage/lcov-report/components/SideNav/Content/index.html +146 -0
  32. package/coverage/lcov-report/components/SideNav/Content/index.js.html +97 -0
  33. package/coverage/lcov-report/components/{Header/HeaderCancel.jsx.html → SideNav/Details/IndividualDetails.jsx.html} +24 -18
  34. package/coverage/lcov-report/components/{NotificationBanner/ExpandedView.js.html → SideNav/Details/PracticeDetails.jsx.html} +64 -64
  35. package/coverage/lcov-report/components/{NotificationBanner → SideNav/Details}/index.html +40 -40
  36. package/coverage/lcov-report/components/SideNav/Details/index.js.html +97 -0
  37. package/coverage/lcov-report/{react/components/NotificationBanner/ExpandedView.js.html → components/SideNav/Links/CmsSwitchLink.jsx.html} +43 -55
  38. package/coverage/lcov-report/components/{Header/HeaderMenuButton.js.html → SideNav/Links/NavItemInline.jsx.html} +75 -63
  39. package/coverage/lcov-report/components/{Header/HeaderLogo.jsx.html → SideNav/Links/NavLinkContainer.jsx.html} +60 -72
  40. package/coverage/lcov-report/components/SideNav/Links/NavLinkDrawer.jsx.html +832 -0
  41. package/coverage/lcov-report/components/{Button/index.js.html → SideNav/Links/NavLinkInline.jsx.html} +152 -101
  42. package/coverage/lcov-report/{react/components/NotificationBanner/CollapsedView.js.html → components/SideNav/Links/NavLinkToggle.jsx.html} +46 -40
  43. package/coverage/lcov-report/components/SideNav/Links/index.html +206 -0
  44. package/coverage/lcov-report/components/{Header/utag-helpers.js.html → SideNav/Links/index.js.html} +40 -28
  45. package/coverage/lcov-report/components/SideNav/UI/SideNavUI.jsx.html +1084 -0
  46. package/coverage/lcov-report/components/{GovBanner → SideNav/UI}/index.html +42 -27
  47. package/coverage/lcov-report/components/SideNav/UI/index.js.html +94 -0
  48. package/coverage/lcov-report/components/SideNav/helpers.js.html +10 -829
  49. package/coverage/lcov-report/components/SideNav/index.html +17 -17
  50. package/coverage/lcov-report/components/Tooltip/Tooltip.jsx.html +8 -8
  51. package/coverage/lcov-report/components/Tooltip/index.html +1 -1
  52. package/coverage/lcov-report/components/Tooltip/index.js.html +1 -1
  53. package/coverage/lcov-report/components/Tooltip/position.js.html +1 -1
  54. package/coverage/lcov-report/components/hooks/index.html +19 -19
  55. package/coverage/lcov-report/components/hooks/useGetConfig.js.html +36 -39
  56. package/coverage/lcov-report/components/index.html +1 -1
  57. package/coverage/lcov-report/index.html +63 -63
  58. package/coverage/lcov-report/lib/Chevron.jsx.html +5 -5
  59. package/coverage/lcov-report/lib/SvgComponents.jsx.html +12 -102
  60. package/coverage/lcov-report/lib/index.html +30 -15
  61. package/coverage/lcov-report/lib/svg-definitions.svg.html +460 -0
  62. package/coverage/lcov-report/react/components/Accordion/index.html +1 -1
  63. package/coverage/lcov-report/react/components/Accordion/index.jsx.html +1 -1
  64. package/coverage/lcov-report/react/components/Button/index.html +1 -1
  65. package/coverage/lcov-report/react/components/Button/index.js.html +1 -1
  66. package/coverage/lcov-report/react/components/Dropdown/index.html +1 -1
  67. package/coverage/lcov-report/react/components/Dropdown/index.js.html +1 -1
  68. package/coverage/lcov-report/react/components/Error/Collapsible.jsx.html +1 -1
  69. package/coverage/lcov-report/react/components/Error/ErrorUI.jsx.html +1 -1
  70. package/coverage/lcov-report/react/components/Error/error.js.html +1 -1
  71. package/coverage/lcov-report/react/components/Error/index.html +1 -1
  72. package/coverage/lcov-report/react/components/Footer/FooterUI.jsx.html +1 -1
  73. package/coverage/lcov-report/react/components/Footer/LegacyFooterUI.jsx.html +16 -16
  74. package/coverage/lcov-report/react/components/Footer/SocialLinks.jsx.html +1 -1
  75. package/coverage/lcov-report/react/components/Footer/Subscribe.jsx.html +1 -1
  76. package/coverage/lcov-report/react/components/Footer/footer.js.html +1 -1
  77. package/coverage/lcov-report/react/components/Footer/index.html +1 -1
  78. package/coverage/lcov-report/react/components/GovBanner/index.html +1 -1
  79. package/coverage/lcov-report/react/components/GovBanner/index.js.html +1 -1
  80. package/coverage/lcov-report/react/components/Header/HeaderAccountMenu.jsx.html +1 -1
  81. package/coverage/lcov-report/react/components/Header/HeaderCancel.jsx.html +1 -1
  82. package/coverage/lcov-report/react/components/Header/HeaderContainer.jsx.html +1 -1
  83. package/coverage/lcov-report/react/components/Header/HeaderLogo.jsx.html +1 -1
  84. package/coverage/lcov-report/react/components/Header/HeaderMenuButton.js.html +1 -1
  85. package/coverage/lcov-report/react/components/Header/HeaderMenuItem.jsx.html +1 -1
  86. package/coverage/lcov-report/react/components/Header/HeaderMenuLink.js.html +8 -26
  87. package/coverage/lcov-report/react/components/Header/HeaderMenuSignOutButton.js.html +1 -1
  88. package/coverage/lcov-report/react/components/Header/HeaderMobileButton.js.html +1 -1
  89. package/coverage/lcov-report/react/components/Header/HeaderUI.jsx.html +1 -1
  90. package/coverage/lcov-report/react/components/Header/HelpIcon.jsx.html +1 -1
  91. package/coverage/lcov-report/react/components/Header/ImpersonatorBanner.jsx.html +1 -1
  92. package/coverage/lcov-report/react/components/Header/NavigationButtonIcon.jsx.html +1 -1
  93. package/coverage/lcov-report/react/components/Header/header.js.html +1 -1
  94. package/coverage/lcov-report/react/components/Header/hooks.js.html +1 -1
  95. package/coverage/lcov-report/react/components/Header/index.html +17 -17
  96. package/coverage/lcov-report/react/components/Header/utag-helpers.js.html +1 -1
  97. package/coverage/lcov-report/react/components/Infotip/Infotip.jsx.html +1 -1
  98. package/coverage/lcov-report/react/components/Infotip/InfotipIcon.jsx.html +1 -1
  99. package/coverage/lcov-report/react/components/Infotip/index.html +1 -1
  100. package/coverage/lcov-report/react/components/Infotip/index.js.html +1 -1
  101. package/coverage/lcov-report/react/components/Modal/LegacyModal.jsx.html +1 -1
  102. package/coverage/lcov-report/react/components/Modal/Modal.jsx.html +1 -1
  103. package/coverage/lcov-report/react/components/Modal/index.html +1 -1
  104. package/coverage/lcov-report/react/components/Modal/index.jsx.html +1 -1
  105. package/coverage/lcov-report/react/components/NotificationBanner/index.html +21 -51
  106. package/coverage/lcov-report/react/components/NotificationBanner/index.js.html +304 -172
  107. package/coverage/lcov-report/react/components/SanitizedContent/index.html +1 -1
  108. package/coverage/lcov-report/react/components/SanitizedContent/index.jsx.html +1 -1
  109. package/coverage/lcov-report/react/components/SessionDialog/index.html +1 -1
  110. package/coverage/lcov-report/react/components/SessionDialog/sessionDialog.js.html +1 -1
  111. package/coverage/lcov-report/react/components/SessionDialogUI.jsx.html +1 -1
  112. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +1 -1
  113. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/index.html +1 -1
  114. package/coverage/lcov-report/react/components/SideNav/Chart/ScoreChart.jsx.html +1 -1
  115. package/coverage/lcov-report/react/components/SideNav/Chart/index.html +1 -1
  116. package/coverage/lcov-report/react/components/SideNav/Chart/index.js.html +1 -1
  117. package/coverage/lcov-report/react/components/SideNav/Content/LevelOneContent.jsx.html +31 -109
  118. package/coverage/lcov-report/react/components/SideNav/Content/LevelTwoContent.jsx.html +1 -1
  119. package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/index.html +14 -14
  120. package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/index.js.html +16 -10
  121. package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/utils.js.html +27 -51
  122. package/coverage/lcov-report/react/components/SideNav/Content/index.html +19 -19
  123. package/coverage/lcov-report/react/components/SideNav/Content/index.js.html +1 -1
  124. package/coverage/lcov-report/react/components/SideNav/Details/IndividualDetails.jsx.html +1 -1
  125. package/coverage/lcov-report/react/components/SideNav/Details/PracticeDetails.jsx.html +1 -1
  126. package/coverage/lcov-report/react/components/SideNav/Details/index.html +1 -1
  127. package/coverage/lcov-report/react/components/SideNav/Details/index.js.html +1 -1
  128. package/coverage/lcov-report/react/components/SideNav/Links/CmsSwitchLink.jsx.html +1 -1
  129. package/coverage/lcov-report/react/components/SideNav/Links/NavItemInline.jsx.html +1 -1
  130. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkContainer.jsx.html +1 -1
  131. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkDrawer.jsx.html +1 -1
  132. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkInline.jsx.html +1 -1
  133. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkToggle.jsx.html +1 -1
  134. package/coverage/lcov-report/react/components/SideNav/Links/index.html +1 -1
  135. package/coverage/lcov-report/react/components/SideNav/Links/index.js.html +1 -1
  136. package/coverage/lcov-report/react/components/SideNav/UI/SideNavUI.jsx.html +16 -4
  137. package/coverage/lcov-report/react/components/SideNav/UI/index.html +1 -1
  138. package/coverage/lcov-report/react/components/SideNav/UI/index.js.html +1 -1
  139. package/coverage/lcov-report/react/components/SideNav/helpers.js.html +17 -197
  140. package/coverage/lcov-report/react/components/SideNav/index.html +19 -19
  141. package/coverage/lcov-report/react/components/SideNav/index.js.html +1 -1
  142. package/coverage/lcov-report/react/components/Tooltip/Tooltip.jsx.html +1 -1
  143. package/coverage/lcov-report/react/components/Tooltip/index.html +1 -1
  144. package/coverage/lcov-report/react/components/Tooltip/index.js.html +1 -1
  145. package/coverage/lcov-report/react/components/Tooltip/position.js.html +1 -1
  146. package/coverage/lcov-report/react/components/hooks/index.html +1 -1
  147. package/coverage/lcov-report/react/components/hooks/useGetConfig.js.html +1 -1
  148. package/coverage/lcov-report/react/components/index.html +1 -1
  149. package/coverage/lcov-report/react/index.html +1 -1
  150. package/coverage/lcov-report/react/index.js.html +1 -1
  151. package/coverage/lcov-report/react/lib/Chevron.jsx.html +1 -1
  152. package/coverage/lcov-report/react/lib/SvgComponents.jsx.html +9 -57
  153. package/coverage/lcov-report/react/lib/index.html +29 -14
  154. package/coverage/lcov-report/react/lib/svg-definitions.svg.html +1 -1
  155. package/coverage/lcov-report/react/session/index.html +1 -1
  156. package/coverage/lcov-report/react/session/index.js.html +1 -1
  157. package/coverage/lcov-report/react/session/logout.js.html +1 -1
  158. package/coverage/lcov-report/react/session/refresh.js.html +1 -1
  159. package/coverage/lcov-report/react/session/ttl.js.html +1 -1
  160. package/coverage/lcov-report/session/index.html +20 -20
  161. package/coverage/lcov-report/session/index.js.html +1 -1
  162. package/coverage/lcov-report/session/logout.js.html +15 -24
  163. package/coverage/lcov-report/session/refresh.js.html +2 -2
  164. package/coverage/lcov-report/session/ttl.js.html +2 -2
  165. package/coverage/lcov.info +454 -530
  166. package/dist/browser.js +1 -1
  167. package/dist/browser.js.map +1 -1
  168. package/dist/index.js +1 -1
  169. package/dist/index.js.map +1 -1
  170. package/dist/react/index.js +1 -1
  171. package/dist/react/index.js.map +1 -1
  172. package/package.json +9 -9
  173. package/styles/qppds/components/_header.scss +1 -1
  174. package/coverage/lcov-report/components/GovBanner/index.js.html +0 -436
  175. package/coverage/lcov-report/components/Header/HeaderAccountMenu.jsx.html +0 -592
  176. package/coverage/lcov-report/components/Header/HeaderContainer.jsx.html +0 -280
  177. package/coverage/lcov-report/components/Header/HeaderMenuLink.js.html +0 -253
  178. package/coverage/lcov-report/components/Header/HeaderMenuSignOutButton.js.html +0 -271
  179. package/coverage/lcov-report/components/Header/HeaderMobileButton.js.html +0 -196
  180. package/coverage/lcov-report/components/Header/HelpIcon.jsx.html +0 -181
  181. package/coverage/lcov-report/components/Header/ImpersonatorBanner.jsx.html +0 -331
  182. package/coverage/lcov-report/components/Header/NavigationButtonIcon.jsx.html +0 -166
  183. package/coverage/lcov-report/components/Header/hooks.js.html +0 -241
  184. package/coverage/lcov-report/components/Header/index.html +0 -326
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">60% </span>
26
+ <span class="strong">29.82% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>36/60</span>
28
+ <span class='fraction'>17/57</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">32.14% </span>
33
+ <span class="strong">10% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>9/28</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">57.14% </span>
40
+ <span class="strong">26.66% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>8/14</span>
42
+ <span class='fraction'>4/15</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">60% </span>
47
+ <span class="strong">29.82% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>36/60</span>
49
+ <span class='fraction'>17/57</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line medium'></div>
64
+ <div class='status-line low'></div>
65
65
  <pre><table class="coverage">
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
@@ -284,7 +284,52 @@
284
284
  <a name='L219'></a><a href='#L219'>219</a>
285
285
  <a name='L220'></a><a href='#L220'>220</a>
286
286
  <a name='L221'></a><a href='#L221'>221</a>
287
- <a name='L222'></a><a href='#L222'>222</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
287
+ <a name='L222'></a><a href='#L222'>222</a>
288
+ <a name='L223'></a><a href='#L223'>223</a>
289
+ <a name='L224'></a><a href='#L224'>224</a>
290
+ <a name='L225'></a><a href='#L225'>225</a>
291
+ <a name='L226'></a><a href='#L226'>226</a>
292
+ <a name='L227'></a><a href='#L227'>227</a>
293
+ <a name='L228'></a><a href='#L228'>228</a>
294
+ <a name='L229'></a><a href='#L229'>229</a>
295
+ <a name='L230'></a><a href='#L230'>230</a>
296
+ <a name='L231'></a><a href='#L231'>231</a>
297
+ <a name='L232'></a><a href='#L232'>232</a>
298
+ <a name='L233'></a><a href='#L233'>233</a>
299
+ <a name='L234'></a><a href='#L234'>234</a>
300
+ <a name='L235'></a><a href='#L235'>235</a>
301
+ <a name='L236'></a><a href='#L236'>236</a>
302
+ <a name='L237'></a><a href='#L237'>237</a>
303
+ <a name='L238'></a><a href='#L238'>238</a>
304
+ <a name='L239'></a><a href='#L239'>239</a>
305
+ <a name='L240'></a><a href='#L240'>240</a>
306
+ <a name='L241'></a><a href='#L241'>241</a>
307
+ <a name='L242'></a><a href='#L242'>242</a>
308
+ <a name='L243'></a><a href='#L243'>243</a>
309
+ <a name='L244'></a><a href='#L244'>244</a>
310
+ <a name='L245'></a><a href='#L245'>245</a>
311
+ <a name='L246'></a><a href='#L246'>246</a>
312
+ <a name='L247'></a><a href='#L247'>247</a>
313
+ <a name='L248'></a><a href='#L248'>248</a>
314
+ <a name='L249'></a><a href='#L249'>249</a>
315
+ <a name='L250'></a><a href='#L250'>250</a>
316
+ <a name='L251'></a><a href='#L251'>251</a>
317
+ <a name='L252'></a><a href='#L252'>252</a>
318
+ <a name='L253'></a><a href='#L253'>253</a>
319
+ <a name='L254'></a><a href='#L254'>254</a>
320
+ <a name='L255'></a><a href='#L255'>255</a>
321
+ <a name='L256'></a><a href='#L256'>256</a>
322
+ <a name='L257'></a><a href='#L257'>257</a>
323
+ <a name='L258'></a><a href='#L258'>258</a>
324
+ <a name='L259'></a><a href='#L259'>259</a>
325
+ <a name='L260'></a><a href='#L260'>260</a>
326
+ <a name='L261'></a><a href='#L261'>261</a>
327
+ <a name='L262'></a><a href='#L262'>262</a>
328
+ <a name='L263'></a><a href='#L263'>263</a>
329
+ <a name='L264'></a><a href='#L264'>264</a>
330
+ <a name='L265'></a><a href='#L265'>265</a>
331
+ <a name='L266'></a><a href='#L266'>266</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
332
+ <span class="cline-any cline-neutral">&nbsp;</span>
288
333
  <span class="cline-any cline-neutral">&nbsp;</span>
289
334
  <span class="cline-any cline-neutral">&nbsp;</span>
290
335
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -293,79 +338,72 @@
293
338
  <span class="cline-any cline-neutral">&nbsp;</span>
294
339
  <span class="cline-any cline-neutral">&nbsp;</span>
295
340
  <span class="cline-any cline-yes">2x</span>
296
- <span class="cline-any cline-no">&nbsp;</span>
297
- <span class="cline-any cline-no">&nbsp;</span>
298
- <span class="cline-any cline-no">&nbsp;</span>
299
- <span class="cline-any cline-no">&nbsp;</span>
341
+ <span class="cline-any cline-neutral">&nbsp;</span>
342
+ <span class="cline-any cline-yes">2x</span>
300
343
  <span class="cline-any cline-neutral">&nbsp;</span>
301
344
  <span class="cline-any cline-neutral">&nbsp;</span>
302
345
  <span class="cline-any cline-neutral">&nbsp;</span>
303
346
  <span class="cline-any cline-neutral">&nbsp;</span>
304
347
  <span class="cline-any cline-yes">2x</span>
348
+ <span class="cline-any cline-yes">2x</span>
349
+ <span class="cline-any cline-yes">2x</span>
350
+ <span class="cline-any cline-yes">2x</span>
305
351
  <span class="cline-any cline-neutral">&nbsp;</span>
306
352
  <span class="cline-any cline-neutral">&nbsp;</span>
307
353
  <span class="cline-any cline-neutral">&nbsp;</span>
354
+ <span class="cline-any cline-yes">2x</span>
355
+ <span class="cline-any cline-no">&nbsp;</span>
308
356
  <span class="cline-any cline-neutral">&nbsp;</span>
309
357
  <span class="cline-any cline-neutral">&nbsp;</span>
310
358
  <span class="cline-any cline-neutral">&nbsp;</span>
311
- <span class="cline-any cline-yes">4x</span>
312
359
  <span class="cline-any cline-neutral">&nbsp;</span>
313
- <span class="cline-any cline-yes">4x</span>
314
- <span class="cline-any cline-yes">4x</span>
315
- <span class="cline-any cline-yes">4x</span>
316
- <span class="cline-any cline-yes">4x</span>
317
- <span class="cline-any cline-yes">4x</span>
318
- <span class="cline-any cline-yes">4x</span>
319
- <span class="cline-any cline-yes">4x</span>
320
- <span class="cline-any cline-yes">4x</span>
360
+ <span class="cline-any cline-yes">2x</span>
361
+ <span class="cline-any cline-yes">2x</span>
321
362
  <span class="cline-any cline-neutral">&nbsp;</span>
322
- <span class="cline-any cline-yes">4x</span>
323
363
  <span class="cline-any cline-neutral">&nbsp;</span>
324
- <span class="cline-any cline-yes">2x</span>
325
364
  <span class="cline-any cline-neutral">&nbsp;</span>
326
- <span class="cline-any cline-yes">2x</span>
365
+ <span class="cline-any cline-neutral">&nbsp;</span>
366
+ <span class="cline-any cline-no">&nbsp;</span>
367
+ <span class="cline-any cline-no">&nbsp;</span>
368
+ <span class="cline-any cline-no">&nbsp;</span>
327
369
  <span class="cline-any cline-no">&nbsp;</span>
328
370
  <span class="cline-any cline-neutral">&nbsp;</span>
329
371
  <span class="cline-any cline-neutral">&nbsp;</span>
330
- <span class="cline-any cline-yes">2x</span>
331
- <span class="cline-any cline-no">&nbsp;</span>
332
372
  <span class="cline-any cline-neutral">&nbsp;</span>
333
373
  <span class="cline-any cline-neutral">&nbsp;</span>
334
- <span class="cline-any cline-yes">2x</span>
335
374
  <span class="cline-any cline-neutral">&nbsp;</span>
336
- <span class="cline-any cline-yes">2x</span>
337
- <span class="cline-any cline-yes">2x</span>
338
375
  <span class="cline-any cline-neutral">&nbsp;</span>
339
376
  <span class="cline-any cline-neutral">&nbsp;</span>
340
377
  <span class="cline-any cline-neutral">&nbsp;</span>
341
- <span class="cline-any cline-yes">4x</span>
342
378
  <span class="cline-any cline-neutral">&nbsp;</span>
343
- <span class="cline-any cline-yes">2x</span>
344
- <span class="cline-any cline-yes">2x</span>
345
379
  <span class="cline-any cline-neutral">&nbsp;</span>
346
380
  <span class="cline-any cline-neutral">&nbsp;</span>
381
+ <span class="cline-any cline-yes">1x</span>
382
+ <span class="cline-any cline-yes">1x</span>
383
+ <span class="cline-any cline-no">&nbsp;</span>
384
+ <span class="cline-any cline-neutral">&nbsp;</span>
385
+ <span class="cline-any cline-no">&nbsp;</span>
386
+ <span class="cline-any cline-neutral">&nbsp;</span>
387
+ <span class="cline-any cline-neutral">&nbsp;</span>
388
+ <span class="cline-any cline-neutral">&nbsp;</span>
389
+ <span class="cline-any cline-no">&nbsp;</span>
390
+ <span class="cline-any cline-neutral">&nbsp;</span>
347
391
  <span class="cline-any cline-neutral">&nbsp;</span>
348
- <span class="cline-any cline-yes">4x</span>
349
- <span class="cline-any cline-yes">2x</span>
350
- <span class="cline-any cline-yes">2x</span>
351
392
  <span class="cline-any cline-neutral">&nbsp;</span>
352
- <span class="cline-any cline-yes">2x</span>
353
393
  <span class="cline-any cline-neutral">&nbsp;</span>
354
394
  <span class="cline-any cline-neutral">&nbsp;</span>
355
395
  <span class="cline-any cline-neutral">&nbsp;</span>
356
- <span class="cline-any cline-yes">2x</span>
357
396
  <span class="cline-any cline-neutral">&nbsp;</span>
358
397
  <span class="cline-any cline-neutral">&nbsp;</span>
359
- <span class="cline-any cline-yes">4x</span>
360
- <span class="cline-any cline-yes">2x</span>
361
398
  <span class="cline-any cline-no">&nbsp;</span>
362
399
  <span class="cline-any cline-no">&nbsp;</span>
363
400
  <span class="cline-any cline-neutral">&nbsp;</span>
401
+ <span class="cline-any cline-no">&nbsp;</span>
364
402
  <span class="cline-any cline-neutral">&nbsp;</span>
365
403
  <span class="cline-any cline-neutral">&nbsp;</span>
366
- <span class="cline-any cline-no">&nbsp;</span>
367
404
  <span class="cline-any cline-neutral">&nbsp;</span>
368
405
  <span class="cline-any cline-neutral">&nbsp;</span>
406
+ <span class="cline-any cline-no">&nbsp;</span>
369
407
  <span class="cline-any cline-neutral">&nbsp;</span>
370
408
  <span class="cline-any cline-neutral">&nbsp;</span>
371
409
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -375,9 +413,8 @@
375
413
  <span class="cline-any cline-neutral">&nbsp;</span>
376
414
  <span class="cline-any cline-neutral">&nbsp;</span>
377
415
  <span class="cline-any cline-neutral">&nbsp;</span>
416
+ <span class="cline-any cline-no">&nbsp;</span>
378
417
  <span class="cline-any cline-neutral">&nbsp;</span>
379
- <span class="cline-any cline-yes">4x</span>
380
- <span class="cline-any cline-yes">4x</span>
381
418
  <span class="cline-any cline-neutral">&nbsp;</span>
382
419
  <span class="cline-any cline-neutral">&nbsp;</span>
383
420
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -385,7 +422,7 @@
385
422
  <span class="cline-any cline-neutral">&nbsp;</span>
386
423
  <span class="cline-any cline-neutral">&nbsp;</span>
387
424
  <span class="cline-any cline-neutral">&nbsp;</span>
388
- <span class="cline-any cline-yes">4x</span>
425
+ <span class="cline-any cline-no">&nbsp;</span>
389
426
  <span class="cline-any cline-no">&nbsp;</span>
390
427
  <span class="cline-any cline-no">&nbsp;</span>
391
428
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -420,17 +457,17 @@
420
457
  <span class="cline-any cline-neutral">&nbsp;</span>
421
458
  <span class="cline-any cline-neutral">&nbsp;</span>
422
459
  <span class="cline-any cline-neutral">&nbsp;</span>
423
- <span class="cline-any cline-yes">4x</span>
424
- <span class="cline-any cline-no">&nbsp;</span>
425
460
  <span class="cline-any cline-no">&nbsp;</span>
426
461
  <span class="cline-any cline-no">&nbsp;</span>
427
462
  <span class="cline-any cline-no">&nbsp;</span>
428
- <span class="cline-any cline-neutral">&nbsp;</span>
429
463
  <span class="cline-any cline-no">&nbsp;</span>
430
464
  <span class="cline-any cline-no">&nbsp;</span>
431
465
  <span class="cline-any cline-neutral">&nbsp;</span>
432
466
  <span class="cline-any cline-neutral">&nbsp;</span>
433
- <span class="cline-any cline-yes">4x</span>
467
+ <span class="cline-any cline-neutral">&nbsp;</span>
468
+ <span class="cline-any cline-neutral">&nbsp;</span>
469
+ <span class="cline-any cline-neutral">&nbsp;</span>
470
+ <span class="cline-any cline-neutral">&nbsp;</span>
434
471
  <span class="cline-any cline-no">&nbsp;</span>
435
472
  <span class="cline-any cline-no">&nbsp;</span>
436
473
  <span class="cline-any cline-no">&nbsp;</span>
@@ -443,7 +480,6 @@
443
480
  <span class="cline-any cline-neutral">&nbsp;</span>
444
481
  <span class="cline-any cline-neutral">&nbsp;</span>
445
482
  <span class="cline-any cline-neutral">&nbsp;</span>
446
- <span class="cline-any cline-yes">4x</span>
447
483
  <span class="cline-any cline-neutral">&nbsp;</span>
448
484
  <span class="cline-any cline-neutral">&nbsp;</span>
449
485
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -452,6 +488,10 @@
452
488
  <span class="cline-any cline-neutral">&nbsp;</span>
453
489
  <span class="cline-any cline-neutral">&nbsp;</span>
454
490
  <span class="cline-any cline-neutral">&nbsp;</span>
491
+ <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
455
495
  <span class="cline-any cline-neutral">&nbsp;</span>
456
496
  <span class="cline-any cline-neutral">&nbsp;</span>
457
497
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -463,6 +503,7 @@
463
503
  <span class="cline-any cline-neutral">&nbsp;</span>
464
504
  <span class="cline-any cline-neutral">&nbsp;</span>
465
505
  <span class="cline-any cline-neutral">&nbsp;</span>
506
+ <span class="cline-any cline-no">&nbsp;</span>
466
507
  <span class="cline-any cline-neutral">&nbsp;</span>
467
508
  <span class="cline-any cline-neutral">&nbsp;</span>
468
509
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -473,6 +514,43 @@
473
514
  <span class="cline-any cline-neutral">&nbsp;</span>
474
515
  <span class="cline-any cline-neutral">&nbsp;</span>
475
516
  <span class="cline-any cline-yes">2x</span>
517
+ <span class="cline-any cline-yes">2x</span>
518
+ <span class="cline-any cline-yes">2x</span>
519
+ <span class="cline-any cline-yes">2x</span>
520
+ <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>
523
+ <span class="cline-any cline-no">&nbsp;</span>
524
+ <span class="cline-any cline-neutral">&nbsp;</span>
525
+ <span class="cline-any cline-no">&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-no">&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-no">&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
+ <span class="cline-any cline-neutral">&nbsp;</span>
537
+ <span class="cline-any cline-neutral">&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-no">&nbsp;</span>
546
+ <span class="cline-any cline-neutral">&nbsp;</span>
547
+ <span class="cline-any cline-neutral">&nbsp;</span>
548
+ <span class="cline-any cline-neutral">&nbsp;</span>
549
+ <span class="cline-any cline-neutral">&nbsp;</span>
550
+ <span class="cline-any cline-no">&nbsp;</span>
551
+ <span class="cline-any cline-neutral">&nbsp;</span>
552
+ <span class="cline-any cline-neutral">&nbsp;</span>
553
+ <span class="cline-any cline-neutral">&nbsp;</span>
476
554
  <span class="cline-any cline-neutral">&nbsp;</span>
477
555
  <span class="cline-any cline-neutral">&nbsp;</span>
478
556
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -497,6 +575,9 @@
497
575
  <span class="cline-any cline-neutral">&nbsp;</span>
498
576
  <span class="cline-any cline-neutral">&nbsp;</span>
499
577
  <span class="cline-any cline-neutral">&nbsp;</span>
578
+ <span class="cline-any cline-yes">2x</span>
579
+ <span class="cline-any cline-neutral">&nbsp;</span>
580
+ <span class="cline-any cline-neutral">&nbsp;</span>
500
581
  <span class="cline-any cline-neutral">&nbsp;</span>
501
582
  <span class="cline-any cline-neutral">&nbsp;</span>
502
583
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -505,90 +586,90 @@
505
586
  <span class="cline-any cline-neutral">&nbsp;</span>
506
587
  <span class="cline-any cline-neutral">&nbsp;</span>
507
588
  <span class="cline-any cline-neutral">&nbsp;</span>
508
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { useState, useEffect, useRef } from 'react';
589
+ <span class="cline-any cline-neutral">&nbsp;</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
+ <span class="cline-any cline-neutral">&nbsp;</span>
594
+ <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></td><td class="text"><pre class="prettyprint lang-js">import React, { Component } from 'react';
509
597
  import PropTypes from 'prop-types';
510
- import ExpandedView from './ExpandedView';
511
- import CollapsedView from './CollapsedView';
512
- import { withGetConfig } from '../hooks/useGetConfig';
513
598
  &nbsp;
514
- function debounce(fn, ms) {
515
- let timer;
516
- return <span class="fstat-no" title="function not covered" >()</span> =&gt; {
517
- <span class="cstat-no" title="statement not covered" > clearTimeout(timer);</span>
518
- <span class="cstat-no" title="statement not covered" > timer = setTimeout(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
519
- <span class="cstat-no" title="statement not covered" > timer = null;</span>
520
- <span class="cstat-no" title="statement not covered" > fn.apply(this, arguments);</span>
521
- }, ms);
522
- };
523
- }
599
+ import SanitizedContent from '../SanitizedContent';
600
+ import { CloseXIcon, BellOutline } from '../../lib/SvgComponents.jsx';
601
+ import { withGetConfig } from '../hooks/useGetConfig';
524
602
  &nbsp;
525
- const NotificationBanner = ({ result }) =&gt; {
526
- const {
527
- color = <span class="branch-0 cbranch-no" title="branch not covered" >'blue',</span>
528
- content,
529
- dismissable,
530
- enabled,
531
- label = <span class="branch-0 cbranch-no" title="branch not covered" >'Update',</span>
532
- } = result.content;
603
+ class NotificationBanner extends Component {
604
+ constructor(props) {
605
+ super(props);
533
606
  &nbsp;
534
- const bannerContainerRef = useRef(null);
535
- const collapsedWrapperRef = useRef(null);
536
- const collapsedBannerRef = useRef(null);
537
- const VIEW_BREAKPOINT = 767;
538
- const [height, setHeight] = useState('100%');
539
- const [expanded, setExpanded] = useState();
540
- const [windowWidth, setWindowWidth] = useState(window.innerWidth);
541
- const cssDeterminesBannerView = expanded ? 'expanded' : 'collapsed';
607
+ this.state = {
608
+ height: '100%',
609
+ expanded: true,
610
+ };
542
611
  &nbsp;
543
- useEffect(() =&gt; {
544
- //setBannerHeight on Load &amp; Resize
545
- setBannerHeight();
612
+ this._renderCloseButton = this.renderCloseButton.bind(this);
613
+ this._collapseNotification = this.collapseNotification.bind(this);
614
+ this._expandNotification = this.expandNotification.bind(this);
615
+ this._setBannerHeight = this.setBannerHeight.bind(this);
616
+ }
546
617
  &nbsp;
547
- <span class="missing-if-branch" title="if path not taken" >I</span>if (window.innerWidth &lt;= VIEW_BREAKPOINT) {
548
- <span class="cstat-no" title="statement not covered" > setExpanded(false);</span>
618
+ componentDidMount() {
619
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (window.innerWidth &lt;= 767) {
620
+ <span class="cstat-no" title="statement not covered" > this.setState({</span>
621
+ expanded: false,
622
+ });
549
623
  }
550
624
  &nbsp;
551
- const debounceBrowserResizeHandler = debounce(<span class="fstat-no" title="function not covered" >()</span> =&gt; {
552
- <span class="cstat-no" title="statement not covered" > return setWindowWidth(window.innerWidth);</span>
553
- }, 600);
625
+ window.addEventListener('load', this._setBannerHeight);
626
+ window.addEventListener('resize', this._setBannerHeight);
627
+ }
554
628
  &nbsp;
555
- window.addEventListener('resize', debounceBrowserResizeHandler);
629
+ // Populate state with notification from localStorage
630
+ <span class="fstat-no" title="function not covered" > co</span>mponentDidUpdate(prevProps) {
631
+ <span class="cstat-no" title="statement not covered" > if (prevProps.result !== this.props?.result) {</span>
632
+ const { result: notifications } = <span class="cstat-no" title="statement not covered" >this.props;</span>
633
+ <span class="cstat-no" title="statement not covered" > if (Object.keys(notifications).length &gt; 0) {</span>
634
+ <span class="cstat-no" title="statement not covered" > this.setState({</span>
635
+ expanded: this.isNotificationExpanded(notifications.content),
636
+ });
637
+ }
638
+ }
639
+ }
556
640
  &nbsp;
557
- return () =&gt; {
558
- window.removeEventListener('resize', debounceBrowserResizeHandler);
559
- };
560
- }, [windowWidth]);
641
+ setBannerHeight() {
642
+ const {
643
+ result: {
644
+ content: { content },
645
+ },
646
+ } = this.props;
647
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (content) {
648
+ <span class="cstat-no" title="statement not covered" > this.bannerContainer.style.transition = 'none';</span>
649
+ &nbsp;
650
+ <span class="cstat-no" title="statement not covered" > this.state.expanded</span>
651
+ ? this.collapsedBanner.setAttribute('tabIndex', '-1')
652
+ : this.collapsedBanner.setAttribute('tabIndex', ' ');
561
653
  &nbsp;
562
- useEffect(() =&gt; {
563
- // setExpanded =&gt; updates cssDeterminesBannerView
564
- <span class="missing-if-branch" title="else path not taken" >E</span>if (Object.keys(result).length &gt; 0) {
565
- setExpanded(isNotificationExpanded());
654
+ <span class="cstat-no" title="statement not covered" > this.setState({</span>
655
+ height: this.state.expanded
656
+ ? '100%'
657
+ : this.collapsedWrapper.offsetHeight + 'px',
658
+ });
566
659
  }
567
- }, [result]);
660
+ }
568
661
  &nbsp;
569
- const isNotificationExpanded = () =&gt; {
570
- const dateDismissed = new Date(result.content.dateDismissed);
571
- const dateUpdated = new Date(result.content.dateUpdated);
662
+ <span class="fstat-no" title="function not covered" > is</span>NotificationExpanded(notification) {
663
+ const dateDismissed = <span class="cstat-no" title="statement not covered" >new Date(notification.dateDismissed);</span>
664
+ const dateUpdated = <span class="cstat-no" title="statement not covered" >new Date(notification.dateUpdated);</span>
572
665
  const notDismissed =
573
- (isDateValid(dateUpdated) &amp;&amp;
574
- <span class="branch-1 cbranch-no" title="branch not covered" > isDateValid(dateDismissed) </span>&amp;&amp;
575
- <span class="branch-2 cbranch-no" title="branch not covered" > dateUpdated &gt;= dateDismissed)</span> ||
576
- !isDateValid(dateDismissed);
577
- return notDismissed;
578
- };
666
+ <span class="cstat-no" title="statement not covered" > (this.isDateValid(dateUpdated) &amp;&amp;</span>
667
+ this.isDateValid(dateDismissed) &amp;&amp;
668
+ dateUpdated &gt;= dateDismissed) ||
669
+ !this.isDateValid(dateDismissed);
579
670
  &nbsp;
580
- const setBannerHeight = () =&gt; {
581
- <span class="missing-if-branch" title="if path not taken" >I</span>if (content) {
582
- <span class="cstat-no" title="statement not covered" > bannerContainerRef.current.style.transition = 'none';</span>
583
- <span class="cstat-no" title="statement not covered" > expanded</span>
584
- ? collapsedBannerRef.current.setAttribute('tabIndex', '-1')
585
- : collapsedBannerRef.current.setAttribute('tabIndex', ' ');
586
- &nbsp;
587
- <span class="cstat-no" title="statement not covered" > setHeight(</span>
588
- expanded ? '100%' : `${collapsedWrapperRef.current.offsetHeight}px`
589
- );
590
- }
591
- };
671
+ <span class="cstat-no" title="statement not covered" > return notDismissed;</span>
672
+ }
592
673
  &nbsp;
593
674
  /**
594
675
  * Whether the date is valid, i.e. not null
@@ -596,17 +677,17 @@ const NotificationBanner = ({ result }) =&gt; {
596
677
  * @param {Date} date
597
678
  * @return {Boolean}
598
679
  */
680
+ <span class="fstat-no" title="function not covered" > is</span>DateValid(date) {
681
+ <span class="cstat-no" title="statement not covered" > return !isNaN(Date.parse(date));</span>
682
+ }
599
683
  &nbsp;
600
- const isDateValid = (date) =&gt; {
601
- return !isNaN(Date.parse(date));
602
- };
603
684
  /**
604
685
  * Try to find this NotificationBanner instance in localStorage, or else add
605
686
  * a minimal version of it, and mark it with a dateDismissed, then update
606
687
  * localStorage.
607
688
  */
608
- &nbsp;
609
- const markNotificationClosed = <span class="fstat-no" title="function not covered" >()</span> =&gt; {
689
+ <span class="fstat-no" title="function not covered" > ma</span>rkNotificationClosed() {
690
+ const { result } = <span class="cstat-no" title="statement not covered" >this.props;</span>
610
691
  const dateDismissed = <span class="cstat-no" title="statement not covered" >new Date().toISOString();</span>
611
692
  const storageNotification = <span class="cstat-no" title="statement not covered" >result || {};</span>
612
693
  &nbsp;
@@ -633,76 +714,128 @@ const NotificationBanner = ({ result }) =&gt; {
633
714
  })
634
715
  );
635
716
  }
636
- };
717
+ }
637
718
  &nbsp;
638
719
  /**
639
720
  * Callback when the user dimisses a notification. Mark it as dismissed in
640
721
  * localStorage, empty the contents, and dispatch a custom event to notify
641
722
  * any observers that it has been dismissed.
642
723
  */
643
- &nbsp;
644
- const collapseNotification = <span class="fstat-no" title="function not covered" >(e</span>) =&gt; {
724
+ <span class="fstat-no" title="function not covered" > co</span>llapseNotification(e) {
645
725
  <span class="cstat-no" title="statement not covered" > e.stopPropagation();</span>
646
- <span class="cstat-no" title="statement not covered" > markNotificationClosed();</span>
647
- <span class="cstat-no" title="statement not covered" > collapsedBannerRef.current.setAttribute('tabIndex', ' ');</span>
648
- <span class="cstat-no" title="statement not covered" > bannerContainerRef.current.style.transition = 'height .2s ease-out';</span>
726
+ <span class="cstat-no" title="statement not covered" > this.markNotificationClosed();</span>
727
+ <span class="cstat-no" title="statement not covered" > this.collapsedBanner.setAttribute('tabIndex', ' ');</span>
728
+ <span class="cstat-no" title="statement not covered" > this.bannerContainer.style.transition = 'height .2s ease-out';</span>
729
+ <span class="cstat-no" title="statement not covered" > this.setState({</span>
730
+ expanded: false,
731
+ height: this.collapsedWrapper.offsetHeight + 'px',
732
+ });
733
+ }
649
734
  &nbsp;
650
- <span class="cstat-no" title="statement not covered" > setExpanded(false);</span>
651
- <span class="cstat-no" title="statement not covered" > setHeight(`${collapsedWrapperRef.current.offsetHeight}px`);</span>
652
- };
735
+ <span class="fstat-no" title="function not covered" > ex</span>pandNotification() {
736
+ <span class="cstat-no" title="statement not covered" > if (!this.state.expanded) {</span>
737
+ <span class="cstat-no" title="statement not covered" > this.collapsedBanner.setAttribute('tabIndex', '-1');</span>
738
+ <span class="cstat-no" title="statement not covered" > this.bannerContainer.style.transition = 'height .2s ease-out';</span>
739
+ <span class="cstat-no" title="statement not covered" > this.setState({</span>
740
+ expanded: true,
741
+ height: '100%',
742
+ });
743
+ }
744
+ }
653
745
  &nbsp;
654
- const expandNotification = <span class="fstat-no" title="function not covered" >()</span> =&gt; {
655
- <span class="cstat-no" title="statement not covered" > collapsedBannerRef.current.setAttribute('tabIndex', '-1');</span>
656
- <span class="cstat-no" title="statement not covered" > bannerContainerRef.current.style.transition = 'height .2s ease-out';</span>
657
- <span class="cstat-no" title="statement not covered" > setExpanded(true);</span>
658
- <span class="cstat-no" title="statement not covered" > setHeight('100%');</span>
659
- };
746
+ /**
747
+ * Renders the close button if the notification instance is dismissable.
748
+ *
749
+ * @return {String} HTML content
750
+ */
751
+ <span class="fstat-no" title="function not covered" > re</span>nderCloseButton() {
752
+ const {
753
+ result: {
754
+ content: { dismissable },
755
+ },
756
+ } = <span class="cstat-no" title="statement not covered" >this.props;</span>
757
+ <span class="cstat-no" title="statement not covered" > if (dismissable) {</span>
758
+ <span class="cstat-no" title="statement not covered" > return (</span>
759
+ &lt;button
760
+ onClick={this._collapseNotification}
761
+ type="button"
762
+ className="notification-banner-close"
763
+ &gt;
764
+ &lt;svg className="close-icon" aria-hidden="true" focusable="false"&gt;
765
+ &lt;CloseXIcon /&gt;
766
+ &lt;/svg&gt;
767
+ &lt;span className="sr-only"&gt;Close&lt;/span&gt;
768
+ &lt;/button&gt;
769
+ );
770
+ } else {
771
+ <span class="cstat-no" title="statement not covered" > return '';</span>
772
+ }
773
+ }
660
774
  &nbsp;
661
775
  /**
662
776
  * Render the notification if it has any contents.
663
777
  *
664
778
  * @return {String} HTML content
665
779
  */
780
+ render() {
781
+ const { expanded, height } = this.state;
782
+ const { result: { content: { enabled, content } = <span class="branch-0 cbranch-no" title="branch not covered" >{} </span>} = <span class="branch-0 cbranch-no" title="branch not covered" >{} </span>} = this.props;
783
+ if (!content || <span class="branch-1 cbranch-no" title="branch not covered" >!enabled)</span> {
784
+ return &lt;div id="notification-banner" /&gt;;
785
+ } else <span class="missing-if-branch" title="else path not taken" >E</span>{
786
+ const notificationStatus = <span class="cstat-no" title="statement not covered" >expanded ? 'expanded' : 'collapsed';</span>
787
+ const { color = <span class="branch-0 cbranch-no" title="branch not covered" >'blue',</span> label = <span class="branch-0 cbranch-no" title="branch not covered" >'Update' </span>} = <span class="cstat-no" title="statement not covered" >content;</span>
788
+ const className = <span class="cstat-no" title="statement not covered" >`notification-banner notification-banner-${color} ${notificationStatus}`;</span>
666
789
  &nbsp;
667
- return (
668
- &lt;&gt;
669
- {!content || <span class="branch-1 cbranch-no" title="branch not covered" >!enabled </span>? (
670
- &lt;div id="notification-banner" /&gt;
671
- ) : (
672
- <span class="branch-1 cbranch-no" title="branch not covered" > &lt;div</span>
673
- ref={bannerContainerRef}
790
+ <span class="cstat-no" title="statement not covered" > return (</span>
791
+ &lt;div
674
792
  style={{ height }}
675
- className={`notification-banner notification-banner-${color} ${cssDeterminesBannerView}`}
793
+ ref={<span class="fstat-no" title="function not covered" >(e</span>lem) =&gt; (<span class="cstat-no" title="statement not covered" >this.bannerContainer = elem)</span>}
794
+ className={className}
676
795
  &gt;
677
- &lt;ExpandedView
678
- label={label}
679
- expanded={expanded}
680
- content={content}
681
- dismissable={dismissable}
682
- collapseNotification={collapseNotification}
683
- /&gt;
796
+ &lt;div
797
+ ref={<span class="fstat-no" title="function not covered" >(e</span>lem) =&gt; (<span class="cstat-no" title="statement not covered" >this.expandedWrapper = elem)</span>}
798
+ className={`notification-banner-wrapper expanded-view`}
799
+ &gt;
800
+ &lt;div className="notification-banner-label"&gt;{label}&lt;/div&gt;
801
+ &lt;div className="notification-banner-content"&gt;
802
+ &lt;SanitizedContent
803
+ html={expanded ? content : '&lt;p&gt;Nothing to see here&lt;/p&gt;'}
804
+ /&gt;
805
+ &lt;/div&gt;
806
+ {expanded &amp;&amp; this._renderCloseButton()}
807
+ &lt;/div&gt;
684
808
  &nbsp;
685
- &lt;CollapsedView
686
- expandNotification={expandNotification}
687
- label={label}
688
- ref={{ collapsedWrapperRef, collapsedBannerRef }}
689
- /&gt;
809
+ &lt;div
810
+ ref={<span class="fstat-no" title="function not covered" >(e</span>lem) =&gt; (<span class="cstat-no" title="statement not covered" >this.collapsedWrapper = elem)</span>}
811
+ className={`notification-banner-wrapper collapsed-view`}
812
+ onClick={this._expandNotification}
813
+ &gt;
814
+ &lt;button
815
+ ref={<span class="fstat-no" title="function not covered" >(e</span>lem) =&gt; (<span class="cstat-no" title="statement not covered" >this.collapsedBanner = elem)</span>}
816
+ className={`notification-banner-label`}
817
+ &gt;
818
+ {label}
819
+ &lt;span className="bell-icon"&gt;
820
+ &lt;svg aria-hidden="true" focusable="false"&gt;
821
+ &lt;BellOutline /&gt;
822
+ &lt;/svg&gt;
823
+ &lt;/span&gt;
824
+ &lt;/button&gt;
825
+ &lt;/div&gt;
690
826
  &lt;/div&gt;
691
- )}
692
- &lt;/&gt;
693
- );
694
- };
827
+ );
828
+ }
829
+ }
830
+ }
695
831
  &nbsp;
696
832
  NotificationBanner.propTypes = {
697
833
  result: PropTypes.shape({
698
834
  content: PropTypes.shape({
699
- color: PropTypes.string,
700
835
  content: PropTypes.string,
701
- dateDismissed: PropTypes.string,
702
- dateUpdated: PropTypes.string,
703
- dismissable: PropTypes.bool,
704
- enabled: PropTypes.bool,
705
836
  label: PropTypes.string,
837
+ color: PropTypes.string,
838
+ dismissable: PropTypes.bool,
706
839
  }),
707
840
  }),
708
841
  };
@@ -710,11 +843,10 @@ NotificationBanner.propTypes = {
710
843
  NotificationBanner.defaultProps = {
711
844
  result: {
712
845
  content: {
713
- color: 'blue',
714
846
  content: null,
715
- dismissable: true,
716
- enabled: true,
717
847
  label: 'Update',
848
+ color: 'blue',
849
+ dismissable: true,
718
850
  },
719
851
  },
720
852
  };
@@ -733,7 +865,7 @@ export default withGetConfig(NotificationBanner, {
733
865
  <div class='footer quiet pad2 space-top1 center small'>
734
866
  Code coverage generated by
735
867
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
736
- at Tue Sep 13 2022 18:25:01 GMT-0700 (Pacific Daylight Time)
868
+ at Tue Aug 30 2022 10:59:35 GMT-0400 (Eastern Daylight Time)
737
869
  </div>
738
870
  <script src="../../../prettify.js"></script>
739
871
  <script>