bhl-forms 0.6.15 → 0.7.1

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 (97) 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 +314 -228
  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 +317 -236
  13. package/dist/forms/business.iife.js +1 -1
  14. package/dist/forms/business.json +1 -1
  15. package/dist/forms/childAndFamily.es.js +303 -224
  16. package/dist/forms/childAndFamily.iife.js +1 -1
  17. package/dist/forms/childAndFamily.json +1 -1
  18. package/dist/forms/childAndFamilySingle.es.js +643 -555
  19. package/dist/forms/childAndFamilySingle.iife.js +1 -1
  20. package/dist/forms/childAndFamilySingle.json +1 -1
  21. package/dist/forms/civilLawsuit.es.js +637 -551
  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 +307 -227
  27. package/dist/forms/contracts.iife.js +1 -1
  28. package/dist/forms/contracts.json +1 -1
  29. package/dist/forms/criminal.es.js +660 -572
  30. package/dist/forms/criminal.iife.js +1 -1
  31. package/dist/forms/criminal.json +1 -1
  32. package/dist/forms/divorce.es.js +643 -555
  33. package/dist/forms/divorce.iife.js +1 -1
  34. package/dist/forms/divorce.json +1 -1
  35. package/dist/forms/employmentAndWorkplace.es.js +584 -506
  36. package/dist/forms/employmentAndWorkplace.iife.js +1 -1
  37. package/dist/forms/employmentAndWorkplace.json +1 -1
  38. package/dist/forms/generalHomeImprovement.es.js +3015 -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 +341 -244
  42. package/dist/forms/generalLegal.iife.js +1 -1
  43. package/dist/forms/generalLegal.json +1 -1
  44. package/dist/forms/generalLegalJustAnswer.es.js +4542 -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 +342 -245
  48. package/dist/forms/generalLegalPopUnder.iife.js +1 -1
  49. package/dist/forms/generalLegalPopUnder.json +1 -1
  50. package/dist/forms/generalLegalPopUnderSingle.es.js +692 -612
  51. package/dist/forms/generalLegalPopUnderSingle.iife.js +1 -1
  52. package/dist/forms/generalLegalPopUnderSingle.json +1 -1
  53. package/dist/forms/generalLegalSingle.es.js +692 -612
  54. package/dist/forms/generalLegalSingle.iife.js +1 -1
  55. package/dist/forms/generalLegalSingle.json +1 -1
  56. package/dist/forms/generalLegalThankYou.es.js +204 -158
  57. package/dist/forms/generalLegalThankYou.iife.js +1 -1
  58. package/dist/forms/generalLegalThankYou.json +1 -1
  59. package/dist/forms/generalLegalThankYouConsultation.es.js +692 -612
  60. package/dist/forms/generalLegalThankYouConsultation.iife.js +1 -1
  61. package/dist/forms/generalLegalThankYouConsultation.json +1 -1
  62. package/dist/forms/harassmentAndDiscrimination.es.js +303 -224
  63. package/dist/forms/harassmentAndDiscrimination.iife.js +1 -1
  64. package/dist/forms/harassmentAndDiscrimination.json +1 -1
  65. package/dist/forms/landlordTenant.es.js +316 -240
  66. package/dist/forms/landlordTenant.iife.js +1 -1
  67. package/dist/forms/landlordTenant.json +1 -1
  68. package/dist/forms/malpractice.es.js +308 -227
  69. package/dist/forms/malpractice.iife.js +1 -1
  70. package/dist/forms/malpractice.json +1 -1
  71. package/dist/forms/mechanics.es.js +184 -166
  72. package/dist/forms/mechanics.iife.js +1 -1
  73. package/dist/forms/mechanics.json +1 -1
  74. package/dist/forms/patentsAndIP.es.js +646 -558
  75. package/dist/forms/patentsAndIP.iife.js +1 -1
  76. package/dist/forms/patentsAndIP.json +1 -1
  77. package/dist/forms/realEstate.es.js +339 -243
  78. package/dist/forms/realEstate.iife.js +1 -1
  79. package/dist/forms/realEstate.json +1 -1
  80. package/dist/forms/repossession.es.js +307 -227
  81. package/dist/forms/repossession.iife.js +1 -1
  82. package/dist/forms/repossession.json +1 -1
  83. package/dist/forms/ssdi.es.js +156 -140
  84. package/dist/forms/ssdi.iife.js +1 -1
  85. package/dist/forms/ssdi.json +1 -1
  86. package/dist/forms/testForm.es.js +69 -51
  87. package/dist/forms/testForm.iife.js +1 -1
  88. package/dist/forms/testForm.json +1 -1
  89. package/dist/forms/testRedirects.es.js +43 -22
  90. package/dist/forms/testRedirects.iife.js +1 -1
  91. package/dist/forms/testRedirects.json +1 -1
  92. package/dist/forms/vets.es.js +16 -7
  93. package/dist/forms/vets.iife.js +1 -1
  94. package/dist/forms/willsAndTrusts.es.js +304 -223
  95. package/dist/forms/willsAndTrusts.iife.js +1 -1
  96. package/dist/forms/willsAndTrusts.json +1 -1
  97. 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
 
@@ -186,6 +269,14 @@ const sbsText = (updates) => {
186
269
  return text(updates)
187
270
  };
188
271
 
