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?',
@@ -464,20 +617,6 @@ const doctorTreatmentCenter = (scope) => verticalYesNoRadio({
464
617
  name: scope ? scope + ':' + 'Doctor_Treatment' : 'Doctor_Treatment',
465
618
  });
466
619
 
467
- const email = (scope) => sbsText({
468
- $formkit: 'email',
469
- name: scope ? scope + ':' + 'Email' : 'Email',
470
- label: 'Email Address:',
471
- placeholder: 'email@domain.com',
472
- autocomplete: 'email',
473
- 'data-tf-sensitive': 'false',
474
- validation: 'required|email',
475
- validationMessages: {
476
- required: 'Email is required',
477
- email: 'Invalid Email'
478
- }
479
- });
480
-
481
620
  const employerTypeCenter = () => col2RadioCenter({
482
621
  name: 'Employer_Type',
483
622
  options: [
@@ -508,17 +647,6 @@ const estateLegalServicesNeeded = (scope) => sbsSelect({
508
647
  ]
509
648
  });
510
649
 
511
- const firstName = (scope) => sbsText({
512
- $formkit: 'text',
513
- label: 'First Name:',
514
- placeholder: 'First',
515
- name: scope ? scope + ':' + 'First_Name' : 'First_Name',
516
- autocomplete: "given-name",
517
- validationMessages: {
518
- required: 'First Name is required'
519
- }
520
- });
521
-
522
650
  const haveAttorney$1 = (scope) => sbsYesNoRadio({
523
651
  name: scope ? scope + ':' + 'Have_Attorney' : 'Have_Attorney',
524
652
  label: 'Already Working with An Attorney?'
@@ -542,17 +670,6 @@ const incidentDateCenter = (scope) => verticalDate({
542
670
  name: scope ? scope + ':' + 'Incident_Date' : 'Incident_Date',
543
671
  });
544
672
 
545
- const lastName = (scope) => sbsText({
546
- $formkit: 'text',
547
- label: 'Last Name:',
548
- placeholder: 'Last',
549
- name: scope ? scope + ':' + 'Last_Name' : 'Last_Name',
550
- autocomplete: "family-name",
551
- validationMessages: {
552
- required: 'Last Name is required'
553
- }
554
- });
555
-
556
673
  const lawsuitOtherPartyCenter = () => col2RadioCenter({
557
674
  name: 'Lawsuit_Other_Party',
558
675
  options: [
@@ -583,69 +700,7 @@ const legalCrossSells$1 = () => col2Checkbox({
583
700
  help: 'Just hit "Next" if none apply',
584
701
  helpClass: 't-text-center !t-text-sm',
585
702
  validation: null,
586
- options: {
587
- if: '$getVal($get(form), "Type_Of_Legal_Problem") === "Auto and Car Accidents"',
588
- then: {
589
- 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
590
- 'Wills and Trusts': 'Need a Will or Trust',
591
- 'Workers Compensation': 'Workplace Injury',
592
- 'Power of Attorney': 'Update Power of Attorney',
593
- 'Divorce and Separation': 'Need a Divorce or Separation',
594
- 'Child Custody': 'Need help with Child Custody',
595
- },
596
- else: {
597
- if: '$getVal($get(form), "Type_Of_Legal_Problem") === "Personal Injury" || $getVal($get(form), "Type_Of_Legal_Problem") === "Workers Compensation"',
598
- then: {
599
- 'DUI and DWI': 'Involved in a DUI/DWI',
600
- 'Wills and Trusts': 'Need a Will or Trust',
601
- 'Power of Attorney': 'Update Power of Attorney',
602
- 'Divorce and Separation': 'Need a Divorce or Separation',
603
- 'Child Custody': 'Need help with Child Custody',
604
- // TODO add one more?
605
- },
606
- else: {
607
- if: '$getVal($get(form), "Type_Of_Legal_Problem") === "DUI and DWI"',
608
- then: {
609
- 'Personal Injury': 'Personal or Workplace Injury',
610
- 'Wills and Trusts': 'Need a Will or Trust',
611
- 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
612
- 'Power of Attorney': 'Update Power of Attorney',
613
- 'Divorce and Separation': 'Need a Divorce or Separation',
614
- 'Child Custody': 'Need help with Child Custody',
615
- },
616
- else: {
617
- 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"',
618
- then: {
619
- 'Auto and Car Accidents': 'Injured in a Car Accident',
620
- 'Personal Injury': 'Personal or Workplace Injury',
621
- 'DUI and DWI': 'Involved in a DUI/DWI',
622
- 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
623
- 'Divorce and Separation': 'Need a Divorce or Separation',
624
- 'Child Custody': 'Need help with Child Custody',
625
- },
626
- else: {
627
- if: '$getVal($get(form), "Type_Of_Legal_Problem") === "Long Term Disability" || $getVal($get(form), "Type_Of_Legal_Problem") === "Social Security Disability and Insurance"',
628
- then: {
629
- 'Auto and Car Accidents': 'Injured in a Car Accident',
630
- 'DUI and DWI': 'Involved in a DUI/DWI',
631
- 'Wills and Trusts': 'Need a Will or Trust',
632
- 'Power of Attorney': 'Update Power of Attorney',
633
- 'Divorce and Separation': 'Need a Divorce or Separation',
634
- 'Child Custody': 'Need help with Child Custody',
635
- },
636
- else: {
637
- 'Auto and Car Accidents': 'Injured in a Car Accident',
638
- 'Personal Injury': 'Personal or Workplace Injury',
639
- 'DUI and DWI': 'Involved in a DUI/DWI',
640
- 'Wills and Trusts': 'Need a Will or Trust',
641
- 'Power of Attorney': 'Update Power of Attorney',
642
- 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
643
- }
644
- }
645
- }
646
- }
647
- }
648
- }
703
+ options: '$getCrossSellOptions($get(form), $getVal($get(form), "Type_Of_Legal_Problem"))',
649
704
  });
650
705
 
651
706
  const maritalStatus = (scope) => sbsSelect({
@@ -692,24 +747,6 @@ const pendingCharges = (scope) => sbsYesNoRadio({
692
747
  label: 'Do you currently have any pending charges?'
693
748
  });
694
749
 
695
- const phone = (scope) => sbsText({
696
- $formkit: 'tel',
697
- name: scope ? scope + ':' + 'Primary_Phone' : 'Primary_Phone',
698
- label: 'Phone Number:',
699
- placeholder: '###-###-####',
700
- maxlength: 12,
701
- help: '10-digit phone number, hyphens optional',
702
- autocomplete: 'tel-national',
703
- 'data-tf-sensitive': 'false',
704
- validation: 'required|matches:/^[0-9]{3}-?[0-9]{3}-?[0-9]{4}$/|valid_phone',
705
- validationMessages: {
706
- required: 'Field is required',
707
- matches: 'Invalid Phone Format, use ###-###-####',
708
- valid_phone: 'Invalid Phone Number'
709
- },
710
- helpClass: "t-mt-2.5 md:t-text-right md:t-mt-[-2px]"
711
- });
712
-
713
750
  const primaryInjury$1 = (scope) => sbs2ColRadio({
714
751
  name: scope ? scope + ':' + 'Primary_Injury' : 'Primary_Injury',
715
752
  label: 'Primary Injury:',
@@ -851,25 +888,6 @@ const wouldLikeLawyerToCenter = () => verticalRadio({
851
888
  ]
852
889
  });
853
890
 
854
- const zipcodeCenter = (updates = {}, scope) => text({
855
- placeholder: '#####',
856
- help: updates.help ?? "We try to match you with local legal help",
857
- name: scope ? scope + ':' + 'Zip' : 'Zip',
858
- maxlength: 5,
859
- inputmode: "numeric",
860
- autocomplete: 'postal-code',
861
- validation: 'required|matches:/^[0-9]{5}$/',
862
- validationMessages: {
863
- required: 'Zip Code is required',
864
- matches: 'Invalid Zip Code'
865
- },
866
- wrapperClass: 't-flex t-justify-center',
867
- messagesClass: 't-flex t-justify-center',
868
- inputClass: 't-text-center',
869
- helpClass: 't-mt-2.5 !t-text-sm t-text-center'
870
- });
871
-
872
-
873
891
  // ------ Question Groups
874
892
 
875
893
  // NOTE: name must be unique within a form!
@@ -1121,13 +1139,20 @@ function verticalStepSubHeadline(updates) {
1121
1139
  function commentsStepHeadline(updates) {
1122
1140
  return {
1123
1141
  $el: 'h3',
1124
- children: updates.headline || 'Additional Case Details',
1142
+ children: updates.headline || 'Additional Details',
1125
1143
  attrs: {
1126
1144
  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 || '')
1127
1145
  }
1128
1146
  }
1129
1147
  }
1130
1148
 
1149
+ function commentsStepHeadlineLegal(updates) {
1150
+ return commentsStepHeadline({
1151
+ headline: updates.headline || 'Additional Case Details',
1152
+ headlineClass: updates.headlineClass
1153
+ })
1154
+ }
1155
+
1131
1156
  function firstAndLastStepHeadline(updates) {
1132
1157
  return {
1133
1158
  $el: 'h3',
@@ -1151,7 +1176,7 @@ function legalCrossSellsStepHeadline(updates) {
1151
1176
  function contactStepHeadline(updates) {
1152
1177
  return {
1153
1178
  $el: 'h3',
1154
- children: updates.headline || DEFAULT_FINAL_HEADLINE_DYNAMIC,
1179
+ children: updates.headline || DEFAULT_FINAL_HEADLINE_DYNAMIC_LEGAL,
1155
1180
  attrs: {
1156
1181
  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 || '')
1157
1182
  }
@@ -1161,7 +1186,7 @@ function contactStepHeadline(updates) {
1161
1186
  function contactStepSubHeadline(updates) {
1162
1187
  return {
1163
1188
  $el: 'h5',
1164
- children: updates.subheadline || DEFAULT_FINAL_SUBHEADLINE_DYNAMIC,
1189
+ children: updates.subheadline || DEFAULT_FINAL_SUBHEADLINE_DYNAMIC_LEGAL,
1165
1190
  attrs: {
1166
1191
  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 || '')
1167
1192
  }
@@ -1201,10 +1226,16 @@ const stepDefaults = (step, stepKey) => ({
1201
1226
  }
1202
1227
  });
1203
1228
 
1204
- function step(name, inputs, nextOnEnter = true, nextOnInput = false, stepKey = undefined, nextStepMap = undefined, autoFocus = undefined) {
1205
- if (typeof nextOnEnter === 'undefined') {
1206
- nextOnEnter = true;
1207
- }
1229
+ function step(name, inputs, updates = {}) {
1230
+ const {
1231
+ nextOnEnter = true,
1232
+ nextOnInput = false,
1233
+ stepKey = undefined,
1234
+ nextStepMap = undefined,
1235
+ triggerRedirectMap = undefined,
1236
+ autoFocus = undefined,
1237
+ } = updates;
1238
+
1208
1239
  if (inputs && inputs.length && (nextOnEnter || nextOnInput)) {
1209
1240
  const lastInput = findLastInput(inputs[inputs.length - 1]);
1210
1241
  if (lastInput && nextOnEnter === true) {
@@ -1224,6 +1255,7 @@ function step(name, inputs, nextOnEnter = true, nextOnInput = false, stepKey = u
1224
1255
  id: name,
1225
1256
  name: name,
1226
1257
  nextStepMap: nextStepMap,
1258
+ triggerRedirectMap: triggerRedirectMap,
1227
1259
  autoFocus: autoFocus,
1228
1260
  children: inputs
1229
1261
  }
@@ -1234,44 +1266,17 @@ function step(name, inputs, nextOnEnter = true, nextOnInput = false, stepKey = u
1234
1266
 
1235
1267
  // Single question step
1236
1268
  function sqstep(name, input, defaultHeadline, updates = {}) {
1269
+ if (typeof updates.nextOnInput === 'undefined') {
1270
+ updates.nextOnInput = true;
1271
+ }
1272
+
1237
1273
  return step(
1238
1274
  name,
1239
1275
  [
1240
1276
  verticalStepHeadline({ headline: updates.headline ?? defaultHeadline, headlineClass: updates.headlineClass }),
1241
1277
  ...Array.isArray(input) ? input : [input],
1242
1278
  ],
1243
- updates.nextOnEnter,
1244
- typeof updates.nextOnInput === 'undefined' ? true : updates.nextOnInput,
1245
- updates.stepKey,
1246
- updates.nextStepMap
1247
- )
1248
- }
1249
-
1250
- function commentsWithBankruptcy(updates = {}) {
1251
- return step(
1252
- 'commentsWithBankruptcy',
1253
- [
1254
- commentsStepHeadline(updates),
1255
- comments({
1256
- label: typeof updates.label === 'undefined' ? DEFAULT_COMMENTS_LABEL : updates.label,
1257
- placeholder: updates.placeholder || DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC,
1258
- inputClass: typeof updates.inputClass === 'undefined' ? '!t-h-32' : updates.inputClass,
1259
- }, updates.scope),
1260
- // TODO: needs scope support
1261
- bankruptcyCrossSell(),
1262
- {
1263
- $el: 'div',
1264
- if: '$get(CrossSell_Bankruptcy).value == true',
1265
- children: [
1266
- comments({
1267
- label: 'Bankruptcy or debt details:',
1268
- placeholder: 'Please describe your bankrtupcy or debt situation in a few words...',
1269
- inputClass: '!t-h-16'
1270
- }, 'CrossSell:Bankruptcy')
1271
- ],
1272
- }
1273
- ],
1274
- false // nextOnEnter
1279
+ updates
1275
1280
  )
1276
1281
  }
1277
1282
 
@@ -1287,7 +1292,7 @@ function contactInfo(updates = {}) {
1287
1292
  TCPAConsent(updates.scope),
1288
1293
  secureIcon()
1289
1294
  ],
1290
- false, // nextOnEnter
1295
+ { nextOnEnter: false }
1291
1296
  )
1292
1297
  }
1293
1298
 
@@ -1306,10 +1311,46 @@ function firstAndLastV3(updates = {}, scope) {
1306
1311
  firstName(scope),
1307
1312
  lastName(scope)
1308
1313
  ],
1309
- updates.nextOnEnter
1314
+ updates
1310
1315
  )
1311
1316
  }
1312
1317
 
1318
+ function zipcode(updates = {}) {
1319
+ return sqstep(
1320
+ 'zipcode',
1321
+ zipcodeCenter(updates, updates.scope),
1322
+ 'Please verify your Zip Code',
1323
+ updates
1324
+ )
1325
+ }
1326
+
1327
+ function commentsWithBankruptcy(updates = {}) {
1328
+ return step(
1329
+ 'commentsWithBankruptcy',
1330
+ [
1331
+ commentsStepHeadlineLegal(updates),
1332
+ comments({
1333
+ label: typeof updates.label === 'undefined' ? DEFAULT_COMMENTS_LABEL_LEGAL : updates.label,
1334
+ placeholder: updates.placeholder || DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC_LEGAL,
1335
+ inputClass: typeof updates.inputClass === 'undefined' ? '!t-h-32' : updates.inputClass,
1336
+ }, updates.scope),
1337
+ // TODO: needs scope support
1338
+ bankruptcyCrossSell(),
1339
+ {
1340
+ $el: 'div',
1341
+ if: '$get(CrossSell_Bankruptcy).value == true',
1342
+ children: [
1343
+ comments({
1344
+ label: 'Bankruptcy or debt details:',
1345
+ placeholder: 'Please describe your bankrtupcy or debt situation in a few words...',
1346
+ inputClass: '!t-h-16'
1347
+ }, 'CrossSell:Bankruptcy')
1348
+ ],
1349
+ }
1350
+ ],
1351
+ { nextOnEnter: false }
1352
+ )
1353
+ }
1313
1354
 
1314
1355
  function autoAndCarAccidentCrossSellQuestions(updates = {}) {
1315
1356
  return step(
@@ -1327,7 +1368,7 @@ function autoAndCarAccidentCrossSellQuestions(updates = {}) {
1327
1368
  'CrossSell:Auto_and_Car_Accidents'
1328
1369
  )
1329
1370
  ],
1330
- updates.nextOnEnter
1371
+ updates
1331
1372
  )
1332
1373
  }
1333
1374
 
@@ -1346,7 +1387,7 @@ function childCustodyCrossSellQuestions(updates = {}) {
1346
1387
  'CrossSell:Child_Custody'
1347
1388
  )
1348
1389
  ],
1349
- updates.nextOnEnter
1390
+ updates
1350
1391
  )
1351
1392
  }
1352
1393
 
@@ -1365,7 +1406,7 @@ function divorceAndSeparationCrossSellQuestions(updates = {}) {
1365
1406
  'CrossSell:Divorce_and_Separation'
1366
1407
  )
1367
1408
  ],
1368
- updates.nextOnEnter
1409
+ updates
1369
1410
  )
1370
1411
  }
1371
1412
 
@@ -1384,7 +1425,7 @@ function duiAndDWICrossSellQuestions(updates = {}) {
1384
1425
  'CrossSell:DUI_and_DWI'
1385
1426
  )
1386
1427
  ],
1387
- updates.nextOnEnter
1428
+ updates
1388
1429
  )
1389
1430
  }
1390
1431
 
@@ -1404,7 +1445,7 @@ function ssdiCrossSellQuestions(updates = {}) {
1404
1445
  'CrossSell:Social_Security_Disability_and_Insurance'
1405
1446
  )
1406
1447
  ],
1407
- updates.nextOnEnter
1448
+ updates
1408
1449
  )
1409
1450
  }
1410
1451
 
@@ -1424,7 +1465,7 @@ function personalInjuryCrossSellQuestions(updates = {}) {
1424
1465
  'CrossSell:Personal_Injury'
1425
1466
  )
1426
1467
  ],
1427
- updates.nextOnEnter
1468
+ updates
1428
1469
  )
1429
1470
  }
