qpp-style 9.31.0 → 9.31.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 (215) hide show
  1. package/components/Error/error.js +1 -1
  2. package/components/FlashNotification/FlashNotificationUI.jsx +3 -3
  3. package/components/FlashNotification/index.js +1 -1
  4. package/components/Header/HeaderMenuItem.jsx +1 -1
  5. package/components/Header/HeaderUI.jsx +1 -1
  6. package/components/Header/ImpersonatorBanner.jsx +1 -1
  7. package/components/Header/header.js +1 -1
  8. package/components/NotificationBanner/CollapsedView.js +2 -2
  9. package/components/NotificationBanner/index.js +3 -3
  10. package/components/SessionDialog/sessionDialog.js +1 -1
  11. package/components/SideNav/Chart/ScoreChart.jsx +1 -1
  12. package/components/SideNav/Content/SelectRole/index.js +1 -1
  13. package/components/SideNav/Links/NavLinkDrawer.jsx +5 -5
  14. package/components/SideNav/UI/SideNavUI.jsx +11 -6
  15. package/components/SideNav/helpers.js +6 -13
  16. package/components/SideNav/index.js +1 -1
  17. package/coverage/clover.xml +261 -233
  18. package/coverage/coverage-final.json +70 -69
  19. package/coverage/lcov-report/components/Accordion/index.html +20 -20
  20. package/coverage/lcov-report/components/Accordion/index.jsx.html +121 -109
  21. package/coverage/lcov-report/components/Button/index.html +116 -0
  22. package/coverage/lcov-report/components/Button/index.js.html +355 -0
  23. package/coverage/lcov-report/components/Error/Collapsible.jsx.html +98 -98
  24. package/coverage/lcov-report/components/Error/ErrorUI.jsx.html +33 -33
  25. package/coverage/lcov-report/components/Error/index.html +23 -23
  26. package/coverage/lcov-report/components/Footer/FooterUI.jsx.html +395 -557
  27. package/coverage/lcov-report/components/Footer/SocialLinks.jsx.html +70 -70
  28. package/coverage/lcov-report/components/Footer/Subscribe.jsx.html +44 -44
  29. package/coverage/lcov-report/components/Footer/index.html +33 -48
  30. package/coverage/lcov-report/components/{SideNav/UI → GovBanner}/index.html +30 -45
  31. package/coverage/lcov-report/components/GovBanner/index.js.html +436 -0
  32. package/coverage/lcov-report/components/Header/HeaderAccountMenu.jsx.html +367 -0
  33. package/coverage/lcov-report/components/{SideNav/Details/IndividualDetails.jsx.html → Header/HeaderCancel.jsx.html} +35 -41
  34. package/coverage/lcov-report/components/Header/HeaderContainer.jsx.html +307 -0
  35. package/coverage/lcov-report/components/Header/HeaderLogo.jsx.html +211 -0
  36. package/coverage/lcov-report/components/Header/HeaderMenuButton.js.html +235 -0
  37. package/coverage/lcov-report/components/Header/HeaderMenuItem.jsx.html +802 -0
  38. package/coverage/lcov-report/components/Header/HeaderMenuLink.js.html +253 -0
  39. package/coverage/lcov-report/components/Header/HeaderMenuSignOutButton.js.html +271 -0
  40. package/coverage/lcov-report/components/Header/HeaderMobileButton.js.html +196 -0
  41. package/coverage/lcov-report/components/Header/HeaderUI.jsx.html +586 -0
  42. package/coverage/lcov-report/components/Header/HelpIcon.jsx.html +181 -0
  43. package/coverage/lcov-report/components/Header/ImpersonatorBanner.jsx.html +328 -0
  44. package/coverage/lcov-report/components/Header/NavigationButtonIcon.jsx.html +166 -0
  45. package/coverage/lcov-report/components/Header/hooks.js.html +283 -0
  46. package/coverage/lcov-report/components/Header/index.html +326 -0
  47. package/coverage/lcov-report/components/{SideNav/Links/index.js.html → Header/utag-helpers.js.html} +34 -46
  48. package/coverage/lcov-report/components/Infotip/Infotip.jsx.html +96 -108
  49. package/coverage/lcov-report/components/Infotip/InfotipContent.jsx.html +223 -0
  50. package/coverage/lcov-report/components/Infotip/InfotipIcon.jsx.html +49 -49
  51. package/coverage/lcov-report/components/Infotip/index.html +32 -32
  52. package/coverage/lcov-report/components/Infotip/index.js.html +1 -1
  53. package/coverage/lcov-report/components/Modal/LegacyModal.jsx.html +116 -116
  54. package/coverage/lcov-report/components/Modal/Modal.jsx.html +252 -252
  55. package/coverage/lcov-report/components/Modal/index.html +38 -38
  56. package/coverage/lcov-report/components/Modal/index.jsx.html +31 -31
  57. package/coverage/lcov-report/components/NotificationBanner/CollapsedView.js.html +202 -0
  58. package/coverage/lcov-report/components/NotificationBanner/ExpandedView.js.html +220 -0
  59. package/coverage/lcov-report/components/{SideNav/Details → NotificationBanner}/index.html +46 -46
  60. package/coverage/lcov-report/components/NotificationBanner/index.js.html +748 -0
  61. package/coverage/lcov-report/components/SanitizedContent/index.html +19 -19
  62. package/coverage/lcov-report/components/SanitizedContent/index.jsx.html +287 -218
  63. package/coverage/lcov-report/components/SessionDialogUI.jsx.html +440 -440
  64. package/coverage/lcov-report/components/SideNav/Chart/ScoreChart.jsx.html +7 -7
  65. package/coverage/lcov-report/components/SideNav/Chart/index.html +1 -16
  66. package/coverage/lcov-report/components/SideNav/{AnimationGroup → Content/SelectRole}/index.html +29 -29
  67. package/coverage/lcov-report/components/SideNav/Content/SelectRole/utils.js.html +532 -0
  68. package/coverage/lcov-report/components/SideNav/helpers.js.html +1125 -54
  69. package/coverage/lcov-report/components/SideNav/index.html +19 -19
  70. package/coverage/lcov-report/components/Tooltip/Tooltip.jsx.html +9 -9
  71. package/coverage/lcov-report/components/Tooltip/index.html +1 -1
  72. package/coverage/lcov-report/components/Tooltip/index.js.html +1 -1
  73. package/coverage/lcov-report/components/Tooltip/position.js.html +1 -1
  74. package/coverage/lcov-report/components/hooks/index.html +21 -21
  75. package/coverage/lcov-report/components/hooks/useGetConfig.js.html +131 -128
  76. package/coverage/lcov-report/components/index.html +21 -21
  77. package/coverage/lcov-report/index.html +52 -52
  78. package/coverage/lcov-report/lib/Chevron.jsx.html +36 -36
  79. package/coverage/lcov-report/lib/SvgComponents.jsx.html +1471 -973
  80. package/coverage/lcov-report/lib/index.html +21 -36
  81. package/coverage/lcov-report/react/components/Accordion/index.html +1 -1
  82. package/coverage/lcov-report/react/components/Accordion/index.jsx.html +1 -1
  83. package/coverage/lcov-report/react/components/Button/index.html +1 -1
  84. package/coverage/lcov-report/react/components/Button/index.js.html +1 -1
  85. package/coverage/lcov-report/react/components/Dropdown/index.html +1 -1
  86. package/coverage/lcov-report/react/components/Dropdown/index.js.html +1 -1
  87. package/coverage/lcov-report/react/components/Error/Collapsible.jsx.html +1 -1
  88. package/coverage/lcov-report/react/components/Error/ErrorUI.jsx.html +1 -1
  89. package/coverage/lcov-report/react/components/Error/error.js.html +2 -2
  90. package/coverage/lcov-report/react/components/Error/index.html +1 -1
  91. package/coverage/lcov-report/react/components/Footer/FooterUI.jsx.html +1 -1
  92. package/coverage/lcov-report/react/components/Footer/LegacyFooterUI.jsx.html +16 -16
  93. package/coverage/lcov-report/react/components/Footer/SocialLinks.jsx.html +1 -1
  94. package/coverage/lcov-report/react/components/Footer/Subscribe.jsx.html +1 -1
  95. package/coverage/lcov-report/react/components/Footer/footer.js.html +1 -1
  96. package/coverage/lcov-report/react/components/Footer/index.html +1 -1
  97. package/coverage/lcov-report/react/components/GovBanner/index.html +1 -1
  98. package/coverage/lcov-report/react/components/GovBanner/index.js.html +1 -1
  99. package/coverage/lcov-report/react/components/Header/HeaderAccountMenu.jsx.html +1 -1
  100. package/coverage/lcov-report/react/components/Header/HeaderCancel.jsx.html +1 -1
  101. package/coverage/lcov-report/react/components/Header/HeaderContainer.jsx.html +1 -1
  102. package/coverage/lcov-report/react/components/Header/HeaderLogo.jsx.html +1 -1
  103. package/coverage/lcov-report/react/components/Header/HeaderMenuButton.js.html +1 -1
  104. package/coverage/lcov-report/react/components/Header/HeaderMenuItem.jsx.html +2 -2
  105. package/coverage/lcov-report/react/components/Header/HeaderMenuLink.js.html +1 -1
  106. package/coverage/lcov-report/react/components/Header/HeaderMenuSignOutButton.js.html +1 -1
  107. package/coverage/lcov-report/react/components/Header/HeaderMobileButton.js.html +1 -1
  108. package/coverage/lcov-report/react/components/Header/HeaderUI.jsx.html +2 -2
  109. package/coverage/lcov-report/react/components/Header/HelpIcon.jsx.html +1 -1
  110. package/coverage/lcov-report/react/components/Header/ImpersonatorBanner.jsx.html +3 -3
  111. package/coverage/lcov-report/react/components/Header/NavigationButtonIcon.jsx.html +1 -1
  112. package/coverage/lcov-report/react/components/Header/header.js.html +2 -2
  113. package/coverage/lcov-report/react/components/Header/hooks.js.html +1 -1
  114. package/coverage/lcov-report/react/components/Header/index.html +1 -1
  115. package/coverage/lcov-report/react/components/Header/utag-helpers.js.html +1 -1
  116. package/coverage/lcov-report/react/components/Infotip/Infotip.jsx.html +1 -1
  117. package/coverage/lcov-report/react/components/Infotip/InfotipContent.jsx.html +1 -1
  118. package/coverage/lcov-report/react/components/Infotip/InfotipIcon.jsx.html +1 -1
  119. package/coverage/lcov-report/react/components/Infotip/index.html +1 -1
  120. package/coverage/lcov-report/react/components/Infotip/index.js.html +1 -1
  121. package/coverage/lcov-report/react/components/Modal/LegacyModal.jsx.html +1 -1
  122. package/coverage/lcov-report/react/components/Modal/Modal.jsx.html +1 -1
  123. package/coverage/lcov-report/react/components/Modal/index.html +1 -1
  124. package/coverage/lcov-report/react/components/Modal/index.jsx.html +1 -1
  125. package/coverage/lcov-report/react/components/NotificationBanner/CollapsedView.js.html +3 -3
  126. package/coverage/lcov-report/react/components/NotificationBanner/ExpandedView.js.html +1 -1
  127. package/coverage/lcov-report/react/components/NotificationBanner/index.html +1 -1
  128. package/coverage/lcov-report/react/components/NotificationBanner/index.js.html +4 -4
  129. package/coverage/lcov-report/react/components/SanitizedContent/index.html +20 -20
  130. package/coverage/lcov-report/react/components/SanitizedContent/index.jsx.html +48 -12
  131. package/coverage/lcov-report/react/components/SessionDialog/index.html +1 -1
  132. package/coverage/lcov-report/react/components/SessionDialog/sessionDialog.js.html +2 -2
  133. package/coverage/lcov-report/react/components/SessionDialogUI.jsx.html +1 -1
  134. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +1 -1
  135. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/index.html +1 -1
  136. package/coverage/lcov-report/react/components/SideNav/Chart/ScoreChart.jsx.html +2 -2
  137. package/coverage/lcov-report/react/components/SideNav/Chart/index.html +1 -1
  138. package/coverage/lcov-report/react/components/SideNav/Chart/index.js.html +1 -1
  139. package/coverage/lcov-report/react/components/SideNav/Content/LevelOneContent.jsx.html +1 -1
  140. package/coverage/lcov-report/react/components/SideNav/Content/LevelTwoContent.jsx.html +1 -1
  141. package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/index.html +13 -13
  142. package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/index.js.html +2 -2
  143. package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/utils.js.html +53 -26
  144. package/coverage/lcov-report/react/components/SideNav/Content/index.html +1 -1
  145. package/coverage/lcov-report/react/components/SideNav/Content/index.js.html +1 -1
  146. package/coverage/lcov-report/react/components/SideNav/Details/IndividualDetails.jsx.html +1 -1
  147. package/coverage/lcov-report/react/components/SideNav/Details/PracticeDetails.jsx.html +1 -1
  148. package/coverage/lcov-report/react/components/SideNav/Details/index.html +1 -1
  149. package/coverage/lcov-report/react/components/SideNav/Details/index.js.html +1 -1
  150. package/coverage/lcov-report/react/components/SideNav/Links/CmsSwitchLink.jsx.html +1 -1
  151. package/coverage/lcov-report/react/components/SideNav/Links/NavItemInline.jsx.html +1 -1
  152. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkContainer.jsx.html +1 -1
  153. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkDrawer.jsx.html +103 -46
  154. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkInline.jsx.html +1 -1
  155. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkToggle.jsx.html +1 -1
  156. package/coverage/lcov-report/react/components/SideNav/Links/index.html +17 -17
  157. package/coverage/lcov-report/react/components/SideNav/Links/index.js.html +1 -1
  158. package/coverage/lcov-report/react/components/SideNav/UI/SideNavUI.jsx.html +31 -13
  159. package/coverage/lcov-report/react/components/SideNav/UI/default-markup.js.html +97 -0
  160. package/coverage/lcov-report/react/components/SideNav/UI/index.html +29 -14
  161. package/coverage/lcov-report/react/components/SideNav/UI/index.js.html +1 -1
  162. package/coverage/lcov-report/react/components/SideNav/helpers.js.html +70 -16
  163. package/coverage/lcov-report/react/components/SideNav/index.html +15 -15
  164. package/coverage/lcov-report/react/components/SideNav/index.js.html +2 -2
  165. package/coverage/lcov-report/react/components/Tooltip/Tooltip.jsx.html +1 -1
  166. package/coverage/lcov-report/react/components/Tooltip/index.html +1 -1
  167. package/coverage/lcov-report/react/components/Tooltip/index.js.html +1 -1
  168. package/coverage/lcov-report/react/components/Tooltip/position.js.html +1 -1
  169. package/coverage/lcov-report/react/components/hooks/index.html +1 -1
  170. package/coverage/lcov-report/react/components/hooks/useGetConfig.js.html +1 -1
  171. package/coverage/lcov-report/react/components/index.html +1 -1
  172. package/coverage/lcov-report/react/index.html +1 -1
  173. package/coverage/lcov-report/react/index.js.html +1 -1
  174. package/coverage/lcov-report/react/lib/Chevron.jsx.html +1 -1
  175. package/coverage/lcov-report/react/lib/SvgComponents.jsx.html +1 -1
  176. package/coverage/lcov-report/react/lib/index.html +1 -1
  177. package/coverage/lcov-report/react/lib/svg-definitions.svg.html +1 -1
  178. package/coverage/lcov-report/react/session/index.html +1 -1
  179. package/coverage/lcov-report/react/session/index.js.html +1 -1
  180. package/coverage/lcov-report/react/session/logout.js.html +1 -1
  181. package/coverage/lcov-report/react/session/refresh.js.html +1 -1
  182. package/coverage/lcov-report/react/session/ttl.js.html +1 -1
  183. package/coverage/lcov-report/session/index.html +53 -53
  184. package/coverage/lcov-report/session/index.js.html +13 -13
  185. package/coverage/lcov-report/session/logout.js.html +145 -127
  186. package/coverage/lcov-report/session/refresh.js.html +90 -90
  187. package/coverage/lcov-report/session/ttl.js.html +77 -77
  188. package/coverage/lcov.info +426 -370
  189. package/dist/browser.js +1 -1
  190. package/dist/browser.js.map +1 -1
  191. package/dist/index.js +1 -1
  192. package/dist/index.js.map +1 -1
  193. package/dist/react/index.js +1 -1
  194. package/dist/react/index.js.map +1 -1
  195. package/package.json +28 -29
  196. package/styles/qppds/components/sidebar/_sidebar.scss +0 -1
  197. package/coverage/lcov-report/components/Footer/LegacyFooterUI.jsx.html +0 -667
  198. package/coverage/lcov-report/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +0 -166
  199. package/coverage/lcov-report/components/SideNav/Chart/index.js.html +0 -94
  200. package/coverage/lcov-report/components/SideNav/Content/LevelOneContent.jsx.html +0 -709
  201. package/coverage/lcov-report/components/SideNav/Content/LevelTwoContent.jsx.html +0 -733
  202. package/coverage/lcov-report/components/SideNav/Content/index.html +0 -146
  203. package/coverage/lcov-report/components/SideNav/Content/index.js.html +0 -97
  204. package/coverage/lcov-report/components/SideNav/Details/PracticeDetails.jsx.html +0 -220
  205. package/coverage/lcov-report/components/SideNav/Details/index.js.html +0 -97
  206. package/coverage/lcov-report/components/SideNav/Links/CmsSwitchLink.jsx.html +0 -208
  207. package/coverage/lcov-report/components/SideNav/Links/NavItemInline.jsx.html +0 -247
  208. package/coverage/lcov-report/components/SideNav/Links/NavLinkContainer.jsx.html +0 -199
  209. package/coverage/lcov-report/components/SideNav/Links/NavLinkDrawer.jsx.html +0 -832
  210. package/coverage/lcov-report/components/SideNav/Links/NavLinkInline.jsx.html +0 -406
  211. package/coverage/lcov-report/components/SideNav/Links/NavLinkToggle.jsx.html +0 -187
  212. package/coverage/lcov-report/components/SideNav/Links/index.html +0 -206
  213. package/coverage/lcov-report/components/SideNav/UI/SideNavUI.jsx.html +0 -1084
  214. package/coverage/lcov-report/components/SideNav/UI/index.js.html +0 -94
  215. package/coverage/lcov-report/lib/svg-definitions.svg.html +0 -460
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">54.54% </span>
26
+ <span class="strong">48.52% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>12/22</span>
28
+ <span class='fraction'>198/408</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">0% </span>
33
+ <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/4</span>
35
+ <span class='fraction'>0/0</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/3</span>
42
+ <span class='fraction'>0/19</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">54.54% </span>
47
+ <span class="strong">48.52% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>12/22</span>
49
+ <span class='fraction'>198/408</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>
@@ -114,58 +114,793 @@
114
114
  <a name='L49'></a><a href='#L49'>49</a>
