mod-build 4.0.91 → 4.0.92

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.
Files changed (137) hide show
  1. package/package.json +1 -2
  2. package/public/resources/scripts/abandonment/abandonment-a4bbb36fbc8ed64042b8.min.js +2 -0
  3. package/public/resources/scripts/abandonment/abandonment.min.js +2 -0
  4. package/public/resources/scripts/callrail/callrail-14011d73b50a928de4b4.min.js +2 -0
  5. package/public/resources/scripts/callrail/callrail.min.js +2 -0
  6. package/public/resources/scripts/footer/footer-component-46dc0d7ca6af4fc3b76b.min.js +2 -0
  7. package/public/resources/scripts/footer/footer-component.min.js +2 -0
  8. package/public/resources/scripts/geolocation/geolocation.min.js +2 -0
  9. package/public/resources/scripts/helpers/addVWOTestQueryParam.min.js +2 -0
  10. package/public/resources/scripts/helpers/addVWOTestQueryParam.min.js.map +1 -0
  11. package/public/resources/scripts/helpers/additionalOpts.min.js +2 -0
  12. package/public/resources/scripts/helpers/additionalOpts.min.js.map +1 -0
  13. package/public/resources/scripts/helpers/calls-only.min.js +2 -0
  14. package/public/resources/scripts/helpers/calls-only.min.js.map +1 -0
  15. package/public/resources/scripts/helpers/getPhoneAssignmentData.min.js +2 -0
  16. package/public/resources/scripts/helpers/getPhoneAssignmentData.min.js.map +1 -0
  17. package/public/resources/scripts/helpers/initNumericOnlyFields.min.js +2 -0
  18. package/public/resources/scripts/helpers/initNumericOnlyFields.min.js.map +1 -0
  19. package/public/resources/scripts/helpers/initQSForm.min.js +2 -0
  20. package/public/resources/scripts/helpers/initQSForm.min.js.map +1 -0
  21. package/public/resources/scripts/helpers/initQuadTransform.min.js +2 -0
  22. package/public/resources/scripts/helpers/initQuadTransform.min.js.map +1 -0
  23. package/public/resources/scripts/helpers/isZipCodeValid.min.js +2 -0
  24. package/public/resources/scripts/helpers/isZipCodeValid.min.js.map +1 -0
  25. package/public/resources/scripts/helpers/observeVWOVariation.min.js +2 -0
  26. package/public/resources/scripts/helpers/observeVWOVariation.min.js.map +1 -0
  27. package/public/resources/scripts/helpers/opts.min.js +2 -0
  28. package/public/resources/scripts/helpers/opts.min.js.map +1 -0
  29. package/public/resources/scripts/jornaya.hbs +35 -0
  30. package/public/resources/scripts/jornaya.html +35 -0
  31. package/public/resources/scripts/mod-alytics/modalytics-be44027508c0438f6709.min.js +2 -0
  32. package/public/resources/scripts/mod-alytics/modalytics.min.js +2 -0
  33. package/public/resources/scripts/mod-form/form/contractor-0918337caf3dfede1609.min.js +2 -0
  34. package/public/resources/scripts/mod-form/form/contractor.min.js +2 -0
  35. package/public/resources/scripts/mod-form/form/homeowner-19a121b0e596042326f4.min.js +2 -0
  36. package/public/resources/scripts/mod-form/form/homeowner.min.js +2 -0
  37. package/public/resources/scripts/mod-utils/modutils-bc275eb41af515f626ef.min.js +2 -0
  38. package/public/resources/scripts/mod-utils/modutils.min.js +2 -0
  39. package/public/resources/scripts/trusted-form.hbs +38 -0
  40. package/public/resources/scripts/trusted-form.html +38 -0
  41. package/public/resources/styles/components/abandonment/abandonment-8a673f060817db6cb7dc.min.css +1 -0
  42. package/public/resources/styles/components/abandonment/abandonment.min.css +1 -0
  43. package/public/resources/styles/components/footer/mod-footer-d233fa64b6c8297c70ec.min.css +1 -0
  44. package/public/resources/styles/components/footer/mod-footer.min.css +1 -0
  45. package/public/resources/styles/components/footer/qs-footer-926e67c28d10c729db46.min.css +1 -0
  46. package/public/resources/styles/components/footer/qs-footer.min.css +1 -0
  47. package/src/resources/data/tcpa.json +4 -0
  48. package/src/resources/templates/modals/about/index.hbs +9 -0
  49. package/src/resources/templates/modals/about/index.html +9 -0
  50. package/src/resources/templates/modals/contact-us/index.hbs +348 -0
  51. package/src/resources/templates/modals/contact-us/index.html +348 -0
  52. package/src/resources/templates/modals/e-sign-consent/index.hbs +35 -0
  53. package/src/resources/templates/modals/e-sign-consent/index.html +35 -0
  54. package/src/resources/templates/modals/faq/index.hbs +9 -0
  55. package/src/resources/templates/modals/faq/index.html +9 -0
  56. package/src/resources/templates/modals/privacy/index.hbs +237 -0
  57. package/src/resources/templates/modals/privacy/index.html +237 -0
  58. package/src/resources/templates/modals/terms/index.hbs +167 -0
  59. package/src/resources/templates/modals/terms/index.html +167 -0
  60. package/src/scripts/retry-fetch.js +39 -0
  61. package/src/shared-components/call-tracking/_call-tracking.scss +311 -0
  62. package/src/shared-components/call-tracking/call-tracking-icon.html +8 -0
  63. package/src/shared-components/call-tracking/call-tracking.html +81 -0
  64. package/src/shared-components/call-tracking/phone.svg +6 -0
  65. package/src/shared-components/card-button/_card-button.scss +49 -0
  66. package/src/shared-components/card-button/card-button.html +9 -0
  67. package/src/shared-components/carousel/_carousel.scss +106 -0
  68. package/src/shared-components/carousel/carousel.html +23 -0
  69. package/src/shared-components/carousel/carousel.js +3573 -0
  70. package/src/shared-components/carousel/carousel.js.map +1 -0
  71. package/src/shared-components/carousel/carousel.min.js +2 -0
  72. package/src/shared-components/carousel/carousel.min.js.map +1 -0
  73. package/src/shared-components/carousel/carousel.min.min.js +2 -0
  74. package/src/shared-components/carousel/carousel.min.min.js.map +1 -0
  75. package/src/shared-components/checkbox/_checkbox.scss +130 -0
  76. package/src/shared-components/checkbox/checkbox.html +10 -0
  77. package/src/shared-components/consent-capture/tcpa.html +12 -0
  78. package/src/shared-components/expand-collapse/_expand-collapse.scss +93 -0
  79. package/src/shared-components/expand-collapse/expand-collapse.html +8 -0
  80. package/src/shared-components/expand-collapse/expand-collapse.js +40 -0
  81. package/src/shared-components/expand-collapse/expand-collapse.min.js +2 -0
  82. package/src/shared-components/expand-collapse/expand-collapse.min.js.map +1 -0
  83. package/src/shared-components/featured-block/_featured-block.scss +191 -0
  84. package/src/shared-components/featured-block/featured-block.html +80 -0
  85. package/src/shared-components/foot-assets/foot-assets.html +107 -0
  86. package/src/shared-components/form-tcpa/form-tcpa-spanish.html +61 -0
  87. package/src/shared-components/form-tcpa/form-tcpa.html +55 -0
  88. package/src/shared-components/gtm-body/gtm-body.html +4 -0
  89. package/src/shared-components/head/head.html +195 -0
  90. package/src/shared-components/header/_header.scss +200 -0
  91. package/src/shared-components/header/header.html +79 -0
  92. package/src/shared-components/hero/_hero.scss +276 -0
  93. package/src/shared-components/hero/hero.html +136 -0
  94. package/src/shared-components/how-it-works/_how-it-works.scss +138 -0
  95. package/src/shared-components/how-it-works/how-it-works.html +19 -0
  96. package/src/shared-components/input/_input.scss +242 -0
  97. package/src/shared-components/input/input.html +30 -0
  98. package/src/shared-components/preloader/_preloader.scss +61 -0
  99. package/src/shared-components/preloader/preloader.html +49 -0
  100. package/src/shared-components/progress-bar/_progress-bar.scss +142 -0
  101. package/src/shared-components/progress-bar/progress-bar.html +20 -0
  102. package/src/shared-components/progress-bar/progress-bar.js +26 -0
  103. package/src/shared-components/progress-bar/progress-bar.min.js +2 -0
  104. package/src/shared-components/progress-bar/progress-bar.min.js.map +1 -0
  105. package/src/shared-components/radio-button/_radio-button.scss +577 -0
  106. package/src/shared-components/radio-button/radio-button.html +25 -0
  107. package/src/shared-components/reviews/_reviews.scss +79 -0
  108. package/src/shared-components/reviews/reviews.html +27 -0
  109. package/src/shared-components/section-deals/sitemap.xml +9 -0
  110. package/src/shared-components/select/_select.scss +61 -0
  111. package/src/shared-components/select/select.html +8 -0
  112. package/src/shared-components/steps/_steps.scss +431 -0
  113. package/src/shared-components/steps/defaultFormFieldConfig.json +64 -0
  114. package/src/shared-components/steps/step-fields.html +36 -0
  115. package/src/shared-components/steps/steps.html +136 -0
  116. package/src/shared-components/textarea/_textarea.scss +96 -0
  117. package/src/shared-components/textarea/textarea.html +13 -0
  118. package/src/shared-components/theme-toggle/_theme-toggle.scss +68 -0
  119. package/src/shared-components/theme-toggle/theme-toggle.html +34 -0
  120. package/src/shared-components/tile/_tile.scss +117 -0
  121. package/src/shared-components/tile/tile.html +27 -0
  122. package/src/shared-components/value-props/_value-props.scss +99 -0
  123. package/src/shared-components/value-props/value-props.html +17 -0
  124. package/src/shared-components/zip-control/_zip-control.scss +42 -0
  125. package/src/shared-components/zip-control/zip-control.html +21 -0
  126. package/tasks/add-editorconfig.js +3 -3
  127. package/tasks/get-default-trade-questions.js +8 -8
  128. package/tasks/grab-b2b-data.js +9 -30
  129. package/tasks/grab-cdn.js +4 -13
  130. package/tasks/grab-code-review-rules.js +4 -3
  131. package/tasks/grab-form-helpers.js +11 -27
  132. package/tasks/grab-global-fonts.js +7 -13
  133. package/tasks/grab-jsdoc.js +10 -30
  134. package/tasks/grab-shared-components.js +10 -19
  135. package/tasks/grab-shared-scripts.js +8 -21
  136. package/tasks/templates.js +28 -41
  137. package/src/scripts/retry-axios.js +0 -23