1430
1471
 
@@ -1443,7 +1484,7 @@ function powerOfAttorneyCrossSellQuestions(updates = {}) {
1443
1484
  'CrossSell:Power_of_Attorney'
1444
1485
  )
1445
1486
  ],
1446
- updates.nextOnEnter
1487
+ updates
1447
1488
  )
1448
1489
  }
1449
1490
 
@@ -1462,7 +1503,7 @@ function willsAndTrustsCrossSellQuestions(updates = {}) {
1462
1503
  'CrossSell:Wills_and_Trusts'
1463
1504
  )
1464
1505
  ],
1465
- updates.nextOnEnter
1506
+ updates
1466
1507
  )
1467
1508
  }
1468
1509
 
@@ -1482,29 +1523,19 @@ function workersCompensationCrossSellQuestions(updates = {}) {
1482
1523
  'CrossSell:Workers_Compensation'
1483
1524
  )
1484
1525
  ],
1485
- updates.nextOnEnter
1526
+ updates
1486
1527
  )
1487
1528
  }
1488
1529
 
1489
1530
  function legalCrossSells(updates = {}) {
1531
+ updates.nextOnInput = false;
1532
+ updates.stepKey = '$get(Type_Of_Legal_Problem).value';
1490
1533
  return step(
1491
1534
  'legalCrossSells',
1492
1535
  [
1493
1536
  legalCrossSellsStepHeadline(updates),
1494
1537
  legalCrossSells$1(),
1495
1538
  ],
1496
- updates.nextOnEnter,
1497
- false,
1498
- // Note: we should probably scope this stepKey to this step name
1499
- '$get(Type_Of_Legal_Problem).value'
1500
- )
1501
- }
1502
-
1503
- function zipcode(updates = {}) {
1504
- return sqstep(
1505
- 'zipcode',
1506
- zipcodeCenter(updates, updates.scope),
1507
- 'Please verify your Zip Code',
1508
1539
  updates
1509
1540
  )
1510
1541
  }