115
115
  <a name='L50'></a><a href='#L50'>50</a>
116
116
  <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
117
+ <a name='L52'></a><a href='#L52'>52</a>
118
+ <a name='L53'></a><a href='#L53'>53</a>
119
+ <a name='L54'></a><a href='#L54'>54</a>
120
+ <a name='L55'></a><a href='#L55'>55</a>
121
+ <a name='L56'></a><a href='#L56'>56</a>
122
+ <a name='L57'></a><a href='#L57'>57</a>
123
+ <a name='L58'></a><a href='#L58'>58</a>
124
+ <a name='L59'></a><a href='#L59'>59</a>
125
+ <a name='L60'></a><a href='#L60'>60</a>
126
+ <a name='L61'></a><a href='#L61'>61</a>
127
+ <a name='L62'></a><a href='#L62'>62</a>
128
+ <a name='L63'></a><a href='#L63'>63</a>
129
+ <a name='L64'></a><a href='#L64'>64</a>
130
+ <a name='L65'></a><a href='#L65'>65</a>
131
+ <a name='L66'></a><a href='#L66'>66</a>
132
+ <a name='L67'></a><a href='#L67'>67</a>
133
+ <a name='L68'></a><a href='#L68'>68</a>
134
+ <a name='L69'></a><a href='#L69'>69</a>
135
+ <a name='L70'></a><a href='#L70'>70</a>
136
+ <a name='L71'></a><a href='#L71'>71</a>
137
+ <a name='L72'></a><a href='#L72'>72</a>
138
+ <a name='L73'></a><a href='#L73'>73</a>
139
+ <a name='L74'></a><a href='#L74'>74</a>
140
+ <a name='L75'></a><a href='#L75'>75</a>
141
+ <a name='L76'></a><a href='#L76'>76</a>
142
+ <a name='L77'></a><a href='#L77'>77</a>
143
+ <a name='L78'></a><a href='#L78'>78</a>
144
+ <a name='L79'></a><a href='#L79'>79</a>
145
+ <a name='L80'></a><a href='#L80'>80</a>
146
+ <a name='L81'></a><a href='#L81'>81</a>
147
+ <a name='L82'></a><a href='#L82'>82</a>
148
+ <a name='L83'></a><a href='#L83'>83</a>
149
+ <a name='L84'></a><a href='#L84'>84</a>
150
+ <a name='L85'></a><a href='#L85'>85</a>
151
+ <a name='L86'></a><a href='#L86'>86</a>
152
+ <a name='L87'></a><a href='#L87'>87</a>
153
+ <a name='L88'></a><a href='#L88'>88</a>
154
+ <a name='L89'></a><a href='#L89'>89</a>
155
+ <a name='L90'></a><a href='#L90'>90</a>
156
+ <a name='L91'></a><a href='#L91'>91</a>
157
+ <a name='L92'></a><a href='#L92'>92</a>
158
+ <a name='L93'></a><a href='#L93'>93</a>
159
+ <a name='L94'></a><a href='#L94'>94</a>
160
+ <a name='L95'></a><a href='#L95'>95</a>
161
+ <a name='L96'></a><a href='#L96'>96</a>
162
+ <a name='L97'></a><a href='#L97'>97</a>
163
+ <a name='L98'></a><a href='#L98'>98</a>
164
+ <a name='L99'></a><a href='#L99'>99</a>
165
+ <a name='L100'></a><a href='#L100'>100</a>
166
+ <a name='L101'></a><a href='#L101'>101</a>
167
+ <a name='L102'></a><a href='#L102'>102</a>
168
+ <a name='L103'></a><a href='#L103'>103</a>
169
+ <a name='L104'></a><a href='#L104'>104</a>
170
+ <a name='L105'></a><a href='#L105'>105</a>
171
+ <a name='L106'></a><a href='#L106'>106</a>
172
+ <a name='L107'></a><a href='#L107'>107</a>
173
+ <a name='L108'></a><a href='#L108'>108</a>
174
+ <a name='L109'></a><a href='#L109'>109</a>
175
+ <a name='L110'></a><a href='#L110'>110</a>
176
+ <a name='L111'></a><a href='#L111'>111</a>
177
+ <a name='L112'></a><a href='#L112'>112</a>
178
+ <a name='L113'></a><a href='#L113'>113</a>
179
+ <a name='L114'></a><a href='#L114'>114</a>
180
+ <a name='L115'></a><a href='#L115'>115</a>
181
+ <a name='L116'></a><a href='#L116'>116</a>
182
+ <a name='L117'></a><a href='#L117'>117</a>
183
+ <a name='L118'></a><a href='#L118'>118</a>
184
+ <a name='L119'></a><a href='#L119'>119</a>
185
+ <a name='L120'></a><a href='#L120'>120</a>
186
+ <a name='L121'></a><a href='#L121'>121</a>
187
+ <a name='L122'></a><a href='#L122'>122</a>
188
+ <a name='L123'></a><a href='#L123'>123</a>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a>
191
+ <a name='L126'></a><a href='#L126'>126</a>
192
+ <a name='L127'></a><a href='#L127'>127</a>
193
+ <a name='L128'></a><a href='#L128'>128</a>
194
+ <a name='L129'></a><a href='#L129'>129</a>
195
+ <a name='L130'></a><a href='#L130'>130</a>
196
+ <a name='L131'></a><a href='#L131'>131</a>
197
+ <a name='L132'></a><a href='#L132'>132</a>
198
+ <a name='L133'></a><a href='#L133'>133</a>
199
+ <a name='L134'></a><a href='#L134'>134</a>
200
+ <a name='L135'></a><a href='#L135'>135</a>
201
+ <a name='L136'></a><a href='#L136'>136</a>
202
+ <a name='L137'></a><a href='#L137'>137</a>
203
+ <a name='L138'></a><a href='#L138'>138</a>
204
+ <a name='L139'></a><a href='#L139'>139</a>
205
+ <a name='L140'></a><a href='#L140'>140</a>
206
+ <a name='L141'></a><a href='#L141'>141</a>
207
+ <a name='L142'></a><a href='#L142'>142</a>
208
+ <a name='L143'></a><a href='#L143'>143</a>
209
+ <a name='L144'></a><a href='#L144'>144</a>
210
+ <a name='L145'></a><a href='#L145'>145</a>
211
+ <a name='L146'></a><a href='#L146'>146</a>
212
+ <a name='L147'></a><a href='#L147'>147</a>
213
+ <a name='L148'></a><a href='#L148'>148</a>
214
+ <a name='L149'></a><a href='#L149'>149</a>
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>
223
+ <a name='L158'></a><a href='#L158'>158</a>
224
+ <a name='L159'></a><a href='#L159'>159</a>
225
+ <a name='L160'></a><a href='#L160'>160</a>
226
+ <a name='L161'></a><a href='#L161'>161</a>
227
+ <a name='L162'></a><a href='#L162'>162</a>
228
+ <a name='L163'></a><a href='#L163'>163</a>
229
+ <a name='L164'></a><a href='#L164'>164</a>
230
+ <a name='L165'></a><a href='#L165'>165</a>
231
+ <a name='L166'></a><a href='#L166'>166</a>
232
+ <a name='L167'></a><a href='#L167'>167</a>
233
+ <a name='L168'></a><a href='#L168'>168</a>
234
+ <a name='L169'></a><a href='#L169'>169</a>
235
+ <a name='L170'></a><a href='#L170'>170</a>
236
+ <a name='L171'></a><a href='#L171'>171</a>
237
+ <a name='L172'></a><a href='#L172'>172</a>
238
+ <a name='L173'></a><a href='#L173'>173</a>
239
+ <a name='L174'></a><a href='#L174'>174</a>
240
+ <a name='L175'></a><a href='#L175'>175</a>
241
+ <a name='L176'></a><a href='#L176'>176</a>
242
+ <a name='L177'></a><a href='#L177'>177</a>
243
+ <a name='L178'></a><a href='#L178'>178</a>
244
+ <a name='L179'></a><a href='#L179'>179</a>
245
+ <a name='L180'></a><a href='#L180'>180</a>
246
+ <a name='L181'></a><a href='#L181'>181</a>
247
+ <a name='L182'></a><a href='#L182'>182</a>
248
+ <a name='L183'></a><a href='#L183'>183</a>
249
+ <a name='L184'></a><a href='#L184'>184</a>
250
+ <a name='L185'></a><a href='#L185'>185</a>
251
+ <a name='L186'></a><a href='#L186'>186</a>
252
+ <a name='L187'></a><a href='#L187'>187</a>
253
+ <a name='L188'></a><a href='#L188'>188</a>
254
+ <a name='L189'></a><a href='#L189'>189</a>
255
+ <a name='L190'></a><a href='#L190'>190</a>
256
+ <a name='L191'></a><a href='#L191'>191</a>
257
+ <a name='L192'></a><a href='#L192'>192</a>
258
+ <a name='L193'></a><a href='#L193'>193</a>
259
+ <a name='L194'></a><a href='#L194'>194</a>
260
+ <a name='L195'></a><a href='#L195'>195</a>
261
+ <a name='L196'></a><a href='#L196'>196</a>
262
+ <a name='L197'></a><a href='#L197'>197</a>
263
+ <a name='L198'></a><a href='#L198'>198</a>
264
+ <a name='L199'></a><a href='#L199'>199</a>
265
+ <a name='L200'></a><a href='#L200'>200</a>
266
+ <a name='L201'></a><a href='#L201'>201</a>
267
+ <a name='L202'></a><a href='#L202'>202</a>
268
+ <a name='L203'></a><a href='#L203'>203</a>
269
+ <a name='L204'></a><a href='#L204'>204</a>
270
+ <a name='L205'></a><a href='#L205'>205</a>
271
+ <a name='L206'></a><a href='#L206'>206</a>
272
+ <a name='L207'></a><a href='#L207'>207</a>
273
+ <a name='L208'></a><a href='#L208'>208</a>
274
+ <a name='L209'></a><a href='#L209'>209</a>
275
+ <a name='L210'></a><a href='#L210'>210</a>
276
+ <a name='L211'></a><a href='#L211'>211</a>
277
+ <a name='L212'></a><a href='#L212'>212</a>
278
+ <a name='L213'></a><a href='#L213'>213</a>
279
+ <a name='L214'></a><a href='#L214'>214</a>
280
+ <a name='L215'></a><a href='#L215'>215</a>
281
+ <a name='L216'></a><a href='#L216'>216</a>
282
+ <a name='L217'></a><a href='#L217'>217</a>
283
+ <a name='L218'></a><a href='#L218'>218</a>
284
+ <a name='L219'></a><a href='#L219'>219</a>
285
+ <a name='L220'></a><a href='#L220'>220</a>
286
+ <a name='L221'></a><a href='#L221'>221</a>
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>
332
+ <a name='L267'></a><a href='#L267'>267</a>
333
+ <a name='L268'></a><a href='#L268'>268</a>
334
+ <a name='L269'></a><a href='#L269'>269</a>
335
+ <a name='L270'></a><a href='#L270'>270</a>
336
+ <a name='L271'></a><a href='#L271'>271</a>
337
+ <a name='L272'></a><a href='#L272'>272</a>
338
+ <a name='L273'></a><a href='#L273'>273</a>
339
+ <a name='L274'></a><a href='#L274'>274</a>
340
+ <a name='L275'></a><a href='#L275'>275</a>
341
+ <a name='L276'></a><a href='#L276'>276</a>
342
+ <a name='L277'></a><a href='#L277'>277</a>
343
+ <a name='L278'></a><a href='#L278'>278</a>
344
+ <a name='L279'></a><a href='#L279'>279</a>
345
+ <a name='L280'></a><a href='#L280'>280</a>
346
+ <a name='L281'></a><a href='#L281'>281</a>
347
+ <a name='L282'></a><a href='#L282'>282</a>
348
+ <a name='L283'></a><a href='#L283'>283</a>
349
+ <a name='L284'></a><a href='#L284'>284</a>
350
+ <a name='L285'></a><a href='#L285'>285</a>
351
+ <a name='L286'></a><a href='#L286'>286</a>
352
+ <a name='L287'></a><a href='#L287'>287</a>
353
+ <a name='L288'></a><a href='#L288'>288</a>
354
+ <a name='L289'></a><a href='#L289'>289</a>
355
+ <a name='L290'></a><a href='#L290'>290</a>
356
+ <a name='L291'></a><a href='#L291'>291</a>
357
+ <a name='L292'></a><a href='#L292'>292</a>
358
+ <a name='L293'></a><a href='#L293'>293</a>
359
+ <a name='L294'></a><a href='#L294'>294</a>
360
+ <a name='L295'></a><a href='#L295'>295</a>
361
+ <a name='L296'></a><a href='#L296'>296</a>
362
+ <a name='L297'></a><a href='#L297'>297</a>
363
+ <a name='L298'></a><a href='#L298'>298</a>
364
+ <a name='L299'></a><a href='#L299'>299</a>
365
+ <a name='L300'></a><a href='#L300'>300</a>
366
+ <a name='L301'></a><a href='#L301'>301</a>
367
+ <a name='L302'></a><a href='#L302'>302</a>
368
+ <a name='L303'></a><a href='#L303'>303</a>
369
+ <a name='L304'></a><a href='#L304'>304</a>
370
+ <a name='L305'></a><a href='#L305'>305</a>
371
+ <a name='L306'></a><a href='#L306'>306</a>
372
+ <a name='L307'></a><a href='#L307'>307</a>
373
+ <a name='L308'></a><a href='#L308'>308</a>
374
+ <a name='L309'></a><a href='#L309'>309</a>
375
+ <a name='L310'></a><a href='#L310'>310</a>
376
+ <a name='L311'></a><a href='#L311'>311</a>
377
+ <a name='L312'></a><a href='#L312'>312</a>
378
+ <a name='L313'></a><a href='#L313'>313</a>
379
+ <a name='L314'></a><a href='#L314'>314</a>
380
+ <a name='L315'></a><a href='#L315'>315</a>
381
+ <a name='L316'></a><a href='#L316'>316</a>
382
+ <a name='L317'></a><a href='#L317'>317</a>
383
+ <a name='L318'></a><a href='#L318'>318</a>
384
+ <a name='L319'></a><a href='#L319'>319</a>
385
+ <a name='L320'></a><a href='#L320'>320</a>
386
+ <a name='L321'></a><a href='#L321'>321</a>
387
+ <a name='L322'></a><a href='#L322'>322</a>
388
+ <a name='L323'></a><a href='#L323'>323</a>
389
+ <a name='L324'></a><a href='#L324'>324</a>
390
+ <a name='L325'></a><a href='#L325'>325</a>
391
+ <a name='L326'></a><a href='#L326'>326</a>
392
+ <a name='L327'></a><a href='#L327'>327</a>
393
+ <a name='L328'></a><a href='#L328'>328</a>
394
+ <a name='L329'></a><a href='#L329'>329</a>
395
+ <a name='L330'></a><a href='#L330'>330</a>
396
+ <a name='L331'></a><a href='#L331'>331</a>
397
+ <a name='L332'></a><a href='#L332'>332</a>
398
+ <a name='L333'></a><a href='#L333'>333</a>
399
+ <a name='L334'></a><a href='#L334'>334</a>
400
+ <a name='L335'></a><a href='#L335'>335</a>
401
+ <a name='L336'></a><a href='#L336'>336</a>
402
+ <a name='L337'></a><a href='#L337'>337</a>
403
+ <a name='L338'></a><a href='#L338'>338</a>
404
+ <a name='L339'></a><a href='#L339'>339</a>
405
+ <a name='L340'></a><a href='#L340'>340</a>
406
+ <a name='L341'></a><a href='#L341'>341</a>
407
+ <a name='L342'></a><a href='#L342'>342</a>
408
+ <a name='L343'></a><a href='#L343'>343</a>
409
+ <a name='L344'></a><a href='#L344'>344</a>
410
+ <a name='L345'></a><a href='#L345'>345</a>
411
+ <a name='L346'></a><a href='#L346'>346</a>
412
+ <a name='L347'></a><a href='#L347'>347</a>
413
+ <a name='L348'></a><a href='#L348'>348</a>
414
+ <a name='L349'></a><a href='#L349'>349</a>
415
+ <a name='L350'></a><a href='#L350'>350</a>
416
+ <a name='L351'></a><a href='#L351'>351</a>
417
+ <a name='L352'></a><a href='#L352'>352</a>
418
+ <a name='L353'></a><a href='#L353'>353</a>
419
+ <a name='L354'></a><a href='#L354'>354</a>
420
+ <a name='L355'></a><a href='#L355'>355</a>
421
+ <a name='L356'></a><a href='#L356'>356</a>
422
+ <a name='L357'></a><a href='#L357'>357</a>
423
+ <a name='L358'></a><a href='#L358'>358</a>
424
+ <a name='L359'></a><a href='#L359'>359</a>
425
+ <a name='L360'></a><a href='#L360'>360</a>
426
+ <a name='L361'></a><a href='#L361'>361</a>
427
+ <a name='L362'></a><a href='#L362'>362</a>
428
+ <a name='L363'></a><a href='#L363'>363</a>
429
+ <a name='L364'></a><a href='#L364'>364</a>
430
+ <a name='L365'></a><a href='#L365'>365</a>
431
+ <a name='L366'></a><a href='#L366'>366</a>
432
+ <a name='L367'></a><a href='#L367'>367</a>
433
+ <a name='L368'></a><a href='#L368'>368</a>
434
+ <a name='L369'></a><a href='#L369'>369</a>
435
+ <a name='L370'></a><a href='#L370'>370</a>
436
+ <a name='L371'></a><a href='#L371'>371</a>
437
+ <a name='L372'></a><a href='#L372'>372</a>
438
+ <a name='L373'></a><a href='#L373'>373</a>
439
+ <a name='L374'></a><a href='#L374'>374</a>
440
+ <a name='L375'></a><a href='#L375'>375</a>
441
+ <a name='L376'></a><a href='#L376'>376</a>
442
+ <a name='L377'></a><a href='#L377'>377</a>
443
+ <a name='L378'></a><a href='#L378'>378</a>
444
+ <a name='L379'></a><a href='#L379'>379</a>
445
+ <a name='L380'></a><a href='#L380'>380</a>
446
+ <a name='L381'></a><a href='#L381'>381</a>
447
+ <a name='L382'></a><a href='#L382'>382</a>
448
+ <a name='L383'></a><a href='#L383'>383</a>
449
+ <a name='L384'></a><a href='#L384'>384</a>
450
+ <a name='L385'></a><a href='#L385'>385</a>
451
+ <a name='L386'></a><a href='#L386'>386</a>
452
+ <a name='L387'></a><a href='#L387'>387</a>
453
+ <a name='L388'></a><a href='#L388'>388</a>
454
+ <a name='L389'></a><a href='#L389'>389</a>
455
+ <a name='L390'></a><a href='#L390'>390</a>
456
+ <a name='L391'></a><a href='#L391'>391</a>
457
+ <a name='L392'></a><a href='#L392'>392</a>
458
+ <a name='L393'></a><a href='#L393'>393</a>
459
+ <a name='L394'></a><a href='#L394'>394</a>
460
+ <a name='L395'></a><a href='#L395'>395</a>
461
+ <a name='L396'></a><a href='#L396'>396</a>
462
+ <a name='L397'></a><a href='#L397'>397</a>
463
+ <a name='L398'></a><a href='#L398'>398</a>
464
+ <a name='L399'></a><a href='#L399'>399</a>
465
+ <a name='L400'></a><a href='#L400'>400</a>
466
+ <a name='L401'></a><a href='#L401'>401</a>
467
+ <a name='L402'></a><a href='#L402'>402</a>
468
+ <a name='L403'></a><a href='#L403'>403</a>
469
+ <a name='L404'></a><a href='#L404'>404</a>
470
+ <a name='L405'></a><a href='#L405'>405</a>
471
+ <a name='L406'></a><a href='#L406'>406</a>
472
+ <a name='L407'></a><a href='#L407'>407</a>
473
+ <a name='L408'></a><a href='#L408'>408</a>
474
+ <a name='L409'></a><a href='#L409'>409</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
475
+ <span class="cline-any cline-yes">1x</span>
476
+ <span class="cline-any cline-yes">1x</span>
477
+ <span class="cline-any cline-yes">1x</span>
478
+ <span class="cline-any cline-yes">1x</span>
479
+ <span class="cline-any cline-yes">1x</span>
480
+ <span class="cline-any cline-yes">1x</span>
481
+ <span class="cline-any cline-yes">1x</span>
482
+ <span class="cline-any cline-yes">1x</span>
483
+ <span class="cline-any cline-yes">1x</span>
484
+ <span class="cline-any cline-yes">1x</span>
485
+ <span class="cline-any cline-yes">1x</span>
486
+ <span class="cline-any cline-yes">1x</span>
487
+ <span class="cline-any cline-yes">1x</span>
488
+ <span class="cline-any cline-yes">1x</span>
489
+ <span class="cline-any cline-yes">1x</span>
490
+ <span class="cline-any cline-yes">1x</span>
491
+ <span class="cline-any cline-yes">1x</span>
492
+ <span class="cline-any cline-yes">1x</span>
493
+ <span class="cline-any cline-yes">1x</span>
494
+ <span class="cline-any cline-yes">1x</span>
495
+ <span class="cline-any cline-yes">1x</span>
496
+ <span class="cline-any cline-yes">1x</span>
497
+ <span class="cline-any cline-yes">1x</span>
498
+ <span class="cline-any cline-yes">1x</span>
499
+ <span class="cline-any cline-yes">1x</span>
500
+ <span class="cline-any cline-yes">1x</span>
501
+ <span class="cline-any cline-yes">1x</span>
502
+ <span class="cline-any cline-yes">1x</span>
503
+ <span class="cline-any cline-yes">1x</span>
504
+ <span class="cline-any cline-yes">1x</span>
505
+ <span class="cline-any cline-yes">1x</span>
506
+ <span class="cline-any cline-yes">1x</span>
507
+ <span class="cline-any cline-no">&nbsp;</span>
508
+ <span class="cline-any cline-no">&nbsp;</span>
509
+ <span class="cline-any cline-no">&nbsp;</span>
510
+ <span class="cline-any cline-no">&nbsp;</span>
511
+ <span class="cline-any cline-no">&nbsp;</span>
512
+ <span class="cline-any cline-yes">1x</span>
513
+ <span class="cline-any cline-yes">1x</span>
514
+ <span class="cline-any cline-yes">1x</span>
515
+ <span class="cline-any cline-no">&nbsp;</span>
516
+ <span class="cline-any cline-yes">1x</span>
517
+ <span class="cline-any cline-yes">1x</span>
518
+ <span class="cline-any cline-yes">1x</span>
519
+ <span class="cline-any cline-no">&nbsp;</span>
520
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
525
+ <span class="cline-any cline-no">&nbsp;</span>
526
+ <span class="cline-any cline-no">&nbsp;</span>
527
+ <span class="cline-any cline-no">&nbsp;</span>
528
+ <span class="cline-any cline-no">&nbsp;</span>
529
+ <span class="cline-any cline-no">&nbsp;</span>
530
+ <span class="cline-any cline-no">&nbsp;</span>
531
+ <span class="cline-any cline-no">&nbsp;</span>
532
+ <span class="cline-any cline-no">&nbsp;</span>
533
+ <span class="cline-any cline-yes">1x</span>
534
+ <span class="cline-any cline-yes">1x</span>
535
+ <span class="cline-any cline-yes">1x</span>
536
+ <span class="cline-any cline-yes">1x</span>
537
+ <span class="cline-any cline-yes">1x</span>
538
+ <span class="cline-any cline-yes">1x</span>
539
+ <span class="cline-any cline-yes">1x</span>
540
+ <span class="cline-any cline-yes">1x</span>
541
+ <span class="cline-any cline-no">&nbsp;</span>
542
+ <span class="cline-any cline-no">&nbsp;</span>
543
+ <span class="cline-any cline-no">&nbsp;</span>
544
+ <span class="cline-any cline-no">&nbsp;</span>
545
+ <span class="cline-any cline-no">&nbsp;</span>
546
+ <span class="cline-any cline-no">&nbsp;</span>
547
+ <span class="cline-any cline-no">&nbsp;</span>
548
+ <span class="cline-any cline-no">&nbsp;</span>
549
+ <span class="cline-any cline-no">&nbsp;</span>
550
+ <span class="cline-any cline-no">&nbsp;</span>
551
+ <span class="cline-any cline-no">&nbsp;</span>
552
+ <span class="cline-any cline-no">&nbsp;</span>
553
+ <span class="cline-any cline-no">&nbsp;</span>
554
+ <span class="cline-any cline-no">&nbsp;</span>
555
+ <span class="cline-any cline-no">&nbsp;</span>
556
+ <span class="cline-any cline-no">&nbsp;</span>
557
+ <span class="cline-any cline-no">&nbsp;</span>
558
+ <span class="cline-any cline-no">&nbsp;</span>
559
+ <span class="cline-any cline-no">&nbsp;</span>
560
+ <span class="cline-any cline-no">&nbsp;</span>
561
+ <span class="cline-any cline-no">&nbsp;</span>
562
+ <span class="cline-any cline-no">&nbsp;</span>
563
+ <span class="cline-any cline-no">&nbsp;</span>
564
+ <span class="cline-any cline-no">&nbsp;</span>
565
+ <span class="cline-any cline-no">&nbsp;</span>
566
+ <span class="cline-any cline-no">&nbsp;</span>
567
+ <span class="cline-any cline-no">&nbsp;</span>
568
+ <span class="cline-any cline-no">&nbsp;</span>
569
+ <span class="cline-any cline-no">&nbsp;</span>
570
+ <span class="cline-any cline-yes">1x</span>
571
+ <span class="cline-any cline-yes">1x</span>
572
+ <span class="cline-any cline-yes">1x</span>
573
+ <span class="cline-any cline-yes">1x</span>
574
+ <span class="cline-any cline-yes">1x</span>
575
+ <span class="cline-any cline-yes">1x</span>
576
+ <span class="cline-any cline-yes">1x</span>
577
+ <span class="cline-any cline-yes">1x</span>
578
+ <span class="cline-any cline-yes">1x</span>
579
+ <span class="cline-any cline-yes">1x</span>
580
+ <span class="cline-any cline-yes">1x</span>
581
+ <span class="cline-any cline-yes">1x</span>
582
+ <span class="cline-any cline-yes">1x</span>
583
+ <span class="cline-any cline-yes">1x</span>
584
+ <span class="cline-any cline-yes">1x</span>
585
+ <span class="cline-any cline-yes">1x</span>
586
+ <span class="cline-any cline-yes">1x</span>
587
+ <span class="cline-any cline-yes">1x</span>
588
+ <span class="cline-any cline-yes">1x</span>
589
+ <span class="cline-any cline-yes">1x</span>
590
+ <span class="cline-any cline-no">&nbsp;</span>
591
+ <span class="cline-any cline-no">&nbsp;</span>
592
+ <span class="cline-any cline-no">&nbsp;</span>
593
+ <span class="cline-any cline-no">&nbsp;</span>
594
+ <span class="cline-any cline-no">&nbsp;</span>
595
+ <span class="cline-any cline-no">&nbsp;</span>
596
+ <span class="cline-any cline-no">&nbsp;</span>
597
+ <span class="cline-any cline-no">&nbsp;</span>
598
+ <span class="cline-any cline-no">&nbsp;</span>
599
+ <span class="cline-any cline-no">&nbsp;</span>
600
+ <span class="cline-any cline-no">&nbsp;</span>
601
+ <span class="cline-any cline-no">&nbsp;</span>
602
+ <span class="cline-any cline-no">&nbsp;</span>
603
+ <span class="cline-any cline-no">&nbsp;</span>
604
+ <span class="cline-any cline-no">&nbsp;</span>
605
+ <span class="cline-any cline-no">&nbsp;</span>
606
+ <span class="cline-any cline-no">&nbsp;</span>
607
+ <span class="cline-any cline-no">&nbsp;</span>
608
+ <span class="cline-any cline-yes">1x</span>
609
+ <span class="cline-any cline-yes">1x</span>
610
+ <span class="cline-any cline-yes">1x</span>
611
+ <span class="cline-any cline-yes">1x</span>
612
+ <span class="cline-any cline-yes">1x</span>
613
+ <span class="cline-any cline-yes">1x</span>
614
+ <span class="cline-any cline-yes">1x</span>
615
+ <span class="cline-any cline-yes">1x</span>
616
+ <span class="cline-any cline-yes">1x</span>
617
+ <span class="cline-any cline-yes">1x</span>
618
+ <span class="cline-any cline-no">&nbsp;</span>
619
+ <span class="cline-any cline-no">&nbsp;</span>
620
+ <span class="cline-any cline-no">&nbsp;</span>
621
+ <span class="cline-any cline-no">&nbsp;</span>
622
+ <span class="cline-any cline-no">&nbsp;</span>
623
+ <span class="cline-any cline-no">&nbsp;</span>
624
+ <span class="cline-any cline-no">&nbsp;</span>
625
+ <span class="cline-any cline-no">&nbsp;</span>
626
+ <span class="cline-any cline-no">&nbsp;</span>
627
+ <span class="cline-any cline-no">&nbsp;</span>
628
+ <span class="cline-any cline-yes">1x</span>
629
+ <span class="cline-any cline-yes">1x</span>
630
+ <span class="cline-any cline-yes">1x</span>
631
+ <span class="cline-any cline-yes">1x</span>
632
+ <span class="cline-any cline-yes">1x</span>
633
+ <span class="cline-any cline-yes">1x</span>
634
+ <span class="cline-any cline-yes">1x</span>
635
+ <span class="cline-any cline-yes">1x</span>
636
+ <span class="cline-any cline-no">&nbsp;</span>
637
+ <span class="cline-any cline-no">&nbsp;</span>
638
+ <span class="cline-any cline-no">&nbsp;</span>
639
+ <span class="cline-any cline-no">&nbsp;</span>
640
+ <span class="cline-any cline-yes">1x</span>
641
+ <span class="cline-any cline-yes">1x</span>
642
+ <span class="cline-any cline-yes">1x</span>
643
+ <span class="cline-any cline-yes">1x</span>
644
+ <span class="cline-any cline-yes">1x</span>
645
+ <span class="cline-any cline-yes">1x</span>
646
+ <span class="cline-any cline-yes">1x</span>
647
+ <span class="cline-any cline-yes">1x</span>
648
+ <span class="cline-any cline-no">&nbsp;</span>
649
+ <span class="cline-any cline-no">&nbsp;</span>
650
+ <span class="cline-any cline-no">&nbsp;</span>
651
+ <span class="cline-any cline-no">&nbsp;</span>
652
+ <span class="cline-any cline-no">&nbsp;</span>
653
+ <span class="cline-any cline-no">&nbsp;</span>
654
+ <span class="cline-any cline-no">&nbsp;</span>
655
+ <span class="cline-any cline-no">&nbsp;</span>
656
+ <span class="cline-any cline-no">&nbsp;</span>
657
+ <span class="cline-any cline-no">&nbsp;</span>
658
+ <span class="cline-any cline-no">&nbsp;</span>
659
+ <span class="cline-any cline-no">&nbsp;</span>
660
+ <span class="cline-any cline-no">&nbsp;</span>
661
+ <span class="cline-any cline-no">&nbsp;</span>
662
+ <span class="cline-any cline-no">&nbsp;</span>
663
+ <span class="cline-any cline-no">&nbsp;</span>
664
+ <span class="cline-any cline-no">&nbsp;</span>
665
+ <span class="cline-any cline-no">&nbsp;</span>
666
+ <span class="cline-any cline-no">&nbsp;</span>
667
+ <span class="cline-any cline-no">&nbsp;</span>
668
+ <span class="cline-any cline-no">&nbsp;</span>
669
+ <span class="cline-any cline-no">&nbsp;</span>
670
+ <span class="cline-any cline-no">&nbsp;</span>
671
+ <span class="cline-any cline-no">&nbsp;</span>
672
+ <span class="cline-any cline-no">&nbsp;</span>
673
+ <span class="cline-any cline-no">&nbsp;</span>
674
+ <span class="cline-any cline-no">&nbsp;</span>
675
+ <span class="cline-any cline-no">&nbsp;</span>
676
+ <span class="cline-any cline-no">&nbsp;</span>
677
+ <span class="cline-any cline-no">&nbsp;</span>
678
+ <span class="cline-any cline-no">&nbsp;</span>
679
+ <span class="cline-any cline-no">&nbsp;</span>
680
+ <span class="cline-any cline-no">&nbsp;</span>
681
+ <span class="cline-any cline-no">&nbsp;</span>
682
+ <span class="cline-any cline-no">&nbsp;</span>
683
+ <span class="cline-any cline-no">&nbsp;</span>
684
+ <span class="cline-any cline-no">&nbsp;</span>
685
+ <span class="cline-any cline-no">&nbsp;</span>
686
+ <span class="cline-any cline-no">&nbsp;</span>
687
+ <span class="cline-any cline-no">&nbsp;</span>
688
+ <span class="cline-any cline-yes">1x</span>
689
+ <span class="cline-any cline-yes">1x</span>
690
+ <span class="cline-any cline-yes">1x</span>
691
+ <span class="cline-any cline-yes">1x</span>
692
+ <span class="cline-any cline-yes">1x</span>
693
+ <span class="cline-any cline-yes">1x</span>
694
+ <span class="cline-any cline-yes">1x</span>
695
+ <span class="cline-any cline-yes">1x</span>
696
+ <span class="cline-any cline-no">&nbsp;</span>
697
+ <span class="cline-any cline-no">&nbsp;</span>
698
+ <span class="cline-any cline-no">&nbsp;</span>
699
+ <span class="cline-any cline-no">&nbsp;</span>
700
+ <span class="cline-any cline-no">&nbsp;</span>
701
+ <span class="cline-any cline-no">&nbsp;</span>
702
+ <span class="cline-any cline-no">&nbsp;</span>
703
+ <span class="cline-any cline-no">&nbsp;</span>
704
+ <span class="cline-any cline-no">&nbsp;</span>
705
+ <span class="cline-any cline-no">&nbsp;</span>
706
+ <span class="cline-any cline-no">&nbsp;</span>
707
+ <span class="cline-any cline-no">&nbsp;</span>
708
+ <span class="cline-any cline-no">&nbsp;</span>
709
+ <span class="cline-any cline-no">&nbsp;</span>
710
+ <span class="cline-any cline-no">&nbsp;</span>
711
+ <span class="cline-any cline-no">&nbsp;</span>
712
+ <span class="cline-any cline-no">&nbsp;</span>
713
+ <span class="cline-any cline-no">&nbsp;</span>
714
+ <span class="cline-any cline-no">&nbsp;</span>
715
+ <span class="cline-any cline-yes">1x</span>
716
+ <span class="cline-any cline-yes">1x</span>
717
+ <span class="cline-any cline-yes">1x</span>
718
+ <span class="cline-any cline-yes">1x</span>
719
+ <span class="cline-any cline-yes">1x</span>
720
+ <span class="cline-any cline-yes">1x</span>
721
+ <span class="cline-any cline-yes">1x</span>
722
+ <span class="cline-any cline-yes">1x</span>
723
+ <span class="cline-any cline-yes">1x</span>
724
+ <span class="cline-any cline-yes">1x</span>
725
+ <span class="cline-any cline-yes">1x</span>
726
+ <span class="cline-any cline-yes">1x</span>
727
+ <span class="cline-any cline-yes">1x</span>
728
+ <span class="cline-any cline-yes">1x</span>
729
+ <span class="cline-any cline-yes">1x</span>
730
+ <span class="cline-any cline-yes">1x</span>
731
+ <span class="cline-any cline-yes">1x</span>
732
+ <span class="cline-any cline-yes">1x</span>
733
+ <span class="cline-any cline-yes">1x</span>
734
+ <span class="cline-any cline-yes">1x</span>
735
+ <span class="cline-any cline-yes">1x</span>
736
+ <span class="cline-any cline-yes">1x</span>
737
+ <span class="cline-any cline-yes">1x</span>
738
+ <span class="cline-any cline-yes">1x</span>
739
+ <span class="cline-any cline-yes">1x</span>
740
+ <span class="cline-any cline-yes">1x</span>
741
+ <span class="cline-any cline-yes">1x</span>
742
+ <span class="cline-any cline-yes">1x</span>
743
+ <span class="cline-any cline-yes">1x</span>
744
+ <span class="cline-any cline-yes">1x</span>
745
+ <span class="cline-any cline-yes">1x</span>
746
+ <span class="cline-any cline-yes">1x</span>
747
+ <span class="cline-any cline-yes">1x</span>
748
+ <span class="cline-any cline-yes">1x</span>
749
+ <span class="cline-any cline-yes">1x</span>
750
+ <span class="cline-any cline-yes">1x</span>
751
+ <span class="cline-any cline-no">&nbsp;</span>
752
+ <span class="cline-any cline-no">&nbsp;</span>
753
+ <span class="cline-any cline-no">&nbsp;</span>
754
+ <span class="cline-any cline-no">&nbsp;</span>
755
+ <span class="cline-any cline-yes">1x</span>
756
+ <span class="cline-any cline-yes">1x</span>
757
+ <span class="cline-any cline-yes">1x</span>
758
+ <span class="cline-any cline-yes">1x</span>
759
+ <span class="cline-any cline-yes">1x</span>
760
+ <span class="cline-any cline-yes">1x</span>
761
+ <span class="cline-any cline-yes">1x</span>
762
+ <span class="cline-any cline-yes">1x</span>
763
+ <span class="cline-any cline-yes">1x</span>
764
+ <span class="cline-any cline-no">&nbsp;</span>
765
+ <span class="cline-any cline-no">&nbsp;</span>
766
+ <span class="cline-any cline-no">&nbsp;</span>
767
+ <span class="cline-any cline-no">&nbsp;</span>
768
+ <span class="cline-any cline-no">&nbsp;</span>
769
+ <span class="cline-any cline-no">&nbsp;</span>
770
+ <span class="cline-any cline-no">&nbsp;</span>
771
+ <span class="cline-any cline-no">&nbsp;</span>
772
+ <span class="cline-any cline-no">&nbsp;</span>
773
+ <span class="cline-any cline-no">&nbsp;</span>
774
+ <span class="cline-any cline-yes">1x</span>
775
+ <span class="cline-any cline-yes">1x</span>
776
+ <span class="cline-any cline-yes">1x</span>
777
+ <span class="cline-any cline-yes">1x</span>
778
+ <span class="cline-any cline-yes">1x</span>
779
+ <span class="cline-any cline-yes">1x</span>
780
+ <span class="cline-any cline-yes">1x</span>
781
+ <span class="cline-any cline-yes">1x</span>
782
+ <span class="cline-any cline-no">&nbsp;</span>
783
+ <span class="cline-any cline-no">&nbsp;</span>
784
+ <span class="cline-any cline-no">&nbsp;</span>
785
+ <span class="cline-any cline-no">&nbsp;</span>
786
+ <span class="cline-any cline-no">&nbsp;</span>
787
+ <span class="cline-any cline-no">&nbsp;</span>
788
+ <span class="cline-any cline-no">&nbsp;</span>
789
+ <span class="cline-any cline-no">&nbsp;</span>
790
+ <span class="cline-any cline-no">&nbsp;</span>
791
+ <span class="cline-any cline-no">&nbsp;</span>
792
+ <span class="cline-any cline-no">&nbsp;</span>
793
+ <span class="cline-any cline-no">&nbsp;</span>
794
+ <span class="cline-any cline-no">&nbsp;</span>
795
+ <span class="cline-any cline-no">&nbsp;</span>
796
+ <span class="cline-any cline-no">&nbsp;</span>
797
+ <span class="cline-any cline-no">&nbsp;</span>
798
+ <span class="cline-any cline-no">&nbsp;</span>
799
+ <span class="cline-any cline-no">&nbsp;</span>
800
+ <span class="cline-any cline-no">&nbsp;</span>
801
+ <span class="cline-any cline-no">&nbsp;</span>
802
+ <span class="cline-any cline-no">&nbsp;</span>
803
+ <span class="cline-any cline-no">&nbsp;</span>
804
+ <span class="cline-any cline-no">&nbsp;</span>
805
+ <span class="cline-any cline-no">&nbsp;</span>
806
+ <span class="cline-any cline-no">&nbsp;</span>
807
+ <span class="cline-any cline-no">&nbsp;</span>
808
+ <span class="cline-any cline-no">&nbsp;</span>
809
+ <span class="cline-any cline-no">&nbsp;</span>
810
+ <span class="cline-any cline-no">&nbsp;</span>
811
+ <span class="cline-any cline-no">&nbsp;</span>
812
+ <span class="cline-any cline-no">&nbsp;</span>
813
+ <span class="cline-any cline-no">&nbsp;</span>
814
+ <span class="cline-any cline-yes">1x</span>
815
+ <span class="cline-any cline-yes">1x</span>
118
816
  <span class="cline-any cline-yes">1x</span>
