mod-build 3.6.77 → 3.6.79-beta.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/CHANGELOG.md +5 -0
- package/package.json +1 -1
- package/src/scripts/mod-form-contractor.js +66 -26
- package/src/templates/_partials/apt-block.html +0 -30
- package/src/templates/_partials/scripts/analytics.html +0 -4
- package/src/templates/_partials/scripts/deferred-styles.html +0 -16
- package/src/templates/_partials/scripts/go-page-hiding-snippet.html +0 -8
- package/src/templates/_partials/scripts/google-maps.html +0 -1
- package/src/templates/_partials/scripts/google-optimize.html +0 -12
- package/src/templates/_partials/scripts/gtm-editorials/body/google-tag-manager-body.html +0 -5
- package/src/templates/_partials/scripts/gtm-editorials/head/google-tag-manager-head.html +0 -10
- package/src/templates/_partials/scripts/gtm-hil/body/google-tag-manager-body.html +0 -5
- package/src/templates/_partials/scripts/gtm-hil/head/google-tag-manager-head.html +0 -10
- package/src/templates/_partials/scripts/gtm-pro/body/google-tag-manager-body.html +0 -5
- package/src/templates/_partials/scripts/gtm-pro/head/google-tag-manager-head.html +0 -10
- package/src/templates/_partials/scripts/gtm-quote/body/google-tag-manager-body.html +0 -5
- package/src/templates/_partials/scripts/gtm-quote/head/google-tag-manager-head.html +0 -9
- package/src/templates/_partials/scripts/gtm-whitelabel/body/mod-google-tag-manager-body.html +0 -5
- package/src/templates/_partials/scripts/gtm-whitelabel/body/non-mod-google-tag-manager-body.html +0 -5
- package/src/templates/_partials/scripts/gtm-whitelabel/head/mod-google-tag-manager-head.html +0 -10
- package/src/templates/_partials/scripts/gtm-whitelabel/head/non-mod-google-tag-manager-head.html +0 -9
- package/src/templates/_partials/scripts/gtm-wordpress/body/google-tag-manager-body.html +0 -5
- package/src/templates/_partials/scripts/gtm-wordpress/head/google-tag-manager-head.html +0 -9
- package/src/templates/_partials/scripts/heap-bundle.html +0 -7
- package/src/templates/_partials/scripts/heap.html +0 -4
- package/src/templates/_partials/scripts/utm-params.html +0 -9
- package/src/templates/_partials/scripts/visual-website-optimizer.html +0 -5
- package/src/templates/_partials/scripts/vwo-redirect-callback.html +0 -49
- package/src/templates/components/qs-footer.html +0 -55
- package/src/templates/components/quote-footer-v1.html +0 -148
- package/src/templates/components/quote-footer-v2.html +0 -169
- package/src/templates/index.html +0 -46
package/CHANGELOG.md
CHANGED
package/package.json
CHANGED
|
@@ -295,22 +295,6 @@ modForm.submitContractorFormDataToApi = function(formData, successCallback, erro
|
|
|
295
295
|
}
|
|
296
296
|
};
|
|
297
297
|
|
|
298
|
-
/**
|
|
299
|
-
* Check if the submitted info qualifies as small business to show corresponding thank you block
|
|
300
|
-
* @returns {Boolean} - true if small business
|
|
301
|
-
*/
|
|
302
|
-
modForm.isSmallBusiness = function() {
|
|
303
|
-
var $annualRevenue = this.opts.form.find('[name="annualRevenue"]').val(),
|
|
304
|
-
smbRevenueAnswers = ['Under $250,000', 'I\'m a Sales Rep'],
|
|
305
|
-
isSmallBus = false;
|
|
306
|
-
|
|
307
|
-
if (smbRevenueAnswers.indexOf($annualRevenue) > -1) {
|
|
308
|
-
isSmallBus = true;
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
return isSmallBus;
|
|
312
|
-
};
|
|
313
|
-
|
|
314
298
|
/**
|
|
315
299
|
* Process data to the new API required format
|
|
316
300
|
* @param {Object} formData - form data
|
|
@@ -325,6 +309,7 @@ modForm.formatContractorDataForModApi = function(formData, currentStep) {
|
|
|
325
309
|
lastName: formData.lastName,
|
|
326
310
|
primaryProjectClass: formData.primaryProjectClass,
|
|
327
311
|
multipleTrades: formData.multipleTrades ? 1 : 0,
|
|
312
|
+
contractorNetwork: formData.contractorNetwork ? 1 : 0,
|
|
328
313
|
companyName: formData.companyName,
|
|
329
314
|
phone: formData.homePhone,
|
|
330
315
|
email: formData.email,
|
|
@@ -356,6 +341,7 @@ modForm.formatContractorDataForModApi = function(formData, currentStep) {
|
|
|
356
341
|
annualRevenue: formData.annualRevenue,
|
|
357
342
|
buysLeads: formData.buysLeads,
|
|
358
343
|
crmInUse: formData.crmInUse,
|
|
344
|
+
ein: formData.ein,
|
|
359
345
|
whoCallsLeads: formData.whoCallsLeads,
|
|
360
346
|
ein: formData.ein,
|
|
361
347
|
websiteUrl: formData.websiteUrl,
|
|
@@ -413,6 +399,57 @@ modForm.initResubmitBtn = function() {
|
|
|
413
399
|
});
|
|
414
400
|
};
|
|
415
401
|
|
|
402
|
+
modForm.isSmallBusiness = function(annualRevenue) {
|
|
403
|
+
const smbRevenueAnswers = ['I\'m a sales rep', '$0 - $500K', '$500K - $1M'];
|
|
404
|
+
if (!annualRevenue) {
|
|
405
|
+
console.error('No annual revenue provided');
|
|
406
|
+
return false;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
return smbRevenueAnswers.indexOf(annualRevenue) > -1;
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
/**
|
|
413
|
+
* Email
|
|
414
|
+
* @param {String} email - email address to validate
|
|
415
|
+
* @returns {Boolean} isFreeEmail
|
|
416
|
+
*/
|
|
417
|
+
modForm.isFreeEmail = function(email) {
|
|
418
|
+
let isFreeEmail = false;
|
|
419
|
+
const freeDomains = ['gmail', 'hotmail', 'msn', 'aol', 'yahoo', 'ymail', 'comcast', 'icloud'];
|
|
420
|
+
|
|
421
|
+
if (email) {
|
|
422
|
+
const emailAddress = email.toLowerCase();
|
|
423
|
+
isFreeEmail = freeDomains.some(domain => emailAddress.includes(domain));
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
return isFreeEmail;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
/**
|
|
430
|
+
* Check if data meets criteria to match with CXP
|
|
431
|
+
* @returns {Boolean} - true if meets CXP criteria
|
|
432
|
+
*/
|
|
433
|
+
modForm.isSupportedByCxp = function(formData) {
|
|
434
|
+
if (formData.primaryProjectClass === 'Solar') {
|
|
435
|
+
return false;
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
return true;
|
|
439
|
+
};
|
|
440
|
+
|
|
441
|
+
/**
|
|
442
|
+
* Check if the submitted info meets the criteria of a Marketing Qualified Lead (MQL, a lead who is more likely to become a customer than other leads)
|
|
443
|
+
* @returns {Boolean} - true if meets MQL Criteria
|
|
444
|
+
*/
|
|
445
|
+
modForm.meetsMQLCriteria = function(formData) {
|
|
446
|
+
if (this.isFreeEmail(formData.email) && formData.websiteUrl === '') {
|
|
447
|
+
return false;
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
return true;
|
|
451
|
+
};
|
|
452
|
+
|
|
416
453
|
/**
|
|
417
454
|
* Process form after succesful submit
|
|
418
455
|
* @param {Object} response - response data
|
|
@@ -482,8 +519,9 @@ modForm.processContractorFormSubmitSuccess = function(response, currentStep, xhr
|
|
|
482
519
|
|
|
483
520
|
// Thankyou blocks logic
|
|
484
521
|
var $tyStateBlocks = _this.opts.form.find('.ty-state-block'),
|
|
485
|
-
$
|
|
486
|
-
$
|
|
522
|
+
$cxpTyp = _this.opts.form.find('.ty-state-block-cxp'),
|
|
523
|
+
$noserviceTyp = _this.opts.form.find('.ty-state-block-noservice'),
|
|
524
|
+
$generalTyp = _this.opts.form.find('.ty-state-block-success'),
|
|
487
525
|
$generalTyp = _this.opts.form.find('.ty-state-block-success'),
|
|
488
526
|
$primaryProjectClass = _this.opts.form.find('select[name="primaryProjectClass"]'),
|
|
489
527
|
tyStateGAName;
|
|
@@ -494,16 +532,18 @@ modForm.processContractorFormSubmitSuccess = function(response, currentStep, xhr
|
|
|
494
532
|
// Check what type of TY page to show
|
|
495
533
|
$tyStateBlocks.hide();
|
|
496
534
|
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
} else if (_this.isSmallBusiness()) { // if is small business
|
|
502
|
-
tyStateGAName = 'thankyou-smallbusiness';
|
|
503
|
-
$sbssTyp.show();
|
|
504
|
-
} else {
|
|
535
|
+
const meetsModCriteria = _this.meetsMQLCriteria(_this.getFormData());
|
|
536
|
+
const meetsCxpCriteria = _this.isSupportedByCxp(_this.getFormData());
|
|
537
|
+
|
|
538
|
+
if (meetsModCriteria) {
|
|
505
539
|
tyStateGAName = 'thankyou';
|
|
506
540
|
$generalTyp.show();
|
|
541
|
+
} else if (meetsCxpCriteria) {
|
|
542
|
+
tyStateGAName = 'thankyou-cxp';
|
|
543
|
+
$cxpTyp.show();
|
|
544
|
+
} else {
|
|
545
|
+
tyStateGAName = 'thankyou-noservice';
|
|
546
|
+
$noserviceTyp.show();
|
|
507
547
|
}
|
|
508
548
|
|
|
509
549
|
// Track TY page in GA
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
<div class="apt-block apt-block--instant" id="instant-apt-block" style="display: none">
|
|
2
|
-
<div class="apt-block__suptitle">
|
|
3
|
-
Next steps
|
|
4
|
-
</div>
|
|
5
|
-
<h2 class="apt-block__title">
|
|
6
|
-
Set Appointments
|
|
7
|
-
</h2>
|
|
8
|
-
<div class="apt-block__subtitle">
|
|
9
|
-
Request up to four appointments with contractors to receive free quotes.
|
|
10
|
-
</div>
|
|
11
|
-
|
|
12
|
-
<div class="apt-block__instant-matches" id="apt-block-instant-matches"> </div>
|
|
13
|
-
</div>
|
|
14
|
-
|
|
15
|
-
<div class="apt-block" id="apt-block" style="display: none">
|
|
16
|
-
<h2 class="apt-block__title" id="apt-block-title">
|
|
17
|
-
Loading matches...
|
|
18
|
-
</h2>
|
|
19
|
-
|
|
20
|
-
<div class="apt-block__matches" id="apt-block-matches"> </div>
|
|
21
|
-
|
|
22
|
-
<div class="apt-block__loading" id="apt-block-loading">
|
|
23
|
-
<span class="apt-block__spinner"></span>
|
|
24
|
-
Searching for matches…
|
|
25
|
-
</div>
|
|
26
|
-
</div>
|
|
27
|
-
|
|
28
|
-
<script>
|
|
29
|
-
var aptBlockTCPA = '{{#x 'this.tcpa("Schedule", "Modernize")'}}{{/x}}';
|
|
30
|
-
</script>
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
<noscript id="deferred-styles">
|
|
2
|
-
{{{deferredStyles deferredStyleUrls}}}
|
|
3
|
-
</noscript>
|
|
4
|
-
<script>
|
|
5
|
-
var loadDeferredStyles = function() {
|
|
6
|
-
var addStylesNode = document.getElementById("deferred-styles");
|
|
7
|
-
var replacement = document.createElement("div");
|
|
8
|
-
replacement.innerHTML = addStylesNode.textContent;
|
|
9
|
-
document.body.appendChild(replacement)
|
|
10
|
-
addStylesNode.parentElement.removeChild(addStylesNode);
|
|
11
|
-
};
|
|
12
|
-
var raf = requestAnimationFrame || mozRequestAnimationFrame ||
|
|
13
|
-
webkitRequestAnimationFrame || msRequestAnimationFrame;
|
|
14
|
-
if (raf) raf(function() { window.setTimeout(loadDeferredStyles, 0); });
|
|
15
|
-
else window.addEventListener('load', loadDeferredStyles);
|
|
16
|
-
</script>
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
<!-- Google Optimize Page-hiding snippet -->
|
|
2
|
-
<style>.async-hide { opacity: 0 !important} </style>
|
|
3
|
-
<script>(function(a,s,y,n,c,h,i,d,e){s.className+=' '+y;h.start=1*new Date;
|
|
4
|
-
h.end=i=function(){s.className=s.className.replace(RegExp(' ?'+y),'')};
|
|
5
|
-
(a[n]=a[n]||[]).hide=h;setTimeout(function(){i();h.end=null},c);h.timeout=c;
|
|
6
|
-
})(window,document.documentElement,'async-hide','dataLayer',4000,
|
|
7
|
-
{'{{optimize_GTM}}':true});</script>
|
|
8
|
-
<!-- End Google Optimize Page-hiding snippet -->
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<script src="//maps.googleapis.com/maps/api/js?key=AIzaSyBf4HNrR12KgZeMNsdoNIjD57pwVUsZ6e4&language=en&libraries=places&callback=modForm.initAddressAutocomplete" async defer></script>
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
<!-- Google Optimize -->
|
|
2
|
-
<script>
|
|
3
|
-
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
|
4
|
-
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
|
5
|
-
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
|
6
|
-
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
|
7
|
-
|
|
8
|
-
ga('create', '{{ga_tracking_ID}}', 'auto');
|
|
9
|
-
ga('require', '{{optimize_GTM}}');
|
|
10
|
-
</script>
|
|
11
|
-
<!-- End Google Optimize -->
|
|
12
|
-
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
<!-- Google Tag Manager -->
|
|
2
|
-
<script>
|
|
3
|
-
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
|
4
|
-
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
|
5
|
-
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
|
6
|
-
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
|
|
7
|
-
})(window,document,'script','dataLayer','GTM-WPXKC8');
|
|
8
|
-
</script>
|
|
9
|
-
<!-- End Google Tag Manager -->
|
|
10
|
-
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
<!-- Google Tag Manager -->
|
|
2
|
-
<script>
|
|
3
|
-
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
|
4
|
-
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
|
5
|
-
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
|
6
|
-
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
|
|
7
|
-
})(window,document,'script','dataLayer','GTM-TDM5ZF6');
|
|
8
|
-
</script>
|
|
9
|
-
<!-- End Google Tag Manager -->
|
|
10
|
-
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
<!-- Google Tag Manager -->
|
|
2
|
-
<script>
|
|
3
|
-
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
|
4
|
-
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
|
5
|
-
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
|
6
|
-
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
|
|
7
|
-
})(window,document,'script','dataLayer','GTM-WPXKC8');
|
|
8
|
-
</script>
|
|
9
|
-
<!-- End Google Tag Manager -->
|
|
10
|
-
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
<!-- Google Tag Manager -->
|
|
2
|
-
<script>
|
|
3
|
-
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
|
4
|
-
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
|
5
|
-
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
|
6
|
-
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
|
|
7
|
-
})(window,document,'script','dataLayer','GTM-NVJQBK2');
|
|
8
|
-
</script>
|
|
9
|
-
<!-- End Google Tag Manager -->
|
package/src/templates/_partials/scripts/gtm-whitelabel/head/mod-google-tag-manager-head.html
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
<!-- Google Tag Manager -->
|
|
2
|
-
<script>
|
|
3
|
-
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
|
4
|
-
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
|
5
|
-
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
|
6
|
-
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
|
|
7
|
-
})(window,document,'script','dataLayer','GTM-TJ8BFVQ');
|
|
8
|
-
</script>
|
|
9
|
-
<!-- End Google Tag Manager -->
|
|
10
|
-
|
package/src/templates/_partials/scripts/gtm-whitelabel/head/non-mod-google-tag-manager-head.html
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
<!-- Google Tag Manager -->
|
|
2
|
-
<script>
|
|
3
|
-
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
|
4
|
-
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
|
5
|
-
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
|
6
|
-
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
|
|
7
|
-
})(window,document,'script','dataLayer','GTM-TBC2FVC');
|
|
8
|
-
</script>
|
|
9
|
-
<!-- End Google Tag Manager -->
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
<!-- Google Tag Manager -->
|
|
2
|
-
<script>
|
|
3
|
-
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
|
4
|
-
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
|
5
|
-
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
|
6
|
-
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
|
|
7
|
-
})(window,document,'script','dataLayer','GTM-WPXKC8');
|
|
8
|
-
</script>
|
|
9
|
-
<!-- End Google Tag Manager -->
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
{{ fileInclude 'node_modules/mod-build/src/scripts/vendor/heap-tracking.js' }}
|
|
3
|
-
|
|
4
|
-
{{ fileInclude 'node_modules/mod-build/src/scripts/vendor/heap-vwo.js' }}
|
|
5
|
-
|
|
6
|
-
{{ fileInclude 'node_modules/mod-build/src/scripts/vendor/heap-addeventproperties-identify.js' }}
|
|
7
|
-
</script>
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
window.heap=window.heap||[],heap.load=function(e,t){window.heap.appid=e,window.heap.config=t=t||{};var r=t.forceSSL||"https:"===document.location.protocol,a=document.createElement("script");a.type="text/javascript",a.async=!0,a.src=(r?"https:":"http:")+"//cdn.heapanalytics.com/js/heap-"+e+".js";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(a,n);for(var o=function(e){return function(){heap.push([e].concat(Array.prototype.slice.call(arguments,0)))}},p=["addEventProperties","addUserProperties","clearEventProperties","identify","removeEventProperty","setEventProperties","track","unsetEventProperty"],c=0;c<p.length;c++)heap[p[c]]=o(p[c])};
|
|
3
|
-
heap.load("3246578271");
|
|
4
|
-
</script>
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
<script type="text/javascript">
|
|
2
|
-
(function () {
|
|
3
|
-
var $networkLink = document.getElementById('join-network');
|
|
4
|
-
var pageTrade = ($networkLink.getAttribute('data-trade') ? $networkLink.getAttribute('data-trade').toLowerCase() : "");
|
|
5
|
-
var siteUrl = window.location.hostname + window.location.pathname;
|
|
6
|
-
|
|
7
|
-
$networkLink.href = 'https://modernize.com/pro/register/leads/?trade=' + pageTrade + '&utm_medium=microsites&utm_source=' + siteUrl;
|
|
8
|
-
})();
|
|
9
|
-
</script>
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
{{ fileInclude 'node_modules/mod-build/src/scripts/has-qs-params.js' }}
|
|
3
|
-
{{ fileInclude 'node_modules/mod-build/src/scripts/url-cleaner.js' }}
|
|
4
|
-
{{ fileInclude 'node_modules/mod-build/src/scripts/vendor/visual-website-optimizer.js' }}
|
|
5
|
-
|
|
6
|
-
(function(VWO_HARD_TIMEOUT) {
|
|
7
|
-
window._vwo_evq = window._vwo_evq || [];
|
|
8
|
-
var queue = window._vwo_evq;
|
|
9
|
-
for (var i = 0; i < queue.length; i++) {
|
|
10
|
-
if (queue[i][0] === 'rD') {
|
|
11
|
-
window.willRedirectionOccur = true;
|
|
12
|
-
break;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
var _vwoOldPush = window._vwo_evq.push;
|
|
16
|
-
window._vwo_evq.push = function() {
|
|
17
|
-
var eventData = arguments[0],
|
|
18
|
-
willRedirectionOccur;
|
|
19
|
-
if (eventData[0] === 'rD') {
|
|
20
|
-
willRedirectionOccur = eventData[1];
|
|
21
|
-
// It will be set to true if a redirection is going to be done by VWO.
|
|
22
|
-
window.willRedirectionOccurByVWO = willRedirectionOccur;
|
|
23
|
-
}
|
|
24
|
-
_vwoOldPush.apply(window._vwo_evq, [].slice.call(arguments));
|
|
25
|
-
};
|
|
26
|
-
var hardLimitTimedout = false;
|
|
27
|
-
|
|
28
|
-
function tryNonVWOTracking() {
|
|
29
|
-
if ((window._vwo_code && (window._vwo_code.finished() || window._vwo_code.libExecuted)) || hardLimitTimedout) {
|
|
30
|
-
if (!window.willRedirectionOccurByVWO) {
|
|
31
|
-
clearTimeout(hardLimitTimer);
|
|
32
|
-
try {
|
|
33
|
-
// flag to call Modalytics.initHeapVwo() method in site level js
|
|
34
|
-
window.initHeapVwo = true;
|
|
35
|
-
} catch (e) {}
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
setTimeout(function() {
|
|
40
|
-
tryNonVWOTracking()
|
|
41
|
-
}, 500)
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
var hardLimitTimer = setTimeout(function() {
|
|
45
|
-
hardLimitTimedout = true;
|
|
46
|
-
}, VWO_HARD_TIMEOUT);
|
|
47
|
-
tryNonVWOTracking();
|
|
48
|
-
})(5000 /*MAXIMUM TIME IN SECONDS IN WHICH CODE WILL EXECUTE ANYWAY*/ );
|
|
49
|
-
</script>
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
<footer class="footer">
|
|
2
|
-
<div class="container">
|
|
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>
|
|
9
|
-
<ul class="footer__links">
|
|
10
|
-
{{#each qsFooterData.links}}
|
|
11
|
-
<li>
|
|
12
|
-
<a
|
|
13
|
-
{{#xif "!this.modal" }}
|
|
14
|
-
href="{{this.url}}"
|
|
15
|
-
target="_blank"
|
|
16
|
-
rel="noopener noreferrer"
|
|
17
|
-
{{/xif}}
|
|
18
|
-
{{#xif "this.modal" }}
|
|
19
|
-
data-bind="modal-link"
|
|
20
|
-
data-load="/modals{{this.url}}index.html"
|
|
21
|
-
{{/xif}}
|
|
22
|
-
>
|
|
23
|
-
{{{this.name}}}{{#xif 'this.company === true'}}{{#if ../this.companyName}} {{{../this.companyName}}}{{/if}}{{/xif}}
|
|
24
|
-
</a>
|
|
25
|
-
</li>
|
|
26
|
-
{{/each}}
|
|
27
|
-
<!--
|
|
28
|
-
- Define the customFooterLinks array of objects in template.js / siteconfig.js
|
|
29
|
-
- e.g customFooterLinks: [{name: 'Test Link', url: '/test/', modal: true}]
|
|
30
|
-
-->
|
|
31
|
-
{{#if this.customFooterLinks}}
|
|
32
|
-
{{#each this.customFooterLinks}}
|
|
33
|
-
<li>
|
|
34
|
-
<a
|
|
35
|
-
{{#xif "!this.modal" }}
|
|
36
|
-
href="{{this.url}}"
|
|
37
|
-
target="_blank"
|
|
38
|
-
rel="noopener noreferrer"
|
|
39
|
-
{{/xif}}
|
|
40
|
-
{{#xif "this.modal" }}
|
|
41
|
-
data-bind="modal-link"
|
|
42
|
-
data-load="/modals{{this.url}}index.html"
|
|
43
|
-
{{/xif}}
|
|
44
|
-
>
|
|
45
|
-
{{{this.name}}}
|
|
46
|
-
</a>
|
|
47
|
-
</li>
|
|
48
|
-
{{/each}}
|
|
49
|
-
{{/if}}
|
|
50
|
-
</ul>
|
|
51
|
-
<p class="footer__copyright">
|
|
52
|
-
Copyright © {{year}} {{qsFooterData.copyright}}
|
|
53
|
-
</p>
|
|
54
|
-
</div>
|
|
55
|
-
</footer>
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
<div class="footer">
|
|
2
|
-
<div class="container">
|
|
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>
|
|
12
|
-
<div class="footer__content">
|
|
13
|
-
{{#xif 'this.copyright === "top"'}}
|
|
14
|
-
<div class="footer__copyright">
|
|
15
|
-
© Copyright {{year}} {{website_name}}.
|
|
16
|
-
{{{quoteFooterData.copyright}}}
|
|
17
|
-
<div class="footer__captcha-disclosure">
|
|
18
|
-
{{quoteFooterData.capchaDisclosure.text}}
|
|
19
|
-
<a href="{{quoteFooterData.capchaDisclosure.privacy.url}}" target="_blank">{{quoteFooterData.capchaDisclosure.privacy.text}}</a> and
|
|
20
|
-
<a href="{{quoteFooterData.capchaDisclosure.terms.url}}" target="_blank">{{{quoteFooterData.capchaDisclosure.terms.text}}}</a> apply.
|
|
21
|
-
</div>
|
|
22
|
-
</div>
|
|
23
|
-
{{/xif}}
|
|
24
|
-
{{#xif "this.privacylinks === 'top'"}}
|
|
25
|
-
<div class="footer__links">
|
|
26
|
-
{{#each quoteFooterData.privacyLinks}}
|
|
27
|
-
<a
|
|
28
|
-
{{#xif "this.modal === true" }}
|
|
29
|
-
href="{{../links.privacy}}"
|
|
30
|
-
data-load="{{#if ../this.variation}}/modals/privacy/index.html{{else}}./modals/privacy/index.html{{/if}}"
|
|
31
|
-
data-bind="modal-link"
|
|
32
|
-
data-anchor="#{{this.anchor}}"
|
|
33
|
-
{{/xif}}
|
|
34
|
-
{{#xif "this.modal === false" }}
|
|
35
|
-
href="{{this.anchor}}"
|
|
36
|
-
target="_blank"
|
|
37
|
-
rel="noopener noreferrer"
|
|
38
|
-
{{/xif}}
|
|
39
|
-
>{{{this.text}}}</a>
|
|
40
|
-
{{/each}}
|
|
41
|
-
<!--
|
|
42
|
-
- Define the customPrivacyLinks array of objects in template.js / siteconfig.js
|
|
43
|
-
- e.g customPrivacyLinks: [{ text: 'This is a custom link', anchor: 'ccpa' }]
|
|
44
|
-
-->
|
|
45
|
-
{{#if this.customPrivacyLinks}}
|
|
46
|
-
{{#each this.customPrivacyLinks}}
|
|
47
|
-
<a
|
|
48
|
-
{{#xif "this.modal === true" }}
|
|
49
|
-
href="{{../links.privacy}}"
|
|
50
|
-
data-load="{{#if ../this.variation}}/modals/privacy/index.html{{else}}./modals/privacy/index.html{{/if}}"
|
|
51
|
-
data-bind="modal-link"
|
|
52
|
-
data-anchor="#{{this.anchor}}"
|
|
53
|
-
{{/xif}}
|
|
54
|
-
{{#xif "this.modal === false" }}
|
|
55
|
-
href="{{this.anchor}}"
|
|
56
|
-
target="_blank"
|
|
57
|
-
rel="noopener noreferrer"
|
|
58
|
-
{{/xif}}
|
|
59
|
-
>{{{this.text}}}</a>
|
|
60
|
-
{{/each}}
|
|
61
|
-
{{/if}}
|
|
62
|
-
</div>
|
|
63
|
-
{{/xif}}
|
|
64
|
-
{{#xif 'this.copyright === "middle"'}}
|
|
65
|
-
<div class="footer__copyright">
|
|
66
|
-
© Copyright {{year}} {{website_name}}.
|
|
67
|
-
{{{quoteFooterData.copyright}}}
|
|
68
|
-
<div class="footer__captcha-disclosure">
|
|
69
|
-
{{quoteFooterData.capchaDisclosure.text}}
|
|
70
|
-
<a href="{{quoteFooterData.capchaDisclosure.privacy.url}}" target="_blank">{{quoteFooterData.capchaDisclosure.privacy.text}}</a> and
|
|
71
|
-
<a href="{{quoteFooterData.capchaDisclosure.terms.url}}" target="_blank">{{{quoteFooterData.capchaDisclosure.terms.text}}}</a> apply.
|
|
72
|
-
</div>
|
|
73
|
-
</div>
|
|
74
|
-
{{/xif}}
|
|
75
|
-
|
|
76
|
-
<div class="footer__links">
|
|
77
|
-
{{#each quoteFooterData.links}}
|
|
78
|
-
<a href="{{#if this.modal}}/{{this.url}}{{else}}{{this.url}}{{/if}}" {{#xif "this.modal === true" }}
|
|
79
|
-
data-load="{{#if ../this.variation}}/modals/{{this.url}}/index.html{{else}}./modals/{{this.url}}/index.html{{/if}}" data-bind="modal-link"{{/xif}} {{#if this.target}}target="{{this.target}}" {{#xif "this.target === '_blank'"}} rel="noopener noreferrer"{{/xif}} {{/if}}>
|
|
80
|
-
{{{this.text}}}
|
|
81
|
-
</a>
|
|
82
|
-
{{/each}}
|
|
83
|
-
<!--
|
|
84
|
-
- Define the customFooterLinks array of objects in template.js / siteconfig.js
|
|
85
|
-
- e.g customFooterLinks: [{url: '/test', text: 'Test Link'}]
|
|
86
|
-
-->
|
|
87
|
-
{{#if this.customFooterLinks}}
|
|
88
|
-
{{#each this.customFooterLinks}}
|
|
89
|
-
<a href="{{#if this.modal}}/{{this.url}}{{else}}{{this.url}}{{/if}}" {{#xif "this.modal === true" }}data-load="{{#if ../this.variation}}/modals/{{this.url}}/index.html{{else}}./modals/{{this.url}}/index.html{{/if}}" data-bind="modal-link"{{/xif}} {{#if this.target}}target="{{this.target}}" {{#xif "this.target === '_blank'"}} rel="noopener noreferrer"{{/xif}}{{/if}}>{{{this.text}}}</a>
|
|
90
|
-
{{/each}}
|
|
91
|
-
{{/if}}
|
|
92
|
-
</div>
|
|
93
|
-
|
|
94
|
-
{{#xif "this.privacylinks === 'bottom'"}}
|
|
95
|
-
<div class="footer__links">
|
|
96
|
-
{{#each quoteFooterData.privacyLinks}}
|
|
97
|
-
<a
|
|
98
|
-
{{#xif "this.modal === true" }}
|
|
99
|
-
href="{{../links.privacy}}"
|
|
100
|
-
data-load="{{#if ../this.variation}}/modals/privacy/index.html{{else}}./modals/privacy/index.html{{/if}}"
|
|
101
|
-
data-bind="modal-link"
|
|
102
|
-
data-anchor="#{{this.anchor}}"
|
|
103
|
-
{{/xif}}
|
|
104
|
-
{{#xif "this.modal === false" }}
|
|
105
|
-
href="{{this.anchor}}"
|
|
106
|
-
target="_blank"
|
|
107
|
-
rel="noopener noreferrer"
|
|
108
|
-
{{/xif}}
|
|
109
|
-
>{{{this.text}}}</a>
|
|
110
|
-
{{/each}}
|
|
111
|
-
<!--
|
|
112
|
-
- Define the customPrivacyLinks array of objects in template.js / siteconfig.js
|
|
113
|
-
- e.g customPrivacyLinks: [{ text: 'This is a custom link', anchor: 'ccpa' }]
|
|
114
|
-
-->
|
|
115
|
-
{{#if this.customPrivacyLinks}}
|
|
116
|
-
{{#each this.customPrivacyLinks}}
|
|
117
|
-
<a
|
|
118
|
-
{{#xif "this.modal === true" }}
|
|
119
|
-
href="{{../links.privacy}}"
|
|
120
|
-
data-load="{{#if ../this.variation}}/modals/privacy/index.html{{else}}./modals/privacy/index.html{{/if}}"
|
|
121
|
-
data-bind="modal-link"
|
|
122
|
-
data-anchor="#{{this.anchor}}"
|
|
123
|
-
{{/xif}}
|
|
124
|
-
{{#xif "this.modal === false" }}
|
|
125
|
-
href="{{this.anchor}}"
|
|
126
|
-
target="_blank"
|
|
127
|
-
rel="noopener noreferrer"
|
|
128
|
-
{{/xif}}
|
|
129
|
-
>{{{this.text}}}</a>
|
|
130
|
-
{{/each}}
|
|
131
|
-
{{/if}}
|
|
132
|
-
</div>
|
|
133
|
-
{{/xif}}
|
|
134
|
-
|
|
135
|
-
{{#xif 'this.copyright === "bottom"'}}
|
|
136
|
-
<div class="footer__copyright">
|
|
137
|
-
© Copyright {{year}} {{website_name}}.
|
|
138
|
-
{{{quoteFooterData.copyright}}}
|
|
139
|
-
<div class="footer__captcha-disclosure">
|
|
140
|
-
{{quoteFooterData.capchaDisclosure.text}}
|
|
141
|
-
<a href="{{quoteFooterData.capchaDisclosure.privacy.url}}" target="_blank">{{quoteFooterData.capchaDisclosure.privacy.text}}</a> and
|
|
142
|
-
<a href="{{quoteFooterData.capchaDisclosure.terms.url}}" target="_blank">{{{quoteFooterData.capchaDisclosure.terms.text}}}</a> apply.
|
|
143
|
-
</div>
|
|
144
|
-
</div>
|
|
145
|
-
{{/xif}}
|
|
146
|
-
</div>
|
|
147
|
-
</div>
|
|
148
|
-
</div>
|
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
<div class="footer container">
|
|
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>
|
|
11
|
-
{{#xif 'this.copyright === "top"'}}
|
|
12
|
-
<div class="footer__row">
|
|
13
|
-
<div class="footer__copyright">
|
|
14
|
-
© Copyright {{year}} {{company_name}}. {{{quoteFooterData.copyright}}}
|
|
15
|
-
</div>
|
|
16
|
-
<div class="footer__captcha-disclosure">
|
|
17
|
-
{{quoteFooterData.capchaDisclosure.text}}
|
|
18
|
-
<a href="{{quoteFooterData.capchaDisclosure.privacy.url}}" target="_blank">{{quoteFooterData.capchaDisclosure.privacy.text}}</a> and
|
|
19
|
-
<a href="{{quoteFooterData.capchaDisclosure.terms.url}}" target="_blank">{{{quoteFooterData.capchaDisclosure.terms.text}}}</a> apply.
|
|
20
|
-
</div>
|
|
21
|
-
</div>
|
|
22
|
-
{{/xif}}
|
|
23
|
-
{{#xif "this.privacylinks === 'top'"}}
|
|
24
|
-
<div class="footer__row">
|
|
25
|
-
<ul class="footer__links">
|
|
26
|
-
{{#each quoteFooterData.privacyLinks}}
|
|
27
|
-
<li>
|
|
28
|
-
<a
|
|
29
|
-
{{#xif "this.modal === true" }}
|
|
30
|
-
href="{{../links.privacy}}"
|
|
31
|
-
data-load="{{#if ../this.variation}}/modals/privacy/index.html{{else}}./modals/privacy/index.html{{/if}}"
|
|
32
|
-
data-bind="modal-link"
|
|
33
|
-
data-anchor="#{{this.anchor}}"
|
|
34
|
-
{{/xif}}
|
|
35
|
-
{{#xif "this.modal === false" }}
|
|
36
|
-
href="{{this.anchor}}"
|
|
37
|
-
target="_blank"
|
|
38
|
-
rel="noopener noreferrer"
|
|
39
|
-
{{/xif}}
|
|
40
|
-
>
|
|
41
|
-
{{{this.text}}}
|
|
42
|
-
</a>
|
|
43
|
-
</li>
|
|
44
|
-
{{/each}}
|
|
45
|
-
<!--
|
|
46
|
-
- Define the customPrivacyLinks array of objects in template.js / siteconfig.js
|
|
47
|
-
- e.g customPrivacyLinks: [{ text: 'This is a custom link', anchor: 'ccpa' }]
|
|
48
|
-
-->
|
|
49
|
-
{{#if this.customPrivacyLinks}}
|
|
50
|
-
{{#each this.customPrivacyLinks}}
|
|
51
|
-
<li>
|
|
52
|
-
<a
|
|
53
|
-
{{#xif "this.modal === true" }}
|
|
54
|
-
href="{{../links.privacy}}"
|
|
55
|
-
data-load="{{#if ../this.variation}}/modals/privacy/index.html{{else}}./modals/privacy/index.html{{/if}}"
|
|
56
|
-
data-bind="modal-link"
|
|
57
|
-
data-anchor="#{{this.anchor}}"
|
|
58
|
-
{{/xif}}
|
|
59
|
-
{{#xif "this.modal === false" }}
|
|
60
|
-
href="{{this.anchor}}"
|
|
61
|
-
target="_blank"
|
|
62
|
-
rel="noopener noreferrer"
|
|
63
|
-
{{/xif}}
|
|
64
|
-
>
|
|
65
|
-
{{{this.text}}}
|
|
66
|
-
</a>
|
|
67
|
-
</li>
|
|
68
|
-
{{/each}}
|
|
69
|
-
{{/if}}
|
|
70
|
-
</ul>
|
|
71
|
-
</div>
|
|
72
|
-
{{/xif}}
|
|
73
|
-
<div class="footer__row">
|
|
74
|
-
<ul class="footer__links">
|
|
75
|
-
{{#each quoteFooterData.links}}
|
|
76
|
-
<li>
|
|
77
|
-
<a href="{{#if this.modal}}/{{this.url}}{{else}}{{this.url}}{{/if}}" {{#xif "this.modal === true" }}
|
|
78
|
-
data-load="{{#if ../this.variation}}/modals/{{this.url}}/index.html{{else}}./modals/{{this.url}}/index.html{{/if}}" data-bind="modal-link"{{/xif}} {{#if this.target}}target="{{this.target}}"{{#xif "this.target === '_blank'"}} rel="noopener noreferrer"{{/xif}}{{/if}}>{{{this.text}}}</a>
|
|
79
|
-
</li>
|
|
80
|
-
{{/each}}
|
|
81
|
-
<!--
|
|
82
|
-
- Define the customFooterLinks array of objects in template.js / siteconfig.js
|
|
83
|
-
- e.g customFooterLinks: [{url: 'test', text: 'Test Link'}]
|
|
84
|
-
-->
|
|
85
|
-
{{#if this.customFooterLinks}}
|
|
86
|
-
{{#each this.customFooterLinks}}
|
|
87
|
-
<li>
|
|
88
|
-
<a href="{{#if this.modal}}/{{this.url}}{{else}}{{this.url}}{{/if}}" {{#xif "this.modal === true" }}
|
|
89
|
-
data-load="{{#if ../this.variation}}/modals/{{this.url}}/index.html{{else}}./modals/{{this.url}}/index.html{{/if}}" data-bind="modal-link"{{/xif}} {{#if this.target}}target="{{this.target}}"{{#xif "this.target === '_blank'"}} rel="noopener noreferrer"{{/xif}}{{/if}}>{{{this.text}}}</a>
|
|
90
|
-
</li>
|
|
91
|
-
{{/each}}
|
|
92
|
-
{{/if}}
|
|
93
|
-
</ul>
|
|
94
|
-
</div>
|
|
95
|
-
{{#xif 'this.copyright === "middle"'}}
|
|
96
|
-
<div class="footer__row">
|
|
97
|
-
<div class="footer__copyright">
|
|
98
|
-
© Copyright {{year}} {{company_name}}. {{{quoteFooterData.copyright}}}
|
|
99
|
-
</div>
|
|
100
|
-
<div class="footer__captcha-disclosure">
|
|
101
|
-
{{quoteFooterData.capchaDisclosure.text}}
|
|
102
|
-
<a href="{{quoteFooterData.capchaDisclosure.privacy.url}}" target="_blank">{{quoteFooterData.capchaDisclosure.privacy.text}}</a> and
|
|
103
|
-
<a href="{{quoteFooterData.capchaDisclosure.terms.url}}" target="_blank">{{{quoteFooterData.capchaDisclosure.terms.text}}}</a> apply.
|
|
104
|
-
</div>
|
|
105
|
-
</div>
|
|
106
|
-
{{/xif}}
|
|
107
|
-
{{#xif "this.privacylinks === 'bottom'"}}
|
|
108
|
-
<div class="footer__row">
|
|
109
|
-
<ul class="footer__links">
|
|
110
|
-
{{#each quoteFooterData.privacyLinks}}
|
|
111
|
-
<li>
|
|
112
|
-
<a
|
|
113
|
-
{{#xif "this.modal === true" }}
|
|
114
|
-
href="{{../links.privacy}}"
|
|
115
|
-
data-load="{{#if ../this.variation}}/modals/privacy/index.html{{else}}./modals/privacy/index.html{{/if}}"
|
|
116
|
-
data-bind="modal-link"
|
|
117
|
-
data-anchor="#{{this.anchor}}"
|
|
118
|
-
{{/xif}}
|
|
119
|
-
{{#xif "this.modal === false" }}
|
|
120
|
-
href="{{this.anchor}}"
|
|
121
|
-
target="_blank"
|
|
122
|
-
rel="noopener noreferrer"
|
|
123
|
-
{{/xif}}
|
|
124
|
-
>
|
|
125
|
-
{{{this.text}}}
|
|
126
|
-
</a>
|
|
127
|
-
</li>
|
|
128
|
-
{{/each}}
|
|
129
|
-
<!--
|
|
130
|
-
- Define the customPrivacyLinks array of objects in template.js / siteconfig.js
|
|
131
|
-
- e.g customPrivacyLinks: [{ text: 'This is a custom link', anchor: 'ccpa' }]
|
|
132
|
-
-->
|
|
133
|
-
{{#if this.customPrivacyLinks}}
|
|
134
|
-
{{#each this.customPrivacyLinks}}
|
|
135
|
-
<li>
|
|
136
|
-
<a
|
|
137
|
-
{{#xif "this.modal === true" }}
|
|
138
|
-
href="{{../links.privacy}}"
|
|
139
|
-
data-load="{{#if ../this.variation}}/modals/privacy/index.html{{else}}./modals/privacy/index.html{{/if}}"
|
|
140
|
-
data-bind="modal-link"
|
|
141
|
-
data-anchor="#{{this.anchor}}"
|
|
142
|
-
{{/xif}}
|
|
143
|
-
{{#xif "this.modal === false" }}
|
|
144
|
-
href="{{this.anchor}}"
|
|
145
|
-
target="_blank"
|
|
146
|
-
rel="noopener noreferrer"
|
|
147
|
-
{{/xif}}
|
|
148
|
-
>
|
|
149
|
-
{{{this.text}}}
|
|
150
|
-
</a>
|
|
151
|
-
</li>
|
|
152
|
-
{{/each}}
|
|
153
|
-
{{/if}}
|
|
154
|
-
</ul>
|
|
155
|
-
</div>
|
|
156
|
-
{{/xif}}
|
|
157
|
-
{{#xif 'this.copyright === "bottom"'}}
|
|
158
|
-
<div class="footer__row">
|
|
159
|
-
<div class="footer__copyright">
|
|
160
|
-
© Copyright {{year}} {{company_name}}. {{{quoteFooterData.copyright}}}
|
|
161
|
-
</div>
|
|
162
|
-
<div class="footer__captcha-disclosure">
|
|
163
|
-
{{quoteFooterData.capchaDisclosure.text}}
|
|
164
|
-
<a href="{{quoteFooterData.capchaDisclosure.privacy.url}}" target="_blank">{{quoteFooterData.capchaDisclosure.privacy.text}}</a> and
|
|
165
|
-
<a href="{{quoteFooterData.capchaDisclosure.terms.url}}" target="_blank">{{{quoteFooterData.capchaDisclosure.terms.text}}}</a> apply.
|
|
166
|
-
</div>
|
|
167
|
-
</div>
|
|
168
|
-
{{/xif}}
|
|
169
|
-
</div>
|
package/src/templates/index.html
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
|
|
3
|
-
<head lang="en">
|
|
4
|
-
<script>
|
|
5
|
-
</script>
|
|
6
|
-
|
|
7
|
-
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
|
8
|
-
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
9
|
-
<meta name="viewport" content="initial-scale=1.0, width=device-width" />
|
|
10
|
-
<title>modSite</title>
|
|
11
|
-
|
|
12
|
-
<link href="/styles/home.css" rel="stylesheet" type="text/css" />
|
|
13
|
-
</head>
|
|
14
|
-
|
|
15
|
-
<body>
|
|
16
|
-
<h1>
|
|
17
|
-
It works!
|
|
18
|
-
</h1>
|
|
19
|
-
|
|
20
|
-
<form id="form" class="form" novalidate="novalidate">
|
|
21
|
-
<div id="step1" class="step step--active" data-bind="step">
|
|
22
|
-
<input type="tel" name="zip" placeholder="Zip" maxlength="5" />
|
|
23
|
-
</div>
|
|
24
|
-
</form>
|
|
25
|
-
|
|
26
|
-
<!-- build:js /scripts/vendor/jquery.js -->
|
|
27
|
-
<script src="/node_modules/jquery/dist/jquery.js"></script>
|
|
28
|
-
<!-- endbuild -->
|
|
29
|
-
|
|
30
|
-
<!-- build:js /scripts/vendor/jquery.mask.min.js -->
|
|
31
|
-
<script src="/node_modules/jquery-mask-plugin/dist/jquery.mask.min.js"></script>
|
|
32
|
-
<!-- endbuild -->
|
|
33
|
-
|
|
34
|
-
<script src="/scripts/mod-utils.js"></script>
|
|
35
|
-
|
|
36
|
-
<script src="/scripts/mod-form.js"></script>
|
|
37
|
-
|
|
38
|
-
<script src="/scripts/compiled/home.js"></script>
|
|
39
|
-
|
|
40
|
-
<!-- build:js(src) /scripts/es6.js -->
|
|
41
|
-
<script src="/scripts/es6-1.js"></script>
|
|
42
|
-
<script src="/scripts/es6-2.js"></script>
|
|
43
|
-
<!-- endbuild -->
|
|
44
|
-
</body>
|
|
45
|
-
|
|
46
|
-
</html>
|