qpp-style 9.52.0 → 9.53.0

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 (147) hide show
  1. package/components/Header/HeaderUI.jsx +1 -1
  2. package/components/SideNav/Content/LevelOneContent.jsx +22 -21
  3. package/components/SideNav/Content/SelectRole/utils.js +13 -0
  4. package/components/SideNav/UI/SideNavUI.jsx +82 -24
  5. package/coverage/clover.xml +157 -131
  6. package/coverage/coverage-final.json +10 -10
  7. package/coverage/lcov-report/components/Dropdown/index.html +116 -0
  8. package/coverage/lcov-report/components/Dropdown/index.js.html +289 -0
  9. package/coverage/lcov-report/components/SanitizedContent/index.html +19 -19
  10. package/coverage/lcov-report/components/SanitizedContent/index.jsx.html +434 -437
  11. package/coverage/lcov-report/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +163 -0
  12. package/coverage/lcov-report/components/SideNav/AnimationGroup/index.html +116 -0
  13. package/coverage/lcov-report/components/SideNav/Content/LevelOneContent.jsx.html +265 -0
  14. package/coverage/lcov-report/components/SideNav/Content/SelectRole/index.html +35 -20
  15. package/coverage/lcov-report/components/SideNav/Content/SelectRole/index.js.html +298 -0
  16. package/coverage/lcov-report/components/SideNav/Content/SelectRole/utils.js.html +229 -208
  17. package/coverage/lcov-report/components/SideNav/Content/index.html +131 -0
  18. package/coverage/lcov-report/components/SideNav/Content/index.js.html +94 -0
  19. package/coverage/lcov-report/components/SideNav/Details/IndividualDetails.jsx.html +136 -0
  20. package/coverage/lcov-report/components/SideNav/Details/PracticeDetails.jsx.html +235 -0
  21. package/coverage/lcov-report/components/SideNav/Details/index.html +146 -0
  22. package/coverage/lcov-report/components/SideNav/Details/index.js.html +97 -0
  23. package/coverage/lcov-report/components/SideNav/Links/CmsSwitchLink.jsx.html +205 -0
  24. package/coverage/lcov-report/components/SideNav/Links/NavItemInline.jsx.html +244 -0
  25. package/coverage/lcov-report/components/SideNav/Links/NavLinkContainer.jsx.html +184 -0
  26. package/coverage/lcov-report/components/SideNav/Links/NavLinkDrawer.jsx.html +988 -0
  27. package/coverage/lcov-report/components/SideNav/Links/NavLinkInline.jsx.html +418 -0
  28. package/coverage/lcov-report/components/SideNav/Links/NavLinkToggle.jsx.html +184 -0
  29. package/coverage/lcov-report/components/SideNav/Links/index.html +206 -0
  30. package/coverage/lcov-report/components/SideNav/Links/index.js.html +124 -0
  31. package/coverage/lcov-report/components/SideNav/UI/DynamicContent.jsx.html +628 -0
  32. package/coverage/lcov-report/components/SideNav/UI/SideNavUI.jsx.html +712 -0
  33. package/coverage/lcov-report/components/SideNav/UI/default-markup.js.html +97 -0
  34. package/coverage/lcov-report/components/SideNav/UI/index.html +161 -0
  35. package/coverage/lcov-report/components/SideNav/UI/index.js.html +94 -0
  36. package/coverage/lcov-report/components/SideNav/helpers.js.html +77 -1157
  37. package/coverage/lcov-report/components/SideNav/index.html +22 -22
  38. package/coverage/lcov-report/index.html +46 -46
  39. package/coverage/lcov-report/lib/SvgComponents.jsx.html +1225 -1246
  40. package/coverage/lcov-report/lib/index.html +22 -37
  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 +1 -1
  44. package/coverage/lcov-report/react/components/Button/index.js.html +1 -1
  45. package/coverage/lcov-report/react/components/Dropdown/index.html +21 -21
  46. package/coverage/lcov-report/react/components/Dropdown/index.js.html +27 -27
  47. package/coverage/lcov-report/react/components/Error/Collapsible.jsx.html +1 -1
  48. package/coverage/lcov-report/react/components/Error/ErrorUI.jsx.html +1 -1
  49. package/coverage/lcov-report/react/components/Error/error.js.html +1 -1
  50. package/coverage/lcov-report/react/components/Error/index.html +1 -1
  51. package/coverage/lcov-report/react/components/Footer/FooterTooltip.jsx.html +1 -1
  52. package/coverage/lcov-report/react/components/Footer/FooterUI.jsx.html +1 -1
  53. package/coverage/lcov-report/react/components/Footer/SocialLinks.jsx.html +1 -1
  54. package/coverage/lcov-report/react/components/Footer/Subscribe.jsx.html +1 -1
  55. package/coverage/lcov-report/react/components/Footer/footer.js.html +1 -1
  56. package/coverage/lcov-report/react/components/Footer/index.html +1 -1
  57. package/coverage/lcov-report/react/components/GovBanner/index.html +1 -1
  58. package/coverage/lcov-report/react/components/GovBanner/index.js.html +1 -1
  59. package/coverage/lcov-report/react/components/Header/HeaderAccountMenu.jsx.html +1 -1
  60. package/coverage/lcov-report/react/components/Header/HeaderCancel.jsx.html +1 -1
  61. package/coverage/lcov-report/react/components/Header/HeaderContainer.jsx.html +1 -1
  62. package/coverage/lcov-report/react/components/Header/HeaderLogo.jsx.html +1 -1
  63. package/coverage/lcov-report/react/components/Header/HeaderMenuButton.js.html +1 -1
  64. package/coverage/lcov-report/react/components/Header/HeaderMenuItem.jsx.html +1 -1
  65. package/coverage/lcov-report/react/components/Header/HeaderMenuLink.js.html +1 -1
  66. package/coverage/lcov-report/react/components/Header/HeaderMenuSignOutButton.js.html +1 -1
  67. package/coverage/lcov-report/react/components/Header/HeaderMobileButton.js.html +1 -1
  68. package/coverage/lcov-report/react/components/Header/HeaderUI.jsx.html +2 -2
  69. package/coverage/lcov-report/react/components/Header/HelpIcon.jsx.html +1 -1
  70. package/coverage/lcov-report/react/components/Header/ImpersonatorBanner.jsx.html +1 -1
  71. package/coverage/lcov-report/react/components/Header/NavigationButtonIcon.jsx.html +1 -1
  72. package/coverage/lcov-report/react/components/Header/PreviewBanner.jsx.html +1 -1
  73. package/coverage/lcov-report/react/components/Header/header.js.html +1 -1
  74. package/coverage/lcov-report/react/components/Header/hooks.js.html +1 -1
  75. package/coverage/lcov-report/react/components/Header/index.html +1 -1
  76. package/coverage/lcov-report/react/components/Header/utag-helpers.js.html +1 -1
  77. package/coverage/lcov-report/react/components/HeaderSearchBar/index.html +1 -1
  78. package/coverage/lcov-report/react/components/HeaderSearchBar/index.jsx.html +1 -1
  79. package/coverage/lcov-report/react/components/Infotip/Infotip.jsx.html +1 -1
  80. package/coverage/lcov-report/react/components/Infotip/InfotipContent.jsx.html +1 -1
  81. package/coverage/lcov-report/react/components/Infotip/InfotipIcon.jsx.html +1 -1
  82. package/coverage/lcov-report/react/components/Infotip/index.html +1 -1
  83. package/coverage/lcov-report/react/components/Infotip/index.js.html +1 -1
  84. package/coverage/lcov-report/react/components/Modal/LegacyModal.jsx.html +1 -1
  85. package/coverage/lcov-report/react/components/Modal/Modal.jsx.html +1 -1
  86. package/coverage/lcov-report/react/components/Modal/index.html +1 -1
  87. package/coverage/lcov-report/react/components/Modal/index.jsx.html +1 -1
  88. package/coverage/lcov-report/react/components/NotificationBanner/CollapsedView.js.html +1 -1
  89. package/coverage/lcov-report/react/components/NotificationBanner/ExpandedView.js.html +1 -1
  90. package/coverage/lcov-report/react/components/NotificationBanner/index.html +1 -1
  91. package/coverage/lcov-report/react/components/NotificationBanner/index.js.html +1 -1
  92. package/coverage/lcov-report/react/components/SanitizedContent/index.html +1 -1
  93. package/coverage/lcov-report/react/components/SanitizedContent/index.jsx.html +7 -7
  94. package/coverage/lcov-report/react/components/Session/Session.jsx.html +1 -1
  95. package/coverage/lcov-report/react/components/Session/SessionDialogWrapped.jsx.html +1 -1
  96. package/coverage/lcov-report/react/components/Session/index.html +1 -1
  97. package/coverage/lcov-report/react/components/Session/index.jsx.html +1 -1
  98. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +3 -3
  99. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/index.html +1 -1
  100. package/coverage/lcov-report/react/components/SideNav/Content/LevelOneContent.jsx.html +47 -44
  101. package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/index.html +31 -31
  102. package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/index.js.html +45 -45
  103. package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/utils.js.html +105 -66
  104. package/coverage/lcov-report/react/components/SideNav/Content/index.html +12 -12
  105. package/coverage/lcov-report/react/components/SideNav/Content/index.js.html +1 -1
  106. package/coverage/lcov-report/react/components/SideNav/Details/IndividualDetails.jsx.html +1 -1
  107. package/coverage/lcov-report/react/components/SideNav/Details/PracticeDetails.jsx.html +1 -1
  108. package/coverage/lcov-report/react/components/SideNav/Details/index.html +1 -1
  109. package/coverage/lcov-report/react/components/SideNav/Details/index.js.html +1 -1
  110. package/coverage/lcov-report/react/components/SideNav/Links/CmsSwitchLink.jsx.html +1 -1
  111. package/coverage/lcov-report/react/components/SideNav/Links/NavItemInline.jsx.html +1 -1
  112. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkContainer.jsx.html +1 -1
  113. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkDrawer.jsx.html +1 -1
  114. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkInline.jsx.html +1 -1
  115. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkToggle.jsx.html +4 -4
  116. package/coverage/lcov-report/react/components/SideNav/Links/index.html +1 -1
  117. package/coverage/lcov-report/react/components/SideNav/Links/index.js.html +1 -1
  118. package/coverage/lcov-report/react/components/SideNav/UI/DynamicContent.jsx.html +1 -1
  119. package/coverage/lcov-report/react/components/SideNav/UI/SideNavUI.jsx.html +236 -62
  120. package/coverage/lcov-report/react/components/SideNav/UI/default-markup.js.html +1 -1
  121. package/coverage/lcov-report/react/components/SideNav/UI/index.html +20 -20
  122. package/coverage/lcov-report/react/components/SideNav/UI/index.js.html +1 -1
  123. package/coverage/lcov-report/react/components/SideNav/helpers.js.html +4 -4
  124. package/coverage/lcov-report/react/components/SideNav/index.html +1 -1
  125. package/coverage/lcov-report/react/components/SideNav/index.js.html +1 -1
  126. package/coverage/lcov-report/react/components/hooks/index.html +1 -1
  127. package/coverage/lcov-report/react/components/hooks/useGetConfig.js.html +1 -1
  128. package/coverage/lcov-report/react/index.html +1 -1
  129. package/coverage/lcov-report/react/index.js.html +1 -1
  130. package/coverage/lcov-report/react/lib/Chevron.jsx.html +1 -1
  131. package/coverage/lcov-report/react/lib/SvgComponents.jsx.html +2 -2
  132. package/coverage/lcov-report/react/lib/index.html +1 -1
  133. package/coverage/lcov-report/react/session/index.html +1 -1
  134. package/coverage/lcov-report/react/session/index.js.html +1 -1
  135. package/coverage/lcov-report/react/session/logout.js.html +1 -1
  136. package/coverage/lcov-report/react/session/refresh.js.html +1 -1
  137. package/coverage/lcov-report/react/session/ttl.js.html +1 -1
  138. package/coverage/lcov.info +310 -255
  139. package/dist/browser.js +1 -1
  140. package/dist/browser.js.map +1 -1
  141. package/dist/index.js +1 -1
  142. package/dist/index.js.map +1 -1
  143. package/dist/react/index.js +1 -1
  144. package/dist/react/index.js.LICENSE.txt +0 -10
  145. package/dist/react/index.js.map +1 -1
  146. package/package.json +15 -15
  147. package/test/components/SideNavUI.test.js +88 -1
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">71.81% </span>
26
+ <span class="strong">48.14% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>107/149</span>
28
+ <span class='fraction'>26/54</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
33
+ <span class="strong">22.72% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/0</span>
35
+ <span class='fraction'>5/22</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">0% </span>
40
+ <span class="strong">38.46% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/12</span>
42
+ <span class='fraction'>5/13</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">71.81% </span>
47
+ <span class="strong">50% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>107/149</span>
49
+ <span class='fraction'>24/48</span>
50
50
  </div>
