qpp-style 9.44.0 → 9.44.1

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 (220) hide show
  1. package/coverage/clover.xml +569 -461
  2. package/coverage/coverage-final.json +70 -68
  3. package/coverage/lcov-report/components/Accordion/index.html +21 -21
  4. package/coverage/lcov-report/components/Accordion/index.jsx.html +113 -113
  5. package/coverage/lcov-report/components/{Button → Dropdown}/index.html +17 -17
  6. package/coverage/lcov-report/{react/components/HeaderSearchBar/index.jsx.html → components/Dropdown/index.js.html} +106 -109
  7. package/coverage/lcov-report/components/Error/Collapsible.jsx.html +98 -98
  8. package/coverage/lcov-report/components/Error/ErrorUI.jsx.html +33 -33
  9. package/coverage/lcov-report/components/Error/index.html +23 -23
  10. package/coverage/lcov-report/components/Footer/FooterUI.jsx.html +211 -211
  11. package/coverage/lcov-report/{react/components/SideNav/UI/DynamicContent.jsx.html → components/Footer/LegacyFooterUI.jsx.html} +246 -210
  12. package/coverage/lcov-report/components/Footer/SocialLinks.jsx.html +62 -62
  13. package/coverage/lcov-report/components/Footer/Subscribe.jsx.html +36 -36
  14. package/coverage/lcov-report/components/Footer/index.html +13 -13
  15. package/coverage/lcov-report/components/Infotip/Infotip.jsx.html +90 -90
  16. package/coverage/lcov-report/components/Infotip/InfotipContent.jsx.html +50 -50
  17. package/coverage/lcov-report/components/Infotip/InfotipIcon.jsx.html +49 -49
  18. package/coverage/lcov-report/components/Infotip/index.html +40 -25
  19. package/coverage/lcov-report/components/Infotip/index.js.html +1 -1
  20. package/coverage/lcov-report/components/Modal/LegacyModal.jsx.html +116 -116
  21. package/coverage/lcov-report/components/Modal/Modal.jsx.html +252 -252
  22. package/coverage/lcov-report/components/Modal/index.html +38 -38
  23. package/coverage/lcov-report/components/Modal/index.jsx.html +31 -31
  24. package/coverage/lcov-report/components/SanitizedContent/index.html +21 -21
  25. package/coverage/lcov-report/components/SanitizedContent/index.jsx.html +257 -257
  26. package/coverage/lcov-report/components/SessionDialogUI.jsx.html +440 -440
  27. package/coverage/lcov-report/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +166 -0
  28. package/coverage/lcov-report/{react/components/HeaderSearchBar → components/SideNav/AnimationGroup}/index.html +22 -22
  29. package/coverage/lcov-report/components/SideNav/Chart/ScoreChart.jsx.html +8 -8
  30. package/coverage/lcov-report/components/SideNav/Chart/index.html +16 -1
  31. package/coverage/lcov-report/components/SideNav/Chart/index.js.html +94 -0
  32. package/coverage/lcov-report/{InfotipIcon.jsx.html → components/SideNav/Content/LevelOneContent.jsx.html} +77 -53
  33. package/coverage/lcov-report/components/SideNav/Content/LevelTwoContent.jsx.html +733 -0
  34. package/coverage/lcov-report/components/SideNav/Content/SelectRole/index.html +34 -19
  35. package/coverage/lcov-report/components/SideNav/Content/SelectRole/index.js.html +319 -0
  36. package/coverage/lcov-report/components/SideNav/Content/SelectRole/utils.js.html +147 -147
  37. package/coverage/lcov-report/components/{GovBanner → SideNav/Content}/index.html +44 -29
  38. package/coverage/lcov-report/components/SideNav/Content/index.js.html +94 -0
  39. package/coverage/lcov-report/components/{Header/HeaderCancel.jsx.html → SideNav/Details/IndividualDetails.jsx.html} +41 -35
  40. package/coverage/lcov-report/components/SideNav/Details/PracticeDetails.jsx.html +220 -0
  41. package/coverage/lcov-report/components/{NotificationBanner → SideNav/Details}/index.html +46 -46
  42. package/coverage/lcov-report/components/SideNav/Details/index.js.html +97 -0
  43. package/coverage/lcov-report/{InfotipContent.jsx.html → components/SideNav/Links/CmsSwitchLink.jsx.html} +56 -71
  44. package/coverage/lcov-report/{Infotip.jsx.html → components/SideNav/Links/NavItemInline.jsx.html} +72 -123
  45. package/coverage/lcov-report/components/SideNav/Links/NavLinkContainer.jsx.html +199 -0
  46. package/coverage/lcov-report/components/SideNav/Links/NavLinkDrawer.jsx.html +970 -0
  47. package/coverage/lcov-report/components/SideNav/Links/NavLinkInline.jsx.html +415 -0
  48. package/coverage/lcov-report/components/SideNav/Links/NavLinkToggle.jsx.html +187 -0
  49. package/coverage/lcov-report/components/SideNav/Links/index.html +206 -0
  50. package/coverage/lcov-report/components/{Header/utag-helpers.js.html → SideNav/Links/index.js.html} +46 -34
  51. package/coverage/lcov-report/components/SideNav/UI/SideNavUI.jsx.html +1033 -0
  52. package/coverage/lcov-report/components/SideNav/UI/default-markup.js.html +97 -0
  53. package/coverage/lcov-report/components/SideNav/UI/index.html +146 -0
  54. package/coverage/lcov-report/{index.js.html → components/SideNav/UI/index.js.html} +12 -12
  55. package/coverage/lcov-report/components/SideNav/helpers.js.html +544 -565
  56. package/coverage/lcov-report/components/SideNav/index.html +19 -19
  57. package/coverage/lcov-report/components/Tooltip/Tooltip.jsx.html +9 -9
  58. package/coverage/lcov-report/components/Tooltip/index.html +1 -1
  59. package/coverage/lcov-report/components/Tooltip/index.js.html +1 -1
  60. package/coverage/lcov-report/components/Tooltip/position.js.html +1 -1
  61. package/coverage/lcov-report/components/hooks/index.html +21 -21
  62. package/coverage/lcov-report/components/hooks/useGetConfig.js.html +128 -131
  63. package/coverage/lcov-report/components/index.html +21 -21
  64. package/coverage/lcov-report/index.html +124 -124
  65. package/coverage/lcov-report/lib/Chevron.jsx.html +36 -36
  66. package/coverage/lcov-report/lib/SvgComponents.jsx.html +1161 -1161
  67. package/coverage/lcov-report/lib/index.html +24 -24
  68. package/coverage/lcov-report/lib/svg-definitions.svg.html +460 -0
  69. package/coverage/lcov-report/react/components/Accordion/index.html +21 -21
  70. package/coverage/lcov-report/react/components/Accordion/index.jsx.html +41 -41
  71. package/coverage/lcov-report/react/components/Button/index.html +1 -1
  72. package/coverage/lcov-report/react/components/Button/index.js.html +1 -1
  73. package/coverage/lcov-report/react/components/Dropdown/index.html +1 -1
  74. package/coverage/lcov-report/react/components/Dropdown/index.js.html +1 -1
  75. package/coverage/lcov-report/react/components/Error/Collapsible.jsx.html +1 -1
  76. package/coverage/lcov-report/react/components/Error/ErrorUI.jsx.html +1 -1
  77. package/coverage/lcov-report/react/components/Error/error.js.html +1 -1
  78. package/coverage/lcov-report/react/components/Error/index.html +1 -1
  79. package/coverage/lcov-report/react/components/Footer/FooterUI.jsx.html +4 -4
  80. package/coverage/lcov-report/react/components/Footer/LegacyFooterUI.jsx.html +1 -1
  81. package/coverage/lcov-report/react/components/Footer/SocialLinks.jsx.html +1 -1
  82. package/coverage/lcov-report/react/components/Footer/Subscribe.jsx.html +1 -1
  83. package/coverage/lcov-report/react/components/Footer/footer.js.html +1 -1
  84. package/coverage/lcov-report/react/components/Footer/index.html +1 -1
  85. package/coverage/lcov-report/react/components/GovBanner/index.html +1 -1
  86. package/coverage/lcov-report/react/components/GovBanner/index.js.html +1 -1
  87. package/coverage/lcov-report/react/components/Header/HeaderAccountMenu.jsx.html +1 -1
  88. package/coverage/lcov-report/react/components/Header/HeaderCancel.jsx.html +1 -1
  89. package/coverage/lcov-report/react/components/Header/HeaderContainer.jsx.html +12 -60
  90. package/coverage/lcov-report/react/components/Header/HeaderLogo.jsx.html +14 -20
  91. package/coverage/lcov-report/react/components/Header/HeaderMenuButton.js.html +1 -1
  92. package/coverage/lcov-report/react/components/Header/HeaderMenuItem.jsx.html +2 -2
  93. package/coverage/lcov-report/react/components/Header/HeaderMenuLink.js.html +7 -7
  94. package/coverage/lcov-report/react/components/Header/HeaderMenuSignOutButton.js.html +1 -1
  95. package/coverage/lcov-report/react/components/Header/HeaderMobileButton.js.html +1 -1
  96. package/coverage/lcov-report/react/components/Header/HeaderUI.jsx.html +25 -34
  97. package/coverage/lcov-report/react/components/Header/HelpIcon.jsx.html +1 -1
  98. package/coverage/lcov-report/react/components/Header/ImpersonatorBanner.jsx.html +15 -33
  99. package/coverage/lcov-report/react/components/Header/NavigationButtonIcon.jsx.html +1 -1
  100. package/coverage/lcov-report/react/components/Header/header.js.html +1 -1
  101. package/coverage/lcov-report/react/components/Header/hooks.js.html +1 -1
  102. package/coverage/lcov-report/react/components/Header/index.html +37 -37
  103. package/coverage/lcov-report/react/components/Header/utag-helpers.js.html +1 -1
  104. package/coverage/lcov-report/react/components/Infotip/Infotip.jsx.html +2 -2
  105. package/coverage/lcov-report/react/components/Infotip/InfotipContent.jsx.html +3 -9
  106. package/coverage/lcov-report/react/components/Infotip/InfotipIcon.jsx.html +1 -1
  107. package/coverage/lcov-report/react/components/Infotip/index.html +1 -1
  108. package/coverage/lcov-report/react/components/Infotip/index.js.html +1 -1
  109. package/coverage/lcov-report/react/components/Modal/LegacyModal.jsx.html +1 -1
  110. package/coverage/lcov-report/react/components/Modal/Modal.jsx.html +1 -1
  111. package/coverage/lcov-report/react/components/Modal/index.html +1 -1
  112. package/coverage/lcov-report/react/components/Modal/index.jsx.html +1 -1
  113. package/coverage/lcov-report/react/components/NotificationBanner/CollapsedView.js.html +1 -1
  114. package/coverage/lcov-report/react/components/NotificationBanner/ExpandedView.js.html +1 -1
  115. package/coverage/lcov-report/react/components/NotificationBanner/index.html +1 -1
  116. package/coverage/lcov-report/react/components/NotificationBanner/index.js.html +1 -1
  117. package/coverage/lcov-report/react/components/SanitizedContent/index.html +21 -21
  118. package/coverage/lcov-report/react/components/SanitizedContent/index.jsx.html +23 -23
  119. package/coverage/lcov-report/react/components/Session/Session.jsx.html +91 -61
  120. package/coverage/lcov-report/react/components/Session/SessionDialogWrapped.jsx.html +1 -1
  121. package/coverage/lcov-report/react/components/Session/index.html +15 -15
  122. package/coverage/lcov-report/react/components/Session/index.jsx.html +1 -1
  123. package/coverage/lcov-report/react/components/SessionDialog/index.html +1 -1
  124. package/coverage/lcov-report/react/components/SessionDialog/sessionDialog.js.html +1 -1
  125. package/coverage/lcov-report/react/components/SessionDialogUI.jsx.html +90 -30
  126. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +3 -3
  127. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/index.html +1 -1
  128. package/coverage/lcov-report/react/components/SideNav/Chart/ScoreChart.jsx.html +1 -1
  129. package/coverage/lcov-report/react/components/SideNav/Chart/index.html +1 -1
  130. package/coverage/lcov-report/react/components/SideNav/Chart/index.js.html +1 -1
  131. package/coverage/lcov-report/react/components/SideNav/Content/LevelOneContent.jsx.html +18 -48
  132. package/coverage/lcov-report/react/components/SideNav/Content/LevelTwoContent.jsx.html +1 -1
  133. package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/index.html +26 -26
  134. package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/index.js.html +38 -14
  135. package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/utils.js.html +83 -62
  136. package/coverage/lcov-report/react/components/SideNav/Content/index.html +5 -5
  137. package/coverage/lcov-report/react/components/SideNav/Content/index.js.html +1 -1
  138. package/coverage/lcov-report/react/components/SideNav/Details/IndividualDetails.jsx.html +1 -1
  139. package/coverage/lcov-report/react/components/SideNav/Details/PracticeDetails.jsx.html +1 -1
  140. package/coverage/lcov-report/react/components/SideNav/Details/index.html +1 -1
  141. package/coverage/lcov-report/react/components/SideNav/Details/index.js.html +1 -1
  142. package/coverage/lcov-report/react/components/SideNav/Links/CmsSwitchLink.jsx.html +1 -1
  143. package/coverage/lcov-report/react/components/SideNav/Links/NavItemInline.jsx.html +1 -1
  144. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkContainer.jsx.html +1 -1
  145. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkDrawer.jsx.html +2 -5
  146. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkInline.jsx.html +2 -5
  147. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkToggle.jsx.html +4 -4
  148. package/coverage/lcov-report/react/components/SideNav/Links/index.html +1 -1
  149. package/coverage/lcov-report/react/components/SideNav/Links/index.js.html +1 -1
  150. package/coverage/lcov-report/react/components/SideNav/UI/SideNavUI.jsx.html +536 -41
  151. package/coverage/lcov-report/react/components/SideNav/UI/default-markup.js.html +1 -1
  152. package/coverage/lcov-report/react/components/SideNav/UI/index.html +19 -34
  153. package/coverage/lcov-report/react/components/SideNav/UI/index.js.html +1 -1
  154. package/coverage/lcov-report/react/components/SideNav/helpers.js.html +1068 -15
  155. package/coverage/lcov-report/react/components/SideNav/index.html +21 -21
  156. package/coverage/lcov-report/react/components/SideNav/index.js.html +1 -1
  157. package/coverage/lcov-report/react/components/Tooltip/Tooltip.jsx.html +2 -2
  158. package/coverage/lcov-report/react/components/Tooltip/index.html +1 -1
  159. package/coverage/lcov-report/react/components/Tooltip/index.js.html +1 -1
  160. package/coverage/lcov-report/react/components/Tooltip/position.js.html +1 -1
  161. package/coverage/lcov-report/react/components/hooks/index.html +14 -14
  162. package/coverage/lcov-report/react/components/hooks/useGetConfig.js.html +15 -12
  163. package/coverage/lcov-report/react/components/index.html +21 -21
  164. package/coverage/lcov-report/react/index.html +13 -13
  165. package/coverage/lcov-report/react/index.js.html +28 -13
  166. package/coverage/lcov-report/react/lib/Chevron.jsx.html +14 -14
  167. package/coverage/lcov-report/react/lib/SvgComponents.jsx.html +2 -2
  168. package/coverage/lcov-report/react/lib/index.html +16 -16
  169. package/coverage/lcov-report/react/lib/svg-definitions.svg.html +1 -1
  170. package/coverage/lcov-report/react/session/index.html +44 -29
  171. package/coverage/lcov-report/react/session/index.js.html +1 -1
  172. package/coverage/lcov-report/react/session/isAuthV2.js.html +1 -1
  173. package/coverage/lcov-report/react/session/logout.js.html +44 -50
  174. package/coverage/lcov-report/react/session/refresh.js.html +17 -8
  175. package/coverage/lcov-report/react/session/ttl.js.html +21 -9
  176. package/coverage/lcov-report/session/index.html +53 -53
  177. package/coverage/lcov-report/session/index.js.html +13 -13
  178. package/coverage/lcov-report/session/logout.js.html +137 -137
  179. package/coverage/lcov-report/session/refresh.js.html +90 -90
  180. package/coverage/lcov-report/session/ttl.js.html +77 -77
  181. package/coverage/lcov.info +977 -753
  182. package/dist/browser.js +1 -1
  183. package/dist/browser.js.map +1 -1
  184. package/dist/index.js +1 -1
  185. package/dist/index.js.map +1 -1
  186. package/dist/react/index.js +1 -1
  187. package/dist/react/index.js.map +1 -1
  188. package/package.json +1 -1
  189. package/styles/components/_footer.scss +593 -0
  190. package/styles/components/_header.scss +890 -0
  191. package/styles/components/_sidebar.scss +8 -0
  192. package/styles/components/sidebar/_animations.scss +38 -0
  193. package/styles/components/sidebar/_cms.scss +61 -0
  194. package/styles/components/sidebar/_details.scss +58 -0
  195. package/styles/components/sidebar/_links.scss +420 -0
  196. package/styles/components/sidebar/_sidebar-animation.scss +121 -0
  197. package/styles/components/sidebar/_sidebar-tooltip.scss +33 -0
  198. package/styles/components/sidebar/_sidebar.scss +141 -0
  199. package/styles/components/sidebar/project-specific/_wi.scss +42 -0
  200. package/styles/qppds/components/_infotip-content.scss +49 -0
  201. package/styles/qppds/components/_spinner.scss +46 -0
  202. package/coverage/lcov-report/components/Button/index.js.html +0 -355
  203. package/coverage/lcov-report/components/GovBanner/index.js.html +0 -436
  204. package/coverage/lcov-report/components/Header/HeaderAccountMenu.jsx.html +0 -367
  205. package/coverage/lcov-report/components/Header/HeaderContainer.jsx.html +0 -307
  206. package/coverage/lcov-report/components/Header/HeaderLogo.jsx.html +0 -211
  207. package/coverage/lcov-report/components/Header/HeaderMenuButton.js.html +0 -235
  208. package/coverage/lcov-report/components/Header/HeaderMenuItem.jsx.html +0 -802
  209. package/coverage/lcov-report/components/Header/HeaderMenuLink.js.html +0 -253
  210. package/coverage/lcov-report/components/Header/HeaderMenuSignOutButton.js.html +0 -271
  211. package/coverage/lcov-report/components/Header/HeaderMobileButton.js.html +0 -196
  212. package/coverage/lcov-report/components/Header/HeaderUI.jsx.html +0 -586
  213. package/coverage/lcov-report/components/Header/HelpIcon.jsx.html +0 -181
  214. package/coverage/lcov-report/components/Header/ImpersonatorBanner.jsx.html +0 -328
  215. package/coverage/lcov-report/components/Header/NavigationButtonIcon.jsx.html +0 -166
  216. package/coverage/lcov-report/components/Header/hooks.js.html +0 -283
  217. package/coverage/lcov-report/components/Header/index.html +0 -326
  218. package/coverage/lcov-report/components/NotificationBanner/CollapsedView.js.html +0 -202
  219. package/coverage/lcov-report/components/NotificationBanner/ExpandedView.js.html +0 -220
  220. package/coverage/lcov-report/components/NotificationBanner/index.js.html +0 -748
