bhl-forms 0.7.4 → 0.7.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bhl-forms.iife.js +1 -1
- package/dist/bhl-forms.modern.iife.js +1 -1
- package/dist/bhl-forms.modern.umd.js +1 -1
- package/dist/bhl-forms.umd.js +1 -1
- package/dist/forms/accidentsAndInjuries.es.js +9 -7
- package/dist/forms/accidentsAndInjuries.iife.js +1 -1
- package/dist/forms/accidentsAndInjuries.json +1 -1
- package/dist/forms/business.es.js +9 -7
- package/dist/forms/business.iife.js +1 -1
- package/dist/forms/business.json +1 -1
- package/dist/forms/childAndFamily.es.js +9 -7
- package/dist/forms/childAndFamily.iife.js +1 -1
- package/dist/forms/childAndFamily.json +1 -1
- package/dist/forms/childAndFamilySingle.es.js +9 -7
- package/dist/forms/childAndFamilySingle.iife.js +1 -1
- package/dist/forms/childAndFamilySingle.json +1 -1
- package/dist/forms/civilLawsuit.es.js +9 -7
- package/dist/forms/civilLawsuit.iife.js +1 -1
- package/dist/forms/civilLawsuit.json +1 -1
- package/dist/forms/contracts.es.js +9 -7
- package/dist/forms/contracts.iife.js +1 -1
- package/dist/forms/contracts.json +1 -1
- package/dist/forms/criminal.es.js +9 -7
- package/dist/forms/criminal.iife.js +1 -1
- package/dist/forms/criminal.json +1 -1
- package/dist/forms/divorce.es.js +9 -7
- package/dist/forms/divorce.iife.js +1 -1
- package/dist/forms/divorce.json +1 -1
- package/dist/forms/employmentAndWorkplace.es.js +9 -7
- package/dist/forms/employmentAndWorkplace.iife.js +1 -1
- package/dist/forms/employmentAndWorkplace.json +1 -1
- package/dist/forms/generalHomeImprovement.es.js +1649 -668
- package/dist/forms/generalHomeImprovement.iife.js +1 -1
- package/dist/forms/generalHomeImprovement.json +1 -1
- package/dist/forms/generalHomeImprovementThankYou.es.js +1142 -745
- package/dist/forms/generalHomeImprovementThankYou.iife.js +1 -1
- package/dist/forms/generalHomeImprovementThankYou.json +1 -1
- package/dist/forms/generalLegal.es.js +9 -7
- package/dist/forms/generalLegal.iife.js +1 -1
- package/dist/forms/generalLegal.json +1 -1
- package/dist/forms/generalLegalJustAnswer.es.js +9 -7
- package/dist/forms/generalLegalJustAnswer.iife.js +1 -1
- package/dist/forms/generalLegalJustAnswer.json +1 -1
- package/dist/forms/generalLegalPopUnder.es.js +9 -7
- package/dist/forms/generalLegalPopUnder.iife.js +1 -1
- package/dist/forms/generalLegalPopUnder.json +1 -1
- package/dist/forms/generalLegalPopUnderSingle.es.js +9 -7
- package/dist/forms/generalLegalPopUnderSingle.iife.js +1 -1
- package/dist/forms/generalLegalPopUnderSingle.json +1 -1
- package/dist/forms/generalLegalSingle.es.js +9 -7
- package/dist/forms/generalLegalSingle.iife.js +1 -1
- package/dist/forms/generalLegalSingle.json +1 -1
- package/dist/forms/generalLegalThankYou.es.js +8 -6
- package/dist/forms/generalLegalThankYou.iife.js +1 -1
- package/dist/forms/generalLegalThankYouConsultation.es.js +9 -7
- package/dist/forms/generalLegalThankYouConsultation.iife.js +1 -1
- package/dist/forms/generalLegalThankYouConsultation.json +1 -1
- package/dist/forms/harassmentAndDiscrimination.es.js +9 -7
- package/dist/forms/harassmentAndDiscrimination.iife.js +1 -1
- package/dist/forms/harassmentAndDiscrimination.json +1 -1
- package/dist/forms/landlordTenant.es.js +9 -7
- package/dist/forms/landlordTenant.iife.js +1 -1
- package/dist/forms/landlordTenant.json +1 -1
- package/dist/forms/malpractice.es.js +9 -7
- package/dist/forms/malpractice.iife.js +1 -1
- package/dist/forms/malpractice.json +1 -1
- package/dist/forms/mechanics.es.js +2 -1
- package/dist/forms/mechanics.iife.js +1 -1
- package/dist/forms/patentsAndIP.es.js +9 -7
- package/dist/forms/patentsAndIP.iife.js +1 -1
- package/dist/forms/patentsAndIP.json +1 -1
- package/dist/forms/realEstate.es.js +9 -7
- package/dist/forms/realEstate.iife.js +1 -1
- package/dist/forms/realEstate.json +1 -1
- package/dist/forms/repossession.es.js +9 -7
- package/dist/forms/repossession.iife.js +1 -1
- package/dist/forms/repossession.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 +9 -7
- 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
|
@@ -19,6 +19,97 @@ const DEFAULT_FINAL_HEADLINE_HOME_IMPROVEMENT = "We Found Contractors Near You";
|
|
|
19
19
|
const DEFAULT_FINAL_SUBHEADLINE_HOME_IMPROVEMENT = "Compare quotes and save! Please verify your 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";
|
|
@@ -274,6 +397,132 @@ const TCPAConsent = (scope) => ({
|
|
|
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: "Home_Improvement_CrossSells",
|
|
423
|
+
name: "Home_Improvement_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
|
}
|
|
@@ -1847,6 +2775,79 @@ function defaultMetaPropsHomeImprovement(category = null) {
|
|
|
1847
2775
|
})
|
|
1848
2776
|
}
|
|
1849
2777
|
|
|
2778
|
+
function defaultMetaPropsHomeImprovementGeneral(defaultSteps = nextStepsHomeImprovementDefault) {
|
|
2779
|
+
const meta = defaultMetaPropsHomeImprovement();
|
|
2780
|
+
meta.data.dynamicSchema = [
|
|
2781
|
+
zipcode(),
|
|
2782
|
+
timeframe(),
|
|
2783
|
+
ownHome(),
|
|
2784
|
+
address(),
|
|
2785
|
+
homeImprovementWorkType(),
|
|
2786
|
+
additionsSubType(),
|
|
2787
|
+
constructionAreaSize(),
|
|
2788
|
+
applianceType(),
|
|
2789
|
+
cabinetWorkType(),
|
|
2790
|
+
carpentrySubtype(),
|
|
2791
|
+
carpetWorkType(),
|
|
2792
|
+
cleaningSubtype(),
|
|
2793
|
+
countertopMaterial(),
|
|
2794
|
+
deckWorkType(),
|
|
2795
|
+
demolitionSubtype(),
|
|
2796
|
+
doorSubtype(),
|
|
2797
|
+
drivewayWorkType(),
|
|
2798
|
+
drivewayMaterial(),
|
|
2799
|
+
wallSurfaceType(),
|
|
2800
|
+
electricalSubtype(),
|
|
2801
|
+
fenceMaterial(),
|
|
2802
|
+
flooringMaterial(),
|
|
2803
|
+
generalContractorSubtype(),
|
|
2804
|
+
gutterMaterial(),
|
|
2805
|
+
gutterWorkType(),
|
|
2806
|
+
smartHomeSubtype(),
|
|
2807
|
+
homeOrganizationSubtype(),
|
|
2808
|
+
numberOfRooms(),
|
|
2809
|
+
homeTheaterSubtype(),
|
|
2810
|
+
heatingCoolingSubtype(),
|
|
2811
|
+
fuelSource(),
|
|
2812
|
+
insulationSubtype(),
|
|
2813
|
+
landscapingSubtype(),
|
|
2814
|
+
masonrySubtype(),
|
|
2815
|
+
masonryMaterial(),
|
|
2816
|
+
masonryWorkType(),
|
|
2817
|
+
restorationSubtype(),
|
|
2818
|
+
// Moving not finished yet
|
|
2819
|
+
// steps.movingFromAddress(),
|
|
2820
|
+
// steps.movingToAddress(),
|
|
2821
|
+
// steps.movingHouseholdSize(),
|
|
2822
|
+
paintingSubtype({
|
|
2823
|
+
nextStepMap: nextStepsMapPainting(defaultSteps),
|
|
2824
|
+
}),
|
|
2825
|
+
paintingRooms(),
|
|
2826
|
+
pestControlSubtype(),
|
|
2827
|
+
poolsWorkType(),
|
|
2828
|
+
poolsSubtype(),
|
|
2829
|
+
plumbingSubtype(),
|
|
2830
|
+
remodelingSubtype(),
|
|
2831
|
+
roofingWorkType(),
|
|
2832
|
+
roofingMaterial(),
|
|
2833
|
+
sidingMaterial(),
|
|
2834
|
+
tilingSubtype(),
|
|
2835
|
+
waterproofingSubtype(),
|
|
2836
|
+
windowsWorkType(),
|
|
2837
|
+
windowsSubtype(),
|
|
2838
|
+
numberOfWindows(),
|
|
2839
|
+
commentsHeadline({
|
|
2840
|
+
label: null,
|
|
2841
|
+
headline: "Please briefly describe your project:",
|
|
2842
|
+
headlineClass: "!t-text-dark",
|
|
2843
|
+
}),
|
|
2844
|
+
firstAndLastV3({
|
|
2845
|
+
headlineClass: "!t-text-dark",
|
|
2846
|
+
}),
|
|
2847
|
+
];
|
|
2848
|
+
return meta
|
|
2849
|
+
}
|
|
2850
|
+
|
|
1850
2851
|
function dynamicSchemaNode(field = "Type_Of_Legal_Problem") {
|
|
1851
2852
|
return {
|
|
1852
2853
|
$cmp: "FormKitSchema",
|
|
@@ -2060,6 +3061,7 @@ const HomeImprovementCommentsPlaceholders = {
|
|
|
2060
3061
|
Waterproofing: 'Example: "I need to waterproof my basement"',
|
|
2061
3062
|
"Window Cleaning": 'Example: "I need a professional window cleaning service"',
|
|
2062
3063
|
Windows: 'Example: "I want to replace 3 windows in my house"',
|
|
3064
|
+
"Not Sure or Other": 'Example: "I need general handyman services"',
|
|
2063
3065
|
};
|
|
2064
3066
|
|
|
2065
3067
|
const HomeImprovementFinalHeadlines = {
|
|
@@ -2182,175 +3184,155 @@ const nextStepsHomeImprovementDefault = [
|
|
|
2182
3184
|
"ownHome",
|
|
2183
3185
|
"zipcode",
|
|
2184
3186
|
"address",
|
|
2185
|
-
|
|
3187
|
+
"homeImprovementCrossSells",
|
|
2186
3188
|
"firstAndLast",
|
|
2187
3189
|
"contactInfo",
|
|
2188
3190
|
];
|
|
2189
3191
|
|
|
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],
|
|
3192
|
+
const nextStepsMapGeneralHomeImprovement = (defaultSteps = nextStepsHomeImprovementDefault) => {
|
|
3193
|
+
return {
|
|
3194
|
+
values: {
|
|
3195
|
+
Category: {
|
|
3196
|
+
Additions: ["additionsSubType", "constructionAreaSize", ...defaultSteps],
|
|
3197
|
+
Appliances: ["applianceType", "homeImprovementWorkType", ...defaultSteps],
|
|
3198
|
+
Appraisals: [...defaultSteps],
|
|
3199
|
+
Cabinets: ["cabinetWorkType", ...defaultSteps],
|
|
3200
|
+
Carpentry: ["carpentrySubtype", "homeImprovementWorkType", ...defaultSteps],
|
|
3201
|
+
Carpets: ["carpetWorkType", ...defaultSteps],
|
|
3202
|
+
Cleaning: ["cleaningSubtype", ...defaultSteps],
|
|
3203
|
+
Countertops: ["countertopMaterial", "homeImprovementWorkType", ...defaultSteps],
|
|
3204
|
+
"Decks and Porches": ["deckWorkType", ...defaultSteps],
|
|
3205
|
+
Demolition: ["demolitionSubtype", ...defaultSteps],
|
|
3206
|
+
Doors: ["doorSubtype", "homeImprovementWorkType", ...defaultSteps],
|
|
3207
|
+
Driveways: ["drivewayWorkType", "drivewayMaterial", ...defaultSteps],
|
|
3208
|
+
"Drywall and Plaster": ["wallSurfaceType", "homeImprovementWorkType", ...defaultSteps],
|
|
3209
|
+
Electrical: ["electricalSubtype", "homeImprovementWorkType", ...defaultSteps],
|
|
3210
|
+
Fencing: ["fenceMaterial", "homeImprovementWorkType", ...defaultSteps],
|
|
3211
|
+
Flooring: ["flooringMaterial", "homeImprovementWorkType", ...defaultSteps],
|
|
3212
|
+
Foundations: ["homeImprovementWorkType", ...defaultSteps],
|
|
3213
|
+
"Garage Doors": ["homeImprovementWorkType", ...defaultSteps],
|
|
3214
|
+
"General Contractors": ["generalContractorSubtype", ...defaultSteps],
|
|
3215
|
+
Gutters: ["gutterMaterial", "gutterWorkType", ...defaultSteps],
|
|
3216
|
+
Handyman: [...defaultSteps],
|
|
3217
|
+
"Holiday Decorators": [...defaultSteps],
|
|
3218
|
+
"Smart Home": ["smartHomeSubtype", ...defaultSteps],
|
|
3219
|
+
"Home Builders": [...defaultSteps],
|
|
3220
|
+
"Home Inspection": [...defaultSteps],
|
|
3221
|
+
"Home Organization": ["homeOrganizationSubtype", ...defaultSteps],
|
|
3222
|
+
"Home Security": [...defaultSteps],
|
|
3223
|
+
"Home Staging": ["numberOfRooms", ...defaultSteps],
|
|
3224
|
+
"Home Theater": ["homeTheaterSubtype", ...defaultSteps],
|
|
3225
|
+
"Home Warranties": [...defaultSteps],
|
|
3226
|
+
"Hot Tubs": ["homeImprovementWorkType", ...defaultSteps],
|
|
3227
|
+
"Heating and Cooling": ["heatingCoolingSubtype", "fuelSource", "homeImprovementWorkType", ...defaultSteps],
|
|
3228
|
+
Insulation: ["insulationSubtype", ...defaultSteps],
|
|
3229
|
+
"Junk Removal": [...defaultSteps],
|
|
3230
|
+
Landscaping: ["landscapingSubtype", "homeImprovementWorkType", ...defaultSteps],
|
|
3231
|
+
Locksmiths: [...defaultSteps],
|
|
3232
|
+
"Masonry and Concrete": ["masonrySubtype", "masonryMaterial", "masonryWorkType", ...defaultSteps],
|
|
3233
|
+
// TODO :: add support for moving
|
|
3234
|
+
// Moving: ["movingFromAddress", "movingToAddress", "movingHouseholdSize", ...defaultSteps],
|
|
3235
|
+
Restoration: ["restorationSubtype", ...defaultSteps],
|
|
3236
|
+
Painting: ["paintingSubtype", "paintingRooms", ...defaultSteps],
|
|
3237
|
+
"Pest Control": ["pestControlSubtype", ...defaultSteps],
|
|
3238
|
+
Pools: ["poolsSubtype", "poolsWorkType", ...defaultSteps],
|
|
3239
|
+
Plumbing: ["plumbingSubtype", "homeImprovementWorkType", ...defaultSteps],
|
|
3240
|
+
"Pressure Washing": [...defaultSteps],
|
|
3241
|
+
Remodeling: ["remodelingSubtype", ...defaultSteps],
|
|
3242
|
+
Roofing: ["roofingWorkType", "roofingMaterial", ...defaultSteps],
|
|
3243
|
+
Sheds: ["homeImprovementWorkType", ...defaultSteps],
|
|
3244
|
+
Siding: ["sidingMaterial", "homeImprovementWorkType", ...defaultSteps],
|
|
3245
|
+
Solar: ["homeImprovementWorkType", ...defaultSteps],
|
|
3246
|
+
Tiling: ["tilingSubtype", "homeImprovementWorkType", ...defaultSteps],
|
|
3247
|
+
"Walk-in Tubs": [...defaultSteps],
|
|
3248
|
+
Waterproofing: ["waterproofingSubtype", ...defaultSteps],
|
|
3249
|
+
"Window Cleaning": [...defaultSteps],
|
|
3250
|
+
Windows: ["windowsSubtype", "windowsWorkType", "numberOfWindows", ...defaultSteps],
|
|
3251
|
+
},
|
|
3252
|
+
"*": defaultSteps,
|
|
2257
3253
|
},
|
|
2258
|
-
|
|
2259
|
-
|
|
3254
|
+
}
|
|
3255
|
+
};
|
|
3256
|
+
|
|
3257
|
+
const nextStepsMapPainting = (defaultSteps = nextStepsHomeImprovementDefault) => {
|
|
3258
|
+
return {
|
|
3259
|
+
values: {
|
|
3260
|
+
Painting_Subtype: {
|
|
3261
|
+
"Whole Exterior": defaultSteps,
|
|
3262
|
+
"Exterior Touch-up": defaultSteps,
|
|
3263
|
+
"Interior Rooms": ["paintingRooms", ...defaultSteps],
|
|
3264
|
+
"Interior Touch-up": ["paintingRooms", ...defaultSteps],
|
|
3265
|
+
Ceilings: ["paintingRooms", ...defaultSteps],
|
|
3266
|
+
Deck: defaultSteps,
|
|
3267
|
+
Shed: defaultSteps,
|
|
3268
|
+
Cabinets: defaultSteps,
|
|
3269
|
+
"Not Sure or Other": defaultSteps,
|
|
3270
|
+
},
|
|
3271
|
+
},
|
|
3272
|
+
}
|
|
2260
3273
|
};
|
|
2261
3274
|
|
|
2262
|
-
const
|
|
3275
|
+
const homeImprovementCrossSellOptionMap = CROSS_SELL_OPTION_MAP_HOME_IMPROVEMENT;
|
|
3276
|
+
|
|
3277
|
+
const nextStepsMapHomeImprovementCrossSells = {
|
|
2263
3278
|
values: {
|
|
2264
|
-
|
|
2265
|
-
|
|
2266
|
-
|
|
2267
|
-
|
|
2268
|
-
"
|
|
2269
|
-
|
|
2270
|
-
|
|
2271
|
-
|
|
2272
|
-
|
|
2273
|
-
"
|
|
3279
|
+
Home_Improvement_CrossSells: {
|
|
3280
|
+
Appliances: ["appliancesCrossSellQuestions"],
|
|
3281
|
+
Carpentry: ["carpentryCrossSellQuestions"],
|
|
3282
|
+
Driveways: ["drivewaysCrossSellQuestions"],
|
|
3283
|
+
"Drywall and Plaster": ["drywallCrossSellQuestions"],
|
|
3284
|
+
Electrical: ["electricalCrossSellQuestions"],
|
|
3285
|
+
Flooring: ["flooringCrossSellQuestions"],
|
|
3286
|
+
"Heating and Cooling": ["heatingCoolingCrossSellQuestions"],
|
|
3287
|
+
Landscaping: ["landscapingCrossSellQuestions"],
|
|
3288
|
+
"Masonry and Concrete": ["masonryAndConcreteCrossSellQuestions"],
|
|
3289
|
+
Painting: ["paintingCrossSellQuestions"],
|
|
3290
|
+
"Pest Control": ["pestControlCrossSellQuestions"],
|
|
3291
|
+
Plumbing: ["plumbingCrossSellQuestions"],
|
|
3292
|
+
Remodeling: ["remodelingCrossSellQuestions"],
|
|
3293
|
+
Roofing: ["roofingCrossSellQuestions"],
|
|
3294
|
+
Siding: ["sidingCrossSellQuestions"],
|
|
3295
|
+
Windows: ["windowsCrossSellQuestions"],
|
|
3296
|
+
// TODO:
|
|
3297
|
+
// Insulation, Cabinets, Countertops, Decks and Porches, Doors,
|
|
3298
|
+
// Fencing, Gutters, Handyman, Pressure Washing
|
|
2274
3299
|
},
|
|
3300
|
+
"*": ["firstAndLast", "contactInfo"],
|
|
2275
3301
|
},
|
|
3302
|
+
// NOTE: this assumes a certain placement of the cross sell question
|
|
3303
|
+
// in the form flow.
|
|
3304
|
+
appendSteps: ["firstAndLast", "contactInfo"],
|
|
3305
|
+
// TODO: revisit what's allowed here
|
|
3306
|
+
matchesAllowed: 1,
|
|
2276
3307
|
};
|
|
2277
3308
|
|
|
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({
|
|
3309
|
+
const meta = defaultMetaPropsHomeImprovementGeneral();
|
|
3310
|
+
|
|
3311
|
+
const extraSteps = [
|
|
3312
|
+
appliancesCrossSellQuestions(),
|
|
3313
|
+
carpentryCrossSellQuestions(),
|
|
3314
|
+
drivewaysCrossSellQuestions(),
|
|
3315
|
+
drywallAndPlasterCrossSellQuestions(),
|
|
3316
|
+
electricalCrossSellQuestions(),
|
|
3317
|
+
flooringCrossSellQuestions(),
|
|
3318
|
+
heatingCoolingCrossSellQuestions(),
|
|
3319
|
+
landscapingCrossSellQuestions(),
|
|
3320
|
+
masonryAndConcreteCrossSellQuestions(),
|
|
3321
|
+
paintingCrossSellQuestions(),
|
|
3322
|
+
pestControlCrossSellQuestions(),
|
|
3323
|
+
plumbingCrossSellQuestions(),
|
|
3324
|
+
remodelingCrossSellQuestions(),
|
|
3325
|
+
roofingCrossSellQuestions(),
|
|
3326
|
+
sidingCrossSellQuestions(),
|
|
3327
|
+
windowsCrossSellQuestions(),
|
|
3328
|
+
homeImprovementCrossSells({
|
|
2350
3329
|
headlineClass: "!t-text-dark",
|
|
3330
|
+
nextStepMap: nextStepsMapHomeImprovementCrossSells,
|
|
2351
3331
|
}),
|
|
2352
3332
|
];
|
|
2353
3333
|
|
|
3334
|
+
meta.data.dynamicSchema = meta.data.dynamicSchema.concat(extraSteps);
|
|
3335
|
+
|
|
2354
3336
|
const schema = [
|
|
2355
3337
|
meta,
|
|
2356
3338
|
formAnchor(),
|
|
@@ -2359,8 +3341,7 @@ const schema = [
|
|
|
2359
3341
|
props: formProps({
|
|
2360
3342
|
formId: "generalHomeImprovement",
|
|
2361
3343
|
redirectMap: homeImprovementRedirectMap(),
|
|
2362
|
-
|
|
2363
|
-
// crossSellOptionMap: forms.homeImprovementCrossSellOptionMap,
|
|
3344
|
+
crossSellOptionMap: homeImprovementCrossSellOptionMap,
|
|
2364
3345
|
}),
|
|
2365
3346
|
children: [
|
|
2366
3347
|
progressBar(),
|
|
@@ -2381,7 +3362,7 @@ const schema = [
|
|
|
2381
3362
|
children: [
|
|
2382
3363
|
homeImprovementCategory({
|
|
2383
3364
|
nextOnInput: false,
|
|
2384
|
-
nextStepMap: nextStepsMapGeneralHomeImprovement,
|
|
3365
|
+
nextStepMap: nextStepsMapGeneralHomeImprovement(),
|
|
2385
3366
|
headlineClass: "t-text-lg",
|
|
2386
3367
|
input: {
|
|
2387
3368
|
placeholder: "Select a Category",
|