51
51
 
52
52
 
@@ -57,11 +57,11 @@
57
57
  <template id="filterTemplate">
58
58
  <div class="quiet">
59
59
  Filter:
60
- <input oninput="onInput()" type="search" id="fileSearch">
60
+ <input type="search" id="fileSearch">
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>
@@ -212,181 +212,196 @@
212
212
  <a name='L147'></a><a href='#L147'>147</a>
213
213
  <a name='L148'></a><a href='#L148'>148</a>
214
214
  <a name='L149'></a><a href='#L149'>149</a>
215
- <a name='L150'></a><a href='#L150'>150</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
215
+ <a name='L150'></a><a href='#L150'>150</a>
216
+ <a name='L151'></a><a href='#L151'>151</a>
217
+ <a name='L152'></a><a href='#L152'>152</a>
218
+ <a name='L153'></a><a href='#L153'>153</a>
219
+ <a name='L154'></a><a href='#L154'>154</a>
220
+ <a name='L155'></a><a href='#L155'>155</a>
221
+ <a name='L156'></a><a href='#L156'>156</a>
222
+ <a name='L157'></a><a href='#L157'>157</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
223
+ <span class="cline-any cline-neutral">&nbsp;</span>
224
+ <span class="cline-any cline-neutral">&nbsp;</span>
225
+ <span class="cline-any cline-neutral">&nbsp;</span>
226
+ <span class="cline-any cline-neutral">&nbsp;</span>
216
227
  <span class="cline-any cline-yes">1x</span>
