@madie/madie-design-system 1.0.0 → 1.0.3

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 (250) hide show
  1. package/.storybook/main.js +3 -0
  2. package/README.md +2 -3
  3. package/components/Accordion/Accordion.stories.js +11 -11
  4. package/components/Accordion/index.jsx +78 -76
  5. package/components/Alert/Alert.stories.js +60 -51
  6. package/components/Alert/index.js +46 -37
  7. package/components/Breadcrumb/Breadcrumb.stories.js +62 -62
  8. package/components/Breadcrumb/index.js +80 -71
  9. package/components/Button/Button.stories.js +92 -86
  10. package/components/Button/index.js +65 -65
  11. package/components/CalloutBox/CalloutBox.stories.js +75 -75
  12. package/components/CalloutBox/index.js +92 -92
  13. package/components/Card/Card.stories.js +135 -135
  14. package/components/Card/index.js +128 -121
  15. package/components/Dropdown/Dropdown.stories.js +73 -73
  16. package/components/Dropdown/index.js +72 -72
  17. package/components/Error/Collapsible.jsx +75 -70
  18. package/components/Error/ErrorUI.jsx +22 -22
  19. package/components/Error/error.js +20 -20
  20. package/components/FlashNotification/FlashNotificationUI.jsx +77 -77
  21. package/components/FlashNotification/index.js +23 -23
  22. package/components/Footer/Footer.stories.js +13 -13
  23. package/components/Footer/FooterUI.jsx +264 -252
  24. package/components/Footer/LegacyFooterUI.jsx +190 -180
  25. package/components/Footer/SocialLinks.jsx +58 -55
  26. package/components/Footer/Subscribe.jsx +29 -29
  27. package/components/Footer/footer.js +21 -21
  28. package/components/FormControlLabel/index.jsx +23 -0
  29. package/components/Header/Header.stories.js +29 -26
  30. package/components/Header/HeaderAccountMenu.jsx +163 -149
  31. package/components/Header/HeaderCancel.jsx +8 -8
  32. package/components/Header/HeaderContainer.jsx +48 -43
  33. package/components/Header/HeaderLogo.jsx +34 -34
  34. package/components/Header/HeaderMenuButton.js +39 -39
  35. package/components/Header/HeaderMenuItem.jsx +252 -205
  36. package/components/Header/HeaderMenuLink.js +37 -37
  37. package/components/Header/HeaderMenuSignOutButton.js +50 -50
  38. package/components/Header/HeaderMobileButton.js +29 -29
  39. package/components/Header/HeaderUI.jsx +164 -147
  40. package/components/Header/HelpIcon.jsx +15 -15
  41. package/components/Header/ImpersonatorBanner.jsx +50 -47
  42. package/components/Header/NavigationButtonIcon.jsx +21 -21
  43. package/components/Header/header.js +36 -34
  44. package/components/Header/hooks.js +42 -35
  45. package/components/Header/utag-helpers.js +8 -8
  46. package/components/Infotip/Infotip.jsx +48 -48
  47. package/components/Infotip/Infotip.stories.js +32 -30
  48. package/components/Infotip/InfotipIcon.jsx +30 -30
  49. package/components/Infotip/index.js +1 -1
  50. package/components/InputLabel/index.jsx +58 -0
  51. package/components/Link/Link.stories.js +65 -64
  52. package/components/Link/index.js +46 -46
  53. package/components/Modal/LegacyModal.jsx +56 -54
  54. package/components/Modal/Modal.jsx +121 -121
  55. package/components/Modal/Modal.stories.js +152 -144
  56. package/components/Modal/index.jsx +11 -11
  57. package/components/NotificationBanner/NotificationBanner.stories.js +16 -16
  58. package/components/NotificationBanner/index.js +239 -225
  59. package/components/Pagination/index.jsx +212 -0
  60. package/components/SanitizedContent/index.jsx +183 -183
  61. package/components/Search/Search.stories.js +14 -14
  62. package/components/Search/index.js +72 -72
  63. package/components/Select/Select.stories.js +168 -0
  64. package/components/Select/index.jsx +103 -0
  65. package/components/SessionDialog/sessionDialog.js +20 -20
  66. package/components/SessionDialogUI.jsx +231 -219
  67. package/components/SideNav/AnimationGroup/AnimationGroup.jsx +19 -17
  68. package/components/SideNav/Chart/ScoreChart.jsx +238 -229
  69. package/components/SideNav/Chart/__tests__/ScoreChart.test.js +15 -15
  70. package/components/SideNav/Chart/index.js +1 -1
  71. package/components/SideNav/Content/LevelOneContent.jsx +194 -190
  72. package/components/SideNav/Content/LevelTwoContent.jsx +208 -195
  73. package/components/SideNav/Content/index.js +2 -2
  74. package/components/SideNav/Details/IndividualDetails.jsx +10 -10
  75. package/components/SideNav/Details/PracticeDetails.jsx +36 -34
  76. package/components/SideNav/Details/index.js +2 -2
  77. package/components/SideNav/Links/CmsSwitchLink.jsx +32 -32
  78. package/components/SideNav/Links/NavItemInline.jsx +44 -44
  79. package/components/SideNav/Links/NavLinkContainer.jsx +27 -25
  80. package/components/SideNav/Links/NavLinkDrawer.jsx +267 -231
  81. package/components/SideNav/Links/NavLinkInline.jsx +94 -92
  82. package/components/SideNav/Links/NavLinkToggle.jsx +25 -25
  83. package/components/SideNav/Links/index.js +10 -10
  84. package/components/SideNav/SideNav.stories.js +320 -288
  85. package/components/SideNav/UI/SideNavUI.jsx +321 -301
  86. package/components/SideNav/UI/index.js +1 -1
  87. package/components/SideNav/helpers.js +33 -33
  88. package/components/SideNav/index.js +46 -46
  89. package/components/Spinner/index.js +6 -6
  90. package/components/Tabs/Tab.js +19 -19
  91. package/components/Tabs/TabPanel.js +31 -24
  92. package/components/Tabs/Tabs.stories.js +118 -108
  93. package/components/Tabs/index.js +84 -79
  94. package/components/TextField/TextField.stories.js +103 -0
  95. package/components/TextField/index.jsx +80 -0
  96. package/components/TextInput/TextInput.stories.js +84 -84
  97. package/components/TextInput/index.js +123 -123
  98. package/components/Tooltip/Tooltip.jsx +57 -57
  99. package/components/Tooltip/Tooltip.stories.js +50 -50
  100. package/components/Tooltip/index.js +1 -1
  101. package/components/Tooltip/position.js +42 -34
  102. package/components/UnwrappedSpinner/index.js +5 -5
  103. package/components/hooks/useGetConfig.js +64 -55
  104. package/components/index.js +129 -119
  105. package/coverage/clover.xml +1333 -0
  106. package/coverage/coverage-final.json +73 -0
  107. package/coverage/lcov-report/InputLabel/index.html +116 -0
  108. package/coverage/lcov-report/InputLabel/index.jsx.html +214 -0
  109. package/coverage/lcov-report/Select/index.html +116 -0
  110. package/coverage/lcov-report/Select/index.jsx.html +391 -0
  111. package/coverage/lcov-report/Textfield/index.html +116 -0
  112. package/coverage/lcov-report/Textfield/index.jsx.html +322 -0
  113. package/coverage/lcov-report/base.css +224 -0
  114. package/coverage/lcov-report/block-navigation.js +87 -0
  115. package/coverage/lcov-report/favicon.png +0 -0
  116. package/coverage/lcov-report/index.html +506 -0
  117. package/coverage/lcov-report/index.jsx.html +688 -0
  118. package/coverage/lcov-report/prettify.css +1 -0
  119. package/coverage/lcov-report/prettify.js +2 -0
  120. package/coverage/lcov-report/react/components/Accordion/index.html +116 -0
  121. package/coverage/lcov-report/react/components/Accordion/index.jsx.html +370 -0
  122. package/coverage/lcov-report/react/components/Button/index.html +116 -0
  123. package/coverage/lcov-report/react/components/Button/index.js.html +355 -0
  124. package/coverage/lcov-report/react/components/Error/Collapsible.jsx.html +364 -0
  125. package/coverage/lcov-report/react/components/Error/ErrorUI.jsx.html +178 -0
  126. package/coverage/lcov-report/react/components/Error/error.js.html +163 -0
  127. package/coverage/lcov-report/react/components/Error/index.html +146 -0
  128. package/coverage/lcov-report/react/components/Footer/FooterUI.jsx.html +928 -0
  129. package/coverage/lcov-report/react/components/Footer/LegacyFooterUI.jsx.html +697 -0
  130. package/coverage/lcov-report/react/components/Footer/SocialLinks.jsx.html +274 -0
  131. package/coverage/lcov-report/react/components/Footer/Subscribe.jsx.html +187 -0
  132. package/coverage/lcov-report/react/components/Footer/footer.js.html +175 -0
  133. package/coverage/lcov-report/react/components/Footer/index.html +176 -0
  134. package/coverage/lcov-report/react/components/Header/HeaderAccountMenu.jsx.html +634 -0
  135. package/coverage/lcov-report/react/components/Header/HeaderCancel.jsx.html +133 -0
  136. package/coverage/lcov-report/react/components/Header/HeaderContainer.jsx.html +289 -0
  137. package/coverage/lcov-report/react/components/Header/HeaderLogo.jsx.html +211 -0
  138. package/coverage/lcov-report/react/components/Header/HeaderMenuButton.js.html +235 -0
  139. package/coverage/lcov-report/react/components/Header/HeaderMenuItem.jsx.html +922 -0
  140. package/coverage/lcov-report/react/components/Header/HeaderMenuLink.js.html +235 -0
  141. package/coverage/lcov-report/react/components/Header/HeaderMenuSignOutButton.js.html +271 -0
  142. package/coverage/lcov-report/react/components/Header/HeaderMobileButton.js.html +196 -0
  143. package/coverage/lcov-report/react/components/Header/HeaderUI.jsx.html +637 -0
  144. package/coverage/lcov-report/react/components/Header/HelpIcon.jsx.html +181 -0
  145. package/coverage/lcov-report/react/components/Header/ImpersonatorBanner.jsx.html +265 -0
  146. package/coverage/lcov-report/react/components/Header/NavigationButtonIcon.jsx.html +166 -0
  147. package/coverage/lcov-report/react/components/Header/header.js.html +211 -0
  148. package/coverage/lcov-report/react/components/Header/hooks.js.html +262 -0
  149. package/coverage/lcov-report/react/components/Header/index.html +341 -0
  150. package/coverage/lcov-report/react/components/Header/utag-helpers.js.html +112 -0
  151. package/coverage/lcov-report/react/components/Infotip/Infotip.jsx.html +310 -0
  152. package/coverage/lcov-report/react/components/Infotip/InfotipIcon.jsx.html +208 -0
  153. package/coverage/lcov-report/react/components/Infotip/index.html +146 -0
  154. package/coverage/lcov-report/react/components/Infotip/index.js.html +94 -0
  155. package/coverage/lcov-report/react/components/InputLabel/index.html +116 -0
  156. package/coverage/lcov-report/react/components/InputLabel/index.jsx.html +214 -0
  157. package/coverage/lcov-report/react/components/Modal/LegacyModal.jsx.html +307 -0
  158. package/coverage/lcov-report/react/components/Modal/Modal.jsx.html +505 -0
  159. package/coverage/lcov-report/react/components/Modal/index.html +146 -0
  160. package/coverage/lcov-report/react/components/Modal/index.jsx.html +151 -0
  161. package/coverage/lcov-report/react/components/NotificationBanner/index.html +116 -0
  162. package/coverage/lcov-report/react/components/NotificationBanner/index.js.html +922 -0
  163. package/coverage/lcov-report/react/components/Pagination/index.html +116 -0
  164. package/coverage/lcov-report/react/components/Pagination/index.jsx.html +721 -0
  165. package/coverage/lcov-report/react/components/SanitizedContent/index.html +116 -0
  166. package/coverage/lcov-report/react/components/SanitizedContent/index.jsx.html +685 -0
  167. package/coverage/lcov-report/react/components/Select/index.html +116 -0
  168. package/coverage/lcov-report/react/components/Select/index.jsx.html +391 -0
  169. package/coverage/lcov-report/react/components/SessionDialog/index.html +116 -0
  170. package/coverage/lcov-report/react/components/SessionDialog/sessionDialog.js.html +163 -0
  171. package/coverage/lcov-report/react/components/SessionDialogUI.jsx.html +904 -0
  172. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +172 -0
  173. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/index.html +116 -0
  174. package/coverage/lcov-report/react/components/SideNav/Chart/ScoreChart.jsx.html +916 -0
  175. package/coverage/lcov-report/react/components/SideNav/Chart/index.html +131 -0
  176. package/coverage/lcov-report/react/components/SideNav/Chart/index.js.html +94 -0
  177. package/coverage/lcov-report/react/components/SideNav/Content/LevelOneContent.jsx.html +721 -0
  178. package/coverage/lcov-report/react/components/SideNav/Content/LevelTwoContent.jsx.html +772 -0
  179. package/coverage/lcov-report/react/components/SideNav/Content/index.html +146 -0
  180. package/coverage/lcov-report/react/components/SideNav/Content/index.js.html +97 -0
  181. package/coverage/lcov-report/react/components/SideNav/Details/IndividualDetails.jsx.html +139 -0
  182. package/coverage/lcov-report/react/components/SideNav/Details/PracticeDetails.jsx.html +226 -0
  183. package/coverage/lcov-report/react/components/SideNav/Details/index.html +146 -0
  184. package/coverage/lcov-report/react/components/SideNav/Details/index.js.html +97 -0
  185. package/coverage/lcov-report/react/components/SideNav/Links/CmsSwitchLink.jsx.html +208 -0
  186. package/coverage/lcov-report/react/components/SideNav/Links/NavItemInline.jsx.html +247 -0
  187. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkContainer.jsx.html +205 -0
  188. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkDrawer.jsx.html +940 -0
  189. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkInline.jsx.html +412 -0
  190. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkToggle.jsx.html +187 -0
  191. package/coverage/lcov-report/react/components/SideNav/Links/index.html +206 -0
  192. package/coverage/lcov-report/react/components/SideNav/Links/index.js.html +124 -0
  193. package/coverage/lcov-report/react/components/SideNav/UI/SideNavUI.jsx.html +1144 -0
  194. package/coverage/lcov-report/react/components/SideNav/UI/index.html +131 -0
  195. package/coverage/lcov-report/react/components/SideNav/UI/index.js.html +94 -0
  196. package/coverage/lcov-report/react/components/SideNav/helpers.js.html +232 -0
  197. package/coverage/lcov-report/react/components/SideNav/index.html +131 -0
  198. package/coverage/lcov-report/react/components/SideNav/index.js.html +244 -0
  199. package/coverage/lcov-report/react/components/Textfield/index.html +116 -0
  200. package/coverage/lcov-report/react/components/Textfield/index.jsx.html +322 -0
  201. package/coverage/lcov-report/react/components/Tooltip/Tooltip.jsx.html +349 -0
  202. package/coverage/lcov-report/react/components/Tooltip/index.html +146 -0
  203. package/coverage/lcov-report/react/components/Tooltip/index.js.html +94 -0
  204. package/coverage/lcov-report/react/components/Tooltip/position.js.html +313 -0
  205. package/coverage/lcov-report/react/components/hooks/index.html +116 -0
  206. package/coverage/lcov-report/react/components/hooks/useGetConfig.js.html +334 -0
  207. package/coverage/lcov-report/react/components/index.html +116 -0
  208. package/coverage/lcov-report/react/index.html +116 -0
  209. package/coverage/lcov-report/react/index.js.html +178 -0
  210. package/coverage/lcov-report/react/lib/Chevron.jsx.html +181 -0
  211. package/coverage/lcov-report/react/lib/SvgComponents.jsx.html +1702 -0
  212. package/coverage/lcov-report/react/lib/index.html +146 -0
  213. package/coverage/lcov-report/react/lib/svg-definitions.svg.html +460 -0
  214. package/coverage/lcov-report/react/session/index.html +161 -0
  215. package/coverage/lcov-report/react/session/index.js.html +100 -0
  216. package/coverage/lcov-report/react/session/logout.js.html +280 -0
  217. package/coverage/lcov-report/react/session/refresh.js.html +232 -0
  218. package/coverage/lcov-report/react/session/ttl.js.html +196 -0
  219. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  220. package/coverage/lcov-report/sorter.js +196 -0
  221. package/coverage/lcov.info +3007 -0
  222. package/dist/browser.js +1 -3
  223. package/dist/index.js +1 -3
  224. package/dist/react/index.html +1 -0
  225. package/dist/react/index.js +199 -1
  226. package/dist/react/index.js.LICENSE.txt +37 -1
  227. package/dist/react/index.js.map +1 -1
  228. package/package.json +29 -15
  229. package/storybook-static/favicon.ico +0 -0
  230. package/styles/qppds/components/_button.scss +29 -1
  231. package/test/components/Accordion.test.js +10 -10
  232. package/test/components/ErrorUI.test.js +29 -30
  233. package/test/components/FooterUI.test.js +82 -80
  234. package/test/components/HeaderUI.test.js +42 -38
  235. package/test/components/Infotip.test.js +64 -61
  236. package/test/components/Pagination.test.js +55 -0
  237. package/test/components/Select.test.js +113 -0
  238. package/test/components/SessionDialogUI.test.js +302 -294
  239. package/test/components/SideNavUI.test.js +19 -19
  240. package/test/components/TextField.test.js +50 -0
  241. package/test/components/Tooltip.test.js +133 -133
  242. package/test/index.test.js +6 -6
  243. package/test/session/session.test.js +200 -200
  244. package/test-setup.js +1 -1
  245. package/webpack.config.js +9 -11
  246. package/webpack.config.react.js +7 -2
  247. package/dist/browser.js.LICENSE.txt +0 -54
  248. package/dist/browser.js.map +0 -1
  249. package/dist/index.js.LICENSE.txt +0 -54
  250. package/dist/index.js.map +0 -1