272
+ const verticalText = (updates) => {
273
+ updates.wrapperClass = 't-flex t-justify-center';
274
+ updates.messagesClass = 't-flex t-justify-center';
275
+ updates.inputClass = 't-text-center';
276
+ updates.helpClass = 't-mt-2.5 !t-text-sm t-text-center';
277
+ return text(updates)
278
+ };
279
+
189
280
  const textArea = (updates) => {
190
281
  if (updates.name && !updates.id) {
191
282
  updates.id = updates.name;
@@ -230,20 +321,101 @@ const verticalDate = (updates) => {
230
321
  return date(updates)
231
322
  };
232
323
 
233
- const applicantAge = (scope) => sbsText({
234
- name: scope ? scope + ':' + 'Applicant_Age' : 'Applicant_Age',
235
- label: 'Age of Applicant?',
236
- placeholder: 'Age between 18 and 65',
237
- maxlength: 2,
238
- inputmode: "numeric",
239
- validation: "required|min:18,max:65",
324
+ const email = (scope) => sbsText({
325
+ $formkit: 'email',
326
+ name: scope ? scope + ':' + 'Email' : 'Email',
327
+ label: 'Email Address:',
328
+ placeholder: 'email@domain.com',
329
+ autocomplete: 'email',
330
+ 'data-tf-sensitive': 'false',
331
+ validation: 'required|email',
332
+ validationMessages: {
333
+ required: 'Email is required',
334
+ email: 'Invalid Email'
335
+ }
336
+ });
337
+
338
+ const firstName = (scope) => sbsText({
339
+ label: 'First Name:',
340
+ placeholder: 'First',
341
+ name: scope ? scope + ':' + 'First_Name' : 'First_Name',
342
+ autocomplete: "given-name",
343
+ validationMessages: {
344
+ required: 'First Name is required'
345
+ }
346
+ });
347
+
348
+ const lastName = (scope) => sbsText({
349
+ label: 'Last Name:',
350
+ placeholder: 'Last',
351
+ name: scope ? scope + ':' + 'Last_Name' : 'Last_Name',
352
+ autocomplete: "family-name",
240
353
  validationMessages: {
241
- required: 'Applicant Age is required',
242
- min: 'Invalid Age - must be between 18 and 65',
243
- max: 'Invalid Age - must be between 18 and 65',
354
+ required: 'Last Name is required'
244
355
  }
245
356
  });
246
357
 
358
+ const phone = (scope) => sbsText({
359
+ $formkit: 'tel',
360
+ name: scope ? scope + ':' + 'Primary_Phone' : 'Primary_Phone',
361
+ label: 'Phone Number:',
362
+ placeholder: '###-###-####',
363
+ maxlength: 12,
364
+ help: '10-digit phone number, hyphens optional',
365
+ autocomplete: 'tel-national',
366
+ 'data-tf-sensitive': 'false',
367
+ validation: 'required|matches:/^[0-9]{3}-?[0-9]{3}-?[0-9]{4}$/|valid_phone',
368
+ validationMessages: {
369
+ required: 'Field is required',
370
+ matches: 'Invalid Phone Format, use ###-###-####',
371
+ valid_phone: 'Invalid Phone Number'
372
+ },
373
+ helpClass: "t-mt-2.5 md:t-text-right md:t-mt-[-2px]"
374
+ });
375
+
376
+
377
+ const zipcode$1 = (scope, vertical, updates = {}) => {
378
+ const func = vertical ? verticalText : sbsText;
379
+ const label = vertical ? (updates.label) : 'Zip Code:';
380
+ const help = vertical ? (updates.help ?? "We try to match you with local help") : null;
381
+ return func({
382
+ label,
383
+ help,
384
+ placeholder: '#####',
385
+ name: scope ? scope + ':' + 'Zip' : 'Zip',
386
+ maxlength: 5,
387
+ inputmode: "numeric",
388
+ autocomplete: 'postal-code',
389
+ validation: 'required|matches:/^[0-9]{5}$/',
390
+ validationMessages: {
391
+ required: 'Zip Code is required',
392
+ matches: 'Invalid Zip Code'
393
+ },
394
+ ...updates
395
+ })
396
+ };
397
+
398
+ const applicantAge = (scope, vertical, updates = {}) => {
399
+ const func = vertical ? verticalText : sbsText;
400
+ const label = vertical ? (updates.label) : 'Age of Applicant?';
401
+ const value = vertical ? (updates.value ?? "50") : null;
402
+ return func(merge({
403
+ label,
404
+ placeholder: 'Age between 18 and 65',
405
+ name: scope ? scope + ':' + 'Applicant_Age' : 'Applicant_Age',
406
+ value,
407
+ maxlength: 2,
408
+ inputmode: "numeric",
409
+ validation: "required|min:18,max:65",
410
+ validationMessages: {
411
+ required: 'Applicant Age is required',
412
+ min: 'Invalid Age - must be between 18 and 65',
413
+ max: 'Invalid Age - must be between 18 and 65',
414
+ },
415
+ ...updates
416
+ }))
417
+ };
418
+
247
419
  const atFault$1 = (scope) => sbsYesNoRadio({
248
420
  name: scope ? scope + ':' + 'At_Fault' : 'At_Fault',
249
421
  label: 'Were You at Fault?'
@@ -464,20 +636,6 @@ const doctorTreatmentCenter = (scope) => verticalYesNoRadio({
464
636
  name: scope ? scope + ':' + 'Doctor_Treatment' : 'Doctor_Treatment',
465
637
  });
466
638
 
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
639
  const employerTypeCenter = () => col2RadioCenter({
482
640
  name: 'Employer_Type',
483
641
  options: [
@@ -508,17 +666,6 @@ const estateLegalServicesNeeded = (scope) => sbsSelect({
508
666
  ]
509
667
  });
510
668
 
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
669
  const haveAttorney$1 = (scope) => sbsYesNoRadio({
523
670
  name: scope ? scope + ':' + 'Have_Attorney' : 'Have_Attorney',
524
671
  label: 'Already Working with An Attorney?'
@@ -542,17 +689,6 @@ const incidentDateCenter = (scope) => verticalDate({
542
689
  name: scope ? scope + ':' + 'Incident_Date' : 'Incident_Date',
543
690
  });
544
691
 
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
692
  const lawsuitOtherPartyCenter = () => col2RadioCenter({
557
693
  name: 'Lawsuit_Other_Party',
558
694
  options: [
@@ -583,69 +719,7 @@ const legalCrossSells$1 = () => col2Checkbox({
583
719
  help: 'Just hit "Next" if none apply',
584
720
  helpClass: 't-text-center !t-text-sm',
585
721
  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
- }
722
+ options: '$getCrossSellOptions($get(form), $getVal($get(form), "Type_Of_Legal_Problem"))',
649
723
  });
650
724
 
651
725
  const maritalStatus = (scope) => sbsSelect({
@@ -692,24 +766,6 @@ const pendingCharges = (scope) => sbsYesNoRadio({
692
766
  label: 'Do you currently have any pending charges?'
693
767
  });
694
768
 
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
769
  const primaryInjury$1 = (scope) => sbs2ColRadio({
714
770
  name: scope ? scope + ':' + 'Primary_Injury' : 'Primary_Injury',
715
771
  label: 'Primary Injury:',
@@ -851,25 +907,6 @@ const wouldLikeLawyerToCenter = () => verticalRadio({
851
907
  ]
852
908
  });
853
909
 
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
910
  // ------ Question Groups
874
911
 
875
912
  // NOTE: name must be unique within a form!
@@ -1121,13 +1158,20 @@ function verticalStepSubHeadline(updates) {
1121
1158
  function commentsStepHeadline(updates) {
1122
1159
  return {
1123
1160
  $el: 'h3',
1124
- children: updates.headline || 'Additional Case Details',
1161
+ children: updates.headline || 'Additional Details',
1125
1162
  attrs: {
1126
1163
  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
1164
  }
1128
1165
  }
1129
1166
  }
1130
1167
 
1168
+ function commentsStepHeadlineLegal(updates) {
1169
+ return commentsStepHeadline({
1170
+ headline: updates.headline || 'Additional Case Details',
1171
+ headlineClass: updates.headlineClass
1172
+ })
1173
+ }
1174
+
1131
1175
  function firstAndLastStepHeadline(updates) {
1132
1176
  return {
1133
1177
  $el: 'h3',
@@ -1151,7 +1195,7 @@ function legalCrossSellsStepHeadline(updates) {
1151
1195
  function contactStepHeadline(updates) {
1152
1196
  return {
1153
1197
  $el: 'h3',
1154
- children: updates.headline || DEFAULT_FINAL_HEADLINE_DYNAMIC,
1198
+ children: updates.headline || DEFAULT_FINAL_HEADLINE_DYNAMIC_LEGAL,
1155
1199
  attrs: {
1156
1200
  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
1201
  }
@@ -1161,7 +1205,7 @@ function contactStepHeadline(updates) {
1161
1205
  function contactStepSubHeadline(updates) {
1162
1206
  return {
1163
1207
  $el: 'h5',
1164
- children: updates.subheadline || DEFAULT_FINAL_SUBHEADLINE_DYNAMIC,
1208
+ children: updates.subheadline || DEFAULT_FINAL_SUBHEADLINE_DYNAMIC_LEGAL,
1165
1209
  attrs: {
1166
1210
  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
1211
  }
@@ -1201,10 +1245,16 @@ const stepDefaults = (step, stepKey) => ({
1201
1245
  }
1202
1246
  });
1203
1247
 
1204
- function step(name, inputs, nextOnEnter = true, nextOnInput = false, stepKey = undefined, nextStepMap = undefined, autoFocus = undefined) {
1205
- if (typeof nextOnEnter === 'undefined') {
1206
- nextOnEnter = true;
1207
- }
1248
+ function step(name, inputs, updates = {}) {
1249
+ const {
1250
+ nextOnEnter = true,
1251
+ nextOnInput = false,
1252
+ stepKey = undefined,
1253
+ nextStepMap = undefined,
1254
+ triggerRedirectMap = undefined,
1255
+ autoFocus = undefined,
1256
+ } = updates;
1257
+
1208
1258
  if (inputs && inputs.length && (nextOnEnter || nextOnInput)) {
1209
1259
  const lastInput = findLastInput(inputs[inputs.length - 1]);
1210
1260
  if (lastInput && nextOnEnter === true) {
@@ -1224,6 +1274,7 @@ function step(name, inputs, nextOnEnter = true, nextOnInput = false, stepKey = u
1224
1274
  id: name,
1225
1275
  name: name,
1226
1276
  nextStepMap: nextStepMap,
1277
+ triggerRedirectMap: triggerRedirectMap,
1227
1278
  autoFocus: autoFocus,
1228
1279
  children: inputs
1229
1280
  }
@@ -1234,44 +1285,17 @@ function step(name, inputs, nextOnEnter = true, nextOnInput = false, stepKey = u
1234
1285
 
1235
1286
  // Single question step
1236
1287
  function sqstep(name, input, defaultHeadline, updates = {}) {
1288
+ if (typeof updates.nextOnInput === 'undefined') {
1289
+ updates.nextOnInput = true;
1290
+ }
1291
+
1237
1292
  return step(
1238
1293
  name,
1239
1294
  [
1240
1295
  verticalStepHeadline({ headline: updates.headline ?? defaultHeadline, headlineClass: updates.headlineClass }),
1241
1296
  ...Array.isArray(input) ? input : [input],
1242
1297
  ],
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
1298
+ updates
1275
1299
  )
1276
1300
  }
1277
1301
 
@@ -1287,7 +1311,7 @@ function contactInfo(updates = {}) {
1287
1311
  TCPAConsent(updates.scope),
1288
1312
  secureIcon()
1289
1313
  ],
1290
- false, // nextOnEnter
1314
+ { nextOnEnter: false }
1291
1315
  )
1292
1316
  }
1293
1317
 
@@ -1306,10 +1330,46 @@ function firstAndLastV3(updates = {}, scope) {
1306
1330
  firstName(scope),
1307
1331
  lastName(scope)
1308
1332
  ],
1309
- updates.nextOnEnter
1333
+ updates
1310
1334
  )
1311
1335
  }
1312
1336
 
1337
+ function zipcode(updates = {}) {
1338
+ return sqstep(
1339
+ 'zipcode',
1340
+ zipcode$1(updates.scope, true, updates),
1341
+ 'Please verify your Zip Code',
1342
+ updates
1343
+ )
1344
+ }
1345
+
1346
+ function commentsWithBankruptcy(updates = {}) {
1347
+ return step(
1348
+ 'commentsWithBankruptcy',
1349
+ [
1350
+ commentsStepHeadlineLegal(updates),
1351
+ comments({
1352
+ label: typeof updates.label === 'undefined' ? DEFAULT_COMMENTS_LABEL_LEGAL : updates.label,
1353
+ placeholder: updates.placeholder || DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC_LEGAL,
1354
+ inputClass: typeof updates.inputClass === 'undefined' ? '!t-h-32' : updates.inputClass,
1355
+ }, updates.scope),
1356
+ // TODO: needs scope support
1357
+ bankruptcyCrossSell(),
1358
+ {
1359
+ $el: 'div',
1360
+ if: '$get(CrossSell_Bankruptcy).value == true',
1361
+ children: [
1362
+ comments({
1363
+ label: 'Bankruptcy or debt details:',
1364
+ placeholder: 'Please describe your bankrtupcy or debt situation in a few words...',
1365
+ inputClass: '!t-h-16'
1366
+ }, 'CrossSell:Bankruptcy')
1367
+ ],
1368
+ }
1369
+ ],
1370
+ { nextOnEnter: false }
1371
+ )
1372
+ }
1313
1373
 
1314
1374
  function autoAndCarAccidentCrossSellQuestions(updates = {}) {
1315
1375
  return step(
@@ -1327,7 +1387,7 @@ function autoAndCarAccidentCrossSellQuestions(updates = {}) {
1327
1387
  'CrossSell:Auto_and_Car_Accidents'
1328
1388
  )
1329
1389
  ],
1330
- updates.nextOnEnter
1390
+ updates
1331
1391
  )
1332
1392
  }
1333
1393
 
@@ -1346,7 +1406,7 @@ function childCustodyCrossSellQuestions(updates = {}) {
1346
1406
  'CrossSell:Child_Custody'
1347
1407
  )
1348
1408
  ],
1349
- updates.nextOnEnter
1409
+ updates
1350
1410
  )
1351
1411
  }
1352
1412
 
@@ -1365,7 +1425,7 @@ function divorceAndSeparationCrossSellQuestions(updates = {}) {
1365
1425
  'CrossSell:Divorce_and_Separation'
1366
1426
  )
1367
1427
  ],
1368
- updates.nextOnEnter
1428
+ updates
1369
1429
  )
1370
1430
  }
1371
1431
 
@@ -1384,7 +1444,7 @@ function duiAndDWICrossSellQuestions(updates = {}) {
1384
1444
  'CrossSell:DUI_and_DWI'
1385
1445
  )
1386
1446
  ],
1387
- updates.nextOnEnter
1447
+ updates
1388
1448
  )
1389
1449
  }
1390
1450
 
@@ -1404,7 +1464,7 @@ function ssdiCrossSellQuestions(updates = {}) {
1404
1464
  'CrossSell:Social_Security_Disability_and_Insurance'
1405
1465
  )
1406
1466
  ],
1407
- updates.nextOnEnter
1467
+ updates
1408
1468
  )
1409
1469
  }
1410
1470
 
@@ -1424,7 +1484,7 @@ function personalInjuryCrossSellQuestions(updates = {}) {
1424
1484
  'CrossSell:Personal_Injury'
1425
1485
  )
1426
1486
  ],
1427
- updates.nextOnEnter
1487
+ updates
1428
1488
  )
1429
1489
  }
1430
1490
 
@@ -1443,7 +1503,7 @@ function powerOfAttorneyCrossSellQuestions(updates = {}) {
1443
1503
  'CrossSell:Power_of_Attorney'
1444
1504
  )
1445
1505
  ],
1446
- updates.nextOnEnter
1506
+ updates
1447
1507
  )
1448
1508
  }
1449
1509
 
@@ -1462,7 +1522,7 @@ function willsAndTrustsCrossSellQuestions(updates = {}) {
1462
1522
  'CrossSell:Wills_and_Trusts'
1463
1523
  )
1464
1524
  ],
1465
- updates.nextOnEnter
1525
+ updates
1466
1526
  )
1467
1527
  }
1468
1528
 
@@ -1482,29 +1542,19 @@ function workersCompensationCrossSellQuestions(updates = {}) {
1482
1542
  'CrossSell:Workers_Compensation'
1483
1543
  )
1484
1544
  ],
1485
- updates.nextOnEnter
1545
+ updates
1486
1546
  )