217
- <span class="cline-any cline-yes">1x</span>
218
- <span class="cline-any cline-yes">1x</span>
219
- <span class="cline-any cline-yes">1x</span>
220
- <span class="cline-any cline-yes">1x</span>
221
- <span class="cline-any cline-no">&nbsp;</span>
222
- <span class="cline-any cline-no">&nbsp;</span>
223
- <span class="cline-any cline-no">&nbsp;</span>
224
- <span class="cline-any cline-no">&nbsp;</span>
225
- <span class="cline-any cline-no">&nbsp;</span>
226
- <span class="cline-any cline-yes">1x</span>
227
- <span class="cline-any cline-yes">1x</span>
228
- <span class="cline-any cline-yes">1x</span>
229
- <span class="cline-any cline-yes">1x</span>
230
- <span class="cline-any cline-yes">1x</span>
231
- <span class="cline-any cline-yes">1x</span>
232
- <span class="cline-any cline-yes">1x</span>
233
- <span class="cline-any cline-yes">1x</span>
234
- <span class="cline-any cline-yes">1x</span>
235
- <span class="cline-any cline-yes">1x</span>
236
- <span class="cline-any cline-yes">1x</span>
237
- <span class="cline-any cline-yes">1x</span>
238
- <span class="cline-any cline-yes">1x</span>
239
- <span class="cline-any cline-yes">1x</span>
240
- <span class="cline-any cline-yes">1x</span>
241
- <span class="cline-any cline-yes">1x</span>
242
- <span class="cline-any cline-yes">1x</span>
243
- <span class="cline-any cline-yes">1x</span>
244
- <span class="cline-any cline-yes">1x</span>
245
- <span class="cline-any cline-yes">1x</span>
246
- <span class="cline-any cline-yes">1x</span>
247
- <span class="cline-any cline-yes">1x</span>
248
- <span class="cline-any cline-yes">1x</span>
249
- <span class="cline-any cline-no">&nbsp;</span>
250
- <span class="cline-any cline-yes">1x</span>
251
- <span class="cline-any cline-yes">1x</span>
252
- <span class="cline-any cline-yes">1x</span>
253
- <span class="cline-any cline-yes">1x</span>
254
- <span class="cline-any cline-yes">1x</span>
255
- <span class="cline-any cline-yes">1x</span>
256
- <span class="cline-any cline-no">&nbsp;</span>
257
- <span class="cline-any cline-yes">1x</span>
258
- <span class="cline-any cline-yes">1x</span>
259
- <span class="cline-any cline-yes">1x</span>
260
- <span class="cline-any cline-yes">1x</span>
261
- <span class="cline-any cline-yes">1x</span>
262
- <span class="cline-any cline-yes">1x</span>
263
- <span class="cline-any cline-yes">1x</span>
264
- <span class="cline-any cline-yes">1x</span>
265
- <span class="cline-any cline-no">&nbsp;</span>
266
- <span class="cline-any cline-no">&nbsp;</span>
267
- <span class="cline-any cline-yes">1x</span>
268
- <span class="cline-any cline-yes">1x</span>
269
- <span class="cline-any cline-yes">1x</span>
270
- <span class="cline-any cline-yes">1x</span>
271
- <span class="cline-any cline-yes">1x</span>
272
- <span class="cline-any cline-yes">1x</span>
273
- <span class="cline-any cline-yes">1x</span>
274
- <span class="cline-any cline-yes">1x</span>
275
- <span class="cline-any cline-no">&nbsp;</span>
276
- <span class="cline-any cline-no">&nbsp;</span>
277
- <span class="cline-any cline-yes">1x</span>
278
- <span class="cline-any cline-yes">1x</span>
279
- <span class="cline-any cline-yes">1x</span>
280
- <span class="cline-any cline-no">&nbsp;</span>
281
- <span class="cline-any cline-no">&nbsp;</span>
282
- <span class="cline-any cline-yes">1x</span>
283
- <span class="cline-any cline-yes">1x</span>
284
- <span class="cline-any cline-yes">1x</span>
285
- <span class="cline-any cline-yes">1x</span>
286
- <span class="cline-any cline-yes">1x</span>
287
- <span class="cline-any cline-yes">1x</span>
288
- <span class="cline-any cline-yes">1x</span>
289
- <span class="cline-any cline-yes">1x</span>
290
- <span class="cline-any cline-no">&nbsp;</span>
291
- <span class="cline-any cline-no">&nbsp;</span>
292
- <span class="cline-any cline-no">&nbsp;</span>
293
- <span class="cline-any cline-no">&nbsp;</span>
294
- <span class="cline-any cline-no">&nbsp;</span>
295
- <span class="cline-any cline-no">&nbsp;</span>
296
- <span class="cline-any cline-no">&nbsp;</span>
297
228
  <span class="cline-any cline-no">&nbsp;</span>