@@ -1515,10 +1546,7 @@ function civilLawsuitTOLP(updates = {}) {
1515
1546
  [
1516
1547
  civilLawsuitTOLPCenter(),
1517
1548
  ],
1518
- updates.nextOnEnter,
1519
- updates.nextOnInput,
1520
- updates.stepKey,
1521
- updates.nextStepMap
1549
+ updates
1522
1550
  )
1523
1551
  }
1524
1552
 
@@ -1832,9 +1860,7 @@ function formProps(updates) {
1832
1860
  return props
1833
1861
  }
1834
1862
 
1835
- const metaDefaults = {
1836
- tcpaLanguage: TCPA_LANGUAGE
1837
- };
1863
+ const metaDefaults = {};
1838
1864
 
1839
1865
  function metaProps(updates) {
1840
1866
  const data = merge(
@@ -1847,7 +1873,7 @@ function metaProps(updates) {
1847
1873
  }
1848
1874
  }
1849
1875
 
1850
- function defaultMetaProps(tolps = null) {
1876
+ function defaultMetaPropsLegal(tolps = null) {
1851
1877
  let commentsPlaceholders = TOLPCommentsPlaceholders;
1852
1878
  let finalHeadlines = TOLPFinalHeadlines;
1853
1879
  let finalSubHeadlines = TOLPFinalSubHeadlines;
@@ -1857,12 +1883,13 @@ function defaultMetaProps(tolps = null) {
1857
1883
  finalSubHeadlines = filterMapByKey(TOLPFinalSubHeadlines, tolps);
1858
1884
  }
1859
1885
  return metaProps({
1860
- defaultCommentsPlaceholder: DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC,
1886
+ tcpaLanguage: TCPA_LANGUAGE_LEGAL,
1887
+ defaultCommentsPlaceholder: DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC_LEGAL,
1861
1888
  commentsPlaceholders: commentsPlaceholders,
1862
- defaultFinalHeadline: DEFAULT_FINAL_HEADLINE,
1889
+ defaultFinalHeadline: DEFAULT_FINAL_HEADLINE_LEGAL,
1863
1890
  finalHeadlines: finalHeadlines,
1864
- defaultFinalSubHeadline: DEFAULT_FINAL_SUBHEADLINE,
1865
- finalSubHeadlines: finalSubHeadlines,
1891
+ defaultFinalSubHeadline: DEFAULT_FINAL_SUBHEADLINE_LEGAL,
1892
+ finalSubHeadlines: finalSubHeadlines
1866
1893
  })
1867
1894
  }
1868
1895
 
@@ -2431,346 +2458,384 @@ const nextStepsLegalNoHA = [
2431
2458
  ];
2432
2459
 
2433
2460
  const nextStepsMapGeneralLegal = {
2434
- 'Type_Of_Legal_Problem': {
2435
- 'Adoption': [
2436
- 'maritalStatus',
2437
- 'haveChildren',
2438
- ...nextStepsLegalDefaultLPM
2439
- ],
2440
- 'Asbestos and Mesothelioma': [
2441
- 'incidentDate',
2442
- 'doctorTreatment',
2443
- ...nextStepsLegalDefault
2444
- ],
2445
- 'Auto and Car Accidents': [
2446
- 'incidentDate',
2447
- 'atFault',
2448
- 'primaryInjury',
2449
- 'doctorTreatment',
2450
- 'policeReportFiled',
2451
- ...nextStepsLegalNoDOI
2452
- ],
2453
- 'Bankruptcy': [
2454
- 'totalMonthlyIncome',
2455
- 'totalDebt',
2456
- 'ownRealEstate',
2457
- 'valueOfAssets',
2458
- ...nextStepsLegalDefault
2459
- ],
2460
- 'Business Lawyers': [
2461
- 'businessServices',
2462
- 'businessType',
2463
- 'numEmployeesOfBusiness',
2464
- ...nextStepsLegalDefault
2465
- ],
2466
- 'Child Custody': [
2467
- 'childRelationship',
2468
- 'childHome',
2469
- 'childPrimaryCaregiver',
2470
- ...nextStepsLegalDefaultLPM
2471
- ],
2472
- 'Child Support': [
2473
- 'childRelationship',
2474
- 'childHome',
2475
- 'childPrimaryCaregiver',
2476
- ...nextStepsLegalDefaultLPM
2477
- ],
2478
- 'Civil Rights and Discrimination': [
2479
- 'civilRightsType',
2480
- ...nextStepsLegalDefault
2481
- ],
2482
- 'Civil Lawsuit': [
2483
- 'civilDefense',
2484
- 'lawsuitOtherParty',
2485
- ...nextStepsLegalDefault
2486
- ],
2487
- 'File a Lawsuit': [
2488
- 'civilLawsuitTOLPDisplay',
2461
+ values: {
2462
+ 'Type_Of_Legal_Problem': {
2463
+ 'Adoption': [
2464
+ 'maritalStatus',
2465
+ 'haveChildren',
2466
+ ...nextStepsLegalDefaultLPM
2467
+ ],
2468
+ 'Asbestos and Mesothelioma': [
2469
+ 'incidentDate',
2470
+ 'doctorTreatment',
2471
+ ...nextStepsLegalDefault
2472
+ ],
2473
+ 'Auto and Car Accidents': [
2474
+ 'incidentDate',
2475
+ 'atFault',
2476
+ 'primaryInjury',
2477
+ 'doctorTreatment',
2478
+ 'policeReportFiled',
2479
+ ...nextStepsLegalNoDOI
2480
+ ],
2481
+ 'Bankruptcy': [
2482
+ 'totalMonthlyIncome',
2483
+ 'totalDebt',
2484
+ 'ownRealEstate',
2485
+ 'valueOfAssets',
2486
+ ...nextStepsLegalDefault
2487
+ ],
2488
+ 'Business Lawyers': [
2489
+ 'businessServices',
2490
+ 'businessType',
2491
+ 'numEmployeesOfBusiness',
2492
+ ...nextStepsLegalDefault
2493
+ ],
2494
+ 'Child Custody': [
2495
+ 'childRelationship',
2496
+ 'childHome',
2497
+ 'childPrimaryCaregiver',
2498
+ ...nextStepsLegalDefaultLPM
2499
+ ],
2500
+ 'Child Support': [
2501
+ 'childRelationship',
2502
+ 'childHome',
2503
+ 'childPrimaryCaregiver',
2504
+ ...nextStepsLegalDefaultLPM
2505
+ ],
2506
+ 'Civil Rights and Discrimination': [
2507
+ 'civilRightsType',
2508
+ ...nextStepsLegalDefault
2509
+ ],
2510
+ 'Civil Lawsuit': [
2511
+ 'civilDefense',
2512
+ 'lawsuitOtherParty',
2513
+ ...nextStepsLegalDefault
2514
+ ],
2515
+ 'File a Lawsuit': [
2516
+ 'civilLawsuitTOLPDisplay',
2517
+ 'lawsuitOtherParty',
2518
+ ...nextStepsLegalDefault
2519
+ ],
2520
+ 'Defend a Lawsuit': [
2521
+ 'lawsuitOtherParty',
2522
+ ...nextStepsLegalDefault
2523
+ ],
2524
+ 'Consumer Lawyers': [
2525
+ 'consumerLawyerType',
2526
+ 'incidentDate',
2527
+ 'lawsuitOtherParty',
2528
+ ...nextStepsLegalDefault
2529
+ ],
2530
+ 'Criminal and Felony': [
2531
+ 'criminalTOLPDisplay',
2532
+ 'crimeCommittedDate',
2533
+ 'roleInMatterCriminal',
2534
+ 'pendingCharges',
2535
+ ...nextStepsLegalDefaultLPM
2536
+ ],
2537
+ 'Debt and Collections': [
2538
+ 'totalMonthlyIncome',
2539
+ 'totalDebt',
2540
+ 'ownRealEstate',
2541
+ 'valueOfAssets',
2542
+ ...nextStepsLegalDefault
2543
+ ],
2544
+ 'Divorce and Separation': [
2545
+ 'maritalStatus',
2546
+ 'haveChildren',
2547
+ ...nextStepsLegalDefaultLPM
2548
+ ],
2549
+ 'DUI and DWI': [
2550
+ 'incidentDate',
2551
+ 'priorAlcoholOffenses',
2552
+ 'typeOfAlcoholTest',
2553
+ 'bloodContentAlcoholTest',
2554
+ 'pendingCharges',
2555
+ ...nextStepsLegalDefault
2556
+ ],
2557
+ 'Employment and Workplace': [
2558
+ 'employmentAndWorkplaceTOLPDisplay',
2559
+ 'numEmployeesOfBusiness',
2560
+ 'employerType',
2561
+ 'employeeAtCompany',
2562
+ ...nextStepsLegalDefault
2563
+ ],
2564
+ 'Expungement': [
2565
+ 'incidentDate',
2566
+ 'criminalChargeType',
2567
+ ...nextStepsLegalDefaultLPM
2568
+ ],
2569
+ 'Family Issues': [
2570
+ 'maritalStatus',
2571
+ 'haveChildren',
2572
+ ...nextStepsLegalDefaultLPM
2573
+ ],
2574
+ 'Foreclosure': [
2575
+ 'ownRealEstate',
2576
+ 'typeOfProperty',
2577
+ 'amountPaymentsPastDue',
2578
+ 'loanAmount',
2579
+ 'defaultNotice',
2580
+ ...nextStepsLegalDefault
2581
+ ],
2582
+ 'Guardianship': [
2583
+ 'maritalStatus',
2584
+ 'haveChildren',
2585
+ ...nextStepsLegalDefaultLPM
2586
+ ],
2587
+ 'Immigration and Visas': [
2588
+ 'countryOfCitizenship',
2589
+ 'immigrationLocation',
2590
+ 'immigrationEntry',
2591
+ 'immigrationType',
2592
+ 'immigrationStatus',
2593
+ 'immigrationDetails',
2594
+ ...nextStepsLegalDefault
2595
+ ],
2596
+ 'Landlord and Tenant': [
2597
+ 'landlordTenantIssue',
2598
+ 'landlordTenantParty',
2599
+ ...nextStepsLegalDefault
2600
+ ],
2601
+ 'Lemon Law': [
2602
+ 'incidentDate',
2603
+ 'lawsuitOtherParty',
2604
+ ...nextStepsLegalDefault
2605
+ ],
2606
+ 'Long Term Disability': [
2607
+ 'applicantOccupation',
2608
+ 'applicantAge',
2609
+ 'applicantLTDisabilityPolicy',
2610
+ 'applicantDisabilityHowObtain',
2611
+ 'applicantPreviouslyAppliedLtdBenefits',
2612
+ 'applicantReceivedDisabilityBenefits',
2613
+ 'applicantMonthlySalary',
2614
+ ...nextStepsLegalNoDOI
2615
+ ],
2616
+ 'Medical Malpractice': [
2617
+ 'incidentDate',
2618
+ 'claimStatus',
2619
+ 'doctorTreatment',
2620
+ 'medicalMalpracticeInjuries',
2621
+ ...nextStepsLegalDefault
2622
+ ],
2623
+ 'Patents and Intellectual Property': [
2624
+ 'patentAssistanceType',
2625
+ 'patentFor',
2626
+ ...nextStepsLegalDefault
2627
+ ],
2628
+ 'Personal Injury': [
2629
+ 'incidentDate',
2630
+ 'claimStatus',
2631
+ 'atFault',
2632
+ 'primaryInjury',
2633
+ 'doctorTreatment',
2634
+ ...nextStepsLegalNoDOI
2635
+ ],
2636
+ 'Probate and Estates': [
2637
+ 'valueOfAssets',
2638
+ 'typeOfAssets',
2639
+ 'roleInMatterProbate',
2640
+ 'estateLegalServicesNeeded',
2641
+ ...nextStepsLegalDefault
2642
+ ],
2643
+ 'Property Damage': [
2644
+ 'realEstateArea',
2645
+ 'wouldLikeLawyerTo',
2646
+ ...nextStepsLegalDefault
2647
+ ],
2648
+ 'Real Estate': [
2649
+ 'realEstateTOLPDisplay',
2650
+ 'realEstateArea',
2651
+ 'wouldLikeLawyerTo',
2652
+ ...nextStepsLegalDefault
2653
+ ],
2654
+ 'Social Security Disability and Insurance': [
2655
+ 'applicantAge',
2656
+ 'disabilityConditionStopWork',
2657
+ 'disabilityWorkHistory',
2658
+ 'socialSecurityDisabilityReceivingBenefits',
2659
+ 'doctorTreatment',
2660
+ ...nextStepsLegalNoDOI
2661
+ ],
2662
+ 'Tax and IRS': [
2663
+ 'totalDebt',
2664
+ 'taxProblemDetails',
2665
+ 'taxLevel',
2666
+ 'taxIssueType',
2667
+ ...nextStepsLegalDefault
2668
+ ],
2669
+ 'Traffic and Tickets': [
2670
+ 'driversLicenseType',
2671
+ 'trafficViolations',
2672
+ 'haveCourtDate',
2673
+ ...nextStepsLegalDefault
2674
+ ],
2675
+ 'Unemployment': [
2676
+ 'numEmployeesOfBusiness',
2677
+ 'employerType',
2678
+ ...nextStepsLegalNoHA
2679
+ ],
2680
+ 'Victim of a Crime': [
2681
+ 'crimeCommittedDate',
2682
+ 'roleInMatterCriminal',
2683
+ 'pendingCharges',
2684
+ ...nextStepsLegalDefaultLPM
2685
+ ],
2686
+ 'Wills and Trusts': [
2687
+ 'valueOfAssets',
2688
+ 'typeOfAssets',
2689
+ 'roleInMatterProbate',
2690
+ 'estateLegalServicesNeeded',
2691
+ ...nextStepsLegalDefault
2692
+ ],
2693
+ 'Workers Compensation': [
2694
+ 'incidentDate',
2695
+ 'claimStatus',
2696
+ 'primaryInjury',
2697
+ 'causeOfInjury',
2698
+ 'doctorTreatment',
2699
+ ...nextStepsLegalNoDOI
2700
+ ],
2701
+ 'Workplace Harassment': [
2702
+ 'numEmployeesOfBusiness',
2703
+ 'employerType',
2704
+ 'employeeAtCompany',
2705
+ ...nextStepsLegalDefault
2706
+ ],
2707
+ 'Workplace Discrimination': [
2708
+ 'numEmployeesOfBusiness',
2709
+ 'employerType',
2710
+ 'employeeAtCompany',
2711
+ ...nextStepsLegalDefault
2712
+ ],
2713
+ 'Wrongful Death': [
2714
+ 'incidentDate',
2715
+ 'relationshipToVictim',
2716
+ 'criminalChargesFiled',
2717
+ 'causeOfDeath',
2718
+ ...nextStepsLegalNoDOI
2719
+ ],
2720
+ 'Wrongful Termination': [
2721
+ 'numEmployeesOfBusiness',
2722
+ 'employerType',
2723
+ ...nextStepsLegalDefault
2724
+ ],
2725
+ },
2726
+ '*': nextStepsLegalDefault
2727
+ }
2728
+ };
2729
+
2730
+ const TOLPNextSteps = nextStepsMapGeneralLegal["values"]["Type_Of_Legal_Problem"];
2731
+
2732
+ ({
2733
+ values: {
2734
+ 'Civil_Defense': {
2735
+ 'Yes': TOLPNextSteps["Defend a Lawsuit"],
2736
+ 'No': TOLPNextSteps["File a Lawsuit"],
2737
+ },
2738
+ '*': [
2489
2739
  'lawsuitOtherParty',
2490
2740
  ...nextStepsLegalDefault
2491
- ],
2492
- 'Defend a Lawsuit': [
2741
+ ]
2742
+ }
2743
+ });
2744
+
2745
+ const nextStepsMapCivilTolp = {
2746
+ values: {
2747
+ 'Type_Of_Legal_Problem': {
2748
+ 'Defend a Lawsuit': TOLPNextSteps["Defend a Lawsuit"],
2749
+ 'File a Lawsuit': TOLPNextSteps["File a Lawsuit"],
2750
+ },
2751
+ '*': [
2493
2752
  'lawsuitOtherParty',
2494
2753
  ...nextStepsLegalDefault
2495
- ],
2496
- 'Consumer Lawyers': [
2497
- 'consumerLawyerType',
2498
- 'incidentDate',
2754
+ ]
2755
+ }
2756
+ };
2757
+
2758
+ const nextStepsMapCivilTOLPDisplay = {
2759
+ values: {
2760
+ 'Type_Of_Legal_Problem_Display': {
2761
+ 'Automobile Accident': TOLPNextSteps["Auto and Car Accidents"],
2762
+ 'Contract Disputes': TOLPNextSteps["Business Lawyers"],
2763
+ 'Dog Bite': TOLPNextSteps["Personal Injury"],
2764
+ 'Employment and Workplace': TOLPNextSteps["Employment and Workplace"],
2765
+ 'Fraud': TOLPNextSteps["Consumer Lawyers"],
2766
+ 'Medical Malpractice': TOLPNextSteps["Medical Malpractice"],
2767
+ 'Personal Injury': TOLPNextSteps["Personal Injury"],
2768
+ 'Property Damage': TOLPNextSteps["Property Damage"],
2769
+ 'Real Estate': TOLPNextSteps["Real Estate"],
2770
+ 'Not Sure or Other': nextStepsMapGeneralLegal["values"]["*"],
2771
+ },
2772
+ '*': [
2499
2773
  'lawsuitOtherParty',
2500
2774
  ...nextStepsLegalDefault
2501
- ],
2502
- 'Criminal and Felony': [
2503
- 'criminalTOLPDisplay',
2504
- 'crimeCommittedDate',
2505
- 'roleInMatterCriminal',
2506
- 'pendingCharges',
2507
- ...nextStepsLegalDefaultLPM
2508
- ],
2509
- 'Debt and Collections': [
2510
- 'totalMonthlyIncome',
2511
- 'totalDebt',
2512
- 'ownRealEstate',
2513
- 'valueOfAssets',
2514
- ...nextStepsLegalDefault
2515
- ],
2516
- 'Divorce and Separation': [
2517
- 'maritalStatus',
2518
- 'haveChildren',
2519
- ...nextStepsLegalDefaultLPM
2520
- ],
2521
- 'DUI and DWI': [
2522
- 'incidentDate',
2523
- 'priorAlcoholOffenses',
2524
- 'typeOfAlcoholTest',
2525
- 'bloodContentAlcoholTest',
2526
- 'pendingCharges',
2527
- ...nextStepsLegalDefault
2528
- ],
2529
- 'Employment and Workplace': [
2530
- 'employmentAndWorkplaceTOLPDisplay',
2775
+ ]
2776
+ }
2777
+ };
2778
+
2779
+ ({
2780
+ values: {
2781
+ 'Type_Of_Legal_Problem_Display': {
2782
+ 'Wrongful Termination': TOLPNextSteps["Wrongful Termination"],
2783
+ 'Workers Compensation': TOLPNextSteps["Workers Compensation"],
2784
+ 'Personal Injury': TOLPNextSteps["Personal Injury"],
2785
+ 'Unemployment': TOLPNextSteps["Unemployment"],
2786
+ },
2787
+ '*': [
2531
2788
  'numEmployeesOfBusiness',
2532
2789
  'employerType',
2533
2790
  'employeeAtCompany',
2534
2791
  ...nextStepsLegalDefault
2535
- ],
2536
- 'Expungement': [
2537
- 'incidentDate',
2538
- 'criminalChargeType',
2539
- ...nextStepsLegalDefaultLPM
2540
- ],
2541
- 'Family Issues': [
2542
- 'maritalStatus',
2543
- 'haveChildren',
2544
- ...nextStepsLegalDefaultLPM
2545
- ],
2546
- 'Foreclosure': [
2547
- 'ownRealEstate',
2548
- 'typeOfProperty',
2549
- 'amountPaymentsPastDue',
2550
- 'loanAmount',
2551
- 'defaultNotice',
2552
- ...nextStepsLegalDefault
2553
- ],
2554
- 'Guardianship': [
2555
- 'maritalStatus',
2556
- 'haveChildren',
2557
- ...nextStepsLegalDefaultLPM
2558
- ],
2559
- 'Immigration and Visas': [
2560
- 'countryOfCitizenship',
2561
- 'immigrationLocation',
2562
- 'immigrationEntry',
2563
- 'immigrationType',
2564
- 'immigrationStatus',
2565
- 'immigrationDetails',
2566
- ...nextStepsLegalDefault
2567
- ],
2568
- 'Landlord and Tenant': [
2569
- 'landlordTenantIssue',
2570
- 'landlordTenantParty',
2571
- ...nextStepsLegalDefault
2572
- ],
2573
- 'Lemon Law': [
2574
- 'incidentDate',
2575
- 'lawsuitOtherParty',
2576
- ...nextStepsLegalDefault
2577
- ],
2578
- 'Long Term Disability': [
2579
- 'applicantOccupation',
2580
- 'applicantAge',
2581
- 'applicantLTDisabilityPolicy',
2582
- 'applicantDisabilityHowObtain',
2583
- 'applicantPreviouslyAppliedLtdBenefits',
2584
- 'applicantReceivedDisabilityBenefits',
2585
- 'applicantMonthlySalary',
2586
- ...nextStepsLegalNoDOI
2587
- ],
2588
- 'Medical Malpractice': [
2589
- 'incidentDate',
2590
- 'claimStatus',
2591
- 'doctorTreatment',
2592
- 'medicalMalpracticeInjuries',
2593
- ...nextStepsLegalDefault
2594
- ],
2595
- 'Patents and Intellectual Property': [
2596
- 'patentAssistanceType',
2597
- 'patentFor',
2598
- ...nextStepsLegalDefault
2599
- ],
2600
- 'Personal Injury': [
2601
- 'incidentDate',
2602
- 'claimStatus',
2603
- 'atFault',
2604
- 'primaryInjury',
2605
- 'doctorTreatment',
2606
- ...nextStepsLegalNoDOI
2607
- ],
2608
- 'Probate and Estates': [
2609
- 'valueOfAssets',
2610
- 'typeOfAssets',
2611
- 'roleInMatterProbate',
2612
- 'estateLegalServicesNeeded',
2613
- ...nextStepsLegalDefault
2614
- ],
2615
- 'Property Damage': [
2616
- 'realEstateArea',
2617
- 'wouldLikeLawyerTo',
2618
- ...nextStepsLegalDefault
2619
- ],
2620
- 'Real Estate': [
2621
- 'realEstateTOLPDisplay',
2792
+ ]
2793
+ }
2794
+ });
2795
+
2796
+ ({
2797
+ values: {
2798
+ 'Type_Of_Legal_Problem_Display': {
2799
+ 'Foreclosure': TOLPNextSteps["Foreclosure"],
2800
+ 'Landlord and Tenant': TOLPNextSteps["Landlord and Tenant"],
2801
+ 'Wills, Trusts, and Estates': TOLPNextSteps["Wills and Trusts"],
2802
+ 'Property Damage': TOLPNextSteps['Property Damage'],
2803
+ },
2804
+ '*': [
2622
2805
  'realEstateArea',
2623
2806
  'wouldLikeLawyerTo',
2624
2807
  ...nextStepsLegalDefault
2625
- ],
2626
- 'Social Security Disability and Insurance': [
2627
- 'applicantAge',
2628
- 'disabilityConditionStopWork',
2629
- 'disabilityWorkHistory',
2630
- 'socialSecurityDisabilityReceivingBenefits',
2631
- 'doctorTreatment',
2632
- ...nextStepsLegalNoDOI
2633
- ],
2634
- 'Tax and IRS': [
2635
- 'totalDebt',
2636
- 'taxProblemDetails',
2637
- 'taxLevel',
2638
- 'taxIssueType',
2639
- ...nextStepsLegalDefault
2640
- ],
2641
- 'Traffic and Tickets': [
2642
- 'driversLicenseType',
2643
- 'trafficViolations',
2644
- 'haveCourtDate',
2645
- ...nextStepsLegalDefault
2646
- ],
2647
- 'Unemployment': [
2648
- 'numEmployeesOfBusiness',
2649
- 'employerType',
2650
- ...nextStepsLegalNoHA
2651
- ],
2652
- 'Victim of a Crime': [
2653
- 'crimeCommittedDate',
2654
- 'roleInMatterCriminal',
2655
- 'pendingCharges',
2656
- ...nextStepsLegalDefaultLPM
2657
- ],
2658
- 'Wills and Trusts': [
2659
- 'valueOfAssets',
2660
- 'typeOfAssets',
2661
- 'roleInMatterProbate',
2662
- 'estateLegalServicesNeeded',
2663
- ...nextStepsLegalDefault
2664
- ],
2665
- 'Workers Compensation': [
2666
- 'incidentDate',
2667
- 'claimStatus',
2668
- 'primaryInjury',
2669
- 'causeOfInjury',
2670
- 'doctorTreatment',
2671
- ...nextStepsLegalNoDOI
2672
- ],
2673
- 'Workplace Harassment': [
2674
- 'numEmployeesOfBusiness',
2675
- 'employerType',
2676
- 'employeeAtCompany',
2677
- ...nextStepsLegalDefault
2678
- ],
2679
- 'Workplace Discrimination': [
2680
- 'numEmployeesOfBusiness',
2681
- 'employerType',
2682
- 'employeeAtCompany',
2683
- ...nextStepsLegalDefault
2684
- ],
2685
- 'Wrongful Death': [
2686
- 'incidentDate',
2687
- 'relationshipToVictim',
2688
- 'criminalChargesFiled',
2689
- 'causeOfDeath',
2690
- ...nextStepsLegalNoDOI
2691
- ],
2692
- 'Wrongful Termination': [
2693
- 'numEmployeesOfBusiness',
2694
- 'employerType',
2695
- ...nextStepsLegalDefault
2696
- ],
2697
- },
2698
- '*': nextStepsLegalDefault
2699
- };
2700
-
2701
- const TOLPNextSteps = nextStepsMapGeneralLegal["Type_Of_Legal_Problem"];
2702
-
2703
- ({
2704
- 'Civil_Defense': {
2705
- 'Yes': TOLPNextSteps["Defend a Lawsuit"],
2706
- 'No': TOLPNextSteps["File a Lawsuit"],
2707
- },
2708
- '*': [
2709
- 'lawsuitOtherParty',
2710
- ...nextStepsLegalDefault
2711
- ]
2808
+ ]
2809
+ }
2712
2810
  });
2713
2811
 
2714
- const nextStepsMapCivilTolp = {
2715
- 'Type_Of_Legal_Problem': {
2716
- 'Defend a Lawsuit': TOLPNextSteps["Defend a Lawsuit"],
2717
- 'File a Lawsuit': TOLPNextSteps["File a Lawsuit"],
2718
- },
2719
- '*': [
2720
- 'lawsuitOtherParty',
2721
- ...nextStepsLegalDefault
2722
- ]
2723
- };
2724
-
2725
- const nextStepsMapCivilTOLPDisplay = {
2726
- 'Type_Of_Legal_Problem_Display': {
2727
- 'Automobile Accident': TOLPNextSteps["Auto and Car Accidents"],
2728
- 'Contract Disputes': TOLPNextSteps["Business Lawyers"],
2729
- 'Dog Bite': TOLPNextSteps["Personal Injury"],
2730
- 'Employment and Workplace': TOLPNextSteps["Employment and Workplace"],
2731
- 'Fraud': TOLPNextSteps["Consumer Lawyers"],
2732
- 'Medical Malpractice': TOLPNextSteps["Medical Malpractice"],
2733
- 'Personal Injury': TOLPNextSteps["Personal Injury"],
2734
- 'Property Damage': TOLPNextSteps["Property Damage"],
2735
- 'Real Estate': TOLPNextSteps["Real Estate"],
2736
- 'Not Sure or Other': nextStepsMapGeneralLegal["*"],
2812
+ const nextStepsMapLegalCrossSells = {
2813
+ values: {
2814
+ 'Legal_CrossSells': {
2815
+ 'Auto and Car Accidents': ['autoAndCarAccidentCrossSellQuestions'],
2816
+ 'Personal Injury': ['personalInjuryCrossSellQuestions'],
2817
+ 'Workers Compensation': ['workersCompensationCrossSellQuestions'],
2818
+ 'DUI and DWI': ['duiAndDWICrossSellQuestions'],
2819
+ 'Long Term Disability': ['longTermDisabilityCrossSellQuestions'],
2820
+ 'Social Security Disability and Insurance': ['ssdiCrossSellQuestions'],
2821
+ 'Bankruptcy': ['bankruptcyCrossSellQuestions'],
2822
+ 'Power of Attorney': ['powerOfAttorneyCrossSellQuestions'],
2823
+ 'Wills and Trusts': ['willsAndTrustsCrossSellQuestions'],
2824
+ 'Divorce and Separation': ['divorceAndSeparationCrossSellQuestions'],
2825
+ 'Child Custody': ['childCustodyCrossSellQuestions'],
2826
+ },
2827
+ '*': ['firstAndLast', 'contactInfo'],
2737
2828
  },
2738
- '*': [
2739
- 'lawsuitOtherParty',
2740
- ...nextStepsLegalDefault
2741
- ]
2829
+
2830
+ // NOTE: this assumes a certain placement of the cross sell question
2831
+ // in the form flow.
2832
+ appendSteps: ['firstAndLast', 'contactInfo'],
2833
+ matchesAllowed: 1,
2742
2834
  };
2743
2835
 
2744
- ({
2745
- 'Type_Of_Legal_Problem_Display': {
2746
- 'Wrongful Termination': TOLPNextSteps["Wrongful Termination"],
2747
- 'Workers Compensation': TOLPNextSteps["Workers Compensation"],
2748
- 'Personal Injury': TOLPNextSteps["Personal Injury"],
2749
- 'Unemployment': TOLPNextSteps["Unemployment"],
2750
- },
2751
- '*': [
2752
- 'numEmployeesOfBusiness',
2753
- 'employerType',
2754
- 'employeeAtCompany',
2755
- ...nextStepsLegalDefault
2756
- ]
2757
- });
2758
-
2759
- ({
2760
- 'Type_Of_Legal_Problem_Display': {
2761
- 'Foreclosure': TOLPNextSteps["Foreclosure"],
2762
- 'Landlord and Tenant': TOLPNextSteps["Landlord and Tenant"],
2763
- 'Wills, Trusts, and Estates': TOLPNextSteps["Wills and Trusts"],
2764
- 'Property Damage': TOLPNextSteps['Property Damage'],
2765
- },
2766
- '*': [
2767
- 'realEstateArea',
2768
- 'wouldLikeLawyerTo',
2769
- ...nextStepsLegalDefault
2770
- ]
2771
- });
2836
+ const legalCrossSellOptionMap = CROSS_SELL_OPTION_MAP_LEGAL;
2772
2837
 
2773
- const meta = defaultMetaProps();
2838
+ const meta = defaultMetaPropsLegal();
2774
2839
 
2775
2840
  meta.data.dynamicSchema = [
2776
2841
  atFault(),
@@ -2803,7 +2868,8 @@ meta.data.dynamicSchema = [
2803
2868
  headlineClass: '!t-text-dark',
2804
2869
  }),
2805
2870
  legalCrossSells({
2806
- headlineClass: '!t-text-dark'
2871
+ headlineClass: '!t-text-dark',
2872
+ nextStepMap: nextStepsMapLegalCrossSells,
2807
2873
  }),
2808
2874
  autoAndCarAccidentCrossSellQuestions(),
2809
2875
  personalInjuryCrossSellQuestions(),
@@ -2827,7 +2893,8 @@ const schema = [
2827
2893
  props: formProps({
2828
2894
  formId: 'civilLawsuit',
2829
2895
  redirectMap: legalRedirectMap(),
2830
- valueOverrideMap: legalAllValueOverrideMap
2896
+ valueOverrideMap: legalAllValueOverrideMap,
2897
+ crossSellOptionMap: legalCrossSellOptionMap
2831
2898
  }),
2832
2899
  children: [
2833
2900
  progressBar(),