@@ -0,0 +1,721 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for react/components/SideNav/Content/LevelOneContent.jsx</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../../../prettify.css" />
9
+ <link rel="stylesheet" href="../../../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">react/components/SideNav/Content</a> LevelOneContent.jsx</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">55.26% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>21/38</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">31.81% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>14/44</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">16.66% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>1/6</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">55.26% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>21/38</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line medium'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a>
112
+ <a name='L47'></a><a href='#L47'>47</a>
113
+ <a name='L48'></a><a href='#L48'>48</a>
114
+ <a name='L49'></a><a href='#L49'>49</a>
115
+ <a name='L50'></a><a href='#L50'>50</a>
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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
279
+ <span class="cline-any cline-neutral">&nbsp;</span>
280
+ <span class="cline-any cline-neutral">&nbsp;</span>
281
+ <span class="cline-any cline-neutral">&nbsp;</span>
282
+ <span class="cline-any cline-neutral">&nbsp;</span>
283
+ <span class="cline-any cline-neutral">&nbsp;</span>
284
+ <span class="cline-any cline-neutral">&nbsp;</span>
285
+ <span class="cline-any cline-neutral">&nbsp;</span>
286
+ <span class="cline-any cline-neutral">&nbsp;</span>
287
+ <span class="cline-any cline-neutral">&nbsp;</span>
288
+ <span class="cline-any cline-neutral">&nbsp;</span>
289
+ <span class="cline-any cline-neutral">&nbsp;</span>
290
+ <span class="cline-any cline-neutral">&nbsp;</span>
291
+ <span class="cline-any cline-neutral">&nbsp;</span>
292
+ <span class="cline-any cline-neutral">&nbsp;</span>
293
+ <span class="cline-any cline-neutral">&nbsp;</span>
294
+ <span class="cline-any cline-neutral">&nbsp;</span>
295
+ <span class="cline-any cline-neutral">&nbsp;</span>
296
+ <span class="cline-any cline-neutral">&nbsp;</span>
297
+ <span class="cline-any cline-neutral">&nbsp;</span>
298
+ <span class="cline-any cline-neutral">&nbsp;</span>
299
+ <span class="cline-any cline-neutral">&nbsp;</span>
300
+ <span class="cline-any cline-neutral">&nbsp;</span>
301
+ <span class="cline-any cline-neutral">&nbsp;</span>
302
+ <span class="cline-any cline-neutral">&nbsp;</span>
303
+ <span class="cline-any cline-neutral">&nbsp;</span>
304
+ <span class="cline-any cline-neutral">&nbsp;</span>
305
+ <span class="cline-any cline-neutral">&nbsp;</span>
306
+ <span class="cline-any cline-neutral">&nbsp;</span>
307
+ <span class="cline-any cline-neutral">&nbsp;</span>
308
+ <span class="cline-any cline-neutral">&nbsp;</span>
309
+ <span class="cline-any cline-neutral">&nbsp;</span>
310
+ <span class="cline-any cline-neutral">&nbsp;</span>
311
+ <span class="cline-any cline-yes">2x</span>
312
+ <span class="cline-any cline-no">&nbsp;</span>
313
+ <span class="cline-any cline-neutral">&nbsp;</span>
314
+ <span class="cline-any cline-neutral">&nbsp;</span>
315
+ <span class="cline-any cline-neutral">&nbsp;</span>
316
+ <span class="cline-any cline-neutral">&nbsp;</span>
317
+ <span class="cline-any cline-neutral">&nbsp;</span>
318
+ <span class="cline-any cline-neutral">&nbsp;</span>
319
+ <span class="cline-any cline-neutral">&nbsp;</span>
320
+ <span class="cline-any cline-neutral">&nbsp;</span>
321
+ <span class="cline-any cline-neutral">&nbsp;</span>
322
+ <span class="cline-any cline-neutral">&nbsp;</span>
323
+ <span class="cline-any cline-neutral">&nbsp;</span>
324
+ <span class="cline-any cline-neutral">&nbsp;</span>
325
+ <span class="cline-any cline-neutral">&nbsp;</span>
326
+ <span class="cline-any cline-neutral">&nbsp;</span>
327
+ <span class="cline-any cline-neutral">&nbsp;</span>
328
+ <span class="cline-any cline-neutral">&nbsp;</span>
329
+ <span class="cline-any cline-neutral">&nbsp;</span>
330
+ <span class="cline-any cline-neutral">&nbsp;</span>
331
+ <span class="cline-any cline-neutral">&nbsp;</span>
332
+ <span class="cline-any cline-neutral">&nbsp;</span>
333
+ <span class="cline-any cline-neutral">&nbsp;</span>
334
+ <span class="cline-any cline-yes">2x</span>
335
+ <span class="cline-any cline-neutral">&nbsp;</span>
336
+ <span class="cline-any cline-neutral">&nbsp;</span>
337
+ <span class="cline-any cline-neutral">&nbsp;</span>
338
+ <span class="cline-any cline-neutral">&nbsp;</span>
339
+ <span class="cline-any cline-neutral">&nbsp;</span>
340
+ <span class="cline-any cline-neutral">&nbsp;</span>
341
+ <span class="cline-any cline-neutral">&nbsp;</span>
342
+ <span class="cline-any cline-neutral">&nbsp;</span>
343
+ <span class="cline-any cline-neutral">&nbsp;</span>
344
+ <span class="cline-any cline-neutral">&nbsp;</span>
345
+ <span class="cline-any cline-neutral">&nbsp;</span>
346
+ <span class="cline-any cline-neutral">&nbsp;</span>
347
+ <span class="cline-any cline-neutral">&nbsp;</span>
348
+ <span class="cline-any cline-yes">1x</span>
349
+ <span class="cline-any cline-neutral">&nbsp;</span>
350
+ <span class="cline-any cline-yes">1x</span>
351
+ <span class="cline-any cline-yes">1x</span>
352
+ <span class="cline-any cline-yes">1x</span>
353
+ <span class="cline-any cline-yes">1x</span>
354
+ <span class="cline-any cline-neutral">&nbsp;</span>
355
+ <span class="cline-any cline-neutral">&nbsp;</span>
356
+ <span class="cline-any cline-yes">1x</span>
357
+ <span class="cline-any cline-yes">1x</span>
358
+ <span class="cline-any cline-yes">1x</span>
359
+ <span class="cline-any cline-yes">1x</span>
360
+ <span class="cline-any cline-yes">1x</span>
361
+ <span class="cline-any cline-neutral">&nbsp;</span>
362
+ <span class="cline-any cline-neutral">&nbsp;</span>
363
+ <span class="cline-any cline-yes">1x</span>
364
+ <span class="cline-any cline-neutral">&nbsp;</span>
365
+ <span class="cline-any cline-yes">1x</span>
366
+ <span class="cline-any cline-neutral">&nbsp;</span>
367
+ <span class="cline-any cline-yes">1x</span>
368
+ <span class="cline-any cline-yes">1x</span>
369
+ <span class="cline-any cline-yes">1x</span>
370
+ <span class="cline-any cline-neutral">&nbsp;</span>
371
+ <span class="cline-any cline-neutral">&nbsp;</span>
372
+ <span class="cline-any cline-no">&nbsp;</span>
373
+ <span class="cline-any cline-neutral">&nbsp;</span>
374
+ <span class="cline-any cline-neutral">&nbsp;</span>
375
+ <span class="cline-any cline-neutral">&nbsp;</span>
376
+ <span class="cline-any cline-no">&nbsp;</span>
377
+ <span class="cline-any cline-neutral">&nbsp;</span>
378
+ <span class="cline-any cline-neutral">&nbsp;</span>
379
+ <span class="cline-any cline-neutral">&nbsp;</span>
380
+ <span class="cline-any cline-neutral">&nbsp;</span>
381
+ <span class="cline-any cline-neutral">&nbsp;</span>
382
+ <span class="cline-any cline-yes">1x</span>
383
+ <span class="cline-any cline-neutral">&nbsp;</span>
384
+ <span class="cline-any cline-neutral">&nbsp;</span>
385
+ <span class="cline-any cline-neutral">&nbsp;</span>
386
+ <span class="cline-any cline-neutral">&nbsp;</span>
387
+ <span class="cline-any cline-neutral">&nbsp;</span>
388
+ <span class="cline-any cline-neutral">&nbsp;</span>
389
+ <span class="cline-any cline-neutral">&nbsp;</span>
390
+ <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-yes">1x</span>
407
+ <span class="cline-any cline-no">&nbsp;</span>
408
+ <span class="cline-any cline-neutral">&nbsp;</span>
409
+ <span class="cline-any cline-neutral">&nbsp;</span>
410
+ <span class="cline-any cline-no">&nbsp;</span>
411
+ <span class="cline-any cline-no">&nbsp;</span>
412
+ <span class="cline-any cline-neutral">&nbsp;</span>
413
+ <span class="cline-any cline-neutral">&nbsp;</span>
414
+ <span class="cline-any cline-no">&nbsp;</span>
415
+ <span class="cline-any cline-no">&nbsp;</span>
416
+ <span class="cline-any cline-no">&nbsp;</span>
417
+ <span class="cline-any cline-neutral">&nbsp;</span>
418
+ <span class="cline-any cline-neutral">&nbsp;</span>
419
+ <span class="cline-any cline-neutral">&nbsp;</span>
420
+ <span class="cline-any cline-neutral">&nbsp;</span>
421
+ <span class="cline-any cline-neutral">&nbsp;</span>
422
+ <span class="cline-any cline-neutral">&nbsp;</span>
423
+ <span class="cline-any cline-no">&nbsp;</span>
424
+ <span class="cline-any cline-no">&nbsp;</span>
425
+ <span class="cline-any cline-no">&nbsp;</span>
426
+ <span class="cline-any cline-neutral">&nbsp;</span>
427
+ <span class="cline-any cline-neutral">&nbsp;</span>
428
+ <span class="cline-any cline-neutral">&nbsp;</span>
429
+ <span class="cline-any cline-no">&nbsp;</span>
430
+ <span class="cline-any cline-neutral">&nbsp;</span>
431
+ <span class="cline-any cline-neutral">&nbsp;</span>
432
+ <span class="cline-any cline-neutral">&nbsp;</span>
433
+ <span class="cline-any cline-neutral">&nbsp;</span>
434
+ <span class="cline-any cline-no">&nbsp;</span>
435
+ <span class="cline-any cline-neutral">&nbsp;</span>
436
+ <span class="cline-any cline-neutral">&nbsp;</span>
437
+ <span class="cline-any cline-neutral">&nbsp;</span>
438
+ <span class="cline-any cline-no">&nbsp;</span>
439
+ <span class="cline-any cline-neutral">&nbsp;</span>
440
+ <span class="cline-any cline-neutral">&nbsp;</span>
441
+ <span class="cline-any cline-neutral">&nbsp;</span>
442
+ <span class="cline-any cline-neutral">&nbsp;</span>
443
+ <span class="cline-any cline-neutral">&nbsp;</span>
444
+ <span class="cline-any cline-neutral">&nbsp;</span>
445
+ <span class="cline-any cline-neutral">&nbsp;</span>
446
+ <span class="cline-any cline-neutral">&nbsp;</span>
447
+ <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-no">&nbsp;</span>
453
+ <span class="cline-any cline-neutral">&nbsp;</span>
454
+ <span class="cline-any cline-neutral">&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-no">&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-yes">1x</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-yes">2x</span>
479
+ <span class="cline-any cline-neutral">&nbsp;</span>
480
+ <span class="cline-any cline-neutral">&nbsp;</span>
481
+ <span class="cline-any cline-neutral">&nbsp;</span>
482
+ <span class="cline-any cline-neutral">&nbsp;</span>
483
+ <span class="cline-any cline-neutral">&nbsp;</span>
484
+ <span class="cline-any cline-neutral">&nbsp;</span>
485
+ <span class="cline-any cline-neutral">&nbsp;</span>
486
+ <span class="cline-any cline-neutral">&nbsp;</span>
487
+ <span class="cline-any cline-neutral">&nbsp;</span>
488
+ <span class="cline-any cline-neutral">&nbsp;</span>
489
+ <span class="cline-any cline-neutral">&nbsp;</span>
490
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React from "react";
491
+ import PropTypes from "prop-types";
492
+ import cookie from "cookie";
493
+ import jwtDecode from "jwt-decode";
494
+ &nbsp;
495
+ import { NavLinkContainer, NavLinkInline, NavLinkDrawer } from "../Links";
496
+ import AnimationGroup from "../AnimationGroup/AnimationGroup";
497
+ import defaultContent from "../UI/default-content";
498
+ import {
499
+ AccountHomeIcon,
500
+ DashboardIcon,
501
+ FacilityBasedPreviewIcon,
502
+ HardshipIcon,
503
+ HelpSupportIcon,
504
+ ManageUsersIcon,
505
+ MyApplicationsIcon,
506
+ MyTestDataIcon,
507
+ PaymentIcon,
508
+ PhysicianCompareIcon,
509
+ StarIcon,
510
+ TargetIcon,
511
+ IndividualReporting,
512
+ } from "../../../lib/SvgComponents";
513
+ import {
514
+ dashboardUrl,
515
+ facilityBasedPreviewBaseUrl,
516
+ feedbackUrl,
517
+ manageUrl,
518
+ physicianCompareUrl,
519
+ reportsPortalUrl,
520
+ submissionsUrl,
521
+ } from "../helpers";
522
+ &nbsp;
523
+ const getIcon = <span class="fstat-no" title="function not covered" >(u</span>rl) =&gt;
524
+ (<span class="cstat-no" title="statement not covered" >{</span>
525
+ [dashboardUrl]: DashboardIcon,
526
+ [feedbackUrl]: StarIcon,
527
+ [manageUrl]: ManageUsersIcon,
528
+ [physicianCompareUrl]: PhysicianCompareIcon,
529
+ [reportsPortalUrl]: HardshipIcon,
530
+ [submissionsUrl]: AccountHomeIcon,
531
+ [facilityBasedPreviewBaseUrl]: FacilityBasedPreviewIcon,
532
+ "/developers": HelpSupportIcon,
533
+ "/resources/help-and-support": HelpSupportIcon,
534
+ "/user/apm-incentive-payments": PaymentIcon,
535
+ "/user/applications": MyApplicationsIcon,
536
+ "/user/exception/#/landing": HardshipIcon,
537
+ "/user/targeted-review/#/landing": TargetIcon,
538
+ "/user/test-data": MyTestDataIcon,
539
+ "/user/self-nomination/#/landing": IndividualReporting,
540
+ "/user/reviewers": DashboardIcon,
541
+ "/reviewer/exception": HardshipIcon,
542
+ "/reviewer/targeted-review": TargetIcon,
543
+ "/self-nomination": IndividualReporting,
544
+ }[url] || null);
545
+ &nbsp;
546
+ const LevelOneContent = ({
547
+ isExpanded,
548
+ config: { linkCallback, useTooltips } = <span class="branch-0 cbranch-no" title="branch not covered" >{},</span>
549
+ levelOneContent,
550
+ }) =&gt; {
551
+ let {
552
+ qpp_has_authorizations,
553
+ user_has_apm_payments,
554
+ qpp_is_dev_pre,
555
+ qpp_ehr_authorized,
556
+ qpp_has_non_registry_authorizations,
557
+ qpp_auth_token,
558
+ qpp_cms_internal_authorized,
559
+ qpp_can_impersonate,
560
+ } = cookie.parse(document.cookie);
561
+ &nbsp;
562
+ let name = "";
563
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (qpp_auth_token) {
564
+ const { firstName, lastName } = jwtDecode(qpp_auth_token);
565
+ name = `${firstName} ${lastName}`;
566
+ }
567
+ &nbsp;
568
+ const canImpersonate = qpp_can_impersonate === "true";
569
+ const hasAuthorizations = qpp_has_authorizations === "true";
570
+ const hasApmPayments = user_has_apm_payments === "true";
571
+ const isDevPre = qpp_is_dev_pre === "true";
572
+ const internalReviewerNames = JSON.parse(
573
+ qpp_cms_internal_authorized || "null"
574
+ );
575
+ const ehrAuthorized = qpp_ehr_authorized === "true";
576
+ const hasNonRegistryAuthorizations =
577
+ qpp_has_non_registry_authorizations === "true";
578
+ &nbsp;
579
+ const linkClass = isExpanded ? "link-inline" : <span class="branch-1 cbranch-no" title="branch not covered" >"link-collapsed";</span>
580
+ let content = isDevPre ? <span class="branch-0 cbranch-no" title="branch not covered" >levelOneContent?.devPre </span>: levelOneContent?.default;
581
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (
582
+ (internalReviewerNames || []).some(
583
+ <span class="fstat-no" title="function not covered" > (n</span>ame) =&gt;
584
+ <span class="cstat-no" title="statement not covered" > name === "QPP Self-Nomination" ||</span>
585
+ name === "QPP Targeted Review &amp; Exceptions"
586
+ )
587
+ ) {
588
+ <span class="cstat-no" title="statement not covered" > content =</span>
589
+ levelOneContent?.internalReviewers ||
590
+ defaultContent.internalReviewers;
591
+ }
592
+ &nbsp;
593
+ // Mapping side nav link urls to the conditions that determine their inclusion in the side nav
594
+ const urlConditionMap = {
595
+ [dashboardUrl]: hasAuthorizations,
596
+ [feedbackUrl]: hasAuthorizations,
597
+ "/user/apm-incentive-payments": hasApmPayments,
598
+ [physicianCompareUrl]: hasNonRegistryAuthorizations,
599
+ [reportsPortalUrl]: hasAuthorizations,
600
+ [facilityBasedPreviewBaseUrl]: hasAuthorizations,
601
+ "/user/impersonate": canImpersonate,
602
+ &nbsp;
603
+ "/reviewer/exception": (internalReviewerNames || []).includes(
604
+ "QPP Targeted Review &amp; Exceptions"
605
+ ),
606
+ "/reviewer/targeted-review": (internalReviewerNames || []).includes(
607
+ "QPP Targeted Review &amp; Exceptions"
608
+ ),
609
+ "/self-nomination": (internalReviewerNames || []).includes(
610
+ "QPP Self-Nomination"
611
+ ),
612
+ &nbsp;
613
+ // dev pre
614
+ "/user/applications": ehrAuthorized,
615
+ "/user/test-data": ehrAuthorized,
616
+ };
617
+ &nbsp;
618
+ const navLinks = content.reduce(<span class="fstat-no" title="function not covered" >(a</span>cc, link) =&gt; {
619
+ const { url, label, className, listOfLinks, ...rest } = <span class="cstat-no" title="statement not covered" >link;</span>
620
+ &nbsp;
621
+ // Any links failing the corresponding condition in the urlConditionMap are skipped
622
+ <span class="cstat-no" title="statement not covered" > if (url in urlConditionMap &amp;&amp; !urlConditionMap[url]) {</span>
623
+ <span class="cstat-no" title="statement not covered" > return acc;</span>
624
+ }
625
+ &nbsp;
626
+ const IconComponent = <span class="cstat-no" title="statement not covered" >getIcon(url);</span>
627
+ const Icon = <span class="cstat-no" title="statement not covered" >IconComponent ? &lt;IconComponent /&gt; : null;</span>
628
+ const sharedProps = <span class="cstat-no" title="statement not covered" >{</span>
629
+ url,
630
+ label,
631
+ linkCallback,
632
+ className: className ? `${linkClass} ${className}` : linkClass,
633
+ };
634
+ &nbsp;
635
+ const { pathname, hash } = <span class="cstat-no" title="statement not covered" >window.location;</span>
636
+ const filteredListOfLinks = <span class="cstat-no" title="statement not covered" >(listOfLinks || []).filter(<span class="fstat-no" title="function not covered" >(s</span>ublink) =&gt; {</span>
637
+ <span class="cstat-no" title="statement not covered" > return !(</span>
638
+ sublink.url in urlConditionMap &amp;&amp; !urlConditionMap[sublink.url]
639
+ );
640
+ });
641
+ <span class="cstat-no" title="statement not covered" > if (</span>
642
+ filteredListOfLinks?.length &gt; 0 &amp;&amp;
643
+ (pathname === url ||
644
+ filteredListOfLinks.some(
645
+ <span class="fstat-no" title="function not covered" > (s</span>ublink) =&gt;
646
+ <span class="cstat-no" title="statement not covered" > pathname === sublink.url ||</span>
647
+ `${pathname}${hash}` === sublink.url
648
+ ))
649
+ ) {
650
+ <span class="cstat-no" title="statement not covered" > acc.push(</span>
651
+ &lt;NavLinkDrawer
652
+ key={`nav-drawer-${url}-${label}`}
653
+ leftIcon={Icon}
654
+ listOfLinks={filteredListOfLinks}
655
+ isExpanded={isExpanded}
656
+ staticDrawer={false}
657
+ openByDefault
658
+ isAlwaysOpen
659
+ {...sharedProps}
660
+ {...rest}
661
+ /&gt;
662
+ );
663
+ } else {
664
+ <span class="cstat-no" title="statement not covered" > acc.push(</span>
665
+ &lt;NavLinkInline
666
+ key={`nav-link-${url}-${label}`}
667
+ icon={Icon}
668
+ useTooltips={useTooltips}
669
+ showLabel={isExpanded}
670
+ {...sharedProps}
671
+ {...rest}
672
+ /&gt;
673
+ );
674
+ }
675
+ <span class="cstat-no" title="statement not covered" > return acc;</span>
676
+ }, []);
677
+ &nbsp;
678
+ return (
679
+ &lt;div className="sidebar-content"&gt;
680
+ &lt;AnimationGroup display={isExpanded}&gt;
681
+ &lt;h1 className="label"&gt;{name}&lt;/h1&gt;
682
+ &lt;/AnimationGroup&gt;
683
+ &lt;div className="level-one-nav animation-flat"&gt;
684
+ &lt;NavLinkContainer listOfLinks={navLinks} /&gt;
685
+ &lt;/div&gt;
686
+ &lt;/div&gt;
687
+ );
688
+ };
689
+ &nbsp;
690
+ LevelOneContent.propTypes = {
691
+ isExpanded: PropTypes.bool,
692
+ config: PropTypes.object,
693
+ levelOneContent: PropTypes.shape({
694
+ default: PropTypes.arrayOf(PropTypes.object),
695
+ devPre: PropTypes.arrayOf(PropTypes.object),
696
+ viewer: PropTypes.arrayOf(PropTypes.object),
697
+ internalReviewers: PropTypes.arrayOf(PropTypes.object),
698
+ }),
699
+ };
700
+ &nbsp;
701
+ export default LevelOneContent;
702
+ &nbsp;</pre></td></tr></table></pre>
703
+
704
+ <div class='push'></div><!-- for sticky footer -->
705
+ </div><!-- /wrapper -->
706
+ <div class='footer quiet pad2 space-top1 center small'>
707
+ Code coverage generated by
708
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
709
+ at Thu Mar 24 2022 11:31:04 GMT-0700 (Pacific Daylight Time)
710
+ </div>
711
+ <script src="../../../../prettify.js"></script>
712
+ <script>
713
+ window.onload = function () {
714
+ prettyPrint();
715
+ };
716
+ </script>
717
+ <script src="../../../../sorter.js"></script>
718
+ <script src="../../../../block-navigation.js"></script>
719
+ </body>
720
+ </html>
721
+