817
+ <span class="cline-any cline-no">&nbsp;</span>
818
+ <span class="cline-any cline-no">&nbsp;</span>
819
+ <span class="cline-any cline-no">&nbsp;</span>
119
820
  <span class="cline-any cline-yes">1x</span>
120
821
  <span class="cline-any cline-yes">1x</span>
121
822
  <span class="cline-any cline-yes">1x</span>
122
823
  <span class="cline-any cline-yes">1x</span>
123
824
  <span class="cline-any cline-yes">1x</span>
124
825
  <span class="cline-any cline-yes">1x</span>
125
- <span class="cline-any cline-neutral">&nbsp;</span>
126
826
  <span class="cline-any cline-yes">1x</span>
127
827
  <span class="cline-any cline-no">&nbsp;</span>
128
828
  <span class="cline-any cline-no">&nbsp;</span>
129
- <span class="cline-any cline-neutral">&nbsp;</span>
829
+ <span class="cline-any cline-yes">1x</span>
830
+ <span class="cline-any cline-yes">1x</span>
831
+ <span class="cline-any cline-no">&nbsp;</span>
832
+ <span class="cline-any cline-no">&nbsp;</span>
833
+ <span class="cline-any cline-no">&nbsp;</span>
834
+ <span class="cline-any cline-yes">1x</span>
835
+ <span class="cline-any cline-yes">1x</span>
836
+ <span class="cline-any cline-no">&nbsp;</span>
837
+ <span class="cline-any cline-no">&nbsp;</span>
838
+ <span class="cline-any cline-no">&nbsp;</span>
839
+ <span class="cline-any cline-no">&nbsp;</span>
840
+ <span class="cline-any cline-no">&nbsp;</span>
841
+ <span class="cline-any cline-no">&nbsp;</span>
130
842
  <span class="cline-any cline-no">&nbsp;</span>
