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.
Files changed (92) hide show
  1. package/dist/bhl-forms.iife.js +4 -4
  2. package/dist/bhl-forms.modern.iife.js +4 -4
  3. package/dist/bhl-forms.modern.umd.js +4 -4
  4. package/dist/bhl-forms.umd.js +1 -1
  5. package/dist/forms/accidentsAndInjuries.es.js +31 -11
  6. package/dist/forms/accidentsAndInjuries.iife.js +1 -1
  7. package/dist/forms/accidentsAndInjuries.json +1 -1
  8. package/dist/forms/business.es.js +31 -11
  9. package/dist/forms/business.iife.js +1 -1
  10. package/dist/forms/business.json +1 -1
  11. package/dist/forms/childAndFamily.es.js +31 -11
  12. package/dist/forms/childAndFamily.iife.js +1 -1
  13. package/dist/forms/childAndFamily.json +1 -1
  14. package/dist/forms/childAndFamilySingle.es.js +31 -11
  15. package/dist/forms/childAndFamilySingle.iife.js +1 -1
  16. package/dist/forms/childAndFamilySingle.json +1 -1
  17. package/dist/forms/civilLawsuit.es.js +31 -11
  18. package/dist/forms/civilLawsuit.iife.js +1 -1
  19. package/dist/forms/civilLawsuit.json +1 -1
  20. package/dist/forms/contracts.es.js +31 -11
  21. package/dist/forms/contracts.iife.js +1 -1
  22. package/dist/forms/contracts.json +1 -1
  23. package/dist/forms/criminal.es.js +31 -11
  24. package/dist/forms/criminal.iife.js +1 -1
  25. package/dist/forms/criminal.json +1 -1
  26. package/dist/forms/divorce.es.js +31 -11
  27. package/dist/forms/divorce.iife.js +1 -1
  28. package/dist/forms/divorce.json +1 -1
  29. package/dist/forms/employmentAndWorkplace.es.js +31 -11
  30. package/dist/forms/employmentAndWorkplace.iife.js +1 -1
  31. package/dist/forms/employmentAndWorkplace.json +1 -1
  32. package/dist/forms/generalHomeImprovement.es.js +1682 -676
  33. package/dist/forms/generalHomeImprovement.iife.js +1 -1
  34. package/dist/forms/generalHomeImprovement.json +1 -1
  35. package/dist/forms/generalHomeImprovementThankYou.es.js +1166 -751
  36. package/dist/forms/generalHomeImprovementThankYou.iife.js +1 -1
  37. package/dist/forms/generalHomeImprovementThankYou.json +1 -1
  38. package/dist/forms/generalLegal.es.js +31 -11
  39. package/dist/forms/generalLegal.iife.js +1 -1
  40. package/dist/forms/generalLegal.json +1 -1
  41. package/dist/forms/generalLegalJustAnswer.es.js +31 -11
  42. package/dist/forms/generalLegalJustAnswer.iife.js +1 -1
  43. package/dist/forms/generalLegalJustAnswer.json +1 -1
  44. package/dist/forms/generalLegalPopUnder.es.js +31 -11
  45. package/dist/forms/generalLegalPopUnder.iife.js +1 -1
  46. package/dist/forms/generalLegalPopUnder.json +1 -1
  47. package/dist/forms/generalLegalPopUnderSingle.es.js +31 -11
  48. package/dist/forms/generalLegalPopUnderSingle.iife.js +1 -1
  49. package/dist/forms/generalLegalPopUnderSingle.json +1 -1
  50. package/dist/forms/generalLegalSingle.es.js +31 -11
  51. package/dist/forms/generalLegalSingle.iife.js +1 -1
  52. package/dist/forms/generalLegalSingle.json +1 -1
  53. package/dist/forms/generalLegalThankYou.es.js +30 -10
  54. package/dist/forms/generalLegalThankYou.iife.js +1 -1
  55. package/dist/forms/generalLegalThankYou.json +1 -1
  56. package/dist/forms/generalLegalThankYouConsultation.es.js +31 -11
  57. package/dist/forms/generalLegalThankYouConsultation.iife.js +1 -1
  58. package/dist/forms/generalLegalThankYouConsultation.json +1 -1
  59. package/dist/forms/harassmentAndDiscrimination.es.js +31 -11
  60. package/dist/forms/harassmentAndDiscrimination.iife.js +1 -1
  61. package/dist/forms/harassmentAndDiscrimination.json +1 -1
  62. package/dist/forms/landlordTenant.es.js +31 -11
  63. package/dist/forms/landlordTenant.iife.js +1 -1
  64. package/dist/forms/landlordTenant.json +1 -1
  65. package/dist/forms/malpractice.es.js +31 -11
  66. package/dist/forms/malpractice.iife.js +1 -1
  67. package/dist/forms/malpractice.json +1 -1
  68. package/dist/forms/mechanics.es.js +24 -5
  69. package/dist/forms/mechanics.iife.js +1 -1
  70. package/dist/forms/mechanics.json +1 -1
  71. package/dist/forms/patentsAndIP.es.js +31 -11
  72. package/dist/forms/patentsAndIP.iife.js +1 -1
  73. package/dist/forms/patentsAndIP.json +1 -1
  74. package/dist/forms/realEstate.es.js +31 -11
  75. package/dist/forms/realEstate.iife.js +1 -1
  76. package/dist/forms/realEstate.json +1 -1
  77. package/dist/forms/repossession.es.js +31 -11
  78. package/dist/forms/repossession.iife.js +1 -1
  79. package/dist/forms/repossession.json +1 -1
  80. package/dist/forms/ssdi.es.js +22 -4
  81. package/dist/forms/ssdi.iife.js +1 -1
  82. package/dist/forms/ssdi.json +1 -1
  83. package/dist/forms/testForm.es.js +22 -4
  84. package/dist/forms/testForm.iife.js +1 -1
  85. package/dist/forms/testForm.json +1 -1
  86. package/dist/forms/testRedirects.es.js +2 -1
  87. package/dist/forms/testRedirects.iife.js +1 -1
  88. package/dist/forms/willsAndTrusts.es.js +31 -11
  89. package/dist/forms/willsAndTrusts.iife.js +1 -1
  90. package/dist/forms/willsAndTrusts.json +1 -1
  91. package/dist/main.css +1 -1
  92. package/package.json +1 -1
@@ -2,10 +2,6 @@ function merge() {
2
2
  return Object.assign({}, ...arguments)
3
3
  }
4
4
 
5
- function HomeImprovementRedirectUrl() {
6
- return 'https://listings.zipcontractor.com/api/v1/redirect?zone_id=4&vertical=HomeImprovement&category=${properties.Category}&zip_code=${properties.Zip}&sub_id=${properties.vid}'
7
- }
8
-
9
5
  const DEFAULT_COMMENTS_LABEL = "Please briefly describe your issue in a few words:";
10
6
  const DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC =
11
7
  '$getKey($meta, "commentsPlaceholders." + $get(Category).value, $meta.defaultCommentsPlaceholder)';
@@ -15,8 +11,8 @@ const DEFAULT_FINAL_SUBHEADLINE_DYNAMIC_LEGAL =
15
11
  '$getKey($meta, "finalSubHeadlines." + $get(Type_Of_Legal_Problem).value, $meta.defaultFinalSubHeadline)';
16
12
 
17
13
  const DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC_HOME_IMPROVEMENT = DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC;
18
- const DEFAULT_FINAL_HEADLINE_HOME_IMPROVEMENT = "We Found Contractors Near You";
19
- const DEFAULT_FINAL_SUBHEADLINE_HOME_IMPROVEMENT = "Compare quotes and save! Please verify your contact info:";
14
+ const DEFAULT_FINAL_HEADLINE_HOME_IMPROVEMENT = "We Found Contractors!";
15
+ const DEFAULT_FINAL_SUBHEADLINE_HOME_IMPROVEMENT = "Compare quotes and save. Verify contact info:";
20
16
  const TCPA_LANGUAGE_HOME_IMPROVEMENT =
21
17
  'By checking this box, I a) agree to the Terms of Use, and b) consent to be contacted by up to four <a href="/providers" target="_blank" class="t-text-blue-600 t-underline">contractors and partners</a> of this website using live, autodialed, pre-recorded, or artificial voice calls, as well as text messages. Your consent is not required as a condition of purchasing any goods or services.';
22
18
 
@@ -38,6 +34,30 @@ const radio = (updates) => {
38
34
  )
39
35
  };
40
36
 
37
+ // TODO: rename
38
+ const col2RadioCenter = (updates) => {
39
+ updates.legendClass = "required t-w-[100%] t-text-center";
40
+ if (typeof updates.fieldsetClass === "undefined") {
41
+ updates.fieldsetClass = "$reset t-flex t-justify-center";
42
+ }
43
+ updates.innerClass = "t-items-start";
44
+ updates.wrapperClass = "$reset t-flex t-cursor-pointer t-mb-3";
45
+ updates.optionClass = "t-pl-4 md:t-pl-8 md:t-min-w-[200px]";
46
+ updates.optionsClass = "t-pl-4 t-pt-3 t-grid t-grid-cols-1 md:t-grid-cols-2";
47
+ updates.messagesClass = "t-flex t-justify-center";
48
+ updates.helpClass = "t-mt-0 t-mb-4 !t-text-sm t-text-center";
49
+ return radio(updates)
50
+ };
51
+
52
+ const sbsRadio = (updates) => {
53
+ updates.legendClass = "legend-left required";
54
+ updates.fieldsetClass = "$reset side-by-side";
55
+ updates.optionsClass = "t-pl-1";
56
+ updates.innerClass = "t-flex t-items-center";
57
+ updates.wrapperClass = "t-mb-3";
58
+ return radio(updates)
59
+ };
60
+
41
61
  const verticalRadio = (updates) => {
42
62
  updates.legendClass = "required";
43
63
  updates.fieldsetClass = "$reset t-flex t-justify-center";
@@ -68,6 +88,14 @@ const select = (updates) => {
68
88
  )
69
89
  };
70
90
 
91
+ const sbsSelect = (updates) => {
92
+ updates.labelClass = "required";
93
+ updates.wrapperClass = "side-by-side t-items-center";
94
+ updates.innerClass = "select-height-content";
95
+ updates.helpClass = "t-mt-2.5 md:t-text-right md:t-mt-[-5px]";
96
+ return select(updates)
97
+ };
98
+
71
99
  const verticalSelect = (updates) => {
72
100
  updates.labelClass = "required";
73
101
  updates.wrapperClass = "t-flex t-justify-center";
@@ -270,7 +298,7 @@ const TCPAConsent = (scope) => ({
270
298
  accepted: "Consent is required",
271
299
  },
272
300
  classes: {
273
- label: "t-text-xs t-text-slate-500 t-font-normal",
301
+ label: "t-text-xs t-text-slate-500 t-font-normal !t-leading-[0.9rem]",
274
302
  },
275
303
  });
276
304
 
@@ -329,368 +357,679 @@ const HomeImprovementCategoryOptions = [
329
357
  "Waterproofing",
330
358
  "Window Cleaning",
331
359
  "Windows",
360
+ "Not Sure or Other",
332
361
  ];
333
362
 
334
- const homeImprovementCategory$1 = (updates) =>
335
- verticalSelect(
363
+ const homeImprovementCategory$1 = (scope, vertical, updates = {}) => {
364
+ const func = vertical ? verticalSelect : sbsSelect;
365
+ const label = vertical ? updates.label : "Select a Category:";
366
+ return func(
336
367
  merge(
337
368
  {
338
- name: "Category",
339
- id: "Category",
369
+ label,
370
+ name: scope ? scope + ":" + "Category" : "Category",
340
371
  options: HomeImprovementCategoryOptions,
341
372
  },
342
373
  updates
343
374
  )
344
- );
375
+ )
376
+ };
345
377
 
