bhl-forms 0.6.15 → 0.7.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 (94) hide show
  1. package/dist/bhl-forms.es.js +1757 -1759
  2. package/dist/bhl-forms.iife.js +4 -4
  3. package/dist/bhl-forms.modern.es.js +2804 -2811
  4. package/dist/bhl-forms.modern.iife.js +6 -6
  5. package/dist/bhl-forms.modern.umd.js +6 -6
  6. package/dist/bhl-forms.umd.js +4 -4
  7. package/dist/forms/accidentsAndInjuries.es.js +278 -215
  8. package/dist/forms/accidentsAndInjuries.iife.js +1 -1
  9. package/dist/forms/accidentsAndInjuries.json +1 -1
  10. package/dist/forms/appraisals.es.js +16 -7
  11. package/dist/forms/appraisals.iife.js +1 -1
  12. package/dist/forms/business.es.js +288 -226
  13. package/dist/forms/business.iife.js +1 -1
  14. package/dist/forms/business.json +1 -1
  15. package/dist/forms/childAndFamily.es.js +271 -214
  16. package/dist/forms/childAndFamily.iife.js +1 -1
  17. package/dist/forms/childAndFamily.json +1 -1
  18. package/dist/forms/childAndFamilySingle.es.js +614 -545
  19. package/dist/forms/childAndFamilySingle.iife.js +1 -1
  20. package/dist/forms/childAndFamilySingle.json +1 -1
  21. package/dist/forms/civilLawsuit.es.js +608 -541
  22. package/dist/forms/civilLawsuit.iife.js +1 -1
  23. package/dist/forms/civilLawsuit.json +1 -1
  24. package/dist/forms/coins.es.js +16 -7
  25. package/dist/forms/coins.iife.js +1 -1
  26. package/dist/forms/contracts.es.js +275 -217
  27. package/dist/forms/contracts.iife.js +1 -1
  28. package/dist/forms/contracts.json +1 -1
  29. package/dist/forms/criminal.es.js +631 -562
  30. package/dist/forms/criminal.iife.js +1 -1
  31. package/dist/forms/criminal.json +1 -1
  32. package/dist/forms/divorce.es.js +614 -545
  33. package/dist/forms/divorce.iife.js +1 -1
  34. package/dist/forms/divorce.json +1 -1
  35. package/dist/forms/employmentAndWorkplace.es.js +555 -496
  36. package/dist/forms/employmentAndWorkplace.iife.js +1 -1
  37. package/dist/forms/employmentAndWorkplace.json +1 -1
  38. package/dist/forms/generalHomeImprovement.es.js +3224 -0
  39. package/dist/forms/generalHomeImprovement.iife.js +1 -0
  40. package/dist/forms/generalHomeImprovement.json +1 -0
  41. package/dist/forms/generalLegal.es.js +274 -216
  42. package/dist/forms/generalLegal.iife.js +1 -1
  43. package/dist/forms/generalLegal.json +1 -1
  44. package/dist/forms/generalLegalJustAnswer.es.js +4534 -0
  45. package/dist/forms/generalLegalJustAnswer.iife.js +1 -0
  46. package/dist/forms/generalLegalJustAnswer.json +1 -0
  47. package/dist/forms/generalLegalPopUnder.es.js +275 -217
  48. package/dist/forms/generalLegalPopUnder.iife.js +1 -1
  49. package/dist/forms/generalLegalPopUnder.json +1 -1
  50. package/dist/forms/generalLegalPopUnderSingle.es.js +645 -573
  51. package/dist/forms/generalLegalPopUnderSingle.iife.js +1 -1
  52. package/dist/forms/generalLegalPopUnderSingle.json +1 -1
  53. package/dist/forms/generalLegalSingle.es.js +645 -573
  54. package/dist/forms/generalLegalSingle.iife.js +1 -1
  55. package/dist/forms/generalLegalSingle.json +1 -1
  56. package/dist/forms/generalLegalThankYou.es.js +137 -130
  57. package/dist/forms/generalLegalThankYou.iife.js +1 -1
  58. package/dist/forms/generalLegalThankYouConsultation.es.js +645 -573
  59. package/dist/forms/generalLegalThankYouConsultation.iife.js +1 -1
  60. package/dist/forms/generalLegalThankYouConsultation.json +1 -1
  61. package/dist/forms/harassmentAndDiscrimination.es.js +271 -214
  62. package/dist/forms/harassmentAndDiscrimination.iife.js +1 -1
  63. package/dist/forms/harassmentAndDiscrimination.json +1 -1
  64. package/dist/forms/landlordTenant.es.js +287 -230
  65. package/dist/forms/landlordTenant.iife.js +1 -1
  66. package/dist/forms/landlordTenant.json +1 -1
  67. package/dist/forms/malpractice.es.js +276 -217
  68. package/dist/forms/malpractice.iife.js +1 -1
  69. package/dist/forms/malpractice.json +1 -1
  70. package/dist/forms/mechanics.es.js +171 -165
  71. package/dist/forms/mechanics.iife.js +1 -1
  72. package/dist/forms/mechanics.json +1 -1
  73. package/dist/forms/patentsAndIP.es.js +617 -548
  74. package/dist/forms/patentsAndIP.iife.js +1 -1
  75. package/dist/forms/patentsAndIP.json +1 -1
  76. package/dist/forms/realEstate.es.js +272 -215
  77. package/dist/forms/realEstate.iife.js +1 -1
  78. package/dist/forms/realEstate.json +1 -1
  79. package/dist/forms/repossession.es.js +275 -217
  80. package/dist/forms/repossession.iife.js +1 -1
  81. package/dist/forms/repossession.json +1 -1
  82. package/dist/forms/ssdi.es.js +139 -138
  83. package/dist/forms/ssdi.iife.js +1 -1
  84. package/dist/forms/ssdi.json +1 -1
  85. package/dist/forms/testForm.es.js +55 -52
  86. package/dist/forms/testForm.iife.js +1 -1
  87. package/dist/forms/testRedirects.es.js +28 -22
  88. package/dist/forms/testRedirects.iife.js +1 -1
  89. package/dist/forms/vets.es.js +16 -7
  90. package/dist/forms/vets.iife.js +1 -1
  91. package/dist/forms/willsAndTrusts.es.js +272 -213
  92. package/dist/forms/willsAndTrusts.iife.js +1 -1
  93. package/dist/forms/willsAndTrusts.json +1 -1
  94. package/package.json +3 -3
@@ -6,14 +6,97 @@ function LegalRedirectUrl() {
6
6
  return 'https://listings.ziplawyer.com/api/v1/redirect?zone_id=4&vertical=Legal&category=${properties.Type_Of_Legal_Problem}&Degree_Of_Interest=${properties.Degree_Of_Interest}&zip_code=${properties.Zip}&sub_id=${properties.vid}'
7
7
  }
8
8
 
