qpp-style 9.7.2 → 9.8.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.
- package/components/Footer/FooterUI.jsx +122 -108
- package/components/Header/HeaderContainer.jsx +4 -1
- package/components/Header/HeaderUI.jsx +5 -0
- package/components/Header/header.js +2 -0
- package/components/Search/index.js +2 -2
- package/components/SideNav/Links/NavLinkDrawer.jsx +15 -1
- 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 +24 -23
- package/styles/qppds/base/_icon.scss +2 -0
- package/styles/qppds/components/_link.scss +2 -2
- package/styles/qppds/components/_search.scss +3 -1
- package/styles/qppds/components/_tabs.scss +1 -1
- package/styles/qppds/components/sidebar/_links.scss +4 -1
|
@@ -12,11 +12,16 @@ const infoTipLabel =
|
|
|
12
12
|
|
|
13
13
|
const FooterUI = (props) => {
|
|
14
14
|
const isNewFooter = props.isNewFooter;
|
|
15
|
+
const isIESupportPage = props.isIESupportPage;
|
|
15
16
|
const signUpNowLink = props.showHcdResearch
|
|
16
17
|
? '/about/hcd-research'
|
|
17
18
|
: 'mailto:QPPUserResearch@cms.hhs.gov?subject=Sign up for feedback sessions&body=Please let us know your role and how many Tax Identification Numbers (TINs) you represent. Don’t send us your actual TINs, that is confidential information that should not be shared with this email address. If you do not represent a practice, let us know what work you do in connection to QPP.';
|
|
18
19
|
const [listServ, setListServ] = useState(false);
|
|
19
20
|
|
|
21
|
+
const setLink = (link) => {
|
|
22
|
+
return isIESupportPage ? '/' : link;
|
|
23
|
+
};
|
|
24
|
+
|
|
20
25
|
// The footer content is populated with the following priority order:
|
|
21
26
|
// 1. Use the footer content in localStorage if it's there
|
|
22
27
|
// 2. If not, make a call to get it from the QPPFE endpoint. Hydrate the localStorage item with the response.
|
|
@@ -55,123 +60,131 @@ const FooterUI = (props) => {
|
|
|
55
60
|
if (isNewFooter) {
|
|
56
61
|
return (
|
|
57
62
|
<>
|
|
58
|
-
|
|
59
|
-
<div className="
|
|
60
|
-
<
|
|
61
|
-
|
|
62
|
-
<
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
63
|
+
{!isIESupportPage && (
|
|
64
|
+
<div className="feedback-session-sign-up">
|
|
65
|
+
<div className="responsive-container">
|
|
66
|
+
<hr />
|
|
67
|
+
<p>
|
|
68
|
+
<strong>Help shape the future of QPP.</strong> Participate in a
|
|
69
|
+
user feedback session.{' '}
|
|
70
|
+
<a className="email-note-link" href={signUpNowLink}>
|
|
71
|
+
Sign up now
|
|
72
|
+
</a>
|
|
73
|
+
</p>
|
|
74
|
+
</div>
|
|
68
75
|
</div>
|
|
69
|
-
|
|
76
|
+
)}
|
|
70
77
|
<footer className="global-footer">
|
|
71
78
|
<div className="build-version" id="build-version">
|
|
72
79
|
{props.buildVersion}
|
|
73
80
|
</div>
|
|
74
81
|
|
|
75
82
|
<div className="responsive-container">
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
<
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
<
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
83
|
+
<>
|
|
84
|
+
{!isIESupportPage && (
|
|
85
|
+
<div className="global-footer-container">
|
|
86
|
+
<div className="footer-resources">
|
|
87
|
+
<p className="sub-title">Resources</p>
|
|
88
|
+
<ul>
|
|
89
|
+
<li>
|
|
90
|
+
<a
|
|
91
|
+
href="/about/resource-library"
|
|
92
|
+
aria-label="Resource Library"
|
|
93
|
+
data-track-category="FooterNav"
|
|
94
|
+
data-track-action="OpenEducationAndTools"
|
|
95
|
+
data-track-label="Education and Tools"
|
|
96
|
+
>
|
|
97
|
+
Resource Library
|
|
98
|
+
</a>
|
|
99
|
+
</li>
|
|
100
|
+
<li>
|
|
101
|
+
<a
|
|
102
|
+
href="/resources/help-and-support"
|
|
103
|
+
aria-label="Help and Support"
|
|
104
|
+
data-track-category="FooterNav"
|
|
105
|
+
data-track-action="OpenHelpAndSupport"
|
|
106
|
+
data-track-label="Help and Support"
|
|
107
|
+
>
|
|
108
|
+
Help and Support
|
|
109
|
+
</a>
|
|
110
|
+
</li>
|
|
111
|
+
<li>
|
|
112
|
+
<a
|
|
113
|
+
href="/about/small-underserved-rural-practices"
|
|
114
|
+
aria-label="Support for Small Practices"
|
|
115
|
+
data-track-category="FooterNav"
|
|
116
|
+
data-track-action="OpenSupportSmallPractices"
|
|
117
|
+
data-track-label="Support for Small Practices"
|
|
118
|
+
>
|
|
119
|
+
Support for Small Practices
|
|
120
|
+
</a>
|
|
121
|
+
</li>
|
|
122
|
+
<li>
|
|
123
|
+
<a
|
|
124
|
+
href="/developers"
|
|
125
|
+
aria-label="Developer Tools"
|
|
126
|
+
data-track-category="FooterNav"
|
|
127
|
+
data-track-action="OpenDeveloperTools"
|
|
128
|
+
data-track-label="Quality Payment Program"
|
|
129
|
+
>
|
|
130
|
+
Developer Tools
|
|
131
|
+
</a>
|
|
132
|
+
</li>
|
|
133
|
+
<li>
|
|
134
|
+
<a
|
|
135
|
+
href="/glossary"
|
|
136
|
+
aria-label="Glossary"
|
|
137
|
+
data-track-category="FooterNav"
|
|
138
|
+
data-track-action="OpenGlossary"
|
|
139
|
+
data-track-label="Glossary"
|
|
140
|
+
>
|
|
141
|
+
Glossary
|
|
142
|
+
</a>
|
|
143
|
+
</li>
|
|
144
|
+
</ul>
|
|
145
|
+
</div>
|
|
146
|
+
<div className="footer-contact-cms">
|
|
147
|
+
<p className="sub-title">Contact CMS</p>
|
|
148
|
+
<p className="contact-title">By Phone:</p>
|
|
149
|
+
<p>Monday - Friday 8 a.m - 8 p.m ET</p>
|
|
150
|
+
<p>
|
|
151
|
+
1-866-288-8292 (TRS: 711)
|
|
152
|
+
<span className="footer-trs-infotip">
|
|
153
|
+
<InfoTip label={infoTipLabel} />
|
|
154
|
+
</span>
|
|
155
|
+
</p>
|
|
156
|
+
|
|
157
|
+
<p className="contact-title">By Email:</p>
|
|
158
|
+
<p>
|
|
159
|
+
<a
|
|
160
|
+
aria-label="QPP@cms.hhs.gov"
|
|
161
|
+
href="mailto:QPP@cms.hhs.gov"
|
|
162
|
+
className="email-link"
|
|
163
|
+
>
|
|
164
|
+
QPP@cms.hhs.gov
|
|
165
|
+
</a>
|
|
166
|
+
</p>
|
|
167
|
+
</div>
|
|
168
|
+
<div className="footer-social-newsletter">
|
|
169
|
+
<p className="sub-title">Stay Connected</p>
|
|
170
|
+
<SocialLinks />
|
|
171
|
+
<p className="sub-title">
|
|
172
|
+
{listServ
|
|
173
|
+
? 'Sign Up for the QPP Listserv'
|
|
174
|
+
: 'Sign Up for the QPP Newsletter'}
|
|
175
|
+
</p>
|
|
176
|
+
<Subscribe />
|
|
177
|
+
</div>
|
|
178
|
+
</div>
|
|
179
|
+
)}
|
|
180
|
+
<hr />
|
|
181
|
+
</>
|
|
182
|
+
|
|
170
183
|
<div className="other-links">
|
|
171
184
|
<ul className="small">
|
|
172
185
|
<li>
|
|
173
186
|
<a
|
|
174
|
-
href=
|
|
187
|
+
href={setLink('/privacy')}
|
|
175
188
|
aria-label="Notice of Privacy and Disclaimer"
|
|
176
189
|
data-track-category="FooterNav"
|
|
177
190
|
data-track-action="OpenPrivacyDisclaimer"
|
|
@@ -183,7 +196,7 @@ const FooterUI = (props) => {
|
|
|
183
196
|
<li className="divider"></li>{' '}
|
|
184
197
|
<li>
|
|
185
198
|
<a
|
|
186
|
-
href=
|
|
199
|
+
href={setLink('/accessibility')}
|
|
187
200
|
aria-label="Accessibility"
|
|
188
201
|
data-track-category="FooterNav"
|
|
189
202
|
data-track-action="OpenAccessibility"
|
|
@@ -199,7 +212,7 @@ const FooterUI = (props) => {
|
|
|
199
212
|
className="adobe-link"
|
|
200
213
|
rel="noopener noreferrer"
|
|
201
214
|
target="_blank"
|
|
202
|
-
href=
|
|
215
|
+
href={setLink('https://get.adobe.com/reader')}
|
|
203
216
|
data-track-category="FooterNav"
|
|
204
217
|
data-track-action="DownloadAdobeReader"
|
|
205
218
|
data-track-label="AdobeReader"
|
|
@@ -249,6 +262,7 @@ FooterUI.propTypes = {
|
|
|
249
262
|
buildVersion: PropTypes.string,
|
|
250
263
|
isFullWidth: PropTypes.bool,
|
|
251
264
|
isNewFooter: PropTypes.bool,
|
|
265
|
+
isIESupportPage: PropTypes.bool,
|
|
252
266
|
showHcdResearch: PropTypes.bool,
|
|
253
267
|
};
|
|
254
268
|
|
|
@@ -19,6 +19,7 @@ const HeaderContainer = ({
|
|
|
19
19
|
includeSkipToSidebar,
|
|
20
20
|
showCancelButton,
|
|
21
21
|
skipToContentId,
|
|
22
|
+
isIESupportPage,
|
|
22
23
|
}) => (
|
|
23
24
|
<>
|
|
24
25
|
<a
|
|
@@ -37,7 +38,7 @@ const HeaderContainer = ({
|
|
|
37
38
|
Skip to sidebar
|
|
38
39
|
</a>
|
|
39
40
|
)}
|
|
40
|
-
<NotificationBanner />
|
|
41
|
+
{!isIESupportPage && <NotificationBanner />}
|
|
41
42
|
<header id="top" className={showCancelButton ? 'show-cancel-button' : ''}>
|
|
42
43
|
<HeaderLogo />
|
|
43
44
|
{children}
|
|
@@ -50,11 +51,13 @@ HeaderContainer.propTypes = {
|
|
|
50
51
|
includeSkipToSidebar: PropTypes.bool,
|
|
51
52
|
showCancelButton: PropTypes.bool,
|
|
52
53
|
skipToContentId: PropTypes.string,
|
|
54
|
+
isIESupportPage: PropTypes.bool,
|
|
53
55
|
};
|
|
54
56
|
HeaderContainer.defaultProps = {
|
|
55
57
|
includeSkipToSidebar: false,
|
|
56
58
|
showCancelButton: false,
|
|
57
59
|
skipToContentId: null,
|
|
60
|
+
isIESupportPage: false,
|
|
58
61
|
};
|
|
59
62
|
|
|
60
63
|
export default HeaderContainer;
|
|
@@ -24,6 +24,7 @@ const HeaderUI = ({
|
|
|
24
24
|
showFacilityBasedPreviewLink,
|
|
25
25
|
skipToContentId,
|
|
26
26
|
RouterLink,
|
|
27
|
+
isIESupportPage,
|
|
27
28
|
}) => {
|
|
28
29
|
const [isMobileMenuExpanded, setIsMobileMenuExpanded] = useState(false);
|
|
29
30
|
|
|
@@ -72,6 +73,7 @@ const HeaderUI = ({
|
|
|
72
73
|
return (
|
|
73
74
|
<HeaderStateProvider RouterLink={RouterLink}>
|
|
74
75
|
<HeaderContainer
|
|
76
|
+
isIESupportPage={isIESupportPage}
|
|
75
77
|
skipToContentId={skipToContentId}
|
|
76
78
|
includeSkipToSidebar={includeSkipToSidebar}
|
|
77
79
|
>
|
|
@@ -92,6 +94,7 @@ const HeaderUI = ({
|
|
|
92
94
|
return (
|
|
93
95
|
<HeaderStateProvider RouterLink={RouterLink}>
|
|
94
96
|
<HeaderContainer
|
|
97
|
+
isIESupportPage={isIESupportPage}
|
|
95
98
|
skipToContentId={skipToContentId}
|
|
96
99
|
includeSkipToSidebar={includeSkipToSidebar}
|
|
97
100
|
>
|
|
@@ -140,6 +143,7 @@ HeaderUI.propTypes = {
|
|
|
140
143
|
showFacilityBasedPreviewLink: PropTypes.bool,
|
|
141
144
|
skipToContentId: PropTypes.string,
|
|
142
145
|
RouterLink: PropTypes.func,
|
|
146
|
+
isIESupportPage: PropTypes.bool,
|
|
143
147
|
};
|
|
144
148
|
HeaderUI.defaultProps = {
|
|
145
149
|
fbpPerformanceYear: null,
|
|
@@ -154,6 +158,7 @@ HeaderUI.defaultProps = {
|
|
|
154
158
|
showFacilityBasedPreviewLink: false,
|
|
155
159
|
skipToContentId: null,
|
|
156
160
|
RouterLink: null,
|
|
161
|
+
isIESupportPage: false,
|
|
157
162
|
};
|
|
158
163
|
|
|
159
164
|
export default HeaderUI;
|
|
@@ -13,6 +13,7 @@ export default class Header {
|
|
|
13
13
|
* @param {Boolean} options.includeSkipToSidebar
|
|
14
14
|
* @param {Boolean} options.showCancelButton
|
|
15
15
|
* @param {Boolean} options.showCovidLink
|
|
16
|
+
* @param {Boolean} options.isIESupportPage
|
|
16
17
|
* @param {HTMLElement} options.rootElement - Elem inside which to render
|
|
17
18
|
*/
|
|
18
19
|
constructor(options) {
|
|
@@ -31,6 +32,7 @@ export default class Header {
|
|
|
31
32
|
showMaqi={options.showMaqi}
|
|
32
33
|
isDevPre={options.isDevPre}
|
|
33
34
|
content={options.content}
|
|
35
|
+
isIESupportPage={options.isIESupportPage}
|
|
34
36
|
/>,
|
|
35
37
|
options.rootElement
|
|
36
38
|
);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import
|
|
3
|
+
import SearchIcon from '@material-ui/icons/Search';
|
|
4
4
|
|
|
5
5
|
const Search = ({
|
|
6
6
|
id,
|
|
@@ -47,7 +47,7 @@ const Search = ({
|
|
|
47
47
|
className="qpp-c-search__submit qpp-c-button qpp-c-button--text"
|
|
48
48
|
>
|
|
49
49
|
<span className="qpp-u-visually-hidden">Search</span>
|
|
50
|
-
<
|
|
50
|
+
<SearchIcon classes={{ root: 'qpp-icon-mat' }} />
|
|
51
51
|
</button>
|
|
52
52
|
</div>
|
|
53
53
|
</form>
|
|
@@ -57,6 +57,20 @@ const NavLinkDrawer = ({
|
|
|
57
57
|
);
|
|
58
58
|
};
|
|
59
59
|
|
|
60
|
+
const buildLeftIconClasses = () => {
|
|
61
|
+
let leftIcon = `left-icon`;
|
|
62
|
+
|
|
63
|
+
if (isAlwaysOpen) {
|
|
64
|
+
leftIcon += ` always-open`;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
if (isHighlighted) {
|
|
68
|
+
leftIcon += ' fill-white';
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
return leftIcon;
|
|
72
|
+
}
|
|
73
|
+
|
|
60
74
|
// Classes for the link drawer button
|
|
61
75
|
const currentPage = isCurrentPage(
|
|
62
76
|
{ items, listOfLinks, url },
|
|
@@ -67,7 +81,7 @@ const NavLinkDrawer = ({
|
|
|
67
81
|
const renderLeftIcon = (leftIcon) => {
|
|
68
82
|
if (leftIcon) {
|
|
69
83
|
return (<svg
|
|
70
|
-
className={
|
|
84
|
+
className={`${buildLeftIconClasses()}`}
|
|
71
85
|
aria-hidden="true"
|
|
72
86
|
focusable="false"
|
|
73
87
|
>
|