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.
Files changed (84) hide show
  1. package/dist/bhl-forms.iife.js +1 -1
  2. package/dist/bhl-forms.modern.iife.js +1 -1
  3. package/dist/bhl-forms.modern.umd.js +1 -1
  4. package/dist/bhl-forms.umd.js +1 -1
  5. package/dist/forms/accidentsAndInjuries.es.js +9 -7
  6. package/dist/forms/accidentsAndInjuries.iife.js +1 -1
  7. package/dist/forms/accidentsAndInjuries.json +1 -1
  8. package/dist/forms/business.es.js +9 -7
  9. package/dist/forms/business.iife.js +1 -1
  10. package/dist/forms/business.json +1 -1
  11. package/dist/forms/childAndFamily.es.js +9 -7
  12. package/dist/forms/childAndFamily.iife.js +1 -1
  13. package/dist/forms/childAndFamily.json +1 -1
  14. package/dist/forms/childAndFamilySingle.es.js +9 -7
  15. package/dist/forms/childAndFamilySingle.iife.js +1 -1
  16. package/dist/forms/childAndFamilySingle.json +1 -1
  17. package/dist/forms/civilLawsuit.es.js +9 -7
  18. package/dist/forms/civilLawsuit.iife.js +1 -1
  19. package/dist/forms/civilLawsuit.json +1 -1
  20. package/dist/forms/contracts.es.js +9 -7
  21. package/dist/forms/contracts.iife.js +1 -1
  22. package/dist/forms/contracts.json +1 -1
  23. package/dist/forms/criminal.es.js +9 -7
  24. package/dist/forms/criminal.iife.js +1 -1
  25. package/dist/forms/criminal.json +1 -1
  26. package/dist/forms/divorce.es.js +9 -7
  27. package/dist/forms/divorce.iife.js +1 -1
  28. package/dist/forms/divorce.json +1 -1
  29. package/dist/forms/employmentAndWorkplace.es.js +9 -7
  30. package/dist/forms/employmentAndWorkplace.iife.js +1 -1
  31. package/dist/forms/employmentAndWorkplace.json +1 -1
  32. package/dist/forms/generalHomeImprovement.es.js +1649 -668
  33. package/dist/forms/generalHomeImprovement.iife.js +1 -1
  34. package/dist/forms/generalHomeImprovement.json +1 -1
  35. package/dist/forms/generalHomeImprovementThankYou.es.js +1142 -745
  36. package/dist/forms/generalHomeImprovementThankYou.iife.js +1 -1
  37. package/dist/forms/generalHomeImprovementThankYou.json +1 -1
  38. package/dist/forms/generalLegal.es.js +9 -7
  39. package/dist/forms/generalLegal.iife.js +1 -1
  40. package/dist/forms/generalLegal.json +1 -1
  41. package/dist/forms/generalLegalJustAnswer.es.js +9 -7
  42. package/dist/forms/generalLegalJustAnswer.iife.js +1 -1
  43. package/dist/forms/generalLegalJustAnswer.json +1 -1
  44. package/dist/forms/generalLegalPopUnder.es.js +9 -7
  45. package/dist/forms/generalLegalPopUnder.iife.js +1 -1
  46. package/dist/forms/generalLegalPopUnder.json +1 -1
  47. package/dist/forms/generalLegalPopUnderSingle.es.js +9 -7
  48. package/dist/forms/generalLegalPopUnderSingle.iife.js +1 -1
  49. package/dist/forms/generalLegalPopUnderSingle.json +1 -1
  50. package/dist/forms/generalLegalSingle.es.js +9 -7
  51. package/dist/forms/generalLegalSingle.iife.js +1 -1
  52. package/dist/forms/generalLegalSingle.json +1 -1
  53. package/dist/forms/generalLegalThankYou.es.js +8 -6
  54. package/dist/forms/generalLegalThankYou.iife.js +1 -1
  55. package/dist/forms/generalLegalThankYouConsultation.es.js +9 -7
  56. package/dist/forms/generalLegalThankYouConsultation.iife.js +1 -1
  57. package/dist/forms/generalLegalThankYouConsultation.json +1 -1
  58. package/dist/forms/harassmentAndDiscrimination.es.js +9 -7
  59. package/dist/forms/harassmentAndDiscrimination.iife.js +1 -1
  60. package/dist/forms/harassmentAndDiscrimination.json +1 -1
  61. package/dist/forms/landlordTenant.es.js +9 -7
  62. package/dist/forms/landlordTenant.iife.js +1 -1
  63. package/dist/forms/landlordTenant.json +1 -1
  64. package/dist/forms/malpractice.es.js +9 -7
  65. package/dist/forms/malpractice.iife.js +1 -1
  66. package/dist/forms/malpractice.json +1 -1
  67. package/dist/forms/mechanics.es.js +2 -1
  68. package/dist/forms/mechanics.iife.js +1 -1
  69. package/dist/forms/patentsAndIP.es.js +9 -7
  70. package/dist/forms/patentsAndIP.iife.js +1 -1
  71. package/dist/forms/patentsAndIP.json +1 -1
  72. package/dist/forms/realEstate.es.js +9 -7
  73. package/dist/forms/realEstate.iife.js +1 -1
  74. package/dist/forms/realEstate.json +1 -1
  75. package/dist/forms/repossession.es.js +9 -7
  76. package/dist/forms/repossession.iife.js +1 -1
  77. package/dist/forms/repossession.json +1 -1
  78. package/dist/forms/testRedirects.es.js +2 -1
  79. package/dist/forms/testRedirects.iife.js +1 -1
  80. package/dist/forms/willsAndTrusts.es.js +9 -7
  81. package/dist/forms/willsAndTrusts.iife.js +1 -1
  82. package/dist/forms/willsAndTrusts.json +1 -1
  83. package/dist/main.css +1 -1
  84. 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)';