@@ -0,0 +1,107 @@
1
+ {{#unless this.page.footAssetsConfig.disableJquery}}
2
+ <!-- build:js {{#if this.buildRootPath}}{{this.buildRootPath}}{{else}}{{#unless this.useRelativeBuildPath}}/{{/unless}}{{/if}}scripts/vendor/jquery.js -->
3
+ <script src="{{#if this.nodeModulesPath}}{{this.nodeModulesPath}}{{/if}}node_modules/jquery/dist/jquery.js" {{#if this.page.footAssetsConfig.deferJquery}}defer{{/if}} {{#if this.page.footAssetsConfig.asyncJquery}}async{{/if}}></script>
4
+ <!-- endbuild -->
5
+ {{/unless}}
6
+
7
+ {{#unless this.page.footAssetsConfig.disableModUtils}}
8
+ <script src="/resources/scripts/mod-utils/modutils-bc275eb41af515f626ef.min.js" {{#if this.page.footAssetsConfig.deferModUtils}}defer{{/if}} {{#if this.page.footAssetsConfig.asyncModUtils}}async{{/if}}></script>
9
+ {{/unless}}
10
+
11
+ <!-- load additionalAssets only from node_modules -->
12
+ {{#if page.footAssetsConfig.additionalAssets}}
13
+ {{#each page.footAssetsConfig.additionalAssets}}
14
+ {{#xif "!this.bundleInAllJSChunk && this.isNodeModule"}}
15
+ <!-- build:js {{#if this.buildPath}}{{this.buildPath}}{{else}}{{#unless ../this.useRelativeBuildPath}}/{{/unless}}scripts/vendor{{/if}}/{{this.chunkName}} -->
16
+ <script src="{{#if ../this.nodeModulesPath}}{{../this.nodeModulesPath}}{{/if}}node_modules/{{this.src}}" {{#if this.defer}}defer{{/if}} {{#if this.async}}async{{/if}}></script>
17
+ <!-- endbuild -->
18
+ {{/xif}}
19
+ {{/each}}
20
+ {{/if}}
21
+
22
+ {{#unless this.page.footAssetsConfig.disableModCarousel}}
23
+ <script src="{{#if this.nodeModulesPath}}{{this.nodeModulesPath}}{{else}}{{#unless this.useRelativeBuildPath}}/{{/unless}}{{/if}}shared-components/carousel/carousel.min.js" {{#if this.page.footAssetsConfig.deferModCarousel}}defer{{/if}} {{#if this.page.footAssetsConfig.asyncModCarousel}}async{{/if}}></script>
24
+ {{/unless}}
25
+
26
+ {{#if this.page.footAssetsConfig.includeCallrailJs}}
27
+ <script src="/resources/scripts/callrail/callrail-14011d73b50a928de4b4.min.js" defer></script>
28
+ {{/if}}
29
+
30
+ <!-- load additionalAssets from site-level, CDN or third party CDN -->
31
+ {{#if page.footAssetsConfig.additionalAssets}}
32
+ {{#each page.footAssetsConfig.additionalAssets}}
33
+ {{#xif "!this.bundleInAllJSChunk && !this.isNodeModule"}}
34
+ <script src="
35
+ {{#if ../this.isLocal}}
36
+ {{#if this.localSrc}}
37
+ {{this.localSrc}}
38
+ {{else}}
39
+ {{#if this.useModCdn}}
40
+ https://{{../nodeEnv}}/{{this.src}}
41
+ {{else}}
42
+ {{this.src}}
43
+ {{/if}}
44
+ {{/if}}
45
+ {{else}}
46
+ {{#if this.useModCdn}}
47
+ https://{{../nodeEnv}}/{{this.src}}
48
+ {{else}}
49
+ {{this.src}}
50
+ {{/if}}
51
+ {{/if}}" {{#if this.defer}}defer{{/if}} {{#if this.async}}async{{/if}}></script>
52
+ {{/xif}}
53
+ {{/each}}
54
+ {{/if}}
55
+
56
+ {{#xif " !this.page.footAssetsConfig.disableBSTransition && this.path !== 'thankyou' && this.path !== 'sorry' "}}
57
+ <!-- build:js {{#if this.buildRootPath}}{{this.buildRootPath}}{{else}}{{#unless this.useRelativeBuildPath}}/{{/unless}}{{/if}}scripts/vendor/bootstrap.js -->
58
+ <script src="{{#if this.nodeModulesPath}}{{this.nodeModulesPath}}{{/if}}node_modules/bootstrap-sass/assets/javascripts/bootstrap/transition.js" defer></script>
59
+ <!-- endbuild -->
60
+ {{/xif}}
61
+
62
+ {{#xif "(this.includeModFormIncludes || (this.path !== 'thankyou' && this.path !== 'sorry'))" }}
63
+ {{#xif " this.page.footAssetsConfig.useNewModForm === true "}}
64
+ <script src="/resources/scripts/mod-form/form/homeowner-19a121b0e596042326f4.min.js" {{#if this.page.footAssetsConfig.deferNewModForm}}defer{{/if}} {{#if this.page.footAssetsConfig.asyncNewModForm}}async{{/if}}></script>
65
+ {{else}}
66
+ {{#unless this.page.footAssetsConfig.disableModForm}}
67
+ <script src="https://{{nodeEnv}}/quote/resources/mod-form/mod-form.min.js"></script>
68
+ {{/unless}}
69
+ {{#unless this.page.footAssetsConfig.disableQsForm}}
70
+ <script src="https://{{nodeEnv}}/quote/resources/mod-form/qs-form.min.js"></script>
71
+ {{/unless}}
72
+ {{/xif}}
73
+ {{/xif}}
74
+
75
+ <!-- QS white label assets -->
76
+ {{#xif "this.path !== 'thankyou' && this.path !== 'sorry' && this.isQSPage === true" }}
77
+ <!-- build:js(src) {{#if this.buildRootPath}}{{this.buildRootPath}}{{else}}{{#unless this.useRelativeBuildPath}}/{{/unless}}{{/if}}scripts/components/all.js -->
78
+ {{#unless this.page.footAssetsConfig.disableFormJs}}
79
+ <script src="/scripts/components/form.js" defer></script>
80
+ {{/unless}}
81
+ {{#unless this.page.footAssetsConfig.disableProgressBarJS}}
82
+ <script src="/scripts/components/progress-bar.js" defer></script>
83
+ {{/unless}}
84
+ {{#unless this.page.footAssetsConfig.disableExpandCollapse}}
85
+ <script src="/scripts/components/expand-collapse.js" defer></script>
86
+ {{/unless}}
87
+ {{#if page.footAssetsConfig.additionalAssets}}
88
+ {{#each page.footAssetsConfig.additionalAssets}}
89
+ {{#xif "this.bundleInAllJSChunk && !this.isNodeModule"}}
90
+ <script src="{{this.src}}" {{#if this.defer}}defer{{/if}} {{#if this.async}}async{{/if}}></script>
91
+ {{/xif}}
92
+ {{/each}}
93
+ {{/if}}
94
+ <!-- endbuild -->
95
+ {{/xif}}
96
+
97
+ {{#if this.path}}
98
+ <script src="{{#if this.src}}{{this.src}}{{else}}scripts{{/if}}/{{this.path}}.js" defer></script>
99
+ {{/if}}
100
+
101
+ {{#unless this.page.footAssetsConfig.disableFooter}}
102
+ <script src="/resources/scripts/footer/footer-component-46dc0d7ca6af4fc3b76b.min.js" data-type="{{#if isQSPage}}qs{{else}}mod{{/if}}" async defer></script>
103
+ {{/unless}}
104
+
105
+ {{#if this.page.footAssetsConfig.devOpsTrackingId}}
106
+ <!-- {{uppercase this.page.footAssetsConfig.devOpsTrackingId}} -->
107
+ {{/if}}
@@ -0,0 +1,61 @@
1
+ <div class="tcpa form-tcpa" {{#if this.hidden}}style="display:none;"{{/if}}>
2
+ {{#unless this.hidehr}}
3
+ <hr>
4
+ {{/unless}}
5
+ <span class="tcpa-copy--spanish">La comunicación quizás sea en inglés.</span>
6
+ <span id="tcpa-copy" class="tcpa-copy" data-tcpa-loaded>
7
+ {{{this.tcpaText}}}
8
+ </span>
9
+ <span class="tcpa-copy--spanish">Respetamos su privacidad y queremos informarle algunas cosas. Al enviar esta solicitud, autoriza a Modernize y a hasta cuatro empresas de servicios del hogar a llamarlo al número de teléfono proporcionado para analizar su proyecto. Usted acepta que algunos pueden utilizar marcación automática, mensajes pregrabados o mensajes SMS para comunicarse con usted y que de ninguna manera está obligado a comprarles ningún producto o servicio. Es totalmente su elección. Consulte nuestro Aviso de privacidad y nuestros Términos de uso.</span>
10
+ </div>
11
+ <style>
12
+ .tcpa-copy--spanish {
13
+ display: block;
14
+ margin: 10px 0;
15
+ }
16
+ .tcpa-copy label {
17
+ cursor: pointer;
18
+ font-weight: bold;
19
+ margin: 0;
20
+ padding: 0 0 0 18px;
21
+ position: relative;
22
+ white-space: nowrap;
23
+ }
24
+ .tcpa-copy input[type=checkbox]{
25
+ background: 0 0;
26
+ border-radius: 0;
27
+ left: 2px;
28
+ margin: 0;
29
+ position: absolute;
30
+ top: 1px;
31
+ }
32
+ .tcpa-copy input[type=checkbox]:before {
33
+ background: #FFF;
34
+ border: 1px solid #949494;
35
+ border-radius: 2px;
36
+ box-shadow: none;
37
+ color: #FFF;
38
+ content: '';
39
+ display: block;
40
+ font-family: 'modicons-fill';
41
+ height: 12px;
42
+ text-align: center;
43
+ transition: color .15s ease;
44
+ width: 12px;
45
+ }
46
+ .tcpa-copy input[type=checkbox]:checked:before{
47
+ background-color: #3678BA;
48
+ border: 0;
49
+ color: #FFF;
50
+ content: '\e920';
51
+ font-size: 8px;
52
+ line-height: 12px;
53
+ }
54
+ .tcpa-copy input[type=checkbox]:focus {
55
+ outline: 1px solid #2E669E !important;
56
+ outline-offset: 1px;
57
+ }
58
+ .tcpa-copy a {
59
+ font-weight: bold;
60
+ }
61
+ </style>
@@ -0,0 +1,55 @@
1
+ <div class="tcpa form-tcpa" {{#if this.hidden}}style="display:none;"{{/if}}>
2
+ {{#unless this.hidehr}}
3
+ <hr>
4
+ {{/unless}}
5
+ <span id="tcpa-copy" class="tcpa-copy" data-tcpa-loaded>
6
+ {{{this.tcpaText}}}
7
+ </span>
8
+ </div>
9
+ <style>
10
+ .tcpa-copy label {
11
+ cursor: pointer;
12
+ font-weight: bold;
13
+ margin: 0;
14
+ padding: 0 0 0 18px;
15
+ position: relative;
16
+ white-space: nowrap;
17
+ }
18
+ .tcpa-copy input[type=checkbox]{
19
+ background: 0 0;
20
+ border-radius: 0;
21
+ left: 2px;
22
+ margin: 0;
23
+ position: absolute;
24
+ top: 1px;
25
+ }
26
+ .tcpa-copy input[type=checkbox]:before {
27
+ background: #FFF;
28
+ border: 1px solid #949494;
29
+ border-radius: 2px;
30
+ box-shadow: none;
31
+ color: #FFF;
32
+ content: '';
33
+ display: block;
34
+ font-family: 'modicons-fill';
35
+ height: 12px;
36
+ text-align: center;
37
+ transition: color .15s ease;
38
+ width: 12px;
39
+ }
40
+ .tcpa-copy input[type=checkbox]:checked:before{
41
+ background-color: #3678BA;
42
+ border: 0;
43
+ color: #FFF;
44
+ content: '\e920';
45
+ font-size: 8px;
46
+ line-height: 12px;
47
+ }
48
+ .tcpa-copy input[type=checkbox]:focus {
49
+ outline: 1px solid #2E669E !important;
50
+ outline-offset: 1px;
51
+ }
52
+ .tcpa-copy a {
53
+ font-weight: bold;
54
+ }
55
+ </style>
@@ -0,0 +1,4 @@
1
+ <!-- Google Tag Manager (noscript) -->
2
+ <noscript><iframe src="https://www.googletagmanager.com/ns.html?id={{gtm_container_ID}}"
3
+ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
4
+ <!-- End Google Tag Manager (noscript) -->
@@ -0,0 +1,195 @@
1
+ <head>
2
+ {{#if page.headConfig.useDynamicGtm}}
3
+ <script>
4
+ {{ fileInclude 'node_modules/mod-build/src/scripts/has-qs-params.js' }}
5
+ var gtm_container_ID = window.isQSPage ? '{{qs_gtm_container_ID}}' : '{{gtm_container_ID}}';
6
+ </script>
7
+ {{/if}}
8
+
9
+ <!-- assets links afterBegin -->
10
+ {{#if page.headConfig.useModAnalytics}}
11
+ <script src="/resources/scripts/mod-alytics/modalytics-be44027508c0438f6709.min.js" {{#if page.headConfig.deferModAnalytics}}defer{{/if}} {{#if page.headConfig.asyncModAnalytics}}async{{/if}}></script>
12
+ {{/if}}
13
+
14
+ {{#if page.headConfig.additionalAssets.afterBegin}}
15
+ {{#each page.headConfig.additionalAssets.afterBegin}}
16
+ {{#xif "this.type === 'style' "}}
17
+ <link href="{{#if isLocal}}
18
+ {{#if this.localSrc}}
19
+ {{this.localSrc}}
20
+ {{else}}
21
+ {{#if this.useModCdn}}
22
+ https://{{../nodeEnv}}/{{this.src}}
23
+ {{else}}
24
+ {{this.src}}
25
+ {{/if}}
26
+ {{/if}}
27
+ {{else}}
28
+ {{#if this.useModCdn}}
29
+ https://{{../nodeEnv}}/{{this.src}}
30
+ {{else}}
31
+ {{this.src}}
32
+ {{/if}}
33
+ {{/if}}" rel="stylesheet" type="text/css" />
34
+ {{/xif}}
35
+ {{#xif "this.type === 'script' "}}
36
+ <script
37
+ src="{{#if isLocal}}
38
+ {{#if this.localSrc}}
39
+ {{this.localSrc}}
40
+ {{else}}
41
+ {{#if this.useModCdn}}
42
+ https://{{../nodeEnv}}/{{this.src}}
43
+ {{else}}
44
+ {{this.src}}
45
+ {{/if}}
46
+ {{/if}}
47
+ {{else}}
48
+ {{#if this.useModCdn}}
49
+ https://{{../nodeEnv}}/{{this.src}}
50
+ {{else}}
51
+ {{this.src}}
52
+ {{/if}}
53
+ {{/if}}"
54
+ {{#if this.defer}}defer{{/if}}
55
+ {{#if this.async}}async{{/if}}
56
+ ></script>
57
+ {{/xif}}
58
+ {{/each}}
59
+ {{/if}}
60
+
61
+ <!-- Include vwo setup -->
62
+ {{#xif "this.page.headConfig.vwoSetup.vwoPathArray.indexOf(this.path) > -1" }}
63
+ <link rel="preconnect" href="https://dev.visualwebsiteoptimizer.com">
64
+ <!-- Do not double hit our analytical resources (Heap/Google Analytics) if the page is going to be redirected by a VWO a/b test-->
65
+ {{ fileInclude 'node_modules/mod-build/src/templates/_partials/scripts/vwo-redirect-callback.html'
66
+ nogtm = true
67
+ noheap = true
68
+ }}
69
+ {{else}}
70
+ {{ fileInclude 'node_modules/mod-build/src/templates/_partials/scripts/analytics.html'
71
+ nogtm = true
72
+ noheap = true
73
+ }}
74
+ {{/xif}}
75
+
76
+ {{#if this.canonicalURL}}
77
+ <link rel="canonical" href="{{this.canonicalURL}}" />
78
+ {{/if}}
79
+
80
+ <!-- meta tags -->
81
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
82
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
83
+ <meta name="viewport" content="initial-scale=1.0, width=device-width" />
84
+
85
+ {{#unless page.headConfig.disableRobots}}
86
+ <meta name="robots" content="{{#if page.headConfig.robotsCsv}}{{page.headConfig.robotsCsv}}{{else}}noindex,nofollow{{/if}}"/>
87
+ {{/unless}}
88
+
89
+ {{#unless page.headConfig.disableOgTags}}
90
+ <meta property="og:title" content="{{page.headConfig.title}}" />
91
+ <meta property="og:description" content="{{page.headConfig.description}}" />
92
+ {{/unless}}
93
+
94
+ <meta name="description" property="description" content="{{#if this.customDescription}}{{this.customDescription}}{{else}}{{page.headConfig.description}}{{/if}}" />
95
+ <meta name="keywords" property="keywords" content="{{#if this.customKeywords}}{{this.customKeywords}}{{else}}{{page.headConfig.keywords}}{{/if}}" />
96
+
97
+ <!-- preconnect google fonts -->
98
+ <link rel="preconnect" href="https://fonts.googleapis.com">
99
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
100
+ {{#if page.headConfig.preConnect}}
101
+ {{#each page.headConfig.preConnect}}
102
+ <link
103
+ {{#if this.rel}}rel="{{this.rel}}"{{/if}}
104
+ {{#if this.href}}href="{{this.href}}"{{/if}}
105
+ {{#if this.as}}as="{{this.as}}"{{/if}}
106
+ {{#if this.crossorigin}}crossorigin="{{this.crossorigin}}"{{/if}}
107
+ {{#if this.media}}media="{{this.media}}"{{/if}}
108
+ {{#if this.type}}type="{{this.type}}"{{/if}}
109
+ {{#if this.fetchpriority}}fetchpriority="{{this.fetchpriority}}"{{/if}}
110
+ >
111
+ {{/each}}
112
+ {{/if}}
113
+ <!-- site title -->
114
+ {{#if this.customTitle}}
115
+ <title>{{{this.customTitle}}}</title>
116
+ {{else}}
117
+ <title>
118
+ {{#if page.headConfig.inverseTitle}}
119
+ {{#unless page.headConfig.hideTitleCompanyName}}{{company_name}} | {{/unless}}
120
+ {{#if this.pageTitle}}
121
+ {{this.pageTitle}}
122
+ {{else}}
123
+ {{#if page.headConfig.title}}
124
+ {{page.headConfig.title}}
125
+ {{/if}}
126
+ {{/if}}
127
+ {{else}}
128
+ {{#if this.pageTitle}}
129
+ {{this.pageTitle}}
130
+ {{else}}
131
+ {{#if page.headConfig.title}}
132
+ {{page.headConfig.title}}
133
+ {{/if}}
134
+ {{/if}}
135
+ {{#unless page.headConfig.hideTitleCompanyName}} | {{company_name}}{{/unless}}
136
+ {{/if}}
137
+ </title>
138
+ {{/if}}
139
+
140
+ {{#if page.headConfig.faviconPath}}
141
+ <!-- favicon link -->
142
+ <link href="{{page.headConfig.faviconPath}}" rel="shortcut icon" type="image/x-icon" />
143
+ {{/if}}
144
+
145
+ <!-- assets links beforeEnd -->
146
+ {{#unless page.headConfig.noBsBaseStyles}}
147
+ <link href="{{#if this.src}}{{this.src}}{{else}}{{#unless this.useRelativePath}}/{{/unless}}{{/if}}styles/vendor/bootstrap-base.css" rel="stylesheet" type="text/css" />
148
+ {{/unless}}
149
+
150
+ {{#if page.headConfig.additionalAssets.beforeEnd}}
151
+ {{#each page.headConfig.additionalAssets.beforeEnd}}
152
+ {{#xif "this.type === 'style' "}}
153
+ <link href="{{#if isLocal}}
154
+ {{#if this.localSrc}}
155
+ {{this.localSrc}}
156
+ {{else}}
157
+ {{#if this.useModCdn}}
158
+ https://{{../nodeEnv}}/{{this.src}}
159
+ {{else}}
160
+ {{this.src}}
161
+ {{/if}}
162
+ {{/if}}
163
+ {{else}}
164
+ {{#if this.useModCdn}}
165
+ https://{{../nodeEnv}}/{{this.src}}
166
+ {{else}}
167
+ {{this.src}}
168
+ {{/if}}
169
+ {{/if}}" rel="stylesheet" type="text/css" />
170
+ {{/xif}}
171
+ {{#xif "this.type === 'script' "}}
172
+ <script src="{{#if isLocal}}
173
+ {{#if this.localSrc}}
174
+ {{this.localSrc}}
175
+ {{else}}
176
+ {{#if this.useModCdn}}
177
+ https://{{../nodeEnv}}/{{this.src}}
178
+ {{else}}
179
+ {{this.src}}
180
+ {{/if}}
181
+ {{/if}}
182
+ {{else}}
183
+ {{#if this.useModCdn}}
184
+ https://{{../nodeEnv}}/{{this.src}}
185
+ {{else}}
186
+ {{this.src}}
187
+ {{/if}}
188
+ {{/if}}" {{#if this.defer}}defer{{/if}} {{#if this.async}}async{{/if}}></script>
189
+ {{/xif}}
190
+ {{/each}}
191
+ {{/if}}
192
+
193
+ <!-- load styles based on path name -->
194
+ <link href="{{#if this.src}}{{this.src}}{{else}}{{#unless this.useRelativePath}}/{{/unless}}{{/if}}styles/{{this.path}}.css" rel="stylesheet" type="text/css" />
195
+ </head>
@@ -0,0 +1,200 @@
1
+ $header-background-color: $color-white !default;
2
+ $header-padding-desktop: 15px 0 !default;
3
+ $header-padding-mobile: 8px 0 !default;
4
+
5
+ $header-container-padding: 0 15px !default;
6
+
7
+ $header-content-align-items: center !default;
8
+ $header-content-display: flex !default;
9
+ $header-content-justify-content-mobile: center !default;
10
+ $header-content-justify-content-desktop: space-between !default;
11
+
12
+ $header-logo-display: inline-block !default;
13
+ $header-logo-height-desktop: 35px !default;
14
+ $header-logo-width-desktop: 152px !default;
15
+ $header-logo-margin-desktop: 0 !default;
16
+ $header-logo-height-mobile: 25px !default;
17
+ $header-logo-width-mobile: 112px !default;
18
+ $header-logo-margin-mobile: $header-logo-margin-desktop !default;
19
+
20
+ $header-back-button-background-color: transparent !default;
21
+ $header-back-button-border-right: 1px solid $color-charcoal2 !default;
22
+ $header-back-button-color: $color-charcoal2 !default;
23
+ $header-back-button-font-size: 21px !default;
24
+ $header-back-button-line-height: 1 !default;
25
+ $header-back-button-padding: 0 20px !default;
26
+ $header-show-button-button-flex: 0 15% !default;
27
+ $header-show-button-logo-flex: 0 85% !default;
28
+ $header-show-button-logo-margin: 20px 0 !default;
29
+ $header-show-button-padding: 0 !default;
30
+
31
+ $header-bbb-logo-height-desktop: 42px !default;
32
+ $header-bbb-logo-width-desktop: 115px !default;
33
+ $header-bbb-logo-height-mobile: 32px !default;
34
+ $header-bbb-logo-width-mobile: 82.5px !default;
35
+ $header-bbb-logo-display: inherit !default;
36
+
37
+ $header-tagline-color: $color-white !default;
38
+ $header-tagline-font-size: 18px !default;
39
+ $header-tagline-font-weight: 700 !default;
40
+
41
+ $callrail-display: none !default;
42
+ $call-color: $color-black !default;
43
+ $call-font-size: 18px !default;
44
+ $call-font-weight: 500 !default;
45
+ $call-number-font-weight: 600 !default;
46
+ $call-link-color: inherit !default;
47
+ $call-link-text-decoration: none !default;
48
+ $call-icon-width: 12px !default;
49
+ $call-icon-width-large: 20px !default;
50
+
51
+ $call-button-align-self: center !default;
52
+ $call-button-background-color: $color-white !default;
53
+ $call-button-border: 1px solid $call-color !default;
54
+ $call-button-border-radius: 15px !default;
55
+ $call-button-color: $call-color !default;
56
+ $call-button-font-size: 12px !default;
57
+ $call-button-font-weight: $call-font-weight !default;
58
+ $call-button-margin: 0 !default;
59
+ $call-button-padding: 4px 14px !default;
60
+ $call-button-text-transform: uppercase !default;
61
+
62
+ .header {
63
+ background-color: $header-background-color;
64
+ padding: $header-padding-mobile;
65
+
66
+ .container {
67
+ padding: $header-container-padding;
68
+ }
69
+
70
+ &__content {
71
+ align-items: $header-content-align-items;
72
+ display: $header-content-display;
73
+ justify-content: $header-content-justify-content-mobile;
74
+ }
75
+
76
+ &__logo{
77
+ img, svg {
78
+ display: $header-logo-display;
79
+ height: $header-logo-height-mobile;
80
+ margin: $header-logo-margin-mobile;
81
+ width: $header-logo-width-mobile;
82
+ }
83
+ }
84
+
85
+ &__bbb-logo {
86
+ display: $header-bbb-logo-display;
87
+ height: $header-bbb-logo-height-mobile;
88
+ width: $header-bbb-logo-width-mobile;
89
+ }
90
+
91
+ &__back-button {
92
+ background-color: $header-back-button-background-color;
93
+ border: 0;
94
+ border-right: $header-back-button-border-right;
95
+ color: $header-back-button-color;
96
+ display: none;
97
+ font-size: $header-back-button-font-size;
98
+ line-height: $header-back-button-line-height;
99
+ padding: $header-back-button-padding;
100
+ }
101
+
102
+ &__tagline {
103
+ color: $header-tagline-color;
104
+ font-size: $header-tagline-font-size;
105
+ font-weight: $header-tagline-font-weight;
106
+ }
107
+
108
+ &__call {
109
+ color: $call-color;
110
+ font-size: $call-font-size;
111
+ font-weight: $call-font-weight;
112
+
113
+ .header__call-icon {
114
+ width: $call-icon-width-large;
115
+ }
116
+ }
117
+
118
+ &__call-link {
119
+ color: $call-link-color;
120
+ text-decoration: $call-link-text-decoration;
121
+ }
122
+
123
+ &__call-number {
124
+ font-weight: $call-number-font-weight;
125
+ }
126
+
127
+ &__call-icon {
128
+ width: $call-icon-width;
129
+ }
130
+
131
+ &__call-button {
132
+ align-self: $call-button-align-self;
133
+ background-color: $call-button-background-color;
134
+ border: $call-button-border;
135
+ border-radius: $call-button-border-radius;
136
+ color: $call-button-color;
137
+ font-size: $call-button-font-size;
138
+ font-weight: $call-button-font-weight;
139
+ margin: $call-button-margin;
140
+ padding: $call-button-padding;
141
+ text-transform: $call-button-text-transform;
142
+ }
143
+ }
144
+
145
+ .callNowControls {
146
+ display: $callrail-display;
147
+ }
148
+
149
+ @include breakpoint-phone {
150
+ .header {
151
+ &--transparent {
152
+ background-color: transparent;
153
+ }
154
+
155
+ &--show-back-button {
156
+ padding: $header-show-button-padding;
157
+
158
+ .header__content {
159
+ align-items: stretch;
160
+ }
161
+
162
+ .header__back-button {
163
+ display: block;
164
+ flex: $header-show-button-button-flex;
165
+ }
166
+ .header__logo {
167
+ flex: $header-show-button-logo-flex;
168
+ margin: $header-show-button-logo-margin;
169
+ text-align: center;
170
+ }
171
+ }
172
+ }
173
+ }
174
+
175
+ @include breakpoint-sm {
176
+ .header {
177
+ padding: $header-padding-desktop;
178
+
179
+ &__content {
180
+ justify-content: $header-content-justify-content-desktop;
181
+ }
182
+
183
+ &__back-button {
184
+ display: none;
185
+ }
186
+
187
+ &__logo {
188
+ img, svg {
189
+ height: $header-logo-height-desktop;
190
+ margin: $header-logo-margin-desktop;
191
+ width: $header-logo-width-desktop;
192
+ }
193
+ }
194
+
195
+ &__bbb-logo {
196
+ height: $header-bbb-logo-height-desktop;
197
+ width: $header-bbb-logo-width-desktop;
198
+ }
199
+ }
200
+ }