131
- <span class="cline-any cline-neutral">&nbsp;</span>
132
- <span class="cline-any cline-neutral">&nbsp;</span>
133
- <span class="cline-any cline-neutral">&nbsp;</span>
843
+ <span class="cline-any cline-no">&nbsp;</span>
844
+ <span class="cline-any cline-yes">1x</span>
845
+ <span class="cline-any cline-yes">1x</span>
846
+ <span class="cline-any cline-no">&nbsp;</span>
847
+ <span class="cline-any cline-yes">1x</span>
134
848
  <span class="cline-any cline-yes">1x</span>
135
849
  <span class="cline-any cline-no">&nbsp;</span>
136
- <span class="cline-any cline-neutral">&nbsp;</span>
137
- <span class="cline-any cline-neutral">&nbsp;</span>
850
+ <span class="cline-any cline-yes">1x</span>
138
851
  <span class="cline-any cline-yes">1x</span>
139
852
  <span class="cline-any cline-no">&nbsp;</span>
140
853
  <span class="cline-any cline-no">&nbsp;</span>
141
854
  <span class="cline-any cline-no">&nbsp;</span>
142
855
  <span class="cline-any cline-no">&nbsp;</span>
143
856
  <span class="cline-any cline-no">&nbsp;</span>
144
- <span class="cline-any cline-neutral">&nbsp;</span>
145
857
  <span class="cline-any cline-no">&nbsp;</span>