1487
1547
  }
1488
1548
 
1489
1549
  function legalCrossSells(updates = {}) {
1550
+ updates.nextOnInput = false;
1551
+ updates.stepKey = '$get(Type_Of_Legal_Problem).value';
1490
1552
  return step(
1491
1553
  'legalCrossSells',
1492
1554
  [
1493
1555
  legalCrossSellsStepHeadline(updates),
1494
1556
  legalCrossSells$1(),
1495
1557
  ],
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
1558
  updates
1509
1559
  )
1510
1560
  }
@@ -1515,10 +1565,7 @@ function civilLawsuitTOLP(updates = {}) {
1515
1565
  [
1516
1566
  civilLawsuitTOLPCenter(),
1517
1567
  ],
1518
- updates.nextOnEnter,
1519
- updates.nextOnInput,
1520
- updates.stepKey,
1521
- updates.nextStepMap
1568
+ updates
1522
1569
  )
1523
1570
  }
1524
1571
 
@@ -1832,9 +1879,7 @@ function formProps(updates) {
1832
1879
  return props
1833
1880
  }
1834
1881
 
1835
- const metaDefaults = {
1836
- tcpaLanguage: TCPA_LANGUAGE
1837
- };
1882
+ const metaDefaults = {};
1838
1883
 
1839
1884
  function metaProps(updates) {
1840
1885
  const data = merge(
@@ -1847,7 +1892,7 @@ function metaProps(updates) {
1847
1892
  }
1848
1893
  }
1849
1894
 
1850
- function defaultMetaProps(tolps = null) {
1895
+ function defaultMetaPropsLegal(tolps = null) {
1851
1896
  let commentsPlaceholders = TOLPCommentsPlaceholders;
1852
1897
  let finalHeadlines = TOLPFinalHeadlines;
1853
1898
  let finalSubHeadlines = TOLPFinalSubHeadlines;
@@ -1857,12 +1902,13 @@ function defaultMetaProps(tolps = null) {
1857
1902
  finalSubHeadlines = filterMapByKey(TOLPFinalSubHeadlines, tolps);
1858
1903
  }
1859
1904
  return metaProps({
1860
- defaultCommentsPlaceholder: DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC,
1905
+ tcpaLanguage: TCPA_LANGUAGE_LEGAL,
1906
+ defaultCommentsPlaceholder: DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC_LEGAL,
1861
1907
  commentsPlaceholders: commentsPlaceholders,
1862
- defaultFinalHeadline: DEFAULT_FINAL_HEADLINE,
1908
+ defaultFinalHeadline: DEFAULT_FINAL_HEADLINE_LEGAL,
1863
1909
  finalHeadlines: finalHeadlines,
1864
- defaultFinalSubHeadline: DEFAULT_FINAL_SUBHEADLINE,
1865
- finalSubHeadlines: finalSubHeadlines,
1910
+ defaultFinalSubHeadline: DEFAULT_FINAL_SUBHEADLINE_LEGAL,
1911
+ finalSubHeadlines: finalSubHeadlines
1866
1912
  })
1867
1913
  }
1868
1914
 
@@ -2431,346 +2477,384 @@ const nextStepsLegalNoHA = [
2431
2477
  ];
2432
2478
 
2433
2479
  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',
2480
+ values: {
2481
+ 'Type_Of_Legal_Problem': {
2482
+ 'Adoption': [
2483
+ 'maritalStatus',
2484
+ 'haveChildren',
2485
+ ...nextStepsLegalDefaultLPM
2486
+ ],
2487
+ 'Asbestos and Mesothelioma': [
2488
+ 'incidentDate',
2489
+ 'doctorTreatment',
2490
+ ...nextStepsLegalDefault
2491
+ ],
2492
+ 'Auto and Car Accidents': [
2493
+ 'incidentDate',
2494
+ 'atFault',
2495
+ 'primaryInjury',
2496
+ 'doctorTreatment',
2497
+ 'policeReportFiled',
2498
+ ...nextStepsLegalNoDOI
2499
+ ],
2500
+ 'Bankruptcy': [
2501
+ 'totalMonthlyIncome',
2502
+ 'totalDebt',
2503
+ 'ownRealEstate',
2504
+ 'valueOfAssets',
2505
+ ...nextStepsLegalDefault
2506
+ ],
2507
+ 'Business Lawyers': [
2508
+ 'businessServices',
2509
+ 'businessType',
2510
+ 'numEmployeesOfBusiness',
2511
+ ...nextStepsLegalDefault
2512
+ ],
2513
+ 'Child Custody': [
2514
+ 'childRelationship',
2515
+ 'childHome',
2516
+ 'childPrimaryCaregiver',
2517
+ ...nextStepsLegalDefaultLPM
2518
+ ],
2519
+ 'Child Support': [
2520
+ 'childRelationship',
2521
+ 'childHome',
2522
+ 'childPrimaryCaregiver',
2523
+ ...nextStepsLegalDefaultLPM
2524
+ ],
2525
+ 'Civil Rights and Discrimination': [
2526
+ 'civilRightsType',
2527
+ ...nextStepsLegalDefault
2528
+ ],
2529
+ 'Civil Lawsuit': [
2530
+ 'civilDefense',
2531
+ 'lawsuitOtherParty',
2532
+ ...nextStepsLegalDefault
2533
+ ],
2534
+ 'File a Lawsuit': [
2535
+ 'civilLawsuitTOLPDisplay',
2536
+ 'lawsuitOtherParty',
2537
+ ...nextStepsLegalDefault
2538
+ ],
2539
+ 'Defend a Lawsuit': [
2540
+ 'lawsuitOtherParty',
2541
+ ...nextStepsLegalDefault
2542
+ ],
2543
+ 'Consumer Lawyers': [
2544
+ 'consumerLawyerType',
2545
+ 'incidentDate',
2546
+ 'lawsuitOtherParty',
2547
+ ...nextStepsLegalDefault
2548
+ ],
2549
+ 'Criminal and Felony': [
2550
+ 'criminalTOLPDisplay',
2551
+ 'crimeCommittedDate',
2552
+ 'roleInMatterCriminal',
2553
+ 'pendingCharges',
2554
+ ...nextStepsLegalDefaultLPM
2555
+ ],
2556
+ 'Debt and Collections': [
2557
+ 'totalMonthlyIncome',
2558
+ 'totalDebt',
2559
+ 'ownRealEstate',
2560
+ 'valueOfAssets',
2561
+ ...nextStepsLegalDefault
2562
+ ],
2563
+ 'Divorce and Separation': [
2564
+ 'maritalStatus',
2565
+ 'haveChildren',
2566
+ ...nextStepsLegalDefaultLPM
2567
+ ],
2568
+ 'DUI and DWI': [
2569
+ 'incidentDate',
2570
+ 'priorAlcoholOffenses',
2571
+ 'typeOfAlcoholTest',
2572
+ 'bloodContentAlcoholTest',
2573
+ 'pendingCharges',
2574
+ ...nextStepsLegalDefault
2575
+ ],
2576
+ 'Employment and Workplace': [
2577
+ 'employmentAndWorkplaceTOLPDisplay',
2578
+ 'numEmployeesOfBusiness',
2579
+ 'employerType',
2580
+ 'employeeAtCompany',
2581
+ ...nextStepsLegalDefault
2582
+ ],
2583
+ 'Expungement': [
2584
+ 'incidentDate',
2585
+ 'criminalChargeType',
2586
+ ...nextStepsLegalDefaultLPM
2587
+ ],
2588
+ 'Family Issues': [
2589
+ 'maritalStatus',
2590
+ 'haveChildren',
2591
+ ...nextStepsLegalDefaultLPM
2592
+ ],
2593
+ 'Foreclosure': [
2594
+ 'ownRealEstate',
2595
+ 'typeOfProperty',
2596
+ 'amountPaymentsPastDue',
2597
+ 'loanAmount',
2598
+ 'defaultNotice',
2599
+ ...nextStepsLegalDefault
2600
+ ],
2601
+ 'Guardianship': [
2602
+ 'maritalStatus',
2603
+ 'haveChildren',
2604
+ ...nextStepsLegalDefaultLPM
2605
+ ],
2606
+ 'Immigration and Visas': [
2607
+ 'countryOfCitizenship',
2608
+ 'immigrationLocation',
2609
+ 'immigrationEntry',
2610
+ 'immigrationType',
2611
+ 'immigrationStatus',
2612
+ 'immigrationDetails',
2613
+ ...nextStepsLegalDefault
2614
+ ],
2615
+ 'Landlord and Tenant': [
2616
+ 'landlordTenantIssue',
2617
+ 'landlordTenantParty',
2618
+ ...nextStepsLegalDefault
2619
+ ],
2620
+ 'Lemon Law': [
2621
+ 'incidentDate',
2622
+ 'lawsuitOtherParty',
2623
+ ...nextStepsLegalDefault
2624
+ ],
2625
+ 'Long Term Disability': [
2626
+ 'applicantOccupation',
2627
+ 'applicantAge',
2628
+ 'applicantLTDisabilityPolicy',
2629
+ 'applicantDisabilityHowObtain',
2630
+ 'applicantPreviouslyAppliedLtdBenefits',
2631
+ 'applicantReceivedDisabilityBenefits',
2632
+ 'applicantMonthlySalary',
2633
+ ...nextStepsLegalNoDOI
2634
+ ],
2635
+ 'Medical Malpractice': [
2636
+ 'incidentDate',
2637
+ 'claimStatus',
2638
+ 'doctorTreatment',
2639
+ 'medicalMalpracticeInjuries',
2640
+ ...nextStepsLegalDefault
2641
+ ],
2642
+ 'Patents and Intellectual Property': [
2643
+ 'patentAssistanceType',
2644
+ 'patentFor',
2645
+ ...nextStepsLegalDefault
2646
+ ],
2647
+ 'Personal Injury': [
2648
+ 'incidentDate',
2649
+ 'claimStatus',
2650
+ 'atFault',
2651
+ 'primaryInjury',
2652
+ 'doctorTreatment',
2653
+ ...nextStepsLegalNoDOI
2654
+ ],
2655
+ 'Probate and Estates': [
2656
+ 'valueOfAssets',
2657
+ 'typeOfAssets',
2658
+ 'roleInMatterProbate',
2659
+ 'estateLegalServicesNeeded',
2660
+ ...nextStepsLegalDefault
2661
+ ],
2662
+ 'Property Damage': [
2663
+ 'realEstateArea',
2664
+ 'wouldLikeLawyerTo',
2665
+ ...nextStepsLegalDefault
2666
+ ],
2667
+ 'Real Estate': [
2668
+ 'realEstateTOLPDisplay',
2669
+ 'realEstateArea',
2670
+ 'wouldLikeLawyerTo',
2671
+ ...nextStepsLegalDefault
2672
+ ],
2673
+ 'Social Security Disability and Insurance': [
2674
+ 'applicantAge',
2675
+ 'disabilityConditionStopWork',
2676
+ 'disabilityWorkHistory',
2677
+ 'socialSecurityDisabilityReceivingBenefits',
2678
+ 'doctorTreatment',
2679
+ ...nextStepsLegalNoDOI
2680
+ ],
2681
+ 'Tax and IRS': [
2682
+ 'totalDebt',
2683
+ 'taxProblemDetails',
2684
+ 'taxLevel',
2685
+ 'taxIssueType',
2686
+ ...nextStepsLegalDefault
2687
+ ],
2688
+ 'Traffic and Tickets': [
2689
+ 'driversLicenseType',
2690
+ 'trafficViolations',
2691
+ 'haveCourtDate',
2692
+ ...nextStepsLegalDefault
2693
+ ],
2694
+ 'Unemployment': [
2695
+ 'numEmployeesOfBusiness',
2696
+ 'employerType',
2697
+ ...nextStepsLegalNoHA
2698
+ ],
2699
+ 'Victim of a Crime': [
2700
+ 'crimeCommittedDate',
2701
+ 'roleInMatterCriminal',
2702
+ 'pendingCharges',
2703
+ ...nextStepsLegalDefaultLPM
2704
+ ],
2705
+ 'Wills and Trusts': [
2706
+ 'valueOfAssets',
2707
+ 'typeOfAssets',
2708
+ 'roleInMatterProbate',
2709
+ 'estateLegalServicesNeeded',
2710
+ ...nextStepsLegalDefault
2711
+ ],
2712
+ 'Workers Compensation': [
2713
+ 'incidentDate',
2714
+ 'claimStatus',
2715
+ 'primaryInjury',
2716
+ 'causeOfInjury',
2717
+ 'doctorTreatment',
2718
+ ...nextStepsLegalNoDOI
2719
+ ],
2720
+ 'Workplace Harassment': [
2721
+ 'numEmployeesOfBusiness',
2722
+ 'employerType',
2723
+ 'employeeAtCompany',
2724
+ ...nextStepsLegalDefault
2725
+ ],
2726
+ 'Workplace Discrimination': [
2727
+ 'numEmployeesOfBusiness',
2728
+ 'employerType',
2729
+ 'employeeAtCompany',
2730
+ ...nextStepsLegalDefault
2731
+ ],
2732
+ 'Wrongful Death': [
2733
+ 'incidentDate',
2734
+ 'relationshipToVictim',
2735
+ 'criminalChargesFiled',
2736
+ 'causeOfDeath',
2737
+ ...nextStepsLegalNoDOI
2738
+ ],
2739
+ 'Wrongful Termination': [
2740
+ 'numEmployeesOfBusiness',
2741
+ 'employerType',
2742
+ ...nextStepsLegalDefault
2743
+ ],
2744
+ },
2745
+ '*': nextStepsLegalDefault
2746
+ }
2747
+ };
2748
+
2749
+ const TOLPNextSteps = nextStepsMapGeneralLegal["values"]["Type_Of_Legal_Problem"];
2750
+
2751
+ ({
2752
+ values: {
2753
+ 'Civil_Defense': {
2754
+ 'Yes': TOLPNextSteps["Defend a Lawsuit"],
2755
+ 'No': TOLPNextSteps["File a Lawsuit"],
2756
+ },
2757
+ '*': [
2489
2758
  'lawsuitOtherParty',
2490
2759
  ...nextStepsLegalDefault
2491
- ],
2492
- 'Defend a Lawsuit': [
2760
+ ]
2761
+ }
2762
+ });
2763
+
2764
+ const nextStepsMapCivilTolp = {
2765
+ values: {
2766
+ 'Type_Of_Legal_Problem': {
2767
+ 'Defend a Lawsuit': TOLPNextSteps["Defend a Lawsuit"],
2768
+ 'File a Lawsuit': TOLPNextSteps["File a Lawsuit"],
2769
+ },
2770
+ '*': [
2493
2771
  'lawsuitOtherParty',
2494
2772
  ...nextStepsLegalDefault
2495
- ],
2496
- 'Consumer Lawyers': [
2497
- 'consumerLawyerType',
2498
- 'incidentDate',
2773
+ ]
2774
+ }
2775
+ };
2776
+
2777
+ const nextStepsMapCivilTOLPDisplay = {
2778
+ values: {
2779
+ 'Type_Of_Legal_Problem_Display': {
2780
+ 'Automobile Accident': TOLPNextSteps["Auto and Car Accidents"],
2781
+ 'Contract Disputes': TOLPNextSteps["Business Lawyers"],
2782
+ 'Dog Bite': TOLPNextSteps["Personal Injury"],
2783
+ 'Employment and Workplace': TOLPNextSteps["Employment and Workplace"],
2784
+ 'Fraud': TOLPNextSteps["Consumer Lawyers"],
2785
+ 'Medical Malpractice': TOLPNextSteps["Medical Malpractice"],
2786
+ 'Personal Injury': TOLPNextSteps["Personal Injury"],
2787
+ 'Property Damage': TOLPNextSteps["Property Damage"],
2788
+ 'Real Estate': TOLPNextSteps["Real Estate"],
2789
+ 'Not Sure or Other': nextStepsMapGeneralLegal["values"]["*"],
2790
+ },
2791
+ '*': [
2499
2792
  'lawsuitOtherParty',
2500
2793
  ...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',
2794
+ ]
2795
+ }
2796
+ };
2797
+
2798
+ ({
2799
+ values: {
2800
+ 'Type_Of_Legal_Problem_Display': {
2801
+ 'Wrongful Termination': TOLPNextSteps["Wrongful Termination"],
2802
+ 'Workers Compensation': TOLPNextSteps["Workers Compensation"],
2803
+ 'Personal Injury': TOLPNextSteps["Personal Injury"],
2804
+ 'Unemployment': TOLPNextSteps["Unemployment"],
2805
+ },
2806
+ '*': [
2531
2807
  'numEmployeesOfBusiness',
2532
2808
  'employerType',
2533
2809
  'employeeAtCompany',
2534
2810
  ...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',
2811
+ ]
2812
+ }
2813
+ });
2814
+
2815
+ ({
2816
+ values: {
2817
+ 'Type_Of_Legal_Problem_Display': {
2818
+ 'Foreclosure': TOLPNextSteps["Foreclosure"],
2819
+ 'Landlord and Tenant': TOLPNextSteps["Landlord and Tenant"],
2820
+ 'Wills, Trusts, and Estates': TOLPNextSteps["Wills and Trusts"],
2821
+ 'Property Damage': TOLPNextSteps['Property Damage'],
2822
+ },
2823
+ '*': [
2622
2824
  'realEstateArea',
2623
2825
  'wouldLikeLawyerTo',
2624
2826
  ...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
- ]
2827
+ ]
2828
+ }
2712
2829
  });
