bhl-forms 0.6.14 → 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 +647 -575
  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
 
@@ -203,6 +286,76 @@ const sbsDate = (updates) => {
203
286
  return date(updates)
204
287
  };
205
288
 
289
+ const email = (scope) => sbsText({
290
+ $formkit: 'email',
291
+ name: scope ? scope + ':' + 'Email' : 'Email',
292
+ label: 'Email Address:',
293
+ placeholder: 'email@domain.com',
294
+ autocomplete: 'email',
295
+ 'data-tf-sensitive': 'false',
296
+ validation: 'required|email',
297
+ validationMessages: {
298
+ required: 'Email is required',
299
+ email: 'Invalid Email'
300
+ }
301
+ });
302
+
303
+ const firstName = (scope) => sbsText({
304
+ label: 'First Name:',
305
+ placeholder: 'First',
306
+ name: scope ? scope + ':' + 'First_Name' : 'First_Name',
307
+ autocomplete: "given-name",
308
+ validationMessages: {
309
+ required: 'First Name is required'
310
+ }
311
+ });
312
+
313
+ const lastName = (scope) => sbsText({
314
+ label: 'Last Name:',
315
+ placeholder: 'Last',
316
+ name: scope ? scope + ':' + 'Last_Name' : 'Last_Name',
317
+ autocomplete: "family-name",
318
+ validationMessages: {
319
+ required: 'Last Name is required'
320
+ }
321
+ });
322
+
323
+ const phone = (scope) => sbsText({
324
+ $formkit: 'tel',
325
+ name: scope ? scope + ':' + 'Primary_Phone' : 'Primary_Phone',
326
+ label: 'Phone Number:',
327
+ placeholder: '###-###-####',
328
+ maxlength: 12,
329
+ help: '10-digit phone number, hyphens optional',
330
+ autocomplete: 'tel-national',
331
+ 'data-tf-sensitive': 'false',
332
+ validation: 'required|matches:/^[0-9]{3}-?[0-9]{3}-?[0-9]{4}$/|valid_phone',
333
+ validationMessages: {
334
+ required: 'Field is required',
335
+ matches: 'Invalid Phone Format, use ###-###-####',
336
+ valid_phone: 'Invalid Phone Number'
337
+ },
338
+ helpClass: "t-mt-2.5 md:t-text-right md:t-mt-[-2px]"
339
+ });
340
+
341
+ const zipcodeCenter = (updates = {}, scope) => text({
342
+ placeholder: '#####',
343
+ help: updates.help ?? "We try to match you with local help",
344
+ name: scope ? scope + ':' + 'Zip' : 'Zip',
345
+ maxlength: 5,
346
+ inputmode: "numeric",
347
+ autocomplete: 'postal-code',
348
+ validation: 'required|matches:/^[0-9]{5}$/',
349
+ validationMessages: {
350
+ required: 'Zip Code is required',
351
+ matches: 'Invalid Zip Code'
352
+ },
353
+ wrapperClass: 't-flex t-justify-center',
354
+ messagesClass: 't-flex t-justify-center',
355
+ inputClass: 't-text-center',
356
+ helpClass: 't-mt-2.5 !t-text-sm t-text-center'
357
+ });
358
+
206
359
  const applicantAge = (scope) => sbsText({
207
360
  name: scope ? scope + ':' + 'Applicant_Age' : 'Applicant_Age',
208
361
  label: 'Age of Applicant?',
@@ -350,20 +503,6 @@ const doctorTreatment = (scope) => sbsYesNoRadio({
350
503
  label: 'Have You Recently Been Treated by a Doctor, Hospital or Clinic?',
351
504
  });
352
505
 
353
- const email = (scope) => sbsText({
354
- $formkit: 'email',
355
- name: scope ? scope + ':' + 'Email' : 'Email',
356
- label: 'Email Address:',
357
- placeholder: 'email@domain.com',
358
- autocomplete: 'email',
359
- 'data-tf-sensitive': 'false',
360
- validation: 'required|email',
361
- validationMessages: {
362
- required: 'Email is required',
363
- email: 'Invalid Email'
364
- }
365
- });
366
-
367
506
  const estateLegalServicesNeeded = (scope) => sbsSelect({
368
507
  name: scope ? scope + ':' + 'Estate_Legal_Services_Needed' : 'Estate_Legal_Services_Needed',
369
508
  label: "Legal Services Needed for Your Estate:",
@@ -377,17 +516,6 @@ const estateLegalServicesNeeded = (scope) => sbsSelect({
377
516
  ]
378
517
  });
379
518
 
380
- const firstName = (scope) => sbsText({
381
- $formkit: 'text',
382
- label: 'First Name:',
383
- placeholder: 'First',
384
- name: scope ? scope + ':' + 'First_Name' : 'First_Name',
385
- autocomplete: "given-name",
386
- validationMessages: {
387
- required: 'First Name is required'
388
- }
389
- });
390
-
391
519
  const haveAttorney$1 = (scope) => sbsYesNoRadio({
392
520
  name: scope ? scope + ':' + 'Have_Attorney' : 'Have_Attorney',
393
521
  label: 'Already Working with An Attorney?'
@@ -406,17 +534,6 @@ const incidentDate = (scope) => sbsDate({
406
534
  label: 'Date of Incident:',
407
535
  });
408
536
 
409
- const lastName = (scope) => sbsText({
410
- $formkit: 'text',
411
- label: 'Last Name:',
412
- placeholder: 'Last',
413
- name: scope ? scope + ':' + 'Last_Name' : 'Last_Name',
414
- autocomplete: "family-name",
415
- validationMessages: {
416
- required: 'Last Name is required'
417
- }
418
- });
419
-
420
537
  const lawyerPaymentMethodCenter = (scope) => col2RadioCenter({
421
538
  name: scope ? scope + ':' + 'Lawyer_Payment_Method' : 'Lawyer_Payment_Method',
422
539
  help: 'No payment necessary to start a consultation.',
@@ -435,69 +552,7 @@ const legalCrossSells$1 = () => col2Checkbox({
435
552
  help: 'Just hit "Next" if none apply',
436
553
  helpClass: 't-text-center !t-text-sm',
437
554
  validation: null,
438
- options: {
439
- if: '$getVal($get(form), "Type_Of_Legal_Problem") === "Auto and Car Accidents"',
440
- then: {
441
- 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
442
- 'Wills and Trusts': 'Need a Will or Trust',
443
- 'Workers Compensation': 'Workplace Injury',
444
- 'Power of Attorney': 'Update Power of Attorney',
445
- 'Divorce and Separation': 'Need a Divorce or Separation',
446
- 'Child Custody': 'Need help with Child Custody',
447
- },
448
- else: {
449
- if: '$getVal($get(form), "Type_Of_Legal_Problem") === "Personal Injury" || $getVal($get(form), "Type_Of_Legal_Problem") === "Workers Compensation"',
450
- then: {
451
- 'DUI and DWI': 'Involved in a DUI/DWI',
452
- 'Wills and Trusts': 'Need a Will or Trust',
453
- 'Power of Attorney': 'Update Power of Attorney',
454
- 'Divorce and Separation': 'Need a Divorce or Separation',
455
- 'Child Custody': 'Need help with Child Custody',
456
- // TODO add one more?
457
- },
458
- else: {
459
- if: '$getVal($get(form), "Type_Of_Legal_Problem") === "DUI and DWI"',
460
- then: {
461
- 'Personal Injury': 'Personal or Workplace Injury',
462
- 'Wills and Trusts': 'Need a Will or Trust',
463
- 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
464
- 'Power of Attorney': 'Update Power of Attorney',
465
- 'Divorce and Separation': 'Need a Divorce or Separation',
466
- 'Child Custody': 'Need help with Child Custody',
467
- },
468
- else: {
469
- 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"',
470
- then: {
471
- 'Auto and Car Accidents': 'Injured in a Car Accident',
472
- 'Personal Injury': 'Personal or Workplace Injury',
473
- 'DUI and DWI': 'Involved in a DUI/DWI',
474
- 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
475
- 'Divorce and Separation': 'Need a Divorce or Separation',
476
- 'Child Custody': 'Need help with Child Custody',
477
- },
478
- else: {
479
- if: '$getVal($get(form), "Type_Of_Legal_Problem") === "Long Term Disability" || $getVal($get(form), "Type_Of_Legal_Problem") === "Social Security Disability and Insurance"',
480
- then: {
481
- 'Auto and Car Accidents': 'Injured in a Car Accident',
482
- 'DUI and DWI': 'Involved in a DUI/DWI',
483
- 'Wills and Trusts': 'Need a Will or Trust',
484
- 'Power of Attorney': 'Update Power of Attorney',
485
- 'Divorce and Separation': 'Need a Divorce or Separation',
486
- 'Child Custody': 'Need help with Child Custody',
487
- },
488
- else: {
489
- 'Auto and Car Accidents': 'Injured in a Car Accident',
490
- 'Personal Injury': 'Personal or Workplace Injury',
491
- 'DUI and DWI': 'Involved in a DUI/DWI',
492
- 'Wills and Trusts': 'Need a Will or Trust',
493
- 'Power of Attorney': 'Update Power of Attorney',
494
- 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
495
- }
496
- }
497
- }
498
- }
499
- }
500
- }
555
+ options: '$getCrossSellOptions($get(form), $getVal($get(form), "Type_Of_Legal_Problem"))',
501
556
  });
502
557
 
503
558
  const maritalStatusCenter = (scope) => col2RadioCenter({
@@ -517,24 +572,6 @@ const pendingCharges = (scope) => sbsYesNoRadio({
517
572
  label: 'Do you currently have any pending charges?'
518
573
  });
519
574
 
520
- const phone = (scope) => sbsText({
521
- $formkit: 'tel',
522
- name: scope ? scope + ':' + 'Primary_Phone' : 'Primary_Phone',
523
- label: 'Phone Number:',
524
- placeholder: '###-###-####',
525
- maxlength: 12,
526
- help: '10-digit phone number, hyphens optional',
527
- autocomplete: 'tel-national',
528
- 'data-tf-sensitive': 'false',
529
- validation: 'required|matches:/^[0-9]{3}-?[0-9]{3}-?[0-9]{4}$/|valid_phone',
530
- validationMessages: {
531
- required: 'Field is required',
532
- matches: 'Invalid Phone Format, use ###-###-####',
533
- valid_phone: 'Invalid Phone Number'
534
- },
535
- helpClass: "t-mt-2.5 md:t-text-right md:t-mt-[-2px]"
536
- });
537
-
538
575
  const primaryInjury = (scope) => sbs2ColRadio({
539
576
  name: scope ? scope + ':' + 'Primary_Injury' : 'Primary_Injury',
540
577
  label: 'Primary Injury:',
@@ -631,25 +668,6 @@ const valueOfAssets = (scope) => sbsSelect({
631
668
  ]
632
669
  });
633
670
 
634
- const zipcodeCenter = (updates = {}, scope) => text({
635
- placeholder: '#####',
636
- help: updates.help ?? "We try to match you with local legal help",
637
- name: scope ? scope + ':' + 'Zip' : 'Zip',
638
- maxlength: 5,
639
- inputmode: "numeric",
640
- autocomplete: 'postal-code',
641
- validation: 'required|matches:/^[0-9]{5}$/',
642
- validationMessages: {
643
- required: 'Zip Code is required',
644
- matches: 'Invalid Zip Code'
645
- },
646
- wrapperClass: 't-flex t-justify-center',
647
- messagesClass: 't-flex t-justify-center',
648
- inputClass: 't-text-center',
649
- helpClass: 't-mt-2.5 !t-text-sm t-text-center'
650
- });
651
-
652
-
653
671
  // ------ Question Groups
654
672
 
655
673
  // NOTE: name must be unique within a form!
@@ -857,13 +875,20 @@ function verticalStepSubHeadline(updates) {
857
875
  function commentsStepHeadline(updates) {
858
876
  return {
859
877
  $el: 'h3',
860
- children: updates.headline || 'Additional Case Details',
878
+ children: updates.headline || 'Additional Details',
861
879
  attrs: {
862
880
  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 || '')
863
881
  }
864
882
  }
865
883
  }
866
884
 
885
+ function commentsStepHeadlineLegal(updates) {
886
+ return commentsStepHeadline({
887
+ headline: updates.headline || 'Additional Case Details',
888
+ headlineClass: updates.headlineClass
889
+ })
890
+ }
891
+
867
892
  function firstAndLastStepHeadline(updates) {
868
893
  return {
869
894
  $el: 'h3',
@@ -887,7 +912,7 @@ function legalCrossSellsStepHeadline(updates) {
887
912
  function contactStepHeadline(updates) {
888
913
  return {
889
914
  $el: 'h3',
890
- children: updates.headline || DEFAULT_FINAL_HEADLINE_DYNAMIC,
915
+ children: updates.headline || DEFAULT_FINAL_HEADLINE_DYNAMIC_LEGAL,
891
916
  attrs: {
892
917
  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 || '')
893
918
  }
@@ -897,7 +922,7 @@ function contactStepHeadline(updates) {
897
922
  function contactStepSubHeadline(updates) {
898
923
  return {
899
924
  $el: 'h5',
900
- children: updates.subheadline || DEFAULT_FINAL_SUBHEADLINE_DYNAMIC,
925
+ children: updates.subheadline || DEFAULT_FINAL_SUBHEADLINE_DYNAMIC_LEGAL,
901
926
  attrs: {
902
927
  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 || '')
903
928
  }
@@ -937,10 +962,16 @@ const stepDefaults = (step, stepKey) => ({
937
962
  }
938
963
  });
939
964
 
940
- function step(name, inputs, nextOnEnter = true, nextOnInput = false, stepKey = undefined, nextStepMap = undefined, autoFocus = undefined) {
941
- if (typeof nextOnEnter === 'undefined') {
942
- nextOnEnter = true;
943
- }
965
+ function step(name, inputs, updates = {}) {
966
+ const {
967
+ nextOnEnter = true,
968
+ nextOnInput = false,
969
+ stepKey = undefined,
970
+ nextStepMap = undefined,
971
+ triggerRedirectMap = undefined,
972
+ autoFocus = undefined,
973
+ } = updates;
974
+
944
975
  if (inputs && inputs.length && (nextOnEnter || nextOnInput)) {
945
976
  const lastInput = findLastInput(inputs[inputs.length - 1]);
946
977
  if (lastInput && nextOnEnter === true) {
@@ -960,6 +991,7 @@ function step(name, inputs, nextOnEnter = true, nextOnInput = false, stepKey = u
960
991
  id: name,
961
992
  name: name,
962
993
  nextStepMap: nextStepMap,
994
+ triggerRedirectMap: triggerRedirectMap,
963
995
  autoFocus: autoFocus,
964
996
  children: inputs
965
997
  }
@@ -970,44 +1002,17 @@ function step(name, inputs, nextOnEnter = true, nextOnInput = false, stepKey = u
970
1002
 
971
1003
  // Single question step
972
1004
  function sqstep(name, input, defaultHeadline, updates = {}) {
1005
+ if (typeof updates.nextOnInput === 'undefined') {
1006
+ updates.nextOnInput = true;
1007
+ }
1008
+
973
1009
  return step(
974
1010
  name,
975
1011
  [
976
1012
  verticalStepHeadline({ headline: updates.headline ?? defaultHeadline, headlineClass: updates.headlineClass }),
977
1013
  ...Array.isArray(input) ? input : [input],
978
1014
  ],
979
- updates.nextOnEnter,
980
- typeof updates.nextOnInput === 'undefined' ? true : updates.nextOnInput,
981
- updates.stepKey,
982
- updates.nextStepMap
983
- )
984
- }
985
-
986
- function commentsWithBankruptcy(updates = {}) {
987
- return step(
988
- 'commentsWithBankruptcy',
989
- [
990
- commentsStepHeadline(updates),
991
- comments({
992
- label: typeof updates.label === 'undefined' ? DEFAULT_COMMENTS_LABEL : updates.label,
993
- placeholder: updates.placeholder || DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC,
994
- inputClass: typeof updates.inputClass === 'undefined' ? '!t-h-32' : updates.inputClass,
995
- }, updates.scope),
996
- // TODO: needs scope support
997
- bankruptcyCrossSell(),
998
- {
999
- $el: 'div',
1000
- if: '$get(CrossSell_Bankruptcy).value == true',
1001
- children: [
1002
- comments({
1003
- label: 'Bankruptcy or debt details:',
1004
- placeholder: 'Please describe your bankrtupcy or debt situation in a few words...',
1005
- inputClass: '!t-h-16'
1006
- }, 'CrossSell:Bankruptcy')
1007
- ],
1008
- }
1009
- ],
1010
- false // nextOnEnter
1015
+ updates
1011
1016
  )
1012
1017
  }
1013
1018
 
@@ -1023,7 +1028,7 @@ function contactInfo(updates = {}) {
1023
1028
  TCPAConsent(updates.scope),
1024
1029
  secureIcon()
1025
1030
  ],
1026
- false, // nextOnEnter
1031
+ { nextOnEnter: false }
1027
1032
  )
1028
1033
  }
1029
1034
 
@@ -1042,10 +1047,46 @@ function firstAndLastV3(updates = {}, scope) {
1042
1047
  firstName(scope),
1043
1048
  lastName(scope)
1044
1049
  ],
1045
- updates.nextOnEnter
1050
+ updates
1046
1051
  )
1047
1052
  }
1048
1053
 
1054
+ function zipcode(updates = {}) {
1055
+ return sqstep(
1056
+ 'zipcode',
1057
+ zipcodeCenter(updates, updates.scope),
1058
+ 'Please verify your Zip Code',
1059
+ updates
1060
+ )
1061
+ }
1062
+
1063
+ function commentsWithBankruptcy(updates = {}) {
1064
+ return step(
1065
+ 'commentsWithBankruptcy',
1066
+ [
1067
+ commentsStepHeadlineLegal(updates),
1068
+ comments({
1069
+ label: typeof updates.label === 'undefined' ? DEFAULT_COMMENTS_LABEL_LEGAL : updates.label,
1070
+ placeholder: updates.placeholder || DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC_LEGAL,
1071
+ inputClass: typeof updates.inputClass === 'undefined' ? '!t-h-32' : updates.inputClass,
1072
+ }, updates.scope),
1073
+ // TODO: needs scope support
1074
+ bankruptcyCrossSell(),
1075
+ {
1076
+ $el: 'div',
1077
+ if: '$get(CrossSell_Bankruptcy).value == true',
1078
+ children: [
1079
+ comments({
1080
+ label: 'Bankruptcy or debt details:',
1081
+ placeholder: 'Please describe your bankrtupcy or debt situation in a few words...',
1082
+ inputClass: '!t-h-16'
1083
+ }, 'CrossSell:Bankruptcy')
1084
+ ],
1085
+ }
1086
+ ],
1087
+ { nextOnEnter: false }
1088
+ )
1089
+ }
1049
1090
 
1050
1091
  function autoAndCarAccidentCrossSellQuestions(updates = {}) {
1051
1092
  return step(
@@ -1063,7 +1104,7 @@ function autoAndCarAccidentCrossSellQuestions(updates = {}) {
1063
1104
  'CrossSell:Auto_and_Car_Accidents'
1064
1105
  )
1065
1106
  ],
1066
- updates.nextOnEnter
1107
+ updates
1067
1108
  )
1068
1109
  }
1069
1110
 
@@ -1082,7 +1123,7 @@ function duiAndDWICrossSellQuestions(updates = {}) {
1082
1123
  'CrossSell:DUI_and_DWI'
1083
1124
  )
1084
1125
  ],
1085
- updates.nextOnEnter
1126
+ updates
1086
1127
  )
1087
1128
  }
1088
1129
 
@@ -1102,7 +1143,7 @@ function ssdiCrossSellQuestions(updates = {}) {
1102
1143
  'CrossSell:Social_Security_Disability_and_Insurance'
1103
1144
  )
1104
1145
  ],
1105
- updates.nextOnEnter
1146
+ updates
1106
1147
  )
1107
1148
  }
1108
1149
 
@@ -1122,7 +1163,7 @@ function personalInjuryCrossSellQuestions(updates = {}) {
1122
1163
  'CrossSell:Personal_Injury'
1123
1164
  )
1124
1165
  ],
1125
- updates.nextOnEnter
1166
+ updates
1126
1167
  )
1127
1168
  }
1128
1169
 
@@ -1141,7 +1182,7 @@ function powerOfAttorneyCrossSellQuestions(updates = {}) {
1141
1182
  'CrossSell:Power_of_Attorney'
1142
1183
  )
1143
1184
  ],
1144
- updates.nextOnEnter
1185
+ updates
1145
1186
  )
1146
1187
  }
1147
1188
 
@@ -1160,7 +1201,7 @@ function willsAndTrustsCrossSellQuestions(updates = {}) {
1160
1201
  'CrossSell:Wills_and_Trusts'
1161
1202
  )
1162
1203
  ],
1163
- updates.nextOnEnter
1204
+ updates
1164
1205
  )
1165
1206
  }
