bhl-forms 0.7.1 → 0.7.3
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/forms/generalHomeImprovement.es.js +5 -9
- package/dist/forms/generalHomeImprovement.iife.js +1 -1
- package/dist/forms/generalHomeImprovement.json +1 -1
- package/dist/forms/generalHomeImprovementThankYou.es.js +3020 -0
- package/dist/forms/generalHomeImprovementThankYou.iife.js +1 -0
- package/dist/forms/generalHomeImprovementThankYou.json +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,3020 @@
|
|
|
1
|
+
function merge() {
|
|
2
|
+
return Object.assign({}, ...arguments)
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
function HomeImprovementRedirectUrl() {
|
|
6
|
+
return 'https://listings.zipcontractor.com/api/v1/redirect?zone_id=4&vertical=HomeImprovement&category=${properties.Category}&zip_code=${properties.Zip}&sub_id=${properties.vid}'
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const DEFAULT_COMMENTS_LABEL = 'Please briefly describe your issue in a few words:';
|
|
10
|
+
const DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC = '$getKey($meta, "commentsPlaceholders." + $get(Category).value, $meta.defaultCommentsPlaceholder)';
|
|
11
|
+
const DEFAULT_FINAL_HEADLINE_DYNAMIC_LEGAL = '$getKey($meta, "finalHeadlines." + $get(Type_Of_Legal_Problem).value, $meta.defaultFinalHeadline)';
|
|
12
|
+
const DEFAULT_FINAL_SUBHEADLINE_DYNAMIC_LEGAL = '$getKey($meta, "finalSubHeadlines." + $get(Type_Of_Legal_Problem).value, $meta.defaultFinalSubHeadline)';
|
|
13
|
+
|
|
14
|
+
const DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC_HOME_IMPROVEMENT = DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC;
|
|
15
|
+
const DEFAULT_FINAL_HEADLINE_HOME_IMPROVEMENT = 'We Found Contractors Near You';
|
|
16
|
+
const DEFAULT_FINAL_SUBHEADLINE_HOME_IMPROVEMENT = 'Compare quotes and save! Please verify your contact info:';
|
|
17
|
+
const TCPA_LANGUAGE_HOME_IMPROVEMENT = "By checking this box, I a) agree to the Terms of Use, and b) consent to be contacted by up to 5 contractors, contractor networks, and partners 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. To submit this request without this consent, please call us.";
|
|
18
|
+
|
|
19
|
+
const radio = (updates) => {
|
|
20
|
+
if (updates.name && !updates.id) {
|
|
21
|
+
updates.id = updates.name;
|
|
22
|
+
}
|
|
23
|
+
return merge({
|
|
24
|
+
$formkit: 'radio',
|
|
25
|
+
validation: 'required',
|
|
26
|
+
validationMessages: {
|
|
27
|
+
required: 'Field is required'
|
|
28
|
+
},
|
|
29
|
+
optionsClass: 't-pt-3 t-pl-1',
|
|
30
|
+
legendClass: 'required'
|
|
31
|
+
}, updates)
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
const verticalRadio = (updates) => {
|
|
35
|
+
updates.legendClass = 'required';
|
|
36
|
+
updates.fieldsetClass = '$reset t-flex t-justify-center';
|
|
37
|
+
updates.optionsClass = 't-pl-2 t-pt-3';
|
|
38
|
+
updates.innerClass = 't-items-center';
|
|
39
|
+
updates.wrapperClass = '$reset t-flex t-cursor-pointer t-mb-3';
|
|
40
|
+
updates.optionClass = 't-pl-4 md:t-pl-12';
|
|
41
|
+
updates.messagesClass = 't-flex t-justify-center';
|
|
42
|
+
return radio(updates)
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
const select = (updates) => {
|
|
46
|
+
if (updates.name && !updates.id) {
|
|
47
|
+
updates.id = updates.name;
|
|
48
|
+
}
|
|
49
|
+
return merge({
|
|
50
|
+
$formkit: 'select',
|
|
51
|
+
placeholder: "Please Select",
|
|
52
|
+
validation: 'required',
|
|
53
|
+
validationMessages: {
|
|
54
|
+
required: 'Field is required'
|
|
55
|
+
},
|
|
56
|
+
inputClass: 't-bg-white',
|
|
57
|
+
labelClass: 'required'
|
|
58
|
+
}, updates)
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const verticalSelect = (updates) => {
|
|
62
|
+
updates.labelClass = 'required';
|
|
63
|
+
updates.wrapperClass = 't-flex t-justify-center';
|
|
64
|
+
updates.messagesClass = 't-flex t-justify-center';
|
|
65
|
+
updates.inputClass = 't-min-w-[150px] t-bg-white';
|
|
66
|
+
updates.helpClass = 't-mt-2.5 t-text-center';
|
|
67
|
+
return select(updates)
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
const text = (updates) => {
|
|
71
|
+
if (updates.name && !updates.id) {
|
|
72
|
+
updates.id = updates.name;
|
|
73
|
+
}
|
|
74
|
+
return merge({
|
|
75
|
+
$formkit: 'text',
|
|
76
|
+
validation: 'required',
|
|
77
|
+
validationMessages: {
|
|
78
|
+
required: 'Field is required'
|
|
79
|
+
},
|
|
80
|
+
labelClass: 'required'
|
|
81
|
+
}, updates)
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
const sbsText = (updates) => {
|
|
85
|
+
updates.wrapperClass = 'side-by-side t-items-center';
|
|
86
|
+
return text(updates)
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
const verticalText = (updates) => {
|
|
90
|
+
updates.wrapperClass = 't-flex t-justify-center';
|
|
91
|
+
updates.messagesClass = 't-flex t-justify-center';
|
|
92
|
+
updates.inputClass = 't-text-center';
|
|
93
|
+
updates.helpClass = 't-mt-2.5 !t-text-sm t-text-center';
|
|
94
|
+
return text(updates)
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
const textArea = (updates) => {
|
|
98
|
+
if (updates.name && !updates.id) {
|
|
99
|
+
updates.id = updates.name;
|
|
100
|
+
}
|
|
101
|
+
return merge({
|
|
102
|
+
$formkit: 'textarea',
|
|
103
|
+
rows: 5,
|
|
104
|
+
maxlength: 500,
|
|
105
|
+
validation: 'required',
|
|
106
|
+
validationMessages: {
|
|
107
|
+
required: 'Field is required'
|
|
108
|
+
},
|
|
109
|
+
innerClass: 't-max-w-xl',
|
|
110
|
+
labelClass: 'required'
|
|
111
|
+
}, updates)
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
// ------ Common Inputs
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
const address$1 = (scope, vertical, updates = {}) => {
|
|
119
|
+
const func = vertical ? verticalText : sbsText;
|
|
120
|
+
const label = vertical ? (updates.label) : 'Street Address:';
|
|
121
|
+
return func({
|
|
122
|
+
label,
|
|
123
|
+
placeholder: '10 Example St',
|
|
124
|
+
name: scope ? scope + ':' + 'Address' : 'Address',
|
|
125
|
+
autocomplete: "street-address",
|
|
126
|
+
'data-tf-sensitive': 'false',
|
|
127
|
+
minlength: 5,
|
|
128
|
+
maxlength: 100,
|
|
129
|
+
validationMessages: {
|
|
130
|
+
minlength: 'Invalid Address',
|
|
131
|
+
required: 'Address is required'
|
|
132
|
+
},
|
|
133
|
+
...updates
|
|
134
|
+
})
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
const email = (scope) => sbsText({
|
|
138
|
+
$formkit: 'email',
|
|
139
|
+
name: scope ? scope + ':' + 'Email' : 'Email',
|
|
140
|
+
label: 'Email Address:',
|
|
141
|
+
placeholder: 'email@domain.com',
|
|
142
|
+
autocomplete: 'email',
|
|
143
|
+
'data-tf-sensitive': 'false',
|
|
144
|
+
validation: 'required|email',
|
|
145
|
+
validationMessages: {
|
|
146
|
+
required: 'Email is required',
|
|
147
|
+
email: 'Invalid Email'
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
const firstName = (scope) => sbsText({
|
|
152
|
+
label: 'First Name:',
|
|
153
|
+
placeholder: 'First',
|
|
154
|
+
name: scope ? scope + ':' + 'First_Name' : 'First_Name',
|
|
155
|
+
autocomplete: "given-name",
|
|
156
|
+
validationMessages: {
|
|
157
|
+
required: 'First Name is required'
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
|
|
161
|
+
const lastName = (scope) => sbsText({
|
|
162
|
+
label: 'Last Name:',
|
|
163
|
+
placeholder: 'Last',
|
|
164
|
+
name: scope ? scope + ':' + 'Last_Name' : 'Last_Name',
|
|
165
|
+
autocomplete: "family-name",
|
|
166
|
+
validationMessages: {
|
|
167
|
+
required: 'Last Name is required'
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
const phone = (scope) => sbsText({
|
|
172
|
+
$formkit: 'tel',
|
|
173
|
+
name: scope ? scope + ':' + 'Primary_Phone' : 'Primary_Phone',
|
|
174
|
+
label: 'Phone Number:',
|
|
175
|
+
placeholder: '###-###-####',
|
|
176
|
+
maxlength: 12,
|
|
177
|
+
help: '10-digit phone number, hyphens optional',
|
|
178
|
+
autocomplete: 'tel-national',
|
|
179
|
+
'data-tf-sensitive': 'false',
|
|
180
|
+
validation: 'required|matches:/^[0-9]{3}-?[0-9]{3}-?[0-9]{4}$/|valid_phone',
|
|
181
|
+
validationMessages: {
|
|
182
|
+
required: 'Field is required',
|
|
183
|
+
matches: 'Invalid Phone Format, use ###-###-####',
|
|
184
|
+
valid_phone: 'Invalid Phone Number'
|
|
185
|
+
},
|
|
186
|
+
helpClass: "t-mt-2.5 md:t-text-right md:t-mt-[-2px]"
|
|
187
|
+
});
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
const zipcode$1 = (scope, vertical, updates = {}) => {
|
|
191
|
+
const func = vertical ? verticalText : sbsText;
|
|
192
|
+
const label = vertical ? (updates.label) : 'Zip Code:';
|
|
193
|
+
const help = vertical ? (updates.help ?? "We try to match you with local help") : null;
|
|
194
|
+
return func({
|
|
195
|
+
label,
|
|
196
|
+
help,
|
|
197
|
+
placeholder: '#####',
|
|
198
|
+
name: scope ? scope + ':' + 'Zip' : 'Zip',
|
|
199
|
+
maxlength: 5,
|
|
200
|
+
inputmode: "numeric",
|
|
201
|
+
autocomplete: 'postal-code',
|
|
202
|
+
validation: 'required|matches:/^[0-9]{5}$/',
|
|
203
|
+
validationMessages: {
|
|
204
|
+
required: 'Zip Code is required',
|
|
205
|
+
matches: 'Invalid Zip Code'
|
|
206
|
+
},
|
|
207
|
+
...updates
|
|
208
|
+
})
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
const comments = (updates, scope) => textArea(
|
|
212
|
+
merge({
|
|
213
|
+
name: scope ? scope + ':' + 'Comments' : 'Comments',
|
|
214
|
+
label: 'Please briefly describe your situation in a few words:',
|
|
215
|
+
placeholder: 'For Example: "I would like help with child support payments" or "I need help with visitation rights"'
|
|
216
|
+
}, updates)
|
|
217
|
+
);
|
|
218
|
+
|
|
219
|
+
const TCPAConsent = (scope) => ({
|
|
220
|
+
$formkit: 'checkbox',
|
|
221
|
+
label: '$meta.tcpaLanguage',
|
|
222
|
+
name: scope ? scope + ':' + 'TCPA_Opt_In' : 'TCPA_Opt_In',
|
|
223
|
+
'data-tf-sensitive': 'false',
|
|
224
|
+
validation: 'required|accepted',
|
|
225
|
+
validationMessages: {
|
|
226
|
+
required: 'Consent is required',
|
|
227
|
+
accepted: 'Consent is required'
|
|
228
|
+
},
|
|
229
|
+
classes: {
|
|
230
|
+
label: "t-text-xs t-text-slate-500 t-font-normal"
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
|
|
234
|
+
const HomeImprovementCategoryOptions = [
|
|
235
|
+
'Additions',
|
|
236
|
+
'Appliances',
|
|
237
|
+
'Appraisals',
|
|
238
|
+
'Cabinets',
|
|
239
|
+
'Carpentry',
|
|
240
|
+
'Carpets',
|
|
241
|
+
'Cleaning',
|
|
242
|
+
'Countertops',
|
|
243
|
+
'Decks and Porches',
|
|
244
|
+
'Demolition',
|
|
245
|
+
'Doors',
|
|
246
|
+
'Driveways',
|
|
247
|
+
'Drywall and Plaster',
|
|
248
|
+
'Electrical',
|
|
249
|
+
'Fencing',
|
|
250
|
+
'Flooring',
|
|
251
|
+
'Foundations',
|
|
252
|
+
'Garage Doors',
|
|
253
|
+
'General Contractors',
|
|
254
|
+
'Gutters',
|
|
255
|
+
'Handyman',
|
|
256
|
+
'Holiday Decorators',
|
|
257
|
+
'Smart Home',
|
|
258
|
+
'Home Builders',
|
|
259
|
+
'Home Inspection',
|
|
260
|
+
'Home Organization',
|
|
261
|
+
'Home Security',
|
|
262
|
+
'Home Staging',
|
|
263
|
+
'Home Theater',
|
|
264
|
+
'Home Warranties',
|
|
265
|
+
'Hot Tubs',
|
|
266
|
+
'Heating and Cooling',
|
|
267
|
+
'Insulation',
|
|
268
|
+
'Junk Removal',
|
|
269
|
+
'Landscaping',
|
|
270
|
+
'Locksmiths',
|
|
271
|
+
'Masonry and Concrete',
|
|
272
|
+
'Restoration',
|
|
273
|
+
// 'Moving',
|
|
274
|
+
'Painting',
|
|
275
|
+
'Pest Control',
|
|
276
|
+
'Pools',
|
|
277
|
+
'Plumbing',
|
|
278
|
+
'Pressure Washing',
|
|
279
|
+
'Remodeling',
|
|
280
|
+
'Roofing',
|
|
281
|
+
'Sheds',
|
|
282
|
+
'Siding',
|
|
283
|
+
'Solar',
|
|
284
|
+
'Tiling',
|
|
285
|
+
'Walk-in Tubs',
|
|
286
|
+
'Waterproofing',
|
|
287
|
+
'Window Cleaning',
|
|
288
|
+
'Windows'
|
|
289
|
+
];
|
|
290
|
+
|
|
291
|
+
const homeImprovementCategory$1 = (updates) => verticalSelect(merge({
|
|
292
|
+
name: 'Category',
|
|
293
|
+
id: 'Category',
|
|
294
|
+
options: HomeImprovementCategoryOptions,
|
|
295
|
+
}, updates));
|
|
296
|
+
|
|
297
|
+
const timeframe$1 = (scope) => verticalRadio({
|
|
298
|
+
name: scope ? scope + ':' + 'Timeframe' : 'Timeframe',
|
|
299
|
+
// label: 'What is the project timeframe?',
|
|
300
|
+
options: [
|
|
301
|
+
'Immediate',
|
|
302
|
+
'1-6 Months',
|
|
303
|
+
'More than 6 Months'
|
|
304
|
+
]
|
|
305
|
+
});
|
|
306
|
+
|
|
307
|
+
const ownHome$1 = (scope) => verticalRadio({
|
|
308
|
+
name: scope ? scope + ':' + 'Own_Home' : 'Own_Home',
|
|
309
|
+
// label: 'Do you own the home?',
|
|
310
|
+
options: [
|
|
311
|
+
'Yes',
|
|
312
|
+
'No',
|
|
313
|
+
'No but authorized'
|
|
314
|
+
]
|
|
315
|
+
});
|
|
316
|
+
|
|
317
|
+
const additionsSubType$1 = (scope) => verticalSelect({
|
|
318
|
+
name: scope ? scope + ':' + 'Additions_Subtype' : 'Additions_Subtype',
|
|
319
|
+
// label: 'What type of addition?',
|
|
320
|
+
options: [
|
|
321
|
+
'Garage',
|
|
322
|
+
'In-Law Suite',
|
|
323
|
+
'Additional Rooms',
|
|
324
|
+
'Additional Stories',
|
|
325
|
+
'Bump-out',
|
|
326
|
+
'Sunroom',
|
|
327
|
+
'Accessory Dwelling Unit',
|
|
328
|
+
'Basement Remodeling',
|
|
329
|
+
'Attic Remodeling',
|
|
330
|
+
'Not Sure or Other'
|
|
331
|
+
]
|
|
332
|
+
});
|
|
333
|
+
|
|
334
|
+
const constructionAreaSize$1 = (scope) => verticalRadio({
|
|
335
|
+
name: scope ? scope + ':' + 'Construction_Area_Size' : 'Construction_Area_Size',
|
|
336
|
+
// label: 'What is the size of the construction area?',
|
|
337
|
+
options: [
|
|
338
|
+
'Less than 1000 square feet',
|
|
339
|
+
'1000 to 2000 square feet',
|
|
340
|
+
'More than 2000 square feet'
|
|
341
|
+
]
|
|
342
|
+
});
|
|
343
|
+
|
|
344
|
+
|
|
345
|
+
const homeImprovementWorkType$1 = (scope) => verticalRadio({
|
|
346
|
+
name: scope ? scope + ':' + 'Work_Type' : 'Work_Type',
|
|
347
|
+
// label: 'What type of work do you need?',
|
|
348
|
+
options: [
|
|
349
|
+
'Install or Replace',
|
|
350
|
+
'Repair',
|
|
351
|
+
'Not Sure or Other'
|
|
352
|
+
]
|
|
353
|
+
});
|
|
354
|
+
|
|
355
|
+
const applianceType$1 = (scope) => verticalSelect({
|
|
356
|
+
name: scope ? scope + ':' + 'Appliance_Type' : 'Appliance_Type',
|
|
357
|
+
// label: 'What type of appliance?',
|
|
358
|
+
options: [
|
|
359
|
+
'Cooktop',
|
|
360
|
+
'Dishwasher',
|
|
361
|
+
'Dryer',
|
|
362
|
+
'Freezer',
|
|
363
|
+
'Garbage Disposal',
|
|
364
|
+
'Ice Maker',
|
|
365
|
+
'Microwave',
|
|
366
|
+
'Range',
|
|
367
|
+
'Refrigerator',
|
|
368
|
+
'Stove',
|
|
369
|
+
'Trash Compactor',
|
|
370
|
+
'Oven',
|
|
371
|
+
'Vacuum',
|
|
372
|
+
'Washer Machine',
|
|
373
|
+
'Not Sure or Other',
|
|
374
|
+
]
|
|
375
|
+
});
|
|
376
|
+
|
|
377
|
+
|
|
378
|
+
const cabinetWorkType$1 = (scope) => verticalRadio({
|
|
379
|
+
name: scope ? scope + ':' + 'Cabinet_Work_Type' : 'Cabinet_Work_Type',
|
|
380
|
+
// label: 'What type of work do you need?',
|
|
381
|
+
options: [
|
|
382
|
+
'Install',
|
|
383
|
+
'Refinish',
|
|
384
|
+
'Reface',
|
|
385
|
+
'Repair',
|
|
386
|
+
'Not Sure or Other'
|
|
387
|
+
]
|
|
388
|
+
});
|
|
389
|
+
|
|
390
|
+
const carpentrySubtype$1 = (scope) => verticalSelect({
|
|
391
|
+
name: scope ? scope + ':' + 'Carpentry_Subtype' : 'Carpentry_Subtype',
|
|
392
|
+
// label: 'What type of carpentry work?',
|
|
393
|
+
options: [
|
|
394
|
+
'Closets',
|
|
395
|
+
'Custom Furniture',
|
|
396
|
+
'Built-ins',
|
|
397
|
+
'Framing',
|
|
398
|
+
'Interior Trim',
|
|
399
|
+
'Exterior Trim',
|
|
400
|
+
'Windows',
|
|
401
|
+
'Stairways and Railings',
|
|
402
|
+
'Gazebo or Pergola',
|
|
403
|
+
'Multiple Jobs',
|
|
404
|
+
'Not Sure or Other'
|
|
405
|
+
]
|
|
406
|
+
});
|
|
407
|
+
|
|
408
|
+
const carpetWorkType$1 = (scope) => verticalRadio({
|
|
409
|
+
name: scope ? scope + ':' + 'Carpet_Work_Type' : 'Carpet_Work_Type',
|
|
410
|
+
// label: 'What type of work do you need?',
|
|
411
|
+
options: [
|
|
412
|
+
'Install or Replace',
|
|
413
|
+
'Repair',
|
|
414
|
+
'Cleaning',
|
|
415
|
+
'Not Sure or Other'
|
|
416
|
+
]
|
|
417
|
+
});
|
|
418
|
+
|
|
419
|
+
const cleaningSubtype$1 = (scope) => verticalSelect({
|
|
420
|
+
name: scope ? scope + ':' + 'Cleaning_Subtype' : 'Cleaning_Subtype',
|
|
421
|
+
// label: 'What type of cleaning?',
|
|
422
|
+
options: [
|
|
423
|
+
'Whole Home',
|
|
424
|
+
'Office',
|
|
425
|
+
'Carpets',
|
|
426
|
+
'Windows',
|
|
427
|
+
'Air Ducts or Vents',
|
|
428
|
+
'Chimney',
|
|
429
|
+
'Deck',
|
|
430
|
+
'Tile or Grout',
|
|
431
|
+
'Garage',
|
|
432
|
+
'Shed',
|
|
433
|
+
'Gutters',
|
|
434
|
+
'Pool',
|
|
435
|
+
'Junk Removal',
|
|
436
|
+
'Not Sure or Other'
|
|
437
|
+
]
|
|
438
|
+
});
|
|
439
|
+
|
|
440
|
+
const countertopMaterial$1 = (scope) => verticalSelect({
|
|
441
|
+
name: scope ? scope + ':' + 'Countertop_Material' : 'Countertop_Material',
|
|
442
|
+
// label: 'What type of countertop?',
|
|
443
|
+
options: [
|
|
444
|
+
'Concrete',
|
|
445
|
+
'Granite',
|
|
446
|
+
'Laminate',
|
|
447
|
+
'Marble',
|
|
448
|
+
'Quartz',
|
|
449
|
+
'Stainless Steel',
|
|
450
|
+
'Wood',
|
|
451
|
+
'Not Sure or Other'
|
|
452
|
+
]
|
|
453
|
+
});
|
|
454
|
+
|
|
455
|
+
const deckWorkType$1 = (scope) => verticalRadio({
|
|
456
|
+
name: scope ? scope + ':' + 'Deck_Work_Type' : 'Deck_Work_Type',
|
|
457
|
+
// label: 'What type of work do you need?',
|
|
458
|
+
options: [
|
|
459
|
+
'Paint or Stain',
|
|
460
|
+
'Install or Replace',
|
|
461
|
+
'Repair',
|
|
462
|
+
'Not Sure or Other'
|
|
463
|
+
]
|
|
464
|
+
});
|
|
465
|
+
|
|
466
|
+
const demolitionSubtype$1 = (scope) => verticalRadio({
|
|
467
|
+
name: scope ? scope + ':' + 'Demolition_Subtype' : 'Demolition_Subtype',
|
|
468
|
+
// label: 'What type of demolition?',
|
|
469
|
+
options: [
|
|
470
|
+
'Whole Structure',
|
|
471
|
+
'Partial Home',
|
|
472
|
+
'Shed',
|
|
473
|
+
'Not Sure or Other'
|
|
474
|
+
]
|
|
475
|
+
});
|
|
476
|
+
|
|
477
|
+
const doorSubtype$1 = (scope) => verticalRadio({
|
|
478
|
+
name: scope ? scope + ':' + 'Door_Subtype' : 'Door_Subtype',
|
|
479
|
+
// label: 'What type of door?',
|
|
480
|
+
options: [
|
|
481
|
+
'Interior',
|
|
482
|
+
'Exterior',
|
|
483
|
+
'Garage',
|
|
484
|
+
'Sliding',
|
|
485
|
+
'Storm',
|
|
486
|
+
'Not Sure or Other'
|
|
487
|
+
]
|
|
488
|
+
});
|
|
489
|
+
|
|
490
|
+
const drivewayWorkType$1 = (scope) => verticalRadio({
|
|
491
|
+
name: scope ? scope + ':' + 'Driveway_Work_Type' : 'Driveway_Work_Type',
|
|
492
|
+
// label: 'What type of work do you need?',
|
|
493
|
+
options: [
|
|
494
|
+
'Install or Replace',
|
|
495
|
+
'Repair',
|
|
496
|
+
'Sealing',
|
|
497
|
+
'Not Sure or Other'
|
|
498
|
+
]
|
|
499
|
+
});
|
|
500
|
+
|
|
501
|
+
const drivewayMaterial$1 = (scope) => verticalRadio({
|
|
502
|
+
name: scope ? scope + ':' + 'Driveway_Material' : 'Driveway_Material',
|
|
503
|
+
// label: 'What type of driveway material?',
|
|
504
|
+
options: [
|
|
505
|
+
'Asphalt',
|
|
506
|
+
'Brick',
|
|
507
|
+
'Cobblestone',
|
|
508
|
+
'Pebble',
|
|
509
|
+
'Concrete',
|
|
510
|
+
'Pavers',
|
|
511
|
+
'Not Sure or Other'
|
|
512
|
+
]
|
|
513
|
+
});
|
|
514
|
+
|
|
515
|
+
const wallSurfaceType$1 = (scope) => verticalRadio({
|
|
516
|
+
name: scope ? scope + ':' + 'Wall_Surface_Type' : 'Wall_Surface_Type',
|
|
517
|
+
// label: 'What type of surface?',
|
|
518
|
+
options: [
|
|
519
|
+
'Drywall',
|
|
520
|
+
'Plaster',
|
|
521
|
+
'Stucco',
|
|
522
|
+
'Not Sure or Other'
|
|
523
|
+
]
|
|
524
|
+
});
|
|
525
|
+
|
|
526
|
+
const electricalSubtype$1 = (scope) => verticalSelect({
|
|
527
|
+
name: scope ? scope + ':' + 'Electrical_Subtype' : 'Electrical_Subtype',
|
|
528
|
+
// label: 'What type of electrical work do you need?',
|
|
529
|
+
options: [
|
|
530
|
+
'Electrical Panel',
|
|
531
|
+
'Outlets and Fixtures',
|
|
532
|
+
'Home Theater',
|
|
533
|
+
'Exhaust Fans',
|
|
534
|
+
'Ceiling Fans',
|
|
535
|
+
'EV Charging Station',
|
|
536
|
+
'Addition or Remodel',
|
|
537
|
+
'Generator',
|
|
538
|
+
'Outdoor Lighting',
|
|
539
|
+
'Pet Fence',
|
|
540
|
+
'Thermostat',
|
|
541
|
+
'Wall or Baseboard Heater',
|
|
542
|
+
'Holiday Lighting',
|
|
543
|
+
'Not Sure or Other'
|
|
544
|
+
]
|
|
545
|
+
});
|
|
546
|
+
|
|
547
|
+
const fenceMaterial$1 = (scope) => verticalRadio({
|
|
548
|
+
name: scope ? scope + ':' + 'Fence_Material' : 'Fence_Material',
|
|
549
|
+
// label: 'What type of fence material?',
|
|
550
|
+
options: [
|
|
551
|
+
'Aluminum',
|
|
552
|
+
'Chain Link',
|
|
553
|
+
'Wood',
|
|
554
|
+
'Wire',
|
|
555
|
+
'Vinyl',
|
|
556
|
+
'Iron',
|
|
557
|
+
'Not Sure or Other'
|
|
558
|
+
]
|
|
559
|
+
});
|
|
560
|
+
|
|
561
|
+
const flooringMaterial$1 = (scope) => verticalRadio({
|
|
562
|
+
name: scope ? scope + ':' + 'Flooring_Material' : 'Flooring_Material',
|
|
563
|
+
// label: 'What type of flooring material?',
|
|
564
|
+
options: [
|
|
565
|
+
'Carpet',
|
|
566
|
+
'Concrete',
|
|
567
|
+
'Hardwood',
|
|
568
|
+
'Laminate',
|
|
569
|
+
'Linoleum',
|
|
570
|
+
'Slate',
|
|
571
|
+
'Tile',
|
|
572
|
+
'Vinyl',
|
|
573
|
+
'Not Sure or Other'
|
|
574
|
+
]
|
|
575
|
+
});
|
|
576
|
+
|
|
577
|
+
const generalContractorSubtype$1 = (scope) => verticalRadio({
|
|
578
|
+
name: scope ? scope + ':' + 'General_Contractor_Subtype' : 'General_Contractor_Subtype',
|
|
579
|
+
// label: 'What type of general contractor work do you need?',
|
|
580
|
+
options: [
|
|
581
|
+
'Remodeling',
|
|
582
|
+
'Additions',
|
|
583
|
+
'Major Home Repairs',
|
|
584
|
+
'Excavation',
|
|
585
|
+
'Demolition',
|
|
586
|
+
'Dumpster Rental',
|
|
587
|
+
'Not Sure or Other'
|
|
588
|
+
]
|
|
589
|
+
});
|
|
590
|
+
|
|
591
|
+
const gutterMaterial$1 = (scope) => verticalRadio({
|
|
592
|
+
name: scope ? scope + ':' + 'Gutter_Material' : 'Gutter_Material',
|
|
593
|
+
// label: 'What type of gutter material?',
|
|
594
|
+
options: [
|
|
595
|
+
'Galvanized',
|
|
596
|
+
'Metal',
|
|
597
|
+
'PVC',
|
|
598
|
+
'Wood',
|
|
599
|
+
'Not Sure or Other'
|
|
600
|
+
]
|
|
601
|
+
});
|
|
602
|
+
|
|
603
|
+
const guttersWorkType$1 = (scope) => verticalRadio({
|
|
604
|
+
name: scope ? scope + ':' + 'Gutters_Work_Type' : 'Gutters_Work_Type',
|
|
605
|
+
options: [
|
|
606
|
+
'Install or Replace',
|
|
607
|
+
'Repair',
|
|
608
|
+
'Cleaning',
|
|
609
|
+
'Not Sure or Other'
|
|
610
|
+
]
|
|
611
|
+
});
|
|
612
|
+
|
|
613
|
+
const smartHomeSubtype$1 = (scope) => verticalRadio({
|
|
614
|
+
name: scope ? scope + ':' + 'Smart_Home_Subtype' : 'Smart_Home_Subtype',
|
|
615
|
+
// label: 'What type of smart home work do you need?',
|
|
616
|
+
options: [
|
|
617
|
+
'Thermostats',
|
|
618
|
+
'Video Doorbells',
|
|
619
|
+
'Camera Systems',
|
|
620
|
+
'Lighting',
|
|
621
|
+
'Speaker Systems',
|
|
622
|
+
'Not Sure or Other'
|
|
623
|
+
]
|
|
624
|
+
});
|
|
625
|
+
|
|
626
|
+
const homeOrganizationSubtype$1 = (scope) => verticalRadio({
|
|
627
|
+
name: scope ? scope + ':' + 'Home_Organization_Subtype' : 'Home_Organization_Subtype',
|
|
628
|
+
// label: 'What type of home organization work do you need?',
|
|
629
|
+
options: [
|
|
630
|
+
'Packing or Unpacking',
|
|
631
|
+
'Room Organization',
|
|
632
|
+
'Shed Organization',
|
|
633
|
+
'Storage Solutions',
|
|
634
|
+
'Decluttering',
|
|
635
|
+
'Not Sure or Other'
|
|
636
|
+
]
|
|
637
|
+
});
|
|
638
|
+
|
|
639
|
+
const numberOfRooms$1 = (scope) => verticalRadio({
|
|
640
|
+
name: scope ? scope + ':' + 'Number_Of_Rooms' : 'Number_Of_Rooms',
|
|
641
|
+
// label: 'How many rooms?',
|
|
642
|
+
options: [
|
|
643
|
+
'1',
|
|
644
|
+
'2',
|
|
645
|
+
'3',
|
|
646
|
+
'4',
|
|
647
|
+
'5 or more'
|
|
648
|
+
]
|
|
649
|
+
});
|
|
650
|
+
|
|
651
|
+
const homeTheaterSubtype$1 = (scope) => verticalRadio({
|
|
652
|
+
name: scope ? scope + ':' + 'Home_Theater_Subtype' : 'Home_Theater_Subtype',
|
|
653
|
+
// label: 'What type of home theater work do you need?',
|
|
654
|
+
options: [
|
|
655
|
+
'Hang TV',
|
|
656
|
+
'Install Sound System',
|
|
657
|
+
'Wiring',
|
|
658
|
+
'Troubleshooting',
|
|
659
|
+
'Not Sure or Other'
|
|
660
|
+
]
|
|
661
|
+
});
|
|
662
|
+
|
|
663
|
+
const heatingCoolingSubtype$1 = (scope) => verticalSelect({
|
|
664
|
+
name: scope ? scope + ':' + 'Heating_Cooling_Subtype' : 'Heating_Cooling_Subtype',
|
|
665
|
+
// label: 'What type of heating and cooling work do you need?',
|
|
666
|
+
options: [
|
|
667
|
+
'Central Air',
|
|
668
|
+
'Humidifier',
|
|
669
|
+
'Ducts and Vents',
|
|
670
|
+
'Furnace',
|
|
671
|
+
'Heat Pump',
|
|
672
|
+
'Radiant Floor',
|
|
673
|
+
'Swamp Cooler',
|
|
674
|
+
'Not Sure or Other'
|
|
675
|
+
]
|
|
676
|
+
});
|
|
677
|
+
|
|
678
|
+
const fuelSource$1 = (scope) => verticalRadio({
|
|
679
|
+
name: scope ? scope + ':' + 'Fuel_Source' : 'Fuel_Source',
|
|
680
|
+
// label: 'What is the fuel source?',
|
|
681
|
+
options: [
|
|
682
|
+
'Gas',
|
|
683
|
+
'Oil',
|
|
684
|
+
'Electric',
|
|
685
|
+
'Propane',
|
|
686
|
+
'Not Sure or Other'
|
|
687
|
+
]
|
|
688
|
+
});
|
|
689
|
+
|
|
690
|
+
const insulationSubtype$1 = (scope) => verticalRadio({
|
|
691
|
+
name: scope ? scope + ':' + 'Insulation_Subtype' : 'Insulation_Subtype',
|
|
692
|
+
// label: 'What type of insulation work do you need?',
|
|
693
|
+
options: [
|
|
694
|
+
'Batt or Roll',
|
|
695
|
+
'Spray Foam',
|
|
696
|
+
'Blown-in',
|
|
697
|
+
'Reflective',
|
|
698
|
+
'Not Sure or Other'
|
|
699
|
+
]
|
|
700
|
+
});
|
|
701
|
+
|
|
702
|
+
const landscapingSubtype$1 = (scope) => verticalSelect({
|
|
703
|
+
name: scope ? scope + ':' + 'Landscaping_Subtype' : 'Landscaping_Subtype',
|
|
704
|
+
// label: 'What type of landscaping work do you need?',
|
|
705
|
+
options: [
|
|
706
|
+
'Lawn Mowing',
|
|
707
|
+
'Lawn Care or Fertilization',
|
|
708
|
+
'Yard or Leaf Cleanup',
|
|
709
|
+
'Patios or Walkways',
|
|
710
|
+
'Stonework',
|
|
711
|
+
'Architects',
|
|
712
|
+
'Landscape Construction',
|
|
713
|
+
'Outdoor Lighting',
|
|
714
|
+
'Grading',
|
|
715
|
+
'Materials Delivery',
|
|
716
|
+
'Spinklers'
|
|
717
|
+
]
|
|
718
|
+
});
|
|
719
|
+
|
|
720
|
+
const masonrySubtype$1 = (scope) => verticalRadio({
|
|
721
|
+
name: scope ? scope + ':' + 'Masonry_Subtype' : 'Masonry_Subtype',
|
|
722
|
+
// label: 'What type of masonry work do you need?',
|
|
723
|
+
options: [
|
|
724
|
+
'Driveways',
|
|
725
|
+
'Walkways',
|
|
726
|
+
'Floors',
|
|
727
|
+
'Walls',
|
|
728
|
+
'Facades',
|
|
729
|
+
'Material Delivery',
|
|
730
|
+
'Not Sure or Other'
|
|
731
|
+
]
|
|
732
|
+
});
|
|
733
|
+
|
|
734
|
+
const masonryMaterial$1 = (scope) => verticalRadio({
|
|
735
|
+
name: scope ? scope + ':' + 'Masonry_Material' : 'Masonry_Material',
|
|
736
|
+
// label: 'What type of masonry material?',
|
|
737
|
+
options: [
|
|
738
|
+
'Brick or Stone',
|
|
739
|
+
'Pavers',
|
|
740
|
+
'Concrete',
|
|
741
|
+
'Not Sure or Other'
|
|
742
|
+
]
|
|
743
|
+
});
|
|
744
|
+
|
|
745
|
+
const masonryWorkType$1 = (scope) => verticalRadio({
|
|
746
|
+
name: scope ? scope + ':' + 'Masonry_Work_Type' : 'Masonry_Work_Type',
|
|
747
|
+
// label: 'What type of masonry work do you need?',
|
|
748
|
+
options: [
|
|
749
|
+
'Install or Replace',
|
|
750
|
+
'Repoint Brick or Stone',
|
|
751
|
+
'Repair',
|
|
752
|
+
'Not Sure or Other'
|
|
753
|
+
]
|
|
754
|
+
});
|
|
755
|
+
|
|
756
|
+
const restorationSubtype$1 = (scope) => verticalRadio({
|
|
757
|
+
name: scope ? scope + ':' + 'Restoration_Subtype' : 'Restoration_Subtype',
|
|
758
|
+
// label: 'What type of restoration work do you need?',
|
|
759
|
+
options: [
|
|
760
|
+
'Mold Remediation',
|
|
761
|
+
'Fire Damage',
|
|
762
|
+
'Water Damage',
|
|
763
|
+
'Not Sure or Other'
|
|
764
|
+
]
|
|
765
|
+
});
|
|
766
|
+
|
|
767
|
+
// TODO: need to finalize support for moving
|
|
768
|
+
|
|
769
|
+
// export const movingFromAddress = (scope) => sbsText({
|
|
770
|
+
// name: scope ? scope + ':' + 'Moving_From_Address' : 'Moving_From_Address',
|
|
771
|
+
// label: 'Moving from address',
|
|
772
|
+
// placeholder: '10 Example St',
|
|
773
|
+
// autocomplete: "street-address",
|
|
774
|
+
// 'data-tf-sensitive': 'false',
|
|
775
|
+
// maxlength: 100,
|
|
776
|
+
// validationMessages: {
|
|
777
|
+
// required: 'From address is required'
|
|
778
|
+
// }
|
|
779
|
+
// })
|
|
780
|
+
|
|
781
|
+
// export const movingToAddress = (scope) => sbsText({
|
|
782
|
+
// name: scope ? scope + ':' + 'Moving_To_Address' : 'Moving_To_Address',
|
|
783
|
+
// label: 'Moving to address',
|
|
784
|
+
// placeholder: '11 Other St',
|
|
785
|
+
// 'data-tf-sensitive': 'false',
|
|
786
|
+
// maxlength: 100,
|
|
787
|
+
// validationMessages: {
|
|
788
|
+
// required: 'To address is required'
|
|
789
|
+
// }
|
|
790
|
+
// })
|
|
791
|
+
|
|
792
|
+
// export const movingHouseholdSize = (scope) => verticalRadio({
|
|
793
|
+
// name: scope ? scope + ':' + 'Moving_Household_Size' : 'Moving_Household_Size',
|
|
794
|
+
// label: 'What is the household size?',
|
|
795
|
+
// options: [
|
|
796
|
+
// 'Less than 1000 square feet',
|
|
797
|
+
// '1000 to 2000 square feet',
|
|
798
|
+
// '2000 to 3000 square feet',
|
|
799
|
+
// 'More than 3000 square feet'
|
|
800
|
+
// ]
|
|
801
|
+
// })
|
|
802
|
+
|
|
803
|
+
const paintingSubtype$1 = (scope) => verticalSelect({
|
|
804
|
+
name: scope ? scope + ':' + 'Painting_Subtype' : 'Painting_Subtype',
|
|
805
|
+
// label: 'What type of painting work do you need?',
|
|
806
|
+
options: [
|
|
807
|
+
'Whole Exterior',
|
|
808
|
+
'Exterior Touch-up',
|
|
809
|
+
'Interior Rooms',
|
|
810
|
+
'Interior Touch-up',
|
|
811
|
+
'Ceilings',
|
|
812
|
+
'Deck',
|
|
813
|
+
'Shed',
|
|
814
|
+
'Cabinets',
|
|
815
|
+
'Not Sure or Other'
|
|
816
|
+
]
|
|
817
|
+
});
|
|
818
|
+
|
|
819
|
+
const paintingRooms$1 = (scope) => verticalRadio({
|
|
820
|
+
name: scope ? scope + ':' + 'Painting_Rooms' : 'Painting_Rooms',
|
|
821
|
+
// label: 'How many rooms need painting?',
|
|
822
|
+
options: [
|
|
823
|
+
'1-2',
|
|
824
|
+
'3-4',
|
|
825
|
+
'4-5',
|
|
826
|
+
'5-6',
|
|
827
|
+
'6+'
|
|
828
|
+
]
|
|
829
|
+
});
|
|
830
|
+
|
|
831
|
+
const pestControlSubtype$1 = (scope) => verticalSelect({
|
|
832
|
+
name: scope ? scope + ':' + 'Pest_Control_Subtype' : 'Pest_Control_Subtype',
|
|
833
|
+
// label: 'What type of pest control work do you need?',
|
|
834
|
+
options: [
|
|
835
|
+
'Bed Bugs',
|
|
836
|
+
'Flying Animals',
|
|
837
|
+
'Insects',
|
|
838
|
+
'Rodents',
|
|
839
|
+
'Small Animals',
|
|
840
|
+
'Bees',
|
|
841
|
+
'Termites',
|
|
842
|
+
'Not Sure or Other'
|
|
843
|
+
]
|
|
844
|
+
});
|
|
845
|
+
|
|
846
|
+
const poolsWorkType$1 = (scope) => verticalRadio({
|
|
847
|
+
name: scope ? scope + ':' + 'Pools_Work_Type' : 'Pools_Work_Type',
|
|
848
|
+
// label: 'What type of pool work do you need?',
|
|
849
|
+
options: [
|
|
850
|
+
'Install or Replace',
|
|
851
|
+
'Repair',
|
|
852
|
+
'Cleaning',
|
|
853
|
+
'Close or Open Pool',
|
|
854
|
+
'Not Sure or Other'
|
|
855
|
+
]
|
|
856
|
+
});
|
|
857
|
+
|
|
858
|
+
const poolsSubtype$1 = (scope) => verticalSelect({
|
|
859
|
+
name: scope ? scope + ':' + 'Pools_Subtype' : 'Pools_Subtype',
|
|
860
|
+
// label: 'What type of pool do you have?',
|
|
861
|
+
options: [
|
|
862
|
+
'Above Ground',
|
|
863
|
+
'Inground Concrete',
|
|
864
|
+
'Inground Fiberglass',
|
|
865
|
+
'Inground Vinyl',
|
|
866
|
+
'Inground Gunite',
|
|
867
|
+
'Pool Liners',
|
|
868
|
+
'Pool Filters',
|
|
869
|
+
'Not Sure or Other'
|
|
870
|
+
]
|
|
871
|
+
});
|
|
872
|
+
|
|
873
|
+
const plumbingSubtype$1 = (scope) => verticalSelect({
|
|
874
|
+
name: scope ? scope + ':' + 'Plumbing_Subtype' : 'Plumbing_Subtype',
|
|
875
|
+
// label: 'What type of plumbing work do you need?',
|
|
876
|
+
options: [
|
|
877
|
+
'Tub or Shower',
|
|
878
|
+
'Drain',
|
|
879
|
+
'Sink',
|
|
880
|
+
'Toilet',
|
|
881
|
+
'Boiler',
|
|
882
|
+
'Water Heater',
|
|
883
|
+
'Sump Pump',
|
|
884
|
+
'Piping',
|
|
885
|
+
'Septic',
|
|
886
|
+
'Water Main',
|
|
887
|
+
'Hot Tub',
|
|
888
|
+
'Additions and Remodels',
|
|
889
|
+
'Not Sure or Other'
|
|
890
|
+
]
|
|
891
|
+
});
|
|
892
|
+
|
|
893
|
+
const remodelingSubtype$1 = (scope) => verticalSelect({
|
|
894
|
+
name: scope ? scope + ':' + 'Remodeling_Subtype' : 'Remodeling_Subtype',
|
|
895
|
+
// label: 'What type of remodeling work do you need?',
|
|
896
|
+
options: [
|
|
897
|
+
'Interior Designer',
|
|
898
|
+
'Interior Decorator',
|
|
899
|
+
'Kitchen Remodeling',
|
|
900
|
+
'Bathroom Remodeling',
|
|
901
|
+
'Garage Remodeling',
|
|
902
|
+
'Home Remodeling',
|
|
903
|
+
'Dumpster Rental',
|
|
904
|
+
'Landscape Architect',
|
|
905
|
+
'Outdoor Kitchen',
|
|
906
|
+
'Outdoor Enclosure',
|
|
907
|
+
'Additions',
|
|
908
|
+
'Not Sure or Other'
|
|
909
|
+
]
|
|
910
|
+
});
|
|
911
|
+
|
|
912
|
+
const roofingWorkType$1 = (scope) => verticalRadio({
|
|
913
|
+
name: scope ? scope + ':' + 'Roofing_Work_Type' : 'Roofing_Work_Type',
|
|
914
|
+
// label: 'What type of roofing work do you need?',
|
|
915
|
+
options: [
|
|
916
|
+
'Install or Replace Roof',
|
|
917
|
+
'Repair Roof',
|
|
918
|
+
'Ice Dams',
|
|
919
|
+
'Gutters',
|
|
920
|
+
'Not Sure or Other'
|
|
921
|
+
]
|
|
922
|
+
});
|
|
923
|
+
|
|
924
|
+
const roofingMaterial$1 = (scope) => verticalSelect({
|
|
925
|
+
name: scope ? scope + ':' + 'Roofing_Material' : 'Roofing_Material',
|
|
926
|
+
// label: 'What type of roofing material?',
|
|
927
|
+
options: [
|
|
928
|
+
'Asphalt Shingle',
|
|
929
|
+
'Metal',
|
|
930
|
+
'Composite',
|
|
931
|
+
'Flat',
|
|
932
|
+
'Foam',
|
|
933
|
+
'Tile',
|
|
934
|
+
'Wood',
|
|
935
|
+
'Slate',
|
|
936
|
+
'Not Sure or Other'
|
|
937
|
+
]
|
|
938
|
+
});
|
|
939
|
+
|
|
940
|
+
const sidingMaterial$1 = (scope) => verticalRadio({
|
|
941
|
+
name: scope ? scope + ':' + 'Siding_Material' : 'Siding_Material',
|
|
942
|
+
// label: 'What type of siding material?',
|
|
943
|
+
options: [
|
|
944
|
+
'Vinyl',
|
|
945
|
+
'Composite',
|
|
946
|
+
'Brick',
|
|
947
|
+
'Stone',
|
|
948
|
+
'Wood',
|
|
949
|
+
'Stucco',
|
|
950
|
+
'Not Sure or Other'
|
|
951
|
+
]
|
|
952
|
+
});
|
|
953
|
+
|
|
954
|
+
const tilingSubtype$1 = (scope) => verticalRadio({
|
|
955
|
+
name: scope ? scope + ':' + 'Tiling_Subtype' : 'Tiling_Subtype',
|
|
956
|
+
// label: 'What type of tiling work do you need?',
|
|
957
|
+
options: [
|
|
958
|
+
'Floor',
|
|
959
|
+
'Backsplash',
|
|
960
|
+
'Bathroom',
|
|
961
|
+
'Wall',
|
|
962
|
+
'Not Sure or Other'
|
|
963
|
+
]
|
|
964
|
+
});
|
|
965
|
+
|
|
966
|
+
const waterproofingSubtype$1 = (scope) => verticalRadio({
|
|
967
|
+
name: scope ? scope + ':' + 'Waterproofing_Subtype' : 'Waterproofing_Subtype',
|
|
968
|
+
// label: 'What type of waterproofing work do you need?',
|
|
969
|
+
options: [
|
|
970
|
+
'Foundations',
|
|
971
|
+
'Basements',
|
|
972
|
+
'Drainage',
|
|
973
|
+
'Not Sure or Other'
|
|
974
|
+
]
|
|
975
|
+
});
|
|
976
|
+
|
|
977
|
+
const windowsWorkType$1 = (scope) => verticalRadio({
|
|
978
|
+
name: scope ? scope + ':' + 'Windows_Work_Type' : 'Windows_Work_Type',
|
|
979
|
+
// label: 'What type of windows work do you need?',
|
|
980
|
+
options: [
|
|
981
|
+
'Install or Replace',
|
|
982
|
+
'Repair',
|
|
983
|
+
'Cleaning',
|
|
984
|
+
'Not Sure or Other'
|
|
985
|
+
]
|
|
986
|
+
});
|
|
987
|
+
|
|
988
|
+
const windowsSubtype$1 = (scope) => verticalSelect({
|
|
989
|
+
name: scope ? scope + ':' + 'Windows_Subtype' : 'Windows_Subtype',
|
|
990
|
+
// label: 'What type of windows do you have?',
|
|
991
|
+
options: [
|
|
992
|
+
'Whole Windows',
|
|
993
|
+
'Frames',
|
|
994
|
+
'Glass',
|
|
995
|
+
'Hardware',
|
|
996
|
+
'Storm Windows',
|
|
997
|
+
'Screens',
|
|
998
|
+
'Not Sure or Other'
|
|
999
|
+
]
|
|
1000
|
+
});
|
|
1001
|
+
|
|
1002
|
+
const numberOfWindows$1 = (scope) => verticalRadio({
|
|
1003
|
+
name: scope ? scope + ':' + 'Number_Of_Windows' : 'Number_Of_Windows',
|
|
1004
|
+
// label: 'How many windows?',
|
|
1005
|
+
options: [
|
|
1006
|
+
'1',
|
|
1007
|
+
'2',
|
|
1008
|
+
'3-5',
|
|
1009
|
+
'6+'
|
|
1010
|
+
]
|
|
1011
|
+
});
|
|
1012
|
+
|
|
1013
|
+
const NEXT_ON_ENTER = '$onEnter($setNextStep($fireStepEvent($get(form)), $preStepFunc($get(form))))';
|
|
1014
|
+
const NEXT_ON_INPUT = '$onInput($setNextStep($fireStepEvent($get(form)), $preStepFunc($get(form))))';
|
|
1015
|
+
|
|
1016
|
+
const isInput = (n) => { return (n.type !== 'group' && n.type !== 'section' && n.type !== 'form' && n.$formkit !== 'hidden' && !n.children) };
|
|
1017
|
+
|
|
1018
|
+
const findLastInput = (n) => {
|
|
1019
|
+
if (isInput(n)) {
|
|
1020
|
+
return n
|
|
1021
|
+
}
|
|
1022
|
+
for (var i = n.children.length - 1; i >= 0; i--) {
|
|
1023
|
+
if (typeof n.children === 'string') {
|
|
1024
|
+
continue
|
|
1025
|
+
}
|
|
1026
|
+
const child = n.children[i];
|
|
1027
|
+
if (isInput(child)) {
|
|
1028
|
+
return child
|
|
1029
|
+
}
|
|
1030
|
+
const res = findLastInput(child);
|
|
1031
|
+
if (res) {
|
|
1032
|
+
return res
|
|
1033
|
+
}
|
|
1034
|
+
}
|
|
1035
|
+
return null
|
|
1036
|
+
};
|
|
1037
|
+
|
|
1038
|
+
const secureIconDefault = {
|
|
1039
|
+
$el: 'div',
|
|
1040
|
+
if: '$activeStep === $lastStep()',
|
|
1041
|
+
attrs: {
|
|
1042
|
+
class: 't-flex t-justify-center t-items-center t-text-sm t-text-gray-500'
|
|
1043
|
+
},
|
|
1044
|
+
children: [
|
|
1045
|
+
{
|
|
1046
|
+
$el: 'img',
|
|
1047
|
+
attrs: {
|
|
1048
|
+
loading: 'lazy',
|
|
1049
|
+
alt: '',
|
|
1050
|
+
style: {
|
|
1051
|
+
border: 0
|
|
1052
|
+
},
|
|
1053
|
+
width: '25',
|
|
1054
|
+
height: '25',
|
|
1055
|
+
src: 'https://d27hmee62k45vz.cloudfront.net/lock_icon_1.jpeg',
|
|
1056
|
+
}
|
|
1057
|
+
},
|
|
1058
|
+
{
|
|
1059
|
+
$el: 'span',
|
|
1060
|
+
children: 'Secure & Encrypted',
|
|
1061
|
+
attrs: {
|
|
1062
|
+
class: 't-pl-2 t-pt-1 t-font-medium'
|
|
1063
|
+
}
|
|
1064
|
+
}
|
|
1065
|
+
]
|
|
1066
|
+
};
|
|
1067
|
+
|
|
1068
|
+
function secureIcon(updates) {
|
|
1069
|
+
return merge(
|
|
1070
|
+
secureIconDefault,
|
|
1071
|
+
updates
|
|
1072
|
+
)
|
|
1073
|
+
}
|
|
1074
|
+
|
|
1075
|
+
function verticalStepHeadline(updates) {
|
|
1076
|
+
return {
|
|
1077
|
+
$el: 'h3',
|
|
1078
|
+
children: updates.headline || 'Tell Us About Your Situation',
|
|
1079
|
+
attrs: {
|
|
1080
|
+
class: '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' + ' ' + (updates.headlineClass || '')
|
|
1081
|
+
}
|
|
1082
|
+
}
|
|
1083
|
+
}
|
|
1084
|
+
|
|
1085
|
+
function verticalStepSubHeadline(updates) {
|
|
1086
|
+
return {
|
|
1087
|
+
$el: 'h5',
|
|
1088
|
+
children: updates.subheadline || '',
|
|
1089
|
+
attrs: {
|
|
1090
|
+
class: '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' + ' ' + (updates.subheadlineClass || '')
|
|
1091
|
+
}
|
|
1092
|
+
}
|
|
1093
|
+
}
|
|
1094
|
+
|
|
1095
|
+
function commentsStepHeadline(updates) {
|
|
1096
|
+
return {
|
|
1097
|
+
$el: 'h3',
|
|
1098
|
+
children: updates.headline || 'Additional Details',
|
|
1099
|
+
attrs: {
|
|
1100
|
+
class: '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' + ' ' + (updates.headlineClass || '')
|
|
1101
|
+
}
|
|
1102
|
+
}
|
|
1103
|
+
}
|
|
1104
|
+
|
|
1105
|
+
function firstAndLastStepHeadline(updates) {
|
|
1106
|
+
return {
|
|
1107
|
+
$el: 'h3',
|
|
1108
|
+
children: updates.headline || 'Please Provide a Contact Name',
|
|
1109
|
+
attrs: {
|
|
1110
|
+
class: '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' + ' ' + (updates.headlineClass || '')
|
|
1111
|
+
}
|
|
1112
|
+
}
|
|
1113
|
+
}
|
|
1114
|
+
|
|
1115
|
+
function contactStepHeadline(updates) {
|
|
1116
|
+
return {
|
|
1117
|
+
$el: 'h3',
|
|
1118
|
+
children: updates.headline || DEFAULT_FINAL_HEADLINE_DYNAMIC_LEGAL,
|
|
1119
|
+
attrs: {
|
|
1120
|
+
class: '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' + ' ' + (updates.headlineClass || '')
|
|
1121
|
+
}
|
|
1122
|
+
}
|
|
1123
|
+
}
|
|
1124
|
+
|
|
1125
|
+
function contactStepSubHeadline(updates) {
|
|
1126
|
+
return {
|
|
1127
|
+
$el: 'h5',
|
|
1128
|
+
children: updates.subheadline || DEFAULT_FINAL_SUBHEADLINE_DYNAMIC_LEGAL,
|
|
1129
|
+
attrs: {
|
|
1130
|
+
class: 't-flex t-justify-center t-text-center !t-text-lg t-font-semibold t-pb-7 t-pt-0 t-px-3' + ' ' + (updates.subheadlineClass || '')
|
|
1131
|
+
}
|
|
1132
|
+
}
|
|
1133
|
+
}
|
|
1134
|
+
|
|
1135
|
+
const TRUSTED_FORM_JS = `(function() {
|
|
1136
|
+
if (window.xxTrustedFormLoaded) {
|
|
1137
|
+
return
|
|
1138
|
+
}
|
|
1139
|
+
var vid = '';
|
|
1140
|
+
if (typeof window.zar !== 'undefined') {
|
|
1141
|
+
vid = window.zar.getVID();
|
|
1142
|
+
}
|
|
1143
|
+
window.xxTrustedFormLoaded = true;
|
|
1144
|
+
var sandbox = document.location.hostname.indexOf('localhost') > -1 ? 'true' : 'false'
|
|
1145
|
+
var tf = document.createElement('script');
|
|
1146
|
+
tf.type = 'text/javascript'; tf.async = true;
|
|
1147
|
+
tf.src = ("https:" == document.location.protocol ? 'https' : 'http') + "://api.trustedform.com/trustedform.js?field=xxTrustedFormCertUrl&identifier=" + vid + "&ping_field=xxTrustedFormPingUrl&provideReferrer=false&invert_field_sensitivity=true&sandbox=" + sandbox + "&l=" + new Date().getTime() + Math.random();
|
|
1148
|
+
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(tf, s);
|
|
1149
|
+
})();`;
|
|
1150
|
+
|
|
1151
|
+
function trustedFormScript() {
|
|
1152
|
+
return {
|
|
1153
|
+
$el: 'script',
|
|
1154
|
+
if: '$activeStep === $lastStep()',
|
|
1155
|
+
children: TRUSTED_FORM_JS
|
|
1156
|
+
}
|
|
1157
|
+
}
|
|
1158
|
+
|
|
1159
|
+
const stepDefaults = (step, stepKey) => ({
|
|
1160
|
+
$el: 'section',
|
|
1161
|
+
if: '$stepEnabled("' + step + '")',
|
|
1162
|
+
attrs: {
|
|
1163
|
+
hidden: '$activeStep !== "' + step + '"',
|
|
1164
|
+
key: stepKey ? stepKey : step
|
|
1165
|
+
}
|
|
1166
|
+
});
|
|
1167
|
+
|
|
1168
|
+
function step(name, inputs, updates = {}) {
|
|
1169
|
+
const {
|
|
1170
|
+
nextOnEnter = true,
|
|
1171
|
+
nextOnInput = false,
|
|
1172
|
+
stepKey = undefined,
|
|
1173
|
+
nextStepMap = undefined,
|
|
1174
|
+
triggerRedirectMap = undefined,
|
|
1175
|
+
autoFocus = undefined,
|
|
1176
|
+
} = updates;
|
|
1177
|
+
|
|
1178
|
+
if (inputs && inputs.length && (nextOnEnter || nextOnInput)) {
|
|
1179
|
+
const lastInput = findLastInput(inputs[inputs.length - 1]);
|
|
1180
|
+
if (lastInput && nextOnEnter === true) {
|
|
1181
|
+
lastInput.onKeypress = NEXT_ON_ENTER;
|
|
1182
|
+
}
|
|
1183
|
+
if (lastInput && nextOnInput === true) {
|
|
1184
|
+
lastInput.onInput = NEXT_ON_INPUT;
|
|
1185
|
+
}
|
|
1186
|
+
}
|
|
1187
|
+
|
|
1188
|
+
return merge(
|
|
1189
|
+
stepDefaults(name, stepKey),
|
|
1190
|
+
{
|
|
1191
|
+
children: [
|
|
1192
|
+
{
|
|
1193
|
+
$formkit: 'group',
|
|
1194
|
+
id: name,
|
|
1195
|
+
name: name,
|
|
1196
|
+
nextStepMap: nextStepMap,
|
|
1197
|
+
triggerRedirectMap: triggerRedirectMap,
|
|
1198
|
+
autoFocus: autoFocus,
|
|
1199
|
+
children: inputs
|
|
1200
|
+
}
|
|
1201
|
+
]
|
|
1202
|
+
}
|
|
1203
|
+
)
|
|
1204
|
+
}
|
|
1205
|
+
|
|
1206
|
+
// Single question step
|
|
1207
|
+
function sqstep(name, input, defaultHeadline, updates = {}) {
|
|
1208
|
+
if (typeof updates.nextOnInput === 'undefined') {
|
|
1209
|
+
updates.nextOnInput = true;
|
|
1210
|
+
}
|
|
1211
|
+
|
|
1212
|
+
return step(
|
|
1213
|
+
name,
|
|
1214
|
+
[
|
|
1215
|
+
verticalStepHeadline({ headline: updates.headline ?? defaultHeadline, headlineClass: updates.headlineClass }),
|
|
1216
|
+
...Array.isArray(input) ? input : [input],
|
|
1217
|
+
],
|
|
1218
|
+
updates
|
|
1219
|
+
)
|
|
1220
|
+
}
|
|
1221
|
+
|
|
1222
|
+
|
|
1223
|
+
// ------ Common Steps
|
|
1224
|
+
|
|
1225
|
+
function address(updates = {}) {
|
|
1226
|
+
updates.nextOnInput = typeof updates.nextOnInput === 'undefined' ? false : updates.nextOnInput;
|
|
1227
|
+
return sqstep(
|
|
1228
|
+
'address',
|
|
1229
|
+
address$1(updates.scope, true),
|
|
1230
|
+
'What is the street address of the home?',
|
|
1231
|
+
updates
|
|
1232
|
+
)
|
|
1233
|
+
}
|
|
1234
|
+
|
|
1235
|
+
function commentsHeadline(updates = {}) {
|
|
1236
|
+
const mergedUpdates = { ...updates, nextOnEnter: false };
|
|
1237
|
+
|
|
1238
|
+
return step(
|
|
1239
|
+
'comments',
|
|
1240
|
+
[
|
|
1241
|
+
commentsStepHeadline(updates),
|
|
1242
|
+
comments({
|
|
1243
|
+
label: typeof updates.label === 'undefined' ? DEFAULT_COMMENTS_LABEL : updates.label,
|
|
1244
|
+
placeholder: updates.placeholder || DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC,
|
|
1245
|
+
inputClass: typeof updates.inputClass === 'undefined' ? '!t-h-32' : updates.inputClass,
|
|
1246
|
+
}, updates.scope),
|
|
1247
|
+
],
|
|
1248
|
+
mergedUpdates
|
|
1249
|
+
)
|
|
1250
|
+
}
|
|
1251
|
+
|
|
1252
|
+
function contactInfo(updates = {}) {
|
|
1253
|
+
return step(
|
|
1254
|
+
'contactInfo',
|
|
1255
|
+
[
|
|
1256
|
+
contactStepHeadline(updates),
|
|
1257
|
+
contactStepSubHeadline(updates),
|
|
1258
|
+
trustedFormScript(),
|
|
1259
|
+
email(updates.scope),
|
|
1260
|
+
phone(updates.scope),
|
|
1261
|
+
TCPAConsent(updates.scope),
|
|
1262
|
+
secureIcon()
|
|
1263
|
+
],
|
|
1264
|
+
{ nextOnEnter: false }
|
|
1265
|
+
)
|
|
1266
|
+
}
|
|
1267
|
+
|
|
1268
|
+
function firstAndLastV3(updates = {}, scope) {
|
|
1269
|
+
return step(
|
|
1270
|
+
'firstAndLast',
|
|
1271
|
+
[
|
|
1272
|
+
firstAndLastStepHeadline({
|
|
1273
|
+
headline: updates.headline ?? 'Who is looking for help?',
|
|
1274
|
+
headlineClass: updates.headlineClass
|
|
1275
|
+
}),
|
|
1276
|
+
verticalStepSubHeadline({
|
|
1277
|
+
subheadline: updates.subheadline ?? 'Note: we never share info without consent',
|
|
1278
|
+
subheadlineClass: '!t-text-sm !t-text-gray-500'
|
|
1279
|
+
}),
|
|
1280
|
+
firstName(scope),
|
|
1281
|
+
lastName(scope)
|
|
1282
|
+
],
|
|
1283
|
+
updates
|
|
1284
|
+
)
|
|
1285
|
+
}
|
|
1286
|
+
|
|
1287
|
+
function zipcode(updates = {}) {
|
|
1288
|
+
return sqstep(
|
|
1289
|
+
'zipcode',
|
|
1290
|
+
zipcode$1(updates.scope, true, updates),
|
|
1291
|
+
'Please verify your Zip Code',
|
|
1292
|
+
updates
|
|
1293
|
+
)
|
|
1294
|
+
}
|
|
1295
|
+
|
|
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
|
+
function homeImprovementCategory(updates = {}) {
|
|
1612
|
+
return step(
|
|
1613
|
+
'homeImprovementCategory',
|
|
1614
|
+
[
|
|
1615
|
+
homeImprovementCategory$1(updates.input),
|
|
1616
|
+
],
|
|
1617
|
+
updates
|
|
1618
|
+
)
|
|
1619
|
+
}
|
|
1620
|
+
|
|
1621
|
+
function timeframe(updates = {}) {
|
|
1622
|
+
return sqstep(
|
|
1623
|
+
'timeframe',
|
|
1624
|
+
timeframe$1(),
|
|
1625
|
+
'What is the project timeframe?',
|
|
1626
|
+
updates
|
|
1627
|
+
)
|
|
1628
|
+
}
|
|
1629
|
+
|
|
1630
|
+
function ownHome(updates = {}) {
|
|
1631
|
+
return sqstep(
|
|
1632
|
+
'ownHome',
|
|
1633
|
+
ownHome$1(),
|
|
1634
|
+
'Do you own the home?',
|
|
1635
|
+
updates
|
|
1636
|
+
)
|
|
1637
|
+
}
|
|
1638
|
+
|
|
1639
|
+
function additionsSubType(updates = {}) {
|
|
1640
|
+
return sqstep(
|
|
1641
|
+
'additionsSubType',
|
|
1642
|
+
additionsSubType$1(),
|
|
1643
|
+
'What type of addition?',
|
|
1644
|
+
updates
|
|
1645
|
+
)
|
|
1646
|
+
}
|
|
1647
|
+
|
|
1648
|
+
function constructionAreaSize(updates = {}) {
|
|
1649
|
+
return sqstep(
|
|
1650
|
+
'constructionAreaSize',
|
|
1651
|
+
constructionAreaSize$1(),
|
|
1652
|
+
'What is the size of the construction area?',
|
|
1653
|
+
updates
|
|
1654
|
+
)
|
|
1655
|
+
}
|
|
1656
|
+
|
|
1657
|
+
function homeImprovementWorkType(updates = {}) {
|
|
1658
|
+
return sqstep(
|
|
1659
|
+
'homeImprovementWorkType',
|
|
1660
|
+
homeImprovementWorkType$1(),
|
|
1661
|
+
'What type of work?',
|
|
1662
|
+
updates
|
|
1663
|
+
)
|
|
1664
|
+
}
|
|
1665
|
+
|
|
1666
|
+
function applianceType(updates = {}) {
|
|
1667
|
+
return sqstep(
|
|
1668
|
+
'applianceType',
|
|
1669
|
+
applianceType$1(),
|
|
1670
|
+
'What type of appliance?',
|
|
1671
|
+
updates
|
|
1672
|
+
)
|
|
1673
|
+
}
|
|
1674
|
+
|
|
1675
|
+
function cabinetWorkType(updates = {}) {
|
|
1676
|
+
return sqstep(
|
|
1677
|
+
'cabinetWorkType',
|
|
1678
|
+
cabinetWorkType$1(),
|
|
1679
|
+
'What type of cabinet work?',
|
|
1680
|
+
updates
|
|
1681
|
+
)
|
|
1682
|
+
}
|
|
1683
|
+
|
|
1684
|
+
function carpentrySubtype(updates = {}) {
|
|
1685
|
+
return sqstep(
|
|
1686
|
+
'carpentrySubtype',
|
|
1687
|
+
carpentrySubtype$1(),
|
|
1688
|
+
'What type of carpentry work?',
|
|
1689
|
+
updates
|
|
1690
|
+
)
|
|
1691
|
+
}
|
|
1692
|
+
|
|
1693
|
+
function carpetWorkType(updates = {}) {
|
|
1694
|
+
return sqstep(
|
|
1695
|
+
'carpetWorkType',
|
|
1696
|
+
carpetWorkType$1(),
|
|
1697
|
+
'What type of carpet work?',
|
|
1698
|
+
updates
|
|
1699
|
+
)
|
|
1700
|
+
}
|
|
1701
|
+
|
|
1702
|
+
function cleaningSubtype(updates = {}) {
|
|
1703
|
+
return sqstep(
|
|
1704
|
+
'cleaningSubtype',
|
|
1705
|
+
cleaningSubtype$1(),
|
|
1706
|
+
'What type of cleaning?',
|
|
1707
|
+
updates
|
|
1708
|
+
)
|
|
1709
|
+
}
|
|
1710
|
+
|
|
1711
|
+
function countertopMaterial(updates = {}) {
|
|
1712
|
+
return sqstep(
|
|
1713
|
+
'countertopMaterial',
|
|
1714
|
+
countertopMaterial$1(),
|
|
1715
|
+
'What type of countertop material?',
|
|
1716
|
+
updates
|
|
1717
|
+
)
|
|
1718
|
+
}
|
|
1719
|
+
|
|
1720
|
+
function deckWorkType(updates = {}) {
|
|
1721
|
+
return sqstep(
|
|
1722
|
+
'deckWorkType',
|
|
1723
|
+
deckWorkType$1(),
|
|
1724
|
+
'What type of deck work?',
|
|
1725
|
+
updates
|
|
1726
|
+
)
|
|
1727
|
+
}
|
|
1728
|
+
|
|
1729
|
+
function demolitionSubtype(updates = {}) {
|
|
1730
|
+
return sqstep(
|
|
1731
|
+
'demolitionSubtype',
|
|
1732
|
+
demolitionSubtype$1(),
|
|
1733
|
+
'What type of demolition?',
|
|
1734
|
+
updates
|
|
1735
|
+
)
|
|
1736
|
+
}
|
|
1737
|
+
|
|
1738
|
+
function doorSubtype(updates = {}) {
|
|
1739
|
+
return sqstep(
|
|
1740
|
+
'doorSubtype',
|
|
1741
|
+
doorSubtype$1(),
|
|
1742
|
+
'What type of door?',
|
|
1743
|
+
updates
|
|
1744
|
+
)
|
|
1745
|
+
}
|
|
1746
|
+
|
|
1747
|
+
function drivewayWorkType(updates = {}) {
|
|
1748
|
+
return sqstep(
|
|
1749
|
+
'drivewayWorkType',
|
|
1750
|
+
drivewayWorkType$1(),
|
|
1751
|
+
'What type of driveway work?',
|
|
1752
|
+
updates
|
|
1753
|
+
)
|
|
1754
|
+
}
|
|
1755
|
+
|
|
1756
|
+
function drivewayMaterial(updates = {}) {
|
|
1757
|
+
return sqstep(
|
|
1758
|
+
'drivewayMaterial',
|
|
1759
|
+
drivewayMaterial$1(),
|
|
1760
|
+
'What type of driveway material?',
|
|
1761
|
+
updates
|
|
1762
|
+
)
|
|
1763
|
+
}
|
|
1764
|
+
|
|
1765
|
+
function wallSurfaceType(updates = {}) {
|
|
1766
|
+
return sqstep(
|
|
1767
|
+
'wallSurfaceType',
|
|
1768
|
+
wallSurfaceType$1(),
|
|
1769
|
+
'What type of surface?',
|
|
1770
|
+
updates
|
|
1771
|
+
)
|
|
1772
|
+
}
|
|
1773
|
+
|
|
1774
|
+
function electricalSubtype(updates = {}) {
|
|
1775
|
+
return sqstep(
|
|
1776
|
+
'electricalSubtype',
|
|
1777
|
+
electricalSubtype$1(),
|
|
1778
|
+
'What type of electrical work?',
|
|
1779
|
+
updates
|
|
1780
|
+
)
|
|
1781
|
+
}
|
|
1782
|
+
|
|
1783
|
+
function fenceMaterial(updates = {}) {
|
|
1784
|
+
return sqstep(
|
|
1785
|
+
'fenceMaterial',
|
|
1786
|
+
fenceMaterial$1(),
|
|
1787
|
+
'What type of fence material?',
|
|
1788
|
+
updates
|
|
1789
|
+
)
|
|
1790
|
+
}
|
|
1791
|
+
|
|
1792
|
+
function flooringMaterial(updates = {}) {
|
|
1793
|
+
return sqstep(
|
|
1794
|
+
'flooringMaterial',
|
|
1795
|
+
flooringMaterial$1(),
|
|
1796
|
+
'What type of flooring material?',
|
|
1797
|
+
updates
|
|
1798
|
+
)
|
|
1799
|
+
}
|
|
1800
|
+
|
|
1801
|
+
function generalContractorSubtype(updates = {}) {
|
|
1802
|
+
return sqstep(
|
|
1803
|
+
'generalContractorSubtype',
|
|
1804
|
+
generalContractorSubtype$1(),
|
|
1805
|
+
'What type of general contractor work?',
|
|
1806
|
+
updates
|
|
1807
|
+
)
|
|
1808
|
+
}
|
|
1809
|
+
|
|
1810
|
+
function gutterMaterial(updates = {}) {
|
|
1811
|
+
return sqstep(
|
|
1812
|
+
'gutterMaterial',
|
|
1813
|
+
gutterMaterial$1(),
|
|
1814
|
+
'What type of gutter material?',
|
|
1815
|
+
updates
|
|
1816
|
+
)
|
|
1817
|
+
}
|
|
1818
|
+
|
|
1819
|
+
function guttersWorkType(updates = {}) {
|
|
1820
|
+
return sqstep(
|
|
1821
|
+
'guttersWorkType',
|
|
1822
|
+
guttersWorkType$1(),
|
|
1823
|
+
'What type of gutter work?',
|
|
1824
|
+
updates
|
|
1825
|
+
)
|
|
1826
|
+
}
|
|
1827
|
+
|
|
1828
|
+
function smartHomeSubtype(updates = {}) {
|
|
1829
|
+
return sqstep(
|
|
1830
|
+
'smartHomeSubtype',
|
|
1831
|
+
smartHomeSubtype$1(),
|
|
1832
|
+
'What type of smart home work?',
|
|
1833
|
+
updates
|
|
1834
|
+
)
|
|
1835
|
+
}
|
|
1836
|
+
|
|
1837
|
+
function homeOrganizationSubtype(updates = {}) {
|
|
1838
|
+
return sqstep(
|
|
1839
|
+
'homeOrganizationSubtype',
|
|
1840
|
+
homeOrganizationSubtype$1(),
|
|
1841
|
+
'What type of home organization work?',
|
|
1842
|
+
updates
|
|
1843
|
+
)
|
|
1844
|
+
}
|
|
1845
|
+
|
|
1846
|
+
function numberOfRooms(updates = {}) {
|
|
1847
|
+
return sqstep(
|
|
1848
|
+
'numberOfRooms',
|
|
1849
|
+
numberOfRooms$1(),
|
|
1850
|
+
'How many rooms?',
|
|
1851
|
+
updates
|
|
1852
|
+
)
|
|
1853
|
+
}
|
|
1854
|
+
|
|
1855
|
+
function homeTheaterSubtype(updates = {}) {
|
|
1856
|
+
return sqstep(
|
|
1857
|
+
'homeTheaterSubtype',
|
|
1858
|
+
homeTheaterSubtype$1(),
|
|
1859
|
+
'What type of home theater work?',
|
|
1860
|
+
updates
|
|
1861
|
+
)
|
|
1862
|
+
}
|
|
1863
|
+
|
|
1864
|
+
function heatingCoolingSubtype(updates = {}) {
|
|
1865
|
+
return sqstep(
|
|
1866
|
+
'heatingCoolingSubtype',
|
|
1867
|
+
heatingCoolingSubtype$1(),
|
|
1868
|
+
'What type of heating and cooling work?',
|
|
1869
|
+
updates
|
|
1870
|
+
)
|
|
1871
|
+
}
|
|
1872
|
+
|
|
1873
|
+
function fuelSource(updates = {}) {
|
|
1874
|
+
return sqstep(
|
|
1875
|
+
'fuelSource',
|
|
1876
|
+
fuelSource$1(),
|
|
1877
|
+
'What type of fuel source?',
|
|
1878
|
+
updates
|
|
1879
|
+
)
|
|
1880
|
+
}
|
|
1881
|
+
|
|
1882
|
+
function insulationSubtype(updates = {}) {
|
|
1883
|
+
return sqstep(
|
|
1884
|
+
'insulationSubtype',
|
|
1885
|
+
insulationSubtype$1(),
|
|
1886
|
+
'What type of insulation work?',
|
|
1887
|
+
updates
|
|
1888
|
+
)
|
|
1889
|
+
}
|
|
1890
|
+
|
|
1891
|
+
function landscapingSubtype(updates = {}) {
|
|
1892
|
+
return sqstep(
|
|
1893
|
+
'landscapingSubtype',
|
|
1894
|
+
landscapingSubtype$1(),
|
|
1895
|
+
'What type of landscaping work?',
|
|
1896
|
+
updates
|
|
1897
|
+
)
|
|
1898
|
+
}
|
|
1899
|
+
|
|
1900
|
+
function masonrySubtype(updates = {}) {
|
|
1901
|
+
return sqstep(
|
|
1902
|
+
'masonrySubtype',
|
|
1903
|
+
masonrySubtype$1(),
|
|
1904
|
+
'What type of masonry work?',
|
|
1905
|
+
updates
|
|
1906
|
+
)
|
|
1907
|
+
}
|
|
1908
|
+
|
|
1909
|
+
function masonryMaterial(updates = {}) {
|
|
1910
|
+
return sqstep(
|
|
1911
|
+
'masonryMaterial',
|
|
1912
|
+
masonryMaterial$1(),
|
|
1913
|
+
'What type of masonry material?',
|
|
1914
|
+
updates
|
|
1915
|
+
)
|
|
1916
|
+
}
|
|
1917
|
+
|
|
1918
|
+
function masonryWorkType(updates = {}) {
|
|
1919
|
+
return sqstep(
|
|
1920
|
+
'masonryWorkType',
|
|
1921
|
+
masonryWorkType$1(),
|
|
1922
|
+
'What type of masonry work?',
|
|
1923
|
+
updates
|
|
1924
|
+
)
|
|
1925
|
+
}
|
|
1926
|
+
|
|
1927
|
+
function restorationSubtype(updates = {}) {
|
|
1928
|
+
return sqstep(
|
|
1929
|
+
'restorationSubtype',
|
|
1930
|
+
restorationSubtype$1(),
|
|
1931
|
+
'What type of restoration work?',
|
|
1932
|
+
updates
|
|
1933
|
+
)
|
|
1934
|
+
}
|
|
1935
|
+
|
|
1936
|
+
// TODO: need to finalize support for moving
|
|
1937
|
+
|
|
1938
|
+
// export function movingFromAddress(updates = {}) {
|
|
1939
|
+
// return sqstep(
|
|
1940
|
+
// 'movingFromAddress',
|
|
1941
|
+
// inp.movingFromAddress(),
|
|
1942
|
+
// 'Moving from address:',
|
|
1943
|
+
// updates
|
|
1944
|
+
// )
|
|
1945
|
+
// }
|
|
1946
|
+
|
|
1947
|
+
// export function movingToAddress(updates = {}) {
|
|
1948
|
+
// return sqstep(
|
|
1949
|
+
// 'movingToAddress',
|
|
1950
|
+
// inp.movingToAddress(),
|
|
1951
|
+
// 'Moving to address:',
|
|
1952
|
+
// updates
|
|
1953
|
+
// )
|
|
1954
|
+
// }
|
|
1955
|
+
|
|
1956
|
+
// export function movingHouseholdSize(updates = {}) {
|
|
1957
|
+
// return sqstep(
|
|
1958
|
+
// 'movingHouseholdSize',
|
|
1959
|
+
// inp.movingHouseholdSize(),
|
|
1960
|
+
// 'Household size:',
|
|
1961
|
+
// updates
|
|
1962
|
+
// )
|
|
1963
|
+
// }
|
|
1964
|
+
|
|
1965
|
+
function paintingSubtype(updates = {}) {
|
|
1966
|
+
return sqstep(
|
|
1967
|
+
'paintingSubtype',
|
|
1968
|
+
paintingSubtype$1(),
|
|
1969
|
+
'What type of painting work?',
|
|
1970
|
+
updates
|
|
1971
|
+
)
|
|
1972
|
+
}
|
|
1973
|
+
|
|
1974
|
+
function paintingRooms(updates = {}) {
|
|
1975
|
+
return sqstep(
|
|
1976
|
+
'paintingRooms',
|
|
1977
|
+
paintingRooms$1(),
|
|
1978
|
+
'How many rooms need painting?',
|
|
1979
|
+
updates
|
|
1980
|
+
)
|
|
1981
|
+
}
|
|
1982
|
+
|
|
1983
|
+
function pestControlSubtype(updates = {}) {
|
|
1984
|
+
return sqstep(
|
|
1985
|
+
'pestControlSubtype',
|
|
1986
|
+
pestControlSubtype$1(),
|
|
1987
|
+
'What type of pest control work?',
|
|
1988
|
+
updates
|
|
1989
|
+
)
|
|
1990
|
+
}
|
|
1991
|
+
|
|
1992
|
+
function poolsWorkType(updates = {}) {
|
|
1993
|
+
return sqstep(
|
|
1994
|
+
'poolsWorkType',
|
|
1995
|
+
poolsWorkType$1(),
|
|
1996
|
+
'What type of pool work?',
|
|
1997
|
+
updates
|
|
1998
|
+
)
|
|
1999
|
+
}
|
|
2000
|
+
|
|
2001
|
+
function poolsSubtype(updates = {}) {
|
|
2002
|
+
return sqstep(
|
|
2003
|
+
'poolsSubtype',
|
|
2004
|
+
poolsSubtype$1(),
|
|
2005
|
+
'What type of pool work?',
|
|
2006
|
+
updates
|
|
2007
|
+
)
|
|
2008
|
+
}
|
|
2009
|
+
|
|
2010
|
+
function plumbingSubtype(updates = {}) {
|
|
2011
|
+
return sqstep(
|
|
2012
|
+
'plumbingSubtype',
|
|
2013
|
+
plumbingSubtype$1(),
|
|
2014
|
+
'What type of plumbing work?',
|
|
2015
|
+
updates
|
|
2016
|
+
)
|
|
2017
|
+
}
|
|
2018
|
+
|
|
2019
|
+
function remodelingSubtype(updates = {}) {
|
|
2020
|
+
return sqstep(
|
|
2021
|
+
'remodelingSubtype',
|
|
2022
|
+
remodelingSubtype$1(),
|
|
2023
|
+
'What type of remodeling work?',
|
|
2024
|
+
updates
|
|
2025
|
+
)
|
|
2026
|
+
}
|
|
2027
|
+
|
|
2028
|
+
function roofingWorkType(updates = {}) {
|
|
2029
|
+
return sqstep(
|
|
2030
|
+
'roofingWorkType',
|
|
2031
|
+
roofingWorkType$1(),
|
|
2032
|
+
'What type of roofing work?',
|
|
2033
|
+
updates
|
|
2034
|
+
)
|
|
2035
|
+
}
|
|
2036
|
+
|
|
2037
|
+
function roofingMaterial(updates = {}) {
|
|
2038
|
+
return sqstep(
|
|
2039
|
+
'roofingMaterial',
|
|
2040
|
+
roofingMaterial$1(),
|
|
2041
|
+
'What type of roofing material?',
|
|
2042
|
+
updates
|
|
2043
|
+
)
|
|
2044
|
+
}
|
|
2045
|
+
|
|
2046
|
+
function sidingMaterial(updates = {}) {
|
|
2047
|
+
return sqstep(
|
|
2048
|
+
'sidingMaterial',
|
|
2049
|
+
sidingMaterial$1(),
|
|
2050
|
+
'What type of siding material?',
|
|
2051
|
+
updates
|
|
2052
|
+
)
|
|
2053
|
+
}
|
|
2054
|
+
|
|
2055
|
+
function tilingSubtype(updates = {}) {
|
|
2056
|
+
return sqstep(
|
|
2057
|
+
'tilingSubtype',
|
|
2058
|
+
tilingSubtype$1(),
|
|
2059
|
+
'What type of tiling work?',
|
|
2060
|
+
updates
|
|
2061
|
+
)
|
|
2062
|
+
}
|
|
2063
|
+
|
|
2064
|
+
function waterproofingSubtype(updates = {}) {
|
|
2065
|
+
return sqstep(
|
|
2066
|
+
'waterproofingSubtype',
|
|
2067
|
+
waterproofingSubtype$1(),
|
|
2068
|
+
'What type of waterproofing work?',
|
|
2069
|
+
updates
|
|
2070
|
+
)
|
|
2071
|
+
}
|
|
2072
|
+
|
|
2073
|
+
function windowsWorkType(updates = {}) {
|
|
2074
|
+
return sqstep(
|
|
2075
|
+
'windowsWorkType',
|
|
2076
|
+
windowsWorkType$1(),
|
|
2077
|
+
'What type of windows work?',
|
|
2078
|
+
updates
|
|
2079
|
+
)
|
|
2080
|
+
}
|
|
2081
|
+
|
|
2082
|
+
function windowsSubtype(updates = {}) {
|
|
2083
|
+
return sqstep(
|
|
2084
|
+
'windowsSubtype',
|
|
2085
|
+
windowsSubtype$1(),
|
|
2086
|
+
'What type of windows work?',
|
|
2087
|
+
updates
|
|
2088
|
+
)
|
|
2089
|
+
}
|
|
2090
|
+
|
|
2091
|
+
function numberOfWindows(updates = {}) {
|
|
2092
|
+
return sqstep(
|
|
2093
|
+
'numberOfWindows',
|
|
2094
|
+
numberOfWindows$1(),
|
|
2095
|
+
'How many windows?',
|
|
2096
|
+
updates
|
|
2097
|
+
)
|
|
2098
|
+
}
|
|
2099
|
+
|
|
2100
|
+
const formNavigation = (updates = {}) => ({
|
|
2101
|
+
$el: 'div',
|
|
2102
|
+
attrs: {
|
|
2103
|
+
class: 'step-nav'
|
|
2104
|
+
},
|
|
2105
|
+
children: [
|
|
2106
|
+
{
|
|
2107
|
+
$formkit: 'button',
|
|
2108
|
+
name: 'back_button',
|
|
2109
|
+
onClick: '$setPreviousStep($prevStepFunc($get(form)))',
|
|
2110
|
+
children: 'Back',
|
|
2111
|
+
style: {
|
|
2112
|
+
if: '$activeStep === $firstStep()',
|
|
2113
|
+
then: 'visibility: hidden;'
|
|
2114
|
+
}
|
|
2115
|
+
},
|
|
2116
|
+
{
|
|
2117
|
+
$formkit: 'button',
|
|
2118
|
+
name: 'next_button',
|
|
2119
|
+
onClick: '$setNextStep($fireStepEvent($get(form)), $preStepFunc($get(form)))',
|
|
2120
|
+
children: {
|
|
2121
|
+
if: '$activeStep === $firstStep()',
|
|
2122
|
+
then: 'Start',
|
|
2123
|
+
else: 'Next'
|
|
2124
|
+
},
|
|
2125
|
+
outerClass: {
|
|
2126
|
+
if: '$activeStep === $lastStep()',
|
|
2127
|
+
then: 't-hidden',
|
|
2128
|
+
else: ''
|
|
2129
|
+
},
|
|
2130
|
+
style: {
|
|
2131
|
+
if: '$activeStep === $lastStep()',
|
|
2132
|
+
then: 'display: none;'
|
|
2133
|
+
}
|
|
2134
|
+
},
|
|
2135
|
+
{
|
|
2136
|
+
$formkit: 'submit',
|
|
2137
|
+
name: 'submit_button',
|
|
2138
|
+
label: updates.submitLabel || 'Submit',
|
|
2139
|
+
if: '$activeStep === $lastStep()',
|
|
2140
|
+
style: {
|
|
2141
|
+
if: '$activeStep !== $lastStep()',
|
|
2142
|
+
then: 'display: none;'
|
|
2143
|
+
}
|
|
2144
|
+
}
|
|
2145
|
+
]
|
|
2146
|
+
});
|
|
2147
|
+
|
|
2148
|
+
const formDetails = () => ({
|
|
2149
|
+
$el: 'pre',
|
|
2150
|
+
if: '$urlParam("fdbg", "") == 1',
|
|
2151
|
+
children: [
|
|
2152
|
+
{
|
|
2153
|
+
$el: 'pre',
|
|
2154
|
+
children: '$stringify( $get(form).value )',
|
|
2155
|
+
attrs: {
|
|
2156
|
+
class: 't-text-xs',
|
|
2157
|
+
style: 'overflow: scroll'
|
|
2158
|
+
}
|
|
2159
|
+
},
|
|
2160
|
+
{
|
|
2161
|
+
$el: 'pre',
|
|
2162
|
+
children: ['activeStep: ', '$activeStep'],
|
|
2163
|
+
attrs: {
|
|
2164
|
+
class: 't-text-xs',
|
|
2165
|
+
style: 'overflow: scroll'
|
|
2166
|
+
}
|
|
2167
|
+
},
|
|
2168
|
+
{
|
|
2169
|
+
$el: 'pre',
|
|
2170
|
+
children: ['stepHistory: ', '$stepHistory'],
|
|
2171
|
+
attrs: {
|
|
2172
|
+
class: 't-text-xs',
|
|
2173
|
+
style: 'overflow: scroll'
|
|
2174
|
+
}
|
|
2175
|
+
},
|
|
2176
|
+
{
|
|
2177
|
+
$el: 'pre',
|
|
2178
|
+
children: ['stepQueue: ', '$stepQueue'],
|
|
2179
|
+
attrs: {
|
|
2180
|
+
class: 't-text-xs',
|
|
2181
|
+
style: 'overflow: scroll'
|
|
2182
|
+
}
|
|
2183
|
+
},
|
|
2184
|
+
{
|
|
2185
|
+
$el: 'pre',
|
|
2186
|
+
children: ['steps: ', '$stepKeys()'],
|
|
2187
|
+
attrs: {
|
|
2188
|
+
class: 't-text-xs',
|
|
2189
|
+
style: 'overflow: scroll'
|
|
2190
|
+
}
|
|
2191
|
+
}
|
|
2192
|
+
]
|
|
2193
|
+
});
|
|
2194
|
+
|
|
2195
|
+
const formPropDefaults = {
|
|
2196
|
+
type: 'form',
|
|
2197
|
+
id: 'form',
|
|
2198
|
+
config: { validationVisibility: 'submit' },
|
|
2199
|
+
onSubmit: '$submit($submitUrl, $prepData, $handleRedirect, "text/plain; charset=UTF-8")',
|
|
2200
|
+
plugins: '$plugins',
|
|
2201
|
+
actions: false,
|
|
2202
|
+
anchorElement: 'form-anchor',
|
|
2203
|
+
useLocalStorage: true,
|
|
2204
|
+
prepop: {
|
|
2205
|
+
fromURL: true
|
|
2206
|
+
},
|
|
2207
|
+
errorCodes: {
|
|
2208
|
+
403: { message: "An Error Occurred", abort: false },
|
|
2209
|
+
409: { abort: false },
|
|
2210
|
+
429: "An Error Occurred",
|
|
2211
|
+
504: { message: "An Error Occurred", abort: false },
|
|
2212
|
+
},
|
|
2213
|
+
formClass: '!t-max-w-[40rem]'
|
|
2214
|
+
};
|
|
2215
|
+
|
|
2216
|
+
function filterMapByKey(obj, keyList) {
|
|
2217
|
+
return Object.fromEntries(
|
|
2218
|
+
Object.entries(obj).filter(([key]) => keyList.includes(key))
|
|
2219
|
+
);
|
|
2220
|
+
}
|
|
2221
|
+
|
|
2222
|
+
// export function filteredNextStepsMapLegal(keyList) {
|
|
2223
|
+
// const res = { Type_Of_Legal_Problem: filterMapByKey(nextStepsMapGeneralLegal["Type_Of_Legal_Problem"], keyList) }
|
|
2224
|
+
// res["*"] = nextStepsMapGeneralLegal["*"]
|
|
2225
|
+
// return res
|
|
2226
|
+
// }
|
|
2227
|
+
|
|
2228
|
+
function formProps(updates) {
|
|
2229
|
+
const props = merge(
|
|
2230
|
+
formPropDefaults,
|
|
2231
|
+
updates
|
|
2232
|
+
);
|
|
2233
|
+
if (props.formId && !props.name) {
|
|
2234
|
+
props.name = props.formId;
|
|
2235
|
+
}
|
|
2236
|
+
return props
|
|
2237
|
+
}
|
|
2238
|
+
|
|
2239
|
+
const metaDefaults = {};
|
|
2240
|
+
|
|
2241
|
+
function metaProps(updates) {
|
|
2242
|
+
const data = merge(
|
|
2243
|
+
metaDefaults,
|
|
2244
|
+
updates
|
|
2245
|
+
);
|
|
2246
|
+
return {
|
|
2247
|
+
type: 'meta',
|
|
2248
|
+
data
|
|
2249
|
+
}
|
|
2250
|
+
}
|
|
2251
|
+
|
|
2252
|
+
function defaultMetaPropsHomeImprovement(category = null) {
|
|
2253
|
+
let commentsPlaceholders = HomeImprovementCommentsPlaceholders;
|
|
2254
|
+
let finalHeadlines = HomeImprovementFinalHeadlines;
|
|
2255
|
+
let finalSubHeadlines = HomeImprovementFinalSubHeadlines;
|
|
2256
|
+
if (category) {
|
|
2257
|
+
commentsPlaceholders = filterMapByKey(HomeImprovementCommentsPlaceholders, category);
|
|
2258
|
+
finalHeadlines = filterMapByKey(HomeImprovementFinalHeadlines, category);
|
|
2259
|
+
finalSubHeadlines = filterMapByKey(HomeImprovementFinalSubHeadlines, category);
|
|
2260
|
+
}
|
|
2261
|
+
return metaProps({
|
|
2262
|
+
tcpaLanguage: TCPA_LANGUAGE_HOME_IMPROVEMENT,
|
|
2263
|
+
defaultCommentsPlaceholder: DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC_HOME_IMPROVEMENT,
|
|
2264
|
+
commentsPlaceholders: commentsPlaceholders,
|
|
2265
|
+
defaultFinalHeadline: DEFAULT_FINAL_HEADLINE_HOME_IMPROVEMENT,
|
|
2266
|
+
finalHeadlines: finalHeadlines,
|
|
2267
|
+
defaultFinalSubHeadline: DEFAULT_FINAL_SUBHEADLINE_HOME_IMPROVEMENT,
|
|
2268
|
+
finalSubHeadlines: finalSubHeadlines
|
|
2269
|
+
})
|
|
2270
|
+
}
|
|
2271
|
+
|
|
2272
|
+
function dynamicSchemaNode(field = 'Type_Of_Legal_Problem') {
|
|
2273
|
+
return {
|
|
2274
|
+
$cmp: 'FormKitSchema',
|
|
2275
|
+
if: '$get(' + field + ').value',
|
|
2276
|
+
props: {
|
|
2277
|
+
schema: '$meta.dynamicSchema',
|
|
2278
|
+
data: '$buildData($meta)'
|
|
2279
|
+
}
|
|
2280
|
+
}
|
|
2281
|
+
}
|
|
2282
|
+
|
|
2283
|
+
const formAnchorDefaults = {
|
|
2284
|
+
$el: 'div',
|
|
2285
|
+
children: [
|
|
2286
|
+
{
|
|
2287
|
+
$el: 'div',
|
|
2288
|
+
attrs: {
|
|
2289
|
+
id: 'form-anchor',
|
|
2290
|
+
class: 't-absolute',
|
|
2291
|
+
style: { top: '-30px', left: 0 }
|
|
2292
|
+
}
|
|
2293
|
+
}
|
|
2294
|
+
],
|
|
2295
|
+
attrs: {
|
|
2296
|
+
class: 't-relative'
|
|
2297
|
+
}
|
|
2298
|
+
};
|
|
2299
|
+
|
|
2300
|
+
function formAnchor(updates) {
|
|
2301
|
+
return merge(
|
|
2302
|
+
formAnchorDefaults,
|
|
2303
|
+
updates
|
|
2304
|
+
)
|
|
2305
|
+
}
|
|
2306
|
+
|
|
2307
|
+
const progressBarDefaults = {
|
|
2308
|
+
$el: 'div',
|
|
2309
|
+
attrs: {
|
|
2310
|
+
class: 't-mt-7 t-mb-5 t-w-full t-flex t-flex-col t-justify-center t-items-center',
|
|
2311
|
+
style: {
|
|
2312
|
+
if: '$fns.eq($activeStep, $firstStep()) || $fns.eq($activeStep, $lastStep())',
|
|
2313
|
+
then: 'display: none'
|
|
2314
|
+
},
|
|
2315
|
+
},
|
|
2316
|
+
children: [
|
|
2317
|
+
{
|
|
2318
|
+
$el: 'div',
|
|
2319
|
+
attrs: {
|
|
2320
|
+
class: 't-flex t-justify-center'
|
|
2321
|
+
},
|
|
2322
|
+
children: [
|
|
2323
|
+
{
|
|
2324
|
+
$el: 'span',
|
|
2325
|
+
attrs: {
|
|
2326
|
+
id: 'progress-bar-text',
|
|
2327
|
+
class: 't-text-sm t-mb-1'
|
|
2328
|
+
},
|
|
2329
|
+
children: [
|
|
2330
|
+
"0% Complete"
|
|
2331
|
+
]
|
|
2332
|
+
},
|
|
2333
|
+
]
|
|
2334
|
+
},
|
|
2335
|
+
{
|
|
2336
|
+
$el: 'div',
|
|
2337
|
+
attrs: {
|
|
2338
|
+
class: 't-bg-gray-100 t-w-9/12 t-rounded'
|
|
2339
|
+
},
|
|
2340
|
+
children: [
|
|
2341
|
+
{
|
|
2342
|
+
$el: 'div',
|
|
2343
|
+
attrs: {
|
|
2344
|
+
id: 'progress-bar',
|
|
2345
|
+
class: '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
|
+
style: {
|
|
2347
|
+
transition: 'width 0.5s ease'
|
|
2348
|
+
},
|
|
2349
|
+
},
|
|
2350
|
+
}
|
|
2351
|
+
]
|
|
2352
|
+
}
|
|
2353
|
+
]
|
|
2354
|
+
};
|
|
2355
|
+
|
|
2356
|
+
function progressBar(updates) {
|
|
2357
|
+
return merge(
|
|
2358
|
+
progressBarDefaults,
|
|
2359
|
+
updates
|
|
2360
|
+
)
|
|
2361
|
+
}
|
|
2362
|
+
|
|
2363
|
+
function headlineDefaults(updates = {}) {
|
|
2364
|
+
return {
|
|
2365
|
+
$el: 'h1',
|
|
2366
|
+
attrs: {
|
|
2367
|
+
class: 't-flex t-justify-center t-text-center !t-text-[2rem] t-font-semibold t-pt-5 t-px-7 md:t-px-3' + ' ' + (updates.headlineClass || '')
|
|
2368
|
+
}
|
|
2369
|
+
}
|
|
2370
|
+
}
|
|
2371
|
+
|
|
2372
|
+
function headline(updates = {}) {
|
|
2373
|
+
return merge(
|
|
2374
|
+
headlineDefaults(updates),
|
|
2375
|
+
updates
|
|
2376
|
+
)
|
|
2377
|
+
}
|
|
2378
|
+
|
|
2379
|
+
function subHeadlineDefaults(updates = {}) {
|
|
2380
|
+
return {
|
|
2381
|
+
$el: 'h3',
|
|
2382
|
+
attrs: {
|
|
2383
|
+
class: 't-flex t-justify-center t-text-center !t-text-[1.2rem] t-font-medium t-text-blue-500 t-px-10' + ' ' + (updates.subheadlineClass || '')
|
|
2384
|
+
}
|
|
2385
|
+
}
|
|
2386
|
+
}
|
|
2387
|
+
|
|
2388
|
+
function subHeadline(updates = {}) {
|
|
2389
|
+
return merge(
|
|
2390
|
+
subHeadlineDefaults(updates),
|
|
2391
|
+
updates
|
|
2392
|
+
)
|
|
2393
|
+
}
|
|
2394
|
+
|
|
2395
|
+
const hiddenInputsBase = [
|
|
2396
|
+
{
|
|
2397
|
+
$formkit: 'hidden',
|
|
2398
|
+
name: "gclid",
|
|
2399
|
+
value: null
|
|
2400
|
+
},
|
|
2401
|
+
{
|
|
2402
|
+
$formkit: 'hidden',
|
|
2403
|
+
name: "campaignid",
|
|
2404
|
+
value: null
|
|
2405
|
+
},
|
|
2406
|
+
{
|
|
2407
|
+
$formkit: 'hidden',
|
|
2408
|
+
name: "s",
|
|
2409
|
+
value: null
|
|
2410
|
+
}
|
|
2411
|
+
];
|
|
2412
|
+
|
|
2413
|
+
const hiddenInputsHomeImprovement = [
|
|
2414
|
+
{
|
|
2415
|
+
$formkit: 'hidden',
|
|
2416
|
+
name: "vertical",
|
|
2417
|
+
value: "HomeImprovement"
|
|
2418
|
+
},
|
|
2419
|
+
{
|
|
2420
|
+
$formkit: 'hidden',
|
|
2421
|
+
name: "TCPA_Language",
|
|
2422
|
+
value: "$meta.tcpaLanguage"
|
|
2423
|
+
},
|
|
2424
|
+
...hiddenInputsBase
|
|
2425
|
+
];
|
|
2426
|
+
|
|
2427
|
+
const homeImprovementRedirectMapDefaults = {
|
|
2428
|
+
'*': HomeImprovementRedirectUrl()
|
|
2429
|
+
};
|
|
2430
|
+
|
|
2431
|
+
|
|
2432
|
+
function homeImprovementRedirectMap(updates) {
|
|
2433
|
+
return merge(
|
|
2434
|
+
homeImprovementRedirectMapDefaults,
|
|
2435
|
+
updates
|
|
2436
|
+
)
|
|
2437
|
+
}
|
|
2438
|
+
|
|
2439
|
+
|
|
2440
|
+
// ------ Home Improvement
|
|
2441
|
+
|
|
2442
|
+
|
|
2443
|
+
const HomeImprovementCommentsPlaceholders = {
|
|
2444
|
+
'Additions': 'Example: "I would like to add a sunroom to my home"',
|
|
2445
|
+
'Appliances': 'Example: "I need to repair a dishwasher"',
|
|
2446
|
+
'Appraisals': 'Example: "I need to get my home appraised"',
|
|
2447
|
+
'Cabinets': 'Example: "I want to install new kitchen cabinets"',
|
|
2448
|
+
'Carpentry': 'Example: "I need someone to build custom shelves"',
|
|
2449
|
+
'Carpets': 'Example: "I want to replace the carpets in my living room"',
|
|
2450
|
+
'Cleaning': 'Example: "I need a professional cleaning service for my home"',
|
|
2451
|
+
'Countertops': 'Example: "I want to install granite countertops in my kitchen"',
|
|
2452
|
+
'Decks and Porches': 'Example: "I want to build a new deck in my backyard"',
|
|
2453
|
+
'Demolition': 'Example: "I need to demolish a wall in my home"',
|
|
2454
|
+
'Doors': 'Example: "I want to replace the front door of my house"',
|
|
2455
|
+
'Driveways': 'Example: "I need to repair my driveway"',
|
|
2456
|
+
'Drywall and Plaster': 'Example: "I need to repair a hole in my drywall"',
|
|
2457
|
+
'Electrical': 'Example: "I need an electrician to install new light fixtures"',
|
|
2458
|
+
'Fencing': 'Example: "I want to install a privacy fence in my backyard"',
|
|
2459
|
+
'Flooring': 'Example: "I want to install hardwood flooring in my living room"',
|
|
2460
|
+
'Foundations': 'Example: "I need to repair the foundation of my house"',
|
|
2461
|
+
'Garage Doors': 'Example: "I want to replace my garage door"',
|
|
2462
|
+
'General Contractors': 'Example: "I need a general contractor for a home renovation"',
|
|
2463
|
+
'Gutters': 'Example: "I need to clean and repair my gutters"',
|
|
2464
|
+
'Handyman': 'Example: "I need a handyman to fix various things around my house"',
|
|
2465
|
+
'Holiday Decorators': 'Example: "I want to hire someone to decorate my home for the holidays"',
|
|
2466
|
+
'Smart Home': 'Example: "I want to install a smart home automation system"',
|
|
2467
|
+
'Home Builders': 'Example: "I want to build a custom home"',
|
|
2468
|
+
'Home Inspection': 'Example: "I need a home inspection before buying a house"',
|
|
2469
|
+
'Home Organization': 'Example: "I need help organizing my closets and storage"',
|
|
2470
|
+
'Home Security': 'Example: "I want to install a home security system"',
|
|
2471
|
+
'Home Staging': 'Example: "I need a home staging service to prepare my house for sale"',
|
|
2472
|
+
'Home Theater': 'Example: "I want to set up a home theater system"',
|
|
2473
|
+
'Home Warranties': 'Example: "I want to purchase a home warranty"',
|
|
2474
|
+
'Hot Tubs': 'Example: "I want to install a hot tub in my backyard"',
|
|
2475
|
+
'Heating and Cooling': 'Example: "I need to repair my air conditioning unit"',
|
|
2476
|
+
'Insulation': 'Example: "I want to improve the insulation in my home"',
|
|
2477
|
+
'Junk Removal': 'Example: "I need a service to remove junk and debris from my property"',
|
|
2478
|
+
'Landscaping': 'Example: "I want to redesign my backyard landscaping"',
|
|
2479
|
+
'Locksmiths': 'Example: "I need a locksmith to change the locks on my doors"',
|
|
2480
|
+
'Masonry and Concrete': 'Example: "I need to repair a cracked concrete driveway"',
|
|
2481
|
+
'Restoration': 'Example: "I need water damage restoration services"',
|
|
2482
|
+
'Moving': 'Example: "I need a moving company to help me relocate"',
|
|
2483
|
+
'Painting': 'Example: "I want to paint the interior walls of my house"',
|
|
2484
|
+
'Pest Control': 'Example: "I need pest control services for my home"',
|
|
2485
|
+
'Pools': 'Example: "I want to install a swimming pool in my backyard"',
|
|
2486
|
+
'Plumbing': 'Example: "I need a plumber to fix a leaky faucet"',
|
|
2487
|
+
'Pressure Washing': 'Example: "I want to pressure wash the exterior of my house"',
|
|
2488
|
+
'Remodeling': 'Example: "I want to remodel my kitchen"',
|
|
2489
|
+
'Roofing': 'Example: "I need to repair a leaky roof"',
|
|
2490
|
+
'Sheds': 'Example: "I want to build a storage shed in my backyard"',
|
|
2491
|
+
'Siding': 'Example: "I want to replace the siding on my house"',
|
|
2492
|
+
'Solar': 'Example: "I want to install solar panels on my roof"',
|
|
2493
|
+
'Tiling': 'Example: "I want to install new tiles in my bathroom"',
|
|
2494
|
+
'Walk-in Tubs': 'Example: "I want to install a walk-in tub in my bathroom"',
|
|
2495
|
+
'Waterproofing': 'Example: "I need to waterproof my basement"',
|
|
2496
|
+
'Window Cleaning': 'Example: "I need a professional window cleaning service"',
|
|
2497
|
+
'Windows': 'Example: "I want to replace 3 windows in my house"',
|
|
2498
|
+
};
|
|
2499
|
+
|
|
2500
|
+
const HomeImprovementFinalHeadlines = {
|
|
2501
|
+
// 'Additions': '',
|
|
2502
|
+
// 'Appliances': '',
|
|
2503
|
+
// 'Appraisals': '',
|
|
2504
|
+
// 'Cabinets': '',
|
|
2505
|
+
// 'Carpentry': '',
|
|
2506
|
+
// 'Carpets': '',
|
|
2507
|
+
// 'Cleaning': '',
|
|
2508
|
+
// 'Countertops': '',
|
|
2509
|
+
// 'Decks and Porches': '',
|
|
2510
|
+
// 'Demolition': '',
|
|
2511
|
+
// 'Doors': '',
|
|
2512
|
+
// 'Driveways': '',
|
|
2513
|
+
// 'Drywall and Plaster': '',
|
|
2514
|
+
// 'Electrical': '',
|
|
2515
|
+
// 'Fencing': '',
|
|
2516
|
+
// 'Flooring': '',
|
|
2517
|
+
// 'Foundations': '',
|
|
2518
|
+
// 'Garage Doors': '',
|
|
2519
|
+
// 'General Contractors': '',
|
|
2520
|
+
// 'Gutters': '',
|
|
2521
|
+
// 'Handyman': '',
|
|
2522
|
+
// 'Holiday Decorators': '',
|
|
2523
|
+
// 'Smart Home': '',
|
|
2524
|
+
// 'Home Builders': '',
|
|
2525
|
+
// 'Home Inspection': '',
|
|
2526
|
+
// 'Home Organization': '',
|
|
2527
|
+
// 'Home Security': '',
|
|
2528
|
+
// 'Home Staging': '',
|
|
2529
|
+
// 'Home Theater': '',
|
|
2530
|
+
// 'Home Warranties': '',
|
|
2531
|
+
// 'Hot Tubs': '',
|
|
2532
|
+
// 'Heating and Cooling': '',
|
|
2533
|
+
// 'Insulation': '',
|
|
2534
|
+
// 'Junk Removal': '',
|
|
2535
|
+
// 'Landscaping': '',
|
|
2536
|
+
// 'Locksmiths': '',
|
|
2537
|
+
// 'Masonry and Concrete': '',
|
|
2538
|
+
// 'Restoration': '',
|
|
2539
|
+
// 'Moving': '',
|
|
2540
|
+
// 'Painting': '',
|
|
2541
|
+
// 'Pest Control': '',
|
|
2542
|
+
// 'Pools': '',
|
|
2543
|
+
// 'Plumbing': '',
|
|
2544
|
+
// 'Pressure Washing': '',
|
|
2545
|
+
// 'Remodeling': '',
|
|
2546
|
+
// 'Roofing': '',
|
|
2547
|
+
// 'Sheds': '',
|
|
2548
|
+
// 'Siding': '',
|
|
2549
|
+
// 'Solar': '',
|
|
2550
|
+
// 'Tiling': '',
|
|
2551
|
+
// 'Walk-in Tubs': '',
|
|
2552
|
+
// 'Waterproofing': '',
|
|
2553
|
+
// 'Window Cleaning': '',
|
|
2554
|
+
// 'Windows': '',
|
|
2555
|
+
};
|
|
2556
|
+
|
|
2557
|
+
const HomeImprovementFinalSubHeadlines = {
|
|
2558
|
+
// 'Additions': '',
|
|
2559
|
+
// 'Appliances': '',
|
|
2560
|
+
// 'Appraisals': '',
|
|
2561
|
+
// 'Cabinets': '',
|
|
2562
|
+
// 'Carpentry': '',
|
|
2563
|
+
// 'Carpets': '',
|
|
2564
|
+
// 'Cleaning': '',
|
|
2565
|
+
// 'Countertops': '',
|
|
2566
|
+
// 'Decks and Porches': '',
|
|
2567
|
+
// 'Demolition': '',
|
|
2568
|
+
// 'Doors': '',
|
|
2569
|
+
// 'Driveways': '',
|
|
2570
|
+
// 'Drywall and Plaster': '',
|
|
2571
|
+
// 'Electrical': '',
|
|
2572
|
+
// 'Fencing': '',
|
|
2573
|
+
// 'Flooring': '',
|
|
2574
|
+
// 'Foundations': '',
|
|
2575
|
+
// 'Garage Doors': '',
|
|
2576
|
+
// 'General Contractors': '',
|
|
2577
|
+
// 'Gutters': '',
|
|
2578
|
+
// 'Handyman': '',
|
|
2579
|
+
// 'Holiday Decorators': '',
|
|
2580
|
+
// 'Smart Home': '',
|
|
2581
|
+
// 'Home Builders': '',
|
|
2582
|
+
// 'Home Inspection': '',
|
|
2583
|
+
// 'Home Organization': '',
|
|
2584
|
+
// 'Home Security': '',
|
|
2585
|
+
// 'Home Staging': '',
|
|
2586
|
+
// 'Home Theater': '',
|
|
2587
|
+
// 'Home Warranties': '',
|
|
2588
|
+
// 'Hot Tubs': '',
|
|
2589
|
+
// 'Heating and Cooling': '',
|
|
2590
|
+
// 'Insulation': '',
|
|
2591
|
+
// 'Junk Removal': '',
|
|
2592
|
+
// 'Landscaping': '',
|
|
2593
|
+
// 'Locksmiths': '',
|
|
2594
|
+
// 'Masonry and Concrete': '',
|
|
2595
|
+
// 'Restoration': '',
|
|
2596
|
+
// 'Moving': '',
|
|
2597
|
+
// 'Painting': '',
|
|
2598
|
+
// 'Pest Control': '',
|
|
2599
|
+
// 'Pools': '',
|
|
2600
|
+
// 'Plumbing': '',
|
|
2601
|
+
// 'Pressure Washing': '',
|
|
2602
|
+
// 'Remodeling': '',
|
|
2603
|
+
// 'Roofing': '',
|
|
2604
|
+
// 'Sheds': '',
|
|
2605
|
+
// 'Siding': '',
|
|
2606
|
+
// 'Solar': '',
|
|
2607
|
+
// 'Tiling': '',
|
|
2608
|
+
// 'Walk-in Tubs': '',
|
|
2609
|
+
// 'Waterproofing': '',
|
|
2610
|
+
// 'Window Cleaning': '',
|
|
2611
|
+
// 'Windows': '',
|
|
2612
|
+
};
|
|
2613
|
+
|
|
2614
|
+
const nextStepsHomeImprovementDefault = [
|
|
2615
|
+
'comments',
|
|
2616
|
+
'timeframe',
|
|
2617
|
+
'ownHome',
|
|
2618
|
+
'zipcode',
|
|
2619
|
+
'address',
|
|
2620
|
+
// 'homeImprovementCrossSells',
|
|
2621
|
+
'firstAndLast',
|
|
2622
|
+
'contactInfo',
|
|
2623
|
+
];
|
|
2624
|
+
|
|
2625
|
+
const nextStepsMapGeneralHomeImprovement = {
|
|
2626
|
+
values: {
|
|
2627
|
+
'Category': {
|
|
2628
|
+
'Additions': [
|
|
2629
|
+
'additionsSubType',
|
|
2630
|
+
'constructionAreaSize',
|
|
2631
|
+
...nextStepsHomeImprovementDefault
|
|
2632
|
+
],
|
|
2633
|
+
'Appliances': [
|
|
2634
|
+
'homeImprovementWorkType',
|
|
2635
|
+
'applianceType',
|
|
2636
|
+
...nextStepsHomeImprovementDefault
|
|
2637
|
+
],
|
|
2638
|
+
'Appraisals': [
|
|
2639
|
+
...nextStepsHomeImprovementDefault
|
|
2640
|
+
],
|
|
2641
|
+
'Cabinets': [
|
|
2642
|
+
'cabinetWorkType',
|
|
2643
|
+
...nextStepsHomeImprovementDefault
|
|
2644
|
+
],
|
|
2645
|
+
'Carpentry': [
|
|
2646
|
+
'carpentrySubtype',
|
|
2647
|
+
'homeImprovementWorkType',
|
|
2648
|
+
...nextStepsHomeImprovementDefault
|
|
2649
|
+
],
|
|
2650
|
+
'Carpets': [
|
|
2651
|
+
'carpetWorkType',
|
|
2652
|
+
...nextStepsHomeImprovementDefault
|
|
2653
|
+
],
|
|
2654
|
+
'Cleaning': [
|
|
2655
|
+
'cleaningSubtype',
|
|
2656
|
+
...nextStepsHomeImprovementDefault
|
|
2657
|
+
],
|
|
2658
|
+
'Countertops': [
|
|
2659
|
+
'countertopMaterial',
|
|
2660
|
+
'homeImprovementWorkType',
|
|
2661
|
+
...nextStepsHomeImprovementDefault
|
|
2662
|
+
],
|
|
2663
|
+
'Decks and Porches': [
|
|
2664
|
+
'deckWorkType',
|
|
2665
|
+
...nextStepsHomeImprovementDefault
|
|
2666
|
+
],
|
|
2667
|
+
'Demolition': [
|
|
2668
|
+
'demolitionSubtype',
|
|
2669
|
+
...nextStepsHomeImprovementDefault
|
|
2670
|
+
],
|
|
2671
|
+
'Doors': [
|
|
2672
|
+
'doorSubtype',
|
|
2673
|
+
'homeImprovementWorkType',
|
|
2674
|
+
...nextStepsHomeImprovementDefault
|
|
2675
|
+
],
|
|
2676
|
+
'Driveways': [
|
|
2677
|
+
'drivewayWorkType',
|
|
2678
|
+
'drivewayMaterial',
|
|
2679
|
+
...nextStepsHomeImprovementDefault
|
|
2680
|
+
],
|
|
2681
|
+
'Drywall and Plaster': [
|
|
2682
|
+
'wallSurfaceType',
|
|
2683
|
+
'homeImprovementWorkType',
|
|
2684
|
+
...nextStepsHomeImprovementDefault
|
|
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
|
+
]
|
|
2858
|
+
},
|
|
2859
|
+
'*': nextStepsHomeImprovementDefault
|
|
2860
|
+
}
|
|
2861
|
+
};
|
|
2862
|
+
|
|
2863
|
+
const nextStepsMapPainting = {
|
|
2864
|
+
values: {
|
|
2865
|
+
'Painting_Subtype': {
|
|
2866
|
+
'Whole Exterior': nextStepsHomeImprovementDefault,
|
|
2867
|
+
'Exterior Touch-up': nextStepsHomeImprovementDefault,
|
|
2868
|
+
'Interior Rooms': [
|
|
2869
|
+
'paintingRooms',
|
|
2870
|
+
...nextStepsHomeImprovementDefault
|
|
2871
|
+
],
|
|
2872
|
+
'Interior Touch-up': [
|
|
2873
|
+
'paintingRooms',
|
|
2874
|
+
...nextStepsHomeImprovementDefault
|
|
2875
|
+
],
|
|
2876
|
+
'Ceilings': [
|
|
2877
|
+
'paintingRooms',
|
|
2878
|
+
...nextStepsHomeImprovementDefault
|
|
2879
|
+
],
|
|
2880
|
+
'Deck': nextStepsHomeImprovementDefault,
|
|
2881
|
+
'Shed': nextStepsHomeImprovementDefault,
|
|
2882
|
+
'Cabinets': nextStepsHomeImprovementDefault,
|
|
2883
|
+
'Not Sure or Other': nextStepsHomeImprovementDefault,
|
|
2884
|
+
}
|
|
2885
|
+
}
|
|
2886
|
+
};
|
|
2887
|
+
|
|
2888
|
+
const meta = defaultMetaPropsHomeImprovement();
|
|
2889
|
+
|
|
2890
|
+
meta.data.dynamicSchema = [
|
|
2891
|
+
zipcode(),
|
|
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
|
+
];
|
|
2963
|
+
|
|
2964
|
+
const schema = [
|
|
2965
|
+
meta,
|
|
2966
|
+
formAnchor(),
|
|
2967
|
+
{
|
|
2968
|
+
$cmp: 'FormKit',
|
|
2969
|
+
props: formProps({
|
|
2970
|
+
formId: 'generalHomeImprovement',
|
|
2971
|
+
redirectMap: homeImprovementRedirectMap(),
|
|
2972
|
+
// valueOverrideMap: forms.homeImprovementAllValueOverrideMap,
|
|
2973
|
+
// crossSellOptionMap: forms.homeImprovementCrossSellOptionMap
|
|
2974
|
+
}),
|
|
2975
|
+
children: [
|
|
2976
|
+
progressBar(),
|
|
2977
|
+
headline({
|
|
2978
|
+
children: '$urlParam("hl", "Get Started Here!")',
|
|
2979
|
+
if: '$activeStep === $firstStep()'
|
|
2980
|
+
}),
|
|
2981
|
+
subHeadline({
|
|
2982
|
+
children: '$urlParam("shl", "Fast. Reliable. Local. Free")',
|
|
2983
|
+
if: '$activeStep === $firstStep()'
|
|
2984
|
+
}),
|
|
2985
|
+
...hiddenInputsHomeImprovement,
|
|
2986
|
+
{
|
|
2987
|
+
$el: 'div',
|
|
2988
|
+
attrs: {
|
|
2989
|
+
class: 'form-body'
|
|
2990
|
+
},
|
|
2991
|
+
children: [
|
|
2992
|
+
homeImprovementCategory({
|
|
2993
|
+
nextOnInput: false,
|
|
2994
|
+
nextStepMap: nextStepsMapGeneralHomeImprovement,
|
|
2995
|
+
headlineClass: 't-text-lg',
|
|
2996
|
+
input: {
|
|
2997
|
+
placeholder: 'Select a Category',
|
|
2998
|
+
innerClass: '!t-max-w-[275px] md:!t-max-w-xl'
|
|
2999
|
+
}
|
|
3000
|
+
}),
|
|
3001
|
+
dynamicSchemaNode('Category'),
|
|
3002
|
+
contactInfo(),
|
|
3003
|
+
formNavigation(),
|
|
3004
|
+
formDetails()
|
|
3005
|
+
]
|
|
3006
|
+
}
|
|
3007
|
+
]
|
|
3008
|
+
}
|
|
3009
|
+
];
|
|
3010
|
+
|
|
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
|
+
export { schema as default };
|