bhl-forms 0.6.15 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/dist/bhl-forms.es.js +1757 -1759
  2. package/dist/bhl-forms.iife.js +4 -4
  3. package/dist/bhl-forms.modern.es.js +2804 -2811
  4. package/dist/bhl-forms.modern.iife.js +6 -6
  5. package/dist/bhl-forms.modern.umd.js +6 -6
  6. package/dist/bhl-forms.umd.js +4 -4
  7. package/dist/forms/accidentsAndInjuries.es.js +278 -215
  8. package/dist/forms/accidentsAndInjuries.iife.js +1 -1
  9. package/dist/forms/accidentsAndInjuries.json +1 -1
  10. package/dist/forms/appraisals.es.js +16 -7
  11. package/dist/forms/appraisals.iife.js +1 -1
  12. package/dist/forms/business.es.js +288 -226
  13. package/dist/forms/business.iife.js +1 -1
  14. package/dist/forms/business.json +1 -1
  15. package/dist/forms/childAndFamily.es.js +271 -214
  16. package/dist/forms/childAndFamily.iife.js +1 -1
  17. package/dist/forms/childAndFamily.json +1 -1
  18. package/dist/forms/childAndFamilySingle.es.js +614 -545
  19. package/dist/forms/childAndFamilySingle.iife.js +1 -1
  20. package/dist/forms/childAndFamilySingle.json +1 -1
  21. package/dist/forms/civilLawsuit.es.js +608 -541
  22. package/dist/forms/civilLawsuit.iife.js +1 -1
  23. package/dist/forms/civilLawsuit.json +1 -1
  24. package/dist/forms/coins.es.js +16 -7
  25. package/dist/forms/coins.iife.js +1 -1
  26. package/dist/forms/contracts.es.js +275 -217
  27. package/dist/forms/contracts.iife.js +1 -1
  28. package/dist/forms/contracts.json +1 -1
  29. package/dist/forms/criminal.es.js +631 -562
  30. package/dist/forms/criminal.iife.js +1 -1
  31. package/dist/forms/criminal.json +1 -1
  32. package/dist/forms/divorce.es.js +614 -545
  33. package/dist/forms/divorce.iife.js +1 -1
  34. package/dist/forms/divorce.json +1 -1
  35. package/dist/forms/employmentAndWorkplace.es.js +555 -496
  36. package/dist/forms/employmentAndWorkplace.iife.js +1 -1
  37. package/dist/forms/employmentAndWorkplace.json +1 -1
  38. package/dist/forms/generalHomeImprovement.es.js +3224 -0
  39. package/dist/forms/generalHomeImprovement.iife.js +1 -0
  40. package/dist/forms/generalHomeImprovement.json +1 -0
  41. package/dist/forms/generalLegal.es.js +274 -216
  42. package/dist/forms/generalLegal.iife.js +1 -1
  43. package/dist/forms/generalLegal.json +1 -1
  44. package/dist/forms/generalLegalJustAnswer.es.js +4534 -0
  45. package/dist/forms/generalLegalJustAnswer.iife.js +1 -0
  46. package/dist/forms/generalLegalJustAnswer.json +1 -0
  47. package/dist/forms/generalLegalPopUnder.es.js +275 -217
  48. package/dist/forms/generalLegalPopUnder.iife.js +1 -1
  49. package/dist/forms/generalLegalPopUnder.json +1 -1
  50. package/dist/forms/generalLegalPopUnderSingle.es.js +645 -573
  51. package/dist/forms/generalLegalPopUnderSingle.iife.js +1 -1
  52. package/dist/forms/generalLegalPopUnderSingle.json +1 -1
  53. package/dist/forms/generalLegalSingle.es.js +645 -573
  54. package/dist/forms/generalLegalSingle.iife.js +1 -1
  55. package/dist/forms/generalLegalSingle.json +1 -1
  56. package/dist/forms/generalLegalThankYou.es.js +137 -130
  57. package/dist/forms/generalLegalThankYou.iife.js +1 -1
  58. package/dist/forms/generalLegalThankYouConsultation.es.js +645 -573
  59. package/dist/forms/generalLegalThankYouConsultation.iife.js +1 -1
  60. package/dist/forms/generalLegalThankYouConsultation.json +1 -1
  61. package/dist/forms/harassmentAndDiscrimination.es.js +271 -214
  62. package/dist/forms/harassmentAndDiscrimination.iife.js +1 -1
  63. package/dist/forms/harassmentAndDiscrimination.json +1 -1
  64. package/dist/forms/landlordTenant.es.js +287 -230
  65. package/dist/forms/landlordTenant.iife.js +1 -1
  66. package/dist/forms/landlordTenant.json +1 -1
  67. package/dist/forms/malpractice.es.js +276 -217
  68. package/dist/forms/malpractice.iife.js +1 -1
  69. package/dist/forms/malpractice.json +1 -1
  70. package/dist/forms/mechanics.es.js +171 -165
  71. package/dist/forms/mechanics.iife.js +1 -1
  72. package/dist/forms/mechanics.json +1 -1
  73. package/dist/forms/patentsAndIP.es.js +617 -548
  74. package/dist/forms/patentsAndIP.iife.js +1 -1
  75. package/dist/forms/patentsAndIP.json +1 -1
  76. package/dist/forms/realEstate.es.js +272 -215
  77. package/dist/forms/realEstate.iife.js +1 -1
  78. package/dist/forms/realEstate.json +1 -1
  79. package/dist/forms/repossession.es.js +275 -217
  80. package/dist/forms/repossession.iife.js +1 -1
  81. package/dist/forms/repossession.json +1 -1
  82. package/dist/forms/ssdi.es.js +139 -138
  83. package/dist/forms/ssdi.iife.js +1 -1
  84. package/dist/forms/ssdi.json +1 -1
  85. package/dist/forms/testForm.es.js +55 -52
  86. package/dist/forms/testForm.iife.js +1 -1
  87. package/dist/forms/testRedirects.es.js +28 -22
  88. package/dist/forms/testRedirects.iife.js +1 -1
  89. package/dist/forms/vets.es.js +16 -7
  90. package/dist/forms/vets.iife.js +1 -1
  91. package/dist/forms/willsAndTrusts.es.js +272 -213
  92. package/dist/forms/willsAndTrusts.iife.js +1 -1
  93. package/dist/forms/willsAndTrusts.json +1 -1
  94. package/package.json +3 -3
