qpp-style 9.20.0 → 9.20.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/coverage/clover.xml +291 -335
  2. package/coverage/coverage-final.json +71 -72
  3. package/coverage/lcov-report/components/Accordion/index.html +1 -1
  4. package/coverage/lcov-report/components/Accordion/index.jsx.html +4 -4
  5. package/coverage/lcov-report/components/Error/Collapsible.jsx.html +1 -1
  6. package/coverage/lcov-report/components/Error/ErrorUI.jsx.html +1 -1
  7. package/coverage/lcov-report/components/Error/index.html +1 -1
  8. package/coverage/lcov-report/components/Footer/FooterUI.jsx.html +358 -184
  9. package/coverage/lcov-report/components/{Header/HeaderUI.jsx.html → Footer/LegacyFooterUI.jsx.html} +274 -193
  10. package/coverage/lcov-report/components/Footer/SocialLinks.jsx.html +11 -11
  11. package/coverage/lcov-report/components/Footer/Subscribe.jsx.html +11 -11
  12. package/coverage/lcov-report/components/Footer/index.html +44 -29
  13. package/coverage/lcov-report/components/Infotip/Infotip.jsx.html +2 -2
  14. package/coverage/lcov-report/components/Infotip/InfotipIcon.jsx.html +5 -5
  15. package/coverage/lcov-report/components/Infotip/index.html +1 -1
  16. package/coverage/lcov-report/components/Infotip/index.js.html +1 -1
  17. package/coverage/lcov-report/components/Modal/LegacyModal.jsx.html +3 -3
  18. package/coverage/lcov-report/components/Modal/Modal.jsx.html +5 -5
  19. package/coverage/lcov-report/components/Modal/index.html +1 -1
  20. package/coverage/lcov-report/components/Modal/index.jsx.html +5 -5
  21. package/coverage/lcov-report/components/SanitizedContent/index.html +1 -1
  22. package/coverage/lcov-report/components/SanitizedContent/index.jsx.html +1 -1
  23. package/coverage/lcov-report/components/SessionDialogUI.jsx.html +4 -4
  24. package/coverage/lcov-report/components/{NotificationBanner/CollapsedView.js.html → SideNav/AnimationGroup/AnimationGroup.jsx.html} +41 -56
  25. package/coverage/lcov-report/components/{Button → SideNav/AnimationGroup}/index.html +30 -30
  26. package/coverage/lcov-report/components/SideNav/Chart/ScoreChart.jsx.html +7 -7
  27. package/coverage/lcov-report/components/SideNav/Chart/index.html +16 -1
  28. package/coverage/lcov-report/components/SideNav/Chart/index.js.html +94 -0
  29. package/coverage/lcov-report/components/{NotificationBanner/index.js.html → SideNav/Content/LevelOneContent.jsx.html} +244 -283
  30. package/coverage/lcov-report/components/{Header/HeaderMenuItem.jsx.html → SideNav/Content/LevelTwoContent.jsx.html} +236 -305
  31. package/coverage/lcov-report/components/SideNav/Content/index.html +146 -0
  32. package/coverage/lcov-report/components/SideNav/Content/index.js.html +97 -0
  33. package/coverage/lcov-report/components/{Header/HeaderCancel.jsx.html → SideNav/Details/IndividualDetails.jsx.html} +24 -18
  34. package/coverage/lcov-report/components/{NotificationBanner/ExpandedView.js.html → SideNav/Details/PracticeDetails.jsx.html} +64 -64
  35. package/coverage/lcov-report/components/{NotificationBanner → SideNav/Details}/index.html +40 -40
  36. package/coverage/lcov-report/components/SideNav/Details/index.js.html +97 -0
  37. package/coverage/lcov-report/{react/components/NotificationBanner/ExpandedView.js.html → components/SideNav/Links/CmsSwitchLink.jsx.html} +43 -55
  38. package/coverage/lcov-report/components/{Header/HeaderMenuButton.js.html → SideNav/Links/NavItemInline.jsx.html} +75 -63
  39. package/coverage/lcov-report/components/{Header/HeaderLogo.jsx.html → SideNav/Links/NavLinkContainer.jsx.html} +60 -72
  40. package/coverage/lcov-report/components/SideNav/Links/NavLinkDrawer.jsx.html +832 -0
  41. package/coverage/lcov-report/components/{Button/index.js.html → SideNav/Links/NavLinkInline.jsx.html} +152 -101
  42. package/coverage/lcov-report/{react/components/NotificationBanner/CollapsedView.js.html → components/SideNav/Links/NavLinkToggle.jsx.html} +46 -40
  43. package/coverage/lcov-report/components/SideNav/Links/index.html +206 -0
  44. package/coverage/lcov-report/components/{Header/utag-helpers.js.html → SideNav/Links/index.js.html} +40 -28
  45. package/coverage/lcov-report/components/SideNav/UI/SideNavUI.jsx.html +1084 -0
  46. package/coverage/lcov-report/components/{GovBanner → SideNav/UI}/index.html +42 -27
  47. package/coverage/lcov-report/components/SideNav/UI/index.js.html +94 -0
  48. package/coverage/lcov-report/components/SideNav/helpers.js.html +10 -829
  49. package/coverage/lcov-report/components/SideNav/index.html +17 -17
  50. package/coverage/lcov-report/components/Tooltip/Tooltip.jsx.html +8 -8
  51. package/coverage/lcov-report/components/Tooltip/index.html +1 -1
  52. package/coverage/lcov-report/components/Tooltip/index.js.html +1 -1
  53. package/coverage/lcov-report/components/Tooltip/position.js.html +1 -1
  54. package/coverage/lcov-report/components/hooks/index.html +19 -19
  55. package/coverage/lcov-report/components/hooks/useGetConfig.js.html +36 -39
  56. package/coverage/lcov-report/components/index.html +1 -1
  57. package/coverage/lcov-report/index.html +63 -63
  58. package/coverage/lcov-report/lib/Chevron.jsx.html +5 -5
  59. package/coverage/lcov-report/lib/SvgComponents.jsx.html +12 -102
  60. package/coverage/lcov-report/lib/index.html +30 -15
  61. package/coverage/lcov-report/lib/svg-definitions.svg.html +460 -0
  62. package/coverage/lcov-report/react/components/Accordion/index.html +1 -1
  63. package/coverage/lcov-report/react/components/Accordion/index.jsx.html +1 -1
  64. package/coverage/lcov-report/react/components/Button/index.html +1 -1
  65. package/coverage/lcov-report/react/components/Button/index.js.html +1 -1
  66. package/coverage/lcov-report/react/components/Dropdown/index.html +1 -1
  67. package/coverage/lcov-report/react/components/Dropdown/index.js.html +1 -1
  68. package/coverage/lcov-report/react/components/Error/Collapsible.jsx.html +1 -1
  69. package/coverage/lcov-report/react/components/Error/ErrorUI.jsx.html +1 -1
  70. package/coverage/lcov-report/react/components/Error/error.js.html +1 -1
  71. package/coverage/lcov-report/react/components/Error/index.html +1 -1
  72. package/coverage/lcov-report/react/components/Footer/FooterUI.jsx.html +1 -1
  73. package/coverage/lcov-report/react/components/Footer/LegacyFooterUI.jsx.html +16 -16
  74. package/coverage/lcov-report/react/components/Footer/SocialLinks.jsx.html +1 -1
  75. package/coverage/lcov-report/react/components/Footer/Subscribe.jsx.html +1 -1
  76. package/coverage/lcov-report/react/components/Footer/footer.js.html +1 -1
  77. package/coverage/lcov-report/react/components/Footer/index.html +1 -1
  78. package/coverage/lcov-report/react/components/GovBanner/index.html +1 -1
  79. package/coverage/lcov-report/react/components/GovBanner/index.js.html +1 -1
  80. package/coverage/lcov-report/react/components/Header/HeaderAccountMenu.jsx.html +1 -1
  81. package/coverage/lcov-report/react/components/Header/HeaderCancel.jsx.html +1 -1
  82. package/coverage/lcov-report/react/components/Header/HeaderContainer.jsx.html +1 -1
  83. package/coverage/lcov-report/react/components/Header/HeaderLogo.jsx.html +1 -1
  84. package/coverage/lcov-report/react/components/Header/HeaderMenuButton.js.html +1 -1
  85. package/coverage/lcov-report/react/components/Header/HeaderMenuItem.jsx.html +1 -1
  86. package/coverage/lcov-report/react/components/Header/HeaderMenuLink.js.html +8 -26
  87. package/coverage/lcov-report/react/components/Header/HeaderMenuSignOutButton.js.html +1 -1
  88. package/coverage/lcov-report/react/components/Header/HeaderMobileButton.js.html +1 -1
  89. package/coverage/lcov-report/react/components/Header/HeaderUI.jsx.html +1 -1
  90. package/coverage/lcov-report/react/components/Header/HelpIcon.jsx.html +1 -1
  91. package/coverage/lcov-report/react/components/Header/ImpersonatorBanner.jsx.html +1 -1
  92. package/coverage/lcov-report/react/components/Header/NavigationButtonIcon.jsx.html +1 -1
  93. package/coverage/lcov-report/react/components/Header/header.js.html +1 -1
  94. package/coverage/lcov-report/react/components/Header/hooks.js.html +1 -1
  95. package/coverage/lcov-report/react/components/Header/index.html +17 -17
  96. package/coverage/lcov-report/react/components/Header/utag-helpers.js.html +1 -1
  97. package/coverage/lcov-report/react/components/Infotip/Infotip.jsx.html +1 -1
  98. package/coverage/lcov-report/react/components/Infotip/InfotipIcon.jsx.html +1 -1
  99. package/coverage/lcov-report/react/components/Infotip/index.html +1 -1
  100. package/coverage/lcov-report/react/components/Infotip/index.js.html +1 -1
  101. package/coverage/lcov-report/react/components/Modal/LegacyModal.jsx.html +1 -1
  102. package/coverage/lcov-report/react/components/Modal/Modal.jsx.html +1 -1
  103. package/coverage/lcov-report/react/components/Modal/index.html +1 -1
  104. package/coverage/lcov-report/react/components/Modal/index.jsx.html +1 -1
  105. package/coverage/lcov-report/react/components/NotificationBanner/index.html +21 -51
  106. package/coverage/lcov-report/react/components/NotificationBanner/index.js.html +304 -172
  107. package/coverage/lcov-report/react/components/SanitizedContent/index.html +1 -1
  108. package/coverage/lcov-report/react/components/SanitizedContent/index.jsx.html +1 -1
  109. package/coverage/lcov-report/react/components/SessionDialog/index.html +1 -1
  110. package/coverage/lcov-report/react/components/SessionDialog/sessionDialog.js.html +1 -1
  111. package/coverage/lcov-report/react/components/SessionDialogUI.jsx.html +1 -1
  112. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +1 -1
  113. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/index.html +1 -1
  114. package/coverage/lcov-report/react/components/SideNav/Chart/ScoreChart.jsx.html +1 -1
  115. package/coverage/lcov-report/react/components/SideNav/Chart/index.html +1 -1
  116. package/coverage/lcov-report/react/components/SideNav/Chart/index.js.html +1 -1
  117. package/coverage/lcov-report/react/components/SideNav/Content/LevelOneContent.jsx.html +31 -109
  118. package/coverage/lcov-report/react/components/SideNav/Content/LevelTwoContent.jsx.html +1 -1
  119. package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/index.html +14 -14
  120. package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/index.js.html +16 -10
  121. package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/utils.js.html +27 -51
  122. package/coverage/lcov-report/react/components/SideNav/Content/index.html +19 -19
  123. package/coverage/lcov-report/react/components/SideNav/Content/index.js.html +1 -1
  124. package/coverage/lcov-report/react/components/SideNav/Details/IndividualDetails.jsx.html +1 -1
  125. package/coverage/lcov-report/react/components/SideNav/Details/PracticeDetails.jsx.html +1 -1
  126. package/coverage/lcov-report/react/components/SideNav/Details/index.html +1 -1
  127. package/coverage/lcov-report/react/components/SideNav/Details/index.js.html +1 -1
  128. package/coverage/lcov-report/react/components/SideNav/Links/CmsSwitchLink.jsx.html +1 -1
  129. package/coverage/lcov-report/react/components/SideNav/Links/NavItemInline.jsx.html +1 -1
  130. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkContainer.jsx.html +1 -1
  131. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkDrawer.jsx.html +1 -1
  132. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkInline.jsx.html +1 -1
  133. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkToggle.jsx.html +1 -1
  134. package/coverage/lcov-report/react/components/SideNav/Links/index.html +1 -1
  135. package/coverage/lcov-report/react/components/SideNav/Links/index.js.html +1 -1
  136. package/coverage/lcov-report/react/components/SideNav/UI/SideNavUI.jsx.html +16 -4
  137. package/coverage/lcov-report/react/components/SideNav/UI/index.html +1 -1
  138. package/coverage/lcov-report/react/components/SideNav/UI/index.js.html +1 -1
  139. package/coverage/lcov-report/react/components/SideNav/helpers.js.html +17 -197
  140. package/coverage/lcov-report/react/components/SideNav/index.html +19 -19
  141. package/coverage/lcov-report/react/components/SideNav/index.js.html +1 -1
  142. package/coverage/lcov-report/react/components/Tooltip/Tooltip.jsx.html +1 -1
  143. package/coverage/lcov-report/react/components/Tooltip/index.html +1 -1
  144. package/coverage/lcov-report/react/components/Tooltip/index.js.html +1 -1
  145. package/coverage/lcov-report/react/components/Tooltip/position.js.html +1 -1
  146. package/coverage/lcov-report/react/components/hooks/index.html +1 -1
  147. package/coverage/lcov-report/react/components/hooks/useGetConfig.js.html +1 -1
  148. package/coverage/lcov-report/react/components/index.html +1 -1
  149. package/coverage/lcov-report/react/index.html +1 -1
  150. package/coverage/lcov-report/react/index.js.html +1 -1
  151. package/coverage/lcov-report/react/lib/Chevron.jsx.html +1 -1
  152. package/coverage/lcov-report/react/lib/SvgComponents.jsx.html +9 -57
  153. package/coverage/lcov-report/react/lib/index.html +29 -14
  154. package/coverage/lcov-report/react/lib/svg-definitions.svg.html +1 -1
  155. package/coverage/lcov-report/react/session/index.html +1 -1
  156. package/coverage/lcov-report/react/session/index.js.html +1 -1
  157. package/coverage/lcov-report/react/session/logout.js.html +1 -1
  158. package/coverage/lcov-report/react/session/refresh.js.html +1 -1
  159. package/coverage/lcov-report/react/session/ttl.js.html +1 -1
  160. package/coverage/lcov-report/session/index.html +20 -20
  161. package/coverage/lcov-report/session/index.js.html +1 -1
  162. package/coverage/lcov-report/session/logout.js.html +15 -24
  163. package/coverage/lcov-report/session/refresh.js.html +2 -2
  164. package/coverage/lcov-report/session/ttl.js.html +2 -2
  165. package/coverage/lcov.info +454 -530
  166. package/dist/browser.js +1 -1
  167. package/dist/browser.js.map +1 -1
  168. package/dist/index.js +1 -1
  169. package/dist/index.js.map +1 -1
  170. package/dist/react/index.js +1 -1
  171. package/dist/react/index.js.map +1 -1
  172. package/package.json +9 -9
  173. package/styles/qppds/components/_header.scss +1 -1
  174. package/coverage/lcov-report/components/GovBanner/index.js.html +0 -436
  175. package/coverage/lcov-report/components/Header/HeaderAccountMenu.jsx.html +0 -592
  176. package/coverage/lcov-report/components/Header/HeaderContainer.jsx.html +0 -280
  177. package/coverage/lcov-report/components/Header/HeaderMenuLink.js.html +0 -253
  178. package/coverage/lcov-report/components/Header/HeaderMenuSignOutButton.js.html +0 -271
  179. package/coverage/lcov-report/components/Header/HeaderMobileButton.js.html +0 -196
  180. package/coverage/lcov-report/components/Header/HelpIcon.jsx.html +0 -181
  181. package/coverage/lcov-report/components/Header/ImpersonatorBanner.jsx.html +0 -331
  182. package/coverage/lcov-report/components/Header/NavigationButtonIcon.jsx.html +0 -166
  183. package/coverage/lcov-report/components/Header/hooks.js.html +0 -241
  184. package/coverage/lcov-report/components/Header/index.html +0 -326
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">34.66% </span>
26
+ <span class="strong">54.54% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>26/75</span>
28
+ <span class='fraction'>12/22</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/29</span>
35
+ <span class='fraction'>0/4</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/15</span>
42
+ <span class='fraction'>0/3</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">35.61% </span>
47
+ <span class="strong">54.54% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>26/73</span>
49
+ <span class='fraction'>12/22</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 low'></div>
64
+ <div class='status-line medium'></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,300 +114,7 @@
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>
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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
391
- <span class="cline-any cline-neutral">&nbsp;</span>
392
- <span class="cline-any cline-neutral">&nbsp;</span>
393
- <span class="cline-any cline-neutral">&nbsp;</span>
394
- <span class="cline-any cline-neutral">&nbsp;</span>
395
- <span class="cline-any cline-neutral">&nbsp;</span>
396
- <span class="cline-any cline-neutral">&nbsp;</span>
397
- <span class="cline-any cline-neutral">&nbsp;</span>
398
- <span class="cline-any cline-neutral">&nbsp;</span>
399
- <span class="cline-any cline-neutral">&nbsp;</span>
400
- <span class="cline-any cline-neutral">&nbsp;</span>
401
- <span class="cline-any cline-neutral">&nbsp;</span>
402
- <span class="cline-any cline-neutral">&nbsp;</span>
403
- <span class="cline-any cline-neutral">&nbsp;</span>
404
- <span class="cline-any cline-neutral">&nbsp;</span>
405
- <span class="cline-any cline-neutral">&nbsp;</span>
406
- <span class="cline-any cline-neutral">&nbsp;</span>
407
- <span class="cline-any cline-neutral">&nbsp;</span>
408
- <span class="cline-any cline-neutral">&nbsp;</span>
409
- <span class="cline-any cline-yes">1x</span>
410
- <span class="cline-any cline-yes">1x</span>
117
+ <a name='L52'></a><a href='#L52'>52</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
411
118
  <span class="cline-any cline-yes">1x</span>