9
- var TCPA_LANGUAGE = "By checking this box, I a) agree to the Terms of Use, and b) consent to be contacted by lawyers, lawyer networks, and partners of this website using live, autodialed, pre-recorded, or artificial voice calls, as well as text messages. Your consent is not required as a condition of purchasing any goods or services. To submit this request without this consent, call 878-213-4937.";
10
-
11
- const DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC = '$getKey($meta, "commentsPlaceholders." + $get(Type_Of_Legal_Problem).value, $meta.defaultCommentsPlaceholder)';
12
- const DEFAULT_COMMENTS_LABEL = 'Please briefly describe your legal issue in a few words:';
13
- const DEFAULT_FINAL_HEADLINE = 'Submit Your Case';
14
- const DEFAULT_FINAL_HEADLINE_DYNAMIC = '$getKey($meta, "finalHeadlines." + $get(Type_Of_Legal_Problem).value, $meta.defaultFinalHeadline)';
15
- const DEFAULT_FINAL_SUBHEADLINE = 'You may benefit from speaking with a legal professional. Please verify your contact information.';
16
- const DEFAULT_FINAL_SUBHEADLINE_DYNAMIC = '$getKey($meta, "finalSubHeadlines." + $get(Type_Of_Legal_Problem).value, $meta.defaultFinalSubHeadline)';
9
+ const DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC_LEGAL = '$getKey($meta, "commentsPlaceholders." + $get(Type_Of_Legal_Problem).value, $meta.defaultCommentsPlaceholder)';
10
+ const DEFAULT_COMMENTS_LABEL_LEGAL = 'Please briefly describe your legal issue in a few words:';
11
+ const DEFAULT_FINAL_HEADLINE_LEGAL = 'Submit Your Case';
12
+ const DEFAULT_FINAL_HEADLINE_DYNAMIC_LEGAL = '$getKey($meta, "finalHeadlines." + $get(Type_Of_Legal_Problem).value, $meta.defaultFinalHeadline)';
13
+ const DEFAULT_FINAL_SUBHEADLINE_LEGAL = 'You may benefit from speaking with a legal professional. Please verify your contact information.';
14
+ const DEFAULT_FINAL_SUBHEADLINE_DYNAMIC_LEGAL = '$getKey($meta, "finalSubHeadlines." + $get(Type_Of_Legal_Problem).value, $meta.defaultFinalSubHeadline)';
15
+ const TCPA_LANGUAGE_LEGAL = "By checking this box, I a) agree to the Terms of Use, and b) consent to be contacted by lawyers, lawyer networks, and partners of this website using live, autodialed, pre-recorded, or artificial voice calls, as well as text messages. Your consent is not required as a condition of purchasing any goods or services. To submit this request without this consent, call 878-213-4937.";
16
+ const defaultLegalImprovementCrossSells = {
17
+ 'Auto and Car Accidents': 'Injured in a Car Accident',
18
+ 'Personal Injury': 'Personal or Workplace Injury',
19
+ 'DUI and DWI': 'Involved in a DUI/DWI',
20
+ 'Wills and Trusts': 'Need a Will or Trust',
21
+ 'Power of Attorney': 'Update Power of Attorney',
22
+ 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
23
+ };
24
+ const CROSS_SELL_OPTION_MAP_LEGAL = {
25
+ // Values can be a list or a map of value -> display value
26
+ 'Auto and Car Accidents': {
27
+ 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
28
+ 'Wills and Trusts': 'Need a Will or Trust',
29
+ 'Workers Compensation': 'Workplace Injury',
30
+ 'Power of Attorney': 'Update Power of Attorney',
31
+ 'Divorce and Separation': 'Need a Divorce or Separation',
32
+ 'Child Custody': 'Need help with Child Custody',
33
+ },
34
+ "Personal Injury": {
35
+ 'DUI and DWI': 'Involved in a DUI/DWI',
36
+ 'Wills and Trusts': 'Need a Will or Trust',
37
+ 'Power of Attorney': 'Update Power of Attorney',
38
+ 'Divorce and Separation': 'Need a Divorce or Separation',
39
+ 'Child Custody': 'Need help with Child Custody',
40
+ // TODO add one more?
41
+ },
42
+ "Workers Compensation": {
43
+ 'DUI and DWI': 'Involved in a DUI/DWI',
44
+ 'Wills and Trusts': 'Need a Will or Trust',
45
+ 'Power of Attorney': 'Update Power of Attorney',
46
+ 'Divorce and Separation': 'Need a Divorce or Separation',
47
+ 'Child Custody': 'Need help with Child Custody',
48
+ // TODO add one more?
49
+ },
50
+ "DUI and DWI": {
51
+ 'Personal Injury': 'Personal or Workplace Injury',
52
+ 'Wills and Trusts': 'Need a Will or Trust',
53
+ 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
54
+ 'Power of Attorney': 'Update Power of Attorney',
55
+ 'Divorce and Separation': 'Need a Divorce or Separation',
56
+ 'Child Custody': 'Need help with Child Custody',
57
+ },
58
+ "Wills and Trusts": {
59
+ 'Auto and Car Accidents': 'Injured in a Car Accident',
60
+ 'Personal Injury': 'Personal or Workplace Injury',
61
+ 'DUI and DWI': 'Involved in a DUI/DWI',
62
+ 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
63
+ 'Divorce and Separation': 'Need a Divorce or Separation',
64
+ 'Child Custody': 'Need help with Child Custody',
65
+ },
66
+ "Probate and Estates": {
67
+ 'Auto and Car Accidents': 'Injured in a Car Accident',
68
+ 'Personal Injury': 'Personal or Workplace Injury',
69
+ 'DUI and DWI': 'Involved in a DUI/DWI',
70
+ 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
71
+ 'Divorce and Separation': 'Need a Divorce or Separation',
72
+ 'Child Custody': 'Need help with Child Custody',
73
+ },
74
+ "Power of Attorney": {
75
+ 'Auto and Car Accidents': 'Injured in a Car Accident',
76
+ 'Personal Injury': 'Personal or Workplace Injury',
77
+ 'DUI and DWI': 'Involved in a DUI/DWI',
78
+ 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
79
+ 'Divorce and Separation': 'Need a Divorce or Separation',
80
+ 'Child Custody': 'Need help with Child Custody',
81
+ },
82
+ "Long Term Disability": {
83
+ 'Auto and Car Accidents': 'Injured in a Car Accident',
84
+ 'DUI and DWI': 'Involved in a DUI/DWI',
85
+ 'Wills and Trusts': 'Need a Will or Trust',
86
+ 'Power of Attorney': 'Update Power of Attorney',
87
+ 'Divorce and Separation': 'Need a Divorce or Separation',
88
+ 'Child Custody': 'Need help with Child Custody',
89
+ },
90
+ "Social Security Disability and Insurance": {
91
+ 'Auto and Car Accidents': 'Injured in a Car Accident',
92
+ 'DUI and DWI': 'Involved in a DUI/DWI',
93
+ 'Wills and Trusts': 'Need a Will or Trust',
94
+ 'Power of Attorney': 'Update Power of Attorney',
95
+ 'Divorce and Separation': 'Need a Divorce or Separation',
96
+ 'Child Custody': 'Need help with Child Custody',
97
+ },
98
+ '*': defaultLegalImprovementCrossSells,
99
+ };
17
100
 
18
101
  // ------ Common Base Settings
19
102
 
@@ -230,6 +313,76 @@ const verticalDate = (updates) => {
230
313
  return date(updates)
231
314
  };
232
315
 
