mod-build 3.6.80-beta.3 → 3.6.80
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 +1 -1
- package/gulp-tasks/grab-shared-scripts.js +3 -7
- package/package.json +1 -1
- package/src/scripts/mod-form-contractor.js +1 -0
- 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
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## 3.6.80
|
|
4
4
|
|
|
5
|
-
-
|
|
5
|
+
- Add Dealer Network checkbox to Mod contractor form
|
|
6
6
|
|
|
7
7
|
## 3.6.79
|
|
8
8
|
|
|
@@ -17,7 +17,6 @@ const fileNames = {
|
|
|
17
17
|
callrailFileName: ''
|
|
18
18
|
};
|
|
19
19
|
var isQuotePageOrUseRelativePath = false;
|
|
20
|
-
var useAccessibleComponents = false;
|
|
21
20
|
var resourceURL = '';
|
|
22
21
|
var pathSubdirectory = '';
|
|
23
22
|
var componentFolderPath = '';
|
|
@@ -49,12 +48,10 @@ function replaceFootAssetScripts(gulp, gulpPlugins, siteSettings, siteData) {
|
|
|
49
48
|
});
|
|
50
49
|
}
|
|
51
50
|
function replaceAbandonmentJsCssSrc(gulp, gulpPlugins, siteSettings, siteData) {
|
|
52
|
-
const includeAccessibleFolder = useAccessibleComponents ? 'accessible/' : '';
|
|
53
|
-
const abandonmentJsRegex = useAccessibleComponents ? /"(?:(?!"|")[\s\S])+(abandonment\/accessible\/abandonment.*?)js"/ : /"(?:(?!"|")[\s\S])+(abandonment\/abandonment.*?)js"/;
|
|
54
51
|
const jsResourcePath = isQuotePageOrUseRelativePath ? `${pathSubdirectory}resources/scripts/abandonment/` : '/resources/scripts/abandonment/';
|
|
55
52
|
const cssResourcePath = isQuotePageOrUseRelativePath ? `${pathSubdirectory}resources/styles/components/abandonment/` : '/resources/styles/components/abandonment/';
|
|
56
53
|
return gulp.src(siteSettings.srcFolder + '/templates/abandonment/*.html')
|
|
57
|
-
.pipe(replace(
|
|
54
|
+
.pipe(replace(/"(?:(?!"|")[\s\S])+(abandonment\/abandonment.*?)js"/, `"${jsResourcePath}${fileNames.abandonmentJsFileName}"`))
|
|
58
55
|
.pipe(replace(/"(?:(?!"|")[\s\S])+(components\/abandonment\/abandonment.*?)css"/, `"${cssResourcePath}${fileNames.abandonmentStylesFileName}"`))
|
|
59
56
|
.pipe(gulp.dest(siteSettings.srcFolder + '/templates/abandonment'));
|
|
60
57
|
}
|
|
@@ -241,9 +238,9 @@ const TASKS = {
|
|
|
241
238
|
module.exports = function(gulp, gulpPlugins, siteSettings, siteData) {
|
|
242
239
|
const { isLocal } = siteSettings
|
|
243
240
|
const isQuotePage = siteData.siteData && siteData.siteData.isQuotePage || siteData && siteData.isQuotePage;
|
|
241
|
+
const useAccessibleComponents = siteData.siteData && siteData.siteData.useAccessibleConfig || siteData && siteData.useAccessibleConfig;
|
|
244
242
|
const useRelativePathForResources = siteData.siteData && siteData.siteData.useRelativePathForResources || siteData && siteData.useRelativePathForResources;
|
|
245
|
-
|
|
246
|
-
componentFolderPath = useAccessibleComponents === true ? 'accessible-components' : 'shared-components';
|
|
243
|
+
componentFolderPath = useAccessibleComponents === true ? 'accessible-components' : 'shared-components';
|
|
247
244
|
isQuotePageOrUseRelativePath = isQuotePage === true || useRelativePathForResources === true;
|
|
248
245
|
resourceURL = `https://${siteSettings.nodeEnv}/quote/resources`;
|
|
249
246
|
const isPathSubdirectory = siteData.siteData && siteData.siteData.pathSubdirectory || siteData && siteData.pathSubdirectory;
|
|
@@ -262,7 +259,6 @@ module.exports = function(gulp, gulpPlugins, siteSettings, siteData) {
|
|
|
262
259
|
if (useAccessibleComponents === true) {
|
|
263
260
|
if (task.url.includes('abandonment.min.js')) {
|
|
264
261
|
task.url = 'shared-resources/scripts/abandonment/accessible/abandonment.min.js';
|
|
265
|
-
task.config.dest = 'scripts/abandonment/accessible';
|
|
266
262
|
task.config.mapUrl = 'shared-resources/scripts/abandonment/accessible/abandonment.min.js.map';
|
|
267
263
|
}
|
|
268
264
|
}
|
package/package.json
CHANGED
|
@@ -309,6 +309,7 @@ modForm.formatContractorDataForModApi = function(formData, currentStep) {
|
|
|
309
309
|
lastName: formData.lastName,
|
|
310
310
|
primaryProjectClass: formData.primaryProjectClass,
|
|
311
311
|
multipleTrades: formData.multipleTrades ? 1 : 0,
|
|
312
|
+
contractorNetwork: formData.contractorNetwork ? 1 : 0,
|
|
312
313
|
companyName: formData.companyName,
|
|
313
314
|
phone: formData.homePhone,
|
|
314
315
|
email: formData.email,
|
|
@@ -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>
|