412
119
  <span class="cline-any cline-yes">1x</span>
413
120
  <span class="cline-any cline-yes">1x</span>
@@ -445,257 +152,7 @@
445
152
  <span class="cline-any cline-neutral">&nbsp;</span>
446
153
  <span class="cline-any cline-neutral">&nbsp;</span>
447
154
  <span class="cline-any cline-neutral">&nbsp;</span>
448
- <span class="cline-any cline-neutral">&nbsp;</span>
449
- <span class="cline-any cline-neutral">&nbsp;</span>
450
- <span class="cline-any cline-neutral">&nbsp;</span>
451
- <span class="cline-any cline-neutral">&nbsp;</span>
452
- <span class="cline-any cline-neutral">&nbsp;</span>
453
- <span class="cline-any cline-yes">1x</span>
454
- <span class="cline-any cline-no">&nbsp;</span>
455
- <span class="cline-any cline-neutral">&nbsp;</span>
456
- <span class="cline-any cline-neutral">&nbsp;</span>
457
- <span class="cline-any cline-neutral">&nbsp;</span>
458
- <span class="cline-any cline-neutral">&nbsp;</span>
459
- <span class="cline-any cline-neutral">&nbsp;</span>
460
- <span class="cline-any cline-neutral">&nbsp;</span>
461
- <span class="cline-any cline-neutral">&nbsp;</span>
462
- <span class="cline-any cline-neutral">&nbsp;</span>
463
- <span class="cline-any cline-neutral">&nbsp;</span>
464
- <span class="cline-any cline-neutral">&nbsp;</span>
465
- <span class="cline-any cline-neutral">&nbsp;</span>
466
- <span class="cline-any cline-neutral">&nbsp;</span>
467
- <span class="cline-any cline-neutral">&nbsp;</span>
468
- <span class="cline-any cline-neutral">&nbsp;</span>
469
- <span class="cline-any cline-neutral">&nbsp;</span>
470
- <span class="cline-any cline-neutral">&nbsp;</span>
471
- <span class="cline-any cline-neutral">&nbsp;</span>
472
- <span class="cline-any cline-neutral">&nbsp;</span>
473
- <span class="cline-any cline-neutral">&nbsp;</span>
474
- <span class="cline-any cline-neutral">&nbsp;</span>
475
- <span class="cline-any cline-neutral">&nbsp;</span>
476
- <span class="cline-any cline-neutral">&nbsp;</span>
477
- <span class="cline-any cline-neutral">&nbsp;</span>
478
- <span class="cline-any cline-neutral">&nbsp;</span>
479
- <span class="cline-any cline-no">&nbsp;</span>
480
- <span class="cline-any cline-no">&nbsp;</span>
481
- <span class="cline-any cline-neutral">&nbsp;</span>
482
- <span class="cline-any cline-neutral">&nbsp;</span>
483
- <span class="cline-any cline-yes">1x</span>
484
- <span class="cline-any cline-neutral">&nbsp;</span>
485
- <span class="cline-any cline-neutral">&nbsp;</span>
486
- <span class="cline-any cline-neutral">&nbsp;</span>
487
- <span class="cline-any cline-neutral">&nbsp;</span>
488
- <span class="cline-any cline-neutral">&nbsp;</span>
489
- <span class="cline-any cline-neutral">&nbsp;</span>
490
- <span class="cline-any cline-neutral">&nbsp;</span>
491
- <span class="cline-any cline-neutral">&nbsp;</span>
492
- <span class="cline-any cline-yes">1x</span>
493
- <span class="cline-any cline-neutral">&nbsp;</span>
494
- <span class="cline-any cline-neutral">&nbsp;</span>
495
- <span class="cline-any cline-neutral">&nbsp;</span>
496
- <span class="cline-any cline-neutral">&nbsp;</span>
497
- <span class="cline-any cline-yes">1x</span>
498
- <span class="cline-any cline-no">&nbsp;</span>
499
- <span class="cline-any cline-no">&nbsp;</span>
500
- <span class="cline-any cline-neutral">&nbsp;</span>
501
- <span class="cline-any cline-neutral">&nbsp;</span>
502
- <span class="cline-any cline-neutral">&nbsp;</span>
503
- <span class="cline-any cline-no">&nbsp;</span>
504
- <span class="cline-any cline-neutral">&nbsp;</span>
505
- <span class="cline-any cline-neutral">&nbsp;</span>
506
- <span class="cline-any cline-neutral">&nbsp;</span>
507
- <span class="cline-any cline-neutral">&nbsp;</span>
508
- <span class="cline-any cline-neutral">&nbsp;</span>
509
- <span class="cline-any cline-neutral">&nbsp;</span>
510
- <span class="cline-any cline-neutral">&nbsp;</span>
511
- <span class="cline-any cline-neutral">&nbsp;</span>
512
- <span class="cline-any cline-neutral">&nbsp;</span>
513
- <span class="cline-any cline-neutral">&nbsp;</span>
514
- <span class="cline-any cline-neutral">&nbsp;</span>
515
- <span class="cline-any cline-no">&nbsp;</span>
516
- <span class="cline-any cline-neutral">&nbsp;</span>
517
- <span class="cline-any cline-neutral">&nbsp;</span>
518
- <span class="cline-any cline-neutral">&nbsp;</span>
519
- <span class="cline-any cline-neutral">&nbsp;</span>
520
- <span class="cline-any cline-neutral">&nbsp;</span>
521
- <span class="cline-any cline-neutral">&nbsp;</span>
522
- <span class="cline-any cline-neutral">&nbsp;</span>
523
- <span class="cline-any cline-neutral">&nbsp;</span>
524
- <span class="cline-any cline-neutral">&nbsp;</span>
525
- <span class="cline-any cline-yes">1x</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-neutral">&nbsp;</span>
530
- <span class="cline-any cline-neutral">&nbsp;</span>
531
- <span class="cline-any cline-no">&nbsp;</span>
532
- <span class="cline-any cline-no">&nbsp;</span>
533
- <span class="cline-any cline-no">&nbsp;</span>
534
- <span class="cline-any cline-neutral">&nbsp;</span>
535
- <span class="cline-any cline-no">&nbsp;</span>
536
- <span class="cline-any cline-neutral">&nbsp;</span>
537
- <span class="cline-any cline-neutral">&nbsp;</span>
538
- <span class="cline-any cline-neutral">&nbsp;</span>
539
- <span class="cline-any cline-neutral">&nbsp;</span>
540
- <span class="cline-any cline-neutral">&nbsp;</span>
541
- <span class="cline-any cline-neutral">&nbsp;</span>
542
- <span class="cline-any cline-neutral">&nbsp;</span>
543
- <span class="cline-any cline-yes">1x</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-neutral">&nbsp;</span>
547
- <span class="cline-any cline-neutral">&nbsp;</span>
548
- <span class="cline-any cline-neutral">&nbsp;</span>
549
- <span class="cline-any cline-neutral">&nbsp;</span>
550
- <span class="cline-any cline-neutral">&nbsp;</span>
551
- <span class="cline-any cline-neutral">&nbsp;</span>
552
- <span class="cline-any cline-neutral">&nbsp;</span>
553
- <span class="cline-any cline-neutral">&nbsp;</span>
554
- <span class="cline-any cline-neutral">&nbsp;</span>
555
- <span class="cline-any cline-yes">1x</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-neutral">&nbsp;</span>
561
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
565
- <span class="cline-any cline-neutral">&nbsp;</span>
566
- <span class="cline-any cline-neutral">&nbsp;</span>
567
- <span class="cline-any cline-neutral">&nbsp;</span>
568
- <span class="cline-any cline-no">&nbsp;</span>
569
- <span class="cline-any cline-neutral">&nbsp;</span>
570
- <span class="cline-any cline-neutral">&nbsp;</span>
571
- <span class="cline-any cline-neutral">&nbsp;</span>
572
- <span class="cline-any cline-neutral">&nbsp;</span>
573
- <span class="cline-any cline-neutral">&nbsp;</span>
574
- <span class="cline-any cline-neutral">&nbsp;</span>
575
- <span class="cline-any cline-neutral">&nbsp;</span>
576
- <span class="cline-any cline-yes">1x</span>
577
- <span class="cline-any cline-neutral">&nbsp;</span>
578
- <span class="cline-any cline-neutral">&nbsp;</span>
579
- <span class="cline-any cline-neutral">&nbsp;</span>
580
- <span class="cline-any cline-neutral">&nbsp;</span>
581
- <span class="cline-any cline-neutral">&nbsp;</span>
582
- <span class="cline-any cline-neutral">&nbsp;</span>
583
- <span class="cline-any cline-neutral">&nbsp;</span>
584
- <span class="cline-any cline-no">&nbsp;</span>
585
- <span class="cline-any cline-no">&nbsp;</span>
586
- <span class="cline-any cline-neutral">&nbsp;</span>
587
- <span class="cline-any cline-neutral">&nbsp;</span>
588
- <span class="cline-any cline-neutral">&nbsp;</span>
589
- <span class="cline-any cline-neutral">&nbsp;</span>
590
- <span class="cline-any cline-neutral">&nbsp;</span>
591
- <span class="cline-any cline-neutral">&nbsp;</span>
592
- <span class="cline-any cline-neutral">&nbsp;</span>
593
- <span class="cline-any cline-neutral">&nbsp;</span>
594
- <span class="cline-any cline-neutral">&nbsp;</span>
595
- <span class="cline-any cline-neutral">&nbsp;</span>
596
- <span class="cline-any cline-neutral">&nbsp;</span>
597
- <span class="cline-any cline-neutral">&nbsp;</span>
598
- <span class="cline-any cline-yes">1x</span>
599
- <span class="cline-any cline-neutral">&nbsp;</span>
600
- <span class="cline-any cline-neutral">&nbsp;</span>
601
- <span class="cline-any cline-neutral">&nbsp;</span>
602
- <span class="cline-any cline-neutral">&nbsp;</span>
603
- <span class="cline-any cline-neutral">&nbsp;</span>
604
- <span class="cline-any cline-neutral">&nbsp;</span>
605
- <span class="cline-any cline-neutral">&nbsp;</span>
606
- <span class="cline-any cline-neutral">&nbsp;</span>
607
- <span class="cline-any cline-neutral">&nbsp;</span>
608
- <span class="cline-any cline-neutral">&nbsp;</span>
609
- <span class="cline-any cline-neutral">&nbsp;</span>
610
- <span class="cline-any cline-neutral">&nbsp;</span>
611
- <span class="cline-any cline-neutral">&nbsp;</span>
612
- <span class="cline-any cline-neutral">&nbsp;</span>
613
- <span class="cline-any cline-neutral">&nbsp;</span>
614
- <span class="cline-any cline-neutral">&nbsp;</span>
615
- <span class="cline-any cline-neutral">&nbsp;</span>
616
- <span class="cline-any cline-neutral">&nbsp;</span>
617
- <span class="cline-any cline-neutral">&nbsp;</span>
618
- <span class="cline-any cline-neutral">&nbsp;</span>
619
- <span class="cline-any cline-neutral">&nbsp;</span>
620
- <span class="cline-any cline-neutral">&nbsp;</span>
621
- <span class="cline-any cline-neutral">&nbsp;</span>
622
- <span class="cline-any cline-neutral">&nbsp;</span>
623
- <span class="cline-any cline-neutral">&nbsp;</span>
624
- <span class="cline-any cline-neutral">&nbsp;</span>
625
- <span class="cline-any cline-neutral">&nbsp;</span>
626
- <span class="cline-any cline-neutral">&nbsp;</span>
627
- <span class="cline-any cline-neutral">&nbsp;</span>
628
- <span class="cline-any cline-neutral">&nbsp;</span>
629
- <span class="cline-any cline-neutral">&nbsp;</span>
630
- <span class="cline-any cline-neutral">&nbsp;</span>
631
- <span class="cline-any cline-yes">1x</span>
632
- <span class="cline-any cline-no">&nbsp;</span>
633
- <span class="cline-any cline-neutral">&nbsp;</span>
634
- <span class="cline-any cline-neutral">&nbsp;</span>
635
- <span class="cline-any cline-neutral">&nbsp;</span>
636
- <span class="cline-any cline-neutral">&nbsp;</span>
637
- <span class="cline-any cline-neutral">&nbsp;</span>
638
- <span class="cline-any cline-neutral">&nbsp;</span>
639
- <span class="cline-any cline-neutral">&nbsp;</span>
640
- <span class="cline-any cline-neutral">&nbsp;</span>
641
- <span class="cline-any cline-neutral">&nbsp;</span>
642
- <span class="cline-any cline-neutral">&nbsp;</span>
643
- <span class="cline-any cline-neutral">&nbsp;</span>
644
- <span class="cline-any cline-yes">1x</span>
645
- <span class="cline-any cline-no">&nbsp;</span>
646
- <span class="cline-any cline-no">&nbsp;</span>
647
- <span class="cline-any cline-no">&nbsp;</span>
648
- <span class="cline-any cline-no">&nbsp;</span>
649
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
653
- <span class="cline-any cline-neutral">&nbsp;</span>
654
- <span class="cline-any cline-no">&nbsp;</span>
655
- <span class="cline-any cline-neutral">&nbsp;</span>
656
- <span class="cline-any cline-neutral">&nbsp;</span>
657
- <span class="cline-any cline-neutral">&nbsp;</span>
658
- <span class="cline-any cline-neutral">&nbsp;</span>
659
- <span class="cline-any cline-neutral">&nbsp;</span>
660
- <span class="cline-any cline-neutral">&nbsp;</span>
661
- <span class="cline-any cline-neutral">&nbsp;</span>
662
- <span class="cline-any cline-yes">1x</span>
663
- <span class="cline-any cline-no">&nbsp;</span>
664
- <span class="cline-any cline-neutral">&nbsp;</span>
665
- <span class="cline-any cline-neutral">&nbsp;</span>
666
- <span class="cline-any cline-neutral">&nbsp;</span>
667
- <span class="cline-any cline-neutral">&nbsp;</span>
668
- <span class="cline-any cline-neutral">&nbsp;</span>
669
- <span class="cline-any cline-neutral">&nbsp;</span>
670
- <span class="cline-any cline-neutral">&nbsp;</span>
671
- <span class="cline-any cline-neutral">&nbsp;</span>
672
- <span class="cline-any cline-neutral">&nbsp;</span>
673
- <span class="cline-any cline-neutral">&nbsp;</span>
674
- <span class="cline-any cline-neutral">&nbsp;</span>
675
- <span class="cline-any cline-neutral">&nbsp;</span>
676
- <span class="cline-any cline-neutral">&nbsp;</span>
677
- <span class="cline-any cline-neutral">&nbsp;</span>
678
- <span class="cline-any cline-neutral">&nbsp;</span>
679
- <span class="cline-any cline-neutral">&nbsp;</span>
680
- <span class="cline-any cline-neutral">&nbsp;</span>
681
- <span class="cline-any cline-neutral">&nbsp;</span>
682
- <span class="cline-any cline-neutral">&nbsp;</span>
683
- <span class="cline-any cline-neutral">&nbsp;</span>
684
- <span class="cline-any cline-neutral">&nbsp;</span>
685
- <span class="cline-any cline-neutral">&nbsp;</span>
686
- <span class="cline-any cline-neutral">&nbsp;</span>
687
- <span class="cline-any cline-neutral">&nbsp;</span>
688
155
  <span class="cline-any cline-yes">1x</span>