146
- <span class="cline-any cline-neutral">&nbsp;</span>
147
- <span class="cline-any cline-neutral">&nbsp;</span>
148
- <span class="cline-any cline-neutral">&nbsp;</span>
149
- <span class="cline-any cline-neutral">&nbsp;</span>
150
- <span class="cline-any cline-neutral">&nbsp;</span>
151
- <span class="cline-any cline-neutral">&nbsp;</span>
152
- <span class="cline-any cline-neutral">&nbsp;</span>
153
- <span class="cline-any cline-neutral">&nbsp;</span>
154
- <span class="cline-any cline-neutral">&nbsp;</span>
155
858
  <span class="cline-any cline-yes">1x</span>
156
- <span class="cline-any cline-neutral">&nbsp;</span>
157
- <span class="cline-any cline-neutral">&nbsp;</span>
158
- <span class="cline-any cline-neutral">&nbsp;</span>
159
- <span class="cline-any cline-neutral">&nbsp;</span>
160
- <span class="cline-any cline-neutral">&nbsp;</span>
161
- <span class="cline-any cline-neutral">&nbsp;</span>
162
- <span class="cline-any cline-neutral">&nbsp;</span>
163
- <span class="cline-any cline-neutral">&nbsp;</span>
164
- <span class="cline-any cline-neutral">&nbsp;</span>
165
- <span class="cline-any cline-neutral">&nbsp;</span>
166
- <span class="cline-any cline-neutral">&nbsp;</span>
167
- <span class="cline-any cline-neutral">&nbsp;</span>
168
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const submissionsUrl = '/user/submissions';
859
+ <span class="cline-any cline-yes">1x</span>
860
+ <span class="cline-any cline-yes">1x</span>
861
+ <span class="cline-any cline-yes">1x</span>
862
+ <span class="cline-any cline-yes">1x</span>
863
+ <span class="cline-any cline-yes">1x</span>
864
+ <span class="cline-any cline-yes">1x</span>
865
+ <span class="cline-any cline-yes">1x</span>
866
+ <span class="cline-any cline-yes">1x</span>
867
+ <span class="cline-any cline-yes">1x</span>
868
+ <span class="cline-any cline-yes">1x</span>
869
+ <span class="cline-any cline-yes">1x</span>
870
+ <span class="cline-any cline-yes">1x</span>
871
+ <span class="cline-any cline-yes">1x</span>
872
+ <span class="cline-any cline-yes">1x</span>
873
+ <span class="cline-any cline-yes">1x</span>
874
+ <span class="cline-any cline-yes">1x</span>
875
+ <span class="cline-any cline-yes">1x</span>
876
+ <span class="cline-any cline-yes">1x</span>
877
+ <span class="cline-any cline-yes">1x</span>
878
+ <span class="cline-any cline-yes">1x</span>
879
+ <span class="cline-any cline-yes">1x</span>
880
+ <span class="cline-any cline-yes">1x</span>
881
+ <span class="cline-any cline-yes">1x</span>
882
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import cookie from 'cookie';
883
+ import {
884
+ AccountHomeIcon,
885
+ DashboardIcon,
886
+ FacilityBasedPreviewIcon,
887
+ HardshipIcon,
888
+ HelpSupportIcon,
889
+ ManageUsersIcon,
890
+ MyApplicationsIcon,
891
+ MyTestDataIcon,
892
+ PaymentIcon,
893
+ PhysicianCompareIcon,
894
+ StarIcon,
895
+ TargetIcon,
896
+ IndividualReporting,
897
+ ManageDocumentsIcon,
898
+ AuthorContentIcon,
899
+ RegistrationIcon,
900
+ } from '../../lib/SvgComponents';
901
+ import { isReviewerRole, isContentMgmtRole } from './Content/SelectRole/utils';
902
+ &nbsp;
903
+ const submissionsUrl = '/user/submissions';
169
904
  const dashboardUrl = '/user/dashboard';
