mod-build 4.0.48 → 4.0.49

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 (153) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/package.json +1 -1
  3. package/public/resources/scripts/abandonment/abandonment-a4bbb36fbc8ed64042b8.min.js +2 -0
  4. package/public/resources/scripts/abandonment/abandonment.min.js +2 -0
  5. package/public/resources/scripts/callrail/callrail-14011d73b50a928de4b4.min.js +2 -0
  6. package/public/resources/scripts/callrail/callrail.min.js +2 -0
  7. package/public/resources/scripts/footer/footer-component-46dc0d7ca6af4fc3b76b.min.js +2 -0
  8. package/public/resources/scripts/footer/footer-component.min.js +2 -0
  9. package/public/resources/scripts/geolocation/geolocation.min.js +2 -0
  10. package/public/resources/scripts/helpers/addVWOTestQueryParam.min.js +2 -0
  11. package/public/resources/scripts/helpers/addVWOTestQueryParam.min.js.map +1 -0
  12. package/public/resources/scripts/helpers/additionalOpts.min.js +2 -0
  13. package/public/resources/scripts/helpers/additionalOpts.min.js.map +1 -0
  14. package/public/resources/scripts/helpers/calls-only.min.js +2 -0
  15. package/public/resources/scripts/helpers/calls-only.min.js.map +1 -0
  16. package/public/resources/scripts/helpers/getPhoneAssignmentData.min.js +2 -0
  17. package/public/resources/scripts/helpers/getPhoneAssignmentData.min.js.map +1 -0
  18. package/public/resources/scripts/helpers/initNumericOnlyFields.min.js +2 -0
  19. package/public/resources/scripts/helpers/initNumericOnlyFields.min.js.map +1 -0
  20. package/public/resources/scripts/helpers/initQSForm.min.js +2 -0
  21. package/public/resources/scripts/helpers/initQSForm.min.js.map +1 -0
  22. package/public/resources/scripts/helpers/initQuadTransform.min.js +2 -0
  23. package/public/resources/scripts/helpers/initQuadTransform.min.js.map +1 -0
  24. package/public/resources/scripts/helpers/isZipCodeValid.min.js +2 -0
  25. package/public/resources/scripts/helpers/isZipCodeValid.min.js.map +1 -0
  26. package/public/resources/scripts/helpers/observeVWOVariation.min.js +2 -0
  27. package/public/resources/scripts/helpers/observeVWOVariation.min.js.map +1 -0
  28. package/public/resources/scripts/helpers/opts.min.js +2 -0
  29. package/public/resources/scripts/helpers/opts.min.js.map +1 -0
  30. package/public/resources/scripts/jornaya.hbs +35 -0
  31. package/public/resources/scripts/jornaya.html +35 -0
  32. package/public/resources/scripts/mod-alytics/modalytics-be44027508c0438f6709.min.js +2 -0
  33. package/public/resources/scripts/mod-alytics/modalytics.min.js +2 -0
  34. package/public/resources/scripts/mod-form/form/contractor-0918337caf3dfede1609.min.js +2 -0
  35. package/public/resources/scripts/mod-form/form/contractor.min.js +2 -0
  36. package/public/resources/scripts/mod-form/form/homeowner-19a121b0e596042326f4.min.js +2 -0
  37. package/public/resources/scripts/mod-form/form/homeowner.min.js +2 -0
  38. package/public/resources/scripts/mod-utils/modutils-bc275eb41af515f626ef.min.js +2 -0
  39. package/public/resources/scripts/mod-utils/modutils.min.js +2 -0
  40. package/public/resources/scripts/trusted-form.hbs +38 -0
  41. package/public/resources/scripts/trusted-form.html +38 -0
  42. package/public/resources/styles/components/abandonment/abandonment-8a673f060817db6cb7dc.min.css +1 -0
  43. package/public/resources/styles/components/abandonment/abandonment.min.css +1 -0
  44. package/public/resources/styles/components/footer/mod-footer-d233fa64b6c8297c70ec.min.css +1 -0
  45. package/public/resources/styles/components/footer/mod-footer.min.css +1 -0
  46. package/public/resources/styles/components/footer/qs-footer-926e67c28d10c729db46.min.css +1 -0
  47. package/public/resources/styles/components/footer/qs-footer.min.css +1 -0
  48. package/src/resources/data/tcpa.json +4 -0
  49. package/src/resources/templates/modals/about/index.hbs +9 -0
  50. package/src/resources/templates/modals/about/index.html +9 -0
  51. package/src/resources/templates/modals/contact-us/index.hbs +348 -0
  52. package/src/resources/templates/modals/contact-us/index.html +348 -0
  53. package/src/resources/templates/modals/e-sign-consent/index.hbs +35 -0
  54. package/src/resources/templates/modals/e-sign-consent/index.html +35 -0
  55. package/src/resources/templates/modals/faq/index.hbs +9 -0
  56. package/src/resources/templates/modals/faq/index.html +9 -0
  57. package/src/resources/templates/modals/privacy/index.hbs +237 -0
  58. package/src/resources/templates/modals/privacy/index.html +237 -0
  59. package/src/resources/templates/modals/terms/index.hbs +167 -0
  60. package/src/resources/templates/modals/terms/index.html +167 -0
  61. package/src/scripts/has-qs-params.js +2 -2
  62. package/src/shared-components/call-tracking/_call-tracking.scss +311 -0
  63. package/src/shared-components/call-tracking/call-tracking-icon.html +8 -0
  64. package/src/shared-components/call-tracking/call-tracking.html +81 -0
  65. package/src/shared-components/call-tracking/phone.svg +6 -0
  66. package/src/shared-components/card-button/_card-button.scss +49 -0
  67. package/src/shared-components/card-button/card-button.html +9 -0
  68. package/src/shared-components/carousel/_carousel.scss +106 -0
  69. package/src/shared-components/carousel/carousel.html +23 -0
  70. package/src/shared-components/carousel/carousel.js +3573 -0
  71. package/src/shared-components/carousel/carousel.js.map +1 -0
  72. package/src/shared-components/carousel/carousel.min.js +2 -0
  73. package/src/shared-components/carousel/carousel.min.js.map +1 -0
  74. package/src/shared-components/carousel/carousel.min.min.js +2 -0
  75. package/src/shared-components/carousel/carousel.min.min.js.map +1 -0
  76. package/src/shared-components/checkbox/_checkbox.scss +130 -0
  77. package/src/shared-components/checkbox/checkbox.html +10 -0
  78. package/src/shared-components/consent-capture/tcpa.html +12 -0
  79. package/src/shared-components/expand-collapse/_expand-collapse.scss +93 -0
  80. package/src/shared-components/expand-collapse/expand-collapse.html +8 -0
  81. package/src/shared-components/expand-collapse/expand-collapse.js +40 -0
  82. package/src/shared-components/expand-collapse/expand-collapse.min.js +2 -0
  83. package/src/shared-components/expand-collapse/expand-collapse.min.js.map +1 -0
  84. package/src/shared-components/featured-block/_featured-block.scss +191 -0
  85. package/src/shared-components/featured-block/featured-block.html +80 -0
  86. package/src/shared-components/foot-assets/foot-assets.html +107 -0
  87. package/src/shared-components/form-tcpa/form-tcpa-spanish.html +61 -0
  88. package/src/shared-components/form-tcpa/form-tcpa.html +55 -0
  89. package/src/shared-components/gtm-body/gtm-body.html +4 -0
  90. package/src/shared-components/head/head.html +195 -0
  91. package/src/shared-components/header/_header.scss +200 -0
  92. package/src/shared-components/header/header.html +79 -0
  93. package/src/shared-components/hero/_hero.scss +276 -0
  94. package/src/shared-components/hero/hero.html +136 -0
  95. package/src/shared-components/how-it-works/_how-it-works.scss +138 -0
  96. package/src/shared-components/how-it-works/how-it-works.html +19 -0
  97. package/src/shared-components/input/_input.scss +242 -0
  98. package/src/shared-components/input/input.html +30 -0
  99. package/src/shared-components/preloader/_preloader.scss +61 -0
  100. package/src/shared-components/preloader/preloader.html +49 -0
  101. package/src/shared-components/progress-bar/_progress-bar.scss +142 -0
  102. package/src/shared-components/progress-bar/progress-bar.html +20 -0
  103. package/src/shared-components/progress-bar/progress-bar.js +26 -0
  104. package/src/shared-components/progress-bar/progress-bar.min.js +2 -0
  105. package/src/shared-components/progress-bar/progress-bar.min.js.map +1 -0
  106. package/src/shared-components/radio-button/_radio-button.scss +577 -0
  107. package/src/shared-components/radio-button/radio-button.html +25 -0
  108. package/src/shared-components/reviews/_reviews.scss +79 -0
  109. package/src/shared-components/reviews/reviews.html +27 -0
  110. package/src/shared-components/section-deals/sitemap.xml +9 -0
  111. package/src/shared-components/select/_select.scss +61 -0
  112. package/src/shared-components/select/select.html +8 -0
  113. package/src/shared-components/steps/_steps.scss +431 -0
  114. package/src/shared-components/steps/defaultFormFieldConfig.json +64 -0
  115. package/src/shared-components/steps/step-fields.html +36 -0
  116. package/src/shared-components/steps/steps.html +136 -0
  117. package/src/shared-components/textarea/_textarea.scss +96 -0
  118. package/src/shared-components/textarea/textarea.html +13 -0
  119. package/src/shared-components/theme-toggle/_theme-toggle.scss +68 -0
  120. package/src/shared-components/theme-toggle/theme-toggle.html +34 -0
  121. package/src/shared-components/tile/_tile.scss +117 -0
  122. package/src/shared-components/tile/tile.html +27 -0
  123. package/src/shared-components/value-props/_value-props.scss +99 -0
  124. package/src/shared-components/value-props/value-props.html +17 -0
  125. package/src/shared-components/zip-control/_zip-control.scss +42 -0
  126. package/src/shared-components/zip-control/zip-control.html +21 -0
  127. package/tasks/get-default-trade-questions.js +168 -128
  128. package/tasks/serve.js +1 -1
  129. package/src/data/trade-questions/alerts_medical.js +0 -109
  130. package/src/data/trade-questions/bathroom_refacing.js +0 -94
  131. package/src/data/trade-questions/cabinet_refacing.js +0 -249
  132. package/src/data/trade-questions/cabinets.js +0 -34
  133. package/src/data/trade-questions/concrete_foundation.js +0 -55
  134. package/src/data/trade-questions/door.js +0 -141
  135. package/src/data/trade-questions/flooring.js +0 -184
  136. package/src/data/trade-questions/garage_door.js +0 -87
  137. package/src/data/trade-questions/gutters.js +0 -44
  138. package/src/data/trade-questions/home_security.js +0 -129
  139. package/src/data/trade-questions/home_warranty.js +0 -55
  140. package/src/data/trade-questions/hot_tubs.js +0 -90
  141. package/src/data/trade-questions/hvac.js +0 -177
  142. package/src/data/trade-questions/index.js +0 -23
  143. package/src/data/trade-questions/insulation.js +0 -116
  144. package/src/data/trade-questions/plumbing.js +0 -258
  145. package/src/data/trade-questions/roofing.js +0 -116
  146. package/src/data/trade-questions/siding.js +0 -148
  147. package/src/data/trade-questions/solar.js +0 -67
  148. package/src/data/trade-questions/stair_lifts.js +0 -45
  149. package/src/data/trade-questions/tree_services.js +0 -167
  150. package/src/data/trade-questions/walk_in_tubs.js +0 -45
  151. package/src/data/trade-questions/water_treatment.js +0 -46
  152. package/src/data/trade-questions/windows.js +0 -130
  153. package/src/data/trade-questions-config.js +0 -137