689
- <span class="cline-any cline-no">&nbsp;</span>
690
- <span class="cline-any cline-no">&nbsp;</span>
691
- <span class="cline-any cline-no">&nbsp;</span>
692
- <span class="cline-any cline-neutral">&nbsp;</span>
693
- <span class="cline-any cline-neutral">&nbsp;</span>
694
- <span class="cline-any cline-yes">1x</span>
695
- <span class="cline-any cline-neutral">&nbsp;</span>
696
- <span class="cline-any cline-neutral">&nbsp;</span>
697
- <span class="cline-any cline-neutral">&nbsp;</span>
698
- <span class="cline-any cline-neutral">&nbsp;</span>
699
156
  <span class="cline-any cline-neutral">&nbsp;</span>
700
157
  <span class="cline-any cline-neutral">&nbsp;</span>
701
158
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -708,29 +165,7 @@
708
165
  <span class="cline-any cline-neutral">&nbsp;</span>
709
166
  <span class="cline-any cline-neutral">&nbsp;</span>
710
167
  <span class="cline-any cline-neutral">&nbsp;</span>
711
- <span class="cline-any cline-neutral">&nbsp;</span>
712
- <span class="cline-any cline-neutral">&nbsp;</span>
713
- <span class="cline-any cline-neutral">&nbsp;</span>
714
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import cookie from 'cookie';
715
- import {
716
- AccountHomeIcon,
717
- DashboardIcon,
718
- FacilityBasedPreviewIcon,
719
- HardshipIcon,
720
- HelpSupportIcon,
721
- ManageUsersIcon,
722
- MyApplicationsIcon,
723
- MyTestDataIcon,
724
- PaymentIcon,
725
- PhysicianCompareIcon,
726
- StarIcon,
727
- TargetIcon,
728
- IndividualReporting,
729
- ManageDocumentsIcon,
730
- AuthorContentIcon,
731
- } from '../../lib/SvgComponents';
732
- &nbsp;
733
- const submissionsUrl = '/user/submissions';
168
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const submissionsUrl = '/user/submissions';
734
169
  const dashboardUrl = '/user/dashboard';
