mod-build 3.7.0 → 3.7.2-7.beta-5

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 (42) hide show
  1. package/CHANGELOG.md +100 -0
  2. package/gulp-tasks/build.js +4 -4
  3. package/gulp-tasks/clean.js +8 -1
  4. package/gulp-tasks/get-default-trade-questions.js +155 -0
  5. package/gulp-tasks/grab-cdn.js +26 -21
  6. package/gulp-tasks/grab-mhsadmin-data.js +418 -0
  7. package/gulp-tasks/grab-section-deals-components.js +47 -0
  8. package/gulp-tasks/grab-shared-scripts.js +21 -5
  9. package/gulp-tasks/serve.js +5 -5
  10. package/gulp-tasks/tasks.js +36 -3
  11. package/gulp-tasks/templates.js +95 -12
  12. package/package.json +1 -1
  13. package/src/scripts/vendor/heap-addeventproperties-identify.js +1 -1
  14. package/src/scripts/vendor/heap-tracking.js +1 -1
  15. package/src/scripts/vendor/heap-vwo.js +1 -1
  16. package/src/scripts/vendor/visual-website-optimizer.js +7 -8
  17. package/src/templates/_partials/scripts/vwo-redirect-callback.html +20 -0
  18. package/src/trade-questions/alerts_medical.js +111 -0
  19. package/src/trade-questions/bathroom_refacing.js +96 -0
  20. package/src/trade-questions/cabinet_refacing.js +251 -0
  21. package/src/trade-questions/cabinets.js +35 -0
  22. package/src/trade-questions/concrete_foundation.js +57 -0
  23. package/src/trade-questions/door.js +143 -0
  24. package/src/trade-questions/flooring.js +185 -0
  25. package/src/trade-questions/garage_door.js +89 -0
  26. package/src/trade-questions/gutters.js +45 -0
  27. package/src/trade-questions/home_security.js +130 -0
  28. package/src/trade-questions/home_warranty.js +57 -0
  29. package/src/trade-questions/hot_tubs.js +92 -0
  30. package/src/trade-questions/hvac.js +179 -0
  31. package/src/trade-questions/index.js +26 -0
  32. package/src/trade-questions/insulation.js +118 -0
  33. package/src/trade-questions/plumbing.js +260 -0
  34. package/src/trade-questions/roofing.js +118 -0
  35. package/src/trade-questions/siding.js +150 -0
  36. package/src/trade-questions/solar.js +69 -0
  37. package/src/trade-questions/stair_lifts.js +47 -0
  38. package/src/trade-questions/tree_services.js +169 -0
  39. package/src/trade-questions/walk_in_tubs.js +47 -0
  40. package/src/trade-questions/water_treatment.js +48 -0
  41. package/src/trade-questions/windows.js +132 -0
  42. package/src/trade-questions-config.js +139 -0