@@ -6,14 +6,97 @@ function LegalRedirectUrl() {
6
6
  return 'https://listings.ziplawyer.com/api/v1/redirect?zone_id=4&vertical=Legal&category=${properties.Type_Of_Legal_Problem}&Degree_Of_Interest=${properties.Degree_Of_Interest}&zip_code=${properties.Zip}&sub_id=${properties.vid}'
7
7
  }
8
8
 
9
- var TCPA_LANGUAGE = "By checking this box, I a) agree to the Terms of Use, and b) consent to be contacted by lawyers, lawyer networks, and partners of this website using live, autodialed, pre-recorded, or artificial voice calls, as well as text messages. Your consent is not required as a condition of purchasing any goods or services. To submit this request without this consent, call 878-213-4937.";
10
-
11
- const DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC = '$getKey($meta, "commentsPlaceholders." + $get(Type_Of_Legal_Problem).value, $meta.defaultCommentsPlaceholder)';
12
- const DEFAULT_COMMENTS_LABEL = 'Please briefly describe your legal issue in a few words:';
13
- const DEFAULT_FINAL_HEADLINE = 'Submit Your Case';
14
- const DEFAULT_FINAL_HEADLINE_DYNAMIC = '$getKey($meta, "finalHeadlines." + $get(Type_Of_Legal_Problem).value, $meta.defaultFinalHeadline)';
15
- const DEFAULT_FINAL_SUBHEADLINE = 'You may benefit from speaking with a legal professional. Please verify your contact information.';
16
- const DEFAULT_FINAL_SUBHEADLINE_DYNAMIC = '$getKey($meta, "finalSubHeadlines." + $get(Type_Of_Legal_Problem).value, $meta.defaultFinalSubHeadline)';
9
+ const DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC_LEGAL = '$getKey($meta, "commentsPlaceholders." + $get(Type_Of_Legal_Problem).value, $meta.defaultCommentsPlaceholder)';
10
+ const DEFAULT_COMMENTS_LABEL_LEGAL = 'Please briefly describe your legal issue in a few words:';
11
+ const DEFAULT_FINAL_HEADLINE_LEGAL = 'Submit Your Case';
12
+ const DEFAULT_FINAL_HEADLINE_DYNAMIC_LEGAL = '$getKey($meta, "finalHeadlines." + $get(Type_Of_Legal_Problem).value, $meta.defaultFinalHeadline)';
13
+ const DEFAULT_FINAL_SUBHEADLINE_LEGAL = 'You may benefit from speaking with a legal professional. Please verify your contact information.';
14
+ const DEFAULT_FINAL_SUBHEADLINE_DYNAMIC_LEGAL = '$getKey($meta, "finalSubHeadlines." + $get(Type_Of_Legal_Problem).value, $meta.defaultFinalSubHeadline)';
15
+ const TCPA_LANGUAGE_LEGAL = "By checking this box, I a) agree to the Terms of Use, and b) consent to be contacted by lawyers, lawyer networks, and partners of this website using live, autodialed, pre-recorded, or artificial voice calls, as well as text messages. Your consent is not required as a condition of purchasing any goods or services. To submit this request without this consent, call 878-213-4937.";
16
+ const defaultLegalImprovementCrossSells = {
17
+ 'Auto and Car Accidents': 'Injured in a Car Accident',
18
+ 'Personal Injury': 'Personal or Workplace Injury',
19
+ 'DUI and DWI': 'Involved in a DUI/DWI',
20
+ 'Wills and Trusts': 'Need a Will or Trust',
21
+ 'Power of Attorney': 'Update Power of Attorney',
22
+ 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
23
+ };
24
+ const CROSS_SELL_OPTION_MAP_LEGAL = {
25
+ // Values can be a list or a map of value -> display value
26
+ 'Auto and Car Accidents': {
27
+ 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
28
+ 'Wills and Trusts': 'Need a Will or Trust',
29
+ 'Workers Compensation': 'Workplace Injury',
30
+ 'Power of Attorney': 'Update Power of Attorney',
31
+ 'Divorce and Separation': 'Need a Divorce or Separation',
32
+ 'Child Custody': 'Need help with Child Custody',
33
+ },
34
+ "Personal Injury": {
35
+ 'DUI and DWI': 'Involved in a DUI/DWI',
36
+ 'Wills and Trusts': 'Need a Will or Trust',
37
+ 'Power of Attorney': 'Update Power of Attorney',
38
+ 'Divorce and Separation': 'Need a Divorce or Separation',
39
+ 'Child Custody': 'Need help with Child Custody',
40
+ // TODO add one more?
41
+ },
42
+ "Workers Compensation": {
43
+ 'DUI and DWI': 'Involved in a DUI/DWI',
44
+ 'Wills and Trusts': 'Need a Will or Trust',
45
+ 'Power of Attorney': 'Update Power of Attorney',
46
+ 'Divorce and Separation': 'Need a Divorce or Separation',
47
+ 'Child Custody': 'Need help with Child Custody',
48
+ // TODO add one more?
49
+ },
50
+ "DUI and DWI": {
51
+ 'Personal Injury': 'Personal or Workplace Injury',
52
+ 'Wills and Trusts': 'Need a Will or Trust',
53
+ 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
54
+ 'Power of Attorney': 'Update Power of Attorney',
55
+ 'Divorce and Separation': 'Need a Divorce or Separation',
56
+ 'Child Custody': 'Need help with Child Custody',
57
+ },
58
+ "Wills and Trusts": {
59
+ 'Auto and Car Accidents': 'Injured in a Car Accident',
60
+ 'Personal Injury': 'Personal or Workplace Injury',
61
+ 'DUI and DWI': 'Involved in a DUI/DWI',
62
+ 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
63
+ 'Divorce and Separation': 'Need a Divorce or Separation',
64
+ 'Child Custody': 'Need help with Child Custody',
65
+ },
66
+ "Probate and Estates": {
67
+ 'Auto and Car Accidents': 'Injured in a Car Accident',
68
+ 'Personal Injury': 'Personal or Workplace Injury',
69
+ 'DUI and DWI': 'Involved in a DUI/DWI',
70
+ 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
71
+ 'Divorce and Separation': 'Need a Divorce or Separation',
72
+ 'Child Custody': 'Need help with Child Custody',
73
+ },
74
+ "Power of Attorney": {
75
+ 'Auto and Car Accidents': 'Injured in a Car Accident',
76
+ 'Personal Injury': 'Personal or Workplace Injury',
77
+ 'DUI and DWI': 'Involved in a DUI/DWI',
78
+ 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
79
+ 'Divorce and Separation': 'Need a Divorce or Separation',
80
+ 'Child Custody': 'Need help with Child Custody',
81
+ },
82
+ "Long Term Disability": {
83
+ 'Auto and Car Accidents': 'Injured in a Car Accident',
84
+ 'DUI and DWI': 'Involved in a DUI/DWI',
85
+ 'Wills and Trusts': 'Need a Will or Trust',
86
+ 'Power of Attorney': 'Update Power of Attorney',
87
+ 'Divorce and Separation': 'Need a Divorce or Separation',
88
+ 'Child Custody': 'Need help with Child Custody',
89
+ },
90
+ "Social Security Disability and Insurance": {
91
+ 'Auto and Car Accidents': 'Injured in a Car Accident',
92
+ 'DUI and DWI': 'Involved in a DUI/DWI',
93
+ 'Wills and Trusts': 'Need a Will or Trust',
94
+ 'Power of Attorney': 'Update Power of Attorney',
95
+ 'Divorce and Separation': 'Need a Divorce or Separation',
96
+ 'Child Custody': 'Need help with Child Custody',
97
+ },
98
+ '*': defaultLegalImprovementCrossSells,
99
+ };
17
100
 