170
905
  const manageUrl = '/user/manage-access';
171
906
  const feedbackUrl = `${submissionsUrl}/feedback`;
@@ -173,34 +908,361 @@ const physicianCompareUrl = `${submissionsUrl}/doctors-clinicians-preview`;
173
908
  const reportsPortalUrl = `${submissionsUrl}/reports`;
174
909
  const facilityBasedPreviewBaseUrl = `${submissionsUrl}/facility-based-preview`;
175
910
  const viewingToolUrl = '/user/helpdesk-viewing-tool';
911
+ const contentMgrDashboardUrl = '/user/content-management';
912
+ const registrationUrl = '/user/registration/';
176
913
  &nbsp;
177
- const performanceFeedbackUrl = <span class="fstat-no" title="function not covered" >(p</span>erformanceYear) =&gt; {
914
+ const performanceFeedbackUrl = <span class="fstat-no" title="function not covered" >(performanceYear) =&gt; {</span>
178
915
  <span class="cstat-no" title="statement not covered" > if (performanceYear) {</span>
179
916
  <span class="cstat-no" title="statement not covered" > return `${feedbackUrl}/${performanceYear}`;</span>
180
- } else {
917
+ <span class="cstat-no" title="statement not covered" > } else {</span>
181
918
  <span class="cstat-no" title="statement not covered" > return feedbackUrl;</span>
182
- }
919
+ <span class="cstat-no" title="statement not covered" > }</span>
183
920
  };
184
921
  &nbsp;