@@ -0,0 +1,118 @@
1
+ const roofing = {
2
+ RoofingProjectScope: {
3
+ fields: [
4
+ {
5
+ legend: {
6
+ text: 'What type of roofing work do you need?'
7
+ },
8
+ options: [
9
+ {
10
+ attributes: {
11
+ name: 'RoofingProjectScope',
12
+ value: 'Replace',
13
+ checked: '',
14
+ data: {
15
+ required: 'nonempty'
16
+ }
17
+ },
18
+ text: 'Replace'
19
+ },
20
+ {
21
+ attributes: {
22
+ name: 'RoofingProjectScope',
23
+ value: 'Repair',
24
+ data: {
25
+ required: 'nonempty'
26
+ }
27
+ },
28
+ text: 'Repair'
29
+ },
30
+ {
31
+ attributes: {
32
+ name: 'RoofingProjectScope',
33
+ value: 'Install',
34
+ data: {
35
+ required: 'nonempty'
36
+ }
37
+ },
38
+ text: 'Not Sure'
39
+ }
40
+ ]
41
+ }
42
+ ]
43
+ },
44
+ ProductService: {
45
+ fields: [
46
+ {
47
+ legend: {
48
+ text: 'What type of roofing material are you looking for?'
49
+ },
50
+ options: [
51
+ {
52
+ attributes: {
53
+ name: 'ProductService',
54
+ value: 'ROOFING_ASPHALT',
55
+ checked: '',
56
+ data: {
57
+ required: 'nonempty'
58
+ }
59
+ },
60
+ text: 'Asphalt'
61
+ },
62
+ {
63
+ attributes: {
64
+ name: 'ProductService',
65
+ value: 'ROOFING_COMPOSITE',
66
+ data: {
67
+ required: 'nonempty'
68
+ }
69
+ },
70
+ text: 'Composite'
71
+ },
72
+ {
73
+ attributes: {
74
+ name: 'ProductService',
75
+ value: 'ROOFING_NATURAL_SLATE',
76
+ data: {
77
+ required: 'nonempty'
78
+ }
79
+ },
80
+ text: 'Natural Slate'
81
+ },
82
+ {
83
+ attributes: {
84
+ name: 'ProductService',
85
+ value: 'ROOFING_TILE',
86
+ data: {
87
+ required: 'nonempty'
88
+ }
89
+ },
90
+ text: 'Tile'
91
+ },
92
+ {
93
+ attributes: {
94
+ name: 'ProductService',
95
+ value: 'ROOFING_CEDAR_SHAKE',
96
+ data: {
97
+ required: 'nonempty'
98
+ }
99
+ },
100
+ text: 'Wood Shake'
101
+ },
102
+ {
103
+ attributes: {
104
+ name: 'ProductService',
105
+ value: 'ROOFING_METAL',
106
+ data: {
107
+ required: 'nonempty'
108
+ }
109
+ },
110
+ text: 'Metal'
111
+ }
112
+ ]
113
+ }
114
+ ]
115
+ }
116
+ };
117
+
118
+ module.exports = roofing;
@@ -0,0 +1,150 @@
1
+ const siding = {
2
+ ProjectPlan: {
3
+ fields: [
4
+ {
5
+ legend: {
6
+ text: 'What type of service do you need?'
7
+ },
8
+ options: [
9
+ {
10
+ text: 'Replace',
11
+ attributes: {
12
+ name: 'ProjectPlan',
13
+ value: 'Replace existing siding',
14
+ checked: '',
15
+ data: {
16
+ required: 'nonempty'
17
+ }
18
+ }
19
+ },
20
+ {
21
+ text: 'Repair',
22
+ attributes: {
23
+ name: 'ProjectPlan',
24
+ value: 'Repair section(s) of siding',
25
+ data: {
26
+ required: 'nonempty'
27
+ }
28
+ }
29
+ }
30
+ ]
31
+ }
32
+ ]
33
+ },
34
+ ProductService: {
35
+ fields: [
36
+ {
37
+ legend: {
38
+ text: 'What type of siding are you looking for?'
39
+ },
40
+ options: [
41
+ {
42
+ text: 'Vinyl',
43
+ attributes: {
44
+ name: 'ProductService',
45
+ value: 'SIDING_VINYL',
46
+ checked: '',
47
+ data: {
48
+ required: 'nonempty'
49
+ }
50
+ }
51
+ },
52
+ {
53
+ text: 'Fiber cement',
54
+ attributes: {
55
+ name: 'ProductService',
56
+ value: 'SIDING_COMPOSITE_WOOD',
57
+ data: {
58
+ required: 'nonempty'
59
+ }
60
+ }
61
+ },
62
+ {
63
+ text: 'Aluminum',
64
+ attributes: {
65
+ name: 'ProductService',
66
+ value: 'SIDING_ALUMINIUM',
67
+ data: {
68
+ required: 'nonempty'
69
+ }
70
+ }
71
+ },
72
+ {
73
+ text: 'Brickface',
74
+ attributes: {
75
+ name: 'ProductService',
76
+ value: 'SIDING_BRICKFACE',
77
+ data: {
78
+ required: 'nonempty'
79
+ }
80
+ }
81
+ },
82
+ {
83
+ text: 'Stoneface',
84
+ attributes: {
85
+ name: 'ProductService',
86
+ value: 'SIDING_STONEFACE',
87
+ data: {
88
+ required: 'nonempty'
89
+ }
90
+ }
91
+ },
92
+ {
93
+ text: 'Stucco',
94
+ attributes: {
95
+ name: 'ProductService',
96
+ value: 'STUCCO_EXTERIOR',
97
+ data: {
98
+ required: 'nonempty'
99
+ }
100
+ }
101
+ }
102
+ ]
103
+ }
104
+ ]
105
+ },
106
+ stories: {
107
+ fields: [
108
+ {
109
+ legend: {
110
+ text: 'How many stories is your home?'
111
+ },
112
+ options: [
113
+ {
114
+ attributes: {
115
+ name: 'stories',
116
+ value: 'One story',
117
+ checked: '',
118
+ data: {
119
+ required: 'nonempty'
120
+ }
121
+ },
122
+ text: 'One story'
123
+ },
124
+ {
125
+ attributes: {
126
+ name: 'stories',
127
+ value: 'Two story',
128
+ data: {
129
+ required: 'nonempty'
130
+ }
131
+ },
132
+ text: 'Two story'
133
+ },
134
+ {
135
+ attributes: {
136
+ name: 'stories',
137
+ value: 'Three stories or more',
138
+ data: {
139
+ required: 'nonempty'
140
+ }
141
+ },
142
+ text: 'Three stories or more'
143
+ }
144
+ ]
145
+ }
146
+ ]
147
+ }
148
+ };
149
+
150
+ module.exports = siding;
@@ -0,0 +1,69 @@
1
+ const solar = {
2
+ ElectricBill: {
3
+ fields: [
4
+ {
5
+ legend: {
6
+ text: 'What\'s your monthly electric bill?'
7
+ },
8
+ options: [
9
+ {
10
+ text: '$300+',
11
+ attributes: {
12
+ name: 'ElectricBill',
13
+ value: '$300+',
14
+ data: {
15
+ required: 'nonempty'
16
+ }
17
+ }
18
+ },
19
+ {
20
+ text: '$200 - $300',
21
+ attributes: {
22
+ name: 'ElectricBill',
23
+ value: '$200 - $300',
24
+ checked: '',
25
+ data: {
26
+ required: 'nonempty'
27
+ }
28
+ }
29
+ },
30
+ {
31
+ text: '$100 - $200',
32
+ attributes: {
33
+ name: 'ElectricBill',
34
+ value: '$100 - $200',
35
+ data: {
36
+ required: 'nonempty'
37
+ }
38
+ }
39
+ },
40
+ {
41
+ text: 'Under $100',
42
+ attributes: {
43
+ name: 'ElectricBill',
44
+ value: 'Under $100',
45
+ data: {
46
+ required: 'nonempty'
47
+ }
48
+ }
49
+ }
50
+ ]
51
+ }
52
+ ]
53
+ },
54
+ UtilityProvider: {
55
+ fields: [
56
+ {
57
+ fieldType: 'select',
58
+ errorMessage: 'Please select a provider.',
59
+ attributes: {
60
+ data: {
61
+ required: 'nonempty'
62
+ }
63
+ }
64
+ }
65
+ ]
66
+ }
67
+ };
68
+
69
+ module.exports = solar;
@@ -0,0 +1,47 @@
1
+ /* eslint-disable */
2
+ const stair_lifts = {
3
+ ReasonForStairLift: {
4
+ fields: [
5
+ {
6
+ legend: {
7
+ text: 'Why are you considering a stair lift?'
8
+ },
9
+ options: [
10
+ {
11
+ attributes: {
12
+ name: 'ReasonForStairLift',
13
+ value: 'Safety',
14
+ checked: '',
15
+ data: {
16
+ required: 'nonempty'
17
+ }
18
+ },
19
+ text: 'Safety'
20
+ },
21
+ {
22
+ attributes: {
23
+ name: 'ReasonForStairLift',
24
+ value: 'Mobility',
25
+ data: {
26
+ required: 'nonempty'
27
+ }
28
+ },
29
+ text: 'Mobility'
30
+ },
31
+ {
32
+ attributes: {
33
+ name: 'ReasonForStairLift',
34
+ value: 'Other',
35
+ data: {
36
+ required: 'nonempty'
37
+ }
38
+ },
39
+ text: 'Other'
40
+ },
41
+ ]
42
+ }
43
+ ]
44
+ }
45
+ };
46
+
47
+ module.exports = stair_lifts;
@@ -0,0 +1,169 @@
1
+ /* eslint-disable */
2
+ const tree_services = {
3
+ JobType: {
4
+ fields: [
5
+ {
6
+ legend: {
7
+ text: 'Which tree service do you need?'
8
+ },
9
+ options: [
10
+ {
11
+ text: 'Tree Removal',
12
+ attributes: {
13
+ name: 'JobType',
14
+ value: 'Tree Removal',
15
+ data: {
16
+ required: 'nonempty'
17
+ }
18
+ }
19
+ },
20
+ {
21
+ text: 'Tree Trimming',
22
+ attributes: {
23
+ name: 'JobType',
24
+ value: 'Tree Trimming',
25
+ data: {
26
+ required: 'nonempty'
27
+ }
28
+ }
29
+ },
30
+ {
31
+ text: 'Stump Removal',
32
+ attributes: {
33
+ name: 'JobType',
34
+ value: 'Stump Removal',
35
+ data: {
36
+ required: 'nonempty'
37
+ }
38
+ }
39
+ },
40
+ {
41
+ text: 'Other',
42
+ attributes: {
43
+ name: 'JobType',
44
+ value: 'Other',
45
+ data: {
46
+ required: 'nonempty'
47
+ }
48
+ }
49
+ }
50
+ ]
51
+ }
52
+ ]
53
+ },
54
+ NumberOfTrees: {
55
+ fields: [
56
+ {
57
+ legend: {
58
+ text: 'How many trees/stumps are involved?'
59
+ },
60
+ options: [
61
+ {
62
+ text: '1',
63
+ attributes: {
64
+ name: 'NumberOfTrees',
65
+ value: '1',
66
+ data: {
67
+ required: 'nonempty'
68
+ }
69
+ }
70
+ },
71
+ {
72
+ text: '2',
73
+ attributes: {
74
+ name: 'NumberOfTrees',
75
+ value: '2',
76
+ data: {
77
+ required: 'nonempty'
78
+ }
79
+ }
80
+ },
81
+ {
82
+ text: '3',
83
+ attributes: {
84
+ name: 'NumberOfTrees',
85
+ value: '3',
86
+ data: {
87
+ required: 'nonempty'
88
+ }
89
+ }
90
+ },
91
+ {
92
+ text: '4+',
93
+
94
+ attributes: {
95
+ name: 'NumberOfTrees',
96
+ value: '4+',
97
+ data: {
98
+ required: 'nonempty'
99
+ }
100
+ }
101
+ }
102
+ ]
103
+ }
104
+ ]
105
+ },
106
+ TreeSize: {
107
+ fields: [
108
+ {
109
+ legend: {
110
+ text: 'What are the tree sizes?'
111
+ },
112
+ options: [
113
+ {
114
+ text: '<1 Story',
115
+ attributes: {
116
+ name: 'TreeSize',
117
+ value: '<1 story',
118
+ data: {
119
+ required: 'nonempty'
120
+ }
121
+ }
122
+ },
123
+ {
124
+ text: '1 Story',
125
+ attributes: {
126
+ name: 'TreeSize',
127
+ value: '1 story',
128
+ data: {
129
+ required: 'nonempty'
130
+ }
131
+ }
132
+ },
133
+ {
134
+ text: '2 Stories',
135
+ attributes: {
136
+ name: 'TreeSize',
137
+ value: '2 stories',
138
+ data: {
139
+ required: 'nonempty'
140
+ }
141
+ }
142
+ },
143
+ {
144
+ text: '3 Stories',
145
+ attributes: {
146
+ name: 'TreeSize',
147
+ value: '3 stories',
148
+ data: {
149
+ required: 'nonempty'
150
+ }
151
+ }
152
+ },
153
+ {
154
+ text: 'Mix of Sizes',
155
+ attributes: {
156
+ name: 'TreeSize',
157
+ value: 'mix of sizes',
158
+ data: {
159
+ required: 'nonempty'
160
+ }
161
+ }
162
+ }
163
+ ]
164
+ }
165
+ ]
166
+ }
167
+ };
168
+
169
+ module.exports = tree_services;
@@ -0,0 +1,47 @@
1
+ /* eslint-disable */
2
+ const walk_in_tubs = {
3
+ Interest: {
4
+ fields: [
5
+ {
6
+ legend: {
7
+ text: 'What\'s the biggest reason you are considering a walk-in&nbsp;tub?'
8
+ },
9
+ options: [
10
+ {
11
+ text: 'For Safety',
12
+ attributes: {
13
+ name: 'Interest',
14
+ value: 'Safety',
15
+ checked: '',
16
+ data: {
17
+ required: 'nonempty'
18
+ }
19
+ }
20
+ },
21
+ {
22
+ text: 'For Therapeutic Reasons',
23
+ attributes: {
24
+ name: 'Interest',
25
+ value: 'Therapeutic',
26
+ data: {
27
+ required: 'nonempty'
28
+ }
29
+ }
30
+ },
31
+ {
32
+ text: 'Other Reasons',
33
+ attributes: {
34
+ name: 'Interest',
35
+ value: 'Other',
36
+ data: {
37
+ required: 'nonempty'
38
+ }
39
+ }
40
+ }
41
+ ]
42
+ }
43
+ ]
44
+ }
45
+ };
46
+
47
+ module.exports = walk_in_tubs;
@@ -0,0 +1,48 @@
1
+
2
+ /* eslint-disable */
3
+ const water_treatment = {
4
+ ServiceType: {
5
+ fields: [
6
+ {
7
+ legend: {
8
+ text: 'What type of water do you&nbsp;have?'
9
+ },
10
+ options: [
11
+ {
12
+ attributes: {
13
+ name: 'ServiceType',
14
+ value: 'CITY_WATER',
15
+ checked: '',
16
+ data: {
17
+ required: 'nonempty'
18
+ }
19
+ },
20
+ text: 'City Water'
21
+ },
22
+ {
23
+ attributes: {
24
+ name: 'ServiceType',
25
+ value: 'WELL_WATER',
26
+ data: {
27
+ required: 'nonempty'
28
+ }
29
+ },
30
+ text: 'Well Water'
31
+ },
32
+ {
33
+ attributes: {
34
+ name: 'ServiceType',
35
+ value: 'UNSURE',
36
+ data: {
37
+ required: 'nonempty'
38
+ }
39
+ },
40
+ text: 'Unsure'
41
+ }
42
+ ]
43
+ }
44
+ ]
45
+ }
46
+ };
47
+
48
+ module.exports = water_treatment;