2713
2830
 
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["*"],
2831
+ const nextStepsMapLegalCrossSells = {
2832
+ values: {
2833
+ 'Legal_CrossSells': {
2834
+ 'Auto and Car Accidents': ['autoAndCarAccidentCrossSellQuestions'],
2835
+ 'Personal Injury': ['personalInjuryCrossSellQuestions'],
2836
+ 'Workers Compensation': ['workersCompensationCrossSellQuestions'],
2837
+ 'DUI and DWI': ['duiAndDWICrossSellQuestions'],
2838
+ 'Long Term Disability': ['longTermDisabilityCrossSellQuestions'],
2839
+ 'Social Security Disability and Insurance': ['ssdiCrossSellQuestions'],
2840
+ 'Bankruptcy': ['bankruptcyCrossSellQuestions'],
2841
+ 'Power of Attorney': ['powerOfAttorneyCrossSellQuestions'],
2842
+ 'Wills and Trusts': ['willsAndTrustsCrossSellQuestions'],
2843
+ 'Divorce and Separation': ['divorceAndSeparationCrossSellQuestions'],
2844
+ 'Child Custody': ['childCustodyCrossSellQuestions'],
2845
+ },
2846
+ '*': ['firstAndLast', 'contactInfo'],
2737
2847
  },
2738
- '*': [
2739
- 'lawsuitOtherParty',
2740
- ...nextStepsLegalDefault
2741
- ]
2848
+
2849
+ // NOTE: this assumes a certain placement of the cross sell question
2850
+ // in the form flow.
2851
+ appendSteps: ['firstAndLast', 'contactInfo'],
2852
+ matchesAllowed: 1,
2742
2853
  };