298
229
  <span class="cline-any cline-no">&nbsp;</span>
230
+ <span class="cline-any cline-neutral">&nbsp;</span>
231
+ <span class="cline-any cline-neutral">&nbsp;</span>
299
232
  <span class="cline-any cline-no">&nbsp;</span>
300
- <span class="cline-any cline-no">&nbsp;</span>
301
- <span class="cline-any cline-no">&nbsp;</span>
302
- <span class="cline-any cline-no">&nbsp;</span>
303
- <span class="cline-any cline-no">&nbsp;</span>
304
- <span class="cline-any cline-no">&nbsp;</span>
305
- <span class="cline-any cline-no">&nbsp;</span>
306
- <span class="cline-any cline-yes">1x</span>
307
- <span class="cline-any cline-yes">1x</span>
308
- <span class="cline-any cline-yes">1x</span>
233
+ <span class="cline-any cline-neutral">&nbsp;</span>
234
+ <span class="cline-any cline-neutral">&nbsp;</span>
309
235
  <span class="cline-any cline-yes">1x</span>
236
+ <span class="cline-any cline-neutral">&nbsp;</span>
237
+ <span class="cline-any cline-neutral">&nbsp;</span>
238
+ <span class="cline-any cline-neutral">&nbsp;</span>
239
+ <span class="cline-any cline-neutral">&nbsp;</span>
240
+ <span class="cline-any cline-neutral">&nbsp;</span>
241
+ <span class="cline-any cline-neutral">&nbsp;</span>
242
+ <span class="cline-any cline-neutral">&nbsp;</span>
310
243
  <span class="cline-any cline-yes">1x</span>
244
+ <span class="cline-any cline-neutral">&nbsp;</span>
245
+ <span class="cline-any cline-neutral">&nbsp;</span>
246
+ <span class="cline-any cline-neutral">&nbsp;</span>
247
+ <span class="cline-any cline-neutral">&nbsp;</span>
248
+ <span class="cline-any cline-neutral">&nbsp;</span>
249
+ <span class="cline-any cline-neutral">&nbsp;</span>
250
+ <span class="cline-any cline-neutral">&nbsp;</span>
251
+ <span class="cline-any cline-neutral">&nbsp;</span>
252
+ <span class="cline-any cline-neutral">&nbsp;</span>
253
+ <span class="cline-any cline-neutral">&nbsp;</span>
254
+ <span class="cline-any cline-neutral">&nbsp;</span>
255
+ <span class="cline-any cline-neutral">&nbsp;</span>
311
256
  <span class="cline-any cline-yes">1x</span>
312
- <span class="cline-any cline-yes">1x</span>
313
- <span class="cline-any cline-yes">1x</span>
314
- <span class="cline-any cline-no">&nbsp;</span>
315
257
  <span class="cline-any cline-no">&nbsp;</span>
258
+ <span class="cline-any cline-neutral">&nbsp;</span>
259
+ <span class="cline-any cline-neutral">&nbsp;</span>
260
+ <span class="cline-any cline-neutral">&nbsp;</span>
261
+ <span class="cline-any cline-neutral">&nbsp;</span>
262
+ <span class="cline-any cline-neutral">&nbsp;</span>
263
+ <span class="cline-any cline-neutral">&nbsp;</span>
264
+ <span class="cline-any cline-neutral">&nbsp;</span>
316
265
  <span class="cline-any cline-yes">1x</span>