346
- const timeframe$1 = (scope) =>
347
- verticalRadio({
348
- name: scope ? scope + ":" + "Timeframe" : "Timeframe",
349
- // label: 'What is the project timeframe?',
350
- options: ["Immediate", "1-6 Months", "More than 6 Months"],
351
- });
352
-
353
- const ownHome$1 = (scope) =>
354
- verticalRadio({
355
- name: scope ? scope + ":" + "Own_Home" : "Own_Home",
356
- // label: 'Do you own the home?',
357
- options: ["Yes", "No", "No but authorized"],
358
- });
359
-
360
- const additionsSubType$1 = (scope) =>
361
- verticalSelect({
362
- name: scope ? scope + ":" + "Additions_Subtype" : "Additions_Subtype",
363
- // label: 'What type of addition?',
364
- options: [
365
- "Garage",
366
- "In-Law Suite",
367
- "Additional Rooms",
368
- "Additional Stories",
369
- "Bump-out",
370
- "Sunroom",
371
- "Accessory Dwelling Unit",
372
- "Basement Remodeling",
373
- "Attic Remodeling",
374
- "Not Sure or Other",
375
- ],
376
- });
377
-
378
- const constructionAreaSize$1 = (scope) =>
379
- verticalRadio({
380
- name: scope ? scope + ":" + "Construction_Area_Size" : "Construction_Area_Size",
381
- // label: 'What is the size of the construction area?',
382
- options: ["Less than 1000 square feet", "1000 to 2000 square feet", "More than 2000 square feet"],
383
- });
384
-
385
- const homeImprovementWorkType$1 = (scope) =>
386
- verticalRadio({
387
- name: scope ? scope + ":" + "Work_Type" : "Work_Type",
388
- // label: 'What type of work do you need?',
389
- options: ["Install or Replace", "Repair", "Not Sure or Other"],
390
- });
391
-
392
- const applianceType$1 = (scope) =>
393
- verticalSelect({
394
- name: scope ? scope + ":" + "Appliance_Type" : "Appliance_Type",
395
- // label: 'What type of appliance?',
396
- options: [
397
- "Cooktop",
398
- "Dishwasher",
399
- "Dryer",
400
- "Freezer",
401
- "Garbage Disposal",
402
- "Ice Maker",
403
- "Microwave",
404
- "Range",
405
- "Refrigerator",
406
- "Stove",
407
- "Trash Compactor",
408
- "Oven",
409
- "Vacuum",
410
- "Washer Machine",
411
- "Not Sure or Other",
412
- ],
413
- });
414
-
415
- const cabinetWorkType$1 = (scope) =>
416
- verticalRadio({
417
- name: scope ? scope + ":" + "Cabinet_Work_Type" : "Cabinet_Work_Type",
418
- // label: 'What type of work do you need?',
419
- options: ["Install", "Refinish", "Reface", "Repair", "Not Sure or Other"],
420
- });
421
-
422
- const carpentrySubtype$1 = (scope) =>
423
- verticalSelect({
424
- name: scope ? scope + ":" + "Carpentry_Subtype" : "Carpentry_Subtype",
425
- // label: 'What type of carpentry work?',
426
- options: [
427
- "Closets",
428
- "Custom Furniture",
429
- "Built-ins",
430
- "Framing",
431
- "Interior Trim",
432
- "Exterior Trim",
433
- "Windows",
434
- "Stairways and Railings",
435
- "Gazebo or Pergola",
436
- "Multiple Jobs",
437
- "Not Sure or Other",
438
- ],
439
- });
440
-
441
- const carpetWorkType$1 = (scope) =>
442
- verticalRadio({
443
- name: scope ? scope + ":" + "Carpet_Work_Type" : "Carpet_Work_Type",
444
- // label: 'What type of work do you need?',
445
- options: ["Install or Replace", "Repair", "Cleaning", "Not Sure or Other"],
446
- });
447
-
448
- const cleaningSubtype$1 = (scope) =>
449
- verticalSelect({
450
- name: scope ? scope + ":" + "Cleaning_Subtype" : "Cleaning_Subtype",
451
- // label: 'What type of cleaning?',
452
- options: [
453
- "Whole Home",
454
- "Office",
455
- "Carpets",
456
- "Windows",
457
- "Air Ducts or Vents",
458
- "Chimney",
459
- "Deck",
460
- "Tile or Grout",
461
- "Garage",
462
- "Shed",
463
- "Gutters",
464
- "Pool",
465
- "Junk Removal",
466
- "Not Sure or Other",
467
- ],
468
- });
469
-
470
- const countertopMaterial$1 = (scope) =>
471
- verticalSelect({
472
- name: scope ? scope + ":" + "Countertop_Material" : "Countertop_Material",
473
- // label: 'What type of countertop?',
474
- options: ["Concrete", "Granite", "Laminate", "Marble", "Quartz", "Stainless Steel", "Wood", "Not Sure or Other"],
475
- });
476
-
477
- const deckWorkType$1 = (scope) =>
478
- verticalRadio({
479
- name: scope ? scope + ":" + "Deck_Work_Type" : "Deck_Work_Type",
480
- // label: 'What type of work do you need?',
481
- options: ["Paint or Stain", "Install or Replace", "Repair", "Not Sure or Other"],
482
- });
483
-
484
- const demolitionSubtype$1 = (scope) =>
485
- verticalRadio({
486
- name: scope ? scope + ":" + "Demolition_Subtype" : "Demolition_Subtype",
487
- // label: 'What type of demolition?',
488
- options: ["Whole Structure", "Partial Home", "Shed", "Not Sure or Other"],
489
- });
490
-
491
- const doorSubtype$1 = (scope) =>
492
- verticalRadio({
493
- name: scope ? scope + ":" + "Door_Subtype" : "Door_Subtype",
494
- // label: 'What type of door?',
495
- options: ["Interior", "Exterior", "Garage", "Sliding", "Storm", "Not Sure or Other"],
496
- });
497
-
498
- const drivewayWorkType$1 = (scope) =>
499
- verticalRadio({
500
- name: scope ? scope + ":" + "Driveway_Work_Type" : "Driveway_Work_Type",
501
- // label: 'What type of work do you need?',
502
- options: ["Install or Replace", "Repair", "Sealing", "Not Sure or Other"],
503
- });
504
-
505
- const drivewayMaterial$1 = (scope) =>
506
- verticalRadio({
507
- name: scope ? scope + ":" + "Driveway_Material" : "Driveway_Material",
508
- // label: 'What type of driveway material?',
509
- options: ["Asphalt", "Brick", "Cobblestone", "Pebble", "Concrete", "Pavers", "Not Sure or Other"],
510
- });
511
-
512
- const wallSurfaceType$1 = (scope) =>
513
- verticalRadio({
514
- name: scope ? scope + ":" + "Wall_Surface_Type" : "Wall_Surface_Type",
515
- // label: 'What type of surface?',
516
- options: ["Drywall", "Plaster", "Stucco", "Not Sure or Other"],
517
- });
518
-
519
- const electricalSubtype$1 = (scope) =>
520
- verticalSelect({
521
- name: scope ? scope + ":" + "Electrical_Subtype" : "Electrical_Subtype",
522
- // label: 'What type of electrical work do you need?',
523
- options: [
524
- "Electrical Panel",
525
- "Outlets and Fixtures",
526
- "Home Theater",
527
- "Exhaust Fans",
528
- "Ceiling Fans",
529
- "EV Charging Station",
530
- "Addition or Remodel",
531
- "Generator",
532
- "Outdoor Lighting",
533
- "Pet Fence",
534
- "Thermostat",
535
- "Wall or Baseboard Heater",
536
- "Holiday Lighting",
537
- "Not Sure or Other",
538
- ],
539
- });
540
-
541
- const fenceMaterial$1 = (scope) =>
542
- verticalRadio({
543
- name: scope ? scope + ":" + "Fence_Material" : "Fence_Material",
544
- // label: 'What type of fence material?',
545
- options: ["Aluminum", "Chain Link", "Wood", "Wire", "Vinyl", "Iron", "Not Sure or Other"],
546
- });
547
-
548
- const flooringMaterial$1 = (scope) =>
549
- verticalRadio({
550
- name: scope ? scope + ":" + "Flooring_Material" : "Flooring_Material",
551
- // label: 'What type of flooring material?',
552
- options: ["Carpet", "Concrete", "Hardwood", "Laminate", "Linoleum", "Slate", "Tile", "Vinyl", "Not Sure or Other"],
553
- });
554
-
555
- const generalContractorSubtype$1 = (scope) =>
556
- verticalRadio({
557
- name: scope ? scope + ":" + "General_Contractor_Subtype" : "General_Contractor_Subtype",
558
- // label: 'What type of general contractor work do you need?',
559
- options: [
560
- "Remodeling",
561
- "Additions",
562
- "Major Home Repairs",
563
- "Excavation",
564
- "Demolition",
565
- "Dumpster Rental",
566
- "Not Sure or Other",
567
- ],
568
- });
569
-
570
- const gutterMaterial$1 = (scope) =>
571
- verticalRadio({
572
- name: scope ? scope + ":" + "Gutter_Material" : "Gutter_Material",
573
- // label: 'What type of gutter material?',
574
- options: ["Galvanized", "Metal", "PVC", "Wood", "Not Sure or Other"],
575
- });
576
-
577
- const guttersWorkType$1 = (scope) =>
578
- verticalRadio({
579
- name: scope ? scope + ":" + "Gutters_Work_Type" : "Gutters_Work_Type",
580
- options: ["Install or Replace", "Repair", "Cleaning", "Not Sure or Other"],
581
- });
582
-
583
- const smartHomeSubtype$1 = (scope) =>
584
- verticalRadio({
585
- name: scope ? scope + ":" + "Smart_Home_Subtype" : "Smart_Home_Subtype",
586
- // label: 'What type of smart home work do you need?',
587
- options: ["Thermostats", "Video Doorbells", "Camera Systems", "Lighting", "Speaker Systems", "Not Sure or Other"],
588
- });
589
-
590
- const homeOrganizationSubtype$1 = (scope) =>
591
- verticalRadio({
592
- name: scope ? scope + ":" + "Home_Organization_Subtype" : "Home_Organization_Subtype",
593
- // label: 'What type of home organization work do you need?',
594
- options: [
595
- "Packing or Unpacking",
596
- "Room Organization",
597
- "Shed Organization",
598
- "Storage Solutions",
599
- "Decluttering",
600
- "Not Sure or Other",
601
- ],
602
- });
603
-
604
- const numberOfRooms$1 = (scope) =>
605
- verticalRadio({
606
- name: scope ? scope + ":" + "Number_Of_Rooms" : "Number_Of_Rooms",
607
- // label: 'How many rooms?',
608
- options: ["1", "2", "3", "4", "5 or more"],
609
- });
610
-
611
- const homeTheaterSubtype$1 = (scope) =>
612
- verticalRadio({
613
- name: scope ? scope + ":" + "Home_Theater_Subtype" : "Home_Theater_Subtype",
614
- // label: 'What type of home theater work do you need?',
615
- options: ["Hang TV", "Install Sound System", "Wiring", "Troubleshooting", "Not Sure or Other"],
616
- });
617
-
618
- const heatingCoolingSubtype$1 = (scope) =>
619
- verticalSelect({
620
- name: scope ? scope + ":" + "Heating_Cooling_Subtype" : "Heating_Cooling_Subtype",
621
- // label: 'What type of heating and cooling work do you need?',
622
- options: [
623
- "Central Air",
624
- "Humidifier",
625
- "Ducts and Vents",
626
- "Furnace",
627
- "Heat Pump",
628
- "Radiant Floor",
629
- "Swamp Cooler",
630
- "Not Sure or Other",
631
- ],
632
- });
633
-
634
- const fuelSource$1 = (scope) =>
635
- verticalRadio({
636
- name: scope ? scope + ":" + "Fuel_Source" : "Fuel_Source",
637
- // label: 'What is the fuel source?',
638
- options: ["Gas", "Oil", "Electric", "Propane", "Not Sure or Other"],
639
- });
640
-
641
- const insulationSubtype$1 = (scope) =>
642
- verticalRadio({
643
- name: scope ? scope + ":" + "Insulation_Subtype" : "Insulation_Subtype",
644
- // label: 'What type of insulation work do you need?',
645
- options: ["Batt or Roll", "Spray Foam", "Blown-in", "Reflective", "Not Sure or Other"],
646
- });
647
-
648
- const landscapingSubtype$1 = (scope) =>
649
- verticalSelect({
650
- name: scope ? scope + ":" + "Landscaping_Subtype" : "Landscaping_Subtype",
651
- // label: 'What type of landscaping work do you need?',
652
- options: [
653
- "Lawn Mowing",
654
- "Lawn Care or Fertilization",
655
- "Yard or Leaf Cleanup",
656
- "Patios or Walkways",
657
- "Stonework",
658
- "Architects",
659
- "Landscape Construction",
660
- "Outdoor Lighting",
661
- "Grading",
662
- "Materials Delivery",
663
- "Spinklers",
664
- ],
665
- });
666
-
667
- const masonrySubtype$1 = (scope) =>
668
- verticalRadio({
669
- name: scope ? scope + ":" + "Masonry_Subtype" : "Masonry_Subtype",
670
- // label: 'What type of masonry work do you need?',
671
- options: ["Driveways", "Walkways", "Floors", "Walls", "Facades", "Material Delivery", "Not Sure or Other"],
672
- });
673
-
674
- const masonryMaterial$1 = (scope) =>
675
- verticalRadio({
676
- name: scope ? scope + ":" + "Masonry_Material" : "Masonry_Material",
677
- // label: 'What type of masonry material?',
678
- options: ["Brick or Stone", "Pavers", "Concrete", "Not Sure or Other"],
679
- });
680
-
681
- const masonryWorkType$1 = (scope) =>
682
- verticalRadio({
683
- name: scope ? scope + ":" + "Masonry_Work_Type" : "Masonry_Work_Type",
684
- // label: 'What type of masonry work do you need?',
685
- options: ["Install or Replace", "Repoint Brick or Stone", "Repair", "Not Sure or Other"],
686
- });
687
-
688
- const restorationSubtype$1 = (scope) =>
689
- verticalRadio({
690
- name: scope ? scope + ":" + "Restoration_Subtype" : "Restoration_Subtype",
691
- // label: 'What type of restoration work do you need?',
692
- options: ["Mold Remediation", "Fire Damage", "Water Damage", "Not Sure or Other"],
693
- });
378
+ const timeframe$1 = (scope, vertical, updates = {}) => {
379
+ const func = vertical ? verticalRadio : sbsRadio;
380
+ const label = vertical ? updates.label : "What is the project timeframe?";
381
+ return func(
382
+ merge(
383
+ {
384
+ label,
385
+ name: scope ? scope + ":" + "Timeframe" : "Timeframe",
386
+ options: ["Immediate", "1-6 Months", "More than 6 Months"],
387
+ },
388
+ updates
389
+ )
390
+ )
391
+ };
392
+
393
+ const ownHome$1 = (scope, vertical, updates = {}) => {
394
+ const func = vertical ? verticalRadio : sbsRadio;
395
+ const label = vertical ? updates.label : "Do you own the home?";
396
+ return func(
397
+ merge(
398
+ {
399
+ label,
400
+ name: scope ? scope + ":" + "Own_Home" : "Own_Home",
401
+ options: ["Yes", "No", "No but authorized"],
402
+ },
403
+ updates
404
+ )
405
+ )
406
+ };
407
+
408
+ const additionsSubType$1 = (scope, vertical, updates = {}) => {
409
+ const func = vertical ? verticalSelect : sbsSelect;
410
+ const label = vertical ? updates.label : "What type of addition?";
411
+ return func(
412
+ merge(
413
+ {
414
+ label,
415
+ name: scope ? scope + ":" + "Additions_Subtype" : "Additions_Subtype",
416
+ options: [
417
+ "Garage",
418
+ "In-Law Suite",
419
+ "Additional Rooms",
420
+ "Additional Stories",
421
+ "Bump-out",
422
+ "Sunroom",
423
+ "Accessory Dwelling Unit",
424
+ "Basement Remodeling",
425
+ "Attic Remodeling",
426
+ "Not Sure or Other",
427
+ ],
428
+ },
429
+ updates
430
+ )
431
+ )
432
+ };
433
+
434
+ const constructionAreaSize$1 = (scope, vertical, updates = {}) => {
435
+ const func = vertical ? verticalRadio : sbsRadio;
436
+ const label = vertical ? updates.label : "What is the size of the construction area?";
437
+ return func(
438
+ merge(
439
+ {
440
+ label,
441
+ name: scope ? scope + ":" + "Construction_Area_Size" : "Construction_Area_Size",
442
+ options: ["Less than 1000 square feet", "1000 to 2000 square feet", "More than 2000 square feet"],
443
+ },
444
+ updates
445
+ )
446
+ )
447
+ };
448
+
449
+ const homeImprovementWorkType$1 = (scope, vertical, updates = {}) => {
450
+ const func = vertical ? verticalRadio : sbsRadio;
451
+ const label = vertical ? updates.label : "What type of work?";
452
+ return func(
453
+ merge(
454
+ {
455
+ label,
456
+ name: scope ? scope + ":" + "Work_Type" : "Work_Type",
457
+ options: ["Install or Replace", "Repair", "Not Sure or Other"],
458
+ },
459
+ updates
460
+ )
461
+ )
462
+ };
463
+
464
+ const applianceType$1 = (scope, vertical, updates = {}) => {
465
+ const func = vertical ? verticalSelect : sbsSelect;
466
+ const label = vertical ? updates.label : "What type of appliance?";
467
+ return func(
468
+ merge(
469
+ {
470
+ label,
471
+ name: scope ? scope + ":" + "Appliance_Type" : "Appliance_Type",
472
+ options: [
473
+ "Cooktop",
474
+ "Dishwasher",
475
+ "Dryer",
476
+ "Freezer",
477
+ "Garbage Disposal",
478
+ "Ice Maker",
479
+ "Microwave",
480
+ "Range",
481
+ "Refrigerator",
482
+ "Stove",
483
+ "Trash Compactor",
484
+ "Oven",
485
+ "Vacuum",
486
+ "Washer Machine",
487
+ "Not Sure or Other",
488
+ ],
489
+ },
490
+ updates
491
+ )
492
+ )
493
+ };
494
+
495
+ const cabinetWorkType$1 = (scope, vertical, updates = {}) => {
496
+ const func = vertical ? verticalRadio : sbsRadio;
497
+ const label = vertical ? updates.label : "What type of work?";
498
+ return func(
499
+ merge(
500
+ {
501
+ label,
502
+ name: scope ? scope + ":" + "Cabinet_Work_Type" : "Cabinet_Work_Type",
503
+ options: ["Install", "Refinish", "Reface", "Repair", "Not Sure or Other"],
504
+ },
505
+ updates
506
+ )
507
+ )
508
+ };
509
+
510
+ const carpentrySubtype$1 = (scope, vertical, updates = {}) => {
511
+ const func = vertical ? verticalSelect : sbsSelect;
512
+ const label = vertical ? updates.label : "What carpentry job type?";
513
+ return func(
514
+ merge(
515
+ {
516
+ label,
517
+ name: scope ? scope + ":" + "Carpentry_Subtype" : "Carpentry_Subtype",
518
+ options: [
519
+ "Closets",
520
+ "Custom Furniture",
521
+ "Built-ins",
522
+ "Framing",
523
+ "Interior Trim",
524
+ "Exterior Trim",
525
+ "Windows",
526
+ "Stairways and Railings",
527
+ "Gazebo or Pergola",
528
+ "Multiple Jobs",
529
+ "Not Sure or Other",
530
+ ],
531
+ },
532
+ updates
533
+ )
534
+ )
535
+ };
536
+
537
+ const carpetWorkType$1 = (scope, vertical, updates = {}) => {
538
+ const func = vertical ? verticalRadio : sbsRadio;
539
+ const label = vertical ? updates.label : "What type of work?";
540
+ return func(
541
+ merge(
542
+ {
543
+ label,
544
+ name: scope ? scope + ":" + "Carpet_Work_Type" : "Carpet_Work_Type",
545
+ options: ["Install or Replace", "Repair", "Cleaning", "Not Sure or Other"],
546
+ },
547
+ updates
548
+ )
549
+ )
550
+ };
551
+
552
+ const cleaningSubtype$1 = (scope, vertical, updates = {}) => {
553
+ const func = vertical ? verticalSelect : sbsSelect;
554
+ const label = vertical ? updates.label : "What type of cleaning?";
555
+ return func(
556
+ merge(
557
+ {
558
+ label,
559
+ name: scope ? scope + ":" + "Cleaning_Subtype" : "Cleaning_Subtype",
560
+ options: [
561
+ "Whole Home",
562
+ "Office",
563
+ "Carpets",
564
+ "Windows",
565
+ "Air Ducts or Vents",
566
+ "Chimney",
567
+ "Deck",
568
+ "Tile or Grout",
569
+ "Garage",
570
+ "Shed",
571
+ "Gutters",
572
+ "Pool",
573
+ "Junk Removal",
574
+ "Not Sure or Other",
575
+ ],
576
+ },
577
+ updates
578
+ )
579
+ )
580
+ };
581
+
582
+ const countertopMaterial$1 = (scope, vertical, updates = {}) => {
583
+ const func = vertical ? verticalSelect : sbsSelect;
584
+ const label = vertical ? updates.label : "What type of countertop?";
585
+ return func(
586
+ merge(
587
+ {
588
+ label,
589
+ name: scope ? scope + ":" + "Countertop_Material" : "Countertop_Material",
590
+ options: [
591
+ "Concrete",
592
+ "Granite",
593
+ "Laminate",
594
+ "Marble",
595
+ "Quartz",
596
+ "Stainless Steel",
597
+ "Wood",
598
+ "Not Sure or Other",
599
+ ],
600
+ },
601
+ updates
602
+ )
603
+ )
604
+ };
605
+
606
+ const deckWorkType$1 = (scope, vertical, updates = {}) => {
607
+ const func = vertical ? verticalRadio : sbsRadio;
608
+ const label = vertical ? updates.label : "What type of work?";
609
+ return func(
610
+ merge(
611
+ {
612
+ label,
613
+ name: scope ? scope + ":" + "Deck_Work_Type" : "Deck_Work_Type",
614
+ options: ["Paint or Stain", "Install or Replace", "Repair", "Not Sure or Other"],
615
+ },
616
+ updates
617
+ )
618
+ )
619
+ };
620
+
621
+ const demolitionSubtype$1 = (scope, vertical, updates = {}) => {
622
+ const func = vertical ? verticalRadio : sbsRadio;
623
+ const label = vertical ? updates.label : "What type of demolition?";
624
+ return func(
625
+ merge(
626
+ {
627
+ label,
628
+ name: scope ? scope + ":" + "Demolition_Subtype" : "Demolition_Subtype",
629
+ options: ["Whole Structure", "Partial Home", "Shed", "Not Sure or Other"],
630
+ },
631
+ updates
632
+ )
633
+ )
634
+ };
635
+
636
+ const doorSubtype$1 = (scope, vertical, updates = {}) => {
637
+ const func = vertical ? verticalRadio : sbsRadio;
638
+ const label = vertical ? updates.label : "What type of door?";
639
+ return func(
640
+ merge(
641
+ {
642
+ label,
643
+ name: scope ? scope + ":" + "Door_Subtype" : "Door_Subtype",
644
+ options: ["Interior", "Exterior", "Garage", "Sliding", "Storm", "Not Sure or Other"],
645
+ },
646
+ updates
647
+ )
648
+ )
649
+ };
650
+
651
+ const drivewayWorkType$1 = (scope, vertical, updates = {}) => {
652
+ const func = vertical ? verticalRadio : sbsRadio;
653
+ const label = vertical ? updates.label : "What type of work?";
654
+ return func(
655
+ merge(
656
+ {
657
+ label,
658
+ name: scope ? scope + ":" + "Driveway_Work_Type" : "Driveway_Work_Type",
659
+ options: ["Install or Replace", "Repair", "Sealing", "Not Sure or Other"],
660
+ },
661
+ updates
662
+ )
663
+ )
664
+ };
665
+
666
+ const drivewayMaterial$1 = (scope, vertical, updates = {}) => {
667
+ const func = vertical ? verticalRadio : sbsRadio;
668
+ const label = vertical ? updates.label : "What driveway material?";
669
+ return func(
670
+ merge(
671
+ {
672
+ label,
673
+ name: scope ? scope + ":" + "Driveway_Material" : "Driveway_Material",
674
+ options: ["Asphalt", "Brick", "Cobblestone", "Pebble", "Concrete", "Pavers", "Not Sure or Other"],
675
+ },
676
+ updates
677
+ )
678
+ )
679
+ };
680
+
681
+ const wallSurfaceType$1 = (scope, vertical, updates = {}) => {
682
+ const func = vertical ? verticalRadio : sbsRadio;
683
+ const label = vertical ? updates.label : "What surface type?";
684
+ return func(
685
+ merge(
686
+ {
687
+ label,
688
+ name: scope ? scope + ":" + "Wall_Surface_Type" : "Wall_Surface_Type",
689
+ options: ["Drywall", "Plaster", "Stucco", "Not Sure or Other"],
690
+ },
691
+ updates
692
+ )
693
+ )
694
+ };
695
+
696
+ const electricalSubtype$1 = (scope, vertical, updates = {}) => {
697
+ const func = vertical ? verticalSelect : sbsSelect;
698
+ const label = vertical ? updates.label : "What electrical job type?";
699
+ return func(
700
+ merge(
701
+ {
702
+ label,
703
+ name: scope ? scope + ":" + "Electrical_Subtype" : "Electrical_Subtype",
704
+ options: [
705
+ "Electrical Panel",
706
+ "Outlets and Fixtures",
707
+ "Home Theater",
708
+ "Exhaust Fans",
709
+ "Ceiling Fans",
710
+ "EV Charging Station",
711
+ "Addition or Remodel",
712
+ "Generator",
713
+ "Outdoor Lighting",
714
+ "Pet Fence",
715
+ "Thermostat",
716
+ "Wall or Baseboard Heater",
717
+ "Holiday Lighting",
718
+ "Not Sure or Other",
719
+ ],
720
+ },
721
+ updates
722
+ )
723
+ )
724
+ };
725
+
726
+ const fenceMaterial$1 = (scope, vertical, updates = {}) => {
727
+ const func = vertical ? verticalRadio : sbsRadio;
728
+ const label = vertical ? updates.label : "What fence material?";
729
+ return func(
730
+ merge(
731
+ {
732
+ label,
733
+ name: scope ? scope + ":" + "Fence_Material" : "Fence_Material",
734
+ options: ["Aluminum", "Chain Link", "Wood", "Wire", "Vinyl", "Iron", "Not Sure or Other"],
735
+ },
736
+ updates
737
+ )
738
+ )
739
+ };
740
+
741
+ const flooringMaterial$1 = (scope, vertical, updates = {}) => {
742
+ const func = vertical ? verticalRadio : sbsSelect;
743
+ const label = vertical ? updates.label : "What flooring material?";
744
+ return func(
745
+ merge(
746
+ {
747
+ label,
748
+ name: scope ? scope + ":" + "Flooring_Material" : "Flooring_Material",
749
+ options: [
750
+ "Carpet",
751
+ "Concrete",
752
+ "Hardwood",
753
+ "Laminate",
754
+ "Linoleum",
755
+ "Slate",
756
+ "Tile",
757
+ "Vinyl",
758
+ "Not Sure or Other",
759
+ ],
760
+ },
761
+ updates
762
+ )
763
+ )
764
+ };
765
+
766
+ const generalContractorSubtype$1 = (scope, vertical, updates = {}) => {
767
+ const func = vertical ? col2RadioCenter : sbsRadio;
768
+ const label = vertical ? updates.label : "What contractor job type?";
769
+ return func(
770
+ merge(
771
+ {
772
+ label,
773
+ name: scope ? scope + ":" + "General_Contractor_Subtype" : "General_Contractor_Subtype",
774
+ options: [
775
+ "Remodeling",
776
+ "Additions",
777
+ "Major Home Repairs",
778
+ "Excavation",
779
+ "Demolition",
780
+ "Dumpster Rental",
781
+ "Not Sure or Other",
782
+ ],
783
+ },
784
+ updates
785
+ )
786
+ )
787
+ };
788
+
789
+ const gutterMaterial$1 = (scope, vertical, updates = {}) => {
790
+ const func = vertical ? col2RadioCenter : sbsRadio;
791
+ const label = vertical ? updates.label : "What gutter material?";
792
+ return func(
793
+ merge(
794
+ {
795
+ label,
796
+ name: scope ? scope + ":" + "Gutter_Material" : "Gutter_Material",
797
+ options: ["Galvanized", "Metal", "PVC", "Wood", "Not Sure or Other"],
798
+ },
799
+ updates
800
+ )
801
+ )
802
+ };
803
+
804
+ const gutterWorkType$1 = (scope, vertical, updates = {}) => {
805
+ const func = vertical ? verticalRadio : sbsRadio;
806
+ const label = vertical ? updates.label : "What type of work?";
807
+ return func(
808
+ merge(
809
+ {
810
+ label,
811
+ name: scope ? scope + ":" + "Gutter_Work_Type" : "Gutter_Work_Type",
812
+ options: ["Install or Replace", "Repair", "Cleaning", "Not Sure or Other"],
813
+ },
814
+ updates
815
+ )
816
+ )
817
+ };
818
+
819
+ const smartHomeSubtype$1 = (scope, vertical, updates = {}) => {
820
+ const func = vertical ? verticalRadio : sbsRadio;
821
+ const label = vertical ? updates.label : "What smart home job type?";
822
+ return func(
823
+ merge(
824
+ {
825
+ label,
826
+ name: scope ? scope + ":" + "Smart_Home_Subtype" : "Smart_Home_Subtype",
827
+ options: [
828
+ "Thermostats",
829
+ "Video Doorbells",
830
+ "Camera Systems",
831
+ "Lighting",
832
+ "Speaker Systems",
833
+ "Not Sure or Other",
834
+ ],
835
+ },
836
+ updates
837
+ )
838
+ )
839
+ };
840
+
841
+ const homeOrganizationSubtype$1 = (scope, vertical, updates = {}) => {
842
+ const func = vertical ? verticalRadio : sbsRadio;
843
+ const label = vertical ? updates.label : "What home organization job?";
844
+ return func(
845
+ merge(
846
+ {
847
+ label,
848
+ name: scope ? scope + ":" + "Home_Organization_Subtype" : "Home_Organization_Subtype",
849
+ options: [
850
+ "Packing or Unpacking",
851
+ "Room Organization",
852
+ "Shed Organization",
853
+ "Storage Solutions",
854
+ "Decluttering",
855
+ "Not Sure or Other",
856
+ ],
857
+ },
858
+ updates
859
+ )
860
+ )
861
+ };
862
+
863
+ const numberOfRooms$1 = (scope, vertical, updates = {}) => {
864
+ const func = vertical ? verticalRadio : sbsRadio;
865
+ const label = vertical ? updates.label : "How many rooms?";
866
+ return func(
867
+ merge(
868
+ {
869
+ label,
870
+ name: scope ? scope + ":" + "Number_Of_Rooms" : "Number_Of_Rooms",
871
+ options: ["1-2", "3-4", "4-5", "5-6", "6+"],
872
+ },
873
+ updates
874
+ )
875
+ )
876
+ };
877
+
878
+ const homeTheaterSubtype$1 = (scope, vertical, updates = {}) => {
879
+ const func = vertical ? verticalRadio : sbsRadio;
880
+ const label = vertical ? updates.label : "What home theater job?";
881
+ return func(
882
+ merge(
883
+ {
884
+ label,
885
+ name: scope ? scope + ":" + "Home_Theater_Subtype" : "Home_Theater_Subtype",
886
+ options: ["Hang TV", "Install Sound System", "Wiring", "Troubleshooting", "Not Sure or Other"],
887
+ },
888
+ updates
889
+ )
890
+ )
891
+ };
892
+
893
+ const heatingCoolingSubtype$1 = (scope, vertical, updates = {}) => {
894
+ const func = vertical ? verticalSelect : sbsSelect;
895
+ const label = vertical ? updates.label : "What heating or cooling job?";
896
+ return func(
897
+ merge(
898
+ {
899
+ label,
900
+ name: scope ? scope + ":" + "Heating_Cooling_Subtype" : "Heating_Cooling_Subtype",
901
+ options: [
902
+ "Central Air",
903
+ "Humidifier",
904
+ "Ducts and Vents",
905
+ "Furnace",
906
+ "Heat Pump",
907
+ "Radiant Floor",
908
+ "Swamp Cooler",
909
+ "Not Sure or Other",
910
+ ],
911
+ },
912
+ updates
913
+ )
914
+ )
915
+ };
916
+
917
+ const fuelSource$1 = (scope, vertical, updates = {}) => {
918
+ const func = vertical ? verticalRadio : sbsSelect;
919
+ const label = vertical ? updates.label : "What is the fuel source?";
920
+ return func(
921
+ merge(
922
+ {
923
+ label,
924
+ name: scope ? scope + ":" + "Fuel_Source" : "Fuel_Source",
925
+ options: ["Gas", "Oil", "Electric", "Propane", "Not Sure or Other"],
926
+ },
927
+ updates
928
+ )
929
+ )
930
+ };
931
+
932
+ const insulationSubtype$1 = (scope, vertical, updates = {}) => {
933
+ const func = vertical ? verticalRadio : sbsRadio;
934
+ const label = vertical ? updates.label : "What type of insulation job?";
935
+ return func(
936
+ merge(
937
+ {
938
+ label,
939
+ name: scope ? scope + ":" + "Insulation_Subtype" : "Insulation_Subtype",
940
+ options: ["Batt or Roll", "Spray Foam", "Blown-in", "Reflective", "Not Sure or Other"],
941
+ },
942
+ updates
943
+ )
944
+ )
945
+ };
946
+
947
+ const landscapingSubtype$1 = (scope, vertical, updates = {}) => {
948
+ const func = vertical ? verticalSelect : sbsSelect;
949
+ const label = vertical ? updates.label : "What landscaping job?";
950
+ return func(
951
+ merge(
952
+ {
953
+ label,
954
+ name: scope ? scope + ":" + "Landscaping_Subtype" : "Landscaping_Subtype",
955
+ options: [
956
+ "Lawn Mowing",
957
+ "Lawn Care or Fertilization",
958
+ "Yard or Leaf Cleanup",
959
+ "Patios or Walkways",
960
+ "Stonework",
961
+ "Architects",
962
+ "Landscape Construction",
963
+ "Outdoor Lighting",
964
+ "Grading",
965
+ "Materials Delivery",
966
+ "Spinklers",
967
+ ],
968
+ },
969
+ updates
970
+ )
971
+ )
972
+ };
973
+
974
+ const masonrySubtype$1 = (scope, vertical, updates = {}) => {
975
+ const func = vertical ? verticalRadio : sbsSelect;
976
+ const label = vertical ? updates.label : "What masonry job?";
977
+ return func(
978
+ merge(
979
+ {
980
+ label,
981
+ name: scope ? scope + ":" + "Masonry_Subtype" : "Masonry_Subtype",
982
+ options: ["Driveways", "Walkways", "Floors", "Walls", "Facades", "Material Delivery", "Not Sure or Other"],
983
+ },
984
+ updates
985
+ )
986
+ )
987
+ };
988
+
989
+ const masonryMaterial$1 = (scope, vertical, updates = {}) => {
990
+ const func = vertical ? verticalRadio : sbsRadio;
991
+ const label = vertical ? updates.label : "What masonry material?";
992
+ return func(
993
+ merge(
994
+ {
995
+ label,
996
+ name: scope ? scope + ":" + "Masonry_Material" : "Masonry_Material",
997
+ options: ["Brick or Stone", "Pavers", "Concrete", "Not Sure or Other"],
998
+ },
999
+ updates
1000
+ )
1001
+ )
1002
+ };
1003
+
1004
+ const masonryWorkType$1 = (scope, vertical, updates = {}) => {
1005
+ const func = vertical ? verticalRadio : sbsRadio;
1006
+ const label = vertical ? updates.label : "What type of work?";
1007
+ return func(
1008
+ merge(
1009
+ {
1010
+ label,
1011
+ name: scope ? scope + ":" + "Masonry_Work_Type" : "Masonry_Work_Type",
1012
+ options: ["Install or Replace", "Repoint Brick or Stone", "Repair", "Not Sure or Other"],
1013
+ },
1014
+ updates
1015
+ )
1016
+ )
1017
+ };
1018
+
1019
+ const restorationSubtype$1 = (scope, vertical, updates = {}) => {
1020
+ const func = vertical ? verticalSelect : sbsSelect;
1021
+ const label = vertical ? updates.label : "What restoration job?";
1022
+ return func(
1023
+ merge(
1024
+ {
1025
+ label,
1026
+ name: scope ? scope + ":" + "Restoration_Subtype" : "Restoration_Subtype",
1027
+ options: ["Mold Remediation", "Fire Damage", "Water Damage", "Not Sure or Other"],
1028
+ },
1029
+ updates
1030
+ )
1031
+ )
1032
+ };
694
1033
 
