bhl-forms 0.7.3 → 0.7.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.
- package/dist/bhl-forms.es.js +551 -543
- package/dist/bhl-forms.iife.js +4 -4
- package/dist/bhl-forms.modern.es.js +649 -649
- package/dist/bhl-forms.modern.iife.js +7 -7
- package/dist/bhl-forms.modern.umd.js +7 -7
- package/dist/bhl-forms.umd.js +4 -4
- package/dist/forms/accidentsAndInjuries.es.js +1461 -1151
- package/dist/forms/accidentsAndInjuries.iife.js +1 -1
- package/dist/forms/accidentsAndInjuries.json +1 -1
- package/dist/forms/appraisals.es.js +138 -137
- package/dist/forms/appraisals.iife.js +1 -1
- package/dist/forms/business.es.js +1434 -1149
- package/dist/forms/business.iife.js +1 -1
- package/dist/forms/business.json +1 -1
- package/dist/forms/childAndFamily.es.js +1329 -1043
- package/dist/forms/childAndFamily.iife.js +1 -1
- package/dist/forms/childAndFamily.json +1 -1
- package/dist/forms/childAndFamilySingle.es.js +1528 -1378
- package/dist/forms/childAndFamilySingle.iife.js +1 -1
- package/dist/forms/childAndFamilySingle.json +1 -1
- package/dist/forms/civilLawsuit.es.js +2000 -1807
- package/dist/forms/civilLawsuit.iife.js +1 -1
- package/dist/forms/civilLawsuit.json +1 -1
- package/dist/forms/coins.es.js +138 -137
- package/dist/forms/coins.iife.js +1 -1
- package/dist/forms/contracts.es.js +1349 -1050
- package/dist/forms/contracts.iife.js +1 -1
- package/dist/forms/contracts.json +1 -1
- package/dist/forms/criminal.es.js +1832 -1711
- package/dist/forms/criminal.iife.js +1 -1
- package/dist/forms/criminal.json +1 -1
- package/dist/forms/divorce.es.js +1541 -1385
- package/dist/forms/divorce.iife.js +1 -1
- package/dist/forms/divorce.json +1 -1
- package/dist/forms/employmentAndWorkplace.es.js +1833 -1678
- package/dist/forms/employmentAndWorkplace.iife.js +1 -1
- package/dist/forms/employmentAndWorkplace.json +1 -1
- package/dist/forms/generalHomeImprovement.es.js +2381 -2010
- package/dist/forms/generalHomeImprovement.iife.js +1 -1
- package/dist/forms/generalHomeImprovement.json +1 -1
- package/dist/forms/generalHomeImprovementThankYou.es.js +1795 -2008
- package/dist/forms/generalHomeImprovementThankYou.iife.js +1 -1
- package/dist/forms/generalHomeImprovementThankYou.json +1 -1
- package/dist/forms/generalLegal.es.js +3037 -2535
- package/dist/forms/generalLegal.iife.js +1 -1
- package/dist/forms/generalLegal.json +1 -1
- package/dist/forms/generalLegalJustAnswer.es.js +3216 -2872
- package/dist/forms/generalLegalJustAnswer.iife.js +1 -1
- package/dist/forms/generalLegalJustAnswer.json +1 -1
- package/dist/forms/generalLegalPopUnder.es.js +3037 -2535
- package/dist/forms/generalLegalPopUnder.iife.js +1 -1
- package/dist/forms/generalLegalPopUnder.json +1 -1
- package/dist/forms/generalLegalPopUnderSingle.es.js +3216 -2872
- package/dist/forms/generalLegalPopUnderSingle.iife.js +1 -1
- package/dist/forms/generalLegalPopUnderSingle.json +1 -1
- package/dist/forms/generalLegalSingle.es.js +3216 -2872
- package/dist/forms/generalLegalSingle.iife.js +1 -1
- package/dist/forms/generalLegalSingle.json +1 -1
- package/dist/forms/generalLegalThankYou.es.js +2825 -2303
- package/dist/forms/generalLegalThankYou.iife.js +1 -1
- package/dist/forms/generalLegalThankYou.json +1 -1
- package/dist/forms/generalLegalThankYouConsultation.es.js +3216 -2872
- package/dist/forms/generalLegalThankYouConsultation.iife.js +1 -1
- package/dist/forms/generalLegalThankYouConsultation.json +1 -1
- package/dist/forms/harassmentAndDiscrimination.es.js +1425 -1120
- package/dist/forms/harassmentAndDiscrimination.iife.js +1 -1
- package/dist/forms/harassmentAndDiscrimination.json +1 -1
- package/dist/forms/landlordTenant.es.js +1395 -1106
- package/dist/forms/landlordTenant.iife.js +1 -1
- package/dist/forms/landlordTenant.json +1 -1
- package/dist/forms/malpractice.es.js +1531 -1223
- package/dist/forms/malpractice.iife.js +1 -1
- package/dist/forms/malpractice.json +1 -1
- package/dist/forms/mechanics.es.js +702 -530
- package/dist/forms/mechanics.iife.js +1 -1
- package/dist/forms/mechanics.json +1 -1
- package/dist/forms/patentsAndIP.es.js +1830 -1652
- package/dist/forms/patentsAndIP.iife.js +1 -1
- package/dist/forms/patentsAndIP.json +1 -1
- package/dist/forms/realEstate.es.js +2852 -2405
- package/dist/forms/realEstate.iife.js +1 -1
- package/dist/forms/realEstate.json +1 -1
- package/dist/forms/repossession.es.js +1568 -1251
- package/dist/forms/repossession.iife.js +1 -1
- package/dist/forms/repossession.json +1 -1
- package/dist/forms/ssdi.es.js +635 -520
- package/dist/forms/ssdi.iife.js +1 -1
- package/dist/forms/ssdi.json +1 -1
- package/dist/forms/testForm.es.js +409 -371
- package/dist/forms/testForm.iife.js +1 -1
- package/dist/forms/testForm.json +1 -1
- package/dist/forms/testRedirects.es.js +421 -316
- package/dist/forms/testRedirects.iife.js +1 -1
- package/dist/forms/testRedirects.json +1 -1
- package/dist/forms/vets.es.js +138 -137
- package/dist/forms/vets.iife.js +1 -1
- package/dist/forms/willsAndTrusts.es.js +1428 -1112
- package/dist/forms/willsAndTrusts.iife.js +1 -1
- package/dist/forms/willsAndTrusts.json +1 -1
- package/dist/main.css +1 -1
- package/package.json +1 -1
|
@@ -2,43 +2,70 @@ function merge() {
|
|
|
2
2
|
return Object.assign({}, ...arguments)
|
|
3
3
|
}
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
const DEFAULT_FINAL_SUBHEADLINE_DYNAMIC_LEGAL = '$getKey($meta, "finalSubHeadlines." + $get(Type_Of_Legal_Problem).value, $meta.defaultFinalSubHeadline)';
|
|
5
|
+
const DEFAULT_COMMENTS_LABEL = "Please briefly describe your issue in a few words:";
|
|
6
|
+
const DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC =
|
|
7
|
+
'$getKey($meta, "commentsPlaceholders." + $get(Category).value, $meta.defaultCommentsPlaceholder)';
|
|
8
|
+
const DEFAULT_FINAL_HEADLINE_DYNAMIC_LEGAL =
|
|
9
|
+
'$getKey($meta, "finalHeadlines." + $get(Type_Of_Legal_Problem).value, $meta.defaultFinalHeadline)';
|
|
10
|
+
const DEFAULT_FINAL_SUBHEADLINE_DYNAMIC_LEGAL =
|
|
11
|
+
'$getKey($meta, "finalSubHeadlines." + $get(Type_Of_Legal_Problem).value, $meta.defaultFinalSubHeadline)';
|
|
13
12
|
|
|
14
13
|
const DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC_HOME_IMPROVEMENT = DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC;
|
|
15
|
-
const DEFAULT_FINAL_HEADLINE_HOME_IMPROVEMENT =
|
|
16
|
-
const DEFAULT_FINAL_SUBHEADLINE_HOME_IMPROVEMENT =
|
|
17
|
-
const TCPA_LANGUAGE_HOME_IMPROVEMENT =
|
|
14
|
+
const DEFAULT_FINAL_HEADLINE_HOME_IMPROVEMENT = "We Found Contractors Near You";
|
|
15
|
+
const DEFAULT_FINAL_SUBHEADLINE_HOME_IMPROVEMENT = "Compare quotes and save! Please verify your contact info:";
|
|
16
|
+
const TCPA_LANGUAGE_HOME_IMPROVEMENT =
|
|
17
|
+
'By checking this box, I a) agree to the Terms of Use, and b) consent to be contacted by up to four <a href="/providers" target="_blank" class="t-text-blue-600 t-underline">contractors and partners</a> of this website using live, autodialed, pre-recorded, or artificial voice calls, as well as text messages. Your consent is not required as a condition of purchasing any goods or services.';
|
|
18
18
|
|
|
19
19
|
const radio = (updates) => {
|
|
20
20
|
if (updates.name && !updates.id) {
|
|
21
21
|
updates.id = updates.name;
|
|
22
22
|
}
|
|
23
|
-
return merge(
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
23
|
+
return merge(
|
|
24
|
+
{
|
|
25
|
+
$formkit: "radio",
|
|
26
|
+
validation: "required",
|
|
27
|
+
validationMessages: {
|
|
28
|
+
required: "Field is required",
|
|
29
|
+
},
|
|
30
|
+
optionsClass: "t-pt-3 t-pl-1",
|
|
31
|
+
legendClass: "required",
|
|
28
32
|
},
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
33
|
+
updates
|
|
34
|
+
)
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
// TODO: rename
|
|
38
|
+
const col2RadioCenter = (updates) => {
|
|
39
|
+
updates.legendClass = "required t-w-[100%] t-text-center";
|
|
40
|
+
if (typeof updates.fieldsetClass === "undefined") {
|
|
41
|
+
updates.fieldsetClass = "$reset t-flex t-justify-center";
|
|
42
|
+
}
|
|
43
|
+
updates.innerClass = "t-items-start";
|
|
44
|
+
updates.wrapperClass = "$reset t-flex t-cursor-pointer t-mb-3";
|
|
45
|
+
updates.optionClass = "t-pl-4 md:t-pl-8 md:t-min-w-[200px]";
|
|
46
|
+
updates.optionsClass = "t-pl-4 t-pt-3 t-grid t-grid-cols-1 md:t-grid-cols-2";
|
|
47
|
+
updates.messagesClass = "t-flex t-justify-center";
|
|
48
|
+
updates.helpClass = "t-mt-0 t-mb-4 !t-text-sm t-text-center";
|
|
49
|
+
return radio(updates)
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
const sbsRadio = (updates) => {
|
|
53
|
+
updates.legendClass = "legend-left required";
|
|
54
|
+
updates.fieldsetClass = "$reset side-by-side";
|
|
55
|
+
updates.optionsClass = "t-pl-1";
|
|
56
|
+
updates.innerClass = "t-flex t-items-center";
|
|
57
|
+
updates.wrapperClass = "t-mb-3";
|
|
58
|
+
return radio(updates)
|
|
32
59
|
};
|
|
33
60
|
|
|
34
61
|
const verticalRadio = (updates) => {
|
|
35
|
-
updates.legendClass =
|
|
36
|
-
updates.fieldsetClass =
|
|
37
|
-
updates.optionsClass =
|
|
38
|
-
updates.innerClass =
|
|
39
|
-
updates.wrapperClass =
|
|
40
|
-
updates.optionClass =
|
|
41
|
-
updates.messagesClass =
|
|
62
|
+
updates.legendClass = "required";
|
|
63
|
+
updates.fieldsetClass = "$reset t-flex t-justify-center";
|
|
64
|
+
updates.optionsClass = "t-pl-2 t-pt-3";
|
|
65
|
+
updates.innerClass = "t-items-center";
|
|
66
|
+
updates.wrapperClass = "$reset t-flex t-cursor-pointer t-mb-3";
|
|
67
|
+
updates.optionClass = "t-pl-4 md:t-pl-12";
|
|
68
|
+
updates.messagesClass = "t-flex t-justify-center";
|
|
42
69
|
return radio(updates)
|
|
43
70
|
};
|
|
44
71
|
|
|
@@ -46,24 +73,35 @@ const select = (updates) => {
|
|
|
46
73
|
if (updates.name && !updates.id) {
|
|
47
74
|
updates.id = updates.name;
|
|
48
75
|
}
|
|
49
|
-
return merge(
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
76
|
+
return merge(
|
|
77
|
+
{
|
|
78
|
+
$formkit: "select",
|
|
79
|
+
placeholder: "Please Select",
|
|
80
|
+
validation: "required",
|
|
81
|
+
validationMessages: {
|
|
82
|
+
required: "Field is required",
|
|
83
|
+
},
|
|
84
|
+
inputClass: "t-bg-white",
|
|
85
|
+
labelClass: "required",
|
|
55
86
|
},
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
87
|
+
updates
|
|
88
|
+
)
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
const sbsSelect = (updates) => {
|
|
92
|
+
updates.labelClass = "required";
|
|
93
|
+
updates.wrapperClass = "side-by-side t-items-center";
|
|
94
|
+
updates.innerClass = "select-height-content";
|
|
95
|
+
updates.helpClass = "t-mt-2.5 md:t-text-right md:t-mt-[-5px]";
|
|
96
|
+
return select(updates)
|
|
59
97
|
};
|
|
60
98
|
|
|
61
99
|
const verticalSelect = (updates) => {
|
|
62
|
-
updates.labelClass =
|
|
63
|
-
updates.wrapperClass =
|
|
64
|
-
updates.messagesClass =
|
|
65
|
-
updates.inputClass =
|
|
66
|
-
updates.helpClass =
|
|
100
|
+
updates.labelClass = "required";
|
|
101
|
+
updates.wrapperClass = "t-flex t-justify-center";
|
|
102
|
+
updates.messagesClass = "t-flex t-justify-center";
|
|
103
|
+
updates.inputClass = "t-min-w-[150px] t-bg-white";
|
|
104
|
+
updates.helpClass = "t-mt-2.5 t-text-center";
|
|
67
105
|
return select(updates)
|
|
68
106
|
};
|
|
69
107
|
|
|
@@ -71,26 +109,29 @@ const text = (updates) => {
|
|
|
71
109
|
if (updates.name && !updates.id) {
|
|
72
110
|
updates.id = updates.name;
|
|
73
111
|
}
|
|
74
|
-
return merge(
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
112
|
+
return merge(
|
|
113
|
+
{
|
|
114
|
+
$formkit: "text",
|
|
115
|
+
validation: "required",
|
|
116
|
+
validationMessages: {
|
|
117
|
+
required: "Field is required",
|
|
118
|
+
},
|
|
119
|
+
labelClass: "required",
|
|
79
120
|
},
|
|
80
|
-
|
|
81
|
-
|
|
121
|
+
updates
|
|
122
|
+
)
|
|
82
123
|
};
|
|
83
124
|
|
|
84
125
|
const sbsText = (updates) => {
|
|
85
|
-
updates.wrapperClass =
|
|
126
|
+
updates.wrapperClass = "side-by-side t-items-center";
|
|
86
127
|
return text(updates)
|
|
87
128
|
};
|
|
88
129
|
|
|
89
130
|
const verticalText = (updates) => {
|
|
90
|
-
updates.wrapperClass =
|
|
91
|
-
updates.messagesClass =
|
|
92
|
-
updates.inputClass =
|
|
93
|
-
updates.helpClass =
|
|
131
|
+
updates.wrapperClass = "t-flex t-justify-center";
|
|
132
|
+
updates.messagesClass = "t-flex t-justify-center";
|
|
133
|
+
updates.inputClass = "t-text-center";
|
|
134
|
+
updates.helpClass = "t-mt-2.5 !t-text-sm t-text-center";
|
|
94
135
|
return text(updates)
|
|
95
136
|
};
|
|
96
137
|
|
|
@@ -98,671 +139,897 @@ const textArea = (updates) => {
|
|
|
98
139
|
if (updates.name && !updates.id) {
|
|
99
140
|
updates.id = updates.name;
|
|
100
141
|
}
|
|
101
|
-
return merge(
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
142
|
+
return merge(
|
|
143
|
+
{
|
|
144
|
+
$formkit: "textarea",
|
|
145
|
+
rows: 5,
|
|
146
|
+
maxlength: 500,
|
|
147
|
+
validation: "required",
|
|
148
|
+
validationMessages: {
|
|
149
|
+
required: "Field is required",
|
|
150
|
+
},
|
|
151
|
+
innerClass: "t-max-w-xl",
|
|
152
|
+
labelClass: "required",
|
|
108
153
|
},
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
}, updates)
|
|
154
|
+
updates
|
|
155
|
+
)
|
|
112
156
|
};
|
|
113
157
|
|
|
114
|
-
|
|
115
158
|
// ------ Common Inputs
|
|
116
159
|
|
|
117
|
-
|
|
118
160
|
const address$1 = (scope, vertical, updates = {}) => {
|
|
119
161
|
const func = vertical ? verticalText : sbsText;
|
|
120
|
-
const label = vertical ?
|
|
162
|
+
const label = vertical ? updates.label : "Street Address:";
|
|
121
163
|
return func({
|
|
122
164
|
label,
|
|
123
|
-
placeholder:
|
|
124
|
-
name: scope ? scope +
|
|
165
|
+
placeholder: "10 Example St",
|
|
166
|
+
name: scope ? scope + ":" + "Address" : "Address",
|
|
125
167
|
autocomplete: "street-address",
|
|
126
|
-
|
|
168
|
+
"data-tf-sensitive": "false",
|
|
127
169
|
minlength: 5,
|
|
128
170
|
maxlength: 100,
|
|
129
171
|
validationMessages: {
|
|
130
|
-
minlength:
|
|
131
|
-
required:
|
|
172
|
+
minlength: "Invalid Address",
|
|
173
|
+
required: "Address is required",
|
|
132
174
|
},
|
|
133
|
-
...updates
|
|
175
|
+
...updates,
|
|
134
176
|
})
|
|
135
177
|
};
|
|
136
178
|
|
|
137
|
-
const email = (scope) =>
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
autocomplete: "given-name",
|
|
156
|
-
validationMessages: {
|
|
157
|
-
required: 'First Name is required'
|
|
158
|
-
}
|
|
159
|
-
});
|
|
179
|
+
const email = (scope, vertical, updates = {}) => {
|
|
180
|
+
const func = vertical ? verticalText : sbsText;
|
|
181
|
+
const label = vertical ? updates.label : "Email Address:";
|
|
182
|
+
return func({
|
|
183
|
+
$formkit: "email",
|
|
184
|
+
name: scope ? scope + ":" + "Email" : "Email",
|
|
185
|
+
label,
|
|
186
|
+
placeholder: "email@domain.com",
|
|
187
|
+
autocomplete: "email",
|
|
188
|
+
"data-tf-sensitive": "false",
|
|
189
|
+
validation: "required|email",
|
|
190
|
+
validationMessages: {
|
|
191
|
+
required: "Email is required",
|
|
192
|
+
email: "Invalid Email",
|
|
193
|
+
},
|
|
194
|
+
...updates,
|
|
195
|
+
})
|
|
196
|
+
};
|
|
160
197
|
|
|
161
|
-
const
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
198
|
+
const firstName = (scope, vertical, updates = {}) => {
|
|
199
|
+
const func = vertical ? verticalText : sbsText;
|
|
200
|
+
const label = vertical ? updates.label : "First Name:";
|
|
201
|
+
return func({
|
|
202
|
+
label,
|
|
203
|
+
placeholder: "First",
|
|
204
|
+
name: scope ? scope + ":" + "First_Name" : "First_Name",
|
|
205
|
+
autocomplete: "given-name",
|
|
206
|
+
validationMessages: {
|
|
207
|
+
required: "First Name is required",
|
|
208
|
+
},
|
|
209
|
+
...updates,
|
|
210
|
+
})
|
|
211
|
+
};
|
|
170
212
|
|
|
171
|
-
const
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
},
|
|
186
|
-
helpClass: "t-mt-2.5 md:t-text-right md:t-mt-[-2px]"
|
|
187
|
-
});
|
|
213
|
+
const lastName = (scope, vertical, updates = {}) => {
|
|
214
|
+
const func = vertical ? verticalText : sbsText;
|
|
215
|
+
const label = vertical ? updates.label : "Last Name:";
|
|
216
|
+
return func({
|
|
217
|
+
label,
|
|
218
|
+
placeholder: "Last",
|
|
219
|
+
name: scope ? scope + ":" + "Last_Name" : "Last_Name",
|
|
220
|
+
autocomplete: "family-name",
|
|
221
|
+
validationMessages: {
|
|
222
|
+
required: "Last Name is required",
|
|
223
|
+
},
|
|
224
|
+
...updates,
|
|
225
|
+
})
|
|
226
|
+
};
|
|
188
227
|
|
|
228
|
+
const phone = (scope, vertical, updates = {}) => {
|
|
229
|
+
const func = vertical ? verticalText : sbsText;
|
|
230
|
+
const label = vertical ? updates.label : "Phone Number:";
|
|
231
|
+
return func({
|
|
232
|
+
$formkit: "tel",
|
|
233
|
+
name: scope ? scope + ":" + "Primary_Phone" : "Primary_Phone",
|
|
234
|
+
label,
|
|
235
|
+
placeholder: "###-###-####",
|
|
236
|
+
maxlength: 12,
|
|
237
|
+
help: "10-digit phone number, hyphens optional",
|
|
238
|
+
autocomplete: "tel-national",
|
|
239
|
+
"data-tf-sensitive": "false",
|
|
240
|
+
validation: "required|matches:/^[0-9]{3}-?[0-9]{3}-?[0-9]{4}$/|valid_phone",
|
|
241
|
+
validationMessages: {
|
|
242
|
+
required: "Phone Number is required",
|
|
243
|
+
matches: "Invalid Phone Format, use ###-###-####",
|
|
244
|
+
valid_phone: "Invalid Phone Number",
|
|
245
|
+
},
|
|
246
|
+
helpClass: "t-mt-2.5 md:t-text-right md:t-mt-[-2px]",
|
|
247
|
+
...updates,
|
|
248
|
+
})
|
|
249
|
+
};
|
|
189
250
|
|
|
190
251
|
const zipcode$1 = (scope, vertical, updates = {}) => {
|
|
191
252
|
const func = vertical ? verticalText : sbsText;
|
|
192
|
-
const label = vertical ?
|
|
193
|
-
const help = vertical ?
|
|
253
|
+
const label = vertical ? updates.label : "Zip Code:";
|
|
254
|
+
const help = vertical ? updates.help ?? "We try to match you with local help" : null;
|
|
194
255
|
return func({
|
|
195
256
|
label,
|
|
196
257
|
help,
|
|
197
|
-
placeholder:
|
|
198
|
-
name: scope ? scope +
|
|
258
|
+
placeholder: "#####",
|
|
259
|
+
name: scope ? scope + ":" + "Zip" : "Zip",
|
|
199
260
|
maxlength: 5,
|
|
200
261
|
inputmode: "numeric",
|
|
201
|
-
autocomplete:
|
|
202
|
-
validation:
|
|
262
|
+
autocomplete: "postal-code",
|
|
263
|
+
validation: "required|matches:/^[0-9]{5}$/",
|
|
203
264
|
validationMessages: {
|
|
204
|
-
required:
|
|
205
|
-
matches:
|
|
265
|
+
required: "Zip Code is required",
|
|
266
|
+
matches: "Invalid Zip Code",
|
|
206
267
|
},
|
|
207
|
-
...updates
|
|
268
|
+
...updates,
|
|
208
269
|
})
|
|
209
270
|
};
|
|
210
271
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
272
|
+
// TODO: vertical not supported yet
|
|
273
|
+
const comments = (scope, vertical, updates) =>
|
|
274
|
+
textArea(
|
|
275
|
+
merge(
|
|
276
|
+
{
|
|
277
|
+
name: scope ? scope + ":" + "Comments" : "Comments",
|
|
278
|
+
label: "Please briefly describe your situation in a few words:",
|
|
279
|
+
placeholder:
|
|
280
|
+
'For Example: "I would like help with child support payments" or "I need help with visitation rights"',
|
|
281
|
+
},
|
|
282
|
+
updates
|
|
283
|
+
)
|
|
284
|
+
);
|
|
218
285
|
|
|
219
286
|
const TCPAConsent = (scope) => ({
|
|
220
|
-
$formkit:
|
|
221
|
-
label:
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
287
|
+
$formkit: "checkbox",
|
|
288
|
+
label: "$meta.tcpaLanguage",
|
|
289
|
+
// Necessary to get links to work in the tcpa language
|
|
290
|
+
__raw__sectionsSchema: {
|
|
291
|
+
label: { attrs: { innerHTML: "$label" } },
|
|
292
|
+
},
|
|
293
|
+
name: scope ? scope + ":" + "TCPA_Opt_In" : "TCPA_Opt_In",
|
|
294
|
+
"data-tf-sensitive": "false",
|
|
295
|
+
validation: "required|accepted",
|
|
225
296
|
validationMessages: {
|
|
226
|
-
required:
|
|
227
|
-
accepted:
|
|
297
|
+
required: "Consent is required",
|
|
298
|
+
accepted: "Consent is required",
|
|
228
299
|
},
|
|
229
300
|
classes: {
|
|
230
|
-
label: "t-text-xs t-text-slate-500 t-font-normal"
|
|
231
|
-
}
|
|
301
|
+
label: "t-text-xs t-text-slate-500 t-font-normal",
|
|
302
|
+
},
|
|
232
303
|
});
|
|
233
304
|
|
|
234
305
|
const HomeImprovementCategoryOptions = [
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
306
|
+
"Additions",
|
|
307
|
+
"Appliances",
|
|
308
|
+
"Appraisals",
|
|
309
|
+
"Cabinets",
|
|
310
|
+
"Carpentry",
|
|
311
|
+
"Carpets",
|
|
312
|
+
"Cleaning",
|
|
313
|
+
"Countertops",
|
|
314
|
+
"Decks and Porches",
|
|
315
|
+
"Demolition",
|
|
316
|
+
"Doors",
|
|
317
|
+
"Driveways",
|
|
318
|
+
"Drywall and Plaster",
|
|
319
|
+
"Electrical",
|
|
320
|
+
"Fencing",
|
|
321
|
+
"Flooring",
|
|
322
|
+
"Foundations",
|
|
323
|
+
"Garage Doors",
|
|
324
|
+
"General Contractors",
|
|
325
|
+
"Gutters",
|
|
326
|
+
"Handyman",
|
|
327
|
+
"Holiday Decorators",
|
|
328
|
+
"Smart Home",
|
|
329
|
+
"Home Builders",
|
|
330
|
+
"Home Inspection",
|
|
331
|
+
"Home Organization",
|
|
332
|
+
"Home Security",
|
|
333
|
+
"Home Staging",
|
|
334
|
+
"Home Theater",
|
|
335
|
+
"Home Warranties",
|
|
336
|
+
"Hot Tubs",
|
|
337
|
+
"Heating and Cooling",
|
|
338
|
+
"Insulation",
|
|
339
|
+
"Junk Removal",
|
|
340
|
+
"Landscaping",
|
|
341
|
+
"Locksmiths",
|
|
342
|
+
"Masonry and Concrete",
|
|
343
|
+
"Restoration",
|
|
273
344
|
// 'Moving',
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
345
|
+
"Painting",
|
|
346
|
+
"Pest Control",
|
|
347
|
+
"Pools",
|
|
348
|
+
"Plumbing",
|
|
349
|
+
"Pressure Washing",
|
|
350
|
+
"Remodeling",
|
|
351
|
+
"Roofing",
|
|
352
|
+
"Sheds",
|
|
353
|
+
"Siding",
|
|
354
|
+
"Solar",
|
|
355
|
+
"Tiling",
|
|
356
|
+
"Walk-in Tubs",
|
|
357
|
+
"Waterproofing",
|
|
358
|
+
"Window Cleaning",
|
|
359
|
+
"Windows",
|
|
360
|
+
"Not Sure or Other",
|
|
289
361
|
];
|
|
290
362
|
|
|
291
|
-
const homeImprovementCategory$1 = (updates) =>
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
});
|
|
363
|
+
const homeImprovementCategory$1 = (scope, vertical, updates = {}) => {
|
|
364
|
+
const func = vertical ? verticalSelect : sbsSelect;
|
|
365
|
+
const label = vertical ? updates.label : "Select a Category:";
|
|
366
|
+
return func(
|
|
367
|
+
merge(
|
|
368
|
+
{
|
|
369
|
+
label,
|
|
370
|
+
name: scope ? scope + ":" + "Category" : "Category",
|
|
371
|
+
options: HomeImprovementCategoryOptions,
|
|
372
|
+
},
|
|
373
|
+
updates
|
|
374
|
+
)
|
|
375
|
+
)
|
|
376
|
+
};
|
|
306
377
|
|
|
307
|
-
const
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
378
|
+
const timeframe$1 = (scope, vertical, updates = {}) => {
|
|
379
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
380
|
+
const label = vertical ? updates.label : "What is the project timeframe?";
|
|
381
|
+
return func(
|
|
382
|
+
merge(
|
|
383
|
+
{
|
|
384
|
+
label,
|
|
385
|
+
name: scope ? scope + ":" + "Timeframe" : "Timeframe",
|
|
386
|
+
options: ["Immediate", "1-6 Months", "More than 6 Months"],
|
|
387
|
+
},
|
|
388
|
+
updates
|
|
389
|
+
)
|
|
390
|
+
)
|
|
391
|
+
};
|
|
316
392
|
|
|
317
|
-
const
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
]
|
|
332
|
-
});
|
|
393
|
+
const ownHome$1 = (scope, vertical, updates = {}) => {
|
|
394
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
395
|
+
const label = vertical ? updates.label : "Do you own the home?";
|
|
396
|
+
return func(
|
|
397
|
+
merge(
|
|
398
|
+
{
|
|
399
|
+
label,
|
|
400
|
+
name: scope ? scope + ":" + "Own_Home" : "Own_Home",
|
|
401
|
+
options: ["Yes", "No", "No but authorized"],
|
|
402
|
+
},
|
|
403
|
+
updates
|
|
404
|
+
)
|
|
405
|
+
)
|
|
406
|
+
};
|
|
333
407
|
|
|
334
|
-
const
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
408
|
+
const additionsSubType$1 = (scope, vertical, updates = {}) => {
|
|
409
|
+
const func = vertical ? verticalSelect : sbsSelect;
|
|
410
|
+
const label = vertical ? updates.label : "What type of addition?";
|
|
411
|
+
return func(
|
|
412
|
+
merge(
|
|
413
|
+
{
|
|
414
|
+
label,
|
|
415
|
+
name: scope ? scope + ":" + "Additions_Subtype" : "Additions_Subtype",
|
|
416
|
+
options: [
|
|
417
|
+
"Garage",
|
|
418
|
+
"In-Law Suite",
|
|
419
|
+
"Additional Rooms",
|
|
420
|
+
"Additional Stories",
|
|
421
|
+
"Bump-out",
|
|
422
|
+
"Sunroom",
|
|
423
|
+
"Accessory Dwelling Unit",
|
|
424
|
+
"Basement Remodeling",
|
|
425
|
+
"Attic Remodeling",
|
|
426
|
+
"Not Sure or Other",
|
|
427
|
+
],
|
|
428
|
+
},
|
|
429
|
+
updates
|
|
430
|
+
)
|
|
431
|
+
)
|
|
432
|
+
};
|
|
343
433
|
|
|
434
|
+
const constructionAreaSize$1 = (scope, vertical, updates = {}) => {
|
|
435
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
436
|
+
const label = vertical ? updates.label : "What is the size of the construction area?";
|
|
437
|
+
return func(
|
|
438
|
+
merge(
|
|
439
|
+
{
|
|
440
|
+
label,
|
|
441
|
+
name: scope ? scope + ":" + "Construction_Area_Size" : "Construction_Area_Size",
|
|
442
|
+
options: ["Less than 1000 square feet", "1000 to 2000 square feet", "More than 2000 square feet"],
|
|
443
|
+
},
|
|
444
|
+
updates
|
|
445
|
+
)
|
|
446
|
+
)
|
|
447
|
+
};
|
|
344
448
|
|
|
345
|
-
const homeImprovementWorkType$1 = (scope) =>
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
449
|
+
const homeImprovementWorkType$1 = (scope, vertical, updates = {}) => {
|
|
450
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
451
|
+
const label = vertical ? updates.label : "What type of work?";
|
|
452
|
+
return func(
|
|
453
|
+
merge(
|
|
454
|
+
{
|
|
455
|
+
label,
|
|
456
|
+
name: scope ? scope + ":" + "Work_Type" : "Work_Type",
|
|
457
|
+
options: ["Install or Replace", "Repair", "Not Sure or Other"],
|
|
458
|
+
},
|
|
459
|
+
updates
|
|
460
|
+
)
|
|
461
|
+
)
|
|
462
|
+
};
|
|
354
463
|
|
|
355
|
-
const applianceType$1 = (scope) =>
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
464
|
+
const applianceType$1 = (scope, vertical, updates = {}) => {
|
|
465
|
+
const func = vertical ? verticalSelect : sbsSelect;
|
|
466
|
+
const label = vertical ? updates.label : "What type of appliance?";
|
|
467
|
+
return func(
|
|
468
|
+
merge(
|
|
469
|
+
{
|
|
470
|
+
label,
|
|
471
|
+
name: scope ? scope + ":" + "Appliance_Type" : "Appliance_Type",
|
|
472
|
+
options: [
|
|
473
|
+
"Cooktop",
|
|
474
|
+
"Dishwasher",
|
|
475
|
+
"Dryer",
|
|
476
|
+
"Freezer",
|
|
477
|
+
"Garbage Disposal",
|
|
478
|
+
"Ice Maker",
|
|
479
|
+
"Microwave",
|
|
480
|
+
"Range",
|
|
481
|
+
"Refrigerator",
|
|
482
|
+
"Stove",
|
|
483
|
+
"Trash Compactor",
|
|
484
|
+
"Oven",
|
|
485
|
+
"Vacuum",
|
|
486
|
+
"Washer Machine",
|
|
487
|
+
"Not Sure or Other",
|
|
488
|
+
],
|
|
489
|
+
},
|
|
490
|
+
updates
|
|
491
|
+
)
|
|
492
|
+
)
|
|
493
|
+
};
|
|
376
494
|
|
|
495
|
+
const cabinetWorkType$1 = (scope, vertical, updates = {}) => {
|
|
496
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
497
|
+
const label = vertical ? updates.label : "What type of work?";
|
|
498
|
+
return func(
|
|
499
|
+
merge(
|
|
500
|
+
{
|
|
501
|
+
label,
|
|
502
|
+
name: scope ? scope + ":" + "Cabinet_Work_Type" : "Cabinet_Work_Type",
|
|
503
|
+
options: ["Install", "Refinish", "Reface", "Repair", "Not Sure or Other"],
|
|
504
|
+
},
|
|
505
|
+
updates
|
|
506
|
+
)
|
|
507
|
+
)
|
|
508
|
+
};
|
|
377
509
|
|
|
378
|
-
const
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
510
|
+
const carpentrySubtype$1 = (scope, vertical, updates = {}) => {
|
|
511
|
+
const func = vertical ? verticalSelect : sbsSelect;
|
|
512
|
+
const label = vertical ? updates.label : "What carpentry job type?";
|
|
513
|
+
return func(
|
|
514
|
+
merge(
|
|
515
|
+
{
|
|
516
|
+
label,
|
|
517
|
+
name: scope ? scope + ":" + "Carpentry_Subtype" : "Carpentry_Subtype",
|
|
518
|
+
options: [
|
|
519
|
+
"Closets",
|
|
520
|
+
"Custom Furniture",
|
|
521
|
+
"Built-ins",
|
|
522
|
+
"Framing",
|
|
523
|
+
"Interior Trim",
|
|
524
|
+
"Exterior Trim",
|
|
525
|
+
"Windows",
|
|
526
|
+
"Stairways and Railings",
|
|
527
|
+
"Gazebo or Pergola",
|
|
528
|
+
"Multiple Jobs",
|
|
529
|
+
"Not Sure or Other",
|
|
530
|
+
],
|
|
531
|
+
},
|
|
532
|
+
updates
|
|
533
|
+
)
|
|
534
|
+
)
|
|
535
|
+
};
|
|
389
536
|
|
|
390
|
-
const
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
'Not Sure or Other'
|
|
405
|
-
]
|
|
406
|
-
});
|
|
537
|
+
const carpetWorkType$1 = (scope, vertical, updates = {}) => {
|
|
538
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
539
|
+
const label = vertical ? updates.label : "What type of work?";
|
|
540
|
+
return func(
|
|
541
|
+
merge(
|
|
542
|
+
{
|
|
543
|
+
label,
|
|
544
|
+
name: scope ? scope + ":" + "Carpet_Work_Type" : "Carpet_Work_Type",
|
|
545
|
+
options: ["Install or Replace", "Repair", "Cleaning", "Not Sure or Other"],
|
|
546
|
+
},
|
|
547
|
+
updates
|
|
548
|
+
)
|
|
549
|
+
)
|
|
550
|
+
};
|
|
407
551
|
|
|
408
|
-
const
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
552
|
+
const cleaningSubtype$1 = (scope, vertical, updates = {}) => {
|
|
553
|
+
const func = vertical ? verticalSelect : sbsSelect;
|
|
554
|
+
const label = vertical ? updates.label : "What type of cleaning?";
|
|
555
|
+
return func(
|
|
556
|
+
merge(
|
|
557
|
+
{
|
|
558
|
+
label,
|
|
559
|
+
name: scope ? scope + ":" + "Cleaning_Subtype" : "Cleaning_Subtype",
|
|
560
|
+
options: [
|
|
561
|
+
"Whole Home",
|
|
562
|
+
"Office",
|
|
563
|
+
"Carpets",
|
|
564
|
+
"Windows",
|
|
565
|
+
"Air Ducts or Vents",
|
|
566
|
+
"Chimney",
|
|
567
|
+
"Deck",
|
|
568
|
+
"Tile or Grout",
|
|
569
|
+
"Garage",
|
|
570
|
+
"Shed",
|
|
571
|
+
"Gutters",
|
|
572
|
+
"Pool",
|
|
573
|
+
"Junk Removal",
|
|
574
|
+
"Not Sure or Other",
|
|
575
|
+
],
|
|
576
|
+
},
|
|
577
|
+
updates
|
|
578
|
+
)
|
|
579
|
+
)
|
|
580
|
+
};
|
|
418
581
|
|
|
419
|
-
const
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
582
|
+
const countertopMaterial$1 = (scope, vertical, updates = {}) => {
|
|
583
|
+
const func = vertical ? verticalSelect : sbsSelect;
|
|
584
|
+
const label = vertical ? updates.label : "What type of countertop?";
|
|
585
|
+
return func(
|
|
586
|
+
merge(
|
|
587
|
+
{
|
|
588
|
+
label,
|
|
589
|
+
name: scope ? scope + ":" + "Countertop_Material" : "Countertop_Material",
|
|
590
|
+
options: [
|
|
591
|
+
"Concrete",
|
|
592
|
+
"Granite",
|
|
593
|
+
"Laminate",
|
|
594
|
+
"Marble",
|
|
595
|
+
"Quartz",
|
|
596
|
+
"Stainless Steel",
|
|
597
|
+
"Wood",
|
|
598
|
+
"Not Sure or Other",
|
|
599
|
+
],
|
|
600
|
+
},
|
|
601
|
+
updates
|
|
602
|
+
)
|
|
603
|
+
)
|
|
604
|
+
};
|
|
439
605
|
|
|
440
|
-
const
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
}
|
|
606
|
+
const deckWorkType$1 = (scope, vertical, updates = {}) => {
|
|
607
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
608
|
+
const label = vertical ? updates.label : "What type of work?";
|
|
609
|
+
return func(
|
|
610
|
+
merge(
|
|
611
|
+
{
|
|
612
|
+
label,
|
|
613
|
+
name: scope ? scope + ":" + "Deck_Work_Type" : "Deck_Work_Type",
|
|
614
|
+
options: ["Paint or Stain", "Install or Replace", "Repair", "Not Sure or Other"],
|
|
615
|
+
},
|
|
616
|
+
updates
|
|
617
|
+
)
|
|
618
|
+
)
|
|
619
|
+
};
|
|
454
620
|
|
|
455
|
-
const
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
}
|
|
621
|
+
const demolitionSubtype$1 = (scope, vertical, updates = {}) => {
|
|
622
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
623
|
+
const label = vertical ? updates.label : "What type of demolition?";
|
|
624
|
+
return func(
|
|
625
|
+
merge(
|
|
626
|
+
{
|
|
627
|
+
label,
|
|
628
|
+
name: scope ? scope + ":" + "Demolition_Subtype" : "Demolition_Subtype",
|
|
629
|
+
options: ["Whole Structure", "Partial Home", "Shed", "Not Sure or Other"],
|
|
630
|
+
},
|
|
631
|
+
updates
|
|
632
|
+
)
|
|
633
|
+
)
|
|
634
|
+
};
|
|
465
635
|
|
|
466
|
-
const
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
}
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
options: [
|
|
481
|
-
'Interior',
|
|
482
|
-
'Exterior',
|
|
483
|
-
'Garage',
|
|
484
|
-
'Sliding',
|
|
485
|
-
'Storm',
|
|
486
|
-
'Not Sure or Other'
|
|
487
|
-
]
|
|
488
|
-
});
|
|
636
|
+
const doorSubtype$1 = (scope, vertical, updates = {}) => {
|
|
637
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
638
|
+
const label = vertical ? updates.label : "What type of door?";
|
|
639
|
+
return func(
|
|
640
|
+
merge(
|
|
641
|
+
{
|
|
642
|
+
label,
|
|
643
|
+
name: scope ? scope + ":" + "Door_Subtype" : "Door_Subtype",
|
|
644
|
+
options: ["Interior", "Exterior", "Garage", "Sliding", "Storm", "Not Sure or Other"],
|
|
645
|
+
},
|
|
646
|
+
updates
|
|
647
|
+
)
|
|
648
|
+
)
|
|
649
|
+
};
|
|
489
650
|
|
|
490
|
-
const drivewayWorkType$1 = (scope) =>
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
}
|
|
651
|
+
const drivewayWorkType$1 = (scope, vertical, updates = {}) => {
|
|
652
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
653
|
+
const label = vertical ? updates.label : "What type of work?";
|
|
654
|
+
return func(
|
|
655
|
+
merge(
|
|
656
|
+
{
|
|
657
|
+
label,
|
|
658
|
+
name: scope ? scope + ":" + "Driveway_Work_Type" : "Driveway_Work_Type",
|
|
659
|
+
options: ["Install or Replace", "Repair", "Sealing", "Not Sure or Other"],
|
|
660
|
+
},
|
|
661
|
+
updates
|
|
662
|
+
)
|
|
663
|
+
)
|
|
664
|
+
};
|
|
500
665
|
|
|
501
|
-
const drivewayMaterial$1 = (scope) =>
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
666
|
+
const drivewayMaterial$1 = (scope, vertical, updates = {}) => {
|
|
667
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
668
|
+
const label = vertical ? updates.label : "What driveway material?";
|
|
669
|
+
return func(
|
|
670
|
+
merge(
|
|
671
|
+
{
|
|
672
|
+
label,
|
|
673
|
+
name: scope ? scope + ":" + "Driveway_Material" : "Driveway_Material",
|
|
674
|
+
options: ["Asphalt", "Brick", "Cobblestone", "Pebble", "Concrete", "Pavers", "Not Sure or Other"],
|
|
675
|
+
},
|
|
676
|
+
updates
|
|
677
|
+
)
|
|
678
|
+
)
|
|
679
|
+
};
|
|
514
680
|
|
|
515
|
-
const wallSurfaceType$1 = (scope) =>
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
}
|
|
681
|
+
const wallSurfaceType$1 = (scope, vertical, updates = {}) => {
|
|
682
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
683
|
+
const label = vertical ? updates.label : "What surface type?";
|
|
684
|
+
return func(
|
|
685
|
+
merge(
|
|
686
|
+
{
|
|
687
|
+
label,
|
|
688
|
+
name: scope ? scope + ":" + "Wall_Surface_Type" : "Wall_Surface_Type",
|
|
689
|
+
options: ["Drywall", "Plaster", "Stucco", "Not Sure or Other"],
|
|
690
|
+
},
|
|
691
|
+
updates
|
|
692
|
+
)
|
|
693
|
+
)
|
|
694
|
+
};
|
|
525
695
|
|
|
526
|
-
const electricalSubtype$1 = (scope) =>
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
696
|
+
const electricalSubtype$1 = (scope, vertical, updates = {}) => {
|
|
697
|
+
const func = vertical ? verticalSelect : sbsSelect;
|
|
698
|
+
const label = vertical ? updates.label : "What electrical job type?";
|
|
699
|
+
return func(
|
|
700
|
+
merge(
|
|
701
|
+
{
|
|
702
|
+
label,
|
|
703
|
+
name: scope ? scope + ":" + "Electrical_Subtype" : "Electrical_Subtype",
|
|
704
|
+
options: [
|
|
705
|
+
"Electrical Panel",
|
|
706
|
+
"Outlets and Fixtures",
|
|
707
|
+
"Home Theater",
|
|
708
|
+
"Exhaust Fans",
|
|
709
|
+
"Ceiling Fans",
|
|
710
|
+
"EV Charging Station",
|
|
711
|
+
"Addition or Remodel",
|
|
712
|
+
"Generator",
|
|
713
|
+
"Outdoor Lighting",
|
|
714
|
+
"Pet Fence",
|
|
715
|
+
"Thermostat",
|
|
716
|
+
"Wall or Baseboard Heater",
|
|
717
|
+
"Holiday Lighting",
|
|
718
|
+
"Not Sure or Other",
|
|
719
|
+
],
|
|
720
|
+
},
|
|
721
|
+
updates
|
|
722
|
+
)
|
|
723
|
+
)
|
|
724
|
+
};
|
|
546
725
|
|
|
547
|
-
const fenceMaterial$1 = (scope) =>
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
726
|
+
const fenceMaterial$1 = (scope, vertical, updates = {}) => {
|
|
727
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
728
|
+
const label = vertical ? updates.label : "What fence material?";
|
|
729
|
+
return func(
|
|
730
|
+
merge(
|
|
731
|
+
{
|
|
732
|
+
label,
|
|
733
|
+
name: scope ? scope + ":" + "Fence_Material" : "Fence_Material",
|
|
734
|
+
options: ["Aluminum", "Chain Link", "Wood", "Wire", "Vinyl", "Iron", "Not Sure or Other"],
|
|
735
|
+
},
|
|
736
|
+
updates
|
|
737
|
+
)
|
|
738
|
+
)
|
|
739
|
+
};
|
|
560
740
|
|
|
561
|
-
const flooringMaterial$1 = (scope) =>
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
741
|
+
const flooringMaterial$1 = (scope, vertical, updates = {}) => {
|
|
742
|
+
const func = vertical ? verticalRadio : sbsSelect;
|
|
743
|
+
const label = vertical ? updates.label : "What flooring material?";
|
|
744
|
+
return func(
|
|
745
|
+
merge(
|
|
746
|
+
{
|
|
747
|
+
label,
|
|
748
|
+
name: scope ? scope + ":" + "Flooring_Material" : "Flooring_Material",
|
|
749
|
+
options: [
|
|
750
|
+
"Carpet",
|
|
751
|
+
"Concrete",
|
|
752
|
+
"Hardwood",
|
|
753
|
+
"Laminate",
|
|
754
|
+
"Linoleum",
|
|
755
|
+
"Slate",
|
|
756
|
+
"Tile",
|
|
757
|
+
"Vinyl",
|
|
758
|
+
"Not Sure or Other",
|
|
759
|
+
],
|
|
760
|
+
},
|
|
761
|
+
updates
|
|
762
|
+
)
|
|
763
|
+
)
|
|
764
|
+
};
|
|
576
765
|
|
|
577
|
-
const generalContractorSubtype$1 = (scope) =>
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
766
|
+
const generalContractorSubtype$1 = (scope, vertical, updates = {}) => {
|
|
767
|
+
const func = vertical ? col2RadioCenter : sbsRadio;
|
|
768
|
+
const label = vertical ? updates.label : "What contractor job type?";
|
|
769
|
+
return func(
|
|
770
|
+
merge(
|
|
771
|
+
{
|
|
772
|
+
label,
|
|
773
|
+
name: scope ? scope + ":" + "General_Contractor_Subtype" : "General_Contractor_Subtype",
|
|
774
|
+
options: [
|
|
775
|
+
"Remodeling",
|
|
776
|
+
"Additions",
|
|
777
|
+
"Major Home Repairs",
|
|
778
|
+
"Excavation",
|
|
779
|
+
"Demolition",
|
|
780
|
+
"Dumpster Rental",
|
|
781
|
+
"Not Sure or Other",
|
|
782
|
+
],
|
|
783
|
+
},
|
|
784
|
+
updates
|
|
785
|
+
)
|
|
786
|
+
)
|
|
787
|
+
};
|
|
590
788
|
|
|
591
|
-
const gutterMaterial$1 = (scope) =>
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
789
|
+
const gutterMaterial$1 = (scope, vertical, updates = {}) => {
|
|
790
|
+
const func = vertical ? col2RadioCenter : sbsRadio;
|
|
791
|
+
const label = vertical ? updates.label : "What gutter material?";
|
|
792
|
+
return func(
|
|
793
|
+
merge(
|
|
794
|
+
{
|
|
795
|
+
label,
|
|
796
|
+
name: scope ? scope + ":" + "Gutter_Material" : "Gutter_Material",
|
|
797
|
+
options: ["Galvanized", "Metal", "PVC", "Wood", "Not Sure or Other"],
|
|
798
|
+
},
|
|
799
|
+
updates
|
|
800
|
+
)
|
|
801
|
+
)
|
|
802
|
+
};
|
|
602
803
|
|
|
603
|
-
const
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
804
|
+
const gutterWorkType$1 = (scope, vertical, updates = {}) => {
|
|
805
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
806
|
+
const label = vertical ? updates.label : "What type of work?";
|
|
807
|
+
return func(
|
|
808
|
+
merge(
|
|
809
|
+
{
|
|
810
|
+
label,
|
|
811
|
+
name: scope ? scope + ":" + "Gutter_Work_Type" : "Gutter_Work_Type",
|
|
812
|
+
options: ["Install or Replace", "Repair", "Cleaning", "Not Sure or Other"],
|
|
813
|
+
},
|
|
814
|
+
updates
|
|
815
|
+
)
|
|
816
|
+
)
|
|
817
|
+
};
|
|
612
818
|
|
|
613
|
-
const smartHomeSubtype$1 = (scope) =>
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
819
|
+
const smartHomeSubtype$1 = (scope, vertical, updates = {}) => {
|
|
820
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
821
|
+
const label = vertical ? updates.label : "What smart home job type?";
|
|
822
|
+
return func(
|
|
823
|
+
merge(
|
|
824
|
+
{
|
|
825
|
+
label,
|
|
826
|
+
name: scope ? scope + ":" + "Smart_Home_Subtype" : "Smart_Home_Subtype",
|
|
827
|
+
options: [
|
|
828
|
+
"Thermostats",
|
|
829
|
+
"Video Doorbells",
|
|
830
|
+
"Camera Systems",
|
|
831
|
+
"Lighting",
|
|
832
|
+
"Speaker Systems",
|
|
833
|
+
"Not Sure or Other",
|
|
834
|
+
],
|
|
835
|
+
},
|
|
836
|
+
updates
|
|
837
|
+
)
|
|
838
|
+
)
|
|
839
|
+
};
|
|
625
840
|
|
|
626
|
-
const homeOrganizationSubtype$1 = (scope) =>
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
841
|
+
const homeOrganizationSubtype$1 = (scope, vertical, updates = {}) => {
|
|
842
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
843
|
+
const label = vertical ? updates.label : "What home organization job?";
|
|
844
|
+
return func(
|
|
845
|
+
merge(
|
|
846
|
+
{
|
|
847
|
+
label,
|
|
848
|
+
name: scope ? scope + ":" + "Home_Organization_Subtype" : "Home_Organization_Subtype",
|
|
849
|
+
options: [
|
|
850
|
+
"Packing or Unpacking",
|
|
851
|
+
"Room Organization",
|
|
852
|
+
"Shed Organization",
|
|
853
|
+
"Storage Solutions",
|
|
854
|
+
"Decluttering",
|
|
855
|
+
"Not Sure or Other",
|
|
856
|
+
],
|
|
857
|
+
},
|
|
858
|
+
updates
|
|
859
|
+
)
|
|
860
|
+
)
|
|
861
|
+
};
|
|
638
862
|
|
|
639
|
-
const numberOfRooms$1 = (scope) =>
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
863
|
+
const numberOfRooms$1 = (scope, vertical, updates = {}) => {
|
|
864
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
865
|
+
const label = vertical ? updates.label : "How many rooms?";
|
|
866
|
+
return func(
|
|
867
|
+
merge(
|
|
868
|
+
{
|
|
869
|
+
label,
|
|
870
|
+
name: scope ? scope + ":" + "Number_Of_Rooms" : "Number_Of_Rooms",
|
|
871
|
+
options: ["1-2", "3-4", "4-5", "5-6", "6+"],
|
|
872
|
+
},
|
|
873
|
+
updates
|
|
874
|
+
)
|
|
875
|
+
)
|
|
876
|
+
};
|
|
650
877
|
|
|
651
|
-
const homeTheaterSubtype$1 = (scope) =>
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
878
|
+
const homeTheaterSubtype$1 = (scope, vertical, updates = {}) => {
|
|
879
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
880
|
+
const label = vertical ? updates.label : "What home theater job?";
|
|
881
|
+
return func(
|
|
882
|
+
merge(
|
|
883
|
+
{
|
|
884
|
+
label,
|
|
885
|
+
name: scope ? scope + ":" + "Home_Theater_Subtype" : "Home_Theater_Subtype",
|
|
886
|
+
options: ["Hang TV", "Install Sound System", "Wiring", "Troubleshooting", "Not Sure or Other"],
|
|
887
|
+
},
|
|
888
|
+
updates
|
|
889
|
+
)
|
|
890
|
+
)
|
|
891
|
+
};
|
|
662
892
|
|
|
663
|
-
const heatingCoolingSubtype$1 = (scope) =>
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
893
|
+
const heatingCoolingSubtype$1 = (scope, vertical, updates = {}) => {
|
|
894
|
+
const func = vertical ? verticalSelect : sbsSelect;
|
|
895
|
+
const label = vertical ? updates.label : "What heating or cooling job?";
|
|
896
|
+
return func(
|
|
897
|
+
merge(
|
|
898
|
+
{
|
|
899
|
+
label,
|
|
900
|
+
name: scope ? scope + ":" + "Heating_Cooling_Subtype" : "Heating_Cooling_Subtype",
|
|
901
|
+
options: [
|
|
902
|
+
"Central Air",
|
|
903
|
+
"Humidifier",
|
|
904
|
+
"Ducts and Vents",
|
|
905
|
+
"Furnace",
|
|
906
|
+
"Heat Pump",
|
|
907
|
+
"Radiant Floor",
|
|
908
|
+
"Swamp Cooler",
|
|
909
|
+
"Not Sure or Other",
|
|
910
|
+
],
|
|
911
|
+
},
|
|
912
|
+
updates
|
|
913
|
+
)
|
|
914
|
+
)
|
|
915
|
+
};
|
|
677
916
|
|
|
678
|
-
const fuelSource$1 = (scope) =>
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
917
|
+
const fuelSource$1 = (scope, vertical, updates = {}) => {
|
|
918
|
+
const func = vertical ? verticalRadio : sbsSelect;
|
|
919
|
+
const label = vertical ? updates.label : "What is the fuel source?";
|
|
920
|
+
return func(
|
|
921
|
+
merge(
|
|
922
|
+
{
|
|
923
|
+
label,
|
|
924
|
+
name: scope ? scope + ":" + "Fuel_Source" : "Fuel_Source",
|
|
925
|
+
options: ["Gas", "Oil", "Electric", "Propane", "Not Sure or Other"],
|
|
926
|
+
},
|
|
927
|
+
updates
|
|
928
|
+
)
|
|
929
|
+
)
|
|
930
|
+
};
|
|
689
931
|
|
|
690
|
-
const insulationSubtype$1 = (scope) =>
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
932
|
+
const insulationSubtype$1 = (scope, vertical, updates = {}) => {
|
|
933
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
934
|
+
const label = vertical ? updates.label : "What type of insulation job?";
|
|
935
|
+
return func(
|
|
936
|
+
merge(
|
|
937
|
+
{
|
|
938
|
+
label,
|
|
939
|
+
name: scope ? scope + ":" + "Insulation_Subtype" : "Insulation_Subtype",
|
|
940
|
+
options: ["Batt or Roll", "Spray Foam", "Blown-in", "Reflective", "Not Sure or Other"],
|
|
941
|
+
},
|
|
942
|
+
updates
|
|
943
|
+
)
|
|
944
|
+
)
|
|
945
|
+
};
|
|
701
946
|
|
|
702
|
-
const landscapingSubtype$1 = (scope) =>
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
947
|
+
const landscapingSubtype$1 = (scope, vertical, updates = {}) => {
|
|
948
|
+
const func = vertical ? verticalSelect : sbsSelect;
|
|
949
|
+
const label = vertical ? updates.label : "What landscaping job?";
|
|
950
|
+
return func(
|
|
951
|
+
merge(
|
|
952
|
+
{
|
|
953
|
+
label,
|
|
954
|
+
name: scope ? scope + ":" + "Landscaping_Subtype" : "Landscaping_Subtype",
|
|
955
|
+
options: [
|
|
956
|
+
"Lawn Mowing",
|
|
957
|
+
"Lawn Care or Fertilization",
|
|
958
|
+
"Yard or Leaf Cleanup",
|
|
959
|
+
"Patios or Walkways",
|
|
960
|
+
"Stonework",
|
|
961
|
+
"Architects",
|
|
962
|
+
"Landscape Construction",
|
|
963
|
+
"Outdoor Lighting",
|
|
964
|
+
"Grading",
|
|
965
|
+
"Materials Delivery",
|
|
966
|
+
"Spinklers",
|
|
967
|
+
],
|
|
968
|
+
},
|
|
969
|
+
updates
|
|
970
|
+
)
|
|
971
|
+
)
|
|
972
|
+
};
|
|
719
973
|
|
|
720
|
-
const masonrySubtype$1 = (scope) =>
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
974
|
+
const masonrySubtype$1 = (scope, vertical, updates = {}) => {
|
|
975
|
+
const func = vertical ? verticalRadio : sbsSelect;
|
|
976
|
+
const label = vertical ? updates.label : "What masonry job?";
|
|
977
|
+
return func(
|
|
978
|
+
merge(
|
|
979
|
+
{
|
|
980
|
+
label,
|
|
981
|
+
name: scope ? scope + ":" + "Masonry_Subtype" : "Masonry_Subtype",
|
|
982
|
+
options: ["Driveways", "Walkways", "Floors", "Walls", "Facades", "Material Delivery", "Not Sure or Other"],
|
|
983
|
+
},
|
|
984
|
+
updates
|
|
985
|
+
)
|
|
986
|
+
)
|
|
987
|
+
};
|
|
733
988
|
|
|
734
|
-
const masonryMaterial$1 = (scope) =>
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
}
|
|
989
|
+
const masonryMaterial$1 = (scope, vertical, updates = {}) => {
|
|
990
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
991
|
+
const label = vertical ? updates.label : "What masonry material?";
|
|
992
|
+
return func(
|
|
993
|
+
merge(
|
|
994
|
+
{
|
|
995
|
+
label,
|
|
996
|
+
name: scope ? scope + ":" + "Masonry_Material" : "Masonry_Material",
|
|
997
|
+
options: ["Brick or Stone", "Pavers", "Concrete", "Not Sure or Other"],
|
|
998
|
+
},
|
|
999
|
+
updates
|
|
1000
|
+
)
|
|
1001
|
+
)
|
|
1002
|
+
};
|
|
744
1003
|
|
|
745
|
-
const masonryWorkType$1 = (scope) =>
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
}
|
|
1004
|
+
const masonryWorkType$1 = (scope, vertical, updates = {}) => {
|
|
1005
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
1006
|
+
const label = vertical ? updates.label : "What type of work?";
|
|
1007
|
+
return func(
|
|
1008
|
+
merge(
|
|
1009
|
+
{
|
|
1010
|
+
label,
|
|
1011
|
+
name: scope ? scope + ":" + "Masonry_Work_Type" : "Masonry_Work_Type",
|
|
1012
|
+
options: ["Install or Replace", "Repoint Brick or Stone", "Repair", "Not Sure or Other"],
|
|
1013
|
+
},
|
|
1014
|
+
updates
|
|
1015
|
+
)
|
|
1016
|
+
)
|
|
1017
|
+
};
|
|
755
1018
|
|
|
756
|
-
const restorationSubtype$1 = (scope) =>
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
}
|
|
1019
|
+
const restorationSubtype$1 = (scope, vertical, updates = {}) => {
|
|
1020
|
+
const func = vertical ? verticalSelect : sbsSelect;
|
|
1021
|
+
const label = vertical ? updates.label : "What restoration job?";
|
|
1022
|
+
return func(
|
|
1023
|
+
merge(
|
|
1024
|
+
{
|
|
1025
|
+
label,
|
|
1026
|
+
name: scope ? scope + ":" + "Restoration_Subtype" : "Restoration_Subtype",
|
|
1027
|
+
options: ["Mold Remediation", "Fire Damage", "Water Damage", "Not Sure or Other"],
|
|
1028
|
+
},
|
|
1029
|
+
updates
|
|
1030
|
+
)
|
|
1031
|
+
)
|
|
1032
|
+
};
|
|
766
1033
|
|
|
767
1034
|
// TODO: need to finalize support for moving
|
|
768
1035
|
|
|
@@ -800,227 +1067,294 @@ const restorationSubtype$1 = (scope) => verticalRadio({
|
|
|
800
1067
|
// ]
|
|
801
1068
|
// })
|
|
802
1069
|
|
|
803
|
-
const paintingSubtype$1 = (scope) =>
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
'6+'
|
|
828
|
-
]
|
|
829
|
-
});
|
|
1070
|
+
const paintingSubtype$1 = (scope, vertical, updates = {}) => {
|
|
1071
|
+
const func = vertical ? verticalSelect : sbsSelect;
|
|
1072
|
+
const label = vertical ? updates.label : "What painting job type?";
|
|
1073
|
+
return func(
|
|
1074
|
+
merge(
|
|
1075
|
+
{
|
|
1076
|
+
label,
|
|
1077
|
+
name: scope ? scope + ":" + "Painting_Subtype" : "Painting_Subtype",
|
|
1078
|
+
options: [
|
|
1079
|
+
"Whole Exterior",
|
|
1080
|
+
"Exterior Touch-up",
|
|
1081
|
+
"Interior Rooms",
|
|
1082
|
+
"Interior Touch-up",
|
|
1083
|
+
"Ceilings",
|
|
1084
|
+
"Deck",
|
|
1085
|
+
"Shed",
|
|
1086
|
+
"Cabinets",
|
|
1087
|
+
"Not Sure or Other",
|
|
1088
|
+
],
|
|
1089
|
+
},
|
|
1090
|
+
updates
|
|
1091
|
+
)
|
|
1092
|
+
)
|
|
1093
|
+
};
|
|
830
1094
|
|
|
831
|
-
const pestControlSubtype$1 = (scope) =>
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
1095
|
+
const pestControlSubtype$1 = (scope, vertical, updates = {}) => {
|
|
1096
|
+
const func = vertical ? verticalSelect : sbsSelect;
|
|
1097
|
+
const label = vertical ? updates.label : "What pest control job type?";
|
|
1098
|
+
return func(
|
|
1099
|
+
merge(
|
|
1100
|
+
{
|
|
1101
|
+
label,
|
|
1102
|
+
name: scope ? scope + ":" + "Pest_Control_Subtype" : "Pest_Control_Subtype",
|
|
1103
|
+
options: [
|
|
1104
|
+
"Bed Bugs",
|
|
1105
|
+
"Flying Animals",
|
|
1106
|
+
"Insects",
|
|
1107
|
+
"Rodents",
|
|
1108
|
+
"Small Animals",
|
|
1109
|
+
"Bees",
|
|
1110
|
+
"Termites",
|
|
1111
|
+
"Not Sure or Other",
|
|
1112
|
+
],
|
|
1113
|
+
},
|
|
1114
|
+
updates
|
|
1115
|
+
)
|
|
1116
|
+
)
|
|
1117
|
+
};
|
|
845
1118
|
|
|
846
|
-
const poolsWorkType$1 = (scope) =>
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
1119
|
+
const poolsWorkType$1 = (scope, vertical, updates = {}) => {
|
|
1120
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
1121
|
+
const label = vertical ? updates.label : "What type of work?";
|
|
1122
|
+
return func(
|
|
1123
|
+
merge(
|
|
1124
|
+
{
|
|
1125
|
+
label,
|
|
1126
|
+
name: scope ? scope + ":" + "Pools_Work_Type" : "Pools_Work_Type",
|
|
1127
|
+
options: ["Install or Replace", "Repair", "Cleaning", "Close or Open Pool", "Not Sure or Other"],
|
|
1128
|
+
},
|
|
1129
|
+
updates
|
|
1130
|
+
)
|
|
1131
|
+
)
|
|
1132
|
+
};
|
|
857
1133
|
|
|
858
|
-
const poolsSubtype$1 = (scope) =>
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
1134
|
+
const poolsSubtype$1 = (scope, vertical, updates = {}) => {
|
|
1135
|
+
const func = vertical ? verticalSelect : sbsSelect;
|
|
1136
|
+
const label = vertical ? updates.label : "What type of pool?";
|
|
1137
|
+
return func(
|
|
1138
|
+
merge(
|
|
1139
|
+
{
|
|
1140
|
+
label,
|
|
1141
|
+
name: scope ? scope + ":" + "Pools_Subtype" : "Pools_Subtype",
|
|
1142
|
+
options: [
|
|
1143
|
+
"Above Ground",
|
|
1144
|
+
"Inground Concrete",
|
|
1145
|
+
"Inground Fiberglass",
|
|
1146
|
+
"Inground Vinyl",
|
|
1147
|
+
"Inground Gunite",
|
|
1148
|
+
"Pool Liners",
|
|
1149
|
+
"Pool Filters",
|
|
1150
|
+
"Not Sure or Other",
|
|
1151
|
+
],
|
|
1152
|
+
},
|
|
1153
|
+
updates
|
|
1154
|
+
)
|
|
1155
|
+
)
|
|
1156
|
+
};
|
|
872
1157
|
|
|
873
|
-
const plumbingSubtype$1 = (scope) =>
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
1158
|
+
const plumbingSubtype$1 = (scope, vertical, updates = {}) => {
|
|
1159
|
+
const func = vertical ? verticalSelect : sbsSelect;
|
|
1160
|
+
const label = vertical ? updates.label : "What plumbing job type?";
|
|
1161
|
+
return func(
|
|
1162
|
+
merge(
|
|
1163
|
+
{
|
|
1164
|
+
label,
|
|
1165
|
+
name: scope ? scope + ":" + "Plumbing_Subtype" : "Plumbing_Subtype",
|
|
1166
|
+
options: [
|
|
1167
|
+
"Tub or Shower",
|
|
1168
|
+
"Drain",
|
|
1169
|
+
"Sink",
|
|
1170
|
+
"Toilet",
|
|
1171
|
+
"Boiler",
|
|
1172
|
+
"Water Heater",
|
|
1173
|
+
"Sump Pump",
|
|
1174
|
+
"Piping",
|
|
1175
|
+
"Septic",
|
|
1176
|
+
"Water Main",
|
|
1177
|
+
"Hot Tub",
|
|
1178
|
+
"Additions and Remodels",
|
|
1179
|
+
"Not Sure or Other",
|
|
1180
|
+
],
|
|
1181
|
+
},
|
|
1182
|
+
updates
|
|
1183
|
+
)
|
|
1184
|
+
)
|
|
1185
|
+
};
|
|
892
1186
|
|
|
893
|
-
const remodelingSubtype$1 = (scope) =>
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
1187
|
+
const remodelingSubtype$1 = (scope, vertical, updates = {}) => {
|
|
1188
|
+
const func = vertical ? verticalSelect : sbsSelect;
|
|
1189
|
+
const label = vertical ? updates.label : "What remodeling job?";
|
|
1190
|
+
return func(
|
|
1191
|
+
merge(
|
|
1192
|
+
{
|
|
1193
|
+
label,
|
|
1194
|
+
name: scope ? scope + ":" + "Remodeling_Subtype" : "Remodeling_Subtype",
|
|
1195
|
+
options: [
|
|
1196
|
+
"Interior Designer",
|
|
1197
|
+
"Interior Decorator",
|
|
1198
|
+
"Kitchen Remodeling",
|
|
1199
|
+
"Bathroom Remodeling",
|
|
1200
|
+
"Garage Remodeling",
|
|
1201
|
+
"Home Remodeling",
|
|
1202
|
+
"Dumpster Rental",
|
|
1203
|
+
"Landscape Architect",
|
|
1204
|
+
"Outdoor Kitchen",
|
|
1205
|
+
"Outdoor Enclosure",
|
|
1206
|
+
"Additions",
|
|
1207
|
+
"Not Sure or Other",
|
|
1208
|
+
],
|
|
1209
|
+
},
|
|
1210
|
+
updates
|
|
1211
|
+
)
|
|
1212
|
+
)
|
|
1213
|
+
};
|
|
911
1214
|
|
|
912
|
-
const roofingWorkType$1 = (scope) =>
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
1215
|
+
const roofingWorkType$1 = (scope, vertical, updates = {}) => {
|
|
1216
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
1217
|
+
const label = vertical ? updates.label : "What type of work?";
|
|
1218
|
+
return func(
|
|
1219
|
+
merge(
|
|
1220
|
+
{
|
|
1221
|
+
label,
|
|
1222
|
+
name: scope ? scope + ":" + "Roofing_Work_Type" : "Roofing_Work_Type",
|
|
1223
|
+
options: ["Install or Replace Roof", "Repair Roof", "Ice Dams", "Gutters", "Not Sure or Other"],
|
|
1224
|
+
},
|
|
1225
|
+
updates
|
|
1226
|
+
)
|
|
1227
|
+
)
|
|
1228
|
+
};
|
|
923
1229
|
|
|
924
|
-
const roofingMaterial$1 = (scope) =>
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
1230
|
+
const roofingMaterial$1 = (scope, vertical, updates = {}) => {
|
|
1231
|
+
const func = vertical ? verticalSelect : sbsSelect;
|
|
1232
|
+
const label = vertical ? updates.label : "What roofing material?";
|
|
1233
|
+
return func(
|
|
1234
|
+
merge(
|
|
1235
|
+
{
|
|
1236
|
+
label,
|
|
1237
|
+
name: scope ? scope + ":" + "Roofing_Material" : "Roofing_Material",
|
|
1238
|
+
options: [
|
|
1239
|
+
"Asphalt Shingle",
|
|
1240
|
+
"Metal",
|
|
1241
|
+
"Composite",
|
|
1242
|
+
"Flat",
|
|
1243
|
+
"Foam",
|
|
1244
|
+
"Tile",
|
|
1245
|
+
"Wood",
|
|
1246
|
+
"Slate",
|
|
1247
|
+
"Not Sure or Other",
|
|
1248
|
+
],
|
|
1249
|
+
},
|
|
1250
|
+
updates
|
|
1251
|
+
)
|
|
1252
|
+
)
|
|
1253
|
+
};
|
|
939
1254
|
|
|
940
|
-
const sidingMaterial$1 = (scope) =>
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
1255
|
+
const sidingMaterial$1 = (scope, vertical, updates = {}) => {
|
|
1256
|
+
const func = vertical ? col2RadioCenter : sbsSelect;
|
|
1257
|
+
const label = vertical ? updates.label : "What siding material?";
|
|
1258
|
+
return func(
|
|
1259
|
+
merge(
|
|
1260
|
+
{
|
|
1261
|
+
label,
|
|
1262
|
+
name: scope ? scope + ":" + "Siding_Material" : "Siding_Material",
|
|
1263
|
+
options: ["Vinyl", "Composite", "Brick", "Stone", "Wood", "Stucco", "Not Sure or Other"],
|
|
1264
|
+
},
|
|
1265
|
+
updates
|
|
1266
|
+
)
|
|
1267
|
+
)
|
|
1268
|
+
};
|
|
953
1269
|
|
|
954
|
-
const tilingSubtype$1 = (scope) =>
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
1270
|
+
const tilingSubtype$1 = (scope, vertical, updates = {}) => {
|
|
1271
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
1272
|
+
const label = vertical ? updates.label : "What tiling job type?";
|
|
1273
|
+
return func(
|
|
1274
|
+
merge(
|
|
1275
|
+
{
|
|
1276
|
+
label,
|
|
1277
|
+
name: scope ? scope + ":" + "Tiling_Subtype" : "Tiling_Subtype",
|
|
1278
|
+
options: ["Floor", "Backsplash", "Bathroom", "Wall", "Not Sure or Other"],
|
|
1279
|
+
},
|
|
1280
|
+
updates
|
|
1281
|
+
)
|
|
1282
|
+
)
|
|
1283
|
+
};
|
|
965
1284
|
|
|
966
|
-
const waterproofingSubtype$1 = (scope) =>
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
}
|
|
1285
|
+
const waterproofingSubtype$1 = (scope, vertical, updates = {}) => {
|
|
1286
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
1287
|
+
const label = vertical ? updates.label : "What waterproofing job?";
|
|
1288
|
+
return func(
|
|
1289
|
+
merge(
|
|
1290
|
+
{
|
|
1291
|
+
label,
|
|
1292
|
+
name: scope ? scope + ":" + "Waterproofing_Subtype" : "Waterproofing_Subtype",
|
|
1293
|
+
options: ["Foundations", "Basements", "Drainage", "Not Sure or Other"],
|
|
1294
|
+
},
|
|
1295
|
+
updates
|
|
1296
|
+
)
|
|
1297
|
+
)
|
|
1298
|
+
};
|
|
976
1299
|
|
|
977
|
-
const windowsWorkType$1 = (scope) =>
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
}
|
|
1300
|
+
const windowsWorkType$1 = (scope, vertical, updates = {}) => {
|
|
1301
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
1302
|
+
const label = vertical ? updates.label : "What type of work?";
|
|
1303
|
+
return func(
|
|
1304
|
+
merge(
|
|
1305
|
+
{
|
|
1306
|
+
label,
|
|
1307
|
+
name: scope ? scope + ":" + "Windows_Work_Type" : "Windows_Work_Type",
|
|
1308
|
+
options: ["Install or Replace", "Repair", "Cleaning", "Not Sure or Other"],
|
|
1309
|
+
},
|
|
1310
|
+
updates
|
|
1311
|
+
)
|
|
1312
|
+
)
|
|
1313
|
+
};
|
|
987
1314
|
|
|
988
|
-
const windowsSubtype$1 = (scope) =>
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1315
|
+
const windowsSubtype$1 = (scope, vertical, updates = {}) => {
|
|
1316
|
+
const func = vertical ? verticalSelect : sbsSelect;
|
|
1317
|
+
const label = vertical ? updates.label : "What windows job type?";
|
|
1318
|
+
return func(
|
|
1319
|
+
merge(
|
|
1320
|
+
{
|
|
1321
|
+
label,
|
|
1322
|
+
name: scope ? scope + ":" + "Windows_Subtype" : "Windows_Subtype",
|
|
1323
|
+
options: ["Whole Windows", "Frames", "Glass", "Hardware", "Storm Windows", "Screens", "Not Sure or Other"],
|
|
1324
|
+
},
|
|
1325
|
+
updates
|
|
1326
|
+
)
|
|
1327
|
+
)
|
|
1328
|
+
};
|
|
1001
1329
|
|
|
1002
|
-
const numberOfWindows$1 = (scope) =>
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
}
|
|
1330
|
+
const numberOfWindows$1 = (scope, vertical, updates = {}) => {
|
|
1331
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
1332
|
+
const label = vertical ? updates.label : "How many windows?";
|
|
1333
|
+
return func(
|
|
1334
|
+
merge(
|
|
1335
|
+
{
|
|
1336
|
+
label,
|
|
1337
|
+
name: scope ? scope + ":" + "Number_Of_Windows" : "Number_Of_Windows",
|
|
1338
|
+
options: ["1", "2", "3-5", "6+"],
|
|
1339
|
+
},
|
|
1340
|
+
updates
|
|
1341
|
+
)
|
|
1342
|
+
)
|
|
1343
|
+
};
|
|
1012
1344
|
|
|
1013
|
-
const NEXT_ON_ENTER =
|
|
1014
|
-
const NEXT_ON_INPUT =
|
|
1345
|
+
const NEXT_ON_ENTER = "$onEnter($setNextStep($fireStepEvent($get(form)), $preStepFunc($get(form))))";
|
|
1346
|
+
const NEXT_ON_INPUT = "$onInput($setNextStep($fireStepEvent($get(form)), $preStepFunc($get(form))))";
|
|
1015
1347
|
|
|
1016
|
-
const isInput = (n) => {
|
|
1348
|
+
const isInput = (n) => {
|
|
1349
|
+
return n.type !== "group" && n.type !== "section" && n.type !== "form" && n.$formkit !== "hidden" && !n.children
|
|
1350
|
+
};
|
|
1017
1351
|
|
|
1018
1352
|
const findLastInput = (n) => {
|
|
1019
1353
|
if (isInput(n)) {
|
|
1020
1354
|
return n
|
|
1021
1355
|
}
|
|
1022
1356
|
for (var i = n.children.length - 1; i >= 0; i--) {
|
|
1023
|
-
if (typeof n.children ===
|
|
1357
|
+
if (typeof n.children === "string") {
|
|
1024
1358
|
continue
|
|
1025
1359
|
}
|
|
1026
1360
|
const child = n.children[i];
|
|
@@ -1036,99 +1370,114 @@ const findLastInput = (n) => {
|
|
|
1036
1370
|
};
|
|
1037
1371
|
|
|
1038
1372
|
const secureIconDefault = {
|
|
1039
|
-
$el:
|
|
1040
|
-
if:
|
|
1373
|
+
$el: "div",
|
|
1374
|
+
if: "$activeStep === $lastStep()",
|
|
1041
1375
|
attrs: {
|
|
1042
|
-
class:
|
|
1376
|
+
class: "t-flex t-justify-center t-items-center t-text-sm t-text-gray-500",
|
|
1043
1377
|
},
|
|
1044
1378
|
children: [
|
|
1045
1379
|
{
|
|
1046
|
-
$el:
|
|
1380
|
+
$el: "img",
|
|
1047
1381
|
attrs: {
|
|
1048
|
-
loading:
|
|
1049
|
-
alt:
|
|
1382
|
+
loading: "lazy",
|
|
1383
|
+
alt: "",
|
|
1050
1384
|
style: {
|
|
1051
|
-
border: 0
|
|
1385
|
+
border: 0,
|
|
1052
1386
|
},
|
|
1053
|
-
width:
|
|
1054
|
-
height:
|
|
1055
|
-
src:
|
|
1056
|
-
}
|
|
1387
|
+
width: "25",
|
|
1388
|
+
height: "25",
|
|
1389
|
+
src: "https://d27hmee62k45vz.cloudfront.net/lock_icon_1.jpeg",
|
|
1390
|
+
},
|
|
1057
1391
|
},
|
|
1058
1392
|
{
|
|
1059
|
-
$el:
|
|
1060
|
-
children:
|
|
1393
|
+
$el: "span",
|
|
1394
|
+
children: "Secure & Encrypted",
|
|
1061
1395
|
attrs: {
|
|
1062
|
-
class:
|
|
1063
|
-
}
|
|
1064
|
-
}
|
|
1065
|
-
]
|
|
1396
|
+
class: "t-pl-2 t-pt-1 t-font-medium",
|
|
1397
|
+
},
|
|
1398
|
+
},
|
|
1399
|
+
],
|
|
1066
1400
|
};
|
|
1067
1401
|
|
|
1068
1402
|
function secureIcon(updates) {
|
|
1069
|
-
return merge(
|
|
1070
|
-
secureIconDefault,
|
|
1071
|
-
updates
|
|
1072
|
-
)
|
|
1403
|
+
return merge(secureIconDefault, updates)
|
|
1073
1404
|
}
|
|
1074
1405
|
|
|
1075
1406
|
function verticalStepHeadline(updates) {
|
|
1076
1407
|
return {
|
|
1077
|
-
$el:
|
|
1078
|
-
children: updates.headline ||
|
|
1408
|
+
$el: "h3",
|
|
1409
|
+
children: updates.headline || "Tell Us About Your Situation",
|
|
1079
1410
|
attrs: {
|
|
1080
|
-
class:
|
|
1081
|
-
|
|
1411
|
+
class:
|
|
1412
|
+
"t-flex t-justify-center t-text-center t-text-2xl t-font-bold t-text-dark t-pb-5 t-pt-0 t-px-1" +
|
|
1413
|
+
" " +
|
|
1414
|
+
(updates.headlineClass || ""),
|
|
1415
|
+
},
|
|
1082
1416
|
}
|
|
1083
1417
|
}
|
|
1084
1418
|
|
|
1085
1419
|
function verticalStepSubHeadline(updates) {
|
|
1086
1420
|
return {
|
|
1087
|
-
$el:
|
|
1088
|
-
children: updates.subheadline ||
|
|
1421
|
+
$el: "h5",
|
|
1422
|
+
children: updates.subheadline || "",
|
|
1089
1423
|
attrs: {
|
|
1090
|
-
class:
|
|
1091
|
-
|
|
1424
|
+
class:
|
|
1425
|
+
"t-flex t-justify-center t-text-center !t-text-lg t-font-normal t-text-dark t-pb-5 t-pt-0 t-px-1" +
|
|
1426
|
+
" " +
|
|
1427
|
+
(updates.subheadlineClass || ""),
|
|
1428
|
+
},
|
|
1092
1429
|
}
|
|
1093
1430
|
}
|
|
1094
1431
|
|
|
1095
1432
|
function commentsStepHeadline(updates) {
|
|
1096
1433
|
return {
|
|
1097
|
-
$el:
|
|
1098
|
-
children: updates.headline ||
|
|
1434
|
+
$el: "h3",
|
|
1435
|
+
children: updates.headline || "Additional Details",
|
|
1099
1436
|
attrs: {
|
|
1100
|
-
class:
|
|
1101
|
-
|
|
1437
|
+
class:
|
|
1438
|
+
"t-flex t-justify-center t-text-center t-text-2xl t-font-bold t-text-blue-500 t-pb-5 t-pt-0 t-px-1" +
|
|
1439
|
+
" " +
|
|
1440
|
+
(updates.headlineClass || ""),
|
|
1441
|
+
},
|
|
1102
1442
|
}
|
|
1103
1443
|
}
|
|
1104
1444
|
|
|
1105
1445
|
function firstAndLastStepHeadline(updates) {
|
|
1106
1446
|
return {
|
|
1107
|
-
$el:
|
|
1108
|
-
children: updates.headline ||
|
|
1447
|
+
$el: "h3",
|
|
1448
|
+
children: updates.headline || "Please Provide a Contact Name",
|
|
1109
1449
|
attrs: {
|
|
1110
|
-
class:
|
|
1111
|
-
|
|
1450
|
+
class:
|
|
1451
|
+
"t-flex t-justify-center t-text-center t-text-2xl t-font-bold t-text-blue-500 t-pb-5 t-pt-0 t-px-1" +
|
|
1452
|
+
" " +
|
|
1453
|
+
(updates.headlineClass || ""),
|
|
1454
|
+
},
|
|
1112
1455
|
}
|
|
1113
1456
|
}
|
|
1114
1457
|
|
|
1115
1458
|
function contactStepHeadline(updates) {
|
|
1116
1459
|
return {
|
|
1117
|
-
$el:
|
|
1460
|
+
$el: "h3",
|
|
1118
1461
|
children: updates.headline || DEFAULT_FINAL_HEADLINE_DYNAMIC_LEGAL,
|
|
1119
1462
|
attrs: {
|
|
1120
|
-
class:
|
|
1121
|
-
|
|
1463
|
+
class:
|
|
1464
|
+
"t-flex t-justify-center t-text-center t-text-2xl t-font-bold t-text-blue-500 t-pb-3 t-pt-0 t-px-1" +
|
|
1465
|
+
" " +
|
|
1466
|
+
(updates.headlineClass || ""),
|
|
1467
|
+
},
|
|
1122
1468
|
}
|
|
1123
1469
|
}
|
|
1124
1470
|
|
|
1125
1471
|
function contactStepSubHeadline(updates) {
|
|
1126
1472
|
return {
|
|
1127
|
-
$el:
|
|
1473
|
+
$el: "h5",
|
|
1128
1474
|
children: updates.subheadline || DEFAULT_FINAL_SUBHEADLINE_DYNAMIC_LEGAL,
|
|
1129
1475
|
attrs: {
|
|
1130
|
-
class:
|
|
1131
|
-
|
|
1476
|
+
class:
|
|
1477
|
+
"t-flex t-justify-center t-text-center !t-text-lg t-font-semibold t-pb-7 t-pt-0 t-px-3" +
|
|
1478
|
+
" " +
|
|
1479
|
+
(updates.subheadlineClass || ""),
|
|
1480
|
+
},
|
|
1132
1481
|
}
|
|
1133
1482
|
}
|
|
1134
1483
|
|
|
@@ -1150,19 +1499,19 @@ const TRUSTED_FORM_JS = `(function() {
|
|
|
1150
1499
|
|
|
1151
1500
|
function trustedFormScript() {
|
|
1152
1501
|
return {
|
|
1153
|
-
$el:
|
|
1154
|
-
if:
|
|
1155
|
-
children: TRUSTED_FORM_JS
|
|
1502
|
+
$el: "script",
|
|
1503
|
+
if: "$activeStep === $lastStep()",
|
|
1504
|
+
children: TRUSTED_FORM_JS,
|
|
1156
1505
|
}
|
|
1157
1506
|
}
|
|
1158
1507
|
|
|
1159
1508
|
const stepDefaults = (step, stepKey) => ({
|
|
1160
|
-
$el:
|
|
1509
|
+
$el: "section",
|
|
1161
1510
|
if: '$stepEnabled("' + step + '")',
|
|
1162
1511
|
attrs: {
|
|
1163
1512
|
hidden: '$activeStep !== "' + step + '"',
|
|
1164
|
-
key: stepKey ? stepKey : step
|
|
1165
|
-
}
|
|
1513
|
+
key: stepKey ? stepKey : step,
|
|
1514
|
+
},
|
|
1166
1515
|
});
|
|
1167
1516
|
|
|
1168
1517
|
function step(name, inputs, updates = {}) {
|
|
@@ -1185,49 +1534,48 @@ function step(name, inputs, updates = {}) {
|
|
|
1185
1534
|
}
|
|
1186
1535
|
}
|
|
1187
1536
|
|
|
1188
|
-
return merge(
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
]
|
|
1202
|
-
}
|
|
1203
|
-
)
|
|
1537
|
+
return merge(stepDefaults(name, stepKey), {
|
|
1538
|
+
children: [
|
|
1539
|
+
{
|
|
1540
|
+
$formkit: "group",
|
|
1541
|
+
id: name,
|
|
1542
|
+
name: name,
|
|
1543
|
+
nextStepMap: nextStepMap,
|
|
1544
|
+
triggerRedirectMap: triggerRedirectMap,
|
|
1545
|
+
autoFocus: autoFocus,
|
|
1546
|
+
children: inputs,
|
|
1547
|
+
},
|
|
1548
|
+
],
|
|
1549
|
+
})
|
|
1204
1550
|
}
|
|
1205
1551
|
|
|
1206
1552
|
// Single question step
|
|
1207
1553
|
function sqstep(name, input, defaultHeadline, updates = {}) {
|
|
1208
|
-
if (typeof updates.nextOnInput ===
|
|
1554
|
+
if (typeof updates.nextOnInput === "undefined") {
|
|
1209
1555
|
updates.nextOnInput = true;
|
|
1210
1556
|
}
|
|
1211
|
-
|
|
1557
|
+
|
|
1212
1558
|
return step(
|
|
1213
1559
|
name,
|
|
1214
1560
|
[
|
|
1215
|
-
verticalStepHeadline({
|
|
1216
|
-
|
|
1561
|
+
verticalStepHeadline({
|
|
1562
|
+
headline: updates.headline ?? defaultHeadline,
|
|
1563
|
+
headlineClass: updates.headlineClass,
|
|
1564
|
+
}),
|
|
1565
|
+
...(Array.isArray(input) ? input : [input]),
|
|
1217
1566
|
],
|
|
1218
1567
|
updates
|
|
1219
1568
|
)
|
|
1220
1569
|
}
|
|
1221
1570
|
|
|
1222
|
-
|
|
1223
1571
|
// ------ Common Steps
|
|
1224
1572
|
|
|
1225
1573
|
function address(updates = {}) {
|
|
1226
|
-
updates.nextOnInput = typeof updates.nextOnInput ===
|
|
1574
|
+
updates.nextOnInput = typeof updates.nextOnInput === "undefined" ? false : updates.nextOnInput;
|
|
1227
1575
|
return sqstep(
|
|
1228
|
-
|
|
1229
|
-
address$1(updates.scope, true),
|
|
1230
|
-
|
|
1576
|
+
"address",
|
|
1577
|
+
address$1(updates.scope, true, updates.input),
|
|
1578
|
+
"What is the street address of the home?",
|
|
1231
1579
|
updates
|
|
1232
1580
|
)
|
|
1233
1581
|
}
|
|
@@ -1236,14 +1584,14 @@ function commentsHeadline(updates = {}) {
|
|
|
1236
1584
|
const mergedUpdates = { ...updates, nextOnEnter: false };
|
|
1237
1585
|
|
|
1238
1586
|
return step(
|
|
1239
|
-
|
|
1587
|
+
"comments",
|
|
1240
1588
|
[
|
|
1241
1589
|
commentsStepHeadline(updates),
|
|
1242
|
-
comments({
|
|
1243
|
-
label: typeof updates.label ===
|
|
1590
|
+
comments(updates.scope, false, {
|
|
1591
|
+
label: typeof updates.label === "undefined" ? DEFAULT_COMMENTS_LABEL : updates.label,
|
|
1244
1592
|
placeholder: updates.placeholder || DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC,
|
|
1245
|
-
inputClass: typeof updates.inputClass ===
|
|
1246
|
-
}
|
|
1593
|
+
inputClass: typeof updates.inputClass === "undefined" ? "!t-h-32" : updates.inputClass,
|
|
1594
|
+
}),
|
|
1247
1595
|
],
|
|
1248
1596
|
mergedUpdates
|
|
1249
1597
|
)
|
|
@@ -1251,7 +1599,7 @@ function commentsHeadline(updates = {}) {
|
|
|
1251
1599
|
|
|
1252
1600
|
function contactInfo(updates = {}) {
|
|
1253
1601
|
return step(
|
|
1254
|
-
|
|
1602
|
+
"contactInfo",
|
|
1255
1603
|
[
|
|
1256
1604
|
contactStepHeadline(updates),
|
|
1257
1605
|
contactStepSubHeadline(updates),
|
|
@@ -1259,676 +1607,330 @@ function contactInfo(updates = {}) {
|
|
|
1259
1607
|
email(updates.scope),
|
|
1260
1608
|
phone(updates.scope),
|
|
1261
1609
|
TCPAConsent(updates.scope),
|
|
1262
|
-
secureIcon()
|
|
1610
|
+
secureIcon(),
|
|
1263
1611
|
],
|
|
1264
1612
|
{ nextOnEnter: false }
|
|
1265
1613
|
)
|
|
1266
1614
|
}
|
|
1267
1615
|
|
|
1268
|
-
function firstAndLastV3(updates = {}
|
|
1616
|
+
function firstAndLastV3(updates = {}) {
|
|
1269
1617
|
return step(
|
|
1270
|
-
|
|
1618
|
+
"firstAndLast",
|
|
1271
1619
|
[
|
|
1272
1620
|
firstAndLastStepHeadline({
|
|
1273
|
-
headline: updates.headline ??
|
|
1274
|
-
headlineClass: updates.headlineClass
|
|
1621
|
+
headline: updates.headline ?? "Who is looking for help?",
|
|
1622
|
+
headlineClass: updates.headlineClass,
|
|
1275
1623
|
}),
|
|
1276
1624
|
verticalStepSubHeadline({
|
|
1277
|
-
subheadline: updates.subheadline ??
|
|
1278
|
-
subheadlineClass:
|
|
1625
|
+
subheadline: updates.subheadline ?? "Note: we never share info without consent",
|
|
1626
|
+
subheadlineClass: "!t-text-sm !t-text-gray-500",
|
|
1279
1627
|
}),
|
|
1280
|
-
firstName(scope),
|
|
1281
|
-
lastName(scope)
|
|
1628
|
+
firstName(updates.scope),
|
|
1629
|
+
lastName(updates.scope),
|
|
1282
1630
|
],
|
|
1283
1631
|
updates
|
|
1284
1632
|
)
|
|
1285
1633
|
}
|
|
1286
1634
|
|
|
1287
1635
|
function zipcode(updates = {}) {
|
|
1288
|
-
return sqstep(
|
|
1289
|
-
'zipcode',
|
|
1290
|
-
zipcode$1(updates.scope, true, updates),
|
|
1291
|
-
'Please verify your Zip Code',
|
|
1292
|
-
updates
|
|
1293
|
-
)
|
|
1636
|
+
return sqstep("zipcode", zipcode$1(updates.scope, true, updates.input), "Please verify your Zip Code", updates)
|
|
1294
1637
|
}
|
|
1295
1638
|
|
|
1296
|
-
// export function electricalCrossSellQuestions(updates = {}) {
|
|
1297
|
-
// return step(
|
|
1298
|
-
// 'electricalCrossSellQuestions',
|
|
1299
|
-
// [
|
|
1300
|
-
// crossSellQuestionsStepHeadline({ headline: 'Connect With A Pro Electrician' }),
|
|
1301
|
-
// crossSellQuestionsStepSubHeadline({ subheadline: 'Tell us about your electrical needs:' }),
|
|
1302
|
-
// inp.ElectricalQuestions("true", 'CrossSell:Electrical'),
|
|
1303
|
-
// inp.comments(
|
|
1304
|
-
// {
|
|
1305
|
-
// label: 'Project Description:',
|
|
1306
|
-
// placeholder: 'Please describe your project in a few words...',
|
|
1307
|
-
// inputClass: '!t-h-16'
|
|
1308
|
-
// },
|
|
1309
|
-
// 'CrossSell:Electrical'
|
|
1310
|
-
// )
|
|
1311
|
-
// ],
|
|
1312
|
-
// updates
|
|
1313
|
-
// )
|
|
1314
|
-
// }
|
|
1315
|
-
|
|
1316
|
-
// export function appliancesCrossSellQuestions(updates = {}) {
|
|
1317
|
-
// return step(
|
|
1318
|
-
// 'appliancesCrossSellQuestions',
|
|
1319
|
-
// [
|
|
1320
|
-
// crossSellQuestionsStepHeadline({ headline: 'Connect With An Appliance Pro' }),
|
|
1321
|
-
// crossSellQuestionsStepSubHeadline({ subheadline: 'Tell us about your appliance needs:' }),
|
|
1322
|
-
// inp.AppliancesQuestions("true", 'CrossSell:Appliances'),
|
|
1323
|
-
// inp.comments(
|
|
1324
|
-
// {
|
|
1325
|
-
// label: 'Project Description:',
|
|
1326
|
-
// placeholder: 'Please describe your project in a few words...',
|
|
1327
|
-
// inputClass: '!t-h-16'
|
|
1328
|
-
// },
|
|
1329
|
-
// 'CrossSell:Appliances'
|
|
1330
|
-
// )
|
|
1331
|
-
// ],
|
|
1332
|
-
// updates
|
|
1333
|
-
// )
|
|
1334
|
-
// }
|
|
1335
|
-
|
|
1336
|
-
// export function carpentryCrossSellQuestions(updates = {}) {
|
|
1337
|
-
// return step(
|
|
1338
|
-
// 'carpentryCrossSellQuestions',
|
|
1339
|
-
// [
|
|
1340
|
-
// crossSellQuestionsStepHeadline({ headline: 'Connect With A Pro Carpenter' }),
|
|
1341
|
-
// crossSellQuestionsStepSubHeadline({ subheadline: 'Tell us about your carpentry needs:' }),
|
|
1342
|
-
// inp.CarpentryQuestions("true", 'CrossSell:Carpentry'),
|
|
1343
|
-
// inp.comments(
|
|
1344
|
-
// {
|
|
1345
|
-
// label: 'Project Description:',
|
|
1346
|
-
// placeholder: 'Please describe your project in a few words...',
|
|
1347
|
-
// inputClass: '!t-h-16'
|
|
1348
|
-
// },
|
|
1349
|
-
// 'CrossSell:Carpentry'
|
|
1350
|
-
// )
|
|
1351
|
-
// ],
|
|
1352
|
-
// updates
|
|
1353
|
-
// )
|
|
1354
|
-
// }
|
|
1355
|
-
|
|
1356
|
-
// export function masonryAndConcreteCrossSellQuestions(updates = {}) {
|
|
1357
|
-
// return step(
|
|
1358
|
-
// 'masonryCrossSellQuestions',
|
|
1359
|
-
// [
|
|
1360
|
-
// crossSellQuestionsStepHeadline({ headline: 'Connect With A Masonry Pro' }),
|
|
1361
|
-
// crossSellQuestionsStepSubHeadline({ subheadline: 'Tell us about your masonry needs:' }),
|
|
1362
|
-
// inp.MasonryAndConcreteQuestions("true", 'CrossSell:Masonry and Concrete'),
|
|
1363
|
-
// inp.comments(
|
|
1364
|
-
// {
|
|
1365
|
-
// label: 'Project Description:',
|
|
1366
|
-
// placeholder: 'Please describe your project in a few words...',
|
|
1367
|
-
// inputClass: '!t-h-16'
|
|
1368
|
-
// },
|
|
1369
|
-
// 'CrossSell:Masonry and Concrete'
|
|
1370
|
-
// )
|
|
1371
|
-
// ],
|
|
1372
|
-
// updates
|
|
1373
|
-
// )
|
|
1374
|
-
// }
|
|
1375
|
-
|
|
1376
|
-
// export function drivewaysCrossSellQuestions(updates = {}) {
|
|
1377
|
-
// return step(
|
|
1378
|
-
// 'drivewayCrossSellQuestions',
|
|
1379
|
-
// [
|
|
1380
|
-
// crossSellQuestionsStepHeadline({ headline: 'Connect With A Driveway Pro' }),
|
|
1381
|
-
// crossSellQuestionsStepSubHeadline({ subheadline: 'Tell us about your driveway needs:' }),
|
|
1382
|
-
// inp.DrivewaysQuestions("true", 'CrossSell:Driveways'),
|
|
1383
|
-
// inp.comments(
|
|
1384
|
-
// {
|
|
1385
|
-
// label: 'Project Description:',
|
|
1386
|
-
// placeholder: 'Please describe your project in a few words...',
|
|
1387
|
-
// inputClass: '!t-h-16'
|
|
1388
|
-
// },
|
|
1389
|
-
// 'CrossSell:Driveways'
|
|
1390
|
-
// )
|
|
1391
|
-
// ],
|
|
1392
|
-
// updates
|
|
1393
|
-
// )
|
|
1394
|
-
// }
|
|
1395
|
-
|
|
1396
|
-
// export function drywallAndPlasterCrossSellQuestions(updates = {}) {
|
|
1397
|
-
// return step(
|
|
1398
|
-
// 'drywallCrossSellQuestions',
|
|
1399
|
-
// [
|
|
1400
|
-
// crossSellQuestionsStepHeadline({ headline: 'Connect With A Drywall Pro' }),
|
|
1401
|
-
// crossSellQuestionsStepSubHeadline({ subheadline: 'Tell us about your drywall needs:' }),
|
|
1402
|
-
// inp.DrywallAndPlasterQuestions("true", 'CrossSell:Drywall and Plaster'),
|
|
1403
|
-
// inp.comments(
|
|
1404
|
-
// {
|
|
1405
|
-
// label: 'Project Description:',
|
|
1406
|
-
// placeholder: 'Please describe your project in a few words...',
|
|
1407
|
-
// inputClass: '!t-h-16'
|
|
1408
|
-
// },
|
|
1409
|
-
// 'CrossSell:Drywall and Plaster'
|
|
1410
|
-
// )
|
|
1411
|
-
// ],
|
|
1412
|
-
// updates
|
|
1413
|
-
// )
|
|
1414
|
-
// }
|
|
1415
|
-
|
|
1416
|
-
// export function heatingAndCoolingCrossSellQuestions(updates = {}) {
|
|
1417
|
-
// return step(
|
|
1418
|
-
// 'heatingCoolingCrossSellQuestions',
|
|
1419
|
-
// [
|
|
1420
|
-
// crossSellQuestionsStepHeadline({ headline: 'Connect With An HVAC Pro' }),
|
|
1421
|
-
// crossSellQuestionsStepSubHeadline({ subheadline: 'Tell us about your heating and cooling needs:' }),
|
|
1422
|
-
// inp.HeatingAndCoolingQuestions("true", 'CrossSell:Heating and Cooling'),
|
|
1423
|
-
// inp.comments(
|
|
1424
|
-
// {
|
|
1425
|
-
// label: 'Project Description:',
|
|
1426
|
-
// placeholder: 'Please describe your project in a few words...',
|
|
1427
|
-
// },
|
|
1428
|
-
// 'CrossSell:Heating and Cooling'
|
|
1429
|
-
// )
|
|
1430
|
-
// ],
|
|
1431
|
-
// updates
|
|
1432
|
-
// )
|
|
1433
|
-
// }
|
|
1434
|
-
|
|
1435
|
-
// export function landscapingCrossSellQuestions(updates = {}) {
|
|
1436
|
-
// return step(
|
|
1437
|
-
// 'landscapingCrossSellQuestions',
|
|
1438
|
-
// [
|
|
1439
|
-
// crossSellQuestionsStepHeadline({ headline: 'Connect With A Landscaping Pro' }),
|
|
1440
|
-
// crossSellQuestionsStepSubHeadline({ subheadline: 'Tell us about your landscaping needs:' }),
|
|
1441
|
-
// inp.LandscapingQuestions("true", 'CrossSell:Landscaping'),
|
|
1442
|
-
// inp.comments(
|
|
1443
|
-
// {
|
|
1444
|
-
// label: 'Project Description:',
|
|
1445
|
-
// placeholder: 'Please describe your project in a few words...',
|
|
1446
|
-
// },
|
|
1447
|
-
// 'CrossSell:Landscaping'
|
|
1448
|
-
// )
|
|
1449
|
-
// ],
|
|
1450
|
-
// updates
|
|
1451
|
-
// )
|
|
1452
|
-
// }
|
|
1453
|
-
|
|
1454
|
-
// export function pestControlCrossSellQuestions(updates = {}) {
|
|
1455
|
-
// return step(
|
|
1456
|
-
// 'pestControlCrossSellQuestions',
|
|
1457
|
-
// [
|
|
1458
|
-
// crossSellQuestionsStepHeadline({ headline: 'Connect With A Pest Control Pro' }),
|
|
1459
|
-
// crossSellQuestionsStepSubHeadline({ subheadline: 'Tell us about your pest control needs:' }),
|
|
1460
|
-
// inp.PestControlQuestions("true", 'CrossSell:Pest Control'),
|
|
1461
|
-
// inp.comments(
|
|
1462
|
-
// {
|
|
1463
|
-
// label: 'Project Description:',
|
|
1464
|
-
// placeholder: 'Please describe your project in a few words...',
|
|
1465
|
-
// },
|
|
1466
|
-
// 'CrossSell:Pest Control'
|
|
1467
|
-
// )
|
|
1468
|
-
// ],
|
|
1469
|
-
// updates
|
|
1470
|
-
// )
|
|
1471
|
-
// }
|
|
1472
|
-
|
|
1473
|
-
// export function sidingCrossSellQuestions(updates = {}) {
|
|
1474
|
-
// return step(
|
|
1475
|
-
// 'sidingCrossSellQuestions',
|
|
1476
|
-
// [
|
|
1477
|
-
// crossSellQuestionsStepHeadline({ headline: 'Connect With A Siding Pro' }),
|
|
1478
|
-
// crossSellQuestionsStepSubHeadline({ subheadline: 'Tell us about your siding needs:' }),
|
|
1479
|
-
// inp.SidingQuestions("true", 'CrossSell:Siding'),
|
|
1480
|
-
// inp.comments(
|
|
1481
|
-
// {
|
|
1482
|
-
// label: 'Project Description:',
|
|
1483
|
-
// placeholder: 'Please describe your project in a few words...',
|
|
1484
|
-
// },
|
|
1485
|
-
// 'CrossSell:Siding'
|
|
1486
|
-
// )
|
|
1487
|
-
// ],
|
|
1488
|
-
// updates
|
|
1489
|
-
// )
|
|
1490
|
-
// }
|
|
1491
|
-
|
|
1492
|
-
// export function windowsCrossSellQuestions(updates = {}) {
|
|
1493
|
-
// return step(
|
|
1494
|
-
// 'windowsCrossSellQuestions',
|
|
1495
|
-
// [
|
|
1496
|
-
// crossSellQuestionsStepHeadline({ headline: 'Connect With A Window Pro' }),
|
|
1497
|
-
// crossSellQuestionsStepSubHeadline({ subheadline: 'Tell us about your window needs:' }),
|
|
1498
|
-
// inp.WindowsQuestions("true", 'CrossSell:Windows'),
|
|
1499
|
-
// inp.comments(
|
|
1500
|
-
// {
|
|
1501
|
-
// label: 'Project Description:',
|
|
1502
|
-
// placeholder: 'Please describe your project in a few words...',
|
|
1503
|
-
// },
|
|
1504
|
-
// 'CrossSell:Windows'
|
|
1505
|
-
// )
|
|
1506
|
-
// ],
|
|
1507
|
-
// updates
|
|
1508
|
-
// )
|
|
1509
|
-
// }
|
|
1510
|
-
|
|
1511
|
-
// export function flooringCrossSellQuestions(updates = {}) {
|
|
1512
|
-
// return step(
|
|
1513
|
-
// 'flooringCrossSellQuestions',
|
|
1514
|
-
// [
|
|
1515
|
-
// crossSellQuestionsStepHeadline({ headline: 'Connect With A Flooring Pro' }),
|
|
1516
|
-
// crossSellQuestionsStepSubHeadline({ subheadline: 'Tell us about your flooring needs:' }),
|
|
1517
|
-
// inp.FlooringQuestions("true", 'CrossSell:Flooring'),
|
|
1518
|
-
// inp.comments(
|
|
1519
|
-
// {
|
|
1520
|
-
// label: 'Project Description:',
|
|
1521
|
-
// placeholder: 'Please describe your project in a few words...',
|
|
1522
|
-
// inputClass: '!t-h-16'
|
|
1523
|
-
// },
|
|
1524
|
-
// 'CrossSell:Flooring'
|
|
1525
|
-
// )
|
|
1526
|
-
// ],
|
|
1527
|
-
// updates
|
|
1528
|
-
// )
|
|
1529
|
-
// }
|
|
1530
|
-
|
|
1531
|
-
// export function paintingCrossSellQuestions(updates = {}) {
|
|
1532
|
-
// return step(
|
|
1533
|
-
// 'paintingCrossSellQuestions',
|
|
1534
|
-
// [
|
|
1535
|
-
// crossSellQuestionsStepHeadline({ headline: 'Connect With A Pro Painter' }),
|
|
1536
|
-
// crossSellQuestionsStepSubHeadline({ subheadline: 'Tell us about your painting needs:' }),
|
|
1537
|
-
// inp.PaintingQuestions("true", 'CrossSell:Painting'),
|
|
1538
|
-
// inp.comments(
|
|
1539
|
-
// {
|
|
1540
|
-
// label: 'Project Description:',
|
|
1541
|
-
// placeholder: 'Please describe your project in a few words...',
|
|
1542
|
-
// inputClass: '!t-h-16'
|
|
1543
|
-
// },
|
|
1544
|
-
// 'CrossSell:Painting'
|
|
1545
|
-
// )
|
|
1546
|
-
// ],
|
|
1547
|
-
// updates
|
|
1548
|
-
// )
|
|
1549
|
-
// }
|
|
1550
|
-
|
|
1551
|
-
// export function plumbingCrossSellQuestions(updates = {}) {
|
|
1552
|
-
// return step(
|
|
1553
|
-
// 'plumbingCrossSellQuestions',
|
|
1554
|
-
// [
|
|
1555
|
-
// crossSellQuestionsStepHeadline({ headline: 'Connect With A Local Plumber' }),
|
|
1556
|
-
// crossSellQuestionsStepSubHeadline({ subheadline: 'Tell us about your plumbing needs:' }),
|
|
1557
|
-
// inp.PlumbingQuestions("true", 'CrossSell:Plumbing'),
|
|
1558
|
-
// inp.comments(
|
|
1559
|
-
// {
|
|
1560
|
-
// label: 'Project Description:',
|
|
1561
|
-
// placeholder: 'Please describe your project in a few words...',
|
|
1562
|
-
// inputClass: '!t-h-16'
|
|
1563
|
-
// },
|
|
1564
|
-
// 'CrossSell:Plumbing'
|
|
1565
|
-
// )
|
|
1566
|
-
// ],
|
|
1567
|
-
// updates
|
|
1568
|
-
// )
|
|
1569
|
-
// }
|
|
1570
|
-
|
|
1571
|
-
// export function remodelingCrossSellQuestions(updates = {}) {
|
|
1572
|
-
// return step(
|
|
1573
|
-
// 'remodelingCrossSellQuestions',
|
|
1574
|
-
// [
|
|
1575
|
-
// crossSellQuestionsStepHeadline({ headline: 'Connect With A Pro Remodeler' }),
|
|
1576
|
-
// crossSellQuestionsStepSubHeadline({ subheadline: 'Tell us about your remodeling needs:' }),
|
|
1577
|
-
// inp.RemodelingQuestions("true", 'CrossSell:Remodeling'),
|
|
1578
|
-
// inp.comments(
|
|
1579
|
-
// {
|
|
1580
|
-
// label: 'Project Description:',
|
|
1581
|
-
// placeholder: 'Please describe your project in a few words...',
|
|
1582
|
-
// inputClass: '!t-h-16'
|
|
1583
|
-
// },
|
|
1584
|
-
// 'CrossSell:Remodeling'
|
|
1585
|
-
// )
|
|
1586
|
-
// ],
|
|
1587
|
-
// updates
|
|
1588
|
-
// )
|
|
1589
|
-
// }
|
|
1590
|
-
|
|
1591
|
-
// export function roofingCrossSellQuestions(updates = {}) {
|
|
1592
|
-
// return step(
|
|
1593
|
-
// 'roofingCrossSellQuestions',
|
|
1594
|
-
// [
|
|
1595
|
-
// crossSellQuestionsStepHeadline({ headline: 'Connect With A Pro Roofer' }),
|
|
1596
|
-
// crossSellQuestionsStepSubHeadline({ subheadline: 'Tell us about your roofing needs:' }),
|
|
1597
|
-
// inp.RoofingQuestions("true", 'CrossSell:Roofing'),
|
|
1598
|
-
// inp.comments(
|
|
1599
|
-
// {
|
|
1600
|
-
// label: 'Project Description:',
|
|
1601
|
-
// placeholder: 'Please describe your project in a few words...',
|
|
1602
|
-
// inputClass: '!t-h-16'
|
|
1603
|
-
// },
|
|
1604
|
-
// 'CrossSell:Roofing'
|
|
1605
|
-
// )
|
|
1606
|
-
// ],
|
|
1607
|
-
// updates
|
|
1608
|
-
// )
|
|
1609
|
-
// }
|
|
1610
|
-
|
|
1611
1639
|
function homeImprovementCategory(updates = {}) {
|
|
1612
|
-
return step(
|
|
1613
|
-
'homeImprovementCategory',
|
|
1614
|
-
[
|
|
1615
|
-
homeImprovementCategory$1(updates.input),
|
|
1616
|
-
],
|
|
1617
|
-
updates
|
|
1618
|
-
)
|
|
1640
|
+
return step("homeImprovementCategory", [homeImprovementCategory$1(updates.scope, true, updates.input)], updates)
|
|
1619
1641
|
}
|
|
1620
1642
|
|
|
1621
1643
|
function timeframe(updates = {}) {
|
|
1622
1644
|
return sqstep(
|
|
1623
|
-
|
|
1624
|
-
timeframe$1(),
|
|
1625
|
-
|
|
1645
|
+
"timeframe",
|
|
1646
|
+
timeframe$1(updates.scope, true, updates.input),
|
|
1647
|
+
"What is the project timeframe?",
|
|
1626
1648
|
updates
|
|
1627
1649
|
)
|
|
1628
1650
|
}
|
|
1629
1651
|
|
|
1630
1652
|
function ownHome(updates = {}) {
|
|
1631
|
-
return sqstep(
|
|
1632
|
-
'ownHome',
|
|
1633
|
-
ownHome$1(),
|
|
1634
|
-
'Do you own the home?',
|
|
1635
|
-
updates
|
|
1636
|
-
)
|
|
1653
|
+
return sqstep("ownHome", ownHome$1(updates.scope, true, updates.input), "Do you own the home?", updates)
|
|
1637
1654
|
}
|
|
1638
1655
|
|
|
1639
1656
|
function additionsSubType(updates = {}) {
|
|
1640
1657
|
return sqstep(
|
|
1641
|
-
|
|
1642
|
-
additionsSubType$1(),
|
|
1643
|
-
|
|
1658
|
+
"additionsSubType",
|
|
1659
|
+
additionsSubType$1(updates.scope, true, updates.input),
|
|
1660
|
+
"What type of addition?",
|
|
1644
1661
|
updates
|
|
1645
1662
|
)
|
|
1646
1663
|
}
|
|
1647
1664
|
|
|
1648
1665
|
function constructionAreaSize(updates = {}) {
|
|
1649
1666
|
return sqstep(
|
|
1650
|
-
|
|
1651
|
-
constructionAreaSize$1(),
|
|
1652
|
-
|
|
1667
|
+
"constructionAreaSize",
|
|
1668
|
+
constructionAreaSize$1(updates.scope, true, updates.input),
|
|
1669
|
+
"What is the size of the construction area?",
|
|
1653
1670
|
updates
|
|
1654
1671
|
)
|
|
1655
1672
|
}
|
|
1656
1673
|
|
|
1657
1674
|
function homeImprovementWorkType(updates = {}) {
|
|
1658
1675
|
return sqstep(
|
|
1659
|
-
|
|
1660
|
-
homeImprovementWorkType$1(),
|
|
1661
|
-
|
|
1676
|
+
"homeImprovementWorkType",
|
|
1677
|
+
homeImprovementWorkType$1(updates.scope, true, updates.input),
|
|
1678
|
+
"What type of work?",
|
|
1662
1679
|
updates
|
|
1663
1680
|
)
|
|
1664
1681
|
}
|
|
1665
1682
|
|
|
1666
1683
|
function applianceType(updates = {}) {
|
|
1667
1684
|
return sqstep(
|
|
1668
|
-
|
|
1669
|
-
applianceType$1(),
|
|
1670
|
-
|
|
1685
|
+
"applianceType",
|
|
1686
|
+
applianceType$1(updates.scope, true, updates.input),
|
|
1687
|
+
"What type of appliance?",
|
|
1671
1688
|
updates
|
|
1672
1689
|
)
|
|
1673
1690
|
}
|
|
1674
1691
|
|
|
1675
1692
|
function cabinetWorkType(updates = {}) {
|
|
1676
1693
|
return sqstep(
|
|
1677
|
-
|
|
1678
|
-
cabinetWorkType$1(),
|
|
1679
|
-
|
|
1694
|
+
"cabinetWorkType",
|
|
1695
|
+
cabinetWorkType$1(updates.scope, true, updates.input),
|
|
1696
|
+
"What type of cabinet work?",
|
|
1680
1697
|
updates
|
|
1681
1698
|
)
|
|
1682
1699
|
}
|
|
1683
1700
|
|
|
1684
1701
|
function carpentrySubtype(updates = {}) {
|
|
1685
1702
|
return sqstep(
|
|
1686
|
-
|
|
1687
|
-
carpentrySubtype$1(),
|
|
1688
|
-
|
|
1703
|
+
"carpentrySubtype",
|
|
1704
|
+
carpentrySubtype$1(updates.scope, true, updates.input),
|
|
1705
|
+
"What carpentry job type?",
|
|
1689
1706
|
updates
|
|
1690
1707
|
)
|
|
1691
1708
|
}
|
|
1692
1709
|
|
|
1693
1710
|
function carpetWorkType(updates = {}) {
|
|
1694
1711
|
return sqstep(
|
|
1695
|
-
|
|
1696
|
-
carpetWorkType$1(),
|
|
1697
|
-
|
|
1712
|
+
"carpetWorkType",
|
|
1713
|
+
carpetWorkType$1(updates.scope, true, updates.input),
|
|
1714
|
+
"What type of carpet work?",
|
|
1698
1715
|
updates
|
|
1699
1716
|
)
|
|
1700
1717
|
}
|
|
1701
1718
|
|
|
1702
1719
|
function cleaningSubtype(updates = {}) {
|
|
1703
1720
|
return sqstep(
|
|
1704
|
-
|
|
1705
|
-
cleaningSubtype$1(),
|
|
1706
|
-
|
|
1721
|
+
"cleaningSubtype",
|
|
1722
|
+
cleaningSubtype$1(updates.scope, true, updates.input),
|
|
1723
|
+
"What type of cleaning?",
|
|
1707
1724
|
updates
|
|
1708
1725
|
)
|
|
1709
1726
|
}
|
|
1710
1727
|
|
|
1711
1728
|
function countertopMaterial(updates = {}) {
|
|
1712
1729
|
return sqstep(
|
|
1713
|
-
|
|
1714
|
-
countertopMaterial$1(),
|
|
1715
|
-
|
|
1730
|
+
"countertopMaterial",
|
|
1731
|
+
countertopMaterial$1(updates.scope, true, updates.input),
|
|
1732
|
+
"What type of countertop material?",
|
|
1716
1733
|
updates
|
|
1717
1734
|
)
|
|
1718
1735
|
}
|
|
1719
1736
|
|
|
1720
1737
|
function deckWorkType(updates = {}) {
|
|
1721
1738
|
return sqstep(
|
|
1722
|
-
|
|
1723
|
-
deckWorkType$1(),
|
|
1724
|
-
|
|
1739
|
+
"deckWorkType",
|
|
1740
|
+
deckWorkType$1(updates.scope, true, updates.input),
|
|
1741
|
+
"What type of deck work?",
|
|
1725
1742
|
updates
|
|
1726
1743
|
)
|
|
1727
1744
|
}
|
|
1728
1745
|
|
|
1729
1746
|
function demolitionSubtype(updates = {}) {
|
|
1730
1747
|
return sqstep(
|
|
1731
|
-
|
|
1732
|
-
demolitionSubtype$1(),
|
|
1733
|
-
|
|
1748
|
+
"demolitionSubtype",
|
|
1749
|
+
demolitionSubtype$1(updates.scope, true, updates.input),
|
|
1750
|
+
"What type of demolition?",
|
|
1734
1751
|
updates
|
|
1735
1752
|
)
|
|
1736
1753
|
}
|
|
1737
1754
|
|
|
1738
1755
|
function doorSubtype(updates = {}) {
|
|
1739
|
-
return sqstep(
|
|
1740
|
-
'doorSubtype',
|
|
1741
|
-
doorSubtype$1(),
|
|
1742
|
-
'What type of door?',
|
|
1743
|
-
updates
|
|
1744
|
-
)
|
|
1756
|
+
return sqstep("doorSubtype", doorSubtype$1(updates.scope, true, updates.input), "What type of door?", updates)
|
|
1745
1757
|
}
|
|
1746
1758
|
|
|
1747
1759
|
function drivewayWorkType(updates = {}) {
|
|
1748
1760
|
return sqstep(
|
|
1749
|
-
|
|
1750
|
-
drivewayWorkType$1(),
|
|
1751
|
-
|
|
1761
|
+
"drivewayWorkType",
|
|
1762
|
+
drivewayWorkType$1(updates.scope, true, updates.input),
|
|
1763
|
+
"What type of driveway work?",
|
|
1752
1764
|
updates
|
|
1753
1765
|
)
|
|
1754
1766
|
}
|
|
1755
1767
|
|
|
1756
1768
|
function drivewayMaterial(updates = {}) {
|
|
1757
1769
|
return sqstep(
|
|
1758
|
-
|
|
1759
|
-
drivewayMaterial$1(),
|
|
1760
|
-
|
|
1770
|
+
"drivewayMaterial",
|
|
1771
|
+
drivewayMaterial$1(updates.scope, true, updates.input),
|
|
1772
|
+
"What type of driveway material?",
|
|
1761
1773
|
updates
|
|
1762
1774
|
)
|
|
1763
1775
|
}
|
|
1764
1776
|
|
|
1765
1777
|
function wallSurfaceType(updates = {}) {
|
|
1766
1778
|
return sqstep(
|
|
1767
|
-
|
|
1768
|
-
wallSurfaceType$1(),
|
|
1769
|
-
|
|
1779
|
+
"wallSurfaceType",
|
|
1780
|
+
wallSurfaceType$1(updates.scope, true, updates.input),
|
|
1781
|
+
"What type of surface?",
|
|
1770
1782
|
updates
|
|
1771
1783
|
)
|
|
1772
1784
|
}
|
|
1773
1785
|
|
|
1774
1786
|
function electricalSubtype(updates = {}) {
|
|
1775
1787
|
return sqstep(
|
|
1776
|
-
|
|
1777
|
-
electricalSubtype$1(),
|
|
1778
|
-
|
|
1788
|
+
"electricalSubtype",
|
|
1789
|
+
electricalSubtype$1(updates.scope, true, updates.input),
|
|
1790
|
+
"What electrical job type?",
|
|
1779
1791
|
updates
|
|
1780
1792
|
)
|
|
1781
1793
|
}
|
|
1782
1794
|
|
|
1783
1795
|
function fenceMaterial(updates = {}) {
|
|
1784
1796
|
return sqstep(
|
|
1785
|
-
|
|
1786
|
-
fenceMaterial$1(),
|
|
1787
|
-
|
|
1797
|
+
"fenceMaterial",
|
|
1798
|
+
fenceMaterial$1(updates.scope, true, updates.input),
|
|
1799
|
+
"What type of fence material?",
|
|
1788
1800
|
updates
|
|
1789
1801
|
)
|
|
1790
1802
|
}
|
|
1791
1803
|
|
|
1792
1804
|
function flooringMaterial(updates = {}) {
|
|
1793
1805
|
return sqstep(
|
|
1794
|
-
|
|
1795
|
-
flooringMaterial$1(),
|
|
1796
|
-
|
|
1806
|
+
"flooringMaterial",
|
|
1807
|
+
flooringMaterial$1(updates.scope, true, updates.input),
|
|
1808
|
+
"What type of flooring material?",
|
|
1797
1809
|
updates
|
|
1798
1810
|
)
|
|
1799
1811
|
}
|
|
1800
1812
|
|
|
1801
1813
|
function generalContractorSubtype(updates = {}) {
|
|
1802
1814
|
return sqstep(
|
|
1803
|
-
|
|
1804
|
-
generalContractorSubtype$1(),
|
|
1805
|
-
|
|
1815
|
+
"generalContractorSubtype",
|
|
1816
|
+
generalContractorSubtype$1(updates.scope, true, updates.input),
|
|
1817
|
+
"What type of general contractor work?",
|
|
1806
1818
|
updates
|
|
1807
1819
|
)
|
|
1808
1820
|
}
|
|
1809
1821
|
|
|
1810
1822
|
function gutterMaterial(updates = {}) {
|
|
1811
1823
|
return sqstep(
|
|
1812
|
-
|
|
1813
|
-
gutterMaterial$1(),
|
|
1814
|
-
|
|
1824
|
+
"gutterMaterial",
|
|
1825
|
+
gutterMaterial$1(updates.scope, true, updates.input),
|
|
1826
|
+
"What type of gutter material?",
|
|
1815
1827
|
updates
|
|
1816
1828
|
)
|
|
1817
1829
|
}
|
|
1818
1830
|
|
|
1819
|
-
function
|
|
1831
|
+
function gutterWorkType(updates = {}) {
|
|
1820
1832
|
return sqstep(
|
|
1821
|
-
|
|
1822
|
-
|
|
1823
|
-
|
|
1833
|
+
"gutterWorkType",
|
|
1834
|
+
gutterWorkType$1(updates.scope, true, updates.input),
|
|
1835
|
+
"What type of gutter work?",
|
|
1824
1836
|
updates
|
|
1825
1837
|
)
|
|
1826
1838
|
}
|
|
1827
1839
|
|
|
1828
1840
|
function smartHomeSubtype(updates = {}) {
|
|
1829
1841
|
return sqstep(
|
|
1830
|
-
|
|
1831
|
-
smartHomeSubtype$1(),
|
|
1832
|
-
|
|
1842
|
+
"smartHomeSubtype",
|
|
1843
|
+
smartHomeSubtype$1(updates.scope, true, updates.input),
|
|
1844
|
+
"What type of smart home work?",
|
|
1833
1845
|
updates
|
|
1834
1846
|
)
|
|
1835
1847
|
}
|
|
1836
1848
|
|
|
1837
1849
|
function homeOrganizationSubtype(updates = {}) {
|
|
1838
1850
|
return sqstep(
|
|
1839
|
-
|
|
1840
|
-
homeOrganizationSubtype$1(),
|
|
1841
|
-
|
|
1851
|
+
"homeOrganizationSubtype",
|
|
1852
|
+
homeOrganizationSubtype$1(updates.scope, true, updates.input),
|
|
1853
|
+
"What type of home organization work?",
|
|
1842
1854
|
updates
|
|
1843
1855
|
)
|
|
1844
1856
|
}
|
|
1845
1857
|
|
|
1846
1858
|
function numberOfRooms(updates = {}) {
|
|
1847
|
-
return sqstep(
|
|
1848
|
-
'numberOfRooms',
|
|
1849
|
-
numberOfRooms$1(),
|
|
1850
|
-
'How many rooms?',
|
|
1851
|
-
updates
|
|
1852
|
-
)
|
|
1859
|
+
return sqstep("numberOfRooms", numberOfRooms$1(updates.scope, true, updates.input), "How many rooms?", updates)
|
|
1853
1860
|
}
|
|
1854
1861
|
|
|
1855
1862
|
function homeTheaterSubtype(updates = {}) {
|
|
1856
1863
|
return sqstep(
|
|
1857
|
-
|
|
1858
|
-
homeTheaterSubtype$1(),
|
|
1859
|
-
|
|
1864
|
+
"homeTheaterSubtype",
|
|
1865
|
+
homeTheaterSubtype$1(updates.scope, true, updates.input),
|
|
1866
|
+
"What type of home theater work?",
|
|
1860
1867
|
updates
|
|
1861
1868
|
)
|
|
1862
1869
|
}
|
|
1863
1870
|
|
|
1864
1871
|
function heatingCoolingSubtype(updates = {}) {
|
|
1865
1872
|
return sqstep(
|
|
1866
|
-
|
|
1867
|
-
heatingCoolingSubtype$1(),
|
|
1868
|
-
|
|
1873
|
+
"heatingCoolingSubtype",
|
|
1874
|
+
heatingCoolingSubtype$1(updates.scope, true, updates.input),
|
|
1875
|
+
"What heating or cooling job type?",
|
|
1869
1876
|
updates
|
|
1870
1877
|
)
|
|
1871
1878
|
}
|
|
1872
1879
|
|
|
1873
1880
|
function fuelSource(updates = {}) {
|
|
1874
|
-
return sqstep(
|
|
1875
|
-
'fuelSource',
|
|
1876
|
-
fuelSource$1(),
|
|
1877
|
-
'What type of fuel source?',
|
|
1878
|
-
updates
|
|
1879
|
-
)
|
|
1881
|
+
return sqstep("fuelSource", fuelSource$1(updates.scope, true, updates.input), "What type of fuel source?", updates)
|
|
1880
1882
|
}
|
|
1881
1883
|
|
|
1882
1884
|
function insulationSubtype(updates = {}) {
|
|
1883
1885
|
return sqstep(
|
|
1884
|
-
|
|
1885
|
-
insulationSubtype$1(),
|
|
1886
|
-
|
|
1886
|
+
"insulationSubtype",
|
|
1887
|
+
insulationSubtype$1(updates.scope, true, updates.input),
|
|
1888
|
+
"What type of insulation work?",
|
|
1887
1889
|
updates
|
|
1888
1890
|
)
|
|
1889
1891
|
}
|
|
1890
1892
|
|
|
1891
1893
|
function landscapingSubtype(updates = {}) {
|
|
1892
1894
|
return sqstep(
|
|
1893
|
-
|
|
1894
|
-
landscapingSubtype$1(),
|
|
1895
|
-
|
|
1895
|
+
"landscapingSubtype",
|
|
1896
|
+
landscapingSubtype$1(updates.scope, true, updates.input),
|
|
1897
|
+
"What type of landscaping work?",
|
|
1896
1898
|
updates
|
|
1897
1899
|
)
|
|
1898
1900
|
}
|
|
1899
1901
|
|
|
1900
1902
|
function masonrySubtype(updates = {}) {
|
|
1901
1903
|
return sqstep(
|
|
1902
|
-
|
|
1903
|
-
masonrySubtype$1(),
|
|
1904
|
-
|
|
1904
|
+
"masonrySubtype",
|
|
1905
|
+
masonrySubtype$1(updates.scope, true, updates.input),
|
|
1906
|
+
"What masonry job type?",
|
|
1905
1907
|
updates
|
|
1906
1908
|
)
|
|
1907
1909
|
}
|
|
1908
1910
|
|
|
1909
1911
|
function masonryMaterial(updates = {}) {
|
|
1910
1912
|
return sqstep(
|
|
1911
|
-
|
|
1912
|
-
masonryMaterial$1(),
|
|
1913
|
-
|
|
1913
|
+
"masonryMaterial",
|
|
1914
|
+
masonryMaterial$1(updates.scope, true, updates.input),
|
|
1915
|
+
"What type of masonry material?",
|
|
1914
1916
|
updates
|
|
1915
1917
|
)
|
|
1916
1918
|
}
|
|
1917
1919
|
|
|
1918
1920
|
function masonryWorkType(updates = {}) {
|
|
1919
1921
|
return sqstep(
|
|
1920
|
-
|
|
1921
|
-
masonryWorkType$1(),
|
|
1922
|
-
|
|
1922
|
+
"masonryWorkType",
|
|
1923
|
+
masonryWorkType$1(updates.scope, true, updates.input),
|
|
1924
|
+
"What type of masonry work?",
|
|
1923
1925
|
updates
|
|
1924
1926
|
)
|
|
1925
1927
|
}
|
|
1926
1928
|
|
|
1927
1929
|
function restorationSubtype(updates = {}) {
|
|
1928
1930
|
return sqstep(
|
|
1929
|
-
|
|
1930
|
-
restorationSubtype$1(),
|
|
1931
|
-
|
|
1931
|
+
"restorationSubtype",
|
|
1932
|
+
restorationSubtype$1(updates.scope, true, updates.input),
|
|
1933
|
+
"What type of restoration work?",
|
|
1932
1934
|
updates
|
|
1933
1935
|
)
|
|
1934
1936
|
}
|
|
@@ -1938,7 +1940,7 @@ function restorationSubtype(updates = {}) {
|
|
|
1938
1940
|
// export function movingFromAddress(updates = {}) {
|
|
1939
1941
|
// return sqstep(
|
|
1940
1942
|
// 'movingFromAddress',
|
|
1941
|
-
// inp.movingFromAddress(),
|
|
1943
|
+
// inp.movingFromAddress(updates.scope, true, updates.input),
|
|
1942
1944
|
// 'Moving from address:',
|
|
1943
1945
|
// updates
|
|
1944
1946
|
// )
|
|
@@ -1947,7 +1949,7 @@ function restorationSubtype(updates = {}) {
|
|
|
1947
1949
|
// export function movingToAddress(updates = {}) {
|
|
1948
1950
|
// return sqstep(
|
|
1949
1951
|
// 'movingToAddress',
|
|
1950
|
-
// inp.movingToAddress(),
|
|
1952
|
+
// inp.movingToAddress(updates.scope, true, updates.input),
|
|
1951
1953
|
// 'Moving to address:',
|
|
1952
1954
|
// updates
|
|
1953
1955
|
// )
|
|
@@ -1956,7 +1958,7 @@ function restorationSubtype(updates = {}) {
|
|
|
1956
1958
|
// export function movingHouseholdSize(updates = {}) {
|
|
1957
1959
|
// return sqstep(
|
|
1958
1960
|
// 'movingHouseholdSize',
|
|
1959
|
-
// inp.movingHouseholdSize(),
|
|
1961
|
+
// inp.movingHouseholdSize(updates.scope, true, updates.input),
|
|
1960
1962
|
// 'Household size:',
|
|
1961
1963
|
// updates
|
|
1962
1964
|
// )
|
|
@@ -1964,245 +1966,245 @@ function restorationSubtype(updates = {}) {
|
|
|
1964
1966
|
|
|
1965
1967
|
function paintingSubtype(updates = {}) {
|
|
1966
1968
|
return sqstep(
|
|
1967
|
-
|
|
1968
|
-
paintingSubtype$1(),
|
|
1969
|
-
|
|
1969
|
+
"paintingSubtype",
|
|
1970
|
+
paintingSubtype$1(updates.scope, true, updates.input),
|
|
1971
|
+
"What type of painting work?",
|
|
1970
1972
|
updates
|
|
1971
1973
|
)
|
|
1972
1974
|
}
|
|
1973
1975
|
|
|
1974
1976
|
function paintingRooms(updates = {}) {
|
|
1975
1977
|
return sqstep(
|
|
1976
|
-
|
|
1977
|
-
|
|
1978
|
-
|
|
1978
|
+
"paintingRooms",
|
|
1979
|
+
numberOfRooms$1(updates.scope, true, updates.input),
|
|
1980
|
+
"How many rooms need painting?",
|
|
1979
1981
|
updates
|
|
1980
1982
|
)
|
|
1981
1983
|
}
|
|
1982
1984
|
|
|
1983
1985
|
function pestControlSubtype(updates = {}) {
|
|
1984
1986
|
return sqstep(
|
|
1985
|
-
|
|
1986
|
-
pestControlSubtype$1(),
|
|
1987
|
-
|
|
1987
|
+
"pestControlSubtype",
|
|
1988
|
+
pestControlSubtype$1(updates.scope, true, updates.input),
|
|
1989
|
+
"What type of pest control work?",
|
|
1988
1990
|
updates
|
|
1989
1991
|
)
|
|
1990
1992
|
}
|
|
1991
1993
|
|
|
1992
1994
|
function poolsWorkType(updates = {}) {
|
|
1993
1995
|
return sqstep(
|
|
1994
|
-
|
|
1995
|
-
poolsWorkType$1(),
|
|
1996
|
-
|
|
1996
|
+
"poolsWorkType",
|
|
1997
|
+
poolsWorkType$1(updates.scope, true, updates.input),
|
|
1998
|
+
"What type of pool work?",
|
|
1997
1999
|
updates
|
|
1998
2000
|
)
|
|
1999
2001
|
}
|
|
2000
2002
|
|
|
2001
2003
|
function poolsSubtype(updates = {}) {
|
|
2002
2004
|
return sqstep(
|
|
2003
|
-
|
|
2004
|
-
poolsSubtype$1(),
|
|
2005
|
-
|
|
2005
|
+
"poolsSubtype",
|
|
2006
|
+
poolsSubtype$1(updates.scope, true, updates.input),
|
|
2007
|
+
"What type of pool work?",
|
|
2006
2008
|
updates
|
|
2007
2009
|
)
|
|
2008
2010
|
}
|
|
2009
2011
|
|
|
2010
2012
|
function plumbingSubtype(updates = {}) {
|
|
2011
2013
|
return sqstep(
|
|
2012
|
-
|
|
2013
|
-
plumbingSubtype$1(),
|
|
2014
|
-
|
|
2014
|
+
"plumbingSubtype",
|
|
2015
|
+
plumbingSubtype$1(updates.scope, true, updates.input),
|
|
2016
|
+
"What plumbing job type?",
|
|
2015
2017
|
updates
|
|
2016
2018
|
)
|
|
2017
2019
|
}
|
|
2018
2020
|
|
|
2019
2021
|
function remodelingSubtype(updates = {}) {
|
|
2020
2022
|
return sqstep(
|
|
2021
|
-
|
|
2022
|
-
remodelingSubtype$1(),
|
|
2023
|
-
|
|
2023
|
+
"remodelingSubtype",
|
|
2024
|
+
remodelingSubtype$1(updates.scope, true, updates.input),
|
|
2025
|
+
"What type of remodeling work?",
|
|
2024
2026
|
updates
|
|
2025
2027
|
)
|
|
2026
2028
|
}
|
|
2027
2029
|
|
|
2028
2030
|
function roofingWorkType(updates = {}) {
|
|
2029
2031
|
return sqstep(
|
|
2030
|
-
|
|
2031
|
-
roofingWorkType$1(),
|
|
2032
|
-
|
|
2032
|
+
"roofingWorkType",
|
|
2033
|
+
roofingWorkType$1(updates.scope, true, updates.input),
|
|
2034
|
+
"What type of roofing work?",
|
|
2033
2035
|
updates
|
|
2034
2036
|
)
|
|
2035
2037
|
}
|
|
2036
2038
|
|
|
2037
2039
|
function roofingMaterial(updates = {}) {
|
|
2038
2040
|
return sqstep(
|
|
2039
|
-
|
|
2040
|
-
roofingMaterial$1(),
|
|
2041
|
-
|
|
2041
|
+
"roofingMaterial",
|
|
2042
|
+
roofingMaterial$1(updates.scope, true, updates.input),
|
|
2043
|
+
"What type of roofing material?",
|
|
2042
2044
|
updates
|
|
2043
2045
|
)
|
|
2044
2046
|
}
|
|
2045
2047
|
|
|
2046
2048
|
function sidingMaterial(updates = {}) {
|
|
2047
2049
|
return sqstep(
|
|
2048
|
-
|
|
2049
|
-
sidingMaterial$1(),
|
|
2050
|
-
|
|
2050
|
+
"sidingMaterial",
|
|
2051
|
+
sidingMaterial$1(updates.scope, true, updates.input),
|
|
2052
|
+
"What type of siding material?",
|
|
2051
2053
|
updates
|
|
2052
2054
|
)
|
|
2053
2055
|
}
|
|
2054
2056
|
|
|
2055
2057
|
function tilingSubtype(updates = {}) {
|
|
2056
2058
|
return sqstep(
|
|
2057
|
-
|
|
2058
|
-
tilingSubtype$1(),
|
|
2059
|
-
|
|
2059
|
+
"tilingSubtype",
|
|
2060
|
+
tilingSubtype$1(updates.scope, true, updates.input),
|
|
2061
|
+
"What type of tiling work?",
|
|
2060
2062
|
updates
|
|
2061
2063
|
)
|
|
2062
2064
|
}
|
|
2063
2065
|
|
|
2064
2066
|
function waterproofingSubtype(updates = {}) {
|
|
2065
2067
|
return sqstep(
|
|
2066
|
-
|
|
2067
|
-
waterproofingSubtype$1(),
|
|
2068
|
-
|
|
2068
|
+
"waterproofingSubtype",
|
|
2069
|
+
waterproofingSubtype$1(updates.scope, true, updates.input),
|
|
2070
|
+
"What type of waterproofing work?",
|
|
2069
2071
|
updates
|
|
2070
2072
|
)
|
|
2071
2073
|
}
|
|
2072
2074
|
|
|
2073
2075
|
function windowsWorkType(updates = {}) {
|
|
2074
2076
|
return sqstep(
|
|
2075
|
-
|
|
2076
|
-
windowsWorkType$1(),
|
|
2077
|
-
|
|
2077
|
+
"windowsWorkType",
|
|
2078
|
+
windowsWorkType$1(updates.scope, true, updates.input),
|
|
2079
|
+
"What type of windows work?",
|
|
2078
2080
|
updates
|
|
2079
2081
|
)
|
|
2080
2082
|
}
|
|
2081
2083
|
|
|
2082
2084
|
function windowsSubtype(updates = {}) {
|
|
2083
2085
|
return sqstep(
|
|
2084
|
-
|
|
2085
|
-
windowsSubtype$1(),
|
|
2086
|
-
|
|
2086
|
+
"windowsSubtype",
|
|
2087
|
+
windowsSubtype$1(updates.scope, true, updates.input),
|
|
2088
|
+
"What windows job type?",
|
|
2087
2089
|
updates
|
|
2088
2090
|
)
|
|
2089
2091
|
}
|
|
2090
2092
|
|
|
2091
2093
|
function numberOfWindows(updates = {}) {
|
|
2092
2094
|
return sqstep(
|
|
2093
|
-
|
|
2094
|
-
numberOfWindows$1(),
|
|
2095
|
-
|
|
2095
|
+
"numberOfWindows",
|
|
2096
|
+
numberOfWindows$1(updates.scope, true, updates.input),
|
|
2097
|
+
"How many windows?",
|
|
2096
2098
|
updates
|
|
2097
2099
|
)
|
|
2098
2100
|
}
|
|
2099
2101
|
|
|
2100
2102
|
const formNavigation = (updates = {}) => ({
|
|
2101
|
-
$el:
|
|
2103
|
+
$el: "div",
|
|
2102
2104
|
attrs: {
|
|
2103
|
-
class:
|
|
2105
|
+
class: "step-nav",
|
|
2104
2106
|
},
|
|
2105
2107
|
children: [
|
|
2106
2108
|
{
|
|
2107
|
-
$formkit:
|
|
2108
|
-
name:
|
|
2109
|
-
onClick:
|
|
2110
|
-
children:
|
|
2109
|
+
$formkit: "button",
|
|
2110
|
+
name: "back_button",
|
|
2111
|
+
onClick: "$setPreviousStep($prevStepFunc($get(form)))",
|
|
2112
|
+
children: "Back",
|
|
2111
2113
|
style: {
|
|
2112
|
-
if:
|
|
2113
|
-
then:
|
|
2114
|
-
}
|
|
2114
|
+
if: "$activeStep === $firstStep()",
|
|
2115
|
+
then: "visibility: hidden;",
|
|
2116
|
+
},
|
|
2115
2117
|
},
|
|
2116
2118
|
{
|
|
2117
|
-
$formkit:
|
|
2118
|
-
name:
|
|
2119
|
-
onClick:
|
|
2119
|
+
$formkit: "button",
|
|
2120
|
+
name: "next_button",
|
|
2121
|
+
onClick: "$setNextStep($fireStepEvent($get(form)), $preStepFunc($get(form)))",
|
|
2120
2122
|
children: {
|
|
2121
|
-
if:
|
|
2122
|
-
then:
|
|
2123
|
-
else:
|
|
2123
|
+
if: "$activeStep === $firstStep()",
|
|
2124
|
+
then: "Start",
|
|
2125
|
+
else: "Next",
|
|
2124
2126
|
},
|
|
2125
2127
|
outerClass: {
|
|
2126
|
-
if:
|
|
2127
|
-
then:
|
|
2128
|
-
else:
|
|
2128
|
+
if: "$activeStep === $lastStep()",
|
|
2129
|
+
then: "t-hidden",
|
|
2130
|
+
else: "",
|
|
2129
2131
|
},
|
|
2130
2132
|
style: {
|
|
2131
|
-
if:
|
|
2132
|
-
then:
|
|
2133
|
-
}
|
|
2133
|
+
if: "$activeStep === $lastStep()",
|
|
2134
|
+
then: "display: none;",
|
|
2135
|
+
},
|
|
2134
2136
|
},
|
|
2135
2137
|
{
|
|
2136
|
-
$formkit:
|
|
2137
|
-
name:
|
|
2138
|
-
label: updates.submitLabel ||
|
|
2139
|
-
if:
|
|
2138
|
+
$formkit: "submit",
|
|
2139
|
+
name: "submit_button",
|
|
2140
|
+
label: updates.submitLabel || "Submit",
|
|
2141
|
+
if: "$activeStep === $lastStep()",
|
|
2140
2142
|
style: {
|
|
2141
|
-
if:
|
|
2142
|
-
then:
|
|
2143
|
-
}
|
|
2144
|
-
}
|
|
2145
|
-
]
|
|
2143
|
+
if: "$activeStep !== $lastStep()",
|
|
2144
|
+
then: "display: none;",
|
|
2145
|
+
},
|
|
2146
|
+
},
|
|
2147
|
+
],
|
|
2146
2148
|
});
|
|
2147
2149
|
|
|
2148
2150
|
const formDetails = () => ({
|
|
2149
|
-
$el:
|
|
2151
|
+
$el: "pre",
|
|
2150
2152
|
if: '$urlParam("fdbg", "") == 1',
|
|
2151
2153
|
children: [
|
|
2152
2154
|
{
|
|
2153
|
-
$el:
|
|
2154
|
-
children:
|
|
2155
|
+
$el: "pre",
|
|
2156
|
+
children: "$stringify( $get(form).value )",
|
|
2155
2157
|
attrs: {
|
|
2156
|
-
class:
|
|
2157
|
-
style:
|
|
2158
|
-
}
|
|
2158
|
+
class: "t-text-xs",
|
|
2159
|
+
style: "overflow: scroll",
|
|
2160
|
+
},
|
|
2159
2161
|
},
|
|
2160
2162
|
{
|
|
2161
|
-
$el:
|
|
2162
|
-
children: [
|
|
2163
|
+
$el: "pre",
|
|
2164
|
+
children: ["activeStep: ", "$activeStep"],
|
|
2163
2165
|
attrs: {
|
|
2164
|
-
class:
|
|
2165
|
-
style:
|
|
2166
|
-
}
|
|
2166
|
+
class: "t-text-xs",
|
|
2167
|
+
style: "overflow: scroll",
|
|
2168
|
+
},
|
|
2167
2169
|
},
|
|
2168
2170
|
{
|
|
2169
|
-
$el:
|
|
2170
|
-
children: [
|
|
2171
|
+
$el: "pre",
|
|
2172
|
+
children: ["stepHistory: ", "$stepHistory"],
|
|
2171
2173
|
attrs: {
|
|
2172
|
-
class:
|
|
2173
|
-
style:
|
|
2174
|
-
}
|
|
2174
|
+
class: "t-text-xs",
|
|
2175
|
+
style: "overflow: scroll",
|
|
2176
|
+
},
|
|
2175
2177
|
},
|
|
2176
2178
|
{
|
|
2177
|
-
$el:
|
|
2178
|
-
children: [
|
|
2179
|
+
$el: "pre",
|
|
2180
|
+
children: ["stepQueue: ", "$stepQueue"],
|
|
2179
2181
|
attrs: {
|
|
2180
|
-
class:
|
|
2181
|
-
style:
|
|
2182
|
-
}
|
|
2182
|
+
class: "t-text-xs",
|
|
2183
|
+
style: "overflow: scroll",
|
|
2184
|
+
},
|
|
2183
2185
|
},
|
|
2184
2186
|
{
|
|
2185
|
-
$el:
|
|
2186
|
-
children: [
|
|
2187
|
+
$el: "pre",
|
|
2188
|
+
children: ["steps: ", "$stepKeys()"],
|
|
2187
2189
|
attrs: {
|
|
2188
|
-
class:
|
|
2189
|
-
style:
|
|
2190
|
-
}
|
|
2191
|
-
}
|
|
2192
|
-
]
|
|
2190
|
+
class: "t-text-xs",
|
|
2191
|
+
style: "overflow: scroll",
|
|
2192
|
+
},
|
|
2193
|
+
},
|
|
2194
|
+
],
|
|
2193
2195
|
});
|
|
2194
2196
|
|
|
2195
2197
|
const formPropDefaults = {
|
|
2196
|
-
type:
|
|
2197
|
-
id:
|
|
2198
|
-
config: { validationVisibility:
|
|
2198
|
+
type: "form",
|
|
2199
|
+
id: "form",
|
|
2200
|
+
config: { validationVisibility: "submit" },
|
|
2199
2201
|
onSubmit: '$submit($submitUrl, $prepData, $handleRedirect, "text/plain; charset=UTF-8")',
|
|
2200
|
-
plugins:
|
|
2202
|
+
plugins: "$plugins",
|
|
2201
2203
|
actions: false,
|
|
2202
|
-
anchorElement:
|
|
2204
|
+
anchorElement: "form-anchor",
|
|
2203
2205
|
useLocalStorage: true,
|
|
2204
2206
|
prepop: {
|
|
2205
|
-
fromURL: true
|
|
2207
|
+
fromURL: true,
|
|
2206
2208
|
},
|
|
2207
2209
|
errorCodes: {
|
|
2208
2210
|
403: { message: "An Error Occurred", abort: false },
|
|
@@ -2210,13 +2212,11 @@ const formPropDefaults = {
|
|
|
2210
2212
|
429: "An Error Occurred",
|
|
2211
2213
|
504: { message: "An Error Occurred", abort: false },
|
|
2212
2214
|
},
|
|
2213
|
-
formClass:
|
|
2215
|
+
formClass: "!t-max-w-[40rem]",
|
|
2214
2216
|
};
|
|
2215
2217
|
|
|
2216
2218
|
function filterMapByKey(obj, keyList) {
|
|
2217
|
-
return Object.fromEntries(
|
|
2218
|
-
Object.entries(obj).filter(([key]) => keyList.includes(key))
|
|
2219
|
-
);
|
|
2219
|
+
return Object.fromEntries(Object.entries(obj).filter(([key]) => keyList.includes(key)))
|
|
2220
2220
|
}
|
|
2221
2221
|
|
|
2222
2222
|
// export function filteredNextStepsMapLegal(keyList) {
|
|
@@ -2226,10 +2226,7 @@ function filterMapByKey(obj, keyList) {
|
|
|
2226
2226
|
// }
|
|
2227
2227
|
|
|
2228
2228
|
function formProps(updates) {
|
|
2229
|
-
const props = merge(
|
|
2230
|
-
formPropDefaults,
|
|
2231
|
-
updates
|
|
2232
|
-
);
|
|
2229
|
+
const props = merge(formPropDefaults, updates);
|
|
2233
2230
|
if (props.formId && !props.name) {
|
|
2234
2231
|
props.name = props.formId;
|
|
2235
2232
|
}
|
|
@@ -2239,13 +2236,10 @@ function formProps(updates) {
|
|
|
2239
2236
|
const metaDefaults = {};
|
|
2240
2237
|
|
|
2241
2238
|
function metaProps(updates) {
|
|
2242
|
-
const data = merge(
|
|
2243
|
-
metaDefaults,
|
|
2244
|
-
updates
|
|
2245
|
-
);
|
|
2239
|
+
const data = merge(metaDefaults, updates);
|
|
2246
2240
|
return {
|
|
2247
|
-
type:
|
|
2248
|
-
data
|
|
2241
|
+
type: "meta",
|
|
2242
|
+
data,
|
|
2249
2243
|
}
|
|
2250
2244
|
}
|
|
2251
2245
|
|
|
@@ -2265,236 +2259,289 @@ function defaultMetaPropsHomeImprovement(category = null) {
|
|
|
2265
2259
|
defaultFinalHeadline: DEFAULT_FINAL_HEADLINE_HOME_IMPROVEMENT,
|
|
2266
2260
|
finalHeadlines: finalHeadlines,
|
|
2267
2261
|
defaultFinalSubHeadline: DEFAULT_FINAL_SUBHEADLINE_HOME_IMPROVEMENT,
|
|
2268
|
-
finalSubHeadlines: finalSubHeadlines
|
|
2262
|
+
finalSubHeadlines: finalSubHeadlines,
|
|
2269
2263
|
})
|
|
2270
2264
|
}
|
|
2271
2265
|
|
|
2272
|
-
function
|
|
2266
|
+
function defaultMetaPropsHomeImprovementGeneral(defaultSteps = nextStepsHomeImprovementDefault) {
|
|
2267
|
+
const meta = defaultMetaPropsHomeImprovement();
|
|
2268
|
+
meta.data.dynamicSchema = [
|
|
2269
|
+
zipcode(),
|
|
2270
|
+
timeframe(),
|
|
2271
|
+
ownHome(),
|
|
2272
|
+
address(),
|
|
2273
|
+
homeImprovementWorkType(),
|
|
2274
|
+
additionsSubType(),
|
|
2275
|
+
constructionAreaSize(),
|
|
2276
|
+
applianceType(),
|
|
2277
|
+
cabinetWorkType(),
|
|
2278
|
+
carpentrySubtype(),
|
|
2279
|
+
carpetWorkType(),
|
|
2280
|
+
cleaningSubtype(),
|
|
2281
|
+
countertopMaterial(),
|
|
2282
|
+
deckWorkType(),
|
|
2283
|
+
demolitionSubtype(),
|
|
2284
|
+
doorSubtype(),
|
|
2285
|
+
drivewayWorkType(),
|
|
2286
|
+
drivewayMaterial(),
|
|
2287
|
+
wallSurfaceType(),
|
|
2288
|
+
electricalSubtype(),
|
|
2289
|
+
fenceMaterial(),
|
|
2290
|
+
flooringMaterial(),
|
|
2291
|
+
generalContractorSubtype(),
|
|
2292
|
+
gutterMaterial(),
|
|
2293
|
+
gutterWorkType(),
|
|
2294
|
+
smartHomeSubtype(),
|
|
2295
|
+
homeOrganizationSubtype(),
|
|
2296
|
+
numberOfRooms(),
|
|
2297
|
+
homeTheaterSubtype(),
|
|
2298
|
+
heatingCoolingSubtype(),
|
|
2299
|
+
fuelSource(),
|
|
2300
|
+
insulationSubtype(),
|
|
2301
|
+
landscapingSubtype(),
|
|
2302
|
+
masonrySubtype(),
|
|
2303
|
+
masonryMaterial(),
|
|
2304
|
+
masonryWorkType(),
|
|
2305
|
+
restorationSubtype(),
|
|
2306
|
+
// Moving not finished yet
|
|
2307
|
+
// steps.movingFromAddress(),
|
|
2308
|
+
// steps.movingToAddress(),
|
|
2309
|
+
// steps.movingHouseholdSize(),
|
|
2310
|
+
paintingSubtype({
|
|
2311
|
+
nextStepMap: nextStepsMapPainting(defaultSteps),
|
|
2312
|
+
}),
|
|
2313
|
+
paintingRooms(),
|
|
2314
|
+
pestControlSubtype(),
|
|
2315
|
+
poolsWorkType(),
|
|
2316
|
+
poolsSubtype(),
|
|
2317
|
+
plumbingSubtype(),
|
|
2318
|
+
remodelingSubtype(),
|
|
2319
|
+
roofingWorkType(),
|
|
2320
|
+
roofingMaterial(),
|
|
2321
|
+
sidingMaterial(),
|
|
2322
|
+
tilingSubtype(),
|
|
2323
|
+
waterproofingSubtype(),
|
|
2324
|
+
windowsWorkType(),
|
|
2325
|
+
windowsSubtype(),
|
|
2326
|
+
numberOfWindows(),
|
|
2327
|
+
commentsHeadline({
|
|
2328
|
+
label: null,
|
|
2329
|
+
headline: "Please briefly describe your project:",
|
|
2330
|
+
headlineClass: "!t-text-dark",
|
|
2331
|
+
}),
|
|
2332
|
+
firstAndLastV3({
|
|
2333
|
+
headlineClass: "!t-text-dark",
|
|
2334
|
+
}),
|
|
2335
|
+
];
|
|
2336
|
+
return meta
|
|
2337
|
+
}
|
|
2338
|
+
|
|
2339
|
+
function dynamicSchemaNode(field = "Type_Of_Legal_Problem") {
|
|
2273
2340
|
return {
|
|
2274
|
-
$cmp:
|
|
2275
|
-
if:
|
|
2341
|
+
$cmp: "FormKitSchema",
|
|
2342
|
+
if: "$get(" + field + ").value",
|
|
2276
2343
|
props: {
|
|
2277
|
-
schema:
|
|
2278
|
-
data:
|
|
2279
|
-
}
|
|
2344
|
+
schema: "$meta.dynamicSchema",
|
|
2345
|
+
data: "$buildData($meta)",
|
|
2346
|
+
},
|
|
2280
2347
|
}
|
|
2281
2348
|
}
|
|
2282
2349
|
|
|
2283
2350
|
const formAnchorDefaults = {
|
|
2284
|
-
$el:
|
|
2351
|
+
$el: "div",
|
|
2285
2352
|
children: [
|
|
2286
2353
|
{
|
|
2287
|
-
$el:
|
|
2354
|
+
$el: "div",
|
|
2288
2355
|
attrs: {
|
|
2289
|
-
id:
|
|
2290
|
-
class:
|
|
2291
|
-
style: { top:
|
|
2292
|
-
}
|
|
2293
|
-
}
|
|
2356
|
+
id: "form-anchor",
|
|
2357
|
+
class: "t-absolute",
|
|
2358
|
+
style: { top: "-30px", left: 0 },
|
|
2359
|
+
},
|
|
2360
|
+
},
|
|
2294
2361
|
],
|
|
2295
2362
|
attrs: {
|
|
2296
|
-
class:
|
|
2297
|
-
}
|
|
2363
|
+
class: "t-relative",
|
|
2364
|
+
},
|
|
2298
2365
|
};
|
|
2299
2366
|
|
|
2300
2367
|
function formAnchor(updates) {
|
|
2301
|
-
return merge(
|
|
2302
|
-
formAnchorDefaults,
|
|
2303
|
-
updates
|
|
2304
|
-
)
|
|
2368
|
+
return merge(formAnchorDefaults, updates)
|
|
2305
2369
|
}
|
|
2306
2370
|
|
|
2307
2371
|
const progressBarDefaults = {
|
|
2308
|
-
$el:
|
|
2372
|
+
$el: "div",
|
|
2309
2373
|
attrs: {
|
|
2310
|
-
class:
|
|
2374
|
+
class: "t-mt-7 t-mb-5 t-w-full t-flex t-flex-col t-justify-center t-items-center",
|
|
2311
2375
|
style: {
|
|
2312
|
-
if:
|
|
2313
|
-
then:
|
|
2376
|
+
if: "$fns.eq($activeStep, $firstStep()) || $fns.eq($activeStep, $lastStep())",
|
|
2377
|
+
then: "display: none",
|
|
2314
2378
|
},
|
|
2315
2379
|
},
|
|
2316
2380
|
children: [
|
|
2317
2381
|
{
|
|
2318
|
-
$el:
|
|
2382
|
+
$el: "div",
|
|
2319
2383
|
attrs: {
|
|
2320
|
-
class:
|
|
2384
|
+
class: "t-flex t-justify-center",
|
|
2321
2385
|
},
|
|
2322
2386
|
children: [
|
|
2323
2387
|
{
|
|
2324
|
-
$el:
|
|
2388
|
+
$el: "span",
|
|
2325
2389
|
attrs: {
|
|
2326
|
-
id:
|
|
2327
|
-
class:
|
|
2390
|
+
id: "progress-bar-text",
|
|
2391
|
+
class: "t-text-sm t-mb-1",
|
|
2328
2392
|
},
|
|
2329
|
-
children: [
|
|
2330
|
-
"0% Complete"
|
|
2331
|
-
]
|
|
2393
|
+
children: ["0% Complete"],
|
|
2332
2394
|
},
|
|
2333
|
-
]
|
|
2395
|
+
],
|
|
2334
2396
|
},
|
|
2335
2397
|
{
|
|
2336
|
-
$el:
|
|
2398
|
+
$el: "div",
|
|
2337
2399
|
attrs: {
|
|
2338
|
-
class:
|
|
2400
|
+
class: "t-bg-gray-100 t-w-9/12 t-rounded",
|
|
2339
2401
|
},
|
|
2340
2402
|
children: [
|
|
2341
2403
|
{
|
|
2342
|
-
$el:
|
|
2404
|
+
$el: "div",
|
|
2343
2405
|
attrs: {
|
|
2344
|
-
id:
|
|
2345
|
-
class:
|
|
2406
|
+
id: "progress-bar",
|
|
2407
|
+
class:
|
|
2408
|
+
"t-flex t-flex-col t-justify-center t-text-center t-whitespace-nowrap t-w-[10%] t-h-1.5 t-rounded t-text-white t-bg-[#007bff]",
|
|
2346
2409
|
style: {
|
|
2347
|
-
transition:
|
|
2410
|
+
transition: "width 0.5s ease",
|
|
2348
2411
|
},
|
|
2349
2412
|
},
|
|
2350
|
-
}
|
|
2351
|
-
]
|
|
2352
|
-
}
|
|
2353
|
-
]
|
|
2413
|
+
},
|
|
2414
|
+
],
|
|
2415
|
+
},
|
|
2416
|
+
],
|
|
2354
2417
|
};
|
|
2355
2418
|
|
|
2356
2419
|
function progressBar(updates) {
|
|
2357
|
-
return merge(
|
|
2358
|
-
progressBarDefaults,
|
|
2359
|
-
updates
|
|
2360
|
-
)
|
|
2420
|
+
return merge(progressBarDefaults, updates)
|
|
2361
2421
|
}
|
|
2362
2422
|
|
|
2363
2423
|
function headlineDefaults(updates = {}) {
|
|
2364
2424
|
return {
|
|
2365
|
-
$el:
|
|
2425
|
+
$el: "h1",
|
|
2366
2426
|
attrs: {
|
|
2367
|
-
class:
|
|
2368
|
-
|
|
2427
|
+
class:
|
|
2428
|
+
"t-flex t-justify-center t-text-center !t-text-[2rem] t-font-semibold t-pt-5 t-px-7 md:t-px-3" +
|
|
2429
|
+
" " +
|
|
2430
|
+
(updates.headlineClass || ""),
|
|
2431
|
+
},
|
|
2369
2432
|
}
|
|
2370
2433
|
}
|
|
2371
2434
|
|
|
2372
2435
|
function headline(updates = {}) {
|
|
2373
|
-
return merge(
|
|
2374
|
-
headlineDefaults(updates),
|
|
2375
|
-
updates
|
|
2376
|
-
)
|
|
2436
|
+
return merge(headlineDefaults(updates), updates)
|
|
2377
2437
|
}
|
|
2378
2438
|
|
|
2379
2439
|
function subHeadlineDefaults(updates = {}) {
|
|
2380
2440
|
return {
|
|
2381
|
-
$el:
|
|
2441
|
+
$el: "h3",
|
|
2382
2442
|
attrs: {
|
|
2383
|
-
class:
|
|
2384
|
-
|
|
2443
|
+
class:
|
|
2444
|
+
"t-flex t-justify-center t-text-center !t-text-[1.2rem] t-font-medium t-text-blue-500 t-px-10" +
|
|
2445
|
+
" " +
|
|
2446
|
+
(updates.subheadlineClass || ""),
|
|
2447
|
+
},
|
|
2385
2448
|
}
|
|
2386
2449
|
}
|
|
2387
2450
|
|
|
2388
2451
|
function subHeadline(updates = {}) {
|
|
2389
|
-
return merge(
|
|
2390
|
-
subHeadlineDefaults(updates),
|
|
2391
|
-
updates
|
|
2392
|
-
)
|
|
2452
|
+
return merge(subHeadlineDefaults(updates), updates)
|
|
2393
2453
|
}
|
|
2394
2454
|
|
|
2395
2455
|
const hiddenInputsBase = [
|
|
2396
2456
|
{
|
|
2397
|
-
$formkit:
|
|
2457
|
+
$formkit: "hidden",
|
|
2398
2458
|
name: "gclid",
|
|
2399
|
-
value: null
|
|
2459
|
+
value: null,
|
|
2400
2460
|
},
|
|
2401
2461
|
{
|
|
2402
|
-
$formkit:
|
|
2462
|
+
$formkit: "hidden",
|
|
2403
2463
|
name: "campaignid",
|
|
2404
|
-
value: null
|
|
2464
|
+
value: null,
|
|
2405
2465
|
},
|
|
2406
2466
|
{
|
|
2407
|
-
$formkit:
|
|
2467
|
+
$formkit: "hidden",
|
|
2408
2468
|
name: "s",
|
|
2409
|
-
value: null
|
|
2410
|
-
}
|
|
2469
|
+
value: null,
|
|
2470
|
+
},
|
|
2411
2471
|
];
|
|
2412
2472
|
|
|
2413
2473
|
const hiddenInputsHomeImprovement = [
|
|
2414
2474
|
{
|
|
2415
|
-
$formkit:
|
|
2475
|
+
$formkit: "hidden",
|
|
2416
2476
|
name: "vertical",
|
|
2417
|
-
value: "HomeImprovement"
|
|
2477
|
+
value: "HomeImprovement",
|
|
2418
2478
|
},
|
|
2419
2479
|
{
|
|
2420
|
-
$formkit:
|
|
2480
|
+
$formkit: "hidden",
|
|
2421
2481
|
name: "TCPA_Language",
|
|
2422
|
-
value: "$meta.tcpaLanguage"
|
|
2482
|
+
value: "$meta.tcpaLanguage",
|
|
2423
2483
|
},
|
|
2424
|
-
...hiddenInputsBase
|
|
2484
|
+
...hiddenInputsBase,
|
|
2425
2485
|
];
|
|
2426
2486
|
|
|
2427
|
-
const homeImprovementRedirectMapDefaults = {
|
|
2428
|
-
'*': HomeImprovementRedirectUrl()
|
|
2429
|
-
};
|
|
2430
|
-
|
|
2431
|
-
|
|
2432
|
-
function homeImprovementRedirectMap(updates) {
|
|
2433
|
-
return merge(
|
|
2434
|
-
homeImprovementRedirectMapDefaults,
|
|
2435
|
-
updates
|
|
2436
|
-
)
|
|
2437
|
-
}
|
|
2438
|
-
|
|
2439
|
-
|
|
2440
2487
|
// ------ Home Improvement
|
|
2441
2488
|
|
|
2442
|
-
|
|
2443
2489
|
const HomeImprovementCommentsPlaceholders = {
|
|
2444
|
-
|
|
2445
|
-
|
|
2446
|
-
|
|
2447
|
-
|
|
2448
|
-
|
|
2449
|
-
|
|
2450
|
-
|
|
2451
|
-
|
|
2452
|
-
|
|
2453
|
-
|
|
2454
|
-
|
|
2455
|
-
|
|
2456
|
-
|
|
2457
|
-
|
|
2458
|
-
|
|
2459
|
-
|
|
2460
|
-
|
|
2461
|
-
|
|
2462
|
-
|
|
2463
|
-
|
|
2464
|
-
|
|
2465
|
-
|
|
2466
|
-
|
|
2467
|
-
|
|
2468
|
-
|
|
2469
|
-
|
|
2470
|
-
|
|
2471
|
-
|
|
2472
|
-
|
|
2473
|
-
|
|
2474
|
-
|
|
2475
|
-
|
|
2476
|
-
|
|
2477
|
-
|
|
2478
|
-
|
|
2479
|
-
|
|
2480
|
-
|
|
2481
|
-
|
|
2482
|
-
|
|
2483
|
-
|
|
2484
|
-
|
|
2485
|
-
|
|
2486
|
-
|
|
2487
|
-
|
|
2488
|
-
|
|
2489
|
-
|
|
2490
|
-
|
|
2491
|
-
|
|
2492
|
-
|
|
2493
|
-
|
|
2494
|
-
|
|
2495
|
-
|
|
2496
|
-
|
|
2497
|
-
|
|
2490
|
+
Additions: 'Example: "I would like to add a sunroom to my home"',
|
|
2491
|
+
Appliances: 'Example: "I need to repair a dishwasher"',
|
|
2492
|
+
Appraisals: 'Example: "I need to get my home appraised"',
|
|
2493
|
+
Cabinets: 'Example: "I want to install new kitchen cabinets"',
|
|
2494
|
+
Carpentry: 'Example: "I need someone to build custom shelves"',
|
|
2495
|
+
Carpets: 'Example: "I want to replace the carpets in my living room"',
|
|
2496
|
+
Cleaning: 'Example: "I need a professional cleaning service for my home"',
|
|
2497
|
+
Countertops: 'Example: "I want to install granite countertops in my kitchen"',
|
|
2498
|
+
"Decks and Porches": 'Example: "I want to build a new deck in my backyard"',
|
|
2499
|
+
Demolition: 'Example: "I need to demolish a wall in my home"',
|
|
2500
|
+
Doors: 'Example: "I want to replace the front door of my house"',
|
|
2501
|
+
Driveways: 'Example: "I need to repair my driveway"',
|
|
2502
|
+
"Drywall and Plaster": 'Example: "I need to repair a hole in my drywall"',
|
|
2503
|
+
Electrical: 'Example: "I need an electrician to install new light fixtures"',
|
|
2504
|
+
Fencing: 'Example: "I want to install a privacy fence in my backyard"',
|
|
2505
|
+
Flooring: 'Example: "I want to install hardwood flooring in my living room"',
|
|
2506
|
+
Foundations: 'Example: "I need to repair the foundation of my house"',
|
|
2507
|
+
"Garage Doors": 'Example: "I want to replace my garage door"',
|
|
2508
|
+
"General Contractors": 'Example: "I need a general contractor for a home renovation"',
|
|
2509
|
+
Gutters: 'Example: "I need to clean and repair my gutters"',
|
|
2510
|
+
Handyman: 'Example: "I need a handyman to fix various things around my house"',
|
|
2511
|
+
"Holiday Decorators": 'Example: "I want to hire someone to decorate my home for the holidays"',
|
|
2512
|
+
"Smart Home": 'Example: "I want to install a smart home automation system"',
|
|
2513
|
+
"Home Builders": 'Example: "I want to build a custom home"',
|
|
2514
|
+
"Home Inspection": 'Example: "I need a home inspection before buying a house"',
|
|
2515
|
+
"Home Organization": 'Example: "I need help organizing my closets and storage"',
|
|
2516
|
+
"Home Security": 'Example: "I want to install a home security system"',
|
|
2517
|
+
"Home Staging": 'Example: "I need a home staging service to prepare my house for sale"',
|
|
2518
|
+
"Home Theater": 'Example: "I want to set up a home theater system"',
|
|
2519
|
+
"Home Warranties": 'Example: "I want to purchase a home warranty"',
|
|
2520
|
+
"Hot Tubs": 'Example: "I want to install a hot tub in my backyard"',
|
|
2521
|
+
"Heating and Cooling": 'Example: "I need to repair my air conditioning unit"',
|
|
2522
|
+
Insulation: 'Example: "I want to improve the insulation in my home"',
|
|
2523
|
+
"Junk Removal": 'Example: "I need a service to remove junk and debris from my property"',
|
|
2524
|
+
Landscaping: 'Example: "I want to redesign my backyard landscaping"',
|
|
2525
|
+
Locksmiths: 'Example: "I need a locksmith to change the locks on my doors"',
|
|
2526
|
+
"Masonry and Concrete": 'Example: "I need to repair a cracked concrete driveway"',
|
|
2527
|
+
Restoration: 'Example: "I need water damage restoration services"',
|
|
2528
|
+
Moving: 'Example: "I need a moving company to help me relocate"',
|
|
2529
|
+
Painting: 'Example: "I want to paint the interior walls of my house"',
|
|
2530
|
+
"Pest Control": 'Example: "I need pest control services for my home"',
|
|
2531
|
+
Pools: 'Example: "I want to install a swimming pool in my backyard"',
|
|
2532
|
+
Plumbing: 'Example: "I need a plumber to fix a leaky faucet"',
|
|
2533
|
+
"Pressure Washing": 'Example: "I want to pressure wash the exterior of my house"',
|
|
2534
|
+
Remodeling: 'Example: "I want to remodel my kitchen"',
|
|
2535
|
+
Roofing: 'Example: "I need to repair a leaky roof"',
|
|
2536
|
+
Sheds: 'Example: "I want to build a storage shed in my backyard"',
|
|
2537
|
+
Siding: 'Example: "I want to replace the siding on my house"',
|
|
2538
|
+
Solar: 'Example: "I want to install solar panels on my roof"',
|
|
2539
|
+
Tiling: 'Example: "I want to install new tiles in my bathroom"',
|
|
2540
|
+
"Walk-in Tubs": 'Example: "I want to install a walk-in tub in my bathroom"',
|
|
2541
|
+
Waterproofing: 'Example: "I need to waterproof my basement"',
|
|
2542
|
+
"Window Cleaning": 'Example: "I need a professional window cleaning service"',
|
|
2543
|
+
Windows: 'Example: "I want to replace 3 windows in my house"',
|
|
2544
|
+
"Not Sure or Other": 'Example: "I need general handyman services"',
|
|
2498
2545
|
};
|
|
2499
2546
|
|
|
2500
2547
|
const HomeImprovementFinalHeadlines = {
|
|
@@ -2612,409 +2659,149 @@ const HomeImprovementFinalSubHeadlines = {
|
|
|
2612
2659
|
};
|
|
2613
2660
|
|
|
2614
2661
|
const nextStepsHomeImprovementDefault = [
|
|
2615
|
-
|
|
2616
|
-
|
|
2617
|
-
|
|
2618
|
-
|
|
2619
|
-
|
|
2620
|
-
|
|
2621
|
-
|
|
2622
|
-
|
|
2662
|
+
"comments",
|
|
2663
|
+
"timeframe",
|
|
2664
|
+
"ownHome",
|
|
2665
|
+
"zipcode",
|
|
2666
|
+
"address",
|
|
2667
|
+
"homeImprovementCrossSells",
|
|
2668
|
+
"firstAndLast",
|
|
2669
|
+
"contactInfo",
|
|
2623
2670
|
];
|
|
2624
2671
|
|
|
2625
|
-
const nextStepsMapGeneralHomeImprovement = {
|
|
2626
|
-
|
|
2627
|
-
|
|
2628
|
-
|
|
2629
|
-
|
|
2630
|
-
|
|
2631
|
-
...
|
|
2632
|
-
|
|
2633
|
-
|
|
2634
|
-
|
|
2635
|
-
|
|
2636
|
-
...
|
|
2637
|
-
|
|
2638
|
-
|
|
2639
|
-
...
|
|
2640
|
-
|
|
2641
|
-
|
|
2642
|
-
|
|
2643
|
-
...
|
|
2644
|
-
|
|
2645
|
-
|
|
2646
|
-
|
|
2647
|
-
|
|
2648
|
-
...
|
|
2649
|
-
|
|
2650
|
-
|
|
2651
|
-
|
|
2652
|
-
...
|
|
2653
|
-
|
|
2654
|
-
|
|
2655
|
-
|
|
2656
|
-
...
|
|
2657
|
-
|
|
2658
|
-
|
|
2659
|
-
|
|
2660
|
-
|
|
2661
|
-
...
|
|
2662
|
-
|
|
2663
|
-
|
|
2664
|
-
|
|
2665
|
-
...
|
|
2666
|
-
|
|
2667
|
-
|
|
2668
|
-
|
|
2669
|
-
...
|
|
2670
|
-
|
|
2671
|
-
|
|
2672
|
-
|
|
2673
|
-
|
|
2674
|
-
...
|
|
2675
|
-
|
|
2676
|
-
|
|
2677
|
-
|
|
2678
|
-
|
|
2679
|
-
...
|
|
2680
|
-
|
|
2681
|
-
|
|
2682
|
-
|
|
2683
|
-
|
|
2684
|
-
|
|
2685
|
-
|
|
2686
|
-
'Electrical': [
|
|
2687
|
-
'electricalSubtype',
|
|
2688
|
-
'homeImprovementWorkType',
|
|
2689
|
-
...nextStepsHomeImprovementDefault
|
|
2690
|
-
],
|
|
2691
|
-
'Fencing': [
|
|
2692
|
-
'fenceMaterial',
|
|
2693
|
-
'homeImprovementWorkType',
|
|
2694
|
-
...nextStepsHomeImprovementDefault
|
|
2695
|
-
],
|
|
2696
|
-
'Flooring': [
|
|
2697
|
-
'flooringMaterial',
|
|
2698
|
-
'homeImprovementWorkType',
|
|
2699
|
-
...nextStepsHomeImprovementDefault
|
|
2700
|
-
],
|
|
2701
|
-
'Foundations': [
|
|
2702
|
-
'homeImprovementWorkType',
|
|
2703
|
-
...nextStepsHomeImprovementDefault
|
|
2704
|
-
],
|
|
2705
|
-
'Garage Doors': [
|
|
2706
|
-
'homeImprovementWorkType',
|
|
2707
|
-
...nextStepsHomeImprovementDefault
|
|
2708
|
-
],
|
|
2709
|
-
'General Contractors': [
|
|
2710
|
-
'generalContractorSubtype',
|
|
2711
|
-
...nextStepsHomeImprovementDefault
|
|
2712
|
-
],
|
|
2713
|
-
'Gutters': [
|
|
2714
|
-
'gutterMaterial',
|
|
2715
|
-
'guttersWorkType',
|
|
2716
|
-
...nextStepsHomeImprovementDefault
|
|
2717
|
-
],
|
|
2718
|
-
'Handyman': [
|
|
2719
|
-
...nextStepsHomeImprovementDefault
|
|
2720
|
-
],
|
|
2721
|
-
'Holiday Decorators': [
|
|
2722
|
-
...nextStepsHomeImprovementDefault
|
|
2723
|
-
],
|
|
2724
|
-
'Smart Home': [
|
|
2725
|
-
'smartHomeSubtype',
|
|
2726
|
-
...nextStepsHomeImprovementDefault
|
|
2727
|
-
],
|
|
2728
|
-
'Home Builders': [
|
|
2729
|
-
...nextStepsHomeImprovementDefault
|
|
2730
|
-
],
|
|
2731
|
-
'Home Inspection': [
|
|
2732
|
-
...nextStepsHomeImprovementDefault
|
|
2733
|
-
],
|
|
2734
|
-
'Home Organization': [
|
|
2735
|
-
'homeOrganizationSubtype',
|
|
2736
|
-
...nextStepsHomeImprovementDefault
|
|
2737
|
-
],
|
|
2738
|
-
'Home Security': [
|
|
2739
|
-
...nextStepsHomeImprovementDefault
|
|
2740
|
-
],
|
|
2741
|
-
'Home Staging': [
|
|
2742
|
-
'numberOfRooms',
|
|
2743
|
-
...nextStepsHomeImprovementDefault
|
|
2744
|
-
],
|
|
2745
|
-
'Home Theater': [
|
|
2746
|
-
'homeTheaterSubtype',
|
|
2747
|
-
...nextStepsHomeImprovementDefault
|
|
2748
|
-
],
|
|
2749
|
-
'Home Warranties': [
|
|
2750
|
-
...nextStepsHomeImprovementDefault
|
|
2751
|
-
],
|
|
2752
|
-
'Hot Tubs': [
|
|
2753
|
-
'homeImprovementWorkType',
|
|
2754
|
-
...nextStepsHomeImprovementDefault
|
|
2755
|
-
],
|
|
2756
|
-
'Heating and Cooling': [
|
|
2757
|
-
'heatingCoolingSubtype',
|
|
2758
|
-
'fuelSource',
|
|
2759
|
-
'homeImprovementWorkType',
|
|
2760
|
-
...nextStepsHomeImprovementDefault
|
|
2761
|
-
],
|
|
2762
|
-
'Insulation': [
|
|
2763
|
-
'insulationSubtype',
|
|
2764
|
-
...nextStepsHomeImprovementDefault
|
|
2765
|
-
],
|
|
2766
|
-
'Junk Removal': [
|
|
2767
|
-
...nextStepsHomeImprovementDefault
|
|
2768
|
-
],
|
|
2769
|
-
'Landscaping': [
|
|
2770
|
-
'landscapingSubtype',
|
|
2771
|
-
'homeImprovementWorkType',
|
|
2772
|
-
...nextStepsHomeImprovementDefault
|
|
2773
|
-
],
|
|
2774
|
-
'Locksmiths': [
|
|
2775
|
-
...nextStepsHomeImprovementDefault
|
|
2776
|
-
],
|
|
2777
|
-
'Masonry and Concrete': [
|
|
2778
|
-
'masonrySubtype',
|
|
2779
|
-
'masonryMaterial',
|
|
2780
|
-
'masonryWorkType',
|
|
2781
|
-
...nextStepsHomeImprovementDefault
|
|
2782
|
-
],
|
|
2783
|
-
'Restoration': [
|
|
2784
|
-
'restorationSubtype',
|
|
2785
|
-
...nextStepsHomeImprovementDefault
|
|
2786
|
-
],
|
|
2787
|
-
'Moving': [
|
|
2788
|
-
'movingFromAddress',
|
|
2789
|
-
'movingToAddress',
|
|
2790
|
-
'movingHouseholdSize',
|
|
2791
|
-
...nextStepsHomeImprovementDefault
|
|
2792
|
-
],
|
|
2793
|
-
'Painting': [
|
|
2794
|
-
'paintingSubtype',
|
|
2795
|
-
'paintingRooms',
|
|
2796
|
-
...nextStepsHomeImprovementDefault
|
|
2797
|
-
],
|
|
2798
|
-
'Pest Control': [
|
|
2799
|
-
'pestControlSubtype',
|
|
2800
|
-
...nextStepsHomeImprovementDefault
|
|
2801
|
-
],
|
|
2802
|
-
'Pools': [
|
|
2803
|
-
'poolsWorkType',
|
|
2804
|
-
'poolsSubtype',
|
|
2805
|
-
...nextStepsHomeImprovementDefault
|
|
2806
|
-
],
|
|
2807
|
-
'Plumbing': [
|
|
2808
|
-
'plumbingSubtype',
|
|
2809
|
-
'homeImprovementWorkType',
|
|
2810
|
-
...nextStepsHomeImprovementDefault
|
|
2811
|
-
],
|
|
2812
|
-
'Pressure Washing': [
|
|
2813
|
-
...nextStepsHomeImprovementDefault
|
|
2814
|
-
],
|
|
2815
|
-
'Remodeling': [
|
|
2816
|
-
'remodelingSubtype',
|
|
2817
|
-
...nextStepsHomeImprovementDefault
|
|
2818
|
-
],
|
|
2819
|
-
'Roofing': [
|
|
2820
|
-
'roofingWorkType',
|
|
2821
|
-
'roofingMaterial',
|
|
2822
|
-
...nextStepsHomeImprovementDefault
|
|
2823
|
-
],
|
|
2824
|
-
'Sheds': [
|
|
2825
|
-
'homeImprovementWorkType',
|
|
2826
|
-
...nextStepsHomeImprovementDefault
|
|
2827
|
-
],
|
|
2828
|
-
'Siding': [
|
|
2829
|
-
'sidingMaterial',
|
|
2830
|
-
'homeImprovementWorkType',
|
|
2831
|
-
...nextStepsHomeImprovementDefault
|
|
2832
|
-
],
|
|
2833
|
-
'Solar': [
|
|
2834
|
-
'homeImprovementWorkType',
|
|
2835
|
-
...nextStepsHomeImprovementDefault
|
|
2836
|
-
],
|
|
2837
|
-
'Tiling': [
|
|
2838
|
-
'tilingSubtype',
|
|
2839
|
-
'homeImprovementWorkType',
|
|
2840
|
-
...nextStepsHomeImprovementDefault
|
|
2841
|
-
],
|
|
2842
|
-
'Walk-in Tubs': [
|
|
2843
|
-
...nextStepsHomeImprovementDefault
|
|
2844
|
-
],
|
|
2845
|
-
'Waterproofing': [
|
|
2846
|
-
'waterproofingSubtype',
|
|
2847
|
-
...nextStepsHomeImprovementDefault
|
|
2848
|
-
],
|
|
2849
|
-
'Window Cleaning': [
|
|
2850
|
-
...nextStepsHomeImprovementDefault
|
|
2851
|
-
],
|
|
2852
|
-
'Windows': [
|
|
2853
|
-
'windowsWorkType',
|
|
2854
|
-
'windowsSubtype',
|
|
2855
|
-
'numberOfWindows',
|
|
2856
|
-
...nextStepsHomeImprovementDefault
|
|
2857
|
-
]
|
|
2672
|
+
const nextStepsMapGeneralHomeImprovement = (defaultSteps = nextStepsHomeImprovementDefault) => {
|
|
2673
|
+
return {
|
|
2674
|
+
values: {
|
|
2675
|
+
Category: {
|
|
2676
|
+
Additions: ["additionsSubType", "constructionAreaSize", ...defaultSteps],
|
|
2677
|
+
Appliances: ["applianceType", "homeImprovementWorkType", ...defaultSteps],
|
|
2678
|
+
Appraisals: [...defaultSteps],
|
|
2679
|
+
Cabinets: ["cabinetWorkType", ...defaultSteps],
|
|
2680
|
+
Carpentry: ["carpentrySubtype", "homeImprovementWorkType", ...defaultSteps],
|
|
2681
|
+
Carpets: ["carpetWorkType", ...defaultSteps],
|
|
2682
|
+
Cleaning: ["cleaningSubtype", ...defaultSteps],
|
|
2683
|
+
Countertops: ["countertopMaterial", "homeImprovementWorkType", ...defaultSteps],
|
|
2684
|
+
"Decks and Porches": ["deckWorkType", ...defaultSteps],
|
|
2685
|
+
Demolition: ["demolitionSubtype", ...defaultSteps],
|
|
2686
|
+
Doors: ["doorSubtype", "homeImprovementWorkType", ...defaultSteps],
|
|
2687
|
+
Driveways: ["drivewayWorkType", "drivewayMaterial", ...defaultSteps],
|
|
2688
|
+
"Drywall and Plaster": ["wallSurfaceType", "homeImprovementWorkType", ...defaultSteps],
|
|
2689
|
+
Electrical: ["electricalSubtype", "homeImprovementWorkType", ...defaultSteps],
|
|
2690
|
+
Fencing: ["fenceMaterial", "homeImprovementWorkType", ...defaultSteps],
|
|
2691
|
+
Flooring: ["flooringMaterial", "homeImprovementWorkType", ...defaultSteps],
|
|
2692
|
+
Foundations: ["homeImprovementWorkType", ...defaultSteps],
|
|
2693
|
+
"Garage Doors": ["homeImprovementWorkType", ...defaultSteps],
|
|
2694
|
+
"General Contractors": ["generalContractorSubtype", ...defaultSteps],
|
|
2695
|
+
Gutters: ["gutterMaterial", "gutterWorkType", ...defaultSteps],
|
|
2696
|
+
Handyman: [...defaultSteps],
|
|
2697
|
+
"Holiday Decorators": [...defaultSteps],
|
|
2698
|
+
"Smart Home": ["smartHomeSubtype", ...defaultSteps],
|
|
2699
|
+
"Home Builders": [...defaultSteps],
|
|
2700
|
+
"Home Inspection": [...defaultSteps],
|
|
2701
|
+
"Home Organization": ["homeOrganizationSubtype", ...defaultSteps],
|
|
2702
|
+
"Home Security": [...defaultSteps],
|
|
2703
|
+
"Home Staging": ["numberOfRooms", ...defaultSteps],
|
|
2704
|
+
"Home Theater": ["homeTheaterSubtype", ...defaultSteps],
|
|
2705
|
+
"Home Warranties": [...defaultSteps],
|
|
2706
|
+
"Hot Tubs": ["homeImprovementWorkType", ...defaultSteps],
|
|
2707
|
+
"Heating and Cooling": ["heatingCoolingSubtype", "fuelSource", "homeImprovementWorkType", ...defaultSteps],
|
|
2708
|
+
Insulation: ["insulationSubtype", ...defaultSteps],
|
|
2709
|
+
"Junk Removal": [...defaultSteps],
|
|
2710
|
+
Landscaping: ["landscapingSubtype", "homeImprovementWorkType", ...defaultSteps],
|
|
2711
|
+
Locksmiths: [...defaultSteps],
|
|
2712
|
+
"Masonry and Concrete": ["masonrySubtype", "masonryMaterial", "masonryWorkType", ...defaultSteps],
|
|
2713
|
+
// TODO :: add support for moving
|
|
2714
|
+
// Moving: ["movingFromAddress", "movingToAddress", "movingHouseholdSize", ...defaultSteps],
|
|
2715
|
+
Restoration: ["restorationSubtype", ...defaultSteps],
|
|
2716
|
+
Painting: ["paintingSubtype", "paintingRooms", ...defaultSteps],
|
|
2717
|
+
"Pest Control": ["pestControlSubtype", ...defaultSteps],
|
|
2718
|
+
Pools: ["poolsSubtype", "poolsWorkType", ...defaultSteps],
|
|
2719
|
+
Plumbing: ["plumbingSubtype", "homeImprovementWorkType", ...defaultSteps],
|
|
2720
|
+
"Pressure Washing": [...defaultSteps],
|
|
2721
|
+
Remodeling: ["remodelingSubtype", ...defaultSteps],
|
|
2722
|
+
Roofing: ["roofingWorkType", "roofingMaterial", ...defaultSteps],
|
|
2723
|
+
Sheds: ["homeImprovementWorkType", ...defaultSteps],
|
|
2724
|
+
Siding: ["sidingMaterial", "homeImprovementWorkType", ...defaultSteps],
|
|
2725
|
+
Solar: ["homeImprovementWorkType", ...defaultSteps],
|
|
2726
|
+
Tiling: ["tilingSubtype", "homeImprovementWorkType", ...defaultSteps],
|
|
2727
|
+
"Walk-in Tubs": [...defaultSteps],
|
|
2728
|
+
Waterproofing: ["waterproofingSubtype", ...defaultSteps],
|
|
2729
|
+
"Window Cleaning": [...defaultSteps],
|
|
2730
|
+
Windows: ["windowsSubtype", "windowsWorkType", "numberOfWindows", ...defaultSteps],
|
|
2731
|
+
},
|
|
2732
|
+
"*": defaultSteps,
|
|
2858
2733
|
},
|
|
2859
|
-
'*': nextStepsHomeImprovementDefault
|
|
2860
2734
|
}
|
|
2861
2735
|
};
|
|
2862
2736
|
|
|
2863
|
-
const nextStepsMapPainting = {
|
|
2864
|
-
|
|
2865
|
-
|
|
2866
|
-
|
|
2867
|
-
|
|
2868
|
-
|
|
2869
|
-
|
|
2870
|
-
...
|
|
2871
|
-
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
2875
|
-
|
|
2876
|
-
|
|
2877
|
-
|
|
2878
|
-
...nextStepsHomeImprovementDefault
|
|
2879
|
-
],
|
|
2880
|
-
'Deck': nextStepsHomeImprovementDefault,
|
|
2881
|
-
'Shed': nextStepsHomeImprovementDefault,
|
|
2882
|
-
'Cabinets': nextStepsHomeImprovementDefault,
|
|
2883
|
-
'Not Sure or Other': nextStepsHomeImprovementDefault,
|
|
2884
|
-
}
|
|
2737
|
+
const nextStepsMapPainting = (defaultSteps = nextStepsHomeImprovementDefault) => {
|
|
2738
|
+
return {
|
|
2739
|
+
values: {
|
|
2740
|
+
Painting_Subtype: {
|
|
2741
|
+
"Whole Exterior": defaultSteps,
|
|
2742
|
+
"Exterior Touch-up": defaultSteps,
|
|
2743
|
+
"Interior Rooms": ["paintingRooms", ...defaultSteps],
|
|
2744
|
+
"Interior Touch-up": ["paintingRooms", ...defaultSteps],
|
|
2745
|
+
Ceilings: ["paintingRooms", ...defaultSteps],
|
|
2746
|
+
Deck: defaultSteps,
|
|
2747
|
+
Shed: defaultSteps,
|
|
2748
|
+
Cabinets: defaultSteps,
|
|
2749
|
+
"Not Sure or Other": defaultSteps,
|
|
2750
|
+
},
|
|
2751
|
+
},
|
|
2885
2752
|
}
|
|
2886
2753
|
};
|
|
2887
2754
|
|
|
2888
|
-
|
|
2889
|
-
|
|
2890
|
-
|
|
2891
|
-
|
|
2892
|
-
timeframe(),
|
|
2893
|
-
ownHome(),
|
|
2894
|
-
address(),
|
|
2895
|
-
homeImprovementWorkType(),
|
|
2896
|
-
additionsSubType(),
|
|
2897
|
-
constructionAreaSize(),
|
|
2898
|
-
applianceType(),
|
|
2899
|
-
cabinetWorkType(),
|
|
2900
|
-
carpentrySubtype(),
|
|
2901
|
-
carpetWorkType(),
|
|
2902
|
-
cleaningSubtype(),
|
|
2903
|
-
countertopMaterial(),
|
|
2904
|
-
deckWorkType(),
|
|
2905
|
-
demolitionSubtype(),
|
|
2906
|
-
doorSubtype(),
|
|
2907
|
-
drivewayWorkType(),
|
|
2908
|
-
drivewayMaterial(),
|
|
2909
|
-
wallSurfaceType(),
|
|
2910
|
-
electricalSubtype(),
|
|
2911
|
-
fenceMaterial(),
|
|
2912
|
-
flooringMaterial(),
|
|
2913
|
-
generalContractorSubtype(),
|
|
2914
|
-
gutterMaterial(),
|
|
2915
|
-
guttersWorkType(),
|
|
2916
|
-
smartHomeSubtype(),
|
|
2917
|
-
homeOrganizationSubtype(),
|
|
2918
|
-
numberOfRooms(),
|
|
2919
|
-
homeTheaterSubtype(),
|
|
2920
|
-
heatingCoolingSubtype(),
|
|
2921
|
-
fuelSource(),
|
|
2922
|
-
insulationSubtype(),
|
|
2923
|
-
landscapingSubtype(),
|
|
2924
|
-
masonrySubtype(),
|
|
2925
|
-
masonryMaterial(),
|
|
2926
|
-
masonryWorkType(),
|
|
2927
|
-
restorationSubtype(),
|
|
2928
|
-
// Moving not finished yet
|
|
2929
|
-
// steps.movingFromAddress(),
|
|
2930
|
-
// steps.movingToAddress(),
|
|
2931
|
-
// steps.movingHouseholdSize(),
|
|
2932
|
-
paintingSubtype({
|
|
2933
|
-
nextStepMap: nextStepsMapPainting
|
|
2934
|
-
}),
|
|
2935
|
-
paintingRooms(),
|
|
2936
|
-
pestControlSubtype(),
|
|
2937
|
-
poolsWorkType(),
|
|
2938
|
-
poolsSubtype(),
|
|
2939
|
-
plumbingSubtype(),
|
|
2940
|
-
remodelingSubtype(),
|
|
2941
|
-
roofingWorkType(),
|
|
2942
|
-
roofingMaterial(),
|
|
2943
|
-
sidingMaterial(),
|
|
2944
|
-
tilingSubtype(),
|
|
2945
|
-
waterproofingSubtype(),
|
|
2946
|
-
windowsWorkType(),
|
|
2947
|
-
windowsSubtype(),
|
|
2948
|
-
numberOfWindows(),
|
|
2949
|
-
// steps.plumbingCrossSellQuestions(),
|
|
2950
|
-
commentsHeadline({
|
|
2951
|
-
label: null,
|
|
2952
|
-
headline: 'Please briefly describe your project:',
|
|
2953
|
-
headlineClass: '!t-text-dark',
|
|
2954
|
-
}),
|
|
2955
|
-
// steps.homeImprovementCrossSells({
|
|
2956
|
-
// headlineClass: '!t-text-dark',
|
|
2957
|
-
// nextStepMap: forms.nextStepsMapHomeImprovementCrossSells,
|
|
2958
|
-
// }),
|
|
2959
|
-
firstAndLastV3({
|
|
2960
|
-
headlineClass: '!t-text-dark'
|
|
2961
|
-
}),
|
|
2962
|
-
];
|
|
2755
|
+
// Omits cross sell step
|
|
2756
|
+
const nextStepDefaults = ["comments", "timeframe", "ownHome", "zipcode", "address", "firstAndLast", "contactInfo"];
|
|
2757
|
+
|
|
2758
|
+
const meta = defaultMetaPropsHomeImprovementGeneral(nextStepDefaults);
|
|
2963
2759
|
|
|
2964
2760
|
const schema = [
|
|
2965
2761
|
meta,
|
|
2966
2762
|
formAnchor(),
|
|
2967
2763
|
{
|
|
2968
|
-
$cmp:
|
|
2764
|
+
$cmp: "FormKit",
|
|
2969
2765
|
props: formProps({
|
|
2970
|
-
formId:
|
|
2971
|
-
redirectMap:
|
|
2972
|
-
|
|
2973
|
-
|
|
2766
|
+
formId: "generalHomeImprovementThankYou",
|
|
2767
|
+
redirectMap: {
|
|
2768
|
+
"*": "/thank-you",
|
|
2769
|
+
},
|
|
2974
2770
|
}),
|
|
2975
2771
|
children: [
|
|
2976
2772
|
progressBar(),
|
|
2977
2773
|
headline({
|
|
2978
2774
|
children: '$urlParam("hl", "Get Started Here!")',
|
|
2979
|
-
if:
|
|
2775
|
+
if: "$activeStep === $firstStep()",
|
|
2980
2776
|
}),
|
|
2981
2777
|
subHeadline({
|
|
2982
2778
|
children: '$urlParam("shl", "Fast. Reliable. Local. Free")',
|
|
2983
|
-
if:
|
|
2779
|
+
if: "$activeStep === $firstStep()",
|
|
2984
2780
|
}),
|
|
2985
2781
|
...hiddenInputsHomeImprovement,
|
|
2986
2782
|
{
|
|
2987
|
-
$el:
|
|
2783
|
+
$el: "div",
|
|
2988
2784
|
attrs: {
|
|
2989
|
-
class:
|
|
2785
|
+
class: "form-body",
|
|
2990
2786
|
},
|
|
2991
2787
|
children: [
|
|
2992
2788
|
homeImprovementCategory({
|
|
2993
2789
|
nextOnInput: false,
|
|
2994
|
-
nextStepMap: nextStepsMapGeneralHomeImprovement,
|
|
2995
|
-
headlineClass:
|
|
2790
|
+
nextStepMap: nextStepsMapGeneralHomeImprovement(nextStepDefaults),
|
|
2791
|
+
headlineClass: "t-text-lg",
|
|
2996
2792
|
input: {
|
|
2997
|
-
placeholder:
|
|
2998
|
-
innerClass:
|
|
2999
|
-
}
|
|
2793
|
+
placeholder: "Select a Category",
|
|
2794
|
+
innerClass: "!t-max-w-[275px] md:!t-max-w-xl",
|
|
2795
|
+
},
|
|
3000
2796
|
}),
|
|
3001
|
-
dynamicSchemaNode(
|
|
2797
|
+
dynamicSchemaNode("Category"),
|
|
3002
2798
|
contactInfo(),
|
|
3003
2799
|
formNavigation(),
|
|
3004
|
-
formDetails()
|
|
3005
|
-
]
|
|
3006
|
-
}
|
|
3007
|
-
]
|
|
3008
|
-
}
|
|
2800
|
+
formDetails(),
|
|
2801
|
+
],
|
|
2802
|
+
},
|
|
2803
|
+
],
|
|
2804
|
+
},
|
|
3009
2805
|
];
|
|
3010
2806
|
|
|
3011
|
-
const formKitNode = schema.find(item => item.$cmp === "FormKit");
|
|
3012
|
-
|
|
3013
|
-
// HACK: need to update both to mimic formProps behavior
|
|
3014
|
-
formKitNode.props.name = 'generalHomeImprovementThankYou';
|
|
3015
|
-
formKitNode.props.formId = 'generalHomeImprovementThankYou';
|
|
3016
|
-
formKitNode.props.redirectMap = {
|
|
3017
|
-
'*': '/thank-you'
|
|
3018
|
-
};
|
|
3019
|
-
|
|
3020
2807
|
export { schema as default };
|