@@ -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";
@@ -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
  }
@@ -1847,6 +2263,79 @@ function defaultMetaPropsHomeImprovement(category = null) {
1847
2263
  })
1848
2264
  }
1849
2265
 
2266
+ function defaultMetaPropsHomeImprovementGeneral(defaultSteps = nextStepsHomeImprovementDefault) {
2267
+ const meta = defaultMetaPropsHomeImprovement();
2268
+ meta.data.dynamicSchema = [
2269
+ zipcode(),
2270
+ timeframe(),
2271
+ ownHome(),
2272
+ address(),
2273
+ homeImprovementWorkType(),
2274
+ additionsSubType(),
2275
+ constructionAreaSize(),
2276
+ applianceType(),
2277
+ cabinetWorkType(),
2278
+ carpentrySubtype(),
2279
+ carpetWorkType(),
2280
+ cleaningSubtype(),
2281
+ countertopMaterial(),
2282
+ deckWorkType(),
2283
+ demolitionSubtype(),
2284
+ doorSubtype(),
2285
+ drivewayWorkType(),
2286
+ drivewayMaterial(),
2287
+ wallSurfaceType(),
2288
+ electricalSubtype(),
2289
+ fenceMaterial(),
2290
+ flooringMaterial(),
2291
+ generalContractorSubtype(),
2292
+ gutterMaterial(),
2293
+ gutterWorkType(),
2294
+ smartHomeSubtype(),
2295
+ homeOrganizationSubtype(),
2296
+ numberOfRooms(),
2297
+ homeTheaterSubtype(),
2298
+ heatingCoolingSubtype(),
2299
+ fuelSource(),
2300
+ insulationSubtype(),
2301
+ landscapingSubtype(),
2302
+ masonrySubtype(),
2303
+ masonryMaterial(),
2304
+ masonryWorkType(),
2305
+ restorationSubtype(),
2306
+ // Moving not finished yet
2307
+ // steps.movingFromAddress(),
2308
+ // steps.movingToAddress(),
2309
+ // steps.movingHouseholdSize(),
2310
+ paintingSubtype({
2311
+ nextStepMap: nextStepsMapPainting(defaultSteps),
2312
+ }),
2313
+ paintingRooms(),
2314
+ pestControlSubtype(),
2315
+ poolsWorkType(),
2316
+ poolsSubtype(),
2317
+ plumbingSubtype(),
2318
+ remodelingSubtype(),
2319
+ roofingWorkType(),
2320
+ roofingMaterial(),
2321
+ sidingMaterial(),
2322
+ tilingSubtype(),
2323
+ waterproofingSubtype(),
2324
+ windowsWorkType(),
2325
+ windowsSubtype(),
2326
+ numberOfWindows(),
2327
+ commentsHeadline({
2328
+ label: null,
2329
+ headline: "Please briefly describe your project:",
2330
+ headlineClass: "!t-text-dark",
2331
+ }),
2332
+ firstAndLastV3({
2333
+ headlineClass: "!t-text-dark",
2334
+ }),
2335
+ ];
2336
+ return meta
2337
+ }
2338
+
1850
2339
  function dynamicSchemaNode(field = "Type_Of_Legal_Problem") {
1851
2340
  return {
1852
2341
  $cmp: "FormKitSchema",
@@ -1995,14 +2484,6 @@ const hiddenInputsHomeImprovement = [
1995
2484
  ...hiddenInputsBase,
1996
2485
  ];
1997
2486
 
1998
- const homeImprovementRedirectMapDefaults = {
1999
- "*": HomeImprovementRedirectUrl(),
2000
- };
2001
-
2002
- function homeImprovementRedirectMap(updates) {
2003
- return merge(homeImprovementRedirectMapDefaults, updates)
2004
- }
2005
-
2006
2487
  // ------ Home Improvement
2007
2488
 
2008
2489
  const HomeImprovementCommentsPlaceholders = {
@@ -2060,6 +2541,7 @@ const HomeImprovementCommentsPlaceholders = {
2060
2541
  Waterproofing: 'Example: "I need to waterproof my basement"',
2061
2542
  "Window Cleaning": 'Example: "I need a professional window cleaning service"',
2062
2543
  Windows: 'Example: "I want to replace 3 windows in my house"',
2544
+ "Not Sure or Other": 'Example: "I need general handyman services"',
2063
2545
  };
2064
2546
 
2065
2547
  const HomeImprovementFinalHeadlines = {
@@ -2182,174 +2664,98 @@ const nextStepsHomeImprovementDefault = [
2182
2664
  "ownHome",
2183
2665
  "zipcode",
2184
2666
  "address",
2185
- // 'homeImprovementCrossSells',
2667
+ "homeImprovementCrossSells",
2186
2668
  "firstAndLast",
2187
2669
  "contactInfo",
2188
2670
  ];
2189
2671
 
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],
2672
+ const nextStepsMapGeneralHomeImprovement = (defaultSteps = nextStepsHomeImprovementDefault) => {
2673
+ return {
2674
+ values: {
2675
+ Category: {
2676
+ Additions: ["additionsSubType", "constructionAreaSize", ...defaultSteps],
2677
+ Appliances: ["applianceType", "homeImprovementWorkType", ...defaultSteps],
2678
+ Appraisals: [...defaultSteps],
2679
+ Cabinets: ["cabinetWorkType", ...defaultSteps],
2680
+ Carpentry: ["carpentrySubtype", "homeImprovementWorkType", ...defaultSteps],
2681
+ Carpets: ["carpetWorkType", ...defaultSteps],
2682
+ Cleaning: ["cleaningSubtype", ...defaultSteps],
2683
+ Countertops: ["countertopMaterial", "homeImprovementWorkType", ...defaultSteps],
2684
+ "Decks and Porches": ["deckWorkType", ...defaultSteps],
2685
+ Demolition: ["demolitionSubtype", ...defaultSteps],
2686
+ Doors: ["doorSubtype", "homeImprovementWorkType", ...defaultSteps],
2687
+ Driveways: ["drivewayWorkType", "drivewayMaterial", ...defaultSteps],
2688
+ "Drywall and Plaster": ["wallSurfaceType", "homeImprovementWorkType", ...defaultSteps],
2689
+ Electrical: ["electricalSubtype", "homeImprovementWorkType", ...defaultSteps],
2690
+ Fencing: ["fenceMaterial", "homeImprovementWorkType", ...defaultSteps],
2691
+ Flooring: ["flooringMaterial", "homeImprovementWorkType", ...defaultSteps],
2692
+ Foundations: ["homeImprovementWorkType", ...defaultSteps],
2693
+ "Garage Doors": ["homeImprovementWorkType", ...defaultSteps],
2694
+ "General Contractors": ["generalContractorSubtype", ...defaultSteps],
2695
+ Gutters: ["gutterMaterial", "gutterWorkType", ...defaultSteps],
2696
+ Handyman: [...defaultSteps],
2697
+ "Holiday Decorators": [...defaultSteps],
2698
+ "Smart Home": ["smartHomeSubtype", ...defaultSteps],
2699
+ "Home Builders": [...defaultSteps],
2700
+ "Home Inspection": [...defaultSteps],
2701
+ "Home Organization": ["homeOrganizationSubtype", ...defaultSteps],
2702
+ "Home Security": [...defaultSteps],
2703
+ "Home Staging": ["numberOfRooms", ...defaultSteps],
2704
+ "Home Theater": ["homeTheaterSubtype", ...defaultSteps],
2705
+ "Home Warranties": [...defaultSteps],
2706
+ "Hot Tubs": ["homeImprovementWorkType", ...defaultSteps],
2707
+ "Heating and Cooling": ["heatingCoolingSubtype", "fuelSource", "homeImprovementWorkType", ...defaultSteps],
2708
+ Insulation: ["insulationSubtype", ...defaultSteps],
2709
+ "Junk Removal": [...defaultSteps],
2710
+ Landscaping: ["landscapingSubtype", "homeImprovementWorkType", ...defaultSteps],
2711
+ Locksmiths: [...defaultSteps],
2712
+ "Masonry and Concrete": ["masonrySubtype", "masonryMaterial", "masonryWorkType", ...defaultSteps],
2713
+ // TODO :: add support for moving
2714
+ // Moving: ["movingFromAddress", "movingToAddress", "movingHouseholdSize", ...defaultSteps],
2715
+ Restoration: ["restorationSubtype", ...defaultSteps],
2716
+ Painting: ["paintingSubtype", "paintingRooms", ...defaultSteps],
2717
+ "Pest Control": ["pestControlSubtype", ...defaultSteps],
2718
+ Pools: ["poolsSubtype", "poolsWorkType", ...defaultSteps],
2719
+ Plumbing: ["plumbingSubtype", "homeImprovementWorkType", ...defaultSteps],
2720
+ "Pressure Washing": [...defaultSteps],
2721
+ Remodeling: ["remodelingSubtype", ...defaultSteps],
2722
+ Roofing: ["roofingWorkType", "roofingMaterial", ...defaultSteps],
2723
+ Sheds: ["homeImprovementWorkType", ...defaultSteps],
2724
+ Siding: ["sidingMaterial", "homeImprovementWorkType", ...defaultSteps],
2725
+ Solar: ["homeImprovementWorkType", ...defaultSteps],
2726
+ Tiling: ["tilingSubtype", "homeImprovementWorkType", ...defaultSteps],
2727
+ "Walk-in Tubs": [...defaultSteps],
2728
+ Waterproofing: ["waterproofingSubtype", ...defaultSteps],
2729
+ "Window Cleaning": [...defaultSteps],
2730
+ Windows: ["windowsSubtype", "windowsWorkType", "numberOfWindows", ...defaultSteps],
2731
+ },
2732
+ "*": defaultSteps,
2257
2733
  },
2258
- "*": nextStepsHomeImprovementDefault,
2259
- },
2734
+ }
2260
2735
  };
2261
2736
 
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,
2737
+ const nextStepsMapPainting = (defaultSteps = nextStepsHomeImprovementDefault) => {
2738
+ return {
2739
+ values: {
2740
+ Painting_Subtype: {
2741
+ "Whole Exterior": defaultSteps,
2742
+ "Exterior Touch-up": defaultSteps,
2743
+ "Interior Rooms": ["paintingRooms", ...defaultSteps],
2744
+ "Interior Touch-up": ["paintingRooms", ...defaultSteps],
2745
+ Ceilings: ["paintingRooms", ...defaultSteps],
2746
+ Deck: defaultSteps,
2747
+ Shed: defaultSteps,
2748
+ Cabinets: defaultSteps,
2749
+ "Not Sure or Other": defaultSteps,
2750
+ },
2274
2751
  },
2275
- },
2752
+ }
2276
2753
  };
2277
2754
 
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
- ];
2755
+ // Omits cross sell step
2756
+ const nextStepDefaults = ["comments", "timeframe", "ownHome", "zipcode", "address", "firstAndLast", "contactInfo"];
2757
+
2758
+ const meta = defaultMetaPropsHomeImprovementGeneral(nextStepDefaults);
2353
2759
 