18
101
  // ------ Common Base Settings
19
102
 
@@ -186,6 +269,73 @@ const sbsDate = (updates) => {
186
269
  return date(updates)
187
270
  };
188
271
 
272
+ const email = (scope) => sbsText({
273
+ $formkit: 'email',
274
+ name: scope ? scope + ':' + 'Email' : 'Email',
275
+ label: 'Email Address:',
276
+ placeholder: 'email@domain.com',
277
+ autocomplete: 'email',
278
+ 'data-tf-sensitive': 'false',
279
+ validation: 'required|email',
280
+ validationMessages: {
281
+ required: 'Email is required',
282
+ email: 'Invalid Email'
283
+ }
284
+ });
285
+
286
+ const firstName = (scope) => sbsText({
287
+ label: 'First Name:',
288
+ placeholder: 'First',
289
+ name: scope ? scope + ':' + 'First_Name' : 'First_Name',
290
+ autocomplete: "given-name",
291
+ validationMessages: {
292
+ required: 'First Name is required'
293
+ }
294
+ });
295
+
296
+ const lastName = (scope) => sbsText({
297
+ label: 'Last Name:',
298
+ placeholder: 'Last',
299
+ name: scope ? scope + ':' + 'Last_Name' : 'Last_Name',
300
+ autocomplete: "family-name",
301
+ validationMessages: {
302
+ required: 'Last Name is required'
303
+ }
304
+ });
305
+
306
+ const phone = (scope) => sbsText({
307
+ $formkit: 'tel',
308
+ name: scope ? scope + ':' + 'Primary_Phone' : 'Primary_Phone',
309
+ label: 'Phone Number:',
310
+ placeholder: '###-###-####',
311
+ maxlength: 12,
312
+ help: '10-digit phone number, hyphens optional',
313
+ autocomplete: 'tel-national',
314
+ 'data-tf-sensitive': 'false',
315
+ validation: 'required|matches:/^[0-9]{3}-?[0-9]{3}-?[0-9]{4}$/|valid_phone',
316
+ validationMessages: {
317
+ required: 'Field is required',
318
+ matches: 'Invalid Phone Format, use ###-###-####',
319
+ valid_phone: 'Invalid Phone Number'
320
+ },
321
+ helpClass: "t-mt-2.5 md:t-text-right md:t-mt-[-2px]"
322
+ });
323
+
324
+
325
+ const zipcode = (scope) => sbsText({
326
+ label: 'Zip Code:',
327
+ placeholder: '#####',
328
+ name: scope ? scope + ':' + 'Zip' : 'Zip',
329
+ maxlength: 5,
330
+ inputmode: "numeric",
331
+ autocomplete: 'postal-code',
332
+ validation: 'required|matches:/^[0-9]{5}$/',
333
+ validationMessages: {
334
+ required: 'Zip Code is required',
335
+ matches: 'Invalid Zip Code'
336
+ }
337
+ });
338
+
189
339
  const amountPaymentsPastDue = () => sbsSelect({
190
340
  label: 'Total Amount of Payments that are Past Due:',
191
341
  name: 'Amount_Payments_Past_Due',
@@ -705,20 +855,6 @@ const driversLicenseType = () => sbs2ItemRadio({
705
855
  ]
706
856
  });
707
857
 
708
- const email = (scope) => sbsText({
709
- $formkit: 'email',
710
- name: scope ? scope + ':' + 'Email' : 'Email',
711
- label: 'Email Address:',
712
- placeholder: 'email@domain.com',
713
- autocomplete: 'email',
714
- 'data-tf-sensitive': 'false',
715
- validation: 'required|email',
716
- validationMessages: {
717
- required: 'Email is required',
718
- email: 'Invalid Email'
719
- }
720
- });
721
-
722
858
  const employerType = () => sbsSelect({
723
859
  label: 'The Employer Is a:',
724
860
  name: 'Employer_Type',
@@ -751,17 +887,6 @@ const estateLegalServicesNeeded = (scope) => sbsSelect({
751
887
  ]
752
888
  });
753
889
 
754
- const firstName = (scope) => sbsText({
755
- $formkit: 'text',
756
- label: 'First Name:',
757
- placeholder: 'First',
758
- name: scope ? scope + ':' + 'First_Name' : 'First_Name',
759
- autocomplete: "given-name",
760
- validationMessages: {
761
- required: 'First Name is required'
762
- }
763
- });
764
-
765
890
  const haveAttorney = (scope) => sbsYesNoRadio({
766
891
  name: scope ? scope + ':' + 'Have_Attorney' : 'Have_Attorney',
767
892
  label: 'Already Working with An Attorney?'
@@ -845,17 +970,6 @@ const incidentDate = (scope) => sbsDate({
845
970
  label: 'Date of Incident:',
846
971
  });
847
972
 
848
- const lastName = (scope) => sbsText({
849
- $formkit: 'text',
850
- label: 'Last Name:',
851
- placeholder: 'Last',
852
- name: scope ? scope + ':' + 'Last_Name' : 'Last_Name',
853
- autocomplete: "family-name",
854
- validationMessages: {
855
- required: 'Last Name is required'
856
- }
857
- });
858
-
859
973
  const landlordTenantParty = () => sbsSelect({
860
974
  label: 'I am the:',
861
975
  name: 'Landlord_Tenant_Party',
@@ -897,69 +1011,7 @@ const legalCrossSells$1 = () => col2Checkbox({
897
1011
  help: 'Just hit "Next" if none apply',
898
1012
  helpClass: 't-text-center !t-text-sm',
899
1013
  validation: null,
900
- options: {
901
- if: '$getVal($get(form), "Type_Of_Legal_Problem") === "Auto and Car Accidents"',
902
- then: {
903
- 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
904
- 'Wills and Trusts': 'Need a Will or Trust',
905
- 'Workers Compensation': 'Workplace Injury',
906
- 'Power of Attorney': 'Update Power of Attorney',
907
- 'Divorce and Separation': 'Need a Divorce or Separation',
908
- 'Child Custody': 'Need help with Child Custody',
909
- },
910
- else: {
911
- if: '$getVal($get(form), "Type_Of_Legal_Problem") === "Personal Injury" || $getVal($get(form), "Type_Of_Legal_Problem") === "Workers Compensation"',
912
- then: {
913
- 'DUI and DWI': 'Involved in a DUI/DWI',
914
- 'Wills and Trusts': 'Need a Will or Trust',
915
- 'Power of Attorney': 'Update Power of Attorney',
916
- 'Divorce and Separation': 'Need a Divorce or Separation',
917
- 'Child Custody': 'Need help with Child Custody',
918
- // TODO add one more?
919
- },
920
- else: {
921
- if: '$getVal($get(form), "Type_Of_Legal_Problem") === "DUI and DWI"',
922
- then: {
923
- 'Personal Injury': 'Personal or Workplace Injury',
924
- 'Wills and Trusts': 'Need a Will or Trust',
925
- 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
926
- 'Power of Attorney': 'Update Power of Attorney',
927
- 'Divorce and Separation': 'Need a Divorce or Separation',
928
- 'Child Custody': 'Need help with Child Custody',
929
- },
930
- else: {
931
- 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"',
932
- then: {
933
- 'Auto and Car Accidents': 'Injured in a Car Accident',
934
- 'Personal Injury': 'Personal or Workplace Injury',
935
- 'DUI and DWI': 'Involved in a DUI/DWI',
936
- 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
937
- 'Divorce and Separation': 'Need a Divorce or Separation',
938
- 'Child Custody': 'Need help with Child Custody',
939
- },
940
- else: {
941
- if: '$getVal($get(form), "Type_Of_Legal_Problem") === "Long Term Disability" || $getVal($get(form), "Type_Of_Legal_Problem") === "Social Security Disability and Insurance"',
942
- then: {
943
- 'Auto and Car Accidents': 'Injured in a Car Accident',
944
- 'DUI and DWI': 'Involved in a DUI/DWI',
945
- 'Wills and Trusts': 'Need a Will or Trust',
946
- 'Power of Attorney': 'Update Power of Attorney',
947
- 'Divorce and Separation': 'Need a Divorce or Separation',
948
- 'Child Custody': 'Need help with Child Custody',
949
- },
950
- else: {
951
- 'Auto and Car Accidents': 'Injured in a Car Accident',
952
- 'Personal Injury': 'Personal or Workplace Injury',
953
- 'DUI and DWI': 'Involved in a DUI/DWI',
954
- 'Wills and Trusts': 'Need a Will or Trust',
955
- 'Power of Attorney': 'Update Power of Attorney',
956
- 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
957
- }
958
- }
959
- }
960
- }
961
- }
962
- }
1014
+ options: '$getCrossSellOptions($get(form), $getVal($get(form), "Type_Of_Legal_Problem"))',
963
1015
  });
964
1016
 
965
1017
  const loanAmount = () => sbsSelect({
@@ -1056,24 +1108,6 @@ const pendingCharges = (scope) => sbsYesNoRadio({
1056
1108
  label: 'Do you currently have any pending charges?'
1057
1109
  });
1058
1110
 
1059
- const phone = (scope) => sbsText({
1060
- $formkit: 'tel',
1061
- name: scope ? scope + ':' + 'Primary_Phone' : 'Primary_Phone',
1062
- label: 'Phone Number:',
1063
- placeholder: '###-###-####',
1064
- maxlength: 12,
1065
- help: '10-digit phone number, hyphens optional',
1066
- autocomplete: 'tel-national',
1067
- 'data-tf-sensitive': 'false',
1068
- validation: 'required|matches:/^[0-9]{3}-?[0-9]{3}-?[0-9]{4}$/|valid_phone',
1069
- validationMessages: {
1070
- required: 'Field is required',
1071
- matches: 'Invalid Phone Format, use ###-###-####',
1072
- valid_phone: 'Invalid Phone Number'
1073
- },
1074
- helpClass: "t-mt-2.5 md:t-text-right md:t-mt-[-2px]"
1075
- });
1076
-
1077
1111
  const primaryInjury = (scope) => sbs2ColRadio({
1078
1112
  name: scope ? scope + ':' + 'Primary_Injury' : 'Primary_Injury',
1079
1113
  label: 'Primary Injury:',
@@ -1340,21 +1374,6 @@ const wouldLikeLawyerTo = () => sbsRadio({
1340
1374
  ]
1341
1375
  });
1342
1376
 
1343
- const zipcode = (scope) => sbsText({
1344
- label: 'Zip Code:',
1345
- placeholder: '#####',
1346
- name: scope ? scope + ':' + 'Zip' : 'Zip',
1347
- maxlength: 5,
1348
- inputmode: "numeric",
1349
- autocomplete: 'postal-code',
1350
- validation: 'required|matches:/^[0-9]{5}$/',
1351
- validationMessages: {
1352
- required: 'Zip Code is required',
1353
- matches: 'Invalid Zip Code'
1354
- }
1355
- });
1356
-
1357
-
1358
1377
  // ------ Question Groups
1359
1378
 
1360
1379
  // NOTE: name must be unique within a form!
@@ -2199,13 +2218,20 @@ function crossSellQuestionsStepSubHeadline(updates) {
2199
2218
  function commentsStepHeadline(updates) {
2200
2219
  return {
2201
2220
  $el: 'h3',
2202
- children: updates.headline || 'Additional Case Details',
2221
+ children: updates.headline || 'Additional Details',
2203
2222
  attrs: {
2204
2223
  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 || '')
2205
2224
  }
2206
2225
  }
2207
2226
  }
2208
2227
 
2228
+ function commentsStepHeadlineLegal(updates) {
2229
+ return commentsStepHeadline({
2230
+ headline: updates.headline || 'Additional Case Details',
2231
+ headlineClass: updates.headlineClass
2232
+ })
2233
+ }
2234
+
2209
2235
  function firstAndLastStepHeadline(updates) {
2210
2236
  return {
2211
2237
  $el: 'h3',
@@ -2229,7 +2255,7 @@ function legalCrossSellsStepHeadline(updates) {
2229
2255
  function contactStepHeadline(updates) {
2230
2256
  return {
2231
2257
  $el: 'h3',
2232
- children: updates.headline || DEFAULT_FINAL_HEADLINE_DYNAMIC,
2258
+ children: updates.headline || DEFAULT_FINAL_HEADLINE_DYNAMIC_LEGAL,
2233
2259
  attrs: {
2234
2260
  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 || '')
2235
2261
  }
@@ -2239,7 +2265,7 @@ function contactStepHeadline(updates) {
2239
2265
  function contactStepSubHeadline(updates) {
2240
2266
  return {
2241
2267
  $el: 'h5',
2242
- children: updates.subheadline || DEFAULT_FINAL_SUBHEADLINE_DYNAMIC,
2268
+ children: updates.subheadline || DEFAULT_FINAL_SUBHEADLINE_DYNAMIC_LEGAL,
2243
2269
  attrs: {
2244
2270
  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 || '')
2245
2271
  }
@@ -2279,10 +2305,16 @@ const stepDefaults = (step, stepKey) => ({
2279
2305
  }
2280
2306
  });
2281
2307
 
2282
- function step(name, inputs, nextOnEnter = true, nextOnInput = false, stepKey = undefined, nextStepMap = undefined, autoFocus = undefined) {
2283
- if (typeof nextOnEnter === 'undefined') {
2284
- nextOnEnter = true;
2285
- }
2308
+ function step(name, inputs, updates = {}) {
2309
+ const {
2310
+ nextOnEnter = true,
2311
+ nextOnInput = false,
2312
+ stepKey = undefined,
2313
+ nextStepMap = undefined,
2314
+ triggerRedirectMap = undefined,
2315
+ autoFocus = undefined,
2316
+ } = updates;
2317
+
2286
2318
  if (inputs && inputs.length && (nextOnEnter || nextOnInput)) {
2287
2319
  const lastInput = findLastInput(inputs[inputs.length - 1]);
2288
2320
  if (lastInput && nextOnEnter === true) {
@@ -2302,6 +2334,7 @@ function step(name, inputs, nextOnEnter = true, nextOnInput = false, stepKey = u
2302
2334
  id: name,
2303
2335
  name: name,
2304
2336
  nextStepMap: nextStepMap,
2337
+ triggerRedirectMap: triggerRedirectMap,
2305
2338
  autoFocus: autoFocus,
2306
2339
  children: inputs
2307
2340
  }
@@ -2310,34 +2343,6 @@ function step(name, inputs, nextOnEnter = true, nextOnInput = false, stepKey = u
2310
2343
  )
2311
2344
  }
2312
2345
 
2313
- function commentsWithBankruptcy(updates = {}) {
2314
- return step(
2315
- 'commentsWithBankruptcy',
2316
- [
2317
- commentsStepHeadline(updates),
2318
- comments({
2319
- label: typeof updates.label === 'undefined' ? DEFAULT_COMMENTS_LABEL : updates.label,
2320
- placeholder: updates.placeholder || DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC,
2321
- inputClass: typeof updates.inputClass === 'undefined' ? '!t-h-32' : updates.inputClass,
2322
- }, updates.scope),
2323
- // TODO: needs scope support
2324
- bankruptcyCrossSell(),
2325
- {
2326
- $el: 'div',
2327
- if: '$get(CrossSell_Bankruptcy).value == true',
2328
- children: [
2329
- comments({
2330
- label: 'Bankruptcy or debt details:',
2331
- placeholder: 'Please describe your bankrtupcy or debt situation in a few words...',
2332
- inputClass: '!t-h-16'
2333
- }, 'CrossSell:Bankruptcy')
2334
- ],
2335
- }
2336
- ],
2337
- false // nextOnEnter
2338
- )
2339
- }
2340
-
2341
2346
  function contactInfo(updates = {}) {
2342
2347
  return step(
2343
2348
  'contactInfo',
@@ -2350,7 +2355,7 @@ function contactInfo(updates = {}) {
2350
2355
  TCPAConsent(updates.scope),
2351
2356
  secureIcon()
2352
2357
  ],
2353
- false, // nextOnEnter
2358
+ { nextOnEnter: false }
2354
2359
  )
2355
2360
  }
2356
2361
 
@@ -2362,10 +2367,37 @@ function firstAndLastV2(updates = {}) {
2362
2367
  firstName(),
2363
2368
  lastName()
2364
2369
  ],
2365
- updates.nextOnEnter
2370
+ updates
2366
2371
  )
2367
2372
  }
2368
2373
 
2374
+ function commentsWithBankruptcy(updates = {}) {
2375
+ return step(
2376
+ 'commentsWithBankruptcy',
2377
+ [
2378
+ commentsStepHeadlineLegal(updates),
2379
+ comments({
2380
+ label: typeof updates.label === 'undefined' ? DEFAULT_COMMENTS_LABEL_LEGAL : updates.label,
2381
+ placeholder: updates.placeholder || DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC_LEGAL,
2382
+ inputClass: typeof updates.inputClass === 'undefined' ? '!t-h-32' : updates.inputClass,
2383
+ }, updates.scope),
2384
+ // TODO: needs scope support
2385
+ bankruptcyCrossSell(),
2386
+ {
2387
+ $el: 'div',
2388
+ if: '$get(CrossSell_Bankruptcy).value == true',
2389
+ children: [
2390
+ comments({
2391
+ label: 'Bankruptcy or debt details:',
2392
+ placeholder: 'Please describe your bankrtupcy or debt situation in a few words...',
2393
+ inputClass: '!t-h-16'
2394
+ }, 'CrossSell:Bankruptcy')
2395
+ ],
2396
+ }
2397
+ ],
2398
+ { nextOnEnter: false }
2399
+ )
2400
+ }
2369
2401
 
2370
2402
  const AllTOLPQuestions = () => {
2371
2403
  return [
@@ -2437,11 +2469,10 @@ function generalLegalTOLPQuestions(updates = {}) {
2437
2469
  return step(
2438
2470
  'TOLPQuestions',
2439
2471
  questions,
2440
- updates.nextOnEnter
2472
+ updates
2441
2473
  )
2442
2474
  }
2443
2475
 
2444
-
2445
2476
  function autoAndCarAccidentCrossSellQuestions(updates = {}) {
2446
2477
  return step(
2447
2478
  'autoAndCarAccidentCrossSellQuestions',
@@ -2458,7 +2489,7 @@ function autoAndCarAccidentCrossSellQuestions(updates = {}) {
2458
2489
  'CrossSell:Auto_and_Car_Accidents'
2459
2490
  )
2460
2491
  ],
2461
- updates.nextOnEnter
2492
+ updates
2462
2493
  )
2463
2494
  }
2464
2495
 
@@ -2477,7 +2508,7 @@ function childCustodyCrossSellQuestions(updates = {}) {
2477
2508
  'CrossSell:Child_Custody'
2478
2509
  )
2479
2510
  ],
2480
- updates.nextOnEnter
2511
+ updates
2481
2512
  )
2482
2513
  }
2483
2514
 
@@ -2496,7 +2527,7 @@ function divorceAndSeparationCrossSellQuestions(updates = {}) {
2496
2527
  'CrossSell:Divorce_and_Separation'
2497
2528
  )
2498
2529
  ],
2499
- updates.nextOnEnter
2530
+ updates
2500
2531
  )
2501
2532
  }
2502
2533
 
@@ -2515,7 +2546,7 @@ function duiAndDWICrossSellQuestions(updates = {}) {
2515
2546
  'CrossSell:DUI_and_DWI'
2516
2547
  )
2517
2548
  ],
2518
- updates.nextOnEnter
2549
+ updates
2519
2550
  )
2520
2551
  }
2521
2552
 
@@ -2535,7 +2566,7 @@ function ssdiCrossSellQuestions(updates = {}) {
2535
2566
  'CrossSell:Social_Security_Disability_and_Insurance'
2536
2567
  )
2537
2568
  ],
2538
- updates.nextOnEnter
2569
+ updates
2539
2570
  )
2540
2571
  }
2541
2572
 
@@ -2555,7 +2586,7 @@ function personalInjuryCrossSellQuestions(updates = {}) {
2555
2586
  'CrossSell:Personal_Injury'
2556
2587
  )
2557
2588
  ],
2558
- updates.nextOnEnter
2589
+ updates
2559
2590
  )
2560
2591
  }
2561
2592
 
@@ -2574,7 +2605,7 @@ function powerOfAttorneyCrossSellQuestions(updates = {}) {
2574
2605
  'CrossSell:Power_of_Attorney'
2575
2606
  )
2576
2607
  ],
