bhl-forms 0.7.4 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bhl-forms.iife.js +4 -4
- package/dist/bhl-forms.modern.iife.js +4 -4
- package/dist/bhl-forms.modern.umd.js +4 -4
- package/dist/bhl-forms.umd.js +1 -1
- package/dist/forms/accidentsAndInjuries.es.js +31 -11
- package/dist/forms/accidentsAndInjuries.iife.js +1 -1
- package/dist/forms/accidentsAndInjuries.json +1 -1
- package/dist/forms/business.es.js +31 -11
- package/dist/forms/business.iife.js +1 -1
- package/dist/forms/business.json +1 -1
- package/dist/forms/childAndFamily.es.js +31 -11
- package/dist/forms/childAndFamily.iife.js +1 -1
- package/dist/forms/childAndFamily.json +1 -1
- package/dist/forms/childAndFamilySingle.es.js +31 -11
- package/dist/forms/childAndFamilySingle.iife.js +1 -1
- package/dist/forms/childAndFamilySingle.json +1 -1
- package/dist/forms/civilLawsuit.es.js +31 -11
- package/dist/forms/civilLawsuit.iife.js +1 -1
- package/dist/forms/civilLawsuit.json +1 -1
- package/dist/forms/contracts.es.js +31 -11
- package/dist/forms/contracts.iife.js +1 -1
- package/dist/forms/contracts.json +1 -1
- package/dist/forms/criminal.es.js +31 -11
- package/dist/forms/criminal.iife.js +1 -1
- package/dist/forms/criminal.json +1 -1
- package/dist/forms/divorce.es.js +31 -11
- package/dist/forms/divorce.iife.js +1 -1
- package/dist/forms/divorce.json +1 -1
- package/dist/forms/employmentAndWorkplace.es.js +31 -11
- package/dist/forms/employmentAndWorkplace.iife.js +1 -1
- package/dist/forms/employmentAndWorkplace.json +1 -1
- package/dist/forms/generalHomeImprovement.es.js +1682 -676
- package/dist/forms/generalHomeImprovement.iife.js +1 -1
- package/dist/forms/generalHomeImprovement.json +1 -1
- package/dist/forms/generalHomeImprovementThankYou.es.js +1166 -751
- package/dist/forms/generalHomeImprovementThankYou.iife.js +1 -1
- package/dist/forms/generalHomeImprovementThankYou.json +1 -1
- package/dist/forms/generalLegal.es.js +31 -11
- package/dist/forms/generalLegal.iife.js +1 -1
- package/dist/forms/generalLegal.json +1 -1
- package/dist/forms/generalLegalJustAnswer.es.js +31 -11
- package/dist/forms/generalLegalJustAnswer.iife.js +1 -1
- package/dist/forms/generalLegalJustAnswer.json +1 -1
- package/dist/forms/generalLegalPopUnder.es.js +31 -11
- package/dist/forms/generalLegalPopUnder.iife.js +1 -1
- package/dist/forms/generalLegalPopUnder.json +1 -1
- package/dist/forms/generalLegalPopUnderSingle.es.js +31 -11
- package/dist/forms/generalLegalPopUnderSingle.iife.js +1 -1
- package/dist/forms/generalLegalPopUnderSingle.json +1 -1
- package/dist/forms/generalLegalSingle.es.js +31 -11
- package/dist/forms/generalLegalSingle.iife.js +1 -1
- package/dist/forms/generalLegalSingle.json +1 -1
- package/dist/forms/generalLegalThankYou.es.js +30 -10
- package/dist/forms/generalLegalThankYou.iife.js +1 -1
- package/dist/forms/generalLegalThankYou.json +1 -1
- package/dist/forms/generalLegalThankYouConsultation.es.js +31 -11
- package/dist/forms/generalLegalThankYouConsultation.iife.js +1 -1
- package/dist/forms/generalLegalThankYouConsultation.json +1 -1
- package/dist/forms/harassmentAndDiscrimination.es.js +31 -11
- package/dist/forms/harassmentAndDiscrimination.iife.js +1 -1
- package/dist/forms/harassmentAndDiscrimination.json +1 -1
- package/dist/forms/landlordTenant.es.js +31 -11
- package/dist/forms/landlordTenant.iife.js +1 -1
- package/dist/forms/landlordTenant.json +1 -1
- package/dist/forms/malpractice.es.js +31 -11
- package/dist/forms/malpractice.iife.js +1 -1
- package/dist/forms/malpractice.json +1 -1
- package/dist/forms/mechanics.es.js +24 -5
- package/dist/forms/mechanics.iife.js +1 -1
- package/dist/forms/mechanics.json +1 -1
- package/dist/forms/patentsAndIP.es.js +31 -11
- package/dist/forms/patentsAndIP.iife.js +1 -1
- package/dist/forms/patentsAndIP.json +1 -1
- package/dist/forms/realEstate.es.js +31 -11
- package/dist/forms/realEstate.iife.js +1 -1
- package/dist/forms/realEstate.json +1 -1
- package/dist/forms/repossession.es.js +31 -11
- package/dist/forms/repossession.iife.js +1 -1
- package/dist/forms/repossession.json +1 -1
- package/dist/forms/ssdi.es.js +22 -4
- package/dist/forms/ssdi.iife.js +1 -1
- package/dist/forms/ssdi.json +1 -1
- package/dist/forms/testForm.es.js +22 -4
- package/dist/forms/testForm.iife.js +1 -1
- package/dist/forms/testForm.json +1 -1
- package/dist/forms/testRedirects.es.js +2 -1
- package/dist/forms/testRedirects.iife.js +1 -1
- package/dist/forms/willsAndTrusts.es.js +31 -11
- package/dist/forms/willsAndTrusts.iife.js +1 -1
- package/dist/forms/willsAndTrusts.json +1 -1
- package/dist/main.css +1 -1
- package/package.json +1 -1
|
@@ -15,10 +15,101 @@ const DEFAULT_FINAL_SUBHEADLINE_DYNAMIC_LEGAL =
|
|
|
15
15
|
'$getKey($meta, "finalSubHeadlines." + $get(Type_Of_Legal_Problem).value, $meta.defaultFinalSubHeadline)';
|
|
16
16
|
|
|
17
17
|
const DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC_HOME_IMPROVEMENT = DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC;
|
|
18
|
-
const DEFAULT_FINAL_HEADLINE_HOME_IMPROVEMENT = "We Found Contractors
|
|
19
|
-
const DEFAULT_FINAL_SUBHEADLINE_HOME_IMPROVEMENT = "Compare quotes and save
|
|
18
|
+
const DEFAULT_FINAL_HEADLINE_HOME_IMPROVEMENT = "We Found Contractors!";
|
|
19
|
+
const DEFAULT_FINAL_SUBHEADLINE_HOME_IMPROVEMENT = "Compare quotes and save. Verify contact info:";
|
|
20
20
|
const TCPA_LANGUAGE_HOME_IMPROVEMENT =
|
|
21
21
|
'By checking this box, I a) agree to the Terms of Use, and b) consent to be contacted by up to four <a href="/providers" target="_blank" class="t-text-blue-600 t-underline">contractors and partners</a> of this website using live, autodialed, pre-recorded, or artificial voice calls, as well as text messages. Your consent is not required as a condition of purchasing any goods or services.';
|
|
22
|
+
const defaultHomeImprovementCrossSells = ["Painting", "Plumbing", "Electrical", "Siding", "Remodeling", "Roofing"];
|
|
23
|
+
const CROSS_SELL_OPTION_MAP_HOME_IMPROVEMENT = {
|
|
24
|
+
// Values can be a list or a map of value -> display value
|
|
25
|
+
Additions: ["Painting", "Landscaping", "Plumbing", "Appliances", "Heating and Cooling", "Driveways"],
|
|
26
|
+
// 'Appliances': [],
|
|
27
|
+
// 'Appraisals': [],
|
|
28
|
+
// 'Cabinets': [],
|
|
29
|
+
// 'Carpentry': [],
|
|
30
|
+
// 'Carpets': [],
|
|
31
|
+
// 'Cleaning': [],
|
|
32
|
+
// 'Countertops': [],
|
|
33
|
+
// 'Decks and Porches': [],
|
|
34
|
+
// 'Demolition': [],
|
|
35
|
+
// 'Doors': [],
|
|
36
|
+
// 'Driveways': [],
|
|
37
|
+
// 'Drywall and Plaster': [],
|
|
38
|
+
Electrical: ["Painting", "Plumbing", "Drywall and Plaster", "Flooring", "Remodeling", "Roofing"],
|
|
39
|
+
// 'Fencing': [],
|
|
40
|
+
Flooring: ["Painting", "Plumbing", "Electrical", "Carpentry", "Remodeling", "Roofing"],
|
|
41
|
+
// 'Foundations': [],
|
|
42
|
+
// 'Garage Doors': [],
|
|
43
|
+
"General Contractors": ["Painting", "Plumbing", "Electrical", "Flooring", "Landscaping", "Roofing"],
|
|
44
|
+
// 'Gutters': [],
|
|
45
|
+
// 'Handyman': [],
|
|
46
|
+
// 'Holiday Decorators': [],
|
|
47
|
+
// 'Smart Home': [],
|
|
48
|
+
"Home Builders": ["Painting", "Driveways", "Masonry and Concrete", "Pest Control", "Landscaping", "Windows"],
|
|
49
|
+
// 'Home Inspection': [],
|
|
50
|
+
// 'Home Organization': [],
|
|
51
|
+
// 'Home Security': [],
|
|
52
|
+
// 'Home Staging': [],
|
|
53
|
+
// 'Home Theater': [],
|
|
54
|
+
// 'Home Warranties': [],
|
|
55
|
+
// 'Hot Tubs': [],
|
|
56
|
+
// 'Heating and Cooling': [],
|
|
57
|
+
// 'Insulation': [],
|
|
58
|
+
// 'Junk Removal': [],
|
|
59
|
+
// 'Landscaping': [],
|
|
60
|
+
// 'Locksmiths': [],
|
|
61
|
+
// 'Masonry and Concrete': [],
|
|
62
|
+
// 'Restoration': [],
|
|
63
|
+
// // 'Moving': [],
|
|
64
|
+
Painting: ["Plumbing", "Electrical", "Flooring", "Remodeling", "Roofing", "Windows"],
|
|
65
|
+
// 'Pest Control': [],
|
|
66
|
+
// 'Pools': [],
|
|
67
|
+
Plumbing: ["Painting", "Appliances", "Electrical", "Flooring", "Remodeling", "Roofing"],
|
|
68
|
+
// 'Pressure Washing': [],
|
|
69
|
+
Remodeling: ["Painting", "Landscaping", "Electrical", "Flooring", "Masonry and Concrete", "Roofing"],
|
|
70
|
+
Roofing: ["Painting", "Plumbing", "Electrical", "Flooring", "Remodeling", "Windows"],
|
|
71
|
+
// 'Sheds': [],
|
|
72
|
+
// 'Siding': [],
|
|
73
|
+
// 'Solar': [],
|
|
74
|
+
// 'Tiling': [],
|
|
75
|
+
// 'Walk-in Tubs': [],
|
|
76
|
+
// 'Waterproofing': [],
|
|
77
|
+
// 'Window Cleaning': [],
|
|
78
|
+
// 'Windows': []
|
|
79
|
+
"*": defaultHomeImprovementCrossSells,
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
// ------ Common Base Settings
|
|
83
|
+
|
|
84
|
+
const checkbox = (updates) => {
|
|
85
|
+
if (updates.name && !updates.id) {
|
|
86
|
+
updates.id = updates.name;
|
|
87
|
+
}
|
|
88
|
+
return merge(
|
|
89
|
+
{
|
|
90
|
+
$formkit: "checkbox",
|
|
91
|
+
validation: "required",
|
|
92
|
+
validationMessages: {
|
|
93
|
+
required: "Field is required",
|
|
94
|
+
},
|
|
95
|
+
},
|
|
96
|
+
updates
|
|
97
|
+
)
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
const verticalCol2Checkbox = (updates) => {
|
|
101
|
+
if (!updates || !updates.legendClass) {
|
|
102
|
+
updates.legendClass = "required t-w-[100%] t-text-center";
|
|
103
|
+
}
|
|
104
|
+
updates.fieldsetClass = "$reset t-flex t-justify-center t-flex-col";
|
|
105
|
+
updates.innerClass = "t-items-start";
|
|
106
|
+
updates.wrapperClass = "$reset t-flex t-cursor-pointer t-mb-3";
|
|
107
|
+
updates.optionClass = "t-pl-4 md:t-pl-16 md:t-min-w-[200px]";
|
|
108
|
+
updates.optionsClass = "t-pl-4 t-pt-3 t-grid t-grid-cols-1 md:t-grid-cols-2";
|
|
109
|
+
updates.messagesClass = "t-flex t-justify-center";
|
|
110
|
+
updates.helpClass = "t-mt-0 t-mb-4 !t-text-sm t-text-center";
|
|
111
|
+
return checkbox(updates)
|
|
112
|
+
};
|
|
22
113
|
|
|
23
114
|
const radio = (updates) => {
|
|
24
115
|
if (updates.name && !updates.id) {
|
|
@@ -38,6 +129,30 @@ const radio = (updates) => {
|
|
|
38
129
|
)
|
|
39
130
|
};
|
|
40
131
|
|
|
132
|
+
// TODO: rename
|
|
133
|
+
const col2RadioCenter = (updates) => {
|
|
134
|
+
updates.legendClass = "required t-w-[100%] t-text-center";
|
|
135
|
+
if (typeof updates.fieldsetClass === "undefined") {
|
|
136
|
+
updates.fieldsetClass = "$reset t-flex t-justify-center";
|
|
137
|
+
}
|
|
138
|
+
updates.innerClass = "t-items-start";
|
|
139
|
+
updates.wrapperClass = "$reset t-flex t-cursor-pointer t-mb-3";
|
|
140
|
+
updates.optionClass = "t-pl-4 md:t-pl-8 md:t-min-w-[200px]";
|
|
141
|
+
updates.optionsClass = "t-pl-4 t-pt-3 t-grid t-grid-cols-1 md:t-grid-cols-2";
|
|
142
|
+
updates.messagesClass = "t-flex t-justify-center";
|
|
143
|
+
updates.helpClass = "t-mt-0 t-mb-4 !t-text-sm t-text-center";
|
|
144
|
+
return radio(updates)
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
const sbsRadio = (updates) => {
|
|
148
|
+
updates.legendClass = "legend-left required";
|
|
149
|
+
updates.fieldsetClass = "$reset side-by-side";
|
|
150
|
+
updates.optionsClass = "t-pl-1";
|
|
151
|
+
updates.innerClass = "t-flex t-items-center";
|
|
152
|
+
updates.wrapperClass = "t-mb-3";
|
|
153
|
+
return radio(updates)
|
|
154
|
+
};
|
|
155
|
+
|
|
41
156
|
const verticalRadio = (updates) => {
|
|
42
157
|
updates.legendClass = "required";
|
|
43
158
|
updates.fieldsetClass = "$reset t-flex t-justify-center";
|
|
@@ -68,6 +183,14 @@ const select = (updates) => {
|
|
|
68
183
|
)
|
|
69
184
|
};
|
|
70
185
|
|
|
186
|
+
const sbsSelect = (updates) => {
|
|
187
|
+
updates.labelClass = "required";
|
|
188
|
+
updates.wrapperClass = "side-by-side t-items-center";
|
|
189
|
+
updates.innerClass = "select-height-content";
|
|
190
|
+
updates.helpClass = "t-mt-2.5 md:t-text-right md:t-mt-[-5px]";
|
|
191
|
+
return select(updates)
|
|
192
|
+
};
|
|
193
|
+
|
|
71
194
|
const verticalSelect = (updates) => {
|
|
72
195
|
updates.labelClass = "required";
|
|
73
196
|
updates.wrapperClass = "t-flex t-justify-center";
|
|
@@ -270,10 +393,136 @@ const TCPAConsent = (scope) => ({
|
|
|
270
393
|
accepted: "Consent is required",
|
|
271
394
|
},
|
|
272
395
|
classes: {
|
|
273
|
-
label: "t-text-xs t-text-slate-500 t-font-normal",
|
|
396
|
+
label: "t-text-xs t-text-slate-500 t-font-normal !t-leading-[0.9rem]",
|
|
274
397
|
},
|
|
275
398
|
});
|
|
276
399
|
|
|
400
|
+
// ------ Question Groups - TODO: move these go separate file groups.js
|
|
401
|
+
|
|
402
|
+
// NOTE: name must be unique within a form!
|
|
403
|
+
const group = (name, updates) => {
|
|
404
|
+
return merge(
|
|
405
|
+
{
|
|
406
|
+
$cmp: "FormKit",
|
|
407
|
+
props: {
|
|
408
|
+
type: "group",
|
|
409
|
+
key: name,
|
|
410
|
+
id: name,
|
|
411
|
+
name: name,
|
|
412
|
+
},
|
|
413
|
+
},
|
|
414
|
+
updates
|
|
415
|
+
)
|
|
416
|
+
};
|
|
417
|
+
|
|
418
|
+
// ------ Home Improvement
|
|
419
|
+
|
|
420
|
+
const homeImprovementCrossSells$1 = () =>
|
|
421
|
+
verticalCol2Checkbox({
|
|
422
|
+
id: "HomeImprovement_CrossSells",
|
|
423
|
+
name: "HomeImprovement_CrossSells",
|
|
424
|
+
help: 'Just hit "Next" if none apply',
|
|
425
|
+
helpClass: "t-text-center !t-text-sm",
|
|
426
|
+
validation: null,
|
|
427
|
+
options: '$getCrossSellOptions($get(form), $getVal($get(form), "Category"))',
|
|
428
|
+
});
|
|
429
|
+
|
|
430
|
+
const ApplianceQuestions = (condition, scope) =>
|
|
431
|
+
group("ApplianceQuestions", {
|
|
432
|
+
if: condition || '$get(Category).value == "Appliances"',
|
|
433
|
+
children: [applianceType$1(scope), homeImprovementWorkType$1(scope)],
|
|
434
|
+
});
|
|
435
|
+
|
|
436
|
+
const CarpentryQuestions = (condition, scope) =>
|
|
437
|
+
group("CarpentryQuestions", {
|
|
438
|
+
if: condition || '$get(Category).value == "Carpentry"',
|
|
439
|
+
children: [carpentrySubtype$1(scope), homeImprovementWorkType$1(scope)],
|
|
440
|
+
});
|
|
441
|
+
|
|
442
|
+
const DrivewaysQuestions = (condition, scope) =>
|
|
443
|
+
group("DrivewaysQuestions", {
|
|
444
|
+
if: condition || '$get(Category).value == "Driveways"',
|
|
445
|
+
children: [drivewayWorkType$1(scope), drivewayMaterial$1(scope)],
|
|
446
|
+
});
|
|
447
|
+
|
|
448
|
+
const DrywallAndPlasterQuestions = (condition, scope) =>
|
|
449
|
+
group("DrywallAndPlasterQuestions", {
|
|
450
|
+
if: condition || '$get(Category).value == "Drywall and Plaster"',
|
|
451
|
+
children: [wallSurfaceType$1(scope), homeImprovementWorkType$1(scope)],
|
|
452
|
+
});
|
|
453
|
+
|
|
454
|
+
const ElectricalQuestions = (condition, scope) =>
|
|
455
|
+
group("ElectricalQuestions", {
|
|
456
|
+
if: condition || '$get(Category).value == "Electrical"',
|
|
457
|
+
children: [electricalSubtype$1(scope), homeImprovementWorkType$1(scope)],
|
|
458
|
+
});
|
|
459
|
+
|
|
460
|
+
const FlooringQuestions = (condition, scope) =>
|
|
461
|
+
group("FlooringQuestions", {
|
|
462
|
+
if: condition || '$get(Category).value == "Flooring"',
|
|
463
|
+
children: [flooringMaterial$1(scope), homeImprovementWorkType$1(scope)],
|
|
464
|
+
});
|
|
465
|
+
|
|
466
|
+
const HeatingAndCoolingQuestions = (condition, scope) =>
|
|
467
|
+
group("HeatingAndCoolingQuestions", {
|
|
468
|
+
if: condition || '$get(Category).value == "Heating and Cooling"',
|
|
469
|
+
children: [heatingCoolingSubtype$1(scope), fuelSource$1(scope), homeImprovementWorkType$1(scope)],
|
|
470
|
+
});
|
|
471
|
+
|
|
472
|
+
const LandscapingQuestions = (condition, scope) =>
|
|
473
|
+
group("LandscapingQuestions", {
|
|
474
|
+
if: condition || '$get(Category).value == "Landscaping"',
|
|
475
|
+
children: [landscapingSubtype$1(scope), homeImprovementWorkType$1(scope)],
|
|
476
|
+
});
|
|
477
|
+
|
|
478
|
+
const MasonryAndConcreteQuestions = (condition, scope) =>
|
|
479
|
+
group("MasonryAndConcreteQuestions", {
|
|
480
|
+
if: condition || '$get(Category).value == "Masonry and Concrete"',
|
|
481
|
+
children: [masonrySubtype$1(scope), masonryMaterial$1(scope), masonryWorkType$1(scope)],
|
|
482
|
+
});
|
|
483
|
+
|
|
484
|
+
const PaintingQuestions = (condition, scope) =>
|
|
485
|
+
group("PaintingQuestions", {
|
|
486
|
+
if: condition || '$get(Category).value == "Painting"',
|
|
487
|
+
children: [paintingSubtype$1(scope), numberOfRooms$1(scope)],
|
|
488
|
+
});
|
|
489
|
+
|
|
490
|
+
const PestControlQuestions = (condition, scope) =>
|
|
491
|
+
group("PestControlQuestions", {
|
|
492
|
+
if: condition || '$get(Category).value == "Pest Control"',
|
|
493
|
+
children: [pestControlSubtype$1(scope)],
|
|
494
|
+
});
|
|
495
|
+
|
|
496
|
+
const PlumbingQuestions = (condition, scope) =>
|
|
497
|
+
group("PlumbingQuestions", {
|
|
498
|
+
if: condition || '$get(Category).value == "Plumbing"',
|
|
499
|
+
children: [plumbingSubtype$1(scope), homeImprovementWorkType$1(scope)],
|
|
500
|
+
});
|
|
501
|
+
|
|
502
|
+
const RemodelingQuestions = (condition, scope) =>
|
|
503
|
+
group("RemodelingQuestions", {
|
|
504
|
+
if: condition || '$get(Category).value == "Remodeling"',
|
|
505
|
+
children: [remodelingSubtype$1(scope)],
|
|
506
|
+
});
|
|
507
|
+
|
|
508
|
+
const RoofingQuestions = (condition, scope) =>
|
|
509
|
+
group("RoofingQuestions", {
|
|
510
|
+
if: condition || '$get(Category).value == "Roofing"',
|
|
511
|
+
children: [roofingMaterial$1(scope), roofingWorkType$1(scope)],
|
|
512
|
+
});
|
|
513
|
+
|
|
514
|
+
const SidingQuestions = (condition, scope) =>
|
|
515
|
+
group("SidingQuestions", {
|
|
516
|
+
if: condition || '$get(Category).value == "Siding"',
|
|
517
|
+
children: [sidingMaterial$1(scope), homeImprovementWorkType$1(scope)],
|
|
518
|
+
});
|
|
519
|
+
|
|
520
|
+
const WindowsQuestions = (condition, scope) =>
|
|
521
|
+
group("WindowsQuestions", {
|
|
522
|
+
if: condition || '$get(Category).value == "Windows"',
|
|
523
|
+
children: [windowsSubtype$1(scope), windowsWorkType$1(scope), numberOfWindows$1(scope)],
|
|
524
|
+
});
|
|
525
|
+
|
|
277
526
|
const HomeImprovementCategoryOptions = [
|
|
278
527
|
"Additions",
|
|
279
528
|
"Appliances",
|
|
@@ -329,368 +578,679 @@ const HomeImprovementCategoryOptions = [
|
|
|
329
578
|
"Waterproofing",
|
|
330
579
|
"Window Cleaning",
|
|
331
580
|
"Windows",
|
|
581
|
+
"Not Sure or Other",
|
|
332
582
|
];
|
|
333
583
|
|
|
334
|
-
const homeImprovementCategory$1 = (updates) =>
|
|
335
|
-
verticalSelect
|
|
584
|
+
const homeImprovementCategory$1 = (scope, vertical, updates = {}) => {
|
|
585
|
+
const func = vertical ? verticalSelect : sbsSelect;
|
|
586
|
+
const label = vertical ? updates.label : "Select a Category:";
|
|
587
|
+
return func(
|
|
336
588
|
merge(
|
|
337
589
|
{
|
|
338
|
-
|
|
339
|
-
|
|
590
|
+
label,
|
|
591
|
+
name: scope ? scope + ":" + "Category" : "Category",
|
|
340
592
|
options: HomeImprovementCategoryOptions,
|
|
341
593
|
},
|
|
342
594
|
updates
|
|
343
595
|
)
|
|
344
|
-
)
|
|
596
|
+
)
|
|
597
|
+
};
|
|
345
598
|
|
|
346
|
-
const timeframe$1 = (scope) =>
|
|
347
|
-
verticalRadio
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
599
|
+
const timeframe$1 = (scope, vertical, updates = {}) => {
|
|
600
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
601
|
+
const label = vertical ? updates.label : "What is the project timeframe?";
|
|
602
|
+
return func(
|
|
603
|
+
merge(
|
|
604
|
+
{
|
|
605
|
+
label,
|
|
606
|
+
name: scope ? scope + ":" + "Timeframe" : "Timeframe",
|
|
607
|
+
options: ["Immediate", "1-6 Months", "More than 6 Months"],
|
|
608
|
+
},
|
|
609
|
+
updates
|
|
610
|
+
)
|
|
611
|
+
)
|
|
612
|
+
};
|
|
352
613
|
|
|
353
|
-
const ownHome$1 = (scope) =>
|
|
354
|
-
verticalRadio
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
614
|
+
const ownHome$1 = (scope, vertical, updates = {}) => {
|
|
615
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
616
|
+
const label = vertical ? updates.label : "Do you own the home?";
|
|
617
|
+
return func(
|
|
618
|
+
merge(
|
|
619
|
+
{
|
|
620
|
+
label,
|
|
621
|
+
name: scope ? scope + ":" + "Own_Home" : "Own_Home",
|
|
622
|
+
options: ["Yes", "No", "No but authorized"],
|
|
623
|
+
},
|
|
624
|
+
updates
|
|
625
|
+
)
|
|
626
|
+
)
|
|
627
|
+
};
|
|
359
628
|
|
|
360
|
-
const additionsSubType$1 = (scope) =>
|
|
361
|
-
verticalSelect
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
629
|
+
const additionsSubType$1 = (scope, vertical, updates = {}) => {
|
|
630
|
+
const func = vertical ? verticalSelect : sbsSelect;
|
|
631
|
+
const label = vertical ? updates.label : "What type of addition?";
|
|
632
|
+
return func(
|
|
633
|
+
merge(
|
|
634
|
+
{
|
|
635
|
+
label,
|
|
636
|
+
name: scope ? scope + ":" + "Additions_Subtype" : "Additions_Subtype",
|
|
637
|
+
options: [
|
|
638
|
+
"Garage",
|
|
639
|
+
"In-Law Suite",
|
|
640
|
+
"Additional Rooms",
|
|
641
|
+
"Additional Stories",
|
|
642
|
+
"Bump-out",
|
|
643
|
+
"Sunroom",
|
|
644
|
+
"Accessory Dwelling Unit",
|
|
645
|
+
"Basement Remodeling",
|
|
646
|
+
"Attic Remodeling",
|
|
647
|
+
"Not Sure or Other",
|
|
648
|
+
],
|
|
649
|
+
},
|
|
650
|
+
updates
|
|
651
|
+
)
|
|
652
|
+
)
|
|
653
|
+
};
|
|
377
654
|
|
|
378
|
-
const constructionAreaSize$1 = (scope) =>
|
|
379
|
-
verticalRadio
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
655
|
+
const constructionAreaSize$1 = (scope, vertical, updates = {}) => {
|
|
656
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
657
|
+
const label = vertical ? updates.label : "What is the size of the construction area?";
|
|
658
|
+
return func(
|
|
659
|
+
merge(
|
|
660
|
+
{
|
|
661
|
+
label,
|
|
662
|
+
name: scope ? scope + ":" + "Construction_Area_Size" : "Construction_Area_Size",
|
|
663
|
+
options: ["Less than 1000 square feet", "1000 to 2000 square feet", "More than 2000 square feet"],
|
|
664
|
+
},
|
|
665
|
+
updates
|
|
666
|
+
)
|
|
667
|
+
)
|
|
668
|
+
};
|
|
384
669
|
|
|
385
|
-
const homeImprovementWorkType$1 = (scope) =>
|
|
386
|
-
verticalRadio
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
670
|
+
const homeImprovementWorkType$1 = (scope, vertical, updates = {}) => {
|
|
671
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
672
|
+
const label = vertical ? updates.label : "What type of work?";
|
|
673
|
+
return func(
|
|
674
|
+
merge(
|
|
675
|
+
{
|
|
676
|
+
label,
|
|
677
|
+
name: scope ? scope + ":" + "Work_Type" : "Work_Type",
|
|
678
|
+
options: ["Install or Replace", "Repair", "Not Sure or Other"],
|
|
679
|
+
},
|
|
680
|
+
updates
|
|
681
|
+
)
|
|
682
|
+
)
|
|
683
|
+
};
|
|
391
684
|
|
|
392
|
-
const applianceType$1 = (scope) =>
|
|
393
|
-
verticalSelect
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
685
|
+
const applianceType$1 = (scope, vertical, updates = {}) => {
|
|
686
|
+
const func = vertical ? verticalSelect : sbsSelect;
|
|
687
|
+
const label = vertical ? updates.label : "What type of appliance?";
|
|
688
|
+
return func(
|
|
689
|
+
merge(
|
|
690
|
+
{
|
|
691
|
+
label,
|
|
692
|
+
name: scope ? scope + ":" + "Appliance_Type" : "Appliance_Type",
|
|
693
|
+
options: [
|
|
694
|
+
"Cooktop",
|
|
695
|
+
"Dishwasher",
|
|
696
|
+
"Dryer",
|
|
697
|
+
"Freezer",
|
|
698
|
+
"Garbage Disposal",
|
|
699
|
+
"Ice Maker",
|
|
700
|
+
"Microwave",
|
|
701
|
+
"Range",
|
|
702
|
+
"Refrigerator",
|
|
703
|
+
"Stove",
|
|
704
|
+
"Trash Compactor",
|
|
705
|
+
"Oven",
|
|
706
|
+
"Vacuum",
|
|
707
|
+
"Washer Machine",
|
|
708
|
+
"Not Sure or Other",
|
|
709
|
+
],
|
|
710
|
+
},
|
|
711
|
+
updates
|
|
712
|
+
)
|
|
713
|
+
)
|
|
714
|
+
};
|
|
414
715
|
|
|
415
|
-
const cabinetWorkType$1 = (scope) =>
|
|
416
|
-
verticalRadio
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
716
|
+
const cabinetWorkType$1 = (scope, vertical, updates = {}) => {
|
|
717
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
718
|
+
const label = vertical ? updates.label : "What type of work?";
|
|
719
|
+
return func(
|
|
720
|
+
merge(
|
|
721
|
+
{
|
|
722
|
+
label,
|
|
723
|
+
name: scope ? scope + ":" + "Cabinet_Work_Type" : "Cabinet_Work_Type",
|
|
724
|
+
options: ["Install", "Refinish", "Reface", "Repair", "Not Sure or Other"],
|
|
725
|
+
},
|
|
726
|
+
updates
|
|
727
|
+
)
|
|
728
|
+
)
|
|
729
|
+
};
|
|
421
730
|
|
|
422
|
-
const carpentrySubtype$1 = (scope) =>
|
|
423
|
-
verticalSelect
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
731
|
+
const carpentrySubtype$1 = (scope, vertical, updates = {}) => {
|
|
732
|
+
const func = vertical ? verticalSelect : sbsSelect;
|
|
733
|
+
const label = vertical ? updates.label : "What carpentry job type?";
|
|
734
|
+
return func(
|
|
735
|
+
merge(
|
|
736
|
+
{
|
|
737
|
+
label,
|
|
738
|
+
name: scope ? scope + ":" + "Carpentry_Subtype" : "Carpentry_Subtype",
|
|
739
|
+
options: [
|
|
740
|
+
"Closets",
|
|
741
|
+
"Custom Furniture",
|
|
742
|
+
"Built-ins",
|
|
743
|
+
"Framing",
|
|
744
|
+
"Interior Trim",
|
|
745
|
+
"Exterior Trim",
|
|
746
|
+
"Windows",
|
|
747
|
+
"Stairways and Railings",
|
|
748
|
+
"Gazebo or Pergola",
|
|
749
|
+
"Multiple Jobs",
|
|
750
|
+
"Not Sure or Other",
|
|
751
|
+
],
|
|
752
|
+
},
|
|
753
|
+
updates
|
|
754
|
+
)
|
|
755
|
+
)
|
|
756
|
+
};
|
|
440
757
|
|
|
441
|
-
const carpetWorkType$1 = (scope) =>
|
|
442
|
-
verticalRadio
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
758
|
+
const carpetWorkType$1 = (scope, vertical, updates = {}) => {
|
|
759
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
760
|
+
const label = vertical ? updates.label : "What type of work?";
|
|
761
|
+
return func(
|
|
762
|
+
merge(
|
|
763
|
+
{
|
|
764
|
+
label,
|
|
765
|
+
name: scope ? scope + ":" + "Carpet_Work_Type" : "Carpet_Work_Type",
|
|
766
|
+
options: ["Install or Replace", "Repair", "Cleaning", "Not Sure or Other"],
|
|
767
|
+
},
|
|
768
|
+
updates
|
|
769
|
+
)
|
|
770
|
+
)
|
|
771
|
+
};
|
|
447
772
|
|
|
448
|
-
const cleaningSubtype$1 = (scope) =>
|
|
449
|
-
verticalSelect
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
773
|
+
const cleaningSubtype$1 = (scope, vertical, updates = {}) => {
|
|
774
|
+
const func = vertical ? verticalSelect : sbsSelect;
|
|
775
|
+
const label = vertical ? updates.label : "What type of cleaning?";
|
|
776
|
+
return func(
|
|
777
|
+
merge(
|
|
778
|
+
{
|
|
779
|
+
label,
|
|
780
|
+
name: scope ? scope + ":" + "Cleaning_Subtype" : "Cleaning_Subtype",
|
|
781
|
+
options: [
|
|
782
|
+
"Whole Home",
|
|
783
|
+
"Office",
|
|
784
|
+
"Carpets",
|
|
785
|
+
"Windows",
|
|
786
|
+
"Air Ducts or Vents",
|
|
787
|
+
"Chimney",
|
|
788
|
+
"Deck",
|
|
789
|
+
"Tile or Grout",
|
|
790
|
+
"Garage",
|
|
791
|
+
"Shed",
|
|
792
|
+
"Gutters",
|
|
793
|
+
"Pool",
|
|
794
|
+
"Junk Removal",
|
|
795
|
+
"Not Sure or Other",
|
|
796
|
+
],
|
|
797
|
+
},
|
|
798
|
+
updates
|
|
799
|
+
)
|
|
800
|
+
)
|
|
801
|
+
};
|
|
469
802
|
|
|
470
|
-
const countertopMaterial$1 = (scope) =>
|
|
471
|
-
verticalSelect
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
803
|
+
const countertopMaterial$1 = (scope, vertical, updates = {}) => {
|
|
804
|
+
const func = vertical ? verticalSelect : sbsSelect;
|
|
805
|
+
const label = vertical ? updates.label : "What type of countertop?";
|
|
806
|
+
return func(
|
|
807
|
+
merge(
|
|
808
|
+
{
|
|
809
|
+
label,
|
|
810
|
+
name: scope ? scope + ":" + "Countertop_Material" : "Countertop_Material",
|
|
811
|
+
options: [
|
|
812
|
+
"Concrete",
|
|
813
|
+
"Granite",
|
|
814
|
+
"Laminate",
|
|
815
|
+
"Marble",
|
|
816
|
+
"Quartz",
|
|
817
|
+
"Stainless Steel",
|
|
818
|
+
"Wood",
|
|
819
|
+
"Not Sure or Other",
|
|
820
|
+
],
|
|
821
|
+
},
|
|
822
|
+
updates
|
|
823
|
+
)
|
|
824
|
+
)
|
|
825
|
+
};
|
|
476
826
|
|
|
477
|
-
const deckWorkType$1 = (scope) =>
|
|
478
|
-
verticalRadio
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
827
|
+
const deckWorkType$1 = (scope, vertical, updates = {}) => {
|
|
828
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
829
|
+
const label = vertical ? updates.label : "What type of work?";
|
|
830
|
+
return func(
|
|
831
|
+
merge(
|
|
832
|
+
{
|
|
833
|
+
label,
|
|
834
|
+
name: scope ? scope + ":" + "Deck_Work_Type" : "Deck_Work_Type",
|
|
835
|
+
options: ["Paint or Stain", "Install or Replace", "Repair", "Not Sure or Other"],
|
|
836
|
+
},
|
|
837
|
+
updates
|
|
838
|
+
)
|
|
839
|
+
)
|
|
840
|
+
};
|
|
483
841
|
|
|
484
|
-
const demolitionSubtype$1 = (scope) =>
|
|
485
|
-
verticalRadio
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
842
|
+
const demolitionSubtype$1 = (scope, vertical, updates = {}) => {
|
|
843
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
844
|
+
const label = vertical ? updates.label : "What type of demolition?";
|
|
845
|
+
return func(
|
|
846
|
+
merge(
|
|
847
|
+
{
|
|
848
|
+
label,
|
|
849
|
+
name: scope ? scope + ":" + "Demolition_Subtype" : "Demolition_Subtype",
|
|
850
|
+
options: ["Whole Structure", "Partial Home", "Shed", "Not Sure or Other"],
|
|
851
|
+
},
|
|
852
|
+
updates
|
|
853
|
+
)
|
|
854
|
+
)
|
|
855
|
+
};
|
|
490
856
|
|
|
491
|
-
const doorSubtype$1 = (scope) =>
|
|
492
|
-
verticalRadio
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
857
|
+
const doorSubtype$1 = (scope, vertical, updates = {}) => {
|
|
858
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
859
|
+
const label = vertical ? updates.label : "What type of door?";
|
|
860
|
+
return func(
|
|
861
|
+
merge(
|
|
862
|
+
{
|
|
863
|
+
label,
|
|
864
|
+
name: scope ? scope + ":" + "Door_Subtype" : "Door_Subtype",
|
|
865
|
+
options: ["Interior", "Exterior", "Garage", "Sliding", "Storm", "Not Sure or Other"],
|
|
866
|
+
},
|
|
867
|
+
updates
|
|
868
|
+
)
|
|
869
|
+
)
|
|
870
|
+
};
|
|
497
871
|
|
|
498
|
-
const drivewayWorkType$1 = (scope) =>
|
|
499
|
-
verticalRadio
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
872
|
+
const drivewayWorkType$1 = (scope, vertical, updates = {}) => {
|
|
873
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
874
|
+
const label = vertical ? updates.label : "What type of work?";
|
|
875
|
+
return func(
|
|
876
|
+
merge(
|
|
877
|
+
{
|
|
878
|
+
label,
|
|
879
|
+
name: scope ? scope + ":" + "Driveway_Work_Type" : "Driveway_Work_Type",
|
|
880
|
+
options: ["Install or Replace", "Repair", "Sealing", "Not Sure or Other"],
|
|
881
|
+
},
|
|
882
|
+
updates
|
|
883
|
+
)
|
|
884
|
+
)
|
|
885
|
+
};
|
|
504
886
|
|
|
505
|
-
const drivewayMaterial$1 = (scope) =>
|
|
506
|
-
verticalRadio
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
887
|
+
const drivewayMaterial$1 = (scope, vertical, updates = {}) => {
|
|
888
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
889
|
+
const label = vertical ? updates.label : "What driveway material?";
|
|
890
|
+
return func(
|
|
891
|
+
merge(
|
|
892
|
+
{
|
|
893
|
+
label,
|
|
894
|
+
name: scope ? scope + ":" + "Driveway_Material" : "Driveway_Material",
|
|
895
|
+
options: ["Asphalt", "Brick", "Cobblestone", "Pebble", "Concrete", "Pavers", "Not Sure or Other"],
|
|
896
|
+
},
|
|
897
|
+
updates
|
|
898
|
+
)
|
|
899
|
+
)
|
|
900
|
+
};
|
|
511
901
|
|
|
512
|
-
const wallSurfaceType$1 = (scope) =>
|
|
513
|
-
verticalRadio
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
902
|
+
const wallSurfaceType$1 = (scope, vertical, updates = {}) => {
|
|
903
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
904
|
+
const label = vertical ? updates.label : "What surface type?";
|
|
905
|
+
return func(
|
|
906
|
+
merge(
|
|
907
|
+
{
|
|
908
|
+
label,
|
|
909
|
+
name: scope ? scope + ":" + "Wall_Surface_Type" : "Wall_Surface_Type",
|
|
910
|
+
options: ["Drywall", "Plaster", "Stucco", "Not Sure or Other"],
|
|
911
|
+
},
|
|
912
|
+
updates
|
|
913
|
+
)
|
|
914
|
+
)
|
|
915
|
+
};
|
|
518
916
|
|
|
519
|
-
const electricalSubtype$1 = (scope) =>
|
|
520
|
-
verticalSelect
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
917
|
+
const electricalSubtype$1 = (scope, vertical, updates = {}) => {
|
|
918
|
+
const func = vertical ? verticalSelect : sbsSelect;
|
|
919
|
+
const label = vertical ? updates.label : "What electrical job type?";
|
|
920
|
+
return func(
|
|
921
|
+
merge(
|
|
922
|
+
{
|
|
923
|
+
label,
|
|
924
|
+
name: scope ? scope + ":" + "Electrical_Subtype" : "Electrical_Subtype",
|
|
925
|
+
options: [
|
|
926
|
+
"Electrical Panel",
|
|
927
|
+
"Outlets and Fixtures",
|
|
928
|
+
"Home Theater",
|
|
929
|
+
"Exhaust Fans",
|
|
930
|
+
"Ceiling Fans",
|
|
931
|
+
"EV Charging Station",
|
|
932
|
+
"Addition or Remodel",
|
|
933
|
+
"Generator",
|
|
934
|
+
"Outdoor Lighting",
|
|
935
|
+
"Pet Fence",
|
|
936
|
+
"Thermostat",
|
|
937
|
+
"Wall or Baseboard Heater",
|
|
938
|
+
"Holiday Lighting",
|
|
939
|
+
"Not Sure or Other",
|
|
940
|
+
],
|
|
941
|
+
},
|
|
942
|
+
updates
|
|
943
|
+
)
|
|
944
|
+
)
|
|
945
|
+
};
|
|
540
946
|
|
|
541
|
-
const fenceMaterial$1 = (scope) =>
|
|
542
|
-
verticalRadio
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
947
|
+
const fenceMaterial$1 = (scope, vertical, updates = {}) => {
|
|
948
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
949
|
+
const label = vertical ? updates.label : "What fence material?";
|
|
950
|
+
return func(
|
|
951
|
+
merge(
|
|
952
|
+
{
|
|
953
|
+
label,
|
|
954
|
+
name: scope ? scope + ":" + "Fence_Material" : "Fence_Material",
|
|
955
|
+
options: ["Aluminum", "Chain Link", "Wood", "Wire", "Vinyl", "Iron", "Not Sure or Other"],
|
|
956
|
+
},
|
|
957
|
+
updates
|
|
958
|
+
)
|
|
959
|
+
)
|
|
960
|
+
};
|
|
547
961
|
|
|
548
|
-
const flooringMaterial$1 = (scope) =>
|
|
549
|
-
verticalRadio
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
962
|
+
const flooringMaterial$1 = (scope, vertical, updates = {}) => {
|
|
963
|
+
const func = vertical ? verticalRadio : sbsSelect;
|
|
964
|
+
const label = vertical ? updates.label : "What flooring material?";
|
|
965
|
+
return func(
|
|
966
|
+
merge(
|
|
967
|
+
{
|
|
968
|
+
label,
|
|
969
|
+
name: scope ? scope + ":" + "Flooring_Material" : "Flooring_Material",
|
|
970
|
+
options: [
|
|
971
|
+
"Carpet",
|
|
972
|
+
"Concrete",
|
|
973
|
+
"Hardwood",
|
|
974
|
+
"Laminate",
|
|
975
|
+
"Linoleum",
|
|
976
|
+
"Slate",
|
|
977
|
+
"Tile",
|
|
978
|
+
"Vinyl",
|
|
979
|
+
"Not Sure or Other",
|
|
980
|
+
],
|
|
981
|
+
},
|
|
982
|
+
updates
|
|
983
|
+
)
|
|
984
|
+
)
|
|
985
|
+
};
|
|
554
986
|
|
|
555
|
-
const generalContractorSubtype$1 = (scope) =>
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
987
|
+
const generalContractorSubtype$1 = (scope, vertical, updates = {}) => {
|
|
988
|
+
const func = vertical ? col2RadioCenter : sbsRadio;
|
|
989
|
+
const label = vertical ? updates.label : "What contractor job type?";
|
|
990
|
+
return func(
|
|
991
|
+
merge(
|
|
992
|
+
{
|
|
993
|
+
label,
|
|
994
|
+
name: scope ? scope + ":" + "General_Contractor_Subtype" : "General_Contractor_Subtype",
|
|
995
|
+
options: [
|
|
996
|
+
"Remodeling",
|
|
997
|
+
"Additions",
|
|
998
|
+
"Major Home Repairs",
|
|
999
|
+
"Excavation",
|
|
1000
|
+
"Demolition",
|
|
1001
|
+
"Dumpster Rental",
|
|
1002
|
+
"Not Sure or Other",
|
|
1003
|
+
],
|
|
1004
|
+
},
|
|
1005
|
+
updates
|
|
1006
|
+
)
|
|
1007
|
+
)
|
|
1008
|
+
};
|
|
569
1009
|
|
|
570
|
-
const gutterMaterial$1 = (scope) =>
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
1010
|
+
const gutterMaterial$1 = (scope, vertical, updates = {}) => {
|
|
1011
|
+
const func = vertical ? col2RadioCenter : sbsRadio;
|
|
1012
|
+
const label = vertical ? updates.label : "What gutter material?";
|
|
1013
|
+
return func(
|
|
1014
|
+
merge(
|
|
1015
|
+
{
|
|
1016
|
+
label,
|
|
1017
|
+
name: scope ? scope + ":" + "Gutter_Material" : "Gutter_Material",
|
|
1018
|
+
options: ["Galvanized", "Metal", "PVC", "Wood", "Not Sure or Other"],
|
|
1019
|
+
},
|
|
1020
|
+
updates
|
|
1021
|
+
)
|
|
1022
|
+
)
|
|
1023
|
+
};
|
|
576
1024
|
|
|
577
|
-
const
|
|
578
|
-
verticalRadio
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
1025
|
+
const gutterWorkType$1 = (scope, vertical, updates = {}) => {
|
|
1026
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
1027
|
+
const label = vertical ? updates.label : "What type of work?";
|
|
1028
|
+
return func(
|
|
1029
|
+
merge(
|
|
1030
|
+
{
|
|
1031
|
+
label,
|
|
1032
|
+
name: scope ? scope + ":" + "Gutter_Work_Type" : "Gutter_Work_Type",
|
|
1033
|
+
options: ["Install or Replace", "Repair", "Cleaning", "Not Sure or Other"],
|
|
1034
|
+
},
|
|
1035
|
+
updates
|
|
1036
|
+
)
|
|
1037
|
+
)
|
|
1038
|
+
};
|
|
582
1039
|
|
|
583
|
-
const smartHomeSubtype$1 = (scope) =>
|
|
584
|
-
verticalRadio
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
1040
|
+
const smartHomeSubtype$1 = (scope, vertical, updates = {}) => {
|
|
1041
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
1042
|
+
const label = vertical ? updates.label : "What smart home job type?";
|
|
1043
|
+
return func(
|
|
1044
|
+
merge(
|
|
1045
|
+
{
|
|
1046
|
+
label,
|
|
1047
|
+
name: scope ? scope + ":" + "Smart_Home_Subtype" : "Smart_Home_Subtype",
|
|
1048
|
+
options: [
|
|
1049
|
+
"Thermostats",
|
|
1050
|
+
"Video Doorbells",
|
|
1051
|
+
"Camera Systems",
|
|
1052
|
+
"Lighting",
|
|
1053
|
+
"Speaker Systems",
|
|
1054
|
+
"Not Sure or Other",
|
|
1055
|
+
],
|
|
1056
|
+
},
|
|
1057
|
+
updates
|
|
1058
|
+
)
|
|
1059
|
+
)
|
|
1060
|
+
};
|
|
589
1061
|
|
|
590
|
-
const homeOrganizationSubtype$1 = (scope) =>
|
|
591
|
-
verticalRadio
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
1062
|
+
const homeOrganizationSubtype$1 = (scope, vertical, updates = {}) => {
|
|
1063
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
1064
|
+
const label = vertical ? updates.label : "What home organization job?";
|
|
1065
|
+
return func(
|
|
1066
|
+
merge(
|
|
1067
|
+
{
|
|
1068
|
+
label,
|
|
1069
|
+
name: scope ? scope + ":" + "Home_Organization_Subtype" : "Home_Organization_Subtype",
|
|
1070
|
+
options: [
|
|
1071
|
+
"Packing or Unpacking",
|
|
1072
|
+
"Room Organization",
|
|
1073
|
+
"Shed Organization",
|
|
1074
|
+
"Storage Solutions",
|
|
1075
|
+
"Decluttering",
|
|
1076
|
+
"Not Sure or Other",
|
|
1077
|
+
],
|
|
1078
|
+
},
|
|
1079
|
+
updates
|
|
1080
|
+
)
|
|
1081
|
+
)
|
|
1082
|
+
};
|
|
603
1083
|
|
|
604
|
-
const numberOfRooms$1 = (scope) =>
|
|
605
|
-
verticalRadio
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
1084
|
+
const numberOfRooms$1 = (scope, vertical, updates = {}) => {
|
|
1085
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
1086
|
+
const label = vertical ? updates.label : "How many rooms?";
|
|
1087
|
+
return func(
|
|
1088
|
+
merge(
|
|
1089
|
+
{
|
|
1090
|
+
label,
|
|
1091
|
+
name: scope ? scope + ":" + "Number_Of_Rooms" : "Number_Of_Rooms",
|
|
1092
|
+
options: ["1-2", "3-4", "4-5", "5-6", "6+"],
|
|
1093
|
+
},
|
|
1094
|
+
updates
|
|
1095
|
+
)
|
|
1096
|
+
)
|
|
1097
|
+
};
|
|
610
1098
|
|
|
611
|
-
const homeTheaterSubtype$1 = (scope) =>
|
|
612
|
-
verticalRadio
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
1099
|
+
const homeTheaterSubtype$1 = (scope, vertical, updates = {}) => {
|
|
1100
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
1101
|
+
const label = vertical ? updates.label : "What home theater job?";
|
|
1102
|
+
return func(
|
|
1103
|
+
merge(
|
|
1104
|
+
{
|
|
1105
|
+
label,
|
|
1106
|
+
name: scope ? scope + ":" + "Home_Theater_Subtype" : "Home_Theater_Subtype",
|
|
1107
|
+
options: ["Hang TV", "Install Sound System", "Wiring", "Troubleshooting", "Not Sure or Other"],
|
|
1108
|
+
},
|
|
1109
|
+
updates
|
|
1110
|
+
)
|
|
1111
|
+
)
|
|
1112
|
+
};
|
|
617
1113
|
|
|
618
|
-
const heatingCoolingSubtype$1 = (scope) =>
|
|
619
|
-
verticalSelect
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
1114
|
+
const heatingCoolingSubtype$1 = (scope, vertical, updates = {}) => {
|
|
1115
|
+
const func = vertical ? verticalSelect : sbsSelect;
|
|
1116
|
+
const label = vertical ? updates.label : "What heating or cooling job?";
|
|
1117
|
+
return func(
|
|
1118
|
+
merge(
|
|
1119
|
+
{
|
|
1120
|
+
label,
|
|
1121
|
+
name: scope ? scope + ":" + "Heating_Cooling_Subtype" : "Heating_Cooling_Subtype",
|
|
1122
|
+
options: [
|
|
1123
|
+
"Central Air",
|
|
1124
|
+
"Humidifier",
|
|
1125
|
+
"Ducts and Vents",
|
|
1126
|
+
"Furnace",
|
|
1127
|
+
"Heat Pump",
|
|
1128
|
+
"Radiant Floor",
|
|
1129
|
+
"Swamp Cooler",
|
|
1130
|
+
"Not Sure or Other",
|
|
1131
|
+
],
|
|
1132
|
+
},
|
|
1133
|
+
updates
|
|
1134
|
+
)
|
|
1135
|
+
)
|
|
1136
|
+
};
|
|
633
1137
|
|
|
634
|
-
const fuelSource$1 = (scope) =>
|
|
635
|
-
verticalRadio
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
1138
|
+
const fuelSource$1 = (scope, vertical, updates = {}) => {
|
|
1139
|
+
const func = vertical ? verticalRadio : sbsSelect;
|
|
1140
|
+
const label = vertical ? updates.label : "What is the fuel source?";
|
|
1141
|
+
return func(
|
|
1142
|
+
merge(
|
|
1143
|
+
{
|
|
1144
|
+
label,
|
|
1145
|
+
name: scope ? scope + ":" + "Fuel_Source" : "Fuel_Source",
|
|
1146
|
+
options: ["Gas", "Oil", "Electric", "Propane", "Not Sure or Other"],
|
|
1147
|
+
},
|
|
1148
|
+
updates
|
|
1149
|
+
)
|
|
1150
|
+
)
|
|
1151
|
+
};
|
|
640
1152
|
|
|
641
|
-
const insulationSubtype$1 = (scope) =>
|
|
642
|
-
verticalRadio
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
1153
|
+
const insulationSubtype$1 = (scope, vertical, updates = {}) => {
|
|
1154
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
1155
|
+
const label = vertical ? updates.label : "What type of insulation job?";
|
|
1156
|
+
return func(
|
|
1157
|
+
merge(
|
|
1158
|
+
{
|
|
1159
|
+
label,
|
|
1160
|
+
name: scope ? scope + ":" + "Insulation_Subtype" : "Insulation_Subtype",
|
|
1161
|
+
options: ["Batt or Roll", "Spray Foam", "Blown-in", "Reflective", "Not Sure or Other"],
|
|
1162
|
+
},
|
|
1163
|
+
updates
|
|
1164
|
+
)
|
|
1165
|
+
)
|
|
1166
|
+
};
|
|
647
1167
|
|
|
648
|
-
const landscapingSubtype$1 = (scope) =>
|
|
649
|
-
verticalSelect
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
1168
|
+
const landscapingSubtype$1 = (scope, vertical, updates = {}) => {
|
|
1169
|
+
const func = vertical ? verticalSelect : sbsSelect;
|
|
1170
|
+
const label = vertical ? updates.label : "What landscaping job?";
|
|
1171
|
+
return func(
|
|
1172
|
+
merge(
|
|
1173
|
+
{
|
|
1174
|
+
label,
|
|
1175
|
+
name: scope ? scope + ":" + "Landscaping_Subtype" : "Landscaping_Subtype",
|
|
1176
|
+
options: [
|
|
1177
|
+
"Lawn Mowing",
|
|
1178
|
+
"Lawn Care or Fertilization",
|
|
1179
|
+
"Yard or Leaf Cleanup",
|
|
1180
|
+
"Patios or Walkways",
|
|
1181
|
+
"Stonework",
|
|
1182
|
+
"Architects",
|
|
1183
|
+
"Landscape Construction",
|
|
1184
|
+
"Outdoor Lighting",
|
|
1185
|
+
"Grading",
|
|
1186
|
+
"Materials Delivery",
|
|
1187
|
+
"Spinklers",
|
|
1188
|
+
],
|
|
1189
|
+
},
|
|
1190
|
+
updates
|
|
1191
|
+
)
|
|
1192
|
+
)
|
|
1193
|
+
};
|
|
666
1194
|
|
|
667
|
-
const masonrySubtype$1 = (scope) =>
|
|
668
|
-
verticalRadio
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
1195
|
+
const masonrySubtype$1 = (scope, vertical, updates = {}) => {
|
|
1196
|
+
const func = vertical ? verticalRadio : sbsSelect;
|
|
1197
|
+
const label = vertical ? updates.label : "What masonry job?";
|
|
1198
|
+
return func(
|
|
1199
|
+
merge(
|
|
1200
|
+
{
|
|
1201
|
+
label,
|
|
1202
|
+
name: scope ? scope + ":" + "Masonry_Subtype" : "Masonry_Subtype",
|
|
1203
|
+
options: ["Driveways", "Walkways", "Floors", "Walls", "Facades", "Material Delivery", "Not Sure or Other"],
|
|
1204
|
+
},
|
|
1205
|
+
updates
|
|
1206
|
+
)
|
|
1207
|
+
)
|
|
1208
|
+
};
|
|
673
1209
|
|
|
674
|
-
const masonryMaterial$1 = (scope) =>
|
|
675
|
-
verticalRadio
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
1210
|
+
const masonryMaterial$1 = (scope, vertical, updates = {}) => {
|
|
1211
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
1212
|
+
const label = vertical ? updates.label : "What masonry material?";
|
|
1213
|
+
return func(
|
|
1214
|
+
merge(
|
|
1215
|
+
{
|
|
1216
|
+
label,
|
|
1217
|
+
name: scope ? scope + ":" + "Masonry_Material" : "Masonry_Material",
|
|
1218
|
+
options: ["Brick or Stone", "Pavers", "Concrete", "Not Sure or Other"],
|
|
1219
|
+
},
|
|
1220
|
+
updates
|
|
1221
|
+
)
|
|
1222
|
+
)
|
|
1223
|
+
};
|
|
680
1224
|
|
|
681
|
-
const masonryWorkType$1 = (scope) =>
|
|
682
|
-
verticalRadio
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
1225
|
+
const masonryWorkType$1 = (scope, vertical, updates = {}) => {
|
|
1226
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
1227
|
+
const label = vertical ? updates.label : "What type of work?";
|
|
1228
|
+
return func(
|
|
1229
|
+
merge(
|
|
1230
|
+
{
|
|
1231
|
+
label,
|
|
1232
|
+
name: scope ? scope + ":" + "Masonry_Work_Type" : "Masonry_Work_Type",
|
|
1233
|
+
options: ["Install or Replace", "Repoint Brick or Stone", "Repair", "Not Sure or Other"],
|
|
1234
|
+
},
|
|
1235
|
+
updates
|
|
1236
|
+
)
|
|
1237
|
+
)
|
|
1238
|
+
};
|
|
687
1239
|
|
|
688
|
-
const restorationSubtype$1 = (scope) =>
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
1240
|
+
const restorationSubtype$1 = (scope, vertical, updates = {}) => {
|
|
1241
|
+
const func = vertical ? verticalSelect : sbsSelect;
|
|
1242
|
+
const label = vertical ? updates.label : "What restoration job?";
|
|
1243
|
+
return func(
|
|
1244
|
+
merge(
|
|
1245
|
+
{
|
|
1246
|
+
label,
|
|
1247
|
+
name: scope ? scope + ":" + "Restoration_Subtype" : "Restoration_Subtype",
|
|
1248
|
+
options: ["Mold Remediation", "Fire Damage", "Water Damage", "Not Sure or Other"],
|
|
1249
|
+
},
|
|
1250
|
+
updates
|
|
1251
|
+
)
|
|
1252
|
+
)
|
|
1253
|
+
};
|
|
694
1254
|
|
|
695
1255
|
// TODO: need to finalize support for moving
|
|
696
1256
|
|
|
@@ -728,165 +1288,280 @@ const restorationSubtype$1 = (scope) =>
|
|
|
728
1288
|
// ]
|
|
729
1289
|
// })
|
|
730
1290
|
|
|
731
|
-
const paintingSubtype$1 = (scope) =>
|
|
732
|
-
verticalSelect
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
1291
|
+
const paintingSubtype$1 = (scope, vertical, updates = {}) => {
|
|
1292
|
+
const func = vertical ? verticalSelect : sbsSelect;
|
|
1293
|
+
const label = vertical ? updates.label : "What painting job type?";
|
|
1294
|
+
return func(
|
|
1295
|
+
merge(
|
|
1296
|
+
{
|
|
1297
|
+
label,
|
|
1298
|
+
name: scope ? scope + ":" + "Painting_Subtype" : "Painting_Subtype",
|
|
1299
|
+
options: [
|
|
1300
|
+
"Whole Exterior",
|
|
1301
|
+
"Exterior Touch-up",
|
|
1302
|
+
"Interior Rooms",
|
|
1303
|
+
"Interior Touch-up",
|
|
1304
|
+
"Ceilings",
|
|
1305
|
+
"Deck",
|
|
1306
|
+
"Shed",
|
|
1307
|
+
"Cabinets",
|
|
1308
|
+
"Not Sure or Other",
|
|
1309
|
+
],
|
|
1310
|
+
},
|
|
1311
|
+
updates
|
|
1312
|
+
)
|
|
1313
|
+
)
|
|
1314
|
+
};
|
|
754
1315
|
|
|
755
|
-
const pestControlSubtype$1 = (scope) =>
|
|
756
|
-
verticalSelect
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
1316
|
+
const pestControlSubtype$1 = (scope, vertical, updates = {}) => {
|
|
1317
|
+
const func = vertical ? verticalSelect : sbsSelect;
|
|
1318
|
+
const label = vertical ? updates.label : "What pest control job type?";
|
|
1319
|
+
return func(
|
|
1320
|
+
merge(
|
|
1321
|
+
{
|
|
1322
|
+
label,
|
|
1323
|
+
name: scope ? scope + ":" + "Pest_Control_Subtype" : "Pest_Control_Subtype",
|
|
1324
|
+
options: [
|
|
1325
|
+
"Bed Bugs",
|
|
1326
|
+
"Flying Animals",
|
|
1327
|
+
"Insects",
|
|
1328
|
+
"Rodents",
|
|
1329
|
+
"Small Animals",
|
|
1330
|
+
"Bees",
|
|
1331
|
+
"Termites",
|
|
1332
|
+
"Not Sure or Other",
|
|
1333
|
+
],
|
|
1334
|
+
},
|
|
1335
|
+
updates
|
|
1336
|
+
)
|
|
1337
|
+
)
|
|
1338
|
+
};
|
|
770
1339
|
|
|
771
|
-
const poolsWorkType$1 = (scope) =>
|
|
772
|
-
verticalRadio
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
1340
|
+
const poolsWorkType$1 = (scope, vertical, updates = {}) => {
|
|
1341
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
1342
|
+
const label = vertical ? updates.label : "What type of work?";
|
|
1343
|
+
return func(
|
|
1344
|
+
merge(
|
|
1345
|
+
{
|
|
1346
|
+
label,
|
|
1347
|
+
name: scope ? scope + ":" + "Pools_Work_Type" : "Pools_Work_Type",
|
|
1348
|
+
options: ["Install or Replace", "Repair", "Cleaning", "Close or Open Pool", "Not Sure or Other"],
|
|
1349
|
+
},
|
|
1350
|
+
updates
|
|
1351
|
+
)
|
|
1352
|
+
)
|
|
1353
|
+
};
|
|
777
1354
|
|
|
778
|
-
const poolsSubtype$1 = (scope) =>
|
|
779
|
-
verticalSelect
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
1355
|
+
const poolsSubtype$1 = (scope, vertical, updates = {}) => {
|
|
1356
|
+
const func = vertical ? verticalSelect : sbsSelect;
|
|
1357
|
+
const label = vertical ? updates.label : "What type of pool?";
|
|
1358
|
+
return func(
|
|
1359
|
+
merge(
|
|
1360
|
+
{
|
|
1361
|
+
label,
|
|
1362
|
+
name: scope ? scope + ":" + "Pools_Subtype" : "Pools_Subtype",
|
|
1363
|
+
options: [
|
|
1364
|
+
"Above Ground",
|
|
1365
|
+
"Inground Concrete",
|
|
1366
|
+
"Inground Fiberglass",
|
|
1367
|
+
"Inground Vinyl",
|
|
1368
|
+
"Inground Gunite",
|
|
1369
|
+
"Pool Liners",
|
|
1370
|
+
"Pool Filters",
|
|
1371
|
+
"Not Sure or Other",
|
|
1372
|
+
],
|
|
1373
|
+
},
|
|
1374
|
+
updates
|
|
1375
|
+
)
|
|
1376
|
+
)
|
|
1377
|
+
};
|
|
793
1378
|
|
|
794
|
-
const plumbingSubtype$1 = (scope) =>
|
|
795
|
-
verticalSelect
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
1379
|
+
const plumbingSubtype$1 = (scope, vertical, updates = {}) => {
|
|
1380
|
+
const func = vertical ? verticalSelect : sbsSelect;
|
|
1381
|
+
const label = vertical ? updates.label : "What plumbing job type?";
|
|
1382
|
+
return func(
|
|
1383
|
+
merge(
|
|
1384
|
+
{
|
|
1385
|
+
label,
|
|
1386
|
+
name: scope ? scope + ":" + "Plumbing_Subtype" : "Plumbing_Subtype",
|
|
1387
|
+
options: [
|
|
1388
|
+
"Tub or Shower",
|
|
1389
|
+
"Drain",
|
|
1390
|
+
"Sink",
|
|
1391
|
+
"Toilet",
|
|
1392
|
+
"Boiler",
|
|
1393
|
+
"Water Heater",
|
|
1394
|
+
"Sump Pump",
|
|
1395
|
+
"Piping",
|
|
1396
|
+
"Septic",
|
|
1397
|
+
"Water Main",
|
|
1398
|
+
"Hot Tub",
|
|
1399
|
+
"Additions and Remodels",
|
|
1400
|
+
"Not Sure or Other",
|
|
1401
|
+
],
|
|
1402
|
+
},
|
|
1403
|
+
updates
|
|
1404
|
+
)
|
|
1405
|
+
)
|
|
1406
|
+
};
|
|
814
1407
|
|
|
815
|
-
const remodelingSubtype$1 = (scope) =>
|
|
816
|
-
verticalSelect
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
1408
|
+
const remodelingSubtype$1 = (scope, vertical, updates = {}) => {
|
|
1409
|
+
const func = vertical ? verticalSelect : sbsSelect;
|
|
1410
|
+
const label = vertical ? updates.label : "What remodeling job?";
|
|
1411
|
+
return func(
|
|
1412
|
+
merge(
|
|
1413
|
+
{
|
|
1414
|
+
label,
|
|
1415
|
+
name: scope ? scope + ":" + "Remodeling_Subtype" : "Remodeling_Subtype",
|
|
1416
|
+
options: [
|
|
1417
|
+
"Interior Designer",
|
|
1418
|
+
"Interior Decorator",
|
|
1419
|
+
"Kitchen Remodeling",
|
|
1420
|
+
"Bathroom Remodeling",
|
|
1421
|
+
"Garage Remodeling",
|
|
1422
|
+
"Home Remodeling",
|
|
1423
|
+
"Dumpster Rental",
|
|
1424
|
+
"Landscape Architect",
|
|
1425
|
+
"Outdoor Kitchen",
|
|
1426
|
+
"Outdoor Enclosure",
|
|
1427
|
+
"Additions",
|
|
1428
|
+
"Not Sure or Other",
|
|
1429
|
+
],
|
|
1430
|
+
},
|
|
1431
|
+
updates
|
|
1432
|
+
)
|
|
1433
|
+
)
|
|
1434
|
+
};
|
|
834
1435
|
|
|
835
|
-
const roofingWorkType$1 = (scope) =>
|
|
836
|
-
verticalRadio
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
1436
|
+
const roofingWorkType$1 = (scope, vertical, updates = {}) => {
|
|
1437
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
1438
|
+
const label = vertical ? updates.label : "What type of work?";
|
|
1439
|
+
return func(
|
|
1440
|
+
merge(
|
|
1441
|
+
{
|
|
1442
|
+
label,
|
|
1443
|
+
name: scope ? scope + ":" + "Roofing_Work_Type" : "Roofing_Work_Type",
|
|
1444
|
+
options: ["Install or Replace Roof", "Repair Roof", "Ice Dams", "Gutters", "Not Sure or Other"],
|
|
1445
|
+
},
|
|
1446
|
+
updates
|
|
1447
|
+
)
|
|
1448
|
+
)
|
|
1449
|
+
};
|
|
841
1450
|
|
|
842
|
-
const roofingMaterial$1 = (scope) =>
|
|
843
|
-
verticalSelect
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
1451
|
+
const roofingMaterial$1 = (scope, vertical, updates = {}) => {
|
|
1452
|
+
const func = vertical ? verticalSelect : sbsSelect;
|
|
1453
|
+
const label = vertical ? updates.label : "What roofing material?";
|
|
1454
|
+
return func(
|
|
1455
|
+
merge(
|
|
1456
|
+
{
|
|
1457
|
+
label,
|
|
1458
|
+
name: scope ? scope + ":" + "Roofing_Material" : "Roofing_Material",
|
|
1459
|
+
options: [
|
|
1460
|
+
"Asphalt Shingle",
|
|
1461
|
+
"Metal",
|
|
1462
|
+
"Composite",
|
|
1463
|
+
"Flat",
|
|
1464
|
+
"Foam",
|
|
1465
|
+
"Tile",
|
|
1466
|
+
"Wood",
|
|
1467
|
+
"Slate",
|
|
1468
|
+
"Not Sure or Other",
|
|
1469
|
+
],
|
|
1470
|
+
},
|
|
1471
|
+
updates
|
|
1472
|
+
)
|
|
1473
|
+
)
|
|
1474
|
+
};
|
|
848
1475
|
|
|
849
|
-
const sidingMaterial$1 = (scope) =>
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
1476
|
+
const sidingMaterial$1 = (scope, vertical, updates = {}) => {
|
|
1477
|
+
const func = vertical ? col2RadioCenter : sbsSelect;
|
|
1478
|
+
const label = vertical ? updates.label : "What siding material?";
|
|
1479
|
+
return func(
|
|
1480
|
+
merge(
|
|
1481
|
+
{
|
|
1482
|
+
label,
|
|
1483
|
+
name: scope ? scope + ":" + "Siding_Material" : "Siding_Material",
|
|
1484
|
+
options: ["Vinyl", "Composite", "Brick", "Stone", "Wood", "Stucco", "Not Sure or Other"],
|
|
1485
|
+
},
|
|
1486
|
+
updates
|
|
1487
|
+
)
|
|
1488
|
+
)
|
|
1489
|
+
};
|
|
855
1490
|
|
|
856
|
-
const tilingSubtype$1 = (scope) =>
|
|
857
|
-
verticalRadio
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
1491
|
+
const tilingSubtype$1 = (scope, vertical, updates = {}) => {
|
|
1492
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
1493
|
+
const label = vertical ? updates.label : "What tiling job type?";
|
|
1494
|
+
return func(
|
|
1495
|
+
merge(
|
|
1496
|
+
{
|
|
1497
|
+
label,
|
|
1498
|
+
name: scope ? scope + ":" + "Tiling_Subtype" : "Tiling_Subtype",
|
|
1499
|
+
options: ["Floor", "Backsplash", "Bathroom", "Wall", "Not Sure or Other"],
|
|
1500
|
+
},
|
|
1501
|
+
updates
|
|
1502
|
+
)
|
|
1503
|
+
)
|
|
1504
|
+
};
|
|
862
1505
|
|
|
863
|
-
const waterproofingSubtype$1 = (scope) =>
|
|
864
|
-
verticalRadio
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
1506
|
+
const waterproofingSubtype$1 = (scope, vertical, updates = {}) => {
|
|
1507
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
1508
|
+
const label = vertical ? updates.label : "What waterproofing job?";
|
|
1509
|
+
return func(
|
|
1510
|
+
merge(
|
|
1511
|
+
{
|
|
1512
|
+
label,
|
|
1513
|
+
name: scope ? scope + ":" + "Waterproofing_Subtype" : "Waterproofing_Subtype",
|
|
1514
|
+
options: ["Foundations", "Basements", "Drainage", "Not Sure or Other"],
|
|
1515
|
+
},
|
|
1516
|
+
updates
|
|
1517
|
+
)
|
|
1518
|
+
)
|
|
1519
|
+
};
|
|
869
1520
|
|
|
870
|
-
const windowsWorkType$1 = (scope) =>
|
|
871
|
-
verticalRadio
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
1521
|
+
const windowsWorkType$1 = (scope, vertical, updates = {}) => {
|
|
1522
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
1523
|
+
const label = vertical ? updates.label : "What type of work?";
|
|
1524
|
+
return func(
|
|
1525
|
+
merge(
|
|
1526
|
+
{
|
|
1527
|
+
label,
|
|
1528
|
+
name: scope ? scope + ":" + "Windows_Work_Type" : "Windows_Work_Type",
|
|
1529
|
+
options: ["Install or Replace", "Repair", "Cleaning", "Not Sure or Other"],
|
|
1530
|
+
},
|
|
1531
|
+
updates
|
|
1532
|
+
)
|
|
1533
|
+
)
|
|
1534
|
+
};
|
|
876
1535
|
|
|
877
|
-
const windowsSubtype$1 = (scope) =>
|
|
878
|
-
verticalSelect
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
1536
|
+
const windowsSubtype$1 = (scope, vertical, updates = {}) => {
|
|
1537
|
+
const func = vertical ? verticalSelect : sbsSelect;
|
|
1538
|
+
const label = vertical ? updates.label : "What windows job type?";
|
|
1539
|
+
return func(
|
|
1540
|
+
merge(
|
|
1541
|
+
{
|
|
1542
|
+
label,
|
|
1543
|
+
name: scope ? scope + ":" + "Windows_Subtype" : "Windows_Subtype",
|
|
1544
|
+
options: ["Whole Windows", "Frames", "Glass", "Hardware", "Storm Windows", "Screens", "Not Sure or Other"],
|
|
1545
|
+
},
|
|
1546
|
+
updates
|
|
1547
|
+
)
|
|
1548
|
+
)
|
|
1549
|
+
};
|
|
883
1550
|
|
|
884
|
-
const numberOfWindows$1 = (scope) =>
|
|
885
|
-
verticalRadio
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
1551
|
+
const numberOfWindows$1 = (scope, vertical, updates = {}) => {
|
|
1552
|
+
const func = vertical ? verticalRadio : sbsRadio;
|
|
1553
|
+
const label = vertical ? updates.label : "How many windows?";
|
|
1554
|
+
return func(
|
|
1555
|
+
merge(
|
|
1556
|
+
{
|
|
1557
|
+
label,
|
|
1558
|
+
name: scope ? scope + ":" + "Number_Of_Windows" : "Number_Of_Windows",
|
|
1559
|
+
options: ["1", "2", "3-5", "6+"],
|
|
1560
|
+
},
|
|
1561
|
+
updates
|
|
1562
|
+
)
|
|
1563
|
+
)
|
|
1564
|
+
};
|
|
890
1565
|
|
|
891
1566
|
const NEXT_ON_ENTER = "$onEnter($setNextStep($fireStepEvent($get(form)), $preStepFunc($get(form))))";
|
|
892
1567
|
const NEXT_ON_INPUT = "$onInput($setNextStep($fireStepEvent($get(form)), $preStepFunc($get(form))))";
|
|
@@ -949,6 +1624,16 @@ function secureIcon(updates) {
|
|
|
949
1624
|
return merge(secureIconDefault, updates)
|
|
950
1625
|
}
|
|
951
1626
|
|
|
1627
|
+
function crossSellQuestionsStepHeadline(updates) {
|
|
1628
|
+
return {
|
|
1629
|
+
$el: "h3",
|
|
1630
|
+
children: updates.headline || "Tell Us About Your Situation",
|
|
1631
|
+
attrs: {
|
|
1632
|
+
class: "t-flex t-justify-center t-text-center t-text-2xl t-font-bold t-text-blue-500 t-pb-4 t-pt-0 t-px-1",
|
|
1633
|
+
},
|
|
1634
|
+
}
|
|
1635
|
+
}
|
|
1636
|
+
|
|
952
1637
|
function verticalStepHeadline(updates) {
|
|
953
1638
|
return {
|
|
954
1639
|
$el: "h3",
|
|
@@ -1182,46 +1867,289 @@ function zipcode(updates = {}) {
|
|
|
1182
1867
|
return sqstep("zipcode", zipcode$1(updates.scope, true, updates.input), "Please verify your Zip Code", updates)
|
|
1183
1868
|
}
|
|
1184
1869
|
|
|
1185
|
-
//
|
|
1186
|
-
// return step(
|
|
1187
|
-
// 'remodelingCrossSellQuestions',
|
|
1188
|
-
// [
|
|
1189
|
-
// crossSellQuestionsStepHeadline({ headline: 'Connect With A Pro Remodeler' }),
|
|
1190
|
-
// crossSellQuestionsStepSubHeadline({ subheadline: 'Tell us about your remodeling needs:' }),
|
|
1191
|
-
// inp.RemodelingQuestions("true", 'CrossSell:Remodeling'),
|
|
1192
|
-
// inp.comments('CrossSell:Remodeling', false,
|
|
1193
|
-
// {
|
|
1194
|
-
// label: 'Project Description:',
|
|
1195
|
-
// placeholder: 'Please describe your project in a few words...',
|
|
1196
|
-
// inputClass: '!t-h-16'
|
|
1197
|
-
// },
|
|
1198
|
-
// )
|
|
1199
|
-
// ],
|
|
1200
|
-
// updates
|
|
1201
|
-
// )
|
|
1202
|
-
// }
|
|
1870
|
+
// ------ Home Improvement
|
|
1203
1871
|
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1872
|
+
function homeImprovementCrossSellsStepHeadline(updates) {
|
|
1873
|
+
return {
|
|
1874
|
+
$el: "h3",
|
|
1875
|
+
children: updates.headline || "Interested in free quotes for other projects?",
|
|
1876
|
+
attrs: {
|
|
1877
|
+
class:
|
|
1878
|
+
"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" +
|
|
1879
|
+
" " +
|
|
1880
|
+
(updates.headlineClass || ""),
|
|
1881
|
+
},
|
|
1882
|
+
}
|
|
1883
|
+
}
|
|
1884
|
+
|
|
1885
|
+
function homeImprovementCrossSells(updates = {}) {
|
|
1886
|
+
updates.nextOnInput = false;
|
|
1887
|
+
updates.stepKey = "$get(Category).value";
|
|
1888
|
+
return step(
|
|
1889
|
+
"homeImprovementCrossSells",
|
|
1890
|
+
[homeImprovementCrossSellsStepHeadline(updates), homeImprovementCrossSells$1(updates.scope)],
|
|
1891
|
+
updates
|
|
1892
|
+
)
|
|
1893
|
+
}
|
|
1894
|
+
|
|
1895
|
+
function appliancesCrossSellQuestions(updates = {}) {
|
|
1896
|
+
return step(
|
|
1897
|
+
"appliancesCrossSellQuestions",
|
|
1898
|
+
[
|
|
1899
|
+
crossSellQuestionsStepHeadline({ headline: "Connect With Appliance Pros" }),
|
|
1900
|
+
ApplianceQuestions("true", "CrossSell:Appliances"),
|
|
1901
|
+
comments("CrossSell:Appliances", false, {
|
|
1902
|
+
label: "Project Description:",
|
|
1903
|
+
placeholder: "Please describe your project in a few words...",
|
|
1904
|
+
inputClass: "!t-h-16",
|
|
1905
|
+
}),
|
|
1906
|
+
],
|
|
1907
|
+
updates
|
|
1908
|
+
)
|
|
1909
|
+
}
|
|
1910
|
+
|
|
1911
|
+
function carpentryCrossSellQuestions(updates = {}) {
|
|
1912
|
+
return step(
|
|
1913
|
+
"carpentryCrossSellQuestions",
|
|
1914
|
+
[
|
|
1915
|
+
crossSellQuestionsStepHeadline({ headline: "Connect With a Carpenter" }),
|
|
1916
|
+
CarpentryQuestions("true", "CrossSell:Carpentry"),
|
|
1917
|
+
comments("CrossSell:Carpentry", false, {
|
|
1918
|
+
label: "Project Description:",
|
|
1919
|
+
placeholder: "Please describe your project in a few words...",
|
|
1920
|
+
inputClass: "!t-h-16",
|
|
1921
|
+
}),
|
|
1922
|
+
],
|
|
1923
|
+
updates
|
|
1924
|
+
)
|
|
1925
|
+
}
|
|
1926
|
+
|
|
1927
|
+
function drivewaysCrossSellQuestions(updates = {}) {
|
|
1928
|
+
return step(
|
|
1929
|
+
"drivewaysCrossSellQuestions",
|
|
1930
|
+
[
|
|
1931
|
+
crossSellQuestionsStepHeadline({ headline: "Connect With Driveway Pros" }),
|
|
1932
|
+
DrivewaysQuestions("true", "CrossSell:Driveways"),
|
|
1933
|
+
comments("CrossSell:Driveways", false, {
|
|
1934
|
+
label: "Project Description:",
|
|
1935
|
+
placeholder: "Please describe your project in a few words...",
|
|
1936
|
+
inputClass: "!t-h-16",
|
|
1937
|
+
}),
|
|
1938
|
+
],
|
|
1939
|
+
updates
|
|
1940
|
+
)
|
|
1941
|
+
}
|
|
1942
|
+
|
|
1943
|
+
function drywallAndPlasterCrossSellQuestions(updates = {}) {
|
|
1944
|
+
return step(
|
|
1945
|
+
"drywallCrossSellQuestions",
|
|
1946
|
+
[
|
|
1947
|
+
crossSellQuestionsStepHeadline({ headline: "Connect With Drywall Pros" }),
|
|
1948
|
+
DrywallAndPlasterQuestions("true", "CrossSell:Drywall and Plaster"),
|
|
1949
|
+
comments("CrossSell:Drywall and Plaster", false, {
|
|
1950
|
+
label: "Project Description:",
|
|
1951
|
+
placeholder: "Please describe your project in a few words...",
|
|
1952
|
+
inputClass: "!t-h-16",
|
|
1953
|
+
}),
|
|
1954
|
+
],
|
|
1955
|
+
updates
|
|
1956
|
+
)
|
|
1957
|
+
}
|
|
1958
|
+
|
|
1959
|
+
function electricalCrossSellQuestions(updates = {}) {
|
|
1960
|
+
return step(
|
|
1961
|
+
"electricalCrossSellQuestions",
|
|
1962
|
+
[
|
|
1963
|
+
crossSellQuestionsStepHeadline({ headline: "Connect With Electrical Pros" }),
|
|
1964
|
+
ElectricalQuestions("true", "CrossSell:Electrical"),
|
|
1965
|
+
comments("CrossSell:Electrical", false, {
|
|
1966
|
+
label: "Project Description:",
|
|
1967
|
+
placeholder: "Please describe your project in a few words...",
|
|
1968
|
+
inputClass: "!t-h-16",
|
|
1969
|
+
}),
|
|
1970
|
+
],
|
|
1971
|
+
updates
|
|
1972
|
+
)
|
|
1973
|
+
}
|
|
1974
|
+
|
|
1975
|
+
function flooringCrossSellQuestions(updates = {}) {
|
|
1976
|
+
return step(
|
|
1977
|
+
"flooringCrossSellQuestions",
|
|
1978
|
+
[
|
|
1979
|
+
crossSellQuestionsStepHeadline({ headline: "Connect With Flooring Pros" }),
|
|
1980
|
+
FlooringQuestions("true", "CrossSell:Flooring"),
|
|
1981
|
+
comments("CrossSell:Flooring", false, {
|
|
1982
|
+
label: "Project Description:",
|
|
1983
|
+
placeholder: "Please describe your project in a few words...",
|
|
1984
|
+
inputClass: "!t-h-16",
|
|
1985
|
+
}),
|
|
1986
|
+
],
|
|
1987
|
+
updates
|
|
1988
|
+
)
|
|
1989
|
+
}
|
|
1990
|
+
|
|
1991
|
+
function heatingCoolingCrossSellQuestions(updates = {}) {
|
|
1992
|
+
return step(
|
|
1993
|
+
"heatingCoolingCrossSellQuestions",
|
|
1994
|
+
[
|
|
1995
|
+
crossSellQuestionsStepHeadline({ headline: "Connect With HVAC Pros" }),
|
|
1996
|
+
HeatingAndCoolingQuestions("true", "CrossSell:Heating and Cooling"),
|
|
1997
|
+
comments("CrossSell:Heating and Cooling", false, {
|
|
1998
|
+
label: "Project Description:",
|
|
1999
|
+
placeholder: "Please describe your project in a few words...",
|
|
2000
|
+
inputClass: "!t-h-16",
|
|
2001
|
+
}),
|
|
2002
|
+
],
|
|
2003
|
+
updates
|
|
2004
|
+
)
|
|
2005
|
+
}
|
|
2006
|
+
|
|
2007
|
+
function landscapingCrossSellQuestions(updates = {}) {
|
|
2008
|
+
return step(
|
|
2009
|
+
"landscapingCrossSellQuestions",
|
|
2010
|
+
[
|
|
2011
|
+
crossSellQuestionsStepHeadline({ headline: "Connect With a Landscaper" }),
|
|
2012
|
+
LandscapingQuestions("true", "CrossSell:Landscaping"),
|
|
2013
|
+
comments("CrossSell:Landscaping", false, {
|
|
2014
|
+
label: "Project Description:",
|
|
2015
|
+
placeholder: "Please describe your project in a few words...",
|
|
2016
|
+
inputClass: "!t-h-16",
|
|
2017
|
+
}),
|
|
2018
|
+
],
|
|
2019
|
+
updates
|
|
2020
|
+
)
|
|
2021
|
+
}
|
|
2022
|
+
|
|
2023
|
+
function masonryAndConcreteCrossSellQuestions(updates = {}) {
|
|
2024
|
+
return step(
|
|
2025
|
+
"masonryAndConcreteCrossSellQuestions",
|
|
2026
|
+
[
|
|
2027
|
+
crossSellQuestionsStepHeadline({ headline: "Connect With Masonry Pros" }),
|
|
2028
|
+
MasonryAndConcreteQuestions("true", "CrossSell:Masonry and Concrete"),
|
|
2029
|
+
comments("CrossSell:Masonry and Concrete", false, {
|
|
2030
|
+
label: "Project Description:",
|
|
2031
|
+
placeholder: "Please describe your project in a few words...",
|
|
2032
|
+
inputClass: "!t-h-16",
|
|
2033
|
+
}),
|
|
2034
|
+
],
|
|
2035
|
+
updates
|
|
2036
|
+
)
|
|
2037
|
+
}
|
|
2038
|
+
|
|
2039
|
+
function paintingCrossSellQuestions(updates = {}) {
|
|
2040
|
+
return step(
|
|
2041
|
+
"paintingCrossSellQuestions",
|
|
2042
|
+
[
|
|
2043
|
+
crossSellQuestionsStepHeadline({ headline: "Connect With a Painter" }),
|
|
2044
|
+
PaintingQuestions("true", "CrossSell:Painting"),
|
|
2045
|
+
comments("CrossSell:Painting", false, {
|
|
2046
|
+
label: "Project Description:",
|
|
2047
|
+
placeholder: "Please describe your project in a few words...",
|
|
2048
|
+
inputClass: "!t-h-16",
|
|
2049
|
+
}),
|
|
2050
|
+
],
|
|
2051
|
+
updates
|
|
2052
|
+
)
|
|
2053
|
+
}
|
|
2054
|
+
|
|
2055
|
+
function pestControlCrossSellQuestions(updates = {}) {
|
|
2056
|
+
return step(
|
|
2057
|
+
"pestControlCrossSellQuestions",
|
|
2058
|
+
[
|
|
2059
|
+
crossSellQuestionsStepHeadline({ headline: "Get Pest Control Help" }),
|
|
2060
|
+
PestControlQuestions("true", "CrossSell:Pest Control"),
|
|
2061
|
+
comments("CrossSell:Pest Control", false, {
|
|
2062
|
+
label: "Project Description:",
|
|
2063
|
+
placeholder: "Please describe your project in a few words...",
|
|
2064
|
+
inputClass: "!t-h-16",
|
|
2065
|
+
}),
|
|
2066
|
+
],
|
|
2067
|
+
updates
|
|
2068
|
+
)
|
|
2069
|
+
}
|
|
2070
|
+
|
|
2071
|
+
function plumbingCrossSellQuestions(updates = {}) {
|
|
2072
|
+
return step(
|
|
2073
|
+
"plumbingCrossSellQuestions",
|
|
2074
|
+
[
|
|
2075
|
+
crossSellQuestionsStepHeadline({ headline: "Connect With a Plumber" }),
|
|
2076
|
+
PlumbingQuestions("true", "CrossSell:Plumbing"),
|
|
2077
|
+
comments("CrossSell:Plumbing", false, {
|
|
2078
|
+
label: "Project Description:",
|
|
2079
|
+
placeholder: "Please describe your project in a few words...",
|
|
2080
|
+
inputClass: "!t-h-16",
|
|
2081
|
+
}),
|
|
2082
|
+
],
|
|
2083
|
+
updates
|
|
2084
|
+
)
|
|
2085
|
+
}
|
|
2086
|
+
|
|
2087
|
+
function remodelingCrossSellQuestions(updates = {}) {
|
|
2088
|
+
return step(
|
|
2089
|
+
"remodelingCrossSellQuestions",
|
|
2090
|
+
[
|
|
2091
|
+
crossSellQuestionsStepHeadline({ headline: "Connect With Remodelers" }),
|
|
2092
|
+
RemodelingQuestions("true", "CrossSell:Remodeling"),
|
|
2093
|
+
comments("CrossSell:Remodeling", false, {
|
|
2094
|
+
label: "Project Description:",
|
|
2095
|
+
placeholder: "Please describe your project in a few words...",
|
|
2096
|
+
inputClass: "!t-h-16",
|
|
2097
|
+
}),
|
|
2098
|
+
],
|
|
2099
|
+
updates
|
|
2100
|
+
)
|
|
2101
|
+
}
|
|
2102
|
+
|
|
2103
|
+
function roofingCrossSellQuestions(updates = {}) {
|
|
2104
|
+
return step(
|
|
2105
|
+
"roofingCrossSellQuestions",
|
|
2106
|
+
[
|
|
2107
|
+
crossSellQuestionsStepHeadline({ headline: "Connect With a Roofer" }),
|
|
2108
|
+
RoofingQuestions("true", "CrossSell:Roofing"),
|
|
2109
|
+
comments("CrossSell:Roofing", false, {
|
|
2110
|
+
label: "Project Description:",
|
|
2111
|
+
placeholder: "Please describe your project in a few words...",
|
|
2112
|
+
inputClass: "!t-h-16",
|
|
2113
|
+
}),
|
|
2114
|
+
],
|
|
2115
|
+
updates
|
|
2116
|
+
)
|
|
2117
|
+
}
|
|
2118
|
+
|
|
2119
|
+
function sidingCrossSellQuestions(updates = {}) {
|
|
2120
|
+
return step(
|
|
2121
|
+
"sidingCrossSellQuestions",
|
|
2122
|
+
[
|
|
2123
|
+
crossSellQuestionsStepHeadline({ headline: "Connect With Siding Pros" }),
|
|
2124
|
+
SidingQuestions("true", "CrossSell:Siding"),
|
|
2125
|
+
comments("CrossSell:Siding", false, {
|
|
2126
|
+
label: "Project Description:",
|
|
2127
|
+
placeholder: "Please describe your project in a few words...",
|
|
2128
|
+
inputClass: "!t-h-16",
|
|
2129
|
+
}),
|
|
2130
|
+
],
|
|
2131
|
+
updates
|
|
2132
|
+
)
|
|
2133
|
+
}
|
|
2134
|
+
|
|
2135
|
+
function windowsCrossSellQuestions(updates = {}) {
|
|
2136
|
+
return step(
|
|
2137
|
+
"windowsCrossSellQuestions",
|
|
2138
|
+
[
|
|
2139
|
+
crossSellQuestionsStepHeadline({ headline: "Connect With Window Pros" }),
|
|
2140
|
+
WindowsQuestions("true", "CrossSell:Windows"),
|
|
2141
|
+
comments("CrossSell:Windows", false, {
|
|
2142
|
+
label: "Project Description:",
|
|
2143
|
+
placeholder: "Please describe your project in a few words...",
|
|
2144
|
+
inputClass: "!t-h-16",
|
|
2145
|
+
}),
|
|
2146
|
+
],
|
|
2147
|
+
updates
|
|
2148
|
+
)
|
|
2149
|
+
}
|
|
1222
2150
|
|
|
1223
2151
|
function homeImprovementCategory(updates = {}) {
|
|
1224
|
-
return step("homeImprovementCategory", [homeImprovementCategory$1(updates.scope,
|
|
2152
|
+
return step("homeImprovementCategory", [homeImprovementCategory$1(updates.scope, true, updates.input)], updates)
|
|
1225
2153
|
}
|
|
1226
2154
|
|
|
1227
2155
|
function timeframe(updates = {}) {
|
|
@@ -1286,7 +2214,7 @@ function carpentrySubtype(updates = {}) {
|
|
|
1286
2214
|
return sqstep(
|
|
1287
2215
|
"carpentrySubtype",
|
|
1288
2216
|
carpentrySubtype$1(updates.scope, true, updates.input),
|
|
1289
|
-
"What
|
|
2217
|
+
"What carpentry job type?",
|
|
1290
2218
|
updates
|
|
1291
2219
|
)
|
|
1292
2220
|
}
|
|
@@ -1371,7 +2299,7 @@ function electricalSubtype(updates = {}) {
|
|
|
1371
2299
|
return sqstep(
|
|
1372
2300
|
"electricalSubtype",
|
|
1373
2301
|
electricalSubtype$1(updates.scope, true, updates.input),
|
|
1374
|
-
"What
|
|
2302
|
+
"What electrical job type?",
|
|
1375
2303
|
updates
|
|
1376
2304
|
)
|
|
1377
2305
|
}
|
|
@@ -1412,10 +2340,10 @@ function gutterMaterial(updates = {}) {
|
|
|
1412
2340
|
)
|
|
1413
2341
|
}
|
|
1414
2342
|
|
|
1415
|
-
function
|
|
2343
|
+
function gutterWorkType(updates = {}) {
|
|
1416
2344
|
return sqstep(
|
|
1417
|
-
"
|
|
1418
|
-
|
|
2345
|
+
"gutterWorkType",
|
|
2346
|
+
gutterWorkType$1(updates.scope, true, updates.input),
|
|
1419
2347
|
"What type of gutter work?",
|
|
1420
2348
|
updates
|
|
1421
2349
|
)
|
|
@@ -1456,7 +2384,7 @@ function heatingCoolingSubtype(updates = {}) {
|
|
|
1456
2384
|
return sqstep(
|
|
1457
2385
|
"heatingCoolingSubtype",
|
|
1458
2386
|
heatingCoolingSubtype$1(updates.scope, true, updates.input),
|
|
1459
|
-
"What
|
|
2387
|
+
"What heating or cooling job type?",
|
|
1460
2388
|
updates
|
|
1461
2389
|
)
|
|
1462
2390
|
}
|
|
@@ -1487,7 +2415,7 @@ function masonrySubtype(updates = {}) {
|
|
|
1487
2415
|
return sqstep(
|
|
1488
2416
|
"masonrySubtype",
|
|
1489
2417
|
masonrySubtype$1(updates.scope, true, updates.input),
|
|
1490
|
-
"What
|
|
2418
|
+
"What masonry job type?",
|
|
1491
2419
|
updates
|
|
1492
2420
|
)
|
|
1493
2421
|
}
|
|
@@ -1560,7 +2488,7 @@ function paintingSubtype(updates = {}) {
|
|
|
1560
2488
|
function paintingRooms(updates = {}) {
|
|
1561
2489
|
return sqstep(
|
|
1562
2490
|
"paintingRooms",
|
|
1563
|
-
|
|
2491
|
+
numberOfRooms$1(updates.scope, true, updates.input),
|
|
1564
2492
|
"How many rooms need painting?",
|
|
1565
2493
|
updates
|
|
1566
2494
|
)
|
|
@@ -1597,7 +2525,7 @@ function plumbingSubtype(updates = {}) {
|
|
|
1597
2525
|
return sqstep(
|
|
1598
2526
|
"plumbingSubtype",
|
|
1599
2527
|
plumbingSubtype$1(updates.scope, true, updates.input),
|
|
1600
|
-
"What
|
|
2528
|
+
"What plumbing job type?",
|
|
1601
2529
|
updates
|
|
1602
2530
|
)
|
|
1603
2531
|
}
|
|
@@ -1669,7 +2597,7 @@ function windowsSubtype(updates = {}) {
|
|
|
1669
2597
|
return sqstep(
|
|
1670
2598
|
"windowsSubtype",
|
|
1671
2599
|
windowsSubtype$1(updates.scope, true, updates.input),
|
|
1672
|
-
"What
|
|
2600
|
+
"What windows job type?",
|
|
1673
2601
|
updates
|
|
1674
2602
|
)
|
|
1675
2603
|
}
|
|
@@ -1686,7 +2614,11 @@ function numberOfWindows(updates = {}) {
|
|
|
1686
2614
|
const formNavigation = (updates = {}) => ({
|
|
1687
2615
|
$el: "div",
|
|
1688
2616
|
attrs: {
|
|
1689
|
-
class:
|
|
2617
|
+
class: {
|
|
2618
|
+
if: "$activeStep === $firstStep()",
|
|
2619
|
+
then: "step-nav !t-justify-center sm:!t-justify-between",
|
|
2620
|
+
else: "step-nav !t-justify-between",
|
|
2621
|
+
},
|
|
1690
2622
|
},
|
|
1691
2623
|
children: [
|
|
1692
2624
|
{
|
|
@@ -1694,9 +2626,17 @@ const formNavigation = (updates = {}) => ({
|
|
|
1694
2626
|
name: "back_button",
|
|
1695
2627
|
onClick: "$setPreviousStep($prevStepFunc($get(form)))",
|
|
1696
2628
|
children: "Back",
|
|
2629
|
+
outerClass: {
|
|
2630
|
+
if: "$activeStep === $firstStep()",
|
|
2631
|
+
then: "t-hidden sm:t-block",
|
|
2632
|
+
else: "",
|
|
2633
|
+
},
|
|
1697
2634
|
style: {
|
|
1698
2635
|
if: "$activeStep === $firstStep()",
|
|
1699
|
-
then: "
|
|
2636
|
+
then: "display: none;",
|
|
2637
|
+
},
|
|
2638
|
+
classes: {
|
|
2639
|
+
input: updates.inputClass || "",
|
|
1700
2640
|
},
|
|
1701
2641
|
},
|
|
1702
2642
|
{
|
|
@@ -1705,7 +2645,7 @@ const formNavigation = (updates = {}) => ({
|
|
|
1705
2645
|
onClick: "$setNextStep($fireStepEvent($get(form)), $preStepFunc($get(form)))",
|
|
1706
2646
|
children: {
|
|
1707
2647
|
if: "$activeStep === $firstStep()",
|
|
1708
|
-
then: "Start",
|
|
2648
|
+
then: updates.startText || "Start",
|
|
1709
2649
|
else: "Next",
|
|
1710
2650
|
},
|
|
1711
2651
|
outerClass: {
|
|
@@ -1717,6 +2657,9 @@ const formNavigation = (updates = {}) => ({
|
|
|
1717
2657
|
if: "$activeStep === $lastStep()",
|
|
1718
2658
|
then: "display: none;",
|
|
1719
2659
|
},
|
|
2660
|
+
classes: {
|
|
2661
|
+
input: updates.inputClass || "",
|
|
2662
|
+
},
|
|
1720
2663
|
},
|
|
1721
2664
|
{
|
|
1722
2665
|
$formkit: "submit",
|
|
@@ -1727,6 +2670,9 @@ const formNavigation = (updates = {}) => ({
|
|
|
1727
2670
|
if: "$activeStep !== $lastStep()",
|
|
1728
2671
|
then: "display: none;",
|
|
1729
2672
|
},
|
|
2673
|
+
classes: {
|
|
2674
|
+
input: (updates.inputClass || "") + " !t-ml-2 sm:!t-ml-auto",
|
|
2675
|
+
},
|
|
1730
2676
|
},
|
|
1731
2677
|
],
|
|
1732
2678
|
});
|
|
@@ -1847,6 +2793,79 @@ function defaultMetaPropsHomeImprovement(category = null) {
|
|
|
1847
2793
|
})
|
|
1848
2794
|
}
|
|
1849
2795
|
|
|
2796
|
+
function defaultMetaPropsHomeImprovementGeneral(defaultSteps = nextStepsHomeImprovementDefault) {
|
|
2797
|
+
const meta = defaultMetaPropsHomeImprovement();
|
|
2798
|
+
meta.data.dynamicSchema = [
|
|
2799
|
+
zipcode(),
|
|
2800
|
+
timeframe(),
|
|
2801
|
+
ownHome(),
|
|
2802
|
+
address(),
|
|
2803
|
+
homeImprovementWorkType(),
|
|
2804
|
+
additionsSubType(),
|
|
2805
|
+
constructionAreaSize(),
|
|
2806
|
+
applianceType(),
|
|
2807
|
+
cabinetWorkType(),
|
|
2808
|
+
carpentrySubtype(),
|
|
2809
|
+
carpetWorkType(),
|
|
2810
|
+
cleaningSubtype(),
|
|
2811
|
+
countertopMaterial(),
|
|
2812
|
+
deckWorkType(),
|
|
2813
|
+
demolitionSubtype(),
|
|
2814
|
+
doorSubtype(),
|
|
2815
|
+
drivewayWorkType(),
|
|
2816
|
+
drivewayMaterial(),
|
|
2817
|
+
wallSurfaceType(),
|
|
2818
|
+
electricalSubtype(),
|
|
2819
|
+
fenceMaterial(),
|
|
2820
|
+
flooringMaterial(),
|
|
2821
|
+
generalContractorSubtype(),
|
|
2822
|
+
gutterMaterial(),
|
|
2823
|
+
gutterWorkType(),
|
|
2824
|
+
smartHomeSubtype(),
|
|
2825
|
+
homeOrganizationSubtype(),
|
|
2826
|
+
numberOfRooms(),
|
|
2827
|
+
homeTheaterSubtype(),
|
|
2828
|
+
heatingCoolingSubtype(),
|
|
2829
|
+
fuelSource(),
|
|
2830
|
+
insulationSubtype(),
|
|
2831
|
+
landscapingSubtype(),
|
|
2832
|
+
masonrySubtype(),
|
|
2833
|
+
masonryMaterial(),
|
|
2834
|
+
masonryWorkType(),
|
|
2835
|
+
restorationSubtype(),
|
|
2836
|
+
// Moving not finished yet
|
|
2837
|
+
// steps.movingFromAddress(),
|
|
2838
|
+
// steps.movingToAddress(),
|
|
2839
|
+
// steps.movingHouseholdSize(),
|
|
2840
|
+
paintingSubtype({
|
|
2841
|
+
nextStepMap: nextStepsMapPainting(defaultSteps),
|
|
2842
|
+
}),
|
|
2843
|
+
paintingRooms(),
|
|
2844
|
+
pestControlSubtype(),
|
|
2845
|
+
poolsWorkType(),
|
|
2846
|
+
poolsSubtype(),
|
|
2847
|
+
plumbingSubtype(),
|
|
2848
|
+
remodelingSubtype(),
|
|
2849
|
+
roofingWorkType(),
|
|
2850
|
+
roofingMaterial(),
|
|
2851
|
+
sidingMaterial(),
|
|
2852
|
+
tilingSubtype(),
|
|
2853
|
+
waterproofingSubtype(),
|
|
2854
|
+
windowsWorkType(),
|
|
2855
|
+
windowsSubtype(),
|
|
2856
|
+
numberOfWindows(),
|
|
2857
|
+
commentsHeadline({
|
|
2858
|
+
label: null,
|
|
2859
|
+
headline: "Please briefly describe your project:",
|
|
2860
|
+
headlineClass: "!t-text-dark",
|
|
2861
|
+
}),
|
|
2862
|
+
firstAndLastV3({
|
|
2863
|
+
headlineClass: "!t-text-dark",
|
|
2864
|
+
}),
|
|
2865
|
+
];
|
|
2866
|
+
return meta
|
|
2867
|
+
}
|
|
2868
|
+
|
|
1850
2869
|
function dynamicSchemaNode(field = "Type_Of_Legal_Problem") {
|
|
1851
2870
|
return {
|
|
1852
2871
|
$cmp: "FormKitSchema",
|
|
@@ -2060,6 +3079,7 @@ const HomeImprovementCommentsPlaceholders = {
|
|
|
2060
3079
|
Waterproofing: 'Example: "I need to waterproof my basement"',
|
|
2061
3080
|
"Window Cleaning": 'Example: "I need a professional window cleaning service"',
|
|
2062
3081
|
Windows: 'Example: "I want to replace 3 windows in my house"',
|
|
3082
|
+
"Not Sure or Other": 'Example: "I need general handyman services"',
|
|
2063
3083
|
};
|
|
2064
3084
|
|
|
2065
3085
|
const HomeImprovementFinalHeadlines = {
|
|
@@ -2182,175 +3202,155 @@ const nextStepsHomeImprovementDefault = [
|
|
|
2182
3202
|
"ownHome",
|
|
2183
3203
|
"zipcode",
|
|
2184
3204
|
"address",
|
|
2185
|
-
|
|
3205
|
+
"homeImprovementCrossSells",
|
|
2186
3206
|
"firstAndLast",
|
|
2187
3207
|
"contactInfo",
|
|
2188
3208
|
];
|
|
2189
3209
|
|
|
2190
|
-
const nextStepsMapGeneralHomeImprovement = {
|
|
2191
|
-
|
|
2192
|
-
|
|
2193
|
-
|
|
2194
|
-
|
|
2195
|
-
|
|
2196
|
-
|
|
2197
|
-
|
|
2198
|
-
|
|
2199
|
-
|
|
2200
|
-
|
|
2201
|
-
|
|
2202
|
-
|
|
2203
|
-
|
|
2204
|
-
|
|
2205
|
-
|
|
2206
|
-
|
|
2207
|
-
|
|
2208
|
-
|
|
2209
|
-
|
|
2210
|
-
|
|
2211
|
-
|
|
2212
|
-
|
|
2213
|
-
|
|
2214
|
-
|
|
2215
|
-
|
|
2216
|
-
|
|
2217
|
-
|
|
2218
|
-
|
|
2219
|
-
|
|
2220
|
-
|
|
2221
|
-
|
|
2222
|
-
|
|
2223
|
-
|
|
2224
|
-
|
|
2225
|
-
"heatingCoolingSubtype",
|
|
2226
|
-
"
|
|
2227
|
-
"
|
|
2228
|
-
...
|
|
2229
|
-
|
|
2230
|
-
|
|
2231
|
-
|
|
2232
|
-
|
|
2233
|
-
|
|
2234
|
-
|
|
2235
|
-
"
|
|
2236
|
-
"
|
|
2237
|
-
"
|
|
2238
|
-
...
|
|
2239
|
-
|
|
2240
|
-
|
|
2241
|
-
|
|
2242
|
-
|
|
2243
|
-
|
|
2244
|
-
|
|
2245
|
-
|
|
2246
|
-
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
|
|
2250
|
-
|
|
2251
|
-
Solar: ["homeImprovementWorkType", ...nextStepsHomeImprovementDefault],
|
|
2252
|
-
Tiling: ["tilingSubtype", "homeImprovementWorkType", ...nextStepsHomeImprovementDefault],
|
|
2253
|
-
"Walk-in Tubs": [...nextStepsHomeImprovementDefault],
|
|
2254
|
-
Waterproofing: ["waterproofingSubtype", ...nextStepsHomeImprovementDefault],
|
|
2255
|
-
"Window Cleaning": [...nextStepsHomeImprovementDefault],
|
|
2256
|
-
Windows: ["windowsWorkType", "windowsSubtype", "numberOfWindows", ...nextStepsHomeImprovementDefault],
|
|
3210
|
+
const nextStepsMapGeneralHomeImprovement = (defaultSteps = nextStepsHomeImprovementDefault) => {
|
|
3211
|
+
return {
|
|
3212
|
+
values: {
|
|
3213
|
+
Category: {
|
|
3214
|
+
Additions: ["additionsSubType", "constructionAreaSize", ...defaultSteps],
|
|
3215
|
+
Appliances: ["applianceType", "homeImprovementWorkType", ...defaultSteps],
|
|
3216
|
+
Appraisals: [...defaultSteps],
|
|
3217
|
+
Cabinets: ["cabinetWorkType", ...defaultSteps],
|
|
3218
|
+
Carpentry: ["carpentrySubtype", "homeImprovementWorkType", ...defaultSteps],
|
|
3219
|
+
Carpets: ["carpetWorkType", ...defaultSteps],
|
|
3220
|
+
Cleaning: ["cleaningSubtype", ...defaultSteps],
|
|
3221
|
+
Countertops: ["countertopMaterial", "homeImprovementWorkType", ...defaultSteps],
|
|
3222
|
+
"Decks and Porches": ["deckWorkType", ...defaultSteps],
|
|
3223
|
+
Demolition: ["demolitionSubtype", ...defaultSteps],
|
|
3224
|
+
Doors: ["doorSubtype", "homeImprovementWorkType", ...defaultSteps],
|
|
3225
|
+
Driveways: ["drivewayWorkType", "drivewayMaterial", ...defaultSteps],
|
|
3226
|
+
"Drywall and Plaster": ["wallSurfaceType", "homeImprovementWorkType", ...defaultSteps],
|
|
3227
|
+
Electrical: ["electricalSubtype", "homeImprovementWorkType", ...defaultSteps],
|
|
3228
|
+
Fencing: ["fenceMaterial", "homeImprovementWorkType", ...defaultSteps],
|
|
3229
|
+
Flooring: ["flooringMaterial", "homeImprovementWorkType", ...defaultSteps],
|
|
3230
|
+
Foundations: ["homeImprovementWorkType", ...defaultSteps],
|
|
3231
|
+
"Garage Doors": ["homeImprovementWorkType", ...defaultSteps],
|
|
3232
|
+
"General Contractors": ["generalContractorSubtype", ...defaultSteps],
|
|
3233
|
+
Gutters: ["gutterMaterial", "gutterWorkType", ...defaultSteps],
|
|
3234
|
+
Handyman: [...defaultSteps],
|
|
3235
|
+
"Holiday Decorators": [...defaultSteps],
|
|
3236
|
+
"Smart Home": ["smartHomeSubtype", ...defaultSteps],
|
|
3237
|
+
"Home Builders": [...defaultSteps],
|
|
3238
|
+
"Home Inspection": [...defaultSteps],
|
|
3239
|
+
"Home Organization": ["homeOrganizationSubtype", ...defaultSteps],
|
|
3240
|
+
"Home Security": [...defaultSteps],
|
|
3241
|
+
"Home Staging": ["numberOfRooms", ...defaultSteps],
|
|
3242
|
+
"Home Theater": ["homeTheaterSubtype", ...defaultSteps],
|
|
3243
|
+
"Home Warranties": [...defaultSteps],
|
|
3244
|
+
"Hot Tubs": ["homeImprovementWorkType", ...defaultSteps],
|
|
3245
|
+
"Heating and Cooling": ["heatingCoolingSubtype", "fuelSource", "homeImprovementWorkType", ...defaultSteps],
|
|
3246
|
+
Insulation: ["insulationSubtype", ...defaultSteps],
|
|
3247
|
+
"Junk Removal": [...defaultSteps],
|
|
3248
|
+
Landscaping: ["landscapingSubtype", "homeImprovementWorkType", ...defaultSteps],
|
|
3249
|
+
Locksmiths: [...defaultSteps],
|
|
3250
|
+
"Masonry and Concrete": ["masonrySubtype", "masonryMaterial", "masonryWorkType", ...defaultSteps],
|
|
3251
|
+
// TODO :: add support for moving
|
|
3252
|
+
// Moving: ["movingFromAddress", "movingToAddress", "movingHouseholdSize", ...defaultSteps],
|
|
3253
|
+
Restoration: ["restorationSubtype", ...defaultSteps],
|
|
3254
|
+
Painting: ["paintingSubtype", "paintingRooms", ...defaultSteps],
|
|
3255
|
+
"Pest Control": ["pestControlSubtype", ...defaultSteps],
|
|
3256
|
+
Pools: ["poolsSubtype", "poolsWorkType", ...defaultSteps],
|
|
3257
|
+
Plumbing: ["plumbingSubtype", "homeImprovementWorkType", ...defaultSteps],
|
|
3258
|
+
"Pressure Washing": [...defaultSteps],
|
|
3259
|
+
Remodeling: ["remodelingSubtype", ...defaultSteps],
|
|
3260
|
+
Roofing: ["roofingWorkType", "roofingMaterial", ...defaultSteps],
|
|
3261
|
+
Sheds: ["homeImprovementWorkType", ...defaultSteps],
|
|
3262
|
+
Siding: ["sidingMaterial", "homeImprovementWorkType", ...defaultSteps],
|
|
3263
|
+
Solar: ["homeImprovementWorkType", ...defaultSteps],
|
|
3264
|
+
Tiling: ["tilingSubtype", "homeImprovementWorkType", ...defaultSteps],
|
|
3265
|
+
"Walk-in Tubs": [...defaultSteps],
|
|
3266
|
+
Waterproofing: ["waterproofingSubtype", ...defaultSteps],
|
|
3267
|
+
"Window Cleaning": [...defaultSteps],
|
|
3268
|
+
Windows: ["windowsSubtype", "windowsWorkType", "numberOfWindows", ...defaultSteps],
|
|
3269
|
+
},
|
|
3270
|
+
"*": defaultSteps,
|
|
2257
3271
|
},
|
|
2258
|
-
|
|
2259
|
-
|
|
3272
|
+
}
|
|
3273
|
+
};
|
|
3274
|
+
|
|
3275
|
+
const nextStepsMapPainting = (defaultSteps = nextStepsHomeImprovementDefault) => {
|
|
3276
|
+
return {
|
|
3277
|
+
values: {
|
|
3278
|
+
Painting_Subtype: {
|
|
3279
|
+
"Whole Exterior": defaultSteps,
|
|
3280
|
+
"Exterior Touch-up": defaultSteps,
|
|
3281
|
+
"Interior Rooms": ["paintingRooms", ...defaultSteps],
|
|
3282
|
+
"Interior Touch-up": ["paintingRooms", ...defaultSteps],
|
|
3283
|
+
Ceilings: ["paintingRooms", ...defaultSteps],
|
|
3284
|
+
Deck: defaultSteps,
|
|
3285
|
+
Shed: defaultSteps,
|
|
3286
|
+
Cabinets: defaultSteps,
|
|
3287
|
+
"Not Sure or Other": defaultSteps,
|
|
3288
|
+
},
|
|
3289
|
+
},
|
|
3290
|
+
}
|
|
2260
3291
|
};
|
|
2261
3292
|
|
|
2262
|
-
const
|
|
3293
|
+
const homeImprovementCrossSellOptionMap = CROSS_SELL_OPTION_MAP_HOME_IMPROVEMENT;
|
|
3294
|
+
|
|
3295
|
+
const nextStepsMapHomeImprovementCrossSells = {
|
|
2263
3296
|
values: {
|
|
2264
|
-
|
|
2265
|
-
|
|
2266
|
-
|
|
2267
|
-
|
|
2268
|
-
"
|
|
2269
|
-
|
|
2270
|
-
|
|
2271
|
-
|
|
2272
|
-
|
|
2273
|
-
"
|
|
3297
|
+
HomeImprovement_CrossSells: {
|
|
3298
|
+
Appliances: ["appliancesCrossSellQuestions"],
|
|
3299
|
+
Carpentry: ["carpentryCrossSellQuestions"],
|
|
3300
|
+
Driveways: ["drivewaysCrossSellQuestions"],
|
|
3301
|
+
"Drywall and Plaster": ["drywallCrossSellQuestions"],
|
|
3302
|
+
Electrical: ["electricalCrossSellQuestions"],
|
|
3303
|
+
Flooring: ["flooringCrossSellQuestions"],
|
|
3304
|
+
"Heating and Cooling": ["heatingCoolingCrossSellQuestions"],
|
|
3305
|
+
Landscaping: ["landscapingCrossSellQuestions"],
|
|
3306
|
+
"Masonry and Concrete": ["masonryAndConcreteCrossSellQuestions"],
|
|
3307
|
+
Painting: ["paintingCrossSellQuestions"],
|
|
3308
|
+
"Pest Control": ["pestControlCrossSellQuestions"],
|
|
3309
|
+
Plumbing: ["plumbingCrossSellQuestions"],
|
|
3310
|
+
Remodeling: ["remodelingCrossSellQuestions"],
|
|
3311
|
+
Roofing: ["roofingCrossSellQuestions"],
|
|
3312
|
+
Siding: ["sidingCrossSellQuestions"],
|
|
3313
|
+
Windows: ["windowsCrossSellQuestions"],
|
|
3314
|
+
// TODO:
|
|
3315
|
+
// Insulation, Cabinets, Countertops, Decks and Porches, Doors,
|
|
3316
|
+
// Fencing, Gutters, Handyman, Pressure Washing
|
|
2274
3317
|
},
|
|
3318
|
+
"*": ["firstAndLast", "contactInfo"],
|
|
2275
3319
|
},
|
|
3320
|
+
// NOTE: this assumes a certain placement of the cross sell question
|
|
3321
|
+
// in the form flow.
|
|
3322
|
+
appendSteps: ["firstAndLast", "contactInfo"],
|
|
3323
|
+
// TODO: revisit what's allowed here
|
|
3324
|
+
matchesAllowed: 1,
|
|
2276
3325
|
};
|
|
2277
3326
|
|
|
2278
|
-
const meta =
|
|
2279
|
-
|
|
2280
|
-
|
|
2281
|
-
|
|
2282
|
-
|
|
2283
|
-
|
|
2284
|
-
|
|
2285
|
-
|
|
2286
|
-
|
|
2287
|
-
|
|
2288
|
-
|
|
2289
|
-
|
|
2290
|
-
|
|
2291
|
-
|
|
2292
|
-
|
|
2293
|
-
|
|
2294
|
-
|
|
2295
|
-
|
|
2296
|
-
|
|
2297
|
-
|
|
2298
|
-
drivewayMaterial(),
|
|
2299
|
-
wallSurfaceType(),
|
|
2300
|
-
electricalSubtype(),
|
|
2301
|
-
fenceMaterial(),
|
|
2302
|
-
flooringMaterial(),
|
|
2303
|
-
generalContractorSubtype(),
|
|
2304
|
-
gutterMaterial(),
|
|
2305
|
-
guttersWorkType(),
|
|
2306
|
-
smartHomeSubtype(),
|
|
2307
|
-
homeOrganizationSubtype(),
|
|
2308
|
-
numberOfRooms(),
|
|
2309
|
-
homeTheaterSubtype(),
|
|
2310
|
-
heatingCoolingSubtype(),
|
|
2311
|
-
fuelSource(),
|
|
2312
|
-
insulationSubtype(),
|
|
2313
|
-
landscapingSubtype(),
|
|
2314
|
-
masonrySubtype(),
|
|
2315
|
-
masonryMaterial(),
|
|
2316
|
-
masonryWorkType(),
|
|
2317
|
-
restorationSubtype(),
|
|
2318
|
-
// Moving not finished yet
|
|
2319
|
-
// steps.movingFromAddress(),
|
|
2320
|
-
// steps.movingToAddress(),
|
|
2321
|
-
// steps.movingHouseholdSize(),
|
|
2322
|
-
paintingSubtype({
|
|
2323
|
-
nextStepMap: nextStepsMapPainting,
|
|
2324
|
-
}),
|
|
2325
|
-
paintingRooms(),
|
|
2326
|
-
pestControlSubtype(),
|
|
2327
|
-
poolsWorkType(),
|
|
2328
|
-
poolsSubtype(),
|
|
2329
|
-
plumbingSubtype(),
|
|
2330
|
-
remodelingSubtype(),
|
|
2331
|
-
roofingWorkType(),
|
|
2332
|
-
roofingMaterial(),
|
|
2333
|
-
sidingMaterial(),
|
|
2334
|
-
tilingSubtype(),
|
|
2335
|
-
waterproofingSubtype(),
|
|
2336
|
-
windowsWorkType(),
|
|
2337
|
-
windowsSubtype(),
|
|
2338
|
-
numberOfWindows(),
|
|
2339
|
-
// steps.plumbingCrossSellQuestions(),
|
|
2340
|
-
commentsHeadline({
|
|
2341
|
-
label: null,
|
|
2342
|
-
headline: "Please briefly describe your project:",
|
|
2343
|
-
headlineClass: "!t-text-dark",
|
|
2344
|
-
}),
|
|
2345
|
-
// steps.homeImprovementCrossSells({
|
|
2346
|
-
// headlineClass: "!t-text-dark",
|
|
2347
|
-
// nextStepMap: forms.nextStepsMapHomeImprovementCrossSells,
|
|
2348
|
-
// }),
|
|
2349
|
-
firstAndLastV3({
|
|
3327
|
+
const meta = defaultMetaPropsHomeImprovementGeneral();
|
|
3328
|
+
|
|
3329
|
+
const extraSteps = [
|
|
3330
|
+
appliancesCrossSellQuestions(),
|
|
3331
|
+
carpentryCrossSellQuestions(),
|
|
3332
|
+
drivewaysCrossSellQuestions(),
|
|
3333
|
+
drywallAndPlasterCrossSellQuestions(),
|
|
3334
|
+
electricalCrossSellQuestions(),
|
|
3335
|
+
flooringCrossSellQuestions(),
|
|
3336
|
+
heatingCoolingCrossSellQuestions(),
|
|
3337
|
+
landscapingCrossSellQuestions(),
|
|
3338
|
+
masonryAndConcreteCrossSellQuestions(),
|
|
3339
|
+
paintingCrossSellQuestions(),
|
|
3340
|
+
pestControlCrossSellQuestions(),
|
|
3341
|
+
plumbingCrossSellQuestions(),
|
|
3342
|
+
remodelingCrossSellQuestions(),
|
|
3343
|
+
roofingCrossSellQuestions(),
|
|
3344
|
+
sidingCrossSellQuestions(),
|
|
3345
|
+
windowsCrossSellQuestions(),
|
|
3346
|
+
homeImprovementCrossSells({
|
|
2350
3347
|
headlineClass: "!t-text-dark",
|
|
3348
|
+
nextStepMap: nextStepsMapHomeImprovementCrossSells,
|
|
2351
3349
|
}),
|
|
2352
3350
|
];
|
|
2353
3351
|
|
|
3352
|
+
meta.data.dynamicSchema = meta.data.dynamicSchema.concat(extraSteps);
|
|
3353
|
+
|
|
2354
3354
|
const schema = [
|
|
2355
3355
|
meta,
|
|
2356
3356
|
formAnchor(),
|
|
@@ -2359,8 +3359,7 @@ const schema = [
|
|
|
2359
3359
|
props: formProps({
|
|
2360
3360
|
formId: "generalHomeImprovement",
|
|
2361
3361
|
redirectMap: homeImprovementRedirectMap(),
|
|
2362
|
-
|
|
2363
|
-
// crossSellOptionMap: forms.homeImprovementCrossSellOptionMap,
|
|
3362
|
+
crossSellOptionMap: homeImprovementCrossSellOptionMap,
|
|
2364
3363
|
}),
|
|
2365
3364
|
children: [
|
|
2366
3365
|
progressBar(),
|
|
@@ -2371,6 +3370,7 @@ const schema = [
|
|
|
2371
3370
|
subHeadline({
|
|
2372
3371
|
children: '$urlParam("shl", "Fast. Reliable. Local. Free")',
|
|
2373
3372
|
if: "$activeStep === $firstStep()",
|
|
3373
|
+
subheadlineClass: "!t-font-bold t-text-[#465f87]",
|
|
2374
3374
|
}),
|
|
2375
3375
|
...hiddenInputsHomeImprovement,
|
|
2376
3376
|
{
|
|
@@ -2381,7 +3381,7 @@ const schema = [
|
|
|
2381
3381
|
children: [
|
|
2382
3382
|
homeImprovementCategory({
|
|
2383
3383
|
nextOnInput: false,
|
|
2384
|
-
nextStepMap: nextStepsMapGeneralHomeImprovement,
|
|
3384
|
+
nextStepMap: nextStepsMapGeneralHomeImprovement(),
|
|
2385
3385
|
headlineClass: "t-text-lg",
|
|
2386
3386
|
input: {
|
|
2387
3387
|
placeholder: "Select a Category",
|
|
@@ -2389,8 +3389,14 @@ const schema = [
|
|
|
2389
3389
|
},
|
|
2390
3390
|
}),
|
|
2391
3391
|
dynamicSchemaNode("Category"),
|
|
2392
|
-
contactInfo(
|
|
2393
|
-
|
|
3392
|
+
contactInfo({
|
|
3393
|
+
headlineClass: "!t-text-[#465f87]",
|
|
3394
|
+
subheadlineClass: "!t-text-[#353739]",
|
|
3395
|
+
}),
|
|
3396
|
+
formNavigation({
|
|
3397
|
+
startText: "Get Quotes",
|
|
3398
|
+
inputClass: "!t-text-black !t-font-extrabold !t-bg-[#ffce51]",
|
|
3399
|
+
}),
|
|
2394
3400
|
formDetails(),
|
|
2395
3401
|
],
|
|
2396
3402
|
},
|