1166
1207
 
@@ -1176,32 +1217,19 @@ function divorceTOLP(updates = {}) {
1176
1217
  },
1177
1218
  divorceTOLPDisplayCenter(),
1178
1219
  ],
1179
- updates.nextOnEnter,
1180
- updates.nextOnInput,
1181
- updates.stepKey,
1182
- updates.nextStepMap
1220
+ updates
1183
1221
  )
1184
1222
  }
1185
1223
 
1186
1224
  function legalCrossSells(updates = {}) {
1225
+ updates.nextOnInput = false;
1226
+ updates.stepKey = '$get(Type_Of_Legal_Problem).value';
1187
1227
  return step(
1188
1228
  'legalCrossSells',
1189
1229
  [
1190
1230
  legalCrossSellsStepHeadline(updates),
1191
1231
  legalCrossSells$1(),
1192
1232
  ],
1193
- updates.nextOnEnter,
1194
- false,
1195
- // Note: we should probably scope this stepKey to this step name
1196
- '$get(Type_Of_Legal_Problem).value'
1197
- )
1198
- }
1199
-
1200
- function zipcode(updates = {}) {
1201
- return sqstep(
1202
- 'zipcode',
1203
- zipcodeCenter(updates, updates.scope),
1204
- 'Please verify your Zip Code',
1205
1233
  updates
1206
1234
  )
1207
1235
  }