185
- const facilityBasedPreviewUrl = <span class="fstat-no" title="function not covered" >(p</span>erformanceYear) =&gt; {
922
+ const facilityBasedPreviewUrl = <span class="fstat-no" title="function not covered" >(performanceYear) =&gt; {</span>
186
923
  <span class="cstat-no" title="statement not covered" > return `${facilityBasedPreviewBaseUrl}/${performanceYear}`;</span>
187
924
  };
188
925
  &nbsp;
189
- const handleNavigation = <span class="fstat-no" title="function not covered" >(e</span>, linkCallbackFunction, label) =&gt; {
926
+ const handleNavigation = <span class="fstat-no" title="function not covered" >(e, linkCallbackFunction, label) =&gt; {</span>
190
927
  <span class="cstat-no" title="statement not covered" > if (linkCallbackFunction) {</span>
191
- const { pathname, hash, search } = <span class="cstat-no" title="statement not covered" >e.currentTarget;</span>
928
+ <span class="cstat-no" title="statement not covered" > const { pathname, hash, search } = e.currentTarget;</span>
192
929
  <span class="cstat-no" title="statement not covered" > e.preventDefault();</span>
193
930
  <span class="cstat-no" title="statement not covered" > e.stopPropagation();</span>
194
931
  <span class="cstat-no" title="statement not covered" > linkCallbackFunction(`${pathname}${hash}${search}`);</span>
195
- }
932
+ <span class="cstat-no" title="statement not covered" > }</span>
196
933
  <span class="cstat-no" title="statement not covered" > window?.utag?.link({</span>
197
- ga_event_category: 'side navbar',
198
- ga_event_action: 'click',
199
- ga_event_label: label,
200
- page_title: `${window.document.title}`,
201
- page_url: `${window.location.pathname}`,
202
- event: 'trackEvent',
203
- });
934
+ <span class="cstat-no" title="statement not covered" > ga_event_category: 'side navbar',</span>
935
+ <span class="cstat-no" title="statement not covered" > ga_event_action: 'click',</span>
936
+ <span class="cstat-no" title="statement not covered" > ga_event_label: label,</span>
937
+ <span class="cstat-no" title="statement not covered" > page_title: `${window.document.title}`,</span>
938
+ <span class="cstat-no" title="statement not covered" > page_url: `${window.location.pathname}`,</span>
939
+ <span class="cstat-no" title="statement not covered" > event: 'trackEvent',</span>
940
+ <span class="cstat-no" title="statement not covered" > });</span>
941
+ };
942
+ &nbsp;
943
+ /**
944
+ * Load icon by url
945
+ * @param {string} url
946
+ * @returns svg icon
947
+ */
948
+ const getIcon = <span class="fstat-no" title="function not covered" >(url, linkLabel) =&gt; {</span>
949
+ <span class="cstat-no" title="statement not covered" > const icons = {</span>
950
+ <span class="cstat-no" title="statement not covered" > [dashboardUrl]: DashboardIcon,</span>
951
+ <span class="cstat-no" title="statement not covered" > [feedbackUrl]: StarIcon,</span>
952
+ <span class="cstat-no" title="statement not covered" > [manageUrl]: ManageUsersIcon,</span>
953
+ <span class="cstat-no" title="statement not covered" > [physicianCompareUrl]: PhysicianCompareIcon,</span>
954
+ <span class="cstat-no" title="statement not covered" > [reportsPortalUrl]: HardshipIcon,</span>
955
+ <span class="cstat-no" title="statement not covered" > [submissionsUrl]: AccountHomeIcon,</span>
956
+ <span class="cstat-no" title="statement not covered" > [facilityBasedPreviewBaseUrl]: FacilityBasedPreviewIcon,</span>
957
+ <span class="cstat-no" title="statement not covered" > [registrationUrl]: RegistrationIcon,</span>
958
+ <span class="cstat-no" title="statement not covered" > '/developers': HelpSupportIcon,</span>
959
+ <span class="cstat-no" title="statement not covered" > '/resources/help-and-support': HelpSupportIcon,</span>
960
+ <span class="cstat-no" title="statement not covered" > '/user/apm-incentive-payments': PaymentIcon,</span>
961
+ <span class="cstat-no" title="statement not covered" > '/user/applications': MyApplicationsIcon,</span>
962
+ <span class="cstat-no" title="statement not covered" > '/user/exception/#/landing': HardshipIcon,</span>
963
+ <span class="cstat-no" title="statement not covered" > '/user/targeted-review/#/landing': TargetIcon,</span>
964
+ <span class="cstat-no" title="statement not covered" > '/user/test-data': MyTestDataIcon,</span>
965
+ <span class="cstat-no" title="statement not covered" > '/user/self-nomination/#/landing': IndividualReporting,</span>
966
+ <span class="cstat-no" title="statement not covered" > '/user/reviewers': AccountHomeIcon,</span>
967
+ <span class="cstat-no" title="statement not covered" > '/reviewer/exception': HardshipIcon,</span>
968
+ <span class="cstat-no" title="statement not covered" > '/reviewer/targeted-review': TargetIcon,</span>
969
+ <span class="cstat-no" title="statement not covered" > '/self-nomination': IndividualReporting,</span>
970
+ <span class="cstat-no" title="statement not covered" > '/case-management': FacilityBasedPreviewIcon,</span>
971
+ <span class="cstat-no" title="statement not covered" > [contentMgrDashboardUrl]: AccountHomeIcon,</span>
972
+ <span class="cstat-no" title="statement not covered" > 'Manage Documents': ManageDocumentsIcon,</span>
973
+ <span class="cstat-no" title="statement not covered" > 'Author Content': AuthorContentIcon,</span>
974
+ <span class="cstat-no" title="statement not covered" > };</span>
975
+ <span class="cstat-no" title="statement not covered" ></span>
976
+ <span class="cstat-no" title="statement not covered" > if (linkLabel) return icons[linkLabel];</span>
977
+ <span class="cstat-no" title="statement not covered" > return icons[url];</span>
978
+ };
979
+ &nbsp;
980
+ const singleRoleContentMap = {
981
+ 'QPP Content Management - Author': 'contentManager',
982
+ 'QPP Content Management - Approver': 'contentManager',
983
+ 'QPP Content Management - Admin': 'contentManager',
984
+ 'QPP Front-end - Author': 'contentManager',
985
+ 'QPP Self-Nomination': 'internalReviewers',
986
+ 'QPP Targeted Review &amp; Exceptions': 'internalReviewers',
987
+ 'QPP Case Management - PIMMS Reviewer': 'internalReviewers',
988
+ 'QPP Case Management - ACO PAC Reviewer': 'internalReviewers',
989
+ 'QPP Case Management - CMS Reviewer': 'internalReviewers',
990
+ };
991
+ &nbsp;
992
+ const multiRoleContentMap = {
993
+ Reviewer: 'internalReviewers',
994
+ 'Content Manager': 'contentManager',
995
+ };
996
+ &nbsp;
997
+ const replaceDefaultContentMgrLinks = <span class="fstat-no" title="function not covered" >(defaultContent) =&gt; {</span>
998
+ <span class="cstat-no" title="statement not covered" > const host = window.location.host;</span>
999
+ <span class="cstat-no" title="statement not covered" > const updatedDefaultContent = {</span>
1000
+ <span class="cstat-no" title="statement not covered" > ...defaultContent,</span>
1001
+ <span class="cstat-no" title="statement not covered" > contentManager: [</span>
1002
+ <span class="cstat-no" title="statement not covered" > defaultContent.contentManager.find(</span>
1003
+ <span class="cstat-no" title="statement not covered" > (obj) =&gt; obj.label === 'Dashboard Home',</span>
1004
+ <span class="cstat-no" title="statement not covered" > ),</span>
1005
+ <span class="cstat-no" title="statement not covered" > {</span>
1006
+ <span class="cstat-no" title="statement not covered" > url: `${host}.qpp.cms.gov/cm/`,</span>
1007
+ <span class="cstat-no" title="statement not covered" > label: 'Manage Documents',</span>
1008
+ <span class="cstat-no" title="statement not covered" > },</span>
1009
+ <span class="cstat-no" title="statement not covered" > {</span>
1010
+ <span class="cstat-no" title="statement not covered" > url: `${host}.qpp.cms.gov/content-management/`,</span>
1011
+ <span class="cstat-no" title="statement not covered" > label: 'Author Content',</span>
1012
+ <span class="cstat-no" title="statement not covered" > },</span>
1013
+ <span class="cstat-no" title="statement not covered" > ],</span>
1014
+ <span class="cstat-no" title="statement not covered" > };</span>
1015
+ <span class="cstat-no" title="statement not covered" > return updatedDefaultContent;</span>
1016
+ };
1017
+ &nbsp;
1018
+ /**
1019
+ * Load the side nav content for the given role
1020
+ * @param {string} roleName role of given user from internalReviewerNames
1021
+ * @param {object} navContent object of side nav links by role (levelOneContent &amp; defaultContent)
1022
+ * @returns {array} returns an array of objects (side nav menu links) from levelOneContent
1023
+ * || defaultContent
1024
+ */
1025
+ const loadSideNavContent = <span class="fstat-no" title="function not covered" >(roleName, navContent, isMultiRoleUser = false) =&gt; {</span>
1026
+ <span class="cstat-no" title="statement not covered" > const { levelOneContent, defaultContent } = navContent;</span>
1027
+ <span class="cstat-no" title="statement not covered" > const updatedDefaultContent = replaceDefaultContentMgrLinks(defaultContent);</span>
1028
+ <span class="cstat-no" title="statement not covered" > const roleContentMap = isMultiRoleUser</span>
1029
+ <span class="cstat-no" title="statement not covered" > ? multiRoleContentMap</span>
1030
+ <span class="cstat-no" title="statement not covered" > : singleRoleContentMap;</span>
1031
+ <span class="cstat-no" title="statement not covered" > const contentByRole = roleContentMap[roleName];</span>
1032
+ <span class="cstat-no" title="statement not covered" > if (levelOneContent) {</span>
1033
+ <span class="cstat-no" title="statement not covered" > return levelOneContent[contentByRole] || levelOneContent.default;</span>
1034
+ <span class="cstat-no" title="statement not covered" > }</span>
1035
+ <span class="cstat-no" title="statement not covered" > return updatedDefaultContent[contentByRole] || updatedDefaultContent.default;</span>
1036
+ };
1037
+ &nbsp;
1038
+ /**
1039
+ * Check if user is currently impersonating
1040
+ * @param {string} docCookie document cookie
1041
+ * @returns {boolean}
1042
+ */
1043
+ const isImpersonating = <span class="fstat-no" title="function not covered" >(docCookie) =&gt; {</span>
1044
+ <span class="cstat-no" title="statement not covered" > const parsedCookies = cookie.parse(docCookie);</span>
1045
+ <span class="cstat-no" title="statement not covered" > return (</span>
1046
+ <span class="cstat-no" title="statement not covered" > parsedCookies.qpp_can_impersonate &amp;&amp; parsedCookies.qpp_impersonated_user</span>
1047
+ <span class="cstat-no" title="statement not covered" > );</span>
1048
+ };
1049
+ &nbsp;
1050
+ /**
1051
+ * Check if user has multiple roles, used to display Select Role dropdown
1052
+ * @param {string} docCookie document cookie
1053
+ * @returns {boolean}
1054
+ */
1055
+ const isMultiRoleUser = <span class="fstat-no" title="function not covered" >(docCookie) =&gt; {</span>
1056
+ <span class="cstat-no" title="statement not covered" > const activeRoles = new Set();</span>
1057
+ <span class="cstat-no" title="statement not covered" > const {</span>
1058
+ <span class="cstat-no" title="statement not covered" > qpp_cms_internal_authorized,</span>
1059
+ <span class="cstat-no" title="statement not covered" > qpp_has_authorizations,</span>
1060
+ <span class="cstat-no" title="statement not covered" > qpp_is_dev_pre,</span>
1061
+ <span class="cstat-no" title="statement not covered" > } = cookie.parse(docCookie);</span>
1062
+ <span class="cstat-no" title="statement not covered" ></span>
1063
+ <span class="cstat-no" title="statement not covered" > let internalAuthz = [];</span>
1064
+ <span class="cstat-no" title="statement not covered" ></span>
1065
+ <span class="cstat-no" title="statement not covered" > if (qpp_cms_internal_authorized) {</span>
1066
+ <span class="cstat-no" title="statement not covered" > internalAuthz = JSON.parse(qpp_cms_internal_authorized);</span>
1067
+ <span class="cstat-no" title="statement not covered" > }</span>
1068
+ <span class="cstat-no" title="statement not covered" > // Filter out test internalCms authz</span>
1069
+ <span class="cstat-no" title="statement not covered" > const filteredInternalAuthz = internalAuthz.filter((internalAuth) =&gt; {</span>
1070
+ <span class="cstat-no" title="statement not covered" > return (</span>
1071
+ <span class="cstat-no" title="statement not covered" > internalAuth !== 'Test internalCms Resource' &amp;&amp;</span>
1072
+ <span class="cstat-no" title="statement not covered" > internalAuth !== 'Test internalCms Resource 2'</span>
1073
+ <span class="cstat-no" title="statement not covered" > );</span>
1074
+ <span class="cstat-no" title="statement not covered" > });</span>
1075
+ <span class="cstat-no" title="statement not covered" ></span>
1076
+ <span class="cstat-no" title="statement not covered" > filteredInternalAuthz.forEach((element) =&gt; {</span>
1077
+ <span class="cstat-no" title="statement not covered" > if (isReviewerRole(element)) {</span>
1078
+ <span class="cstat-no" title="statement not covered" > return activeRoles.add('reviewer');</span>
1079
+ <span class="cstat-no" title="statement not covered" > }</span>
1080
+ <span class="cstat-no" title="statement not covered" > if (isContentMgmtRole(element)) {</span>
1081
+ <span class="cstat-no" title="statement not covered" > return activeRoles.add('content manager');</span>
1082
+ <span class="cstat-no" title="statement not covered" > }</span>
1083
+ <span class="cstat-no" title="statement not covered" > return activeRoles.add(element);</span>
1084
+ <span class="cstat-no" title="statement not covered" > });</span>
1085
+ <span class="cstat-no" title="statement not covered" ></span>
1086
+ <span class="cstat-no" title="statement not covered" > if (qpp_has_authorizations === 'true') {</span>
1087
+ <span class="cstat-no" title="statement not covered" > activeRoles.add('qpp user');</span>
1088
+ <span class="cstat-no" title="statement not covered" > }</span>
1089
+ <span class="cstat-no" title="statement not covered" ></span>
1090
+ <span class="cstat-no" title="statement not covered" > if (qpp_is_dev_pre === 'true') {</span>
1091
+ <span class="cstat-no" title="statement not covered" > activeRoles.clear(); // reset roles since there is no dropdown in devpre</span>
1092
+ <span class="cstat-no" title="statement not covered" > activeRoles.add('devpre user');</span>
1093
+ <span class="cstat-no" title="statement not covered" > }</span>
1094
+ <span class="cstat-no" title="statement not covered" ></span>
1095
+ <span class="cstat-no" title="statement not covered" > return activeRoles.size &gt; 1;</span>
1096
+ };
1097
+ &nbsp;
1098
+ /**
1099
+ * Transform cookie values to permissions object
1100
+ * @param {object} cookies parsed document.cookie values
1101
+ * @returns {object}
1102
+ */
1103
+ const transformCookieValues = <span class="fstat-no" title="function not covered" >(cookies) =&gt; {</span>
1104
+ <span class="cstat-no" title="statement not covered" > const {</span>
1105
+ <span class="cstat-no" title="statement not covered" > qpp_can_impersonate,</span>
1106
+ <span class="cstat-no" title="statement not covered" > qpp_has_authorizations,</span>
1107
+ <span class="cstat-no" title="statement not covered" > user_has_apm_payments,</span>
1108
+ <span class="cstat-no" title="statement not covered" > qpp_cms_internal_authorized,</span>
1109
+ <span class="cstat-no" title="statement not covered" > qpp_ehr_authorized,</span>
1110
+ <span class="cstat-no" title="statement not covered" > qpp_has_non_registry_authorizations,</span>
1111
+ <span class="cstat-no" title="statement not covered" > } = cookies;</span>
1112
+ <span class="cstat-no" title="statement not covered" > return {</span>
1113
+ <span class="cstat-no" title="statement not covered" > canImpersonate: qpp_can_impersonate === 'true',</span>
1114
+ <span class="cstat-no" title="statement not covered" > hasAuthorizations: qpp_has_authorizations === 'true',</span>
1115
+ <span class="cstat-no" title="statement not covered" > hasApmPayments: user_has_apm_payments === 'true',</span>
1116
+ <span class="cstat-no" title="statement not covered" > internalReviewerNames: qpp_cms_internal_authorized</span>
1117
+ <span class="cstat-no" title="statement not covered" > ? JSON.parse(qpp_cms_internal_authorized)</span>
1118
+ <span class="cstat-no" title="statement not covered" > : [],</span>
1119
+ <span class="cstat-no" title="statement not covered" > ehrAuthorized: qpp_ehr_authorized === 'true',</span>
1120
+ <span class="cstat-no" title="statement not covered" > hasNonRegistryAuthorizations:</span>
1121
+ <span class="cstat-no" title="statement not covered" > qpp_has_non_registry_authorizations === 'true',</span>
1122
+ <span class="cstat-no" title="statement not covered" > };</span>
1123
+ };
1124
+ &nbsp;
1125
+ const permissionsByRole = {
1126
+ 'QPP User': {
1127
+ canImpersonate: false,
1128
+ hasAuthorizations: true,
1129
+ hasApmPayments: true,
1130
+ },
1131
+ Reviewer: {
1132
+ hasAuthorizations: false,
1133
+ hasApmPaymentss: false,
1134
+ },
1135
+ 'Helpdesk Viewer': {
1136
+ hasAuthorizations: false,
1137
+ hasApmPayments: false,
1138
+ hasNonRegistryAuthorizations: false,
1139
+ internalReviewerNames: ['QPP Helpdesk'],
1140
+ },
1141
+ // Helpdesk role &amp;&amp; impersonating (use impersonated user authz values)
1142
+ Impersonation: {
1143
+ internalReviewerNames: ['QPP Helpdesk'],
1144
+ },
1145
+ 'Content Manager': {
1146
+ hasAuthorizations: false,
1147
+ hasApmPaymentss: false,
1148
+ hasNonRegistryAuthorizations: false,
1149
+ },
1150
+ };
1151
+ &nbsp;
1152
+ /**
1153
+ * Return permissions by role
1154
+ * @param {string} selectedRole selected user role
1155
+ * @param {object} permissionValues default permission values from transformed parsed cookie
1156
+ * @returns {object}
1157
+ */
1158
+ const loadUserPermissionsByRole = <span class="fstat-no" title="function not covered" >(selectedRole, permissionValues) =&gt; {</span>
1159
+ <span class="cstat-no" title="statement not covered" > return {</span>
1160
+ <span class="cstat-no" title="statement not covered" > ...permissionValues,</span>
1161
+ <span class="cstat-no" title="statement not covered" > ...permissionsByRole[selectedRole],</span>
1162
+ <span class="cstat-no" title="statement not covered" > };</span>
1163
+ };
1164
+ &nbsp;
1165
+ /**
1166
+ * Helper fn to return user permissions/properties from cookies set on login
1167
+ * @param {string} docCookie cookie values set on login
1168
+ * @param {string} selectedRole string of selected role if user has multiple roles
1169
+ * @returns {object}
1170
+ */
1171
+ const loadUserPermissions = <span class="fstat-no" title="function not covered" >(docCookie, selectedRole) =&gt; {</span>
1172
+ <span class="cstat-no" title="statement not covered" > const parsedCookies = cookie.parse(docCookie);</span>
1173
+ <span class="cstat-no" title="statement not covered" > const permissionValues = transformCookieValues(parsedCookies);</span>
1174
+ <span class="cstat-no" title="statement not covered" > const impersonating = isImpersonating(docCookie);</span>
1175
+ <span class="cstat-no" title="statement not covered" > const role = impersonating ? 'Impersonation' : selectedRole;</span>
1176
+ <span class="cstat-no" title="statement not covered" ></span>
1177
+ <span class="cstat-no" title="statement not covered" > if (role) {</span>
1178
+ <span class="cstat-no" title="statement not covered" > return loadUserPermissionsByRole(role, permissionValues);</span>
1179
+ <span class="cstat-no" title="statement not covered" > }</span>
1180
+ <span class="cstat-no" title="statement not covered" ></span>
1181
+ <span class="cstat-no" title="statement not covered" > return permissionValues;</span>
1182
+ };
1183
+ &nbsp;
1184
+ /**
1185
+ * Return map of link conditionals based on user cookies for side nav
1186
+ * @param {object} userPermissions user permissions/properties derived from cookies set on login
1187
+ * @returns {object}
1188
+ */
1189
+ const getUrlConditionMap = <span class="fstat-no" title="function not covered" >(userPermissions) =&gt; {</span>
1190
+ <span class="cstat-no" title="statement not covered" > return {</span>
1191
+ <span class="cstat-no" title="statement not covered" > [dashboardUrl]: userPermissions.hasAuthorizations,</span>
1192
+ <span class="cstat-no" title="statement not covered" > [feedbackUrl]: userPermissions.hasAuthorizations,</span>
1193
+ <span class="cstat-no" title="statement not covered" > '/user/apm-incentive-payments': userPermissions.hasApmPayments,</span>
1194
+ <span class="cstat-no" title="statement not covered" > [physicianCompareUrl]: userPermissions.hasNonRegistryAuthorizations,</span>
1195
+ <span class="cstat-no" title="statement not covered" > [registrationUrl]: userPermissions.hasAuthorizations,</span>
1196
+ <span class="cstat-no" title="statement not covered" > [reportsPortalUrl]: userPermissions.hasAuthorizations,</span>
1197
+ <span class="cstat-no" title="statement not covered" > [facilityBasedPreviewBaseUrl]: userPermissions.hasAuthorizations,</span>
1198
+ <span class="cstat-no" title="statement not covered" > '/user/helpdesk-viewing-tool': userPermissions.canImpersonate,</span>
1199
+ <span class="cstat-no" title="statement not covered" > '/reviewer/exception': userPermissions.internalReviewerNames?.includes(</span>
1200
+ <span class="cstat-no" title="statement not covered" > 'QPP Targeted Review &amp; Exceptions',</span>
1201
+ <span class="cstat-no" title="statement not covered" > ),</span>
1202
+ <span class="cstat-no" title="statement not covered" > '/reviewer/targeted-review':</span>
1203
+ <span class="cstat-no" title="statement not covered" > userPermissions.internalReviewerNames?.includes(</span>
1204
+ <span class="cstat-no" title="statement not covered" > 'QPP Targeted Review &amp; Exceptions',</span>
1205
+ <span class="cstat-no" title="statement not covered" > ),</span>
1206
+ <span class="cstat-no" title="statement not covered" > '/self-nomination': userPermissions.internalReviewerNames?.includes(</span>
1207
+ <span class="cstat-no" title="statement not covered" > 'QPP Self-Nomination',</span>
1208
+ <span class="cstat-no" title="statement not covered" > ),</span>
1209
+ <span class="cstat-no" title="statement not covered" ></span>
1210
+ <span class="cstat-no" title="statement not covered" > '/case-management': userPermissions.internalReviewerNames?.some((val) =&gt;</span>
1211
+ <span class="cstat-no" title="statement not covered" > [</span>
1212
+ <span class="cstat-no" title="statement not covered" > 'QPP Case Management - PIMMS Reviewer',</span>
1213
+ <span class="cstat-no" title="statement not covered" > 'QPP Case Management - ACO PAC Reviewer',</span>
1214
+ <span class="cstat-no" title="statement not covered" > 'QPP Case Management - CMS Reviewer',</span>
1215
+ <span class="cstat-no" title="statement not covered" > ].includes(val),</span>
1216
+ <span class="cstat-no" title="statement not covered" > ),</span>
1217
+ <span class="cstat-no" title="statement not covered" ></span>
1218
+ <span class="cstat-no" title="statement not covered" > // dev pre</span>
1219
+ <span class="cstat-no" title="statement not covered" > '/user/applications': userPermissions.ehrAuthorized,</span>
1220
+ <span class="cstat-no" title="statement not covered" > '/user/test-data': userPermissions.ehrAuthorized,</span>
1221
+ <span class="cstat-no" title="statement not covered" > };</span>
1222
+ };
1223
+ &nbsp;
1224
+ const isImpersonationLink = <span class="fstat-no" title="function not covered" >(docCookie, linkLabel) =&gt; {</span>
1225
+ <span class="cstat-no" title="statement not covered" > if (!isImpersonating(docCookie)) return;</span>
1226
+ <span class="cstat-no" title="statement not covered" > const helpdeskLinks = ['Account Home', 'Manage Access', 'Help and Support'];</span>
1227
+ <span class="cstat-no" title="statement not covered" > return !helpdeskLinks.includes(linkLabel);</span>
1228
+ };
1229
+ &nbsp;
1230
+ /**
1231
+ * Set SideNav expanded state as qpp_side_nav_expanded in localStorage
1232
+ */
1233
+ const sideNavExpandedStorage = {
1234
+ isNullOrUndefined: <span class="fstat-no" title="function not covered" >function () {</span>
1235
+ <span class="cstat-no" title="statement not covered" > const sideNavExpandedValue = localStorage.getItem('qpp_side_nav_expanded');</span>
1236
+ <span class="cstat-no" title="statement not covered" > return sideNavExpandedValue === null || sideNavExpandedValue === undefined;</span>
1237
+ },
1238
+ init: <span class="fstat-no" title="function not covered" >function () {</span>
1239
+ <span class="cstat-no" title="statement not covered" > if (this.isNullOrUndefined()) {</span>
1240
+ <span class="cstat-no" title="statement not covered" > localStorage.setItem('qpp_side_nav_expanded', true);</span>
1241
+ <span class="cstat-no" title="statement not covered" > }</span>
1242
+ },
1243
+ toggle: <span class="fstat-no" title="function not covered" >function () {</span>
1244
+ <span class="cstat-no" title="statement not covered" > const isSideNavExpanded = JSON.parse(</span>
1245
+ <span class="cstat-no" title="statement not covered" > localStorage.getItem('qpp_side_nav_expanded'),</span>
1246
+ <span class="cstat-no" title="statement not covered" > );</span>
1247
+ <span class="cstat-no" title="statement not covered" > if (!isSideNavExpanded) {</span>
1248
+ <span class="cstat-no" title="statement not covered" > localStorage.setItem('qpp_side_nav_expanded', true);</span>
1249
+ <span class="cstat-no" title="statement not covered" > } else {</span>
1250
+ <span class="cstat-no" title="statement not covered" > localStorage.setItem('qpp_side_nav_expanded', false);</span>
1251
+ <span class="cstat-no" title="statement not covered" > }</span>
1252
+ },
1253
+ get: <span class="fstat-no" title="function not covered" >function () {</span>
1254
+ <span class="cstat-no" title="statement not covered" > return JSON.parse(localStorage.getItem('qpp_side_nav_expanded'));</span>
1255
+ },
1256
+ remove: <span class="fstat-no" title="function not covered" >function () {</span>
1257
+ <span class="cstat-no" title="statement not covered" > localStorage.removeItem('qpp_side_nav_expanded');</span>
1258
+ },
1259
+ setDefault: <span class="fstat-no" title="function not covered" >function () {</span>
1260
+ <span class="cstat-no" title="statement not covered" > let defaultValue = true;</span>
1261
+ <span class="cstat-no" title="statement not covered" > if (!this.isNullOrUndefined()) {</span>
1262
+ <span class="cstat-no" title="statement not covered" > defaultValue = this.get();</span>
1263
+ <span class="cstat-no" title="statement not covered" > }</span>
1264
+ <span class="cstat-no" title="statement not covered" > return defaultValue;</span>
1265
+ <span class="cstat-no" title="statement not covered" > },</span>
204
1266
  };