2577
- updates.nextOnEnter
2608
+ updates
2578
2609
  )
2579
2610
  }
2580
2611
 
@@ -2593,7 +2624,7 @@ function willsAndTrustsCrossSellQuestions(updates = {}) {
2593
2624
  'CrossSell:Wills_and_Trusts'
2594
2625
  )
2595
2626
  ],
2596
- updates.nextOnEnter
2627
+ updates
2597
2628
  )
2598
2629
  }
2599
2630
 
@@ -2613,21 +2644,20 @@ function workersCompensationCrossSellQuestions(updates = {}) {
2613
2644
  'CrossSell:Workers_Compensation'
2614
2645
  )
2615
2646
  ],
2616
- updates.nextOnEnter
2647
+ updates
2617
2648
  )
2618
2649
  }
2619
2650
 
2620
2651
  function legalCrossSells(updates = {}) {
2652
+ updates.nextOnInput = false;
2653
+ updates.stepKey = '$get(Type_Of_Legal_Problem).value';
2621
2654
  return step(
2622
2655
  'legalCrossSells',
2623
2656
  [
2624
2657
  legalCrossSellsStepHeadline(updates),
2625
2658
  legalCrossSells$1(),
2626
2659
  ],
2627
- updates.nextOnEnter,
2628
- false,
2629
- // Note: we should probably scope this stepKey to this step name
2630
- '$get(Type_Of_Legal_Problem).value'
2660
+ updates
2631
2661
  )
2632
2662
  }