695
1034
  // TODO: need to finalize support for moving
696
1035
 
@@ -728,165 +1067,280 @@ const restorationSubtype$1 = (scope) =>
728
1067
  // ]
729
1068
  // })
730
1069
 
731
- const paintingSubtype$1 = (scope) =>
732
- verticalSelect({
733
- name: scope ? scope + ":" + "Painting_Subtype" : "Painting_Subtype",
734
- // label: 'What type of painting work do you need?',
735
- options: [
736
- "Whole Exterior",
737
- "Exterior Touch-up",
738
- "Interior Rooms",
739
- "Interior Touch-up",
740
- "Ceilings",
741
- "Deck",
742
- "Shed",
743
- "Cabinets",
744
- "Not Sure or Other",
745
- ],
746
- });
747
-
748
- const paintingRooms$1 = (scope) =>
749
- verticalRadio({
750
- name: scope ? scope + ":" + "Painting_Rooms" : "Painting_Rooms",
751
- // label: 'How many rooms need painting?',
752
- options: ["1-2", "3-4", "4-5", "5-6", "6+"],
753
- });
754
-
755
- const pestControlSubtype$1 = (scope) =>
756
- verticalSelect({
757
- name: scope ? scope + ":" + "Pest_Control_Subtype" : "Pest_Control_Subtype",
758
- // label: 'What type of pest control work do you need?',
759
- options: [
760
- "Bed Bugs",
761
- "Flying Animals",
762
- "Insects",
763
- "Rodents",
764
- "Small Animals",
765
- "Bees",
766
- "Termites",
767
- "Not Sure or Other",
768
- ],
769
- });
770
-
771
- const poolsWorkType$1 = (scope) =>
772
- verticalRadio({
773
- name: scope ? scope + ":" + "Pools_Work_Type" : "Pools_Work_Type",
774
- // label: 'What type of pool work do you need?',
775
- options: ["Install or Replace", "Repair", "Cleaning", "Close or Open Pool", "Not Sure or Other"],
776
- });
777
-
778
- const poolsSubtype$1 = (scope) =>
779
- verticalSelect({
780
- name: scope ? scope + ":" + "Pools_Subtype" : "Pools_Subtype",
781
- // label: 'What type of pool do you have?',
782
- options: [
783
- "Above Ground",
784
- "Inground Concrete",
785
- "Inground Fiberglass",
786
- "Inground Vinyl",
787
- "Inground Gunite",
788
- "Pool Liners",
789
- "Pool Filters",
790
- "Not Sure or Other",
791
- ],
792
- });
793
-
794
- const plumbingSubtype$1 = (scope) =>
795
- verticalSelect({
796
- name: scope ? scope + ":" + "Plumbing_Subtype" : "Plumbing_Subtype",
797
- // label: 'What type of plumbing work do you need?',
798
- options: [
799
- "Tub or Shower",
800
- "Drain",
801
- "Sink",
802
- "Toilet",
803
- "Boiler",
804
- "Water Heater",
805
- "Sump Pump",
806
- "Piping",
807
- "Septic",
808
- "Water Main",
809
- "Hot Tub",
810
- "Additions and Remodels",
811
- "Not Sure or Other",
812
- ],
813
- });
814
-
815
- const remodelingSubtype$1 = (scope) =>
816
- verticalSelect({
817
- name: scope ? scope + ":" + "Remodeling_Subtype" : "Remodeling_Subtype",
818
- // label: 'What type of remodeling work do you need?',
819
- options: [
820
- "Interior Designer",
821
- "Interior Decorator",
822
- "Kitchen Remodeling",
823
- "Bathroom Remodeling",
824
- "Garage Remodeling",
825
- "Home Remodeling",
826
- "Dumpster Rental",
827
- "Landscape Architect",
828
- "Outdoor Kitchen",
829
- "Outdoor Enclosure",
830
- "Additions",
831
- "Not Sure or Other",
832
- ],
833
- });
834
-
835
- const roofingWorkType$1 = (scope) =>
836
- verticalRadio({
837
- name: scope ? scope + ":" + "Roofing_Work_Type" : "Roofing_Work_Type",
838
- // label: 'What type of roofing work do you need?',
839
- options: ["Install or Replace Roof", "Repair Roof", "Ice Dams", "Gutters", "Not Sure or Other"],
840
- });
841
-
842
- const roofingMaterial$1 = (scope) =>
843
- verticalSelect({
844
- name: scope ? scope + ":" + "Roofing_Material" : "Roofing_Material",
845
- // label: 'What type of roofing material?',
846
- options: ["Asphalt Shingle", "Metal", "Composite", "Flat", "Foam", "Tile", "Wood", "Slate", "Not Sure or Other"],
847
- });
848
-
849
- const sidingMaterial$1 = (scope) =>
850
- verticalRadio({
851
- name: scope ? scope + ":" + "Siding_Material" : "Siding_Material",
852
- // label: 'What type of siding material?',
853
- options: ["Vinyl", "Composite", "Brick", "Stone", "Wood", "Stucco", "Not Sure or Other"],
854
- });
855
-
856
- const tilingSubtype$1 = (scope) =>
857
- verticalRadio({
858
- name: scope ? scope + ":" + "Tiling_Subtype" : "Tiling_Subtype",
859
- // label: 'What type of tiling work do you need?',
860
- options: ["Floor", "Backsplash", "Bathroom", "Wall", "Not Sure or Other"],
861
- });
862
-
863
- const waterproofingSubtype$1 = (scope) =>
864
- verticalRadio({
865
- name: scope ? scope + ":" + "Waterproofing_Subtype" : "Waterproofing_Subtype",
866
- // label: 'What type of waterproofing work do you need?',
867
- options: ["Foundations", "Basements", "Drainage", "Not Sure or Other"],
868
- });
869
-
870
- const windowsWorkType$1 = (scope) =>
871
- verticalRadio({
872
- name: scope ? scope + ":" + "Windows_Work_Type" : "Windows_Work_Type",
873
- // label: 'What type of windows work do you need?',
874
- options: ["Install or Replace", "Repair", "Cleaning", "Not Sure or Other"],
875
- });
876
-
877
- const windowsSubtype$1 = (scope) =>
878
- verticalSelect({
879
- name: scope ? scope + ":" + "Windows_Subtype" : "Windows_Subtype",
880
- // label: 'What type of windows do you have?',
881
- options: ["Whole Windows", "Frames", "Glass", "Hardware", "Storm Windows", "Screens", "Not Sure or Other"],
882
- });
883
-
884
- const numberOfWindows$1 = (scope) =>
885
- verticalRadio({
886
- name: scope ? scope + ":" + "Number_Of_Windows" : "Number_Of_Windows",
887
- // label: 'How many windows?',
888
- options: ["1", "2", "3-5", "6+"],
889
- });
1070
+ const paintingSubtype$1 = (scope, vertical, updates = {}) => {
1071
+ const func = vertical ? verticalSelect : sbsSelect;
1072
+ const label = vertical ? updates.label : "What painting job type?";
1073
+ return func(
1074
+ merge(
1075
+ {
1076
+ label,
1077
+ name: scope ? scope + ":" + "Painting_Subtype" : "Painting_Subtype",
1078
+ options: [
1079
+ "Whole Exterior",
1080
+ "Exterior Touch-up",
1081
+ "Interior Rooms",
1082
+ "Interior Touch-up",
1083
+ "Ceilings",
1084
+ "Deck",
1085
+ "Shed",
1086
+ "Cabinets",
1087
+ "Not Sure or Other",
1088
+ ],
1089
+ },
1090
+ updates
1091
+ )
1092
+ )
1093
+ };
1094
+
1095
+ const pestControlSubtype$1 = (scope, vertical, updates = {}) => {
1096
+ const func = vertical ? verticalSelect : sbsSelect;
1097
+ const label = vertical ? updates.label : "What pest control job type?";
1098
+ return func(
1099
+ merge(
1100
+ {
1101
+ label,
1102
+ name: scope ? scope + ":" + "Pest_Control_Subtype" : "Pest_Control_Subtype",
1103
+ options: [
1104
+ "Bed Bugs",
1105
+ "Flying Animals",
1106
+ "Insects",
1107
+ "Rodents",
1108
+ "Small Animals",
1109
+ "Bees",
1110
+ "Termites",
1111
+ "Not Sure or Other",
1112
+ ],
1113
+ },
1114
+ updates
1115
+ )
1116
+ )
1117
+ };
1118
+
1119
+ const poolsWorkType$1 = (scope, vertical, updates = {}) => {
1120
+ const func = vertical ? verticalRadio : sbsRadio;
1121
+ const label = vertical ? updates.label : "What type of work?";
1122
+ return func(
1123
+ merge(
1124
+ {
1125
+ label,
1126
+ name: scope ? scope + ":" + "Pools_Work_Type" : "Pools_Work_Type",
1127
+ options: ["Install or Replace", "Repair", "Cleaning", "Close or Open Pool", "Not Sure or Other"],
1128
+ },
1129
+ updates
1130
+ )
1131
+ )
1132
+ };
1133
+
1134
+ const poolsSubtype$1 = (scope, vertical, updates = {}) => {
1135
+ const func = vertical ? verticalSelect : sbsSelect;
1136
+ const label = vertical ? updates.label : "What type of pool?";
1137
+ return func(
1138
+ merge(
1139
+ {
1140
+ label,
1141
+ name: scope ? scope + ":" + "Pools_Subtype" : "Pools_Subtype",
1142
+ options: [
1143
+ "Above Ground",
1144
+ "Inground Concrete",
1145
+ "Inground Fiberglass",
1146
+ "Inground Vinyl",
1147
+ "Inground Gunite",
1148
+ "Pool Liners",
1149
+ "Pool Filters",
1150
+ "Not Sure or Other",
1151
+ ],
1152
+ },
1153
+ updates
1154
+ )
1155
+ )
1156
+ };
1157
+
1158
+ const plumbingSubtype$1 = (scope, vertical, updates = {}) => {
1159
+ const func = vertical ? verticalSelect : sbsSelect;
1160
+ const label = vertical ? updates.label : "What plumbing job type?";
1161
+ return func(
1162
+ merge(
1163
+ {
1164
+ label,
1165
+ name: scope ? scope + ":" + "Plumbing_Subtype" : "Plumbing_Subtype",
1166
+ options: [
1167
+ "Tub or Shower",
1168
+ "Drain",
1169
+ "Sink",
1170
+ "Toilet",
1171
+ "Boiler",
1172
+ "Water Heater",
1173
+ "Sump Pump",
1174
+ "Piping",
1175
+ "Septic",
1176
+ "Water Main",
1177
+ "Hot Tub",
1178
+ "Additions and Remodels",
1179
+ "Not Sure or Other",
1180
+ ],
1181
+ },
1182
+ updates
1183
+ )
1184
+ )
1185
+ };
1186
+
1187
+ const remodelingSubtype$1 = (scope, vertical, updates = {}) => {
1188
+ const func = vertical ? verticalSelect : sbsSelect;
1189
+ const label = vertical ? updates.label : "What remodeling job?";
1190
+ return func(
1191
+ merge(
1192
+ {
1193
+ label,
1194
+ name: scope ? scope + ":" + "Remodeling_Subtype" : "Remodeling_Subtype",
1195
+ options: [
1196
+ "Interior Designer",
1197
+ "Interior Decorator",
1198
+ "Kitchen Remodeling",
1199
+ "Bathroom Remodeling",
1200
+ "Garage Remodeling",
1201
+ "Home Remodeling",
1202
+ "Dumpster Rental",
1203
+ "Landscape Architect",
1204
+ "Outdoor Kitchen",
1205
+ "Outdoor Enclosure",
1206
+ "Additions",
1207
+ "Not Sure or Other",
1208
+ ],
1209
+ },
1210
+ updates
1211
+ )
1212
+ )
1213
+ };
1214
+
1215
+ const roofingWorkType$1 = (scope, vertical, updates = {}) => {
1216
+ const func = vertical ? verticalRadio : sbsRadio;
1217
+ const label = vertical ? updates.label : "What type of work?";
1218
+ return func(
1219
+ merge(
1220
+ {
1221
+ label,
1222
+ name: scope ? scope + ":" + "Roofing_Work_Type" : "Roofing_Work_Type",
1223
+ options: ["Install or Replace Roof", "Repair Roof", "Ice Dams", "Gutters", "Not Sure or Other"],
1224
+ },
1225
+ updates
1226
+ )
1227
+ )
1228
+ };
1229
+
1230
+ const roofingMaterial$1 = (scope, vertical, updates = {}) => {
1231
+ const func = vertical ? verticalSelect : sbsSelect;
1232
+ const label = vertical ? updates.label : "What roofing material?";
1233
+ return func(
1234
+ merge(
1235
+ {
1236
+ label,
1237
+ name: scope ? scope + ":" + "Roofing_Material" : "Roofing_Material",
1238
+ options: [
1239
+ "Asphalt Shingle",
1240
+ "Metal",
1241
+ "Composite",
1242
+ "Flat",
1243
+ "Foam",
1244
+ "Tile",
1245
+ "Wood",
1246
+ "Slate",
1247
+ "Not Sure or Other",
1248
+ ],
1249
+ },
1250
+ updates
1251
+ )
1252
+ )
1253
+ };
1254
+
1255
+ const sidingMaterial$1 = (scope, vertical, updates = {}) => {
1256
+ const func = vertical ? col2RadioCenter : sbsSelect;
1257
+ const label = vertical ? updates.label : "What siding material?";
1258
+ return func(
1259
+ merge(
1260
+ {
1261
+ label,
1262
+ name: scope ? scope + ":" + "Siding_Material" : "Siding_Material",
1263
+ options: ["Vinyl", "Composite", "Brick", "Stone", "Wood", "Stucco", "Not Sure or Other"],
1264
+ },
1265
+ updates
1266
+ )
1267
+ )
1268
+ };
1269
+
1270
+ const tilingSubtype$1 = (scope, vertical, updates = {}) => {
1271
+ const func = vertical ? verticalRadio : sbsRadio;
1272
+ const label = vertical ? updates.label : "What tiling job type?";
1273
+ return func(
1274
+ merge(
1275
+ {
1276
+ label,
1277
+ name: scope ? scope + ":" + "Tiling_Subtype" : "Tiling_Subtype",
1278
+ options: ["Floor", "Backsplash", "Bathroom", "Wall", "Not Sure or Other"],
1279
+ },
1280
+ updates
1281
+ )
1282
+ )
1283
+ };
1284
+
1285
+ const waterproofingSubtype$1 = (scope, vertical, updates = {}) => {
1286
+ const func = vertical ? verticalRadio : sbsRadio;
1287
+ const label = vertical ? updates.label : "What waterproofing job?";
1288
+ return func(
1289
+ merge(
1290
+ {
1291
+ label,
1292
+ name: scope ? scope + ":" + "Waterproofing_Subtype" : "Waterproofing_Subtype",
1293
+ options: ["Foundations", "Basements", "Drainage", "Not Sure or Other"],
1294
+ },
1295
+ updates
1296
+ )
1297
+ )
1298
+ };
1299
+
1300
+ const windowsWorkType$1 = (scope, vertical, updates = {}) => {
1301
+ const func = vertical ? verticalRadio : sbsRadio;
1302
+ const label = vertical ? updates.label : "What type of work?";
1303
+ return func(
1304
+ merge(
1305
+ {
1306
+ label,
1307
+ name: scope ? scope + ":" + "Windows_Work_Type" : "Windows_Work_Type",
1308
+ options: ["Install or Replace", "Repair", "Cleaning", "Not Sure or Other"],
1309
+ },
1310
+ updates
1311
+ )
1312
+ )
1313
+ };
1314
+
1315
+ const windowsSubtype$1 = (scope, vertical, updates = {}) => {
1316
+ const func = vertical ? verticalSelect : sbsSelect;
1317
+ const label = vertical ? updates.label : "What windows job type?";
1318
+ return func(
1319
+ merge(
1320
+ {
1321
+ label,
1322
+ name: scope ? scope + ":" + "Windows_Subtype" : "Windows_Subtype",
1323
+ options: ["Whole Windows", "Frames", "Glass", "Hardware", "Storm Windows", "Screens", "Not Sure or Other"],
1324
+ },
1325
+ updates
1326
+ )
1327
+ )
1328
+ };
1329
+
1330
+ const numberOfWindows$1 = (scope, vertical, updates = {}) => {
1331
+ const func = vertical ? verticalRadio : sbsRadio;
1332
+ const label = vertical ? updates.label : "How many windows?";
1333
+ return func(
1334
+ merge(
1335
+ {
1336
+ label,
1337
+ name: scope ? scope + ":" + "Number_Of_Windows" : "Number_Of_Windows",
1338
+ options: ["1", "2", "3-5", "6+"],
1339
+ },
1340
+ updates
1341
+ )
1342
+ )
1343
+ };
890
1344
 