266
+ <span class="cline-any cline-no">&nbsp;</span>
267
+ <span class="cline-any cline-no">&nbsp;</span>
268
+ <span class="cline-any cline-neutral">&nbsp;</span>
269
+ <span class="cline-any cline-neutral">&nbsp;</span>
270
+ <span class="cline-any cline-neutral">&nbsp;</span>
271
+ <span class="cline-any cline-neutral">&nbsp;</span>
272
+ <span class="cline-any cline-neutral">&nbsp;</span>
273
+ <span class="cline-any cline-neutral">&nbsp;</span>
274
+ <span class="cline-any cline-neutral">&nbsp;</span>
275
+ <span class="cline-any cline-yes">1x</span>
276
+ <span class="cline-any cline-no">&nbsp;</span>
277
+ <span class="cline-any cline-no">&nbsp;</span>
278
+ <span class="cline-any cline-neutral">&nbsp;</span>
279
+ <span class="cline-any cline-neutral">&nbsp;</span>
280
+ <span class="cline-any cline-yes">1x</span>
281
+ <span class="cline-any cline-no">&nbsp;</span>
282
+ <span class="cline-any cline-no">&nbsp;</span>
283
+ <span class="cline-any cline-neutral">&nbsp;</span>
284
+ <span class="cline-any cline-neutral">&nbsp;</span>
285
+ <span class="cline-any cline-neutral">&nbsp;</span>
286
+ <span class="cline-any cline-neutral">&nbsp;</span>
287
+ <span class="cline-any cline-neutral">&nbsp;</span>
288
+ <span class="cline-any cline-neutral">&nbsp;</span>
289
+ <span class="cline-any cline-neutral">&nbsp;</span>
290
+ <span class="cline-any cline-yes">1x</span>
291
+ <span class="cline-any cline-no">&nbsp;</span>
292
+ <span class="cline-any cline-no">&nbsp;</span>
293
+ <span class="cline-any cline-neutral">&nbsp;</span>
294
+ <span class="cline-any cline-no">&nbsp;</span>
295
+ <span class="cline-any cline-no">&nbsp;</span>
296
+ <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
300
+ <span class="cline-any cline-no">&nbsp;</span>
301
+ <span class="cline-any cline-no">&nbsp;</span>
302
+ <span class="cline-any cline-neutral">&nbsp;</span>
303
+ <span class="cline-any cline-no">&nbsp;</span>
304
+ <span class="cline-any cline-no">&nbsp;</span>
305
+ <span class="cline-any cline-neutral">&nbsp;</span>
306
+ <span class="cline-any cline-no">&nbsp;</span>
307
+ <span class="cline-any cline-neutral">&nbsp;</span>
308
+ <span class="cline-any cline-neutral">&nbsp;</span>
309
+ <span class="cline-any cline-neutral">&nbsp;</span>
310
+ <span class="cline-any cline-neutral">&nbsp;</span>
311
+ <span class="cline-any cline-neutral">&nbsp;</span>
312
+ <span class="cline-any cline-neutral">&nbsp;</span>
313
+ <span class="cline-any cline-neutral">&nbsp;</span>
314
+ <span class="cline-any cline-yes">1x</span>
315
+ <span class="cline-any cline-no">&nbsp;</span>
316
+ <span class="cline-any cline-no">&nbsp;</span>
317
+ <span class="cline-any cline-neutral">&nbsp;</span>
318
+ <span class="cline-any cline-neutral">&nbsp;</span>
317
319
  <span class="cline-any cline-yes">1x</span>
320
+ <span class="cline-any cline-neutral">&nbsp;</span>
321
+ <span class="cline-any cline-neutral">&nbsp;</span>
322
+ <span class="cline-any cline-neutral">&nbsp;</span>
323
+ <span class="cline-any cline-neutral">&nbsp;</span>
324
+ <span class="cline-any cline-neutral">&nbsp;</span>
325
+ <span class="cline-any cline-neutral">&nbsp;</span>
326
+ <span class="cline-any cline-neutral">&nbsp;</span>
327
+ <span class="cline-any cline-neutral">&nbsp;</span>
328
+ <span class="cline-any cline-neutral">&nbsp;</span>
329
+ <span class="cline-any cline-neutral">&nbsp;</span>
330
+ <span class="cline-any cline-neutral">&nbsp;</span>
318
331
  <span class="cline-any cline-yes">1x</span>
332
+ <span class="cline-any cline-yes">2x</span>
333
+ <span class="cline-any cline-yes">2x</span>
334
+ <span class="cline-any cline-yes">2x</span>
319
335
  <span class="cline-any cline-yes">1x</span>
336
+ <span class="cline-any cline-neutral">&nbsp;</span>
337
+ <span class="cline-any cline-neutral">&nbsp;</span>
338
+ <span class="cline-any cline-neutral">&nbsp;</span>
339
+ <span class="cline-any cline-neutral">&nbsp;</span>
340
+ <span class="cline-any cline-neutral">&nbsp;</span>
341
+ <span class="cline-any cline-neutral">&nbsp;</span>
342
+ <span class="cline-any cline-neutral">&nbsp;</span>
343
+ <span class="cline-any cline-neutral">&nbsp;</span>
344
+ <span class="cline-any cline-neutral">&nbsp;</span>
345
+ <span class="cline-any cline-neutral">&nbsp;</span>
320
346
  <span class="cline-any cline-yes">1x</span>
347
+ <span class="cline-any cline-yes">4x</span>
348
+ <span class="cline-any cline-yes">4x</span>
349
+ <span class="cline-any cline-neutral">&nbsp;</span>
350
+ <span class="cline-any cline-neutral">&nbsp;</span>
351
+ <span class="cline-any cline-neutral">&nbsp;</span>
352
+ <span class="cline-any cline-neutral">&nbsp;</span>
353
+ <span class="cline-any cline-neutral">&nbsp;</span>
354
+ <span class="cline-any cline-neutral">&nbsp;</span>
355
+ <span class="cline-any cline-yes">4x</span>
356
+ <span class="cline-any cline-neutral">&nbsp;</span>
357
+ <span class="cline-any cline-neutral">&nbsp;</span>
358
+ <span class="cline-any cline-neutral">&nbsp;</span>
359
+ <span class="cline-any cline-neutral">&nbsp;</span>
360
+ <span class="cline-any cline-neutral">&nbsp;</span>
361
+ <span class="cline-any cline-neutral">&nbsp;</span>
362
+ <span class="cline-any cline-neutral">&nbsp;</span>
363
+ <span class="cline-any cline-neutral">&nbsp;</span>
321
364
  <span class="cline-any cline-yes">1x</span>
322
- <span class="cline-any cline-yes">1x</span>
323
- <span class="cline-any cline-yes">1x</span>
324
- <span class="cline-any cline-yes">1x</span>
325
- <span class="cline-any cline-yes">1x</span>
326
- <span class="cline-any cline-yes">1x</span>
327
- <span class="cline-any cline-yes">1x</span>
328
- <span class="cline-any cline-yes">1x</span>
329
- <span class="cline-any cline-yes">1x</span>
330
- <span class="cline-any cline-yes">1x</span>
331
- <span class="cline-any cline-no">&nbsp;</span>
332
- <span class="cline-any cline-no">&nbsp;</span>
365
+ <span class="cline-any cline-yes">2x</span>
366
+ <span class="cline-any cline-neutral">&nbsp;</span>
367
+ <span class="cline-any cline-yes">2x</span>
333
368
  <span class="cline-any cline-no">&nbsp;</span>