@@ -1,748 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for components/NotificationBanner/index.js</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">components/NotificationBanner</a> index.js</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">19.45% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>43/221</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>0/0</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">0% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>0/2</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">19.45% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>43/221</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 low'></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>
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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
288
- <span class="cline-any cline-yes">1x</span>
289
- <span class="cline-any cline-yes">1x</span>
290
- <span class="cline-any cline-yes">1x</span>
291
- <span class="cline-any cline-yes">1x</span>
292
- <span class="cline-any cline-yes">1x</span>
293
- <span class="cline-any cline-no">&nbsp;</span>
294
- <span class="cline-any cline-no">&nbsp;</span>
295
- <span class="cline-any cline-no">&nbsp;</span>
296
- <span class="cline-any cline-no">&nbsp;</span>
297
- <span class="cline-any cline-no">&nbsp;</span>
298
- <span class="cline-any cline-no">&nbsp;</span>
299
- <span class="cline-any cline-no">&nbsp;</span>
300
- <span class="cline-any cline-no">&nbsp;</span>
301
- <span class="cline-any cline-no">&nbsp;</span>
302
- <span class="cline-any cline-no">&nbsp;</span>
303
- <span class="cline-any cline-yes">1x</span>
304
- <span class="cline-any cline-yes">1x</span>
305
- <span class="cline-any cline-no">&nbsp;</span>
306
- <span class="cline-any cline-no">&nbsp;</span>
307
- <span class="cline-any cline-no">&nbsp;</span>
308
- <span class="cline-any cline-no">&nbsp;</span>
309
- <span class="cline-any cline-no">&nbsp;</span>
310
- <span class="cline-any cline-no">&nbsp;</span>
311
- <span class="cline-any cline-no">&nbsp;</span>
312
- <span class="cline-any cline-no">&nbsp;</span>
313
- <span class="cline-any cline-no">&nbsp;</span>
314
- <span class="cline-any cline-no">&nbsp;</span>
315
- <span class="cline-any cline-no">&nbsp;</span>
316
- <span class="cline-any cline-no">&nbsp;</span>
317
- <span class="cline-any cline-no">&nbsp;</span>
318
- <span class="cline-any cline-no">&nbsp;</span>
319
- <span class="cline-any cline-no">&nbsp;</span>
320
- <span class="cline-any cline-no">&nbsp;</span>
321
- <span class="cline-any cline-no">&nbsp;</span>
322
- <span class="cline-any cline-no">&nbsp;</span>
323
- <span class="cline-any cline-no">&nbsp;</span>
324
- <span class="cline-any cline-no">&nbsp;</span>
325
- <span class="cline-any cline-no">&nbsp;</span>
326
- <span class="cline-any cline-no">&nbsp;</span>
327
- <span class="cline-any cline-no">&nbsp;</span>
328
- <span class="cline-any cline-no">&nbsp;</span>
329
- <span class="cline-any cline-no">&nbsp;</span>
330
- <span class="cline-any cline-no">&nbsp;</span>
331
- <span class="cline-any cline-no">&nbsp;</span>
332
- <span class="cline-any cline-no">&nbsp;</span>
333
- <span class="cline-any cline-no">&nbsp;</span>
334
- <span class="cline-any cline-no">&nbsp;</span>
335
- <span class="cline-any cline-no">&nbsp;</span>
336
- <span class="cline-any cline-no">&nbsp;</span>
337
- <span class="cline-any cline-no">&nbsp;</span>
338
- <span class="cline-any cline-no">&nbsp;</span>
339
- <span class="cline-any cline-no">&nbsp;</span>
340
- <span class="cline-any cline-no">&nbsp;</span>
341
- <span class="cline-any cline-no">&nbsp;</span>
342
- <span class="cline-any cline-no">&nbsp;</span>
343
- <span class="cline-any cline-no">&nbsp;</span>
344
- <span class="cline-any cline-no">&nbsp;</span>
345
- <span class="cline-any cline-no">&nbsp;</span>
346
- <span class="cline-any cline-no">&nbsp;</span>
347
- <span class="cline-any cline-no">&nbsp;</span>
348
- <span class="cline-any cline-no">&nbsp;</span>
349
- <span class="cline-any cline-no">&nbsp;</span>
350
- <span class="cline-any cline-no">&nbsp;</span>
351
- <span class="cline-any cline-no">&nbsp;</span>
352
- <span class="cline-any cline-no">&nbsp;</span>
353
- <span class="cline-any cline-no">&nbsp;</span>
354
- <span class="cline-any cline-no">&nbsp;</span>
355
- <span class="cline-any cline-no">&nbsp;</span>
356
- <span class="cline-any cline-no">&nbsp;</span>
357
- <span class="cline-any cline-no">&nbsp;</span>
358
- <span class="cline-any cline-no">&nbsp;</span>
359
- <span class="cline-any cline-no">&nbsp;</span>
360
- <span class="cline-any cline-no">&nbsp;</span>
361
- <span class="cline-any cline-no">&nbsp;</span>
362
- <span class="cline-any cline-no">&nbsp;</span>
363
- <span class="cline-any cline-no">&nbsp;</span>
364
- <span class="cline-any cline-no">&nbsp;</span>
365
- <span class="cline-any cline-no">&nbsp;</span>
366
- <span class="cline-any cline-no">&nbsp;</span>
367
- <span class="cline-any cline-no">&nbsp;</span>
368
- <span class="cline-any cline-no">&nbsp;</span>
369
- <span class="cline-any cline-no">&nbsp;</span>
370
- <span class="cline-any cline-no">&nbsp;</span>
371
- <span class="cline-any cline-no">&nbsp;</span>
372
- <span class="cline-any cline-no">&nbsp;</span>
373
- <span class="cline-any cline-no">&nbsp;</span>
374
- <span class="cline-any cline-no">&nbsp;</span>
375
- <span class="cline-any cline-no">&nbsp;</span>
376
- <span class="cline-any cline-no">&nbsp;</span>
377
- <span class="cline-any cline-no">&nbsp;</span>
378
- <span class="cline-any cline-no">&nbsp;</span>
379
- <span class="cline-any cline-no">&nbsp;</span>
380
- <span class="cline-any cline-no">&nbsp;</span>
381
- <span class="cline-any cline-no">&nbsp;</span>
382
- <span class="cline-any cline-no">&nbsp;</span>
383
- <span class="cline-any cline-no">&nbsp;</span>
384
- <span class="cline-any cline-no">&nbsp;</span>
385
- <span class="cline-any cline-no">&nbsp;</span>
386
- <span class="cline-any cline-no">&nbsp;</span>
387
- <span class="cline-any cline-no">&nbsp;</span>
388
- <span class="cline-any cline-no">&nbsp;</span>
389
- <span class="cline-any cline-no">&nbsp;</span>
390
- <span class="cline-any cline-no">&nbsp;</span>
391
- <span class="cline-any cline-no">&nbsp;</span>
392
- <span class="cline-any cline-no">&nbsp;</span>
393
- <span class="cline-any cline-no">&nbsp;</span>
394
- <span class="cline-any cline-no">&nbsp;</span>
395
- <span class="cline-any cline-no">&nbsp;</span>
396
- <span class="cline-any cline-no">&nbsp;</span>
397
- <span class="cline-any cline-no">&nbsp;</span>
398
- <span class="cline-any cline-no">&nbsp;</span>
399
- <span class="cline-any cline-no">&nbsp;</span>
400
- <span class="cline-any cline-no">&nbsp;</span>
401
- <span class="cline-any cline-no">&nbsp;</span>
402
- <span class="cline-any cline-no">&nbsp;</span>
403
- <span class="cline-any cline-no">&nbsp;</span>
404
- <span class="cline-any cline-no">&nbsp;</span>
405
- <span class="cline-any cline-no">&nbsp;</span>
406
- <span class="cline-any cline-no">&nbsp;</span>
407
- <span class="cline-any cline-no">&nbsp;</span>
408
- <span class="cline-any cline-no">&nbsp;</span>
409
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
413
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
418
- <span class="cline-any cline-no">&nbsp;</span>
419
- <span class="cline-any cline-no">&nbsp;</span>
420
- <span class="cline-any cline-no">&nbsp;</span>
421
- <span class="cline-any cline-no">&nbsp;</span>
422
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
427
- <span class="cline-any cline-no">&nbsp;</span>
428
- <span class="cline-any cline-no">&nbsp;</span>
429
- <span class="cline-any cline-no">&nbsp;</span>
430
- <span class="cline-any cline-no">&nbsp;</span>
431
- <span class="cline-any cline-no">&nbsp;</span>
432
- <span class="cline-any cline-no">&nbsp;</span>
433
- <span class="cline-any cline-no">&nbsp;</span>
434
- <span class="cline-any cline-no">&nbsp;</span>
435
- <span class="cline-any cline-no">&nbsp;</span>
436
- <span class="cline-any cline-no">&nbsp;</span>
437
- <span class="cline-any cline-no">&nbsp;</span>
438
- <span class="cline-any cline-no">&nbsp;</span>
439
- <span class="cline-any cline-no">&nbsp;</span>
440
- <span class="cline-any cline-no">&nbsp;</span>
441
- <span class="cline-any cline-no">&nbsp;</span>
442
- <span class="cline-any cline-no">&nbsp;</span>
443
- <span class="cline-any cline-no">&nbsp;</span>
444
- <span class="cline-any cline-no">&nbsp;</span>
445
- <span class="cline-any cline-no">&nbsp;</span>
446
- <span class="cline-any cline-no">&nbsp;</span>
447
- <span class="cline-any cline-no">&nbsp;</span>
448
- <span class="cline-any cline-no">&nbsp;</span>
449
- <span class="cline-any cline-no">&nbsp;</span>
450
- <span class="cline-any cline-no">&nbsp;</span>
451
- <span class="cline-any cline-no">&nbsp;</span>
452
- <span class="cline-any cline-no">&nbsp;</span>
453
- <span class="cline-any cline-no">&nbsp;</span>
454
- <span class="cline-any cline-no">&nbsp;</span>
455
- <span class="cline-any cline-no">&nbsp;</span>
456
- <span class="cline-any cline-no">&nbsp;</span>
457
- <span class="cline-any cline-no">&nbsp;</span>
458
- <span class="cline-any cline-no">&nbsp;</span>
459
- <span class="cline-any cline-no">&nbsp;</span>
460
- <span class="cline-any cline-no">&nbsp;</span>
461
- <span class="cline-any cline-no">&nbsp;</span>
462
- <span class="cline-any cline-no">&nbsp;</span>
463
- <span class="cline-any cline-no">&nbsp;</span>
464
- <span class="cline-any cline-no">&nbsp;</span>
465
- <span class="cline-any cline-no">&nbsp;</span>
466
- <span class="cline-any cline-no">&nbsp;</span>
467
- <span class="cline-any cline-no">&nbsp;</span>
468
- <span class="cline-any cline-no">&nbsp;</span>
469
- <span class="cline-any cline-no">&nbsp;</span>
470
- <span class="cline-any cline-no">&nbsp;</span>
471
- <span class="cline-any cline-no">&nbsp;</span>
472
- <span class="cline-any cline-no">&nbsp;</span>
473
- <span class="cline-any cline-yes">1x</span>
474
- <span class="cline-any cline-yes">1x</span>
475
- <span class="cline-any cline-yes">1x</span>
476
- <span class="cline-any cline-yes">1x</span>
477
- <span class="cline-any cline-yes">1x</span>
478
- <span class="cline-any cline-yes">1x</span>
479
- <span class="cline-any cline-yes">1x</span>
480
- <span class="cline-any cline-yes">1x</span>
481
- <span class="cline-any cline-yes">1x</span>
482
- <span class="cline-any cline-yes">1x</span>
483
- <span class="cline-any cline-yes">1x</span>
484
- <span class="cline-any cline-yes">1x</span>
485
- <span class="cline-any cline-yes">1x</span>
486
- <span class="cline-any cline-yes">1x</span>
487
- <span class="cline-any cline-yes">1x</span>
488
- <span class="cline-any cline-yes">1x</span>
489
- <span class="cline-any cline-yes">1x</span>
490
- <span class="cline-any cline-yes">1x</span>
491
- <span class="cline-any cline-yes">1x</span>
492
- <span class="cline-any cline-yes">1x</span>
493
- <span class="cline-any cline-yes">1x</span>
494
- <span class="cline-any cline-yes">1x</span>
495
- <span class="cline-any cline-yes">1x</span>
496
- <span class="cline-any cline-yes">1x</span>
497
- <span class="cline-any cline-yes">1x</span>
498
- <span class="cline-any cline-yes">1x</span>
499
- <span class="cline-any cline-yes">1x</span>
500
- <span class="cline-any cline-yes">1x</span>
501
- <span class="cline-any cline-yes">1x</span>
502
- <span class="cline-any cline-yes">1x</span>
503
- <span class="cline-any cline-yes">1x</span>
504
- <span class="cline-any cline-yes">1x</span>
505
- <span class="cline-any cline-yes">1x</span>
506
- <span class="cline-any cline-yes">1x</span>
507
- <span class="cline-any cline-yes">1x</span>
508
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { useState, useEffect, useRef } from 'react';
509
- import PropTypes from 'prop-types';
510
- import ExpandedView from './ExpandedView';
511
- import CollapsedView from './CollapsedView';
512
- import { withGetConfig } from '../hooks/useGetConfig';
513
- &nbsp;
514
- <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function debounce(fn, ms) {</span></span>
515
- <span class="cstat-no" title="statement not covered" > let timer;</span>
516
- <span class="cstat-no" title="statement not covered" > return () =&gt; {</span>
517
- <span class="cstat-no" title="statement not covered" > clearTimeout(timer);</span>
518
- <span class="cstat-no" title="statement not covered" > timer = setTimeout(() =&gt; {</span>
519
- <span class="cstat-no" title="statement not covered" > timer = null;</span>
520
- <span class="cstat-no" title="statement not covered" > fn.apply(this, arguments);</span>
521
- <span class="cstat-no" title="statement not covered" > }, ms);</span>
522
- <span class="cstat-no" title="statement not covered" > };</span>
523
- <span class="cstat-no" title="statement not covered" >}</span>
524
- &nbsp;
525
- const NotificationBanner = <span class="fstat-no" title="function not covered" >({ result }) =&gt; {</span>
526
- <span class="cstat-no" title="statement not covered" > const {</span>
527
- <span class="cstat-no" title="statement not covered" > color = 'blue',</span>
528
- <span class="cstat-no" title="statement not covered" > content,</span>
529
- <span class="cstat-no" title="statement not covered" > dismissable,</span>
530
- <span class="cstat-no" title="statement not covered" > enabled,</span>
531
- <span class="cstat-no" title="statement not covered" > label = 'Update',</span>
532
- <span class="cstat-no" title="statement not covered" > } = result.content;</span>
533
- <span class="cstat-no" title="statement not covered" ></span>
534
- <span class="cstat-no" title="statement not covered" > const bannerContainerRef = useRef(null);</span>
535
- <span class="cstat-no" title="statement not covered" > const collapsedWrapperRef = useRef(null);</span>
536
- <span class="cstat-no" title="statement not covered" > const collapsedBannerRef = useRef(null);</span>
537
- <span class="cstat-no" title="statement not covered" > const VIEW_BREAKPOINT = 767;</span>
538
- <span class="cstat-no" title="statement not covered" > const [height, setHeight] = useState('100%');</span>
539
- <span class="cstat-no" title="statement not covered" > const [expanded, setExpanded] = useState();</span>
540
- <span class="cstat-no" title="statement not covered" > const [windowWidth, setWindowWidth] = useState(window.innerWidth);</span>
541
- <span class="cstat-no" title="statement not covered" > const cssDeterminesBannerView = expanded ? 'expanded' : 'collapsed';</span>
542
- <span class="cstat-no" title="statement not covered" ></span>
543
- <span class="cstat-no" title="statement not covered" > useEffect(() =&gt; {</span>
544
- <span class="cstat-no" title="statement not covered" > //setBannerHeight on Load &amp; Resize</span>
545
- <span class="cstat-no" title="statement not covered" > setBannerHeight();</span>
546
- <span class="cstat-no" title="statement not covered" ></span>
547
- <span class="cstat-no" title="statement not covered" > if (window.innerWidth &lt;= VIEW_BREAKPOINT) {</span>
548
- <span class="cstat-no" title="statement not covered" > setExpanded(false);</span>
549
- <span class="cstat-no" title="statement not covered" > }</span>
550
- <span class="cstat-no" title="statement not covered" ></span>
551
- <span class="cstat-no" title="statement not covered" > const debounceBrowserResizeHandler = debounce(() =&gt; {</span>
552
- <span class="cstat-no" title="statement not covered" > return setWindowWidth(window.innerWidth);</span>
553
- <span class="cstat-no" title="statement not covered" > }, 600);</span>
554
- <span class="cstat-no" title="statement not covered" ></span>
555
- <span class="cstat-no" title="statement not covered" > window.addEventListener('resize', debounceBrowserResizeHandler);</span>
556
- <span class="cstat-no" title="statement not covered" ></span>
557
- <span class="cstat-no" title="statement not covered" > return () =&gt; {</span>
558
- <span class="cstat-no" title="statement not covered" > window.removeEventListener('resize', debounceBrowserResizeHandler);</span>
559
- <span class="cstat-no" title="statement not covered" > };</span>
560
- <span class="cstat-no" title="statement not covered" > }, [windowWidth]);</span>
561
- <span class="cstat-no" title="statement not covered" ></span>
562
- <span class="cstat-no" title="statement not covered" > useEffect(() =&gt; {</span>
563
- <span class="cstat-no" title="statement not covered" > // setExpanded =&gt; updates cssDeterminesBannerView</span>
564
- <span class="cstat-no" title="statement not covered" > if (Object.keys(result).length &gt; 0) {</span>
565
- <span class="cstat-no" title="statement not covered" > setExpanded(isNotificationExpanded());</span>
566
- <span class="cstat-no" title="statement not covered" > }</span>
567
- <span class="cstat-no" title="statement not covered" > }, [result]);</span>
568
- <span class="cstat-no" title="statement not covered" ></span>
569
- <span class="cstat-no" title="statement not covered" > const isNotificationExpanded = () =&gt; {</span>
570
- <span class="cstat-no" title="statement not covered" > const dateDismissed = new Date(result.content.dateDismissed);</span>
571
- <span class="cstat-no" title="statement not covered" > const dateUpdated = new Date(result.content.dateUpdated);</span>
572
- <span class="cstat-no" title="statement not covered" > const notDismissed =</span>
573
- <span class="cstat-no" title="statement not covered" > (isDateValid(dateUpdated) &amp;&amp;</span>
574
- <span class="cstat-no" title="statement not covered" > isDateValid(dateDismissed) &amp;&amp;</span>
575
- <span class="cstat-no" title="statement not covered" > dateUpdated &gt;= dateDismissed) ||</span>
576
- <span class="cstat-no" title="statement not covered" > !isDateValid(dateDismissed);</span>
577
- <span class="cstat-no" title="statement not covered" > return notDismissed;</span>
578
- <span class="cstat-no" title="statement not covered" > };</span>
579
- <span class="cstat-no" title="statement not covered" ></span>
580
- <span class="cstat-no" title="statement not covered" > const setBannerHeight = () =&gt; {</span>
581
- <span class="cstat-no" title="statement not covered" > if (content) {</span>
582
- <span class="cstat-no" title="statement not covered" > bannerContainerRef.current.style.transition = 'none';</span>
583
- <span class="cstat-no" title="statement not covered" > expanded</span>
584
- <span class="cstat-no" title="statement not covered" > ? collapsedBannerRef.current.setAttribute('tabIndex', '-1')</span>
585
- <span class="cstat-no" title="statement not covered" > : collapsedBannerRef.current.setAttribute('tabIndex', ' ');</span>
586
- <span class="cstat-no" title="statement not covered" ></span>
587
- <span class="cstat-no" title="statement not covered" > setHeight(</span>
588
- <span class="cstat-no" title="statement not covered" > expanded ? '100%' : `${collapsedWrapperRef.current.offsetHeight}px`,</span>
589
- <span class="cstat-no" title="statement not covered" > );</span>
590
- <span class="cstat-no" title="statement not covered" > }</span>
591
- <span class="cstat-no" title="statement not covered" > };</span>
592
- <span class="cstat-no" title="statement not covered" ></span>
593
- <span class="cstat-no" title="statement not covered" > /**</span>
594
- <span class="cstat-no" title="statement not covered" > * Whether the date is valid, i.e. not null</span>
595
- <span class="cstat-no" title="statement not covered" > *</span>
596
- <span class="cstat-no" title="statement not covered" > * @param {Date} date</span>
597
- <span class="cstat-no" title="statement not covered" > * @return {Boolean}</span>
598
- <span class="cstat-no" title="statement not covered" > */</span>
599
- <span class="cstat-no" title="statement not covered" ></span>
600
- <span class="cstat-no" title="statement not covered" > const isDateValid = (date) =&gt; {</span>
601
- <span class="cstat-no" title="statement not covered" > return !isNaN(Date.parse(date));</span>
602
- <span class="cstat-no" title="statement not covered" > };</span>
603
- <span class="cstat-no" title="statement not covered" > /**</span>
604
- <span class="cstat-no" title="statement not covered" > * Try to find this NotificationBanner instance in localStorage, or else add</span>
605
- <span class="cstat-no" title="statement not covered" > * a minimal version of it, and mark it with a dateDismissed, then update</span>
606
- <span class="cstat-no" title="statement not covered" > * localStorage.</span>
607
- <span class="cstat-no" title="statement not covered" > */</span>
608
- <span class="cstat-no" title="statement not covered" ></span>
609
- <span class="cstat-no" title="statement not covered" > const markNotificationClosed = () =&gt; {</span>
610
- <span class="cstat-no" title="statement not covered" > const dateDismissed = new Date().toISOString();</span>
611
- <span class="cstat-no" title="statement not covered" > const storageNotification = result || {};</span>
612
- <span class="cstat-no" title="statement not covered" ></span>
613
- <span class="cstat-no" title="statement not covered" > if (storageNotification &amp;&amp; Object.keys(storageNotification).length &gt; 0) {</span>
614
- <span class="cstat-no" title="statement not covered" > window.localStorage.setItem(</span>
615
- <span class="cstat-no" title="statement not covered" > 'notifications',</span>
616
- <span class="cstat-no" title="statement not covered" > JSON.stringify({</span>
617
- <span class="cstat-no" title="statement not covered" > ...storageNotification,</span>
618
- <span class="cstat-no" title="statement not covered" > content: {</span>
619
- <span class="cstat-no" title="statement not covered" > ...storageNotification.content,</span>
620
- <span class="cstat-no" title="statement not covered" > dateDismissed,</span>
621
- <span class="cstat-no" title="statement not covered" > },</span>
622
- <span class="cstat-no" title="statement not covered" > }),</span>
623
- <span class="cstat-no" title="statement not covered" > );</span>
624
- <span class="cstat-no" title="statement not covered" > } else {</span>
625
- <span class="cstat-no" title="statement not covered" > window.localStorage.setItem(</span>
626
- <span class="cstat-no" title="statement not covered" > 'notifications',</span>
627
- <span class="cstat-no" title="statement not covered" > JSON.stringify({</span>
628
- <span class="cstat-no" title="statement not covered" > ...storageNotification,</span>
629
- <span class="cstat-no" title="statement not covered" > content: {</span>
630
- <span class="cstat-no" title="statement not covered" > name: 'header-notification',</span>
631
- <span class="cstat-no" title="statement not covered" > dateDismissed,</span>
632
- <span class="cstat-no" title="statement not covered" > },</span>
633
- <span class="cstat-no" title="statement not covered" > }),</span>
634
- <span class="cstat-no" title="statement not covered" > );</span>
635
- <span class="cstat-no" title="statement not covered" > }</span>
636
- <span class="cstat-no" title="statement not covered" > };</span>
637
- <span class="cstat-no" title="statement not covered" ></span>
638
- <span class="cstat-no" title="statement not covered" > /**</span>
639
- <span class="cstat-no" title="statement not covered" > * Callback when the user dimisses a notification. Mark it as dismissed in</span>
640
- <span class="cstat-no" title="statement not covered" > * localStorage, empty the contents, and dispatch a custom event to notify</span>
641
- <span class="cstat-no" title="statement not covered" > * any observers that it has been dismissed.</span>
642
- <span class="cstat-no" title="statement not covered" > */</span>
643
- <span class="cstat-no" title="statement not covered" ></span>
644
- <span class="cstat-no" title="statement not covered" > const collapseNotification = (e) =&gt; {</span>
645
- <span class="cstat-no" title="statement not covered" > e.stopPropagation();</span>
646
- <span class="cstat-no" title="statement not covered" > markNotificationClosed();</span>
647
- <span class="cstat-no" title="statement not covered" > collapsedBannerRef.current.setAttribute('tabIndex', ' ');</span>
648
- <span class="cstat-no" title="statement not covered" > bannerContainerRef.current.style.transition = 'height .2s ease-out';</span>
649
- <span class="cstat-no" title="statement not covered" ></span>
650
- <span class="cstat-no" title="statement not covered" > setExpanded(false);</span>
651
- <span class="cstat-no" title="statement not covered" > setHeight(`${collapsedWrapperRef.current.offsetHeight}px`);</span>
652
- <span class="cstat-no" title="statement not covered" > };</span>
653
- <span class="cstat-no" title="statement not covered" ></span>
654
- <span class="cstat-no" title="statement not covered" > const expandNotification = () =&gt; {</span>
655
- <span class="cstat-no" title="statement not covered" > collapsedBannerRef.current.setAttribute('tabIndex', '-1');</span>
656
- <span class="cstat-no" title="statement not covered" > bannerContainerRef.current.style.transition = 'height .2s ease-out';</span>
657
- <span class="cstat-no" title="statement not covered" > setExpanded(true);</span>
658
- <span class="cstat-no" title="statement not covered" > setHeight('100%');</span>
659
- <span class="cstat-no" title="statement not covered" > };</span>
660
- <span class="cstat-no" title="statement not covered" ></span>
661
- <span class="cstat-no" title="statement not covered" > /**</span>
662
- <span class="cstat-no" title="statement not covered" > * Render the notification if it has any contents.</span>
663
- <span class="cstat-no" title="statement not covered" > *</span>
664
- <span class="cstat-no" title="statement not covered" > * @return {String} HTML content</span>
665
- <span class="cstat-no" title="statement not covered" > */</span>
666
- <span class="cstat-no" title="statement not covered" ></span>
667
- <span class="cstat-no" title="statement not covered" > return (</span>
668
- <span class="cstat-no" title="statement not covered" > &lt;&gt;</span>
669
- <span class="cstat-no" title="statement not covered" > {!content || !enabled ? (</span>
670
- <span class="cstat-no" title="statement not covered" > &lt;div id="notification-banner" /&gt;</span>
671
- <span class="cstat-no" title="statement not covered" > ) : (</span>
672
- <span class="cstat-no" title="statement not covered" > &lt;div</span>
673
- <span class="cstat-no" title="statement not covered" > ref={bannerContainerRef}</span>
674
- <span class="cstat-no" title="statement not covered" > style={{ height }}</span>
675
- <span class="cstat-no" title="statement not covered" > className={`notification-banner notification-banner-${color} ${cssDeterminesBannerView}`}</span>
676
- <span class="cstat-no" title="statement not covered" > &gt;</span>
677
- <span class="cstat-no" title="statement not covered" > &lt;ExpandedView</span>
678
- <span class="cstat-no" title="statement not covered" > label={label}</span>
679
- <span class="cstat-no" title="statement not covered" > expanded={expanded}</span>
680
- <span class="cstat-no" title="statement not covered" > content={content}</span>
681
- <span class="cstat-no" title="statement not covered" > dismissable={dismissable}</span>
682
- <span class="cstat-no" title="statement not covered" > collapseNotification={collapseNotification}</span>
683
- <span class="cstat-no" title="statement not covered" > /&gt;</span>
684
- <span class="cstat-no" title="statement not covered" ></span>
685
- <span class="cstat-no" title="statement not covered" > &lt;CollapsedView</span>
686
- <span class="cstat-no" title="statement not covered" > expandNotification={expandNotification}</span>
687
- <span class="cstat-no" title="statement not covered" > label={label}</span>
688
- <span class="cstat-no" title="statement not covered" > ref={{ collapsedWrapperRef, collapsedBannerRef }}</span>
689
- <span class="cstat-no" title="statement not covered" > /&gt;</span>
690
- <span class="cstat-no" title="statement not covered" > &lt;/div&gt;</span>
691
- <span class="cstat-no" title="statement not covered" > )}</span>
692
- <span class="cstat-no" title="statement not covered" > &lt;/&gt;</span>
693
- <span class="cstat-no" title="statement not covered" > );</span>
694
- };
695
- &nbsp;
696
- NotificationBanner.propTypes = {
697
- result: PropTypes.shape({
698
- content: PropTypes.shape({
699
- color: PropTypes.string,
700
- content: PropTypes.string,
701
- dateDismissed: PropTypes.string,
702
- dateUpdated: PropTypes.string,
703
- dismissable: PropTypes.bool,
704
- enabled: PropTypes.bool,
705
- label: PropTypes.string,
706
- }),
707
- }),
708
- };
709
- &nbsp;
710
- NotificationBanner.defaultProps = {
711
- result: {
712
- content: {
713
- color: 'blue',
714
- content: null,
715
- dismissable: true,
716
- enabled: true,
717
- label: 'Update',
718
- },
719
- },
720
- };
721
- &nbsp;
722
- export default withGetConfig(NotificationBanner, {
723
- timeout: 5,
724
- url: '/config/notification',
725
- localStorageName: 'active_notification',
726
- equalityCheckExclude: ['dateDismissed', 'dateUpdated'],
727
- defaultContent: {},
728
- });
729
- &nbsp;</pre></td></tr></table></pre>
730
-
731
- <div class='push'></div><!-- for sticky footer -->
732
- </div><!-- /wrapper -->
733
- <div class='footer quiet pad2 space-top1 center small'>
734
- Code coverage generated by
735
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
736
- at 2023-07-14T20:29:47.209Z
737
- </div>
738
- <script src="../../prettify.js"></script>
739
- <script>
740
- window.onload = function () {
741
- prettyPrint();
742
- };
743
- </script>
744
- <script src="../../sorter.js"></script>
745
- <script src="../../block-navigation.js"></script>
746
- </body>
747
- </html>
748
-