316
+ const email = (scope) => sbsText({
317
+ $formkit: 'email',
318
+ name: scope ? scope + ':' + 'Email' : 'Email',
319
+ label: 'Email Address:',
320
+ placeholder: 'email@domain.com',
321
+ autocomplete: 'email',
322
+ 'data-tf-sensitive': 'false',
323
+ validation: 'required|email',
324
+ validationMessages: {
325
+ required: 'Email is required',
326
+ email: 'Invalid Email'
327
+ }
328
+ });
329
+
330
+ const firstName = (scope) => sbsText({
331
+ label: 'First Name:',
332
+ placeholder: 'First',
333
+ name: scope ? scope + ':' + 'First_Name' : 'First_Name',
334
+ autocomplete: "given-name",
335
+ validationMessages: {
336
+ required: 'First Name is required'
337
+ }
338
+ });
339
+
340
+ const lastName = (scope) => sbsText({
341
+ label: 'Last Name:',
342
+ placeholder: 'Last',
343
+ name: scope ? scope + ':' + 'Last_Name' : 'Last_Name',
344
+ autocomplete: "family-name",
345
+ validationMessages: {
346
+ required: 'Last Name is required'
347
+ }
348
+ });
349
+
350
+ const phone = (scope) => sbsText({
351
+ $formkit: 'tel',
352
+ name: scope ? scope + ':' + 'Primary_Phone' : 'Primary_Phone',
353
+ label: 'Phone Number:',
354
+ placeholder: '###-###-####',
355
+ maxlength: 12,
356
+ help: '10-digit phone number, hyphens optional',
357
+ autocomplete: 'tel-national',
358
+ 'data-tf-sensitive': 'false',
359
+ validation: 'required|matches:/^[0-9]{3}-?[0-9]{3}-?[0-9]{4}$/|valid_phone',
360
+ validationMessages: {
361
+ required: 'Field is required',
362
+ matches: 'Invalid Phone Format, use ###-###-####',
363
+ valid_phone: 'Invalid Phone Number'
364
+ },
365
+ helpClass: "t-mt-2.5 md:t-text-right md:t-mt-[-2px]"
366
+ });
367
+
368
+ const zipcodeCenter = (updates = {}, scope) => text({
369
+ placeholder: '#####',
370
+ help: updates.help ?? "We try to match you with local help",
371
+ name: scope ? scope + ':' + 'Zip' : 'Zip',
372
+ maxlength: 5,
373
+ inputmode: "numeric",
374
+ autocomplete: 'postal-code',
375
+ validation: 'required|matches:/^[0-9]{5}$/',
376
+ validationMessages: {
377
+ required: 'Zip Code is required',
378
+ matches: 'Invalid Zip Code'
379
+ },
380
+ wrapperClass: 't-flex t-justify-center',
381
+ messagesClass: 't-flex t-justify-center',
382
+ inputClass: 't-text-center',
383
+ helpClass: 't-mt-2.5 !t-text-sm t-text-center'
384
+ });
385
+
233
386
  const applicantAge = (scope) => sbsText({
234
387
  name: scope ? scope + ':' + 'Applicant_Age' : 'Applicant_Age',
235
388
  label: 'Age of Applicant?',
@@ -417,20 +570,6 @@ const doctorTreatment = (scope) => sbsYesNoRadio({
417
570
  label: 'Have You Recently Been Treated by a Doctor, Hospital or Clinic?',
418
571
  });
419
572
 
420
- const email = (scope) => sbsText({
421
- $formkit: 'email',
422
- name: scope ? scope + ':' + 'Email' : 'Email',
423
- label: 'Email Address:',
424
- placeholder: 'email@domain.com',
425
- autocomplete: 'email',
426
- 'data-tf-sensitive': 'false',
427
- validation: 'required|email',
428
- validationMessages: {
429
- required: 'Email is required',
430
- email: 'Invalid Email'
431
- }
432
- });
433
-
434
573
  const estateLegalServicesNeeded = (scope) => sbsSelect({
435
574
  name: scope ? scope + ':' + 'Estate_Legal_Services_Needed' : 'Estate_Legal_Services_Needed',
436
575
  label: "Legal Services Needed for Your Estate:",
@@ -444,17 +583,6 @@ const estateLegalServicesNeeded = (scope) => sbsSelect({
444
583
  ]
445
584
  });
446
585
 
447
- const firstName = (scope) => sbsText({
448
- $formkit: 'text',
449
- label: 'First Name:',
450
- placeholder: 'First',
451
- name: scope ? scope + ':' + 'First_Name' : 'First_Name',
452
- autocomplete: "given-name",
453
- validationMessages: {
454
- required: 'First Name is required'
455
- }
456
- });
457
-
458
586
  const haveAttorney$1 = (scope) => sbsYesNoRadio({
459
587
  name: scope ? scope + ':' + 'Have_Attorney' : 'Have_Attorney',
460
588
  label: 'Already Working with An Attorney?'
@@ -478,17 +606,6 @@ const incidentDateCenter = (scope) => verticalDate({
478
606
  name: scope ? scope + ':' + 'Incident_Date' : 'Incident_Date',
479
607
  });
480
608
 
481
- const lastName = (scope) => sbsText({
482
- $formkit: 'text',
483
- label: 'Last Name:',
484
- placeholder: 'Last',
485
- name: scope ? scope + ':' + 'Last_Name' : 'Last_Name',
486
- autocomplete: "family-name",
487
- validationMessages: {
488
- required: 'Last Name is required'
489
- }
490
- });
491
-
492
609
  const lawyerPaymentMethod$1 = (scope) => sbsSelect({
493
610
  name: scope ? scope + ':' + 'Lawyer_Payment_Method' : 'Lawyer_Payment_Method',
494
611
  label: 'How Will You Pay for Legal Fees if You Hire a Lawyer?',
@@ -521,69 +638,7 @@ const legalCrossSells$1 = () => col2Checkbox({
521
638
  help: 'Just hit "Next" if none apply',
522
639
  helpClass: 't-text-center !t-text-sm',
523
640
  validation: null,
524
- options: {
525
- if: '$getVal($get(form), "Type_Of_Legal_Problem") === "Auto and Car Accidents"',
526
- then: {
527
- 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
528
- 'Wills and Trusts': 'Need a Will or Trust',
529
- 'Workers Compensation': 'Workplace Injury',
530
- 'Power of Attorney': 'Update Power of Attorney',
531
- 'Divorce and Separation': 'Need a Divorce or Separation',
532
- 'Child Custody': 'Need help with Child Custody',
533
- },
534
- else: {
535
- if: '$getVal($get(form), "Type_Of_Legal_Problem") === "Personal Injury" || $getVal($get(form), "Type_Of_Legal_Problem") === "Workers Compensation"',
536
- then: {
537
- 'DUI and DWI': 'Involved in a DUI/DWI',
538
- 'Wills and Trusts': 'Need a Will or Trust',
539
- 'Power of Attorney': 'Update Power of Attorney',
540
- 'Divorce and Separation': 'Need a Divorce or Separation',
541
- 'Child Custody': 'Need help with Child Custody',
542
- // TODO add one more?
543
- },
544
- else: {
545
- if: '$getVal($get(form), "Type_Of_Legal_Problem") === "DUI and DWI"',
546
- then: {
547
- 'Personal Injury': 'Personal or Workplace Injury',
548
- 'Wills and Trusts': 'Need a Will or Trust',
549
- 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
550
- 'Power of Attorney': 'Update Power of Attorney',
551
- 'Divorce and Separation': 'Need a Divorce or Separation',
552
- 'Child Custody': 'Need help with Child Custody',
553
- },
554
- else: {
555
- if: '$getVal($get(form), "Type_Of_Legal_Problem") === "Wills and Trusts" || $getVal($get(form), "Type_Of_Legal_Problem") === "Probate and Estates" || $getVal($get(form), "Type_Of_Legal_Problem") === "Power of Attorney"',
556
- then: {
557
- 'Auto and Car Accidents': 'Injured in a Car Accident',
558
- 'Personal Injury': 'Personal or Workplace Injury',
559
- 'DUI and DWI': 'Involved in a DUI/DWI',
560
- 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
561
- 'Divorce and Separation': 'Need a Divorce or Separation',
562
- 'Child Custody': 'Need help with Child Custody',
563
- },
564
- else: {
565
- if: '$getVal($get(form), "Type_Of_Legal_Problem") === "Long Term Disability" || $getVal($get(form), "Type_Of_Legal_Problem") === "Social Security Disability and Insurance"',
566
- then: {
567
- 'Auto and Car Accidents': 'Injured in a Car Accident',
568
- 'DUI and DWI': 'Involved in a DUI/DWI',
569
- 'Wills and Trusts': 'Need a Will or Trust',
570
- 'Power of Attorney': 'Update Power of Attorney',
571
- 'Divorce and Separation': 'Need a Divorce or Separation',
572
- 'Child Custody': 'Need help with Child Custody',
573
- },
574
- else: {
575
- 'Auto and Car Accidents': 'Injured in a Car Accident',
576
- 'Personal Injury': 'Personal or Workplace Injury',
577
- 'DUI and DWI': 'Involved in a DUI/DWI',
578
- 'Wills and Trusts': 'Need a Will or Trust',
579
- 'Power of Attorney': 'Update Power of Attorney',
580
- 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
581
- }
582
- }
583
- }
584
- }
585
- }
586
- }
641
+ options: '$getCrossSellOptions($get(form), $getVal($get(form), "Type_Of_Legal_Problem"))',
587
642
  });
588
643
 
589
644
  const maritalStatus = (scope) => sbsSelect({
@@ -608,24 +663,6 @@ const pendingChargesCenter = (scope) => verticalYesNoRadio({
608
663
  name: scope ? scope + ':' + 'Pending_Charges' : 'Pending_Charges',
609
664
  });
610
665
 
611
- const phone = (scope) => sbsText({
612
- $formkit: 'tel',
613
- name: scope ? scope + ':' + 'Primary_Phone' : 'Primary_Phone',
614
- label: 'Phone Number:',
615
- placeholder: '###-###-####',
616
- maxlength: 12,
617
- help: '10-digit phone number, hyphens optional',
618
- autocomplete: 'tel-national',
619
- 'data-tf-sensitive': 'false',
620
- validation: 'required|matches:/^[0-9]{3}-?[0-9]{3}-?[0-9]{4}$/|valid_phone',
621
- validationMessages: {
622
- required: 'Field is required',
623
- matches: 'Invalid Phone Format, use ###-###-####',
624
- valid_phone: 'Invalid Phone Number'
625
- },
626
- helpClass: "t-mt-2.5 md:t-text-right md:t-mt-[-2px]"
627
- });
628
-
629
666
  const primaryInjury = (scope) => sbs2ColRadio({
630
667
  name: scope ? scope + ':' + 'Primary_Injury' : 'Primary_Injury',
631
668
  label: 'Primary Injury:',
@@ -747,25 +784,6 @@ const valueOfAssets = (scope) => sbsSelect({
747
784
  ]
748
785
  });
749
786
 
750
- const zipcodeCenter = (updates = {}, scope) => text({
751
- placeholder: '#####',
752
- help: updates.help ?? "We try to match you with local legal help",
753
- name: scope ? scope + ':' + 'Zip' : 'Zip',
754
- maxlength: 5,
755
- inputmode: "numeric",
756
- autocomplete: 'postal-code',
757
- validation: 'required|matches:/^[0-9]{5}$/',
758
- validationMessages: {
759
- required: 'Zip Code is required',
760
- matches: 'Invalid Zip Code'
761
- },
762
- wrapperClass: 't-flex t-justify-center',
763
- messagesClass: 't-flex t-justify-center',
764
- inputClass: 't-text-center',
765
- helpClass: 't-mt-2.5 !t-text-sm t-text-center'
766
- });
767
-
768
-
769
787
  // ------ Question Groups
770
788
 
771
789
  // NOTE: name must be unique within a form!
@@ -1029,13 +1047,20 @@ function verticalStepSubHeadline(updates) {
1029
1047
  function commentsStepHeadline(updates) {
1030
1048
  return {
1031
1049
  $el: 'h3',
1032
- children: updates.headline || 'Additional Case Details',
1050
+ children: updates.headline || 'Additional Details',
1033
1051
  attrs: {
1034
1052
  class: 't-flex t-justify-center t-text-center t-text-2xl t-font-bold t-text-blue-500 t-pb-5 t-pt-0 t-px-1' + ' ' + (updates.headlineClass || '')
1035
1053
  }
1036
1054
  }
1037
1055
  }
1038
1056
 
1057
+ function commentsStepHeadlineLegal(updates) {
1058
+ return commentsStepHeadline({
1059
+ headline: updates.headline || 'Additional Case Details',
1060
+ headlineClass: updates.headlineClass
1061
+ })
1062
+ }
1063
+
1039
1064
  function firstAndLastStepHeadline(updates) {
1040
1065
  return {
1041
1066
  $el: 'h3',
@@ -1059,7 +1084,7 @@ function legalCrossSellsStepHeadline(updates) {
1059
1084
  function contactStepHeadline(updates) {
1060
1085
  return {
1061
1086
  $el: 'h3',
1062
- children: updates.headline || DEFAULT_FINAL_HEADLINE_DYNAMIC,
1087
+ children: updates.headline || DEFAULT_FINAL_HEADLINE_DYNAMIC_LEGAL,
1063
1088
  attrs: {
1064
1089
  class: 't-flex t-justify-center t-text-center t-text-2xl t-font-bold t-text-blue-500 t-pb-3 t-pt-0 t-px-1' + ' ' + (updates.headlineClass || '')
1065
1090
  }
@@ -1069,7 +1094,7 @@ function contactStepHeadline(updates) {
1069
1094
  function contactStepSubHeadline(updates) {
1070
1095
  return {
1071
1096
  $el: 'h5',
1072
- children: updates.subheadline || DEFAULT_FINAL_SUBHEADLINE_DYNAMIC,
1097
+ children: updates.subheadline || DEFAULT_FINAL_SUBHEADLINE_DYNAMIC_LEGAL,
1073
1098
  attrs: {
1074
1099
  class: 't-flex t-justify-center t-text-center !t-text-lg t-font-semibold t-pb-7 t-pt-0 t-px-3' + ' ' + (updates.subheadlineClass || '')
1075
1100
  }
@@ -1109,10 +1134,16 @@ const stepDefaults = (step, stepKey) => ({
1109
1134
  }
1110
1135
  });
1111
1136
 
1112
- function step(name, inputs, nextOnEnter = true, nextOnInput = false, stepKey = undefined, nextStepMap = undefined, autoFocus = undefined) {
1113
- if (typeof nextOnEnter === 'undefined') {
1114
- nextOnEnter = true;
1115
- }
1137
+ function step(name, inputs, updates = {}) {
1138
+ const {
1139
+ nextOnEnter = true,
1140
+ nextOnInput = false,
1141
+ stepKey = undefined,
1142
+ nextStepMap = undefined,
1143
+ triggerRedirectMap = undefined,
1144
+ autoFocus = undefined,
1145
+ } = updates;
1146
+
1116
1147
  if (inputs && inputs.length && (nextOnEnter || nextOnInput)) {
1117
1148
  const lastInput = findLastInput(inputs[inputs.length - 1]);
1118
1149
  if (lastInput && nextOnEnter === true) {
@@ -1132,6 +1163,7 @@ function step(name, inputs, nextOnEnter = true, nextOnInput = false, stepKey = u
1132
1163
  id: name,
1133
1164
  name: name,
1134
1165
  nextStepMap: nextStepMap,
1166
+ triggerRedirectMap: triggerRedirectMap,
1135
1167
  autoFocus: autoFocus,
1136
1168
  children: inputs
1137
1169
  }
@@ -1142,16 +1174,61 @@ function step(name, inputs, nextOnEnter = true, nextOnInput = false, stepKey = u
1142
1174
 
1143
1175
  // Single question step
1144
1176
  function sqstep(name, input, defaultHeadline, updates = {}) {
1177
+ if (typeof updates.nextOnInput === 'undefined') {
1178
+ updates.nextOnInput = true;
1179
+ }
1180
+
1145
1181
  return step(
1146
1182
  name,
1147
1183
  [
1148
1184
  verticalStepHeadline({ headline: updates.headline ?? defaultHeadline, headlineClass: updates.headlineClass }),
1149
1185
  ...Array.isArray(input) ? input : [input],
1150
1186
  ],
1151
- updates.nextOnEnter,
1152
- typeof updates.nextOnInput === 'undefined' ? true : updates.nextOnInput,
1153
- updates.stepKey,
1154
- updates.nextStepMap
1187
+ updates
1188
+ )
1189
+ }
1190
+
1191
+ function contactInfo(updates = {}) {
1192
+ return step(
1193
+ 'contactInfo',
1194
+ [
1195
+ contactStepHeadline(updates),
1196
+ contactStepSubHeadline(updates),
1197
+ trustedFormScript(),
1198
+ email(updates.scope),
1199
+ phone(updates.scope),
1200
+ TCPAConsent(updates.scope),
1201
+ secureIcon()
1202
+ ],
1203
+ { nextOnEnter: false }
1204
+ )
1205
+ }
1206
+
1207
+ function firstAndLastV3(updates = {}, scope) {
1208
+ return step(
1209
+ 'firstAndLast',
1210
+ [
1211
+ firstAndLastStepHeadline({
1212
+ headline: updates.headline ?? 'Who is looking for help?',
1213
+ headlineClass: updates.headlineClass
1214
+ }),
1215
+ verticalStepSubHeadline({
1216
+ subheadline: updates.subheadline ?? 'Note: we never share info without consent',
1217
+ subheadlineClass: '!t-text-sm !t-text-gray-500'
1218
+ }),
1219
+ firstName(scope),
1220
+ lastName(scope)
1221
+ ],
1222
+ updates
1223
+ )
1224
+ }
1225
+
1226
+ function zipcode(updates = {}) {
1227
+ return sqstep(
1228
+ 'zipcode',
1229
+ zipcodeCenter(updates, updates.scope),
1230
+ 'Please verify your Zip Code',
1231
+ updates
1155
1232
  )
1156
1233
  }
1157
1234
 
@@ -1159,10 +1236,10 @@ function commentsWithBankruptcy(updates = {}) {
1159
1236
  return step(
1160
1237
  'commentsWithBankruptcy',
1161
1238
  [
1162
- commentsStepHeadline(updates),
1239
+ commentsStepHeadlineLegal(updates),
1163
1240
  comments({
1164
- label: typeof updates.label === 'undefined' ? DEFAULT_COMMENTS_LABEL : updates.label,
1165
- placeholder: updates.placeholder || DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC,
1241
+ label: typeof updates.label === 'undefined' ? DEFAULT_COMMENTS_LABEL_LEGAL : updates.label,
1242
+ placeholder: updates.placeholder || DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC_LEGAL,
1166
1243
  inputClass: typeof updates.inputClass === 'undefined' ? '!t-h-32' : updates.inputClass,
1167
1244
  }, updates.scope),
1168
1245
  // TODO: needs scope support
@@ -1179,23 +1256,7 @@ function commentsWithBankruptcy(updates = {}) {
1179
1256
  ],
1180
1257
  }
1181
1258
  ],
1182
- false // nextOnEnter
1183
- )
1184
- }
1185
-
1186
- function contactInfo(updates = {}) {
1187
- return step(
1188
- 'contactInfo',
1189
- [
1190
- contactStepHeadline(updates),
1191
- contactStepSubHeadline(updates),
1192
- trustedFormScript(),
1193
- email(updates.scope),
1194
- phone(updates.scope),
1195
- TCPAConsent(updates.scope),
1196
- secureIcon()
1197
- ],
1198
- false, // nextOnEnter
1259
+ { nextOnEnter: false }
1199
1260
  )
1200
1261
  }
1201
1262
 
@@ -1211,33 +1272,10 @@ function criminalTOLP(updates = {}) {
1211
1272
  },
1212
1273
  criminalTOLPDisplayCenter(),
1213
1274
  ],
1214
- updates.nextOnEnter,
1215
- updates.nextOnInput,
1216
- updates.stepKey,
1217
- updates.nextStepMap
1218
- )
1219
- }
1220
-
1221
- function firstAndLastV3(updates = {}, scope) {
1222
- return step(
1223
- 'firstAndLast',
1224
- [
1225
- firstAndLastStepHeadline({
1226
- headline: updates.headline ?? 'Who is looking for help?',
1227
- headlineClass: updates.headlineClass
1228
- }),
1229
- verticalStepSubHeadline({
1230
- subheadline: updates.subheadline ?? 'Note: we never share info without consent',
1231
- subheadlineClass: '!t-text-sm !t-text-gray-500'
1232
- }),
1233
- firstName(scope),
1234
- lastName(scope)
1235
- ],
1236
- updates.nextOnEnter
1275
+ updates
1237
1276
  )
1238
1277
  }
1239
1278
 
1240
-
1241
1279
  function autoAndCarAccidentCrossSellQuestions(updates = {}) {
1242
1280
  return step(
1243
1281
  'autoAndCarAccidentCrossSellQuestions',
@@ -1254,7 +1292,7 @@ function autoAndCarAccidentCrossSellQuestions(updates = {}) {
1254
1292
  'CrossSell:Auto_and_Car_Accidents'
1255
1293
  )
1256
1294
  ],
1257
- updates.nextOnEnter
1295
+ updates
1258
1296
  )
1259
1297
  }
1260
1298
 
@@ -1273,7 +1311,7 @@ function childCustodyCrossSellQuestions(updates = {}) {
1273
1311
  'CrossSell:Child_Custody'
1274
1312
  )
1275
1313
  ],
1276
- updates.nextOnEnter
1314
+ updates
1277
1315
  )
1278
1316
  }
1279
1317
 
@@ -1292,7 +1330,7 @@ function divorceAndSeparationCrossSellQuestions(updates = {}) {
1292
1330
  'CrossSell:Divorce_and_Separation'
1293
1331
  )
1294
1332
  ],
1295
- updates.nextOnEnter
1333
+ updates
1296
1334
  )
1297
1335
  }
1298
1336
 
@@ -1311,7 +1349,7 @@ function duiAndDWICrossSellQuestions(updates = {}) {
1311
1349
  'CrossSell:DUI_and_DWI'
1312
1350
  )
1313
1351
  ],
1314
- updates.nextOnEnter
1352
+ updates
1315
1353
  )
1316
1354
  }
1317
1355
 
@@ -1331,7 +1369,7 @@ function ssdiCrossSellQuestions(updates = {}) {
1331
1369
  'CrossSell:Social_Security_Disability_and_Insurance'
1332
1370
  )
1333
1371
  ],
1334
- updates.nextOnEnter
1372
+ updates
1335
1373
  )
1336
1374
  }
1337
1375
 
@@ -1351,7 +1389,7 @@ function personalInjuryCrossSellQuestions(updates = {}) {
1351
1389
  'CrossSell:Personal_Injury'
1352
1390
  )
1353
1391
  ],
1354
- updates.nextOnEnter
1392
+ updates
1355
1393
  )
1356
1394
  }
1357
1395
 
@@ -1370,7 +1408,7 @@ function powerOfAttorneyCrossSellQuestions(updates = {}) {
1370
1408
  'CrossSell:Power_of_Attorney'
1371
1409
  )
1372
1410
  ],
1373
- updates.nextOnEnter
1411
+ updates
1374
1412
  )
1375
1413
  }