334
- <span class="cline-any cline-no">&nbsp;</span>
335
- <span class="cline-any cline-yes">1x</span>
336
- <span class="cline-any cline-yes">1x</span>
337
- <span class="cline-any cline-yes">1x</span>
369
+ <span class="cline-any cline-neutral">&nbsp;</span>
370
+ <span class="cline-any cline-neutral">&nbsp;</span>
371
+ <span class="cline-any cline-neutral">&nbsp;</span>
372
+ <span class="cline-any cline-neutral">&nbsp;</span>
373
+ <span class="cline-any cline-neutral">&nbsp;</span>
374
+ <span class="cline-any cline-neutral">&nbsp;</span>
375
+ <span class="cline-any cline-neutral">&nbsp;</span>
338
376
  <span class="cline-any cline-yes">1x</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>
342
- <span class="cline-any cline-no">&nbsp;</span>
343
- <span class="cline-any cline-yes">1x</span>
344
- <span class="cline-any cline-yes">1x</span>
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>
348
- <span class="cline-any cline-yes">1x</span>
349
- <span class="cline-any cline-yes">1x</span>
350
- <span class="cline-any cline-yes">1x</span>
351
- <span class="cline-any cline-no">&nbsp;</span>
352
- <span class="cline-any cline-no">&nbsp;</span>
353
- <span class="cline-any cline-no">&nbsp;</span>
354
- <span class="cline-any cline-no">&nbsp;</span>
355
- <span class="cline-any cline-no">&nbsp;</span>
356
- <span class="cline-any cline-yes">1x</span>
357
- <span class="cline-any cline-yes">1x</span>
358
- <span class="cline-any cline-yes">1x</span>
359
- <span class="cline-any cline-yes">1x</span>
360
- <span class="cline-any cline-yes">1x</span>
361
- <span class="cline-any cline-yes">1x</span>
362
- <span class="cline-any cline-yes">1x</span>
363
- <span class="cline-any cline-no">&nbsp;</span>
377
+ <span class="cline-any cline-yes">2x</span>
364
378
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/**
365
379
  * Extract values from cookies, return parsed values in an array
366
380
  * @param {array} cookies
367
381
  * @returns {array}
368
382
  */