205
1267
  &nbsp;
206
1268
  module.exports = {
@@ -209,12 +1271,21 @@ module.exports = {
209
1271
  feedbackUrl,
210
1272
  manageUrl,
211
1273
  physicianCompareUrl,
1274
+ registrationUrl,
212
1275
  performanceFeedbackUrl,
213
1276
  facilityBasedPreviewUrl,
214
1277
  handleNavigation,
215
1278
  reportsPortalUrl,
216
1279
  facilityBasedPreviewBaseUrl,
217
1280
  viewingToolUrl,
1281
+ loadUserPermissions,
1282
+ getUrlConditionMap,
1283
+ isMultiRoleUser,
1284
+ getIcon,
1285
+ isImpersonating,
1286
+ isImpersonationLink,
1287
+ loadSideNavContent,
1288
+ sideNavExpandedStorage,
218
1289
  };
219
1290
  &nbsp;</pre></td></tr></table></pre>
220
1291
 
@@ -223,7 +1294,7 @@ module.exports = {
223
1294
  <div class='footer quiet pad2 space-top1 center small'>
224
1295
  Code coverage generated by
225
1296
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
226
- at Fri Apr 29 2022 13:58:50 GMT-0400 (Eastern Daylight Time)
1297
+ at 2023-07-14T20:29:47.209Z
227
1298
  </div>
228
1299
  <script src="../../prettify.js"></script>
229
1300
  <script>