@@ -0,0 +1,79 @@
1
+ <div class="header{{#if this.header.class}} {{this.header.class}}{{/if}}" {{#if this.header.id}}id="{{this.header.id}}"{{/if}}>
2
+ <div class="container">
3
+ <div class="header__content">
4
+ {{#xif "this.header.includeBackButton === true"}}
5
+ <button class="header__back-button" data-btn="back">
6
+ <i class="icon-caret-left">
7
+ <span class="visually-hidden">Back</span>
8
+ </i>
9
+ </button>
10
+ {{/xif}}
11
+ {{#if this.header.logo}}
12
+ <div class="header__logo{{#if this.header.logo.class}} {{this.header.logo.class}}{{/if}}">
13
+ {{#xif "this.header.logo.tag === 'img'"}}
14
+ <img src="{{#if this.header.logo.localSrc}}{{this.header.logo.localSrc}}{{else}}https://{{x 'process.env.NODE_ENV'}}/quote/resources/assets/{{this.header.logo.src}}{{/if}}" alt="{{this.header.logo.altText}}">
15
+ {{/xif}}
16
+ {{#xif "this.header.logo.tag === 'picture'"}}
17
+ <picture>
18
+ <source media="{{#if this.header.logo.media}}{{this.header.logo.media}}{{/if}}" srcset="{{#if this.header.logo.localSrcset}}{{this.header.logo.localSrcset}}{{else}}https://{{x 'process.env.NODE_ENV'}}/quote/resources/assets/{{this.header.logo.srcset}}{{/if}}" {{{this.header.logo.pictureSourceAttributes}}}>
19
+ <img src="{{#if this.header.logo.localSrc}}{{this.header.logo.localSrc}}{{else}}https://{{x 'process.env.NODE_ENV'}}/quote/resources/assets/{{this.header.logo.src}}{{/if}}" alt="{{this.header.logo.altText}}">
20
+ </picture>
21
+ {{/xif}}
22
+ {{#xif "this.header.logo.tag === 'svg'"}}
23
+ <svg>
24
+ <use href="{{#if this.header.logo.localSrc}}{{this.header.logo.localSrc}}{{else}}https://{{x 'process.env.NODE_ENV'}}/quote/resources/assets/{{this.header.logo.src}}{{/if}}"></use>
25
+ </svg>
26
+ {{/xif}}
27
+ </div>
28
+ {{/if}}
29
+ {{#xif "this.callTracking && this.callTracking.header"}}
30
+ {{fileInclude 'src/shared-components/call-tracking/call-tracking.html'
31
+ isHeader=true
32
+ }}
33
+ {{else}}
34
+ {{#if this.header.callRail}}
35
+ <div class="header__call callNowControls{{#if this.header.callRail.showButtonOn}}{{#each this.header.callRail.showButtonOn}} hidden-{{this}} {{/each}}{{else}} hidden-xs hidden-sm{{/if}}">
36
+ {{#if this.header.callRail.icon}}
37
+ <img src="{{#if this.header.callRail.icon.localSrc}}{{this.header.callRail.icon.localSrc}}{{else}}https://{{x 'process.env.NODE_ENV'}}/quote/resources/assets/{{this.header.callRail.icon.src}}{{/if}}" class="header__call-icon" alt="{{this.header.callRail.icon.altText}}">
38
+ {{/if}}
39
+ {{#xif "this.header.callRail.setAllTextAsLink === true"}}
40
+ <a class="header__call-link" href="tel:{{this.header.callRail.phoneNumber}}">{{{this.header.callRail.text}}} <span class="header__call-number">{{formatPhoneNo this.header.callRail.phoneNumber}}</span></a>
41
+ {{else}}
42
+ {{{this.header.callRail.text}}}
43
+ {{#xif "this.header.callRail.setNumberAsLink === true"}}
44
+ <a class="header__call-link" href="tel:{{this.header.callRail.phoneNumber}}"><span class="header__call-number">{{formatPhoneNo this.header.callRail.phoneNumber}}</span></a>
45
+ {{else}}
46
+ <span class="header__call-number">{{formatPhoneNo this.header.callRail.phoneNumber}}</span>
47
+ {{/xif}}
48
+ {{/xif}}
49
+
50
+ </div>
51
+ <{{#if this.header.callRail.useAnchorButton}}a{{else}}button{{/if}} class="header__call-button callNowControls{{#if this.header.callRail.hideButtonOn}}{{#each this.header.callRail.hideButtonOn}} hidden-{{this}} {{/each}}{{else}} hidden-md hidden-lg{{/if}}" href="tel:{{this.header.callRail.phoneNumber}}">
52
+ {{#if this.header.callRail.icon}}
53
+ <img src="{{#if this.header.callRail.icon.localSrc}}{{this.header.callRail.icon.localSrc}}{{else}}https://{{x 'process.env.NODE_ENV'}}/quote/resources/assets/{{this.header.callRail.icon.src}}{{/if}}" class="header__call-icon" alt="{{this.header.callRail.icon.altText}}">
54
+ {{/if}}
55
+ {{{this.header.callRail.mobileText}}}
56
+ </{{#if this.header.callRail.useAnchorButton}}a{{else}}button{{/if}}>
57
+ {{/if}}
58
+ {{/xif}}
59
+ {{#if this.header.additionalLogos}}
60
+ <div class="header__additional-logos">
61
+ {{#each this.header.additionalLogos}}
62
+ {{#xif "this.tag === 'svg'"}}
63
+ <svg {{#if this.class}}class="{{this.class}}"{{/if}}>
64
+ <use href="{{#if this.localSrc}}{{this.localSrc}}{{else}}https://{{x 'process.env.NODE_ENV'}}/quote/resources/assets/{{this.src}}{{/if}}"></use>
65
+ </svg>
66
+ {{else}}
67
+ <img {{#if this.class}}class="{{this.class}}"{{/if}} src="{{#if this.localSrc}}{{this.localSrc}}{{else}}https://{{x 'process.env.NODE_ENV'}}/quote/resources/assets/{{this.src}}{{/if}}" alt="{{this.altText}}"{{#if this.width}} width="{{this.width}}"{{/if}}{{#if this.height}} height="{{this.height}}"{{/if}}>
68
+ {{/xif}}
69
+ {{/each}}
70
+ </div>
71
+ {{/if}}
72
+ {{#if this.header.tagline.text}}
73
+ <div class="header__tagline{{#if this.header.tagline.class}} {{this.header.tagline.class}}{{/if}}">
74
+ {{{this.header.tagline.text}}}
75
+ </div>
76
+ {{/if}}
77
+ </div>
78
+ </div>
79
+ </div>
@@ -0,0 +1,276 @@
1
+ $hero-min-height: 0 !default;
2
+ $hero-padding-mobile: 25px 0 !default;
3
+ $hero-padding-tablet: 45px 0 !default;
4
+ $hero-padding-desktop: 70px 0 !default;
5
+ $hero-position: relative !default;
6
+ $hero-transition: padding 300ms ease, min-height 300ms ease !default;
7
+
8
+ $hero-background-background-color: transparent !default;
9
+ $hero-background-height: 100% !default;
10
+ $hero-background-height-mobile: $hero-background-height !default;
11
+ $hero-background-max-height: 100% !default;
12
+ $hero-background-left: 0 !default;
13
+ $hero-background-overflow: hidden !default;
14
+ $hero-background-position: absolute !default;
15
+ $hero-background-top: 0 !default;
16
+ $hero-background-width: 100% !default;
17
+ $hero-background-z-index: -1 !default;
18
+
19
+ $hero-background-image-height: 100% !default;
20
+ $hero-background-image-max-width: 100% !default;
21
+ $hero-background-image-object-fit: cover !default;
22
+ $hero-background-image-object-position: top !default;
23
+ $hero-background-image-width: 100% !default;
24
+
25
+ $hero-overlay-background: linear-gradient(180deg, transparent 15%, rgba($color-white,.98) 25%, rgba($color-white,1) 87%, rgba($color-white,1) 100%) !default;
26
+ $hero-overlay-background-mobile: $hero-overlay-background !default;
27
+ $hero-overlay-display: none !default;
28
+ $hero-overlay-display-mobile: block !default;
29
+ $hero-overlay-height: 100% !default;
30
+ $hero-overlay-height-mobile: $hero-overlay-height !default;
31
+ $hero-overlay-left: 0 !default;
32
+ $hero-overlay-overflow: hidden !default;
33
+ $hero-overlay-position: absolute !default;
34
+ $hero-overlay-top: 0 !default;
35
+ $hero-overlay-width: 100% !default;
36
+ $hero-overlay-z-index: 0 !default;
37
+
38
+ $hero-wrapper-align-items-mobile: center !default;
39
+ $hero-wrapper-align-items-tablet: center !default;
40
+ $hero-wrapper-align-items-desktop: flex-start !default;
41
+ $hero-wrapper-display: flex !default;
42
+ $hero-wrapper-flex-direction-mobile: column !default;
43
+ $hero-wrapper-flex-direction-tablet: column !default;
44
+ $hero-wrapper-flex-direction-desktop: row !default;
45
+ $hero-wrapper-justify-content-desktop: initial !default;
46
+ $hero-wrapper-position: relative !default;
47
+ $hero-wrapper-width: 100% !default;
48
+ $hero-wrapper-z-index: 1 !default;
49
+
50
+ $hero-content-background-color: $color-white !default;
51
+ $hero-content-border-radius: 4px !default;
52
+ $hero-content-box-shadow: 0 10px 20px 0 rgba($color-black, .08) !default;
53
+ $hero-content-max-width-mobile: 100% !default;
54
+ $hero-content-max-width-tablet: 445px !default;
55
+ $hero-content-max-width-desktop: $hero-content-max-width-tablet !default;
56
+ $hero-content-padding: 0 !default;
57
+
58
+ $hero-header-color: $color-white !default;
59
+ $hero-header-text-align: left !default;
60
+ $hero-header-text-align-tablet: center !default;
61
+ $hero-header-text-align-mobile: center !default;
62
+
63
+ $hero-title-container-margin: 60px 40px 30px 25% !default;
64
+ $hero-title-container-margin-form-inprogress: 0 100px 30px 25% !default;
65
+ $hero-title-container-margin-desktop: 60px 40px 60px 25% !default;
66
+ $hero-title-font-size-mobile: 26px !default;
67
+ $hero-title-font-size-tablet: 30px !default;
68
+ $hero-title-font-size-desktop: 34px !default;
69
+ $hero-title-font-size-lg: $hero-title-font-size-desktop !default;
70
+ $hero-title-font-weight: 700 !default;
71
+ $hero-title-line-height: 1.2 !default;
72
+ $hero-title-line-height-mobile: $hero-title-line-height !default;
73
+ $hero-title-line-height-lg: $hero-title-line-height !default;
74
+ $hero-title-margin: 0 0 15px !default;
75
+ $hero-title-margin-mobile: 0 0 25px !default;
76
+ $hero-title-margin-tablet: $hero-title-margin !default;
77
+ $hero-title-text-transform: none !default;
78
+
79
+ $hero-subtitle-font-size: 16px !default;
80
+ $hero-subtitle-font-size-mobile: $hero-subtitle-font-size !default;
81
+ $hero-subtitle-font-weight: 400 !default;
82
+ $hero-subtitle-line-height: 1.4 !default;
83
+ $hero-subtitle-margin: 0 auto 15px !default;
84
+ $hero-subtitle-text-transform: none !default;
85
+
86
+ $hero-full-background-color: $color-white !default;
87
+ $hero-full-min-height: 100vh !default;
88
+ $hero-full-padding: 0 !default;
89
+ $hero-full-content-background-color: transparent !default;
90
+ $hero-full-content-box-shadow: none !default;
91
+ $hero-full-overlay-display: none !default;
92
+
93
+ .hero {
94
+ min-height: $hero-min-height;
95
+ padding: $hero-padding-mobile;
96
+ position: $hero-position;
97
+ transition: $hero-transition;
98
+
99
+ &__background {
100
+ background-color: $hero-background-background-color;
101
+ height: $hero-background-height-mobile;
102
+ left: $hero-background-left;
103
+ overflow: $hero-background-overflow;
104
+ position: $hero-background-position;
105
+ top: $hero-background-top;
106
+ width: $hero-background-width;
107
+ z-index: $hero-background-z-index;
108
+ }
109
+
110
+ &__background-image {
111
+ height: $hero-background-image-height;
112
+ max-width: $hero-background-image-max-width;
113
+ object-fit: $hero-background-image-object-fit;
114
+ object-position: $hero-background-image-object-position;
115
+ width: $hero-background-image-width;
116
+ }
117
+
118
+ &__background-overlay {
119
+ background: $hero-overlay-background-mobile;
120
+ display: $hero-overlay-display-mobile;
121
+ height: $hero-overlay-height-mobile;
122
+ left: $hero-overlay-left;
123
+ overflow: $hero-overlay-overflow;
124
+ position: $hero-overlay-position;
125
+ top: $hero-overlay-top;
126
+ width: $hero-overlay-width;
127
+ z-index: $hero-overlay-z-index;
128
+ }
129
+
130
+ &__wrapper {
131
+ align-items: $hero-wrapper-align-items-mobile;
132
+ display: $hero-wrapper-display;
133
+ flex-direction: $hero-wrapper-flex-direction-mobile;
134
+ position: $hero-wrapper-position;
135
+ width: $hero-wrapper-width;
136
+ z-index: $hero-wrapper-z-index;
137
+ }
138
+
139
+ &__content {
140
+ background-color: $hero-content-background-color;
141
+ border-radius: $hero-content-border-radius;
142
+ box-shadow: $hero-content-box-shadow;
143
+ max-width: $hero-content-max-width-mobile;
144
+ padding: $hero-content-padding;
145
+ }
146
+
147
+ &__header {
148
+ color: $hero-header-color;
149
+ text-align: $hero-header-text-align-mobile;
150
+ }
151
+
152
+ &__title {
153
+ font-size: $hero-title-font-size-mobile;
154
+ font-weight: $hero-title-font-weight;
155
+ line-height: $hero-title-line-height-mobile;
156
+ margin: $hero-title-margin-mobile;
157
+ text-transform: $hero-title-text-transform;
158
+ }
159
+
160
+ &__subtitle {
161
+ font-size: $hero-subtitle-font-size-mobile;
162
+ font-weight: $hero-subtitle-font-weight;
163
+ line-height: $hero-subtitle-line-height;
164
+ margin: $hero-subtitle-margin;
165
+ text-transform: $hero-subtitle-text-transform;
166
+ }
167
+ }
168
+
169
+ @include breakpoint-sm {
170
+ .hero {
171
+ padding: $hero-padding-tablet;
172
+
173
+ &__background {
174
+ height: $hero-background-height;
175
+ max-height: $hero-background-max-height;
176
+ }
177
+
178
+ &__background-overlay {
179
+ background: $hero-overlay-background;
180
+ display: $hero-overlay-display;
181
+ height: $hero-overlay-height;
182
+ }
183
+
184
+ &__wrapper {
185
+ align-items: $hero-wrapper-align-items-tablet;
186
+ flex-direction: $hero-wrapper-flex-direction-tablet;
187
+ }
188
+
189
+ &__content {
190
+ max-width: $hero-content-max-width-tablet;
191
+ }
192
+
193
+ &__header {
194
+ text-align: $hero-header-text-align-tablet;
195
+ }
196
+
197
+ &__title {
198
+ font-size: $hero-title-font-size-tablet;
199
+ line-height: $hero-title-line-height;
200
+ margin: $hero-title-margin-tablet;
201
+ }
202
+
203
+ &__subtitle {
204
+ font-size: $hero-subtitle-font-size;
205
+ }
206
+ }
207
+ }
208
+
209
+ @include breakpoint-md {
210
+ .hero {
211
+ padding: $hero-padding-desktop;
212
+
213
+ &__wrapper {
214
+ align-items: $hero-wrapper-align-items-desktop;
215
+ flex-direction: $hero-wrapper-flex-direction-desktop;
216
+ justify-content: $hero-wrapper-justify-content-desktop;
217
+ }
218
+
219
+ &__content {
220
+ max-width: $hero-content-max-width-desktop;
221
+ }
222
+
223
+ &__header-container {
224
+ margin: $hero-title-container-margin;
225
+ }
226
+
227
+ &--full {
228
+ .hero__header-container {
229
+ margin: $hero-title-container-margin-form-inprogress;
230
+ }
231
+ }
232
+
233
+ &__title {
234
+ font-size: $hero-title-font-size-desktop;
235
+ margin: $hero-title-margin;
236
+ text-align: $hero-header-text-align;
237
+ }
238
+
239
+ &__subtitle {
240
+ text-align: $hero-header-text-align;
241
+ }
242
+ }
243
+ }
244
+
245
+ @include breakpoint-lg {
246
+ .hero {
247
+ &__title {
248
+ font-size: $hero-title-font-size-lg;
249
+ line-height: $hero-title-line-height-lg;
250
+ }
251
+
252
+ &__header-container {
253
+ margin: $hero-title-container-margin-desktop;
254
+ }
255
+ }
256
+ }
257
+
258
+ @include breakpoint-phone {
259
+ .hero {
260
+ &--full {
261
+ background-color: $hero-full-background-color;
262
+ min-height: $hero-full-min-height;
263
+ padding: $hero-full-padding;
264
+
265
+ .hero__content,
266
+ .form {
267
+ background: $hero-full-content-background-color;
268
+ box-shadow: $hero-full-content-box-shadow;
269
+ }
270
+
271
+ .hero__background-overlay {
272
+ display: $hero-full-overlay-display;
273
+ }
274
+ }
275
+ }
276
+ }
@@ -0,0 +1,136 @@
1
+ <div class="hero{{#if this.hero.class}} {{this.hero.class}}{{/if}}"{{#if this.hero.id}} id="{{this.hero.id}}"{{/if}}>
2
+ {{#if this.hero.backgroundImage}}
3
+ {{#if this.hero.backgroundImage.wrapper}}
4
+ <div class="hero__background-wrapper{{#if this.hero.backgroundImage.wrapper.class}} {{this.hero.backgroundImage.wrapper.class}}{{/if}}" {{#if this.hero.backgroundImage.wrapper.extraAttributes}}{{#each this.hero.backgroundImage.wrapper.extraAttributes}}{{{this.attributeName}}}{{#if this.attributeValue}}="{{{this.attributeValue}}}"{{/if}}{{/each}}{{/if}}>
5
+ {{/if}}
6
+ <picture class="hero__background{{#if this.hero.backgroundImage.class}} {{this.hero.backgroundImage.class}}{{/if}}"{{#if this.hero.backgroundImage.extraAttributes}}{{#each this.hero.backgroundImage.extraAttributes}}{{{this.attributeName}}}{{#if this.attributeValue}}="{{{this.attributeValue}}}"{{/if}}{{/each}}{{/if}}>
7
+ {{#if this.hero.backgroundImage.globalSrc}}
8
+ {{#if this.hero.backgroundImage.srcSmallDevices}}
9
+ <source media="(max-width: 767px)" srcset="https://{{x 'process.env.NODE_ENV'}}/quote/resources/assets{{this.hero.backgroundImage.srcSmallDevices}}.webp" type="image/webp">
10
+ <source media="(max-width: 767px)" srcset="https://{{x 'process.env.NODE_ENV'}}/quote/resources/assets{{this.hero.backgroundImage.srcSmallDevices}}.jpg" type="image/jpeg">
11
+ {{else}}
12
+ <source media="(max-width: 767px)" srcset="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg==" sizes="100%">
13
+ {{/if}}
14
+ <source media="(min-width: 768px)" srcset="https://{{x 'process.env.NODE_ENV'}}/quote/resources/assets{{this.hero.backgroundImage.globalSrc}}.webp" type="image/webp">
15
+ <img class="hero__background-image" src="https://{{x 'process.env.NODE_ENV'}}/quote/resources/assets{{this.hero.backgroundImage.globalSrc}}.jpg" alt="">
16
+ {{else}}
17
+ {{#if this.hero.backgroundImage.srcTabletDevices}}
18
+ <source media="(min-width: 992px)" srcset="{{this.hero.backgroundImage.src}}.webp" type="image/webp">
19
+ <source media="(min-width: 992px)" srcset="{{this.hero.backgroundImage.src}}.jpg" type="image/jpeg">
20
+ <source media="(min-width: 768px)" srcset="{{this.hero.backgroundImage.srcTabletDevices}}.webp" type="image/webp">
21
+ <source media="(min-width: 768px)" srcset="{{this.hero.backgroundImage.srcTabletDevices}}.jpg" type="image/jpeg">
22
+ <source srcset="{{this.hero.backgroundImage.srcSmallDevices}}.webp" type="image/webp">
23
+ <img class="hero__background-image" src="{{this.hero.backgroundImage.srcSmallDevices}}.jpg" alt="">
24
+ {{else}}
25
+ {{#if this.hero.backgroundImage.srcSmallDevices}}
26
+ <source media="(max-width: 767px)" srcset="{{this.hero.backgroundImage.srcSmallDevices}}.webp" type="image/webp">
27
+ <source media="(max-width: 767px)" srcset="{{this.hero.backgroundImage.srcSmallDevices}}.jpg" type="image/jpeg">
28
+ {{else}}
29
+ <source media="(max-width: 767px)" srcset="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg==" sizes="100%">
30
+ {{/if}}
31
+ <source media="(min-width: 768px)" srcset="{{this.hero.backgroundImage.src}}.webp" type="image/webp">
32
+ <img class="hero__background-image" src="{{this.hero.backgroundImage.src}}.jpg" alt="">
33
+ {{/if}}
34
+ {{/if}}
35
+ </picture>
36
+ {{#if this.hero.backgroundImage.additionalBackgroundImage}}
37
+ <picture class="hero__background{{#if this.hero.backgroundImage.additionalBackgroundImage.class}} {{this.hero.backgroundImage.additionalBackgroundImage.class}}{{/if}}"{{#if this.hero.backgroundImage.additionalBackgroundImage.extraAttributes}}{{#each this.hero.backgroundImage.additionalBackgroundImage.extraAttributes}}{{{this.attributeName}}}{{#if this.attributeValue}}="{{{this.attributeValue}}}"{{/if}}{{/each}}{{/if}}>
38
+ {{#if this.hero.backgroundImage.additionalBackgroundImage.globalSrc}}
39
+ {{#if this.hero.backgroundImage.additionalBackgroundImage.srcSmallDevices}}
40
+ <source media="(max-width: 767px)" srcset="https://{{x 'process.env.NODE_ENV'}}/quote/resources/assets{{this.hero.backgroundImage.additionalBackgroundImage.srcSmallDevices}}.webp" type="image/webp">
41
+ <source media="(max-width: 767px)" srcset="https://{{x 'process.env.NODE_ENV'}}/quote/resources/assets{{this.hero.backgroundImage.additionalBackgroundImage.srcSmallDevices}}.jpg" type="image/jpeg">
42
+ {{else}}
43
+ <source media="(max-width: 767px)" srcset="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg==" sizes="100%">
44
+ {{/if}}
45
+ <source media="(min-width: 768px)" srcset="https://{{x 'process.env.NODE_ENV'}}/quote/resources/assets{{this.hero.backgroundImage.additionalBackgroundImage.globalSrc}}.webp" type="image/webp">
46
+ <img class="hero__background-image" src="https://{{x 'process.env.NODE_ENV'}}/quote/resources/assets{{this.hero.backgroundImage.additionalBackgroundImage.globalSrc}}.jpg" alt="">
47
+ {{else}}
48
+ {{#if this.hero.backgroundImage.additionalBackgroundImage.srcTabletDevices}}
49
+ <source media="(min-width: 992px)" srcset="{{this.hero.backgroundImage.additionalBackgroundImage.src}}.webp" type="image/webp">
50
+ <source media="(min-width: 992px)" srcset="{{this.hero.backgroundImage.additionalBackgroundImage.src}}.jpg" type="image/jpeg">
51
+ <source media="(min-width: 768px)" srcset="{{this.hero.backgroundImage.additionalBackgroundImage.srcTabletDevices}}.webp" type="image/webp">
52
+ <source media="(min-width: 768px)" srcset="{{this.hero.backgroundImage.additionalBackgroundImage.srcTabletDevices}}.jpg" type="image/jpeg">
53
+ <source srcset="{{this.hero.backgroundImage.additionalBackgroundImage.srcSmallDevices}}.webp" type="image/webp">
54
+ <img class="hero__background-image" src="{{this.hero.backgroundImage.additionalBackgroundImage.srcSmallDevices}}.jpg" alt="">
55
+ {{else}}
56
+ {{#if this.hero.backgroundImage.additionalBackgroundImage.srcSmallDevices}}
57
+ <source media="(max-width: 767px)" srcset="{{this.hero.backgroundImage.additionalBackgroundImage.srcSmallDevices}}.webp" type="image/webp">
58
+ <source media="(max-width: 767px)" srcset="{{this.hero.backgroundImage.additionalBackgroundImage.srcSmallDevices}}.jpg" type="image/jpeg">
59
+ {{else}}
60
+ <source media="(max-width: 767px)" srcset="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg==" sizes="100%">
61
+ {{/if}}
62
+ <source media="(min-width: 768px)" srcset="{{this.hero.backgroundImage.additionalBackgroundImage.src}}.webp" type="image/webp">
63
+ <img class="hero__background-image" src="{{this.hero.backgroundImage.additionalBackgroundImage.src}}.jpg" alt="">
64
+ {{/if}}
65
+ {{/if}}
66
+ </picture>
67
+ {{/if}}
68
+ {{#xif "this.hero.backgroundImage.includeOverlay === true"}}
69
+ <div class="hero__background-overlay"></div>
70
+ {{/xif}}
71
+ {{#if this.hero.backgroundImage.wrapper}}</div>{{/if}}
72
+ {{/if}}
73
+ <div class="hero__container container">
74
+ <div class="hero__wrapper">
75
+ {{#if this.hero.moveHeroContentToTop}}
76
+ {{#if this.hero.formTemplateInclude}}
77
+ <div class="hero__content">
78
+ {{fileInclude this.hero.formTemplateInclude
79
+ form = this
80
+ }}
81
+ </div>
82
+ {{/if}}
83
+ {{/if}}
84
+ <div class="hero__header">
85
+ {{#if this.hero.titleSubTitleWrapperClass}}<div class="{{this.hero.titleSubTitleWrapperClass}}">{{/if}}
86
+ {{#if this.hero.title}}
87
+ {{#if this.hero.title.mobileText}}
88
+ <h1 class="hero__title{{#if this.hero.title.class}} {{this.hero.title.class}}{{/if}}"{{#if this.hero.title.id}} id="{{this.hero.title.id}}"{{/if}}{{#if this.hero.title.extraAttributes}}{{#each this.hero.title.extraAttributes}} {{{this.attributeName}}}="{{{this.attributeValue}}}"{{/each}}{{/if}} data-theme-template="title">
89
+ <span class="visible-xs">{{{this.hero.title.mobileText}}}</span>
90
+ <span class="hidden-xs">{{{this.hero.title.text}}}</span>
91
+ </h1>
92
+ {{else}}
93
+ <h1 class="hero__title{{#if this.hero.title.class}} {{this.hero.title.class}}{{/if}}"{{#if this.hero.title.id}} id="{{this.hero.title.id}}"{{/if}}{{#if this.hero.title.extraAttributes}}{{#each this.hero.title.extraAttributes}} {{{this.attributeName}}}="{{{this.attributeValue}}}"{{/each}}{{/if}} data-theme-template="title">
94
+ {{{this.hero.title.text}}}
95
+ </h1>
96
+ {{/if}}
97
+ {{#xif "this.callTracking && this.callTracking.hero && this.callTracking.hero.title"}}
98
+ {{fileInclude 'src/shared-components/call-tracking/call-tracking.html'
99
+ isHeroTitle=true
100
+ }}
101
+ {{/xif}}
102
+ {{/if}}
103
+ {{#if this.hero.additionalTitle}}
104
+ <h1 class="hero__title{{#if this.hero.additionalTitle.class}} {{this.hero.additionalTitle.class}}{{/if}}"{{#if this.hero.additionalTitle.id}} id="{{this.hero.additionalTitle.id}}"{{/if}}{{#if this.hero.additionalTitle.extraAttributes}}{{#each this.hero.additionalTitle.extraAttributes}} {{{this.attributeName}}}="{{{this.attributeValue}}}"{{/each}}{{/if}}>
105
+ {{{this.hero.additionalTitle.text}}}
106
+ </h1>
107
+ {{/if}}
108
+ {{#xif "this.callTracking && this.callTracking.hero && this.callTracking.hero.button"}}
109
+ {{fileInclude 'src/shared-components/call-tracking/call-tracking.html'
110
+ isHero=true
111
+ }}
112
+ {{/xif}}
113
+ {{#if this.hero.subtitle.text}}
114
+ <p class="hero__subtitle{{#if this.hero.subtitle.class}} {{this.hero.subtitle.class}}{{/if}}"{{#if this.hero.subtitle.id}} id="{{this.hero.subtitle.id}}"{{/if}}{{#if this.hero.subtitle.extraAttributes}} {{#each this.hero.subtitle.extraAttributes}}{{{this.attributeName}}}="{{{this.attributeValue}}}"{{/each}}{{/if}} data-theme-template="subtitle">
115
+ {{{this.hero.subtitle.text}}}
116
+ </p>
117
+ {{/if}}
118
+ {{#if this.hero.titleSubTitleWrapperClass}}</div>{{/if}}
119
+ {{#this.hero.valueProps}}
120
+ {{ fileInclude 'src/shared-components/value-props/value-props.html'
121
+ props = this
122
+ }}
123
+ {{/this.hero.valueProps}}
124
+ </div>
125
+ {{#unless this.hero.moveHeroContentToTop}}
126
+ {{#if this.hero.formTemplateInclude}}
127
+ <div class="hero__content">
128
+ {{fileInclude this.hero.formTemplateInclude
129
+ form = this
130
+ }}
131
+ </div>
132
+ {{/if}}
133
+ {{/unless}}
134
+ </div>
135
+ </div>
136
+ </div>
@@ -0,0 +1,138 @@
1
+ $hiw-content-flex-direction-mobile: row !default;
2
+ $hiw-content-max-width-mobile: 320px !default;
3
+ $hiw-content-width-mobile: 90% !default;
4
+ $hiw-content-align-items-mobile: normal !default;
5
+ $hiw-content-flex-direction-desktop: column !default;
6
+ $hiw-content-max-width-desktop: 100% !default;
7
+ $hiw-content-width-desktop: 80% !default;
8
+ $hiw-content-align-items-desktop: center !default;
9
+
10
+ $hiw-card-divider: 2px dashed $color-charcoal1 !default;
11
+ $hiw-card-divider-height-mobile: 22px !default;
12
+ $hiw-card-divider-position-left-mobile: 29px !default;
13
+ $hiw-card-divider-position-top-mobile: -30px !default;
14
+ $hiw-card-divider-height-desktop: 100% !default;
15
+ $hiw-card-divider-position-left-desktop: 0 !default;
16
+ $hiw-card-divider-position-top-desktop: -20% !default;
17
+
18
+ $hiw-card-margin-bottom: 0 !default;
19
+ $hiw-text-align: center !default;
20
+
21
+ $hiw-icon-height: 100px !default;
22
+ $hiw-icon-width: $hiw-icon-height !default;
23
+
24
+ $hiw-title-color: $color-charcoal5 !default;
25
+ $hiw-title-font-size: 16px !default;
26
+ $hiw-title-font-weight: bold !default;
27
+ $hiw-title-line-height: 1.2 !default;
28
+ $hiw-title-margin: 15px 0 !default;
29
+
30
+ $hiw-desc-color: $color-charcoal4 !default;
31
+ $hiw-desc-font-size-mobile: 14px !default;
32
+ $hiw-desc-font-size-desktop: $hiw-desc-font-size-mobile !default;
33
+ $hiw-desc-line-height: 1.57 !default;
34
+ $hiw-desc-margin-mobile: 0 0 15px !default;
35
+ $hiw-desc-margin-desktop: $hiw-desc-margin-mobile !default;
36
+
37
+ .hiw-card {
38
+ margin-bottom: $hiw-card-margin-bottom;
39
+ text-align: $hiw-text-align;
40
+
41
+ &__wrapper {
42
+ margin: auto;
43
+ max-width: 260px;
44
+ }
45
+
46
+ &__icon {
47
+ height: $hiw-icon-height;
48
+ width: $hiw-icon-width;
49
+ }
50
+
51
+ &__title {
52
+ color: $hiw-title-color;
53
+ font-size: $hiw-title-font-size;
54
+ font-weight: $hiw-title-font-weight;
55
+ line-height: $hiw-title-line-height;
56
+ margin: $hiw-title-margin;
57
+ }
58
+
59
+ &__description {
60
+ color: $hiw-desc-color;
61
+ font-size: $hiw-desc-font-size-mobile;
62
+ line-height: $hiw-desc-line-height;
63
+ margin: $hiw-desc-margin-mobile;
64
+ }
65
+ }
66
+
67
+ .hiw-block__content {
68
+ display: block;
69
+ margin: 0 auto;
70
+ max-width: $hiw-content-max-width-mobile;
71
+ text-align: left;
72
+ width: $hiw-content-width-mobile;
73
+
74
+ .hiw-card {
75
+ flex: 1;
76
+ position: relative;
77
+ text-align: left;
78
+
79
+ &__wrapper {
80
+ align-items: $hiw-content-align-items-mobile;
81
+ display: flex;
82
+ flex-direction: $hiw-content-flex-direction-mobile;
83
+ max-width: 100%;
84
+ }
85
+
86
+ &__icon {
87
+ min-height: $hiw-icon-height;
88
+ min-width: $hiw-icon-width;
89
+ }
90
+
91
+ ~ .hiw-card {
92
+ &:before{
93
+ border-left: $hiw-card-divider;
94
+ content: '';
95
+ height: $hiw-card-divider-height-mobile;
96
+ left: $hiw-card-divider-position-left-mobile;
97
+ position: absolute;
98
+ top: $hiw-card-divider-position-top-mobile;
99
+ width: 1px;
100
+ }
101
+ }
102
+ }
103
+ }
104
+
105
+ @include breakpoint-sm {
106
+ .hiw-block__content {
107
+ align-items: center;
108
+ display: flex;
109
+ max-width: $hiw-content-max-width-desktop;
110
+ text-align: $hiw-text-align;
111
+ width: $hiw-content-width-desktop;
112
+
113
+ .hiw-card {
114
+ text-align: $hiw-text-align;
115
+
116
+ &__wrapper {
117
+ align-items: $hiw-content-align-items-desktop;
118
+ flex-direction: $hiw-content-flex-direction-desktop;
119
+ }
120
+
121
+ ~ .hiw-card {
122
+ &:before {
123
+ height: $hiw-card-divider-height-desktop;
124
+ left: $hiw-card-divider-position-left-desktop;
125
+ top: $hiw-card-divider-position-top-desktop;
126
+ transform: rotate(90deg);
127
+ }
128
+ }
129
+ }
130
+ }
131
+
132
+ .hiw-card {
133
+ &__description {
134
+ font-size: $hiw-desc-font-size-desktop;
135
+ margin: $hiw-desc-margin-desktop;
136
+ }
137
+ }
138
+ }
@@ -0,0 +1,19 @@
1
+ {{#xif "!this.carouselOptions"}}
2
+ <ul class="hiw-block__content">
3
+ {{/xif}}
4
+ {{#each this.items}}
5
+ <li class="{{#if ../this.carouselOptions}}swiper-slide {{/if}}hiw-card{{#if ../this.classModifier}} {{../this.classModifier}}{{/if}}">
6
+ <div class="hiw-card__wrapper">
7
+ {{#if this.illustration}}
8
+ <svg class="hiw-card__icon" role="img">
9
+ <use href="{{#unless this.isLocalSrc}}{{#xif 'isLocal === "true"'}}/temp/assets{{else}}https://{{x 'process.env.NODE_ENV'}}/quote/resources/assets{{/xif}}{{/unless}}{{this.illustration}}"></use>
10
+ </svg>
11
+ {{/if}}
12
+ {{#if this.title}}<p class="hiw-card__title">{{{this.title}}}</p>{{/if}}
13
+ {{#if this.description}}<p class="hiw-card__description">{{{this.description}}}</p>{{/if}}
14
+ </div>
15
+ </li>
16
+ {{/each}}
17
+ {{#xif "!this.carouselOptions"}}
18
+ </ul>
19
+ {{/xif}}