891
1345
  const NEXT_ON_ENTER = "$onEnter($setNextStep($fireStepEvent($get(form)), $preStepFunc($get(form))))";
892
1346
  const NEXT_ON_INPUT = "$onInput($setNextStep($fireStepEvent($get(form)), $preStepFunc($get(form))))";
@@ -1182,46 +1636,8 @@ function zipcode(updates = {}) {
1182
1636
  return sqstep("zipcode", zipcode$1(updates.scope, true, updates.input), "Please verify your Zip Code", updates)
1183
1637
  }
1184
1638
 
1185
- // export function remodelingCrossSellQuestions(updates = {}) {
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
- // }
1203
-
1204
- // export function roofingCrossSellQuestions(updates = {}) {
1205
- // return step(
1206
- // 'roofingCrossSellQuestions',
1207
- // [
1208
- // crossSellQuestionsStepHeadline({ headline: 'Connect With A Pro Roofer' }),
1209
- // crossSellQuestionsStepSubHeadline({ subheadline: 'Tell us about your roofing needs:' }),
1210
- // inp.RoofingQuestions("true", 'CrossSell:Roofing'),
1211
- // inp.comments('CrossSell:Roofing', false,
1212
- // {
1213
- // label: 'Project Description:',
1214
- // placeholder: 'Please describe your project in a few words...',
1215
- // inputClass: '!t-h-16'
1216
- // },
1217
- // )
1218
- // ],
1219
- // updates
1220
- // )
1221
- // }
1222
-
1223
1639
  function homeImprovementCategory(updates = {}) {
1224
- return step("homeImprovementCategory", [homeImprovementCategory$1(updates.scope, false, updates.input)], updates)
1640
+ return step("homeImprovementCategory", [homeImprovementCategory$1(updates.scope, true, updates.input)], updates)
1225
1641
  }