1376
1414
 
@@ -1389,7 +1427,7 @@ function willsAndTrustsCrossSellQuestions(updates = {}) {
1389
1427
  'CrossSell:Wills_and_Trusts'
1390
1428
  )
1391
1429
  ],
1392
- updates.nextOnEnter
1430
+ updates
1393
1431
  )
1394
1432
  }
1395
1433
 
@@ -1409,29 +1447,19 @@ function workersCompensationCrossSellQuestions(updates = {}) {
1409
1447
  'CrossSell:Workers_Compensation'
1410
1448
  )
1411
1449
  ],
1412
- updates.nextOnEnter
1450
+ updates
1413
1451
  )
1414
1452
  }
1415
1453
 
1416
1454
  function legalCrossSells(updates = {}) {
1455
+ updates.nextOnInput = false;
1456
+ updates.stepKey = '$get(Type_Of_Legal_Problem).value';
1417
1457
  return step(
1418
1458
  'legalCrossSells',
1419
1459
  [
1420
1460
  legalCrossSellsStepHeadline(updates),
1421
1461
  legalCrossSells$1(),
1422
1462
  ],
1423
- updates.nextOnEnter,
1424
- false,
1425
- // Note: we should probably scope this stepKey to this step name
1426
- '$get(Type_Of_Legal_Problem).value'
1427
- )
1428
- }
1429
-
1430
- function zipcode(updates = {}) {
1431
- return sqstep(
1432
- 'zipcode',
1433
- zipcodeCenter(updates, updates.scope),
1434
- 'Please verify your Zip Code',
1435
1463
  updates
1436
1464
  )
1437
1465
  }