735
170
  const manageUrl = '/user/manage-access';
736
171
  const feedbackUrl = `${submissionsUrl}/feedback`;
@@ -738,7 +173,6 @@ const physicianCompareUrl = `${submissionsUrl}/doctors-clinicians-preview`;
738
173
  const reportsPortalUrl = `${submissionsUrl}/reports`;
739
174
  const facilityBasedPreviewBaseUrl = `${submissionsUrl}/facility-based-preview`;
740
175
  const viewingToolUrl = '/user/helpdesk-viewing-tool';
741
- const contentMgrDashboardUrl = '/user/content-management';
742
176
  &nbsp;
743
177
  const performanceFeedbackUrl = <span class="fstat-no" title="function not covered" >(p</span>erformanceYear) =&gt; {
744
178
  <span class="cstat-no" title="statement not covered" > if (performanceYear) {</span>
@@ -769,252 +203,6 @@ const handleNavigation = <span class="fstat-no" title="function not covered" >(e
769
203
  });
770
204
  };
771
205
  &nbsp;
772
- /**
773
- * Load icon by url
774
- * @param {string} url
775
- * @returns svg icon
776
- */
777
- const getIcon = <span class="fstat-no" title="function not covered" >(u</span>rl, linkLabel) =&gt; {
778
- const icons = <span class="cstat-no" title="statement not covered" >{</span>
779
- [dashboardUrl]: DashboardIcon,
780
- [feedbackUrl]: StarIcon,
781
- [manageUrl]: ManageUsersIcon,
782
- [physicianCompareUrl]: PhysicianCompareIcon,
783
- [reportsPortalUrl]: HardshipIcon,
784
- [submissionsUrl]: AccountHomeIcon,
785
- [facilityBasedPreviewBaseUrl]: FacilityBasedPreviewIcon,
786
- '/developers': HelpSupportIcon,
787
- '/resources/help-and-support': HelpSupportIcon,
788
- '/user/apm-incentive-payments': PaymentIcon,
789
- '/user/applications': MyApplicationsIcon,
790
- '/user/exception/#/landing': HardshipIcon,
791
- '/user/targeted-review/#/landing': TargetIcon,
792
- '/user/test-data': MyTestDataIcon,
793
- '/user/self-nomination/#/landing': IndividualReporting,
794
- '/user/reviewers': AccountHomeIcon,
795
- '/reviewer/exception': HardshipIcon,
796
- '/reviewer/targeted-review': TargetIcon,
797
- '/self-nomination': IndividualReporting,
798
- [contentMgrDashboardUrl]: AccountHomeIcon,
799
- 'Manage Documents': ManageDocumentsIcon,
800
- 'Author Content': AuthorContentIcon,
801
- };
802
- &nbsp;
803
- <span class="cstat-no" title="statement not covered" > if (linkLabel) <span class="cstat-no" title="statement not covered" >return icons[linkLabel];</span></span>
804
- <span class="cstat-no" title="statement not covered" > return icons[url];</span>
805
- };
806
- &nbsp;
807
- const singleRoleContentMap = {
808
- 'QPP Content Management - Author': 'contentManager',
809
- 'QPP Content Management - Approver': 'contentManager',
810
- 'QPP Content Management - Admin': 'contentManager',
811
- 'QPP Front-end - Author': 'contentManager',
812
- 'QPP Self-Nomination': 'internalReviewers',
813
- 'QPP Targeted Review &amp; Exceptions': 'internalReviewers',
814
- };
815
- &nbsp;
816
- const multiRoleContentMap = {
817
- Reviewer: 'internalReviewers',
818
- 'Content Manager': 'contentManager',
819
- };
820
- &nbsp;
821
- const replaceDefaultContentMgrLinks = <span class="fstat-no" title="function not covered" >(d</span>efaultContent) =&gt; {
822
- const host = <span class="cstat-no" title="statement not covered" >window.location.host;</span>
823
- const updatedDefaultContent = <span class="cstat-no" title="statement not covered" >{</span>
824
- ...defaultContent,
825
- contentManager: [
826
- defaultContent.contentManager.find(
827
- <span class="fstat-no" title="function not covered" > (o</span>bj) =&gt; <span class="cstat-no" title="statement not covered" >obj.label === 'Dashboard Home'</span>
828
- ),
829
- {
830
- url: `${host}.qpp.cms.gov/cm/`,
831
- label: 'Manage Documents',
832
- },
833
- {
834
- url: `${host}.qpp.cms.gov/content-management/`,
835
- label: 'Author Content',
836
- },
837
- ],
838
- };
839
- <span class="cstat-no" title="statement not covered" > return updatedDefaultContent;</span>
840
- };
841
- &nbsp;
842
- /**
843
- * Load the side nav content for the given role
844
- * @param {sting} roleName role of given user from internalReviewerNames
845
- * @param {object} navContent object of side nav links by role (levelOneContent &amp; defaultContent)
846
- * @returns {array} returns an array of objects (side nav menu links) from levelOneContent
847
- * || defaultContent
848
- */
849
- const loadSideNavContent = <span class="fstat-no" title="function not covered" >(r</span>oleName, navContent, isMultiRoleUser = <span class="branch-0 cbranch-no" title="branch not covered" >false)</span> =&gt; {
850
- const { levelOneContent, defaultContent } = <span class="cstat-no" title="statement not covered" >navContent;</span>
851
- const updatedDefaultContent = <span class="cstat-no" title="statement not covered" >replaceDefaultContentMgrLinks(defaultContent);</span>
852
- const roleContentMap = <span class="cstat-no" title="statement not covered" >isMultiRoleUser</span>
853
- ? multiRoleContentMap
854
- : singleRoleContentMap;
855
- const contentByRole = <span class="cstat-no" title="statement not covered" >roleContentMap[roleName];</span>
856
- <span class="cstat-no" title="statement not covered" > if (levelOneContent) {</span>
857
- <span class="cstat-no" title="statement not covered" > return levelOneContent[contentByRole] || levelOneContent.default;</span>
858
- }
859
- <span class="cstat-no" title="statement not covered" > return updatedDefaultContent[contentByRole] || updatedDefaultContent.default;</span>
860
- };
861
- &nbsp;
862
- /**
863
- * Check if user is currently impersonating
864
- * @param {string} docCookie document cookie
865
- * @returns {boolean}
866
- */
867
- const isImpersonating = <span class="fstat-no" title="function not covered" >(d</span>ocCookie) =&gt; {
868
- const parsedCookies = <span class="cstat-no" title="statement not covered" >cookie.parse(docCookie);</span>
869
- <span class="cstat-no" title="statement not covered" > return (</span>
870
- parsedCookies.qpp_can_impersonate &amp;&amp; parsedCookies.qpp_impersonated_user
871
- );
872
- };
873
- &nbsp;
874
- /**
875
- * Check if user has multiple roles, used to display Select Role dropdown
876
- * @param {string} docCookie document cookie
877
- * @returns {boolean}
878
- */
879
- const isMultiRoleUser = <span class="fstat-no" title="function not covered" >(d</span>ocCookie) =&gt; {
880
- const { qpp_cms_internal_authorized } = <span class="cstat-no" title="statement not covered" >cookie.parse(docCookie);</span>
881
- let internalAuthz = <span class="cstat-no" title="statement not covered" >[];</span>
882
- <span class="cstat-no" title="statement not covered" > if (qpp_cms_internal_authorized) {</span>
883
- <span class="cstat-no" title="statement not covered" > internalAuthz = JSON.parse(qpp_cms_internal_authorized);</span>
884
- }
885
- // Filter out test internalCms authz
886
- const filteredInternalAuthz = <span class="cstat-no" title="statement not covered" >internalAuthz.filter(<span class="fstat-no" title="function not covered" >(i</span>nternalAuth) =&gt; {</span>
887
- <span class="cstat-no" title="statement not covered" > return (</span>
888
- internalAuth !== 'Test internalCms Resource' &amp;&amp;
889
- internalAuth !== 'Test internalCms Resource 2'
890
- );
891
- });
892
- <span class="cstat-no" title="statement not covered" > return filteredInternalAuthz.length &gt; 1;</span>
893
- };
894
- &nbsp;
895
- /**
896
- * Transform cookie values to permissions object
897
- * @param {object} cookies parsed document.cookie values
898
- * @returns {object}
899
- */
900
- const transformCookieValues = <span class="fstat-no" title="function not covered" >(c</span>ookies) =&gt; {
901
- const {
902
- qpp_can_impersonate,
903
- qpp_has_authorizations,
904
- user_has_apm_payments,
905
- qpp_cms_internal_authorized,
906
- qpp_ehr_authorized,
907
- qpp_has_non_registry_authorizations,
908
- } = <span class="cstat-no" title="statement not covered" >cookies;</span>
909
- <span class="cstat-no" title="statement not covered" > return {</span>
910
- canImpersonate: qpp_can_impersonate === 'true',
911
- hasAuthorizations: qpp_has_authorizations === 'true',
912
- hasApmPayments: user_has_apm_payments === 'true',
913
- internalReviewerNames: qpp_cms_internal_authorized
914
- ? JSON.parse(qpp_cms_internal_authorized)
915
- : [],
916
- ehrAuthorized: qpp_ehr_authorized === 'true',
917
- hasNonRegistryAuthorizations:
918
- qpp_has_non_registry_authorizations === 'true',
919
- };
920
- };
921
- &nbsp;
922
- const permissionsByRole = {
923
- 'QPP User': {
924
- canImpersonate: false,
925
- hasAuthorizations: true,
926
- hasApmPayments: true,
927
- },
928
- Reviewer: {
929
- hasAuthorizations: false,
930
- hasApmPaymentss: false,
931
- },
932
- 'Helpdesk Viewer': {
933
- hasAuthorizations: false,
934
- hasApmPayments: false,
935
- hasNonRegistryAuthorizations: false,
936
- internalReviewerNames: ['QPP Helpdesk'],
937
- },
938
- // Helpdesk role &amp;&amp; impersonating (use impersonated user authz values)
939
- Impersonation: {
940
- internalReviewerNames: ['QPP Helpdesk'],
941
- },
942
- 'Content Manager': {
943
- hasAuthorizations: false,
944
- hasApmPaymentss: false,
945
- hasNonRegistryAuthorizations: false,
946
- },
947
- };
948
- &nbsp;
949
- /**
950
- * Return permissions by role
951
- * @param {string} selectedRole selected user role
952
- * @param {object} permissionValues default permission values from transformed parsed cookie
953
- * @returns {object}
954
- */
955
- const loadUserPermissionsByRole = <span class="fstat-no" title="function not covered" >(s</span>electedRole, permissionValues) =&gt; {
956
- <span class="cstat-no" title="statement not covered" > return {</span>
957
- ...permissionValues,
958
- ...permissionsByRole[selectedRole],
959
- };
960
- };
961
- &nbsp;
962
- /**
963
- * Helper fn to return user permissions/properties from cookies set on login
964
- * @param {string} docCookie cookie values set on login
965
- * @param {string} selectedRole string of selected role if user has multiple roles
966
- * @returns {object}
967
- */
968
- const loadUserPermissions = <span class="fstat-no" title="function not covered" >(d</span>ocCookie, selectedRole) =&gt; {
969
- const parsedCookies = <span class="cstat-no" title="statement not covered" >cookie.parse(docCookie);</span>
970
- const permissionValues = <span class="cstat-no" title="statement not covered" >transformCookieValues(parsedCookies);</span>
971
- const impersonating = <span class="cstat-no" title="statement not covered" >isImpersonating(docCookie);</span>
972
- const role = <span class="cstat-no" title="statement not covered" >impersonating ? 'Impersonation' : selectedRole;</span>
973
- &nbsp;
974
- <span class="cstat-no" title="statement not covered" > if (role) {</span>
975
- <span class="cstat-no" title="statement not covered" > return loadUserPermissionsByRole(role, permissionValues);</span>
976
- }
977
- &nbsp;
978
- <span class="cstat-no" title="statement not covered" > return permissionValues;</span>
979
- };
980
- &nbsp;
981
- /**
982
- * Return map of link conditionals based on user cookies for side nav
983
- * @param {object} userPermissions user permissions/properties derived from cookies set on login
984
- * @returns {object}
985
- */
986
- const getUrlConditionMap = <span class="fstat-no" title="function not covered" >(u</span>serPermissions) =&gt; {
987
- <span class="cstat-no" title="statement not covered" > return {</span>
988
- [dashboardUrl]: userPermissions.hasAuthorizations,
989
- [feedbackUrl]: userPermissions.hasAuthorizations,
990
- '/user/apm-incentive-payments': userPermissions.hasApmPayments,
991
- [physicianCompareUrl]: userPermissions.hasNonRegistryAuthorizations,
992
- [reportsPortalUrl]: userPermissions.hasAuthorizations,
993
- [facilityBasedPreviewBaseUrl]: userPermissions.hasAuthorizations,
994
- '/user/helpdesk-viewing-tool': userPermissions.canImpersonate,
995
- '/reviewer/exception': userPermissions.internalReviewerNames?.includes(
996
- 'QPP Targeted Review &amp; Exceptions'
997
- ),
998
- '/reviewer/targeted-review':
999
- userPermissions.internalReviewerNames?.includes(
1000
- 'QPP Targeted Review &amp; Exceptions'
1001
- ),
1002
- '/self-nomination': userPermissions.internalReviewerNames?.includes(
1003
- 'QPP Self-Nomination'
1004
- ),
1005
- &nbsp;
1006
- // dev pre
1007
- '/user/applications': userPermissions.ehrAuthorized,
1008
- '/user/test-data': userPermissions.ehrAuthorized,
1009
- };
1010
- };
1011
- &nbsp;
1012
- const isImpersonationLink = <span class="fstat-no" title="function not covered" >(d</span>ocCookie, linkLabel) =&gt; {
1013
- <span class="cstat-no" title="statement not covered" > if (!isImpersonating(docCookie)) <span class="cstat-no" title="statement not covered" >return;</span></span>
1014
- const helpdeskLinks = <span class="cstat-no" title="statement not covered" >['Account Home', 'Manage Access', 'Help and Support'];</span>
1015
- <span class="cstat-no" title="statement not covered" > return !helpdeskLinks.includes(linkLabel);</span>
1016
- };
1017
- &nbsp;
1018
206
  module.exports = {
1019
207
  submissionsUrl,
1020
208
  dashboardUrl,
@@ -1027,13 +215,6 @@ module.exports = {
1027
215
  reportsPortalUrl,
1028
216
  facilityBasedPreviewBaseUrl,
1029
217
  viewingToolUrl,
1030
- loadUserPermissions,
1031
- getUrlConditionMap,
1032
- isMultiRoleUser,
1033
- getIcon,
1034
- isImpersonating,
1035
- isImpersonationLink,
1036
- loadSideNavContent,
1037
218
  };
1038
219
  &nbsp;</pre></td></tr></table></pre>
1039
220
 
@@ -1042,7 +223,7 @@ module.exports = {
1042
223
  <div class='footer quiet pad2 space-top1 center small'>
1043
224
  Code coverage generated by
1044
225
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1045
- at Sun Sep 11 2022 11:18:36 GMT-0700 (Pacific Daylight Time)
226
+ at Fri Apr 29 2022 13:58:50 GMT-0400 (Eastern Daylight Time)
1046
227
  </div>
1047
228
  <script src="../../prettify.js"></script>
1048
229
  <script>