2354
2760
  const schema = [
2355
2761
  meta,
@@ -2357,10 +2763,10 @@ const schema = [
2357
2763
  {
2358
2764
  $cmp: "FormKit",
2359
2765
  props: formProps({
2360
- formId: "generalHomeImprovement",
2361
- redirectMap: homeImprovementRedirectMap(),
2362
- // valueOverrideMap: forms.homeImprovementAllValueOverrideMap,
2363
- // crossSellOptionMap: forms.homeImprovementCrossSellOptionMap,
2766
+ formId: "generalHomeImprovementThankYou",
2767
+ redirectMap: {
2768
+ "*": "/thank-you",
2769
+ },
2364
2770
  }),
2365
2771
  children: [
2366
2772
  progressBar(),
@@ -2381,7 +2787,7 @@ const schema = [
2381
2787
  children: [
2382
2788
  homeImprovementCategory({
2383
2789
  nextOnInput: false,
2384
- nextStepMap: nextStepsMapGeneralHomeImprovement,
2790
+ nextStepMap: nextStepsMapGeneralHomeImprovement(nextStepDefaults),
2385
2791
  headlineClass: "t-text-lg",
2386
2792
  input: {
2387
2793
  placeholder: "Select a Category",
@@ -2398,13 +2804,4 @@ const schema = [
2398
2804
  },
2399
2805
  ];
2400
2806
 
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
2807
  export { schema as default };