@@ -1683,9 +1711,7 @@ function formProps(updates) {
1683
1711
  return props
1684
1712
  }
1685
1713
 
1686
- const metaDefaults = {
1687
- tcpaLanguage: TCPA_LANGUAGE
1688
- };
1714
+ const metaDefaults = {};
1689
1715
 
1690
1716
  function metaProps(updates) {
1691
1717
  const data = merge(
@@ -1698,7 +1724,7 @@ function metaProps(updates) {
1698
1724
  }
1699
1725
  }
1700
1726
 
1701
- function defaultMetaProps(tolps = null) {
1727
+ function defaultMetaPropsLegal(tolps = null) {
1702
1728
  let commentsPlaceholders = TOLPCommentsPlaceholders;
1703
1729
  let finalHeadlines = TOLPFinalHeadlines;
1704
1730
  let finalSubHeadlines = TOLPFinalSubHeadlines;
@@ -1708,12 +1734,13 @@ function defaultMetaProps(tolps = null) {
1708
1734
  finalSubHeadlines = filterMapByKey(TOLPFinalSubHeadlines, tolps);
1709
1735
  }
1710
1736
  return metaProps({
1711
- defaultCommentsPlaceholder: DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC,
1737
+ tcpaLanguage: TCPA_LANGUAGE_LEGAL,
1738
+ defaultCommentsPlaceholder: DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC_LEGAL,
1712
1739
  commentsPlaceholders: commentsPlaceholders,
1713
- defaultFinalHeadline: DEFAULT_FINAL_HEADLINE,
1740
+ defaultFinalHeadline: DEFAULT_FINAL_HEADLINE_LEGAL,
1714
1741
  finalHeadlines: finalHeadlines,
1715
- defaultFinalSubHeadline: DEFAULT_FINAL_SUBHEADLINE,
1716
- finalSubHeadlines: finalSubHeadlines,
1742
+ defaultFinalSubHeadline: DEFAULT_FINAL_SUBHEADLINE_LEGAL,
1743
+ finalSubHeadlines: finalSubHeadlines
1717
1744
  })
1718
1745
  }
1719
1746
 
@@ -2282,361 +2309,401 @@ const nextStepsLegalNoHA = [
2282
2309
  ];
2283
2310
 
2284
2311
  const nextStepsMapGeneralLegal = {
2285
- 'Type_Of_Legal_Problem': {
2286
- 'Adoption': [
2287
- 'maritalStatus',
2288
- 'haveChildren',
2289
- ...nextStepsLegalDefaultLPM
2290
- ],
2291
- 'Asbestos and Mesothelioma': [
2292
- 'incidentDate',
2293
- 'doctorTreatment',
2294
- ...nextStepsLegalDefault
2295
- ],
2296
- 'Auto and Car Accidents': [
2297
- 'incidentDate',
2298
- 'atFault',
2299
- 'primaryInjury',
2300
- 'doctorTreatment',
2301
- 'policeReportFiled',
2302
- ...nextStepsLegalNoDOI
2303
- ],
2304
- 'Bankruptcy': [
2305
- 'totalMonthlyIncome',
2306
- 'totalDebt',
2307
- 'ownRealEstate',
2308
- 'valueOfAssets',
2309
- ...nextStepsLegalDefault
2310
- ],
2311
- 'Business Lawyers': [
2312
- 'businessServices',
2313
- 'businessType',
2314
- 'numEmployeesOfBusiness',
2315
- ...nextStepsLegalDefault
2316
- ],
2317
- 'Child Custody': [
2318
- 'childRelationship',
2319
- 'childHome',
2320
- 'childPrimaryCaregiver',
2321
- ...nextStepsLegalDefaultLPM
2322
- ],
2323
- 'Child Support': [
2324
- 'childRelationship',
2325
- 'childHome',
2326
- 'childPrimaryCaregiver',
2327
- ...nextStepsLegalDefaultLPM
2328
- ],
2329
- 'Civil Rights and Discrimination': [
2330
- 'civilRightsType',
2331
- ...nextStepsLegalDefault
2332
- ],
2333
- 'Civil Lawsuit': [
2334
- 'civilDefense',
2335
- 'lawsuitOtherParty',
2336
- ...nextStepsLegalDefault
2337
- ],
2338
- 'File a Lawsuit': [
2339
- 'civilLawsuitTOLPDisplay',
2340
- 'lawsuitOtherParty',
2341
- ...nextStepsLegalDefault
2342
- ],
2343
- 'Defend a Lawsuit': [
2312
+ values: {
2313
+ 'Type_Of_Legal_Problem': {
2314
+ 'Adoption': [
2315
+ 'maritalStatus',
2316
+ 'haveChildren',
2317
+ ...nextStepsLegalDefaultLPM
2318
+ ],
2319
+ 'Asbestos and Mesothelioma': [
2320
+ 'incidentDate',
2321
+ 'doctorTreatment',
2322
+ ...nextStepsLegalDefault
2323
+ ],
2324
+ 'Auto and Car Accidents': [
2325
+ 'incidentDate',
2326
+ 'atFault',
2327
+ 'primaryInjury',
2328
+ 'doctorTreatment',
2329
+ 'policeReportFiled',
2330
+ ...nextStepsLegalNoDOI
2331
+ ],
2332
+ 'Bankruptcy': [
2333
+ 'totalMonthlyIncome',
2334
+ 'totalDebt',
2335
+ 'ownRealEstate',
2336
+ 'valueOfAssets',
2337
+ ...nextStepsLegalDefault
2338
+ ],
2339
+ 'Business Lawyers': [
2340
+ 'businessServices',
2341
+ 'businessType',
2342
+ 'numEmployeesOfBusiness',
2343
+ ...nextStepsLegalDefault
2344
+ ],
2345
+ 'Child Custody': [
2346
+ 'childRelationship',
2347
+ 'childHome',
2348
+ 'childPrimaryCaregiver',
2349
+ ...nextStepsLegalDefaultLPM
2350
+ ],
2351
+ 'Child Support': [
2352
+ 'childRelationship',
2353
+ 'childHome',
2354
+ 'childPrimaryCaregiver',
2355
+ ...nextStepsLegalDefaultLPM
2356
+ ],
2357
+ 'Civil Rights and Discrimination': [
2358
+ 'civilRightsType',
2359
+ ...nextStepsLegalDefault
2360
+ ],
2361
+ 'Civil Lawsuit': [
2362
+ 'civilDefense',
2363
+ 'lawsuitOtherParty',
2364
+ ...nextStepsLegalDefault
2365
+ ],
2366
+ 'File a Lawsuit': [
2367
+ 'civilLawsuitTOLPDisplay',
2368
+ 'lawsuitOtherParty',
2369
+ ...nextStepsLegalDefault
2370
+ ],
2371
+ 'Defend a Lawsuit': [
2372
+ 'lawsuitOtherParty',
2373
+ ...nextStepsLegalDefault
2374
+ ],
2375
+ 'Consumer Lawyers': [
2376
+ 'consumerLawyerType',
2377
+ 'incidentDate',
2378
+ 'lawsuitOtherParty',
2379
+ ...nextStepsLegalDefault
2380
+ ],
2381
+ 'Criminal and Felony': [
2382
+ 'criminalTOLPDisplay',
2383
+ 'crimeCommittedDate',
2384
+ 'roleInMatterCriminal',
2385
+ 'pendingCharges',
2386
+ ...nextStepsLegalDefaultLPM
2387
+ ],
2388
+ 'Debt and Collections': [
2389
+ 'totalMonthlyIncome',
2390
+ 'totalDebt',
2391
+ 'ownRealEstate',
2392
+ 'valueOfAssets',
2393
+ ...nextStepsLegalDefault
2394
+ ],
2395
+ 'Divorce and Separation': [
2396
+ 'maritalStatus',
2397
+ 'haveChildren',
2398
+ ...nextStepsLegalDefaultLPM
2399
+ ],
2400
+ 'DUI and DWI': [
2401
+ 'incidentDate',
2402
+ 'priorAlcoholOffenses',
2403
+ 'typeOfAlcoholTest',
2404
+ 'bloodContentAlcoholTest',
2405
+ 'pendingCharges',
2406
+ ...nextStepsLegalDefault
2407
+ ],
2408
+ 'Employment and Workplace': [
2409
+ 'employmentAndWorkplaceTOLPDisplay',
2410
+ 'numEmployeesOfBusiness',
2411
+ 'employerType',
2412
+ 'employeeAtCompany',
2413
+ ...nextStepsLegalDefault
2414
+ ],
2415
+ 'Expungement': [
2416
+ 'incidentDate',
2417
+ 'criminalChargeType',
2418
+ ...nextStepsLegalDefaultLPM
2419
+ ],
2420
+ 'Family Issues': [
2421
+ 'maritalStatus',
2422
+ 'haveChildren',
2423
+ ...nextStepsLegalDefaultLPM
2424
+ ],
2425
+ 'Foreclosure': [
2426
+ 'ownRealEstate',
2427
+ 'typeOfProperty',
2428
+ 'amountPaymentsPastDue',
2429
+ 'loanAmount',
2430
+ 'defaultNotice',
2431
+ ...nextStepsLegalDefault
2432
+ ],
2433
+ 'Guardianship': [
2434
+ 'maritalStatus',
2435
+ 'haveChildren',
2436
+ ...nextStepsLegalDefaultLPM
2437
+ ],
2438
+ 'Immigration and Visas': [
2439
+ 'countryOfCitizenship',
2440
+ 'immigrationLocation',
2441
+ 'immigrationEntry',
2442
+ 'immigrationType',
2443
+ 'immigrationStatus',
2444
+ 'immigrationDetails',
2445
+ ...nextStepsLegalDefault
2446
+ ],
2447
+ 'Landlord and Tenant': [
2448
+ 'landlordTenantIssue',
2449
+ 'landlordTenantParty',
2450
+ ...nextStepsLegalDefault
2451
+ ],
2452
+ 'Lemon Law': [
2453
+ 'incidentDate',
2454
+ 'lawsuitOtherParty',
2455
+ ...nextStepsLegalDefault
2456
+ ],
2457
+ 'Long Term Disability': [
2458
+ 'applicantOccupation',
2459
+ 'applicantAge',
2460
+ 'applicantLTDisabilityPolicy',
2461
+ 'applicantDisabilityHowObtain',
2462
+ 'applicantPreviouslyAppliedLtdBenefits',
2463
+ 'applicantReceivedDisabilityBenefits',
2464
+ 'applicantMonthlySalary',
2465
+ ...nextStepsLegalNoDOI
2466
+ ],
2467
+ 'Medical Malpractice': [
2468
+ 'incidentDate',
2469
+ 'claimStatus',
2470
+ 'doctorTreatment',
2471
+ 'medicalMalpracticeInjuries',
2472
+ ...nextStepsLegalDefault
2473
+ ],
2474
+ 'Patents and Intellectual Property': [
2475
+ 'patentAssistanceType',
2476
+ 'patentFor',
2477
+ ...nextStepsLegalDefault
2478
+ ],
2479
+ 'Personal Injury': [
2480
+ 'incidentDate',
2481
+ 'claimStatus',
2482
+ 'atFault',
2483
+ 'primaryInjury',
2484
+ 'doctorTreatment',
2485
+ ...nextStepsLegalNoDOI
2486
+ ],
2487
+ 'Probate and Estates': [
2488
+ 'valueOfAssets',
2489
+ 'typeOfAssets',
2490
+ 'roleInMatterProbate',
2491
+ 'estateLegalServicesNeeded',
2492
+ ...nextStepsLegalDefault
2493
+ ],
2494
+ 'Property Damage': [
2495
+ 'realEstateArea',
2496
+ 'wouldLikeLawyerTo',
2497
+ ...nextStepsLegalDefault
2498
+ ],
2499
+ 'Real Estate': [
2500
+ 'realEstateTOLPDisplay',
2501
+ 'realEstateArea',
2502
+ 'wouldLikeLawyerTo',
2503
+ ...nextStepsLegalDefault
2504
+ ],
2505
+ 'Social Security Disability and Insurance': [
2506
+ 'applicantAge',
2507
+ 'disabilityConditionStopWork',
2508
+ 'disabilityWorkHistory',
2509
+ 'socialSecurityDisabilityReceivingBenefits',
2510
+ 'doctorTreatment',
2511
+ ...nextStepsLegalNoDOI
2512
+ ],
2513
+ 'Tax and IRS': [
2514
+ 'totalDebt',
2515
+ 'taxProblemDetails',
2516
+ 'taxLevel',
2517
+ 'taxIssueType',
2518
+ ...nextStepsLegalDefault
2519
+ ],
2520
+ 'Traffic and Tickets': [
2521
+ 'driversLicenseType',
2522
+ 'trafficViolations',
2523
+ 'haveCourtDate',
2524
+ ...nextStepsLegalDefault
2525
+ ],
2526
+ 'Unemployment': [
2527
+ 'numEmployeesOfBusiness',
2528
+ 'employerType',
2529
+ ...nextStepsLegalNoHA
2530
+ ],
2531
+ 'Victim of a Crime': [
2532
+ 'crimeCommittedDate',
2533
+ 'roleInMatterCriminal',
2534
+ 'pendingCharges',
2535
+ ...nextStepsLegalDefaultLPM
2536
+ ],
2537
+ 'Wills and Trusts': [
2538
+ 'valueOfAssets',
2539
+ 'typeOfAssets',
2540
+ 'roleInMatterProbate',
2541
+ 'estateLegalServicesNeeded',
2542
+ ...nextStepsLegalDefault
2543
+ ],
2544
+ 'Workers Compensation': [
2545
+ 'incidentDate',
2546
+ 'claimStatus',
2547
+ 'primaryInjury',
2548
+ 'causeOfInjury',
2549
+ 'doctorTreatment',
2550
+ ...nextStepsLegalNoDOI
2551
+ ],
2552
+ 'Workplace Harassment': [
2553
+ 'numEmployeesOfBusiness',
2554
+ 'employerType',
2555
+ 'employeeAtCompany',
2556
+ ...nextStepsLegalDefault
2557
+ ],
2558
+ 'Workplace Discrimination': [
2559
+ 'numEmployeesOfBusiness',
2560
+ 'employerType',
2561
+ 'employeeAtCompany',
2562
+ ...nextStepsLegalDefault
2563
+ ],
2564
+ 'Wrongful Death': [
2565
+ 'incidentDate',
2566
+ 'relationshipToVictim',
2567
+ 'criminalChargesFiled',
2568
+ 'causeOfDeath',
2569
+ ...nextStepsLegalNoDOI
2570
+ ],
2571
+ 'Wrongful Termination': [
2572
+ 'numEmployeesOfBusiness',
2573
+ 'employerType',
2574
+ ...nextStepsLegalDefault
2575
+ ],
2576
+ },
2577
+ '*': nextStepsLegalDefault
2578
+ }
2579
+ };
2580
+
2581
+ const TOLPNextSteps = nextStepsMapGeneralLegal["values"]["Type_Of_Legal_Problem"];
2582
+
2583
+ ({
2584
+ values: {
2585
+ 'Civil_Defense': {
2586
+ 'Yes': TOLPNextSteps["Defend a Lawsuit"],
2587
+ 'No': TOLPNextSteps["File a Lawsuit"],
2588
+ },
2589
+ '*': [
2344
2590
  'lawsuitOtherParty',
2345
2591
  ...nextStepsLegalDefault
2346
- ],
2347
- 'Consumer Lawyers': [
2348
- 'consumerLawyerType',
2349
- 'incidentDate',
2592
+ ]
2593
+ }
2594
+ });
2595
+
2596
+ ({
2597
+ values: {
2598
+ 'Type_Of_Legal_Problem': {
2599
+ 'Defend a Lawsuit': TOLPNextSteps["Defend a Lawsuit"],
2600
+ 'File a Lawsuit': TOLPNextSteps["File a Lawsuit"],
2601
+ },
2602
+ '*': [
2350
2603
  'lawsuitOtherParty',
2351
2604
  ...nextStepsLegalDefault
2352
- ],
2353
- 'Criminal and Felony': [
2354
- 'criminalTOLPDisplay',
2355
- 'crimeCommittedDate',
2356
- 'roleInMatterCriminal',
2357
- 'pendingCharges',
2358
- ...nextStepsLegalDefaultLPM
2359
- ],
2360
- 'Debt and Collections': [
2361
- 'totalMonthlyIncome',
2362
- 'totalDebt',
2363
- 'ownRealEstate',
2364
- 'valueOfAssets',
2365
- ...nextStepsLegalDefault
2366
- ],
2367
- 'Divorce and Separation': [
2368
- 'maritalStatus',
2369
- 'haveChildren',
2370
- ...nextStepsLegalDefaultLPM
2371
- ],
2372
- 'DUI and DWI': [
2373
- 'incidentDate',
2374
- 'priorAlcoholOffenses',
2375
- 'typeOfAlcoholTest',
2376
- 'bloodContentAlcoholTest',
2377
- 'pendingCharges',
2378
- ...nextStepsLegalDefault
2379
- ],
2380
- 'Employment and Workplace': [
2381
- 'employmentAndWorkplaceTOLPDisplay',
2382
- 'numEmployeesOfBusiness',
2383
- 'employerType',
2384
- 'employeeAtCompany',
2385
- ...nextStepsLegalDefault
2386
- ],
2387
- 'Expungement': [
2388
- 'incidentDate',
2389
- 'criminalChargeType',
2390
- ...nextStepsLegalDefaultLPM
2391
- ],
2392
- 'Family Issues': [
2393
- 'maritalStatus',
2394
- 'haveChildren',
2395
- ...nextStepsLegalDefaultLPM
2396
- ],
2397
- 'Foreclosure': [
2398
- 'ownRealEstate',
2399
- 'typeOfProperty',
2400
- 'amountPaymentsPastDue',
2401
- 'loanAmount',
2402
- 'defaultNotice',
2403
- ...nextStepsLegalDefault
2404
- ],
2405
- 'Guardianship': [
2406
- 'maritalStatus',
2407
- 'haveChildren',
2408
- ...nextStepsLegalDefaultLPM
2409
- ],
2410
- 'Immigration and Visas': [
2411
- 'countryOfCitizenship',
2412
- 'immigrationLocation',
2413
- 'immigrationEntry',
2414
- 'immigrationType',
2415
- 'immigrationStatus',
2416
- 'immigrationDetails',
2417
- ...nextStepsLegalDefault
2418
- ],
2419
- 'Landlord and Tenant': [
2420
- 'landlordTenantIssue',
2421
- 'landlordTenantParty',
2422
- ...nextStepsLegalDefault
2423
- ],
2424
- 'Lemon Law': [
2425
- 'incidentDate',
2605
+ ]
2606
+ }
2607
+ });
2608
+
2609
+ ({
2610
+ values: {
2611
+ 'Type_Of_Legal_Problem_Display': {
2612
+ 'Automobile Accident': TOLPNextSteps["Auto and Car Accidents"],
2613
+ 'Contract Disputes': TOLPNextSteps["Business Lawyers"],
2614
+ 'Dog Bite': TOLPNextSteps["Personal Injury"],
2615
+ 'Employment and Workplace': TOLPNextSteps["Employment and Workplace"],
2616
+ 'Fraud': TOLPNextSteps["Consumer Lawyers"],
2617
+ 'Medical Malpractice': TOLPNextSteps["Medical Malpractice"],
2618
+ 'Personal Injury': TOLPNextSteps["Personal Injury"],
2619
+ 'Property Damage': TOLPNextSteps["Property Damage"],
2620
+ 'Real Estate': TOLPNextSteps["Real Estate"],
2621
+ 'Not Sure or Other': nextStepsMapGeneralLegal["values"]["*"],
2622
+ },
2623
+ '*': [
2426
2624
  'lawsuitOtherParty',
2427
2625
  ...nextStepsLegalDefault
2428
- ],
2429
- 'Long Term Disability': [
2430
- 'applicantOccupation',
2431
- 'applicantAge',
2432
- 'applicantLTDisabilityPolicy',
2433
- 'applicantDisabilityHowObtain',
2434
- 'applicantPreviouslyAppliedLtdBenefits',
2435
- 'applicantReceivedDisabilityBenefits',
2436
- 'applicantMonthlySalary',
2437
- ...nextStepsLegalNoDOI
2438
- ],
2439
- 'Medical Malpractice': [
2440
- 'incidentDate',
2441
- 'claimStatus',
2442
- 'doctorTreatment',
2443
- 'medicalMalpracticeInjuries',
2444
- ...nextStepsLegalDefault
2445
- ],
2446
- 'Patents and Intellectual Property': [
2447
- 'patentAssistanceType',
2448
- 'patentFor',
2449
- ...nextStepsLegalDefault
2450
- ],
2451
- 'Personal Injury': [
2452
- 'incidentDate',
2453
- 'claimStatus',
2454
- 'atFault',
2455
- 'primaryInjury',
2456
- 'doctorTreatment',
2457
- ...nextStepsLegalNoDOI
2458
- ],
2459
- 'Probate and Estates': [
2460
- 'valueOfAssets',
2461
- 'typeOfAssets',
2462
- 'roleInMatterProbate',
2463
- 'estateLegalServicesNeeded',
2464
- ...nextStepsLegalDefault
2465
- ],
2466
- 'Property Damage': [
2467
- 'realEstateArea',
2468
- 'wouldLikeLawyerTo',
2469
- ...nextStepsLegalDefault
2470
- ],
2471
- 'Real Estate': [
2472
- 'realEstateTOLPDisplay',
2473
- 'realEstateArea',
2474
- 'wouldLikeLawyerTo',
2475
- ...nextStepsLegalDefault
2476
- ],
2477
- 'Social Security Disability and Insurance': [
2478
- 'applicantAge',
2479
- 'disabilityConditionStopWork',
2480
- 'disabilityWorkHistory',
2481
- 'socialSecurityDisabilityReceivingBenefits',
2482
- 'doctorTreatment',
2483
- ...nextStepsLegalNoDOI
2484
- ],
2485
- 'Tax and IRS': [
2486
- 'totalDebt',
2487
- 'taxProblemDetails',
2488
- 'taxLevel',
2489
- 'taxIssueType',
2490
- ...nextStepsLegalDefault
2491
- ],
2492
- 'Traffic and Tickets': [
2493
- 'driversLicenseType',
2494
- 'trafficViolations',
2495
- 'haveCourtDate',
2496
- ...nextStepsLegalDefault
2497
- ],
2498
- 'Unemployment': [
2499
- 'numEmployeesOfBusiness',
2500
- 'employerType',
2501
- ...nextStepsLegalNoHA
2502
- ],
2503
- 'Victim of a Crime': [
2626
+ ]
2627
+ }
2628
+ });
2629
+
2630
+ const nextStepsMapCriminalTOLPDisplay = {
2631
+ values: {
2632
+ 'Type_Of_Legal_Problem_Display': {
2633
+ 'Victim of a Crime': TOLPNextSteps["Victim of a Crime"],
2634
+ 'DUI and DWI': TOLPNextSteps["DUI and DWI"],
2635
+ 'Expungement': TOLPNextSteps["Expungement"],
2636
+ 'Not Sure or Other': nextStepsMapGeneralLegal["values"]["*"],
2637
+ },
2638
+ '*': [
2504
2639
  'crimeCommittedDate',
2505
2640
  'roleInMatterCriminal',
2506
2641
  'pendingCharges',
2507
2642
  ...nextStepsLegalDefaultLPM
2508
- ],
2509
- 'Wills and Trusts': [
2510
- 'valueOfAssets',
2511
- 'typeOfAssets',
2512
- 'roleInMatterProbate',
2513
- 'estateLegalServicesNeeded',
2514
- ...nextStepsLegalDefault
2515
- ],
2516
- 'Workers Compensation': [
2517
- 'incidentDate',
2518
- 'claimStatus',
2519
- 'primaryInjury',
2520
- 'causeOfInjury',
2521
- 'doctorTreatment',
2522
- ...nextStepsLegalNoDOI
2523
- ],
2524
- 'Workplace Harassment': [
2525
- 'numEmployeesOfBusiness',
2526
- 'employerType',
2527
- 'employeeAtCompany',
2528
- ...nextStepsLegalDefault
2529
- ],
2530
- 'Workplace Discrimination': [
2643
+ ]
2644
+ }
2645
+ };
2646
+
2647
+ ({
2648
+ values: {
2649
+ 'Type_Of_Legal_Problem_Display': {
2650
+ 'Wrongful Termination': TOLPNextSteps["Wrongful Termination"],
2651
+ 'Workers Compensation': TOLPNextSteps["Workers Compensation"],
2652
+ 'Personal Injury': TOLPNextSteps["Personal Injury"],
2653
+ 'Unemployment': TOLPNextSteps["Unemployment"],
2654
+ },
2655
+ '*': [
2531
2656
  'numEmployeesOfBusiness',
2532
2657
  'employerType',
2533
2658
  'employeeAtCompany',
2534
2659
  ...nextStepsLegalDefault
2535
- ],
2536
- 'Wrongful Death': [
2537
- 'incidentDate',
2538
- 'relationshipToVictim',
2539
- 'criminalChargesFiled',
2540
- 'causeOfDeath',
2541
- ...nextStepsLegalNoDOI
2542
- ],
2543
- 'Wrongful Termination': [
2544
- 'numEmployeesOfBusiness',
2545
- 'employerType',
2546
- ...nextStepsLegalDefault
2547
- ],
2548
- },
2549
- '*': nextStepsLegalDefault
2550
- };
2551
-
2552
- const TOLPNextSteps = nextStepsMapGeneralLegal["Type_Of_Legal_Problem"];
2553
-
2554
- ({
2555
- 'Civil_Defense': {
2556
- 'Yes': TOLPNextSteps["Defend a Lawsuit"],
2557
- 'No': TOLPNextSteps["File a Lawsuit"],
2558
- },
2559
- '*': [
2560
- 'lawsuitOtherParty',
2561
- ...nextStepsLegalDefault
2562
- ]
2563
- });
2564
-
2565
- ({
2566
- 'Type_Of_Legal_Problem': {
2567
- 'Defend a Lawsuit': TOLPNextSteps["Defend a Lawsuit"],
2568
- 'File a Lawsuit': TOLPNextSteps["File a Lawsuit"],
2569
- },
2570
- '*': [
2571
- 'lawsuitOtherParty',
2572
- ...nextStepsLegalDefault
2573
- ]
2660
+ ]
2661
+ }
2574
2662
  });
2575
2663
 
2576
2664
  ({
2577
- 'Type_Of_Legal_Problem_Display': {
2578
- 'Automobile Accident': TOLPNextSteps["Auto and Car Accidents"],
2579
- 'Contract Disputes': TOLPNextSteps["Business Lawyers"],
2580
- 'Dog Bite': TOLPNextSteps["Personal Injury"],
2581
- 'Employment and Workplace': TOLPNextSteps["Employment and Workplace"],
2582
- 'Fraud': TOLPNextSteps["Consumer Lawyers"],
2583
- 'Medical Malpractice': TOLPNextSteps["Medical Malpractice"],
2584
- 'Personal Injury': TOLPNextSteps["Personal Injury"],
2585
- 'Property Damage': TOLPNextSteps["Property Damage"],
2586
- 'Real Estate': TOLPNextSteps["Real Estate"],
2587
- 'Not Sure or Other': nextStepsMapGeneralLegal["*"],
2588
- },
2589
- '*': [
2590
- 'lawsuitOtherParty',
2591
- ...nextStepsLegalDefault
2592
- ]
2665
+ values: {
2666
+ 'Type_Of_Legal_Problem_Display': {
2667
+ 'Foreclosure': TOLPNextSteps["Foreclosure"],
2668
+ 'Landlord and Tenant': TOLPNextSteps["Landlord and Tenant"],
2669
+ 'Wills, Trusts, and Estates': TOLPNextSteps["Wills and Trusts"],
2670
+ 'Property Damage': TOLPNextSteps['Property Damage'],
2671
+ },
2672
+ '*': [
2673
+ 'realEstateArea',
2674
+ 'wouldLikeLawyerTo',
2675
+ ...nextStepsLegalDefault
2676
+ ]
2677
+ }
2593
2678
  });
2594
2679
 
2595
- const nextStepsMapCriminalTOLPDisplay = {
2596
- 'Type_Of_Legal_Problem_Display': {
2597
- 'Victim of a Crime': TOLPNextSteps["Victim of a Crime"],
2598
- 'DUI and DWI': TOLPNextSteps["DUI and DWI"],
2599
- 'Expungement': TOLPNextSteps["Expungement"],
2600
- 'Not Sure or Other': nextStepsMapGeneralLegal["*"],
2680
+ const nextStepsMapLegalCrossSells = {
2681
+ values: {
2682
+ 'Legal_CrossSells': {
2683
+ 'Auto and Car Accidents': ['autoAndCarAccidentCrossSellQuestions'],
2684
+ 'Personal Injury': ['personalInjuryCrossSellQuestions'],
2685
+ 'Workers Compensation': ['workersCompensationCrossSellQuestions'],
2686
+ 'DUI and DWI': ['duiAndDWICrossSellQuestions'],
2687
+ 'Long Term Disability': ['longTermDisabilityCrossSellQuestions'],
2688
+ 'Social Security Disability and Insurance': ['ssdiCrossSellQuestions'],
2689
+ 'Bankruptcy': ['bankruptcyCrossSellQuestions'],
2690
+ 'Power of Attorney': ['powerOfAttorneyCrossSellQuestions'],
2691
+ 'Wills and Trusts': ['willsAndTrustsCrossSellQuestions'],
2692
+ 'Divorce and Separation': ['divorceAndSeparationCrossSellQuestions'],
2693
+ 'Child Custody': ['childCustodyCrossSellQuestions'],
2694
+ },
2695
+ '*': ['firstAndLast', 'contactInfo'],
2601
2696
  },
2602
- '*': [
2603
- 'crimeCommittedDate',
2604
- 'roleInMatterCriminal',
2605
- 'pendingCharges',
2606
- ...nextStepsLegalDefaultLPM
2607
- ]
2697
+
2698
+ // NOTE: this assumes a certain placement of the cross sell question
2699
+ // in the form flow.
2700
+ appendSteps: ['firstAndLast', 'contactInfo'],
2701
+ matchesAllowed: 1,
2608
2702
  };
2609
2703
 
2610
- ({
2611
- 'Type_Of_Legal_Problem_Display': {
2612
- 'Wrongful Termination': TOLPNextSteps["Wrongful Termination"],
2613
- 'Workers Compensation': TOLPNextSteps["Workers Compensation"],
2614
- 'Personal Injury': TOLPNextSteps["Personal Injury"],
2615
- 'Unemployment': TOLPNextSteps["Unemployment"],
2616
- },
2617
- '*': [
2618
- 'numEmployeesOfBusiness',
2619
- 'employerType',
2620
- 'employeeAtCompany',
2621
- ...nextStepsLegalDefault
2622
- ]
2623
- });
2704
+ const legalCrossSellOptionMap = CROSS_SELL_OPTION_MAP_LEGAL;
2624
2705
 
2625
- ({
2626
- 'Type_Of_Legal_Problem_Display': {
2627
- 'Foreclosure': TOLPNextSteps["Foreclosure"],
2628
- 'Landlord and Tenant': TOLPNextSteps["Landlord and Tenant"],
2629
- 'Wills, Trusts, and Estates': TOLPNextSteps["Wills and Trusts"],
2630
- 'Property Damage': TOLPNextSteps['Property Damage'],
2631
- },
2632
- '*': [
2633
- 'realEstateArea',
2634
- 'wouldLikeLawyerTo',
2635
- ...nextStepsLegalDefault
2636
- ]
2637
- });
2638
-
2639
- const meta = defaultMetaProps();
2706
+ const meta = defaultMetaPropsLegal();
2640
2707
 
2641
2708
  meta.data.dynamicSchema = [
2642
2709
  bloodContentAlcoholTest(),
@@ -2662,7 +2729,8 @@ meta.data.dynamicSchema = [
2662
2729
  headlineClass: '!t-text-dark',
2663
2730
  }),
2664
2731
  legalCrossSells({
2665
- headlineClass: '!t-text-dark'
2732
+ headlineClass: '!t-text-dark',
2733
+ nextStepMap: nextStepsMapLegalCrossSells,
2666
2734
  }),
2667
2735
  autoAndCarAccidentCrossSellQuestions(),
2668
2736
  personalInjuryCrossSellQuestions(),
@@ -2686,7 +2754,8 @@ const schema = [
2686
2754
  props: formProps({
2687
2755
  formId: 'criminal',
2688
2756
  redirectMap: legalRedirectMap(),
2689
- valueOverrideMap: legalAllValueOverrideMap
2757
+ valueOverrideMap: legalAllValueOverrideMap,
2758
+ crossSellOptionMap: legalCrossSellOptionMap
2690
2759
  }),
2691
2760
  children: [
2692
2761
  progressBar(),