2743
2854
 
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
- });
2855
+ const legalCrossSellOptionMap = CROSS_SELL_OPTION_MAP_LEGAL;
2758
2856
 
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
- });
2772
-
2773
- const meta = defaultMetaProps();
2857
+ const meta = defaultMetaPropsLegal();
2774
2858
 
2775
2859
  meta.data.dynamicSchema = [
2776
2860
  atFault(),
@@ -2803,7 +2887,8 @@ meta.data.dynamicSchema = [
2803
2887
  headlineClass: '!t-text-dark',
2804
2888
  }),
2805
2889
  legalCrossSells({
2806
- headlineClass: '!t-text-dark'
2890
+ headlineClass: '!t-text-dark',
2891
+ nextStepMap: nextStepsMapLegalCrossSells,
2807
2892
  }),
2808
2893
  autoAndCarAccidentCrossSellQuestions(),
2809
2894
  personalInjuryCrossSellQuestions(),
@@ -2827,7 +2912,8 @@ const schema = [
2827
2912
  props: formProps({
2828
2913
  formId: 'civilLawsuit',
2829
2914
  redirectMap: legalRedirectMap(),
2830
- valueOverrideMap: legalAllValueOverrideMap
2915
+ valueOverrideMap: legalAllValueOverrideMap,
2916
+ crossSellOptionMap: legalCrossSellOptionMap
2831
2917
  }),
2832
2918
  children: [
2833
2919
  progressBar(),