2633
2663
 
@@ -2646,10 +2676,7 @@ function realEstateTOLPAndZip(updates = {}) {
2646
2676
  }),
2647
2677
  zipcode()
2648
2678
  ],
2649
- updates.nextOnEnter,
2650
- updates.nextOnInput,
2651
- updates.stepKey,
2652
- updates.nextStepMap
2679
+ updates
2653
2680
  )
2654
2681
  }
2655
2682
 
@@ -2792,9 +2819,7 @@ function formProps(updates) {
2792
2819
  return props
2793
2820
  }
2794
2821
 
2795
- const metaDefaults = {
2796
- tcpaLanguage: TCPA_LANGUAGE
2797
- };
2822
+ const metaDefaults = {};
2798
2823
 
2799
2824
  function metaProps(updates) {
2800
2825
  const data = merge(
@@ -2807,7 +2832,7 @@ function metaProps(updates) {
2807
2832
  }
2808
2833
  }
2809
2834
 
2810
- function defaultMetaProps(tolps = null) {
2835
+ function defaultMetaPropsLegal(tolps = null) {
2811
2836
  let commentsPlaceholders = TOLPCommentsPlaceholders;
2812
2837
  let finalHeadlines = TOLPFinalHeadlines;
2813
2838
  let finalSubHeadlines = TOLPFinalSubHeadlines;
@@ -2817,23 +2842,27 @@ function defaultMetaProps(tolps = null) {
2817
2842
  finalSubHeadlines = filterMapByKey(TOLPFinalSubHeadlines, tolps);
2818
2843
  }
2819
2844
  return metaProps({
2820
- defaultCommentsPlaceholder: DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC,
2845
+ tcpaLanguage: TCPA_LANGUAGE_LEGAL,
2846
+ defaultCommentsPlaceholder: DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC_LEGAL,
2821
2847
  commentsPlaceholders: commentsPlaceholders,
2822
- defaultFinalHeadline: DEFAULT_FINAL_HEADLINE,
2848
+ defaultFinalHeadline: DEFAULT_FINAL_HEADLINE_LEGAL,
2823
2849
  finalHeadlines: finalHeadlines,
2824
- defaultFinalSubHeadline: DEFAULT_FINAL_SUBHEADLINE,
2825
- finalSubHeadlines: finalSubHeadlines,
2850
+ defaultFinalSubHeadline: DEFAULT_FINAL_SUBHEADLINE_LEGAL,
2851
+ finalSubHeadlines: finalSubHeadlines
2826
2852
  })
2827
2853
  }
2828
2854
 
2829
2855
  function defaultMetaPropsLegalLegacy() {
2830
- const meta = defaultMetaProps();
2856
+ const meta = defaultMetaPropsLegal();
2831
2857
  meta.data.dynamicSchema = [
2832
2858
  generalLegalTOLPQuestions(),
2833
2859
  commentsWithBankruptcy({
2834
2860
  inputClass: '!t-h-28',
2835
2861
  }),
2836
- legalCrossSells(),
2862
+ legalCrossSells({
2863
+ headlineClass: '!t-text-dark',
2864
+ nextStepMap: nextStepsMapLegalCrossSells,
2865
+ }),
2837
2866
  autoAndCarAccidentCrossSellQuestions(),
2838
2867
  personalInjuryCrossSellQuestions(),
2839
2868
  workersCompensationCrossSellQuestions(),
@@ -3324,17 +3353,44 @@ const TOLPFinalSubHeadlines = {
3324
3353
  // 'Non-Workplace Discrimination': '',
3325
3354
  };
3326
3355
 
3327
-
3328
3356
  const nextStepsMapLegalLegacy = {
3329
- '*': [
3330
- 'TOLPQuestions',
3331
- 'commentsWithBankruptcy',
3332
- 'legalCrossSells',
3333
- 'firstAndLast',
3334
- 'contactInfo',
3335
- ]
3357
+ values: {
3358
+ '*': [
3359
+ 'TOLPQuestions',
3360
+ 'commentsWithBankruptcy',
3361
+ 'legalCrossSells',
3362
+ 'firstAndLast',
3363
+ 'contactInfo',
3364
+ ]
3365
+ }
3336
3366
  };
3337
3367
 
3368
+ const nextStepsMapLegalCrossSells = {
3369
+ values: {
3370
+ 'Legal_CrossSells': {
3371
+ 'Auto and Car Accidents': ['autoAndCarAccidentCrossSellQuestions'],
3372
+ 'Personal Injury': ['personalInjuryCrossSellQuestions'],
3373
+ 'Workers Compensation': ['workersCompensationCrossSellQuestions'],
3374
+ 'DUI and DWI': ['duiAndDWICrossSellQuestions'],
3375
+ 'Long Term Disability': ['longTermDisabilityCrossSellQuestions'],
3376
+ 'Social Security Disability and Insurance': ['ssdiCrossSellQuestions'],
3377
+ 'Bankruptcy': ['bankruptcyCrossSellQuestions'],
3378
+ 'Power of Attorney': ['powerOfAttorneyCrossSellQuestions'],
3379
+ 'Wills and Trusts': ['willsAndTrustsCrossSellQuestions'],
3380
+ 'Divorce and Separation': ['divorceAndSeparationCrossSellQuestions'],
3381
+ 'Child Custody': ['childCustodyCrossSellQuestions'],
3382
+ },
3383
+ '*': ['firstAndLast', 'contactInfo'],
3384
+ },
3385
+
3386
+ // NOTE: this assumes a certain placement of the cross sell question
3387
+ // in the form flow.
3388
+ appendSteps: ['firstAndLast', 'contactInfo'],
3389
+ matchesAllowed: 1,
3390
+ };
3391
+
3392
+ const legalCrossSellOptionMap = CROSS_SELL_OPTION_MAP_LEGAL;
3393
+
3338
3394
  const schema = [
3339
3395
  defaultMetaPropsLegalLegacy(),
3340
3396
  formAnchor(),
@@ -3343,7 +3399,8 @@ const schema = [
3343
3399
  props: formProps({
3344
3400
  formId: 'realEstate',
3345
3401
  redirectMap: legalRedirectMap(),
3346
- valueOverrideMap: legalAllValueOverrideMap
3402
+ valueOverrideMap: legalAllValueOverrideMap,
3403
+ crossSellOptionMap: legalCrossSellOptionMap
3347
3404
  }),
3348
3405
  children: [
3349
3406
  defaultHeadline(),