@@ -1417,9 +1445,7 @@ function formProps(updates) {
1417
1445
  return props
1418
1446
  }
1419
1447
 
1420
- const metaDefaults = {
1421
- tcpaLanguage: TCPA_LANGUAGE
1422
- };
1448
+ const metaDefaults = {};
1423
1449
 
1424
1450
  function metaProps(updates) {
1425
1451
  const data = merge(
@@ -1432,7 +1458,7 @@ function metaProps(updates) {
1432
1458
  }
1433
1459
  }
1434
1460
 
1435
- function defaultMetaProps(tolps = null) {
1461
+ function defaultMetaPropsLegal(tolps = null) {
1436
1462
  let commentsPlaceholders = TOLPCommentsPlaceholders;
1437
1463
  let finalHeadlines = TOLPFinalHeadlines;
1438
1464
  let finalSubHeadlines = TOLPFinalSubHeadlines;
@@ -1442,12 +1468,13 @@ function defaultMetaProps(tolps = null) {
1442
1468
  finalSubHeadlines = filterMapByKey(TOLPFinalSubHeadlines, tolps);
1443
1469
  }
1444
1470
  return metaProps({
1445
- defaultCommentsPlaceholder: DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC,
1471
+ tcpaLanguage: TCPA_LANGUAGE_LEGAL,
1472
+ defaultCommentsPlaceholder: DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC_LEGAL,
1446
1473
  commentsPlaceholders: commentsPlaceholders,
1447
- defaultFinalHeadline: DEFAULT_FINAL_HEADLINE,
1474
+ defaultFinalHeadline: DEFAULT_FINAL_HEADLINE_LEGAL,
1448
1475
  finalHeadlines: finalHeadlines,
1449
- defaultFinalSubHeadline: DEFAULT_FINAL_SUBHEADLINE,
1450
- finalSubHeadlines: finalSubHeadlines,
1476
+ defaultFinalSubHeadline: DEFAULT_FINAL_SUBHEADLINE_LEGAL,
1477
+ finalSubHeadlines: finalSubHeadlines
1451
1478
  })
1452
1479
  }
1453
1480
 
@@ -1795,355 +1822,395 @@ const nextStepsLegalNoHA = [
1795
1822
  ];
1796
1823
 
1797
1824
  const nextStepsMapGeneralLegal = {
1798
- 'Type_Of_Legal_Problem': {
1799
- 'Adoption': [
1800
- 'maritalStatus',
1801
- 'haveChildren',
1802
- ...nextStepsLegalDefaultLPM
1803
- ],
1804
- 'Asbestos and Mesothelioma': [
1805
- 'incidentDate',
1806
- 'doctorTreatment',
1807
- ...nextStepsLegalDefault
1808
- ],
1809
- 'Auto and Car Accidents': [
1810
- 'incidentDate',
1811
- 'atFault',
1812
- 'primaryInjury',
1813
- 'doctorTreatment',
1814
- 'policeReportFiled',
1815
- ...nextStepsLegalNoDOI
1816
- ],
1817
- 'Bankruptcy': [
1818
- 'totalMonthlyIncome',
1819
- 'totalDebt',
1820
- 'ownRealEstate',
1821
- 'valueOfAssets',
1822
- ...nextStepsLegalDefault
1823
- ],
1824
- 'Business Lawyers': [
1825
- 'businessServices',
1826
- 'businessType',
1827
- 'numEmployeesOfBusiness',
1828
- ...nextStepsLegalDefault
1829
- ],
1830
- 'Child Custody': [
1831
- 'childRelationship',
1832
- 'childHome',
1833
- 'childPrimaryCaregiver',
1834
- ...nextStepsLegalDefaultLPM
1835
- ],
1836
- 'Child Support': [
1837
- 'childRelationship',
1838
- 'childHome',
1839
- 'childPrimaryCaregiver',
1840
- ...nextStepsLegalDefaultLPM
1841
- ],
1842
- 'Civil Rights and Discrimination': [
1843
- 'civilRightsType',
1844
- ...nextStepsLegalDefault
1845
- ],
1846
- 'Civil Lawsuit': [
1847
- 'civilDefense',
1848
- 'lawsuitOtherParty',
1849
- ...nextStepsLegalDefault
1850
- ],
1851
- 'File a Lawsuit': [
1852
- 'civilLawsuitTOLPDisplay',
1853
- 'lawsuitOtherParty',
1854
- ...nextStepsLegalDefault
1855
- ],
1856
- 'Defend a Lawsuit': [
1857
- 'lawsuitOtherParty',
1858
- ...nextStepsLegalDefault
1859
- ],
1860
- 'Consumer Lawyers': [
1861
- 'consumerLawyerType',
1862
- 'incidentDate',
1863
- 'lawsuitOtherParty',
1864
- ...nextStepsLegalDefault
1865
- ],
1866
- 'Criminal and Felony': [
1867
- 'criminalTOLPDisplay',
1868
- 'crimeCommittedDate',
1869
- 'roleInMatterCriminal',
1870
- 'pendingCharges',
1871
- ...nextStepsLegalDefaultLPM
1872
- ],
1873
- 'Debt and Collections': [
1874
- 'totalMonthlyIncome',
1875
- 'totalDebt',
1876
- 'ownRealEstate',
1877
- 'valueOfAssets',
1878
- ...nextStepsLegalDefault
1879
- ],
1880
- 'Divorce and Separation': [
1881
- 'maritalStatus',
1882
- 'haveChildren',
1883
- ...nextStepsLegalDefaultLPM
1884
- ],
1885
- 'DUI and DWI': [
1886
- 'incidentDate',
1887
- 'priorAlcoholOffenses',
1888
- 'typeOfAlcoholTest',
1889
- 'bloodContentAlcoholTest',
1890
- 'pendingCharges',
1891
- ...nextStepsLegalDefault
1892
- ],
1893
- 'Employment and Workplace': [
1894
- 'employmentAndWorkplaceTOLPDisplay',
1895
- 'numEmployeesOfBusiness',
1896
- 'employerType',
1897
- 'employeeAtCompany',
1898
- ...nextStepsLegalDefault
1899
- ],
1900
- 'Expungement': [
1901
- 'incidentDate',
1902
- 'criminalChargeType',
1903
- ...nextStepsLegalDefaultLPM
1904
- ],
1905
- 'Family Issues': [
1906
- 'maritalStatus',
1907
- 'haveChildren',
1908
- ...nextStepsLegalDefaultLPM
1909
- ],
1910
- 'Foreclosure': [
1911
- 'ownRealEstate',
1912
- 'typeOfProperty',
1913
- 'amountPaymentsPastDue',
1914
- 'loanAmount',
1915
- 'defaultNotice',
1916
- ...nextStepsLegalDefault
1917
- ],
1918
- 'Guardianship': [
1919
- 'maritalStatus',
1920
- 'haveChildren',
1921
- ...nextStepsLegalDefaultLPM
1922
- ],
1923
- 'Immigration and Visas': [
1924
- 'countryOfCitizenship',
1925
- 'immigrationLocation',
1926
- 'immigrationEntry',
1927
- 'immigrationType',
1928
- 'immigrationStatus',
1929
- 'immigrationDetails',
1930
- ...nextStepsLegalDefault
1931
- ],
1932
- 'Landlord and Tenant': [
1933
- 'landlordTenantIssue',
1934
- 'landlordTenantParty',
1935
- ...nextStepsLegalDefault
1936
- ],
1937
- 'Lemon Law': [
1938
- 'incidentDate',
1939
- 'lawsuitOtherParty',
1940
- ...nextStepsLegalDefault
1941
- ],
1942
- 'Long Term Disability': [
1943
- 'applicantOccupation',
1944
- 'applicantAge',
1945
- 'applicantLTDisabilityPolicy',
1946
- 'applicantDisabilityHowObtain',
1947
- 'applicantPreviouslyAppliedLtdBenefits',
1948
- 'applicantReceivedDisabilityBenefits',
1949
- 'applicantMonthlySalary',
1950
- ...nextStepsLegalNoDOI
1951
- ],
1952
- 'Medical Malpractice': [
1953
- 'incidentDate',
1954
- 'claimStatus',
1955
- 'doctorTreatment',
1956
- 'medicalMalpracticeInjuries',
1957
- ...nextStepsLegalDefault
1958
- ],
1959
- 'Patents and Intellectual Property': [
1960
- 'patentAssistanceType',
1961
- 'patentFor',
1962
- ...nextStepsLegalDefault
1963
- ],
1964
- 'Personal Injury': [
1965
- 'incidentDate',
1966
- 'claimStatus',
1967
- 'atFault',
1968
- 'primaryInjury',
1969
- 'doctorTreatment',
1970
- ...nextStepsLegalNoDOI
1971
- ],
1972
- 'Probate and Estates': [
1973
- 'valueOfAssets',
1974
- 'typeOfAssets',
1975
- 'roleInMatterProbate',
1976
- 'estateLegalServicesNeeded',
1977
- ...nextStepsLegalDefault
1978
- ],
1979
- 'Property Damage': [
1980
- 'realEstateArea',
1981
- 'wouldLikeLawyerTo',
1982
- ...nextStepsLegalDefault
1983
- ],
1984
- 'Real Estate': [
1985
- 'realEstateTOLPDisplay',
1986
- 'realEstateArea',
1987
- 'wouldLikeLawyerTo',
1988
- ...nextStepsLegalDefault
1989
- ],
1990
- 'Social Security Disability and Insurance': [
1991
- 'applicantAge',
1992
- 'disabilityConditionStopWork',
1993
- 'disabilityWorkHistory',
1994
- 'socialSecurityDisabilityReceivingBenefits',
1995
- 'doctorTreatment',
1996
- ...nextStepsLegalNoDOI
1997
- ],
1998
- 'Tax and IRS': [
1999
- 'totalDebt',
2000
- 'taxProblemDetails',
2001
- 'taxLevel',
2002
- 'taxIssueType',
2003
- ...nextStepsLegalDefault
2004
- ],
2005
- 'Traffic and Tickets': [
2006
- 'driversLicenseType',
2007
- 'trafficViolations',
2008
- 'haveCourtDate',
2009
- ...nextStepsLegalDefault
2010
- ],
2011
- 'Unemployment': [
2012
- 'numEmployeesOfBusiness',
2013
- 'employerType',
2014
- ...nextStepsLegalNoHA
2015
- ],
2016
- 'Victim of a Crime': [
2017
- 'crimeCommittedDate',
2018
- 'roleInMatterCriminal',
2019
- 'pendingCharges',
2020
- ...nextStepsLegalDefaultLPM
2021
- ],
2022
- 'Wills and Trusts': [
2023
- 'valueOfAssets',
2024
- 'typeOfAssets',
2025
- 'roleInMatterProbate',
2026
- 'estateLegalServicesNeeded',
2027
- ...nextStepsLegalDefault
2028
- ],
2029
- 'Workers Compensation': [
2030
- 'incidentDate',
2031
- 'claimStatus',
2032
- 'primaryInjury',
2033
- 'causeOfInjury',
2034
- 'doctorTreatment',
2035
- ...nextStepsLegalNoDOI
2036
- ],
2037
- 'Workplace Harassment': [
2038
- 'numEmployeesOfBusiness',
2039
- 'employerType',
2040
- 'employeeAtCompany',
2041
- ...nextStepsLegalDefault
2042
- ],
2043
- 'Workplace Discrimination': [
2044
- 'numEmployeesOfBusiness',
2045
- 'employerType',
2046
- 'employeeAtCompany',
2047
- ...nextStepsLegalDefault
2048
- ],
2049
- 'Wrongful Death': [
2050
- 'incidentDate',
2051
- 'relationshipToVictim',
2052
- 'criminalChargesFiled',
2053
- 'causeOfDeath',
2054
- ...nextStepsLegalNoDOI
2055
- ],
2056
- 'Wrongful Termination': [
2057
- 'numEmployeesOfBusiness',
2058
- 'employerType',
2059
- ...nextStepsLegalDefault
2060
- ],
2061
- },
2062
- '*': nextStepsLegalDefault
1825
+ values: {
1826
+ 'Type_Of_Legal_Problem': {
1827
+ 'Adoption': [
1828
+ 'maritalStatus',
1829
+ 'haveChildren',
1830
+ ...nextStepsLegalDefaultLPM
1831
+ ],
1832
+ 'Asbestos and Mesothelioma': [
1833
+ 'incidentDate',
1834
+ 'doctorTreatment',
1835
+ ...nextStepsLegalDefault
1836
+ ],
1837
+ 'Auto and Car Accidents': [
1838
+ 'incidentDate',
1839
+ 'atFault',
1840
+ 'primaryInjury',
1841
+ 'doctorTreatment',
1842
+ 'policeReportFiled',
1843
+ ...nextStepsLegalNoDOI
1844
+ ],
1845
+ 'Bankruptcy': [
1846
+ 'totalMonthlyIncome',
1847
+ 'totalDebt',
1848
+ 'ownRealEstate',
1849
+ 'valueOfAssets',
1850
+ ...nextStepsLegalDefault
1851
+ ],
1852
+ 'Business Lawyers': [
1853
+ 'businessServices',
1854
+ 'businessType',
1855
+ 'numEmployeesOfBusiness',
1856
+ ...nextStepsLegalDefault
1857
+ ],
1858
+ 'Child Custody': [
1859
+ 'childRelationship',
1860
+ 'childHome',
1861
+ 'childPrimaryCaregiver',
1862
+ ...nextStepsLegalDefaultLPM
1863
+ ],
1864
+ 'Child Support': [
1865
+ 'childRelationship',
1866
+ 'childHome',
1867
+ 'childPrimaryCaregiver',
1868
+ ...nextStepsLegalDefaultLPM
1869
+ ],
1870
+ 'Civil Rights and Discrimination': [
1871
+ 'civilRightsType',
1872
+ ...nextStepsLegalDefault
1873
+ ],
1874
+ 'Civil Lawsuit': [
1875
+ 'civilDefense',
1876
+ 'lawsuitOtherParty',
1877
+ ...nextStepsLegalDefault
1878
+ ],
1879
+ 'File a Lawsuit': [
1880
+ 'civilLawsuitTOLPDisplay',
1881
+ 'lawsuitOtherParty',
1882
+ ...nextStepsLegalDefault
1883
+ ],
1884
+ 'Defend a Lawsuit': [
1885
+ 'lawsuitOtherParty',
1886
+ ...nextStepsLegalDefault
1887
+ ],
1888
+ 'Consumer Lawyers': [
1889
+ 'consumerLawyerType',
1890
+ 'incidentDate',
1891
+ 'lawsuitOtherParty',
1892
+ ...nextStepsLegalDefault
1893
+ ],
1894
+ 'Criminal and Felony': [
1895
+ 'criminalTOLPDisplay',
1896
+ 'crimeCommittedDate',
1897
+ 'roleInMatterCriminal',
1898
+ 'pendingCharges',
1899
+ ...nextStepsLegalDefaultLPM
1900
+ ],
1901
+ 'Debt and Collections': [
1902
+ 'totalMonthlyIncome',
1903
+ 'totalDebt',
1904
+ 'ownRealEstate',
1905
+ 'valueOfAssets',
1906
+ ...nextStepsLegalDefault
1907
+ ],
1908
+ 'Divorce and Separation': [
1909
+ 'maritalStatus',
1910
+ 'haveChildren',
1911
+ ...nextStepsLegalDefaultLPM
1912
+ ],
1913
+ 'DUI and DWI': [
1914
+ 'incidentDate',
1915
+ 'priorAlcoholOffenses',
1916
+ 'typeOfAlcoholTest',
1917
+ 'bloodContentAlcoholTest',
1918
+ 'pendingCharges',
1919
+ ...nextStepsLegalDefault
1920
+ ],
1921
+ 'Employment and Workplace': [
1922
+ 'employmentAndWorkplaceTOLPDisplay',
1923
+ 'numEmployeesOfBusiness',
1924
+ 'employerType',
1925
+ 'employeeAtCompany',
1926
+ ...nextStepsLegalDefault
1927
+ ],
1928
+ 'Expungement': [
1929
+ 'incidentDate',
1930
+ 'criminalChargeType',
1931
+ ...nextStepsLegalDefaultLPM
1932
+ ],
1933
+ 'Family Issues': [
1934
+ 'maritalStatus',
1935
+ 'haveChildren',
1936
+ ...nextStepsLegalDefaultLPM
1937
+ ],
1938
+ 'Foreclosure': [
1939
+ 'ownRealEstate',
1940
+ 'typeOfProperty',
1941
+ 'amountPaymentsPastDue',
1942
+ 'loanAmount',
1943
+ 'defaultNotice',
1944
+ ...nextStepsLegalDefault
1945
+ ],
1946
+ 'Guardianship': [
1947
+ 'maritalStatus',
1948
+ 'haveChildren',
1949
+ ...nextStepsLegalDefaultLPM
1950
+ ],
1951
+ 'Immigration and Visas': [
1952
+ 'countryOfCitizenship',
1953
+ 'immigrationLocation',
1954
+ 'immigrationEntry',
1955
+ 'immigrationType',
1956
+ 'immigrationStatus',
1957
+ 'immigrationDetails',
1958
+ ...nextStepsLegalDefault
1959
+ ],
1960
+ 'Landlord and Tenant': [
1961
+ 'landlordTenantIssue',
1962
+ 'landlordTenantParty',
1963
+ ...nextStepsLegalDefault
1964
+ ],
1965
+ 'Lemon Law': [
1966
+ 'incidentDate',
1967
+ 'lawsuitOtherParty',
1968
+ ...nextStepsLegalDefault
1969
+ ],
1970
+ 'Long Term Disability': [
1971
+ 'applicantOccupation',
1972
+ 'applicantAge',
1973
+ 'applicantLTDisabilityPolicy',
1974
+ 'applicantDisabilityHowObtain',
1975
+ 'applicantPreviouslyAppliedLtdBenefits',
1976
+ 'applicantReceivedDisabilityBenefits',
1977
+ 'applicantMonthlySalary',
1978
+ ...nextStepsLegalNoDOI
1979
+ ],
1980
+ 'Medical Malpractice': [
1981
+ 'incidentDate',
1982
+ 'claimStatus',
1983
+ 'doctorTreatment',
1984
+ 'medicalMalpracticeInjuries',
1985
+ ...nextStepsLegalDefault
1986
+ ],
1987
+ 'Patents and Intellectual Property': [
1988
+ 'patentAssistanceType',
1989
+ 'patentFor',
1990
+ ...nextStepsLegalDefault
1991
+ ],
1992
+ 'Personal Injury': [
1993
+ 'incidentDate',
1994
+ 'claimStatus',
1995
+ 'atFault',
1996
+ 'primaryInjury',
1997
+ 'doctorTreatment',
1998
+ ...nextStepsLegalNoDOI
1999
+ ],
2000
+ 'Probate and Estates': [
2001
+ 'valueOfAssets',
2002
+ 'typeOfAssets',
2003
+ 'roleInMatterProbate',
2004
+ 'estateLegalServicesNeeded',
2005
+ ...nextStepsLegalDefault
2006
+ ],
2007
+ 'Property Damage': [
2008
+ 'realEstateArea',
2009
+ 'wouldLikeLawyerTo',
2010
+ ...nextStepsLegalDefault
2011
+ ],
2012
+ 'Real Estate': [
2013
+ 'realEstateTOLPDisplay',
2014
+ 'realEstateArea',
2015
+ 'wouldLikeLawyerTo',
2016
+ ...nextStepsLegalDefault
2017
+ ],
2018
+ 'Social Security Disability and Insurance': [
2019
+ 'applicantAge',
2020
+ 'disabilityConditionStopWork',
2021
+ 'disabilityWorkHistory',
2022
+ 'socialSecurityDisabilityReceivingBenefits',
2023
+ 'doctorTreatment',
2024
+ ...nextStepsLegalNoDOI
2025
+ ],
2026
+ 'Tax and IRS': [
2027
+ 'totalDebt',
2028
+ 'taxProblemDetails',
2029
+ 'taxLevel',
2030
+ 'taxIssueType',
2031
+ ...nextStepsLegalDefault
2032
+ ],
2033
+ 'Traffic and Tickets': [
2034
+ 'driversLicenseType',
2035
+ 'trafficViolations',
2036
+ 'haveCourtDate',
2037
+ ...nextStepsLegalDefault
2038
+ ],
2039
+ 'Unemployment': [
2040
+ 'numEmployeesOfBusiness',
2041
+ 'employerType',
2042
+ ...nextStepsLegalNoHA
2043
+ ],
2044
+ 'Victim of a Crime': [
2045
+ 'crimeCommittedDate',
2046
+ 'roleInMatterCriminal',
2047
+ 'pendingCharges',
2048
+ ...nextStepsLegalDefaultLPM
2049
+ ],
2050
+ 'Wills and Trusts': [
2051
+ 'valueOfAssets',
2052
+ 'typeOfAssets',
2053
+ 'roleInMatterProbate',
2054
+ 'estateLegalServicesNeeded',
2055
+ ...nextStepsLegalDefault
2056
+ ],
2057
+ 'Workers Compensation': [
2058
+ 'incidentDate',
2059
+ 'claimStatus',
2060
+ 'primaryInjury',
2061
+ 'causeOfInjury',
2062
+ 'doctorTreatment',
2063
+ ...nextStepsLegalNoDOI
2064
+ ],
2065
+ 'Workplace Harassment': [
2066
+ 'numEmployeesOfBusiness',
2067
+ 'employerType',
2068
+ 'employeeAtCompany',
2069
+ ...nextStepsLegalDefault
2070
+ ],
2071
+ 'Workplace Discrimination': [
2072
+ 'numEmployeesOfBusiness',
2073
+ 'employerType',
2074
+ 'employeeAtCompany',
2075
+ ...nextStepsLegalDefault
2076
+ ],
2077
+ 'Wrongful Death': [
2078
+ 'incidentDate',
2079
+ 'relationshipToVictim',
2080
+ 'criminalChargesFiled',
2081
+ 'causeOfDeath',
2082
+ ...nextStepsLegalNoDOI
2083
+ ],
2084
+ 'Wrongful Termination': [
2085
+ 'numEmployeesOfBusiness',
2086
+ 'employerType',
2087
+ ...nextStepsLegalDefault
2088
+ ],
2089
+ },
2090
+ '*': nextStepsLegalDefault
2091
+ }
2063
2092
  };
2064
2093
 
2065
- const TOLPNextSteps = nextStepsMapGeneralLegal["Type_Of_Legal_Problem"];
2094
+ const TOLPNextSteps = nextStepsMapGeneralLegal["values"]["Type_Of_Legal_Problem"];
2066
2095
 
2067
2096
  const nextStepsMapDivorce = {
2068
- 'Type_Of_Legal_Problem_Display': {
2069
- 'Alimony or Child Support': TOLPNextSteps["Child Support"],
2070
- 'Child Custody': TOLPNextSteps["Child Custody"],
2071
- 'Not Sure or Other': nextStepsMapGeneralLegal["*"],
2072
- },
2073
- '*': TOLPNextSteps["Divorce and Separation"]
2097
+ values: {
2098
+ 'Type_Of_Legal_Problem_Display': {
2099
+ 'Alimony or Child Support': TOLPNextSteps["Child Support"],
2100
+ 'Child Custody': TOLPNextSteps["Child Custody"],
2101
+ 'Not Sure or Other': nextStepsMapGeneralLegal["values"]["*"],
2102
+ },
2103
+ '*': TOLPNextSteps["Divorce and Separation"]
2104
+ }
2074
2105
  };
2075
2106
 
2076
2107
  ({
2077
- 'Civil_Defense': {
2078
- 'Yes': TOLPNextSteps["Defend a Lawsuit"],
2079
- 'No': TOLPNextSteps["File a Lawsuit"],
2080
- },
2081
- '*': [
2082
- 'lawsuitOtherParty',
2083
- ...nextStepsLegalDefault
2084
- ]
2108
+ values: {
2109
+ 'Civil_Defense': {
2110
+ 'Yes': TOLPNextSteps["Defend a Lawsuit"],
2111
+ 'No': TOLPNextSteps["File a Lawsuit"],
2112
+ },
2113
+ '*': [
2114
+ 'lawsuitOtherParty',
2115
+ ...nextStepsLegalDefault
2116
+ ]
2117
+ }
2085
2118
  });
2086
2119
 
2087
2120
  ({
2088
- 'Type_Of_Legal_Problem': {
2089
- 'Defend a Lawsuit': TOLPNextSteps["Defend a Lawsuit"],
2090
- 'File a Lawsuit': TOLPNextSteps["File a Lawsuit"],
2091
- },
2092
- '*': [
2093
- 'lawsuitOtherParty',
2094
- ...nextStepsLegalDefault
2095
- ]
2121
+ values: {
2122
+ 'Type_Of_Legal_Problem': {
2123
+ 'Defend a Lawsuit': TOLPNextSteps["Defend a Lawsuit"],
2124
+ 'File a Lawsuit': TOLPNextSteps["File a Lawsuit"],
2125
+ },
2126
+ '*': [
2127
+ 'lawsuitOtherParty',
2128
+ ...nextStepsLegalDefault
2129
+ ]
2130
+ }
2096
2131
  });
2097
2132
 
2098
2133
  ({
2099
- 'Type_Of_Legal_Problem_Display': {
2100
- 'Automobile Accident': TOLPNextSteps["Auto and Car Accidents"],
2101
- 'Contract Disputes': TOLPNextSteps["Business Lawyers"],
2102
- 'Dog Bite': TOLPNextSteps["Personal Injury"],
2103
- 'Employment and Workplace': TOLPNextSteps["Employment and Workplace"],
2104
- 'Fraud': TOLPNextSteps["Consumer Lawyers"],
2105
- 'Medical Malpractice': TOLPNextSteps["Medical Malpractice"],
2106
- 'Personal Injury': TOLPNextSteps["Personal Injury"],
2107
- 'Property Damage': TOLPNextSteps["Property Damage"],
2108
- 'Real Estate': TOLPNextSteps["Real Estate"],
2109
- 'Not Sure or Other': nextStepsMapGeneralLegal["*"],
2110
- },
2111
- '*': [
2112
- 'lawsuitOtherParty',
2113
- ...nextStepsLegalDefault
2114
- ]
2134
+ values: {
2135
+ 'Type_Of_Legal_Problem_Display': {
2136
+ 'Automobile Accident': TOLPNextSteps["Auto and Car Accidents"],
2137
+ 'Contract Disputes': TOLPNextSteps["Business Lawyers"],
2138
+ 'Dog Bite': TOLPNextSteps["Personal Injury"],
2139
+ 'Employment and Workplace': TOLPNextSteps["Employment and Workplace"],
2140
+ 'Fraud': TOLPNextSteps["Consumer Lawyers"],
2141
+ 'Medical Malpractice': TOLPNextSteps["Medical Malpractice"],
2142
+ 'Personal Injury': TOLPNextSteps["Personal Injury"],
2143
+ 'Property Damage': TOLPNextSteps["Property Damage"],
2144
+ 'Real Estate': TOLPNextSteps["Real Estate"],
2145
+ 'Not Sure or Other': nextStepsMapGeneralLegal["values"]["*"],
2146
+ },
2147
+ '*': [
2148
+ 'lawsuitOtherParty',
2149
+ ...nextStepsLegalDefault
2150
+ ]
2151
+ }
2115
2152
  });
2116
2153
 
2117
2154
  ({
2118
- 'Type_Of_Legal_Problem_Display': {
2119
- 'Wrongful Termination': TOLPNextSteps["Wrongful Termination"],
2120
- 'Workers Compensation': TOLPNextSteps["Workers Compensation"],
2121
- 'Personal Injury': TOLPNextSteps["Personal Injury"],
2122
- 'Unemployment': TOLPNextSteps["Unemployment"],
2123
- },
2124
- '*': [
2125
- 'numEmployeesOfBusiness',
2126
- 'employerType',
2127
- 'employeeAtCompany',
2128
- ...nextStepsLegalDefault
2129
- ]
2155
+ values: {
2156
+ 'Type_Of_Legal_Problem_Display': {
2157
+ 'Wrongful Termination': TOLPNextSteps["Wrongful Termination"],
2158
+ 'Workers Compensation': TOLPNextSteps["Workers Compensation"],
2159
+ 'Personal Injury': TOLPNextSteps["Personal Injury"],
2160
+ 'Unemployment': TOLPNextSteps["Unemployment"],
2161
+ },
2162
+ '*': [
2163
+ 'numEmployeesOfBusiness',
2164
+ 'employerType',
2165
+ 'employeeAtCompany',
2166
+ ...nextStepsLegalDefault
2167
+ ]
2168
+ }
2130
2169
  });
2131
2170
 
2132
2171
  ({
2133
- 'Type_Of_Legal_Problem_Display': {
2134
- 'Foreclosure': TOLPNextSteps["Foreclosure"],
2135
- 'Landlord and Tenant': TOLPNextSteps["Landlord and Tenant"],
2136
- 'Wills, Trusts, and Estates': TOLPNextSteps["Wills and Trusts"],
2137
- 'Property Damage': TOLPNextSteps['Property Damage'],
2138
- },
2139
- '*': [
2140
- 'realEstateArea',
2141
- 'wouldLikeLawyerTo',
2142
- ...nextStepsLegalDefault
2143
- ]
2172
+ values: {
2173
+ 'Type_Of_Legal_Problem_Display': {
2174
+ 'Foreclosure': TOLPNextSteps["Foreclosure"],
2175
+ 'Landlord and Tenant': TOLPNextSteps["Landlord and Tenant"],
2176
+ 'Wills, Trusts, and Estates': TOLPNextSteps["Wills and Trusts"],
2177
+ 'Property Damage': TOLPNextSteps['Property Damage'],
2178
+ },
2179
+ '*': [
2180
+ 'realEstateArea',
2181
+ 'wouldLikeLawyerTo',
2182
+ ...nextStepsLegalDefault
2183
+ ]
2184
+ }
2144
2185
  });
2145
2186
 
2146
- const meta = defaultMetaProps();
2187
+ const nextStepsMapLegalCrossSells = {
2188
+ values: {
2189
+ 'Legal_CrossSells': {
2190
+ 'Auto and Car Accidents': ['autoAndCarAccidentCrossSellQuestions'],
2191
+ 'Personal Injury': ['personalInjuryCrossSellQuestions'],
2192
+ 'Workers Compensation': ['workersCompensationCrossSellQuestions'],
2193
+ 'DUI and DWI': ['duiAndDWICrossSellQuestions'],
2194
+ 'Long Term Disability': ['longTermDisabilityCrossSellQuestions'],
2195
+ 'Social Security Disability and Insurance': ['ssdiCrossSellQuestions'],
2196
+ 'Bankruptcy': ['bankruptcyCrossSellQuestions'],
2197
+ 'Power of Attorney': ['powerOfAttorneyCrossSellQuestions'],
2198
+ 'Wills and Trusts': ['willsAndTrustsCrossSellQuestions'],
2199
+ 'Divorce and Separation': ['divorceAndSeparationCrossSellQuestions'],
2200
+ 'Child Custody': ['childCustodyCrossSellQuestions'],
2201
+ },
2202
+ '*': ['firstAndLast', 'contactInfo'],
2203
+ },
2204
+
2205
+ // NOTE: this assumes a certain placement of the cross sell question
2206
+ // in the form flow.
2207
+ appendSteps: ['firstAndLast', 'contactInfo'],
2208
+ matchesAllowed: 1,
2209
+ };
2210
+
2211
+ const legalCrossSellOptionMap = CROSS_SELL_OPTION_MAP_LEGAL;
2212
+
2213
+ const meta = defaultMetaPropsLegal();
2147
2214
 
2148
2215
  meta.data.dynamicSchema = [
2149
2216
  zipcode(),
@@ -2161,7 +2228,8 @@ meta.data.dynamicSchema = [
2161
2228
  headlineClass: '!t-text-dark',
2162
2229
  }),
2163
2230
  legalCrossSells({
2164
- headlineClass: '!t-text-dark'
2231
+ headlineClass: '!t-text-dark',
2232
+ nextStepMap: nextStepsMapLegalCrossSells,
2165
2233
  }),
2166
2234
  // Note: this is purposefully limited to a subset of values
2167
2235
  // that could show up in the Legal_CrossSells input because
@@ -2187,7 +2255,8 @@ const schema = [
2187
2255
  redirectMap: legalRedirectMap(),
2188
2256
  valueOverrideMap: {
2189
2257
  'Type_Of_Legal_Problem_Display': divorceTOLPDisplayOverrideMap,
2190
- }
2258
+ },
2259
+ crossSellOptionMap: legalCrossSellOptionMap
2191
2260
  }),
2192
2261
  children: [
2193
2262
  progressBar(),