mod-build 3.4.26-beta.3 → 3.4.27
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/gulp-tasks/grab-cdn.js +1 -2
- package/package.json +1 -1
- package/src/data/components/qs-footer.js +8 -3
- package/src/data/components/quote-footer.js +18 -8
- package/src/styles/partials/_qs-footer.scss +68 -0
- package/src/styles/partials/_quote-footer-v1.scss +79 -0
- package/src/styles/partials/_quote-footer-v2.scss +64 -0
- package/src/styles/partials/_quote-footer-v3.scss +65 -0
- package/src/templates/components/qs-footer.html +6 -8
- package/src/templates/components/quote-footer-v1.html +14 -4
- package/src/templates/components/quote-footer-v2.html +12 -4
package/gulp-tasks/grab-cdn.js
CHANGED
|
@@ -48,8 +48,7 @@ module.exports = function(gulp, gulpPlugins, siteSettings, siteData) {
|
|
|
48
48
|
// local dev files
|
|
49
49
|
const remoteFilesForLocalDev = {
|
|
50
50
|
'/scripts/mod-form.js': ['/temp/scripts/', 'mod-form.js'],
|
|
51
|
-
'/scripts/mod-utils.js': ['/temp/scripts/', 'mod-utils.js']
|
|
52
|
-
'/scripts/qs-form.js': ['/temp/scripts/', 'qs-form.js']
|
|
51
|
+
'/scripts/mod-utils.js': ['/temp/scripts/', 'mod-utils.js']
|
|
53
52
|
};
|
|
54
53
|
|
|
55
54
|
if (!nodeEnv) {
|
package/package.json
CHANGED
|
@@ -14,8 +14,8 @@ var qsFooterData = function() {
|
|
|
14
14
|
},
|
|
15
15
|
{
|
|
16
16
|
name: 'Affiliates',
|
|
17
|
-
url: '/publisher
|
|
18
|
-
modal:
|
|
17
|
+
url: 'https://modernize.com/contact?publisher',
|
|
18
|
+
modal: false
|
|
19
19
|
},
|
|
20
20
|
{
|
|
21
21
|
name: 'Terms of Use',
|
|
@@ -33,7 +33,12 @@ var qsFooterData = function() {
|
|
|
33
33
|
modal: false
|
|
34
34
|
}
|
|
35
35
|
],
|
|
36
|
-
copyright: 'QuinStreet, Inc. All Rights Reserved.'
|
|
36
|
+
copyright: 'QuinStreet, Inc. All Rights Reserved.',
|
|
37
|
+
contractor: {
|
|
38
|
+
text: 'Are you a contractor?',
|
|
39
|
+
linkText: 'Join Our Contractor Network',
|
|
40
|
+
link: 'https://modernize.com/pro/register/leads/?trade=bathrooms&utm_campaign=quinstreet-referral'
|
|
41
|
+
}
|
|
37
42
|
}
|
|
38
43
|
};
|
|
39
44
|
|
|
@@ -2,6 +2,11 @@ var quoteFooterData = function() {
|
|
|
2
2
|
var data = {
|
|
3
3
|
quoteFooterData: {
|
|
4
4
|
copyright: 'All Rights Reserved.',
|
|
5
|
+
contractor: {
|
|
6
|
+
text: 'Are you a contractor?',
|
|
7
|
+
linkText: 'Join Our Contractor Network',
|
|
8
|
+
link: 'https://modernize.com/pro/register/leads/?trade=bathrooms&utm_campaign=quinstreet-referral'
|
|
9
|
+
},
|
|
5
10
|
capchaDisclosure: {
|
|
6
11
|
text: 'This site is protected by reCAPTCHA and the Google',
|
|
7
12
|
privacy: {
|
|
@@ -29,20 +34,25 @@ var quoteFooterData = function() {
|
|
|
29
34
|
],
|
|
30
35
|
links: [
|
|
31
36
|
{
|
|
32
|
-
|
|
33
|
-
text: 'About Us'
|
|
37
|
+
url: 'about',
|
|
38
|
+
text: 'About Us',
|
|
39
|
+
modal: true
|
|
34
40
|
},
|
|
35
41
|
{
|
|
36
|
-
|
|
37
|
-
text: 'Terms of Use'
|
|
42
|
+
url: 'terms',
|
|
43
|
+
text: 'Terms of Use',
|
|
44
|
+
modal: true
|
|
38
45
|
},
|
|
39
46
|
{
|
|
40
|
-
|
|
41
|
-
text: 'Privacy Policy'
|
|
47
|
+
url: 'privacy',
|
|
48
|
+
text: 'Privacy Policy',
|
|
49
|
+
modal: true
|
|
42
50
|
},
|
|
43
51
|
{
|
|
44
|
-
|
|
45
|
-
text: 'I\'m a publisher'
|
|
52
|
+
url: 'https://modernize.com/contact?publisher',
|
|
53
|
+
text: 'I\'m a publisher',
|
|
54
|
+
modal: false,
|
|
55
|
+
target: '_blank'
|
|
46
56
|
}
|
|
47
57
|
]
|
|
48
58
|
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
@import './contact-us';
|
|
2
|
+
@import './modal-pages';
|
|
3
|
+
|
|
4
|
+
.footer {
|
|
5
|
+
background-color: $color-gray-dark;
|
|
6
|
+
color: $color-white;
|
|
7
|
+
font-family: $font-secondary;
|
|
8
|
+
font-size: 10px;
|
|
9
|
+
font-weight: 500;
|
|
10
|
+
padding: 35px 0;
|
|
11
|
+
text-align: center;
|
|
12
|
+
|
|
13
|
+
&__head-link {
|
|
14
|
+
display: block;
|
|
15
|
+
font-size: 14px;
|
|
16
|
+
margin: 0 auto 20px;
|
|
17
|
+
|
|
18
|
+
a {
|
|
19
|
+
color: $color-white;
|
|
20
|
+
text-decoration: underline;
|
|
21
|
+
|
|
22
|
+
&:active,
|
|
23
|
+
&:hover,
|
|
24
|
+
&:focus {
|
|
25
|
+
color: $color-charcoal3;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
&__links {
|
|
31
|
+
display: flex;
|
|
32
|
+
flex-wrap: wrap;
|
|
33
|
+
justify-content: center;
|
|
34
|
+
|
|
35
|
+
a {
|
|
36
|
+
color: $color-white;
|
|
37
|
+
cursor: pointer;
|
|
38
|
+
margin: 0 5px;
|
|
39
|
+
|
|
40
|
+
&:active,
|
|
41
|
+
&:hover,
|
|
42
|
+
&:focus {
|
|
43
|
+
color: $color-charcoal3;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
li + li {
|
|
48
|
+
&::before {
|
|
49
|
+
content: '|';
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
&__copyright {
|
|
55
|
+
font-weight: 500;
|
|
56
|
+
margin-bottom: 0;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
@include breakpoint-sm {
|
|
60
|
+
font-size: 12px;
|
|
61
|
+
|
|
62
|
+
&__links {
|
|
63
|
+
a {
|
|
64
|
+
margin: 0 10px;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
.footer {
|
|
2
|
+
@include font-primary-medium;
|
|
3
|
+
color: $color-charcoal3;
|
|
4
|
+
font-size: 14px;
|
|
5
|
+
line-height: 14px;
|
|
6
|
+
text-align: center;
|
|
7
|
+
|
|
8
|
+
a {
|
|
9
|
+
color: $color-purple5;
|
|
10
|
+
white-space: nowrap;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
&__content {
|
|
14
|
+
overflow: hidden;
|
|
15
|
+
padding-bottom: 15px;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
&__links {
|
|
19
|
+
margin: 20px 0;
|
|
20
|
+
|
|
21
|
+
a {
|
|
22
|
+
color: $color-blue5;
|
|
23
|
+
|
|
24
|
+
& + a {
|
|
25
|
+
margin-left: 35px;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
&__captcha-disclosure {
|
|
31
|
+
margin-top: 5px;
|
|
32
|
+
|
|
33
|
+
a {
|
|
34
|
+
color: $color-blue5;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
&__bbb-logo {
|
|
39
|
+
height: 47px;
|
|
40
|
+
margin-top: 20px;
|
|
41
|
+
max-width: 130px;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
& .contractor-link {
|
|
45
|
+
display: block;
|
|
46
|
+
font-size: 14px;
|
|
47
|
+
margin: 20px auto 10px;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
@include breakpoint-phone {
|
|
52
|
+
.footer {
|
|
53
|
+
.container {
|
|
54
|
+
max-width: 100%;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
&__copyright {
|
|
58
|
+
margin-top: 20px;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
&__links {
|
|
62
|
+
display: flex;
|
|
63
|
+
flex-direction: column;
|
|
64
|
+
margin: 5px 0 0;
|
|
65
|
+
|
|
66
|
+
a {
|
|
67
|
+
margin-top: 15px;
|
|
68
|
+
|
|
69
|
+
& + a {
|
|
70
|
+
margin-left: 0;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
&__captcha-disclosure {
|
|
76
|
+
margin-top: 15px;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
.footer {
|
|
2
|
+
@include font-primary-medium;
|
|
3
|
+
color: $color-charcoal3;
|
|
4
|
+
font-size: 12px;
|
|
5
|
+
line-height: 14px;
|
|
6
|
+
text-align: center;
|
|
7
|
+
|
|
8
|
+
&__content {
|
|
9
|
+
overflow: hidden;
|
|
10
|
+
padding: 0 0 15px;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
&__links {
|
|
14
|
+
margin-top: 10px;
|
|
15
|
+
text-align: center;
|
|
16
|
+
|
|
17
|
+
a {
|
|
18
|
+
@include font-primary-bold;
|
|
19
|
+
color: $color-blue5;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
a + a {
|
|
23
|
+
&::before {
|
|
24
|
+
color: $color-charcoal2;
|
|
25
|
+
content: ' / ';
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
&__bbb-logo {
|
|
31
|
+
height: 47px;
|
|
32
|
+
margin: 15px auto;
|
|
33
|
+
max-width: 130px;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
& .contractor-link {
|
|
37
|
+
display: block;
|
|
38
|
+
font-size: 14px;
|
|
39
|
+
margin: 20px auto 10px;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
@include breakpoint-phone {
|
|
44
|
+
.footer {
|
|
45
|
+
text-align: center;
|
|
46
|
+
|
|
47
|
+
.container {
|
|
48
|
+
max-width: 100%;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
&__copyright {
|
|
52
|
+
float: none;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
&__captcha-disclosure {
|
|
56
|
+
margin-top: 8px;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
&__links {
|
|
60
|
+
margin-top: 5px;
|
|
61
|
+
text-align: center;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
.footer {
|
|
2
|
+
@include font-primary-medium;
|
|
3
|
+
color: $color-charcoal3;
|
|
4
|
+
font-size: 12px;
|
|
5
|
+
line-height: 14px;
|
|
6
|
+
text-align: center;
|
|
7
|
+
|
|
8
|
+
a {
|
|
9
|
+
color: $color-purple5;
|
|
10
|
+
white-space: nowrap;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
&__content {
|
|
14
|
+
overflow: hidden;
|
|
15
|
+
padding: 15px 0;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
&__links {
|
|
19
|
+
margin-top: 10px;
|
|
20
|
+
text-align: center;
|
|
21
|
+
|
|
22
|
+
a {
|
|
23
|
+
@include font-primary-bold;
|
|
24
|
+
color: $color-blue5;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
a + a {
|
|
28
|
+
&::before {
|
|
29
|
+
color: $color-charcoal3;
|
|
30
|
+
content: ' | ';
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
&__bbb {
|
|
36
|
+
height: 47px;
|
|
37
|
+
margin-top: 20px;
|
|
38
|
+
max-width: 130px;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
& .contractor-link {
|
|
42
|
+
display: block;
|
|
43
|
+
font-size: 14px;
|
|
44
|
+
margin: 20px auto 10px;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
@include breakpoint-phone {
|
|
49
|
+
.footer {
|
|
50
|
+
text-align: center;
|
|
51
|
+
|
|
52
|
+
.container {
|
|
53
|
+
max-width: 100%;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
&__copyright {
|
|
57
|
+
float: none;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
&__links {
|
|
61
|
+
margin-top: 5px;
|
|
62
|
+
text-align: center;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
<footer class="footer">
|
|
2
2
|
<div class="container">
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
</div>
|
|
10
|
-
{{/xif}}
|
|
3
|
+
<div class="footer__head-link">
|
|
4
|
+
{{qsFooterData.contractor.text}}
|
|
5
|
+
<a target="_blank" href="{{qsFooterData.contractor.link}}" rel="noopener noreferrer">
|
|
6
|
+
{{qsFooterData.contractor.linkText}}
|
|
7
|
+
</a>
|
|
8
|
+
</div>
|
|
11
9
|
<ul class="footer__links">
|
|
12
10
|
{{#each qsFooterData.links}}
|
|
13
11
|
<li>
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
<div class="footer">
|
|
2
2
|
<div class="container">
|
|
3
|
-
|
|
3
|
+
{{#xif "this.hideBbb !== true" }}
|
|
4
|
+
<img src="{{assetsPath}}/images/logos/misc/bbb.svg" alt="BBB Accredited Logo" class="footer__bbb-logo footer__bbb">
|
|
5
|
+
{{/xif}}
|
|
6
|
+
<div class="footer__links contractor-link">
|
|
7
|
+
{{quoteFooterData.contractor.text}}
|
|
8
|
+
<a target="_blank" href="{{quoteFooterData.contractor.link}}" rel="noopener noreferrer">
|
|
9
|
+
{{quoteFooterData.contractor.linkText}}
|
|
10
|
+
</a>
|
|
11
|
+
</div>
|
|
4
12
|
<div class="footer__content">
|
|
5
13
|
{{#xif 'this.copyright === "top"'}}
|
|
6
14
|
<div class="footer__copyright">
|
|
@@ -43,15 +51,17 @@
|
|
|
43
51
|
|
|
44
52
|
<div class="footer__links">
|
|
45
53
|
{{#each quoteFooterData.links}}
|
|
46
|
-
<a href="/{{this.
|
|
54
|
+
<a href="{{#if this.modal}}/{{this.url}}{{else}}{{this.url}}{{/if}}" {{#xif "this.modal === true" }}data-load="./modals/{{this.url}}/index.html" data-bind="modal-link"{{/xif}} {{#if this.target}}target="{{this.target}}" {{#xif "this.target === '_blank'"}} rel="noopener noreferrer"{{/xif}} {{/if}}>
|
|
55
|
+
{{this.text}}
|
|
56
|
+
</a>
|
|
47
57
|
{{/each}}
|
|
48
58
|
<!--
|
|
49
59
|
- Define the customFooterLinks array of objects in template.js / siteconfig.js
|
|
50
|
-
- e.g customFooterLinks: [{
|
|
60
|
+
- e.g customFooterLinks: [{url: '/test', text: 'Test Link'}]
|
|
51
61
|
-->
|
|
52
62
|
{{#if this.customFooterLinks}}
|
|
53
63
|
{{#each this.customFooterLinks}}
|
|
54
|
-
<a href="/{{this.
|
|
64
|
+
<a href="{{#if this.modal}}/{{this.url}}{{else}}{{this.url}}{{/if}}" {{#xif "this.modal === true" }}data-load="./modals/{{this.url}}/index.html" data-bind="modal-link"{{/xif}} {{#if this.target}}target="{{this.target}}" {{#xif "this.target === '_blank'"}} rel="noopener noreferrer"{{/xif}}{{/if}}>{{this.text}}</a>
|
|
55
65
|
{{/each}}
|
|
56
66
|
{{/if}}
|
|
57
67
|
</div>
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
<div class="footer container">
|
|
2
|
-
|
|
2
|
+
{{#xif "this.hideBbb !== true" }}
|
|
3
|
+
<img src="{{assetsPath}}/images/logos/misc/bbb.svg" alt="BBB Accredited Logo" class="footer__bbb-logo footer__bbb">
|
|
4
|
+
{{/xif}}
|
|
5
|
+
<div class="footer__links contractor-link">
|
|
6
|
+
{{quoteFooterData.contractor.text}}
|
|
7
|
+
<a target="_blank" href="{{quoteFooterData.contractor.link}}" rel="noopener noreferrer">
|
|
8
|
+
{{quoteFooterData.contractor.linkText}}
|
|
9
|
+
</a>
|
|
10
|
+
</div>
|
|
3
11
|
{{#xif 'this.copyright === "top"'}}
|
|
4
12
|
<div class="footer__row">
|
|
5
13
|
<div class="footer__copyright">
|
|
@@ -42,17 +50,17 @@
|
|
|
42
50
|
<ul class="footer__links">
|
|
43
51
|
{{#each quoteFooterData.links}}
|
|
44
52
|
<li>
|
|
45
|
-
<a href="{{this.
|
|
53
|
+
<a href="{{#if this.modal}}/{{this.url}}{{else}}{{this.url}}{{/if}}" {{#xif "this.modal === true" }}data-load="./modals/{{this.url}}/index.html" data-bind="modal-link"{{/xif}} {{#if this.target}}target="{{this.target}}"{{#xif "this.target === '_blank'"}} rel="noopener noreferrer"{{/xif}}{{/if}}>{{this.text}}</a>
|
|
46
54
|
</li>
|
|
47
55
|
{{/each}}
|
|
48
56
|
<!--
|
|
49
57
|
- Define the customFooterLinks array of objects in template.js / siteconfig.js
|
|
50
|
-
- e.g customFooterLinks: [{
|
|
58
|
+
- e.g customFooterLinks: [{url: 'test', text: 'Test Link'}]
|
|
51
59
|
-->
|
|
52
60
|
{{#if this.customFooterLinks}}
|
|
53
61
|
{{#each this.customFooterLinks}}
|
|
54
62
|
<li>
|
|
55
|
-
<a href="{{this.
|
|
63
|
+
<a href="{{#if this.modal}}/{{this.url}}{{else}}{{this.url}}{{/if}}" {{#xif "this.modal === true" }}data-load="./modals/{{this.url}}/index.html" data-bind="modal-link"{{/xif}} {{#if this.target}}target="{{this.target}}"{{#xif "this.target === '_blank'"}} rel="noopener noreferrer"{{/xif}}{{/if}}>{{this.text}}</a>
|
|
56
64
|
</li>
|
|
57
65
|
{{/each}}
|
|
58
66
|
{{/if}}
|