369
- const extractCookieValues = <span class="fstat-no" title="function not covered" >(cookies) =&gt; {</span>
370
- <span class="cstat-no" title="statement not covered" > const [hasAuthorizations, cmsInternalRoleValues] = cookies;</span>
371
- <span class="cstat-no" title="statement not covered" > const cmsInternalRoles = cmsInternalRoleValues</span>
372
- <span class="cstat-no" title="statement not covered" > ? JSON.parse(cmsInternalRoleValues)</span>
373
- <span class="cstat-no" title="statement not covered" > : null;</span>
383
+ const extractCookieValues = <span class="fstat-no" title="function not covered" >(c</span>ookies) =&gt; {
384
+ const [hasAuthorizations, cmsInternalRoleValues] = <span class="cstat-no" title="statement not covered" >cookies;</span>
385
+ const cmsInternalRoles = <span class="cstat-no" title="statement not covered" >cmsInternalRoleValues</span>
386
+ ? JSON.parse(cmsInternalRoleValues)
387
+ : null;
374
388
  <span class="cstat-no" title="statement not covered" > return [hasAuthorizations, cmsInternalRoles];</span>
375
389
  };
376
390
  &nbsp;
377
391
  const reviewerRoles = [
378
- 'QPP Self-Nomination',
379
- 'QPP Targeted Review &amp; Exceptions',
380
- 'QPP Case Management - PIMMS Reviewer',
381
- 'QPP Case Management - ACO PAC Reviewer',
382
- 'QPP Case Management - CMS Reviewer',
392
+ "QPP Self-Nomination",
393
+ "QPP Targeted Review &amp; Exceptions",
394
+ "QPP Case Management - PIMMS Reviewer",
395
+ "QPP Case Management - ACO PAC Reviewer",
396
+ "QPP Case Management - CMS Reviewer",
383
397
  ];
384
398
  &nbsp;
385
399
  const cmsRoles = [
386
- 'QPP Content Management - Author',
387
- 'QPP Content Management - Approver',
388
- 'QPP Content Management - Admin',
389
- 'QPP Front-end - Author',
400
+ "QPP Content Management - Author",
401
+ "QPP Content Management - Approver",
402
+ "QPP Content Management - Admin",
403
+ "QPP Content Management - Previewer",
404
+ "QPP Front-end - Author",
390
405
  ];
391
406
  &nbsp;
392
407
  /**
@@ -394,24 +409,17 @@ const cmsRoles = [
394
409
  * @param {string} cmsInternalRole
395
410
  * @returns {boolean}
396
411
  */
397
- export const isReviewerRole = <span class="fstat-no" title="function not covered" >(cmsInternalRole) =&gt; {</span>
412
+ export const isReviewerRole = <span class="fstat-no" title="function not covered" >(c</span>msInternalRole) =&gt; {
398
413
  <span class="cstat-no" title="statement not covered" > return reviewerRoles.includes(cmsInternalRole);</span>
399
414
  };
400
415
  &nbsp;
401
- // Check if internal cms role in a Content Mgr role
402
- // @param {string} cmsInternalRole
403
- // @returns {boolean}
404
- export const isContentMgmtRole = <span class="fstat-no" title="function not covered" >(cmsInternalRole) =&gt; {</span>
405
- <span class="cstat-no" title="statement not covered" > return cmsRoles.includes(cmsInternalRole);</span>
406
- };
407
- &nbsp;
408
416
  /**
409
417
  * Check if internal cms roles has Reviewer role
410
418
  * @param {array} cmsInternalRoles array of values
411
419
  * @returns {boolean}
412
420
  */
413
- const hasReviewerRole = <span class="fstat-no" title="function not covered" >(cmsInternalRoles) =&gt; {</span>
414
- <span class="cstat-no" title="statement not covered" > if (!cmsInternalRoles) return false;</span>
421
+ const hasReviewerRole = <span class="fstat-no" title="function not covered" >(c</span>msInternalRoles) =&gt; {
422
+ <span class="cstat-no" title="statement not covered" > if (!cmsInternalRoles) <span class="cstat-no" title="statement not covered" >return false;</span></span>
415
423
  <span class="cstat-no" title="statement not covered" > return cmsInternalRoles.some(isReviewerRole);</span>
416
424
  };
417
425
  &nbsp;
@@ -420,14 +428,14 @@ const hasReviewerRole = <span class="fstat-no" title="function not covered" >(cm
420
428
  * @param {array} cmsInternalRoles array of values
421
429
  * @returns {boolean}
422
430
  */
423
- const hasHelpdeskRole = <span class="fstat-no" title="function not covered" >(cmsInternalRoles) =&gt; {</span>
424
- <span class="cstat-no" title="statement not covered" > if (!cmsInternalRoles) return false;</span>
425
- <span class="cstat-no" title="statement not covered" > return cmsInternalRoles.includes('QPP Helpdesk');</span>
431
+ const hasHelpdeskRole = <span class="fstat-no" title="function not covered" >(c</span>msInternalRoles) =&gt; {
432
+ <span class="cstat-no" title="statement not covered" > if (!cmsInternalRoles) <span class="cstat-no" title="statement not covered" >return false;</span></span>
433
+ <span class="cstat-no" title="statement not covered" > return cmsInternalRoles.includes("QPP Helpdesk");</span>
426
434
  };
427
435
  &nbsp;
428
- const hasContentMgmtRole = <span class="fstat-no" title="function not covered" >(cmsInternalRoles) =&gt; {</span>
429
- <span class="cstat-no" title="statement not covered" > if (!cmsInternalRoles) return false;</span>
430
- <span class="cstat-no" title="statement not covered" > return cmsInternalRoles.some((role) =&gt; cmsRoles.includes(role));</span>
436
+ const hasContentMgmtRole = <span class="fstat-no" title="function not covered" >(c</span>msInternalRoles) =&gt; {
437
+ <span class="cstat-no" title="statement not covered" > if (!cmsInternalRoles) <span class="cstat-no" title="statement not covered" >return false;</span></span>
438
+ <span class="cstat-no" title="statement not covered" > return cmsInternalRoles.some(<span class="fstat-no" title="function not covered" >(r</span>ole) =&gt; <span class="cstat-no" title="statement not covered" >cmsRoles.includes(role))</span>;</span>
431
439
  };
432
440
  &nbsp;
433
441
  /**
@@ -435,22 +443,22 @@ const hasContentMgmtRole = <span class="fstat-no" title="function not covered" >
435
443
  * @param {array} values extracted &amp; parsed vookie values
436
444
  * @returns {array}
437
445
  */
438
- const transformCookieValues = <span class="fstat-no" title="function not covered" >(values) =&gt; {</span>
439
- <span class="cstat-no" title="statement not covered" > const optionValues = [];</span>
440
- <span class="cstat-no" title="statement not covered" > const [hasAuthorizations, cmsInternalRoles] = values;</span>
441
- <span class="cstat-no" title="statement not covered" ></span>
442
- <span class="cstat-no" title="statement not covered" > if (hasAuthorizations === 'true') {</span>
443
- <span class="cstat-no" title="statement not covered" > optionValues.push({ name: 'QPP User', value: 'QPP User' });</span>
444
- <span class="cstat-no" title="statement not covered" > }</span>
446
+ const transformCookieValues = <span class="fstat-no" title="function not covered" >(v</span>alues) =&gt; {
447
+ const optionValues = <span class="cstat-no" title="statement not covered" >[];</span>
448
+ const [hasAuthorizations, cmsInternalRoles] = <span class="cstat-no" title="statement not covered" >values;</span>
449
+ &nbsp;
450
+ <span class="cstat-no" title="statement not covered" > if (hasAuthorizations === "true") {</span>
451
+ <span class="cstat-no" title="statement not covered" > optionValues.push({ name: "QPP User", value: "QPP User" });</span>
452
+ }
445
453
  <span class="cstat-no" title="statement not covered" > if (hasReviewerRole(cmsInternalRoles)) {</span>
446
- <span class="cstat-no" title="statement not covered" > optionValues.push({ name: 'Reviewer', value: 'Reviewer' });</span>
447
- <span class="cstat-no" title="statement not covered" > }</span>
454
+ <span class="cstat-no" title="statement not covered" > optionValues.push({ name: "Reviewer", value: "Reviewer" });</span>
455
+ }
448
456
  <span class="cstat-no" title="statement not covered" > if (hasHelpdeskRole(cmsInternalRoles)) {</span>
449
- <span class="cstat-no" title="statement not covered" > optionValues.push({ name: 'Helpdesk Viewer', value: 'Helpdesk Viewer' });</span>
450
- <span class="cstat-no" title="statement not covered" > }</span>
457
+ <span class="cstat-no" title="statement not covered" > optionValues.push({ name: "Helpdesk Viewer", value: "Helpdesk Viewer" });</span>
458
+ }
451
459
  <span class="cstat-no" title="statement not covered" > if (hasContentMgmtRole(cmsInternalRoles)) {</span>
452
- <span class="cstat-no" title="statement not covered" > optionValues.push({ name: 'Content Manager', value: 'Content Manager' });</span>
453
- <span class="cstat-no" title="statement not covered" > }</span>
460
+ <span class="cstat-no" title="statement not covered" > optionValues.push({ name: "Content Manager", value: "Content Manager" });</span>
461
+ }
454
462
  <span class="cstat-no" title="statement not covered" > return optionValues;</span>
455
463
  };
456
464
  &nbsp;
@@ -459,16 +467,16 @@ const transformCookieValues = <span class="fstat-no" title="function not covered
459
467
  * @param {array} cookies authz &amp; cms_internal_authz values parsed from cookies
460
468
  * @returns {array} of objects for use in role dropdown
461
469
  */
462
- export const loadRoleOptions = <span class="fstat-no" title="function not covered" >(cookies) =&gt; {</span>
463
- <span class="cstat-no" title="statement not covered" > const cookieValues = extractCookieValues(cookies);</span>
470
+ export const loadRoleOptions = <span class="fstat-no" title="function not covered" >(c</span>ookies) =&gt; {
471
+ const cookieValues = <span class="cstat-no" title="statement not covered" >extractCookieValues(cookies);</span>
464
472
  <span class="cstat-no" title="statement not covered" > return transformCookieValues(cookieValues);</span>
465
473
  };
466
474
  &nbsp;
467
475
  const defaultPageByRole = {
468
- 'QPP User': '/user/submissions',
469
- 'Helpdesk Viewer': '/user/helpdesk-viewing-tool',
470
- Reviewer: '/user/reviewers',
471
- 'Content Manager': '/user/content-management',
476
+ "QPP User": "/user/submissions",
477
+ "Helpdesk Viewer": "/user/helpdesk-viewing-tool",
478
+ Reviewer: "/user/reviewers",
479
+ "Content Manager": "/user/content-management",
472
480
  };
473
481
  &nbsp;
474
482
  /**
@@ -476,19 +484,32 @@ const defaultPageByRole = {
476
484
  * @param {string} role
477
485
  * @returns {string}
478
486
  */
479
- export const redirectPage = <span class="fstat-no" title="function not covered" >(role) =&gt; {</span>
480
- <span class="cstat-no" title="statement not covered" > const defaultPage = defaultPageByRole[role];</span>
481
- <span class="cstat-no" title="statement not covered" > const { pathname } = window.location;</span>
482
- <span class="cstat-no" title="statement not covered" > if (pathname === defaultPage) return;</span>
483
- <span class="cstat-no" title="statement not covered" > else window.location.assign(defaultPage);</span>
487
+ export const redirectPage = (role) =&gt; {
488
+ const defaultPage = defaultPageByRole[role];
489
+ const { pathname } = window.location;
490
+ if (pathname === defaultPage) return;
491
+ else window.location.assign(defaultPage);
492
+ };
493
+ &nbsp;
494
+ /**
495
+ * Mirrors redirectPage's own decision so callers can know ahead of time
496
+ * whether selecting a role will trigger a full-page navigation (in which
497
+ * case an in-place config refetch would be redundant/wasted work, since
498
+ * the navigation will remount the app and fetch fresh config anyway).
499
+ * @param {string} role
500
+ * @returns {boolean}
501
+ */
502
+ export const willRedirectPage = (role) =&gt; {
503
+ const defaultPage = defaultPageByRole[role];
504
+ return Boolean(defaultPage) &amp;&amp; window.location.pathname !== defaultPage;
484
505
  };
485
506
  &nbsp;
486
507
  /**
487
508
  * Get localStorage values related to user role
488
509
  * @returns {object}
489
510
  */
490
- export const getLocalStorageRoleState = <span class="fstat-no" title="function not covered" >() =&gt; ({</span>
491
- <span class="cstat-no" title="statement not covered" > selectedUserRole: localStorage.getItem('selectedUserRole'),</span>
511
+ export const getLocalStorageRoleState = () =&gt; ({
512
+ selectedUserRole: localStorage.getItem("selectedUserRole"),
492
513
  });
493
514
  &nbsp;
494
515
  /**
@@ -496,20 +517,20 @@ export const getLocalStorageRoleState = <span class="fstat-no" title="function n
496
517
  * @param {string} roleValue selector role value from dropdown
497
518
  * @returns {void}
498
519
  */
499
- export const initializeLocalStorageRoleState = <span class="fstat-no" title="function not covered" >(roleValue) =&gt; {</span>
500
- <span class="cstat-no" title="statement not covered" > const localStorageValues = getLocalStorageRoleState();</span>
501
- <span class="cstat-no" title="statement not covered" ></span>
502
- <span class="cstat-no" title="statement not covered" > if (!localStorageValues.selectedUserRole) {</span>
503
- <span class="cstat-no" title="statement not covered" > localStorage.setItem('selectedUserRole', roleValue);</span>
504
- <span class="cstat-no" title="statement not covered" > }</span>
520
+ export const initializeLocalStorageRoleState = (roleValue) =&gt; {
521
+ const localStorageValues = getLocalStorageRoleState();
522
+ &nbsp;
523
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!localStorageValues.selectedUserRole) {
524
+ <span class="cstat-no" title="statement not covered" > localStorage.setItem("selectedUserRole", roleValue);</span>
525
+ }
505
526
  };
506
527
  &nbsp;
507
528
  /**
508
529
  * Update role values in localStorage
509
530
  * @param {string} updatedRole new user role selected from dropdown
510
531
  */
511
- export const updateLocalStorageRoleState = <span class="fstat-no" title="function not covered" >(updatedRole) =&gt;</span>
512
- <span class="cstat-no" title="statement not covered" > localStorage.setItem('selectedUserRole', updatedRole);</span>
532
+ export const updateLocalStorageRoleState = (updatedRole) =&gt;
533
+ localStorage.setItem("selectedUserRole", updatedRole);
513
534
  &nbsp;</pre></td></tr></table></pre>
514
535
 
515
536
  <div class='push'></div><!-- for sticky footer -->
@@ -517,7 +538,7 @@ export const updateLocalStorageRoleState = <span class="fstat-no" title="functio
517
538
  <div class='footer quiet pad2 space-top1 center small'>
518
539
  Code coverage generated by
519
540
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
520
- at 2023-07-14T20:29:47.209Z
541
+ at 2026-09-11T21:24:58.667Z
521
542
  </div>
522
543
  <script src="../../../../prettify.js"></script>
523
544
  <script>