qpp-style 9.20.2 → 9.20.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.
- package/components/Footer/FooterUI.jsx +16 -14
- package/coverage/clover.xml +335 -291
- package/coverage/coverage-final.json +72 -71
- package/coverage/lcov-report/components/Accordion/index.html +1 -1
- package/coverage/lcov-report/components/Accordion/index.jsx.html +4 -4
- package/coverage/lcov-report/components/{SideNav/AnimationGroup → Button}/index.html +30 -30
- package/coverage/lcov-report/components/{SideNav/Links/NavLinkInline.jsx.html → Button/index.js.html} +101 -152
- package/coverage/lcov-report/components/Error/Collapsible.jsx.html +1 -1
- package/coverage/lcov-report/components/Error/ErrorUI.jsx.html +1 -1
- package/coverage/lcov-report/components/Error/index.html +1 -1
- package/coverage/lcov-report/components/Footer/FooterUI.jsx.html +184 -358
- package/coverage/lcov-report/components/Footer/SocialLinks.jsx.html +11 -11
- package/coverage/lcov-report/components/Footer/Subscribe.jsx.html +11 -11
- package/coverage/lcov-report/components/Footer/index.html +29 -44
- package/coverage/lcov-report/components/{SideNav/UI → GovBanner}/index.html +27 -42
- package/coverage/lcov-report/components/GovBanner/index.js.html +436 -0
- package/coverage/lcov-report/components/Header/HeaderAccountMenu.jsx.html +592 -0
- package/coverage/lcov-report/components/{SideNav/Details/IndividualDetails.jsx.html → Header/HeaderCancel.jsx.html} +18 -24
- package/coverage/lcov-report/components/Header/HeaderContainer.jsx.html +280 -0
- package/coverage/lcov-report/components/{SideNav/Links/NavLinkContainer.jsx.html → Header/HeaderLogo.jsx.html} +72 -60
- package/coverage/lcov-report/components/{SideNav/Links/NavItemInline.jsx.html → Header/HeaderMenuButton.js.html} +63 -75
- package/coverage/lcov-report/components/{SideNav/Content/LevelTwoContent.jsx.html → Header/HeaderMenuItem.jsx.html} +305 -236
- package/coverage/lcov-report/components/Header/HeaderMenuLink.js.html +253 -0
- package/coverage/lcov-report/components/Header/HeaderMenuSignOutButton.js.html +271 -0
- package/coverage/lcov-report/components/Header/HeaderMobileButton.js.html +196 -0
- package/coverage/lcov-report/components/{Footer/LegacyFooterUI.jsx.html → Header/HeaderUI.jsx.html} +193 -274
- package/coverage/lcov-report/components/Header/HelpIcon.jsx.html +181 -0
- package/coverage/lcov-report/components/Header/ImpersonatorBanner.jsx.html +331 -0
- package/coverage/lcov-report/components/Header/NavigationButtonIcon.jsx.html +166 -0
- package/coverage/lcov-report/components/Header/hooks.js.html +241 -0
- package/coverage/lcov-report/components/Header/index.html +326 -0
- package/coverage/lcov-report/components/{SideNav/Links/index.js.html → Header/utag-helpers.js.html} +28 -40
- package/coverage/lcov-report/components/Infotip/Infotip.jsx.html +2 -2
- package/coverage/lcov-report/components/Infotip/InfotipIcon.jsx.html +5 -5
- package/coverage/lcov-report/components/Infotip/index.html +1 -1
- package/coverage/lcov-report/components/Infotip/index.js.html +1 -1
- package/coverage/lcov-report/components/Modal/LegacyModal.jsx.html +3 -3
- package/coverage/lcov-report/components/Modal/Modal.jsx.html +5 -5
- package/coverage/lcov-report/components/Modal/index.html +1 -1
- package/coverage/lcov-report/components/Modal/index.jsx.html +5 -5
- package/coverage/lcov-report/components/{SideNav/AnimationGroup/AnimationGroup.jsx.html → NotificationBanner/CollapsedView.js.html} +56 -41
- package/coverage/lcov-report/components/{SideNav/Details/PracticeDetails.jsx.html → NotificationBanner/ExpandedView.js.html} +64 -64
- package/coverage/lcov-report/components/{SideNav/Details → NotificationBanner}/index.html +40 -40
- package/coverage/lcov-report/components/{SideNav/Content/LevelOneContent.jsx.html → NotificationBanner/index.js.html} +283 -244
- package/coverage/lcov-report/components/SanitizedContent/index.html +1 -1
- package/coverage/lcov-report/components/SanitizedContent/index.jsx.html +1 -1
- package/coverage/lcov-report/components/SessionDialogUI.jsx.html +4 -4
- package/coverage/lcov-report/components/SideNav/Chart/ScoreChart.jsx.html +7 -7
- package/coverage/lcov-report/components/SideNav/Chart/index.html +1 -16
- package/coverage/lcov-report/components/SideNav/helpers.js.html +829 -10
- package/coverage/lcov-report/components/SideNav/index.html +17 -17
- package/coverage/lcov-report/components/Tooltip/Tooltip.jsx.html +8 -8
- package/coverage/lcov-report/components/Tooltip/index.html +1 -1
- package/coverage/lcov-report/components/Tooltip/index.js.html +1 -1
- package/coverage/lcov-report/components/Tooltip/position.js.html +1 -1
- package/coverage/lcov-report/components/hooks/index.html +19 -19
- package/coverage/lcov-report/components/hooks/useGetConfig.js.html +39 -36
- package/coverage/lcov-report/components/index.html +1 -1
- package/coverage/lcov-report/index.html +63 -63
- package/coverage/lcov-report/lib/Chevron.jsx.html +5 -5
- package/coverage/lcov-report/lib/SvgComponents.jsx.html +102 -12
- package/coverage/lcov-report/lib/index.html +15 -30
- package/coverage/lcov-report/react/components/Accordion/index.html +1 -1
- package/coverage/lcov-report/react/components/Accordion/index.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Button/index.html +1 -1
- package/coverage/lcov-report/react/components/Button/index.js.html +1 -1
- package/coverage/lcov-report/react/components/Dropdown/index.html +1 -1
- package/coverage/lcov-report/react/components/Dropdown/index.js.html +1 -1
- package/coverage/lcov-report/react/components/Error/Collapsible.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Error/ErrorUI.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Error/error.js.html +1 -1
- package/coverage/lcov-report/react/components/Error/index.html +1 -1
- package/coverage/lcov-report/react/components/Footer/FooterUI.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Footer/LegacyFooterUI.jsx.html +16 -16
- package/coverage/lcov-report/react/components/Footer/SocialLinks.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Footer/Subscribe.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Footer/footer.js.html +1 -1
- package/coverage/lcov-report/react/components/Footer/index.html +1 -1
- package/coverage/lcov-report/react/components/GovBanner/index.html +1 -1
- package/coverage/lcov-report/react/components/GovBanner/index.js.html +1 -1
- package/coverage/lcov-report/react/components/Header/HeaderAccountMenu.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Header/HeaderCancel.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Header/HeaderContainer.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Header/HeaderLogo.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Header/HeaderMenuButton.js.html +1 -1
- package/coverage/lcov-report/react/components/Header/HeaderMenuItem.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Header/HeaderMenuLink.js.html +26 -8
- package/coverage/lcov-report/react/components/Header/HeaderMenuSignOutButton.js.html +1 -1
- package/coverage/lcov-report/react/components/Header/HeaderMobileButton.js.html +1 -1
- package/coverage/lcov-report/react/components/Header/HeaderUI.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Header/HelpIcon.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Header/ImpersonatorBanner.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Header/NavigationButtonIcon.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Header/header.js.html +1 -1
- package/coverage/lcov-report/react/components/Header/hooks.js.html +1 -1
- package/coverage/lcov-report/react/components/Header/index.html +17 -17
- package/coverage/lcov-report/react/components/Header/utag-helpers.js.html +1 -1
- package/coverage/lcov-report/react/components/Infotip/Infotip.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Infotip/InfotipIcon.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Infotip/index.html +1 -1
- package/coverage/lcov-report/react/components/Infotip/index.js.html +1 -1
- package/coverage/lcov-report/react/components/Modal/LegacyModal.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Modal/Modal.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Modal/index.html +1 -1
- package/coverage/lcov-report/react/components/Modal/index.jsx.html +1 -1
- package/coverage/lcov-report/{components/SideNav/Links/NavLinkToggle.jsx.html → react/components/NotificationBanner/CollapsedView.js.html} +40 -46
- package/coverage/lcov-report/{components/SideNav/Links/CmsSwitchLink.jsx.html → react/components/NotificationBanner/ExpandedView.js.html} +55 -43
- package/coverage/lcov-report/react/components/NotificationBanner/index.html +51 -21
- package/coverage/lcov-report/react/components/NotificationBanner/index.js.html +172 -304
- package/coverage/lcov-report/react/components/SanitizedContent/index.html +1 -1
- package/coverage/lcov-report/react/components/SanitizedContent/index.jsx.html +1 -1
- package/coverage/lcov-report/react/components/SessionDialog/index.html +1 -1
- package/coverage/lcov-report/react/components/SessionDialog/sessionDialog.js.html +1 -1
- package/coverage/lcov-report/react/components/SessionDialogUI.jsx.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/AnimationGroup/index.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Chart/ScoreChart.jsx.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Chart/index.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Chart/index.js.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Content/LevelOneContent.jsx.html +109 -31
- package/coverage/lcov-report/react/components/SideNav/Content/LevelTwoContent.jsx.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/index.html +14 -14
- package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/index.js.html +10 -16
- package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/utils.js.html +51 -27
- package/coverage/lcov-report/react/components/SideNav/Content/index.html +19 -19
- package/coverage/lcov-report/react/components/SideNav/Content/index.js.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Details/IndividualDetails.jsx.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Details/PracticeDetails.jsx.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Details/index.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Details/index.js.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Links/CmsSwitchLink.jsx.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Links/NavItemInline.jsx.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Links/NavLinkContainer.jsx.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Links/NavLinkDrawer.jsx.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Links/NavLinkInline.jsx.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Links/NavLinkToggle.jsx.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Links/index.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Links/index.js.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/UI/SideNavUI.jsx.html +4 -16
- package/coverage/lcov-report/react/components/SideNav/UI/index.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/UI/index.js.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/helpers.js.html +197 -17
- package/coverage/lcov-report/react/components/SideNav/index.html +19 -19
- package/coverage/lcov-report/react/components/SideNav/index.js.html +1 -1
- package/coverage/lcov-report/react/components/Tooltip/Tooltip.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Tooltip/index.html +1 -1
- package/coverage/lcov-report/react/components/Tooltip/index.js.html +1 -1
- package/coverage/lcov-report/react/components/Tooltip/position.js.html +1 -1
- package/coverage/lcov-report/react/components/hooks/index.html +1 -1
- package/coverage/lcov-report/react/components/hooks/useGetConfig.js.html +1 -1
- package/coverage/lcov-report/react/components/index.html +1 -1
- package/coverage/lcov-report/react/index.html +1 -1
- package/coverage/lcov-report/react/index.js.html +1 -1
- package/coverage/lcov-report/react/lib/Chevron.jsx.html +1 -1
- package/coverage/lcov-report/react/lib/SvgComponents.jsx.html +57 -9
- package/coverage/lcov-report/react/lib/index.html +14 -29
- package/coverage/lcov-report/react/lib/svg-definitions.svg.html +1 -1
- package/coverage/lcov-report/react/session/index.html +1 -1
- package/coverage/lcov-report/react/session/index.js.html +1 -1
- package/coverage/lcov-report/react/session/logout.js.html +1 -1
- package/coverage/lcov-report/react/session/refresh.js.html +1 -1
- package/coverage/lcov-report/react/session/ttl.js.html +1 -1
- package/coverage/lcov-report/session/index.html +20 -20
- package/coverage/lcov-report/session/index.js.html +1 -1
- package/coverage/lcov-report/session/logout.js.html +24 -15
- package/coverage/lcov-report/session/refresh.js.html +2 -2
- package/coverage/lcov-report/session/ttl.js.html +2 -2
- package/coverage/lcov.info +530 -454
- package/dist/browser.js +1 -1
- package/dist/browser.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/react/index.js +1 -1
- package/dist/react/index.js.map +1 -1
- package/package.json +1 -1
- package/styles/qppds/components/_footer.scss +2 -0
- package/coverage/lcov-report/components/SideNav/Chart/index.js.html +0 -94
- package/coverage/lcov-report/components/SideNav/Content/index.html +0 -146
- package/coverage/lcov-report/components/SideNav/Content/index.js.html +0 -97
- package/coverage/lcov-report/components/SideNav/Details/index.js.html +0 -97
- package/coverage/lcov-report/components/SideNav/Links/NavLinkDrawer.jsx.html +0 -832
- package/coverage/lcov-report/components/SideNav/Links/index.html +0 -206
- package/coverage/lcov-report/components/SideNav/UI/SideNavUI.jsx.html +0 -1084
- package/coverage/lcov-report/components/SideNav/UI/index.js.html +0 -94
- package/coverage/lcov-report/lib/svg-definitions.svg.html +0 -460
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">34.66% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>26/75</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
33
|
<span class="strong">0% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>0/
|
|
35
|
+
<span class='fraction'>0/29</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
40
|
<span class="strong">0% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>0/
|
|
42
|
+
<span class='fraction'>0/15</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">35.61% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>26/73</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
</div>
|
|
62
62
|
</template>
|
|
63
63
|
</div>
|
|
64
|
-
<div class='status-line
|
|
64
|
+
<div class='status-line low'></div>
|
|
65
65
|
<pre><table class="coverage">
|
|
66
66
|
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
67
|
<a name='L2'></a><a href='#L2'>2</a>
|
|
@@ -114,7 +114,300 @@
|
|
|
114
114
|
<a name='L49'></a><a href='#L49'>49</a>
|
|
115
115
|
<a name='L50'></a><a href='#L50'>50</a>
|
|
116
116
|
<a name='L51'></a><a href='#L51'>51</a>
|
|
117
|
-
<a name='L52'></a><a href='#L52'>52</a
|
|
117
|
+
<a name='L52'></a><a href='#L52'>52</a>
|
|
118
|
+
<a name='L53'></a><a href='#L53'>53</a>
|
|
119
|
+
<a name='L54'></a><a href='#L54'>54</a>
|
|
120
|
+
<a name='L55'></a><a href='#L55'>55</a>
|
|
121
|
+
<a name='L56'></a><a href='#L56'>56</a>
|
|
122
|
+
<a name='L57'></a><a href='#L57'>57</a>
|
|
123
|
+
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
|
+
<a name='L59'></a><a href='#L59'>59</a>
|
|
125
|
+
<a name='L60'></a><a href='#L60'>60</a>
|
|
126
|
+
<a name='L61'></a><a href='#L61'>61</a>
|
|
127
|
+
<a name='L62'></a><a href='#L62'>62</a>
|
|
128
|
+
<a name='L63'></a><a href='#L63'>63</a>
|
|
129
|
+
<a name='L64'></a><a href='#L64'>64</a>
|
|
130
|
+
<a name='L65'></a><a href='#L65'>65</a>
|
|
131
|
+
<a name='L66'></a><a href='#L66'>66</a>
|
|
132
|
+
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
|
+
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
|
+
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
|
+
<a name='L70'></a><a href='#L70'>70</a>
|
|
136
|
+
<a name='L71'></a><a href='#L71'>71</a>
|
|
137
|
+
<a name='L72'></a><a href='#L72'>72</a>
|
|
138
|
+
<a name='L73'></a><a href='#L73'>73</a>
|
|
139
|
+
<a name='L74'></a><a href='#L74'>74</a>
|
|
140
|
+
<a name='L75'></a><a href='#L75'>75</a>
|
|
141
|
+
<a name='L76'></a><a href='#L76'>76</a>
|
|
142
|
+
<a name='L77'></a><a href='#L77'>77</a>
|
|
143
|
+
<a name='L78'></a><a href='#L78'>78</a>
|
|
144
|
+
<a name='L79'></a><a href='#L79'>79</a>
|
|
145
|
+
<a name='L80'></a><a href='#L80'>80</a>
|
|
146
|
+
<a name='L81'></a><a href='#L81'>81</a>
|
|
147
|
+
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
|
+
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
|
+
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
|
+
<a name='L85'></a><a href='#L85'>85</a>
|
|
151
|
+
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
|
+
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
|
+
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
|
+
<a name='L89'></a><a href='#L89'>89</a>
|
|
155
|
+
<a name='L90'></a><a href='#L90'>90</a>
|
|
156
|
+
<a name='L91'></a><a href='#L91'>91</a>
|
|
157
|
+
<a name='L92'></a><a href='#L92'>92</a>
|
|
158
|
+
<a name='L93'></a><a href='#L93'>93</a>
|
|
159
|
+
<a name='L94'></a><a href='#L94'>94</a>
|
|
160
|
+
<a name='L95'></a><a href='#L95'>95</a>
|
|
161
|
+
<a name='L96'></a><a href='#L96'>96</a>
|
|
162
|
+
<a name='L97'></a><a href='#L97'>97</a>
|
|
163
|
+
<a name='L98'></a><a href='#L98'>98</a>
|
|
164
|
+
<a name='L99'></a><a href='#L99'>99</a>
|
|
165
|
+
<a name='L100'></a><a href='#L100'>100</a>
|
|
166
|
+
<a name='L101'></a><a href='#L101'>101</a>
|
|
167
|
+
<a name='L102'></a><a href='#L102'>102</a>
|
|
168
|
+
<a name='L103'></a><a href='#L103'>103</a>
|
|
169
|
+
<a name='L104'></a><a href='#L104'>104</a>
|
|
170
|
+
<a name='L105'></a><a href='#L105'>105</a>
|
|
171
|
+
<a name='L106'></a><a href='#L106'>106</a>
|
|
172
|
+
<a name='L107'></a><a href='#L107'>107</a>
|
|
173
|
+
<a name='L108'></a><a href='#L108'>108</a>
|
|
174
|
+
<a name='L109'></a><a href='#L109'>109</a>
|
|
175
|
+
<a name='L110'></a><a href='#L110'>110</a>
|
|
176
|
+
<a name='L111'></a><a href='#L111'>111</a>
|
|
177
|
+
<a name='L112'></a><a href='#L112'>112</a>
|
|
178
|
+
<a name='L113'></a><a href='#L113'>113</a>
|
|
179
|
+
<a name='L114'></a><a href='#L114'>114</a>
|
|
180
|
+
<a name='L115'></a><a href='#L115'>115</a>
|
|
181
|
+
<a name='L116'></a><a href='#L116'>116</a>
|
|
182
|
+
<a name='L117'></a><a href='#L117'>117</a>
|
|
183
|
+
<a name='L118'></a><a href='#L118'>118</a>
|
|
184
|
+
<a name='L119'></a><a href='#L119'>119</a>
|
|
185
|
+
<a name='L120'></a><a href='#L120'>120</a>
|
|
186
|
+
<a name='L121'></a><a href='#L121'>121</a>
|
|
187
|
+
<a name='L122'></a><a href='#L122'>122</a>
|
|
188
|
+
<a name='L123'></a><a href='#L123'>123</a>
|
|
189
|
+
<a name='L124'></a><a href='#L124'>124</a>
|
|
190
|
+
<a name='L125'></a><a href='#L125'>125</a>
|
|
191
|
+
<a name='L126'></a><a href='#L126'>126</a>
|
|
192
|
+
<a name='L127'></a><a href='#L127'>127</a>
|
|
193
|
+
<a name='L128'></a><a href='#L128'>128</a>
|
|
194
|
+
<a name='L129'></a><a href='#L129'>129</a>
|
|
195
|
+
<a name='L130'></a><a href='#L130'>130</a>
|
|
196
|
+
<a name='L131'></a><a href='#L131'>131</a>
|
|
197
|
+
<a name='L132'></a><a href='#L132'>132</a>
|
|
198
|
+
<a name='L133'></a><a href='#L133'>133</a>
|
|
199
|
+
<a name='L134'></a><a href='#L134'>134</a>
|
|
200
|
+
<a name='L135'></a><a href='#L135'>135</a>
|
|
201
|
+
<a name='L136'></a><a href='#L136'>136</a>
|
|
202
|
+
<a name='L137'></a><a href='#L137'>137</a>
|
|
203
|
+
<a name='L138'></a><a href='#L138'>138</a>
|
|
204
|
+
<a name='L139'></a><a href='#L139'>139</a>
|
|
205
|
+
<a name='L140'></a><a href='#L140'>140</a>
|
|
206
|
+
<a name='L141'></a><a href='#L141'>141</a>
|
|
207
|
+
<a name='L142'></a><a href='#L142'>142</a>
|
|
208
|
+
<a name='L143'></a><a href='#L143'>143</a>
|
|
209
|
+
<a name='L144'></a><a href='#L144'>144</a>
|
|
210
|
+
<a name='L145'></a><a href='#L145'>145</a>
|
|
211
|
+
<a name='L146'></a><a href='#L146'>146</a>
|
|
212
|
+
<a name='L147'></a><a href='#L147'>147</a>
|
|
213
|
+
<a name='L148'></a><a href='#L148'>148</a>
|
|
214
|
+
<a name='L149'></a><a href='#L149'>149</a>
|
|
215
|
+
<a name='L150'></a><a href='#L150'>150</a>
|
|
216
|
+
<a name='L151'></a><a href='#L151'>151</a>
|
|
217
|
+
<a name='L152'></a><a href='#L152'>152</a>
|
|
218
|
+
<a name='L153'></a><a href='#L153'>153</a>
|
|
219
|
+
<a name='L154'></a><a href='#L154'>154</a>
|
|
220
|
+
<a name='L155'></a><a href='#L155'>155</a>
|
|
221
|
+
<a name='L156'></a><a href='#L156'>156</a>
|
|
222
|
+
<a name='L157'></a><a href='#L157'>157</a>
|
|
223
|
+
<a name='L158'></a><a href='#L158'>158</a>
|
|
224
|
+
<a name='L159'></a><a href='#L159'>159</a>
|
|
225
|
+
<a name='L160'></a><a href='#L160'>160</a>
|
|
226
|
+
<a name='L161'></a><a href='#L161'>161</a>
|
|
227
|
+
<a name='L162'></a><a href='#L162'>162</a>
|
|
228
|
+
<a name='L163'></a><a href='#L163'>163</a>
|
|
229
|
+
<a name='L164'></a><a href='#L164'>164</a>
|
|
230
|
+
<a name='L165'></a><a href='#L165'>165</a>
|
|
231
|
+
<a name='L166'></a><a href='#L166'>166</a>
|
|
232
|
+
<a name='L167'></a><a href='#L167'>167</a>
|
|
233
|
+
<a name='L168'></a><a href='#L168'>168</a>
|
|
234
|
+
<a name='L169'></a><a href='#L169'>169</a>
|
|
235
|
+
<a name='L170'></a><a href='#L170'>170</a>
|
|
236
|
+
<a name='L171'></a><a href='#L171'>171</a>
|
|
237
|
+
<a name='L172'></a><a href='#L172'>172</a>
|
|
238
|
+
<a name='L173'></a><a href='#L173'>173</a>
|
|
239
|
+
<a name='L174'></a><a href='#L174'>174</a>
|
|
240
|
+
<a name='L175'></a><a href='#L175'>175</a>
|
|
241
|
+
<a name='L176'></a><a href='#L176'>176</a>
|
|
242
|
+
<a name='L177'></a><a href='#L177'>177</a>
|
|
243
|
+
<a name='L178'></a><a href='#L178'>178</a>
|
|
244
|
+
<a name='L179'></a><a href='#L179'>179</a>
|
|
245
|
+
<a name='L180'></a><a href='#L180'>180</a>
|
|
246
|
+
<a name='L181'></a><a href='#L181'>181</a>
|
|
247
|
+
<a name='L182'></a><a href='#L182'>182</a>
|
|
248
|
+
<a name='L183'></a><a href='#L183'>183</a>
|
|
249
|
+
<a name='L184'></a><a href='#L184'>184</a>
|
|
250
|
+
<a name='L185'></a><a href='#L185'>185</a>
|
|
251
|
+
<a name='L186'></a><a href='#L186'>186</a>
|
|
252
|
+
<a name='L187'></a><a href='#L187'>187</a>
|
|
253
|
+
<a name='L188'></a><a href='#L188'>188</a>
|
|
254
|
+
<a name='L189'></a><a href='#L189'>189</a>
|
|
255
|
+
<a name='L190'></a><a href='#L190'>190</a>
|
|
256
|
+
<a name='L191'></a><a href='#L191'>191</a>
|
|
257
|
+
<a name='L192'></a><a href='#L192'>192</a>
|
|
258
|
+
<a name='L193'></a><a href='#L193'>193</a>
|
|
259
|
+
<a name='L194'></a><a href='#L194'>194</a>
|
|
260
|
+
<a name='L195'></a><a href='#L195'>195</a>
|
|
261
|
+
<a name='L196'></a><a href='#L196'>196</a>
|
|
262
|
+
<a name='L197'></a><a href='#L197'>197</a>
|
|
263
|
+
<a name='L198'></a><a href='#L198'>198</a>
|
|
264
|
+
<a name='L199'></a><a href='#L199'>199</a>
|
|
265
|
+
<a name='L200'></a><a href='#L200'>200</a>
|
|
266
|
+
<a name='L201'></a><a href='#L201'>201</a>
|
|
267
|
+
<a name='L202'></a><a href='#L202'>202</a>
|
|
268
|
+
<a name='L203'></a><a href='#L203'>203</a>
|
|
269
|
+
<a name='L204'></a><a href='#L204'>204</a>
|
|
270
|
+
<a name='L205'></a><a href='#L205'>205</a>
|
|
271
|
+
<a name='L206'></a><a href='#L206'>206</a>
|
|
272
|
+
<a name='L207'></a><a href='#L207'>207</a>
|
|
273
|
+
<a name='L208'></a><a href='#L208'>208</a>
|
|
274
|
+
<a name='L209'></a><a href='#L209'>209</a>
|
|
275
|
+
<a name='L210'></a><a href='#L210'>210</a>
|
|
276
|
+
<a name='L211'></a><a href='#L211'>211</a>
|
|
277
|
+
<a name='L212'></a><a href='#L212'>212</a>
|
|
278
|
+
<a name='L213'></a><a href='#L213'>213</a>
|
|
279
|
+
<a name='L214'></a><a href='#L214'>214</a>
|
|
280
|
+
<a name='L215'></a><a href='#L215'>215</a>
|
|
281
|
+
<a name='L216'></a><a href='#L216'>216</a>
|
|
282
|
+
<a name='L217'></a><a href='#L217'>217</a>
|
|
283
|
+
<a name='L218'></a><a href='#L218'>218</a>
|
|
284
|
+
<a name='L219'></a><a href='#L219'>219</a>
|
|
285
|
+
<a name='L220'></a><a href='#L220'>220</a>
|
|
286
|
+
<a name='L221'></a><a href='#L221'>221</a>
|
|
287
|
+
<a name='L222'></a><a href='#L222'>222</a>
|
|
288
|
+
<a name='L223'></a><a href='#L223'>223</a>
|
|
289
|
+
<a name='L224'></a><a href='#L224'>224</a>
|
|
290
|
+
<a name='L225'></a><a href='#L225'>225</a>
|
|
291
|
+
<a name='L226'></a><a href='#L226'>226</a>
|
|
292
|
+
<a name='L227'></a><a href='#L227'>227</a>
|
|
293
|
+
<a name='L228'></a><a href='#L228'>228</a>
|
|
294
|
+
<a name='L229'></a><a href='#L229'>229</a>
|
|
295
|
+
<a name='L230'></a><a href='#L230'>230</a>
|
|
296
|
+
<a name='L231'></a><a href='#L231'>231</a>
|
|
297
|
+
<a name='L232'></a><a href='#L232'>232</a>
|
|
298
|
+
<a name='L233'></a><a href='#L233'>233</a>
|
|
299
|
+
<a name='L234'></a><a href='#L234'>234</a>
|
|
300
|
+
<a name='L235'></a><a href='#L235'>235</a>
|
|
301
|
+
<a name='L236'></a><a href='#L236'>236</a>
|
|
302
|
+
<a name='L237'></a><a href='#L237'>237</a>
|
|
303
|
+
<a name='L238'></a><a href='#L238'>238</a>
|
|
304
|
+
<a name='L239'></a><a href='#L239'>239</a>
|
|
305
|
+
<a name='L240'></a><a href='#L240'>240</a>
|
|
306
|
+
<a name='L241'></a><a href='#L241'>241</a>
|
|
307
|
+
<a name='L242'></a><a href='#L242'>242</a>
|
|
308
|
+
<a name='L243'></a><a href='#L243'>243</a>
|
|
309
|
+
<a name='L244'></a><a href='#L244'>244</a>
|
|
310
|
+
<a name='L245'></a><a href='#L245'>245</a>
|
|
311
|
+
<a name='L246'></a><a href='#L246'>246</a>
|
|
312
|
+
<a name='L247'></a><a href='#L247'>247</a>
|
|
313
|
+
<a name='L248'></a><a href='#L248'>248</a>
|
|
314
|
+
<a name='L249'></a><a href='#L249'>249</a>
|
|
315
|
+
<a name='L250'></a><a href='#L250'>250</a>
|
|
316
|
+
<a name='L251'></a><a href='#L251'>251</a>
|
|
317
|
+
<a name='L252'></a><a href='#L252'>252</a>
|
|
318
|
+
<a name='L253'></a><a href='#L253'>253</a>
|
|
319
|
+
<a name='L254'></a><a href='#L254'>254</a>
|
|
320
|
+
<a name='L255'></a><a href='#L255'>255</a>
|
|
321
|
+
<a name='L256'></a><a href='#L256'>256</a>
|
|
322
|
+
<a name='L257'></a><a href='#L257'>257</a>
|
|
323
|
+
<a name='L258'></a><a href='#L258'>258</a>
|
|
324
|
+
<a name='L259'></a><a href='#L259'>259</a>
|
|
325
|
+
<a name='L260'></a><a href='#L260'>260</a>
|
|
326
|
+
<a name='L261'></a><a href='#L261'>261</a>
|
|
327
|
+
<a name='L262'></a><a href='#L262'>262</a>
|
|
328
|
+
<a name='L263'></a><a href='#L263'>263</a>
|
|
329
|
+
<a name='L264'></a><a href='#L264'>264</a>
|
|
330
|
+
<a name='L265'></a><a href='#L265'>265</a>
|
|
331
|
+
<a name='L266'></a><a href='#L266'>266</a>
|
|
332
|
+
<a name='L267'></a><a href='#L267'>267</a>
|
|
333
|
+
<a name='L268'></a><a href='#L268'>268</a>
|
|
334
|
+
<a name='L269'></a><a href='#L269'>269</a>
|
|
335
|
+
<a name='L270'></a><a href='#L270'>270</a>
|
|
336
|
+
<a name='L271'></a><a href='#L271'>271</a>
|
|
337
|
+
<a name='L272'></a><a href='#L272'>272</a>
|
|
338
|
+
<a name='L273'></a><a href='#L273'>273</a>
|
|
339
|
+
<a name='L274'></a><a href='#L274'>274</a>
|
|
340
|
+
<a name='L275'></a><a href='#L275'>275</a>
|
|
341
|
+
<a name='L276'></a><a href='#L276'>276</a>
|
|
342
|
+
<a name='L277'></a><a href='#L277'>277</a>
|
|
343
|
+
<a name='L278'></a><a href='#L278'>278</a>
|
|
344
|
+
<a name='L279'></a><a href='#L279'>279</a>
|
|
345
|
+
<a name='L280'></a><a href='#L280'>280</a>
|
|
346
|
+
<a name='L281'></a><a href='#L281'>281</a>
|
|
347
|
+
<a name='L282'></a><a href='#L282'>282</a>
|
|
348
|
+
<a name='L283'></a><a href='#L283'>283</a>
|
|
349
|
+
<a name='L284'></a><a href='#L284'>284</a>
|
|
350
|
+
<a name='L285'></a><a href='#L285'>285</a>
|
|
351
|
+
<a name='L286'></a><a href='#L286'>286</a>
|
|
352
|
+
<a name='L287'></a><a href='#L287'>287</a>
|
|
353
|
+
<a name='L288'></a><a href='#L288'>288</a>
|
|
354
|
+
<a name='L289'></a><a href='#L289'>289</a>
|
|
355
|
+
<a name='L290'></a><a href='#L290'>290</a>
|
|
356
|
+
<a name='L291'></a><a href='#L291'>291</a>
|
|
357
|
+
<a name='L292'></a><a href='#L292'>292</a>
|
|
358
|
+
<a name='L293'></a><a href='#L293'>293</a>
|
|
359
|
+
<a name='L294'></a><a href='#L294'>294</a>
|
|
360
|
+
<a name='L295'></a><a href='#L295'>295</a>
|
|
361
|
+
<a name='L296'></a><a href='#L296'>296</a>
|
|
362
|
+
<a name='L297'></a><a href='#L297'>297</a>
|
|
363
|
+
<a name='L298'></a><a href='#L298'>298</a>
|
|
364
|
+
<a name='L299'></a><a href='#L299'>299</a>
|
|
365
|
+
<a name='L300'></a><a href='#L300'>300</a>
|
|
366
|
+
<a name='L301'></a><a href='#L301'>301</a>
|
|
367
|
+
<a name='L302'></a><a href='#L302'>302</a>
|
|
368
|
+
<a name='L303'></a><a href='#L303'>303</a>
|
|
369
|
+
<a name='L304'></a><a href='#L304'>304</a>
|
|
370
|
+
<a name='L305'></a><a href='#L305'>305</a>
|
|
371
|
+
<a name='L306'></a><a href='#L306'>306</a>
|
|
372
|
+
<a name='L307'></a><a href='#L307'>307</a>
|
|
373
|
+
<a name='L308'></a><a href='#L308'>308</a>
|
|
374
|
+
<a name='L309'></a><a href='#L309'>309</a>
|
|
375
|
+
<a name='L310'></a><a href='#L310'>310</a>
|
|
376
|
+
<a name='L311'></a><a href='#L311'>311</a>
|
|
377
|
+
<a name='L312'></a><a href='#L312'>312</a>
|
|
378
|
+
<a name='L313'></a><a href='#L313'>313</a>
|
|
379
|
+
<a name='L314'></a><a href='#L314'>314</a>
|
|
380
|
+
<a name='L315'></a><a href='#L315'>315</a>
|
|
381
|
+
<a name='L316'></a><a href='#L316'>316</a>
|
|
382
|
+
<a name='L317'></a><a href='#L317'>317</a>
|
|
383
|
+
<a name='L318'></a><a href='#L318'>318</a>
|
|
384
|
+
<a name='L319'></a><a href='#L319'>319</a>
|
|
385
|
+
<a name='L320'></a><a href='#L320'>320</a>
|
|
386
|
+
<a name='L321'></a><a href='#L321'>321</a>
|
|
387
|
+
<a name='L322'></a><a href='#L322'>322</a>
|
|
388
|
+
<a name='L323'></a><a href='#L323'>323</a>
|
|
389
|
+
<a name='L324'></a><a href='#L324'>324</a>
|
|
390
|
+
<a name='L325'></a><a href='#L325'>325</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
391
|
+
<span class="cline-any cline-neutral"> </span>
|
|
392
|
+
<span class="cline-any cline-neutral"> </span>
|
|
393
|
+
<span class="cline-any cline-neutral"> </span>
|
|
394
|
+
<span class="cline-any cline-neutral"> </span>
|
|
395
|
+
<span class="cline-any cline-neutral"> </span>
|
|
396
|
+
<span class="cline-any cline-neutral"> </span>
|
|
397
|
+
<span class="cline-any cline-neutral"> </span>
|
|
398
|
+
<span class="cline-any cline-neutral"> </span>
|
|
399
|
+
<span class="cline-any cline-neutral"> </span>
|
|
400
|
+
<span class="cline-any cline-neutral"> </span>
|
|
401
|
+
<span class="cline-any cline-neutral"> </span>
|
|
402
|
+
<span class="cline-any cline-neutral"> </span>
|
|
403
|
+
<span class="cline-any cline-neutral"> </span>
|
|
404
|
+
<span class="cline-any cline-neutral"> </span>
|
|
405
|
+
<span class="cline-any cline-neutral"> </span>
|
|
406
|
+
<span class="cline-any cline-neutral"> </span>
|
|
407
|
+
<span class="cline-any cline-neutral"> </span>
|
|
408
|
+
<span class="cline-any cline-neutral"> </span>
|
|
409
|
+
<span class="cline-any cline-yes">1x</span>
|
|
410
|
+
<span class="cline-any cline-yes">1x</span>
|
|
118
411
|
<span class="cline-any cline-yes">1x</span>
|
|
119
412
|
<span class="cline-any cline-yes">1x</span>
|
|
120
413
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -152,7 +445,257 @@
|
|
|
152
445
|
<span class="cline-any cline-neutral"> </span>
|
|
153
446
|
<span class="cline-any cline-neutral"> </span>
|
|
154
447
|
<span class="cline-any cline-neutral"> </span>
|
|
448
|
+
<span class="cline-any cline-neutral"> </span>
|
|
449
|
+
<span class="cline-any cline-neutral"> </span>
|
|
450
|
+
<span class="cline-any cline-neutral"> </span>
|
|
451
|
+
<span class="cline-any cline-neutral"> </span>
|
|
452
|
+
<span class="cline-any cline-neutral"> </span>
|
|
453
|
+
<span class="cline-any cline-yes">1x</span>
|
|
454
|
+
<span class="cline-any cline-no"> </span>
|
|
455
|
+
<span class="cline-any cline-neutral"> </span>
|
|
456
|
+
<span class="cline-any cline-neutral"> </span>
|
|
457
|
+
<span class="cline-any cline-neutral"> </span>
|
|
458
|
+
<span class="cline-any cline-neutral"> </span>
|
|
459
|
+
<span class="cline-any cline-neutral"> </span>
|
|
460
|
+
<span class="cline-any cline-neutral"> </span>
|
|
461
|
+
<span class="cline-any cline-neutral"> </span>
|
|
462
|
+
<span class="cline-any cline-neutral"> </span>
|
|
463
|
+
<span class="cline-any cline-neutral"> </span>
|
|
464
|
+
<span class="cline-any cline-neutral"> </span>
|
|
465
|
+
<span class="cline-any cline-neutral"> </span>
|
|
466
|
+
<span class="cline-any cline-neutral"> </span>
|
|
467
|
+
<span class="cline-any cline-neutral"> </span>
|
|
468
|
+
<span class="cline-any cline-neutral"> </span>
|
|
469
|
+
<span class="cline-any cline-neutral"> </span>
|
|
470
|
+
<span class="cline-any cline-neutral"> </span>
|
|
471
|
+
<span class="cline-any cline-neutral"> </span>
|
|
472
|
+
<span class="cline-any cline-neutral"> </span>
|
|
473
|
+
<span class="cline-any cline-neutral"> </span>
|
|
474
|
+
<span class="cline-any cline-neutral"> </span>
|
|
475
|
+
<span class="cline-any cline-neutral"> </span>
|
|
476
|
+
<span class="cline-any cline-neutral"> </span>
|
|
477
|
+
<span class="cline-any cline-neutral"> </span>
|
|
478
|
+
<span class="cline-any cline-neutral"> </span>
|
|
479
|
+
<span class="cline-any cline-no"> </span>
|
|
480
|
+
<span class="cline-any cline-no"> </span>
|
|
481
|
+
<span class="cline-any cline-neutral"> </span>
|
|
482
|
+
<span class="cline-any cline-neutral"> </span>
|
|
483
|
+
<span class="cline-any cline-yes">1x</span>
|
|
484
|
+
<span class="cline-any cline-neutral"> </span>
|
|
485
|
+
<span class="cline-any cline-neutral"> </span>
|
|
486
|
+
<span class="cline-any cline-neutral"> </span>
|
|
487
|
+
<span class="cline-any cline-neutral"> </span>
|
|
488
|
+
<span class="cline-any cline-neutral"> </span>
|
|
489
|
+
<span class="cline-any cline-neutral"> </span>
|
|
490
|
+
<span class="cline-any cline-neutral"> </span>
|
|
491
|
+
<span class="cline-any cline-neutral"> </span>
|
|
492
|
+
<span class="cline-any cline-yes">1x</span>
|
|
493
|
+
<span class="cline-any cline-neutral"> </span>
|
|
494
|
+
<span class="cline-any cline-neutral"> </span>
|
|
495
|
+
<span class="cline-any cline-neutral"> </span>
|
|
496
|
+
<span class="cline-any cline-neutral"> </span>
|
|
497
|
+
<span class="cline-any cline-yes">1x</span>
|
|
498
|
+
<span class="cline-any cline-no"> </span>
|
|
499
|
+
<span class="cline-any cline-no"> </span>
|
|
500
|
+
<span class="cline-any cline-neutral"> </span>
|
|
501
|
+
<span class="cline-any cline-neutral"> </span>
|
|
502
|
+
<span class="cline-any cline-neutral"> </span>
|
|
503
|
+
<span class="cline-any cline-no"> </span>
|
|
504
|
+
<span class="cline-any cline-neutral"> </span>
|
|
505
|
+
<span class="cline-any cline-neutral"> </span>
|
|
506
|
+
<span class="cline-any cline-neutral"> </span>
|
|
507
|
+
<span class="cline-any cline-neutral"> </span>
|
|
508
|
+
<span class="cline-any cline-neutral"> </span>
|
|
509
|
+
<span class="cline-any cline-neutral"> </span>
|
|
510
|
+
<span class="cline-any cline-neutral"> </span>
|
|
511
|
+
<span class="cline-any cline-neutral"> </span>
|
|
512
|
+
<span class="cline-any cline-neutral"> </span>
|
|
513
|
+
<span class="cline-any cline-neutral"> </span>
|
|
514
|
+
<span class="cline-any cline-neutral"> </span>
|
|
515
|
+
<span class="cline-any cline-no"> </span>
|
|
516
|
+
<span class="cline-any cline-neutral"> </span>
|
|
517
|
+
<span class="cline-any cline-neutral"> </span>
|
|
518
|
+
<span class="cline-any cline-neutral"> </span>
|
|
519
|
+
<span class="cline-any cline-neutral"> </span>
|
|
520
|
+
<span class="cline-any cline-neutral"> </span>
|
|
521
|
+
<span class="cline-any cline-neutral"> </span>
|
|
522
|
+
<span class="cline-any cline-neutral"> </span>
|
|
523
|
+
<span class="cline-any cline-neutral"> </span>
|
|
524
|
+
<span class="cline-any cline-neutral"> </span>
|
|
525
|
+
<span class="cline-any cline-yes">1x</span>
|
|
526
|
+
<span class="cline-any cline-no"> </span>
|
|
527
|
+
<span class="cline-any cline-no"> </span>
|
|
528
|
+
<span class="cline-any cline-no"> </span>
|
|
529
|
+
<span class="cline-any cline-neutral"> </span>
|
|
530
|
+
<span class="cline-any cline-neutral"> </span>
|
|
531
|
+
<span class="cline-any cline-no"> </span>
|
|
532
|
+
<span class="cline-any cline-no"> </span>
|
|
533
|
+
<span class="cline-any cline-no"> </span>
|
|
534
|
+
<span class="cline-any cline-neutral"> </span>
|
|
535
|
+
<span class="cline-any cline-no"> </span>
|
|
536
|
+
<span class="cline-any cline-neutral"> </span>
|
|
537
|
+
<span class="cline-any cline-neutral"> </span>
|
|
538
|
+
<span class="cline-any cline-neutral"> </span>
|
|
539
|
+
<span class="cline-any cline-neutral"> </span>
|
|
540
|
+
<span class="cline-any cline-neutral"> </span>
|
|
541
|
+
<span class="cline-any cline-neutral"> </span>
|
|
542
|
+
<span class="cline-any cline-neutral"> </span>
|
|
543
|
+
<span class="cline-any cline-yes">1x</span>
|
|
544
|
+
<span class="cline-any cline-no"> </span>
|
|
545
|
+
<span class="cline-any cline-no"> </span>
|
|
546
|
+
<span class="cline-any cline-neutral"> </span>
|
|
547
|
+
<span class="cline-any cline-neutral"> </span>
|
|
548
|
+
<span class="cline-any cline-neutral"> </span>
|
|
549
|
+
<span class="cline-any cline-neutral"> </span>
|
|
550
|
+
<span class="cline-any cline-neutral"> </span>
|
|
551
|
+
<span class="cline-any cline-neutral"> </span>
|
|
552
|
+
<span class="cline-any cline-neutral"> </span>
|
|
553
|
+
<span class="cline-any cline-neutral"> </span>
|
|
554
|
+
<span class="cline-any cline-neutral"> </span>
|
|
555
|
+
<span class="cline-any cline-yes">1x</span>
|
|
556
|
+
<span class="cline-any cline-no"> </span>
|
|
557
|
+
<span class="cline-any cline-no"> </span>
|
|
558
|
+
<span class="cline-any cline-no"> </span>
|
|
559
|
+
<span class="cline-any cline-no"> </span>
|
|
560
|
+
<span class="cline-any cline-neutral"> </span>
|
|
561
|
+
<span class="cline-any cline-neutral"> </span>
|
|
562
|
+
<span class="cline-any cline-no"> </span>
|
|
563
|
+
<span class="cline-any cline-no"> </span>
|
|
564
|
+
<span class="cline-any cline-neutral"> </span>
|
|
565
|
+
<span class="cline-any cline-neutral"> </span>
|
|
566
|
+
<span class="cline-any cline-neutral"> </span>
|
|
567
|
+
<span class="cline-any cline-neutral"> </span>
|
|
568
|
+
<span class="cline-any cline-no"> </span>
|
|
569
|
+
<span class="cline-any cline-neutral"> </span>
|
|
570
|
+
<span class="cline-any cline-neutral"> </span>
|
|
571
|
+
<span class="cline-any cline-neutral"> </span>
|
|
572
|
+
<span class="cline-any cline-neutral"> </span>
|
|
573
|
+
<span class="cline-any cline-neutral"> </span>
|
|
574
|
+
<span class="cline-any cline-neutral"> </span>
|
|
575
|
+
<span class="cline-any cline-neutral"> </span>
|
|
576
|
+
<span class="cline-any cline-yes">1x</span>
|
|
577
|
+
<span class="cline-any cline-neutral"> </span>
|
|
578
|
+
<span class="cline-any cline-neutral"> </span>
|
|
579
|
+
<span class="cline-any cline-neutral"> </span>
|
|
580
|
+
<span class="cline-any cline-neutral"> </span>
|
|
581
|
+
<span class="cline-any cline-neutral"> </span>
|
|
582
|
+
<span class="cline-any cline-neutral"> </span>
|
|
583
|
+
<span class="cline-any cline-neutral"> </span>
|
|
584
|
+
<span class="cline-any cline-no"> </span>
|
|
585
|
+
<span class="cline-any cline-no"> </span>
|
|
586
|
+
<span class="cline-any cline-neutral"> </span>
|
|
587
|
+
<span class="cline-any cline-neutral"> </span>
|
|
588
|
+
<span class="cline-any cline-neutral"> </span>
|
|
589
|
+
<span class="cline-any cline-neutral"> </span>
|
|
590
|
+
<span class="cline-any cline-neutral"> </span>
|
|
591
|
+
<span class="cline-any cline-neutral"> </span>
|
|
592
|
+
<span class="cline-any cline-neutral"> </span>
|
|
593
|
+
<span class="cline-any cline-neutral"> </span>
|
|
594
|
+
<span class="cline-any cline-neutral"> </span>
|
|
595
|
+
<span class="cline-any cline-neutral"> </span>
|
|
596
|
+
<span class="cline-any cline-neutral"> </span>
|
|
597
|
+
<span class="cline-any cline-neutral"> </span>
|
|
598
|
+
<span class="cline-any cline-yes">1x</span>
|
|
599
|
+
<span class="cline-any cline-neutral"> </span>
|
|
600
|
+
<span class="cline-any cline-neutral"> </span>
|
|
601
|
+
<span class="cline-any cline-neutral"> </span>
|
|
602
|
+
<span class="cline-any cline-neutral"> </span>
|
|
603
|
+
<span class="cline-any cline-neutral"> </span>
|
|
604
|
+
<span class="cline-any cline-neutral"> </span>
|
|
605
|
+
<span class="cline-any cline-neutral"> </span>
|
|
606
|
+
<span class="cline-any cline-neutral"> </span>
|
|
607
|
+
<span class="cline-any cline-neutral"> </span>
|
|
608
|
+
<span class="cline-any cline-neutral"> </span>
|
|
609
|
+
<span class="cline-any cline-neutral"> </span>
|
|
610
|
+
<span class="cline-any cline-neutral"> </span>
|
|
611
|
+
<span class="cline-any cline-neutral"> </span>
|
|
612
|
+
<span class="cline-any cline-neutral"> </span>
|
|
613
|
+
<span class="cline-any cline-neutral"> </span>
|
|
614
|
+
<span class="cline-any cline-neutral"> </span>
|
|
615
|
+
<span class="cline-any cline-neutral"> </span>
|
|
616
|
+
<span class="cline-any cline-neutral"> </span>
|
|
617
|
+
<span class="cline-any cline-neutral"> </span>
|
|
618
|
+
<span class="cline-any cline-neutral"> </span>
|
|
619
|
+
<span class="cline-any cline-neutral"> </span>
|
|
620
|
+
<span class="cline-any cline-neutral"> </span>
|
|
621
|
+
<span class="cline-any cline-neutral"> </span>
|
|
622
|
+
<span class="cline-any cline-neutral"> </span>
|
|
623
|
+
<span class="cline-any cline-neutral"> </span>
|
|
624
|
+
<span class="cline-any cline-neutral"> </span>
|
|
625
|
+
<span class="cline-any cline-neutral"> </span>
|
|
626
|
+
<span class="cline-any cline-neutral"> </span>
|
|
627
|
+
<span class="cline-any cline-neutral"> </span>
|
|
628
|
+
<span class="cline-any cline-neutral"> </span>
|
|
629
|
+
<span class="cline-any cline-neutral"> </span>
|
|
630
|
+
<span class="cline-any cline-neutral"> </span>
|
|
631
|
+
<span class="cline-any cline-yes">1x</span>
|
|
632
|
+
<span class="cline-any cline-no"> </span>
|
|
633
|
+
<span class="cline-any cline-neutral"> </span>
|
|
634
|
+
<span class="cline-any cline-neutral"> </span>
|
|
635
|
+
<span class="cline-any cline-neutral"> </span>
|
|
636
|
+
<span class="cline-any cline-neutral"> </span>
|
|
637
|
+
<span class="cline-any cline-neutral"> </span>
|
|
638
|
+
<span class="cline-any cline-neutral"> </span>
|
|
639
|
+
<span class="cline-any cline-neutral"> </span>
|
|
640
|
+
<span class="cline-any cline-neutral"> </span>
|
|
641
|
+
<span class="cline-any cline-neutral"> </span>
|
|
642
|
+
<span class="cline-any cline-neutral"> </span>
|
|
643
|
+
<span class="cline-any cline-neutral"> </span>
|
|
644
|
+
<span class="cline-any cline-yes">1x</span>
|
|
645
|
+
<span class="cline-any cline-no"> </span>
|
|
646
|
+
<span class="cline-any cline-no"> </span>
|
|
647
|
+
<span class="cline-any cline-no"> </span>
|
|
648
|
+
<span class="cline-any cline-no"> </span>
|
|
649
|
+
<span class="cline-any cline-neutral"> </span>
|
|
650
|
+
<span class="cline-any cline-no"> </span>
|
|
651
|
+
<span class="cline-any cline-no"> </span>
|
|
652
|
+
<span class="cline-any cline-neutral"> </span>
|
|
653
|
+
<span class="cline-any cline-neutral"> </span>
|
|
654
|
+
<span class="cline-any cline-no"> </span>
|
|
655
|
+
<span class="cline-any cline-neutral"> </span>
|
|
656
|
+
<span class="cline-any cline-neutral"> </span>
|
|
657
|
+
<span class="cline-any cline-neutral"> </span>
|
|
658
|
+
<span class="cline-any cline-neutral"> </span>
|
|
659
|
+
<span class="cline-any cline-neutral"> </span>
|
|
660
|
+
<span class="cline-any cline-neutral"> </span>
|
|
661
|
+
<span class="cline-any cline-neutral"> </span>
|
|
662
|
+
<span class="cline-any cline-yes">1x</span>
|
|
663
|
+
<span class="cline-any cline-no"> </span>
|
|
664
|
+
<span class="cline-any cline-neutral"> </span>
|
|
665
|
+
<span class="cline-any cline-neutral"> </span>
|
|
666
|
+
<span class="cline-any cline-neutral"> </span>
|
|
667
|
+
<span class="cline-any cline-neutral"> </span>
|
|
668
|
+
<span class="cline-any cline-neutral"> </span>
|
|
669
|
+
<span class="cline-any cline-neutral"> </span>
|
|
670
|
+
<span class="cline-any cline-neutral"> </span>
|
|
671
|
+
<span class="cline-any cline-neutral"> </span>
|
|
672
|
+
<span class="cline-any cline-neutral"> </span>
|
|
673
|
+
<span class="cline-any cline-neutral"> </span>
|
|
674
|
+
<span class="cline-any cline-neutral"> </span>
|
|
675
|
+
<span class="cline-any cline-neutral"> </span>
|
|
676
|
+
<span class="cline-any cline-neutral"> </span>
|
|
677
|
+
<span class="cline-any cline-neutral"> </span>
|
|
678
|
+
<span class="cline-any cline-neutral"> </span>
|
|
679
|
+
<span class="cline-any cline-neutral"> </span>
|
|
680
|
+
<span class="cline-any cline-neutral"> </span>
|
|
681
|
+
<span class="cline-any cline-neutral"> </span>
|
|
682
|
+
<span class="cline-any cline-neutral"> </span>
|
|
683
|
+
<span class="cline-any cline-neutral"> </span>
|
|
684
|
+
<span class="cline-any cline-neutral"> </span>
|
|
685
|
+
<span class="cline-any cline-neutral"> </span>
|
|
686
|
+
<span class="cline-any cline-neutral"> </span>
|
|
687
|
+
<span class="cline-any cline-neutral"> </span>
|
|
155
688
|
<span class="cline-any cline-yes">1x</span>
|
|
689
|
+
<span class="cline-any cline-no"> </span>
|
|
690
|
+
<span class="cline-any cline-no"> </span>
|
|
691
|
+
<span class="cline-any cline-no"> </span>
|
|
692
|
+
<span class="cline-any cline-neutral"> </span>
|
|
693
|
+
<span class="cline-any cline-neutral"> </span>
|
|
694
|
+
<span class="cline-any cline-yes">1x</span>
|
|
695
|
+
<span class="cline-any cline-neutral"> </span>
|
|
696
|
+
<span class="cline-any cline-neutral"> </span>
|
|
697
|
+
<span class="cline-any cline-neutral"> </span>
|
|
698
|
+
<span class="cline-any cline-neutral"> </span>
|
|
156
699
|
<span class="cline-any cline-neutral"> </span>
|
|
157
700
|
<span class="cline-any cline-neutral"> </span>
|
|
158
701
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -165,7 +708,29 @@
|
|
|
165
708
|
<span class="cline-any cline-neutral"> </span>
|
|
166
709
|
<span class="cline-any cline-neutral"> </span>
|
|
167
710
|
<span class="cline-any cline-neutral"> </span>
|
|
168
|
-
<span class="cline-any cline-neutral"> </span
|
|
711
|
+
<span class="cline-any cline-neutral"> </span>
|
|
712
|
+
<span class="cline-any cline-neutral"> </span>
|
|
713
|
+
<span class="cline-any cline-neutral"> </span>
|
|
714
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import cookie from 'cookie';
|
|
715
|
+
import {
|
|
716
|
+
AccountHomeIcon,
|
|
717
|
+
DashboardIcon,
|
|
718
|
+
FacilityBasedPreviewIcon,
|
|
719
|
+
HardshipIcon,
|
|
720
|
+
HelpSupportIcon,
|
|
721
|
+
ManageUsersIcon,
|
|
722
|
+
MyApplicationsIcon,
|
|
723
|
+
MyTestDataIcon,
|
|
724
|
+
PaymentIcon,
|
|
725
|
+
PhysicianCompareIcon,
|
|
726
|
+
StarIcon,
|
|
727
|
+
TargetIcon,
|
|
728
|
+
IndividualReporting,
|
|
729
|
+
ManageDocumentsIcon,
|
|
730
|
+
AuthorContentIcon,
|
|
731
|
+
} from '../../lib/SvgComponents';
|
|
732
|
+
|
|
733
|
+
const submissionsUrl = '/user/submissions';
|
|
169
734
|
const dashboardUrl = '/user/dashboard';
|
|
170
735
|
const manageUrl = '/user/manage-access';
|
|
171
736
|
const feedbackUrl = `${submissionsUrl}/feedback`;
|
|
@@ -173,6 +738,7 @@ const physicianCompareUrl = `${submissionsUrl}/doctors-clinicians-preview`;
|
|
|
173
738
|
const reportsPortalUrl = `${submissionsUrl}/reports`;
|
|
174
739
|
const facilityBasedPreviewBaseUrl = `${submissionsUrl}/facility-based-preview`;
|
|
175
740
|
const viewingToolUrl = '/user/helpdesk-viewing-tool';
|
|
741
|
+
const contentMgrDashboardUrl = '/user/content-management';
|
|
176
742
|
|
|
177
743
|
const performanceFeedbackUrl = <span class="fstat-no" title="function not covered" >(p</span>erformanceYear) => {
|
|
178
744
|
<span class="cstat-no" title="statement not covered" > if (performanceYear) {</span>
|
|
@@ -203,6 +769,252 @@ const handleNavigation = <span class="fstat-no" title="function not covered" >(e
|
|
|
203
769
|
});
|
|
204
770
|
};
|
|
205
771
|
|
|
772
|
+
/**
|
|
773
|
+
* Load icon by url
|
|
774
|
+
* @param {string} url
|
|
775
|
+
* @returns svg icon
|
|
776
|
+
*/
|
|
777
|
+
const getIcon = <span class="fstat-no" title="function not covered" >(u</span>rl, linkLabel) => {
|
|
778
|
+
const icons = <span class="cstat-no" title="statement not covered" >{</span>
|
|
779
|
+
[dashboardUrl]: DashboardIcon,
|
|
780
|
+
[feedbackUrl]: StarIcon,
|
|
781
|
+
[manageUrl]: ManageUsersIcon,
|
|
782
|
+
[physicianCompareUrl]: PhysicianCompareIcon,
|
|
783
|
+
[reportsPortalUrl]: HardshipIcon,
|
|
784
|
+
[submissionsUrl]: AccountHomeIcon,
|
|
785
|
+
[facilityBasedPreviewBaseUrl]: FacilityBasedPreviewIcon,
|
|
786
|
+
'/developers': HelpSupportIcon,
|
|
787
|
+
'/resources/help-and-support': HelpSupportIcon,
|
|
788
|
+
'/user/apm-incentive-payments': PaymentIcon,
|
|
789
|
+
'/user/applications': MyApplicationsIcon,
|
|
790
|
+
'/user/exception/#/landing': HardshipIcon,
|
|
791
|
+
'/user/targeted-review/#/landing': TargetIcon,
|
|
792
|
+
'/user/test-data': MyTestDataIcon,
|
|
793
|
+
'/user/self-nomination/#/landing': IndividualReporting,
|
|
794
|
+
'/user/reviewers': AccountHomeIcon,
|
|
795
|
+
'/reviewer/exception': HardshipIcon,
|
|
796
|
+
'/reviewer/targeted-review': TargetIcon,
|
|
797
|
+
'/self-nomination': IndividualReporting,
|
|
798
|
+
[contentMgrDashboardUrl]: AccountHomeIcon,
|
|
799
|
+
'Manage Documents': ManageDocumentsIcon,
|
|
800
|
+
'Author Content': AuthorContentIcon,
|
|
801
|
+
};
|
|
802
|
+
|
|
803
|
+
<span class="cstat-no" title="statement not covered" > if (linkLabel) <span class="cstat-no" title="statement not covered" >return icons[linkLabel];</span></span>
|
|
804
|
+
<span class="cstat-no" title="statement not covered" > return icons[url];</span>
|
|
805
|
+
};
|
|
806
|
+
|
|
807
|
+
const singleRoleContentMap = {
|
|
808
|
+
'QPP Content Management - Author': 'contentManager',
|
|
809
|
+
'QPP Content Management - Approver': 'contentManager',
|
|
810
|
+
'QPP Content Management - Admin': 'contentManager',
|
|
811
|
+
'QPP Front-end - Author': 'contentManager',
|
|
812
|
+
'QPP Self-Nomination': 'internalReviewers',
|
|
813
|
+
'QPP Targeted Review & Exceptions': 'internalReviewers',
|
|
814
|
+
};
|
|
815
|
+
|
|
816
|
+
const multiRoleContentMap = {
|
|
817
|
+
Reviewer: 'internalReviewers',
|
|
818
|
+
'Content Manager': 'contentManager',
|
|
819
|
+
};
|
|
820
|
+
|
|
821
|
+
const replaceDefaultContentMgrLinks = <span class="fstat-no" title="function not covered" >(d</span>efaultContent) => {
|
|
822
|
+
const host = <span class="cstat-no" title="statement not covered" >window.location.host;</span>
|
|
823
|
+
const updatedDefaultContent = <span class="cstat-no" title="statement not covered" >{</span>
|
|
824
|
+
...defaultContent,
|
|
825
|
+
contentManager: [
|
|
826
|
+
defaultContent.contentManager.find(
|
|
827
|
+
<span class="fstat-no" title="function not covered" > (o</span>bj) => <span class="cstat-no" title="statement not covered" >obj.label === 'Dashboard Home'</span>
|
|
828
|
+
),
|
|
829
|
+
{
|
|
830
|
+
url: `${host}.qpp.cms.gov/cm/`,
|
|
831
|
+
label: 'Manage Documents',
|
|
832
|
+
},
|
|
833
|
+
{
|
|
834
|
+
url: `${host}.qpp.cms.gov/content-management/`,
|
|
835
|
+
label: 'Author Content',
|
|
836
|
+
},
|
|
837
|
+
],
|
|
838
|
+
};
|
|
839
|
+
<span class="cstat-no" title="statement not covered" > return updatedDefaultContent;</span>
|
|
840
|
+
};
|
|
841
|
+
|
|
842
|
+
/**
|
|
843
|
+
* Load the side nav content for the given role
|
|
844
|
+
* @param {sting} roleName role of given user from internalReviewerNames
|
|
845
|
+
* @param {object} navContent object of side nav links by role (levelOneContent & defaultContent)
|
|
846
|
+
* @returns {array} returns an array of objects (side nav menu links) from levelOneContent
|
|
847
|
+
* || defaultContent
|
|
848
|
+
*/
|
|
849
|
+
const loadSideNavContent = <span class="fstat-no" title="function not covered" >(r</span>oleName, navContent, isMultiRoleUser = <span class="branch-0 cbranch-no" title="branch not covered" >false)</span> => {
|
|
850
|
+
const { levelOneContent, defaultContent } = <span class="cstat-no" title="statement not covered" >navContent;</span>
|
|
851
|
+
const updatedDefaultContent = <span class="cstat-no" title="statement not covered" >replaceDefaultContentMgrLinks(defaultContent);</span>
|
|
852
|
+
const roleContentMap = <span class="cstat-no" title="statement not covered" >isMultiRoleUser</span>
|
|
853
|
+
? multiRoleContentMap
|
|
854
|
+
: singleRoleContentMap;
|
|
855
|
+
const contentByRole = <span class="cstat-no" title="statement not covered" >roleContentMap[roleName];</span>
|
|
856
|
+
<span class="cstat-no" title="statement not covered" > if (levelOneContent) {</span>
|
|
857
|
+
<span class="cstat-no" title="statement not covered" > return levelOneContent[contentByRole] || levelOneContent.default;</span>
|
|
858
|
+
}
|
|
859
|
+
<span class="cstat-no" title="statement not covered" > return updatedDefaultContent[contentByRole] || updatedDefaultContent.default;</span>
|
|
860
|
+
};
|
|
861
|
+
|
|
862
|
+
/**
|
|
863
|
+
* Check if user is currently impersonating
|
|
864
|
+
* @param {string} docCookie document cookie
|
|
865
|
+
* @returns {boolean}
|
|
866
|
+
*/
|
|
867
|
+
const isImpersonating = <span class="fstat-no" title="function not covered" >(d</span>ocCookie) => {
|
|
868
|
+
const parsedCookies = <span class="cstat-no" title="statement not covered" >cookie.parse(docCookie);</span>
|
|
869
|
+
<span class="cstat-no" title="statement not covered" > return (</span>
|
|
870
|
+
parsedCookies.qpp_can_impersonate && parsedCookies.qpp_impersonated_user
|
|
871
|
+
);
|
|
872
|
+
};
|
|
873
|
+
|
|
874
|
+
/**
|
|
875
|
+
* Check if user has multiple roles, used to display Select Role dropdown
|
|
876
|
+
* @param {string} docCookie document cookie
|
|
877
|
+
* @returns {boolean}
|
|
878
|
+
*/
|
|
879
|
+
const isMultiRoleUser = <span class="fstat-no" title="function not covered" >(d</span>ocCookie) => {
|
|
880
|
+
const { qpp_cms_internal_authorized } = <span class="cstat-no" title="statement not covered" >cookie.parse(docCookie);</span>
|
|
881
|
+
let internalAuthz = <span class="cstat-no" title="statement not covered" >[];</span>
|
|
882
|
+
<span class="cstat-no" title="statement not covered" > if (qpp_cms_internal_authorized) {</span>
|
|
883
|
+
<span class="cstat-no" title="statement not covered" > internalAuthz = JSON.parse(qpp_cms_internal_authorized);</span>
|
|
884
|
+
}
|
|
885
|
+
// Filter out test internalCms authz
|
|
886
|
+
const filteredInternalAuthz = <span class="cstat-no" title="statement not covered" >internalAuthz.filter(<span class="fstat-no" title="function not covered" >(i</span>nternalAuth) => {</span>
|
|
887
|
+
<span class="cstat-no" title="statement not covered" > return (</span>
|
|
888
|
+
internalAuth !== 'Test internalCms Resource' &&
|
|
889
|
+
internalAuth !== 'Test internalCms Resource 2'
|
|
890
|
+
);
|
|
891
|
+
});
|
|
892
|
+
<span class="cstat-no" title="statement not covered" > return filteredInternalAuthz.length > 1;</span>
|
|
893
|
+
};
|
|
894
|
+
|
|
895
|
+
/**
|
|
896
|
+
* Transform cookie values to permissions object
|
|
897
|
+
* @param {object} cookies parsed document.cookie values
|
|
898
|
+
* @returns {object}
|
|
899
|
+
*/
|
|
900
|
+
const transformCookieValues = <span class="fstat-no" title="function not covered" >(c</span>ookies) => {
|
|
901
|
+
const {
|
|
902
|
+
qpp_can_impersonate,
|
|
903
|
+
qpp_has_authorizations,
|
|
904
|
+
user_has_apm_payments,
|
|
905
|
+
qpp_cms_internal_authorized,
|
|
906
|
+
qpp_ehr_authorized,
|
|
907
|
+
qpp_has_non_registry_authorizations,
|
|
908
|
+
} = <span class="cstat-no" title="statement not covered" >cookies;</span>
|
|
909
|
+
<span class="cstat-no" title="statement not covered" > return {</span>
|
|
910
|
+
canImpersonate: qpp_can_impersonate === 'true',
|
|
911
|
+
hasAuthorizations: qpp_has_authorizations === 'true',
|
|
912
|
+
hasApmPayments: user_has_apm_payments === 'true',
|
|
913
|
+
internalReviewerNames: qpp_cms_internal_authorized
|
|
914
|
+
? JSON.parse(qpp_cms_internal_authorized)
|
|
915
|
+
: [],
|
|
916
|
+
ehrAuthorized: qpp_ehr_authorized === 'true',
|
|
917
|
+
hasNonRegistryAuthorizations:
|
|
918
|
+
qpp_has_non_registry_authorizations === 'true',
|
|
919
|
+
};
|
|
920
|
+
};
|
|
921
|
+
|
|
922
|
+
const permissionsByRole = {
|
|
923
|
+
'QPP User': {
|
|
924
|
+
canImpersonate: false,
|
|
925
|
+
hasAuthorizations: true,
|
|
926
|
+
hasApmPayments: true,
|
|
927
|
+
},
|
|
928
|
+
Reviewer: {
|
|
929
|
+
hasAuthorizations: false,
|
|
930
|
+
hasApmPaymentss: false,
|
|
931
|
+
},
|
|
932
|
+
'Helpdesk Viewer': {
|
|
933
|
+
hasAuthorizations: false,
|
|
934
|
+
hasApmPayments: false,
|
|
935
|
+
hasNonRegistryAuthorizations: false,
|
|
936
|
+
internalReviewerNames: ['QPP Helpdesk'],
|
|
937
|
+
},
|
|
938
|
+
// Helpdesk role && impersonating (use impersonated user authz values)
|
|
939
|
+
Impersonation: {
|
|
940
|
+
internalReviewerNames: ['QPP Helpdesk'],
|
|
941
|
+
},
|
|
942
|
+
'Content Manager': {
|
|
943
|
+
hasAuthorizations: false,
|
|
944
|
+
hasApmPaymentss: false,
|
|
945
|
+
hasNonRegistryAuthorizations: false,
|
|
946
|
+
},
|
|
947
|
+
};
|
|
948
|
+
|
|
949
|
+
/**
|
|
950
|
+
* Return permissions by role
|
|
951
|
+
* @param {string} selectedRole selected user role
|
|
952
|
+
* @param {object} permissionValues default permission values from transformed parsed cookie
|
|
953
|
+
* @returns {object}
|
|
954
|
+
*/
|
|
955
|
+
const loadUserPermissionsByRole = <span class="fstat-no" title="function not covered" >(s</span>electedRole, permissionValues) => {
|
|
956
|
+
<span class="cstat-no" title="statement not covered" > return {</span>
|
|
957
|
+
...permissionValues,
|
|
958
|
+
...permissionsByRole[selectedRole],
|
|
959
|
+
};
|
|
960
|
+
};
|
|
961
|
+
|
|
962
|
+
/**
|
|
963
|
+
* Helper fn to return user permissions/properties from cookies set on login
|
|
964
|
+
* @param {string} docCookie cookie values set on login
|
|
965
|
+
* @param {string} selectedRole string of selected role if user has multiple roles
|
|
966
|
+
* @returns {object}
|
|
967
|
+
*/
|
|
968
|
+
const loadUserPermissions = <span class="fstat-no" title="function not covered" >(d</span>ocCookie, selectedRole) => {
|
|
969
|
+
const parsedCookies = <span class="cstat-no" title="statement not covered" >cookie.parse(docCookie);</span>
|
|
970
|
+
const permissionValues = <span class="cstat-no" title="statement not covered" >transformCookieValues(parsedCookies);</span>
|
|
971
|
+
const impersonating = <span class="cstat-no" title="statement not covered" >isImpersonating(docCookie);</span>
|
|
972
|
+
const role = <span class="cstat-no" title="statement not covered" >impersonating ? 'Impersonation' : selectedRole;</span>
|
|
973
|
+
|
|
974
|
+
<span class="cstat-no" title="statement not covered" > if (role) {</span>
|
|
975
|
+
<span class="cstat-no" title="statement not covered" > return loadUserPermissionsByRole(role, permissionValues);</span>
|
|
976
|
+
}
|
|
977
|
+
|
|
978
|
+
<span class="cstat-no" title="statement not covered" > return permissionValues;</span>
|
|
979
|
+
};
|
|
980
|
+
|
|
981
|
+
/**
|
|
982
|
+
* Return map of link conditionals based on user cookies for side nav
|
|
983
|
+
* @param {object} userPermissions user permissions/properties derived from cookies set on login
|
|
984
|
+
* @returns {object}
|
|
985
|
+
*/
|
|
986
|
+
const getUrlConditionMap = <span class="fstat-no" title="function not covered" >(u</span>serPermissions) => {
|
|
987
|
+
<span class="cstat-no" title="statement not covered" > return {</span>
|
|
988
|
+
[dashboardUrl]: userPermissions.hasAuthorizations,
|
|
989
|
+
[feedbackUrl]: userPermissions.hasAuthorizations,
|
|
990
|
+
'/user/apm-incentive-payments': userPermissions.hasApmPayments,
|
|
991
|
+
[physicianCompareUrl]: userPermissions.hasNonRegistryAuthorizations,
|
|
992
|
+
[reportsPortalUrl]: userPermissions.hasAuthorizations,
|
|
993
|
+
[facilityBasedPreviewBaseUrl]: userPermissions.hasAuthorizations,
|
|
994
|
+
'/user/helpdesk-viewing-tool': userPermissions.canImpersonate,
|
|
995
|
+
'/reviewer/exception': userPermissions.internalReviewerNames?.includes(
|
|
996
|
+
'QPP Targeted Review & Exceptions'
|
|
997
|
+
),
|
|
998
|
+
'/reviewer/targeted-review':
|
|
999
|
+
userPermissions.internalReviewerNames?.includes(
|
|
1000
|
+
'QPP Targeted Review & Exceptions'
|
|
1001
|
+
),
|
|
1002
|
+
'/self-nomination': userPermissions.internalReviewerNames?.includes(
|
|
1003
|
+
'QPP Self-Nomination'
|
|
1004
|
+
),
|
|
1005
|
+
|
|
1006
|
+
// dev pre
|
|
1007
|
+
'/user/applications': userPermissions.ehrAuthorized,
|
|
1008
|
+
'/user/test-data': userPermissions.ehrAuthorized,
|
|
1009
|
+
};
|
|
1010
|
+
};
|
|
1011
|
+
|
|
1012
|
+
const isImpersonationLink = <span class="fstat-no" title="function not covered" >(d</span>ocCookie, linkLabel) => {
|
|
1013
|
+
<span class="cstat-no" title="statement not covered" > if (!isImpersonating(docCookie)) <span class="cstat-no" title="statement not covered" >return;</span></span>
|
|
1014
|
+
const helpdeskLinks = <span class="cstat-no" title="statement not covered" >['Account Home', 'Manage Access', 'Help and Support'];</span>
|
|
1015
|
+
<span class="cstat-no" title="statement not covered" > return !helpdeskLinks.includes(linkLabel);</span>
|
|
1016
|
+
};
|
|
1017
|
+
|
|
206
1018
|
module.exports = {
|
|
207
1019
|
submissionsUrl,
|
|
208
1020
|
dashboardUrl,
|
|
@@ -215,6 +1027,13 @@ module.exports = {
|
|
|
215
1027
|
reportsPortalUrl,
|
|
216
1028
|
facilityBasedPreviewBaseUrl,
|
|
217
1029
|
viewingToolUrl,
|
|
1030
|
+
loadUserPermissions,
|
|
1031
|
+
getUrlConditionMap,
|
|
1032
|
+
isMultiRoleUser,
|
|
1033
|
+
getIcon,
|
|
1034
|
+
isImpersonating,
|
|
1035
|
+
isImpersonationLink,
|
|
1036
|
+
loadSideNavContent,
|
|
218
1037
|
};
|
|
219
1038
|
</pre></td></tr></table></pre>
|
|
220
1039
|
|
|
@@ -223,7 +1042,7 @@ module.exports = {
|
|
|
223
1042
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
224
1043
|
Code coverage generated by
|
|
225
1044
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
226
|
-
at
|
|
1045
|
+
at Sun Sep 11 2022 11:18:36 GMT-0700 (Pacific Daylight Time)
|
|
227
1046
|
</div>
|
|
228
1047
|
<script src="../../prettify.js"></script>
|
|
229
1048
|
<script>
|