1226
1642
 
1227
1643
  function timeframe(updates = {}) {
@@ -1286,7 +1702,7 @@ function carpentrySubtype(updates = {}) {
1286
1702
  return sqstep(
1287
1703
  "carpentrySubtype",
1288
1704
  carpentrySubtype$1(updates.scope, true, updates.input),
1289
- "What type of carpentry work?",
1705
+ "What carpentry job type?",
1290
1706
  updates
1291
1707
  )
1292
1708
  }
@@ -1371,7 +1787,7 @@ function electricalSubtype(updates = {}) {
1371
1787
  return sqstep(
1372
1788
  "electricalSubtype",
1373
1789
  electricalSubtype$1(updates.scope, true, updates.input),
1374
- "What type of electrical work?",
1790
+ "What electrical job type?",
1375
1791
  updates
1376
1792
  )
1377
1793
  }
@@ -1412,10 +1828,10 @@ function gutterMaterial(updates = {}) {
1412
1828
  )
1413
1829
  }
1414
1830
 
1415
- function guttersWorkType(updates = {}) {
1831
+ function gutterWorkType(updates = {}) {
1416
1832
  return sqstep(
1417
- "guttersWorkType",
1418
- guttersWorkType$1(updates.scope, true, updates.input),
1833
+ "gutterWorkType",
1834
+ gutterWorkType$1(updates.scope, true, updates.input),
1419
1835
  "What type of gutter work?",
1420
1836
  updates
1421
1837
  )
@@ -1456,7 +1872,7 @@ function heatingCoolingSubtype(updates = {}) {
1456
1872
  return sqstep(
1457
1873
  "heatingCoolingSubtype",
1458
1874
  heatingCoolingSubtype$1(updates.scope, true, updates.input),
1459
- "What type of heating and cooling work?",
1875
+ "What heating or cooling job type?",
1460
1876
  updates
1461
1877
  )
1462
1878
  }
@@ -1487,7 +1903,7 @@ function masonrySubtype(updates = {}) {
1487
1903
  return sqstep(
1488
1904
  "masonrySubtype",
1489
1905
  masonrySubtype$1(updates.scope, true, updates.input),
1490
- "What type of masonry work?",
1906
+ "What masonry job type?",
1491
1907
  updates
1492
1908
  )
1493
1909
  }
@@ -1560,7 +1976,7 @@ function paintingSubtype(updates = {}) {
1560
1976
  function paintingRooms(updates = {}) {
1561
1977
  return sqstep(
1562
1978
  "paintingRooms",
1563
- paintingRooms$1(updates.scope, true, updates.input),
1979
+ numberOfRooms$1(updates.scope, true, updates.input),
1564
1980
  "How many rooms need painting?",
1565
1981
  updates
1566
1982
  )
@@ -1597,7 +2013,7 @@ function plumbingSubtype(updates = {}) {
1597
2013
  return sqstep(
1598
2014
  "plumbingSubtype",
1599
2015
  plumbingSubtype$1(updates.scope, true, updates.input),
1600
- "What type of plumbing work?",
2016
+ "What plumbing job type?",
1601
2017
  updates
1602
2018
  )
1603
2019
  }
@@ -1669,7 +2085,7 @@ function windowsSubtype(updates = {}) {
1669
2085
  return sqstep(
1670
2086
  "windowsSubtype",
1671
2087
  windowsSubtype$1(updates.scope, true, updates.input),
1672
- "What type of windows work?",
2088
+ "What windows job type?",
1673
2089
  updates
1674
2090
  )
1675
2091
  }
@@ -1686,7 +2102,11 @@ function numberOfWindows(updates = {}) {
1686
2102
  const formNavigation = (updates = {}) => ({
1687
2103
  $el: "div",
1688
2104
  attrs: {
1689
- class: "step-nav",
2105
+ class: {
2106
+ if: "$activeStep === $firstStep()",
2107
+ then: "step-nav !t-justify-center sm:!t-justify-between",
2108
+ else: "step-nav !t-justify-between",
2109
+ },
1690
2110
  },
1691
2111
  children: [
1692
2112
  {
@@ -1694,9 +2114,17 @@ const formNavigation = (updates = {}) => ({
1694
2114
  name: "back_button",
1695
2115
  onClick: "$setPreviousStep($prevStepFunc($get(form)))",
1696
2116
  children: "Back",
2117
+ outerClass: {
2118
+ if: "$activeStep === $firstStep()",
2119
+ then: "t-hidden sm:t-block",
2120
+ else: "",
2121
+ },
1697
2122
  style: {
1698
2123
  if: "$activeStep === $firstStep()",
1699
- then: "visibility: hidden;",
2124
+ then: "display: none;",
2125
+ },
2126
+ classes: {
2127
+ input: updates.inputClass || "",
1700
2128
  },
1701
2129
  },
1702
2130
  {
@@ -1705,7 +2133,7 @@ const formNavigation = (updates = {}) => ({
1705
2133
  onClick: "$setNextStep($fireStepEvent($get(form)), $preStepFunc($get(form)))",
1706
2134
  children: {
1707
2135
  if: "$activeStep === $firstStep()",
1708
- then: "Start",
2136
+ then: updates.startText || "Start",
1709
2137
  else: "Next",
1710
2138
  },
1711
2139
  outerClass: {
@@ -1717,6 +2145,9 @@ const formNavigation = (updates = {}) => ({
1717
2145
  if: "$activeStep === $lastStep()",
1718
2146
  then: "display: none;",
1719
2147
  },
2148
+ classes: {
2149
+ input: updates.inputClass || "",
2150
+ },
1720
2151
  },
1721
2152
  {
1722
2153
  $formkit: "submit",
@@ -1727,6 +2158,9 @@ const formNavigation = (updates = {}) => ({
1727
2158
  if: "$activeStep !== $lastStep()",
1728
2159
  then: "display: none;",
1729
2160
  },
2161
+ classes: {
2162
+ input: (updates.inputClass || "") + " !t-ml-2 sm:!t-ml-auto",
2163
+ },
1730
2164
  },
1731
2165
  ],
1732
2166
  });
@@ -1847,6 +2281,79 @@ function defaultMetaPropsHomeImprovement(category = null) {
1847
2281
  })
1848
2282
  }
1849
2283
 
2284
+ function defaultMetaPropsHomeImprovementGeneral(defaultSteps = nextStepsHomeImprovementDefault) {
2285
+ const meta = defaultMetaPropsHomeImprovement();
2286
+ meta.data.dynamicSchema = [
2287
+ zipcode(),
2288
+ timeframe(),
2289
+ ownHome(),
2290
+ address(),
2291
+ homeImprovementWorkType(),
2292
+ additionsSubType(),
2293
+ constructionAreaSize(),
2294
+ applianceType(),
2295
+ cabinetWorkType(),
2296
+ carpentrySubtype(),
2297
+ carpetWorkType(),
2298
+ cleaningSubtype(),
2299
+ countertopMaterial(),
2300
+ deckWorkType(),
2301
+ demolitionSubtype(),
2302
+ doorSubtype(),
2303
+ drivewayWorkType(),
2304
+ drivewayMaterial(),
2305
+ wallSurfaceType(),
2306
+ electricalSubtype(),
2307
+ fenceMaterial(),
2308
+ flooringMaterial(),
2309
+ generalContractorSubtype(),
2310
+ gutterMaterial(),
2311
+ gutterWorkType(),
2312
+ smartHomeSubtype(),
2313
+ homeOrganizationSubtype(),
2314
+ numberOfRooms(),
2315
+ homeTheaterSubtype(),
2316
+ heatingCoolingSubtype(),
2317
+ fuelSource(),
2318
+ insulationSubtype(),
2319
+ landscapingSubtype(),
2320
+ masonrySubtype(),
2321
+ masonryMaterial(),
2322
+ masonryWorkType(),
2323
+ restorationSubtype(),
2324
+ // Moving not finished yet
2325
+ // steps.movingFromAddress(),
2326
+ // steps.movingToAddress(),
2327
+ // steps.movingHouseholdSize(),
2328
+ paintingSubtype({
2329
+ nextStepMap: nextStepsMapPainting(defaultSteps),
2330
+ }),
2331
+ paintingRooms(),
2332
+ pestControlSubtype(),
2333
+ poolsWorkType(),
2334
+ poolsSubtype(),
2335
+ plumbingSubtype(),
2336
+ remodelingSubtype(),
2337
+ roofingWorkType(),
2338
+ roofingMaterial(),
2339
+ sidingMaterial(),
2340
+ tilingSubtype(),
2341
+ waterproofingSubtype(),
2342
+ windowsWorkType(),
2343
+ windowsSubtype(),
2344
+ numberOfWindows(),
2345
+ commentsHeadline({
2346
+ label: null,
2347
+ headline: "Please briefly describe your project:",
2348
+ headlineClass: "!t-text-dark",
2349
+ }),
2350
+ firstAndLastV3({
2351
+ headlineClass: "!t-text-dark",
2352
+ }),
2353
+ ];
2354
+ return meta
2355
+ }
2356
+
1850
2357
  function dynamicSchemaNode(field = "Type_Of_Legal_Problem") {
1851
2358
  return {
1852
2359
  $cmp: "FormKitSchema",
@@ -1995,14 +2502,6 @@ const hiddenInputsHomeImprovement = [
1995
2502
  ...hiddenInputsBase,
1996
2503
  ];
1997
2504
 
1998
- const homeImprovementRedirectMapDefaults = {
1999
- "*": HomeImprovementRedirectUrl(),
2000
- };
2001
-
2002
- function homeImprovementRedirectMap(updates) {
2003
- return merge(homeImprovementRedirectMapDefaults, updates)
2004
- }
2005
-
2006
2505
  // ------ Home Improvement
2007
2506
 
2008
2507
  const HomeImprovementCommentsPlaceholders = {
@@ -2060,6 +2559,7 @@ const HomeImprovementCommentsPlaceholders = {
2060
2559
  Waterproofing: 'Example: "I need to waterproof my basement"',
2061
2560
  "Window Cleaning": 'Example: "I need a professional window cleaning service"',
2062
2561
  Windows: 'Example: "I want to replace 3 windows in my house"',
2562
+ "Not Sure or Other": 'Example: "I need general handyman services"',
2063
2563
  };
2064
2564
 
2065
2565
  const HomeImprovementFinalHeadlines = {
@@ -2182,174 +2682,98 @@ const nextStepsHomeImprovementDefault = [
2182
2682
  "ownHome",
2183
2683
  "zipcode",
2184
2684
  "address",
2185
- // 'homeImprovementCrossSells',
2685
+ "homeImprovementCrossSells",
2186
2686
  "firstAndLast",
2187
2687
  "contactInfo",
2188
2688
  ];
2189
2689
 
2190
- const nextStepsMapGeneralHomeImprovement = {
2191
- values: {
2192
- Category: {
2193
- Additions: ["additionsSubType", "constructionAreaSize", ...nextStepsHomeImprovementDefault],
2194
- Appliances: ["homeImprovementWorkType", "applianceType", ...nextStepsHomeImprovementDefault],
2195
- Appraisals: [...nextStepsHomeImprovementDefault],
2196
- Cabinets: ["cabinetWorkType", ...nextStepsHomeImprovementDefault],
2197
- Carpentry: ["carpentrySubtype", "homeImprovementWorkType", ...nextStepsHomeImprovementDefault],
2198
- Carpets: ["carpetWorkType", ...nextStepsHomeImprovementDefault],
2199
- Cleaning: ["cleaningSubtype", ...nextStepsHomeImprovementDefault],
2200
- Countertops: ["countertopMaterial", "homeImprovementWorkType", ...nextStepsHomeImprovementDefault],
2201
- "Decks and Porches": ["deckWorkType", ...nextStepsHomeImprovementDefault],
2202
- Demolition: ["demolitionSubtype", ...nextStepsHomeImprovementDefault],
2203
- Doors: ["doorSubtype", "homeImprovementWorkType", ...nextStepsHomeImprovementDefault],
2204
- Driveways: ["drivewayWorkType", "drivewayMaterial", ...nextStepsHomeImprovementDefault],
2205
- "Drywall and Plaster": ["wallSurfaceType", "homeImprovementWorkType", ...nextStepsHomeImprovementDefault],
2206
- Electrical: ["electricalSubtype", "homeImprovementWorkType", ...nextStepsHomeImprovementDefault],
2207
- Fencing: ["fenceMaterial", "homeImprovementWorkType", ...nextStepsHomeImprovementDefault],
2208
- Flooring: ["flooringMaterial", "homeImprovementWorkType", ...nextStepsHomeImprovementDefault],
2209
- Foundations: ["homeImprovementWorkType", ...nextStepsHomeImprovementDefault],
2210
- "Garage Doors": ["homeImprovementWorkType", ...nextStepsHomeImprovementDefault],
2211
- "General Contractors": ["generalContractorSubtype", ...nextStepsHomeImprovementDefault],
2212
- Gutters: ["gutterMaterial", "guttersWorkType", ...nextStepsHomeImprovementDefault],
2213
- Handyman: [...nextStepsHomeImprovementDefault],
2214
- "Holiday Decorators": [...nextStepsHomeImprovementDefault],
2215
- "Smart Home": ["smartHomeSubtype", ...nextStepsHomeImprovementDefault],
2216
- "Home Builders": [...nextStepsHomeImprovementDefault],
2217
- "Home Inspection": [...nextStepsHomeImprovementDefault],
2218
- "Home Organization": ["homeOrganizationSubtype", ...nextStepsHomeImprovementDefault],
2219
- "Home Security": [...nextStepsHomeImprovementDefault],
2220
- "Home Staging": ["numberOfRooms", ...nextStepsHomeImprovementDefault],
2221
- "Home Theater": ["homeTheaterSubtype", ...nextStepsHomeImprovementDefault],
2222
- "Home Warranties": [...nextStepsHomeImprovementDefault],
2223
- "Hot Tubs": ["homeImprovementWorkType", ...nextStepsHomeImprovementDefault],
2224
- "Heating and Cooling": [
2225
- "heatingCoolingSubtype",
2226
- "fuelSource",
2227
- "homeImprovementWorkType",
2228
- ...nextStepsHomeImprovementDefault,
2229
- ],
2230
- Insulation: ["insulationSubtype", ...nextStepsHomeImprovementDefault],
2231
- "Junk Removal": [...nextStepsHomeImprovementDefault],
2232
- Landscaping: ["landscapingSubtype", "homeImprovementWorkType", ...nextStepsHomeImprovementDefault],
2233
- Locksmiths: [...nextStepsHomeImprovementDefault],
2234
- "Masonry and Concrete": [
2235
- "masonrySubtype",
2236
- "masonryMaterial",
2237
- "masonryWorkType",
2238
- ...nextStepsHomeImprovementDefault,
2239
- ],
2240
- Restoration: ["restorationSubtype", ...nextStepsHomeImprovementDefault],
2241
- Moving: ["movingFromAddress", "movingToAddress", "movingHouseholdSize", ...nextStepsHomeImprovementDefault],
2242
- Painting: ["paintingSubtype", "paintingRooms", ...nextStepsHomeImprovementDefault],
2243
- "Pest Control": ["pestControlSubtype", ...nextStepsHomeImprovementDefault],
2244
- Pools: ["poolsWorkType", "poolsSubtype", ...nextStepsHomeImprovementDefault],
2245
- Plumbing: ["plumbingSubtype", "homeImprovementWorkType", ...nextStepsHomeImprovementDefault],
2246
- "Pressure Washing": [...nextStepsHomeImprovementDefault],
2247
- Remodeling: ["remodelingSubtype", ...nextStepsHomeImprovementDefault],
2248
- Roofing: ["roofingWorkType", "roofingMaterial", ...nextStepsHomeImprovementDefault],
2249
- Sheds: ["homeImprovementWorkType", ...nextStepsHomeImprovementDefault],
2250
- Siding: ["sidingMaterial", "homeImprovementWorkType", ...nextStepsHomeImprovementDefault],
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],
2690
+ const nextStepsMapGeneralHomeImprovement = (defaultSteps = nextStepsHomeImprovementDefault) => {
2691
+ return {
2692
+ values: {
2693
+ Category: {
2694
+ Additions: ["additionsSubType", "constructionAreaSize", ...defaultSteps],
2695
+ Appliances: ["applianceType", "homeImprovementWorkType", ...defaultSteps],
2696
+ Appraisals: [...defaultSteps],
2697
+ Cabinets: ["cabinetWorkType", ...defaultSteps],
2698
+ Carpentry: ["carpentrySubtype", "homeImprovementWorkType", ...defaultSteps],
2699
+ Carpets: ["carpetWorkType", ...defaultSteps],
2700
+ Cleaning: ["cleaningSubtype", ...defaultSteps],
2701
+ Countertops: ["countertopMaterial", "homeImprovementWorkType", ...defaultSteps],
2702
+ "Decks and Porches": ["deckWorkType", ...defaultSteps],
2703
+ Demolition: ["demolitionSubtype", ...defaultSteps],
2704
+ Doors: ["doorSubtype", "homeImprovementWorkType", ...defaultSteps],
2705
+ Driveways: ["drivewayWorkType", "drivewayMaterial", ...defaultSteps],
2706
+ "Drywall and Plaster": ["wallSurfaceType", "homeImprovementWorkType", ...defaultSteps],
2707
+ Electrical: ["electricalSubtype", "homeImprovementWorkType", ...defaultSteps],
2708
+ Fencing: ["fenceMaterial", "homeImprovementWorkType", ...defaultSteps],
2709
+ Flooring: ["flooringMaterial", "homeImprovementWorkType", ...defaultSteps],
2710
+ Foundations: ["homeImprovementWorkType", ...defaultSteps],
2711
+ "Garage Doors": ["homeImprovementWorkType", ...defaultSteps],
2712
+ "General Contractors": ["generalContractorSubtype", ...defaultSteps],
2713
+ Gutters: ["gutterMaterial", "gutterWorkType", ...defaultSteps],
2714
+ Handyman: [...defaultSteps],
2715
+ "Holiday Decorators": [...defaultSteps],
2716
+ "Smart Home": ["smartHomeSubtype", ...defaultSteps],
2717
+ "Home Builders": [...defaultSteps],
2718
+ "Home Inspection": [...defaultSteps],
2719
+ "Home Organization": ["homeOrganizationSubtype", ...defaultSteps],
2720
+ "Home Security": [...defaultSteps],
2721
+ "Home Staging": ["numberOfRooms", ...defaultSteps],
2722
+ "Home Theater": ["homeTheaterSubtype", ...defaultSteps],
2723
+ "Home Warranties": [...defaultSteps],
2724
+ "Hot Tubs": ["homeImprovementWorkType", ...defaultSteps],
2725
+ "Heating and Cooling": ["heatingCoolingSubtype", "fuelSource", "homeImprovementWorkType", ...defaultSteps],
2726
+ Insulation: ["insulationSubtype", ...defaultSteps],
2727
+ "Junk Removal": [...defaultSteps],
2728
+ Landscaping: ["landscapingSubtype", "homeImprovementWorkType", ...defaultSteps],
2729
+ Locksmiths: [...defaultSteps],
2730
+ "Masonry and Concrete": ["masonrySubtype", "masonryMaterial", "masonryWorkType", ...defaultSteps],
2731
+ // TODO :: add support for moving
2732
+ // Moving: ["movingFromAddress", "movingToAddress", "movingHouseholdSize", ...defaultSteps],
2733
+ Restoration: ["restorationSubtype", ...defaultSteps],
2734
+ Painting: ["paintingSubtype", "paintingRooms", ...defaultSteps],
2735
+ "Pest Control": ["pestControlSubtype", ...defaultSteps],
2736
+ Pools: ["poolsSubtype", "poolsWorkType", ...defaultSteps],
2737
+ Plumbing: ["plumbingSubtype", "homeImprovementWorkType", ...defaultSteps],
2738
+ "Pressure Washing": [...defaultSteps],
2739
+ Remodeling: ["remodelingSubtype", ...defaultSteps],
2740
+ Roofing: ["roofingWorkType", "roofingMaterial", ...defaultSteps],
2741
+ Sheds: ["homeImprovementWorkType", ...defaultSteps],
2742
+ Siding: ["sidingMaterial", "homeImprovementWorkType", ...defaultSteps],
2743
+ Solar: ["homeImprovementWorkType", ...defaultSteps],
2744
+ Tiling: ["tilingSubtype", "homeImprovementWorkType", ...defaultSteps],
2745
+ "Walk-in Tubs": [...defaultSteps],
2746
+ Waterproofing: ["waterproofingSubtype", ...defaultSteps],
2747
+ "Window Cleaning": [...defaultSteps],
2748
+ Windows: ["windowsSubtype", "windowsWorkType", "numberOfWindows", ...defaultSteps],
2749
+ },
2750
+ "*": defaultSteps,
2257
2751
  },
2258
- "*": nextStepsHomeImprovementDefault,
2259
- },
2752
+ }
2260
2753
  };
2261
2754
 
2262
- const nextStepsMapPainting = {
2263
- values: {
2264
- Painting_Subtype: {
2265
- "Whole Exterior": nextStepsHomeImprovementDefault,
2266
- "Exterior Touch-up": nextStepsHomeImprovementDefault,
2267
- "Interior Rooms": ["paintingRooms", ...nextStepsHomeImprovementDefault],
2268
- "Interior Touch-up": ["paintingRooms", ...nextStepsHomeImprovementDefault],
2269
- Ceilings: ["paintingRooms", ...nextStepsHomeImprovementDefault],
2270
- Deck: nextStepsHomeImprovementDefault,
2271
- Shed: nextStepsHomeImprovementDefault,
2272
- Cabinets: nextStepsHomeImprovementDefault,
2273
- "Not Sure or Other": nextStepsHomeImprovementDefault,
2755
+ const nextStepsMapPainting = (defaultSteps = nextStepsHomeImprovementDefault) => {
2756
+ return {
2757
+ values: {
2758
+ Painting_Subtype: {
2759
+ "Whole Exterior": defaultSteps,
2760
+ "Exterior Touch-up": defaultSteps,
2761
+ "Interior Rooms": ["paintingRooms", ...defaultSteps],
2762
+ "Interior Touch-up": ["paintingRooms", ...defaultSteps],
2763
+ Ceilings: ["paintingRooms", ...defaultSteps],
2764
+ Deck: defaultSteps,
2765
+ Shed: defaultSteps,
2766
+ Cabinets: defaultSteps,
2767
+ "Not Sure or Other": defaultSteps,
2768
+ },
2274
2769
  },
2275
- },
2770
+ }
2276
2771
  };
2277
2772
 
2278
- const meta = defaultMetaPropsHomeImprovement();
2279
-
2280
- meta.data.dynamicSchema = [
2281
- zipcode(),
2282
- timeframe(),
2283
- ownHome(),
2284
- address(),
2285
- homeImprovementWorkType(),
2286
- additionsSubType(),
2287
- constructionAreaSize(),
2288
- applianceType(),
2289
- cabinetWorkType(),
2290
- carpentrySubtype(),
2291
- carpetWorkType(),
2292
- cleaningSubtype(),
2293
- countertopMaterial(),
2294
- deckWorkType(),
2295
- demolitionSubtype(),
2296
- doorSubtype(),
2297
- drivewayWorkType(),
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({
2350
- headlineClass: "!t-text-dark",
2351
- }),
2352
- ];
2773
+ // Omits cross sell step
2774
+ const nextStepDefaults = ["comments", "timeframe", "ownHome", "zipcode", "address", "firstAndLast", "contactInfo"];
2775
+
2776
+ const meta = defaultMetaPropsHomeImprovementGeneral(nextStepDefaults);
2353
2777
 
2354
2778
  const schema = [
2355
2779
  meta,
@@ -2357,10 +2781,10 @@ const schema = [
2357
2781
  {
2358
2782
  $cmp: "FormKit",
2359
2783
  props: formProps({
2360
- formId: "generalHomeImprovement",
2361
- redirectMap: homeImprovementRedirectMap(),
2362
- // valueOverrideMap: forms.homeImprovementAllValueOverrideMap,
2363
- // crossSellOptionMap: forms.homeImprovementCrossSellOptionMap,
2784
+ formId: "generalHomeImprovementThankYou",
2785
+ redirectMap: {
2786
+ "*": "/thank-you",
2787
+ },
2364
2788
  }),
2365
2789
  children: [
2366
2790
  progressBar(),
@@ -2381,7 +2805,7 @@ const schema = [
2381
2805
  children: [
2382
2806
  homeImprovementCategory({
2383
2807
  nextOnInput: false,
2384
- nextStepMap: nextStepsMapGeneralHomeImprovement,
2808
+ nextStepMap: nextStepsMapGeneralHomeImprovement(nextStepDefaults),
2385
2809
  headlineClass: "t-text-lg",
2386
2810
  input: {
2387
2811
  placeholder: "Select a Category",
@@ -2398,13 +2822,4 @@ const schema = [
2398
2822
  },
2399
2823
  ];
2400
2824
 
2401
- const formKitNode = schema.find(item => item.$cmp === "FormKit");
2402
-
2403
- // HACK: need to update both to mimic formProps behavior
2404
- formKitNode.props.name = 'generalHomeImprovementThankYou';
2405
- formKitNode.props.formId = 'generalHomeImprovementThankYou';
2406
- formKitNode.props.redirectMap = {
2407
- '*': '/thank-you'
2408
- };
2409
-
2410
2825
  export { schema as default };